\doxysection{src/compile\+\_\+time\+\_\+checks/serif/solver/normalization/plan.cpp File Reference} \hypertarget{solver_2normalization_2plan_8cpp}{}\label{solver_2normalization_2plan_8cpp}\index{src/compile\_time\_checks/serif/solver/normalization/plan.cpp@{src/compile\_time\_checks/serif/solver/normalization/plan.cpp}} {\ttfamily \#include $<$array$>$}\newline {\ttfamily \#include $<$concepts$>$}\newline {\ttfamily \#include $<$cstddef$>$}\newline {\ttfamily \#include $<$expected$>$}\newline {\ttfamily \#include $<$string$>$}\newline {\ttfamily \#include $<$tuple$>$}\newline {\ttfamily \#include $<$type\+\_\+traits$>$}\newline {\ttfamily \#include $<$utility$>$}\newline {\ttfamily \#include $<$vector$>$}\newline {\ttfamily \#include "{}serif/solver/normalization/computations.\+hpp"{}}\newline {\ttfamily \#include "{}serif/solver/normalization/physical\+\_\+coordinates.\+hpp"{}}\newline {\ttfamily \#include "{}serif/equations/angular\+\_\+momentum.\+hpp"{}}\newline {\ttfamily \#include "{}serif/equations/mass\+\_\+normalization.\+hpp"{}}\newline {\ttfamily \#include "{}serif/equations/primal\+\_\+gravity.\+hpp"{}}\newline {\ttfamily \#include "{}serif/eos/models/polytropic.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/dependencies/computation\+\_\+cache.\+hpp"{}}\newline Include dependency graph for plan.\+cpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{solver_2normalization_2plan_8cpp__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_value}{serif\+::solver\+::normalization\+::checks\+::\+First\+Value}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_second_value}{serif\+::solver\+::normalization\+::checks\+::\+Second\+Value}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_residual}{serif\+::solver\+::normalization\+::checks\+::\+First\+Residual}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_second_residual}{serif\+::solver\+::normalization\+::checks\+::\+Second\+Residual}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_foreign_coordinate}{serif\+::solver\+::normalization\+::checks\+::\+Foreign\+Coordinate}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_pressure_row}{serif\+::solver\+::normalization\+::checks\+::\+Pressure\+Row}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_mass_row}{serif\+::solver\+::normalization\+::checks\+::\+Mass\+Row}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_central_row}{serif\+::solver\+::normalization\+::checks\+::\+Central\+Row}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_selected_surface_rows}{serif\+::solver\+::normalization\+::checks\+::\+Selected\+Surface\+Rows}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_custom_density_metric}{serif\+::solver\+::normalization\+::checks\+::\+Custom\+Density\+Metric}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_shared_field_metric}{serif\+::solver\+::normalization\+::checks\+::\+Shared\+Field\+Metric}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_malformed_metric}{serif\+::solver\+::normalization\+::checks\+::\+Malformed\+Metric}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_missing_metric_metadata}{serif\+::solver\+::normalization\+::checks\+::\+Missing\+Metric\+Metadata}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_duplicate_metric_coordinates}{serif\+::solver\+::normalization\+::checks\+::\+Duplicate\+Metric\+Coordinates}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_pretend_riesz_method}{serif\+::solver\+::normalization\+::checks\+::\+Pretend\+Riesz\+Method}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_move_only_prescription}{serif\+::solver\+::normalization\+::checks\+::\+Move\+Only\+Prescription}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_prepared_prescription}{serif\+::solver\+::normalization\+::checks\+::\+Prepared\+Prescription}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_derived_prescription}{serif\+::solver\+::normalization\+::checks\+::\+Derived\+Prescription}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_convertible_prescription}{serif\+::solver\+::normalization\+::checks\+::\+Convertible\+Prescription}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_wrong_preparation_result}{serif\+::solver\+::normalization\+::checks\+::\+Wrong\+Preparation\+Result}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_borrowed_preparation_result}{serif\+::solver\+::normalization\+::checks\+::\+Borrowed\+Preparation\+Result}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_state_only_prescription}{serif\+::solver\+::normalization\+::checks\+::\+State\+Only\+Prescription}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_aliases_only_layout}{serif\+::solver\+::normalization\+::checks\+::\+Aliases\+Only\+Layout}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_temperature_coordinate}{serif\+::solver\+::normalization\+::checks\+::\+Temperature\+Coordinate}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_temperature_metric}{serif\+::solver\+::normalization\+::checks\+::\+Temperature\+Metric}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_temperature_scales}{serif\+::solver\+::normalization\+::checks\+::\+Temperature\+Scales}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_untyped_temperature_scales}{serif\+::solver\+::normalization\+::checks\+::\+Untyped\+Temperature\+Scales}} \end{DoxyCompactItemize} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver}{serif\+::solver}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization}{serif\+::solver\+::normalization}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks}{serif\+::solver\+::normalization\+::checks}} \end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1solver_1_1normalization_1_1checks_1_1_can_declare_layout}{serif\+::solver\+::normalization\+::checks\+::\+Can\+Declare\+Layout}} \begin{DoxyCompactList}\small\item\em Keep invalid layout declarations safely testable without instantiating their storage. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1solver_1_1normalization_1_1checks_1_1_can_declare_runtime_method}{serif\+::solver\+::normalization\+::checks\+::\+Can\+Declare\+Runtime\+Method}} \begin{DoxyCompactList}\small\item\em Require explicit policy identity rather than accepting unrelated preparation-\/like objects. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Typedefs} \begin{DoxyCompactItemize} \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_af9b21f9c7ecfe3f81d764e73433d305c}{serif\+::solver\+::normalization\+::checks\+::\+Displacement}} = blocks\+::displacement\+::vector \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a06056e9aad074e242d72eda365df893d}{serif\+::solver\+::normalization\+::checks\+::\+Angular\+Velocity}} = blocks\+::rotation\+::angular\+\_\+velocity \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac27365564a74ba3981f089fba195198d}{serif\+::solver\+::normalization\+::checks\+::\+Central\+Border}} = blocks\+::frame\+\_\+acceleration\+::component$<$0$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a4eed0edb7a2282bec914643c0227cb74}{serif\+::solver\+::normalization\+::checks\+::\+Surface\+Coefficients}} = blocks\+::surface\+\_\+deformation\+::coefficients \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a52905b3444b02d3848d9d66aec2a90c5}{serif\+::solver\+::normalization\+::checks\+::\+Surface\+Equilibrium}} = blocks\+::surface\+\_\+deformation\+::shape\+\_\+equilibrium \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a1f5c8a1a9425070ca3d471da7f574a94}{serif\+::solver\+::normalization\+::checks\+::\+Values}} = Key\+List$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_value}{First\+Value}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_second_value}{Second\+Value}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ad7e7d129957abedcbcf82bf75dbefd70}{serif\+::solver\+::normalization\+::checks\+::\+Residuals}} = Key\+List$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_residual}{First\+Residual}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_second_residual}{Second\+Residual}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2420f933fc7ecedad8dc00a42580a725}{serif\+::solver\+::normalization\+::checks\+::\+Value\+Rules}} = Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_value}{First\+Value}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$, Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_second_value}{Second\+Value}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_afff4572e1034405ada485ab3e397898e}{serif\+::solver\+::normalization\+::checks\+::\+Residual\+Rules}} = Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_residual}{First\+Residual}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$, Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_second_residual}{Second\+Residual}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a5242d98cee7d2e427632b075f49e6096}{serif\+::solver\+::normalization\+::checks\+::\+Complete\+Plan}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2420f933fc7ecedad8dc00a42580a725}{Value\+Rules}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_afff4572e1034405ada485ab3e397898e}{Residual\+Rules}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a7e3dc125003d30aaf4244b5fd3dd95d6}{serif\+::solver\+::normalization\+::checks\+::\+Reordered\+Plan}} \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a045ed97b91420677405327b5099cc621}{serif\+::solver\+::normalization\+::checks\+::\+Missing\+Value}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_value}{First\+Value}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$$>$, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_afff4572e1034405ada485ab3e397898e}{Residual\+Rules}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ab233277cc1fcc7db3aa04ad6c090bbce}{serif\+::solver\+::normalization\+::checks\+::\+Missing\+Residual}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2420f933fc7ecedad8dc00a42580a725}{Value\+Rules}}, Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_residual}{First\+Residual}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a093bdcc30ba74120f2121c40aa84c59e}{serif\+::solver\+::normalization\+::checks\+::\+Duplicate\+Value}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_value}{First\+Value}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$, Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_value}{First\+Value}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$$>$, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_afff4572e1034405ada485ab3e397898e}{Residual\+Rules}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a348018e8285436b04243a2fbde48fc48}{serif\+::solver\+::normalization\+::checks\+::\+Duplicate\+Residual}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2420f933fc7ecedad8dc00a42580a725}{Value\+Rules}}, Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_residual}{First\+Residual}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$, Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_residual}{First\+Residual}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_af8e83e4860fb8801147f58f306a417c1}{serif\+::solver\+::normalization\+::checks\+::\+Foreign\+Value}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_value}{First\+Value}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$, Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_foreign_coordinate}{Foreign\+Coordinate}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$$>$, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_afff4572e1034405ada485ab3e397898e}{Residual\+Rules}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_afb6b2cd80558cfdd8a146695a539faf4}{serif\+::solver\+::normalization\+::checks\+::\+Foreign\+Residual}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2420f933fc7ecedad8dc00a42580a725}{Value\+Rules}}, Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_first_residual}{First\+Residual}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$, Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_foreign_coordinate}{Foreign\+Coordinate}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{Identity\+Coordinate}}$>$$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb7db6f97f05bfb22c812df1ac4184ed}{serif\+::solver\+::normalization\+::checks\+::\+Layout}} = \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_a8b854a2e50341cf923faee8adcc03903}{Coordinate\+Layout}}$<$const \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a1f5c8a1a9425070ca3d471da7f574a94}{Values}}\&, volatile \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ad7e7d129957abedcbcf82bf75dbefd70}{Residuals}}\&\&$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ab33bf2f3c84b615bdceecb66e19cf8f5}{serif\+::solver\+::normalization\+::checks\+::\+Density\+Riesz}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate}{Physical\+Riesz\+Coordinate}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_reference_volume_metric}{Reference\+Volume\+Metric}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a44b142250c8dd27937fc9fe702146b3f}{Density}}$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a327f11659376e3ce258c296a22950b44}{serif\+::solver\+::normalization\+::checks\+::\+Displacement\+Riesz}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate}{Physical\+Riesz\+Coordinate}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_length}{dimensions\+::\+Length}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_reference_volume_metric}{Reference\+Volume\+Metric}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_af9b21f9c7ecfe3f81d764e73433d305c}{Displacement}}$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a4b22f9c8fffef566c48dce364f63c59c}{serif\+::solver\+::normalization\+::checks\+::\+Physical\+Values}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$Bindings$<$Binding$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a44b142250c8dd27937fc9fe702146b3f}{Density}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ab33bf2f3c84b615bdceecb66e19cf8f5}{Density\+Riesz}}$>$, Binding$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_af9b21f9c7ecfe3f81d764e73433d305c}{Displacement}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a327f11659376e3ce258c296a22950b44}{Displacement\+Riesz}}$>$$>$, Bindings$<$$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a61cd2d30367a46745d7a4793a73a402b}{serif\+::solver\+::normalization\+::checks\+::\+Pressure\+Riesz}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate}{Physical\+Riesz\+Coordinate}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_reference_volume_metric}{Reference\+Volume\+Metric}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a44b142250c8dd27937fc9fe702146b3f}{Density}}$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a580703a30bfc1d1479eb022445f12535}{serif\+::solver\+::normalization\+::checks\+::\+Potential\+Riesz}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate}{Physical\+Riesz\+Coordinate}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_gravitational_potential}{dimensions\+::\+Gravitational\+Potential}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_reference_volume_metric}{Reference\+Volume\+Metric}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a281d5dd3052d38cf9c0a73c9d68e4f75}{Potential}}$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ab008bef827eb85b35ffd7a70839e2331}{serif\+::solver\+::normalization\+::checks\+::\+Hybrid\+Residual}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_with_point_rows}{With\+Point\+Rows}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a580703a30bfc1d1479eb022445f12535}{Potential\+Riesz}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_selected_surface_rows}{Selected\+Surface\+Rows}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_aa9b95b1b7f870b2ec7533ef07ac3f285}{serif\+::solver\+::normalization\+::checks\+::\+Scalar\+Values}} = Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a69d4fa6be51dd52c2650ca8082384731}{Mass\+Constant}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a06056e9aad074e242d72eda365df893d}{Angular\+Velocity}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac27365564a74ba3981f089fba195198d}{Central\+Border}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a56ff54af68869f285ac266146d7ff985}{serif\+::solver\+::normalization\+::checks\+::\+Custom\+Method}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_runtime_prepared_coordinate}{Runtime\+Prepared\+Coordinate}}$<$const \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_move_only_prescription}{Move\+Only\+Prescription}}\&$>$ \item {\footnotesize template$<$typename Policy$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a05e859fa64b415d5cb6cd599703bd4d2}{serif\+::solver\+::normalization\+::checks\+::\+Policy\+Plan}} \begin{DoxyCompactList}\small\item\em Apply one declared policy independently to state and residual coordinates. \end{DoxyCompactList}\item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac217269f9413bee40738b7bcf58a3f52}{serif\+::solver\+::normalization\+::checks\+::\+Policy\+Layout}} = \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_a8b854a2e50341cf923faee8adcc03903}{Coordinate\+Layout}}$<$Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a44b142250c8dd27937fc9fe702146b3f}{Density}}$>$, Key\+List$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_pressure_row}{Pressure\+Row}}$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac71dd223a37f58b0354af7d9c47b3386}{serif\+::solver\+::normalization\+::checks\+::\+Qualified\+Policy\+Computation}} = decltype(\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1detail_aa1a3e6ee3169b51c03d882bfa7250d38}{detail\+::coordinate\+\_\+computation}}$<$blocks\+::\+Represented\+Value\+Kind\+::value, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a44b142250c8dd27937fc9fe702146b3f}{Density}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac217269f9413bee40738b7bcf58a3f52}{Policy\+Layout}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_stellar_reference_scales}{Stellar\+Reference\+Scales}}$>$(\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_runtime_prepared_coordinate}{Runtime\+Prepared\+Coordinate}}$<$const \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_prepared_prescription}{Prepared\+Prescription}}\&$>$\{\})) \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a7924d79d7951bebda69f76231bfb762a}{serif\+::solver\+::normalization\+::checks\+::\+Temperature\+Plan}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{Normalization\+Plan}}$<$Bindings$<$Binding$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_temperature_coordinate}{Temperature\+Coordinate}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate}{Physical\+Riesz\+Coordinate}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_temperature}{dimensions\+::\+Temperature}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_temperature_metric}{Temperature\+Metric}}$>$$>$$>$, Bindings$<$$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a0a45beb09a9c52fa4253df847fff7583}{serif\+::solver\+::normalization\+::checks\+::\+Temperature\+Layout}} = \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_a8b854a2e50341cf923faee8adcc03903}{Coordinate\+Layout}}$<$Key\+List$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_temperature_coordinate}{Temperature\+Coordinate}}$>$, Key\+List$<$$>$$>$ \item {\footnotesize template$<$typename Key, typename Value$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb4f9189ceef794a401f461503789db7}{serif\+::solver\+::normalization\+::checks\+::\+Owned\+Source}} = decltype(dependencies\+::own$<$Key$>$(std\+::declval$<$Value$>$())) \begin{DoxyCompactList}\small\item\em Describe an explicitly owned source using the same factory as runtime clients. \end{DoxyCompactList}\item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac6109a33e2b7de15c2bb65418c3b2a0d}{serif\+::solver\+::normalization\+::checks\+::\+Metric\+Layout}} = \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_a8b854a2e50341cf923faee8adcc03903}{Coordinate\+Layout}}$<$Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a44b142250c8dd27937fc9fe702146b3f}{Density}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_af9b21f9c7ecfe3f81d764e73433d305c}{Displacement}}$>$, Key\+List$<$$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a573978c7c289ab273a46969b2b79ef7d}{serif\+::solver\+::normalization\+::checks\+::\+Metric\+Computations}} = decltype(\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_a7540a7b41f57c928bae80c99d29f0706}{make\+\_\+normalization\+\_\+computations}}$<$const \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a4b22f9c8fffef566c48dce364f63c59c}{Physical\+Values}}\&$>$(std\+::declval$<$const \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac6109a33e2b7de15c2bb65418c3b2a0d}{Metric\+Layout}}\&$>$())) \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_aeaf443beab4452f1575584a10959b0dc}{serif\+::solver\+::normalization\+::checks\+::\+Metric\+Graph}} = decltype(\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a471523d2418b6f9ae5f559eedcea7b11}{graph\+\_\+type}}(std\+::declval$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a573978c7c289ab273a46969b2b79ef7d}{Metric\+Computations}}$>$())) \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2afa56f575f68c211d9fbdcd97416bbb}{serif\+::solver\+::normalization\+::checks\+::\+Layout\+Source}} = \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb4f9189ceef794a401f461503789db7}{Owned\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1keys_a01d33c80ce728df0cb2687eebe9ea921}{keys\+::\+Layout}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac6109a33e2b7de15c2bb65418c3b2a0d}{Metric\+Layout}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a4cc4f5e80a0f72e6e2e39dd2632e1189}{serif\+::solver\+::normalization\+::checks\+::\+Scale\+Source}} = \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb4f9189ceef794a401f461503789db7}{Owned\+Source}}$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1keys_1_1_scales}{keys\+::\+Scales}}, \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_stellar_reference_scales}{Stellar\+Reference\+Scales}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a63b231aae60c5b848cb1711a54d79f2b}{serif\+::solver\+::normalization\+::checks\+::\+Density\+Metric\+Source}} = \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb4f9189ceef794a401f461503789db7}{Owned\+Source}}$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_reference_volume_metric}{Reference\+Volume\+Metric}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a44b142250c8dd27937fc9fe702146b3f}{Density}}$>$, std\+::vector$<$double$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a491d376b133766ae6f4d2c625c220115}{serif\+::solver\+::normalization\+::checks\+::\+Displacement\+Metric\+Source}} = \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb4f9189ceef794a401f461503789db7}{Owned\+Source}}$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_reference_volume_metric}{Reference\+Volume\+Metric}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_af9b21f9c7ecfe3f81d764e73433d305c}{Displacement}}$>$, std\+::vector$<$double$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a99d45d61baa18d08065e2c7be1cce8c0}{serif\+::solver\+::normalization\+::checks\+::\+Complete\+Metric\+Context}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2afa56f575f68c211d9fbdcd97416bbb}{Layout\+Source}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a4cc4f5e80a0f72e6e2e39dd2632e1189}{Scale\+Source}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a63b231aae60c5b848cb1711a54d79f2b}{Density\+Metric\+Source}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a491d376b133766ae6f4d2c625c220115}{Displacement\+Metric\+Source}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a4f6b0f14becc5c03d97c3a7dc5be4186}{serif\+::solver\+::normalization\+::checks\+::\+Missing\+Metric\+Context}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2afa56f575f68c211d9fbdcd97416bbb}{Layout\+Source}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a4cc4f5e80a0f72e6e2e39dd2632e1189}{Scale\+Source}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a63b231aae60c5b848cb1711a54d79f2b}{Density\+Metric\+Source}}$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a6c95d124a8379c9153bdd776d9bd9c90}{serif\+::solver\+::normalization\+::checks\+::\+Wrong\+Metric\+Context}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2afa56f575f68c211d9fbdcd97416bbb}{Layout\+Source}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a4cc4f5e80a0f72e6e2e39dd2632e1189}{Scale\+Source}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a63b231aae60c5b848cb1711a54d79f2b}{Density\+Metric\+Source}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb4f9189ceef794a401f461503789db7}{Owned\+Source}}$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_reference_volume_metric}{Reference\+Volume\+Metric}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_af9b21f9c7ecfe3f81d764e73433d305c}{Displacement}}$>$, std\+::vector$<$int$>$$>$$>$ \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a09f044f9c8998f4dbe47fda233372350}{serif\+::solver\+::normalization\+::checks\+::\+Policy\+Computations}} = decltype(\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_a7540a7b41f57c928bae80c99d29f0706}{make\+\_\+normalization\+\_\+computations}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a05e859fa64b415d5cb6cd599703bd4d2}{Policy\+Plan}}$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_prepared_prescription}{Prepared\+Prescription}}$>$$>$(std\+::declval$<$const \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac217269f9413bee40738b7bcf58a3f52}{Policy\+Layout}}\&$>$())) \item using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_aa5b13e4d4a0551d54221bec5e9a667c3}{serif\+::solver\+::normalization\+::checks\+::\+Policy\+Graph}} = decltype(\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a471523d2418b6f9ae5f559eedcea7b11}{graph\+\_\+type}}(std\+::declval$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a09f044f9c8998f4dbe47fda233372350}{Policy\+Computations}}$>$())) \item {\footnotesize template$<$typename Supplied\+Prescription$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a2e8632b656031b38ba6bb666b508e827}{serif\+::solver\+::normalization\+::checks\+::\+Policy\+Context}} = dependencies\+::\+Dependency\+Context$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb4f9189ceef794a401f461503789db7}{Owned\+Source}}$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1keys_a01d33c80ce728df0cb2687eebe9ea921}{keys\+::\+Layout}}, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ac217269f9413bee40738b7bcf58a3f52}{Policy\+Layout}}$>$, \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_abb4f9189ceef794a401f461503789db7}{Owned\+Source}}$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1keys_1_1_prescription}{keys\+::\+Prescription}}$<$\mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_prepared_prescription}{Prepared\+Prescription}}$>$, Supplied\+Prescription$>$$>$ \begin{DoxyCompactList}\small\item\em Vary the supplied resource type while keeping the plan\textquotesingle{}s prescription key unchanged. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classserif_1_1dimensions_1_1_quantity_value}{dimensions\+::\+Quantity\+Value}}$<$ \mbox{\hyperlink{structserif_1_1dimensions_1_1_temperature}{dimensions\+::\+Temperature}} $>$ \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ab2a29c85f0f54da4bd9d77a27e3ab112}{serif\+::solver\+::normalization\+::checks\+::characteristic\+\_\+scale}} (const \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_temperature_scales}{Temperature\+Scales}} \&, \mbox{\hyperlink{structserif_1_1dimensions_1_1_temperature}{dimensions\+::\+Temperature}}) \begin{DoxyCompactList}\small\item\em External thermodynamic scales participate through their own typed ADL provider. \end{DoxyCompactList}\item double \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_ab1531e997730a8e46780521e05bd8f6c}{serif\+::solver\+::normalization\+::checks\+::characteristic\+\_\+scale}} (const \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1checks_1_1_untyped_temperature_scales}{Untyped\+Temperature\+Scales}} \&, \mbox{\hyperlink{structserif_1_1dimensions_1_1_temperature}{dimensions\+::\+Temperature}}) \begin{DoxyCompactList}\small\item\em A raw number cannot silently stand in for a scale carrying the requested quantity. \end{DoxyCompactList}\item {\footnotesize template$<$typename... Computations$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1checks_a471523d2418b6f9ae5f559eedcea7b11}{serif\+::solver\+::normalization\+::checks\+::graph\+\_\+type}} (std\+::tuple$<$ Computations... $>$) -\/$>$ decltype(dependencies\+::make\+\_\+computation\+\_\+graph(std\+::declval$<$ Computations $>$()...)) \begin{DoxyCompactList}\small\item\em Inspect the public graph\textquotesingle{}s type without constructing or preparing numerical objects. \end{DoxyCompactList}\end{DoxyCompactItemize}