evaluation.hpp serif/geometry/surface/detail/evaluation.hpp src/include/serif/geometry/surface/surface.hpp serif serif::geometry serif::geometry::surface #pragmaonce #include"serif/geometry/surface/detail/evaluation.hpp" namespaceserif::geometry::surface{ template<PressureSurfaceFormulationTypeFormulation> [[nodiscard]]std::expected<SurfaceLinearization<Formulation>,SurfaceFailure>evaluate_pressure_surface(consttypenameFormulation::EquationOfState&equation_of_state,constIsobaricSurface&condition,constSurfacePoint<Formulation>&point){ if(!detail::finite_state<Formulation>(point,typenameFormulation::StateQuantities{})){ returnstd::unexpected(SurfaceFailure{.reason=SurfaceFailureReason::non_finite_state,.message="Thesurfacestatemustbefinite;supplyfinitevaluesforeveryrequiredthermodynamicquantity."}); } constautoresponse=detail::evaluate_surface_response<Formulation>(equation_of_state,condition.target_pressure(),point); if(!response){ returnstd::unexpected(response.error()); } returndetail::checked_linearization<Formulation>(condition.target_pressure(),point,*response); } }