\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}