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)
160 lines
8.6 KiB
Groff
160 lines
8.6 KiB
Groff
.TH "src/include/serif/operators/backend/mfem/nodal_inputs.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
src/include/serif/operators/backend/mfem/nodal_inputs.hpp
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
\fR#include <algorithm>\fP
|
|
.br
|
|
\fR#include <memory>\fP
|
|
.br
|
|
\fR#include <utility>\fP
|
|
.br
|
|
\fR#include <type_traits>\fP
|
|
.br
|
|
\fR#include 'serif/discretization/backend/mfem/coefficient_tracking\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/discretization/backend/mfem/point_dofs\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/operators/backend/mfem/nodal_data\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/operators/backend/mfem/term_coefficients\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/utils/dependencies/dependency_context\&.hpp'\fP
|
|
.br
|
|
|
|
.SS "Classes"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::nodal_keys::Scoped< Scope >\fP"
|
|
.br
|
|
.RI "Name the private point selection and accepted results of one equation\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::nodal_keys::Scoped< Scope >::Bindings\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::nodal_keys::Scoped< Scope >::Samples\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::nodal_keys::Scoped< Scope >::Linearization\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::nodal_keys::Scoped< Scope >::BorderLinearization\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::NodalBindings\fP"
|
|
.br
|
|
.RI "Reference-coordinate edits invalidate a point selection even when coefficients are unchanged\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::NodalBindingTracking\fP"
|
|
.br
|
|
.RI "Validate the live selection before comparing equation-local metadata snapshots\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::SelectedNodalValues\fP"
|
|
.br
|
|
.RI "Selected coefficients are owned by the context; the selection has a stable shared identity\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::operators::backend::mfem::NodalValueTracking\fP"
|
|
.br
|
|
.RI "Moving the context or copying equal coefficients does not invalidate the nodal calculation\&. "
|
|
.in -1c
|
|
.SS "Namespaces"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "namespace \fBserif\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "namespace \fBserif::operators\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "namespace \fBserif::operators::backend\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "namespace \fBserif::operators::backend::mfem\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "namespace \fBserif::operators::backend::mfem::nodal_keys\fP"
|
|
.br
|
|
.in -1c
|
|
.SS "Typedefs"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "using \fBserif::operators::backend::mfem::nodal_keys::Linearization\fP = \fBScoped\fP<void>::Linearization"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::operators::backend::mfem::nodal_keys::BorderLinearization\fP = \fBScoped\fP<void>::BorderLinearization"
|
|
.br
|
|
.ti -1c
|
|
.RI "template<typename Scope, typename Test> using \fBserif::operators::backend::mfem::nodal_keys::SelectedInput\fP = std::conditional_t<std::is_void_v<Scope>, Test, typename \fBScoped\fP<Scope>::Samples>"
|
|
.br
|
|
.RI "Preserve the standalone source spelling while distinguishing scoped selections\&. "
|
|
.in -1c
|
|
.SS "Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> void \fBserif::operators::backend::mfem::validate_nodal_selection\fP (const \fBNodalDiscretization\fP< EquationT, SchemaT > &discretization)"
|
|
.br
|
|
.RI "Check stored selection invariants before dereferencing or gathering any coefficient\&. "
|
|
.ti -1c
|
|
.RI "template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> void \fBserif::operators::backend::mfem::validate_nodal_discretization\fP (const \fBNodalDiscretization\fP< EquationT, SchemaT > &discretization)"
|
|
.br
|
|
.RI "Admit only nodal spaces and the complete selection required by the equation's point or boundary support\&. "
|
|
.ti -1c
|
|
.RI "template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> auto \fBserif::operators::backend::mfem::make_nodal_discretization\fP (const \fBdiscretization::backend::mfem::TermBinding\fP< typename EquationT::Test, SchemaT > &residual_binding, \fBdiscretization::backend::mfem::DofSelection\fP selected_rows)"
|
|
.br
|
|
.RI "Validate a caller-supplied selection immediately, before constructing its computation graph\&. "
|
|
.ti -1c
|
|
.RI "template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
|
|
.br
|
|
requires requires { EquationT::reference_position; }auto \fBserif::operators::backend::mfem::make_point_discretization\fP (const \fBdiscretization::backend::mfem::TermBinding\fP< typename EquationT::Test, SchemaT > &residual_binding)"
|
|
.br
|
|
.RI "Select the equation's physical point once; coordinate changes require a new selection\&. "
|
|
.ti -1c
|
|
.RI "template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
|
|
.br
|
|
requires (discretization::domain::IsBoundary<\fBequations::SupportOf\fP<EquationT>> && \fBdiscretization::blocks::SpatialTermTraits\fP<typename EquationT::Test>::rank == 0)auto \fBserif::operators::backend::mfem::make_boundary_discretization\fP (const \fBdiscretization::backend::mfem::TermBinding\fP< typename EquationT::Test, SchemaT > &residual_binding)"
|
|
.br
|
|
.RI "Select the scalar equation's boundary through its declared schema support\&. "
|
|
.ti -1c
|
|
.RI "template<AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT> auto \fBserif::operators::backend::mfem::make_point_border_discretization\fP (const \fBdiscretization::backend::mfem::TermBinding\fP< typename EquationT::Test, SchemaT > &residual_binding, const \fBdiscretization::backend::mfem::TermBinding\fP< typename EquationT::Border, SchemaT > &border_binding)"
|
|
.br
|
|
.RI "Couple the selected scalar point to a global scalar on the same mesh\&. "
|
|
.ti -1c
|
|
.RI "template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> \fBSelectedNodalValues\fP \fBserif::operators::backend::mfem::select_nodal_values\fP (const \fBNodalDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "Validate the whole supplied vector, but cache only coefficients selected by this equation\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> auto \fBserif::operators::backend::mfem::make_nodal_dependency_context\fP (const \fBNodalDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "The test term keys the selected coefficients needed by a nodal equation\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> auto \fBserif::operators::backend::mfem::make_point_border_dependency_context\fP (const \fBPointBorderDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "A border scalar is a separate tracked source; changing it does not reevaluate the point equation\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> auto \fBserif::operators::backend::mfem::make_nodal_binding_input\fP (const \fBNodalDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "Supply equation-local selection metadata and the common physical coefficient source\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> auto \fBserif::operators::backend::mfem::make_nodal_inputs\fP (const \fBNodalDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "Supply a standalone nodal equation with its metadata and physical source\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> auto \fBserif::operators::backend::mfem::make_point_border_binding_input\fP (const \fBPointBorderDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "Validate a point border while sharing its field coefficients with other model equations\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> auto \fBserif::operators::backend::mfem::make_point_border_inputs\fP (const \fBPointBorderDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "Add the common physical sources consumed by a standalone affine point-border computation\&. "
|
|
.in -1c
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|