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)
608 lines
61 KiB
TeX
608 lines
61 KiB
TeX
\doxysection{serif\+::model Namespace Reference}
|
|
\hypertarget{namespaceserif_1_1model}{}\label{namespaceserif_1_1model}\index{serif::model@{serif::model}}
|
|
\doxysubsubsection*{Namespaces}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1backend}{backend}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1checks}{checks}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1computations}{computations}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1detail}{detail}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1equation}{equation}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1keys}{keys}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization}{normalization}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1preconditioning}{preconditioning}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1state}{state}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_constraint_of}{Constraint\+Of}}
|
|
\begin{DoxyCompactList}\small\item\em Identify a generated residual independently from its target and unknown units. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_discretization_options}{Discretization\+Options}}
|
|
\begin{DoxyCompactList}\small\item\em Select a descriptive star, its existing finite-\/element resources, and its numerical coordinates. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_enforcement_of}{Enforcement\+Of}}
|
|
\begin{DoxyCompactList}\small\item\em Select an explicit numerical enforcement while preserving the public physical prescription. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classserif_1_1model_1_1_eos_reference}{Eos\+Reference}}
|
|
\begin{DoxyCompactList}\small\item\em Reuse one immutable EOS in equation objects, optionally retaining shared ownership. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_equilibrium_equations}{Equilibrium\+Equations}}
|
|
\begin{DoxyCompactList}\small\item\em State the chosen equations explicitly, without selecting physics from the EOS. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_equilibrium_plan}{Equilibrium\+Plan}}
|
|
\begin{DoxyCompactList}\small\item\em Collect the explicitly selected physical coefficients and supported constraint coordinates. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classserif_1_1model_1_1_fixed_angular_momentum}{Fixed\+Angular\+Momentum}}
|
|
\begin{DoxyCompactList}\small\item\em Prescribe angular momentum while angular velocity remains an independent solved coordinate. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classserif_1_1model_1_1_fixed_total_mass}{Fixed\+Total\+Mass}}
|
|
\begin{DoxyCompactList}\small\item\em Prescribe total stellar mass while the effective surface-\/potential level remains an independent solved coordinate. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_generated_coordinate_of}{Generated\+Coordinate\+Of}}
|
|
\begin{DoxyCompactList}\small\item\em Name another prescription, including a forward declaration, without erasing its identity. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_model_plan}{Model\+Plan}}
|
|
\begin{DoxyCompactList}\small\item\em Derive physical coordinates from explicit equations, independently of numerical solvability. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_no_shape_force}{No\+Shape\+Force}}
|
|
\begin{DoxyCompactList}\small\item\em Explicitly omit a shape equation from a declarative formulation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_no_surface_condition}{No\+Surface\+Condition}}
|
|
\begin{DoxyCompactList}\small\item\em Explicitly omit a surface prescription from a declarative formulation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_scalar_constraint}{Scalar\+Constraint}}
|
|
\begin{DoxyCompactList}\small\item\em Declare independent target, unknown and residual units and stable descriptive identities. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_specification_definition}{Specification\+Definition}}
|
|
\begin{DoxyCompactList}\small\item\em Declare a prescription once; numerical providers and normalization consume this metadata. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_specification_descriptor}{Specification\+Descriptor}}
|
|
\begin{DoxyCompactList}\small\item\em Inspect canonical prescription identity without claiming numerical availability. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_stellar_mesh_options}{Stellar\+Mesh\+Options}}
|
|
\begin{DoxyCompactList}\small\item\em Resolve a spherical stellar interior and a compactified exterior on a curved reference mesh. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classserif_1_1model_1_1_stellar_model}{Stellar\+Model}}
|
|
\item
|
|
class \mbox{\hyperlink{classserif_1_1model_1_1_stellar_model_3_01_equation_of_state_t_00_01_equation_definition_t_00_016d3cb5fe23fb2ea683d797d35ea27bae}{Stellar\+Model$<$ Equation\+Of\+State\+T, Equation\+Definition\+T, utils\+::types\+::\+Type\+List$<$ Specifications... $>$ $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Own immutable physics and an explicit formulation, independently of meshes, caches and solvers. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{Stellar\+State}}
|
|
\begin{DoxyCompactList}\small\item\em Own one stellar candidate in physical coordinates, including any solved surface shape. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1_stellar_surface_refinement_options}{Stellar\+Surface\+Refinement\+Options}}
|
|
\begin{DoxyCompactList}\small\item\em Add mesh resolution at the stellar interface before creating field spaces. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Concepts}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_equilibrium_equation_description}{Equilibrium\+Equation\+Description}}
|
|
\begin{DoxyCompactList}\small\item\em Recognize composition without instantiating any numerical equation contract. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_executable_equilibrium_description}{Executable\+Equilibrium\+Description}}
|
|
\begin{DoxyCompactList}\small\item\em Recognize current equation backends without instantiating an invalid complete plan. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_executable_interior_equations}{Executable\+Interior\+Equations}}
|
|
\begin{DoxyCompactList}\small\item\em The current interior backend can evaluate every explicitly listed equation. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_model_specification}{Model\+Specification}}
|
|
\begin{DoxyCompactList}\small\item\em Recognize a self-\/describing prescription without demanding executable physics or optional metadata. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_dimensional_scalar_specification}{Dimensional\+Scalar\+Specification}}
|
|
\begin{DoxyCompactList}\small\item\em Require exact dimensional agreement only when scalar numerical metadata is needed. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_valid_specification_pack}{Valid\+Specification\+Pack}}
|
|
\begin{DoxyCompactList}\small\item\em Prescriptions accompany one separately owned EOS; no numerical capability is assumed. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_stellar_model_type}{Stellar\+Model\+Type}}
|
|
\begin{DoxyCompactList}\small\item\em Safely recognize descriptions, including when presented with an incomplete specialization. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_has_unique_specification_for_role}{Has\+Unique\+Specification\+For\+Role}}
|
|
\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_specification_endpoints_valid}{Specification\+Endpoints\+Valid}}
|
|
\begin{DoxyCompactList}\small\item\em Validate physical ownership, available inputs and uniquely owned generated equations. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_specification_topology_valid}{Specification\+Topology\+Valid}}
|
|
\begin{DoxyCompactList}\small\item\em Validate physical endpoints and every derivative in an explicitly declared contract. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_specification_backend_available}{Specification\+Backend\+Available}}
|
|
\begin{DoxyCompactList}\small\item\em Require a registered implementation for every declared generated derivative, including explicit zeros. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Typedefs}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$Executable\+Equilibrium\+Description Description, typename Plan$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a1a9e18895b6021d27952932da09eb71b}{Actual\+Equilibrium\+Couplings}} = typename \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_equilibrium_couplings}{detail\+::\+Equilibrium\+Couplings}}$<$Description, \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_execution_surface}{detail\+::\+Execution\+Surface}}$<$Plan$>$$>$\+::\+Type
|
|
\begin{DoxyCompactList}\small\item\em Inspect the actual derivative producers admitted by the explicitly supplied physical formulation. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename... Fields$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a251ff98f4ef742b690180c7cb06292bb}{Reads}} = \mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$Fields...$>$
|
|
\item
|
|
{\footnotesize template$<$typename... Equations$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a5cbe5c0513a11299350110cee5d31821}{Changes}} = \mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$Equations...$>$
|
|
\item
|
|
{\footnotesize template$<$Dimensional\+Scalar\+Specification Specification$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_ac7544ec47f3986209861b7fb0b6ae4bf}{Generated\+Coordinate\+Quantity}} = typename Specification\+::\+Model\+Definition\+::\+Scalar\+Description\+::\+Coordinate\+Quantity
|
|
\begin{DoxyCompactList}\small\item\em Query scalar units only once the owning prescription is complete. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$Dimensional\+Scalar\+Specification Specification$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a36d5c59d89fffbd444ee44415f85bbed}{Constraint\+Quantity}} = typename Specification\+::\+Model\+Definition\+::\+Scalar\+Description\+::\+Residual\+Quantity
|
|
\begin{DoxyCompactList}\small\item\em Residual units remain independent from the target and generated coordinate. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}{Specification\+Role}} Role, Stellar\+Model\+Type Candidate$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_aeb8535e8d8e5b2b39d913f12b149a2b3}{Specifications\+For\+Role}} = typename std\+::remove\+\_\+cvref\+\_\+t$<$Candidate$>$\+::template \mbox{\hyperlink{namespaceserif_1_1model_aeb8535e8d8e5b2b39d913f12b149a2b3}{Specifications\+For\+Role}}$<$Role$>$
|
|
\item
|
|
{\footnotesize template$<$typename Row, typename Field$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a95bbbd670343f9cd11939d21c5bf79ab}{Derivative}} = \mbox{\hyperlink{structserif_1_1operators_1_1_physical_block}{operators\+::\+Physical\+Block}}$<$\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$Row$>$, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$Field$>$$>$
|
|
\begin{DoxyCompactList}\small\item\em Name a physical derivative using the shared block-\/source key convention. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$utils\+::dependencies\+::\+Is\+Binding... Additional$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_aa7c7c71dc1c2c0431623ac27c88bdb0b}{Specification\+Bindings}}
|
|
\begin{DoxyCompactList}\small\item\em Map physical names and built-\/in generated identities once; custom identities require explicit bindings. \end{DoxyCompactList}\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_adae046e777aafb66e79a039911580916}{Default\+Specification\+Bindings}} = \mbox{\hyperlink{namespaceserif_1_1model_aa7c7c71dc1c2c0431623ac27c88bdb0b}{Specification\+Bindings}}$<$$>$
|
|
\item
|
|
{\footnotesize template$<$Executable\+Interior\+Equations Registry$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a5d147fdea58527d7b5ee14302ab8cd57}{Declared\+Equation\+Couplings}} = typename \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_interior_couplings}{detail\+::\+Interior\+Couplings}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$Registry$>$$>$\+::\+Type
|
|
\begin{DoxyCompactList}\small\item\em Derive declared interior couplings from actual operands rather than a second physical sparsity table. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Enumerations}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}{Specification\+Role}} \{ \newline
|
|
\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a7832eb62b9d5da114fbd828501794b90}{constitutive\+\_\+law}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a8360be627354dd5a66ea7e358d0109a4}{boundary\+\_\+condition}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a97a1fb4792ab0d80857d825020ced2f0}{invariant}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813ab55fad3fe78d06b3d481aef2500c784b}{phase\+\_\+condition}}
|
|
, \newline
|
|
\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a49d377e11d9c996137d2ef9ca80a1482}{gauge\+\_\+choice}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813ae7aa3fcb6ca31a1a1fa583a6e4a98c30}{rotation\+\_\+law}}
|
|
\}
|
|
\begin{DoxyCompactList}\small\item\em Physical purpose of a prescription, independently of its numerical implementation. \end{DoxyCompactList}\item
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065ca}{Generated\+State\+Kind}} \{ \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa334c4a4c42fdb79d7ebc3e73b517e6f8}{none}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa2375dfa839ccd84978745547605b21e4}{multiplier}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa5b029370da350a18e571dffd4b78ae47}{physical\+\_\+coordinate}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa2fadfbbb30ccd79bbdcae01edd52f2b5}{solver\+\_\+border}}
|
|
\}
|
|
\begin{DoxyCompactList}\small\item\em Distinguish prescribed physics from the physical meaning of a generated scalar. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\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}{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}{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, typename... Numerical\+Computations$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_a74e1efe91e9ad6f773134036585a39b6}{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}\item
|
|
{\footnotesize template$<$Stellar\+Model\+Type Model, typename Finite\+Elements, typename Normalization, typename Preconditioner$>$ \newline
|
|
requires normalization\+::\+Reference\+Resolvable$<$Normalization, Model$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1model_a98c9e47b78a995adae698ca88a7e18fb}{make\+\_\+discretization}} (\mbox{\hyperlink{structserif_1_1model_1_1_discretization_options}{Discretization\+Options}}$<$ Model, Finite\+Elements, Normalization, Preconditioner $>$ options)
|
|
\begin{DoxyCompactList}\small\item\em Resolve model defaults while preserving compile-\/time field, scheme, and coordinate choices. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Model$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_a99f093b7cfc3526466056b87c8db0f33}{share\+\_\+equation\+\_\+of\+\_\+state}} (std\+::shared\+\_\+ptr$<$ const Model $>$ model)
|
|
\begin{DoxyCompactList}\small\item\em Share the EOS subobject while retaining the model that owns it. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename EOS$>$ }\\\mbox{\hyperlink{classserif_1_1model_1_1_eos_reference}{Eos\+Reference}}$<$ EOS $>$ \mbox{\hyperlink{namespaceserif_1_1model_ae24dcbfc49419c2f0f500da702371bd5}{borrow\+\_\+eos}} (const EOS \&eos) noexcept
|
|
\begin{DoxyCompactList}\small\item\em Borrow the model-\/owned EOS when the prepared graph already retains its immutable model owner. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename EOS$>$ \newline
|
|
requires (!std\+::is\+\_\+lvalue\+\_\+reference\+\_\+v$<$EOS$>$)}\\void \mbox{\hyperlink{namespaceserif_1_1model_a6252df8508dcd9bed7e242edae8133d5}{borrow\+\_\+eos}} (EOS \&\&)=delete
|
|
\begin{DoxyCompactList}\small\item\em Borrowing never extends a temporary EOS lifetime. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Interior, typename Shape = No\+Shape\+Force, typename Surface = No\+Surface\+Condition$>$ }\\\mbox{\hyperlink{namespaceserif_1_1model_ae40b696afec46eacfa0e74ef448b46bb}{Equilibrium\+Equations}} (Interior, Shape=\{\}, Surface=\{\}) -\/$>$ Equilibrium\+Equations$<$ Interior, Shape, Surface $>$
|
|
\begin{DoxyCompactList}\small\item\em Preserve every authored member when a declaration passes through a templated model factory. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Model$>$ \newline
|
|
requires requires(const Model\& model) \{ model.\+equations(); \} \&\& Equilibrium\+Equation\+Description$<$decltype(\mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a16f3eb10a3c11e985ea40a4845ab3bdc}{detail\+::resolve\+\_\+equation\+\_\+member}}(std\+::declval$<$const Model\&$>$().equations(), std\+::declval$<$const Model\&$>$()))$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1model_aa55d6cc09e69d07412896dedcb71c5a5}{resolve\+\_\+equilibrium\+\_\+equations}} (const Model \&model)
|
|
\begin{DoxyCompactList}\small\item\em Resolve an explicit composition at binding; retain the model while the result borrows its members. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Model$>$ \newline
|
|
requires (!std\+::is\+\_\+lvalue\+\_\+reference\+\_\+v$<$Model$>$)}\\void \mbox{\hyperlink{namespaceserif_1_1model_af1e5714cfeffe321e29886eec5b93020}{resolve\+\_\+equilibrium\+\_\+equations}} (Model \&\&)=delete
|
|
\begin{DoxyCompactList}\small\item\em A temporary model cannot retain the equation members borrowed by the resolved description. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Model, typename Description, typename Plan, typename Bindings = Default\+Specification\+Bindings, typename Explicit\+Zero\+Couplings = utils\+::dependencies\+::\+Key\+List$<$$>$$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1model_a85f2ca250e5b86d7c907d7db1428d852}{executable\+\_\+model\+\_\+topology}} ()
|
|
\begin{DoxyCompactList}\small\item\em Validate a complete selected formulation without inferring solvability or selecting physics. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ }\\\mbox{\hyperlink{namespaceserif_1_1model_abd39d351ddfb0d4d45fb44b868673416}{Stellar\+State}} (Layout) -\/$>$ Stellar\+State$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ Layout $>$ $>$
|
|
\begin{DoxyCompactList}\small\item\em Infer a state\textquotesingle{}s layout type from its physical coordinate description. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ }\\\mbox{\hyperlink{namespaceserif_1_1model_ab2897a50326648ba69b6ab9fd3c3d27a}{Stellar\+State}} (Layout, std\+::vector$<$ double $>$) -\/$>$ Stellar\+State$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ Layout $>$ $>$
|
|
\begin{DoxyCompactList}\small\item\em Infer a state\textquotesingle{}s layout type when adopting physical coefficients. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename EOS, typename Definition, typename... Specifications$>$ \newline
|
|
requires Valid\+Specification\+Pack$<$std\+::remove\+\_\+cvref\+\_\+t$<$Specifications$>$...$>$}\\\mbox{\hyperlink{namespaceserif_1_1model_a5a15073437bd18ed5d356ee544b14447}{Stellar\+Model}} (EOS \&\&, Definition \&\&, Specifications \&\&...) -\/$>$ Stellar\+Model$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ EOS $>$, std\+::remove\+\_\+cvref\+\_\+t$<$ Definition $>$, typename \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_canonical_specifications}{detail\+::\+Canonical\+Specifications}}$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ Specifications $>$... $>$\+::\+Type $>$
|
|
\item
|
|
{\footnotesize template$<$typename EOS, typename Definition, typename... Specifications$>$ \newline
|
|
requires Valid\+Specification\+Pack$<$std\+::remove\+\_\+cvref\+\_\+t$<$Specifications$>$...$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1model_abd082b1964d28e91b8eb1da4ffdf22ee}{make\+\_\+stellar\+\_\+model}} (EOS \&\&eos, Definition \&\&definition, Specifications \&\&... specifications)
|
|
\begin{DoxyCompactList}\small\item\em Construct a typed physical description with programmer-\/selected equations. \end{DoxyCompactList}\item
|
|
static void \mbox{\hyperlink{namespaceserif_1_1model_a5a76a53b06ed3a20062a609e61848840}{validate\+\_\+target}} (double value, bool zero\+\_\+allowed, std\+::string\+\_\+view name)
|
|
\begin{DoxyCompactList}\small\item\em Validate a dimensional scalar target before storing a physical prescription. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Owner, utils\+::dependencies\+::\+Is\+Dependency\+Context Bindings$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_ac5681e63c50dc5a136eaa699838cf332}{make\+\_\+stellar\+\_\+discretization}} (std\+::shared\+\_\+ptr$<$ Owner $>$ owner, Bindings bindings, const \+::mfem\+::\+Grid\+Function \&compactification, const \mbox{\hyperlink{classserif_1_1mapping_1_1_domain_mapper}{mapping\+::\+Domain\+Mapper}} \&mapper)
|
|
\begin{DoxyCompactList}\small\item\em Retain the supplied resource owner without copying finite-\/element spaces or changing their addresses. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Owner, typename Bindings, typename Domain\+Model$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_ade88a3e3fa00b425b3d93ad44b3bb604}{with\+\_\+deformation}} (Stellar\+Discretization$<$ Owner, Bindings $>$ discretization, Domain\+Model model, \mbox{\hyperlink{structserif_1_1geometry_1_1deformation_1_1backend_1_1mfem_1_1_reference_discretization}{geometry\+::deformation\+::backend\+::mfem\+::\+Reference\+Discretization}} reference)
|
|
\begin{DoxyCompactList}\small\item\em Add an explicit deformation prescription without changing the physical equation definition. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Variables}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}{Specification\+Role}} Role, typename Candidate$>$ }\\constexpr std\+::size\+\_\+t \mbox{\hyperlink{namespaceserif_1_1model_a80f6f9e6dee6acbd57d0d4bd1116c9f2}{specification\+\_\+role\+\_\+count}}
|
|
\begin{DoxyCompactList}\small\item\em Inspect role counts without instantiating invalid model specializations. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Typedef Documentation}
|
|
\Hypertarget{namespaceserif_1_1model_a1a9e18895b6021d27952932da09eb71b}\index{serif::model@{serif::model}!ActualEquilibriumCouplings@{ActualEquilibriumCouplings}}
|
|
\index{ActualEquilibriumCouplings@{ActualEquilibriumCouplings}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{ActualEquilibriumCouplings}{ActualEquilibriumCouplings}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a1a9e18895b6021d27952932da09eb71b}
|
|
template$<$Executable\+Equilibrium\+Description Description, typename Plan$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_a1a9e18895b6021d27952932da09eb71b}{serif\+::model\+::\+Actual\+Equilibrium\+Couplings}} = typename \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_equilibrium_couplings}{detail\+::\+Equilibrium\+Couplings}}$<$Description, \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_execution_surface}{detail\+::\+Execution\+Surface}}$<$Plan$>$$>$\+::\+Type}
|
|
|
|
|
|
|
|
Inspect the actual derivative producers admitted by the explicitly supplied physical formulation.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a5cbe5c0513a11299350110cee5d31821}\index{serif::model@{serif::model}!Changes@{Changes}}
|
|
\index{Changes@{Changes}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{Changes}{Changes}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a5cbe5c0513a11299350110cee5d31821}
|
|
template$<$typename... Equations$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_a5cbe5c0513a11299350110cee5d31821}{serif\+::model\+::\+Changes}} = \mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$Equations...$>$}
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a36d5c59d89fffbd444ee44415f85bbed}\index{serif::model@{serif::model}!ConstraintQuantity@{ConstraintQuantity}}
|
|
\index{ConstraintQuantity@{ConstraintQuantity}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{ConstraintQuantity}{ConstraintQuantity}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a36d5c59d89fffbd444ee44415f85bbed}
|
|
template$<$Dimensional\+Scalar\+Specification Specification$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_a36d5c59d89fffbd444ee44415f85bbed}{serif\+::model\+::\+Constraint\+Quantity}} = typename Specification\+::\+Model\+Definition\+::\+Scalar\+Description\+::\+Residual\+Quantity}
|
|
|
|
|
|
|
|
Residual units remain independent from the target and generated coordinate.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a5d147fdea58527d7b5ee14302ab8cd57}\index{serif::model@{serif::model}!DeclaredEquationCouplings@{DeclaredEquationCouplings}}
|
|
\index{DeclaredEquationCouplings@{DeclaredEquationCouplings}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{DeclaredEquationCouplings}{DeclaredEquationCouplings}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a5d147fdea58527d7b5ee14302ab8cd57}
|
|
template$<$Executable\+Interior\+Equations Registry$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_a5d147fdea58527d7b5ee14302ab8cd57}{serif\+::model\+::\+Declared\+Equation\+Couplings}} = typename \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_interior_couplings}{detail\+::\+Interior\+Couplings}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$Registry$>$$>$\+::\+Type}
|
|
|
|
|
|
|
|
Derive declared interior couplings from actual operands rather than a second physical sparsity table.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_adae046e777aafb66e79a039911580916}\index{serif::model@{serif::model}!DefaultSpecificationBindings@{DefaultSpecificationBindings}}
|
|
\index{DefaultSpecificationBindings@{DefaultSpecificationBindings}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{DefaultSpecificationBindings}{DefaultSpecificationBindings}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_adae046e777aafb66e79a039911580916}
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_adae046e777aafb66e79a039911580916}{serif\+::model\+::\+Default\+Specification\+Bindings}} = \mbox{\hyperlink{namespaceserif_1_1model_aa7c7c71dc1c2c0431623ac27c88bdb0b}{Specification\+Bindings}}$<$$>$}
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a95bbbd670343f9cd11939d21c5bf79ab}\index{serif::model@{serif::model}!Derivative@{Derivative}}
|
|
\index{Derivative@{Derivative}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{Derivative}{Derivative}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a95bbbd670343f9cd11939d21c5bf79ab}
|
|
template$<$typename Row, typename Field$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_a95bbbd670343f9cd11939d21c5bf79ab}{serif\+::model\+::\+Derivative}} = \mbox{\hyperlink{structserif_1_1operators_1_1_physical_block}{operators\+::\+Physical\+Block}}$<$\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$Row$>$, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$Field$>$$>$}
|
|
|
|
|
|
|
|
Name a physical derivative using the shared block-\/source key convention.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_ac7544ec47f3986209861b7fb0b6ae4bf}\index{serif::model@{serif::model}!GeneratedCoordinateQuantity@{GeneratedCoordinateQuantity}}
|
|
\index{GeneratedCoordinateQuantity@{GeneratedCoordinateQuantity}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{GeneratedCoordinateQuantity}{GeneratedCoordinateQuantity}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_ac7544ec47f3986209861b7fb0b6ae4bf}
|
|
template$<$Dimensional\+Scalar\+Specification Specification$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_ac7544ec47f3986209861b7fb0b6ae4bf}{serif\+::model\+::\+Generated\+Coordinate\+Quantity}} = typename Specification\+::\+Model\+Definition\+::\+Scalar\+Description\+::\+Coordinate\+Quantity}
|
|
|
|
|
|
|
|
Query scalar units only once the owning prescription is complete.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a251ff98f4ef742b690180c7cb06292bb}\index{serif::model@{serif::model}!Reads@{Reads}}
|
|
\index{Reads@{Reads}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{Reads}{Reads}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a251ff98f4ef742b690180c7cb06292bb}
|
|
template$<$typename... Fields$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_a251ff98f4ef742b690180c7cb06292bb}{serif\+::model\+::\+Reads}} = \mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$Fields...$>$}
|
|
|
|
\Hypertarget{namespaceserif_1_1model_aa7c7c71dc1c2c0431623ac27c88bdb0b}\index{serif::model@{serif::model}!SpecificationBindings@{SpecificationBindings}}
|
|
\index{SpecificationBindings@{SpecificationBindings}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{SpecificationBindings}{SpecificationBindings}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_aa7c7c71dc1c2c0431623ac27c88bdb0b}
|
|
template$<$utils\+::dependencies\+::\+Is\+Binding... Additional$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_aa7c7c71dc1c2c0431623ac27c88bdb0b}{serif\+::model\+::\+Specification\+Bindings}}}
|
|
|
|
{\bfseries Initial value\+:}
|
|
\begin{DoxyCode}{0}
|
|
\DoxyCodeLine{\ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_bindings}{utils::dependencies::Bindings}}<}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<state::Density,\ discretization::blocks::density::mass>}},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<state::SurfaceShape,\ discretization::blocks::surface\_deformation::coefficients>}},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<state::GravitationalPotential,\ discretization::blocks::gravity::potential>}},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<equation::PoissonBalance,\ discretization::blocks::gravity::potential>}},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<equation::SurfaceShapeBalance,\ discretization::blocks::surface\_deformation::shape\_equilibrium>}},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<equation::HydrostaticBalance,\ discretization::blocks::density::mass>}},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<GeneratedCoordinateOf<FixedTotalMass>}},\ \mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1barotropic__constant_1_1mass__normalization}{discretization::blocks::barotropic\_constant::mass\_normalization}}>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<ConstraintOf<FixedTotalMass>}},\ \mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1barotropic__constant_1_1mass__normalization}{discretization::blocks::barotropic\_constant::mass\_normalization}}>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<GeneratedCoordinateOf<FixedAngularMomentum>}},\ \mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1rotation_1_1angular__velocity}{discretization::blocks::rotation::angular\_velocity}}>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_binding}{utils::dependencies::Binding<ConstraintOf<FixedAngularMomentum>}},\ \mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1rotation_1_1angular__velocity}{discretization::blocks::rotation::angular\_velocity}}>,\ Additional...>}
|
|
|
|
\end{DoxyCode}
|
|
|
|
|
|
Map physical names and built-\/in generated identities once; custom identities require explicit bindings.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_aeb8535e8d8e5b2b39d913f12b149a2b3}\index{serif::model@{serif::model}!SpecificationsForRole@{SpecificationsForRole}}
|
|
\index{SpecificationsForRole@{SpecificationsForRole}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{SpecificationsForRole}{SpecificationsForRole}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_aeb8535e8d8e5b2b39d913f12b149a2b3}
|
|
template$<$\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}{Specification\+Role}} Role, Stellar\+Model\+Type Candidate$>$ \\
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_aeb8535e8d8e5b2b39d913f12b149a2b3}{serif\+::model\+::\+Specifications\+For\+Role}} = typename std\+::remove\+\_\+cvref\+\_\+t$<$Candidate$>$\+::template \mbox{\hyperlink{namespaceserif_1_1model_aeb8535e8d8e5b2b39d913f12b149a2b3}{Specifications\+For\+Role}}$<$Role$>$}
|
|
|
|
|
|
|
|
\doxysubsection{Enumeration Type Documentation}
|
|
\Hypertarget{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065ca}\index{serif::model@{serif::model}!GeneratedStateKind@{GeneratedStateKind}}
|
|
\index{GeneratedStateKind@{GeneratedStateKind}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{GeneratedStateKind}{GeneratedStateKind}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065ca}
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065ca}{serif\+::model\+::\+Generated\+State\+Kind}}\hspace{0.3cm}{\ttfamily [strong]}}
|
|
|
|
|
|
|
|
Distinguish prescribed physics from the physical meaning of a generated scalar.
|
|
|
|
\begin{DoxyEnumFields}[2]{Enumerator}
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{none@{none}!serif::model@{serif::model}}\index{serif::model@{serif::model}!none@{none}}}\Hypertarget{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa334c4a4c42fdb79d7ebc3e73b517e6f8}\label{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa334c4a4c42fdb79d7ebc3e73b517e6f8}
|
|
none&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{multiplier@{multiplier}!serif::model@{serif::model}}\index{serif::model@{serif::model}!multiplier@{multiplier}}}\Hypertarget{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa2375dfa839ccd84978745547605b21e4}\label{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa2375dfa839ccd84978745547605b21e4}
|
|
multiplier&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{physical\_coordinate@{physical\_coordinate}!serif::model@{serif::model}}\index{serif::model@{serif::model}!physical\_coordinate@{physical\_coordinate}}}\Hypertarget{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa5b029370da350a18e571dffd4b78ae47}\label{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa5b029370da350a18e571dffd4b78ae47}
|
|
physical\+\_\+coordinate&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{solver\_border@{solver\_border}!serif::model@{serif::model}}\index{serif::model@{serif::model}!solver\_border@{solver\_border}}}\Hypertarget{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa2fadfbbb30ccd79bbdcae01edd52f2b5}\label{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa2fadfbbb30ccd79bbdcae01edd52f2b5}
|
|
solver\+\_\+border&\\
|
|
\hline
|
|
|
|
\end{DoxyEnumFields}
|
|
\Hypertarget{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}\index{serif::model@{serif::model}!SpecificationRole@{SpecificationRole}}
|
|
\index{SpecificationRole@{SpecificationRole}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{SpecificationRole}{SpecificationRole}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}{serif\+::model\+::\+Specification\+Role}}\hspace{0.3cm}{\ttfamily [strong]}}
|
|
|
|
|
|
|
|
Physical purpose of a prescription, independently of its numerical implementation.
|
|
|
|
\begin{DoxyEnumFields}[2]{Enumerator}
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{constitutive\_law@{constitutive\_law}!serif::model@{serif::model}}\index{serif::model@{serif::model}!constitutive\_law@{constitutive\_law}}}\Hypertarget{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a7832eb62b9d5da114fbd828501794b90}\label{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a7832eb62b9d5da114fbd828501794b90}
|
|
constitutive\+\_\+law&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{boundary\_condition@{boundary\_condition}!serif::model@{serif::model}}\index{serif::model@{serif::model}!boundary\_condition@{boundary\_condition}}}\Hypertarget{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a8360be627354dd5a66ea7e358d0109a4}\label{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a8360be627354dd5a66ea7e358d0109a4}
|
|
boundary\+\_\+condition&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{invariant@{invariant}!serif::model@{serif::model}}\index{serif::model@{serif::model}!invariant@{invariant}}}\Hypertarget{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a97a1fb4792ab0d80857d825020ced2f0}\label{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a97a1fb4792ab0d80857d825020ced2f0}
|
|
invariant&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{phase\_condition@{phase\_condition}!serif::model@{serif::model}}\index{serif::model@{serif::model}!phase\_condition@{phase\_condition}}}\Hypertarget{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813ab55fad3fe78d06b3d481aef2500c784b}\label{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813ab55fad3fe78d06b3d481aef2500c784b}
|
|
phase\+\_\+condition&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{gauge\_choice@{gauge\_choice}!serif::model@{serif::model}}\index{serif::model@{serif::model}!gauge\_choice@{gauge\_choice}}}\Hypertarget{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a49d377e11d9c996137d2ef9ca80a1482}\label{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a49d377e11d9c996137d2ef9ca80a1482}
|
|
gauge\+\_\+choice&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{rotation\_law@{rotation\_law}!serif::model@{serif::model}}\index{serif::model@{serif::model}!rotation\_law@{rotation\_law}}}\Hypertarget{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813ae7aa3fcb6ca31a1a1fa583a6e4a98c30}\label{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813ae7aa3fcb6ca31a1a1fa583a6e4a98c30}
|
|
rotation\+\_\+law&\\
|
|
\hline
|
|
|
|
\end{DoxyEnumFields}
|
|
|
|
|
|
\doxysubsection{Function Documentation}
|
|
\Hypertarget{namespaceserif_1_1model_ae24dcbfc49419c2f0f500da702371bd5}\index{serif::model@{serif::model}!borrow\_eos@{borrow\_eos}}
|
|
\index{borrow\_eos@{borrow\_eos}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{borrow\_eos()}{borrow\_eos()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_ae24dcbfc49419c2f0f500da702371bd5}
|
|
template$<$typename EOS$>$ \\
|
|
\mbox{\hyperlink{classserif_1_1model_1_1_eos_reference}{Eos\+Reference}}$<$ EOS $>$ serif\+::model\+::borrow\+\_\+eos (\begin{DoxyParamCaption}\item[{const EOS \&}]{eos}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [noexcept]}}
|
|
|
|
|
|
|
|
Borrow the model-\/owned EOS when the prepared graph already retains its immutable model owner.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a6252df8508dcd9bed7e242edae8133d5}\index{serif::model@{serif::model}!borrow\_eos@{borrow\_eos}}
|
|
\index{borrow\_eos@{borrow\_eos}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{borrow\_eos()}{borrow\_eos()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a6252df8508dcd9bed7e242edae8133d5}
|
|
template$<$typename EOS$>$ \newline
|
|
requires (!std\+::is\+\_\+lvalue\+\_\+reference\+\_\+v$<$EOS$>$)\\
|
|
void serif\+::model\+::borrow\+\_\+eos (\begin{DoxyParamCaption}\item[{EOS \&\&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
|
|
|
|
|
|
|
|
Borrowing never extends a temporary EOS lifetime.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_ae40b696afec46eacfa0e74ef448b46bb}\index{serif::model@{serif::model}!EquilibriumEquations@{EquilibriumEquations}}
|
|
\index{EquilibriumEquations@{EquilibriumEquations}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{EquilibriumEquations()}{EquilibriumEquations()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_ae40b696afec46eacfa0e74ef448b46bb}
|
|
template$<$typename Interior, typename Shape = No\+Shape\+Force, typename Surface = No\+Surface\+Condition$>$ \\
|
|
serif\+::model\+::\+Equilibrium\+Equations (\begin{DoxyParamCaption}\item[{Interior}]{}{, }\item[{Shape}]{}{ = {\ttfamily \{\}}, }\item[{Surface}]{}{ = {\ttfamily \{\}}}\end{DoxyParamCaption}) -\/$>$ Equilibrium\+Equations$<$ Interior, Shape, Surface $>$}
|
|
|
|
|
|
|
|
Preserve every authored member when a declaration passes through a templated model factory.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
Explicit deduction avoids compiler substitution dropping defaulted aggregate members. Deduced declarations supply preceding slots\+: use \doxylink{structserif_1_1model_1_1_no_shape_force}{No\+Shape\+Force} before a surface condition when the shape force is absent. Explicitly typed aggregates may still skip members.
|
|
\end{DoxyNote}
|
|
\Hypertarget{namespaceserif_1_1model_a85f2ca250e5b86d7c907d7db1428d852}\index{serif::model@{serif::model}!executable\_model\_topology@{executable\_model\_topology}}
|
|
\index{executable\_model\_topology@{executable\_model\_topology}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{executable\_model\_topology()}{executable\_model\_topology()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a85f2ca250e5b86d7c907d7db1428d852}
|
|
template$<$typename Model, typename Description, typename Plan, typename Bindings = Default\+Specification\+Bindings, typename Explicit\+Zero\+Couplings = utils\+::dependencies\+::\+Key\+List$<$$>$$>$ \\
|
|
bool serif\+::model\+::executable\+\_\+model\+\_\+topology (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [consteval]}}
|
|
|
|
|
|
|
|
Validate a complete selected formulation without inferring solvability or selecting physics.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
Closed equations define zero derivatives for other coordinates, but that fact cannot admit a missing custom multiplier force. Explicit\+Zero\+Couplings is an explicit author registration, not a fallback.
|
|
\end{DoxyNote}
|
|
\Hypertarget{namespaceserif_1_1model_a98c9e47b78a995adae698ca88a7e18fb}\index{serif::model@{serif::model}!make\_discretization@{make\_discretization}}
|
|
\index{make\_discretization@{make\_discretization}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{make\_discretization()}{make\_discretization()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a98c9e47b78a995adae698ca88a7e18fb}
|
|
template$<$Stellar\+Model\+Type Model, typename Finite\+Elements, typename Normalization, typename Preconditioner$>$ \newline
|
|
requires normalization\+::\+Reference\+Resolvable$<$Normalization, Model$>$\\
|
|
auto serif\+::model\+::make\+\_\+discretization (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structserif_1_1model_1_1_discretization_options}{Discretization\+Options}}$<$ Model, Finite\+Elements, Normalization, Preconditioner $>$}]{options}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Resolve model defaults while preserving compile-\/time field, scheme, and coordinate choices.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
Finite-\/element resources remain explicit\+: normalization does not choose a mesh or approximation order.
|
|
\end{DoxyNote}
|
|
\Hypertarget{namespaceserif_1_1model_a74e1efe91e9ad6f773134036585a39b6}\index{serif::model@{serif::model}!make\_equilibrium\_graph@{make\_equilibrium\_graph}}
|
|
\index{make\_equilibrium\_graph@{make\_equilibrium\_graph}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{make\_equilibrium\_graph()}{make\_equilibrium\_graph()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a74e1efe91e9ad6f773134036585a39b6}
|
|
template$<$typename Bound, typename Layout, typename... Numerical\+Computations$>$ \\
|
|
auto serif\+::model\+::make\+\_\+equilibrium\+\_\+graph (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ const Bound $>$}]{bound}{, }\item[{const Layout \&}]{layout}{, }\item[{std\+::tuple$<$ Numerical\+Computations... $>$}]{numerical}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}}}]{options}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Connect the explicit equilibrium definition in one readable place.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
Interior physics, shape force and surface replacement remain separate declarations. The final physical-\/system computation collects additions before replacing rows.
|
|
\end{DoxyNote}
|
|
\Hypertarget{namespaceserif_1_1model_a085910a172d862a4116162850b0222c5}\index{serif::model@{serif::model}!make\_model\_graph@{make\_model\_graph}}
|
|
\index{make\_model\_graph@{make\_model\_graph}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{make\_model\_graph()}{make\_model\_graph()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a085910a172d862a4116162850b0222c5}
|
|
template$<$Executable\+Interior\+Equations Registry, typename Discretization, discretization\+::blocks\+::\+System\+Layout\+Type Layout, typename... Additional\+Computations, typename... Additional\+Contributions$>$ \\
|
|
auto serif\+::model\+::make\+\_\+model\+\_\+graph (\begin{DoxyParamCaption}\item[{Registry}]{registry}{, }\item[{std\+::shared\+\_\+ptr$<$ const Discretization $>$}]{discretization}{, }\item[{const Layout \&}]{layout}{, }\item[{std\+::tuple$<$ Additional\+Computations... $>$}]{additional}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Additional\+Contributions... $>$}]{contributions}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}}}]{options}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Retain a standalone registry, including move-\/only equations supplied as an rvalue.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a818040e7235375f50650868a1fec3ae6}\index{serif::model@{serif::model}!make\_model\_graph@{make\_model\_graph}}
|
|
\index{make\_model\_graph@{make\_model\_graph}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{make\_model\_graph()}{make\_model\_graph()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a818040e7235375f50650868a1fec3ae6}
|
|
template$<$Executable\+Interior\+Equations Registry, typename Discretization, discretization\+::blocks\+::\+System\+Layout\+Type Layout, typename... Additional\+Computations, typename... Additional\+Contributions$>$ \\
|
|
auto serif\+::model\+::make\+\_\+model\+\_\+graph (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ const Registry $>$}]{registry}{, }\item[{std\+::shared\+\_\+ptr$<$ const Discretization $>$}]{discretization}{, }\item[{const Layout \&}]{layout}{, }\item[{std\+::tuple$<$ Additional\+Computations... $>$}]{additional}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Additional\+Contributions... $>$}]{contributions}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}}}]{options}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Construct the complete stellar graph at one explicit composition point.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
The registry is the authoritative equation list. Additional declarations supply deformation, boundary treatment, constraints, normalization or inverses; only named contribution results modify the physical system. Dependency preparation schedules the work and publishes complete results.
|
|
\end{DoxyNote}
|
|
\Hypertarget{namespaceserif_1_1model_ac5681e63c50dc5a136eaa699838cf332}\index{serif::model@{serif::model}!make\_stellar\_discretization@{make\_stellar\_discretization}}
|
|
\index{make\_stellar\_discretization@{make\_stellar\_discretization}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{make\_stellar\_discretization()}{make\_stellar\_discretization()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_ac5681e63c50dc5a136eaa699838cf332}
|
|
template$<$typename Owner, utils\+::dependencies\+::\+Is\+Dependency\+Context Bindings$>$ \\
|
|
auto serif\+::model\+::backend\+::mfem\+::make\+\_\+stellar\+\_\+discretization (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ Owner $>$}]{owner}{, }\item[{Bindings}]{bindings}{, }\item[{const \+::mfem\+::\+Grid\+Function \&}]{compactification}{, }\item[{const \mbox{\hyperlink{classserif_1_1mapping_1_1_domain_mapper}{mapping\+::\+Domain\+Mapper}} \&}]{mapper}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Retain the supplied resource owner without copying finite-\/element spaces or changing their addresses.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_abd082b1964d28e91b8eb1da4ffdf22ee}\index{serif::model@{serif::model}!make\_stellar\_model@{make\_stellar\_model}}
|
|
\index{make\_stellar\_model@{make\_stellar\_model}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{make\_stellar\_model()}{make\_stellar\_model()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_abd082b1964d28e91b8eb1da4ffdf22ee}
|
|
template$<$typename EOS, typename Definition, typename... Specifications$>$ \newline
|
|
requires Valid\+Specification\+Pack$<$std\+::remove\+\_\+cvref\+\_\+t$<$Specifications$>$...$>$\\
|
|
auto serif\+::model\+::make\+\_\+stellar\+\_\+model (\begin{DoxyParamCaption}\item[{EOS \&\&}]{eos}{, }\item[{Definition \&\&}]{definition}{, }\item[{Specifications \&\&...}]{specifications}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Construct a typed physical description with programmer-\/selected equations.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_aa55d6cc09e69d07412896dedcb71c5a5}\index{serif::model@{serif::model}!resolve\_equilibrium\_equations@{resolve\_equilibrium\_equations}}
|
|
\index{resolve\_equilibrium\_equations@{resolve\_equilibrium\_equations}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{resolve\_equilibrium\_equations()}{resolve\_equilibrium\_equations()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_aa55d6cc09e69d07412896dedcb71c5a5}
|
|
template$<$typename Model$>$ \newline
|
|
requires requires(const Model\& model) \{ model.\+equations(); \} \&\& Equilibrium\+Equation\+Description$<$decltype(\mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a16f3eb10a3c11e985ea40a4845ab3bdc}{detail\+::resolve\+\_\+equation\+\_\+member}}(std\+::declval$<$const Model\&$>$().equations(), std\+::declval$<$const Model\&$>$()))$>$\\
|
|
auto serif\+::model\+::resolve\+\_\+equilibrium\+\_\+equations (\begin{DoxyParamCaption}\item[{const Model \&}]{model}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Resolve an explicit composition at binding; retain the model while the result borrows its members.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_af1e5714cfeffe321e29886eec5b93020}\index{serif::model@{serif::model}!resolve\_equilibrium\_equations@{resolve\_equilibrium\_equations}}
|
|
\index{resolve\_equilibrium\_equations@{resolve\_equilibrium\_equations}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{resolve\_equilibrium\_equations()}{resolve\_equilibrium\_equations()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_af1e5714cfeffe321e29886eec5b93020}
|
|
template$<$typename Model$>$ \newline
|
|
requires (!std\+::is\+\_\+lvalue\+\_\+reference\+\_\+v$<$Model$>$)\\
|
|
void serif\+::model\+::resolve\+\_\+equilibrium\+\_\+equations (\begin{DoxyParamCaption}\item[{Model \&\&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
|
|
|
|
|
|
|
|
A temporary model cannot retain the equation members borrowed by the resolved description.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a99f093b7cfc3526466056b87c8db0f33}\index{serif::model@{serif::model}!share\_equation\_of\_state@{share\_equation\_of\_state}}
|
|
\index{share\_equation\_of\_state@{share\_equation\_of\_state}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{share\_equation\_of\_state()}{share\_equation\_of\_state()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a99f093b7cfc3526466056b87c8db0f33}
|
|
template$<$typename Model$>$ \\
|
|
auto serif\+::model\+::share\+\_\+equation\+\_\+of\+\_\+state (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ const Model $>$}]{model}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Share the EOS subobject while retaining the model that owns it.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a5a15073437bd18ed5d356ee544b14447}\index{serif::model@{serif::model}!StellarModel@{StellarModel}}
|
|
\index{StellarModel@{StellarModel}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{StellarModel()}{StellarModel()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a5a15073437bd18ed5d356ee544b14447}
|
|
template$<$typename EOS, typename Definition, typename... Specifications$>$ \newline
|
|
requires Valid\+Specification\+Pack$<$std\+::remove\+\_\+cvref\+\_\+t$<$Specifications$>$...$>$\\
|
|
serif\+::model\+::\+Stellar\+Model (\begin{DoxyParamCaption}\item[{EOS \&\&}]{}{, }\item[{Definition \&\&}]{}{, }\item[{Specifications \&\&}]{...}{}\end{DoxyParamCaption}) -\/$>$ Stellar\+Model$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ EOS $>$, std\+::remove\+\_\+cvref\+\_\+t$<$ Definition $>$, typename \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_canonical_specifications}{detail\+::\+Canonical\+Specifications}}$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ Specifications $>$... $>$\+::\+Type $>$}
|
|
|
|
\Hypertarget{namespaceserif_1_1model_abd39d351ddfb0d4d45fb44b868673416}\index{serif::model@{serif::model}!StellarState@{StellarState}}
|
|
\index{StellarState@{StellarState}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{StellarState()}{StellarState()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_abd39d351ddfb0d4d45fb44b868673416}
|
|
template$<$discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ \\
|
|
serif\+::model\+::\+Stellar\+State (\begin{DoxyParamCaption}\item[{Layout}]{}{}\end{DoxyParamCaption}) -\/$>$ Stellar\+State$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ Layout $>$ $>$}
|
|
|
|
|
|
|
|
Infer a state\textquotesingle{}s layout type from its physical coordinate description.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_ab2897a50326648ba69b6ab9fd3c3d27a}\index{serif::model@{serif::model}!StellarState@{StellarState}}
|
|
\index{StellarState@{StellarState}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{StellarState()}{StellarState()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_ab2897a50326648ba69b6ab9fd3c3d27a}
|
|
template$<$discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ \\
|
|
serif\+::model\+::\+Stellar\+State (\begin{DoxyParamCaption}\item[{Layout}]{}{, }\item[{std\+::vector$<$ double $>$}]{}{}\end{DoxyParamCaption}) -\/$>$ Stellar\+State$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ Layout $>$ $>$}
|
|
|
|
|
|
|
|
Infer a state\textquotesingle{}s layout type when adopting physical coefficients.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_a5a76a53b06ed3a20062a609e61848840}\index{serif::model@{serif::model}!validate\_target@{validate\_target}}
|
|
\index{validate\_target@{validate\_target}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{validate\_target()}{validate\_target()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a5a76a53b06ed3a20062a609e61848840}
|
|
static void serif\+::model\+::validate\+\_\+target (\begin{DoxyParamCaption}\item[{double}]{value}{, }\item[{bool}]{zero\+\_\+allowed}{, }\item[{std\+::string\+\_\+view}]{name}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
|
|
|
|
|
|
|
|
Validate a dimensional scalar target before storing a physical prescription.
|
|
|
|
\Hypertarget{namespaceserif_1_1model_ade88a3e3fa00b425b3d93ad44b3bb604}\index{serif::model@{serif::model}!with\_deformation@{with\_deformation}}
|
|
\index{with\_deformation@{with\_deformation}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{with\_deformation()}{with\_deformation()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_ade88a3e3fa00b425b3d93ad44b3bb604}
|
|
template$<$typename Owner, typename Bindings, typename Domain\+Model$>$ \\
|
|
auto serif\+::model\+::backend\+::mfem\+::with\+\_\+deformation (\begin{DoxyParamCaption}\item[{Stellar\+Discretization$<$ Owner, Bindings $>$}]{discretization}{, }\item[{Domain\+Model}]{model}{, }\item[{\mbox{\hyperlink{structserif_1_1geometry_1_1deformation_1_1backend_1_1mfem_1_1_reference_discretization}{geometry\+::deformation\+::backend\+::mfem\+::\+Reference\+Discretization}}}]{reference}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Add an explicit deformation prescription without changing the physical equation definition.
|
|
|
|
|
|
|
|
\doxysubsection{Variable Documentation}
|
|
\Hypertarget{namespaceserif_1_1model_a80f6f9e6dee6acbd57d0d4bd1116c9f2}\index{serif::model@{serif::model}!specification\_role\_count@{specification\_role\_count}}
|
|
\index{specification\_role\_count@{specification\_role\_count}!serif::model@{serif::model}}
|
|
\doxysubsubsection{\texorpdfstring{specification\_role\_count}{specification\_role\_count}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1model_a80f6f9e6dee6acbd57d0d4bd1116c9f2}
|
|
template$<$\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}{Specification\+Role}} Role, typename Candidate$>$ \\
|
|
std\+::size\+\_\+t serif\+::model\+::specification\+\_\+role\+\_\+count\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}
|
|
|
|
{\bfseries Initial value\+:}
|
|
\begin{DoxyCode}{0}
|
|
\DoxyCodeLine{=\ []}
|
|
\DoxyCodeLine{\ \ \ \ \{}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ \textcolor{keyword}{constexpr}\ (\mbox{\hyperlink{conceptserif_1_1model_1_1_stellar_model_type}{StellarModelType<Candidate>}})}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ std::remove\_cvref\_t<Candidate>::template\ \mbox{\hyperlink{namespaceserif_1_1model_a80f6f9e6dee6acbd57d0d4bd1116c9f2}{specification\_role\_count<Role>}};}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ std::size\_t\{0\};}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
|
|
\DoxyCodeLine{\ \ \ \ \}()}
|
|
|
|
\end{DoxyCode}
|
|
|
|
|
|
Inspect role counts without instantiating invalid model specializations.
|
|
|