SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::discretization::domain::BoundaryIDResolver< BoundaryT, ids::lists::BoundaryIDList< BoundaryIDTs... > > Struct Template Reference

A specialization of the BoundaryIDResolver struct for a single Boundary type. This struct is used to resolve the boundary ID for a given Boundary type. More...

#include <resolver.hpp>

Static Public Member Functions

static constexpr bool contains_id (const int boundaryID) noexcept
 Check if the specified boundary ID belongs to the given Boundary type.
 
static consteval int id ()
 Get the ID for the specified Boundary type.
 

Static Public Attributes

static constexpr bool registered = (BoundaryIsIdentifiedBy<BoundaryT, BoundaryIDTs> || ...)
 True if the Boundary type is registered with at least one of the BoundaryID types in the list, false otherwise.
 

Detailed Description

template<IsBoundary BoundaryT, ids::IsBoundaryID... BoundaryIDTs>
struct serif::discretization::domain::BoundaryIDResolver< BoundaryT, ids::lists::BoundaryIDList< BoundaryIDTs... > >

A specialization of the BoundaryIDResolver struct for a single Boundary type. This struct is used to resolve the boundary ID for a given Boundary type.

Template Parameters
BoundaryTThe Boundary type to resolve the ID for.
BoundaryIDTsThe list of BoundaryID types that are expected in the mesh.
Note
MFEM has no pleasant and clear way to distinguish the idea of a boundary from the integer attribute tagging it. We elect to use the vocabulary Boundary for the idea and BoundaryID for the MFEM integer (and Domain / DomainID on the volume side), so the two sides read symmetrically. Generally in MFEM these would be called Boundary and BoundaryAttribute. Aside from that these follow the same logic as the DomainIDResolver specializations above, so I will not repeat the comments here.

Member Function Documentation

◆ contains_id()

template<IsBoundary BoundaryT, ids::IsBoundaryID... BoundaryIDTs>
static constexpr bool serif::discretization::domain::BoundaryIDResolver< BoundaryT, ids::lists::BoundaryIDList< BoundaryIDTs... > >::contains_id ( const int boundaryID)
inlinestaticnodiscardconstexprnoexcept

Check if the specified boundary ID belongs to the given Boundary type.

Parameters
boundaryIDThe boundary ID to check.
Returns
True if the boundary ID belongs to the specified Boundary type, false otherwise.

◆ id()

template<IsBoundary BoundaryT, ids::IsBoundaryID... BoundaryIDTs>
static consteval int serif::discretization::domain::BoundaryIDResolver< BoundaryT, ids::lists::BoundaryIDList< BoundaryIDTs... > >::id ( )
inlinestaticnodiscardconsteval

Get the ID for the specified Boundary type.

Returns
The ID for the specified Boundary type.

Member Data Documentation

◆ registered

template<IsBoundary BoundaryT, ids::IsBoundaryID... BoundaryIDTs>
bool serif::discretization::domain::BoundaryIDResolver< BoundaryT, ids::lists::BoundaryIDList< BoundaryIDTs... > >::registered = (BoundaryIsIdentifiedBy<BoundaryT, BoundaryIDTs> || ...)
staticconstexpr

True if the Boundary type is registered with at least one of the BoundaryID types in the list, false otherwise.


The documentation for this struct was generated from the following file: