diff options
author | schnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787> | 2006-05-12 18:31:36 +0000 |
---|---|---|
committer | schnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787> | 2006-05-12 18:31:36 +0000 |
commit | 55545012deaf9c62420da05a0fff3f252e431f96 (patch) | |
tree | 167660523da7f6d229f350242a309214900bc3a8 /src/rotatingsymmetry180.c | |
parent | 58a3ab232f5bc365cd4f9a76659d6830e892a7f8 (diff) |
Handle 4-tensors as well.
Correct a wrong data type in a warning statement.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/RotatingSymmetry180/trunk@31 20f44201-0f4f-0410-9130-e5fc2714a787
Diffstat (limited to 'src/rotatingsymmetry180.c')
-rw-r--r-- | src/rotatingsymmetry180.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/rotatingsymmetry180.c b/src/rotatingsymmetry180.c index 13c6ab9..7404770 100644 --- a/src/rotatingsymmetry180.c +++ b/src/rotatingsymmetry180.c @@ -160,12 +160,24 @@ int BndRot180VI (cGH const * restrict const cctkGH, if (CCTK_EQUALS (tensortypealias, "scalar")) { paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; + } else if (CCTK_EQUALS (tensortypealias, "4scalar")) { + paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; } else if (CCTK_EQUALS (tensortypealias, "u") || CCTK_EQUALS (tensortypealias, "d")) { assert (numvars == 3); paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; paritiess[var][index] = -1; + } else if (CCTK_EQUALS (tensortypealias, "4u") + || CCTK_EQUALS (tensortypealias, "4d")) + { + assert (numvars == 4); + if (index == 0) { + paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; + } else { + paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; + paritiess[var][index-1] = -1; + } } else if (CCTK_EQUALS (tensortypealias, "uu_sym") || CCTK_EQUALS (tensortypealias, "dd_sym")) { assert (numvars == 6); @@ -179,6 +191,26 @@ int BndRot180VI (cGH const * restrict const cctkGH, case 5: break; default: assert(0); } + } else if (CCTK_EQUALS (tensortypealias, "4uu_sym") + || CCTK_EQUALS (tensortypealias, "4dd_sym")) { + assert (numvars == 10); + if (index == 0) { + paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; + } else if (index < 4) { + paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; + paritiess[var][index-1] = -1; + } else { + paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; + switch (index-4) { + case 0: break; + case 1: paritiess[var][0] = paritiess[var][1] = -1; break; + case 2: paritiess[var][0] = paritiess[var][2] = -1; break; + case 3: break; + case 4: paritiess[var][1] = paritiess[var][2] = -1; break; + case 5: break; + default: assert(0); + } + } } else { char * groupname = CCTK_GroupName(gis[var]); assert (groupname); @@ -283,7 +315,7 @@ int BndRot180VI (cGH const * restrict const cctkGH, "The group needs to have at least %d grid points in that direction.", CCTK_GroupNameFromVarI(vis[var]), "xyz"[dir], data.gsh[dir], data.nghostzones[dir], - 2*data.nghostzones[dir] + offset); + 2*data.nghostzones[dir] + offset[dir]); } /* Allocate slab transfer description */ |