samples.hpp utility vector serif/geometry/surface/linearization.hpp serif/utils/dependencies/resource.hpp src/include/serif/backend/mfem/geometry/surface/boundary_inputs.hpp src/include/serif/geometry/surface/detail/batches.hpp serif::geometry::surface::keys::EquationOfState serif::geometry::surface::keys::PressureCondition serif::geometry::surface::keys::EOSResponse serif::geometry::surface::keys::Linearization serif::geometry::surface::BoundaryValues serif::geometry::surface::detail::BoundaryValueTracking serif::geometry::surface::detail::PressureConditionTracking serif serif::geometry serif::geometry::surface serif::geometry::surface::keys serif::geometry::surface::detail #pragmaonce #include<utility> #include<vector> #include"serif/geometry/surface/linearization.hpp" #include"serif/utils/dependencies/resource.hpp" namespaceserif::geometry::surface{ namespacekeys{ structEquationOfState{ }; structPressureCondition{ }; structEOSResponse{ }; structLinearization{ }; } template<SurfaceScalarTermTerm> structBoundaryValues{ std::vector<double>values; [[nodiscard]]booloperator==(constBoundaryValues&)const=default; }; namespacedetail{ structBoundaryValueTracking:utils::dependencies::ValueSnapshot{ template<SurfaceScalarTermTerm> [[nodiscard]]constvoid*identity(constBoundaryValues<Term>&)const{ returnnullptr; } }; structPressureConditionTracking{ [[nodiscard]]dimensions::PressureValuecapture(constIsobaricSurface&condition)const{ returncondition.target_pressure(); } [[nodiscard]]boolmatches(constdimensions::PressureValuecaptured,constIsobaricSurface&condition)const{ returncaptured==condition.target_pressure(); } [[nodiscard]]constvoid*identity(constIsobaricSurface&)const{ returnnullptr; } }; } template<SurfaceScalarTermTerm> [[nodiscard]]autoboundary_values(std::vector<double>values){ returnutils::dependencies::own<Term>(BoundaryValues<Term>{.values=std::move(values)},detail::BoundaryValueTracking{}); } [[nodiscard]]inlineautopressure_condition(IsobaricSurfacecondition){ returnutils::dependencies::own<keys::PressureCondition>(std::move(condition),detail::PressureConditionTracking{}); } }