top.hpp cstddef filesystem functional serif/utils/serialize/record.hpp src/include/serif/backend/mfem/serialize/top.hpp src/include/serif/utils/serialize/serialize.hpp src/lib/serif/utils/serialize/top.cpp serif::utils::serialize::TopExportOptions serif::utils::serialize::TopPolytropeSource serif::utils::serialize::TopExportReport serif serif::utils serif::utils::serialize #pragmaonce #include<cstddef> #include<filesystem> #include<functional> #include"serif/utils/serialize/record.hpp" namespaceserif::utils::serialize{ structTopExportOptions{ intradial_points{64}; intmaximum_degree{16}; intangular_points{48}; intazimuthal_points{8}; doublerelative_symmetry_tolerance{1e-3}; doublerelative_surface_tolerance{1e-6}; doublerelative_surface_projection_tolerance{1e-3}; }; structTopPolytropeSource{ doublepolytropic_index{}; doublegravitational_constant{}; doublemass{}; doubleangular_velocity{}; doublecentral_density{}; doublecentral_enthalpy{}; std::function<Result<double>(doublemu,doublephi)>surface_radius; std::function<Result<double>(doubleradius,doublemu,doublephi)>enthalpy; std::function<std::size_t()>roundoff_density_clamps; }; structTopExportReport{ std::filesystem::pathdirectory; intradial_points{},maximum_degree{},angular_points{},azimuthal_points{}; doublesource_equatorial_radius{},source_polar_radius{}; doubleequatorial_radius{},polar_radius{}; doublelambda{},flattening{},alpha{},rotation{},rotation_over_kepler{}; doubleangular_frequency_unit{}; doublemaximum_relative_surface_symmetry_error{}; doublemaximum_relative_enthalpy_symmetry_error{}; doublemaximum_relative_surface_projection_error{}; doublemaximum_relative_enthalpy_projection_error{}; doublemaximum_relative_surface_enthalpy{}; doubleminimum_mapping_derivative{}; doubleminimum_enthalpy{}; std::size_troundoff_density_clamps{}; }; [[nodiscard]]Result<TopExportReport>export_top(conststd::filesystem::path&path, constTopPolytropeSource&source,constTopExportOptions&options={}); }