aboutsummaryrefslogtreecommitdiff
path: root/src/rotatingsymmetry180.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rotatingsymmetry180.c')
-rw-r--r--src/rotatingsymmetry180.c34
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 */