From 9c90918eecee4cd39bb9613ab65586fa2b8f8435 Mon Sep 17 00:00:00 2001 From: CharlesCNorton Date: Fri, 4 Sep 2026 15:55:39 -0400 Subject: [PATCH 1/2] Carry the Jacobian sign in the Mercier volume derivative --- .../cpp/vmecpp/vmec/output_quantities/output_quantities.cc | 5 ++++- .../vmec/output_quantities/output_quantities_test.cc | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/vmecpp/cpp/vmecpp/vmec/output_quantities/output_quantities.cc b/src/vmecpp/cpp/vmecpp/vmec/output_quantities/output_quantities.cc index 231ac5eaa..20eb229fd 100644 --- a/src/vmecpp/cpp/vmecpp/vmec/output_quantities/output_quantities.cc +++ b/src/vmecpp/cpp/vmecpp/vmec/output_quantities/output_quantities.cc @@ -3187,9 +3187,12 @@ vmecpp::MercierFileContents vmecpp::ComputeMercierStability( // S mercier.s[jF] = mercier_intermediate.s[jF]; + // mercier.f90 forms this as sqs = 0.5*(vp_real(i) + vp_real(i+1))*sign_jac + // and divides SHEAR, ITOR' and PRES' by it, so the Jacobian sign belongs + // here rather than only on WELL. const double vp_full = (mercier_intermediate.vp_real[jHo] + mercier_intermediate.vp_real[jHi]) / - 2.0; + 2.0 * vmec_internal_results.sign_of_jacobian; if (vp_full == 0.0) { // skip this surface continue; diff --git a/src/vmecpp/cpp/vmecpp_large_cpp_tests/vmec/output_quantities/output_quantities_test.cc b/src/vmecpp/cpp/vmecpp_large_cpp_tests/vmec/output_quantities/output_quantities_test.cc index 6c66552c9..3d64690bf 100644 --- a/src/vmecpp/cpp/vmecpp_large_cpp_tests/vmec/output_quantities/output_quantities_test.cc +++ b/src/vmecpp/cpp/vmecpp_large_cpp_tests/vmec/output_quantities/output_quantities_test.cc @@ -671,7 +671,7 @@ TEST_P(MercierStabilityTest, CheckMercierStability) { const double vp_full = (static_cast(mercier["vp_real"][jHo]) + static_cast(mercier["vp_real"][jHi])) / - 2.0; + 2.0 * sign_of_jacobian; // The running sum advances even on surfaces the assembly skips, and is // scaled by deltaS only at the end, as the assembly does. From 369afe484ad6deeb70d4d7f0a9468136144cf4f7 Mon Sep 17 00:00:00 2001 From: CharlesCNorton Date: Fri, 4 Sep 2026 17:39:53 -0400 Subject: [PATCH 2/2] Rerun CI