aboutsummaryrefslogtreecommitdiff
path: root/src/RK45.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/RK45.c')
-rw-r--r--src/RK45.c50
1 files changed, 28 insertions, 22 deletions
diff --git a/src/RK45.c b/src/RK45.c
index b2f6c88..f92159a 100644
--- a/src/RK45.c
+++ b/src/RK45.c
@@ -74,11 +74,11 @@ void MoL_RK45Add(CCTK_ARGUMENTS)
CCTK_INT index, var, scratchstep, alphaindex, scratchindex;
CCTK_INT totalsize;
- CCTK_REAL *UpdateVar;
- CCTK_REAL *RHSVar;
- CCTK_REAL *ScratchVar;
- CCTK_REAL *ErrorVar;
- CCTK_REAL *OldVar;
+ CCTK_REAL * restrict UpdateVar;
+ CCTK_REAL const * restrict RHSVar;
+ CCTK_REAL * restrict ScratchVar;
+ CCTK_REAL * restrict ErrorVar;
+ CCTK_REAL const * restrict OldVar;
CCTK_INT arrayscratchlocation;
@@ -126,8 +126,8 @@ void MoL_RK45Add(CCTK_ARGUMENTS)
UpdateVar = (CCTK_REAL *)CCTK_VarDataPtrI(cctkGH, 0,
EvolvedVariableIndex[var]);
- RHSVar = (CCTK_REAL *)CCTK_VarDataPtrI(cctkGH, 0,
- RHSVariableIndex[var]);
+ RHSVar = (CCTK_REAL const *)CCTK_VarDataPtrI(cctkGH, 0,
+ RHSVariableIndex[var]);
ScratchVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 0,
CCTK_FirstVarIndex("MOL::SCRATCHSPACE")
+ var
@@ -143,29 +143,28 @@ void MoL_RK45Add(CCTK_ARGUMENTS)
for (var = 0; var < MoLNumEvolvedVariables; var++)
{
- OldVar = (CCTK_REAL *)CCTK_VarDataPtrI(cctkGH, 1,
- EvolvedVariableIndex[var]);
+ OldVar = (CCTK_REAL const *)CCTK_VarDataPtrI(cctkGH, 1,
+ EvolvedVariableIndex[var]);
UpdateVar = (CCTK_REAL *)CCTK_VarDataPtrI(cctkGH, 0,
EvolvedVariableIndex[var]);
- RHSVar = (CCTK_REAL *)CCTK_VarDataPtrI(cctkGH, 0,
- CCTK_FirstVarIndex("MOL::SCRATCHSPACE")
- + var
- + MoL_Num_Evolved_Vars *
- (MoL_Intermediate_Steps -
- (*MoL_Intermediate_Step)));
+ RHSVar = (CCTK_REAL const *)CCTK_VarDataPtrI(cctkGH, 0,
+ CCTK_FirstVarIndex("MOL::SCRATCHSPACE")
+ + var
+ + MoL_Num_Evolved_Vars *
+ (MoL_Intermediate_Steps -
+ (*MoL_Intermediate_Step)));
ErrorVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 0,
CCTK_FirstVarIndex("MOL::ERRORESTIMATE")
+ var);
-
- for (index = 0; index < totalsize; index++)
- {
- UpdateVar[index] = OldVar[index];
- ErrorVar[index] = 0;
- }
-
+
if (*MoL_Intermediate_Step - 1)
{
+ for (index = 0; index < totalsize; index++)
+ {
+ UpdateVar[index] = OldVar[index];
+ }
+
for (scratchstep = 0;
scratchstep < MoL_Intermediate_Steps - (*MoL_Intermediate_Step) + 1;
scratchstep++)
@@ -191,6 +190,13 @@ void MoL_RK45Add(CCTK_ARGUMENTS)
}
else
{
+
+ for (index = 0; index < totalsize; index++)
+ {
+ UpdateVar[index] = OldVar[index];
+ ErrorVar[index] = 0;
+ }
+
for (scratchstep = 0; scratchstep < 6; scratchstep++)
{