diff options
Diffstat (limited to 'src/DecodeSymParameters.c')
-rw-r--r-- | src/DecodeSymParameters.c | 92 |
1 files changed, 80 insertions, 12 deletions
diff --git a/src/DecodeSymParameters.c b/src/DecodeSymParameters.c index df8d581..88b12b5 100644 --- a/src/DecodeSymParameters.c +++ b/src/DecodeSymParameters.c @@ -1,3 +1,4 @@ + /*@@ @file DecodeSymParameters.c @date Wed May 10 18:58:00 EST 2000 @@ -11,6 +12,7 @@ #include "cctk.h" #include "cctk_Arguments.h" #include "cctk_Parameters.h" +#include "Symmetry.h" static const char *rcsid = "$Header$"; @@ -55,39 +57,105 @@ void DecodeSymParameters3D(int sym[6]) { if (CCTK_Equals(bitant_plane, "xy")) { - sym[4] = 1; + sym[4] = GFSYM_REFLECTION; + } + else if (CCTK_Equals(bitant_plane, "xz")) + { + sym[2] = GFSYM_REFLECTION; + } + else if (CCTK_Equals(bitant_plane, "yz")) + { + sym[0] = GFSYM_REFLECTION; + } + } + else if (CCTK_Equals(domain, "bitant_rotate")) + { + if (CCTK_Equals(bitant_plane, "xy")) + { + if (CCTK_Equals(rotation_axis, "y")) + sym[4] = GFSYM_ROTATION_Y; + else if (CCTK_Equals(rotation_axis, "x")) + sym[4] = GFSYM_ROTATION_X; } else if (CCTK_Equals(bitant_plane, "xz")) { - sym[2] = 1; + if (CCTK_Equals(rotation_axis, "x")) + sym[2] = GFSYM_ROTATION_X; + else if (CCTK_Equals(rotation_axis, "z")) + sym[2] = GFSYM_ROTATION_Z; } else if (CCTK_Equals(bitant_plane, "yz")) { - sym[0] = 1; + if (CCTK_Equals(rotation_axis, "y")) + sym[0] = GFSYM_ROTATION_Y; + else if (CCTK_Equals(rotation_axis, "z")) + sym[0] = GFSYM_ROTATION_Z; } } else if (CCTK_Equals(domain, "quadrant")) { if (CCTK_Equals(quadrant_direction, "x")) { - sym[2] = 1; - sym[4] = 1; + sym[2] = GFSYM_REFLECTION; + sym[4] = GFSYM_REFLECTION; + } + else if (CCTK_Equals(quadrant_direction, "y")) + { + sym[0] = GFSYM_REFLECTION; + sym[4] = GFSYM_REFLECTION; + } + else if (CCTK_Equals(quadrant_direction, "z")) + { + sym[0] = GFSYM_REFLECTION; + sym[2] = GFSYM_REFLECTION; + } + } + else if (CCTK_Equals(domain, "quadrant_reflect_rotate")) + { + if (CCTK_Equals(quadrant_direction, "x")) + { + if (CCTK_Equals(rotation_axis, "y")) + { + sym[2] = GFSYM_REFLECTION; + sym[4] = GFSYM_ROTATION_Y; + } + else if (CCTK_Equals(rotation_axis, "z")) + { + sym[2] = GFSYM_ROTATION_Z; + sym[4] = GFSYM_REFLECTION; + } } else if (CCTK_Equals(quadrant_direction, "y")) { - sym[0] = 1; - sym[4] = 1; + if (CCTK_Equals(rotation_axis, "x")) + { + sym[0] = GFSYM_REFLECTION; + sym[4] = GFSYM_ROTATION_X; + } + if (CCTK_Equals(rotation_axis, "z")) + { + sym[0] = GFSYM_ROTATION_Z; + sym[4] = GFSYM_REFLECTION; + } } else if (CCTK_Equals(quadrant_direction, "z")) { - sym[0] = 1; - sym[2] = 1; + if (CCTK_Equals(rotation_axis, "x")) + { + sym[0] = GFSYM_REFLECTION; + sym[2] = GFSYM_ROTATION_X; + } + if (CCTK_Equals(rotation_axis, "y")) + { + sym[0] = GFSYM_ROTATION_Y; + sym[2] = GFSYM_REFLECTION; + } } } else if (CCTK_Equals(domain, "octant")) { - sym[0] = 1; - sym[2] = 1; - sym[4] = 1; + sym[0] = GFSYM_REFLECTION; + sym[2] = GFSYM_REFLECTION; + sym[4] = GFSYM_REFLECTION; } } |