\doxysection{src/include/serif/discretization/domain/concepts.hpp File Reference} \hypertarget{discretization_2domain_2concepts_8hpp}{}\label{discretization_2domain_2concepts_8hpp}\index{src/include/serif/discretization/domain/concepts.hpp@{src/include/serif/discretization/domain/concepts.hpp}} File containing concepts for the domain module. These concepts are used to constrain template parameters in the domain module. {\ttfamily \#include $<$cstddef$>$}\newline {\ttfamily \#include $<$string\+\_\+view$>$}\newline {\ttfamily \#include $<$span$>$}\newline {\ttfamily \#include $<$array$>$}\newline {\ttfamily \#include $<$format$>$}\newline {\ttfamily \#include $<$numeric$>$}\newline {\ttfamily \#include "{}serif/discretization/domain/types.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/misc/std\+\_\+helper/cleaning.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/misc/std\+\_\+helper/variadic\+\_\+cleaning.\+hpp"{}}\newline Include dependency graph for concepts.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{discretization_2domain_2concepts_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_2concepts_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_set}{serif\+::discretization\+::domain\+::\+Domain\+Set$<$ Domain\+Ts $>$}} \begin{DoxyCompactList}\small\item\em A \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set} is a collection of domains. It is used to group multiple domains together for convenience. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1discretization_1_1domain_1_1_domain_or_set}{serif\+::discretization\+::domain\+::\+Domain\+Or\+Set}} \begin{DoxyCompactList}\small\item\em A \doxylink{classserif_1_1discretization_1_1domain_1_1_domain_or_set}{Domain\+Or\+Set} is a type that can represent either a single domain or a set of domains. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_boundary_set}{serif\+::discretization\+::domain\+::\+Boundary\+Set$<$ Boundary\+Ts $>$}} \begin{DoxyCompactList}\small\item\em A \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary_set}{Boundary\+Set} is a collection of boundaries. It is used to group multiple boundaries together for convenience. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_or_set_list}{serif\+::discretization\+::domain\+::\+Domain\+Or\+Set\+List$<$ Domain\+Ts $>$}} \begin{DoxyCompactList}\small\item\em A list of \doxylink{classserif_1_1discretization_1_1domain_1_1_domain_or_set}{Domain\+Or\+Set} types. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structstd_1_1formatter_3_01serif_1_1discretization_1_1domain_1_1_domain_or_set_01_4}{std\+::formatter$<$ serif\+::discretization\+::domain\+::\+Domain\+Or\+Set $>$}} \begin{DoxyCompactList}\small\item\em Specialization of std\+::formatter for Domain\+Or\+Set. This allows us to use std\+::format to format Domain\+Or\+Set objects. \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}} \end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1discretization_1_1domain_1_1_is_domain}{serif\+::discretization\+::domain\+::\+Is\+Domain}} \begin{DoxyCompactList}\small\item\em \texorpdfstring{$<$}{<} \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1discretization_1_1domain_1_1_is_boundary}{serif\+::discretization\+::domain\+::\+Is\+Boundary}} \begin{DoxyCompactList}\small\item\em A Boundary is a surface in the mesh. It is a base class for all boundary types. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1discretization_1_1domain_1_1_is_domain_set}{serif\+::discretization\+::domain\+::\+Is\+Domain\+Set}} \begin{DoxyCompactList}\small\item\em A concept to determine if a type is a Domain\+Set. A type is a Domain\+Set if it satisfies the is\+\_\+domain\+\_\+set\+\_\+v trait. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1discretization_1_1domain_1_1_is_domain_or_set}{serif\+::discretization\+::domain\+::\+Is\+Domain\+Or\+Set}} \begin{DoxyCompactList}\small\item\em A concept to determine if a type is a Domain\+Or\+Set. A type is a Domain\+Or\+Set if it is either a Domain or a Domain\+Set. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1discretization_1_1domain_1_1_domain_is_identified_by}{serif\+::discretization\+::domain\+::\+Domain\+Is\+Identified\+By}} \begin{DoxyCompactList}\small\item\em A concept to determine if a Domain type is identified by a Domain\+ID type. A Domain type is identified by a Domain\+ID type if the Domain\+ID\textquotesingle{}s domain\+\_\+type is the same as the Domain type. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1discretization_1_1domain_1_1_boundary_is_identified_by}{serif\+::discretization\+::domain\+::\+Boundary\+Is\+Identified\+By}} \begin{DoxyCompactList}\small\item\em A concept to determine if a Boundary type is identified by a Boundary\+ID type. A Boundary type is identified by a Boundary\+ID type if the Boundary\+ID\textquotesingle{}s boundary\+\_\+type is the same as the Boundary type. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename... Ts$>$ }\\consteval std\+::size\+\_\+t \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_a1b57d195e9d643b262222f5d50ed1dd0}{serif\+::discretization\+::domain\+::\+Count\+Variadic\+Arguments}} () noexcept \begin{DoxyCompactList}\small\item\em \texorpdfstring{$<$}{<} \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Variables} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename T$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_af79faa141025275717dc28e8b3244c31}{serif\+::discretization\+::domain\+::is\+\_\+domain\+\_\+set\+\_\+v}} = false \begin{DoxyCompactList}\small\item\em A trait to determine if a type is a \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set}. This is the default false specialization. \end{DoxyCompactList}\item {\footnotesize template$<$Is\+Domain... Domain\+Ts$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_af8cecaf8fc81e98a8e5fb613c8eca8be}{serif\+::discretization\+::domain\+::is\+\_\+domain\+\_\+set\+\_\+v$<$ Domain\+Set$<$ Domain\+Ts... $>$ $>$}} = true \begin{DoxyCompactList}\small\item\em A trait to determine if a type is a \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set}. This is the true specialization for \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set} types. \end{DoxyCompactList}\item {\footnotesize template$<$class Child, class Parent$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_a5e9d22ad04a3b00122f90cb5ceea35e9}{serif\+::discretization\+::domain\+::\+AIs\+Base\+Class\+OfB}} \end{DoxyCompactItemize} \doxysubsection{Detailed Description} File containing concepts for the domain module. These concepts are used to constrain template parameters in the domain module. \begin{DoxyAuthor}{Author} Emily M. Boudreaux \end{DoxyAuthor}