aboutsummaryrefslogtreecommitdiff
path: root/src/interpolate.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interpolate.c')
-rw-r--r--src/interpolate.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/interpolate.c b/src/interpolate.c
index 16370f2..50e3b70 100644
--- a/src/interpolate.c
+++ b/src/interpolate.c
@@ -355,10 +355,16 @@ Rot90_CheckTensorTypes (CCTK_ARGUMENTS)
{
/* 4-vector */
assert (numvars == DIM+1);
+ } else if (CCTK_EQUALS (tensortypealias, "du")) {
+ /* tensor */
+ assert (numvars == DIM*DIM);
} else if (CCTK_EQUALS (tensortypealias, "uu_sym")
|| CCTK_EQUALS (tensortypealias, "dd_sym")) {
/* symmetric tensor */
assert (numvars == DIM*(DIM+1)/2);
+ } else if (CCTK_EQUALS (tensortypealias, "ddd_sym")) {
+ /* 3rd rank tensor, symmetric in last 2 indices */
+ assert (numvars == DIM*DIM*(DIM+1)/2);
} else if (CCTK_EQUALS (tensortypealias, "4uu_sym")
|| CCTK_EQUALS (tensortypealias, "4dd_sym")) {
/* symmetric 4-tensor */
@@ -712,6 +718,12 @@ Rot90_SymmetryInterpolate (CCTK_POINTER_TO_CONST const cctkGH_,
basevar = firstvar + off;
var = vi - basevar;
}
+ } else if (CCTK_EQUALS (tensortypealias, "du")) {
+ /* tensor */
+ assert (numvars == DIM*DIM);
+ tensortype = &tensor;
+ basevar = firstvar;
+ var = vi - basevar;
} else if (CCTK_EQUALS (tensortypealias, "uu_sym")
|| CCTK_EQUALS (tensortypealias, "dd_sym")) {
/* symmetric tensor */
@@ -719,6 +731,12 @@ Rot90_SymmetryInterpolate (CCTK_POINTER_TO_CONST const cctkGH_,
tensortype = &symmtensor;
basevar = firstvar;
var = vi - basevar;
+ } else if (CCTK_EQUALS (tensortypealias, "ddd_sym")) {
+ /* 3rd rank tensor, symmetric in last 2 indices */
+ assert (numvars == DIM*DIM*(DIM+1)/2);
+ tensortype = &symmtensor3b;
+ basevar = firstvar;
+ var = vi - basevar;
} else if (CCTK_EQUALS (tensortypealias, "4uu_sym")
|| CCTK_EQUALS (tensortypealias, "4dd_sym")) {
/* symmetric 4-tensor */