diff options
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 */ |