models.hpp array optional src/compile_time_checks/serif/geometry/surface_storage_meanfield.cpp src/include/serif/backend/mfem/geometry/deformation/inputs.hpp src/include/serif/geometry/deformation/deformation.hpp src/include/serif/geometry/deformation/radial_extension.hpp src/include/serif/geometry/deformation/surface_embedding.hpp src/include/serif/utils/serialize/physics.hpp serif::geometry::deformation::NodalRadialSurface serif::geometry::deformation::SphericalHarmonicSurface serif::geometry::deformation::PowerLawRadialExtension serif::geometry::deformation::FixedInfinityRadialExtension serif::geometry::deformation::DomainDeformation serif serif::geometry serif::geometry::deformation #pragmaonce #include<array> #include<optional> namespaceserif::geometry::deformation{ structNodalRadialSurface{ std::array<double,3>reference_center{}; [[nodiscard]]booloperator==(constNodalRadialSurface&)const=default; }; structSphericalHarmonicSurface{ std::array<double,3>reference_center{}; intmaximum_degree{4}; std::optional<int>maximum_azimuthal_order{}; [[nodiscard]]booloperator==(constSphericalHarmonicSurface&)const=default; }; structPowerLawRadialExtension{ doubleradial_power{2.0}; [[nodiscard]]booloperator==(constPowerLawRadialExtension&)const=default; }; structFixedInfinityRadialExtension{ [[nodiscard]]booloperator==(constFixedInfinityRadialExtension&)const=default; }; template<typenameSurfaceT,typenameInteriorT=PowerLawRadialExtension,typenameVacuumT=FixedInfinityRadialExtension> structDomainDeformation{ SurfaceTsurface; InteriorTstellar_interior; VacuumTvacuum; [[nodiscard]]booloperator==(constDomainDeformation&)const=default; }; }