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)
180 lines
18 KiB
TeX
180 lines
18 KiB
TeX
\doxysection{serif\+::model\+::computations Namespace Reference}
|
|
\hypertarget{namespaceserif_1_1model_1_1computations}{}\label{namespaceserif_1_1model_1_1computations}\index{serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection*{Namespaces}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_1_1detail}{detail}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_contributions}{Contributions}}
|
|
\begin{DoxyCompactList}\small\item\em Ordinary equations, point constraints and row replacements share one small assembly result. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_interior_contribution}{Interior\+Contribution}}
|
|
\begin{DoxyCompactList}\small\item\em One equation\textquotesingle{}s accepted contribution to the complete physical system. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_potential_infinity_contribution}{Potential\+Infinity\+Contribution}}
|
|
\begin{DoxyCompactList}\small\item\em The zero potential trace at compactified infinity, independent of the stellar isobar. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_pressure_boundary_contribution}{Pressure\+Boundary\+Contribution}}
|
|
\begin{DoxyCompactList}\small\item\em The complete isobaric replacement applied after ordinary and generated equation contributions. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_scalar_residual_row}{Scalar\+Residual\+Row}}
|
|
\begin{DoxyCompactList}\small\item\em One global scalar equation\textquotesingle{}s accepted derivative in complete physical state coordinates. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_shape_contribution}{Shape\+Contribution}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_shape_derivatives}{Shape\+Derivatives}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename Equation, typename Schema, typename Layout$>$ }\\\mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_contributions}{Contributions}} \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a9e46f414aef900d44b0dd2fd5574fd3a}{volume\+\_\+contribution}} (std\+::shared\+\_\+ptr$<$ const \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_data}{operators\+::backend\+::mfem\+::\+Volume\+Data}}$<$ Equation, Schema $>$ $>$ accepted, const Layout \&layout, std\+::optional$<$ \mbox{\hyperlink{structserif_1_1model_1_1backend_1_1mfem_1_1_column_contribution}{backend\+::mfem\+::\+Column\+Contribution}} $>$ geometry=\{\})
|
|
\begin{DoxyCompactList}\small\item\em Assemble field and optional geometry columns from the same retained volume result. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Equation, typename Layout$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a5600e8e13f635774406929efd4082748}{interior\+\_\+contribution}} (Layout layout)
|
|
\begin{DoxyCompactList}\small\item\em Declare one owning contribution per equation; shape coordinates add one explicit shared prerequisite. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Equation, typename Layout$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a15a3dad726975a3353a9f5337708194a}{interior\+\_\+computations}} (const Layout \&layout)
|
|
\begin{DoxyCompactList}\small\item\em Scalar equations publish a reusable functional before joining ordinary system assembly. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Block, discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a0660915b0bac2fc2ce2012e70bcd4e07}{physical\+\_\+block}} (const Layout \&layout)
|
|
\begin{DoxyCompactList}\small\item\em Publish a requested physical block from the same physical root used for residual and Jacobian actions. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$discretization\+::blocks\+::\+System\+Layout\+Type Layout, typename... Blocks$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a4ff124ec28d7784bd444fee234bad18e}{make\+\_\+physical\+\_\+block\+\_\+computations}} (const Layout \&layout, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Blocks... $>$)
|
|
\begin{DoxyCompactList}\small\item\em Supply precisely the requested physical couplings to existing preconditioner computations. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Layout, typename Binding$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_ad1541fee1dc9566753a4df55e3d177d7}{potential\+\_\+infinity\+\_\+contribution}} (Layout layout, const Binding \&binding)
|
|
\begin{DoxyCompactList}\small\item\em Replace only the compactified-\/infinity potential rows by the zero physical trace. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$geometry\+::surface\+::backend\+::mfem\+::\+Pressure\+Boundary\+Formulation Formulation, discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ \newline
|
|
requires utils\+::dependencies\+::\+Contains\+Key$<$typename Formulation\+::\+Carrier\+Term, typename Layout\+::\+Residuals$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a3a40d4e2b6f9007024cf9ad7d0b24c2b}{pressure\+\_\+boundary\+\_\+contribution}} (Layout layout)
|
|
\begin{DoxyCompactList}\small\item\em Publish accepted pressure rows and their solved-\/field derivatives in system coordinates. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Equation, typename Layout$>$ \newline
|
|
requires discretization\+::blocks\+::\+Global\+Scalar\+Term$<$typename Equation\+::\+Test$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a6cc3c063b45f722bf8d0739ce53b47ca}{scalar\+\_\+residual\+\_\+row}} (Layout layout)
|
|
\begin{DoxyCompactList}\small\item\em Rebuild a scalar functional only when its physical equation or shape derivative changes. \end{DoxyCompactList}\item
|
|
auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a336eecda912a227c066bccb2ae6f1a22}{shape\+\_\+derivatives}} (const \mbox{\hyperlink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_dof_map}{discretization\+::backend\+::mfem\+::\+Dof\+Map}} \&binding)
|
|
\begin{DoxyCompactList}\small\item\em Prepare the projected shape derivative once per evaluated geometry, retaining its computed owner. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_af86649ee0630f0316604c92d4ba2ac44}{make\+\_\+solver\+\_\+layout\+\_\+computations}} (const Layout \&layout)
|
|
\begin{DoxyCompactList}\small\item\em Give normalization and preconditioning one producer for their shared coordinate layout. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Layout$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1computations_a1f91d15e661d43a2a8e9a6b8111e6fc3}{surface\+\_\+potential\+\_\+contribution}} (\mbox{\hyperlink{classserif_1_1equations_1_1_surface_potential_balance}{equations\+::\+Surface\+Potential\+Balance}} equation, Layout layout)
|
|
\begin{DoxyCompactList}\small\item\em Replace the volume force pullback by scalar effective-\/potential moments on the same surface. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Function Documentation}
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a15a3dad726975a3353a9f5337708194a}\index{serif::model::computations@{serif::model::computations}!interior\_computations@{interior\_computations}}
|
|
\index{interior\_computations@{interior\_computations}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{interior\_computations()}{interior\_computations()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a15a3dad726975a3353a9f5337708194a}
|
|
template$<$typename Equation, typename Layout$>$ \\
|
|
auto serif\+::model\+::computations\+::interior\+\_\+computations (\begin{DoxyParamCaption}\item[{const Layout \&}]{layout}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Scalar equations publish a reusable functional before joining ordinary system assembly.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a5600e8e13f635774406929efd4082748}\index{serif::model::computations@{serif::model::computations}!interior\_contribution@{interior\_contribution}}
|
|
\index{interior\_contribution@{interior\_contribution}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{interior\_contribution()}{interior\_contribution()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a5600e8e13f635774406929efd4082748}
|
|
template$<$typename Equation, typename Layout$>$ \\
|
|
auto serif\+::model\+::computations\+::interior\+\_\+contribution (\begin{DoxyParamCaption}\item[{Layout}]{layout}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Declare one owning contribution per equation; shape coordinates add one explicit shared prerequisite.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a4ff124ec28d7784bd444fee234bad18e}\index{serif::model::computations@{serif::model::computations}!make\_physical\_block\_computations@{make\_physical\_block\_computations}}
|
|
\index{make\_physical\_block\_computations@{make\_physical\_block\_computations}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{make\_physical\_block\_computations()}{make\_physical\_block\_computations()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a4ff124ec28d7784bd444fee234bad18e}
|
|
template$<$discretization\+::blocks\+::\+System\+Layout\+Type Layout, typename... Blocks$>$ \\
|
|
auto serif\+::model\+::computations\+::make\+\_\+physical\+\_\+block\+\_\+computations (\begin{DoxyParamCaption}\item[{const Layout \&}]{layout}{, }\item[{\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Blocks... $>$}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Supply precisely the requested physical couplings to existing preconditioner computations.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_af86649ee0630f0316604c92d4ba2ac44}\index{serif::model::computations@{serif::model::computations}!make\_solver\_layout\_computations@{make\_solver\_layout\_computations}}
|
|
\index{make\_solver\_layout\_computations@{make\_solver\_layout\_computations}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{make\_solver\_layout\_computations()}{make\_solver\_layout\_computations()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_af86649ee0630f0316604c92d4ba2ac44}
|
|
template$<$discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ \\
|
|
auto serif\+::model\+::computations\+::make\+\_\+solver\+\_\+layout\+\_\+computations (\begin{DoxyParamCaption}\item[{const Layout \&}]{layout}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Give normalization and preconditioning one producer for their shared coordinate layout.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a0660915b0bac2fc2ce2012e70bcd4e07}\index{serif::model::computations@{serif::model::computations}!physical\_block@{physical\_block}}
|
|
\index{physical\_block@{physical\_block}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{physical\_block()}{physical\_block()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a0660915b0bac2fc2ce2012e70bcd4e07}
|
|
template$<$typename Block, discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ \\
|
|
auto serif\+::model\+::computations\+::physical\+\_\+block (\begin{DoxyParamCaption}\item[{const Layout \&}]{layout}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Publish a requested physical block from the same physical root used for residual and Jacobian actions.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_ad1541fee1dc9566753a4df55e3d177d7}\index{serif::model::computations@{serif::model::computations}!potential\_infinity\_contribution@{potential\_infinity\_contribution}}
|
|
\index{potential\_infinity\_contribution@{potential\_infinity\_contribution}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{potential\_infinity\_contribution()}{potential\_infinity\_contribution()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_ad1541fee1dc9566753a4df55e3d177d7}
|
|
template$<$typename Layout, typename Binding$>$ \\
|
|
auto serif\+::model\+::computations\+::potential\+\_\+infinity\+\_\+contribution (\begin{DoxyParamCaption}\item[{Layout}]{layout}{, }\item[{const Binding \&}]{binding}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Replace only the compactified-\/infinity potential rows by the zero physical trace.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a3a40d4e2b6f9007024cf9ad7d0b24c2b}\index{serif::model::computations@{serif::model::computations}!pressure\_boundary\_contribution@{pressure\_boundary\_contribution}}
|
|
\index{pressure\_boundary\_contribution@{pressure\_boundary\_contribution}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{pressure\_boundary\_contribution()}{pressure\_boundary\_contribution()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a3a40d4e2b6f9007024cf9ad7d0b24c2b}
|
|
template$<$geometry\+::surface\+::backend\+::mfem\+::\+Pressure\+Boundary\+Formulation Formulation, discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ \newline
|
|
requires utils\+::dependencies\+::\+Contains\+Key$<$typename Formulation\+::\+Carrier\+Term, typename Layout\+::\+Residuals$>$\\
|
|
auto serif\+::model\+::computations\+::pressure\+\_\+boundary\+\_\+contribution (\begin{DoxyParamCaption}\item[{Layout}]{layout}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Publish accepted pressure rows and their solved-\/field derivatives in system coordinates.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
Prescribed EOS inputs still participate in surface evaluation, but have no Newton column. The compiled surface formulation selects its physical carrier; no enthalpy assumption enters assembly.
|
|
\end{DoxyNote}
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a6cc3c063b45f722bf8d0739ce53b47ca}\index{serif::model::computations@{serif::model::computations}!scalar\_residual\_row@{scalar\_residual\_row}}
|
|
\index{scalar\_residual\_row@{scalar\_residual\_row}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{scalar\_residual\_row()}{scalar\_residual\_row()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a6cc3c063b45f722bf8d0739ce53b47ca}
|
|
template$<$typename Equation, typename Layout$>$ \newline
|
|
requires discretization\+::blocks\+::\+Global\+Scalar\+Term$<$typename Equation\+::\+Test$>$\\
|
|
auto serif\+::model\+::computations\+::scalar\+\_\+residual\+\_\+row (\begin{DoxyParamCaption}\item[{Layout}]{layout}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Rebuild a scalar functional only when its physical equation or shape derivative changes.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a336eecda912a227c066bccb2ae6f1a22}\index{serif::model::computations@{serif::model::computations}!shape\_derivatives@{shape\_derivatives}}
|
|
\index{shape\_derivatives@{shape\_derivatives}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{shape\_derivatives()}{shape\_derivatives()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a336eecda912a227c066bccb2ae6f1a22}
|
|
auto serif\+::model\+::computations\+::shape\+\_\+derivatives (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_dof_map}{discretization\+::backend\+::mfem\+::\+Dof\+Map}} \&}]{binding}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Prepare the projected shape derivative once per evaluated geometry, retaining its computed owner.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a1f91d15e661d43a2a8e9a6b8111e6fc3}\index{serif::model::computations@{serif::model::computations}!surface\_potential\_contribution@{surface\_potential\_contribution}}
|
|
\index{surface\_potential\_contribution@{surface\_potential\_contribution}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{surface\_potential\_contribution()}{surface\_potential\_contribution()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a1f91d15e661d43a2a8e9a6b8111e6fc3}
|
|
template$<$typename Layout$>$ \\
|
|
auto serif\+::model\+::computations\+::surface\+\_\+potential\+\_\+contribution (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classserif_1_1equations_1_1_surface_potential_balance}{equations\+::\+Surface\+Potential\+Balance}}}]{equation}{, }\item[{Layout}]{layout}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Replace the volume force pullback by scalar effective-\/potential moments on the same surface.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_1_1computations_a9e46f414aef900d44b0dd2fd5574fd3a}\index{serif::model::computations@{serif::model::computations}!volume\_contribution@{volume\_contribution}}
|
|
\index{volume\_contribution@{volume\_contribution}!serif::model::computations@{serif::model::computations}}
|
|
\doxysubsubsection{\texorpdfstring{volume\_contribution()}{volume\_contribution()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1computations_a9e46f414aef900d44b0dd2fd5574fd3a}
|
|
template$<$typename Equation, typename Schema, typename Layout$>$ \\
|
|
\mbox{\hyperlink{structserif_1_1model_1_1computations_1_1_contributions}{Contributions}} serif\+::model\+::computations\+::volume\+\_\+contribution (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ const \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_data}{operators\+::backend\+::mfem\+::\+Volume\+Data}}$<$ Equation, Schema $>$ $>$}]{accepted}{, }\item[{const Layout \&}]{layout}{, }\item[{std\+::optional$<$ \mbox{\hyperlink{structserif_1_1model_1_1backend_1_1mfem_1_1_column_contribution}{backend\+::mfem\+::\+Column\+Contribution}} $>$}]{geometry}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Assemble field and optional geometry columns from the same retained volume result.
|
|
|