runtime.hpp cstdint optional src/include/serif/discretization/domain/schema/validation/boundary.hpp src/include/serif/discretization/domain/schema/validation/connected.hpp src/include/serif/discretization/domain/schema/validation/inscribed.hpp src/include/serif/discretization/domain/schema/validation/results.hpp src/include/serif/discretization/domain/schema/validation/validator.hpp serif::discretization::domain::relation::validation::RelationValidationResult serif::discretization::domain::relation::validation::RelationValidationResult::InscribedDiagnostics serif::discretization::domain::relation::validation::RelationValidationResult::ConnectedDiagnostics serif::discretization::domain::relation::validation::RelationValidationResult::DomainBoundaryDiagnostics serif serif::discretization serif::discretization::domain serif::discretization::domain::relation serif::discretization::domain::relation::validation This file contains the runtime validation results for relations in the domain module. Emily M. Boudreaux #pragmaonce #include<cstdint> #include<optional> namespaceserif::discretization::domain::relation::validation{ enumclassRelationValidationFailure:std::uint8_t{ None, //FullyConnected<DomainT> DomainAbsent, DomainDisconnected, //Inscribed<InnerT,OuterT> InnerDomainAbsent, OuterDomainAbsent, InnerDomainHasNoBoundary, InnerDomainTouchesMeshBoundary, InnerDomainTouchesUnexpectedDomain, //DomainBoundary<BoundaryT,DomainTs...> DomainBoundaryAbsent, DomainBoundaryTaggedFaceHasWrongTopology, DomainBoundaryTaggedFaceTouchesUnexpectedDomain, DomainBoundaryExpectedFaceIsUntagged, DomainBoundaryExpectedFaceHasWrongID }; structRelationValidationResult{ RelationValidationFailurefailure{RelationValidationFailure::None}; structInscribedDiagnostics{ intfaceID{-1}; intinnerElementID{-1}; intadjacentElementID{-1}; intadjacentDomainID{-1}; }; std::optional<InscribedDiagnostics>inscribedDiagnostics=std::nullopt; structConnectedDiagnostics{ intelementID{-1}; intdomainElementCount{0}; intvisitedElementCount{0}; }; std::optional<ConnectedDiagnostics>connectedDiagnostics=std::nullopt; structDomainBoundaryDiagnostics{ intfaceID{-1}; intboundaryElementID{-1}; intexpectedBoundaryID{0}; std::optional<int>actualBoundaryID=std::nullopt; intfirstElementID{-1}; intsecondElementID{-1}; std::optional<int>firstDomainID=std::nullopt; std::optional<int>secondDomainID=std::nullopt; }; std::optional<DomainBoundaryDiagnostics>domainBoundaryDiagnostics=std::nullopt; [[nodiscard]]boolvalid()constnoexcept{ returnfailure==RelationValidationFailure::None; } [[nodiscard]]explicitoperatorbool()constnoexcept{ returnvalid(); } }; }