SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::discretization::quadrature::backend::mfem Namespace Reference

Classes

struct  MFEMOperandListOrder
 A helper struct to compute the static order of an MFEM integrator for a given list of operands. More...
 
struct  MFEMOperandListOrder< utils::types::TypeList< OperandTs... > >
 A specialization of the MFEMOperandListOrder struct for a list of operand types. This struct is used to compute the static order of an MFEM integrator for a given list of operands. More...
 
struct  MFEMQuadratureContext
 The MFEMQuadratureContext struct is used to describe the context in which we are trying to resolve an MFEM integration rule. This includes the geometry type, the order of the geometry weight, any dynamic orders, the domain or set of domains, and the mapping kind. More...
 
class  MFEMResolver
 The MFEMResolver class is used to resolve the appropriate MFEM integration rule for a given quadrature context. It uses a policy to determine the appropriate order and other relevant information for the integration rule. More...
 
struct  MFEMRule
 The MFEMRule struct is used to describe the result of resolving an MFEM integration rule. This includes the resolution (which contains the order and any other relevant information) and a pointer to the integration rule itself. More...
 

Concepts

concept  HasReferenceSetIntegrationRule
 A HasReferenceSetIntegrationRule is an integrator that can be configured with a reference to an integration rule.
 
concept  HasPointerSetIntegrationRule
 A HasPointerSetIntegrationRule is an integrator that can be configured with a pointer to an integration rule.
 
concept  HasSetIntRule
 A HasSetIntRule is an integrator that can be configured with an integration rule by value.
 
concept  ConfigurableIntegrator
 A ConfigurableIntegrator is an integrator that can be configured with an integration rule in some way (either by reference, by pointer, or by value).
 

Functions

template<ConfigurableIntegrator IntegratorT>
void set_integration_rule (IntegratorT &integrator, const ::mfem::IntegrationRule &integration_rule)
 Configure an MFEM integrator with an integration rule. This function will call the appropriate SetIntegrationRule method on the integrator based on its capabilities.
 
template<forms::IsOperand OperandT>
consteval int resolve_operand_order () noexcept
 A function to resolve the static order of an MFEM integrator for a given operand type.
 
int sum_dynamic_orders (const std::span< const int > dynamic_orders)
 Sums the dynamic orders in a span of integers.
 

Variables

template<forms::Form FormT>
constexpr int mfem_form_static_order = MFEMOperandListOrder<typename FormT::operand_types>::value
 A trait to determine the static order of an MFEM integrator for a given form type.
 

Function Documentation

◆ resolve_operand_order()

template<forms::IsOperand OperandT>
int serif::discretization::quadrature::backend::mfem::resolve_operand_order ( )
nodiscardconstevalnoexcept

A function to resolve the static order of an MFEM integrator for a given operand type.

Template Parameters
OperandTThe operand type to resolve the static order for.
Returns
The static order of the MFEM integrator for the given operand type.
Todo
We already have some of this information in the form_traits file, we should probably extract the order boost from there.

◆ set_integration_rule()

template<ConfigurableIntegrator IntegratorT>
void serif::discretization::quadrature::backend::mfem::set_integration_rule ( IntegratorT & integrator,
const ::mfem::IntegrationRule & integration_rule )

Configure an MFEM integrator with an integration rule. This function will call the appropriate SetIntegrationRule method on the integrator based on its capabilities.

Template Parameters
IntegratorTThe type of the integrator to configure.
Parameters
integratorThe integrator to configure.
integration_ruleThe integration rule to use for configuration.

◆ sum_dynamic_orders()

int serif::discretization::quadrature::backend::mfem::sum_dynamic_orders ( const std::span< const int > dynamic_orders)
inlinenodiscard

Sums the dynamic orders in a span of integers.

Parameters
dynamic_ordersThe span of dynamic orders to sum.
Returns
The sum of the dynamic orders.

Variable Documentation

◆ mfem_form_static_order

template<forms::Form FormT>
int serif::discretization::quadrature::backend::mfem::mfem_form_static_order = MFEMOperandListOrder<typename FormT::operand_types>::value
inlineconstexpr

A trait to determine the static order of an MFEM integrator for a given form type.

Template Parameters
FormTThe form type to check.