feat(mean_field): added initial implementation

note this implementation lacks many tests
This commit is contained in:
2026-07-15 09:44:43 -04:00
commit 9bc4f2758a
49 changed files with 171811 additions and 0 deletions

25
tests/geometry/volume.cpp Normal file
View File

@@ -0,0 +1,25 @@
#include <catch2/catch_test_macros.hpp>
#include <catch2/matchers/catch_matchers_floating_point.hpp>
#include <catch2/benchmark/catch_benchmark.hpp>
#include <cmath>
#include <vector>
#include <string>
#include <algorithm>
#include <mfem.hpp>
#include <mpi.h>
import mean_field;
import test_helpers;
using namespace mean_field;
TEST_CASE("STROID Volume vs sphere", tags::geometry & tags::volume) {
auto args = test_utils::setup_args();
fem::FEM f = fem::setup_fem(args.mesh_file, args, 0);
const double analytic_vol = (4.0 / 3.0) * M_PI * std::pow(utils::RADIUS, 3);
const double stroid_vol = analysis::get_mesh_volume(f);
double s = analytic_vol / stroid_vol;
CHECK_THAT(stroid_vol, Catch::Matchers::WithinRel(analytic_vol, 1e-6));
}