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)
99 lines
6.3 KiB
Groff
99 lines
6.3 KiB
Groff
.TH "src/include/serif/operators/backend/mfem/nodal_computations.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
src/include/serif/operators/backend/mfem/nodal_computations.hpp
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
\fR#include <expected>\fP
|
|
.br
|
|
\fR#include <utility>\fP
|
|
.br
|
|
\fR#include <tuple>\fP
|
|
.br
|
|
\fR#include 'serif/operators/backend/mfem/nodal_evaluation\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/operators/backend/mfem/nodal_inputs\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/operators/backend/mfem/preparation\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/utils/dependencies/dependencies\&.hpp'\fP
|
|
.br
|
|
|
|
.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
|
|
.in -1c
|
|
.SS "Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<typename Scope, typename InputKey, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> auto \fBserif::operators::backend::mfem::make_nodal_evaluation_computation\fP (EquationT equation, \fBNodalDiscretization\fP< EquationT, SchemaT > discretization)"
|
|
.br
|
|
.RI "Declare the point or boundary calculation; its fixed equation and selection move with the graph\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> auto \fBserif::operators::backend::mfem::make_nodal_equation_computation\fP (EquationT equation, \fBNodalDiscretization\fP< EquationT, SchemaT > discretization)"
|
|
.br
|
|
.RI "Declare a standalone nodal evaluation from already selected coefficients\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> auto \fBserif::operators::backend::mfem::make_nodal_sampling_computation\fP (\fBNodalDiscretization\fP< EquationT, SchemaT > discretization)"
|
|
.br
|
|
.RI "Select nodal coefficients from the same physical field source used by volume equations\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT> auto \fBserif::operators::backend::mfem::make_nodal_equation_computations\fP (EquationT equation, \fBNodalDiscretization\fP< EquationT, SchemaT > discretization)"
|
|
.br
|
|
.RI "Declare sampling and point physics as ordinary stages of a larger dependency graph\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT> auto \fBserif::operators::backend::mfem::make_point_border_computation\fP (const \fBPointBorderDiscretization\fP< EquationT, SchemaT > &discretization)"
|
|
.br
|
|
.RI "Join the accepted point equation to its independently tracked global scalar\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT> auto \fBserif::operators::backend::mfem::make_point_border_computations\fP (EquationT equation, const \fBPointBorderDiscretization\fP< EquationT, SchemaT > &discretization)"
|
|
.br
|
|
.RI "Declare a complete affine point border without constructing an independent cache\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> auto \fBserif::operators::backend::mfem::make_nodal_equation_cache\fP (EquationT equation, const \fBNodalDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "Construct an ordinary dependency cache without evaluating the 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_cache\fP (EquationT equation, const \fBPointBorderDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients)"
|
|
.br
|
|
.RI "Keep the border scalar and point linearization in one dependency graph and one accepted result\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, typename CacheT, NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> std::expected< void, \fBPreparationRejection\fP > \fBserif::operators::backend::mfem::try_prepare_nodal\fP (CacheT &cache, const \fBNodalDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients, const \fBPreparationMode\fP mode=PreparationMode::reuse_unchanged)"
|
|
.br
|
|
.RI "Validate and gather the selected coefficients, then let the dependency cache decide what needs evaluation\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, typename CacheT, AffinePointEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT> std::expected< void, \fBPreparationRejection\fP > \fBserif::operators::backend::mfem::try_prepare_point_border\fP (CacheT &cache, const \fBPointBorderDiscretization\fP< EquationT, SchemaT > &discretization, const CoefficientsT &term_coefficients, const \fBPreparationMode\fP mode=PreparationMode::reuse_unchanged)"
|
|
.br
|
|
.RI "Validate both point and scalar sources before publishing the complete border calculation\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT> void \fBserif::operators::backend::mfem::prepare_nodal\fP (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const \fBPreparationMode\fP mode=PreparationMode::reuse_unchanged)"
|
|
.br
|
|
.RI "Translate a numerical rejection at the caller-facing throwing boundary\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT> void \fBserif::operators::backend::mfem::prepare_point_border\fP (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const \fBPreparationMode\fP mode=PreparationMode::reuse_unchanged)"
|
|
.br
|
|
.RI "Translate an affine border's numerical rejection at the caller-facing throwing boundary\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, typename CacheT> \fBNumericalWork\fP \fBserif::operators::backend::mfem::nodal_work_report\fP (const CacheT &cache)"
|
|
.br
|
|
.RI "Derive numerical work from the dependency report, without a second report lifecycle\&. "
|
|
.in -1c
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|