diff options
author | hawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b> | 2006-01-23 10:39:58 +0000 |
---|---|---|
committer | hawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b> | 2006-01-23 10:39:58 +0000 |
commit | c05ef7225ab51b7e66e884cf4d53805e8d261982 (patch) | |
tree | 5885d1761161ada1381942a09dfff646f872fc9c /src/ParamCheck.c | |
parent | 0863f0decdf6024f548f6178ce6221bc1a6fa722 (diff) |
Peter Diener's RK65 and RK87 adaptive timestep integrators.
As yet not altered to do grid arrays.
As with RK45, adaptive timestepping does not work with mesh refinement.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@106 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
Diffstat (limited to 'src/ParamCheck.c')
-rw-r--r-- | src/ParamCheck.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/ParamCheck.c b/src/ParamCheck.c index 3bd1c21..272117b 100644 --- a/src/ParamCheck.c +++ b/src/ParamCheck.c @@ -136,15 +136,31 @@ int MoL_ParamCheck(CCTK_ARGUMENTS) "and the number of scratch levels at least 6."); } + if ( (CCTK_Equals(ODE_Method, "RK65")) && + ( !((MoL_Intermediate_Steps == 8)||(MoL_Num_Scratch_Levels > 7)) ) ) + { + CCTK_PARAMWARN("When using the RK65 evolver the " + "number of intermediate steps must be 8 " + "and the number of scratch levels at least 8."); + } + + if ( (CCTK_Equals(ODE_Method, "RK87")) && + ( !((MoL_Intermediate_Steps == 13)||(MoL_Num_Scratch_Levels > 12)) ) ) + { + CCTK_PARAMWARN("When using the RK87 evolver the " + "number of intermediate steps must be 13 " + "and the number of scratch levels at least 13."); + } + if (adaptive_stepsize) { - if (CCTK_Equals(ODE_Method, "RK45")) + if (CCTK_Equals(ODE_Method, "RK45")||CCTK_Equals(ODE_Method, "RK65")||CCTK_Equals(ODE_Method, "RK87")) { /* everything is fine, do nothing */ } else { - CCTK_PARAMWARN("Adaptive time step sizes are only possible with the RK45 solver"); + CCTK_PARAMWARN("Adaptive time step sizes are only possible with the RK45, RK65 and RK87 solvers"); } } |