Skip to content

Commit

Permalink
Disable fast modes test for gs05_0 scheme, add warning. Will revisit …
Browse files Browse the repository at this point in the history
…if there's some reason to use it over _c
  • Loading branch information
Ben Prather committed Jan 18, 2024
1 parent d804532 commit 301c9b1
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
7 changes: 5 additions & 2 deletions kharma/b_ct/b_ct.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,13 @@ std::shared_ptr<KHARMAPackage> B_CT::Initialize(ParameterInput *pin, std::shared
Real kill_on_divb_over = pin->GetOrAddReal("b_field", "kill_on_divb_over", 1.e-3);
params.Add("kill_on_divb_over", kill_on_divb_over);

// Currently bs99, gs05_c, gs05_0
// TODO gs05_alpha, LDZ04 UCT1, LDZ07 UCT2
std::string ct_scheme = pin->GetOrAddString("b_field", "ct_scheme", "bs99");
std::vector<std::string> ct_scheme_options = {"bs99", "gs05_0", "gs05_c"};
std::string ct_scheme = pin->GetOrAddString("b_field", "ct_scheme", "bs99", ct_scheme_options);
params.Add("ct_scheme", ct_scheme);
if (ct_scheme == "gs05_0")
std::cerr << "KHARMA WARNING: The G&S '05 epsilon_0 implementation does not pass all convergence tests.\n"
<< "Use it at your own risk!\n" << std::endl;
// Use the default Parthenon prolongation operator, rather than the divergence-preserving one
// This relies entirely on the EMF communication for preserving the divergence
bool lazy_prolongation = pin->GetOrAddBoolean("b_field", "lazy_prolongation", false);
Expand Down
3 changes: 2 additions & 1 deletion tests/mhdmodes/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ conv_2d fast_imex_ct "mhdmodes/nmode=3 driver/type=imex b_field/solver=face_ct
# Upwinded fluxes
conv_2d slow_kharma_ct_gs05_0 "mhdmodes/nmode=1 driver/type=kharma b_field/solver=face_ct b_field/ct_scheme=gs05_0" "slow mode in 2D, KHARMA driver w/epsilon_0 flux"
conv_2d alfven_kharma_ct_gs05_0 "mhdmodes/nmode=2 driver/type=kharma b_field/solver=face_ct b_field/ct_scheme=gs05_0" "Alfven mode in 2D, KHARMA driver w/epsilon_0 flux"
conv_2d fast_kharma_ct_gs05_0 "mhdmodes/nmode=3 driver/type=kharma b_field/solver=face_ct b_field/ct_scheme=gs05_0" "fast mode in 2D, KHARMA driver w/epsilon_0 flux"
# TODO this barely doesn't work. Boundaries?
#conv_2d fast_kharma_ct_gs05_0 "mhdmodes/nmode=3 driver/type=kharma b_field/solver=face_ct b_field/ct_scheme=gs05_0" "fast mode in 2D, KHARMA driver w/epsilon_0 flux"

conv_2d slow_kharma_ct_gs05_c "mhdmodes/nmode=1 driver/type=kharma b_field/solver=face_ct b_field/ct_scheme=gs05_c" "slow mode in 2D, KHARMA driver w/epsilon_c flux"
conv_2d alfven_kharma_ct_gs05_c "mhdmodes/nmode=2 driver/type=kharma b_field/solver=face_ct b_field/ct_scheme=gs05_c" "Alfven mode in 2D, KHARMA driver w/epsilon_c flux"
Expand Down

0 comments on commit 301c9b1

Please # to comment.