aboutsummaryrefslogtreecommitdiff
path: root/src/SetSymmetry.c
diff options
context:
space:
mode:
authorpollney <pollney@c78560ca-4b45-4335-b268-5f3340f3cb52>2002-06-10 09:54:03 +0000
committerpollney <pollney@c78560ca-4b45-4335-b268-5f3340f3cb52>2002-06-10 09:54:03 +0000
commitb5cb6c915077b883a637178a3a070b0dae739b83 (patch)
tree6aa06e1564a8a65b031e6bec7311760ac2c9e496 /src/SetSymmetry.c
parentc340c4d5674bf05cada2bb73fd0a04be6e354204 (diff)
Added "bitant_rotate" and "quadrant_reflect_rotate" domains for
systems which have a rotational symmetry. There are some notes describing these domains and the implementation in the doc directory: rotating_sym.tex Currently only works for a single processor. git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/CartGrid3D/trunk@161 c78560ca-4b45-4335-b268-5f3340f3cb52
Diffstat (limited to 'src/SetSymmetry.c')
-rw-r--r--src/SetSymmetry.c38
1 files changed, 29 insertions, 9 deletions
diff --git a/src/SetSymmetry.c b/src/SetSymmetry.c
index 092dafb..afefea2 100644
--- a/src/SetSymmetry.c
+++ b/src/SetSymmetry.c
@@ -20,10 +20,6 @@ static const char *rcsid = "$Header$";
CCTK_FILEVERSION(CactusBase_CartGrid3D_SetSymmetry_c)
-#define MAX_DIM 3
-#define MAX_FACE 6
-
-
/********************************************************************
********************* Local Data Types ***********************
********************************************************************/
@@ -94,10 +90,22 @@ int SetCartSymVI(cGH *GH, int *sym, int vi)
DecodeSymParameters3D(domainsym);
for (dir=0; dir<MAX_FACE; ++dir)
{
- if (domainsym[dir])
+ if (domainsym[dir] == GFSYM_REFLECTION)
{
sGHex->GFSym[vi][dir] = sym[dir/2];
- }
+ }
+ else if (domainsym[dir] == GFSYM_ROTATION_X)
+ {
+ sGHex->GFSym[vi][dir] = sym[1]*sym[2];
+ }
+ else if (domainsym[dir] == GFSYM_ROTATION_Y)
+ {
+ sGHex->GFSym[vi][dir] = sym[0]*sym[2];
+ }
+ else if (domainsym[dir] == GFSYM_ROTATION_Z)
+ {
+ sGHex->GFSym[vi][dir] = sym[0]*sym[1];
+ }
else
{
sGHex->GFSym[vi][dir] = GFSYM_NOSYM;
@@ -105,7 +113,7 @@ int SetCartSymVI(cGH *GH, int *sym, int vi)
}
#ifdef SYM_DEBUG
- printf("SetSymmetry: %s [%d,%d,%d]\n\n",imp_gf,
+ printf("SetSymmetry: %s [%d,%d,%d]\n\n", CCTK_VarName(vi),
sGHex->GFSym[vi][0],
sGHex->GFSym[vi][2],
sGHex->GFSym[vi][4]);
@@ -217,10 +225,22 @@ int SetCartSymGI(cGH *GH, int *sym, int gi)
DecodeSymParameters3D (domainsym);
for (dir=0; dir<MAX_FACE; dir++)
{
- if (domainsym[dir])
+ if (domainsym[dir] == GFSYM_REFLECTION)
{
sGHex->GFSym[vi][dir] = sym[dir/2];
}
+ else if (domainsym[dir] == GFSYM_ROTATION_X)
+ {
+ sGHex->GFSym[vi][dir] = sym[1]*sym[2];
+ }
+ else if (domainsym[dir] == GFSYM_ROTATION_Y)
+ {
+ sGHex->GFSym[vi][dir] = sym[0]*sym[2];
+ }
+ else if (domainsym[dir] == GFSYM_ROTATION_Z)
+ {
+ sGHex->GFSym[vi][dir] = sym[0]*sym[1];
+ }
else
{
sGHex->GFSym[vi][dir] = GFSYM_NOSYM;
@@ -228,7 +248,7 @@ int SetCartSymGI(cGH *GH, int *sym, int gi)
}
#ifdef SYM_DEBUG
- printf("SetSymmetry: %s [%d,%d,%d]\n\n",imp_gf,
+ printf("SetSymmetry: %s [%d,%d,%d]\n\n", CCTK_VarName(vi),
sGHex->GFSym[vi][0],
sGHex->GFSym[vi][2],
sGHex->GFSym[vi][4]);