configured_discretization.hpp utility serif/model/normalization/reference.hpp src/compile_time_checks/serif/backend_independent.cpp src/compile_time_checks/serif/model/normalization.cpp src/include/serif/backend/mfem/model/equilibrium.hpp src/include/serif/backend/mfem/serialize/configuration.hpp src/include/serif/utils/serialize/numerics.hpp serif::model::preconditioning::None serif::model::DiscretizationOptions serif serif::model serif::model::preconditioning #pragmaonce #include<utility> #include"serif/model/normalization/reference.hpp" namespaceserif::model::preconditioning{ structNonefinal{}; } namespaceserif::model{ template<StellarModelTypeModel,typenameFiniteElements,typenameNormalization=solver::normalization::NormalizationOptions<>,typenamePreconditioner=preconditioning::None> structDiscretizationOptionsfinal{ Modelmodel; FiniteElementsfinite_elements; Normalizationnormalization; Preconditionerpreconditioner; }; template<StellarModelTypeModel,typenameFiniteElements,typenameNormalization,typenamePreconditioner> requiresnormalization::ReferenceResolvable<Normalization, Model> [[nodiscard]]automake_discretization(DiscretizationOptions<Model, FiniteElements, Normalization, Preconditioner>options){ autoreference=normalization::resolve_configuration(std::move(options.normalization),options.model); returnDiscretizationOptions<Model,FiniteElements,decltype(reference),Preconditioner>{ .model=std::move(options.model),.finite_elements=std::move(options.finite_elements),.normalization=std::move(reference), .preconditioner=std::move(options.preconditioner) }; } }