Files
MeanField_SERiF/docs/latex/layout_8cpp.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

108 lines
12 KiB
TeX

\doxysection{src/compile\+\_\+time\+\_\+checks/serif/solver/preconditioner/layout.cpp File Reference}
\hypertarget{layout_8cpp}{}\label{layout_8cpp}\index{src/compile\_time\_checks/serif/solver/preconditioner/layout.cpp@{src/compile\_time\_checks/serif/solver/preconditioner/layout.cpp}}
{\ttfamily \#include $<$concepts$>$}\newline
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$span$>$}\newline
{\ttfamily \#include $<$type\+\_\+traits$>$}\newline
{\ttfamily \#include $<$utility$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
{\ttfamily \#include "{}serif/discretization/blocks/fields.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/discretization/blocks/vector\+\_\+view.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/operators/linearized\+\_\+system\+\_\+view.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/solver/normalization/layout.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/solver/normalization/keys.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/backend/mfem/solver/preconditioner/computations/ordering.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/solver/preconditioner/default\+\_\+preconditioners.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/utils/dependencies/dependencies.\+hpp"{}}\newline
Include dependency graph for layout.\+cpp\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{layout_8cpp__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1checks_1_1_extra_field}{serif\+::solver\+::preconditioner\+::checks\+::\+Extra\+Field}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1checks_1_1_extra_value}{serif\+::solver\+::preconditioner\+::checks\+::\+Extra\+Value}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1checks_1_1_extra_row}{serif\+::solver\+::preconditioner\+::checks\+::\+Extra\+Row}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceserif}{serif}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver}{serif\+::solver}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner}{serif\+::solver\+::preconditioner}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks}{serif\+::solver\+::preconditioner\+::checks}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Concepts}
\begin{DoxyCompactItemize}
\item
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1preconditioner_1_1checks_1_1_reads_coordinate}{serif\+::solver\+::preconditioner\+::checks\+::\+Reads\+Coordinate}}
\begin{DoxyCompactList}\small\item\em Detection of an absent coordinate must fail in constraints instead of instantiating a function body. \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1preconditioner_1_1checks_1_1_reads_block}{serif\+::solver\+::preconditioner\+::checks\+::\+Reads\+Block}}
\begin{DoxyCompactList}\small\item\em Only declared equation/unknown pairs are exposed by a borrowed linearization. \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1preconditioner_1_1checks_1_1_has_offset}{serif\+::solver\+::preconditioner\+::checks\+::\+Has\+Offset}}
\begin{DoxyCompactList}\small\item\em Malformed coordinate requests remain detection-\/safe on the owning metadata as well. \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1preconditioner_1_1checks_1_1_has_primal_preconditioner}{serif\+::solver\+::preconditioner\+::checks\+::\+Has\+Primal\+Preconditioner}}
\begin{DoxyCompactList}\small\item\em Keep unsupported coordinate sets out of the primal recipe before its body is instantiated. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_ae448d9c52432cf59dd1795980f1829bc}{serif\+::solver\+::preconditioner\+::checks\+::\+Kind}} = blocks\+::\+Represented\+Value\+Kind
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a078a73213b02df0577774643995c87bf}{serif\+::solver\+::preconditioner\+::checks\+::\+Mass}} = blocks\+::barotropic\+\_\+constant\+::mass\+\_\+normalization
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a73960fb3033e1ba0ad73dede87e96633}{serif\+::solver\+::preconditioner\+::checks\+::\+Reaction}} = blocks\+::frame\+\_\+acceleration\+::component$<$0$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a318cb3e924cf595bb09ff5bd8cfe7fdb}{serif\+::solver\+::preconditioner\+::checks\+::\+Density}} = blocks\+::density\+::mass
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_aa3fc96739043ce941add04cc5d6d67fb}{serif\+::solver\+::preconditioner\+::checks\+::\+Keys}} = dependencies\+::\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a078a73213b02df0577774643995c87bf}{Mass}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a73960fb3033e1ba0ad73dede87e96633}{Reaction}}$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_afb0e84193f3983f6a397af3c0813eb46}{serif\+::solver\+::preconditioner\+::checks\+::\+Layout}} = blocks\+::\+System\+Layout$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_aa3fc96739043ce941add04cc5d6d67fb}{Keys}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_aa3fc96739043ce941add04cc5d6d67fb}{Keys}}$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a7abff0667b7366d788c4672ebe9b9027}{serif\+::solver\+::preconditioner\+::checks\+::\+State}} = blocks\+::\+State\+View$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_afb0e84193f3983f6a397af3c0813eb46}{Layout}}$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a3cd5e0d76dcea813a4fe80b4eb8d9b91}{serif\+::solver\+::preconditioner\+::checks\+::\+Constant\+State}} = blocks\+::\+State\+View$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_afb0e84193f3983f6a397af3c0813eb46}{Layout}}, const double$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a0176b5eefc9e8f15ba17e40c9016798e}{serif\+::solver\+::preconditioner\+::checks\+::\+Physical}} = \mbox{\hyperlink{structserif_1_1operators_1_1_physical_block}{operators\+::\+Physical\+Block}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a078a73213b02df0577774643995c87bf}{Mass}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a73960fb3033e1ba0ad73dede87e96633}{Reaction}}$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_ad330485dd536c6eb6c00f5c04fcde58c}{serif\+::solver\+::preconditioner\+::checks\+::\+Sources}} = decltype(dependencies\+::make\+\_\+dependency\+\_\+context(dependencies\+::own$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a0176b5eefc9e8f15ba17e40c9016798e}{Physical}}$>$(1)))
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a4596c30faf0855227abbabd465a0f883}{serif\+::solver\+::preconditioner\+::checks\+::\+System}} = \mbox{\hyperlink{classserif_1_1operators_1_1_linearized_system_view}{operators\+::\+Linearized\+System\+View}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_afb0e84193f3983f6a397af3c0813eb46}{Layout}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_ad330485dd536c6eb6c00f5c04fcde58c}{Sources}}$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a0441f130ee842cf62915bab9ef87a299}{serif\+::solver\+::preconditioner\+::checks\+::\+Reordered\+Layout}} = blocks\+::\+System\+Layout$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_aa3fc96739043ce941add04cc5d6d67fb}{Keys}}, dependencies\+::\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a73960fb3033e1ba0ad73dede87e96633}{Reaction}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a078a73213b02df0577774643995c87bf}{Mass}}$>$$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_af109bec3cd4a26fe8b234f9c538df4ef}{serif\+::solver\+::preconditioner\+::checks\+::\+Potential}} = blocks\+::gravity\+::potential
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_abc0b1c6b549265466b1b52f6b71718bd}{serif\+::solver\+::preconditioner\+::checks\+::\+Rotation}} = blocks\+::rotation\+::angular\+\_\+velocity
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a320deada98c3f56528915540045f0ca2}{serif\+::solver\+::preconditioner\+::checks\+::\+Shape}} = blocks\+::surface\+\_\+deformation\+::coefficients
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a0122c390aa87e00c661cc7e360f94578}{serif\+::solver\+::preconditioner\+::checks\+::\+Shape\+Row}} = blocks\+::surface\+\_\+deformation\+::shape\+\_\+equilibrium
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a41d58fd871f120699f3d0a8d36bf0c9a}{serif\+::solver\+::preconditioner\+::checks\+::\+Primal\+Fields}} = dependencies\+::\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a318cb3e924cf595bb09ff5bd8cfe7fdb}{Density}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_af109bec3cd4a26fe8b234f9c538df4ef}{Potential}}$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a6fc13921980fa8ab9664beee17e7a9c8}{serif\+::solver\+::preconditioner\+::checks\+::\+Primal\+Fixed\+Layout}} = blocks\+::\+System\+Layout$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a41d58fd871f120699f3d0a8d36bf0c9a}{Primal\+Fields}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a41d58fd871f120699f3d0a8d36bf0c9a}{Primal\+Fields}}$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a9b252a067432f9ccd1c0a3565c75a94e}{serif\+::solver\+::preconditioner\+::checks\+::\+Primal\+Moving\+Layout}}
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a75c9b522ea43c52ef0427b328ac03caf}{serif\+::solver\+::preconditioner\+::checks\+::\+Primal\+Recipe}} = decltype(\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_aa5c6d8ad540ecaca25de3555918566f3}{make\+\_\+primal\+\_\+preconditioner}}(std\+::declval$<$const \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a9b252a067432f9ccd1c0a3565c75a94e}{Primal\+Moving\+Layout}}\&$>$()))
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a4ad89e1c6094b31366bbe5c12da9ef5a}{serif\+::solver\+::preconditioner\+::checks\+::\+Primal\+Extra\+Layout}}
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_adc27368f10f2bf26c1be45125e6e9140}{serif\+::solver\+::preconditioner\+::checks\+::\+Primal\+Extra\+Recipe}} = decltype(\mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_aa5c6d8ad540ecaca25de3555918566f3}{make\+\_\+primal\+\_\+preconditioner}}(std\+::declval$<$const \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a4ad89e1c6094b31366bbe5c12da9ef5a}{Primal\+Extra\+Layout}}\&$>$()))
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item
constexpr \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a0441f130ee842cf62915bab9ef87a299}{Reordered\+Layout}} \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks_a5aa91ea04af2f811d8939d28f645d1f3}{serif\+::solver\+::preconditioner\+::checks\+::resolved\+\_\+layout}}
\end{DoxyCompactItemize}