diff --git a/Z4co/param.ccl b/Z4co/param.ccl index 956f53c4..8de564d9 100644 --- a/Z4co/param.ccl +++ b/Z4co/param.ccl @@ -5,8 +5,17 @@ CCTK_INT deriv_order "Order of spatial finite differencing" STEERABLE=never 2 :: "Second order finite difference" 4 :: "Fourth order finite difference" 6 :: "Sixth order finite difference" + 8 :: "Eighth order finite difference" } 4 +CCTK_INT diss_order "Order of Kreiss-Oliger dissipation" STEERABLE=never +{ + 3 :: "Third order KO dissipation" + 5 :: "Fifth order KO dissipation" + 7 :: "Seventh order KO dissipation" + 9 :: "Ninth order KO dissipation" +} 5 + BOOLEAN calc_ADM_vars "Calculate ADM variables" STEERABLE=recover { } yes diff --git a/Z4co/src/rhs.cxx b/Z4co/src/rhs.cxx index 80852dc2..16fa0d65 100644 --- a/Z4co/src/rhs.cxx +++ b/Z4co/src/rhs.cxx @@ -256,16 +256,23 @@ extern "C" void Z4co_RHS(CCTK_ARGUMENTS) { vreal (*calc_diss)(const GF3D2 &, const vbool &, const vect &, const vect &); - switch (deriv_order) { - case 2: { + switch (diss_order) { + case 3: { calc_diss = &Derivs::calc_diss<2>; break; } - case 4: - case 6: { + case 5: { calc_diss = &Derivs::calc_diss<4>; break; } + case 7: { + calc_diss = &Derivs::calc_diss<6>; + break; + } + case 9: { + calc_diss = &Derivs::calc_diss<8>; + break; + } default: assert(0); }