Files
MeanField_SERiF/docs/man/man3/serif_geometry_surface_backend_mfem.3
Emily Boudreaux 6b57738330 docs(docs): built docs
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)
2026-11-09 14:09:44 -05:00

173 lines
11 KiB
Groff

.TH "serif::geometry::surface::backend::mfem" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::geometry::surface::backend::mfem
.SH SYNOPSIS
.br
.PP
.SS "Namespaces"
.in +1c
.ti -1c
.RI "namespace \fBdetail\fP"
.br
.ti -1c
.RI "namespace \fBkeys\fP"
.br
.in -1c
.SS "Classes"
.in +1c
.ti -1c
.RI "struct \fBPressureBoundary\fP"
.br
.RI "The selected equation rows and the finite-element traces supplying their physical state\&. "
.in -1c
.SS "Concepts"
.in +1c
.ti -1c
.RI "concept \fBPressureBoundaryFormulation\fP"
.br
.RI "Isobaric rows are scalar nodal H1 equations with continuous scalar or global EOS inputs\&. "
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "template<PressureBoundaryFormulation Formulation> auto \fBmake_pressure_boundary_computations\fP ()"
.br
.RI "Combine finite-element sampling with the unchanged thermodynamic graph; coefficient sources can also feed volume equations\&. "
.ti -1c
.RI "template<PressureBoundaryFormulation Formulation> auto \fBmake_pressure_boundary_graph\fP ()"
.br
.RI "Construct a standalone isobaric boundary graph with the ordinary dependency-cache lifecycle\&. "
.ti -1c
.RI "template<PressureBoundaryFormulation Formulation, utils::dependencies::IsDependencyContext Coefficients>
.br
requires utils::dependencies::SatisfiesKeyList<typename Coefficients::Bindings, typename Formulation::StateTerms>auto \fBmake_pressure_boundary\fP (const Coefficients &coefficients)"
.br
.RI "Compile nodal boundary traces explicitly; this does not sample coefficients or evaluate the EOS\&. "
.ti -1c
.RI "template<typename Boundary, typename EOSResource> auto \fBmake_pressure_boundary_metadata\fP (std::shared_ptr< const Boundary > boundary, EOSResource equation_of_state, \fBIsobaricSurface\fP condition)"
.br
.RI "Share boundary metadata with a model's common coefficient context\&. "
.ti -1c
.RI "template<typename Boundary, utils::dependencies::IsResource EOSResource, utils::dependencies::IsDependencyContext Coefficients>
.br
requires std::same_as<typename EOSResource::Key, \fBsurface::keys::EquationOfState\fP> && std::same_as<std::remove_cvref_t<typename EOSResource::Target>, typename Boundary::Formulation::EquationOfState> && utils::dependencies::SatisfiesKeyList<typename Coefficients::Bindings, typename Boundary::Formulation::StateTerms>auto \fBmake_pressure_boundary_inputs\fP (std::shared_ptr< const Boundary > boundary, EOSResource equation_of_state, \fBIsobaricSurface\fP condition, const Coefficients &coefficients)"
.br
.RI "Bind the physical condition, explicitly tracked EOS, and borrowed field coefficients without evaluating them\&. "
.ti -1c
.RI "template<PressureBoundaryFormulation Formulation, typename Traces> void \fBapply_residual_rows\fP (const \fBPressureBoundary\fP< Formulation, Traces > &boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > &linearizations, ::mfem::Vector &result)"
.br
.RI "Replace selected residual rows with a prepared isobaric equation, preserving all interior rows\&. "
.ti -1c
.RI "template<PressureBoundaryFormulation Formulation, typename Traces, utils::dependencies::IsDependencyContext Directions>
.br
requires utils::dependencies::SatisfiesKeyList<typename Directions::Bindings, typename Formulation::StateTerms>void \fBapply_jacobian_rows\fP (const \fBPressureBoundary\fP< Formulation, Traces > &boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > &linearizations, const Directions &directions, ::mfem::Vector &result)"
.br
.RI "Replace full Jacobian rows, including every EOS input; directions may alias the output\&. "
.ti -1c
.RI "template<PressureBoundaryFormulation Formulation, typename Traces> void \fBmask_residual_dual\fP (const \fBPressureBoundary\fP< Formulation, Traces > &boundary, const ::mfem::Vector &dual, ::mfem::Vector &volume_dual)"
.br
.RI "Remove the replaced rows before applying the volume Jacobian transpose\&. "
.ti -1c
.RI "template<typename Term, PressureBoundaryFormulation Formulation, typename Traces>
.br
requires utils::dependencies::BindingsWithBinding<typename Traces::Bindings, Term>void \fBadd_jacobian_transpose_rows\fP (const \fBPressureBoundary\fP< Formulation, Traces > &boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > &linearizations, const ::mfem::Vector &dual, ::mfem::Vector &result)"
.br
.RI "Add one physical term's constrained-row transpose to its existing volume contribution\&. "
.ti -1c
.RI "template<typename Field, PressureBoundaryFormulation Formulation, typename Traces>
.br
requires utils::dependencies::ContainsKey<Field, typename Formulation::StateTerms>std::shared_ptr< const ::mfem::SparseMatrix > \fBpressure_field_trace\fP (const \fBPressureBoundary\fP< Formulation, Traces > &boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > &linearizations)"
.br
.RI "Freeze one EOS partial times its finite-element trace in selected boundary-row coordinates\&. "
.ti -1c
.RI "template<typename Field, PressureBoundaryFormulation Formulation, typename Traces> \fBoperators::backend::mfem::LinearizedBlock\fP \fBpressure_field_block\fP (\fBoperators::backend::mfem::LinearizedBlock\fP volume, const \fBPressureBoundary\fP< Formulation, Traces > &boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > &linearizations)"
.br
.RI "Install one field's accepted isobaric derivative rows on its physical volume block\&. "
.in -1c
.SH "Function Documentation"
.PP
.SS "template<typename Term, PressureBoundaryFormulation Formulation, typename Traces>
.br
requires utils::dependencies::BindingsWithBinding<typename Traces::Bindings, Term>void serif::geometry::surface::backend::mfem::add_jacobian_transpose_rows (const \fBPressureBoundary\fP< Formulation, Traces > & boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > & linearizations, const ::mfem::Vector & dual, ::mfem::Vector & result)"
.PP
Add one physical term's constrained-row transpose to its existing volume contribution\&.
.PP
\fBNote\fP
.RS 4
The caller supplies the same accepted linearizations as the forward action\&. Discard the output if a non-finite action throws\&.
.RE
.PP
.SS "template<PressureBoundaryFormulation Formulation, typename Traces, utils::dependencies::IsDependencyContext Directions>
.br
requires utils::dependencies::SatisfiesKeyList<typename Directions::Bindings, typename Formulation::StateTerms>void serif::geometry::surface::backend::mfem::apply_jacobian_rows (const \fBPressureBoundary\fP< Formulation, Traces > & boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > & linearizations, const Directions & directions, ::mfem::Vector & result)"
.PP
Replace full Jacobian rows, including every EOS input; directions may alias the output\&.
.SS "template<PressureBoundaryFormulation Formulation, typename Traces> void serif::geometry::surface::backend::mfem::apply_residual_rows (const \fBPressureBoundary\fP< Formulation, Traces > & boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > & linearizations, ::mfem::Vector & result)"
.PP
Replace selected residual rows with a prepared isobaric equation, preserving all interior rows\&.
.SS "template<PressureBoundaryFormulation Formulation, utils::dependencies::IsDependencyContext Coefficients>
.br
requires utils::dependencies::SatisfiesKeyList<typename Coefficients::Bindings, typename Formulation::StateTerms>auto serif::geometry::surface::backend::mfem::make_pressure_boundary (const Coefficients & coefficients)\fR [nodiscard]\fP"
.PP
Compile nodal boundary traces explicitly; this does not sample coefficients or evaluate the EOS\&.
.SS "template<PressureBoundaryFormulation Formulation> auto serif::geometry::surface::backend::mfem::make_pressure_boundary_computations ()\fR [nodiscard]\fP"
.PP
Combine finite-element sampling with the unchanged thermodynamic graph; coefficient sources can also feed volume equations\&.
.SS "template<PressureBoundaryFormulation Formulation> auto serif::geometry::surface::backend::mfem::make_pressure_boundary_graph ()\fR [nodiscard]\fP"
.PP
Construct a standalone isobaric boundary graph with the ordinary dependency-cache lifecycle\&.
.SS "template<typename Boundary, utils::dependencies::IsResource EOSResource, utils::dependencies::IsDependencyContext Coefficients>
.br
requires std::same_as<typename EOSResource::Key, \fBsurface::keys::EquationOfState\fP> && std::same_as<std::remove_cvref_t<typename EOSResource::Target>, typename Boundary::Formulation::EquationOfState> && utils::dependencies::SatisfiesKeyList<typename Coefficients::Bindings, typename Boundary::Formulation::StateTerms>auto serif::geometry::surface::backend::mfem::make_pressure_boundary_inputs (std::shared_ptr< const Boundary > boundary, EOSResource equation_of_state, \fBIsobaricSurface\fP condition, const Coefficients & coefficients)\fR [nodiscard]\fP"
.PP
Bind the physical condition, explicitly tracked EOS, and borrowed field coefficients without evaluating them\&.
.PP
\fBNote\fP
.RS 4
Inputs may be reused while coefficient vectors change\&. The caller's bindings, vectors and borrowed EOS must remain alive\&.
.RE
.PP
.SS "template<typename Boundary, typename EOSResource> auto serif::geometry::surface::backend::mfem::make_pressure_boundary_metadata (std::shared_ptr< const Boundary > boundary, EOSResource equation_of_state, \fBIsobaricSurface\fP condition)\fR [nodiscard]\fP"
.PP
Share boundary metadata with a model's common coefficient context\&.
.SS "template<PressureBoundaryFormulation Formulation, typename Traces> void serif::geometry::surface::backend::mfem::mask_residual_dual (const \fBPressureBoundary\fP< Formulation, Traces > & boundary, const ::mfem::Vector & dual, ::mfem::Vector & volume_dual)"
.PP
Remove the replaced rows before applying the volume Jacobian transpose\&.
.SS "template<typename Field, PressureBoundaryFormulation Formulation, typename Traces> \fBoperators::backend::mfem::LinearizedBlock\fP serif::geometry::surface::backend::mfem::pressure_field_block (\fBoperators::backend::mfem::LinearizedBlock\fP volume, const \fBPressureBoundary\fP< Formulation, Traces > & boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > & linearizations)\fR [nodiscard]\fP"
.PP
Install one field's accepted isobaric derivative rows on its physical volume block\&.
.PP
\fBNote\fP
.RS 4
Every EOS input uses its own interpolation\&. Absent fields receive zero constrained rows\&. Copied derivative-weighted traces keep this accepted block independent of later EOS candidates and of the boundary object's lifetime\&.
.RE
.PP
.SS "template<typename Field, PressureBoundaryFormulation Formulation, typename Traces>
.br
requires utils::dependencies::ContainsKey<Field, typename Formulation::StateTerms>std::shared_ptr< const ::mfem::SparseMatrix > serif::geometry::surface::backend::mfem::pressure_field_trace (const \fBPressureBoundary\fP< Formulation, Traces > & boundary, const std::vector< \fBSurfaceLinearization\fP< Formulation > > & linearizations)\fR [nodiscard]\fP"
.PP
Freeze one EOS partial times its finite-element trace in selected boundary-row coordinates\&.
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.