SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
element_preparation.hpp File Reference
Include dependency graph for element_preparation.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<VolumeEquation EquationT, typename ContributionT>
std::expected< ElementBasis< EquationPlan< EquationT >::operand_count >, PreparationRejection > serif::operators::backend::mfem::sample_element_basis (const ContributionT &equation, int element, const discretization::backend::mfem::DofMap &row, const discretization::backend::mfem::DofMap &displacement_binding, const std::array< const discretization::backend::mfem::DofMap *, EquationPlan< EquationT >::column_count > &columns, const mapping::DomainMapper &mapper, const discretization::quadrature::Policy &policy, TensorBasisCache &basis_cache, ContractionMode contraction_mode)
 Sample the contribution's quadrature rule and bases on the fixed computational mesh.
 
elements serif::operators::backend::mfem::element_values (basis.element, input.values, workspace.element_values)
 
template<VolumeEquation EquationT, typename ContributionT>
std::expected< ElementGeometry< EquationPlan< EquationT >::operand_count >, PreparationRejection > serif::operators::backend::mfem::map_element_geometry (const ElementBasis< EquationPlan< EquationT >::operand_count > &basis, const discretization::backend::mfem::DofMap &displacement_binding, const discretization::backend::mfem::DofMap::Elements &displacement_elements, const ::mfem::Vector &displacement, const MappingCoefficients &compactification, const mapping::DomainMapper &mapper, Workspace &workspace)
 Freeze displacement and compactification, then map quadrature points and bases to physical space.
 
template<EvaluableOperand OperandT, std::size_t Count>
::mfem::Vector serif::operators::backend::mfem::map_element_operand (const ::mfem::Vector &reference, const ElementGeometry< Count > &geometry, Workspace &workspace)
 Apply an operand's physical transformation to its cached fixed-mesh samples.
 
template<VolumeEquation EquationT, typename ContributionT>
equations::EquationPoint< typename ContributionT::Operands > serif::operators::backend::mfem::element_equation_point (const std::array< std::shared_ptr< const ::mfem::Vector >, EquationPlan< EquationT >::operand_count > &physical_values, const mapping::MappingPointContext &context, int point)
 Pack the physical samples requested by this contribution at one quadrature point.
 
template<VolumeEquation EquationT, typename ContributionT>
bool serif::operators::backend::mfem::store_element_linearization (const equations::PointLinearization< typename ContributionT::Operands, typename OperandEvaluator< equations::TestOperandOf< ContributionT > >::Value > &physics, int point, double weight, ElementData< EquationPlan< EquationT >::operand_count > &data)
 Weight a point's residual and derivatives; reject any non-finite stored component.
 
template<VolumeEquation EquationT, typename ContributionT>
std::expected< ElementData< EquationPlan< EquationT >::operand_count >, PreparationRejection > serif::operators::backend::mfem::evaluate_element_equation (const ContributionT &equation, double coefficient, std::shared_ptr< const ElementBasis< EquationPlan< EquationT >::operand_count > > basis, std::shared_ptr< const ElementGeometry< EquationPlan< EquationT >::operand_count > > geometry, std::array< std::shared_ptr< const ::mfem::Vector >, EquationPlan< EquationT >::operand_count > reference_values, const std::array< std::shared_ptr< const ::mfem::Vector >, EquationPlan< EquationT >::operand_count > &physical_values, Workspace &workspace)
 Evaluate and weight the equation while retaining its immutable preparation inputs.
 

Variables

template<VolumeEquation EquationT, EvaluableOperand OperandT, typename BindingT>
constexpr std::size_t serif::operators::backend::mfem::index = equations::OperandValues<typename Plan::Operands>::template index<OperandT>()
 Contract one operand's fixed-mesh basis with its current coefficients.
 
::mfem::Vector serif::operators::backend::mfem::values