diff options
author | allen <allen@5633253d-7678-4964-a54d-f87795f8ee59> | 2002-12-22 22:13:28 +0000 |
---|---|---|
committer | allen <allen@5633253d-7678-4964-a54d-f87795f8ee59> | 2002-12-22 22:13:28 +0000 |
commit | 7a4d027bf05e9c29ae5f654ab47e6283c6385984 (patch) | |
tree | 87fb1669612775c091f545bd9ab9e03edd3e3175 | |
parent | d0aff2cc6d5c896d7492f87c5da8e619e26364bf (diff) |
Patch for halting at cctk_final_time when using Courant timestep from Ian Hawke
Fixes CactusBase/1345
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Time/trunk@53 5633253d-7678-4964-a54d-f87795f8ee59
-rw-r--r-- | param.ccl | 5 | ||||
-rw-r--r-- | schedule.ccl | 7 | ||||
-rw-r--r-- | src/Courant.c | 8 |
3 files changed, 19 insertions, 1 deletions
@@ -1,6 +1,11 @@ # Parameter definitions for thorn Time # $Header$ +shares: cactus + +USES REAL cctk_final_time +USES KEYWORD terminate + restricted: KEYWORD timestep_method "Method for calculating timestep" diff --git a/schedule.ccl b/schedule.ccl index 65f8b4f..927b5a1 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -23,7 +23,12 @@ else if (CCTK_Equals (timestep_method, "courant_speed") || LANG: C } "Set timestep based on Courant condition" - schedule Time_Courant at CCTK_PRESTEP + schedule Time_Courant at CCTK_POSTINITIAL + { + LANG: C + } "Reset timestep each iteration" + + schedule Time_Courant at CCTK_POSTSTEP { LANG: C } "Reset timestep each iteration" diff --git a/src/Courant.c b/src/Courant.c index ade4e53..3d7451e 100644 --- a/src/Courant.c +++ b/src/Courant.c @@ -59,6 +59,14 @@ void Time_Courant(CCTK_ARGUMENTS) (*courant_wave_speed)/sqrt((double) cctk_dim); } + if (CCTK_Equals(terminate, "time")||CCTK_Equals(terminate, "both")) + { + if (cctkGH->cctk_time + *courant_dt > cctk_final_time) + { + *courant_dt = (1 + 1.e-10) * (cctk_final_time - cctkGH->cctk_time); + } + } + /* Set the Cactus timestep */ if (!timestep_outonly) |