SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::discretization::domain::schema::validation::DomainBoundary< BoundaryT, DomainTs > Struct Template Referencefinal

Compile time type representing the domain boundary relation between a boundary and one or two domains. This relation states that the boundary is exactly the surface between the specified domains. We enforce here that the size of the DomainTs pack is either one or two, as a boundary can only be associated with one or two domains. If it is one domain then the boundary is the surface of that domain, if it is two domains then the boundary is the interface between those two domains. More...

#include <relations.hpp>

Inheritance diagram for serif::discretization::domain::schema::validation::DomainBoundary< BoundaryT, DomainTs >:
[legend]
Collaboration diagram for serif::discretization::domain::schema::validation::DomainBoundary< BoundaryT, DomainTs >:
[legend]

Public Types

using boundary_type = BoundaryT
 Boundary type defining the boundary in the domain boundary relation.
 
using domain_types = DomainOrSetList<DomainTs...>
 Domain or Domain Set types defining the domains in the domain boundary relation.
 

Static Public Attributes

static constexpr std::size_t domain_count = CountVariadicArguments<DomainTs...>()
 Compile time count of the number of domains associated with the boundary (either one or two).
 
static constexpr std::string_view name = "domain_boundary"
 Compile time name of the relation.
 

Detailed Description

template<IsBoundary BoundaryT, IsDomainOrSet... DomainTs>
requires SetOfOneOrTwo<DomainTs...>
struct serif::discretization::domain::schema::validation::DomainBoundary< BoundaryT, DomainTs >

Compile time type representing the domain boundary relation between a boundary and one or two domains. This relation states that the boundary is exactly the surface between the specified domains. We enforce here that the size of the DomainTs pack is either one or two, as a boundary can only be associated with one or two domains. If it is one domain then the boundary is the surface of that domain, if it is two domains then the boundary is the interface between those two domains.

Template Parameters
BoundaryTThe boundary type.
DomainTsThe domain or set types (one or two) that define the domains associated with the boundary.

This relation is used to define constraints on the mesh, ensuring that the boundary is properly aligned with the specified domains and that it represents the interface between them.

Member Typedef Documentation

◆ boundary_type

template<IsBoundary BoundaryT, IsDomainOrSet... DomainTs>
using serif::discretization::domain::relation::DomainBoundary< BoundaryT, DomainTs >::boundary_type = BoundaryT

Boundary type defining the boundary in the domain boundary relation.

◆ domain_types

template<IsBoundary BoundaryT, IsDomainOrSet... DomainTs>
using serif::discretization::domain::relation::DomainBoundary< BoundaryT, DomainTs >::domain_types = DomainOrSetList<DomainTs...>

Domain or Domain Set types defining the domains in the domain boundary relation.

Member Data Documentation

◆ domain_count

template<IsBoundary BoundaryT, IsDomainOrSet... DomainTs>
std::size_t serif::discretization::domain::relation::DomainBoundary< BoundaryT, DomainTs >::domain_count = CountVariadicArguments<DomainTs...>()
staticconstexpr

Compile time count of the number of domains associated with the boundary (either one or two).

◆ name

template<IsBoundary BoundaryT, IsDomainOrSet... DomainTs>
std::string_view serif::discretization::domain::relation::DomainBoundary< BoundaryT, DomainTs >::name = "domain_boundary"
staticconstexpr

Compile time name of the relation.

Todo
we should replace this with our meta library.

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