isobaric.hpp array type_traits serif/dimensions/dimensions.hpp serif/dimensions/type_alias.hpp src/compile_time_checks/serif/model/normalization.cpp src/include/serif/backend/mfem/serialize/top.hpp src/include/serif/geometry/surface/compilation.hpp src/include/serif/utils/serialize/physics.hpp src/lib/serif/geometry/surface/isobaric.cpp serif::geometry::surface::PressureSurfaceDescriptor serif::geometry::surface::IsobaricSurface serif::geometry::surface::IsobaricSurface::Parameters serif serif::geometry serif::geometry::surface #pragmaonce #include<array> #include<type_traits> #include"serif/dimensions/dimensions.hpp" #include"serif/dimensions/type_alias.hpp" namespaceserif::geometry::surface{ structPressureSurfaceDescriptorfinal{ doubletarget_pressure; }; classIsobaricSurfacefinal{ public: usingPhysicalQuantity=dimensions::Pressure; usingTargetValue=dimensions::PressureValue; public: structParametersfinal{ dimensions::PressureValuePSurf; }; public: explicitIsobaricSurface(constParametersparameters); explicitIsobaricSurface(constTargetValuetargetPressure); [[nodiscard]]TargetValuetarget_pressure()constnoexcept; [[nodiscard]]std::array<double,1>continuation_identity()constnoexcept; [[nodiscard]]PressureSurfaceDescriptordescriptor()constnoexcept; private: TargetValuem_targetPressure; }; template<typenameCandidate> conceptIsobaricSurfaceType=std::same_as<std::remove_cvref_t<Candidate>,IsobaricSurface>; usingIsobaric=IsobaricSurface; }