diff --git a/common/fourier_basis_fast_poloidal/BUILD.bazel b/common/fourier_basis_fast_poloidal/BUILD.bazel index cbe8ee2..b84245f 100644 --- a/common/fourier_basis_fast_poloidal/BUILD.bazel +++ b/common/fourier_basis_fast_poloidal/BUILD.bazel @@ -8,6 +8,7 @@ cc_test( "//vmecpp/test_data:solovev", "//vmecpp/test_data:solovev_analytical", "//vmecpp/test_data:solovev_no_axis", + "//vmecpp/test_data:solovev_free_bdy", "//vmecpp/test_data:cth_like_fixed_bdy", "//vmecpp/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp/test_data:cma", @@ -15,6 +16,7 @@ cc_test( "//vmecpp_large_cpp_tests/test_data:solovev", "//vmecpp_large_cpp_tests/test_data:solovev_analytical", "//vmecpp_large_cpp_tests/test_data:solovev_no_axis", + "//vmecpp_large_cpp_tests/test_data:solovev_free_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp_large_cpp_tests/test_data:cma", diff --git a/common/fourier_basis_fast_poloidal/fourier_basis_fast_poloidal_test.cc b/common/fourier_basis_fast_poloidal/fourier_basis_fast_poloidal_test.cc index 0d0301e..9919662 100644 --- a/common/fourier_basis_fast_poloidal/fourier_basis_fast_poloidal_test.cc +++ b/common/fourier_basis_fast_poloidal/fourier_basis_fast_poloidal_test.cc @@ -136,6 +136,7 @@ INSTANTIATE_TEST_SUITE_P( Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-30}, DataSource{.identifier = "solovev_analytical", .tolerance = 1.0e-30}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-30}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-30}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-30}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-30}, diff --git a/common/fourier_basis_fast_toroidal/BUILD.bazel b/common/fourier_basis_fast_toroidal/BUILD.bazel index 393712c..a7b732f 100644 --- a/common/fourier_basis_fast_toroidal/BUILD.bazel +++ b/common/fourier_basis_fast_toroidal/BUILD.bazel @@ -8,6 +8,7 @@ cc_test( "//vmecpp/test_data:solovev", "//vmecpp/test_data:solovev_analytical", "//vmecpp/test_data:solovev_no_axis", + "//vmecpp/test_data:solovev_free_bdy", "//vmecpp/test_data:cth_like_fixed_bdy", "//vmecpp/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp/test_data:cma", @@ -15,6 +16,7 @@ cc_test( "//vmecpp_large_cpp_tests/test_data:solovev", "//vmecpp_large_cpp_tests/test_data:solovev_analytical", "//vmecpp_large_cpp_tests/test_data:solovev_no_axis", + "//vmecpp_large_cpp_tests/test_data:solovev_free_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp_large_cpp_tests/test_data:cma", diff --git a/common/fourier_basis_fast_toroidal/fourier_basis_fast_toroidal_test.cc b/common/fourier_basis_fast_toroidal/fourier_basis_fast_toroidal_test.cc index 6761b9c..5ddc02e 100644 --- a/common/fourier_basis_fast_toroidal/fourier_basis_fast_toroidal_test.cc +++ b/common/fourier_basis_fast_toroidal/fourier_basis_fast_toroidal_test.cc @@ -134,6 +134,7 @@ INSTANTIATE_TEST_SUITE_P( Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-30}, DataSource{.identifier = "solovev_analytical", .tolerance = 1.0e-30}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-30}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-30}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-30}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-30}, diff --git a/common/sizes/BUILD.bazel b/common/sizes/BUILD.bazel index db16e3a..c3cd36f 100644 --- a/common/sizes/BUILD.bazel +++ b/common/sizes/BUILD.bazel @@ -8,6 +8,7 @@ cc_test( "//vmecpp/test_data:solovev", "//vmecpp/test_data:solovev_analytical", "//vmecpp/test_data:solovev_no_axis", + "//vmecpp/test_data:solovev_free_bdy", "//vmecpp/test_data:cth_like_fixed_bdy", "//vmecpp/test_data:cma", "//vmecpp/test_data:cth_like_free_bdy", diff --git a/common/sizes/sizes_test.cc b/common/sizes/sizes_test.cc index 3822e04..d57b079 100644 --- a/common/sizes/sizes_test.cc +++ b/common/sizes/sizes_test.cc @@ -154,6 +154,49 @@ TEST(TestSizes, CheckSolovevNoAxis) { EXPECT_EQ(sizes.mnmax, 6); } // CheckSolovevNoAxis +TEST(TestSizes, CheckSolovevFreeBdy) { + double tolerance = 1.0e-30; + + absl::StatusOr indata_json = + ReadFile("vmecpp/test_data/solovev_free_bdy.json"); + ASSERT_TRUE(indata_json.ok()); + + absl::StatusOr vmec_indata = VmecINDATA::FromJson(*indata_json); + ASSERT_TRUE(vmec_indata.ok()); + + Sizes sizes(*vmec_indata); + + EXPECT_EQ(sizes.lasym, false); + EXPECT_EQ(sizes.nfp, 1); + EXPECT_EQ(sizes.mpol, 6); + EXPECT_EQ(sizes.ntor, 0); + + // ntheta was 0 in the input file, so compute it here + EXPECT_EQ(sizes.ntheta, 2 * sizes.mpol + 6); + EXPECT_EQ(sizes.nZeta, 1); + + EXPECT_EQ(sizes.lthreed, false); + EXPECT_EQ(sizes.num_basis, 1); + + EXPECT_EQ(sizes.nThetaEven, 18); + EXPECT_EQ(sizes.nThetaReduced, 10); + EXPECT_EQ(sizes.nThetaEff, 10); + + EXPECT_EQ(sizes.nZnT, 10); + + for (int l = 0; l < sizes.nThetaEff; ++l) { + if (l == 0 || l == sizes.nThetaEff - 1) { + EXPECT_TRUE(IsCloseRelAbs(1.0 / 18, sizes.wInt[l], tolerance)); + } else { + EXPECT_TRUE(IsCloseRelAbs(2.0 / 18, sizes.wInt[l], tolerance)); + } + } + + EXPECT_EQ(sizes.mnsize, 6); + + EXPECT_EQ(sizes.mnmax, 6); +} // CheckSolovevFreeBdy + TEST(TestSizes, CheckCthLikeFixedBoundary) { double tolerance = 1.0e-30; diff --git a/vmec/boundaries/BUILD.bazel b/vmec/boundaries/BUILD.bazel index 2ced29d..247681d 100644 --- a/vmec/boundaries/BUILD.bazel +++ b/vmec/boundaries/BUILD.bazel @@ -8,6 +8,7 @@ cc_test( "//vmecpp/test_data:solovev", "//vmecpp/test_data:solovev_analytical", "//vmecpp/test_data:solovev_no_axis", + "//vmecpp/test_data:solovev_free_bdy", "//vmecpp/test_data:cth_like_fixed_bdy", "//vmecpp/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp/test_data:cma", @@ -15,6 +16,7 @@ cc_test( "//vmecpp_large_cpp_tests/test_data:solovev", "//vmecpp_large_cpp_tests/test_data:solovev_analytical", "//vmecpp_large_cpp_tests/test_data:solovev_no_axis", + "//vmecpp_large_cpp_tests/test_data:solovev_free_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp_large_cpp_tests/test_data:cma", diff --git a/vmec/boundaries/boundaries_test.cc b/vmec/boundaries/boundaries_test.cc index 414c1e9..25e5f74 100644 --- a/vmec/boundaries/boundaries_test.cc +++ b/vmec/boundaries/boundaries_test.cc @@ -87,6 +87,7 @@ INSTANTIATE_TEST_SUITE_P( Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-30}, DataSource{.identifier = "solovev_analytical", .tolerance = 1.0e-30}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-30}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-30}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-30}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-30}, diff --git a/vmec/fourier_geometry/BUILD.bazel b/vmec/fourier_geometry/BUILD.bazel index ad03143..ecae6ad 100644 --- a/vmec/fourier_geometry/BUILD.bazel +++ b/vmec/fourier_geometry/BUILD.bazel @@ -7,12 +7,14 @@ cc_test( data = [ "//vmecpp/test_data:solovev", "//vmecpp/test_data:solovev_no_axis", + "//vmecpp/test_data:solovev_free_bdy", "//vmecpp/test_data:cth_like_fixed_bdy", "//vmecpp/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp/test_data:cma", "//vmecpp/test_data:cth_like_free_bdy", "//vmecpp_large_cpp_tests/test_data:solovev", "//vmecpp_large_cpp_tests/test_data:solovev_no_axis", + "//vmecpp_large_cpp_tests/test_data:solovev_free_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp_large_cpp_tests/test_data:cma", diff --git a/vmec/fourier_geometry/fourier_geometry_test.cc b/vmec/fourier_geometry/fourier_geometry_test.cc index 39524f0..2f56ad5 100644 --- a/vmec/fourier_geometry/fourier_geometry_test.cc +++ b/vmec/fourier_geometry/fourier_geometry_test.cc @@ -135,6 +135,8 @@ INSTANTIATE_TEST_SUITE_P( Values(DataSource{.identifier = "solovev", .tolerance = DBL_EPSILON}, DataSource{.identifier = "solovev_no_axis", .tolerance = DBL_EPSILON}, + DataSource{.identifier = "solovev_free_bdy", + .tolerance = DBL_EPSILON}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = DBL_EPSILON}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", diff --git a/vmec/ideal_mhd_model/BUILD.bazel b/vmec/ideal_mhd_model/BUILD.bazel index d0dbeed..c8974c4 100644 --- a/vmec/ideal_mhd_model/BUILD.bazel +++ b/vmec/ideal_mhd_model/BUILD.bazel @@ -8,6 +8,7 @@ cc_test( "//vmecpp/test_data:solovev", "//vmecpp/test_data:solovev_analytical", "//vmecpp/test_data:solovev_no_axis", + "//vmecpp/test_data:solovev_free_bdy", "//vmecpp/test_data:cth_like_fixed_bdy", "//vmecpp/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp/test_data:cma", @@ -15,6 +16,7 @@ cc_test( "//vmecpp_large_cpp_tests/test_data:solovev", "//vmecpp_large_cpp_tests/test_data:solovev_analytical", "//vmecpp_large_cpp_tests/test_data:solovev_no_axis", + "//vmecpp_large_cpp_tests/test_data:solovev_free_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp_large_cpp_tests/test_data:cma", diff --git a/vmec/ideal_mhd_model/ideal_mhd_model_test.cc b/vmec/ideal_mhd_model/ideal_mhd_model_test.cc index 731f2ee..d7c509f 100644 --- a/vmec/ideal_mhd_model/ideal_mhd_model_test.cc +++ b/vmec/ideal_mhd_model/ideal_mhd_model_test.cc @@ -98,6 +98,7 @@ INSTANTIATE_TEST_SUITE_P( Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-30}, DataSource{.identifier = "solovev_analytical", .tolerance = 1.0e-30}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-30}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-30}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-30}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-30}, @@ -177,6 +178,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMhdModel, FourierGeometryToStartWithTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-14}, @@ -340,6 +342,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, InverseFourierTransformGeometryTest, Values(DataSource{.identifier = "solovev", .tolerance = 2.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 2.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 2.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 6.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 6.0e-14}, @@ -429,6 +432,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, JacobianTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 2.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 2.0e-14}, @@ -515,6 +519,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, MetricTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-15}, @@ -583,6 +588,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, VolumeTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-16}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-16}, @@ -716,6 +722,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, ContravariantMagneticFieldTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-16}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-16}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-13}, @@ -791,6 +798,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, CovariantMagneticFieldTest, Values(DataSource{.identifier = "solovev", .tolerance = 2.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 2.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-13}, @@ -873,6 +881,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, TotalPressureAndEnergiesTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-16}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-16}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-16}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-13}, @@ -963,6 +972,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, RadialForceBalanceTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-14}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-14}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-12}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-12}, @@ -1088,6 +1098,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, HybridLambdaForceTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-13}, @@ -1261,6 +1272,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, UpdateRadialPreconditionerTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-14}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-14}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-12}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-12}, @@ -1351,6 +1363,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, ForceNormsTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-14}, @@ -1421,6 +1434,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, ConstraintForceMultiplierTest, Values(DataSource{.identifier = "solovev", .tolerance = 2.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 2.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-13}, @@ -1611,6 +1625,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, AliasTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 2.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 2.0e-14}, @@ -1719,6 +1734,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, RealspaceForcesTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-14}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-14}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-11}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-11}, @@ -1841,6 +1857,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, ForwardTransformForcesTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-13}, @@ -1930,6 +1947,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, PhysicalForcesTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-13}, @@ -1990,6 +2008,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, InvariantResidualsTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-16}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-16}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-16}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-14}, @@ -2074,6 +2093,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, ApplyM1PreconditionerTest, Values(DataSource{.identifier = "solovev", .tolerance = 5.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 5.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-13}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-13}, @@ -2173,6 +2193,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, AssembleRZPreconditionerTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-14}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-14}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-12}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-12}, @@ -2338,6 +2359,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, ApplyPreconditionerTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-14}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-14}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-12}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 1.0e-12}, @@ -2395,6 +2417,7 @@ INSTANTIATE_TEST_SUITE_P( TestIdealMHDModel, PreconditionedResidualsTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-16}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-16}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 1.0e-16}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 5.0e-16}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 5.0e-16}, diff --git a/vmec/radial_profiles/BUILD.bazel b/vmec/radial_profiles/BUILD.bazel index bef9d93..1b7f9a4 100644 --- a/vmec/radial_profiles/BUILD.bazel +++ b/vmec/radial_profiles/BUILD.bazel @@ -8,12 +8,14 @@ cc_test( "//vmecpp/test_data:solovev", "//vmecpp/test_data:solovev_analytical", "//vmecpp/test_data:solovev_no_axis", + "//vmecpp/test_data:solovev_free_bdy", "//vmecpp/test_data:cth_like_fixed_bdy", "//vmecpp/test_data:cma", "//vmecpp/test_data:cth_like_free_bdy", "//vmecpp_large_cpp_tests/test_data:solovev", "//vmecpp_large_cpp_tests/test_data:solovev_analytical", "//vmecpp_large_cpp_tests/test_data:solovev_no_axis", + "//vmecpp_large_cpp_tests/test_data:solovev_free_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy", "//vmecpp_large_cpp_tests/test_data:cma", "//vmecpp_large_cpp_tests/test_data:cth_like_free_bdy", diff --git a/vmec/radial_profiles/radial_profiles_test.cc b/vmec/radial_profiles/radial_profiles_test.cc index decda8d..c539600 100644 --- a/vmec/radial_profiles/radial_profiles_test.cc +++ b/vmec/radial_profiles/radial_profiles_test.cc @@ -269,6 +269,8 @@ INSTANTIATE_TEST_SUITE_P( DataSource{.identifier = "solovev_analytical", .tolerance = 1.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = DBL_EPSILON / 2}, + DataSource{.identifier = "solovev_free_bdy", + .tolerance = DBL_EPSILON / 2}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = DBL_EPSILON}, DataSource{.identifier = "cma", .tolerance = DBL_EPSILON}, diff --git a/vmec/vmec/BUILD.bazel b/vmec/vmec/BUILD.bazel index 3d0012d..5851aab 100644 --- a/vmec/vmec/BUILD.bazel +++ b/vmec/vmec/BUILD.bazel @@ -7,12 +7,14 @@ cc_test( data = [ "//vmecpp/test_data:solovev", "//vmecpp/test_data:solovev_no_axis", + "//vmecpp/test_data:solovev_free_bdy", "//vmecpp/test_data:cth_like_fixed_bdy", "//vmecpp/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp/test_data:cma", "//vmecpp/test_data:cth_like_free_bdy", "//vmecpp_large_cpp_tests/test_data:solovev", "//vmecpp_large_cpp_tests/test_data:solovev_no_axis", + "//vmecpp_large_cpp_tests/test_data:solovev_free_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy", "//vmecpp_large_cpp_tests/test_data:cth_like_fixed_bdy_nzeta_37", "//vmecpp_large_cpp_tests/test_data:cma", diff --git a/vmec/vmec/vmec_test.cc b/vmec/vmec/vmec_test.cc index 7e7c8c2..ce0ef2c 100644 --- a/vmec/vmec/vmec_test.cc +++ b/vmec/vmec/vmec_test.cc @@ -158,6 +158,9 @@ INSTANTIATE_TEST_SUITE_P( DataSource{.identifier = "solovev_no_axis", .tolerance = 5.0e-16, .iter2_to_test = {1}}, + DataSource{.identifier = "solovev_free_bdy", + .tolerance = 5.0e-16, + .iter2_to_test = {1}}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 1.0e-14, .iter2_to_test = {1}}, @@ -282,6 +285,7 @@ INSTANTIATE_TEST_SUITE_P( TestVmec, EvolveTest, Values(DataSource{.identifier = "solovev", .tolerance = 1.0e-15}, DataSource{.identifier = "solovev_no_axis", .tolerance = 1.0e-15}, + DataSource{.identifier = "solovev_free_bdy", .tolerance = 2.0e-15}, DataSource{.identifier = "cth_like_fixed_bdy", .tolerance = 2.0e-14}, DataSource{.identifier = "cth_like_fixed_bdy_nzeta_37", .tolerance = 2.0e-14},