\doxysection{src/include/serif/model/graph.hpp File Reference} \hypertarget{model_2graph_8hpp}{}\label{model_2graph_8hpp}\index{src/include/serif/model/graph.hpp@{src/include/serif/model/graph.hpp}} {\ttfamily \#include $<$limits$>$}\newline {\ttfamily \#include $<$memory$>$}\newline {\ttfamily \#include $<$tuple$>$}\newline {\ttfamily \#include $<$utility$>$}\newline {\ttfamily \#include "{}serif/model/computations/interior.\+hpp"{}}\newline {\ttfamily \#include "{}serif/model/computations/shape.\+hpp"{}}\newline {\ttfamily \#include "{}serif/model/computations/point\+\_\+constraints.\+hpp"{}}\newline {\ttfamily \#include "{}serif/model/computations/pressure\+\_\+boundary.\+hpp"{}}\newline {\ttfamily \#include "{}serif/model/equilibrium\+\_\+plan.\+hpp"{}}\newline {\ttfamily \#include "{}serif/geometry/deformation/backend/mfem/computations.\+hpp"{}}\newline {\ttfamily \#include "{}serif/geometry/deformation/backend/mfem/volume\+\_\+displacement.\+hpp"{}}\newline {\ttfamily \#include "{}serif/geometry/surface/backend/mfem/boundary\+\_\+computations.\+hpp"{}}\newline {\ttfamily \#include "{}serif/model/keys.\+hpp"{}}\newline {\ttfamily \#include "{}serif/model/plan.\+hpp"{}}\newline Include dependency graph for graph.\+hpp\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{model_2graph_8hpp__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=232pt]{model_2graph_8hpp__dep__incl} \end{center} \end{figure} \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_1detail}{serif\+::model\+::detail}} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename Layout, typename Owner, typename... Contribution\+Keys$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a1913d9c0eef4efd5fef3eef1c1f097de}{serif\+::model\+::detail\+::physical\+\_\+system\+\_\+computation}} (Layout layout, std\+::shared\+\_\+ptr$<$ const Owner $>$ owner, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Contribution\+Keys... $>$) \begin{DoxyCompactList}\small\item\em Collect all additions before applying any boundary replacement. \end{DoxyCompactList}\item {\footnotesize template$<$typename... Equations, typename... Additional$>$ }\\consteval auto \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_ae83ec19dfdc74cef1e310754e1fc7d12}{serif\+::model\+::detail\+::contribution\+\_\+keys}} (\mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$ Equations... $>$, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Additional... $>$) \begin{DoxyCompactList}\small\item\em Every interior equation contributes once; extension keys identify explicit additions or replacements. \end{DoxyCompactList}\item {\footnotesize template$<$typename Registry, typename Discretization, typename Layout, typename... Equations$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_ac05e8685fe7931d74aec47a2fad22331}{serif\+::model\+::detail\+::interior\+\_\+computations}} (const std\+::shared\+\_\+ptr$<$ const Registry $>$ \®istry, const Discretization \&discretization, const Layout \&layout, \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}} options, \mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$ Equations... $>$) \begin{DoxyCompactList}\small\item\em Share each immutable equation with its volume graph, then publish one complete row contribution. \end{DoxyCompactList}\item {\footnotesize template$<$Executable\+Interior\+Equations Registry, typename Discretization, discretization\+::blocks\+::\+System\+Layout\+Type Layout, typename... Additional\+Computations, typename... Additional\+Contributions$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_a818040e7235375f50650868a1fec3ae6}{serif\+::model\+::make\+\_\+model\+\_\+graph}} (std\+::shared\+\_\+ptr$<$ const Registry $>$ registry, std\+::shared\+\_\+ptr$<$ const Discretization $>$ discretization, const Layout \&layout, std\+::tuple$<$ Additional\+Computations... $>$ additional=\{\}, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Additional\+Contributions... $>$ contributions=\{\}, \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}} options=\{\}) \begin{DoxyCompactList}\small\item\em Construct the complete stellar graph at one explicit composition point. \end{DoxyCompactList}\item {\footnotesize template$<$Executable\+Interior\+Equations Registry, typename Discretization, discretization\+::blocks\+::\+System\+Layout\+Type Layout, typename... Additional\+Computations, typename... Additional\+Contributions$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_a085910a172d862a4116162850b0222c5}{serif\+::model\+::make\+\_\+model\+\_\+graph}} (Registry registry, std\+::shared\+\_\+ptr$<$ const Discretization $>$ discretization, const Layout \&layout, std\+::tuple$<$ Additional\+Computations... $>$ additional=\{\}, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Additional\+Contributions... $>$ contributions=\{\}, \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}} options=\{\}) \begin{DoxyCompactList}\small\item\em Retain a standalone registry, including move-\/only equations supplied as an rvalue. \end{DoxyCompactList}\item {\footnotesize template$<$typename Bound, typename Layout$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a06541a710141be6fbf219de35214405a}{serif\+::model\+::detail\+::shape\+\_\+computations}} (const std\+::shared\+\_\+ptr$<$ const Bound $>$ \&bound, const Layout \&layout, \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}} options) \begin{DoxyCompactList}\small\item\em One shared deformation feeds all geometry derivatives and the physical shape-\/force equation. \end{DoxyCompactList}\item {\footnotesize template$<$typename Bound, typename Layout, std\+::size\+\_\+t... Indices$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a3489d3ea02ad642a3bfef57f03f1bee6}{serif\+::model\+::detail\+::constraint\+\_\+computations}} (const Bound \&bound, const Layout \&layout, std\+::index\+\_\+sequence$<$ Indices... $>$) \begin{DoxyCompactList}\small\item\em Scalar phase conditions reuse the existing point-\/border computations. \end{DoxyCompactList}\item {\footnotesize template$<$typename Bound, typename Layout$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_af3b51c0962e8dfbe23c9f31450df4aee}{serif\+::model\+::detail\+::boundary\+\_\+computations}} (const Bound \&, const Layout \&layout) \begin{DoxyCompactList}\small\item\em Sample the internally selected pressure formulation through its compiled traces. \end{DoxyCompactList}\item {\footnotesize template$<$typename Plan, typename... Constraints$>$ }\\consteval auto \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a49beafd3acaa2dbc7ba53837ee6e91eb}{serif\+::model\+::detail\+::equilibrium\+\_\+contribution\+\_\+keys}} (std\+::tuple$<$ Constraints... $>$ \texorpdfstring{$\ast$}{*}) \begin{DoxyCompactList}\small\item\em Name exactly the explicitly selected non-\/interior contributions to final assembly. \end{DoxyCompactList}\item {\footnotesize template$<$typename Bound, typename Layout, typename... Numerical\+Computations$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_a74e1efe91e9ad6f773134036585a39b6}{serif\+::model\+::make\+\_\+equilibrium\+\_\+graph}} (std\+::shared\+\_\+ptr$<$ const Bound $>$ bound, const Layout \&layout, std\+::tuple$<$ Numerical\+Computations... $>$ numerical=\{\}, \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}} options=\{\}) \begin{DoxyCompactList}\small\item\em Connect the explicit equilibrium definition in one readable place. \end{DoxyCompactList}\end{DoxyCompactItemize}