Compare compact gravity applications against full FEM blocks

This commit is contained in:
2026-09-17 10:19:17 -04:00
parent 3307191f2d
commit f77c7d2b29
3 changed files with 40 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ import mean_field;
#include "plateau_pressure_obstruction_diagnostics.hpp"
#include "plateau_shape_curvature_diagnostics.hpp"
#include "plateau_numerical_strategy_diagnostics.hpp"
#include "plateau_gravity_application_diagnostics.hpp"
#include "plateau_positivity_strategy_diagnostics.hpp"
using namespace mean_field;
@@ -250,8 +251,15 @@ void FocusedProbes(State &s, const fem::FEM &f, const Options &o, const mfem::Ve
for (const auto &[key, value] : experiment::plateau_diagnostics::MeasureEnthalpyStep(s, f, o.n, &physicalBase))
bounds << key << ',' << value << '\n';
bounds.flush();
if (o.strategyProbe)
if (o.strategyProbe) {
s.physicalInverse->Refresh();
using Form = typename std::remove_cvref_t<decltype(s.Problem())>::FormType;
solver::PreparedGravitySubsystem gravity(*s.normalizedOperator, *s.normalizedInverse,
solver::MakeGravityBlockPartition<Form>(s.Problem().GetManifest().layout()),
s.Problem().GetCommunicator());
plateau_diagnostics::ProbeGravityApplications(gravity, o.output);
experiment::plateau_diagnostics::ProbeNumericalStrategies(s, f, base, direction, o.output);
}
if (o.positivityProbe)
experiment::plateau_diagnostics::ProbePolynomialEnthalpy(s, f, base, direction, o.output);
if (o.surfaceTrace)