diff options
Diffstat (limited to 'src/apply.c')
-rw-r--r-- | src/apply.c | 17 |
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); } |