From d2581020e698490172cee2cdea2e2deb43bf9251 Mon Sep 17 00:00:00 2001 From: schnetter Date: Sun, 11 Dec 2005 18:49:18 +0000 Subject: Add const and restrict qualifiers to the pointers. Simplify some complex arithmetic. Initialise the error variable in the RK45 integrator only after the last iteration. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@104 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b --- src/RK3.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) (limited to 'src/RK3.c') diff --git a/src/RK3.c b/src/RK3.c index b8a8b03..68329a2 100644 --- a/src/RK3.c +++ b/src/RK3.c @@ -73,23 +73,21 @@ void MoL_RK3Add(CCTK_ARGUMENTS) CCTK_INT index, var; CCTK_INT totalsize; - CCTK_REAL *OldVar; - CCTK_REAL *UpdateVar; - CCTK_REAL *RHSVar; + CCTK_REAL const * restrict OldVar; + CCTK_REAL * restrict UpdateVar; + CCTK_REAL const * restrict RHSVar; /* FIXME */ #ifdef MOLDOESCOMPLEX - CCTK_COMPLEX *OldComplexVar; - CCTK_COMPLEX *UpdateComplexVar; - CCTK_COMPLEX *RHSComplexVar; + CCTK_COMPLEX const * restrict OldComplexVar; + CCTK_COMPLEX * restrict UpdateComplexVar; + CCTK_COMPLEX const * restrict RHSComplexVar; CCTK_COMPLEX Complex_Delta_Time = CCTK_Cmplx(CCTK_DELTA_TIME, 0); CCTK_COMPLEX Complex_Half = CCTK_Cmplx(0.5, 0); - CCTK_COMPLEX Complex_Third = CCTK_CmplxDiv(CCTK_Cmplx(1.0, 0), - CCTK_Cmplx(3.0,0)); - CCTK_COMPLEX Complex_TwoThird = CCTK_CmplxDiv(CCTK_Cmplx(2.0, 0), - CCTK_Cmplx(3.0,0)); + CCTK_COMPLEX Complex_Third = CCTK_Cmplx(1.0/3.0, 0); + CCTK_COMPLEX Complex_TwoThird = CCTK_Cmplx(2.0/3.0, 0); CCTK_COMPLEX Complex_Quarter = CCTK_Cmplx(0.25, 0); CCTK_COMPLEX Complex_ThreeQuarter = CCTK_Cmplx(0.75, 0); @@ -185,11 +183,11 @@ void MoL_RK3Add(CCTK_ARGUMENTS) { for (var = 0; var < MoLNumEvolvedVariables; var++) { - OldVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 1, + 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, + RHSVar = (CCTK_REAL const*)CCTK_VarDataPtrI(cctkGH, 0, RHSVariableIndex[var]); for (index = 0; index < totalsize; index++) @@ -202,11 +200,11 @@ void MoL_RK3Add(CCTK_ARGUMENTS) for (var = 0; var < MoLNumEvolvedArrayVariables; var++) { - OldVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 1, + OldVar = (CCTK_REAL const*)CCTK_VarDataPtrI(cctkGH, 1, EvolvedArrayVariableIndex[var]); UpdateVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 0, EvolvedArrayVariableIndex[var]); - RHSVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 0, + RHSVar = (CCTK_REAL const*)CCTK_VarDataPtrI(cctkGH, 0, RHSArrayVariableIndex[var]); groupindex = CCTK_GroupIndexFromVarI(EvolvedArrayVariableIndex[var]); ierr = CCTK_GroupDynamicData(cctkGH, groupindex, @@ -237,11 +235,11 @@ void MoL_RK3Add(CCTK_ARGUMENTS) for (var = 0; var < MoLNumEvolvedComplexVariables; var++) { - OldComplexVar = (CCTK_COMPLEX*)CCTK_VarDataPtrI(cctkGH, 1, + OldComplexVar = (CCTK_COMPLEX const*)CCTK_VarDataPtrI(cctkGH, 1, EvolvedComplexVariableIndex[var]); UpdateComplexVar = (CCTK_COMPLEX*)CCTK_VarDataPtrI(cctkGH, 0, EvolvedComplexVariableIndex[var]); - RHSComplexVar = (CCTK_COMPLEX*)CCTK_VarDataPtrI(cctkGH, 0, + RHSComplexVar = (CCTK_COMPLEX const*)CCTK_VarDataPtrI(cctkGH, 0, RHSComplexVariableIndex[var]); for (index = 0; index < totalsize; index++) @@ -266,11 +264,11 @@ void MoL_RK3Add(CCTK_ARGUMENTS) for (var = 0; var < MoLNumEvolvedVariables; var++) { - OldVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 1, + 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, + RHSVar = (CCTK_REAL const*)CCTK_VarDataPtrI(cctkGH, 0, RHSVariableIndex[var]); for (index = 0; index < totalsize; index++) @@ -282,11 +280,11 @@ void MoL_RK3Add(CCTK_ARGUMENTS) for (var = 0; var < MoLNumEvolvedArrayVariables; var++) { - OldVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 1, + OldVar = (CCTK_REAL const*)CCTK_VarDataPtrI(cctkGH, 1, EvolvedArrayVariableIndex[var]); UpdateVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 0, EvolvedArrayVariableIndex[var]); - RHSVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 0, + RHSVar = (CCTK_REAL const*)CCTK_VarDataPtrI(cctkGH, 0, RHSArrayVariableIndex[var]); groupindex = CCTK_GroupIndexFromVarI(EvolvedArrayVariableIndex[var]); @@ -318,11 +316,11 @@ void MoL_RK3Add(CCTK_ARGUMENTS) for (var = 0; var < MoLNumEvolvedComplexVariables; var++) { - OldComplexVar = (CCTK_COMPLEX*)CCTK_VarDataPtrI(cctkGH, 1, + OldComplexVar = (CCTK_COMPLEX const*)CCTK_VarDataPtrI(cctkGH, 1, EvolvedComplexVariableIndex[var]); UpdateComplexVar = (CCTK_COMPLEX*)CCTK_VarDataPtrI(cctkGH, 0, EvolvedComplexVariableIndex[var]); - RHSComplexVar = (CCTK_COMPLEX*)CCTK_VarDataPtrI(cctkGH, 0, + RHSComplexVar = (CCTK_COMPLEX const*)CCTK_VarDataPtrI(cctkGH, 0, RHSComplexVariableIndex[var]); for (index = 0; index < totalsize; index++) -- cgit v1.2.3