Files
MeanField_SERiF/docs/latex/namespaceserif_1_1discretization_1_1domain.tex
Emily Boudreaux 6b57738330 docs(docs): built docs
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)
2026-11-09 14:09:44 -05:00

168 lines
19 KiB
TeX

\doxysection{serif\+::discretization\+::domain Namespace Reference}
\hypertarget{namespaceserif_1_1discretization_1_1domain}{}\label{namespaceserif_1_1discretization_1_1domain}\index{serif::discretization::domain@{serif::discretization::domain}}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_1_1ids}{ids}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_1_1mesh}{mesh}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_1_1relation}{relation}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_1_1schema}{schema}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_boundary}{Boundary}}
\begin{DoxyCompactList}\small\item\em A \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary}{Boundary} is a surface in the mesh. It is a base class for all boundary types. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_boundary_i_d_resolver}{Boundary\+IDResolver}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_i_d_resolver}{Domain\+IDResolver} struct for a \doxylink{classserif_1_1discretization_1_1domain_1_1_domain_or_set}{Domain\+Or\+Set} type. This struct is used to resolve the domain IDs for a given \doxylink{classserif_1_1discretization_1_1domain_1_1_domain_or_set}{Domain\+Or\+Set} type. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_boundary_i_d_resolver_3_01_boundary_set_3_01_boundardf0745416ccea48cae2813336cb4fa51}{Boundary\+IDResolver$<$ Boundary\+Set$<$ Boundary\+Ts... $>$, ids\+::lists\+::\+Boundary\+IDList$<$ Boundary\+IDTs... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary_i_d_resolver}{Boundary\+IDResolver} struct for a \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary_set}{Boundary\+Set} type. This struct is used to resolve the boundary IDs for a given \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary_set}{Boundary\+Set} type. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_boundary_i_d_resolver_3_01_boundary_t_00_01ids_1_1li2689267af648404251e26798b0b9b3b9}{Boundary\+IDResolver$<$ Boundary\+T, ids\+::lists\+::\+Boundary\+IDList$<$ Boundary\+IDTs... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary_i_d_resolver}{Boundary\+IDResolver} struct for a single \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary}{Boundary} type. This struct is used to resolve the boundary ID for a given \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary}{Boundary} type. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_boundary_set}{Boundary\+Set}}
\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_core_domain}{Core\+Domain}}
\begin{DoxyCompactList}\small\item\em The \doxylink{structserif_1_1discretization_1_1domain_1_1_core_domain}{Core\+Domain} is the central, cartesian, region of the star. It is a derived class of \doxylink{structserif_1_1discretization_1_1domain_1_1_domain}{Domain}. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain}{Domain}}
\begin{DoxyCompactList}\small\item\em A \doxylink{structserif_1_1discretization_1_1domain_1_1_domain}{Domain} is a volume in the mesh. It is a base class for all domain types. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_i_d_resolver}{Domain\+IDResolver}}
\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_i_d_resolver_3_01_domain_set_3_01_domain_ts_87d2a0f186034cba3e08f075159f6c5aa}{Domain\+IDResolver$<$ Domain\+Set$<$ Domain\+Ts... $>$, ids\+::lists\+::\+Domain\+IDList$<$ Domain\+IDTs... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_i_d_resolver}{Domain\+IDResolver} struct for a \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set} type. This struct is used to resolve the domain IDs for a given \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set} type. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_i_d_resolver_3_01_domain_t_00_01ids_1_1lists_691dc5cdd5bb726ea229a1452241f3d6}{Domain\+IDResolver$<$ Domain\+T, ids\+::lists\+::\+Domain\+IDList$<$ Domain\+IDTs... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1discretization_1_1domain_1_1_domain_i_d_resolver}{Domain\+IDResolver} struct for a single \doxylink{structserif_1_1discretization_1_1domain_1_1_domain}{Domain} type. This struct is used to resolve the domain ID for a given \doxylink{structserif_1_1discretization_1_1domain_1_1_domain}{Domain} type. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classserif_1_1discretization_1_1domain_1_1_domain_or_set}{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_domain_or_set_list}{Domain\+Or\+Set\+List}}
\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{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set}}
\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
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_envelope_domain}{Envelope\+Domain}}
\begin{DoxyCompactList}\small\item\em The \doxylink{structserif_1_1discretization_1_1domain_1_1_envelope_domain}{Envelope\+Domain} is the outer, spherical, region of the star. It is a derived class of \doxylink{structserif_1_1discretization_1_1domain_1_1_domain}{Domain}. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_infinity_surface_boundary}{Infinity\+Surface\+Boundary}}
\begin{DoxyCompactList}\small\item\em The \doxylink{structserif_1_1discretization_1_1domain_1_1_infinity_surface_boundary}{Infinity\+Surface\+Boundary} is the surface at infinity. It is a derived class of \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary}{Boundary}. More generally this is the outer boundary of the vacuum region; however, since we really need the boundary conditions to be applied at infinity, we call it the infinity surface. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_stellar_surface_boundary}{Stellar\+Surface\+Boundary}}
\begin{DoxyCompactList}\small\item\em The \doxylink{structserif_1_1discretization_1_1domain_1_1_stellar_surface_boundary}{Stellar\+Surface\+Boundary} is the surface of the star. It is a derived class of \doxylink{structserif_1_1discretization_1_1domain_1_1_boundary}{Boundary}. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_vacuum_domain}{Vacuum\+Domain}}
\begin{DoxyCompactList}\small\item\em The \doxylink{structserif_1_1discretization_1_1domain_1_1_vacuum_domain}{Vacuum\+Domain} is the vacuum region surrounding the star. It is a derived class of \doxylink{structserif_1_1discretization_1_1domain_1_1_domain}{Domain}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Concepts}
\begin{DoxyCompactItemize}
\item
concept \mbox{\hyperlink{conceptserif_1_1discretization_1_1domain_1_1_is_domain}{Is\+Domain}}
\begin{DoxyCompactList}\small\item\em \texorpdfstring{$<$}{<} \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1discretization_1_1domain_1_1_is_boundary}{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}{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}{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}{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}{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*{Typedefs}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_aa2fd687c5f7b8750fd6980f2a7a77652}{Stellar\+Domains}} = \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set}}$<$\mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_core_domain}{Core\+Domain}}, \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_envelope_domain}{Envelope\+Domain}}$>$
\begin{DoxyCompactList}\small\item\em The set of domains that make up the stellar region of the mesh. \end{DoxyCompactList}\item
using \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_a46dfe7f95e0184edff495bd82e3d7b5d}{All\+Domains}} = \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set}}$<$\mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_core_domain}{Core\+Domain}}, \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_envelope_domain}{Envelope\+Domain}}, \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_vacuum_domain}{Vacuum\+Domain}}$>$
\begin{DoxyCompactList}\small\item\em The set of all domains in the mesh. \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}{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}{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}{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}{AIs\+Base\+Class\+OfB}}
\end{DoxyCompactItemize}
\doxysubsection{Typedef Documentation}
\Hypertarget{namespaceserif_1_1discretization_1_1domain_a46dfe7f95e0184edff495bd82e3d7b5d}\index{serif::discretization::domain@{serif::discretization::domain}!AllDomains@{AllDomains}}
\index{AllDomains@{AllDomains}!serif::discretization::domain@{serif::discretization::domain}}
\doxysubsubsection{\texorpdfstring{AllDomains}{AllDomains}}
{\footnotesize\ttfamily \label{namespaceserif_1_1discretization_1_1domain_a46dfe7f95e0184edff495bd82e3d7b5d}
using \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_a46dfe7f95e0184edff495bd82e3d7b5d}{serif\+::discretization\+::domain\+::\+All\+Domains}} = \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set}}$<$\mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_core_domain}{Core\+Domain}}, \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_envelope_domain}{Envelope\+Domain}}, \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_vacuum_domain}{Vacuum\+Domain}}$>$}
The set of all domains in the mesh.
\Hypertarget{namespaceserif_1_1discretization_1_1domain_aa2fd687c5f7b8750fd6980f2a7a77652}\index{serif::discretization::domain@{serif::discretization::domain}!StellarDomains@{StellarDomains}}
\index{StellarDomains@{StellarDomains}!serif::discretization::domain@{serif::discretization::domain}}
\doxysubsubsection{\texorpdfstring{StellarDomains}{StellarDomains}}
{\footnotesize\ttfamily \label{namespaceserif_1_1discretization_1_1domain_aa2fd687c5f7b8750fd6980f2a7a77652}
using \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_aa2fd687c5f7b8750fd6980f2a7a77652}{serif\+::discretization\+::domain\+::\+Stellar\+Domains}} = \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set}}$<$\mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_core_domain}{Core\+Domain}}, \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_envelope_domain}{Envelope\+Domain}}$>$}
The set of domains that make up the stellar region of the mesh.
\doxysubsection{Function Documentation}
\Hypertarget{namespaceserif_1_1discretization_1_1domain_a1b57d195e9d643b262222f5d50ed1dd0}\index{serif::discretization::domain@{serif::discretization::domain}!CountVariadicArguments@{CountVariadicArguments}}
\index{CountVariadicArguments@{CountVariadicArguments}!serif::discretization::domain@{serif::discretization::domain}}
\doxysubsubsection{\texorpdfstring{CountVariadicArguments()}{CountVariadicArguments()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1discretization_1_1domain_a1b57d195e9d643b262222f5d50ed1dd0}
template$<$typename... Ts$>$ \\
std\+::size\+\_\+t serif\+::utils\+::misc\+::std\+\_\+helper\+::\+Count\+Variadic\+Arguments (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [consteval]}, {\ttfamily [noexcept]}}
\texorpdfstring{$<$}{<}
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000020}{Todo}}]remove this and just use the raw std\+::is\+\_\+base\+\_\+of\+\_\+v \end{DoxyRefDesc}
\doxysubsection{Variable Documentation}
\Hypertarget{namespaceserif_1_1discretization_1_1domain_a5e9d22ad04a3b00122f90cb5ceea35e9}\index{serif::discretization::domain@{serif::discretization::domain}!AIsBaseClassOfB@{AIsBaseClassOfB}}
\index{AIsBaseClassOfB@{AIsBaseClassOfB}!serif::discretization::domain@{serif::discretization::domain}}
\doxysubsubsection{\texorpdfstring{AIsBaseClassOfB}{AIsBaseClassOfB}}
{\footnotesize\ttfamily \label{namespaceserif_1_1discretization_1_1domain_a5e9d22ad04a3b00122f90cb5ceea35e9}
template$<$class Child, class Parent$>$ \\
bool serif\+::utils\+::misc\+::std\+\_\+helper\+::\+AIs\+Base\+Class\+OfB\hspace{0.3cm}{\ttfamily [constexpr]}}
\Hypertarget{namespaceserif_1_1discretization_1_1domain_af79faa141025275717dc28e8b3244c31}\index{serif::discretization::domain@{serif::discretization::domain}!is\_domain\_set\_v@{is\_domain\_set\_v}}
\index{is\_domain\_set\_v@{is\_domain\_set\_v}!serif::discretization::domain@{serif::discretization::domain}}
\doxysubsubsection{\texorpdfstring{is\_domain\_set\_v}{is\_domain\_set\_v}}
{\footnotesize\ttfamily \label{namespaceserif_1_1discretization_1_1domain_af79faa141025275717dc28e8b3244c31}
template$<$typename T$>$ \\
bool serif\+::discretization\+::domain\+::is\+\_\+domain\+\_\+set\+\_\+v = false\hspace{0.3cm}{\ttfamily [constexpr]}}
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.
\begin{DoxyTemplParams}{Template Parameters}
{\em T} & Candidate type to check. \\
\hline
\end{DoxyTemplParams}
\Hypertarget{namespaceserif_1_1discretization_1_1domain_af8cecaf8fc81e98a8e5fb613c8eca8be}\index{serif::discretization::domain@{serif::discretization::domain}!is\_domain\_set\_v$<$ DomainSet$<$ DomainTs... $>$ $>$@{is\_domain\_set\_v$<$ DomainSet$<$ DomainTs... $>$ $>$}}
\index{is\_domain\_set\_v$<$ DomainSet$<$ DomainTs... $>$ $>$@{is\_domain\_set\_v$<$ DomainSet$<$ DomainTs... $>$ $>$}!serif::discretization::domain@{serif::discretization::domain}}
\doxysubsubsection{\texorpdfstring{is\_domain\_set\_v$<$ DomainSet$<$ DomainTs... $>$ $>$}{is\_domain\_set\_v< DomainSet< DomainTs... > >}}
{\footnotesize\ttfamily \label{namespaceserif_1_1discretization_1_1domain_af8cecaf8fc81e98a8e5fb613c8eca8be}
template$<$Is\+Domain... Domain\+Ts$>$ \\
bool \mbox{\hyperlink{namespaceserif_1_1discretization_1_1domain_af79faa141025275717dc28e8b3244c31}{serif\+::discretization\+::domain\+::is\+\_\+domain\+\_\+set\+\_\+v}}$<$ \mbox{\hyperlink{structserif_1_1discretization_1_1domain_1_1_domain_set}{Domain\+Set}}$<$ Domain\+Ts... $>$ $>$ = true\hspace{0.3cm}{\ttfamily [constexpr]}}
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.
\begin{DoxyTemplParams}{Template Parameters}
{\em Domain\+Ts} & The domain types that make up the set. \\
\hline
\end{DoxyTemplParams}