Files
MeanField_SERiF/docs/xml/physics_8hpp.xml

746 lines
82 KiB
XML
Raw Normal View History

<?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="physics_8hpp" kind="file" language="C++">
<compoundname>physics.hpp</compoundname>
<includes local="no">memory</includes>
<includes local="no">algorithm</includes>
<includes local="no">cmath</includes>
<includes refid="components_8hpp" local="yes">serif/utils/serialize/components.hpp</includes>
<includes refid="dimensions_8hpp" local="yes">serif/dimensions/dimensions.hpp</includes>
<includes refid="eos_2models_2polytropic_8hpp" local="yes">serif/eos/models/polytropic.hpp</includes>
<includes refid="description_8hpp" local="yes">serif/model/description.hpp</includes>
<includes refid="eos__reference_8hpp" local="yes">serif/model/eos_reference.hpp</includes>
<includes refid="isobaric_8hpp" local="yes">serif/geometry/surface/isobaric.hpp</includes>
<includes refid="models_8hpp" local="yes">serif/geometry/deformation/models.hpp</includes>
<includedby refid="serialize_2discretization_8hpp" local="yes">src/include/serif/backend/mfem/serialize/discretization.hpp</includedby>
<includedby refid="utils_2serialize_2equations_8hpp" local="yes">src/include/serif/utils/serialize/equations.hpp</includedby>
<incdepgraph>
<node id="24">
<label>serif/dimensions/dimensions.hpp</label>
<link refid="dimensions_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
</node>
<node id="37">
<label>serif/dimensions/partial.hpp</label>
<link refid="partial_8hpp"/>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="25">
<label>serif/dimensions/quantities.hpp</label>
<link refid="quantities_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="36">
<label>serif/dimensions/type_alias.hpp</label>
<link refid="type__alias_8hpp"/>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
</node>
<node id="29">
<label>serif/eos/models/polytropic.hpp</label>
<link refid="eos_2models_2polytropic_8hpp"/>
<childnode refid="30" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="37" relation="include">
</childnode>
</node>
<node id="31">
<label>serif/eos/relations/catalog.hpp</label>
<link refid="catalog_8hpp"/>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="34" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
</node>
<node id="30">
<label>serif/eos/relations/relations.hpp</label>
<link refid="eos_2relations_2relations_8hpp"/>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
</node>
<node id="66">
<label>serif/geometry/deformation/models.hpp</label>
<link refid="models_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="65">
<label>serif/geometry/surface/isobaric.hpp</label>
<link refid="isobaric_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
</node>
<node id="62">
<label>serif/meta/enums.hpp</label>
<link refid="enums_8hpp"/>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
</node>
<node id="38">
<label>serif/model/description.hpp</label>
<link refid="description_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="46" relation="include">
</childnode>
<childnode refid="47" relation="include">
</childnode>
</node>
<node id="49">
<label>serif/model/detail/specification_list.hpp</label>
<link refid="specification__list_8hpp"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
<childnode refid="50" relation="include">
</childnode>
</node>
<node id="51">
<label>serif/model/eos_reference.hpp</label>
<link refid="eos__reference_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
</node>
<node id="39">
<label>serif/model/equilibrium_equations.hpp</label>
<link refid="equilibrium__equations_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
</node>
<node id="40">
<label>serif/model/specification.hpp</label>
<link refid="specification_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
</node>
<node id="44">
<label>serif/model/specifications/fixed_angular_momentum.hpp</label>
<link refid="fixed__angular__momentum_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
</node>
<node id="46">
<label>serif/model/specifications/fixed_total_mass.hpp</label>
<link refid="fixed__total__mass_8hpp"/>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
</node>
<node id="45">
<label>serif/model/specifications/physical_names.hpp</label>
<link refid="physical__names_8hpp"/>
</node>
<node id="47">
<label>serif/model/stellar_model.hpp</label>
<link refid="stellar__model_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
</node>
<node id="61">
<label>serif/utils/error/codes.hpp</label>
<link refid="codes_8hpp"/>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
</node>
<node id="53">
<label>serif/utils/error/errors.hpp</label>
<link refid="errors_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="60" relation="include">
</childnode>
<childnode refid="61" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
</node>
<node id="60">
<label>serif/utils/misc/concepts/exceptions.hpp</label>
<link refid="utils_2misc_2concepts_2exceptions_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="50">
<label>serif/utils/misc/concepts/filter.hpp</label>
<link refid="filter_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
</node>
<node id="28">
<label>serif/utils/misc/concepts/numeric.hpp</label>
<link refid="numeric_8hpp"/>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="32">
<label>serif/utils/misc/concepts/type_uniqueness.hpp</label>
<link refid="concepts_2type__uniqueness_8hpp"/>
<childnode refid="33" relation="include">
</childnode>
</node>
<node id="27">
<label>serif/utils/misc/std_helper/cleaning.hpp</label>
<link refid="cleaning_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="34">
<label>serif/utils/misc/std_helper/variadic_cleaning.hpp</label>
<link refid="variadic__cleaning_8hpp"/>
<childnode refid="35" relation="include">
</childnode>
</node>
<node id="57">
<label>serif/utils/misc/terminal/colors.hpp</label>
<link refid="colors_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
</node>
<node id="33">
<label>serif/utils/misc/traits/type_uniqueness.hpp</label>
<link refid="traits_2type__uniqueness_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
</node>
<node id="5">
<label>serif/utils/serialize/components.hpp</label>
<link refid="components_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/utils/serialize/physics.hpp</label>
<link refid="physics_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
<childnode refid="38" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="65" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
</node>
<node id="9">
<label>serif/utils/serialize/record.hpp</label>
<link refid="record_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
</node>
<node id="41">
<label>serif/utils/types/strings.hpp</label>
<link refid="types_2strings_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
</node>
<node id="43">
<label>serif/utils/types/type_list.hpp</label>
<link refid="type__list_8hpp"/>
</node>
<node id="3">
<label>algorithm</label>
</node>
<node id="10">
<label>array</label>
</node>
<node id="11">
<label>bit</label>
</node>
<node id="4">
<label>cmath</label>
</node>
<node id="26">
<label>compare</label>
</node>
<node id="12">
<label>concepts</label>
</node>
<node id="35">
<label>cstddef</label>
</node>
<node id="13">
<label>cstdint</label>
</node>
<node id="55">
<label>cstdio</label>
</node>
<node id="58">
<label>cstdlib</label>
</node>
<node id="14">
<label>exception</label>
</node>
<node id="15">
<label>expected</label>
</node>
<node id="54">
<label>format</label>
</node>
<node id="16">
<label>functional</label>
</node>
<node id="42">
<label>iostream</label>
</node>
<node id="17">
<label>limits</label>
</node>
<node id="64">
<label>magic_enum/magic_enum_all.hpp</label>
</node>
<node id="18">
<label>map</label>
</node>
<node id="2">
<label>memory</label>
</node>
<node id="19">
<label>optional</label>
</node>
<node id="48">
<label>span</label>
</node>
<node id="52">
<label>stdexcept</label>
</node>
<node id="20">
<label>string</label>
</node>
<node id="6">
<label>string_view</label>
</node>
<node id="7">
<label>tuple</label>
</node>
<node id="21">
<label>type_traits</label>
</node>
<node id="59">
<label>unistd.h</label>
</node>
<node id="63">
<label>unordered_map</label>
</node>
<node id="8">
<label>utility</label>
</node>
<node id="22">
<label>variant</label>
</node>
<node id="23">
<label>vector</label>
</node>
<node id="56">
<label>version</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="10">
<label>src/compile_time_checks/serif/backend_independent.cpp</label>
<link refid="backend__independent_8cpp"/>
</node>
<node id="3">
<label>src/include/serif/backend/mfem/serialize/configuration.hpp</label>
<link refid="backend_2mfem_2serialize_2configuration_8hpp"/>
</node>
<node id="2">
<label>src/include/serif/backend/mfem/serialize/discretization.hpp</label>
<link refid="serialize_2discretization_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
</node>
<node id="7">
<label>src/include/serif/backend/mfem/serialize/options.hpp</label>
<link refid="backend_2mfem_2serialize_2options_8hpp"/>
</node>
<node id="4">
<label>src/include/serif/utils/serialize/equations.hpp</label>
<link refid="utils_2serialize_2equations_8hpp"/>
<childnode refid="5" relation="include">
</childnode>
</node>
<node id="5">
<label>src/include/serif/utils/serialize/model.hpp</label>
<link refid="utils_2serialize_2model_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
</node>
<node id="6">
<label>src/include/serif/utils/serialize/numerics.hpp</label>
<link refid="numerics_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/utils/serialize/physics.hpp</label>
<link refid="physics_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
</node>
<node id="9">
<label>src/include/serif/utils/serialize/serialize.hpp</label>
<link refid="serialize_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="8">
<label>src/include/serif/utils/serialize/solver.hpp</label>
<link refid="utils_2serialize_2solver_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
</node>
</invincdepgraph>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4" prot="public">serif::utils::serialize::Serializer&lt; dimensions::QuantityValue&lt; Quantity &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01eos_1_1models_1_1_polytrope_01_4" prot="public">serif::utils::serialize::Serializer&lt; eos::models::Polytrope &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_eos_reference_3_01_e_o_s_01_4_01_4" prot="public">serif::utils::serialize::Serializer&lt; model::EosReference&lt; EOS &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_total_mass_01_4" prot="public">serif::utils::serialize::Serializer&lt; model::FixedTotalMass &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1surface_1_1_isobaric_surface_01_4" prot="public">serif::utils::serialize::Serializer&lt; geometry::surface::IsobaricSurface &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_angular_momentum_01_4" prot="public">serif::utils::serialize::Serializer&lt; model::FixedAngularMomentum &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_nodal_radial_surface_01_4" prot="public">serif::utils::serialize::Serializer&lt; geometry::deformation::NodalRadialSurface &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_power_law_radial_extension_01_4" prot="public">serif::utils::serialize::Serializer&lt; geometry::deformation::PowerLawRadialExtension &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_fixed_infinity_radial_extension_01_4" prot="public">serif::utils::serialize::Serializer&lt; geometry::deformation::FixedInfinityRadialExtension &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_spherical_harmonic_surface_01_4" prot="public">serif::utils::serialize::Serializer&lt; geometry::deformation::SphericalHarmonicSurface &gt;</innerclass>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_domain_deformatfca458f28e7e3e0b42d8a4d880ba00cb" prot="public">serif::utils::serialize::Serializer&lt; geometry::deformation::DomainDeformation&lt; Surface, Interior, Vacuum &gt; &gt;</innerclass>
<innernamespace refid="namespaceserif">serif</innernamespace>
<innernamespace refid="namespaceserif_1_1utils">serif::utils</innernamespace>
<innernamespace refid="namespaceserif_1_1utils_1_1serialize">serif::utils::serialize</innernamespace>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<programlisting>
<codeline lineno="1"><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight></codeline>
<codeline lineno="3"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;memory&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;algorithm&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;cmath&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="components_8hpp" kindref="compound">serif/utils/serialize/components.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="dimensions_8hpp" kindref="compound">serif/dimensions/dimensions.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="eos_2models_2polytropic_8hpp" kindref="compound">serif/eos/models/polytropic.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="description_8hpp" kindref="compound">serif/model/description.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="eos__reference_8hpp" kindref="compound">serif/model/eos_reference.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="isobaric_8hpp" kindref="compound">serif/geometry/surface/isobaric.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="models_8hpp" kindref="compound">serif/geometry/deformation/models.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight></codeline>
<codeline lineno="14"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1serialize" kindref="compound">serif::utils::serialize</ref><sp/>{</highlight></codeline>
<codeline lineno="15"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;dimensions::PhysicalQuantityType<sp/>Quantity&gt;</highlight></codeline>
<codeline lineno="16" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1dimensions" kindref="compound">dimensions</ref>::QuantityValue&lt;Quantity&gt;&gt;<sp/>{</highlight></codeline>
<codeline lineno="17"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4_1aa5704b7faa295e9f61ede0baa1110c61" kindref="member">T</ref><sp/>=<sp/><ref refid="classserif_1_1dimensions_1_1_quantity_value" kindref="compound">dimensions::QuantityValue&lt;Quantity&gt;</ref>;</highlight></codeline>
<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4_1a3fb4a8b85559aa989b39665574111926" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;quantity&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4_1af10df8cb6c91b8a2b594cdd6d7dff2d1" kindref="member">save</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4_1aa5704b7faa295e9f61ede0baa1110c61" kindref="member">T</ref>&amp;<sp/>value)<sp/>{</highlight></codeline>
<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1accd9d8a1543b90311f64896a155c6e1c" kindref="member">object</ref>(<ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4_1a3fb4a8b85559aa989b39665574111926" kindref="member">key</ref>,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;dimension&quot;</highlight><highlight class="normal">,<sp/>std::string(Quantity::identifier)),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;value&quot;</highlight><highlight class="normal">,<sp/>value.value()));</highlight></codeline>
<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">Result&lt;T&gt;</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4_1a1385b35d2fed138a2d2eb0c2d8ef197c" kindref="member">load</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref>&amp;<sp/>node)<sp/>{</highlight></codeline>
<codeline lineno="25"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1adb5114bee6aa1ea6612b96babf0ae8c2" kindref="member">read_object</ref>(node,<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4_1a3fb4a8b85559aa989b39665574111926" kindref="member">key</ref>,<sp/>[](std::string<sp/>dimension,<sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>value)<sp/>{</highlight></codeline>
<codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1errors_1a7fefa3a63ca7895a875f2672026df02d" kindref="member">errors::serif_ensure&lt;errors::SERiFErrorCode::INVALID_ARGUMENT&gt;</ref>(dimension<sp/>==<sp/>Quantity::identifier,</highlight></codeline>
<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;The<sp/>archived<sp/>quantity<sp/>has<sp/>dimension<sp/>{},<sp/>expected<sp/>{}.&quot;</highlight><highlight class="normal">,<sp/>dimension,<sp/>Quantity::identifier);</highlight></codeline>
<codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4_1aa5704b7faa295e9f61ede0baa1110c61" kindref="member">T</ref>{value};</highlight></codeline>
<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>},<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;std::string&gt;</ref>(</highlight><highlight class="stringliteral">&quot;dimension&quot;</highlight><highlight class="normal">),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;double&gt;</ref>(</highlight><highlight class="stringliteral">&quot;value&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight></codeline>
<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="34" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01eos_1_1models_1_1_polytrope_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1eos" kindref="compound">eos</ref>::models::Polytrope&gt;<sp/>{</highlight></codeline>
<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01eos_1_1models_1_1_polytrope_01_4_1abd260d2e5cda3800d4488a6eac042734" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;eos.polytrope&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01eos_1_1models_1_1_polytrope_01_4_1aba4175f932e66c98ef0b7e15ad803dc1" kindref="member">save</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1eos_1_1models_1_1_polytrope" kindref="compound">eos::models::Polytrope</ref>&amp;<sp/>value)<sp/>{</highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1accd9d8a1543b90311f64896a155c6e1c" kindref="member">object</ref>(<ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01eos_1_1models_1_1_polytrope_01_4_1abd260d2e5cda3800d4488a6eac042734" kindref="member">key</ref>,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;index&quot;</highlight><highlight class="normal">,<sp/>value.polytropic_index()),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;constant&quot;</highlight><highlight class="normal">,<sp/>value.polytropic_constant()));</highlight></codeline>
<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">Result&lt;eos::models::Polytrope&gt;</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01eos_1_1models_1_1_polytrope_01_4_1a24c864389f377e1a119f9934f7a1f8a0" kindref="member">load</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref>&amp;<sp/>node)<sp/>{</highlight></codeline>
<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1adb5114bee6aa1ea6612b96babf0ae8c2" kindref="member">read_object</ref>(node,<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01eos_1_1models_1_1_polytrope_01_4_1abd260d2e5cda3800d4488a6eac042734" kindref="member">key</ref>,<sp/>[](</highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>n,<sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>K)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1eos_1_1models_1_1_polytrope" kindref="compound">eos::models::Polytrope</ref>{n,<sp/>K};<sp/>},<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;double&gt;</ref>(</highlight><highlight class="stringliteral">&quot;index&quot;</highlight><highlight class="normal">),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;double&gt;</ref>(</highlight><highlight class="stringliteral">&quot;constant&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="45"><highlight class="normal"></highlight></codeline>
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>EOS&gt;</highlight></codeline>
<codeline lineno="47" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_eos_reference_3_01_e_o_s_01_4_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1model" kindref="compound">model</ref>::EosReference&lt;EOS&gt;&gt;<sp/>{</highlight></codeline>
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_eos_reference_3_01_e_o_s_01_4_01_4_1a6fa047f368c65538be500f0860e09caf" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;eos.reference&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_eos_reference_3_01_e_o_s_01_4_01_4_1aa1e5489b74370559066ef12218b83158" kindref="member">save</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1model_1_1_eos_reference" kindref="compound">model::EosReference&lt;EOS&gt;</ref>&amp;<sp/>value)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1accd9d8a1543b90311f64896a155c6e1c" kindref="member">object</ref>(<ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_eos_reference_3_01_e_o_s_01_4_01_4_1a6fa047f368c65538be500f0860e09caf" kindref="member">key</ref>,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;eos&quot;</highlight><highlight class="normal">,<sp/>value.get()));<sp/>}</highlight></codeline>
<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">Result&lt;model::EosReference&lt;EOS&gt;</ref>&gt;<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_eos_reference_3_01_e_o_s_01_4_01_4_1a634ade9b61733203f3e744d9e3f6375a" kindref="member">load</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref>&amp;<sp/>node)<sp/>{</highlight></codeline>
<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1adb5114bee6aa1ea6612b96babf0ae8c2" kindref="member">read_object</ref>(node,<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_eos_reference_3_01_e_o_s_01_4_01_4_1a6fa047f368c65538be500f0860e09caf" kindref="member">key</ref>,<sp/>[](EOS<sp/><ref refid="namespaceserif_1_1eos" kindref="compound">eos</ref>)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1model_1_1_eos_reference" kindref="compound">model::EosReference&lt;EOS&gt;</ref>{std::make_shared&lt;const<sp/>EOS&gt;(std::move(<ref refid="namespaceserif_1_1eos" kindref="compound">eos</ref>))};<sp/>},<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;EOS&gt;</ref>(</highlight><highlight class="stringliteral">&quot;eos&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="56"><highlight class="normal"></highlight></codeline>
<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="58" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_total_mass_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1model" kindref="compound">model</ref>::FixedTotalMass&gt;<sp/>{</highlight></codeline>
<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_total_mass_01_4_1ae4cffde82f21ef8c85582b9c0292bc0d" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;physics.fixed_total_mass&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_total_mass_01_4_1a208ee614b5c875c9291948a4c9d62138" kindref="member">save</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1model_1_1_fixed_total_mass" kindref="compound">model::FixedTotalMass</ref>&amp;<sp/>value)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1accd9d8a1543b90311f64896a155c6e1c" kindref="member">object</ref>(<ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_total_mass_01_4_1ae4cffde82f21ef8c85582b9c0292bc0d" kindref="member">key</ref>,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;target&quot;</highlight><highlight class="normal">,<sp/>value.target()));<sp/>}</highlight></codeline>
<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">Result&lt;model::FixedTotalMass&gt;</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_total_mass_01_4_1afd073965f16c759c5fdadd001e2b981e" kindref="member">load</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref>&amp;<sp/>node)<sp/>{</highlight></codeline>
<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1adb5114bee6aa1ea6612b96babf0ae8c2" kindref="member">read_object</ref>(node,<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_total_mass_01_4_1ae4cffde82f21ef8c85582b9c0292bc0d" kindref="member">key</ref>,<sp/>[](<ref refid="namespaceserif_1_1dimensions_1a66499323cee57a1033e7b203a9198c24" kindref="member">dimensions::MassValue</ref><sp/>target)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1model_1_1_fixed_total_mass" kindref="compound">model::FixedTotalMass</ref>{target};<sp/>},<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;dimensions::MassValue&gt;</ref>(</highlight><highlight class="stringliteral">&quot;target&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="67"><highlight class="normal"></highlight></codeline>
<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="69" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1surface_1_1_isobaric_surface_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1geometry" kindref="compound">geometry</ref>::surface::IsobaricSurface&gt;<sp/>{</highlight></codeline>
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1surface_1_1_isobaric_surface_01_4_1a84653dc94b45f95092deef14f47a6a36" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;surface.isobaric&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1surface_1_1_isobaric_surface_01_4_1aede46c26360d4037b06709b34a0c1c78" kindref="member">save</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1geometry_1_1surface_1_1_isobaric_surface" kindref="compound">geometry::surface::IsobaricSurface</ref>&amp;<sp/>value)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1accd9d8a1543b90311f64896a155c6e1c" kindref="member">object</ref>(<ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1surface_1_1_isobaric_surface_01_4_1a84653dc94b45f95092deef14f47a6a36" kindref="member">key</ref>,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;target&quot;</highlight><highlight class="normal">,<sp/>value.target_pressure()));<sp/>}</highlight></codeline>
<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">Result&lt;geometry::surface::IsobaricSurface&gt;</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1surface_1_1_isobaric_surface_01_4_1a00a66577601b6dd70e4cca5fd6b7dd4a" kindref="member">load</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref>&amp;<sp/>node)<sp/>{</highlight></codeline>
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1adb5114bee6aa1ea6612b96babf0ae8c2" kindref="member">read_object</ref>(node,<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1surface_1_1_isobaric_surface_01_4_1a84653dc94b45f95092deef14f47a6a36" kindref="member">key</ref>,<sp/>[](<ref refid="namespaceserif_1_1dimensions_1a60ad5bcd33f38e5e0e272d9df76008ec" kindref="member">dimensions::PressureValue</ref><sp/>target)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1geometry_1_1surface_1_1_isobaric_surface" kindref="compound">geometry::surface::IsobaricSurface</ref>{target};<sp/>},<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;dimensions::PressureValue&gt;</ref>(</highlight><highlight class="stringliteral">&quot;target&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="78"><highlight class="normal"></highlight></codeline>
<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="80" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_angular_momentum_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1model" kindref="compound">model</ref>::FixedAngularMomentum&gt;<sp/>{</highlight></codeline>
<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_angular_momentum_01_4_1a1e1619f49f396f28857ddff1dd60d66e" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;physics.fixed_angular_momentum&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_angular_momentum_01_4_1a79c53cca3c530c444ead56f93e8a2caa" kindref="member">save</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1model_1_1_fixed_angular_momentum" kindref="compound">model::FixedAngularMomentum</ref>&amp;<sp/>value)<sp/>{</highlight></codeline>
<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1accd9d8a1543b90311f64896a155c6e1c" kindref="member">object</ref>(<ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_angular_momentum_01_4_1a1e1619f49f396f28857ddff1dd60d66e" kindref="member">key</ref>,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;target&quot;</highlight><highlight class="normal">,<sp/>value.target()),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;axis&quot;</highlight><highlight class="normal">,<sp/>value.axis()),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;center&quot;</highlight><highlight class="normal">,<sp/>value.center()));</highlight></codeline>
<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">Result&lt;model::FixedAngularMomentum&gt;</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_angular_momentum_01_4_1a5fb0e8a337f51dc55b6abaaec68e1e20" kindref="member">load</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref>&amp;<sp/>node)<sp/>{</highlight></codeline>
<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1adb5114bee6aa1ea6612b96babf0ae8c2" kindref="member">read_object</ref>(node,<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_angular_momentum_01_4_1a1e1619f49f396f28857ddff1dd60d66e" kindref="member">key</ref>,<sp/>[](<ref refid="namespaceserif_1_1dimensions_1a893df6dcb9672ec0951cce7b21a5cad4" kindref="member">dimensions::AngularMomentumValue</ref><sp/>target,<sp/>std::array&lt;double,<sp/>3&gt;<sp/>axis,<sp/>std::array&lt;double,<sp/>3&gt;<sp/>center)<sp/>{</highlight></codeline>
<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1model_1_1_fixed_angular_momentum" kindref="compound">model::FixedAngularMomentum</ref>{{.angular_momentum<sp/>=<sp/>target,<sp/>.axis<sp/>=<sp/>axis,<sp/>.center<sp/>=<sp/>center}};</highlight></codeline>
<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>},<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;dimensions::AngularMomentumValue&gt;</ref>(</highlight><highlight class="stringliteral">&quot;target&quot;</highlight><highlight class="normal">),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member&lt;std::array&lt;double, 3&gt;</ref>&gt;(</highlight><highlight class="stringliteral">&quot;axis&quot;</highlight><highlight class="normal">),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a019c595419bddb41b7a05042e2f6d611" kindref="member">member</ref>&lt;std::array&lt;double,<sp/>3&gt;&gt;(</highlight><highlight class="stringliteral">&quot;center&quot;</highlight><highlight class="normal">));</highlight></codeline>
<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="93"><highlight class="normal"></highlight></codeline>
<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="95" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_nodal_radial_surface_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1geometry" kindref="compound">geometry</ref>::deformation::NodalRadialSurface&gt;<sp/>:<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_struct_serializer" kindref="compound">StructSerializer</ref>&lt;geometry::deformation::NodalRadialSurface&gt;<sp/>{</highlight></codeline>
<codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_nodal_radial_surface_01_4_1ac9399e1152b9dd77580006e95fd7f8f3" kindref="member">T</ref><sp/>=<sp/><ref refid="structserif_1_1geometry_1_1deformation_1_1_nodal_radial_surface" kindref="compound">geometry::deformation::NodalRadialSurface</ref>;</highlight></codeline>
<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_nodal_radial_surface_01_4_1a9ff0e7f224a591cb1679d7266fa57c7f" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;surface.nodal_radial&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_nodal_radial_surface_01_4_1a27b95396028a5f310265e22d29c4c61f" kindref="member">members</ref><sp/>=<sp/>std::tuple{<ref refid="namespaceserif_1_1utils_1_1serialize_1a57bf01379dd9f09662f2eca940c2287a" kindref="member">member_field</ref>(</highlight><highlight class="stringliteral">&quot;reference_center&quot;</highlight><highlight class="normal">,<sp/>&amp;<ref refid="structserif_1_1geometry_1_1deformation_1_1_nodal_radial_surface_1a5b21809c10da6e4611f69533f052aeae" kindref="member">T::reference_center</ref>)};</highlight></codeline>
<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_nodal_radial_surface_01_4_1af55cdec9fe6fb3dc01a2e64f305c9b2b" kindref="member">valid</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_nodal_radial_surface_01_4_1ac9399e1152b9dd77580006e95fd7f8f3" kindref="member">T</ref>&amp;<sp/>value)<sp/>{</highlight></codeline>
<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::ranges::all_of(value.reference_center,<sp/>[](</highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>component)<sp/>{<sp/>return<sp/>std::isfinite(component);<sp/>});</highlight></codeline>
<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="103"><highlight class="normal"></highlight></codeline>
<codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="105"><highlight class="normal"></highlight></codeline>
<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="107" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_power_law_radial_extension_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1geometry" kindref="compound">geometry</ref>::deformation::PowerLawRadialExtension&gt;<sp/>:<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_struct_serializer" kindref="compound">StructSerializer</ref>&lt;geometry::deformation::PowerLawRadialExtension&gt;<sp/>{</highlight></codeline>
<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_power_law_radial_extension_01_4_1a72c37cf0a2898858b1dcb598042fd788" kindref="member">T</ref><sp/>=<sp/><ref refid="structserif_1_1geometry_1_1deformation_1_1_power_law_radial_extension" kindref="compound">geometry::deformation::PowerLawRadialExtension</ref>;</highlight></codeline>
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_power_law_radial_extension_01_4_1a1774c453f4212900be2eda29cab267df" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;extension.radial_power&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_power_law_radial_extension_01_4_1ab84ab8e0bc6723b5ec80556b95d6e2d7" kindref="member">members</ref><sp/>=<sp/>std::tuple{<ref refid="namespaceserif_1_1utils_1_1serialize_1a57bf01379dd9f09662f2eca940c2287a" kindref="member">member_field</ref>(</highlight><highlight class="stringliteral">&quot;radial_power&quot;</highlight><highlight class="normal">,<sp/>&amp;<ref refid="structserif_1_1geometry_1_1deformation_1_1_power_law_radial_extension_1aa342e8a00b3bcfae69164bc6bb7591d5" kindref="member">T::radial_power</ref>)};</highlight></codeline>
<codeline lineno="112"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_power_law_radial_extension_01_4_1abb6ccd9b67fb667c991215d1a93d5d31" kindref="member">valid</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_power_law_radial_extension_01_4_1a72c37cf0a2898858b1dcb598042fd788" kindref="member">T</ref>&amp;<sp/>value)<sp/>{</highlight></codeline>
<codeline lineno="113"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::isfinite(value.radial_power)<sp/>&amp;&amp;<sp/>value.radial_power<sp/>&gt;=<sp/>1.0;</highlight></codeline>
<codeline lineno="114"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="115"><highlight class="normal"></highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="117"><highlight class="normal"></highlight></codeline>
<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="119" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_fixed_infinity_radial_extension_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1geometry" kindref="compound">geometry</ref>::deformation::FixedInfinityRadialExtension&gt;<sp/>:<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_struct_serializer" kindref="compound">StructSerializer</ref>&lt;geometry::deformation::FixedInfinityRadialExtension&gt;<sp/>{</highlight></codeline>
<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_fixed_infinity_radial_extension_01_4_1ac636cec8ea9627c7f2839d6bb533b7f8" kindref="member">T</ref><sp/>=<sp/><ref refid="structserif_1_1geometry_1_1deformation_1_1_fixed_infinity_radial_extension" kindref="compound">geometry::deformation::FixedInfinityRadialExtension</ref>;</highlight></codeline>
<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_fixed_infinity_radial_extension_01_4_1af97b963125b19d4d640cbd4c132206e7" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;extension.fixed_infinity&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="122"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_fixed_infinity_radial_extension_01_4_1a24fdc26a9aec3023108812c132aa620d" kindref="member">members</ref><sp/>=<sp/>std::tuple{};</highlight></codeline>
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="124"><highlight class="normal"></highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;&gt;</highlight></codeline>
<codeline lineno="126" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_spherical_harmonic_surface_01_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1geometry" kindref="compound">geometry</ref>::deformation::SphericalHarmonicSurface&gt;<sp/>:<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_struct_serializer" kindref="compound">StructSerializer</ref>&lt;geometry::deformation::SphericalHarmonicSurface&gt;<sp/>{</highlight></codeline>
<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_spherical_harmonic_surface_01_4_1aa48e625813c3f7646f9d3919ba419c58" kindref="member">T</ref><sp/>=<sp/><ref refid="structserif_1_1geometry_1_1deformation_1_1_spherical_harmonic_surface" kindref="compound">geometry::deformation::SphericalHarmonicSurface</ref>;</highlight></codeline>
<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_spherical_harmonic_surface_01_4_1a1a3f1b86c3ef63087e498096f963fcfc" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;surface.normalized_real_spherical_harmonics&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_spherical_harmonic_surface_01_4_1ad093367ed52a344f0ce901e635ef9ba0" kindref="member">members</ref><sp/>=<sp/>std::tuple{</highlight></codeline>
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a57bf01379dd9f09662f2eca940c2287a" kindref="member">member_field</ref>(</highlight><highlight class="stringliteral">&quot;reference_center&quot;</highlight><highlight class="normal">,<sp/>&amp;<ref refid="structserif_1_1geometry_1_1deformation_1_1_spherical_harmonic_surface_1afb9d2387b116fe72a575b0c7c4ecb6b8" kindref="member">T::reference_center</ref>),</highlight></codeline>
<codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a57bf01379dd9f09662f2eca940c2287a" kindref="member">member_field</ref>(</highlight><highlight class="stringliteral">&quot;maximum_degree&quot;</highlight><highlight class="normal">,<sp/>&amp;<ref refid="structserif_1_1geometry_1_1deformation_1_1_spherical_harmonic_surface_1ad449e7b806a34a1f5304013c6af21e65" kindref="member">T::maximum_degree</ref>),</highlight></codeline>
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a57bf01379dd9f09662f2eca940c2287a" kindref="member">member_field</ref>(</highlight><highlight class="stringliteral">&quot;maximum_azimuthal_order&quot;</highlight><highlight class="normal">,<sp/>&amp;<ref refid="structserif_1_1geometry_1_1deformation_1_1_spherical_harmonic_surface_1a0d3fd4b340bd02fc78a35751aed267dc" kindref="member">T::maximum_azimuthal_order</ref>)</highlight></codeline>
<codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_spherical_harmonic_surface_01_4_1abff290fc9fb89e12e2882532b37377b6" kindref="member">valid</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_spherical_harmonic_surface_01_4_1aa48e625813c3f7646f9d3919ba419c58" kindref="member">T</ref>&amp;<sp/>value)<sp/>{</highlight></codeline>
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::ranges::all_of(value.reference_center,<sp/>[](</highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>component)<sp/>{<sp/>return<sp/>std::isfinite(component);<sp/>})<sp/>&amp;&amp;<sp/>value.maximum_degree<sp/>&gt;=<sp/>0<sp/>&amp;&amp;</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(!value.maximum_azimuthal_order<sp/>||<sp/>(*value.maximum_azimuthal_order<sp/>&gt;=<sp/>0<sp/>&amp;&amp;<sp/>*value.maximum_azimuthal_order<sp/>&lt;=<sp/>value.maximum_degree));</highlight></codeline>
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="139"><highlight class="normal"></highlight></codeline>
<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="141"><highlight class="normal"></highlight></codeline>
<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Surface,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Interior,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Vacuum&gt;</highlight></codeline>
<codeline lineno="143" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_domain_deformatfca458f28e7e3e0b42d8a4d880ba00cb" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer" kindref="compound">Serializer</ref>&lt;<ref refid="namespaceserif_1_1geometry" kindref="compound">geometry</ref>::deformation::DomainDeformation&lt;Surface,<sp/>Interior,<sp/>Vacuum&gt;&gt;<sp/>:<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_struct_serializer" kindref="compound">StructSerializer</ref>&lt;geometry::deformation::DomainDeformation&lt;Surface,<sp/>Interior,<sp/>Vacuum&gt;&gt;<sp/>{</highlight></codeline>
<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_domain_deformatfca458f28e7e3e0b42d8a4d880ba00cb_1a4b2dcb4f004a2a9b7d274500fc411282" kindref="member">T</ref><sp/>=<sp/><ref refid="structserif_1_1geometry_1_1deformation_1_1_domain_deformation" kindref="compound">geometry::deformation::DomainDeformation&lt;Surface, Interior, Vacuum&gt;</ref>;</highlight></codeline>
<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_domain_deformatfca458f28e7e3e0b42d8a4d880ba00cb_1ae7e06bf12650bae5d2016b6223666e1f" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;deformation.domain&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_domain_deformatfca458f28e7e3e0b42d8a4d880ba00cb_1a05204d0b0faa41d6cf35181aa5c239b2" kindref="member">members</ref><sp/>=<sp/>std::tuple{</highlight></codeline>
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a57bf01379dd9f09662f2eca940c2287a" kindref="member">member_field</ref>(</highlight><highlight class="stringliteral">&quot;surface&quot;</highlight><highlight class="normal">,<sp/>&amp;<ref refid="structserif_1_1geometry_1_1deformation_1_1_domain_deformation_1ad70a04fd9d4e5b70f1180fe3c9733667" kindref="member">T::surface</ref>),</highlight></codeline>
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a57bf01379dd9f09662f2eca940c2287a" kindref="member">member_field</ref>(</highlight><highlight class="stringliteral">&quot;stellar_interior&quot;</highlight><highlight class="normal">,<sp/>&amp;<ref refid="structserif_1_1geometry_1_1deformation_1_1_domain_deformation_1acfa504b892722f14948bb4184708d379" kindref="member">T::stellar_interior</ref>),</highlight></codeline>
<codeline lineno="149"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a57bf01379dd9f09662f2eca940c2287a" kindref="member">member_field</ref>(</highlight><highlight class="stringliteral">&quot;vacuum&quot;</highlight><highlight class="normal">,<sp/>&amp;<ref refid="structserif_1_1geometry_1_1deformation_1_1_domain_deformation_1ab822cd78ca21d4eb5e7eb96768b40eaf" kindref="member">T::vacuum</ref>)</highlight></codeline>
<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="152"><highlight class="normal"></highlight></codeline>
<codeline lineno="153"><highlight class="normal">}</highlight></codeline>
</programlisting>
<location file="src/include/serif/utils/serialize/physics.hpp"/>
</compounddef>
</doxygen>