SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
mfem_resolver.hpp File Reference

File containing the MFEMResolver class. This class is used to resolve the appropriate MFEM integration rule for a given quadrature context. More...

Include dependency graph for mfem_resolver.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::discretization::quadrature::backend::mfem::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...
 
struct  serif::discretization::quadrature::backend::mfem::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...
 
class  serif::discretization::quadrature::backend::mfem::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...
 

Namespaces

namespace  serif
 
namespace  serif::discretization
 
namespace  serif::discretization::quadrature
 
namespace  serif::discretization::quadrature::backend
 
namespace  serif::discretization::quadrature::backend::mfem
 

Detailed Description

File containing the MFEMResolver class. This class is used to resolve the appropriate MFEM integration rule for a given quadrature context.

Author
Emily M. Boudreaux
Note
We may want to consider renaming this file to runtime to stick to convention. The reason I did not initially is that this is more specific than pure runtime projection of compile time invariants (which is what most of the other files named runtime.hpp do). Something to think about.
You will see mfem throughout. This is an important syntax to use here since MFEM's code lives in the mfem namespace; however, we also have code living in an mfem namespace. Outside of translation units that include using namespace serif::discretization::quadrature::backend and outside of the serif::discretization::quadrature::backend::mfem namespace itself these two things do not conflict. However, in those two cases there is a degeneracy the compiler cannot resolve between mfem:: and mfem::. Using mfem explicitly tells the compiler that we are looking from the root of the namespace tree not the current namespace.