aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhaas <rhaas@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2014-03-12 05:16:11 +0000
committerrhaas <rhaas@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2014-03-12 05:16:11 +0000
commitf1f9e12f1e8f47d231db406202fb0327039ac3d7 (patch)
treed0f99eb98e4c3f7169fdb83f1efb2df7e33124e2
parent9ed15d3d92d604fa6b4e3916656b94681b9f8812 (diff)
fix RK4 coefficients in multirate RK4-RK2 method
the bug was introduced in r178 and likely rendered the method second order accurate. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@217 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
-rw-r--r--src/RK4-RK2.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/RK4-RK2.c b/src/RK4-RK2.c
index dd1071f..c310b9d 100644
--- a/src/RK4-RK2.c
+++ b/src/RK4-RK2.c
@@ -85,7 +85,7 @@ void MoL_RK4_RK2_Add(CCTK_ARGUMENTS)
case 0:
for (int i=0; i<totalsize; ++i) {
CCTK_REAL const scaled_rhs = dt * RHSVar[i];
- ScratchVar[i] = OldVar[i] + 1.0/3.0 * scaled_rhs;
+ ScratchVar[i] = OldVar[i] + 1.0/6.0 * scaled_rhs;
UpdateVar[i] = OldVar[i] + 0.5 * scaled_rhs;
}
break;
@@ -93,7 +93,7 @@ void MoL_RK4_RK2_Add(CCTK_ARGUMENTS)
case 1:
for (int i=0; i<totalsize; ++i) {
CCTK_REAL const scaled_rhs = dt * RHSVar[i];
- ScratchVar[i] += 1.0/6.0 * scaled_rhs;
+ ScratchVar[i] += 1.0/3.0 * scaled_rhs;
UpdateVar[i] = OldVar[i] + 0.5 * scaled_rhs;
}
break;
@@ -101,7 +101,7 @@ void MoL_RK4_RK2_Add(CCTK_ARGUMENTS)
case 2:
for (int i=0; i<totalsize; ++i) {
CCTK_REAL const scaled_rhs = dt * RHSVar[i];
- ScratchVar[i] += 1.0/6.0 * scaled_rhs;
+ ScratchVar[i] += 1.0/3.0 * scaled_rhs;
UpdateVar[i] = OldVar[i] + scaled_rhs;
}
break;
@@ -110,7 +110,7 @@ void MoL_RK4_RK2_Add(CCTK_ARGUMENTS)
for (int i=0; i<totalsize; ++i) {
CCTK_REAL const scaled_rhs = dt * RHSVar[i];
/* ScratchVar contains OldVar */
- UpdateVar[i] = ScratchVar[i] + 1.0/3.0 * scaled_rhs;
+ UpdateVar[i] = ScratchVar[i] + 1.0/6.0 * scaled_rhs;
}
break;