aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787>2006-10-19 00:27:48 +0000
committerschnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787>2006-10-19 00:27:48 +0000
commitdf25e2773ea0673793ac9a783d790898fd8d3fe3 (patch)
treeddbdfb7fa17f65406df5e3633c7f7e06d461b2cc
parentb1f8ce9bd98bb565efe6f9a0f99cac985500be60 (diff)
Add tensor types to handle the Weyl scalars.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/RotatingSymmetry180/trunk@37 20f44201-0f4f-0410-9130-e5fc2714a787
-rw-r--r--src/interpolate.c33
-rw-r--r--src/rotatingsymmetry180.c24
2 files changed, 45 insertions, 12 deletions
diff --git a/src/interpolate.c b/src/interpolate.c
index 764fd7d..b673895 100644
--- a/src/interpolate.c
+++ b/src/interpolate.c
@@ -77,13 +77,11 @@ Rot180_CheckTensorTypes (CCTK_ARGUMENTS)
free (groupname);
}
} else if (CCTK_EQUALS (tensortypealias, "u")
- || CCTK_EQUALS (tensortypealias, "d"))
- {
+ || CCTK_EQUALS (tensortypealias, "d")) {
/* vector */
assert (numvars == 3);
} else if (CCTK_EQUALS (tensortypealias, "4u")
- || CCTK_EQUALS (tensortypealias, "4d"))
- {
+ || CCTK_EQUALS (tensortypealias, "4d")) {
/* 4-vector */
assert (numvars == 4);
} else if (CCTK_EQUALS (tensortypealias, "uu_sym")
@@ -94,6 +92,9 @@ Rot180_CheckTensorTypes (CCTK_ARGUMENTS)
|| CCTK_EQUALS (tensortypealias, "4dd_sym")) {
/* symmetric 4-tensor */
assert (numvars == 10);
+ } else if (CCTK_EQUALS (tensortypealias, "weylscalars_real")) {
+ /* Weyl scalars, stored as 10 real values */
+ assert (numvars == 10);
} else {
char * groupname = CCTK_GroupName(gi);
assert (groupname);
@@ -306,14 +307,12 @@ Rot180_SymmetryInterpolate (CCTK_POINTER_TO_CONST const cctkGH_,
}
parities[0] = parities[1] = parities[2] = +1;
} else if (CCTK_EQUALS (tensortypealias, "u")
- || CCTK_EQUALS (tensortypealias, "d"))
- {
+ || CCTK_EQUALS (tensortypealias, "d")) {
assert (numvars == 3);
parities[0] = parities[1] = parities[2] = +1;
parities[index] = -1;
} else if (CCTK_EQUALS (tensortypealias, "4u")
- || CCTK_EQUALS (tensortypealias, "4d"))
- {
+ || CCTK_EQUALS (tensortypealias, "4d")) {
assert (numvars == 4);
if (vi == firstvar) {
parities[0] = parities[1] = parities[2] = +1;
@@ -354,6 +353,24 @@ Rot180_SymmetryInterpolate (CCTK_POINTER_TO_CONST const cctkGH_,
default: assert(0);
}
}
+ } else if (CCTK_EQUALS (tensortypealias, "weylscalars_real")) {
+ assert (numvars == 10);
+ {
+ static int const weylparities[10][3] =
+ {{+1,+1,+1},
+ {-1,-1,-1},
+ {+1,+1,-1},
+ {-1,-1,+1},
+ {+1,+1,+1},
+ {-1,-1,-1},
+ {+1,+1,-1},
+ {-1,-1,+1},
+ {+1,+1,+1},
+ {-1,-1,-1}};
+ for (d=0; d<3; ++d) {
+ parities[d] = weylparities[index][d];
+ }
+ }
} else {
char * groupname = CCTK_GroupName(gi);
assert (groupname);
diff --git a/src/rotatingsymmetry180.c b/src/rotatingsymmetry180.c
index 9cbde1d..cf20492 100644
--- a/src/rotatingsymmetry180.c
+++ b/src/rotatingsymmetry180.c
@@ -164,14 +164,12 @@ int BndRot180VI (cGH const * restrict const cctkGH,
} else if (CCTK_EQUALS (tensortypealias, "4scalar")) {
paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1;
} else if (CCTK_EQUALS (tensortypealias, "u")
- || CCTK_EQUALS (tensortypealias, "d"))
- {
+ || CCTK_EQUALS (tensortypealias, "d")) {
assert (numvars == 3);
paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1;
paritiess[var][index] = -1;
} else if (CCTK_EQUALS (tensortypealias, "4u")
- || CCTK_EQUALS (tensortypealias, "4d"))
- {
+ || CCTK_EQUALS (tensortypealias, "4d")) {
assert (numvars == 4);
if (index == 0) {
paritiess[var][0] = paritiess[var][1] = paritiess[var][2] = +1;
@@ -212,6 +210,24 @@ int BndRot180VI (cGH const * restrict const cctkGH,
default: assert(0);
}
}
+ } else if (CCTK_EQUALS (tensortypealias, "weylscalars_real")) {
+ assert (numvars == 10);
+ {
+ static int const weylparities[10][3] =
+ {{+1,+1,+1},
+ {-1,-1,-1},
+ {+1,+1,-1},
+ {-1,-1,+1},
+ {+1,+1,+1},
+ {-1,-1,-1},
+ {+1,+1,-1},
+ {-1,-1,+1},
+ {+1,+1,+1},
+ {-1,-1,-1}};
+ for (d=0; d<3; ++d) {
+ paritiess[var][d] = weylparities[index][d];
+ }
+ }
} else {
char * groupname = CCTK_GroupName(gis[var]);
assert (groupname);