aboutsummaryrefslogtreecommitdiff
path: root/schedule.ccl
diff options
context:
space:
mode:
authorhawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2004-09-06 17:12:28 +0000
committerhawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2004-09-06 17:12:28 +0000
commitfb30868c8bf1234fa22900f2940751efde306679 (patch)
tree8ff8ed0f760e63cc6505955e234cab02ba2e30fe /schedule.ccl
parent7b063721ba62b28bcc768c1c188b7a95cb5d7cc5 (diff)
Runge-Kutta (Fehlberg) 45 with error estimation.
Fourth order accurate evolution with an additional fifth order step for error estimation. How much sense the error makes is unclear to me, but hey. For the moment the error is stored in an internal MoL array ErrorEstimate; there is one per evolved variable. At a later point this may be moved out to user thorns who can register their own etc. As the implementation uses 6 evaluations of the RHS (necessary) and 6 levels of scratch space (one more than necessary - laziness kicked in) then this is very expensive. This is a partial fix for PR/1840. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@74 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
Diffstat (limited to 'schedule.ccl')
-rw-r--r--schedule.ccl9
1 files changed, 9 insertions, 0 deletions
diff --git a/schedule.ccl b/schedule.ccl
index 8f2fcf6..43dc1f9 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -513,6 +513,15 @@ else if (CCTK_Equals(ODE_Method,"RK3"))
LANG: C
} "Updates calculated with the efficient Runge-Kutta 3 method"
}
+else if (CCTK_Equals(ODE_Method,"RK45"))
+{
+ STORAGE: ErrorEstimate
+
+ schedule MoL_RK45Add AS MoL_Add IN MoL_Step AFTER MoL_CalcRHS BEFORE MoL_PostStep
+ {
+ LANG: C
+ } "Updates calculated with the Runge-Kutta 45 method"
+}
else if (CCTK_Equals(ODE_Method,"ICN"))
{
schedule MoL_ICNAdd AS MoL_Add IN MoL_Step AFTER MoL_CalcRHS BEFORE MoL_PostStep