aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787>2010-03-29 18:24:05 +0000
committerschnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787>2010-03-29 18:24:05 +0000
commite85df61d9ebd97623e2e350eb20ea4aefe70dffd (patch)
treef017304b3864e44e5e3d64e2f9b8bcd4e9a7ca55
parentf93f800a924d0fdd051b8c09ac41982c1bdf5640 (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.c16
-rw-r--r--src/rotatingsymmetry180.c13
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);