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)
108 lines
12 KiB
TeX
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}
|