Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
423 lines
34 KiB
Groff
423 lines
34 KiB
Groff
.TH "serif::model::backend::mfem" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
serif::model::backend::mfem
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
.SS "Namespaces"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "namespace \fBdetail\fP"
|
|
.br
|
|
.in -1c
|
|
.SS "Classes"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "struct \fBBoundModel\fP"
|
|
.br
|
|
.RI "Retain physical descriptions and all numerical bindings behind one stable owner\&. "
|
|
.ti -1c
|
|
.RI "struct \fBColumnContribution\fP"
|
|
.br
|
|
.RI "A coupling from state coordinates into an ordered selection of replacement rows\&. "
|
|
.ti -1c
|
|
.RI "struct \fBCoordinateRange\fP"
|
|
.br
|
|
.RI "One contiguous range of equation or state coordinates in an evaluated system\&. "
|
|
.ti -1c
|
|
.RI "struct \fBDeformationDiscretization\fP"
|
|
.br
|
|
.RI "Numerical surface representation and its reference geometry, separate from force equations\&. "
|
|
.ti -1c
|
|
.RI "class \fBEquilibriumEvaluator\fP"
|
|
.br
|
|
.RI "Evaluate explicit stellar candidates using one reusable dependency cache\&. "
|
|
.ti -1c
|
|
.RI "struct \fBJacobianContribution\fP"
|
|
.br
|
|
.RI "One frozen physical Jacobian coupling; overlapping contributions add\&. "
|
|
.ti -1c
|
|
.RI "class \fBLinearizedBlock\fP"
|
|
.br
|
|
.RI "An accepted physical block with optional efficient diagonal and sparse assembly operations\&. "
|
|
.ti -1c
|
|
.RI "struct \fBNoDeformation\fP"
|
|
.br
|
|
.RI "Prescribe displacement externally when no shape unknown is selected\&. "
|
|
.ti -1c
|
|
.RI "class \fBNormalizedSystem\fP"
|
|
.br
|
|
.RI "A frozen physical preparation and its owning solver coordinates, safe after later graph preparation\&. "
|
|
.ti -1c
|
|
.RI "class \fBPhysicalSystem\fP"
|
|
.br
|
|
.RI "Own one evaluated residual and Jacobian, retaining the discretization owner used by every child action\&. "
|
|
.ti -1c
|
|
.RI "class \fBPreconditionedSystem\fP"
|
|
.br
|
|
.RI "Retain one evaluated star and its matching inverse for a linear solve\&. "
|
|
.ti -1c
|
|
.RI "struct \fBResidualContribution\fP"
|
|
.br
|
|
.RI "One evaluated equation contribution in the independently ordered residual coordinates\&. "
|
|
.ti -1c
|
|
.RI "struct \fBRowReplacement\fP"
|
|
.br
|
|
.RI "Replace complete equations after all ordinary and generated contributions have been added\&. "
|
|
.ti -1c
|
|
.RI "struct \fBShapeDerivatives\fP"
|
|
.br
|
|
.RI "Share one accepted deformation and its projected derivative across all physical equations\&. "
|
|
.ti -1c
|
|
.RI "struct \fBStellarDiscretization\fP"
|
|
.br
|
|
.RI "Bind physical terms to existing finite-element resources with one explicit lifetime owner\&. "
|
|
.ti -1c
|
|
.RI "struct \fBSurfacePotentialLinearization\fP"
|
|
.br
|
|
.RI "Accepted surface moments and derivatives in existing shape and field coordinates\&. "
|
|
.in -1c
|
|
.SS "Typedefs"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "using \fBEquilibriumFailure\fP"
|
|
.br
|
|
.RI "Retain the original physical or numerical preparation failure and its diagnostic location\&. "
|
|
.in -1c
|
|
.SS "Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, typename Model, typename Discretization, typename Coefficients> auto \fBbind_model_definition\fP (std::shared_ptr< const Model > model, std::shared_ptr< const Discretization > discretization, const Coefficients &coefficients)"
|
|
.br
|
|
.RI "Compile selections explicitly while leaving thermodynamic and equation evaluation to the graph\&. "
|
|
.ti -1c
|
|
.RI "template<typename Bound, typename Coefficients, typename Geometry> auto \fBequilibrium_inputs\fP (const Bound &bound, const Coefficients &coefficients, const Geometry &geometry_coefficients)"
|
|
.br
|
|
.RI "Build one input schema from an ordinary physical state and the selected geometry coordinates\&. "
|
|
.ti -1c
|
|
.RI "template<typename Plan, typename Discretization, typename Geometry> Plan::Layout \fBequilibrium_layout\fP (const Discretization &discretization, const Geometry &geometry_coefficients)"
|
|
.br
|
|
.RI "Resolve physical block sizes, including the explicitly supplied independent shape count\&. "
|
|
.ti -1c
|
|
.RI "\fBLinearizedBlock\fP \fBdisplacement_projection\fP (const \fBdiscretization::backend::mfem::DofMap\fP &binding)"
|
|
.br
|
|
.RI "Map the deformation's component ordering into the supported displacement ordering once\&. "
|
|
.ti -1c
|
|
.RI "template<geometry::deformation::DeformationMap Map> \fBLinearizedBlock\fP \fBdeformation_tangent\fP (std::shared_ptr< const \fBgeometry::deformation::DeformationLinearization\fP< Map > > state)"
|
|
.br
|
|
.RI "Retain the accepted shape and expose its displacement tangent E and exact transpose E^T\&. "
|
|
.ti -1c
|
|
.RI "template<typename Owner, utils::dependencies::IsDependencyContext Bindings> auto \fBmake_stellar_discretization\fP (std::shared_ptr< Owner > owner, Bindings bindings, const ::mfem::GridFunction &compactification, const \fBmapping::DomainMapper\fP &mapper)"
|
|
.br
|
|
.RI "Retain the supplied resource owner without copying finite-element spaces or changing their addresses\&. "
|
|
.ti -1c
|
|
.RI "template<typename Owner, typename Bindings, typename DomainModel> auto \fBwith_deformation\fP (\fBStellarDiscretization\fP< Owner, Bindings > discretization, DomainModel model, \fBgeometry::deformation::backend::mfem::ReferenceDiscretization\fP reference)"
|
|
.br
|
|
.RI "Add an explicit deformation prescription without changing the physical equation definition\&. "
|
|
.ti -1c
|
|
.RI "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Coefficients, typename Geometry, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires requires { typename Coefficients::Keys; }auto \fBbind_stellar_model\fP (Model model, Discretization discretization, const Coefficients &coefficients, const Geometry &geometry, \fBoperators::backend::mfem::VolumeOptions\fP options={}, ObserverFactory observer_factory={})"
|
|
.br
|
|
.RI "Bind explicitly selected physics and external field views; initial values establish input types only\&. "
|
|
.ti -1c
|
|
.RI "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Options, typename Preconditioner, typename Coefficients, typename Geometry, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires requires { typename Coefficients::Keys; }auto \fBbind_stellar_model\fP (\fBDiscretizationOptions\fP< Model, Discretization, Options, Preconditioner > configuration, const Coefficients &coefficients, const Geometry &geometry, \fBoperators::backend::mfem::VolumeOptions\fP options={}, ObserverFactory observer_factory={})"
|
|
.br
|
|
.RI "Bind configured numerical coordinates with external physical field views and geometry\&. "
|
|
.ti -1c
|
|
.RI "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Layout, utils::dependencies::IsDependencyContext Inputs = utils::dependencies::DependencyContext<>, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires utils::dependencies::ContainsKey<\fBdiscretization::blocks::surface_deformation::coefficients\fP, typename Layout::Values>auto \fBbind_stellar_model\fP (Model model, Discretization discretization, const \fBStellarState\fP< Layout > &state, \fBoperators::backend::mfem::VolumeOptions\fP options={}, const Inputs &prescribed=Inputs{}, ObserverFactory observer_factory={})"
|
|
.br
|
|
.RI "Bind a moving star with all solved physical coefficients and shape coordinates in one state\&. "
|
|
.ti -1c
|
|
.RI "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Layout, utils::dependencies::IsDependencyContext Inputs = utils::dependencies::DependencyContext<>, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires (!utils::dependencies::ContainsKey<\fBdiscretization::blocks::surface_deformation::coefficients\fP, typename Layout::Values>)auto \fBbind_stellar_model\fP (Model model, Discretization discretization, const \fBStellarState\fP< Layout > &state, const ::mfem::Vector &displacement, \fBoperators::backend::mfem::VolumeOptions\fP options={}, const Inputs &prescribed=Inputs{}, ObserverFactory observer_factory={})"
|
|
.br
|
|
.RI "Bind a fixed-geometry star while keeping prescribed displacement outside the solved coordinates\&. "
|
|
.ti -1c
|
|
.RI "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Options, typename Preconditioner, typename Layout, utils::dependencies::IsDependencyContext Inputs = utils::dependencies::DependencyContext<>, typename Services = detail::NoAdditionalComputations, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires utils::dependencies::ContainsKey<\fBdiscretization::blocks::surface_deformation::coefficients\fP, typename Layout::Values>auto \fBbind_stellar_model\fP (\fBDiscretizationOptions\fP< Model, Discretization, Options, Preconditioner > configuration, const \fBStellarState\fP< Layout > &state, \fBoperators::backend::mfem::VolumeOptions\fP options={}, const Inputs &prescribed=Inputs{}, Services services={}, ObserverFactory observer_factory={})"
|
|
.br
|
|
.RI "Bind a moving state with normalization defaults resolved from its authoritative physical model\&. "
|
|
.ti -1c
|
|
.RI "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Options, typename Preconditioner, typename Layout, utils::dependencies::IsDependencyContext Inputs = utils::dependencies::DependencyContext<>, typename Services = detail::NoAdditionalComputations, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires (!utils::dependencies::ContainsKey<\fBdiscretization::blocks::surface_deformation::coefficients\fP, typename Layout::Values>)auto \fBbind_stellar_model\fP (\fBDiscretizationOptions\fP< Model, Discretization, Options, Preconditioner > configuration, const \fBStellarState\fP< Layout > &state, const ::mfem::Vector &displacement, \fBoperators::backend::mfem::VolumeOptions\fP options={}, const Inputs &prescribed=Inputs{}, Services services={}, ObserverFactory observer_factory={})"
|
|
.br
|
|
.RI "Bind normalized fixed-geometry evaluation without introducing displacement unknowns\&. "
|
|
.ti -1c
|
|
.RI "\fBdiscretization::backend::mfem::Resources\fP \fBmake_stellar_resources\fP (const \fBStellarMeshOptions\fP &options)"
|
|
.br
|
|
.RI "Generate physical and logical meshes with the standard core/envelope/vacuum labels\&. "
|
|
.ti -1c
|
|
.RI "::mfem::FiniteElementSpace & \fBmake_space\fP (\fBdiscretization::backend::mfem::Resources\fP &resources, std::unique_ptr<::mfem::FiniteElementCollection > collection, int components, int ordering=::mfem::Ordering::byNODES)"
|
|
.br
|
|
.RI "Share identical collections and spaces, retaining native coefficient numbering and storage\&. "
|
|
.ti -1c
|
|
.RI "template<StellarModelType Model, detail::ReconstructionSpecification\&.\&.\&. Specifications> auto \fBmake_stellar_discretization\fP (const Model &, const \fBStellarMeshOptions\fP &options={}, const Specifications &\&.\&.\&. specifications)"
|
|
.br
|
|
.RI "Create an owning fixed-geometry discretization using the physical model's term descriptors\&. "
|
|
.ti -1c
|
|
.RI "template<StellarModelType Model, typename Surface, typename Interior, typename Vacuum, detail::ReconstructionSpecification\&.\&.\&. Specifications> auto \fBmake_stellar_discretization\fP (const Model &model, const \fBStellarMeshOptions\fP &options, \fBgeometry::deformation::DomainDeformation\fP< Surface, Interior, Vacuum > deformation, const Specifications &\&.\&.\&. specifications)"
|
|
.br
|
|
.RI "Add a moving surface with reference companions chosen from displacement geometry, independently of EOS variables\&. "
|
|
.ti -1c
|
|
.RI "template<ExecutableInteriorEquations Registry, typename Discretization, typename Coefficients> auto \fBmake_model_inputs\fP (const Discretization &discretization, const Coefficients &coefficients)"
|
|
.br
|
|
.RI "Supply the same physical coefficient resources to all explicitly listed interior equations\&. "
|
|
.ti -1c
|
|
.RI "template<ExecutableInteriorEquations Registry, typename Discretization, typename Coefficients> auto \fBmake_model_inputs\fP (const Discretization &discretization, const Coefficients &coefficients, const ::mfem::Vector &displacement)"
|
|
.br
|
|
.RI "Prepare an interior system with a prescribed displacement field, without adding displacement unknowns\&. "
|
|
.ti -1c
|
|
.RI "template<typename Registry, typename Discretization, typename Coefficients> void \fBmake_model_inputs\fP (const Discretization &, const Coefficients &, const ::mfem::Vector &&)=delete"
|
|
.br
|
|
.RI "Reject a displacement temporary whose coefficients would expire before graph preparation\&. "
|
|
.ti -1c
|
|
.RI "std::expected< std::shared_ptr< const \fBNormalizedSystem\fP >, std::string > \fBmake_normalized_system\fP (std::shared_ptr< const \fBPhysicalSystem\fP > physical, \fBsolver::normalization::DiagonalNormalization\fP coordinates, \fBsolver::normalization::StellarReferenceScales\fP reference)"
|
|
.br
|
|
.RI "Reject a nonrepresentable normalized residual before publishing the matching physical preparation\&. "
|
|
.ti -1c
|
|
.RI "std::expected< \fBoperators::backend::mfem::LinearizedBlock\fP, \fBoperators::backend::mfem::PreparationRejection\fP > \fBcache_scalar_row\fP (const \fBoperators::backend::mfem::LinearizedBlock\fP &source)"
|
|
.br
|
|
.RI "Retain one scalar equation's coefficient derivatives instead of repeating its integration\&. "
|
|
.ti -1c
|
|
.RI "\fBSurfacePotentialLinearization\fP \fBassemble_surface_potential\fP (const \fBequations::SurfacePotentialBalance\fP &equation, const \fBgeometry::deformation::backend::mfem::SurfaceDiscretization\fP &discretization, const \fBgeometry::deformation::ReferenceSurface\fP &reference, const \fBgeometry::deformation::SurfaceEmbedding\fP &embedding, std::span< const double > displacement, const \fBdiscretization::backend::mfem::DofMap\fP &potential_binding, const ::mfem::Vector &potential, double level, double angular_velocity)"
|
|
.br
|
|
.RI "Integrate the effective-potential balance using dS_reference / area_reference\&. "
|
|
.ti -1c
|
|
.RI "std::shared_ptr< const \fBPhysicalSystem\fP > \fBmake_physical_system\fP (int residual_size, int state_size, std::vector< \fBResidualContribution\fP > residuals, std::vector< \fBJacobianContribution\fP > jacobian, std::vector< \fBRowReplacement\fP > replacements={}, std::shared_ptr< const void > owner={}, std::optional< std::vector< \fBJacobianContribution\fP > > complete_actions={})"
|
|
.br
|
|
.RI "Publish an immutable evaluated system that remains independent of later graph preparation\&. "
|
|
.ti -1c
|
|
.RI "template<operators::VolumeEquation Equation, typename Schema> std::vector< double > \fBvolume_residual_values\fP (const std::shared_ptr< const \fBoperators::backend::mfem::VolumeData\fP< Equation, Schema > > &data)"
|
|
.br
|
|
.RI "Copy the accepted volume residual for additive physical system assembly\&. "
|
|
.ti -1c
|
|
.RI "template<operators::VolumeEquation Equation, typename Schema> \fBLinearizedBlock\fP \fBvolume_geometry_block\fP (std::shared_ptr< const \fBoperators::backend::mfem::VolumeData\fP< Equation, Schema > > data)"
|
|
.br
|
|
.RI "Select only the displacement derivative while reusing the equation's complete geometry and transpose kernels\&. "
|
|
.ti -1c
|
|
.RI "template<operators::VolumeEquation Equation, typename Schema, discretization::blocks::SystemLayoutType Layout> \fBLinearizedBlock\fP \fBvolume_row_action\fP (std::shared_ptr< const \fBoperators::backend::mfem::VolumeData\fP< Equation, Schema > > data, const Layout &layout, std::optional< \fBColumnContribution\fP > geometry={})"
|
|
.br
|
|
.RI "Apply every solved field and geometry direction in one traversal of an accepted volume equation\&. "
|
|
.in -1c
|
|
.SH "Typedef Documentation"
|
|
.PP
|
|
.SS "using \fBserif::model::backend::mfem::EquilibriumFailure\fP"
|
|
\fBInitial value:\fP
|
|
.nf
|
|
std::variant<operators::backend::mfem::PreparationRejection,
|
|
geometry::deformation::DeformationFailure, geometry::surface::SurfaceFailure, solver::preconditioner::Failure, std::string>
|
|
.PP
|
|
.fi
|
|
|
|
.PP
|
|
Retain the original physical or numerical preparation failure and its diagnostic location\&.
|
|
.SH "Function Documentation"
|
|
.PP
|
|
.SS "\fBSurfacePotentialLinearization\fP serif::model::backend::mfem::assemble_surface_potential (const \fBequations::SurfacePotentialBalance\fP & equation, const \fBgeometry::deformation::backend::mfem::SurfaceDiscretization\fP & discretization, const \fBgeometry::deformation::ReferenceSurface\fP & reference, const \fBgeometry::deformation::SurfaceEmbedding\fP & embedding, std::span< const double > displacement, const \fBdiscretization::backend::mfem::DofMap\fP & potential_binding, const ::mfem::Vector & potential, double level, double angular_velocity)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Integrate the effective-potential balance using dS_reference / area_reference\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
All matrices own accepted values\&. The reference measure and radial directions are fixed; only the centrifugal potential depends explicitly on material surface motion\&. Displacement contains three Cartesian components per selected reference node; shape rows and columns use the embedding's independent radial lengths or harmonic coefficients\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, typename Model, typename Discretization, typename Coefficients> auto serif::model::backend::mfem::bind_model_definition (std::shared_ptr< const Model > model, std::shared_ptr< const Discretization > discretization, const Coefficients & coefficients)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Compile selections explicitly while leaving thermodynamic and equation evaluation to the graph\&.
|
|
.SS "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Options, typename Preconditioner, typename Coefficients, typename Geometry, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires requires { typename Coefficients::Keys; }auto serif::model::backend::mfem::bind_stellar_model (\fBDiscretizationOptions\fP< Model, Discretization, Options, Preconditioner > configuration, const Coefficients & coefficients, const Geometry & geometry, \fBoperators::backend::mfem::VolumeOptions\fP options = \fR{}\fP, ObserverFactory observer_factory = \fR{}\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Bind configured numerical coordinates with external physical field views and geometry\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The optional final factory receives the completed graph type and supplies cache observers\&. The default installs no observers; timing and other observation are not physical inputs\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Options, typename Preconditioner, typename Layout, utils::dependencies::IsDependencyContext Inputs = utils::dependencies::DependencyContext<>, typename Services = detail::NoAdditionalComputations, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires (!utils::dependencies::ContainsKey<\fBdiscretization::blocks::surface_deformation::coefficients\fP, typename Layout::Values>)auto serif::model::backend::mfem::bind_stellar_model (\fBDiscretizationOptions\fP< Model, Discretization, Options, Preconditioner > configuration, const \fBStellarState\fP< Layout > & state, const ::mfem::Vector & displacement, \fBoperators::backend::mfem::VolumeOptions\fP options = \fR{}\fP, const Inputs & prescribed = \fRInputs{}\fP, Services services = \fR{}\fP, ObserverFactory observer_factory = \fR{}\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Bind normalized fixed-geometry evaluation without introducing displacement unknowns\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The optional final factory receives the completed graph type and supplies cache observers\&. The default installs no observers; timing and other observation are not physical inputs\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Options, typename Preconditioner, typename Layout, utils::dependencies::IsDependencyContext Inputs = utils::dependencies::DependencyContext<>, typename Services = detail::NoAdditionalComputations, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires utils::dependencies::ContainsKey<\fBdiscretization::blocks::surface_deformation::coefficients\fP, typename Layout::Values>auto serif::model::backend::mfem::bind_stellar_model (\fBDiscretizationOptions\fP< Model, Discretization, Options, Preconditioner > configuration, const \fBStellarState\fP< Layout > & state, \fBoperators::backend::mfem::VolumeOptions\fP options = \fR{}\fP, const Inputs & prescribed = \fRInputs{}\fP, Services services = \fR{}\fP, ObserverFactory observer_factory = \fR{}\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Bind a moving state with normalization defaults resolved from its authoritative physical model\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The optional final factory receives the completed graph type and supplies cache observers\&. The default installs no observers; timing and other observation are not physical inputs\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Coefficients, typename Geometry, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires requires { typename Coefficients::Keys; }auto serif::model::backend::mfem::bind_stellar_model (Model model, Discretization discretization, const Coefficients & coefficients, const Geometry & geometry, \fBoperators::backend::mfem::VolumeOptions\fP options = \fR{}\fP, ObserverFactory observer_factory = \fR{}\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Bind explicitly selected physics and external field views; initial values establish input types only\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The optional final factory receives the completed graph type and supplies cache observers\&. The default installs no observers; timing and other observation are not physical inputs\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Layout, utils::dependencies::IsDependencyContext Inputs = utils::dependencies::DependencyContext<>, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires (!utils::dependencies::ContainsKey<\fBdiscretization::blocks::surface_deformation::coefficients\fP, typename Layout::Values>)auto serif::model::backend::mfem::bind_stellar_model (Model model, Discretization discretization, const \fBStellarState\fP< Layout > & state, const ::mfem::Vector & displacement, \fBoperators::backend::mfem::VolumeOptions\fP options = \fR{}\fP, const Inputs & prescribed = \fRInputs{}\fP, ObserverFactory observer_factory = \fR{}\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Bind a fixed-geometry star while keeping prescribed displacement outside the solved coordinates\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The optional final factory receives the completed graph type and supplies cache observers\&. The default installs no observers; timing and other observation are not physical inputs\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<utils::dependencies::IsKeyList Prescribed = utils::dependencies::KeyList<>, utils::dependencies::IsBindings SpecificationMap = DefaultSpecificationBindings, utils::dependencies::IsKeyList ExplicitZeroCouplings = utils::dependencies::KeyList<>, StellarModelType Model, typename Discretization, typename Layout, utils::dependencies::IsDependencyContext Inputs = utils::dependencies::DependencyContext<>, typename ObserverFactory = utils::dependencies::NoGraphObservers>
|
|
.br
|
|
requires utils::dependencies::ContainsKey<\fBdiscretization::blocks::surface_deformation::coefficients\fP, typename Layout::Values>auto serif::model::backend::mfem::bind_stellar_model (Model model, Discretization discretization, const \fBStellarState\fP< Layout > & state, \fBoperators::backend::mfem::VolumeOptions\fP options = \fR{}\fP, const Inputs & prescribed = \fRInputs{}\fP, ObserverFactory observer_factory = \fR{}\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Bind a moving star with all solved physical coefficients and shape coordinates in one state\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The optional final factory receives the completed graph type and supplies cache observers\&. The default installs no observers; timing and other observation are not physical inputs\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "std::expected< \fBoperators::backend::mfem::LinearizedBlock\fP, \fBoperators::backend::mfem::PreparationRejection\fP > serif::model::backend::mfem::cache_scalar_row (const \fBoperators::backend::mfem::LinearizedBlock\fP & source)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Retain one scalar equation's coefficient derivatives instead of repeating its integration\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
Applying the exact transpose to one recovers the complete row without probing state columns\&. The returned ordinary matrix owns its coefficients independently of the source action\&. Numerical overflow rejects this preparation; malformed operator dimensions remain caller errors\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<geometry::deformation::DeformationMap Map> \fBLinearizedBlock\fP serif::model::backend::mfem::deformation_tangent (std::shared_ptr< const \fBgeometry::deformation::DeformationLinearization\fP< Map > > state)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Retain the accepted shape and expose its displacement tangent E and exact transpose E^T\&.
|
|
.SS "\fBLinearizedBlock\fP serif::model::backend::mfem::displacement_projection (const \fBdiscretization::backend::mfem::DofMap\fP & binding)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Map the deformation's component ordering into the supported displacement ordering once\&.
|
|
.SS "template<typename Bound, typename Coefficients, typename Geometry> auto serif::model::backend::mfem::equilibrium_inputs (const Bound & bound, const Coefficients & coefficients, const Geometry & geometry_coefficients)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Build one input schema from an ordinary physical state and the selected geometry coordinates\&.
|
|
.SS "template<typename Plan, typename Discretization, typename Geometry> Plan::Layout serif::model::backend::mfem::equilibrium_layout (const Discretization & discretization, const Geometry & geometry_coefficients)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Resolve physical block sizes, including the explicitly supplied independent shape count\&.
|
|
.SS "template<typename Registry, typename Discretization, typename Coefficients> void serif::model::backend::mfem::make_model_inputs (const Discretization & , const Coefficients & , const ::mfem::Vector && )\fR [delete]\fP"
|
|
|
|
.PP
|
|
Reject a displacement temporary whose coefficients would expire before graph preparation\&.
|
|
.SS "template<ExecutableInteriorEquations Registry, typename Discretization, typename Coefficients> auto serif::model::backend::mfem::make_model_inputs (const Discretization & discretization, const Coefficients & coefficients)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Supply the same physical coefficient resources to all explicitly listed interior equations\&.
|
|
.SS "template<ExecutableInteriorEquations Registry, typename Discretization, typename Coefficients> auto serif::model::backend::mfem::make_model_inputs (const Discretization & discretization, const Coefficients & coefficients, const ::mfem::Vector & displacement)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Prepare an interior system with a prescribed displacement field, without adding displacement unknowns\&.
|
|
.SS "std::expected< std::shared_ptr< const \fBNormalizedSystem\fP >, std::string > serif::model::backend::mfem::make_normalized_system (std::shared_ptr< const \fBPhysicalSystem\fP > physical, \fBsolver::normalization::DiagonalNormalization\fP coordinates, \fBsolver::normalization::StellarReferenceScales\fP reference)\fR [inline]\fP, \fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Reject a nonrepresentable normalized residual before publishing the matching physical preparation\&.
|
|
.SS "std::shared_ptr< const \fBPhysicalSystem\fP > serif::model::backend::mfem::make_physical_system (int residual_size, int state_size, std::vector< \fBResidualContribution\fP > residuals, std::vector< \fBJacobianContribution\fP > jacobian, std::vector< \fBRowReplacement\fP > replacements = \fR{}\fP, std::shared_ptr< const void > owner = \fR{}\fP, std::optional< std::vector< \fBJacobianContribution\fP > > complete_actions = \fR{}\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Publish an immutable evaluated system that remains independent of later graph preparation\&.
|
|
.SS "mfem::FiniteElementSpace & serif::model::backend::mfem::make_space (\fBdiscretization::backend::mfem::Resources\fP & resources, std::unique_ptr<::mfem::FiniteElementCollection > collection, int components, int ordering = \fR::mfem::Ordering::byNODES\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Share identical collections and spaces, retaining native coefficient numbering and storage\&.
|
|
.SS "template<StellarModelType Model, detail::ReconstructionSpecification\&.\&.\&. Specifications> auto serif::model::backend::mfem::make_stellar_discretization (const Model & , const \fBStellarMeshOptions\fP & options = \fR{}\fP, const Specifications &\&.\&.\&. specifications)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Create an owning fixed-geometry discretization using the physical model's term descriptors\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
This convenience factory uses the standard spherical mesh and domain schema\&. The existing owner-and-bindings overload remains available for custom meshes, schemas, and native spaces\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<StellarModelType Model, typename Surface, typename Interior, typename Vacuum, detail::ReconstructionSpecification\&.\&.\&. Specifications> auto serif::model::backend::mfem::make_stellar_discretization (const Model & model, const \fBStellarMeshOptions\fP & options, \fBgeometry::deformation::DomainDeformation\fP< Surface, Interior, Vacuum > deformation, const Specifications &\&.\&.\&. specifications)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Add a moving surface with reference companions chosen from displacement geometry, independently of EOS variables\&.
|
|
.SS "template<typename Owner, utils::dependencies::IsDependencyContext Bindings> auto serif::model::backend::mfem::make_stellar_discretization (std::shared_ptr< Owner > owner, Bindings bindings, const ::mfem::GridFunction & compactification, const \fBmapping::DomainMapper\fP & mapper)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Retain the supplied resource owner without copying finite-element spaces or changing their addresses\&.
|
|
.SS "\fBdiscretization::backend::mfem::Resources\fP serif::model::backend::mfem::make_stellar_resources (const \fBStellarMeshOptions\fP & options)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Generate physical and logical meshes with the standard core/envelope/vacuum labels\&.
|
|
.SS "template<operators::VolumeEquation Equation, typename Schema> \fBLinearizedBlock\fP serif::model::backend::mfem::volume_geometry_block (std::shared_ptr< const \fBoperators::backend::mfem::VolumeData\fP< Equation, Schema > > data)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Select only the displacement derivative while reusing the equation's complete geometry and transpose kernels\&.
|
|
.SS "template<operators::VolumeEquation Equation, typename Schema> std::vector< double > serif::model::backend::mfem::volume_residual_values (const std::shared_ptr< const \fBoperators::backend::mfem::VolumeData\fP< Equation, Schema > > & data)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Copy the accepted volume residual for additive physical system assembly\&.
|
|
.SS "template<operators::VolumeEquation Equation, typename Schema, discretization::blocks::SystemLayoutType Layout> \fBLinearizedBlock\fP serif::model::backend::mfem::volume_row_action (std::shared_ptr< const \fBoperators::backend::mfem::VolumeData\fP< Equation, Schema > > data, const Layout & layout, std::optional< \fBColumnContribution\fP > geometry = \fR{}\fP)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Apply every solved field and geometry direction in one traversal of an accepted volume equation\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
The optional geometry column maps independent state coordinates into the equation's displacement coefficients\&. Prescribed fields have zero direction but remain part of the frozen physical state\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SS "template<typename Owner, typename Bindings, typename DomainModel> auto serif::model::backend::mfem::with_deformation (\fBStellarDiscretization\fP< Owner, Bindings > discretization, DomainModel model, \fBgeometry::deformation::backend::mfem::ReferenceDiscretization\fP reference)\fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Add an explicit deformation prescription without changing the physical equation definition\&.
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|