aboutsummaryrefslogtreecommitdiff
path: root/src/apply.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/apply.c')
-rw-r--r--src/apply.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/apply.c b/src/apply.c
index 87d5eb3..278903a 100644
--- a/src/apply.c
+++ b/src/apply.c
@@ -178,7 +178,7 @@ BndReflectVI (cGH const * restrict const cctkGH,
int table;
char tensortypealias[1000];
enum tensortype { UNKNOWN,
- SCALAR, VECTOR, SYMTENSOR, TENSOR, WEYLSCALARS_REAL };
+ SCALAR, VECTOR, SYMTENSOR, TENSOR, WEYLSCALARS_REAL, MANUALCARTESIAN };
enum tensortype ttype;
CCTK_INT tensorparity;
int tcomponent;
@@ -191,7 +191,8 @@ BndReflectVI (cGH const * restrict const cctkGH,
int lsh[3], imin[3], imax[3], ioff[3], idir[3];
int parity;
-
+ int manual_parities[3];
+
int d;
int ierr;
@@ -346,6 +347,10 @@ BndReflectVI (cGH const * restrict const cctkGH,
assert (numvars == 10);
ttype = WEYLSCALARS_REAL;
tcomponent = vi - firstvar;
+ } else if (CCTK_EQUALS (tensortypealias, "ManualCartesian")) {
+ /* Reflection symmetries specified by hand */
+ ttype = MANUALCARTESIAN;
+ tcomponent = vi - firstvar;
} else {
char * groupname = CCTK_GroupName(gi);
assert (groupname);
@@ -371,6 +376,11 @@ BndReflectVI (cGH const * restrict const cctkGH,
case WEYLSCALARS_REAL:
assert (tcomponent>=0 && tcomponent<10);
break;
+ case MANUALCARTESIAN:
+ /* No restriction on number of components */
+ ReflectionSymmetry_GetManualParities(table, gi, manual_parities);
+ break;
+
default:
assert (0);
}
@@ -463,6 +473,9 @@ BndReflectVI (cGH const * restrict const cctkGH,
parity *= weylparities[tcomponent][dir];
break;
}
+ case MANUALCARTESIAN:
+ parity = manual_parities[dir];
+ break;
default:
assert (0);
}