From 0863f0decdf6024f548f6178ce6221bc1a6fa722 Mon Sep 17 00:00:00 2001 From: schnetter Date: Sun, 11 Dec 2005 18:53:12 +0000 Subject: Remember the variable index of the scratch variables. This saves calling CCTK_FirstVarIndex during each MoL iteration. This function is expensive, as it performs case insensitive string comparisons, and it showed up high on a profile of some of the Mexico tests, which integrate small domains over long times. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@105 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b --- src/GenericRK.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/GenericRK.c b/src/GenericRK.c index 196c83e..60648f1 100644 --- a/src/GenericRK.c +++ b/src/GenericRK.c @@ -101,7 +101,12 @@ void MoL_GenericRKAdd(CCTK_ARGUMENTS) { totalsize *= cctk_lsh[arraydim]; } - + + if (scratchspace_firstindex == -99) + { + scratchspace_firstindex = CCTK_FirstVarIndex("MOL::SCRATCHSPACE"); + } + beta = RKBetaCoefficients[MoL_Intermediate_Steps - (*MoL_Intermediate_Step)]; @@ -176,7 +181,7 @@ void MoL_GenericRKAdd(CCTK_ARGUMENTS) scratchindex) * totalsize]; */ ScratchVar = CCTK_VarDataPtrI(cctkGH, 0, - CCTK_FirstVarIndex("MOL::SCRATCHSPACE") + scratchspace_firstindex + var + MoL_Num_Evolved_Vars * scratchindex); #ifdef MOLDEBUG @@ -231,7 +236,7 @@ void MoL_GenericRKAdd(CCTK_ARGUMENTS) (*MoL_Intermediate_Step)) * totalsize]; */ ScratchVar = CCTK_VarDataPtrI(cctkGH, 0, - CCTK_FirstVarIndex("MOL::SCRATCHSPACE") + scratchspace_firstindex + var + MoL_Num_Evolved_Vars * (MoL_Intermediate_Steps - (*MoL_Intermediate_Step))); #ifdef MOLDEBUG -- cgit v1.2.3