dimensionless.hpp expected string serif/solver/normalization/metrics.hpp src/include/serif/solver/normalization/plan.hpp src/lib/serif/solver/normalization/dimensionless.cpp serif::solver::normalization::DimensionlessMetricGeometry< ReferenceVolumeMetric< TermT > > serif::solver::normalization::DimensionlessMetricGeometry< geometry::deformation::keys::SurfaceMetric > serif::solver::normalization::DimensionlessMetricGeometry< UnitMetric > serif serif::solver serif::solver::normalization serif::solver::normalization::detail #pragmaonce #include<expected> #include<string> #include"serif/solver/normalization/metrics.hpp" namespaceserif::solver::normalization{ enumclassReferenceGeometry{ volume, surface, algebraic }; template<typenameMetricT> structDimensionlessMetricGeometry; template<discretization::blocks::SpatialTermTermT> structDimensionlessMetricGeometry<ReferenceVolumeMetric<TermT>>{ staticconstexprReferenceGeometryvalue=ReferenceGeometry::volume; }; template<> structDimensionlessMetricGeometry<geometry::deformation::keys::SurfaceMetric>{ staticconstexprReferenceGeometryvalue=ReferenceGeometry::surface; }; template<> structDimensionlessMetricGeometry<UnitMetric>{ staticconstexprReferenceGeometryvalue=ReferenceGeometry::algebraic; }; namespacedetail{ [[nodiscard]]std::expected<double,std::string>dimensionless_riesz_scale( discretization::blocks::RepresentedValueKindkind,ReferenceGeometrygeometry,doublephysical_scale,doublereference_radius); } }