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)
104 lines
12 KiB
TeX
104 lines
12 KiB
TeX
\doxysection{src/compile\+\_\+time\+\_\+checks/serif/model/state.cpp File Reference}
|
|
\hypertarget{state_8cpp}{}\label{state_8cpp}\index{src/compile\_time\_checks/serif/model/state.cpp@{src/compile\_time\_checks/serif/model/state.cpp}}
|
|
{\ttfamily \#include $<$concepts$>$}\newline
|
|
{\ttfamily \#include $<$span$>$}\newline
|
|
{\ttfamily \#include $<$type\+\_\+traits$>$}\newline
|
|
{\ttfamily \#include $<$utility$>$}\newline
|
|
{\ttfamily \#include $<$vector$>$}\newline
|
|
{\ttfamily \#include "{}serif/backend/mfem/model/equilibrium.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/model/state.\+hpp"{}}\newline
|
|
Include dependency graph for state.\+cpp\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{state_8cpp__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_binding}{serif\+::model\+::checks\+::\+Binding$<$ Term\+T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Only the binding\textquotesingle{}s physical identity is needed to check public overload constraints. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_moving_plan}{serif\+::model\+::checks\+::\+Moving\+Plan}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_moving_plan_1_1_surface}{serif\+::model\+::checks\+::\+Moving\+Plan\+::\+Surface}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_fixed_plan}{serif\+::model\+::checks\+::\+Fixed\+Plan}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_bound}{serif\+::model\+::checks\+::\+Bound$<$ Plan\+T $>$}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Namespaces}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif}{serif}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model}{serif\+::model}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1checks}{serif\+::model\+::checks}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Concepts}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1checks_1_1_reads_field}{serif\+::model\+::checks\+::\+Reads\+Field}}
|
|
\begin{DoxyCompactList}\small\item\em Check field availability and owner lifetime without instantiating a getter body. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1checks_1_1_reads_values}{serif\+::model\+::checks\+::\+Reads\+Values}}
|
|
\begin{DoxyCompactList}\small\item\em Packed views must remain tied to an lvalue owning state. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1checks_1_1_reads_layout}{serif\+::model\+::checks\+::\+Reads\+Layout}}
|
|
\begin{DoxyCompactList}\small\item\em Layout references cannot survive destruction of a temporary owning state. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1checks_1_1_can_evaluate}{serif\+::model\+::checks\+::\+Can\+Evaluate}}
|
|
\begin{DoxyCompactList}\small\item\em Unsupported state and prescribed-\/field combinations must fail during overload selection. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1checks_1_1_can_prepare_linear_system}{serif\+::model\+::checks\+::\+Can\+Prepare\+Linear\+System}}
|
|
\begin{DoxyCompactList}\small\item\em Linear preparation needs both a selected recipe and a valid candidate binding. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Typedefs}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0f801ed67f347eac5044c9400d863209}{serif\+::model\+::checks\+::\+Density}} = blocks\+::density\+::mass
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ab56460b20c275d11bb144559357f18c9}{serif\+::model\+::checks\+::\+Rotation}} = blocks\+::rotation\+::angular\+\_\+velocity
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ac0d3ec42b0ba8c641587dacbda968b0d}{serif\+::model\+::checks\+::\+Shape}} = blocks\+::surface\+\_\+deformation\+::coefficients
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_aee1c40955bf65f7effa23bcfa0c48503}{serif\+::model\+::checks\+::\+Shape\+Row}} = blocks\+::surface\+\_\+deformation\+::shape\+\_\+equilibrium
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a64f7be84d64cb0d2bd45448160d2be00}{serif\+::model\+::checks\+::\+Values}} = dependencies\+::\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0f801ed67f347eac5044c9400d863209}{Density}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ac0d3ec42b0ba8c641587dacbda968b0d}{Shape}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a68a6e5b462c5a29e862b40d6e6ddb977}{serif\+::model\+::checks\+::\+Rows}} = dependencies\+::\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_aee1c40955bf65f7effa23bcfa0c48503}{Shape\+Row}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0f801ed67f347eac5044c9400d863209}{Density}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a25b09ef80aa03c71690f75564edb5cba}{serif\+::model\+::checks\+::\+Layout}} = blocks\+::\+System\+Layout$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a64f7be84d64cb0d2bd45448160d2be00}{Values}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a68a6e5b462c5a29e862b40d6e6ddb977}{Rows}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a335a55b91174c009b17de5f19d4bab9e}{serif\+::model\+::checks\+::\+State}} = \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{Stellar\+State}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a25b09ef80aa03c71690f75564edb5cba}{Layout}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0bf4c43c2062e41e83bb79d1f37db6d4}{serif\+::model\+::checks\+::\+Empty\+Inputs}} = dependencies\+::\+Dependency\+Context$<$$>$
|
|
\item
|
|
{\footnotesize template$<$typename Key, typename Term = Key$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{serif\+::model\+::checks\+::\+Coefficient\+Source}} = decltype(dependencies\+::own$<$Key$>$(std\+::declval$<$\mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_coefficient_view}{operators\+::backend\+::mfem\+::\+Coefficient\+View}}$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_binding}{Binding}}$<$Term$>$$>$$>$()))
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a532eb432037ebaa8679c5d4c5cb6ae71}{serif\+::model\+::checks\+::\+Rotation\+Inputs}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{Coefficient\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ab56460b20c275d11bb144559357f18c9}{Rotation}}$>$$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_accd5eafc530dfeee6fbc87f79474f5c9}{serif\+::model\+::checks\+::\+Wrong\+Identity}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{Coefficient\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ab56460b20c275d11bb144559357f18c9}{Rotation}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0f801ed67f347eac5044c9400d863209}{Density}}$>$$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a48e974054ad97d32febb3a913be4e97a}{serif\+::model\+::checks\+::\+Wrong\+Value}} = decltype(dependencies\+::make\+\_\+dependency\+\_\+context(dependencies\+::own$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ab56460b20c275d11bb144559357f18c9}{Rotation}}$>$(1.\+0)))
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a449d520183c36c926a0f4cef0fd48353}{serif\+::model\+::checks\+::\+Overlap}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{Coefficient\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0f801ed67f347eac5044c9400d863209}{Density}}$>$, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{Coefficient\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ab56460b20c275d11bb144559357f18c9}{Rotation}}$>$$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a8f1b88e6af4b309b466eb4909596eb36}{serif\+::model\+::checks\+::\+Shape\+Overlap}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{Coefficient\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ac0d3ec42b0ba8c641587dacbda968b0d}{Shape}}$>$, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{Coefficient\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ab56460b20c275d11bb144559357f18c9}{Rotation}}$>$$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a8e51a63a5ebe4ab762eb9ceea5c55106}{serif\+::model\+::checks\+::\+Complete\+Fields}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{Coefficient\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0f801ed67f347eac5044c9400d863209}{Density}}$>$, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a05db01a3848b8701da4156ee4b7b5743}{Coefficient\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ab56460b20c275d11bb144559357f18c9}{Rotation}}$>$$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a1f24fce060f149d5c4cfa79d234244be}{serif\+::model\+::checks\+::\+Graph}}
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_af5e8e21f9a309a234c23039c133fe9a6}{serif\+::model\+::checks\+::\+Moving\+Evaluator}} = execution\+::\+Equilibrium\+Evaluator$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_bound}{Bound}}$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_moving_plan}{Moving\+Plan}}$>$, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a1f24fce060f149d5c4cfa79d234244be}{Graph}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0bf4c43c2062e41e83bb79d1f37db6d4}{Empty\+Inputs}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a83a7493d4c7760c566e4245af2706d53}{serif\+::model\+::checks\+::\+Fixed\+Evaluator}} = execution\+::\+Equilibrium\+Evaluator$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_bound}{Bound}}$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_fixed_plan}{Fixed\+Plan}}$>$, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a1f24fce060f149d5c4cfa79d234244be}{Graph}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0bf4c43c2062e41e83bb79d1f37db6d4}{Empty\+Inputs}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0c15395b83c58d8179dba45c1a029b03}{serif\+::model\+::checks\+::\+Prepared\+Graph}}
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a46d916c4508a99bba62e58d429980d5e}{serif\+::model\+::checks\+::\+Moving\+Prepared\+Evaluator}} = execution\+::\+Equilibrium\+Evaluator$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_bound}{Bound}}$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_moving_plan}{Moving\+Plan}}$>$, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0c15395b83c58d8179dba45c1a029b03}{Prepared\+Graph}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0bf4c43c2062e41e83bb79d1f37db6d4}{Empty\+Inputs}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_acc3e76ae08e20b2c3a5cf3a1820e4619}{serif\+::model\+::checks\+::\+Fixed\+Prepared\+Evaluator}} = execution\+::\+Equilibrium\+Evaluator$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_bound}{Bound}}$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_fixed_plan}{Fixed\+Plan}}$>$, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0c15395b83c58d8179dba45c1a029b03}{Prepared\+Graph}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0bf4c43c2062e41e83bb79d1f37db6d4}{Empty\+Inputs}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a447eafad85777c436b94d244938c9d21}{serif\+::model\+::checks\+::\+Fixed\+State}} = \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{Stellar\+State}}$<$\mbox{\hyperlink{structserif_1_1model_1_1checks_1_1_fixed_plan_ad2907b7a085de29ee1eb711a0ebc2253}{Fixed\+Plan\+::\+Layout}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a06c2ca9588c23b311e36451e21e3e6a3}{serif\+::model\+::checks\+::\+Other\+State}} = \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{Stellar\+State}}$<$blocks\+::\+System\+Layout$<$dependencies\+::\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1model_1_1checks_ac0d3ec42b0ba8c641587dacbda968b0d}{Shape}}, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a0f801ed67f347eac5044c9400d863209}{Density}}$>$, \mbox{\hyperlink{namespaceserif_1_1model_1_1checks_a68a6e5b462c5a29e862b40d6e6ddb977}{Rows}}$>$$>$
|
|
\end{DoxyCompactItemize}
|