SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::discretization::domain::schema::validation Namespace Reference

Classes

struct  DomainBoundary
 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...
 
struct  FullyConnected
 Compile time type representing the fully connected relation for a domain or set. This relation states that the domain is a single connected blob of elements, not two separate pieces. More...
 
struct  Inscribed
 Compile time type representing the inscribed relation between two domains or sets. This relation states that every face of the inner domain (A) that is not interior to A borders the outer domain (B). More...
 
struct  RelationValidationResult
 Struct representing the result of validating a relation in the domain module. It contains information about the validation failure, if any, and optional diagnostics for specific relation types. More...
 
struct  RelationValidator
 Primary template for RelationValidator. Each relation kind is validated by an explicit specialization of this template, which lives in a sibling header (inscribed.hpp, connected.hpp, boundary.hpp). More...
 
struct  RelationValidator< DomainBoundary< BoundaryT, DomainTs... > >
 Specialization of RelationValidator for DomainBoundary relations. This relation enforces that a boundary element is adjacent to exactly one or two volume elements. More...
 
struct  RelationValidator< FullyConnected< DomainT > >
 Specialization of RelationValidator for FullyConnected relations. This relation enforces that a domain is fully connected, meaning that all elements of the domain are reachable from any other element of the domain. More...
 
struct  RelationValidator< Inscribed< InnerT, OuterT > >
 Specialization of RelationValidator for Inscribed relations. This relation enforces that an inner domain is inscribed within an outer domain, meaning that every face where the inner domain stops must have the outer domain on the far side. More...
 
struct  SchemaRelationValidationResult
 The result of validating a single relation against a mesh. More...
 
struct  SchemaRelationValidator
 Fold that runs one validator per declared relation in a schema. More...
 
struct  SchemaRelationValidator< SchemaT, relation::lists::RelationList< RelationTs... > >
 Fold that runs one validator per declared relation in a schema. This specialization is for a RelationList of arbitrary length. More...
 
struct  SchemaValidationResult
 The result of validating a schema against a mesh. More...
 

Enumerations

enum class  RelationValidationFailure
 Enum representing the types of validation failures that can occur when validating relations in the domain module. More...
 
enum class  RelationValidationFailure
 Enum representing the types of validation failures that can occur when validating relations in the domain module. More...
 
enum class  RelationValidationFailure
 Enum representing the types of validation failures that can occur when validating relations in the domain module. More...
 

Functions

template<IsSchema SchemaT>
SchemaValidationResult validate_schema (const mesh::MeshTopology &topology)
 Validate a mesh against a schema.
 

Enumeration Type Documentation

◆ RelationValidationFailure [1/3]

Enum representing the types of validation failures that can occur when validating relations in the domain module.

Note
these are split into different categories based on their relation type; however, this is weakly enforced by convention and not the compiler.

◆ RelationValidationFailure [2/3]

Enum representing the types of validation failures that can occur when validating relations in the domain module.

Note
these are split into different categories based on their relation type; however, this is weakly enforced by convention and not the compiler.

◆ RelationValidationFailure [3/3]

Enum representing the types of validation failures that can occur when validating relations in the domain module.

Note
these are split into different categories based on their relation type; however, this is weakly enforced by convention and not the compiler.

Function Documentation

◆ validate_schema()

template<IsSchema SchemaT>
SchemaValidationResult serif::discretization::domain::schema::validation::validate_schema ( const mesh::MeshTopology & topology)
nodiscard

Validate a mesh against a schema.

Template Parameters
SchemaTThe schema type to validate against.
Parameters
topologyThe mesh topology to validate.
Returns
A SchemaValidationResult containing the validation results.