\doxysection{src/include/serif/discretization/domain/relation/validation/validation.hpp File Reference} \hypertarget{discretization_2domain_2relation_2validation_2validation_8hpp}{}\label{discretization_2domain_2relation_2validation_2validation_8hpp}\index{src/include/serif/discretization/domain/relation/validation/validation.hpp@{src/include/serif/discretization/domain/relation/validation/validation.hpp}} Compile-\/time validation of relations in the discretization framework. This file provides utilities to check if relations use registered entities based on provided domain and boundary IDs. {\ttfamily \#include $<$type\+\_\+traits$>$}\newline {\ttfamily \#include "{}serif/discretization/domain/concepts.\+hpp"{}}\newline {\ttfamily \#include "{}serif/discretization/domain/ids/lists/concepts.\+hpp"{}}\newline {\ttfamily \#include "{}serif/discretization/domain/relation/concepts.\+hpp"{}}\newline {\ttfamily \#include "{}serif/discretization/domain/relation/lists/concepts.\+hpp"{}}\newline {\ttfamily \#include "{}serif/discretization/domain/relation/lists/relation\+\_\+list.\+hpp"{}}\newline {\ttfamily \#include "{}serif/discretization/domain/resolver.\+hpp"{}}\newline Include dependency graph for validation.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{discretization_2domain_2relation_2validation_2validation_8hpp__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{discretization_2domain_2relation_2validation_2validation_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1relation_1_1validation_1_1_relation_uses_registered_ea6e10ab4070c2d283a3d1aba54bd0b95}{serif\+::discretization\+::domain\+::relation\+::validation\+::\+Relation\+Uses\+Registered\+Entities$<$ Fully\+Connected$<$ Domain\+T $>$, Domain\+IDs\+T, Boundary\+IDs\+T $>$}} \begin{DoxyCompactList}\small\item\em 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 \doxylink{structserif_1_1discretization_1_1domain_1_1relation_1_1_fully_connected}{Fully\+Connected}. Fully connected only requires a single domain so we only enforce that the domain is registered. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1relation_1_1validation_1_1_relation_uses_registered_e061a6c8f2519bba1ed81730b07977af0}{serif\+::discretization\+::domain\+::relation\+::validation\+::\+Relation\+Uses\+Registered\+Entities$<$ Inscribed$<$ Inner\+Domain\+T, Outer\+Domain\+T $>$, Domain\+IDs\+T, Boundary\+IDs\+T $>$}} \begin{DoxyCompactList}\small\item\em 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 \doxylink{structserif_1_1discretization_1_1domain_1_1relation_1_1_inscribed}{Inscribed}. \doxylink{structserif_1_1discretization_1_1domain_1_1relation_1_1_inscribed}{Inscribed} requires two domains, an inner and an outer domain, and we enforce that both domains are registered. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1relation_1_1validation_1_1_relation_uses_registered_e3275c2719d82b353d56c4a3ba2639119}{serif\+::discretization\+::domain\+::relation\+::validation\+::\+Relation\+Uses\+Registered\+Entities$<$ Domain\+Boundary$<$ Boundary\+T, Domain\+Ts... $>$, Domain\+IDs\+T, Boundary\+IDs\+T $>$}} \begin{DoxyCompactList}\small\item\em 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 \doxylink{structserif_1_1discretization_1_1domain_1_1relation_1_1_domain_boundary}{Domain\+Boundary}. \doxylink{structserif_1_1discretization_1_1domain_1_1relation_1_1_domain_boundary}{Domain\+Boundary} requires a boundary and one or more domains, and we enforce that the boundary and all domains are registered. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1relation_1_1validation_1_1_relations_use_registered_e35398f9ddb35428b81fce4de998872b0}{serif\+::discretization\+::domain\+::relation\+::validation\+::\+Relations\+Use\+Registered\+Entities$<$ Domain\+IDs\+T, Boundary\+IDs\+T, lists\+::\+Relation\+List$<$ Relation\+Ts... $>$ $>$}} \begin{DoxyCompactList}\small\item\em Compile time type to check if a list of relations uses the registered entities. This specialization is for the Relation\+List 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 \doxylink{structserif_1_1discretization_1_1domain_1_1relation_1_1validation_1_1_relation_uses_registered_entities}{Relation\+Uses\+Registered\+Entities} struct while folding at compile time. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1discretization}{serif\+::discretization}} \item namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain}{serif\+::discretization\+::domain}} \item namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_1_1relation}{serif\+::discretization\+::domain\+::relation}} \item namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_1_1relation_1_1validation}{serif\+::discretization\+::domain\+::relation\+::validation}} \end{DoxyCompactItemize} \doxysubsection{Detailed Description} Compile-\/time validation of relations in the discretization framework. This file provides utilities to check if relations use registered entities based on provided domain and boundary IDs. \begin{DoxyAuthor}{Author} Emily M. Boudreaux \end{DoxyAuthor} \begin{DoxyNote}{Note} This header is primarily split into a singular and a plural section. The plural section simply folds over a pack to invoke the singular section. \end{DoxyNote}