aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorallen <allen@b61c5cb5-eaca-4651-9a7a-d64986f99364>2000-04-15 13:36:35 +0000
committerallen <allen@b61c5cb5-eaca-4651-9a7a-d64986f99364>2000-04-15 13:36:35 +0000
commitc5e2d5918098f8f2e027b0d9793daad273d8c31d (patch)
tree9a4f29e7a3de94e3325effb2c2ebcd831a5b82cb /src
parent13e07fb82bf319483aa4cb2687a14069886d871d (diff)
Fixing how the pointer to GFExtras is found.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGH/trunk@200 b61c5cb5-eaca-4651-9a7a-d64986f99364
Diffstat (limited to 'src')
-rw-r--r--src/Reduction.c86
1 files changed, 42 insertions, 44 deletions
diff --git a/src/Reduction.c b/src/Reduction.c
index a875673..440d365 100644
--- a/src/Reduction.c
+++ b/src/Reduction.c
@@ -1,11 +1,9 @@
/*@@
@file Reduction.c
@date Thu Apr 3 11:54:53 1997
- @author Paul Walker
+ @author Thomas Radke, Paul Walker
@desc
- Various MPI reduction operators for maxima, minima, norms
- and the like on grid functions. These are all pretty
- straighforward thanks to the miracle of MPI_Allreduce.
+ Various MPI reduction operators.
@enddesc
@version $Header$
@@*/
@@ -734,7 +732,7 @@ void pugh_ReduceMinVal (cGH *GH, int proc, int nOutVals,
pughGH = pugh_pGH (GH);
- nPoints = pughGH->GFExtras[pughGH->dim-1]->npoints;
+ nPoints = pughGH->GFExtras[0]->npoints;
if (nOutVals != 1)
{
if (nOutVals != nPoints)
@@ -865,7 +863,7 @@ void pugh_ReduceMaxVal (cGH *GH, int proc, int nOutVals,
pughGH = pugh_pGH (GH);
- nPoints = pughGH->GFExtras[pughGH->dim-1]->npoints;
+ nPoints = pughGH->GFExtras[0]->npoints;
if (nOutVals != 1)
{
if (nOutVals != nPoints)
@@ -1901,7 +1899,7 @@ int pugh_Norm1_GF (cGH *GH, int index, int proc, CCTK_REAL *outVal)
*outVal = 0.0;
#ifndef CCTK_MPI
- for (ii = 0; ii < pughGH->GFExtras[pughGH->dim-1]->npoints; ii++)
+ for (ii = 0; ii < pughGH->GFExtras[0]->npoints; ii++)
{
if (GA->vtype == CCTK_VARIABLE_CHAR)
{
@@ -1965,7 +1963,7 @@ int pugh_Norm1_GF (cGH *GH, int index, int proc, CCTK_REAL *outVal)
}
}
- tnp = pughGH->GFExtras[pughGH->dim-1]->npoints;
+ tnp = pughGH->GFExtras[0]->npoints;
#else
@@ -1973,81 +1971,81 @@ int pugh_Norm1_GF (cGH *GH, int index, int proc, CCTK_REAL *outVal)
np = 0;
local_result = 0.0;
- for (kk=pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][0][2];
- kk < pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][1][2];
+ for (kk=pughGH->GFExtras[0]->ownership[GA->stagger][0][2];
+ kk < pughGH->GFExtras[0]->ownership[GA->stagger][1][2];
kk ++)
{
- for (jj = pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][0][1];
- jj < pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][1][1];
+ for (jj = pughGH->GFExtras[0]->ownership[GA->stagger][0][1];
+ jj < pughGH->GFExtras[0]->ownership[GA->stagger][1][1];
jj ++)
{
- for (ii = pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][0][0];
- ii < pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][1][0];
+ for (ii = pughGH->GFExtras[0]->ownership[GA->stagger][0][0];
+ ii < pughGH->GFExtras[0]->ownership[GA->stagger][1][0];
ii++, np++)
{
if (GA->vtype == CCTK_VARIABLE_CHAR)
{
local_result += /* CCTK_CHAR is unsigned */
- ((CCTK_CHAR *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)];
+ ((CCTK_CHAR *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)];
}
else if (GA->vtype == CCTK_VARIABLE_INT)
{
local_result +=
- ABS (((CCTK_INT *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ ABS (((CCTK_INT *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#ifdef CCTK_INT2
else if (GA->vtype == CCTK_VARIABLE_INT2)
{
local_result +=
- ABS (((CCTK_INT2 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ ABS (((CCTK_INT2 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
#ifdef CCTK_INT4
else if (GA->vtype == CCTK_VARIABLE_INT4)
{
local_result +=
- ABS (((CCTK_INT4 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ ABS (((CCTK_INT4 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
#ifdef CCTK_INT8
else if (GA->vtype == CCTK_VARIABLE_INT8)
{
local_result +=
- ABS (((CCTK_INT8 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ ABS (((CCTK_INT8 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
else if (GA->vtype == CCTK_VARIABLE_REAL)
{
local_result +=
- ABS (((CCTK_REAL *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ ABS (((CCTK_REAL *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#ifdef CCTK_REAL4
else if (GA->vtype == CCTK_VARIABLE_REAL4)
{
local_result +=
- ABS (((CCTK_REAL4 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ ABS (((CCTK_REAL4 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
#ifdef CCTK_REAL8
else if (GA->vtype == CCTK_VARIABLE_REAL8)
{
local_result +=
- ABS (((CCTK_REAL8 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ ABS (((CCTK_REAL8 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
#ifdef CCTK_REAL16
else if (GA->vtype == CCTK_VARIABLE_REAL16)
{
local_result +=
- ABS (((CCTK_REAL16 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ ABS (((CCTK_REAL16 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
else if (GA->vtype == CCTK_VARIABLE_COMPLEX)
{
local_result +=
sqrt(
- SQR((((CCTK_COMPLEX *)GA->data)[DATINDEX (pughGH->GFExtras[pughGH->dim-1],ii,jj,kk)]).Re)+
- SQR((((CCTK_COMPLEX *)GA->data)[DATINDEX (pughGH->GFExtras[pughGH->dim-1],ii,jj,kk)]).Im)
+ SQR((((CCTK_COMPLEX *)GA->data)[DATINDEX (pughGH->GFExtras[0],ii,jj,kk)]).Re)+
+ SQR((((CCTK_COMPLEX *)GA->data)[DATINDEX (pughGH->GFExtras[0],ii,jj,kk)]).Im)
);
}
else
@@ -2119,7 +2117,7 @@ int pugh_Norm2_GF (cGH *GH, int index, int proc, CCTK_REAL *outVal)
*outVal = 0.0;
#ifndef CCTK_MPI
- for (ii = 0; ii < pughGH->GFExtras[pughGH->dim-1]->npoints; ii++)
+ for (ii = 0; ii < pughGH->GFExtras[0]->npoints; ii++)
{
if (GA->vtype == CCTK_VARIABLE_CHAR)
{
@@ -2181,87 +2179,87 @@ int pugh_Norm2_GF (cGH *GH, int index, int proc, CCTK_REAL *outVal)
return (1);
}
}
- tnp = pughGH->GFExtras[pughGH->dim-1]->npoints;
+ tnp = pughGH->GFExtras[0]->npoints;
#else
/* MPI version depends heavily on the GFExtras->ownership array */
np = 0;
local_result = 0.0;
- for (kk=pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][0][2];
- kk < pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][1][2];
+ for (kk=pughGH->GFExtras[0]->ownership[GA->stagger][0][2];
+ kk < pughGH->GFExtras[0]->ownership[GA->stagger][1][2];
kk ++)
{
- for (jj = pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][0][1];
- jj < pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][1][1];
+ for (jj = pughGH->GFExtras[0]->ownership[GA->stagger][0][1];
+ jj < pughGH->GFExtras[0]->ownership[GA->stagger][1][1];
jj ++)
{
- for (ii = pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][0][0];
- ii < pughGH->GFExtras[pughGH->dim-1]->ownership[GA->stagger][1][0];
+ for (ii = pughGH->GFExtras[0]->ownership[GA->stagger][0][0];
+ ii < pughGH->GFExtras[0]->ownership[GA->stagger][1][0];
ii++, np++)
{
if (GA->vtype == CCTK_VARIABLE_CHAR)
{
local_result +=
- SQR (((CCTK_CHAR *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_CHAR *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
else if (GA->vtype == CCTK_VARIABLE_INT)
{
local_result +=
- SQR (((CCTK_INT *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_INT *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#ifdef CCTK_INT2
else if (GA->vtype == CCTK_VARIABLE_INT2)
{
local_result +=
- SQR (((CCTK_INT2 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_INT2 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
#ifdef CCTK_INT4
else if (GA->vtype == CCTK_VARIABLE_INT4)
{
local_result +=
- SQR (((CCTK_INT4 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_INT4 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
#ifdef CCTK_INT8
else if (GA->vtype == CCTK_VARIABLE_INT8)
{
local_result +=
- SQR (((CCTK_INT8 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_INT8 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
else if (GA->vtype == CCTK_VARIABLE_REAL)
{
local_result +=
- SQR (((CCTK_REAL *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_REAL *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#ifdef CCTK_REAL4
else if (GA->vtype == CCTK_VARIABLE_REAL4)
{
local_result +=
- SQR (((CCTK_REAL4 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_REAL4 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
#ifdef CCTK_REAL8
else if (GA->vtype == CCTK_VARIABLE_REAL8)
{
local_result +=
- SQR (((CCTK_REAL8 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_REAL8 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
#ifdef CCTK_REAL16
else if (GA->vtype == CCTK_VARIABLE_REAL16)
{
local_result +=
- SQR (((CCTK_REAL16 *) GA->data) [DATINDEX (pughGH->GFExtras[pughGH->dim-1], ii, jj, kk)]);
+ SQR (((CCTK_REAL16 *) GA->data) [DATINDEX (pughGH->GFExtras[0], ii, jj, kk)]);
}
#endif
else if (GA->vtype == CCTK_VARIABLE_COMPLEX)
{
local_result +=
- SQR((((CCTK_COMPLEX *)GA->data)[DATINDEX(pughGH->GFExtras[pughGH->dim-1],ii,jj,kk)]).Re)+
- SQR((((CCTK_COMPLEX *)GA->data)[DATINDEX(pughGH->GFExtras[pughGH->dim-1],ii,jj,kk)]).Im); } else {
+ SQR((((CCTK_COMPLEX *)GA->data)[DATINDEX(pughGH->GFExtras[0],ii,jj,kk)]).Re)+
+ SQR((((CCTK_COMPLEX *)GA->data)[DATINDEX(pughGH->GFExtras[0],ii,jj,kk)]).Im); } else {
CCTK_WARN (1, "Unknown variable type in pugh_Norm2_GF");
return (1);
}