diff options
author | schnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2008-04-07 02:41:08 +0000 |
---|---|---|
committer | schnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2008-04-07 02:41:08 +0000 |
commit | 2802d63d6f953d6d53886f653d5a74ff6b2f1319 (patch) | |
tree | 3a4a4c75f911200309f27858f6302cac81afc990 /src | |
parent | 52662f132be42e5f8d77f3b9f7c4fd31fe47ff1c (diff) |
Add a new function CCTK_MaxGFDim to the flesh which returns the
(maximum) dimension of all grid functions.
Cactus can currently not handle the case where one uses grid arrays of
dimension D while grid functions have a dimension less than D. During
initialisation, Cactus sets cctk_dim to the largest dimension of all
grid variables in all active thorns. This is arguably wrong; cctk_dim
should be set to the (maximum) dimension of the grid functions.
This patch adds a new function CCTK_MaxGFDim to the flesh which
returns the (maximum) dimension of all grid functions. This function
is used to set cctk_dim.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4476 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src')
-rw-r--r-- | src/comm/CactusDefaultComm.c | 4 | ||||
-rw-r--r-- | src/include/cctk_Groups.h | 1 | ||||
-rw-r--r-- | src/main/Groups.c | 27 |
3 files changed, 30 insertions, 2 deletions
diff --git a/src/comm/CactusDefaultComm.c b/src/comm/CactusDefaultComm.c index b4b3741e..1cbc82e3 100644 --- a/src/comm/CactusDefaultComm.c +++ b/src/comm/CactusDefaultComm.c @@ -112,7 +112,7 @@ int CactusDefaultInterpGridArrays (const cGH *GH, int N_dims, @desc Default cactus SetupGH routine. @enddesc - @calls CCTK_MaxDim + @calls CCTK_MaxGFDim CCTK_NumVars CCTK_MaxTimeLevelsVI CCTK_NumGroups @@ -157,7 +157,7 @@ cGH *CactusDefaultSetupGH(tFleshConfig *config, int convergence_level) thisGH = malloc(sizeof(cGH)); if(thisGH) { - thisGH->cctk_dim = CCTK_MaxDim(); + thisGH->cctk_dim = CCTK_MaxGFDim(); /* Need this to be at least one otherwise the memory allocation will fail */ cctk_dim = thisGH->cctk_dim; diff --git a/src/include/cctk_Groups.h b/src/include/cctk_Groups.h index 9b44008c..0d101a76 100644 --- a/src/include/cctk_Groups.h +++ b/src/include/cctk_Groups.h @@ -64,6 +64,7 @@ int CCTK_GroupTypeI(int group); const char *CCTK_ImpFromVarI(int var); int CCTK_MaxDim(void); +int CCTK_MaxGFDim(void); int CCTK_NumGroups(void); diff --git a/src/main/Groups.c b/src/main/Groups.c index 7596dcb8..40d80a29 100644 --- a/src/main/Groups.c +++ b/src/main/Groups.c @@ -82,6 +82,8 @@ void CCTK_FCALL CCTK_FNAME (CCTK_ImpFromVarI) (int *nchars, int *var, ONE_FORTSTRING_ARG); void CCTK_FCALL CCTK_FNAME (CCTK_MaxDim) (int *dim); +void CCTK_FCALL CCTK_FNAME (CCTK_MaxGFDim) + (int *dim); void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevels) (int *num, ONE_FORTSTRING_ARG); void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsGI) @@ -454,6 +456,31 @@ void CCTK_FCALL CCTK_FNAME (CCTK_MaxDim) /*@@ + @routine CCTK_MaxGFDim + @date 2008-03-19 + @author Erik Schnetter + @desc + Gets the maximum dimension of all grid function groups. + @enddesc + + @returntype int + @returndesc + the maximum dimension of all grid function groups + @endreturndesc +@@*/ +int CCTK_MaxGFDim (void) +{ + return (gfdim); +} + +void CCTK_FCALL CCTK_FNAME (CCTK_MaxGFDim) + (int *dim) +{ + *dim = CCTK_MaxGFDim (); +} + + + /*@@ @routine CCTK_NumVars @date Mon Feb 8 12:04:50 1999 @author Tom Goodale |