aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreschnett <eschnett@20f44201-0f4f-0410-9130-e5fc2714a787>2011-09-26 01:39:09 +0000
committereschnett <eschnett@20f44201-0f4f-0410-9130-e5fc2714a787>2011-09-26 01:39:09 +0000
commit119825afea3a659098d5a6f08c433d3feb99fcdf (patch)
treebdf2edacd8dc0928156076593046c3d8d1d841da
parent3a8cc0d7cec63a12eb45a1c6dcfdfeb303671e19 (diff)
Implement the "dd" tensor type
Implement the "dd" tensor type, a full 3x3 tensor without symmetries. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/RotatingSymmetry180/trunk@65 20f44201-0f4f-0410-9130-e5fc2714a787
-rw-r--r--src/interpolate.c16
-rw-r--r--src/rotatingsymmetry180.c10
2 files changed, 26 insertions, 0 deletions
diff --git a/src/interpolate.c b/src/interpolate.c
index 6fb3b16..0d51359 100644
--- a/src/interpolate.c
+++ b/src/interpolate.c
@@ -94,6 +94,12 @@ Rot180_CheckTensorTypes (CCTK_ARGUMENTS)
|| CCTK_EQUALS (tensortypealias, "dd_sym")) {
/* symmetric tensor */
assert (numvars == 6);
+ } else if (CCTK_EQUALS (tensortypealias, "uu")
+ || CCTK_EQUALS (tensortypealias, "ud")
+ || CCTK_EQUALS (tensortypealias, "du")
+ || CCTK_EQUALS (tensortypealias, "dd")) {
+ /* tensor */
+ assert (numvars == 9);
} else if (CCTK_EQUALS (tensortypealias, "ddd_sym")) {
/* 3rd rank tensor, symmetric in last 2 indices */
assert (numvars == 18);
@@ -343,6 +349,16 @@ Rot180_SymmetryInterpolate (CCTK_POINTER_TO_CONST const cctkGH_,
case 5: break;
default: assert(0);
}
+ } else if (CCTK_EQUALS (tensortypealias, "uu")
+ || CCTK_EQUALS (tensortypealias, "ud")
+ || CCTK_EQUALS (tensortypealias, "du")
+ || CCTK_EQUALS (tensortypealias, "dd")) {
+ assert (numvars == 9);
+ parities[0] = parities[1] = parities[2] = +1;
+ int const d1 = index % 3;
+ int const d2 = index / 3;
+ parities[d1] *= -1;
+ parities[d2] *= -1;
} else if (CCTK_EQUALS (tensortypealias, "ddd_sym")) {
assert (numvars == 18);
parities[0] = parities[1] = parities[2] = +1;
diff --git a/src/rotatingsymmetry180.c b/src/rotatingsymmetry180.c
index c12407c..bbd8dd5 100644
--- a/src/rotatingsymmetry180.c
+++ b/src/rotatingsymmetry180.c
@@ -189,6 +189,16 @@ int BndRot180VI (cGH const * restrict const cctkGH,
case 5: break;
default: assert(0);
}
+ } else if (CCTK_EQUALS (tensortypealias, "uu")
+ || CCTK_EQUALS (tensortypealias, "ud")
+ || CCTK_EQUALS (tensortypealias, "du")
+ || CCTK_EQUALS (tensortypealias, "dd")) {
+ assert (numvars == 9);
+ paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1;
+ int const d1 = index % 3;
+ int const d2 = index / 3;
+ paritiess[var][d1] *= -1;
+ paritiess[var][d2] *= -1;
} else if (CCTK_EQUALS (tensortypealias, "ddd_sym")) {
assert (numvars == 12);
paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1;