diff options
Diffstat (limited to 'src/interpolate.c')
-rw-r--r-- | src/interpolate.c | 18 |
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 */ |