Files
MeanField_SERiF/docs/man/man3/serif_model_backend_mfem_PreconditionedSystem.3

134 lines
5.9 KiB
Groff
Raw Permalink Normal View History

.TH "serif::model::backend::mfem::PreconditionedSystem< System >" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::model::backend::mfem::PreconditionedSystem< System > \- Retain one evaluated star and its matching inverse for a linear solve\&.
.SH SYNOPSIS
.br
.PP
.PP
\fR#include <preconditioned_system\&.hpp>\fP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBPreconditionedSystem\fP (std::shared_ptr< const System > \fBsystem\fP, \fBsolver::preconditioner::backend::mfem::Inverse\fP inverse)"
.br
.RI "Establish physical ownership before constructing an adapter in the selected solver coordinates\&. "
.ti -1c
.RI "const std::shared_ptr< const System > & \fBsystem\fP () const noexcept"
.br
.RI "Inspect the residual and Jacobian belonging to this inverse\&. "
.ti -1c
.RI "::mfem::Solver & \fBpreconditioner\fP () const noexcept"
.br
.RI "Supply MFEM with the matching physical or normalized inverse; unrelated rebinding is rejected\&. "
.ti -1c
.RI "const \fBsolver::preconditioner::backend::mfem::Solver\fP & \fBphysical_preconditioner\fP () const noexcept"
.br
.RI "Apply or inspect the dimensional inverse before the coordinate transformation\&. "
.ti -1c
.RI "\fBsolver::preconditioner::ApplicationContract\fP \fBcontract\fP () const noexcept"
.br
.RI "Tell the outer solver whether the selected inverse has a fixed linear application\&. "
.in -1c
.SS "Private Member Functions"
.in +1c
.ti -1c
.RI "auto \fBphysical_jacobian\fP () const"
.br
.RI "Bind the physical inverse to the dimensional root even when the outer solve is normalized\&. "
.ti -1c
.RI "std::shared_ptr<::mfem::Solver > \fBmake_solver\fP () const"
.br
.RI "Reuse the existing normalization adapter while retaining both of its borrowed owners\&. "
.in -1c
.SS "Static Private Member Functions"
.in +1c
.ti -1c
.RI "static std::shared_ptr< const System > \fBchecked_system\fP (std::shared_ptr< const System > \fBsystem\fP)"
.br
.RI "Report an invalid owner before any adapter borrows an operator from it\&. "
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "std::shared_ptr< const System > \fBm_system\fP"
.br
.ti -1c
.RI "std::shared_ptr< \fBsolver::preconditioner::backend::mfem::Solver\fP > \fBm_physical_inverse\fP"
.br
.ti -1c
.RI "std::shared_ptr<::mfem::Solver > \fBm_inverse\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<typename System>
.br
requires (std::same_as<System, \fBPhysicalSystem\fP> || std::same_as<System, \fBNormalizedSystem\fP>)
.br
class serif::model::backend::mfem::PreconditionedSystem< System >"Retain one evaluated star and its matching inverse for a linear solve\&.
.PP
\fBNote\fP
.RS 4
Later evaluations cannot change these operators\&. MFEM adapters reuse scratch storage; applications of the same preparation must not run concurrently\&.
.RE
.PP
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<typename System> \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::PreconditionedSystem (std::shared_ptr< const System > system, \fBsolver::preconditioner::backend::mfem::Inverse\fP inverse)\fR [inline]\fP"
.PP
Establish physical ownership before constructing an adapter in the selected solver coordinates\&.
.SH "Member Function Documentation"
.PP
.SS "template<typename System> static std::shared_ptr< const System > \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::checked_system (std::shared_ptr< const System > system)\fR [inline]\fP, \fR [static]\fP, \fR [nodiscard]\fP, \fR [private]\fP"
.PP
Report an invalid owner before any adapter borrows an operator from it\&.
.SS "template<typename System> \fBsolver::preconditioner::ApplicationContract\fP \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::contract () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Tell the outer solver whether the selected inverse has a fixed linear application\&.
.SS "template<typename System> std::shared_ptr<::mfem::Solver > \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::make_solver () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [private]\fP"
.PP
Reuse the existing normalization adapter while retaining both of its borrowed owners\&.
.SS "template<typename System> auto \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::physical_jacobian () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [private]\fP"
.PP
Bind the physical inverse to the dimensional root even when the outer solve is normalized\&.
.SS "template<typename System> const \fBsolver::preconditioner::backend::mfem::Solver\fP & \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::physical_preconditioner () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Apply or inspect the dimensional inverse before the coordinate transformation\&.
.SS "template<typename System> ::mfem::Solver & \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::preconditioner () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Supply MFEM with the matching physical or normalized inverse; unrelated rebinding is rejected\&.
.SS "template<typename System> const std::shared_ptr< const System > & \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::system () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Inspect the residual and Jacobian belonging to this inverse\&.
.SH "Member Data Documentation"
.PP
.SS "template<typename System> std::shared_ptr<::mfem::Solver> \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::m_inverse\fR [private]\fP"
.SS "template<typename System> std::shared_ptr<\fBsolver::preconditioner::backend::mfem::Solver\fP> \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::m_physical_inverse\fR [private]\fP"
.SS "template<typename System> std::shared_ptr<const System> \fBserif::model::backend::mfem::PreconditionedSystem\fP< System >::m_system\fR [private]\fP"
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.