|
| 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.
|
| |