kelvin.hpp string_view mfem/linalg/vector.hpp serif/mapping/status.hpp serif/mapping/compactification/compactification.hpp serif/utils/user_options/mapping/compactification/kelvin.hpp src/include/serif/mapping/data.hpp src/include/serif/mapping/domain_mapper.hpp src/lib/serif/mapping/compactification/kelvin.cpp serif::mapping::compactification::KelvinCompactification serif::mapping::compactification::KelvinCompactification::RadialFactors serif serif::mapping serif::mapping::compactification #pragmaonce #include<string_view> #include"mfem/linalg/vector.hpp" #include"serif/mapping/status.hpp" #include"serif/mapping/compactification/compactification.hpp" #include"serif/utils/user_options/mapping/compactification/kelvin.hpp" namespaceserif::mapping::compactification{ classKelvinCompactificationfinal:publicExteriorDomainMap{ public: explicitKelvinCompactification(constutils::user_options::KelvinCompactificationOptions&options); [[nodiscard]]boolis_affine_in_displacement()constnoexceptoverride; [[nodiscard]]MappingStatusevaluate( constExteriorMapInput&input, ExteriorMapResult&result )constoverride; [[nodiscard]]MappingStatusevaluate_variation( constExteriorMapInput&input, constExteriorMapResult&result, constExteriorMapDirection&direction, ExteriorMapVariation&variation )constoverride; [[nodiscard]]std::string_viewget_name()constnoexceptoverride; [[nodiscard]]std::unique_ptr<constExteriorDomainMap>clone()constoverride; [[nodiscard]]doubleget_reference_stellar_radius()constnoexcept; [[nodiscard]]doubleget_reference_infinity_radius()constnoexcept; [[nodiscard]]doubleget_coordinate_tolerance()constnoexcept; [[nodiscard]]MappingStatusevaluate_jacobian_variation_factors( doublecompactification_coordinate, constmfem::Vector&coordinateGradient, double&scale, mfem::Vector&scaleGradient )const; private: structRadialFactors{ doublecompactification_coordinate; doublecomputational_radius; doublescale; doublescale_derivative; }; private: [[nodiscard]]MappingStatuscompute_radial_factors( doublecompactification_coordinate, RadialFactors&radial_factors )const; private: utils::user_options::KelvinCompactificationOptionsm_options; conststd::string_viewm_name="KelvinCompactification"; }; }