isobaric.cpp cmath stdexcept array serif/geometry/surface/isobaric.hpp serif/utils/error/errors.hpp serif serif::geometry serif::geometry::surface #include<cmath> #include<stdexcept> #include<array> #include"serif/geometry/surface/isobaric.hpp" #include"serif/utils/error/errors.hpp" namespaceserif::geometry::surface{ usingnamespaceutils::errors; IsobaricSurface::IsobaricSurface(constParametersparameters):IsobaricSurface(parameters.PSurf){} IsobaricSurface::IsobaricSurface(constTargetValuetargetPressure):m_targetPressure(targetPressure){ serif_ensure<SERiFErrorCode::NON_FINITE_VALUE_ERROR,std::invalid_argument>(std::isfinite(targetPressure.value()),"Thetargetsurfacepressuremustbefinite,got{}",targetPressure.value()); serif_ensure<SERiFErrorCode::NEGATIVE_VALUE_ERROR,std::invalid_argument>(targetPressure.value()>=0,"Thetargetsurfacepressuremustbenon-negative,got{}",targetPressure.value()); } IsobaricSurface::TargetValueIsobaricSurface::target_pressure()constnoexcept{ returnm_targetPressure; } std::array<double,1>IsobaricSurface::continuation_identity()constnoexcept{ return{m_targetPressure.value()}; } PressureSurfaceDescriptorIsobaricSurface::descriptor()constnoexcept{ returnPressureSurfaceDescriptor{ .target_pressure=m_targetPressure.value() }; } }