diff options
Diffstat (limited to 'src/LoadAware.c')
-rw-r--r-- | src/LoadAware.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/LoadAware.c b/src/LoadAware.c index e1f04ec..cd31e18 100644 --- a/src/LoadAware.c +++ b/src/LoadAware.c @@ -133,6 +133,11 @@ int PUGH_SetPartitionInfo (int dim, const char *partition_info[]) @enddesc @calls PUGH_GetSliceSizes + @var is_gf + @vdesc flag indicating that bounds are to be set up for a grid function + @vtype int + @vio in + @endvar @var dim @vdesc dimension to set up bounds for @vtype int @@ -160,7 +165,7 @@ int PUGH_SetPartitionInfo (int dim, const char *partition_info[]) -1: invalid dimension @endreturndesc @@*/ -int PUGH_GetBounds (int dim, int *bounds[], int nprocs[], int nsize[]) +int PUGH_GetBounds (int is_gf, int dim, int *bounds[], int nprocs[], int nsize[]) { DECLARE_CCTK_PARAMETERS int i, retval, manual, external_manual; @@ -176,7 +181,7 @@ int PUGH_GetBounds (int dim, int *bounds[], int nprocs[], int nsize[]) partition_info = external_manual ? (const char *) partition_1D[0] : partition_1d_x; PUGH_GetSliceSizes (nprocs[0], nsize[0], partition_info, &bounds[0], - manual || external_manual); + is_gf && (manual || external_manual)); } else if (dim == 2) { @@ -184,12 +189,12 @@ int PUGH_GetBounds (int dim, int *bounds[], int nprocs[], int nsize[]) partition_info = external_manual ? (const char *) partition_2D[0] : partition_2d_x; PUGH_GetSliceSizes (nprocs[0], nsize[0], partition_info, &bounds[0], - manual || external_manual); + is_gf && (manual || external_manual)); external_manual = partition_2D[1] != NULL; partition_info = external_manual ? (const char *) partition_2D[1] : partition_2d_y; PUGH_GetSliceSizes (nprocs[1], nsize[1], partition_info, &bounds[1], - manual || external_manual); + is_gf && (manual || external_manual)); } else if (dim == 3) { @@ -197,21 +202,21 @@ int PUGH_GetBounds (int dim, int *bounds[], int nprocs[], int nsize[]) partition_info = external_manual ? (const char *) partition_3D[0] : partition_3d_x; PUGH_GetSliceSizes (nprocs[0], nsize[0], partition_info, &bounds[0], - manual || external_manual); + is_gf && (manual || external_manual)); external_manual = partition_3D[1] != NULL; partition_info = external_manual ? (const char *) partition_3D[1] : partition_3d_y; PUGH_GetSliceSizes (nprocs[1], nsize[1], partition_info, &bounds[1], - manual || external_manual); + is_gf && (manual || external_manual)); external_manual = partition_3D[2] != NULL; partition_info = external_manual ? (const char *) partition_3D[2] : partition_3d_z; PUGH_GetSliceSizes (nprocs[2], nsize[2], partition_info, &bounds[2], - manual || external_manual); + is_gf && (manual || external_manual)); } else { - if (manual) + if (is_gf && manual) { CCTK_WARN (1, "Only 1D, 2D, and 3D supported in manual topology setup"); retval = -1; |