Files
MeanField_SERiF/docs/xml/namespaceserif_1_1solver_1_1normalization.xml
Emily Boudreaux 6b57738330 docs(docs): built docs
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)
2026-11-09 14:09:44 -05:00

500 lines
35 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.13.2" xml:lang="en-US">
<compounddef id="namespaceserif_1_1solver_1_1normalization" kind="namespace" language="C++">
<compoundname>serif::solver::normalization</compoundname>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_automatic_plan" prot="public">serif::solver::normalization::AutomaticPlan</innerclass>
<innerclass refid="classserif_1_1solver_1_1normalization_1_1_diagonal_normalization" prot="public">serif::solver::normalization::DiagonalNormalization</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_dimensionless" prot="public">serif::solver::normalization::Dimensionless</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_dimensionless_metric_geometry" prot="public">serif::solver::normalization::DimensionlessMetricGeometry</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_dimensionless_metric_geometry_3_01geometry_1_1deforma6be1597e60f90b119b47e9401d531cd8" prot="public">serif::solver::normalization::DimensionlessMetricGeometry&lt; geometry::deformation::keys::SurfaceMetric &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_dimensionless_metric_geometry_3_01_reference_volume_metric_3_01_term_t_01_4_01_4" prot="public">serif::solver::normalization::DimensionlessMetricGeometry&lt; ReferenceVolumeMetric&lt; TermT &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_dimensionless_metric_geometry_3_01_unit_metric_01_4" prot="public">serif::solver::normalization::DimensionlessMetricGeometry&lt; UnitMetric &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_dimensionless_riesz_coordinate" prot="public">serif::solver::normalization::DimensionlessRieszCoordinate</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_from_model" prot="public">serif::solver::normalization::FromModel</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_identity_coordinate" prot="public">serif::solver::normalization::IdentityCoordinate</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_lane_emden_approximation" prot="public">serif::solver::normalization::LaneEmdenApproximation</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_metric_coordinates" prot="public">serif::solver::normalization::MetricCoordinates</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_metric_coordinates_3_01geometry_1_1deformation_1_1keys_1_1_surface_metric_01_4" prot="public">serif::solver::normalization::MetricCoordinates&lt; geometry::deformation::keys::SurfaceMetric &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_metric_coordinates_3_01_metric_t_00_01std_1_1void__t_7159054dec962eec3c70ff59a02679f9" prot="public">serif::solver::normalization::MetricCoordinates&lt; MetricT, std::void_t&lt; typename MetricT::Coordinates &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_metric_coordinates_3_01_unit_metric_01_4" prot="public">serif::solver::normalization::MetricCoordinates&lt; UnitMetric &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_normalization_options" prot="public">serif::solver::normalization::NormalizationOptions</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_normalization_plan" prot="public">serif::solver::normalization::NormalizationPlan</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_normalization_prescription_tag" prot="public">serif::solver::normalization::NormalizationPrescriptionTag</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate" prot="public">serif::solver::normalization::PhysicalRieszCoordinate</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_reference_volume_metric" prot="public">serif::solver::normalization::ReferenceVolumeMetric</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_runtime_prepared_coordinate" prot="public">serif::solver::normalization::RuntimePreparedCoordinate</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_stellar_reference_scales" prot="public">serif::solver::normalization::StellarReferenceScales</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_unit_metric" prot="public">serif::solver::normalization::UnitMetric</innerclass>
<innerclass refid="structserif_1_1solver_1_1normalization_1_1_with_point_rows" prot="public">serif::solver::normalization::WithPointRows</innerclass>
<innernamespace refid="namespaceserif_1_1solver_1_1normalization_1_1backend">serif::solver::normalization::backend</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1normalization_1_1checks">serif::solver::normalization::checks</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1normalization_1_1detail">serif::solver::normalization::detail</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1normalization_1_1keys">serif::solver::normalization::keys</innernamespace>
<sectiondef kind="enum">
<memberdef kind="enum" id="namespaceserif_1_1solver_1_1normalization_1ac75238439fd5d1610b177bf85e9376d9" prot="public" static="no" strong="yes">
<type></type>
<name>ReferenceGeometry</name>
<qualifiedname>serif::solver::normalization::ReferenceGeometry</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1_1normalization_1ac75238439fd5d1610b177bf85e9376d9a210ab9e731c9c36c2c38db15c28a8d1c" prot="public">
<name>volume</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1normalization_1ac75238439fd5d1610b177bf85e9376d9ad302e976c9dd527a9521a88c012437c5" prot="public">
<name>surface</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1normalization_1ac75238439fd5d1610b177bf85e9376d9ac7f6ad568392380a8f4b4cecbaccb64c" prot="public">
<name>algebraic</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
<para>Identify the geometric convention of a reference coordinate metric. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/dimensionless.hpp" line="10" column="5" bodyfile="src/include/serif/solver/normalization/dimensionless.hpp" bodystart="10" bodyend="14"/>
</memberdef>
</sectiondef>
<sectiondef kind="typedef">
<memberdef kind="typedef" id="namespaceserif_1_1solver_1_1normalization_1a8b854a2e50341cf923faee8adcc03903" prot="public" static="no">
<templateparamlist>
<param>
<type>utils::dependencies::IsKeyList</type>
<declname>Values</declname>
<defname>Values</defname>
</param>
<param>
<type>utils::dependencies::IsKeyList</type>
<declname>Residuals</declname>
<defname>Residuals</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1discretization_1_1blocks_1_1_system_layout" kindref="compound">discretization::blocks::SystemLayout</ref>&lt; Values, Residuals &gt;</type>
<definition>using serif::solver::normalization::CoordinateLayout = discretization::blocks::SystemLayout&lt;Values, Residuals&gt;</definition>
<argsstring></argsstring>
<name>CoordinateLayout</name>
<qualifiedname>serif::solver::normalization::CoordinateLayout</qualifiedname>
<briefdescription>
<para>Compatibility spelling for the shared discretization layout. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/layout.hpp" line="9" column="5" bodyfile="src/include/serif/solver/normalization/layout.hpp" bodystart="9" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1solver_1_1normalization_1a72b7fb70be44d723b1115bd0561de14a" prot="public" static="no">
<templateparamlist>
<param>
<type>discretization::blocks::HasQuantity</type>
<declname>TermT</declname>
<defname>TermT</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; TermT, <ref refid="structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate" kindref="compound">PhysicalRieszCoordinate</ref>&lt; typename TermT::Quantity, typename decltype(<ref refid="namespaceserif_1_1solver_1_1normalization_1_1detail_1aa52112c59b823c93a41498c9b4d2f39b" kindref="member">detail::default_metric</ref>&lt; TermT &gt;())::type &gt; &gt;</type>
<definition>using serif::solver::normalization::PhysicalValueRule = utils::dependencies::Binding&lt;TermT, PhysicalRieszCoordinate&lt;typename TermT::Quantity, typename decltype(detail::default_metric&lt;TermT&gt;())::type&gt;&gt;</definition>
<argsstring></argsstring>
<name>PhysicalValueRule</name>
<qualifiedname>serif::solver::normalization::PhysicalValueRule</qualifiedname>
<briefdescription>
<para>Describe an unknown from its existing quantity, support, and functional-space metadata. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/physical_coordinates.hpp" line="35" column="5" bodyfile="src/include/serif/solver/normalization/physical_coordinates.hpp" bodystart="35" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1solver_1_1normalization_1a487b77abc2a4a2b63e10a7c95ddfc0a1" prot="public" static="no">
<templateparamlist>
<param>
<type>typename EquationT</type>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; EquationT, <ref refid="structserif_1_1solver_1_1normalization_1_1_physical_riesz_coordinate" kindref="compound">PhysicalRieszCoordinate</ref>&lt; typename EquationT::ResidualQuantity, typename decltype(<ref refid="namespaceserif_1_1solver_1_1normalization_1_1detail_1aa52112c59b823c93a41498c9b4d2f39b" kindref="member">detail::default_metric</ref>&lt; EquationT &gt;())::type &gt; &gt;</type>
<definition>using serif::solver::normalization::PhysicalResidualRule = utils::dependencies::Binding&lt;EquationT, PhysicalRieszCoordinate&lt;typename EquationT::ResidualQuantity, typename decltype(detail::default_metric&lt;EquationT&gt;())::type&gt;&gt;</definition>
<argsstring></argsstring>
<name>PhysicalResidualRule</name>
<qualifiedname>serif::solver::normalization::PhysicalResidualRule</qualifiedname>
<briefdescription>
<para>Describe a residual using the equation&apos;s declared quantity, which may differ from the unknown it closes. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/physical_coordinates.hpp" line="43" column="5" bodyfile="src/include/serif/solver/normalization/physical_coordinates.hpp" bodystart="43" bodyend="-1"/>
</memberdef>
</sectiondef>
<sectiondef kind="func">
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1a7540a7b41f57c928bae80c99d29f0706" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename PlanT</type>
</param>
<param>
<type>typename ScalesT</type>
<defval>StellarReferenceScales</defval>
</param>
<param>
<type>typename LayoutT</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::normalization::make_normalization_computations</definition>
<argsstring>(const LayoutT &amp;)</argsstring>
<name>make_normalization_computations</name>
<qualifiedname>serif::solver::normalization::make_normalization_computations</qualifiedname>
<param>
<type>const LayoutT &amp;</type>
</param>
<requiresclause>NormalizationPreparable&lt;PlanT, LayoutT, ScalesT&gt; </requiresclause>
<briefdescription>
<para>Declare normalization as ordinary dependency computations; no metrics or factors are prepared here. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>Supply <ref refid="namespaceserif_1_1solver_1_1normalization_1_1keys_1a01d33c80ce728df0cb2687eebe9ea921" kindref="member">keys::Layout</ref>, <ref refid="structserif_1_1solver_1_1normalization_1_1keys_1_1_scales" kindref="compound">keys::Scales</ref>, and the plan&apos;s metric/selection/prescription sources. Copy the accepted <ref refid="classserif_1_1solver_1_1normalization_1_1_diagonal_normalization" kindref="compound">DiagonalNormalization</ref> to freeze one solve before preparing later candidates. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/computations.hpp" line="64" column="11" bodyfile="src/include/serif/solver/normalization/computations.hpp" bodystart="64" bodyend="75"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1a58791243c886657505170066c10584ab" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Scheme</type>
</param>
<param>
<type>typename Coordinates</type>
</param>
<param>
<type>typename Plan</type>
</param>
<param>
<type>typename Sources</type>
</param>
<param>
<type>typename Computations</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::normalization::make_normalization</definition>
<argsstring>(NormalizationOptions&lt; Scheme, Coordinates, Plan, Sources, Computations &gt; options)</argsstring>
<name>make_normalization</name>
<qualifiedname>serif::solver::normalization::make_normalization</qualifiedname>
<param>
<type><ref refid="structserif_1_1solver_1_1normalization_1_1_normalization_options" kindref="compound">NormalizationOptions</ref>&lt; Scheme, Coordinates, Plan, Sources, Computations &gt;</type>
<declname>options</declname>
</param>
<briefdescription>
<para>Preserve the deduced numerical choices for later preparation with a model and discretization. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/configuration.hpp" line="57" column="11" bodyfile="src/include/serif/solver/normalization/configuration.hpp" bodystart="57" bodyend="59"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1aabc0313890d07ed3a2e0afd47597dcef" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
<type>auto</type>
<definition>auto serif::solver::normalization::make_normalization</definition>
<argsstring>()</argsstring>
<name>make_normalization</name>
<qualifiedname>serif::solver::normalization::make_normalization</qualifiedname>
<briefdescription>
<para>Select the usual dimensionless Lane–Emden reference; supply its central density before resolving it against a model. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/configuration.hpp" line="62" column="18" bodyfile="src/include/serif/solver/normalization/configuration.hpp" bodystart="62" bodyend="64"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1a1a787fb498a34fbc3def51c8bfddde35" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
<type>std::expected&lt; <ref refid="structserif_1_1solver_1_1normalization_1_1_stellar_reference_scales" kindref="compound">StellarReferenceScales</ref>, std::string &gt;</type>
<definition>std::expected&lt; StellarReferenceScales, std::string &gt; serif::solver::normalization::prepare_reference_scales</definition>
<argsstring>(const LaneEmdenApproximation&lt; dimensions::MassValue, dimensions::DensityValue &gt; &amp;scheme, dimensions::QuantityValue&lt; dimensions::GravitationalConstant &gt; gravitational_constant)</argsstring>
<name>prepare_reference_scales</name>
<qualifiedname>serif::solver::normalization::prepare_reference_scales</qualifiedname>
<param>
<type>const <ref refid="structserif_1_1solver_1_1normalization_1_1_lane_emden_approximation" kindref="compound">LaneEmdenApproximation</ref>&lt; <ref refid="namespaceserif_1_1dimensions_1a66499323cee57a1033e7b203a9198c24" kindref="member">dimensions::MassValue</ref>, <ref refid="namespaceserif_1_1dimensions_1af7f8c68a704a7bf475c60dbad5f98d78" kindref="member">dimensions::DensityValue</ref> &gt; &amp;</type>
<declname>scheme</declname>
</param>
<param>
<type><ref refid="classserif_1_1dimensions_1_1_quantity_value" kindref="compound">dimensions::QuantityValue</ref>&lt; <ref refid="structserif_1_1dimensions_1_1_gravitational_constant" kindref="compound">dimensions::GravitationalConstant</ref> &gt;</type>
<declname>gravitational_constant</declname>
</param>
<briefdescription>
<para>Derive the shared stellar scales after both dimensional reference inputs have been resolved. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/configuration.hpp" line="67" column="27" bodyfile="src/include/serif/solver/normalization/configuration.hpp" bodystart="67" bodyend="79"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1ac1e9d275253e074720b819188ef1b8c6" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
<type>std::expected&lt; <ref refid="structserif_1_1solver_1_1normalization_1_1_stellar_reference_scales" kindref="compound">StellarReferenceScales</ref>, std::string &gt;</type>
<definition>std::expected&lt; StellarReferenceScales, std::string &gt; serif::solver::normalization::prepare_reference_scales</definition>
<argsstring>(const StellarReferenceScales &amp;reference, dimensions::QuantityValue&lt; dimensions::GravitationalConstant &gt; gravitational_constant)</argsstring>
<name>prepare_reference_scales</name>
<qualifiedname>serif::solver::normalization::prepare_reference_scales</qualifiedname>
<param>
<type>const <ref refid="structserif_1_1solver_1_1normalization_1_1_stellar_reference_scales" kindref="compound">StellarReferenceScales</ref> &amp;</type>
<declname>reference</declname>
</param>
<param>
<type><ref refid="classserif_1_1dimensions_1_1_quantity_value" kindref="compound">dimensions::QuantityValue</ref>&lt; <ref refid="structserif_1_1dimensions_1_1_gravitational_constant" kindref="compound">dimensions::GravitationalConstant</ref> &gt;</type>
<declname>gravitational_constant</declname>
</param>
<briefdescription>
<para>Use explicitly prepared reference scales through the same graph as estimated references. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/configuration.hpp" line="82" column="27" bodyfile="src/include/serif/solver/normalization/configuration.hpp" bodystart="82" bodyend="88"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1a8e6459e314714cea6cad28808cd4b598" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<type>std::expected&lt; double, std::string &gt;</type>
<definition>std::expected&lt; double, std::string &gt; serif::solver::normalization::make_riesz_factor</definition>
<argsstring>(discretization::blocks::RepresentedValueKind kind, double metric, double physical_scale)</argsstring>
<name>make_riesz_factor</name>
<qualifiedname>serif::solver::normalization::make_riesz_factor</qualifiedname>
<param>
<type><ref refid="namespaceserif_1_1discretization_1_1blocks_1aca74ff25d2168fcdec080e03ebc023ea" kindref="member">discretization::blocks::RepresentedValueKind</ref></type>
<declname>kind</declname>
</param>
<param>
<type>double</type>
<declname>metric</declname>
</param>
<param>
<type>double</type>
<declname>physical_scale</declname>
</param>
<briefdescription>
<para>Prepare one primal sqrt(metric)/scale or dual 1/(scale sqrt(metric)) factor. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/diagonal.hpp" line="23" column="20" declfile="src/include/serif/solver/normalization/diagonal.hpp" declline="23" declcolumn="20"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1ac6e625b3ce743074b92dd17eaef58b9a" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<type>std::expected&lt; std::vector&lt; double &gt;, std::string &gt;</type>
<definition>std::expected&lt; std::vector&lt; double &gt;, std::string &gt; serif::solver::normalization::make_riesz_factors</definition>
<argsstring>(discretization::blocks::RepresentedValueKind kind, std::span&lt; const double &gt; metric, double physical_scale)</argsstring>
<name>make_riesz_factors</name>
<qualifiedname>serif::solver::normalization::make_riesz_factors</qualifiedname>
<param>
<type><ref refid="namespaceserif_1_1discretization_1_1blocks_1aca74ff25d2168fcdec080e03ebc023ea" kindref="member">discretization::blocks::RepresentedValueKind</ref></type>
<declname>kind</declname>
</param>
<param>
<type>std::span&lt; const double &gt;</type>
<declname>metric</declname>
</param>
<param>
<type>double</type>
<declname>physical_scale</declname>
</param>
<briefdescription>
<para>Prepare diagonal Riesz factors, reporting which coordinate has invalid data. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/diagonal.hpp" line="26" column="20" declfile="src/include/serif/solver/normalization/diagonal.hpp" declline="26" declcolumn="20"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1aabf5cac29f49d4d8d91c3f3725c8abfd" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<type>std::expected&lt; <ref refid="classserif_1_1solver_1_1normalization_1_1_diagonal_normalization" kindref="compound">DiagonalNormalization</ref>, std::string &gt;</type>
<definition>std::expected&lt; DiagonalNormalization, std::string &gt; serif::solver::normalization::make_diagonal_normalization</definition>
<argsstring>(std::vector&lt; double &gt; state, std::vector&lt; double &gt; residual)</argsstring>
<name>make_diagonal_normalization</name>
<qualifiedname>serif::solver::normalization::make_diagonal_normalization</qualifiedname>
<param>
<type>std::vector&lt; double &gt;</type>
<declname>state</declname>
</param>
<param>
<type>std::vector&lt; double &gt;</type>
<declname>residual</declname>
</param>
<briefdescription>
<para>Validate and freeze independent coordinate factors, including empty or rectangular systems. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/lib/serif/solver/normalization/diagonal.cpp" line="78" column="19" bodyfile="src/lib/serif/solver/normalization/diagonal.cpp" bodystart="78" bodyend="88" declfile="src/include/serif/solver/normalization/diagonal.hpp" declline="85" declcolumn="20"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1a2b4fefc2ef0c9b127e218f1dbcec5996" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<type>std::expected&lt; std::vector&lt; double &gt;, std::string &gt;</type>
<definition>std::expected&lt; std::vector&lt; double &gt;, std::string &gt; serif::solver::normalization::make_point_replaced_residual_factors</definition>
<argsstring>(std::span&lt; const double &gt; volume_metric, double volume_scale, std::span&lt; const int &gt; selected_rows, double point_scale)</argsstring>
<name>make_point_replaced_residual_factors</name>
<qualifiedname>serif::solver::normalization::make_point_replaced_residual_factors</qualifiedname>
<param>
<type>std::span&lt; const double &gt;</type>
<declname>volume_metric</declname>
</param>
<param>
<type>double</type>
<declname>volume_scale</declname>
</param>
<param>
<type>std::span&lt; const int &gt;</type>
<declname>selected_rows</declname>
</param>
<param>
<type>double</type>
<declname>point_scale</declname>
</param>
<briefdescription>
<para>Measure volume and replacement point residuals in their independently specified physical units. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>Only replaced rows may have a zero or otherwise unusable volume metric. No bulk factor is evaluated for them. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/lib/serif/solver/normalization/riesz_factors.cpp" line="94" column="19" bodyfile="src/lib/serif/solver/normalization/riesz_factors.cpp" bodystart="94" bodyend="134" declfile="src/include/serif/solver/normalization/point_rows.hpp" declline="14" declcolumn="20"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1ae1f83b0a78860b4a776e9aeca1641e87" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<type>std::expected&lt; <ref refid="structserif_1_1solver_1_1normalization_1_1_stellar_reference_scales" kindref="compound">StellarReferenceScales</ref>, std::string &gt;</type>
<definition>std::expected&lt; StellarReferenceScales, std::string &gt; serif::solver::normalization::prepare_stellar_reference_scales</definition>
<argsstring>(dimensions::QuantityValue&lt; dimensions::Mass &gt; mass, dimensions::QuantityValue&lt; dimensions::Length &gt; radius, dimensions::QuantityValue&lt; dimensions::GravitationalConstant &gt; gravitational_constant=dimensions::QuantityValue&lt; dimensions::GravitationalConstant &gt;{1.0})</argsstring>
<name>prepare_stellar_reference_scales</name>
<qualifiedname>serif::solver::normalization::prepare_stellar_reference_scales</qualifiedname>
<param>
<type><ref refid="classserif_1_1dimensions_1_1_quantity_value" kindref="compound">dimensions::QuantityValue</ref>&lt; <ref refid="structserif_1_1dimensions_1_1_mass" kindref="compound">dimensions::Mass</ref> &gt;</type>
<declname>mass</declname>
</param>
<param>
<type><ref refid="classserif_1_1dimensions_1_1_quantity_value" kindref="compound">dimensions::QuantityValue</ref>&lt; <ref refid="structserif_1_1dimensions_1_1_length" kindref="compound">dimensions::Length</ref> &gt;</type>
<declname>radius</declname>
</param>
<param>
<type><ref refid="classserif_1_1dimensions_1_1_quantity_value" kindref="compound">dimensions::QuantityValue</ref>&lt; <ref refid="structserif_1_1dimensions_1_1_gravitational_constant" kindref="compound">dimensions::GravitationalConstant</ref> &gt;</type>
<declname>gravitational_constant</declname>
<defval><ref refid="classserif_1_1dimensions_1_1_quantity_value" kindref="compound">dimensions::QuantityValue</ref>&lt; <ref refid="structserif_1_1dimensions_1_1_gravitational_constant" kindref="compound">dimensions::GravitationalConstant</ref> &gt;{1.0}</defval>
</param>
<briefdescription>
<para>Derive gravitational stellar scales from a finite, positive reference mass, radius, and G. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/lib/serif/solver/normalization/scales.cpp" line="10" column="19" bodyfile="src/lib/serif/solver/normalization/scales.cpp" bodystart="10" bodyend="60" declfile="src/include/serif/solver/normalization/scales.hpp" declline="32" declcolumn="20"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1a74d0b96b4c77b8bb83c994bb15152cf8" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>StellarScaleQuantity</type>
<declname>Quantity</declname>
<defname>Quantity</defname>
</param>
</templateparamlist>
<type><ref refid="classserif_1_1dimensions_1_1_quantity_value" kindref="compound">dimensions::QuantityValue</ref>&lt; Quantity &gt;</type>
<definition>dimensions::QuantityValue&lt; Quantity &gt; serif::solver::normalization::characteristic_scale</definition>
<argsstring>(const StellarReferenceScales &amp;scales, Quantity)</argsstring>
<name>characteristic_scale</name>
<qualifiedname>serif::solver::normalization::characteristic_scale</qualifiedname>
<param>
<type>const <ref refid="structserif_1_1solver_1_1normalization_1_1_stellar_reference_scales" kindref="compound">StellarReferenceScales</ref> &amp;</type>
<declname>scales</declname>
</param>
<param>
<type>Quantity</type>
</param>
<briefdescription>
<para>Select a typed scale; temperature and other unrelated quantities require an explicit prescription. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/normalization/scales.hpp" line="51" column="32" bodyfile="src/include/serif/solver/normalization/scales.hpp" bodystart="51" bodyend="114"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1a42f566c3c71f2e32f0e59c75e965ddd0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<type>std::expected&lt; double, std::string &gt;</type>
<definition>std::expected&lt; double, std::string &gt; serif::solver::normalization::make_riesz_factor</definition>
<argsstring>(Kind kind, double metric, double physical_scale)</argsstring>
<name>make_riesz_factor</name>
<qualifiedname>serif::solver::normalization::make_riesz_factor</qualifiedname>
<param>
<type>Kind</type>
<declname>kind</declname>
</param>
<param>
<type>double</type>
<declname>metric</declname>
</param>
<param>
<type>double</type>
<declname>physical_scale</declname>
</param>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/lib/serif/solver/normalization/riesz_factors.cpp" line="63" column="19" bodyfile="src/lib/serif/solver/normalization/riesz_factors.cpp" bodystart="63" bodyend="71"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1normalization_1aa7c88e620e5229286c5fbc3ac824e9fa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<type>std::expected&lt; std::vector&lt; double &gt;, std::string &gt;</type>
<definition>std::expected&lt; std::vector&lt; double &gt;, std::string &gt; serif::solver::normalization::make_riesz_factors</definition>
<argsstring>(Kind kind, std::span&lt; const double &gt; metric, double physical_scale)</argsstring>
<name>make_riesz_factors</name>
<qualifiedname>serif::solver::normalization::make_riesz_factors</qualifiedname>
<param>
<type>Kind</type>
<declname>kind</declname>
</param>
<param>
<type>std::span&lt; const double &gt;</type>
<declname>metric</declname>
</param>
<param>
<type>double</type>
<declname>physical_scale</declname>
</param>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/lib/serif/solver/normalization/riesz_factors.cpp" line="73" column="19" bodyfile="src/lib/serif/solver/normalization/riesz_factors.cpp" bodystart="73" bodyend="92"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="src/compile_time_checks/serif/solver/normalization/dimensionless.cpp" line="5" column="1"/>
</compounddef>
</doxygen>