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

File containing concepts for the domain module. These concepts are used to constrain template parameters in the domain module. More...

#include <cstddef>
#include <string_view>
#include <span>
#include <array>
#include <format>
#include <numeric>
#include "serif/discretization/domain/types.hpp"
#include "serif/utils/misc/std_helper/cleaning.hpp"
#include "serif/utils/misc/std_helper/variadic_cleaning.hpp"
Include dependency graph for concepts.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::discretization::domain::DomainSet< DomainTs >
 A DomainSet is a collection of domains. It is used to group multiple domains together for convenience. More...
 
class  serif::discretization::domain::DomainOrSet
 A DomainOrSet is a type that can represent either a single domain or a set of domains. More...
 
struct  serif::discretization::domain::BoundarySet< BoundaryTs >
 A BoundarySet is a collection of boundaries. It is used to group multiple boundaries together for convenience. More...
 
struct  serif::discretization::domain::DomainOrSetList< DomainTs >
 A list of DomainOrSet types. More...
 
struct  std::formatter< serif::discretization::domain::DomainOrSet >
 Specialization of std::formatter for DomainOrSet. This allows us to use std::format to format DomainOrSet objects. More...
 

Namespaces

namespace  serif
 
namespace  serif::discretization
 
namespace  serif::discretization::domain
 

Concepts

concept  serif::discretization::domain::IsDomain
 <
 
concept  serif::discretization::domain::IsBoundary
 A Boundary is a surface in the mesh. It is a base class for all boundary types.
 
concept  serif::discretization::domain::IsDomainSet
 A concept to determine if a type is a DomainSet. A type is a DomainSet if it satisfies the is_domain_set_v trait.
 
concept  serif::discretization::domain::IsDomainOrSet
 A concept to determine if a type is a DomainOrSet. A type is a DomainOrSet if it is either a Domain or a DomainSet.
 
concept  serif::discretization::domain::DomainIsIdentifiedBy
 A concept to determine if a Domain type is identified by a DomainID type. A Domain type is identified by a DomainID type if the DomainID's domain_type is the same as the Domain type.
 
concept  serif::discretization::domain::BoundaryIsIdentifiedBy
 A concept to determine if a Boundary type is identified by a BoundaryID type. A Boundary type is identified by a BoundaryID type if the BoundaryID's boundary_type is the same as the Boundary type.
 

Functions

template<typename... Ts>
consteval std::size_t serif::discretization::domain::CountVariadicArguments () noexcept
 <
 

Variables

template<typename T>
constexpr bool serif::discretization::domain::is_domain_set_v = false
 A trait to determine if a type is a DomainSet. This is the default false specialization.
 
template<IsDomain... DomainTs>
constexpr bool serif::discretization::domain::is_domain_set_v< DomainSet< DomainTs... > > = true
 A trait to determine if a type is a DomainSet. This is the true specialization for DomainSet types.
 
template<class Child, class Parent>
constexpr bool serif::discretization::domain::AIsBaseClassOfB
 

Detailed Description

File containing concepts for the domain module. These concepts are used to constrain template parameters in the domain module.

Author
Emily M. Boudreaux