SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
nodal_computations.hpp File Reference
Include dependency graph for nodal_computations.hpp:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  serif
 
namespace  serif::operators
 
namespace  serif::operators::backend
 
namespace  serif::operators::backend::mfem
 

Functions

template<typename Scope, typename InputKey, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
auto serif::operators::backend::mfem::make_nodal_evaluation_computation (EquationT equation, NodalDiscretization< EquationT, SchemaT > discretization)
 Declare the point or boundary calculation; its fixed equation and selection move with the graph.
 
template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
auto serif::operators::backend::mfem::make_nodal_equation_computation (EquationT equation, NodalDiscretization< EquationT, SchemaT > discretization)
 Declare a standalone nodal evaluation from already selected coefficients.
 
template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
auto serif::operators::backend::mfem::make_nodal_sampling_computation (NodalDiscretization< EquationT, SchemaT > discretization)
 Select nodal coefficients from the same physical field source used by volume equations.
 
template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
auto serif::operators::backend::mfem::make_nodal_equation_computations (EquationT equation, NodalDiscretization< EquationT, SchemaT > discretization)
 Declare sampling and point physics as ordinary stages of a larger dependency graph.
 
template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
auto serif::operators::backend::mfem::make_point_border_computation (const PointBorderDiscretization< EquationT, SchemaT > &discretization)
 Join the accepted point equation to its independently tracked global scalar.
 
template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
auto serif::operators::backend::mfem::make_point_border_computations (EquationT equation, const PointBorderDiscretization< EquationT, SchemaT > &discretization)
 Declare a complete affine point border without constructing an independent cache.
 
template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT>
auto serif::operators::backend::mfem::make_nodal_equation_cache (EquationT equation, const NodalDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)
 Construct an ordinary dependency cache without evaluating the nodal equation.
 
template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT>
auto serif::operators::backend::mfem::make_point_border_cache (EquationT equation, const PointBorderDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)
 Keep the border scalar and point linearization in one dependency graph and one accepted result.
 
template<typename Scope = void, typename CacheT, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT>
std::expected< void, PreparationRejection > serif::operators::backend::mfem::try_prepare_nodal (CacheT &cache, const NodalDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients, const PreparationMode mode=PreparationMode::reuse_unchanged)
 Validate and gather the selected coefficients, then let the dependency cache decide what needs evaluation.
 
template<typename Scope = void, typename CacheT, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT>
std::expected< void, PreparationRejection > serif::operators::backend::mfem::try_prepare_point_border (CacheT &cache, const PointBorderDiscretization< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients, const PreparationMode mode=PreparationMode::reuse_unchanged)
 Validate both point and scalar sources before publishing the complete border calculation.
 
template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT>
void serif::operators::backend::mfem::prepare_nodal (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const PreparationMode mode=PreparationMode::reuse_unchanged)
 Translate a numerical rejection at the caller-facing throwing boundary.
 
template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT>
void serif::operators::backend::mfem::prepare_point_border (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const PreparationMode mode=PreparationMode::reuse_unchanged)
 Translate an affine border's numerical rejection at the caller-facing throwing boundary.
 
template<typename Scope = void, typename CacheT>
NumericalWork serif::operators::backend::mfem::nodal_work_report (const CacheT &cache)
 Derive numerical work from the dependency report, without a second report lifecycle.