Files
MeanField_SERiF/docs/xml/serialize_2discretization_8hpp.xml

2327 lines
151 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="serialize_2discretization_8hpp" kind="file" language="C++">
<compoundname>discretization.hpp</compoundname>
<includes local="no">optional</includes>
<includes local="no">tuple</includes>
<includes local="no">type_traits</includes>
<includes refid="model_2discretization_8hpp" local="yes">serif/backend/mfem/model/discretization.hpp</includes>
<includes refid="serialize_2resources_8hpp" local="yes">serif/backend/mfem/serialize/resources.hpp</includes>
<includes refid="utils_2serialize_2model_8hpp" local="yes">serif/utils/serialize/model.hpp</includes>
<includes refid="physics_8hpp" local="yes">serif/utils/serialize/physics.hpp</includes>
<includedby refid="backend_2mfem_2serialize_2configuration_8hpp" local="yes">src/include/serif/backend/mfem/serialize/configuration.hpp</includedby>
<incdepgraph>
<node id="111">
<label>serif/backend/mfem/discretization/basis_evaluation.hpp</label>
<link refid="basis__evaluation_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="112" relation="include">
</childnode>
</node>
<node id="91">
<label>serif/backend/mfem/discretization/dof_map.hpp</label>
<link refid="dof__map_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="93" relation="include">
</childnode>
<childnode refid="106" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="107" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
<childnode refid="108" relation="include">
</childnode>
</node>
<node id="129">
<label>serif/backend/mfem/discretization/quadrature/concepts.hpp</label>
<link refid="backend_2mfem_2discretization_2quadrature_2concepts_8hpp"/>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="130">
<label>serif/backend/mfem/discretization/quadrature/configure.hpp</label>
<link refid="configure_8hpp"/>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="129" relation="include">
</childnode>
</node>
<node id="117">
<label>serif/backend/mfem/discretization/quadrature/mfem_resolver.hpp</label>
<link refid="mfem__resolver_8hpp"/>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="118" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="119" relation="include">
</childnode>
<childnode refid="125" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="126" relation="include">
</childnode>
<childnode refid="127" relation="include">
</childnode>
<childnode refid="129" relation="include">
</childnode>
<childnode refid="130" relation="include">
</childnode>
<childnode refid="131" relation="include">
</childnode>
<childnode refid="132" relation="include">
</childnode>
</node>
<node id="131">
<label>serif/backend/mfem/discretization/quadrature/mfem_static_order.hpp</label>
<link refid="mfem__static__order_8hpp"/>
<childnode refid="54" relation="include">
</childnode>
<childnode refid="124" relation="include">
</childnode>
<childnode refid="122" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="125" relation="include">
</childnode>
</node>
<node id="125">
<label>serif/backend/mfem/discretization/quadrature/order.hpp</label>
<link refid="backend_2mfem_2discretization_2quadrature_2order_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="61" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="124" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="93">
<label>serif/backend/mfem/discretization/reconstruction.hpp</label>
<link refid="reconstruction_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="94" relation="include">
</childnode>
</node>
<node id="159">
<label>serif/backend/mfem/discretization/resources.hpp</label>
<link refid="discretization_2resources_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="38" relation="include">
</childnode>
<childnode refid="134" relation="include">
</childnode>
</node>
<node id="112">
<label>serif/backend/mfem/discretization/tensor_basis.hpp</label>
<link refid="tensor__basis_8hpp"/>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="113" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="114" relation="include">
</childnode>
<childnode refid="115" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
<childnode refid="93" relation="include">
</childnode>
</node>
<node id="51">
<label>serif/backend/mfem/discretization/term_binding.hpp</label>
<link refid="term__binding_8hpp"/>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="71" relation="include">
</childnode>
<childnode refid="91" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="37">
<label>serif/backend/mfem/discretization/term_coefficients.hpp</label>
<link refid="term__coefficients_8hpp"/>
<childnode refid="38" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
</node>
<node id="141">
<label>serif/backend/mfem/geometry/deformation/inputs.hpp</label>
<link refid="geometry_2deformation_2inputs_8hpp"/>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="142" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="143" relation="include">
</childnode>
<childnode refid="71" relation="include">
</childnode>
<childnode refid="144" relation="include">
</childnode>
<childnode refid="145" relation="include">
</childnode>
<childnode refid="146" relation="include">
</childnode>
<childnode refid="38" relation="include">
</childnode>
</node>
<node id="26">
<label>serif/backend/mfem/mapping/compactification/compactification.hpp</label>
<link refid="compactification_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="27">
<label>serif/backend/mfem/mapping/compactification/input_result.hpp</label>
<link refid="input__result_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="18">
<label>serif/backend/mfem/mapping/compactification/kelvin.hpp</label>
<link refid="backend_2mfem_2mapping_2compactification_2kelvin_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
</node>
<node id="28">
<label>serif/backend/mfem/mapping/compactification/variation.hpp</label>
<link refid="compactification_2variation_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="30">
<label>serif/backend/mfem/mapping/context.hpp</label>
<link refid="context_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="31">
<label>serif/backend/mfem/mapping/data.hpp</label>
<link refid="data_8hpp"/>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="34" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="30" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
</node>
<node id="12">
<label>serif/backend/mfem/mapping/domain_mapper.hpp</label>
<link refid="backend_2mfem_2mapping_2domain__mapper_8hpp"/>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="6" 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="30" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
</node>
<node id="20">
<label>serif/backend/mfem/mapping/status.hpp</label>
<link refid="status_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
</node>
<node id="35">
<label>serif/backend/mfem/mapping/variation.hpp</label>
<link refid="variation_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="110">
<label>serif/backend/mfem/mapping/volume_cache.hpp</label>
<link refid="volume__cache_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="30" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="5">
<label>serif/backend/mfem/model/discretization.hpp</label>
<link refid="model_2discretization_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="141" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="109">
<label>serif/backend/mfem/operators/element_data.hpp</label>
<link refid="element__data_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="110" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="111" relation="include">
</childnode>
</node>
<node id="116">
<label>serif/backend/mfem/operators/quadrature.hpp</label>
<link refid="quadrature_8hpp"/>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="113" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="117" relation="include">
</childnode>
<childnode refid="133" relation="include">
</childnode>
</node>
<node id="8">
<label>serif/backend/mfem/operators/volume_data.hpp</label>
<link refid="volume__data_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="37" relation="include">
</childnode>
<childnode refid="109" relation="include">
</childnode>
<childnode refid="116" relation="include">
</childnode>
<childnode refid="140" relation="include">
</childnode>
</node>
<node id="140">
<label>serif/backend/mfem/operators/workspace.hpp</label>
<link refid="backend_2mfem_2operators_2workspace_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="111" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/backend/mfem/serialize/discretization.hpp</label>
<link refid="serialize_2discretization_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="158" relation="include">
</childnode>
<childnode refid="164" relation="include">
</childnode>
<childnode refid="166" relation="include">
</childnode>
</node>
<node id="158">
<label>serif/backend/mfem/serialize/resources.hpp</label>
<link refid="serialize_2resources_8hpp"/>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="159" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="141" relation="include">
</childnode>
<childnode refid="91" relation="include">
</childnode>
<childnode refid="160" relation="include">
</childnode>
</node>
<node id="145">
<label>serif/backend/mfem/shared/reference_tracking.hpp</label>
<link refid="reference__tracking_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="56">
<label>serif/dimensions/dimensions.hpp</label>
<link refid="dimensions_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
</node>
<node id="172">
<label>serif/dimensions/partial.hpp</label>
<link refid="partial_8hpp"/>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
</node>
<node id="57">
<label>serif/dimensions/quantities.hpp</label>
<link refid="quantities_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
</node>
<node id="171">
<label>serif/dimensions/type_alias.hpp</label>
<link refid="type__alias_8hpp"/>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
</node>
<node id="60">
<label>serif/discretization/blocks/base.hpp</label>
<link refid="base_8hpp"/>
</node>
<node id="54">
<label>serif/discretization/blocks/concepts.hpp</label>
<link refid="discretization_2blocks_2concepts_8hpp"/>
<childnode refid="55" relation="include">
</childnode>
</node>
<node id="55">
<label>serif/discretization/blocks/fields.hpp</label>
<link refid="fields_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
<childnode refid="60" relation="include">
</childnode>
<childnode refid="61" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="68" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="69" relation="include">
</childnode>
</node>
<node id="121">
<label>serif/discretization/blocks/runtime.hpp</label>
<link refid="discretization_2blocks_2runtime_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
</node>
<node id="202">
<label>serif/discretization/blocks/system_layout.hpp</label>
<link refid="system__layout_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="60" relation="include">
</childnode>
<childnode refid="134" relation="include">
</childnode>
</node>
<node id="53">
<label>serif/discretization/blocks/traits.hpp</label>
<link refid="discretization_2blocks_2traits_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
</node>
<node id="201">
<label>serif/discretization/blocks/vector_view.hpp</label>
<link refid="vector__view_8hpp"/>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="142" relation="include">
</childnode>
<childnode refid="106" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="202" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="63">
<label>serif/discretization/domain/concepts.hpp</label>
<link refid="discretization_2domain_2concepts_8hpp"/>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="65" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
</node>
<node id="79">
<label>serif/discretization/domain/ids/boundary.hpp</label>
<link refid="ids_2boundary_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
</node>
<node id="78">
<label>serif/discretization/domain/ids/concepts.hpp</label>
<link refid="discretization_2domain_2ids_2concepts_8hpp"/>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="80" relation="include">
</childnode>
</node>
<node id="80">
<label>serif/discretization/domain/ids/domain.hpp</label>
<link refid="domain_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
</node>
<node id="74">
<label>serif/discretization/domain/ids/lists/concepts.hpp</label>
<link refid="discretization_2domain_2ids_2lists_2concepts_8hpp"/>
<childnode refid="75" relation="include">
</childnode>
</node>
<node id="76">
<label>serif/discretization/domain/ids/lists/lists.hpp</label>
<link refid="lists_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="77" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
</node>
<node id="75">
<label>serif/discretization/domain/ids/lists/traits.hpp</label>
<link refid="discretization_2domain_2ids_2lists_2traits_8hpp"/>
<childnode refid="76" relation="include">
</childnode>
</node>
<node id="77">
<label>serif/discretization/domain/ids/validation/concepts.hpp</label>
<link refid="discretization_2domain_2ids_2validation_2concepts_8hpp"/>
<childnode refid="78" relation="include">
</childnode>
<childnode refid="81" relation="include">
</childnode>
<childnode refid="82" relation="include">
</childnode>
</node>
<node id="81">
<label>serif/discretization/domain/ids/validation/unique_ids.hpp</label>
<link refid="unique__ids_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
</node>
<node id="68">
<label>serif/discretization/domain/physical_domains.hpp</label>
<link refid="physical__domains_8hpp"/>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
</node>
<node id="86">
<label>serif/discretization/domain/relation/concepts.hpp</label>
<link refid="discretization_2domain_2relation_2concepts_8hpp"/>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
</node>
<node id="83">
<label>serif/discretization/domain/relation/lists/concepts.hpp</label>
<link refid="discretization_2domain_2relation_2lists_2concepts_8hpp"/>
<childnode refid="84" relation="include">
</childnode>
</node>
<node id="85">
<label>serif/discretization/domain/relation/lists/relation_list.hpp</label>
<link refid="relation__list_8hpp"/>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="86" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
</node>
<node id="84">
<label>serif/discretization/domain/relation/lists/traits.hpp</label>
<link refid="discretization_2domain_2relation_2lists_2traits_8hpp"/>
<childnode refid="85" relation="include">
</childnode>
</node>
<node id="87">
<label>serif/discretization/domain/relation/relations.hpp</label>
<link refid="discretization_2domain_2relation_2relations_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
</node>
<node id="88">
<label>serif/discretization/domain/relation/validation/concepts.hpp</label>
<link refid="discretization_2domain_2relation_2validation_2concepts_8hpp"/>
<childnode refid="89" relation="include">
</childnode>
</node>
<node id="89">
<label>serif/discretization/domain/relation/validation/validation.hpp</label>
<link refid="discretization_2domain_2relation_2validation_2validation_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="86" relation="include">
</childnode>
<childnode refid="83" relation="include">
</childnode>
<childnode refid="85" relation="include">
</childnode>
<childnode refid="90" relation="include">
</childnode>
</node>
<node id="90">
<label>serif/discretization/domain/resolver.hpp</label>
<link refid="resolver_8hpp"/>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
</node>
<node id="71">
<label>serif/discretization/domain/schema/concepts.hpp</label>
<link refid="discretization_2domain_2schema_2concepts_8hpp"/>
<childnode refid="72" relation="include">
</childnode>
</node>
<node id="73">
<label>serif/discretization/domain/schema/domain_schema.hpp</label>
<link refid="domain__schema_8hpp"/>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="83" relation="include">
</childnode>
<childnode refid="88" relation="include">
</childnode>
<childnode refid="90" relation="include">
</childnode>
</node>
<node id="143">
<label>serif/discretization/domain/schema/schemas.hpp</label>
<link refid="schemas_8hpp"/>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="80" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="68" relation="include">
</childnode>
<childnode refid="85" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="73" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
</node>
<node id="72">
<label>serif/discretization/domain/schema/traits.hpp</label>
<link refid="discretization_2domain_2schema_2traits_8hpp"/>
<childnode refid="73" relation="include">
</childnode>
</node>
<node id="66">
<label>serif/discretization/domain/types.hpp</label>
<link refid="discretization_2domain_2types_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="122">
<label>serif/discretization/forms/concept.hpp</label>
<link refid="concept_8hpp"/>
<childnode refid="123" relation="include">
</childnode>
</node>
<node id="128">
<label>serif/discretization/forms/form_traits.hpp</label>
<link refid="form__traits_8hpp"/>
<childnode refid="122" relation="include">
</childnode>
<childnode refid="123" relation="include">
</childnode>
</node>
<node id="123">
<label>serif/discretization/forms/forms.hpp</label>
<link refid="forms_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
<childnode refid="124" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="69" relation="include">
</childnode>
</node>
<node id="124">
<label>serif/discretization/forms/operands.hpp</label>
<link refid="operands_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
</node>
<node id="120">
<label>serif/discretization/forms/runtime.hpp</label>
<link refid="discretization_2forms_2runtime_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="121" relation="include">
</childnode>
<childnode refid="122" relation="include">
</childnode>
</node>
<node id="139">
<label>serif/discretization/forms/value.hpp</label>
<link refid="value_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="124" relation="include">
</childnode>
</node>
<node id="61">
<label>serif/discretization/functional_space/space.hpp</label>
<link refid="space_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
</node>
<node id="126">
<label>serif/discretization/quadrature/policy.hpp</label>
<link refid="policy_8hpp"/>
<childnode refid="127" relation="include">
</childnode>
<childnode refid="119" relation="include">
</childnode>
</node>
<node id="127">
<label>serif/discretization/quadrature/query.hpp</label>
<link refid="query_8hpp"/>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="119" relation="include">
</childnode>
<childnode refid="68" relation="include">
</childnode>
<childnode refid="128" relation="include">
</childnode>
<childnode refid="120" relation="include">
</childnode>
</node>
<node id="119">
<label>serif/discretization/quadrature/rules.hpp</label>
<link refid="rules_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="120" relation="include">
</childnode>
</node>
<node id="94">
<label>serif/discretization/reconstruction/surface_power.hpp</label>
<link refid="surface__power_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="68" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="188">
<label>serif/eos/evaluation.hpp</label>
<link refid="eos_2evaluation_8hpp"/>
<childnode refid="189" relation="include">
</childnode>
</node>
<node id="193">
<label>serif/eos/exceptions.hpp</label>
<link refid="eos_2exceptions_8hpp"/>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="106" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
</node>
<node id="189">
<label>serif/eos/models/concepts.hpp</label>
<link refid="eos_2models_2concepts_8hpp"/>
<childnode refid="190" relation="include">
</childnode>
<childnode refid="169" relation="include">
</childnode>
</node>
<node id="168">
<label>serif/eos/models/polytropic.hpp</label>
<link refid="eos_2models_2polytropic_8hpp"/>
<childnode refid="169" relation="include">
</childnode>
<childnode refid="171" relation="include">
</childnode>
<childnode refid="172" relation="include">
</childnode>
</node>
<node id="190">
<label>serif/eos/models/traits.hpp</label>
<link refid="eos_2models_2traits_8hpp"/>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="172" relation="include">
</childnode>
<childnode refid="191" relation="include">
</childnode>
</node>
<node id="170">
<label>serif/eos/relations/catalog.hpp</label>
<link refid="catalog_8hpp"/>
<childnode refid="82" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
</node>
<node id="191">
<label>serif/eos/relations/concepts.hpp</label>
<link refid="eos_2relations_2concepts_8hpp"/>
<childnode refid="192" relation="include">
</childnode>
</node>
<node id="169">
<label>serif/eos/relations/relations.hpp</label>
<link refid="eos_2relations_2relations_8hpp"/>
<childnode refid="170" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
</node>
<node id="192">
<label>serif/eos/relations/traits.hpp</label>
<link refid="eos_2relations_2traits_8hpp"/>
<childnode refid="170" relation="include">
</childnode>
</node>
<node id="185">
<label>serif/equations/angular_momentum.hpp</label>
<link refid="angular__momentum_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="137" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
<childnode refid="186" relation="include">
</childnode>
</node>
<node id="187">
<label>serif/equations/barotropic_density.hpp</label>
<link refid="barotropic__density_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="171" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="188" relation="include">
</childnode>
<childnode refid="193" relation="include">
</childnode>
<childnode refid="169" relation="include">
</childnode>
<childnode refid="194" relation="include">
</childnode>
<childnode refid="137" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
<childnode refid="186" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="199">
<label>serif/equations/barycenter.hpp</label>
<link refid="barycenter_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="137" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="194">
<label>serif/equations/companion.hpp</label>
<link refid="companion_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="186" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="136">
<label>serif/equations/concepts.hpp</label>
<link refid="equations_2concepts_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="137" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
</node>
<node id="137">
<label>serif/equations/contributions.hpp</label>
<link refid="equations_2contributions_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="124" relation="include">
</childnode>
</node>
<node id="184">
<label>serif/equations/equations.hpp</label>
<link refid="equations_2equations_8hpp"/>
<childnode refid="185" relation="include">
</childnode>
<childnode refid="187" relation="include">
</childnode>
<childnode refid="136" relation="include">
</childnode>
<childnode refid="137" relation="include">
</childnode>
<childnode refid="195" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
<childnode refid="196" relation="include">
</childnode>
<childnode refid="186" relation="include">
</childnode>
<childnode refid="197" relation="include">
</childnode>
<childnode refid="198" relation="include">
</childnode>
<childnode refid="199" relation="include">
</childnode>
<childnode refid="194" relation="include">
</childnode>
</node>
<node id="195">
<label>serif/equations/mass_normalization.hpp</label>
<link refid="mass__normalization_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="137" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="138">
<label>serif/equations/point.hpp</label>
<link refid="point_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="139" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
</node>
<node id="197">
<label>serif/equations/primal_gravity.hpp</label>
<link refid="primal__gravity_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="106" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="137" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="196">
<label>serif/equations/registry.hpp</label>
<link refid="registry_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="136" relation="include">
</childnode>
</node>
<node id="186">
<label>serif/equations/rigid_rotation.hpp</label>
<link refid="rigid__rotation_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="106" relation="include">
</childnode>
<childnode refid="139" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="198">
<label>serif/equations/surface_potential.hpp</label>
<link refid="equations_2surface__potential_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="194" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
<childnode refid="186" relation="include">
</childnode>
</node>
<node id="148">
<label>serif/geometry/deformation/actions.hpp</label>
<link refid="geometry_2deformation_2actions_8hpp"/>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="149" relation="include">
</childnode>
<childnode refid="150" relation="include">
</childnode>
<childnode refid="152" relation="include">
</childnode>
<childnode refid="153" relation="include">
</childnode>
</node>
<node id="147">
<label>serif/geometry/deformation/composition.hpp</label>
<link refid="composition_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="148" relation="include">
</childnode>
</node>
<node id="146">
<label>serif/geometry/deformation/computations.hpp</label>
<link refid="geometry_2deformation_2computations_8hpp"/>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="147" relation="include">
</childnode>
<childnode refid="154" relation="include">
</childnode>
<childnode refid="155" relation="include">
</childnode>
</node>
<node id="150">
<label>serif/geometry/deformation/detail/action_storage.hpp</label>
<link refid="action__storage_8hpp"/>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="151" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="149" relation="include">
</childnode>
</node>
<node id="149">
<label>serif/geometry/deformation/failure.hpp</label>
<link refid="geometry_2deformation_2failure_8hpp"/>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
</node>
<node id="154">
<label>serif/geometry/deformation/linearization.hpp</label>
<link refid="deformation_2linearization_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="148" relation="include">
</childnode>
</node>
<node id="144">
<label>serif/geometry/deformation/models.hpp</label>
<link refid="models_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="2" relation="include">
</childnode>
</node>
<node id="152">
<label>serif/geometry/deformation/spaces.hpp</label>
<link refid="spaces_8hpp"/>
</node>
<node id="153">
<label>serif/geometry/deformation/workspace.hpp</label>
<link refid="geometry_2deformation_2workspace_8hpp"/>
</node>
<node id="183">
<label>serif/geometry/surface/isobaric.hpp</label>
<link refid="isobaric_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
<childnode refid="171" relation="include">
</childnode>
</node>
<node id="24">
<label>serif/meta/enums.hpp</label>
<link refid="enums_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
</node>
<node id="69">
<label>serif/meta/names.hpp</label>
<link refid="names_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="70" relation="include">
</childnode>
</node>
<node id="173">
<label>serif/model/description.hpp</label>
<link refid="description_8hpp"/>
<childnode refid="174" relation="include">
</childnode>
<childnode refid="175" relation="include">
</childnode>
<childnode refid="176" relation="include">
</childnode>
<childnode refid="178" relation="include">
</childnode>
<childnode refid="179" relation="include">
</childnode>
</node>
<node id="180">
<label>serif/model/detail/specification_list.hpp</label>
<link refid="specification__list_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="175" relation="include">
</childnode>
<childnode refid="181" relation="include">
</childnode>
</node>
<node id="182">
<label>serif/model/eos_reference.hpp</label>
<link refid="eos__reference_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="106" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="174">
<label>serif/model/equilibrium_equations.hpp</label>
<link refid="equilibrium__equations_8hpp"/>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="175">
<label>serif/model/specification.hpp</label>
<link refid="specification_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="113" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="104" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
</node>
<node id="176">
<label>serif/model/specifications/fixed_angular_momentum.hpp</label>
<link refid="fixed__angular__momentum_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="171" relation="include">
</childnode>
<childnode refid="175" relation="include">
</childnode>
<childnode refid="177" relation="include">
</childnode>
</node>
<node id="178">
<label>serif/model/specifications/fixed_total_mass.hpp</label>
<link refid="fixed__total__mass_8hpp"/>
<childnode refid="171" relation="include">
</childnode>
<childnode refid="175" relation="include">
</childnode>
<childnode refid="177" relation="include">
</childnode>
</node>
<node id="177">
<label>serif/model/specifications/physical_names.hpp</label>
<link refid="physical__names_8hpp"/>
</node>
<node id="200">
<label>serif/model/state.hpp</label>
<link refid="model_2state_8hpp"/>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="201" relation="include">
</childnode>
</node>
<node id="179">
<label>serif/model/stellar_model.hpp</label>
<link refid="stellar__model_8hpp"/>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="180" relation="include">
</childnode>
<childnode refid="174" relation="include">
</childnode>
</node>
<node id="135">
<label>serif/operators/concepts.hpp</label>
<link refid="operators_2concepts_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="61" relation="include">
</childnode>
<childnode refid="136" relation="include">
</childnode>
</node>
<node id="133">
<label>serif/operators/plan.hpp</label>
<link refid="operators_2plan_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="134" relation="include">
</childnode>
<childnode refid="123" relation="include">
</childnode>
<childnode refid="135" relation="include">
</childnode>
</node>
<node id="46">
<label>serif/utils/dependencies/binding.hpp</label>
<link refid="utils_2dependencies_2binding_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="47" relation="include">
</childnode>
</node>
<node id="156">
<label>serif/utils/dependencies/computation.hpp</label>
<link refid="computation_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
</node>
<node id="155">
<label>serif/utils/dependencies/computation_graph.hpp</label>
<link refid="computation__graph_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="156" relation="include">
</childnode>
<childnode refid="134" relation="include">
</childnode>
<childnode refid="157" relation="include">
</childnode>
</node>
<node id="38">
<label>serif/utils/dependencies/dependency_context.hpp</label>
<link refid="dependency__context_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
<childnode refid="50" relation="include">
</childnode>
</node>
<node id="157">
<label>serif/utils/dependencies/detail/graph.hpp</label>
<link refid="utils_2dependencies_2detail_2graph_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
</node>
<node id="43">
<label>serif/utils/dependencies/detail/type_lists.hpp</label>
<link refid="type__lists_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
</node>
<node id="45">
<label>serif/utils/dependencies/key_list.hpp</label>
<link refid="key__list_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="46" relation="include">
</childnode>
<childnode refid="47" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
</node>
<node id="134">
<label>serif/utils/dependencies/key_list_operations.hpp</label>
<link refid="key__list__operations_8hpp"/>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
</node>
<node id="40">
<label>serif/utils/dependencies/resource.hpp</label>
<link refid="resource_8hpp"/>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
</node>
<node id="42">
<label>serif/utils/dependencies/snapshot.hpp</label>
<link refid="snapshot_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="23">
<label>serif/utils/error/codes.hpp</label>
<link refid="codes_8hpp"/>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
</node>
<node id="95">
<label>serif/utils/error/errors.hpp</label>
<link refid="errors_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="96" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="98" relation="include">
</childnode>
<childnode refid="99" relation="include">
</childnode>
<childnode refid="102" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="104" relation="include">
</childnode>
</node>
<node id="108">
<label>serif/utils/error/nonfinite.hpp</label>
<link refid="nonfinite_8hpp"/>
<childnode refid="106" relation="include">
</childnode>
</node>
<node id="132">
<label>serif/utils/format/strings.hpp</label>
<link refid="format_2strings_8hpp"/>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
</node>
<node id="50">
<label>serif/utils/misc/concepts/concat.hpp</label>
<link refid="concat_8hpp"/>
<childnode refid="49" relation="include">
</childnode>
</node>
<node id="102">
<label>serif/utils/misc/concepts/exceptions.hpp</label>
<link refid="utils_2misc_2concepts_2exceptions_8hpp"/>
<childnode refid="103" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
</node>
<node id="181">
<label>serif/utils/misc/concepts/filter.hpp</label>
<link refid="filter_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
</node>
<node id="59">
<label>serif/utils/misc/concepts/numeric.hpp</label>
<link refid="numeric_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
</node>
<node id="82">
<label>serif/utils/misc/concepts/type_uniqueness.hpp</label>
<link refid="concepts_2type__uniqueness_8hpp"/>
<childnode refid="47" relation="include">
</childnode>
</node>
<node id="48">
<label>serif/utils/misc/std_helper/cleaning.hpp</label>
<link refid="cleaning_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
</node>
<node id="67">
<label>serif/utils/misc/std_helper/variadic_cleaning.hpp</label>
<link refid="variadic__cleaning_8hpp"/>
<childnode refid="44" relation="include">
</childnode>
</node>
<node id="99">
<label>serif/utils/misc/terminal/colors.hpp</label>
<link refid="colors_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="96" relation="include">
</childnode>
<childnode refid="100" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="101" relation="include">
</childnode>
</node>
<node id="47">
<label>serif/utils/misc/traits/type_uniqueness.hpp</label>
<link refid="traits_2type__uniqueness_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
</node>
<node id="167">
<label>serif/utils/serialize/components.hpp</label>
<link refid="components_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="160" relation="include">
</childnode>
</node>
<node id="165">
<label>serif/utils/serialize/equations.hpp</label>
<link refid="utils_2serialize_2equations_8hpp"/>
<childnode refid="166" relation="include">
</childnode>
<childnode refid="184" relation="include">
</childnode>
<childnode refid="196" relation="include">
</childnode>
</node>
<node id="164">
<label>serif/utils/serialize/model.hpp</label>
<link refid="utils_2serialize_2model_8hpp"/>
<childnode refid="165" relation="include">
</childnode>
<childnode refid="200" relation="include">
</childnode>
<childnode refid="179" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="38" relation="include">
</childnode>
</node>
<node id="166">
<label>serif/utils/serialize/physics.hpp</label>
<link refid="physics_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="167" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
<childnode refid="168" relation="include">
</childnode>
<childnode refid="173" relation="include">
</childnode>
<childnode refid="182" relation="include">
</childnode>
<childnode refid="183" relation="include">
</childnode>
<childnode refid="144" relation="include">
</childnode>
</node>
<node id="160">
<label>serif/utils/serialize/record.hpp</label>
<link refid="record_8hpp"/>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="161" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="103" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="113" relation="include">
</childnode>
<childnode refid="162" relation="include">
</childnode>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="163" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="104">
<label>serif/utils/types/strings.hpp</label>
<link refid="types_2strings_8hpp"/>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="105" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="49">
<label>serif/utils/types/type_list.hpp</label>
<link refid="type__list_8hpp"/>
</node>
<node id="29">
<label>serif/utils/user_options/mapping/compactification/kelvin.hpp</label>
<link refid="utils_2user__options_2mapping_2compactification_2kelvin_8hpp"/>
</node>
<node id="36">
<label>serif/utils/user_options/mapping/domain_mapper.hpp</label>
<link refid="utils_2user__options_2mapping_2domain__mapper_8hpp"/>
</node>
<node id="52">
<label>algorithm</label>
</node>
<node id="9">
<label>array</label>
</node>
<node id="161">
<label>bit</label>
</node>
<node id="92">
<label>cmath</label>
</node>
<node id="58">
<label>compare</label>
</node>
<node id="39">
<label>concepts</label>
</node>
<node id="44">
<label>cstddef</label>
</node>
<node id="22">
<label>cstdint</label>
</node>
<node id="96">
<label>cstdio</label>
</node>
<node id="100">
<label>cstdlib</label>
</node>
<node id="103">
<label>exception</label>
</node>
<node id="13">
<label>expected</label>
</node>
<node id="62">
<label>format</label>
</node>
<node id="41">
<label>functional</label>
</node>
<node id="151">
<label>initializer_list</label>
</node>
<node id="105">
<label>iostream</label>
</node>
<node id="113">
<label>limits</label>
</node>
<node id="25">
<label>magic_enum/magic_enum_all.hpp</label>
</node>
<node id="162">
<label>map</label>
</node>
<node id="6">
<label>memory</label>
</node>
<node id="16">
<label>mfem/fem/eltrans.hpp</label>
</node>
<node id="32">
<label>mfem/fem/fe/fe_base.hpp</label>
</node>
<node id="114">
<label>mfem/fem/fe/fe_h1.hpp</label>
</node>
<node id="115">
<label>mfem/fem/fe/fe_l2.hpp</label>
</node>
<node id="33">
<label>mfem/fem/fespace.hpp</label>
</node>
<node id="118">
<label>mfem/fem/geom.hpp</label>
</node>
<node id="11">
<label>mfem/fem/gridfunc.hpp</label>
</node>
<node id="17">
<label>mfem/fem/intrules.hpp</label>
</node>
<node id="107">
<label>mfem/fem/pfespace.hpp</label>
</node>
<node id="15">
<label>mfem/linalg/densemat.hpp</label>
</node>
<node id="14">
<label>mfem/linalg/vector.hpp</label>
</node>
<node id="34">
<label>mfem/mesh/mesh.hpp</label>
</node>
<node id="70">
<label>nameof.hpp</label>
</node>
<node id="65">
<label>numeric</label>
</node>
<node id="2">
<label>optional</label>
</node>
<node id="142">
<label>ranges</label>
</node>
<node id="64">
<label>span</label>
</node>
<node id="106">
<label>stdexcept</label>
</node>
<node id="97">
<label>string</label>
</node>
<node id="19">
<label>string_view</label>
</node>
<node id="3">
<label>tuple</label>
</node>
<node id="4">
<label>type_traits</label>
</node>
<node id="101">
<label>unistd.h</label>
</node>
<node id="21">
<label>unordered_map</label>
</node>
<node id="7">
<label>utility</label>
</node>
<node id="163">
<label>variant</label>
</node>
<node id="10">
<label>vector</label>
</node>
<node id="98">
<label>version</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="2">
<label>src/include/serif/backend/mfem/serialize/configuration.hpp</label>
<link refid="backend_2mfem_2serialize_2configuration_8hpp"/>
</node>
<node id="1">
<label>src/include/serif/backend/mfem/serialize/discretization.hpp</label>
<link refid="serialize_2discretization_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
</node>
</invincdepgraph>
<innerclass refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1backend_1_1mfem_1_1_stellar_discree159e3517b28c4c8168613dfca6fe92a" prot="public">serif::utils::serialize::Serializer&lt; model::backend::mfem::StellarDiscretization&lt; Owner, Bindings, Deformation &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1_1_owned_bindings" prot="public">serif::backend::mfem::serialize::detail::OwnedBindings</innerclass>
<innernamespace refid="namespaceserif">serif</innernamespace>
<innernamespace refid="namespaceserif_1_1backend">serif::backend</innernamespace>
<innernamespace refid="namespaceserif_1_1backend_1_1mfem">serif::backend::mfem</innernamespace>
<innernamespace refid="namespaceserif_1_1backend_1_1mfem_1_1serialize">serif::backend::mfem::serialize</innernamespace>
<innernamespace refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1_1detail">serif::backend::mfem::serialize::detail</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;optional&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;tuple&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;type_traits&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="model_2discretization_8hpp" kindref="compound">serif/backend/mfem/model/discretization.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="serialize_2resources_8hpp" kindref="compound">serif/backend/mfem/serialize/resources.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="utils_2serialize_2model_8hpp" kindref="compound">serif/utils/serialize/model.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="physics_8hpp" kindref="compound">serif/utils/serialize/physics.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize" kindref="compound">serif::backend::mfem::serialize</ref><sp/>{</highlight></codeline>
<codeline lineno="13" refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1_1detail" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1_1detail" kindref="compound">detail</ref><sp/>{</highlight></codeline>
<codeline lineno="14"><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_1discretization_1_1backend_1_1mfem_1_1_owned_bindings" kindref="compound">discretization::backend::mfem::OwnedBindings</ref>;</highlight></codeline>
<codeline lineno="15"><highlight class="normal"></highlight></codeline>
<codeline lineno="17"><highlight class="normal"><sp/><sp/><sp/><sp/><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/>Schema&gt;</highlight></codeline>
<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">utils::serialize::Node</ref><sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1a2076df57734a7180f12b2ee0b1ae8c24" kindref="member">domain_schema</ref>()<sp/>{</highlight></codeline>
<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/>namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1serialize" kindref="compound">utils::serialize</ref>;</highlight></codeline>
<codeline lineno="20"><highlight class="normal"></highlight></codeline>
<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;Node&gt;<sp/>domains;</highlight></codeline>
<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;Node&gt;<sp/>boundaries;</highlight></codeline>
<codeline lineno="23"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>descriptor<sp/>:<sp/>Schema::domain_descriptors())<sp/>{</highlight></codeline>
<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>domains.push_back(</highlight><highlight class="keywordtype">object</highlight><highlight class="normal">(</highlight><highlight class="stringliteral">&quot;mfem.domain&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;name&quot;</highlight><highlight class="normal">,<sp/>descriptor.name),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;attribute&quot;</highlight><highlight class="normal">,<sp/>descriptor.ID)));</highlight></codeline>
<codeline lineno="25"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>descriptor<sp/>:<sp/>Schema::boundary_descriptors())<sp/>{</highlight></codeline>
<codeline lineno="27"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>boundaries.push_back(</highlight><highlight class="keywordtype">object</highlight><highlight class="normal">(</highlight><highlight class="stringliteral">&quot;mfem.boundary&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;name&quot;</highlight><highlight class="normal">,<sp/>descriptor.name),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;attribute&quot;</highlight><highlight class="normal">,<sp/>descriptor.ID)));</highlight></codeline>
<codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="29"><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>(</highlight><highlight class="stringliteral">&quot;mfem.schema&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;domains&quot;</highlight><highlight class="normal">,<sp/>domains),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;boundaries&quot;</highlight><highlight class="normal">,<sp/>boundaries));</highlight></codeline>
<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="31"><highlight class="normal"></highlight></codeline>
<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/><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/>Key,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Context,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Keys&gt;</highlight></codeline>
<codeline lineno="34"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">utils::serialize::Result&lt;void&gt;</ref><sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1a8a67df4d7a1c2f3ff37aa260e581fd82" kindref="member">restore_binding</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">utils::serialize::Node</ref>&amp;<sp/>node,<sp/><ref refid="structserif_1_1discretization_1_1backend_1_1mfem_1_1_owned_bindings" kindref="compound">OwnedBindings&lt;Context, Keys&gt;</ref>&amp;<sp/>owner)<sp/>{</highlight></codeline>
<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/>namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1serialize" kindref="compound">utils::serialize</ref>;</highlight></codeline>
<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">Binding<sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1discretization_1_1backend_1_1mfem_1_1_owned_bindings" kindref="compound">OwnedBindings&lt;Context, Keys&gt;::template</ref><sp/>Binding&lt;Key&gt;;</highlight></codeline>
<codeline lineno="37"><highlight class="normal"></highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>term<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;Node&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;term&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>schema<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;Node&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;schema&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>coordinates<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;Node&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;coordinates&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(node.<ref refid="structserif_1_1utils_1_1serialize_1_1_node_1a7ecb22f199b4b90e5cae9250d98a6e50" kindref="member">type</ref><sp/>!=<sp/></highlight><highlight class="stringliteral">&quot;mfem.term_binding&quot;</highlight><highlight class="normal"><sp/>||</highlight></codeline>
<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(node.<ref refid="structserif_1_1utils_1_1serialize_1_1_node_1ab96bc3156a124231f182ad6c51f1772b" kindref="member">version</ref><sp/>!=<sp/>1<sp/>&amp;&amp;<sp/>node.<ref refid="structserif_1_1utils_1_1serialize_1_1_node_1ab96bc3156a124231f182ad6c51f1772b" kindref="member">version</ref><sp/>!=<sp/>2)<sp/>||</highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(node.<ref refid="structserif_1_1utils_1_1serialize_1_1_node_1ab96bc3156a124231f182ad6c51f1772b" kindref="member">version</ref><sp/>==<sp/>2)<sp/>!=<sp/>node.<ref refid="structserif_1_1utils_1_1serialize_1_1_node_1ac511083838516727510ce4edc0ab52ca" kindref="member">children</ref>.contains(</highlight><highlight class="stringliteral">&quot;reconstruction&quot;</highlight><highlight class="normal">)<sp/>||<sp/>!term<sp/>||<sp/>!schema<sp/>||<sp/>!coordinates<sp/>||<sp/>*term<sp/>!=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a2467d2dec6186bb040f634a1320c279a" kindref="member">term_schema&lt;Key&gt;</ref>()<sp/>||</highlight></codeline>
<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>*schema<sp/>!=<sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1a2076df57734a7180f12b2ee0b1ae8c24" kindref="member">domain_schema&lt;typename Binding::Schema&gt;</ref>()<sp/>||<sp/>term-&gt;type<sp/>==<sp/></highlight><highlight class="stringliteral">&quot;unsupported&quot;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="45"><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/>std::unexpected(<ref refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;bindings&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Saved<sp/>term<sp/>or<sp/>domain<sp/>identity<sp/>does<sp/>not<sp/>match<sp/>the<sp/>requested<sp/>typed<sp/>discretization.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::unique_ptr&lt;Binding&gt;<sp/>binding;</highlight></codeline>
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>(<ref refid="conceptserif_1_1discretization_1_1blocks_1_1_spatial_term" kindref="compound">discretization::blocks::SpatialTerm&lt;Key&gt;</ref>)<sp/>{</highlight></codeline>
<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>index<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;std::uint64_t&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;space&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!index<sp/>||<sp/>*index<sp/>&gt;=<sp/>owner.resources.spaces.size())<sp/>{</highlight></codeline>
<codeline lineno="51"><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="keywordflow">return</highlight><highlight class="normal"><sp/>std::unexpected(<ref refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;bindings/space&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Term<sp/>space<sp/>is<sp/>missing<sp/>or<sp/>outside<sp/>the<sp/>restored<sp/>resource<sp/>table.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>binding<sp/>=<sp/>std::make_unique&lt;Binding&gt;(*owner.resources.spaces[*index]);</highlight></codeline>
<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>saved<sp/>=<sp/>node.<ref refid="structserif_1_1utils_1_1serialize_1_1_node_1ac511083838516727510ce4edc0ab52ca" kindref="member">children</ref>.find(</highlight><highlight class="stringliteral">&quot;reconstruction&quot;</highlight><highlight class="normal">);<sp/>saved<sp/>!=<sp/>node.<ref refid="structserif_1_1utils_1_1serialize_1_1_node_1ac511083838516727510ce4edc0ab52ca" kindref="member">children</ref>.end())<sp/>{</highlight></codeline>
<codeline lineno="55"><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="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>(!std::same_as&lt;Key,<sp/>discretization::blocks::density::mass&gt;)<sp/>{</highlight></codeline>
<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><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/>std::unexpected(<ref refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;bindings/reconstruction&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Surface-power<sp/>reconstruction<sp/>supports<sp/>only<sp/>mass<sp/>density.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>representation<sp/>=<sp/>saved-&gt;second;</highlight></codeline>
<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>exponent<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;double&gt;</ref>(representation,<sp/></highlight><highlight class="stringliteral">&quot;density_exponent&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="60"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>boundary<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;std::string&gt;</ref>(representation,<sp/></highlight><highlight class="stringliteral">&quot;boundary&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(representation.type<sp/>!=<sp/></highlight><highlight class="stringliteral">&quot;mfem.surface_power&quot;</highlight><highlight class="normal"><sp/>||<sp/>representation.version<sp/>!=<sp/>1<sp/>||<sp/>!exponent<sp/>||<sp/>!boundary)<sp/>{</highlight></codeline>
<codeline lineno="62"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><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/>std::unexpected(<ref refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;bindings/reconstruction&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Unknown<sp/>or<sp/>incomplete<sp/>reconstruction;<sp/>its<sp/>numerical<sp/>interpretation<sp/>cannot<sp/>be<sp/>restored.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1discretization_1_1reconstruction_1_1_surface_power" kindref="compound">discretization::reconstruction::SurfacePower&lt;Key&gt;</ref><sp/>specification{</highlight></codeline>
<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>.density_exponent<sp/>=<sp/>*exponent,<sp/>.region<sp/>=<sp/>{*boundary}};</highlight></codeline>
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>plan<sp/>=<sp/><ref refid="namespaceserif_1_1discretization_1_1backend_1_1mfem_1a2295d9e8ec9934e4b1dd6690822ee9b8" kindref="member">discretization::backend::mfem::make_reconstruction</ref>(specification,<sp/>*binding);</highlight></codeline>
<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>binding<sp/>=<sp/>std::make_unique&lt;Binding&gt;(*owner.resources.spaces[*index],<sp/>std::move(plan));</highlight></codeline>
<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(node.<ref refid="structserif_1_1utils_1_1serialize_1_1_node_1ac511083838516727510ce4edc0ab52ca" kindref="member">children</ref>.contains(</highlight><highlight class="stringliteral">&quot;reconstruction&quot;</highlight><highlight class="normal">))<sp/>{</highlight></codeline>
<codeline lineno="72"><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="keywordflow">return</highlight><highlight class="normal"><sp/>std::unexpected(<ref refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;bindings/reconstruction&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Global<sp/>scalar<sp/>fields<sp/>cannot<sp/>carry<sp/>spatial<sp/>reconstruction.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>index<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;std::uint64_t&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;mesh&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!index<sp/>||<sp/>*index<sp/>&gt;=<sp/>owner.resources.meshes.size())<sp/>{</highlight></codeline>
<codeline lineno="76"><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="keywordflow">return</highlight><highlight class="normal"><sp/>std::unexpected(<ref refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;bindings/mesh&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Global<sp/>scalar<sp/>mesh<sp/>is<sp/>missing<sp/>or<sp/>outside<sp/>the<sp/>restored<sp/>resource<sp/>table.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>binding<sp/>=<sp/>std::make_unique&lt;Binding&gt;(*owner.resources.meshes[*index]);</highlight></codeline>
<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(*coordinates<sp/>!=<sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1a59cbdb20e829d35ea89b454a5db63d44" kindref="member">binding_coordinates</ref>(*binding))<sp/>{</highlight></codeline>
<codeline lineno="81"><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/>std::unexpected(<ref refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;bindings/coordinates&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Term<sp/>domain<sp/>support<sp/>or<sp/>reduced<sp/>coefficient<sp/>numbering<sp/>changed<sp/>during<sp/>reconstruction.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::get&lt;utils::dependencies::key_index&lt;Key,<sp/>Keys&gt;()&gt;(owner.bindings)<sp/>=<sp/>std::move(binding);</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/>{};</highlight></codeline>
<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="87"><highlight class="normal"></highlight></codeline>
<codeline lineno="89"><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/>Original&gt;</highlight></codeline>
<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1a9d43442b5e0a974017bed34f96cc7408" kindref="member">RestoredDiscretization</ref><sp/>=<sp/><ref refid="structserif_1_1model_1_1backend_1_1mfem_1_1_stellar_discretization" kindref="compound">model::backend::mfem::StellarDiscretization</ref>&lt;</highlight></codeline>
<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structserif_1_1discretization_1_1backend_1_1mfem_1_1_owned_bindings" kindref="compound">detail::OwnedBindings&lt;std::remove_cvref_t&lt;decltype(std::declval&lt;Original&gt;</ref>().term_bindings)&gt;&gt;,</highlight></codeline>
<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">decltype</highlight><highlight class="normal">(std::declval&lt;<ref refid="structserif_1_1discretization_1_1backend_1_1mfem_1_1_owned_bindings" kindref="compound">detail::OwnedBindings</ref>&lt;std::remove_cvref_t&lt;</highlight><highlight class="keyword">decltype</highlight><highlight class="normal">(std::declval&lt;Original&gt;().term_bindings)&gt;&gt;&gt;().context()),</highlight></codeline>
<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::remove_cvref_t&lt;</highlight><highlight class="keyword">decltype</highlight><highlight class="normal">(std::declval&lt;Original&gt;().deformation)&gt;&gt;;</highlight></codeline>
<codeline lineno="94"><highlight class="normal"></highlight></codeline>
<codeline lineno="96"><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/>Owner,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Bindings,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Deformation&gt;</highlight></codeline>
<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">utils::serialize::Node</ref><sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1ac945d40fa03bee3256270f52b462b532" kindref="member">save_discretization</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1model_1_1backend_1_1mfem_1_1_stellar_discretization" kindref="compound">model::backend::mfem::StellarDiscretization&lt;Owner, Bindings, Deformation&gt;</ref>&amp;<sp/>value,</highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structserif_1_1backend_1_1mfem_1_1serialize_1_1_save_options" kindref="compound">SaveOptions</ref><sp/>options<sp/>=<sp/>{})<sp/>{</highlight></codeline>
<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/>namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1serialize" kindref="compound">utils::serialize</ref>;</highlight></codeline>
<codeline lineno="100"><highlight class="normal"></highlight></codeline>
<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ResourceWriter<sp/>resources(options);</highlight></codeline>
<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Node<sp/>bindings{.type<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;array&quot;</highlight><highlight class="normal">};</highlight></codeline>
<codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&amp;]&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal">...<sp/>Keys&gt;(<ref refid="structserif_1_1utils_1_1dependencies_1_1_key_list" kindref="compound">utils::dependencies::KeyList</ref>&lt;Keys...&gt;)<sp/>{</highlight></codeline>
<codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::size_t<sp/>index<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>([&amp;]<sp/>{</highlight></codeline>
<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">Binding<sp/>=<sp/>std::remove_cvref_t&lt;</highlight><highlight class="keyword">decltype</highlight><highlight class="normal">(value.template<sp/>binding&lt;Keys&gt;())&gt;;</highlight></codeline>
<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>binding<sp/>=<sp/>value.template<sp/>binding&lt;Keys&gt;();</highlight></codeline>
<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Node<sp/>record<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1accd9d8a1543b90311f64896a155c6e1c" kindref="member">object</ref>(</highlight><highlight class="stringliteral">&quot;mfem.term_binding&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;term&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a2467d2dec6186bb040f634a1320c279a" kindref="member">term_schema&lt;Keys&gt;</ref>()),</highlight></codeline>
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;schema&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1a2076df57734a7180f12b2ee0b1ae8c24" kindref="member">detail::domain_schema&lt;typename Binding::Schema&gt;</ref>()),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;coordinates&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1a59cbdb20e829d35ea89b454a5db63d44" kindref="member">binding_coordinates</ref>(binding)));</highlight></codeline>
<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>(<ref refid="conceptserif_1_1discretization_1_1blocks_1_1_spatial_term" kindref="compound">discretization::blocks::SpatialTerm&lt;Keys&gt;</ref>)<sp/>{</highlight></codeline>
<codeline lineno="111"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>record.children.emplace(</highlight><highlight class="stringliteral">&quot;space&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a4ea480fabb9d06528d01b26691fa80ec" kindref="member">encode</ref>(resources.space(binding.space())));</highlight></codeline>
<codeline lineno="112"><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="keywordflow">if</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>reconstruction<sp/>=<sp/>binding.reconstruction())<sp/>{</highlight></codeline>
<codeline lineno="113"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Version<sp/>2<sp/>prevents<sp/>old<sp/>readers<sp/>from<sp/>silently<sp/>treating<sp/>weighted<sp/>coefficients<sp/>as<sp/>ordinary<sp/>polynomials.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="114"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>record.version<sp/>=<sp/>2;</highlight></codeline>
<codeline lineno="115"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">*<sp/>profile<sp/>=<sp/></highlight><highlight class="keyword">dynamic_cast&lt;</highlight><highlight class="keyword">const<sp/></highlight><highlight class="normal"><ref refid="classserif_1_1discretization_1_1reconstruction_1_1_surface_power_profile" kindref="compound">discretization::reconstruction::SurfacePowerProfile</ref>*</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(&amp;reconstruction-&gt;profile());</highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><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">utils::errors::serif_ensure&lt;utils::errors::SERiFErrorCode::INVALID_ARGUMENT&gt;</ref>(profile<sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><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;Reconstruction<sp/>&apos;{}&apos;<sp/>has<sp/>no<sp/>archive<sp/>codec;<sp/>add<sp/>one<sp/>before<sp/>saving<sp/>this<sp/>field.&quot;</highlight><highlight class="normal">,<sp/>reconstruction-&gt;profile().name());</highlight></codeline>
<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::string<sp/>boundary_name;</highlight></codeline>
<codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal">&amp;<sp/>boundary<sp/>:<sp/>Binding::Schema::boundary_descriptors())<sp/>{</highlight></codeline>
<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(boundary.ID<sp/>==<sp/>reconstruction-&gt;boundary_attribute())<sp/>{<sp/>boundary_name<sp/>=<sp/>boundary.name;<sp/>}</highlight></codeline>
<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="122"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><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">utils::errors::serif_ensure&lt;utils::errors::SERiFErrorCode::INVALID_ARGUMENT&gt;</ref>(!boundary_name.empty(),</highlight></codeline>
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><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;Cannot<sp/>save<sp/>a<sp/>reconstruction<sp/>whose<sp/>boundary<sp/>is<sp/>absent<sp/>from<sp/>the<sp/>field&apos;s<sp/>schema.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="124"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>record.children.emplace(</highlight><highlight class="stringliteral">&quot;reconstruction&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="keywordtype">object</highlight><highlight class="normal">(</highlight><highlight class="stringliteral">&quot;mfem.surface_power&quot;</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;density_exponent&quot;</highlight><highlight class="normal">,<sp/>profile-&gt;density_exponent()),<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;boundary&quot;</highlight><highlight class="normal">,<sp/>boundary_name)));</highlight></codeline>
<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceserif_1_1solver_1_1continuation_1_1detail_1a559f8cf10ed2895254c8a895718cec9e" kindref="member">record</ref>.children.emplace(</highlight><highlight class="stringliteral">&quot;mesh&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a4ea480fabb9d06528d01b26691fa80ec" kindref="member">encode</ref>(resources.mesh(binding.mesh())));</highlight></codeline>
<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>bindings.children.emplace(std::to_string(index++),<sp/>std::move(record));</highlight></codeline>
<codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}(),<sp/>...);</highlight></codeline>
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}(</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Bindings::Keys{});</highlight></codeline>
<codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>resources.mapping(<ref refid="namespaceserif_1_1discretization_1_1backend_1_1mfem_1af75f98db90618153ea4ca169945733f7a2063c1608d6e0baf80249c42e2be5804" kindref="member">value</ref>.compactification,<sp/><ref refid="namespaceserif_1_1discretization_1_1backend_1_1mfem_1af75f98db90618153ea4ca169945733f7a2063c1608d6e0baf80249c42e2be5804" kindref="member">value</ref>.mapper);</highlight></codeline>
<codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref><sp/>result<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1accd9d8a1543b90311f64896a155c6e1c" kindref="member">object</ref>(</highlight><highlight class="stringliteral">&quot;mfem.stellar_discretization&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a73c789fd95f83d2f547facf07bc3ea79" kindref="member">field</ref>(</highlight><highlight class="stringliteral">&quot;bindings&quot;</highlight><highlight class="normal">,<sp/>bindings));</highlight></codeline>
<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>(std::same_as&lt;Deformation,<sp/>model::backend::mfem::NoDeformation&gt;)<sp/>{</highlight></codeline>
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result.children.emplace(</highlight><highlight class="stringliteral">&quot;deformation&quot;</highlight><highlight class="normal">,<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_node" kindref="compound">Node</ref>{.type<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;mfem.no_deformation&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result.children.emplace(</highlight><highlight class="stringliteral">&quot;deformation&quot;</highlight><highlight class="normal">,<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a4ea480fabb9d06528d01b26691fa80ec" kindref="member">encode</ref>(<ref refid="namespaceserif_1_1discretization_1_1backend_1_1mfem_1af75f98db90618153ea4ca169945733f7a2063c1608d6e0baf80249c42e2be5804" kindref="member">value</ref>.deformation.model));</highlight></codeline>
<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result.children.emplace(</highlight><highlight class="stringliteral">&quot;reference&quot;</highlight><highlight class="normal">,<sp/>resources.reference(<ref refid="namespaceserif_1_1discretization_1_1backend_1_1mfem_1af75f98db90618153ea4ca169945733f7a2063c1608d6e0baf80249c42e2be5804" kindref="member">value</ref>.deformation.reference));</highlight></codeline>
<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result.children.emplace(</highlight><highlight class="stringliteral">&quot;resources&quot;</highlight><highlight class="normal">,<sp/>std::move(resources).finish());</highlight></codeline>
<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result;</highlight></codeline>
<codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="144"><highlight class="normal"></highlight></codeline>
<codeline lineno="149"><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/>Original&gt;</highlight></codeline>
<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">utils::serialize::Result&lt;RestoredDiscretization&lt;Original&gt;</ref>&gt;<sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1a1d92723ea4d0dd5f2f509aa1483e537b" kindref="member">restore_discretization</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>utils::serialize::Node&amp;<sp/>node,</highlight></codeline>
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1aa5436f8736dad67e9123ae76e9f229e3" kindref="member">MeshResolver</ref>&amp;<sp/>resolver<sp/>=<sp/>{})<sp/>{</highlight></codeline>
<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/>namespace<sp/></highlight><highlight class="normal">utils::serialize;</highlight></codeline>
<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">Context<sp/>=<sp/>std::remove_cvref_t&lt;decltype(std::declval&lt;Original&gt;().term_bindings)&gt;;</highlight></codeline>
<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">Deformation<sp/>=<sp/>std::remove_cvref_t&lt;decltype(std::declval&lt;Original&gt;().deformation)&gt;;</highlight></codeline>
<codeline lineno="155"><highlight class="normal"></highlight></codeline>
<codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(node.type<sp/>!=<sp/></highlight><highlight class="stringliteral">&quot;mfem.stellar_discretization&quot;</highlight><highlight class="normal"><sp/>||<sp/>node.version<sp/>!=<sp/>1)<sp/>{</highlight></codeline>
<codeline lineno="157"><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::unexpected(<ref refid="structserif_1_1utils_1_1serialize_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;discretization&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Unsupported<sp/>MFEM<sp/>stellar<sp/>discretization<sp/>schema.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="160"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>resources_node<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;Node&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;resources&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="161"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Inspect<sp/>each<sp/>binding<sp/>version<sp/>locally;<sp/>generic<sp/>vector<sp/>decoding<sp/>only<sp/>accepts<sp/>version-1<sp/>children.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="162"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>bindings<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;Node&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;bindings&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!resources_node<sp/>||<sp/>!bindings<sp/>||<sp/>bindings-&gt;type<sp/>!=<sp/></highlight><highlight class="stringliteral">&quot;array&quot;</highlight><highlight class="normal"><sp/>||<sp/>!std::holds_alternative&lt;std::monostate&gt;(bindings-&gt;value)<sp/>||<sp/>bindings-&gt;children.size()<sp/>!=<sp/><ref refid="namespaceserif_1_1utils_1_1dependencies_1a317a69acc139be6b2d45f95cf1c1412c" kindref="member">utils::dependencies::key_count_v&lt;typename Context::Keys&gt;</ref>)<sp/>{</highlight></codeline>
<codeline lineno="164"><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/>std::unexpected(<ref refid="structserif_1_1utils_1_1serialize_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;discretization&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Missing<sp/>resources<sp/>or<sp/>incompatible<sp/>term-binding<sp/>count.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>resources<sp/>=<sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1a0be74cc2e17f3994c634eb78e0b9b0d6" kindref="member">restore_resources</ref>(*resources_node,<sp/>resolver);</highlight></codeline>
<codeline lineno="167"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!resources)<sp/>{</highlight></codeline>
<codeline lineno="168"><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/>std::unexpected(resources.error());</highlight></codeline>
<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>owner<sp/>=<sp/>std::make_shared&lt;detail::OwnedBindings&lt;Context&gt;&gt;();</highlight></codeline>
<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>owner-&gt;resources<sp/>=<sp/>std::move(*resources);</highlight></codeline>
<codeline lineno="172"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::optional&lt;Error&gt;<sp/>error;</highlight></codeline>
<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&amp;]&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal">...<sp/><ref refid="namespaceserif_1_1compile__time__checks_1_1fields__meanfield_1a916a158c391c80387c723a030ea87e01" kindref="member">Keys</ref>&gt;(utils::dependencies::KeyList&lt;<ref refid="namespaceserif_1_1compile__time__checks_1_1fields__meanfield_1a916a158c391c80387c723a030ea87e01" kindref="member">Keys</ref>...&gt;)<sp/>{</highlight></codeline>
<codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::size_t<sp/><ref refid="namespaceserif_1_1operators_1_1backend_1_1mfem_1ab297c6eedd8df878b6af2135b05e4616" kindref="member">index</ref><sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>([&amp;]<sp/>{</highlight></codeline>
<codeline lineno="176"><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="keywordflow">if</highlight><highlight class="normal"><sp/>(!error)<sp/>{</highlight></codeline>
<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>saved<sp/>=<sp/>bindings-&gt;children.find(std::to_string(index));</highlight></codeline>
<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(saved<sp/>==<sp/>bindings-&gt;children.end())<sp/>{</highlight></codeline>
<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>error<sp/>=<sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;bindings&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Term-binding<sp/>array<sp/>indices<sp/>are<sp/>not<sp/>contiguous.&quot;</highlight><highlight class="normal">};</highlight></codeline>
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>status<sp/>=<sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1_1detail_1a8a67df4d7a1c2f3ff37aa260e581fd82" kindref="member">detail::restore_binding&lt;Keys&gt;</ref>(saved-&gt;second,<sp/>*owner);</highlight></codeline>
<codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!status)<sp/>{<sp/>error<sp/>=<sp/>status.error();<sp/>}</highlight></codeline>
<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>++<ref refid="namespaceserif_1_1operators_1_1backend_1_1mfem_1ab297c6eedd8df878b6af2135b05e4616" kindref="member">index</ref>;</highlight></codeline>
<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}(),<sp/>...);</highlight></codeline>
<codeline lineno="187"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}(</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Context::Keys{});</highlight></codeline>
<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(error)<sp/>{</highlight></codeline>
<codeline lineno="189"><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/>std::unexpected(*error);</highlight></codeline>
<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>base<sp/>=<sp/><ref refid="namespaceserif_1_1model_1_1backend_1_1mfem_1ac5681e63c50dc5a136eaa699838cf332" kindref="member">model::backend::mfem::make_stellar_discretization</ref>(owner,<sp/>owner-&gt;context(),<sp/>*owner-&gt;resources.compactification,<sp/>*owner-&gt;resources.mapper);</highlight></codeline>
<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>deformation<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;Node&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;deformation&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!deformation)<sp/>{</highlight></codeline>
<codeline lineno="194"><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/>std::unexpected(deformation.error());</highlight></codeline>
<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">constexpr</highlight><highlight class="normal"><sp/>(std::same_as&lt;Deformation,<sp/>model::backend::mfem::NoDeformation&gt;)<sp/>{</highlight></codeline>
<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(deformation-&gt;type<sp/>!=<sp/></highlight><highlight class="stringliteral">&quot;mfem.no_deformation&quot;</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
<codeline lineno="198"><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="keywordflow">return</highlight><highlight class="normal"><sp/>std::unexpected(<ref refid="structserif_1_1utils_1_1serialize_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;deformation&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Saved<sp/>shape<sp/>representation<sp/>differs<sp/>from<sp/>the<sp/>requested<sp/>fixed-geometry<sp/>discretization.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="200"><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/>base;</highlight></codeline>
<codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">DomainModel<sp/>=<sp/>std::remove_cvref_t&lt;decltype(std::declval&lt;Deformation&gt;().model)&gt;;</highlight></codeline>
<codeline lineno="203"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>deformation_model<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1abb3b906587e8c2950b461d615bba7606" kindref="member">decode&lt;DomainModel&gt;</ref>(*deformation);</highlight></codeline>
<codeline lineno="204"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>reference_node<sp/>=<sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1a21172de2e2f37c8797a238eb0bdaea30" kindref="member">read_field&lt;Node&gt;</ref>(node,<sp/></highlight><highlight class="stringliteral">&quot;reference&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="205"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!deformation_model<sp/>||<sp/>!reference_node)<sp/>{</highlight></codeline>
<codeline lineno="206"><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="keywordflow">return</highlight><highlight class="normal"><sp/>std::unexpected(<ref refid="structserif_1_1utils_1_1serialize_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;deformation&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Missing<sp/>or<sp/>unsupported<sp/>surface/extension<sp/>prescription<sp/>or<sp/>reference<sp/>geometry.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="207"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="208"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>reference<sp/>=<sp/><ref refid="namespaceserif_1_1backend_1_1mfem_1_1serialize_1afafbbeb4449d57e43c89ad3d8ec45823" kindref="member">restore_reference</ref>(*reference_node,<sp/>owner-&gt;resources);</highlight></codeline>
<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!reference)<sp/>{</highlight></codeline>
<codeline lineno="210"><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="keywordflow">return</highlight><highlight class="normal"><sp/>std::unexpected(reference.error());</highlight></codeline>
<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="212"><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="namespaceserif_1_1model_1_1backend_1_1mfem_1ade88a3e3fa00b425b3d93ad44b3bb604" kindref="member">model::backend::mfem::with_deformation</ref>(std::move(base),<sp/>std::move(*deformation_model),<sp/>std::move(*reference));</highlight></codeline>
<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">catch</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::exception&amp;<sp/>error)<sp/>{</highlight></codeline>
<codeline lineno="215"><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::unexpected(<ref refid="structserif_1_1utils_1_1serialize_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;discretization&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Saved<sp/>numerical<sp/>interpretation<sp/>is<sp/>invalid:<sp/>&quot;</highlight><highlight class="normal"><sp/>+<sp/>std::string{error.what()}});</highlight></codeline>
<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="218"><highlight class="normal">}</highlight></codeline>
<codeline lineno="219"><highlight class="normal"></highlight></codeline>
<codeline lineno="220" refid="namespaceserif_1_1utils_1_1serialize" refkind="compound"><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="222"><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/>Owner,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Bindings,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Deformation&gt;</highlight></codeline>
<codeline lineno="223" refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1backend_1_1mfem_1_1_stellar_discree159e3517b28c4c8168613dfca6fe92a" 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>::backend::mfem::StellarDiscretization&lt;Owner,<sp/>Bindings,<sp/>Deformation&gt;&gt;<sp/>{</highlight></codeline>
<codeline lineno="224"><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_01model_1_1backend_1_1mfem_1_1_stellar_discree159e3517b28c4c8168613dfca6fe92a_1a49488b029401bb62bcf8241ccecddf65" kindref="member">Discretization</ref><sp/>=<sp/><ref refid="structserif_1_1model_1_1backend_1_1mfem_1_1_stellar_discretization" kindref="compound">model::backend::mfem::StellarDiscretization&lt;Owner, Bindings, Deformation&gt;</ref>;</highlight></codeline>
<codeline lineno="225"><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_1backend_1_1mfem_1_1_stellar_discree159e3517b28c4c8168613dfca6fe92a_1aa0968296b4abb798b5a30b98d48baa74" kindref="member">key</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;discretization&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="227"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><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_1backend_1_1mfem_1_1_stellar_discree159e3517b28c4c8168613dfca6fe92a_1a85a3fa75a6261ab02477927f710e8f2d" kindref="member">save</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1model_1_1backend_1_1mfem_1_1_stellar_discretization" kindref="compound">model::backend::mfem::StellarDiscretization&lt;Owner, Bindings, Deformation&gt;</ref>&amp;<sp/>value)<sp/>{</highlight></codeline>
<codeline lineno="228"><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_1backend_1_1mfem_1_1serialize_1ac945d40fa03bee3256270f52b462b532" kindref="member">serif::backend::mfem::serialize::save_discretization</ref>(value);</highlight></codeline>
<codeline lineno="229"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="231"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1serialize_1ace9e0af29889a767ef1c95a09a4b7265" kindref="member">Result&lt;Discretization&gt;</ref><sp/><ref refid="structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1backend_1_1mfem_1_1_stellar_discree159e3517b28c4c8168613dfca6fe92a_1a8f97d3d06734db15afec9a4f1e93feb2" 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/>{</highlight></codeline>
<codeline lineno="232"><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::unexpected(<ref refid="structserif_1_1utils_1_1serialize_1_1_error" kindref="compound">Error</ref>{</highlight><highlight class="stringliteral">&quot;discretization&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;Use<sp/>serif::backend::mfem::serialize::restore_discretization&lt;Original&gt;(node)<sp/>to<sp/>reconstruct<sp/>an<sp/>independently<sp/>owned<sp/>numerical<sp/>discretization.&quot;</highlight><highlight class="normal">});</highlight></codeline>
<codeline lineno="233"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="234"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="235"><highlight class="normal">}</highlight></codeline>
</programlisting>
<location file="src/include/serif/backend/mfem/serialize/discretization.hpp"/>
</compounddef>
</doxygen>