\doxysection{src/include/serif/solver/normalization/plan.hpp File Reference} \hypertarget{solver_2normalization_2plan_8hpp}{}\label{solver_2normalization_2plan_8hpp}\index{src/include/serif/solver/normalization/plan.hpp@{src/include/serif/solver/normalization/plan.hpp}} {\ttfamily \#include $<$concepts$>$}\newline {\ttfamily \#include $<$type\+\_\+traits$>$}\newline {\ttfamily \#include "{}serif/dimensions/quantities.\+hpp"{}}\newline {\ttfamily \#include "{}serif/discretization/blocks/base.\+hpp"{}}\newline {\ttfamily \#include "{}serif/solver/normalization/metrics.\+hpp"{}}\newline {\ttfamily \#include "{}serif/solver/normalization/dimensionless.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/dependencies/binding.\+hpp"{}}\newline Include dependency graph for plan.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{solver_2normalization_2plan_8hpp__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{solver_2normalization_2plan_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_prescription_tag}{serif\+::solver\+::normalization\+::\+Normalization\+Prescription\+Tag}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_identity_coordinate}{serif\+::solver\+::normalization\+::\+Identity\+Coordinate}} \begin{DoxyCompactList}\small\item\em Leave the declared coordinates unchanged, including their physical units. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate}{serif\+::solver\+::normalization\+::\+Physical\+Riesz\+Coordinate$<$ Quantity\+T, Metric\+Key\+T $>$}} \begin{DoxyCompactList}\small\item\em Measure a physical quantity with the named reference Gram diagonal. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_dimensionless_riesz_coordinate}{serif\+::solver\+::normalization\+::\+Dimensionless\+Riesz\+Coordinate$<$ Quantity\+T, Metric\+Key\+T, Geometry $>$}} \begin{DoxyCompactList}\small\item\em Measure coordinates using dimensionless physical fields and reference geometry. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_with_point_rows}{serif\+::solver\+::normalization\+::\+With\+Point\+Rows$<$ Volume\+Method\+T, Point\+Quantity\+T, Selection\+Key\+T $>$}} \begin{DoxyCompactList}\small\item\em Replace selected volume residual rows by point residuals with their own physical quantity. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_runtime_prepared_coordinate}{serif\+::solver\+::normalization\+::\+Runtime\+Prepared\+Coordinate$<$ Prescription\+T $>$}} \begin{DoxyCompactList}\small\item\em Identify the exact prescription supplying positive factors; this never claims identity scaling. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1_normalization_plan}{serif\+::solver\+::normalization\+::\+Normalization\+Plan$<$ Value\+Rules\+T, Residual\+Rules\+T $>$}} \begin{DoxyCompactList}\small\item\em Independent term-\/to-\/method and row-\/to-\/method maps; their order does not define the packed layout. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_rule_keys_3_01utils_1_1dependencies_1_1_bin150f4520117b72e129d0050b68e37dfd}{serif\+::solver\+::normalization\+::detail\+::\+Rule\+Keys$<$ utils\+::dependencies\+::\+Bindings$<$ Rules... $>$ $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_method_supports}{serif\+::solver\+::normalization\+::detail\+::\+Method\+Supports$<$ Method\+T, Key\+T, Kind $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_method_supports_3_01_identity_coordinate_00_01_key_t_00_01_kind_01_4}{serif\+::solver\+::normalization\+::detail\+::\+Method\+Supports$<$ Identity\+Coordinate, Key\+T, Kind $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_method_supports_3_01_physical_riesz_coordinca53ca5503ea96d28f2ea53532c197f0}{serif\+::solver\+::normalization\+::detail\+::\+Method\+Supports$<$ Physical\+Riesz\+Coordinate$<$ Quantity\+T, Metric\+T $>$, Key\+T, Kind $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_method_supports_3_01_with_point_rows_3_01_p780a79914d33f037a5a0b1e31a23dcb4}{serif\+::solver\+::normalization\+::detail\+::\+Method\+Supports$<$ With\+Point\+Rows$<$ Physical\+Riesz\+Coordinate$<$ Quantity\+T, Metric\+T $>$, Point\+Quantity\+T, Selection\+T $>$, Key\+T, discretization\+::blocks\+::\+Represented\+Value\+Kind\+::residual $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_method_supports_3_01_dimensionless_riesz_cob7933641b0ccf84196767145765dfaa2}{serif\+::solver\+::normalization\+::detail\+::\+Method\+Supports$<$ Dimensionless\+Riesz\+Coordinate$<$ Quantity\+T, Metric\+T, Geometry $>$, Key\+T, Kind $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_method_supports_3_01_with_point_rows_3_01_de1e33c308e0087263c578f98794d4b57}{serif\+::solver\+::normalization\+::detail\+::\+Method\+Supports$<$ With\+Point\+Rows$<$ Dimensionless\+Riesz\+Coordinate$<$ Quantity\+T, Metric\+T, Geometry $>$, Point\+Quantity\+T, Selection\+T $>$, Key\+T, discretization\+::blocks\+::\+Represented\+Value\+Kind\+::residual $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_method_supports_3_01_runtime_prepared_coord0c5dcc5681f6fd501a5f742fa84af007}{serif\+::solver\+::normalization\+::detail\+::\+Method\+Supports$<$ Runtime\+Prepared\+Coordinate$<$ Prescription\+T $>$, Key\+T, Kind $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_valid_rules}{serif\+::solver\+::normalization\+::detail\+::\+Valid\+Rules$<$ Rules\+T, Kind $>$}} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_valid_rules_3_01utils_1_1dependencies_1_1_b203aec1eb2fb5f59f72d5661ef45b524}{serif\+::solver\+::normalization\+::detail\+::\+Valid\+Rules$<$ utils\+::dependencies\+::\+Bindings$<$ Rules... $>$, Kind $>$}} \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_1detail}{serif\+::solver\+::normalization\+::detail}} \end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1solver_1_1normalization_1_1_normalization_prescription}{serif\+::solver\+::normalization\+::\+Normalization\+Prescription}} \item concept \mbox{\hyperlink{conceptserif_1_1solver_1_1normalization_1_1_normalization_plan_type}{serif\+::solver\+::normalization\+::\+Normalization\+Plan\+Type}} \item concept \mbox{\hyperlink{conceptserif_1_1solver_1_1normalization_1_1_complete_normalization_for}{serif\+::solver\+::normalization\+::\+Complete\+Normalization\+For}} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename... Declared, typename... Required$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1detail_af33ef5954b204ea3bcfc2b90c0a0637c}{serif\+::solver\+::normalization\+::detail\+::exact\+\_\+coordinates}} (\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Declared... $>$, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Required... $>$) \begin{DoxyCompactList}\small\item\em Compare memberships in both directions without deduplicating ownership declarations. \end{DoxyCompactList}\item {\footnotesize template$<$typename KeyT, typename QuantityT, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1blocks_aca74ff25d2168fcdec080e03ebc023ea}{discretization\+::blocks\+::\+Represented\+Value\+Kind}} Kind$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1detail_abfb83db8419da91b1325d23a4574ec93}{serif\+::solver\+::normalization\+::detail\+::quantity\+\_\+matches}} () \begin{DoxyCompactList}\small\item\em Check physics metadata when present; explicit low-\/level residual declarations remain their own authority. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Variables} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename Candidate$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1detail_a743e21bed6e625b164b7c4da40d337dc}{serif\+::solver\+::normalization\+::detail\+::valid\+\_\+plan}} = false \item {\footnotesize template$<$typename ValuesT, typename ResidualsT$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization_1_1detail_ae65c4d905195e523a5cd8193deb31e22}{serif\+::solver\+::normalization\+::detail\+::valid\+\_\+plan$<$ Normalization\+Plan$<$ Values\+T, Residuals\+T $>$ $>$}} = \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_valid_rules}{Valid\+Rules}}$<$ValuesT, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1blocks_aca74ff25d2168fcdec080e03ebc023eaa2063c1608d6e0baf80249c42e2be5804}{discretization\+::blocks\+::\+Represented\+Value\+Kind\+::value}}$>$\+::value \&\& \mbox{\hyperlink{structserif_1_1solver_1_1normalization_1_1detail_1_1_valid_rules}{Valid\+Rules}}$<$ResidualsT, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1blocks_aca74ff25d2168fcdec080e03ebc023eaa4db598f63d4aea6a3c8eaddfe5c2b1e9}{discretization\+::blocks\+::\+Represented\+Value\+Kind\+::residual}}$>$\+::value \end{DoxyCompactItemize}