fitted_h1.hpp expected serif/solver/preconditioner/strategies/surface/calibrated_mass.hpp src/include/serif/solver/preconditioner/backend/mfem/surface/fitted_h1.hpp src/include/serif/solver/preconditioner/recipes/surface.hpp src/lib/serif/solver/preconditioner/strategies/surface/fitted_h1.cpp serif::solver::preconditioner::strategies::surface::FittedSurfaceH1 serif::solver::preconditioner::strategies::surface::SurfaceH1Moments serif::solver::preconditioner::strategies::surface::SurfaceH1Fit serif serif::solver serif::solver::preconditioner serif::solver::preconditioner::strategies serif::solver::preconditioner::strategies::surface #pragmaonce #include<expected> #include"serif/solver/preconditioner/strategies/surface/calibrated_mass.hpp" namespaceserif::solver::preconditioner::strategies::surface { structFittedSurfaceH1final { CalibrationTargettarget{CalibrationTarget::material_schur}; intprobe_count{6}; doublerelative_mass_coefficient_floor{1e-10}; doublegram_relative_tolerance{1e-12}; }; structSurfaceH1Momentsfinal { doublemass_mass{}; doublemass_stiffness{}; doublestiffness_stiffness{}; doublemass_target{}; doublestiffness_target{}; doubletarget_target{}; }; structSurfaceH1Fitfinal { doublesign{1.0}; doublemass_coefficient{1.0}; doublestiffness_coefficient{}; doublerelative_residual{}; doublerelative_gram_determinant{}; SurfaceH1Momentsmoments; }; [[nodiscard]]std::expected<SurfaceH1Fit,Failure>try_fit_surface_h1_coefficients(constSurfaceH1Moments&moments,FittedSurfaceH1options={}); }//namespaceserif::solver::preconditioner::strategies::surface