\doxysection{serif\+::model\+::normalization Namespace Reference} \hypertarget{namespaceserif_1_1model_1_1normalization}{}\label{namespaceserif_1_1model_1_1normalization}\index{serif::model::normalization@{serif::model::normalization}} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_1_1detail}{detail}} \end{DoxyCompactItemize} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1model_1_1normalization_1_1_configuration}{Configuration}} \item struct \mbox{\hyperlink{structserif_1_1model_1_1normalization_1_1_infinity_rows}{Infinity\+Rows}} \begin{DoxyCompactList}\small\item\em Potential rows replaced by the zero trace at compactified infinity. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1model_1_1normalization_1_1_prepared_system}{Prepared\+System}} \item struct \mbox{\hyperlink{structserif_1_1model_1_1normalization_1_1_surface_rows}{Surface\+Rows}} \begin{DoxyCompactList}\small\item\em Reduced equation rows whose volume residual is replaced by the selected surface condition. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1model_1_1normalization_1_1_reference_resolvable}{Reference\+Resolvable}} \begin{DoxyCompactList}\small\item\em Check model-\/provided reference requirements before instantiating numerical preparation. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename Selection, typename Coordinates, typename Bound$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_a20221d8368d5bf0b36f03e7755fc6d64}{Plan\+For}} = typename \mbox{\hyperlink{structserif_1_1model_1_1normalization_1_1detail_1_1_select_plan}{detail\+::\+Select\+Plan}}$<$Selection, Coordinates, Bound$>$\+::\+Type \begin{DoxyCompactList}\small\item\em Compile automatic physics-\/aware rules or retain the user\textquotesingle{}s complete explicit plan. \end{DoxyCompactList}\item {\footnotesize template$<$typename Plan$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_a9bca7844875f31e08df105bc8da44c69}{Metrics\+For}} \begin{DoxyCompactList}\small\item\em Assemble each metric once even when several state and residual rules share it. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename Options, typename Discretization, typename... Metrics$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_abadff187532235162a96bd1da3f76730}{make\+\_\+inputs}} (std\+::shared\+\_\+ptr$<$ const Options $>$ options, const Discretization \&discretization, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Metrics... $>$) \begin{DoxyCompactList}\small\item\em Keep the immutable configuration alive and reference metrics separate from candidate coefficients. \end{DoxyCompactList}\item {\footnotesize template$<$typename Normalization\+Plan, typename Bound, typename Options, typename Layout, typename... Metrics$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_afa784ae747a3faf8c4b595119d2fb151}{make\+\_\+computations}} (const Bound \&bound, const Options \&options, const Layout \&layout, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Metrics... $>$) \begin{DoxyCompactList}\small\item\em Compose normalization into the physical graph, including the selected surface row replacement. \end{DoxyCompactList}\item {\footnotesize template$<$typename Mass, typename Density, Stellar\+Model\+Type Model$>$ \newline requires detail\+::\+Reference\+Available$<$Mass, Model, \mbox{\hyperlink{classserif_1_1model_1_1_fixed_total_mass}{Fixed\+Total\+Mass}}$>$ \&\& std\+::same\+\_\+as$<$Density, \mbox{\hyperlink{namespaceserif_1_1dimensions_af7f8c68a704a7bf475c60dbad5f98d78}{dimensions\+::\+Density\+Value}}$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_aad8500244bb5debae8de93881311505c}{resolve\+\_\+reference}} (const \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_lane_emden_approximation}{solver\+::normalization\+::\+Lane\+Emden\+Approximation}}$<$ Mass, Density $>$ \&scheme, const Model \&model) \begin{DoxyCompactList}\small\item\em Resolve the Lane–\+Emden reference from explicit inputs or the model\textquotesingle{}s mass target; no model prescribes central density. \end{DoxyCompactList}\item {\footnotesize template$<$solver\+::normalization\+::\+Reference\+Scheme Scheme, Stellar\+Model\+Type Model$>$ }\\Scheme \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_af1f75aeb12a566859ea4dbd2ed52cdc4}{resolve\+\_\+reference}} (const Scheme \&scheme, const Model \&) \begin{DoxyCompactList}\small\item\em Explicit or custom reference schemes need no model-\/specific defaults. \end{DoxyCompactList}\item {\footnotesize template$<$typename Options, Stellar\+Model\+Type Model$>$ \newline requires Reference\+Resolvable$<$Options, Model$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_a1ed5daad7a452214875d436c7ae8f289}{resolve\+\_\+configuration}} (Options options, const Model \&model) \begin{DoxyCompactList}\small\item\em Freeze resolved reference choices while retaining the deduced coordinate and plan types. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Typedef Documentation} \Hypertarget{namespaceserif_1_1model_1_1normalization_a9bca7844875f31e08df105bc8da44c69}\index{serif::model::normalization@{serif::model::normalization}!MetricsFor@{MetricsFor}} \index{MetricsFor@{MetricsFor}!serif::model::normalization@{serif::model::normalization}} \doxysubsubsection{\texorpdfstring{MetricsFor}{MetricsFor}} {\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1normalization_a9bca7844875f31e08df105bc8da44c69} template$<$typename Plan$>$ \\ using \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_a9bca7844875f31e08df105bc8da44c69}{serif\+::model\+::normalization\+::\+Metrics\+For}}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{\ \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_a4b225a37465f007a877f89860d3627c1}{utils::dependencies::CombinedKeyList::Type}},} \DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keyword}{typename}\ \mbox{\hyperlink{structserif_1_1model_1_1normalization_1_1detail_1_1_rule_metrics}{detail::RuleMetrics::Type}}>} \end{DoxyCode} Assemble each metric once even when several state and residual rules share it. \Hypertarget{namespaceserif_1_1model_1_1normalization_a20221d8368d5bf0b36f03e7755fc6d64}\index{serif::model::normalization@{serif::model::normalization}!PlanFor@{PlanFor}} \index{PlanFor@{PlanFor}!serif::model::normalization@{serif::model::normalization}} \doxysubsubsection{\texorpdfstring{PlanFor}{PlanFor}} {\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1normalization_a20221d8368d5bf0b36f03e7755fc6d64} template$<$typename Selection, typename Coordinates, typename Bound$>$ \\ using \mbox{\hyperlink{namespaceserif_1_1model_1_1normalization_a20221d8368d5bf0b36f03e7755fc6d64}{serif\+::model\+::normalization\+::\+Plan\+For}} = typename \mbox{\hyperlink{structserif_1_1model_1_1normalization_1_1detail_1_1_select_plan}{detail\+::\+Select\+Plan}}$<$Selection, Coordinates, Bound$>$\+::\+Type} Compile automatic physics-\/aware rules or retain the user\textquotesingle{}s complete explicit plan. \doxysubsection{Function Documentation} \Hypertarget{namespaceserif_1_1model_1_1normalization_afa784ae747a3faf8c4b595119d2fb151}\index{serif::model::normalization@{serif::model::normalization}!make\_computations@{make\_computations}} \index{make\_computations@{make\_computations}!serif::model::normalization@{serif::model::normalization}} \doxysubsubsection{\texorpdfstring{make\_computations()}{make\_computations()}} {\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1normalization_afa784ae747a3faf8c4b595119d2fb151} template$<$typename Normalization\+Plan, typename Bound, typename Options, typename Layout, typename... Metrics$>$ \\ auto serif\+::model\+::normalization\+::make\+\_\+computations (\begin{DoxyParamCaption}\item[{const Bound \&}]{bound}{, }\item[{const Options \&}]{options}{, }\item[{const Layout \&}]{layout}{, }\item[{\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Metrics... $>$}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Compose normalization into the physical graph, including the selected surface row replacement. \Hypertarget{namespaceserif_1_1model_1_1normalization_abadff187532235162a96bd1da3f76730}\index{serif::model::normalization@{serif::model::normalization}!make\_inputs@{make\_inputs}} \index{make\_inputs@{make\_inputs}!serif::model::normalization@{serif::model::normalization}} \doxysubsubsection{\texorpdfstring{make\_inputs()}{make\_inputs()}} {\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1normalization_abadff187532235162a96bd1da3f76730} template$<$typename Options, typename Discretization, typename... Metrics$>$ \\ auto serif\+::model\+::normalization\+::make\+\_\+inputs (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ const Options $>$}]{options}{, }\item[{const Discretization \&}]{discretization}{, }\item[{\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Metrics... $>$}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Keep the immutable configuration alive and reference metrics separate from candidate coefficients. \Hypertarget{namespaceserif_1_1model_1_1normalization_a1ed5daad7a452214875d436c7ae8f289}\index{serif::model::normalization@{serif::model::normalization}!resolve\_configuration@{resolve\_configuration}} \index{resolve\_configuration@{resolve\_configuration}!serif::model::normalization@{serif::model::normalization}} \doxysubsubsection{\texorpdfstring{resolve\_configuration()}{resolve\_configuration()}} {\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1normalization_a1ed5daad7a452214875d436c7ae8f289} template$<$typename Options, Stellar\+Model\+Type Model$>$ \newline requires Reference\+Resolvable$<$Options, Model$>$\\ auto serif\+::model\+::normalization\+::resolve\+\_\+configuration (\begin{DoxyParamCaption}\item[{Options}]{options}{, }\item[{const Model \&}]{model}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Freeze resolved reference choices while retaining the deduced coordinate and plan types. \Hypertarget{namespaceserif_1_1model_1_1normalization_af1f75aeb12a566859ea4dbd2ed52cdc4}\index{serif::model::normalization@{serif::model::normalization}!resolve\_reference@{resolve\_reference}} \index{resolve\_reference@{resolve\_reference}!serif::model::normalization@{serif::model::normalization}} \doxysubsubsection{\texorpdfstring{resolve\_reference()}{resolve\_reference()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1normalization_af1f75aeb12a566859ea4dbd2ed52cdc4} template$<$solver\+::normalization\+::\+Reference\+Scheme Scheme, Stellar\+Model\+Type Model$>$ \\ Scheme serif\+::model\+::normalization\+::resolve\+\_\+reference (\begin{DoxyParamCaption}\item[{const Scheme \&}]{scheme}{, }\item[{const Model \&}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Explicit or custom reference schemes need no model-\/specific defaults. \Hypertarget{namespaceserif_1_1model_1_1normalization_aad8500244bb5debae8de93881311505c}\index{serif::model::normalization@{serif::model::normalization}!resolve\_reference@{resolve\_reference}} \index{resolve\_reference@{resolve\_reference}!serif::model::normalization@{serif::model::normalization}} \doxysubsubsection{\texorpdfstring{resolve\_reference()}{resolve\_reference()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily \label{namespaceserif_1_1model_1_1normalization_aad8500244bb5debae8de93881311505c} template$<$typename Mass, typename Density, Stellar\+Model\+Type Model$>$ \newline requires detail\+::\+Reference\+Available$<$Mass, Model, \mbox{\hyperlink{classserif_1_1model_1_1_fixed_total_mass}{Fixed\+Total\+Mass}}$>$ \&\& std\+::same\+\_\+as$<$Density, \mbox{\hyperlink{namespaceserif_1_1dimensions_af7f8c68a704a7bf475c60dbad5f98d78}{dimensions\+::\+Density\+Value}}$>$\\ auto serif\+::model\+::normalization\+::resolve\+\_\+reference (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_lane_emden_approximation}{solver\+::normalization\+::\+Lane\+Emden\+Approximation}}$<$ Mass, Density $>$ \&}]{scheme}{, }\item[{const Model \&}]{model}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Resolve the Lane–\+Emden reference from explicit inputs or the model\textquotesingle{}s mass target; no model prescribes central density.