Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
115 lines
6.3 KiB
Groff
115 lines
6.3 KiB
Groff
.TH "serif::discretization::domain::relation::validation" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
serif::discretization::domain::relation::validation
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
.SS "Classes"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "struct \fBRelationsUseRegisteredEntities\fP"
|
|
.br
|
|
.RI "Compile time type to check if a list of relations uses the registered entities\&. "
|
|
.ti -1c
|
|
.RI "struct \fBRelationsUseRegisteredEntities< DomainIDsT, BoundaryIDsT, lists::RelationList< RelationTs\&.\&.\&. > >\fP"
|
|
.br
|
|
.RI "Compile time type to check if a list of relations uses the registered entities\&. This specialization is for the RelationList type, which is a variadic template that takes a list of relation types as template parameters\&. It checks if all relations in the list use registered entities based on the provided domain and boundary IDs\&. This will distribute to the various specializations of the singular \fBRelationUsesRegisteredEntities\fP struct while folding at compile time\&. "
|
|
.ti -1c
|
|
.RI "struct \fBRelationUsesRegisteredEntities\fP"
|
|
.br
|
|
.RI "Compile-time validation to check if a relation uses registered entities based on provided domain and boundary IDs\&. This struct is specialized for different relation types to determine if they use registered entities\&. "
|
|
.ti -1c
|
|
.RI "struct \fBRelationUsesRegisteredEntities< DomainBoundary< BoundaryT, DomainTs\&.\&.\&. >, DomainIDsT, BoundaryIDsT >\fP"
|
|
.br
|
|
.RI "Compile-time validation to check if a relation uses registered entities based on provided domain and boundary IDs\&. This specialization is for the Relation type \fBDomainBoundary\fP\&. \fBDomainBoundary\fP requires a boundary and one or more domains, and we enforce that the boundary and all domains are registered\&. "
|
|
.ti -1c
|
|
.RI "struct \fBRelationUsesRegisteredEntities< FullyConnected< DomainT >, DomainIDsT, BoundaryIDsT >\fP"
|
|
.br
|
|
.RI "Compile-time validation to check if a relation uses registered entities based on provided domain and boundary IDs\&. This specialization is for the Relation type \fBFullyConnected\fP\&. Fully connected only requires a single domain so we only enforce that the domain is registered\&. "
|
|
.ti -1c
|
|
.RI "struct \fBRelationUsesRegisteredEntities< Inscribed< InnerDomainT, OuterDomainT >, DomainIDsT, BoundaryIDsT >\fP"
|
|
.br
|
|
.RI "Compile-time validation to check if a relation uses registered entities based on provided domain and boundary IDs\&. This specialization is for the Relation type \fBInscribed\fP\&. \fBInscribed\fP requires two domains, an inner and an outer domain, and we enforce that both domains are registered\&. "
|
|
.ti -1c
|
|
.RI "struct \fBRelationValidationResult\fP"
|
|
.br
|
|
.RI "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\&. "
|
|
.in -1c
|
|
.SS "Concepts"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "concept \fBHaveValidRelationEntities\fP"
|
|
.br
|
|
.RI "Concept to validate that a set of domain IDs, boundary IDs, and relations are valid\&. This concept checks if the relations use registered entities based on the provided domain and boundary IDs\&. "
|
|
.in -1c
|
|
.SS "Enumerations"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "enum class \fBRelationValidationFailure\fP : std::uint8_t { \fBNone\fP, \fBDomainAbsent\fP, \fBDomainDisconnected\fP, \fBInnerDomainAbsent\fP, \fBOuterDomainAbsent\fP, \fBInnerDomainHasNoBoundary\fP, \fBInnerDomainTouchesMeshBoundary\fP, \fBInnerDomainTouchesUnexpectedDomain\fP, \fBDomainBoundaryAbsent\fP, \fBDomainBoundaryTaggedFaceHasWrongTopology\fP, \fBDomainBoundaryTaggedFaceTouchesUnexpectedDomain\fP, \fBDomainBoundaryExpectedFaceIsUntagged\fP, \fBDomainBoundaryExpectedFaceHasWrongID\fP }"
|
|
.br
|
|
.RI "Enum representing the types of validation failures that can occur when validating relations in the domain module\&. "
|
|
.in -1c
|
|
.SH "Enumeration Type Documentation"
|
|
.PP
|
|
.SS "enum class \fBserif::discretization::domain::relation::validation::RelationValidationFailure\fP : std::uint8_t\fR [strong]\fP"
|
|
|
|
.PP
|
|
Enum representing the types of validation failures that can occur when validating relations in the domain module\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
these are split into different categories based on their relation type; however, this is weakly enforced by convention and not the compiler\&.
|
|
.RE
|
|
.PP
|
|
|
|
.PP
|
|
\fBEnumerator\fP
|
|
.in +1c
|
|
.TP
|
|
\f(BINone \fP
|
|
No validation failure occurred\&.
|
|
.TP
|
|
\f(BIDomainAbsent \fP
|
|
The specified domain is absent in the provided domain ID list\&.
|
|
.TP
|
|
\f(BIDomainDisconnected \fP
|
|
The specified domain is disconnected, meaning it does not form a single connected component\&.
|
|
.TP
|
|
\f(BIInnerDomainAbsent \fP
|
|
The inner domain is absent in the provided domain ID list\&.
|
|
.TP
|
|
\f(BIOuterDomainAbsent \fP
|
|
The outer domain is absent in the provided domain ID list\&.
|
|
.TP
|
|
\f(BIInnerDomainHasNoBoundary \fP
|
|
The inner domain has no boundary, which is required for the inscribed relation (the boundary must be shared)
|
|
.TP
|
|
\f(BIInnerDomainTouchesMeshBoundary \fP
|
|
The inner domain touches the mesh boundary, which is not allowed for the inscribed relation (the inner domain must be fully contained within the outer domain)\&.
|
|
.TP
|
|
\f(BIInnerDomainTouchesUnexpectedDomain \fP
|
|
The inner domain touches an unexpected domain, which is not allowed for the inscribed relation (the inner domain must be fully contained within the outer domain)\&.
|
|
.TP
|
|
\f(BIDomainBoundaryAbsent \fP
|
|
The specified domain boundary is absent in the provided boundary ID list\&.
|
|
.TP
|
|
\f(BIDomainBoundaryTaggedFaceHasWrongTopology \fP
|
|
The tagged face of the domain boundary has the wrong topology, which is not allowed for the domain boundary relation (the face must have the correct topology)\&.
|
|
.TP
|
|
\f(BIDomainBoundaryTaggedFaceTouchesUnexpectedDomain \fP
|
|
The tagged face of the domain boundary touches an unexpected domain, which is not allowed for the domain boundary relation (the face must only touch the specified domains)\&.
|
|
.TP
|
|
\f(BIDomainBoundaryExpectedFaceIsUntagged \fP
|
|
The expected face of the domain boundary is untagged, which is not allowed for the domain boundary relation (the face must be tagged)\&.
|
|
.TP
|
|
\f(BIDomainBoundaryExpectedFaceHasWrongID \fP
|
|
The expected face of the domain boundary has the wrong ID, which is not allowed for the domain boundary relation (the face must have the correct ID)\&.
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|