|
SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
|
#include <algorithm>#include <memory>#include <utility>#include <type_traits>#include "serif/discretization/backend/mfem/coefficient_tracking.hpp"#include "serif/discretization/backend/mfem/point_dofs.hpp"#include "serif/operators/backend/mfem/nodal_data.hpp"#include "serif/operators/backend/mfem/term_coefficients.hpp"#include "serif/utils/dependencies/dependency_context.hpp"Namespaces | |
| namespace | serif |
| namespace | serif::operators |
| namespace | serif::operators::backend |
| namespace | serif::operators::backend::mfem |
| namespace | serif::operators::backend::mfem::nodal_keys |
Typedefs | |
| using | serif::operators::backend::mfem::nodal_keys::Linearization = Scoped<void>::Linearization |
| using | serif::operators::backend::mfem::nodal_keys::BorderLinearization = Scoped<void>::BorderLinearization |
| template<typename Scope, typename Test> | |
| using | serif::operators::backend::mfem::nodal_keys::SelectedInput = std::conditional_t<std::is_void_v<Scope>, Test, typename Scoped<Scope>::Samples> |
| Preserve the standalone source spelling while distinguishing scoped selections. | |
Functions | |
| template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> | |
| void | serif::operators::backend::mfem::validate_nodal_selection (const NodalDiscretization< EquationT, SchemaT > &discretization) |
| Check stored selection invariants before dereferencing or gathering any coefficient. | |
| template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> | |
| void | serif::operators::backend::mfem::validate_nodal_discretization (const NodalDiscretization< EquationT, SchemaT > &discretization) |
| Admit only nodal spaces and the complete selection required by the equation's point or boundary support. | |
| template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> | |
| auto | serif::operators::backend::mfem::make_nodal_discretization (const discretization::backend::mfem::TermBinding< typename EquationT::Test, SchemaT > &residual_binding, discretization::backend::mfem::DofSelection selected_rows) |
| Validate a caller-supplied selection immediately, before constructing its computation graph. | |
| template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> requires requires { EquationT::reference_position; } | |
| auto | serif::operators::backend::mfem::make_point_discretization (const discretization::backend::mfem::TermBinding< typename EquationT::Test, SchemaT > &residual_binding) |
| Select the equation's physical point once; coordinate changes require a new selection. | |
| template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> requires (discretization::domain::IsBoundary<equations::SupportOf<EquationT>> && discretization::blocks::SpatialTermTraits<typename EquationT::Test>::rank == 0) | |
| auto | serif::operators::backend::mfem::make_boundary_discretization (const discretization::backend::mfem::TermBinding< typename EquationT::Test, SchemaT > &residual_binding) |
| Select the scalar equation's boundary through its declared schema support. | |
| template<AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT> | |
| auto | serif::operators::backend::mfem::make_point_border_discretization (const discretization::backend::mfem::TermBinding< typename EquationT::Test, SchemaT > &residual_binding, const discretization::backend::mfem::TermBinding< typename EquationT::Border, SchemaT > &border_binding) |
| Couple the selected scalar point to a global scalar on the same mesh. | |
| template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> | |
| SelectedNodalValues | serif::operators::backend::mfem::select_nodal_values (const NodalDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| Validate the whole supplied vector, but cache only coefficients selected by this equation. | |
| template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> | |
| auto | serif::operators::backend::mfem::make_nodal_dependency_context (const NodalDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| The test term keys the selected coefficients needed by a nodal equation. | |
| template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> | |
| auto | serif::operators::backend::mfem::make_point_border_dependency_context (const PointBorderDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| A border scalar is a separate tracked source; changing it does not reevaluate the point equation. | |
| template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> | |
| auto | serif::operators::backend::mfem::make_nodal_binding_input (const NodalDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| Supply equation-local selection metadata and the common physical coefficient source. | |
| template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> | |
| auto | serif::operators::backend::mfem::make_nodal_inputs (const NodalDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| Supply a standalone nodal equation with its metadata and physical source. | |
| template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> | |
| auto | serif::operators::backend::mfem::make_point_border_binding_input (const PointBorderDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| Validate a point border while sharing its field coefficients with other model equations. | |
| template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> | |
| auto | serif::operators::backend::mfem::make_point_border_inputs (const PointBorderDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients) |
| Add the common physical sources consumed by a standalone affine point-border computation. | |