diff options
author | schnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787> | 2010-03-29 18:24:05 +0000 |
---|---|---|
committer | schnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787> | 2010-03-29 18:24:05 +0000 |
commit | e85df61d9ebd97623e2e350eb20ea4aefe70dffd (patch) | |
tree | f017304b3864e44e5e3d64e2f9b8bcd4e9a7ca55 | |
parent | f93f800a924d0fdd051b8c09ac41982c1bdf5640 (diff) |
Implement ddd_sym symmetry, correspoinding to T_i(jk).
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/RotatingSymmetry180/trunk@52 20f44201-0f4f-0410-9130-e5fc2714a787
-rw-r--r-- | src/interpolate.c | 16 | ||||
-rw-r--r-- | src/rotatingsymmetry180.c | 13 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/interpolate.c b/src/interpolate.c index 853ed08..2813c83 100644 --- a/src/interpolate.c +++ b/src/interpolate.c @@ -86,6 +86,9 @@ Rot180_CheckTensorTypes (CCTK_ARGUMENTS) || CCTK_EQUALS (tensortypealias, "dd_sym")) { /* symmetric tensor */ assert (numvars == 6); + } else if (CCTK_EQUALS (tensortypealias, "ddd_sym")) { + /* 3rd rank tensor, symmetric in last 2 indices */ + assert (numvars == 18); } else if (CCTK_EQUALS (tensortypealias, "4uu_sym") || CCTK_EQUALS (tensortypealias, "4dd_sym")) { /* symmetric 4-tensor */ @@ -332,6 +335,19 @@ Rot180_SymmetryInterpolate (CCTK_POINTER_TO_CONST const cctkGH_, case 5: break; default: assert(0); } + } else if (CCTK_EQUALS (tensortypealias, "ddd_sym")) { + assert (numvars == 18); + parities[0] = parities[1] = parities[2] = +1; + switch (index%6) { + case 0: break; + case 1: parities[0] = parities[1] = -1; break; + case 2: parities[0] = parities[2] = -1; break; + case 3: break; + case 4: parities[1] = parities[2] = -1; break; + case 5: break; + default: assert(0); + } + parities[index/6] *= -1; } else if (CCTK_EQUALS (tensortypealias, "4uu_sym") || CCTK_EQUALS (tensortypealias, "4dd_sym")) { assert (numvars == 10); diff --git a/src/rotatingsymmetry180.c b/src/rotatingsymmetry180.c index 084732b..1317f80 100644 --- a/src/rotatingsymmetry180.c +++ b/src/rotatingsymmetry180.c @@ -189,6 +189,19 @@ int BndRot180VI (cGH const * restrict const cctkGH, case 5: break; default: assert(0); } + } else if (CCTK_EQUALS (tensortypealias, "ddd_sym")) { + assert (numvars == 12); + paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1; + switch (index % 6) { + 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); + } + paritiess[var][index/6] *= -1; } else if (CCTK_EQUALS (tensortypealias, "4uu_sym") || CCTK_EQUALS (tensortypealias, "4dd_sym")) { assert (numvars == 10); |