From 39120920d4d5e9b1e76c77491b98b09466c5e375 Mon Sep 17 00:00:00 2001 From: hinder Date: Mon, 19 Nov 2012 17:55:46 +0000 Subject: Regenerate code (Kranc commit 17deb8b4ff45a8a3cd1645cb626f6d33a5e17beb) The previous commit was missing the new WeylScal4_*.cc files, and had some unrecognised parameters in param.ccl. Possibly it was generated with something other than the current master branch of Kranc. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/WeylScal4/trunk@127 4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843 --- param.ccl | 2 - src/WeylScal4_invars_calc_2nd.cc | 293 ++++++++ src/WeylScal4_invars_calc_4th.cc | 293 ++++++++ src/WeylScal4_invars_calc_Nth.cc | 293 ++++++++ src/WeylScal4_psi4_calc_2nd.cc | 1356 ++++++++++++++++++++++++++++++++++++ src/WeylScal4_psi4_calc_4th.cc | 1356 ++++++++++++++++++++++++++++++++++++ src/WeylScal4_psi4_calc_Nth.cc | 1356 ++++++++++++++++++++++++++++++++++++ src/WeylScal4_psis_calc_2nd.cc | 1426 ++++++++++++++++++++++++++++++++++++++ src/WeylScal4_psis_calc_4th.cc | 1426 ++++++++++++++++++++++++++++++++++++++ src/WeylScal4_psis_calc_Nth.cc | 1426 ++++++++++++++++++++++++++++++++++++++ src/invars_calc_2nd.cc | 326 --------- src/invars_calc_4th.cc | 326 --------- src/invars_calc_Nth.cc | 326 --------- src/psi4_calc_2nd.cc | 1356 ------------------------------------ src/psi4_calc_4th.cc | 1356 ------------------------------------ src/psi4_calc_Nth.cc | 1356 ------------------------------------ src/psis_calc_2nd.cc | 1426 -------------------------------------- src/psis_calc_4th.cc | 1426 -------------------------------------- src/psis_calc_Nth.cc | 1426 -------------------------------------- 19 files changed, 9225 insertions(+), 9326 deletions(-) create mode 100644 src/WeylScal4_invars_calc_2nd.cc create mode 100644 src/WeylScal4_invars_calc_4th.cc create mode 100644 src/WeylScal4_invars_calc_Nth.cc create mode 100644 src/WeylScal4_psi4_calc_2nd.cc create mode 100644 src/WeylScal4_psi4_calc_4th.cc create mode 100644 src/WeylScal4_psi4_calc_Nth.cc create mode 100644 src/WeylScal4_psis_calc_2nd.cc create mode 100644 src/WeylScal4_psis_calc_4th.cc create mode 100644 src/WeylScal4_psis_calc_Nth.cc delete mode 100644 src/invars_calc_2nd.cc delete mode 100644 src/invars_calc_4th.cc delete mode 100644 src/invars_calc_Nth.cc delete mode 100644 src/psi4_calc_2nd.cc delete mode 100644 src/psi4_calc_4th.cc delete mode 100644 src/psi4_calc_Nth.cc delete mode 100644 src/psis_calc_2nd.cc delete mode 100644 src/psis_calc_4th.cc delete mode 100644 src/psis_calc_Nth.cc diff --git a/param.ccl b/param.ccl index 97471d0..d922126 100644 --- a/param.ccl +++ b/param.ccl @@ -4,8 +4,6 @@ shares: GenericFD USES CCTK_STRING jacobian_group -USES CCTK_STRING jacobian_determinant_group -USES CCTK_STRING jacobian_inverse_group USES CCTK_STRING jacobian_derivative_group USES CCTK_INT jacobian_identity_map diff --git a/src/WeylScal4_invars_calc_2nd.cc b/src/WeylScal4_invars_calc_2nd.cc new file mode 100644 index 0000000..63a4fd2 --- /dev/null +++ b/src/WeylScal4_invars_calc_2nd.cc @@ -0,0 +1,293 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +static void WeylScal4_invars_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_invars_calc_2nd, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC Psi0iL = vec_load(Psi0i[index]); + CCTK_REAL_VEC Psi0rL = vec_load(Psi0r[index]); + CCTK_REAL_VEC Psi1iL = vec_load(Psi1i[index]); + CCTK_REAL_VEC Psi1rL = vec_load(Psi1r[index]); + CCTK_REAL_VEC Psi2iL = vec_load(Psi2i[index]); + CCTK_REAL_VEC Psi2rL = vec_load(Psi2r[index]); + CCTK_REAL_VEC Psi3iL = vec_load(Psi3i[index]); + CCTK_REAL_VEC Psi3rL = vec_load(Psi3r[index]); + CCTK_REAL_VEC Psi4iL = vec_load(Psi4i[index]); + CCTK_REAL_VEC Psi4rL = vec_load(Psi4r[index]); + + + + /* Include user supplied include files */ + + /* Precompute derivatives */ + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC curvIrL = + kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),knmsub(Psi0iL,Psi4iL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(3),kmul(Psi1iL,kmul(Psi3iL,ToReal(4)))))))); + + CCTK_REAL_VEC curvIiL = + kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(-4),kmul(Psi2iL,kmul(Psi2rL,ToReal(6)))))); + + CCTK_REAL_VEC curvJrL = + knmsub(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2),knmsub(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(2)),kmul(Psi1iL,kmul(Psi3rL,ToReal(2)))))),kmadd(Psi2rL,kmadd(Psi0rL,Psi4rL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))),kmul(Psi2rL,kmul(kmul(Psi2iL,Psi2iL),ToReal(3))))))))); + + CCTK_REAL_VEC curvJiL = + kmadd(Psi2iL,kmul(Psi2iL,Psi2iL),kmadd(Psi4rL,kmadd(Psi0iL,Psi2rL,kmul(Psi1iL,kmul(Psi1rL,ToReal(-2)))),kmadd(Psi0rL,kmadd(Psi2rL,Psi4iL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-2)))),kmadd(Psi4iL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0iL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(Psi2rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)),kmul(Psi2iL,kmadd(Psi0rL,Psi4rL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))))))))))); + + CCTK_REAL_VEC curvJ1L = + kmul(ToReal(-16),kmadd(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-4)),kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),knmsub(Psi0rL,Psi4rL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(3),kmul(Psi1rL,kmul(Psi3rL,ToReal(4))))))))); + + CCTK_REAL_VEC curvJ2L = + kmul(kmadd(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmadd(Psi0iL,Psi4iL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),kmadd(Psi1rL,kmul(Psi3rL,ToReal(-2)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(2)),kmul(Psi0rL,Psi4rL))))),kmul(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)))))))))),ToReal(96)); + + CCTK_REAL_VEC curvJ3L = + kmul(kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi3rL,Psi3rL))),ToReal(-16),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi2rL,Psi2rL),kmul(kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(Psi0iL,Psi4iL)))),ToReal(6)),kmadd(kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi3iL,Psi4iL)),kmadd(Psi0rL,kmul(Psi1iL,kmul(Psi3rL,Psi4iL)),kmadd(Psi0iL,kmul(Psi1rL,kmul(Psi3rL,Psi4iL)),kmul(Psi0iL,kmul(Psi1rL,kmul(Psi3iL,Psi4rL)))))),ToReal(8),kmadd(Psi3rL,kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi4rL,ToReal(-8))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi4rL,ToReal(8))))),kmadd(Psi1iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-64))),kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi4iL,ToReal(-8))),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi4rL,ToReal(8)))))),kmadd(kmadd(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL),kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(9),kmadd(kmul(Psi2iL,Psi2iL),kmul(ToReal(-6),kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),knmsub(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(kmul(Psi2rL,Psi2rL),ToReal(9))))))),kmadd(Psi2iL,kmul(Psi2rL,kmul(knmsub(Psi0rL,Psi4iL,knmsub(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(4)),kmul(Psi1iL,kmul(Psi3rL,ToReal(4)))))),ToReal(12))),kmul(kmadd(kmul(Psi1iL,Psi1iL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1rL,Psi1rL),kmul(Psi3rL,Psi3rL))),ToReal(16))))))))))))))),ToReal(64)); + + CCTK_REAL_VEC curvJ4L = + kmul(ToReal(-640),kmadd(Psi1iL,kmul(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi3rL,Psi3rL)))),ToReal(-12)),kmadd(kmadd(Psi3iL,kmul(Psi4iL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL))))),ToReal(-4),kmadd(kmul(Psi2rL,kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(-3),kmadd(Psi4rL,kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3iL,Psi3iL),kmsub(kmul(Psi0iL,Psi0iL),kmul(Psi3rL,Psi3rL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3rL,Psi3rL),kmul(kmul(Psi0iL,Psi0iL),kmul(Psi3iL,Psi3iL))))),kmadd(Psi0rL,kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4iL,Psi4iL),kmsub(kmul(Psi1iL,Psi1iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4rL,Psi4rL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi4iL,Psi4iL))))),kmadd(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1iL,kmul(Psi1iL,Psi1iL)),kmadd(Psi3rL,kmul(Psi4rL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmadd(Psi0rL,kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),Psi4rL,kmul(Psi1iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)))),kmul(Psi1rL,kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)),kmul(Psi0rL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL)))))))),ToReal(4),kmadd(ToReal(-2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0iL,Psi0iL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1iL,Psi1iL),kmul(Psi0rL,kmul(Psi3iL,Psi3iL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL)))))),kmadd(ToReal(2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0rL,Psi0rL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3rL,Psi3rL))))),kmadd(kmul(Psi2iL,kmul(Psi2iL,Psi2iL)),kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(5)))),kmul(Psi2iL,kmadd(Psi3rL,kmadd(Psi1iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmul(Psi3iL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-8)))),kmadd(Psi4iL,kmadd(Psi2rL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-3)),kmul(Psi4rL,kmsub(Psi0iL,Psi0iL,kmul(Psi0rL,Psi0rL)))),knmsub(Psi0iL,kmadd(Psi1iL,kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmadd(Psi2rL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-3)),kmadd(Psi0rL,kmsub(Psi4rL,Psi4rL,kmul(Psi4iL,Psi4iL)),kmul(kmadd(Psi4rL,kmul(Psi2rL,Psi2rL),kmul(Psi2rL,kmul(Psi3iL,Psi3iL))),ToReal(3))))),kmadd(Psi0rL,kmadd(Psi1iL,kmul(Psi3rL,Psi4rL),kmadd(Psi4iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-3)),kmul(Psi3iL,kmsub(Psi2rL,kmul(Psi3rL,ToReal(6)),kmul(Psi1iL,Psi4iL))))),kmadd(kmul(Psi1rL,Psi1rL),kmadd(Psi2rL,kmul(Psi4iL,ToReal(3)),kmul(Psi3iL,kmul(Psi3rL,ToReal(8)))),kmul(Psi1rL,kmadd(Psi3iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmadd(Psi4iL,kmsub(Psi0rL,Psi3rL,kmul(Psi0iL,Psi3iL)),kmadd(Psi4rL,kmadd(Psi0rL,Psi3iL,kmadd(Psi0iL,Psi3rL,kmul(Psi1iL,kmul(Psi2rL,ToReal(6))))),kmul(Psi1iL,kmadd(kmul(Psi3iL,Psi3iL),ToReal(-8),kmul(kmul(Psi3rL,Psi3rL),ToReal(8)))))))))))))))),kmadd(ToReal(3),kmadd(kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmul(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2)))),kmul(kmul(Psi2iL,Psi2iL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmul(ToReal(2),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),ToReal(10)))))))),kmadd(Psi1rL,kmadd(Psi0rL,kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(-12))),kmadd(Psi0iL,kmul(Psi1iL,kmul(kmul(Psi4iL,Psi4iL),ToReal(-2))),kmul(kmul(Psi1iL,Psi1iL),kmadd(Psi3rL,kmul(Psi4rL,ToReal(-12)),kmul(Psi3iL,kmul(Psi4iL,ToReal(12))))))),kmadd(Psi0iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-12))),kmul(Psi1iL,kmadd(Psi1rL,kmul(kmul(Psi4rL,Psi4rL),ToReal(2)),kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(12)))))),kmul(Psi2rL,kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmul(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL)),ToReal(-15),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmul(Psi1iL,Psi1iL),ToReal(-8),kmul(kmul(Psi1rL,Psi1rL),ToReal(8))),kmul(ToReal(2),kmadd(Psi1rL,kmadd(Psi0iL,kmul(Psi3rL,Psi4iL),kmadd(Psi0iL,kmul(Psi3iL,Psi4rL),kmul(Psi0rL,kmsub(Psi3iL,Psi4iL,kmul(Psi3rL,Psi4rL))))),kmul(Psi1iL,kmadd(Psi0rL,kmul(Psi3rL,Psi4iL),kmadd(Psi0rL,kmul(Psi3iL,Psi4rL),kmadd(Psi0iL,kmul(Psi3rL,Psi4rL),kmul(Psi3iL,kmsub(Psi1rL,kmul(Psi3rL,ToReal(16)),kmul(Psi0iL,Psi4iL))))))))))))))))))))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(curvIi[index],curvIiL); + vec_store_nta_partial(curvIr[index],curvIrL); + vec_store_nta_partial(curvJ1[index],curvJ1L); + vec_store_nta_partial(curvJ2[index],curvJ2L); + vec_store_nta_partial(curvJ3[index],curvJ3L); + vec_store_nta_partial(curvJ4[index],curvJ4L); + vec_store_nta_partial(curvJi[index],curvJiL); + vec_store_nta_partial(curvJr[index],curvJrL); + } + LC_ENDLOOP3VEC(WeylScal4_invars_calc_2nd); +} + +extern "C" void WeylScal4_invars_calc_2nd(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_invars_calc_2nd_Body"); + } + + if (cctk_iteration % WeylScal4_invars_calc_2nd_calc_every != WeylScal4_invars_calc_2nd_calc_offset) + { + return; + } + + const char *const groups[] = { + "WeylScal4::curvIi_group", + "WeylScal4::curvIr_group", + "WeylScal4::curvJ1_group", + "WeylScal4::curvJ2_group", + "WeylScal4::curvJ3_group", + "WeylScal4::curvJ4_group", + "WeylScal4::curvJi_group", + "WeylScal4::curvJr_group", + "WeylScal4::Psi0i_group", + "WeylScal4::Psi0r_group", + "WeylScal4::Psi1i_group", + "WeylScal4::Psi1r_group", + "WeylScal4::Psi2i_group", + "WeylScal4::Psi2r_group", + "WeylScal4::Psi3i_group", + "WeylScal4::Psi3r_group", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_invars_calc_2nd", 18, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, WeylScal4_invars_calc_2nd_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_invars_calc_2nd_Body"); + } +} diff --git a/src/WeylScal4_invars_calc_4th.cc b/src/WeylScal4_invars_calc_4th.cc new file mode 100644 index 0000000..736c481 --- /dev/null +++ b/src/WeylScal4_invars_calc_4th.cc @@ -0,0 +1,293 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +static void WeylScal4_invars_calc_4th_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_invars_calc_4th, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC Psi0iL = vec_load(Psi0i[index]); + CCTK_REAL_VEC Psi0rL = vec_load(Psi0r[index]); + CCTK_REAL_VEC Psi1iL = vec_load(Psi1i[index]); + CCTK_REAL_VEC Psi1rL = vec_load(Psi1r[index]); + CCTK_REAL_VEC Psi2iL = vec_load(Psi2i[index]); + CCTK_REAL_VEC Psi2rL = vec_load(Psi2r[index]); + CCTK_REAL_VEC Psi3iL = vec_load(Psi3i[index]); + CCTK_REAL_VEC Psi3rL = vec_load(Psi3r[index]); + CCTK_REAL_VEC Psi4iL = vec_load(Psi4i[index]); + CCTK_REAL_VEC Psi4rL = vec_load(Psi4r[index]); + + + + /* Include user supplied include files */ + + /* Precompute derivatives */ + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC curvIrL = + kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),knmsub(Psi0iL,Psi4iL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(3),kmul(Psi1iL,kmul(Psi3iL,ToReal(4)))))))); + + CCTK_REAL_VEC curvIiL = + kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(-4),kmul(Psi2iL,kmul(Psi2rL,ToReal(6)))))); + + CCTK_REAL_VEC curvJrL = + knmsub(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2),knmsub(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(2)),kmul(Psi1iL,kmul(Psi3rL,ToReal(2)))))),kmadd(Psi2rL,kmadd(Psi0rL,Psi4rL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))),kmul(Psi2rL,kmul(kmul(Psi2iL,Psi2iL),ToReal(3))))))))); + + CCTK_REAL_VEC curvJiL = + kmadd(Psi2iL,kmul(Psi2iL,Psi2iL),kmadd(Psi4rL,kmadd(Psi0iL,Psi2rL,kmul(Psi1iL,kmul(Psi1rL,ToReal(-2)))),kmadd(Psi0rL,kmadd(Psi2rL,Psi4iL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-2)))),kmadd(Psi4iL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0iL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(Psi2rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)),kmul(Psi2iL,kmadd(Psi0rL,Psi4rL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))))))))))); + + CCTK_REAL_VEC curvJ1L = + kmul(ToReal(-16),kmadd(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-4)),kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),knmsub(Psi0rL,Psi4rL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(3),kmul(Psi1rL,kmul(Psi3rL,ToReal(4))))))))); + + CCTK_REAL_VEC curvJ2L = + kmul(kmadd(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmadd(Psi0iL,Psi4iL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),kmadd(Psi1rL,kmul(Psi3rL,ToReal(-2)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(2)),kmul(Psi0rL,Psi4rL))))),kmul(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)))))))))),ToReal(96)); + + CCTK_REAL_VEC curvJ3L = + kmul(kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi3rL,Psi3rL))),ToReal(-16),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi2rL,Psi2rL),kmul(kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(Psi0iL,Psi4iL)))),ToReal(6)),kmadd(kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi3iL,Psi4iL)),kmadd(Psi0rL,kmul(Psi1iL,kmul(Psi3rL,Psi4iL)),kmadd(Psi0iL,kmul(Psi1rL,kmul(Psi3rL,Psi4iL)),kmul(Psi0iL,kmul(Psi1rL,kmul(Psi3iL,Psi4rL)))))),ToReal(8),kmadd(Psi3rL,kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi4rL,ToReal(-8))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi4rL,ToReal(8))))),kmadd(Psi1iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-64))),kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi4iL,ToReal(-8))),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi4rL,ToReal(8)))))),kmadd(kmadd(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL),kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(9),kmadd(kmul(Psi2iL,Psi2iL),kmul(ToReal(-6),kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),knmsub(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(kmul(Psi2rL,Psi2rL),ToReal(9))))))),kmadd(Psi2iL,kmul(Psi2rL,kmul(knmsub(Psi0rL,Psi4iL,knmsub(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(4)),kmul(Psi1iL,kmul(Psi3rL,ToReal(4)))))),ToReal(12))),kmul(kmadd(kmul(Psi1iL,Psi1iL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1rL,Psi1rL),kmul(Psi3rL,Psi3rL))),ToReal(16))))))))))))))),ToReal(64)); + + CCTK_REAL_VEC curvJ4L = + kmul(ToReal(-640),kmadd(Psi1iL,kmul(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi3rL,Psi3rL)))),ToReal(-12)),kmadd(kmadd(Psi3iL,kmul(Psi4iL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL))))),ToReal(-4),kmadd(kmul(Psi2rL,kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(-3),kmadd(Psi4rL,kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3iL,Psi3iL),kmsub(kmul(Psi0iL,Psi0iL),kmul(Psi3rL,Psi3rL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3rL,Psi3rL),kmul(kmul(Psi0iL,Psi0iL),kmul(Psi3iL,Psi3iL))))),kmadd(Psi0rL,kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4iL,Psi4iL),kmsub(kmul(Psi1iL,Psi1iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4rL,Psi4rL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi4iL,Psi4iL))))),kmadd(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1iL,kmul(Psi1iL,Psi1iL)),kmadd(Psi3rL,kmul(Psi4rL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmadd(Psi0rL,kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),Psi4rL,kmul(Psi1iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)))),kmul(Psi1rL,kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)),kmul(Psi0rL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL)))))))),ToReal(4),kmadd(ToReal(-2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0iL,Psi0iL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1iL,Psi1iL),kmul(Psi0rL,kmul(Psi3iL,Psi3iL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL)))))),kmadd(ToReal(2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0rL,Psi0rL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3rL,Psi3rL))))),kmadd(kmul(Psi2iL,kmul(Psi2iL,Psi2iL)),kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(5)))),kmul(Psi2iL,kmadd(Psi3rL,kmadd(Psi1iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmul(Psi3iL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-8)))),kmadd(Psi4iL,kmadd(Psi2rL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-3)),kmul(Psi4rL,kmsub(Psi0iL,Psi0iL,kmul(Psi0rL,Psi0rL)))),knmsub(Psi0iL,kmadd(Psi1iL,kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmadd(Psi2rL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-3)),kmadd(Psi0rL,kmsub(Psi4rL,Psi4rL,kmul(Psi4iL,Psi4iL)),kmul(kmadd(Psi4rL,kmul(Psi2rL,Psi2rL),kmul(Psi2rL,kmul(Psi3iL,Psi3iL))),ToReal(3))))),kmadd(Psi0rL,kmadd(Psi1iL,kmul(Psi3rL,Psi4rL),kmadd(Psi4iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-3)),kmul(Psi3iL,kmsub(Psi2rL,kmul(Psi3rL,ToReal(6)),kmul(Psi1iL,Psi4iL))))),kmadd(kmul(Psi1rL,Psi1rL),kmadd(Psi2rL,kmul(Psi4iL,ToReal(3)),kmul(Psi3iL,kmul(Psi3rL,ToReal(8)))),kmul(Psi1rL,kmadd(Psi3iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmadd(Psi4iL,kmsub(Psi0rL,Psi3rL,kmul(Psi0iL,Psi3iL)),kmadd(Psi4rL,kmadd(Psi0rL,Psi3iL,kmadd(Psi0iL,Psi3rL,kmul(Psi1iL,kmul(Psi2rL,ToReal(6))))),kmul(Psi1iL,kmadd(kmul(Psi3iL,Psi3iL),ToReal(-8),kmul(kmul(Psi3rL,Psi3rL),ToReal(8)))))))))))))))),kmadd(ToReal(3),kmadd(kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmul(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2)))),kmul(kmul(Psi2iL,Psi2iL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmul(ToReal(2),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),ToReal(10)))))))),kmadd(Psi1rL,kmadd(Psi0rL,kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(-12))),kmadd(Psi0iL,kmul(Psi1iL,kmul(kmul(Psi4iL,Psi4iL),ToReal(-2))),kmul(kmul(Psi1iL,Psi1iL),kmadd(Psi3rL,kmul(Psi4rL,ToReal(-12)),kmul(Psi3iL,kmul(Psi4iL,ToReal(12))))))),kmadd(Psi0iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-12))),kmul(Psi1iL,kmadd(Psi1rL,kmul(kmul(Psi4rL,Psi4rL),ToReal(2)),kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(12)))))),kmul(Psi2rL,kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmul(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL)),ToReal(-15),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmul(Psi1iL,Psi1iL),ToReal(-8),kmul(kmul(Psi1rL,Psi1rL),ToReal(8))),kmul(ToReal(2),kmadd(Psi1rL,kmadd(Psi0iL,kmul(Psi3rL,Psi4iL),kmadd(Psi0iL,kmul(Psi3iL,Psi4rL),kmul(Psi0rL,kmsub(Psi3iL,Psi4iL,kmul(Psi3rL,Psi4rL))))),kmul(Psi1iL,kmadd(Psi0rL,kmul(Psi3rL,Psi4iL),kmadd(Psi0rL,kmul(Psi3iL,Psi4rL),kmadd(Psi0iL,kmul(Psi3rL,Psi4rL),kmul(Psi3iL,kmsub(Psi1rL,kmul(Psi3rL,ToReal(16)),kmul(Psi0iL,Psi4iL))))))))))))))))))))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(curvIi[index],curvIiL); + vec_store_nta_partial(curvIr[index],curvIrL); + vec_store_nta_partial(curvJ1[index],curvJ1L); + vec_store_nta_partial(curvJ2[index],curvJ2L); + vec_store_nta_partial(curvJ3[index],curvJ3L); + vec_store_nta_partial(curvJ4[index],curvJ4L); + vec_store_nta_partial(curvJi[index],curvJiL); + vec_store_nta_partial(curvJr[index],curvJrL); + } + LC_ENDLOOP3VEC(WeylScal4_invars_calc_4th); +} + +extern "C" void WeylScal4_invars_calc_4th(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_invars_calc_4th_Body"); + } + + if (cctk_iteration % WeylScal4_invars_calc_4th_calc_every != WeylScal4_invars_calc_4th_calc_offset) + { + return; + } + + const char *const groups[] = { + "WeylScal4::curvIi_group", + "WeylScal4::curvIr_group", + "WeylScal4::curvJ1_group", + "WeylScal4::curvJ2_group", + "WeylScal4::curvJ3_group", + "WeylScal4::curvJ4_group", + "WeylScal4::curvJi_group", + "WeylScal4::curvJr_group", + "WeylScal4::Psi0i_group", + "WeylScal4::Psi0r_group", + "WeylScal4::Psi1i_group", + "WeylScal4::Psi1r_group", + "WeylScal4::Psi2i_group", + "WeylScal4::Psi2r_group", + "WeylScal4::Psi3i_group", + "WeylScal4::Psi3r_group", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_invars_calc_4th", 18, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, WeylScal4_invars_calc_4th_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_invars_calc_4th_Body"); + } +} diff --git a/src/WeylScal4_invars_calc_Nth.cc b/src/WeylScal4_invars_calc_Nth.cc new file mode 100644 index 0000000..2181e09 --- /dev/null +++ b/src/WeylScal4_invars_calc_Nth.cc @@ -0,0 +1,293 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +static void WeylScal4_invars_calc_Nth_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_invars_calc_Nth, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC Psi0iL = vec_load(Psi0i[index]); + CCTK_REAL_VEC Psi0rL = vec_load(Psi0r[index]); + CCTK_REAL_VEC Psi1iL = vec_load(Psi1i[index]); + CCTK_REAL_VEC Psi1rL = vec_load(Psi1r[index]); + CCTK_REAL_VEC Psi2iL = vec_load(Psi2i[index]); + CCTK_REAL_VEC Psi2rL = vec_load(Psi2r[index]); + CCTK_REAL_VEC Psi3iL = vec_load(Psi3i[index]); + CCTK_REAL_VEC Psi3rL = vec_load(Psi3r[index]); + CCTK_REAL_VEC Psi4iL = vec_load(Psi4i[index]); + CCTK_REAL_VEC Psi4rL = vec_load(Psi4r[index]); + + + + /* Include user supplied include files */ + + /* Precompute derivatives */ + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC curvIrL = + kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),knmsub(Psi0iL,Psi4iL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(3),kmul(Psi1iL,kmul(Psi3iL,ToReal(4)))))))); + + CCTK_REAL_VEC curvIiL = + kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(-4),kmul(Psi2iL,kmul(Psi2rL,ToReal(6)))))); + + CCTK_REAL_VEC curvJrL = + knmsub(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2),knmsub(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(2)),kmul(Psi1iL,kmul(Psi3rL,ToReal(2)))))),kmadd(Psi2rL,kmadd(Psi0rL,Psi4rL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))),kmul(Psi2rL,kmul(kmul(Psi2iL,Psi2iL),ToReal(3))))))))); + + CCTK_REAL_VEC curvJiL = + kmadd(Psi2iL,kmul(Psi2iL,Psi2iL),kmadd(Psi4rL,kmadd(Psi0iL,Psi2rL,kmul(Psi1iL,kmul(Psi1rL,ToReal(-2)))),kmadd(Psi0rL,kmadd(Psi2rL,Psi4iL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-2)))),kmadd(Psi4iL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0iL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(Psi2rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)),kmul(Psi2iL,kmadd(Psi0rL,Psi4rL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))))))))))); + + CCTK_REAL_VEC curvJ1L = + kmul(ToReal(-16),kmadd(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-4)),kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),knmsub(Psi0rL,Psi4rL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(3),kmul(Psi1rL,kmul(Psi3rL,ToReal(4))))))))); + + CCTK_REAL_VEC curvJ2L = + kmul(kmadd(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmadd(Psi0iL,Psi4iL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),kmadd(Psi1rL,kmul(Psi3rL,ToReal(-2)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(2)),kmul(Psi0rL,Psi4rL))))),kmul(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)))))))))),ToReal(96)); + + CCTK_REAL_VEC curvJ3L = + kmul(kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi3rL,Psi3rL))),ToReal(-16),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi2rL,Psi2rL),kmul(kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(Psi0iL,Psi4iL)))),ToReal(6)),kmadd(kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi3iL,Psi4iL)),kmadd(Psi0rL,kmul(Psi1iL,kmul(Psi3rL,Psi4iL)),kmadd(Psi0iL,kmul(Psi1rL,kmul(Psi3rL,Psi4iL)),kmul(Psi0iL,kmul(Psi1rL,kmul(Psi3iL,Psi4rL)))))),ToReal(8),kmadd(Psi3rL,kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi4rL,ToReal(-8))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi4rL,ToReal(8))))),kmadd(Psi1iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-64))),kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi4iL,ToReal(-8))),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi4rL,ToReal(8)))))),kmadd(kmadd(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL),kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(9),kmadd(kmul(Psi2iL,Psi2iL),kmul(ToReal(-6),kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),knmsub(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(kmul(Psi2rL,Psi2rL),ToReal(9))))))),kmadd(Psi2iL,kmul(Psi2rL,kmul(knmsub(Psi0rL,Psi4iL,knmsub(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(4)),kmul(Psi1iL,kmul(Psi3rL,ToReal(4)))))),ToReal(12))),kmul(kmadd(kmul(Psi1iL,Psi1iL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1rL,Psi1rL),kmul(Psi3rL,Psi3rL))),ToReal(16))))))))))))))),ToReal(64)); + + CCTK_REAL_VEC curvJ4L = + kmul(ToReal(-640),kmadd(Psi1iL,kmul(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi3rL,Psi3rL)))),ToReal(-12)),kmadd(kmadd(Psi3iL,kmul(Psi4iL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL))))),ToReal(-4),kmadd(kmul(Psi2rL,kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(-3),kmadd(Psi4rL,kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3iL,Psi3iL),kmsub(kmul(Psi0iL,Psi0iL),kmul(Psi3rL,Psi3rL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3rL,Psi3rL),kmul(kmul(Psi0iL,Psi0iL),kmul(Psi3iL,Psi3iL))))),kmadd(Psi0rL,kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4iL,Psi4iL),kmsub(kmul(Psi1iL,Psi1iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4rL,Psi4rL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi4iL,Psi4iL))))),kmadd(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1iL,kmul(Psi1iL,Psi1iL)),kmadd(Psi3rL,kmul(Psi4rL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmadd(Psi0rL,kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),Psi4rL,kmul(Psi1iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)))),kmul(Psi1rL,kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)),kmul(Psi0rL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL)))))))),ToReal(4),kmadd(ToReal(-2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0iL,Psi0iL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1iL,Psi1iL),kmul(Psi0rL,kmul(Psi3iL,Psi3iL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL)))))),kmadd(ToReal(2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0rL,Psi0rL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3rL,Psi3rL))))),kmadd(kmul(Psi2iL,kmul(Psi2iL,Psi2iL)),kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(5)))),kmul(Psi2iL,kmadd(Psi3rL,kmadd(Psi1iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmul(Psi3iL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-8)))),kmadd(Psi4iL,kmadd(Psi2rL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-3)),kmul(Psi4rL,kmsub(Psi0iL,Psi0iL,kmul(Psi0rL,Psi0rL)))),knmsub(Psi0iL,kmadd(Psi1iL,kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmadd(Psi2rL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-3)),kmadd(Psi0rL,kmsub(Psi4rL,Psi4rL,kmul(Psi4iL,Psi4iL)),kmul(kmadd(Psi4rL,kmul(Psi2rL,Psi2rL),kmul(Psi2rL,kmul(Psi3iL,Psi3iL))),ToReal(3))))),kmadd(Psi0rL,kmadd(Psi1iL,kmul(Psi3rL,Psi4rL),kmadd(Psi4iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-3)),kmul(Psi3iL,kmsub(Psi2rL,kmul(Psi3rL,ToReal(6)),kmul(Psi1iL,Psi4iL))))),kmadd(kmul(Psi1rL,Psi1rL),kmadd(Psi2rL,kmul(Psi4iL,ToReal(3)),kmul(Psi3iL,kmul(Psi3rL,ToReal(8)))),kmul(Psi1rL,kmadd(Psi3iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmadd(Psi4iL,kmsub(Psi0rL,Psi3rL,kmul(Psi0iL,Psi3iL)),kmadd(Psi4rL,kmadd(Psi0rL,Psi3iL,kmadd(Psi0iL,Psi3rL,kmul(Psi1iL,kmul(Psi2rL,ToReal(6))))),kmul(Psi1iL,kmadd(kmul(Psi3iL,Psi3iL),ToReal(-8),kmul(kmul(Psi3rL,Psi3rL),ToReal(8)))))))))))))))),kmadd(ToReal(3),kmadd(kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmul(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2)))),kmul(kmul(Psi2iL,Psi2iL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmul(ToReal(2),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),ToReal(10)))))))),kmadd(Psi1rL,kmadd(Psi0rL,kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(-12))),kmadd(Psi0iL,kmul(Psi1iL,kmul(kmul(Psi4iL,Psi4iL),ToReal(-2))),kmul(kmul(Psi1iL,Psi1iL),kmadd(Psi3rL,kmul(Psi4rL,ToReal(-12)),kmul(Psi3iL,kmul(Psi4iL,ToReal(12))))))),kmadd(Psi0iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-12))),kmul(Psi1iL,kmadd(Psi1rL,kmul(kmul(Psi4rL,Psi4rL),ToReal(2)),kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(12)))))),kmul(Psi2rL,kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmul(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL)),ToReal(-15),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmul(Psi1iL,Psi1iL),ToReal(-8),kmul(kmul(Psi1rL,Psi1rL),ToReal(8))),kmul(ToReal(2),kmadd(Psi1rL,kmadd(Psi0iL,kmul(Psi3rL,Psi4iL),kmadd(Psi0iL,kmul(Psi3iL,Psi4rL),kmul(Psi0rL,kmsub(Psi3iL,Psi4iL,kmul(Psi3rL,Psi4rL))))),kmul(Psi1iL,kmadd(Psi0rL,kmul(Psi3rL,Psi4iL),kmadd(Psi0rL,kmul(Psi3iL,Psi4rL),kmadd(Psi0iL,kmul(Psi3rL,Psi4rL),kmul(Psi3iL,kmsub(Psi1rL,kmul(Psi3rL,ToReal(16)),kmul(Psi0iL,Psi4iL))))))))))))))))))))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(curvIi[index],curvIiL); + vec_store_nta_partial(curvIr[index],curvIrL); + vec_store_nta_partial(curvJ1[index],curvJ1L); + vec_store_nta_partial(curvJ2[index],curvJ2L); + vec_store_nta_partial(curvJ3[index],curvJ3L); + vec_store_nta_partial(curvJ4[index],curvJ4L); + vec_store_nta_partial(curvJi[index],curvJiL); + vec_store_nta_partial(curvJr[index],curvJrL); + } + LC_ENDLOOP3VEC(WeylScal4_invars_calc_Nth); +} + +extern "C" void WeylScal4_invars_calc_Nth(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_invars_calc_Nth_Body"); + } + + if (cctk_iteration % WeylScal4_invars_calc_Nth_calc_every != WeylScal4_invars_calc_Nth_calc_offset) + { + return; + } + + const char *const groups[] = { + "WeylScal4::curvIi_group", + "WeylScal4::curvIr_group", + "WeylScal4::curvJ1_group", + "WeylScal4::curvJ2_group", + "WeylScal4::curvJ3_group", + "WeylScal4::curvJ4_group", + "WeylScal4::curvJi_group", + "WeylScal4::curvJr_group", + "WeylScal4::Psi0i_group", + "WeylScal4::Psi0r_group", + "WeylScal4::Psi1i_group", + "WeylScal4::Psi1r_group", + "WeylScal4::Psi2i_group", + "WeylScal4::Psi2r_group", + "WeylScal4::Psi3i_group", + "WeylScal4::Psi3r_group", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_invars_calc_Nth", 18, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, WeylScal4_invars_calc_Nth_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_invars_calc_Nth_Body"); + } +} diff --git a/src/WeylScal4_psi4_calc_2nd.cc b/src/WeylScal4_psi4_calc_2nd.cc new file mode 100644 index 0000000..7dd68c3 --- /dev/null +++ b/src/WeylScal4_psi4_calc_2nd.cc @@ -0,0 +1,1356 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +extern "C" void WeylScal4_psi4_calc_2nd_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); + return; +} + +static void WeylScal4_psi4_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_psi4_calc_2nd, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC gxxL = vec_load(gxx[index]); + CCTK_REAL_VEC gxyL = vec_load(gxy[index]); + CCTK_REAL_VEC gxzL = vec_load(gxz[index]); + CCTK_REAL_VEC gyyL = vec_load(gyy[index]); + CCTK_REAL_VEC gyzL = vec_load(gyz[index]); + CCTK_REAL_VEC gzzL = vec_load(gzz[index]); + CCTK_REAL_VEC kxxL = vec_load(kxx[index]); + CCTK_REAL_VEC kxyL = vec_load(kxy[index]); + CCTK_REAL_VEC kxzL = vec_load(kxz[index]); + CCTK_REAL_VEC kyyL = vec_load(kyy[index]); + CCTK_REAL_VEC kyzL = vec_load(kyz[index]); + CCTK_REAL_VEC kzzL = vec_load(kzz[index]); + CCTK_REAL_VEC xL = vec_load(x[index]); + CCTK_REAL_VEC yL = vec_load(y[index]); + CCTK_REAL_VEC zL = vec_load(z[index]); + + + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + + /* Include user supplied include files */ + + /* Precompute derivatives */ + CCTK_REAL_VEC PDstandard2nd1gxx; + CCTK_REAL_VEC PDstandard2nd2gxx; + CCTK_REAL_VEC PDstandard2nd3gxx; + CCTK_REAL_VEC PDstandard2nd11gxx; + CCTK_REAL_VEC PDstandard2nd22gxx; + CCTK_REAL_VEC PDstandard2nd33gxx; + CCTK_REAL_VEC PDstandard2nd12gxx; + CCTK_REAL_VEC PDstandard2nd13gxx; + CCTK_REAL_VEC PDstandard2nd23gxx; + CCTK_REAL_VEC PDstandard2nd1gxy; + CCTK_REAL_VEC PDstandard2nd2gxy; + CCTK_REAL_VEC PDstandard2nd3gxy; + CCTK_REAL_VEC PDstandard2nd11gxy; + CCTK_REAL_VEC PDstandard2nd22gxy; + CCTK_REAL_VEC PDstandard2nd33gxy; + CCTK_REAL_VEC PDstandard2nd12gxy; + CCTK_REAL_VEC PDstandard2nd13gxy; + CCTK_REAL_VEC PDstandard2nd23gxy; + CCTK_REAL_VEC PDstandard2nd1gxz; + CCTK_REAL_VEC PDstandard2nd2gxz; + CCTK_REAL_VEC PDstandard2nd3gxz; + CCTK_REAL_VEC PDstandard2nd11gxz; + CCTK_REAL_VEC PDstandard2nd22gxz; + CCTK_REAL_VEC PDstandard2nd33gxz; + CCTK_REAL_VEC PDstandard2nd12gxz; + CCTK_REAL_VEC PDstandard2nd13gxz; + CCTK_REAL_VEC PDstandard2nd23gxz; + CCTK_REAL_VEC PDstandard2nd1gyy; + CCTK_REAL_VEC PDstandard2nd2gyy; + CCTK_REAL_VEC PDstandard2nd3gyy; + CCTK_REAL_VEC PDstandard2nd11gyy; + CCTK_REAL_VEC PDstandard2nd22gyy; + CCTK_REAL_VEC PDstandard2nd33gyy; + CCTK_REAL_VEC PDstandard2nd12gyy; + CCTK_REAL_VEC PDstandard2nd13gyy; + CCTK_REAL_VEC PDstandard2nd23gyy; + CCTK_REAL_VEC PDstandard2nd1gyz; + CCTK_REAL_VEC PDstandard2nd2gyz; + CCTK_REAL_VEC PDstandard2nd3gyz; + CCTK_REAL_VEC PDstandard2nd11gyz; + CCTK_REAL_VEC PDstandard2nd22gyz; + CCTK_REAL_VEC PDstandard2nd33gyz; + CCTK_REAL_VEC PDstandard2nd12gyz; + CCTK_REAL_VEC PDstandard2nd13gyz; + CCTK_REAL_VEC PDstandard2nd23gyz; + CCTK_REAL_VEC PDstandard2nd1gzz; + CCTK_REAL_VEC PDstandard2nd2gzz; + CCTK_REAL_VEC PDstandard2nd3gzz; + CCTK_REAL_VEC PDstandard2nd11gzz; + CCTK_REAL_VEC PDstandard2nd22gzz; + CCTK_REAL_VEC PDstandard2nd33gzz; + CCTK_REAL_VEC PDstandard2nd12gzz; + CCTK_REAL_VEC PDstandard2nd13gzz; + CCTK_REAL_VEC PDstandard2nd23gzz; + CCTK_REAL_VEC PDstandard2nd1kxx; + CCTK_REAL_VEC PDstandard2nd2kxx; + CCTK_REAL_VEC PDstandard2nd3kxx; + CCTK_REAL_VEC PDstandard2nd1kxy; + CCTK_REAL_VEC PDstandard2nd2kxy; + CCTK_REAL_VEC PDstandard2nd3kxy; + CCTK_REAL_VEC PDstandard2nd1kxz; + CCTK_REAL_VEC PDstandard2nd2kxz; + CCTK_REAL_VEC PDstandard2nd3kxz; + CCTK_REAL_VEC PDstandard2nd1kyy; + CCTK_REAL_VEC PDstandard2nd2kyy; + CCTK_REAL_VEC PDstandard2nd3kyy; + CCTK_REAL_VEC PDstandard2nd1kyz; + CCTK_REAL_VEC PDstandard2nd2kyz; + CCTK_REAL_VEC PDstandard2nd3kyz; + CCTK_REAL_VEC PDstandard2nd1kzz; + CCTK_REAL_VEC PDstandard2nd2kzz; + CCTK_REAL_VEC PDstandard2nd3kzz; + + switch(fdOrder) + { + case 2: + PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); + PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); + PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); + PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); + PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); + PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); + PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); + PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); + PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); + PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); + PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); + PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); + PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); + PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); + PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); + PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); + PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); + PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); + PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); + PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); + PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); + PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); + PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); + PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); + PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); + PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); + PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); + PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); + PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); + PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); + PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); + PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); + PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); + PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); + PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); + PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); + PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); + PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); + PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); + PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); + PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); + PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); + PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); + PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); + PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); + PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); + PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); + PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); + PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); + PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); + PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); + PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); + PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); + PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); + PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); + PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); + PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); + PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); + PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); + PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); + PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); + PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); + PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); + PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); + PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); + PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); + PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); + PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); + PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); + PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); + PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); + PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); + break; + + case 4: + PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); + PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); + PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); + PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); + PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); + PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); + PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); + PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); + PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); + PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); + PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); + PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); + PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); + PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); + PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); + PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); + PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); + PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); + PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); + PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); + PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); + PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); + PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); + PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); + PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); + PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); + PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); + PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); + PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); + PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); + PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); + PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); + PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); + PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); + PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); + PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); + PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); + PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); + PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); + PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); + PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); + PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); + PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); + PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); + PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); + PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); + PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); + PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); + PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); + PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); + PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); + PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); + PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); + PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); + PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); + PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); + PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); + PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); + PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); + PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); + PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); + PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); + PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); + PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); + PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); + PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); + PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); + PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); + PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); + PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); + PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); + PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); + break; + + case 6: + PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); + PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); + PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); + PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); + PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); + PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); + PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); + PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); + PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); + PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); + PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); + PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); + PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); + PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); + PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); + PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); + PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); + PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); + PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); + PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); + PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); + PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); + PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); + PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); + PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); + PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); + PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); + PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); + PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); + PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); + PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); + PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); + PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); + PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); + PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); + PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); + PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); + PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); + PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); + PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); + PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); + PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); + PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); + PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); + PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); + PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); + PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); + PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); + PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); + PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); + PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); + PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); + PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); + PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); + PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); + PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); + PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); + PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); + PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); + PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); + PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); + PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); + PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); + PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); + PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); + PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); + PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); + PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); + PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); + PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); + PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); + PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); + break; + + case 8: + PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); + PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); + PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); + PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); + PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); + PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); + PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); + PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); + PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); + PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); + PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); + PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); + PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); + PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); + PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); + PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); + PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); + PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); + PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); + PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); + PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); + PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); + PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); + PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); + PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); + PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); + PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); + PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); + PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); + PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); + PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); + PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); + PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); + PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); + PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); + PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); + PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); + PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); + PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); + PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); + PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); + PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); + PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); + PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); + PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); + PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); + PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); + PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); + PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); + PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); + PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); + PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); + PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); + PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); + PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); + PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); + PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); + PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); + PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); + PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); + PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); + PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); + PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); + PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); + PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); + PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); + PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); + PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); + PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); + PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); + PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); + PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandard2nd11gyy; + CCTK_REAL_VEC JacPDstandard2nd11gyz; + CCTK_REAL_VEC JacPDstandard2nd11gzz; + CCTK_REAL_VEC JacPDstandard2nd12gxy; + CCTK_REAL_VEC JacPDstandard2nd12gxz; + CCTK_REAL_VEC JacPDstandard2nd12gyz; + CCTK_REAL_VEC JacPDstandard2nd12gzz; + CCTK_REAL_VEC JacPDstandard2nd13gxz; + CCTK_REAL_VEC JacPDstandard2nd1gxx; + CCTK_REAL_VEC JacPDstandard2nd1gxy; + CCTK_REAL_VEC JacPDstandard2nd1gxz; + CCTK_REAL_VEC JacPDstandard2nd1gyy; + CCTK_REAL_VEC JacPDstandard2nd1gyz; + CCTK_REAL_VEC JacPDstandard2nd1gzz; + CCTK_REAL_VEC JacPDstandard2nd1kxy; + CCTK_REAL_VEC JacPDstandard2nd1kxz; + CCTK_REAL_VEC JacPDstandard2nd1kyy; + CCTK_REAL_VEC JacPDstandard2nd1kyz; + CCTK_REAL_VEC JacPDstandard2nd1kzz; + CCTK_REAL_VEC JacPDstandard2nd21gxy; + CCTK_REAL_VEC JacPDstandard2nd22gxx; + CCTK_REAL_VEC JacPDstandard2nd22gxz; + CCTK_REAL_VEC JacPDstandard2nd22gzz; + CCTK_REAL_VEC JacPDstandard2nd23gxx; + CCTK_REAL_VEC JacPDstandard2nd23gxy; + CCTK_REAL_VEC JacPDstandard2nd23gxz; + CCTK_REAL_VEC JacPDstandard2nd23gyz; + CCTK_REAL_VEC JacPDstandard2nd2gxx; + CCTK_REAL_VEC JacPDstandard2nd2gxy; + CCTK_REAL_VEC JacPDstandard2nd2gxz; + CCTK_REAL_VEC JacPDstandard2nd2gyy; + CCTK_REAL_VEC JacPDstandard2nd2gyz; + CCTK_REAL_VEC JacPDstandard2nd2gzz; + CCTK_REAL_VEC JacPDstandard2nd2kxx; + CCTK_REAL_VEC JacPDstandard2nd2kxy; + CCTK_REAL_VEC JacPDstandard2nd2kxz; + CCTK_REAL_VEC JacPDstandard2nd2kyz; + CCTK_REAL_VEC JacPDstandard2nd2kzz; + CCTK_REAL_VEC JacPDstandard2nd31gxy; + CCTK_REAL_VEC JacPDstandard2nd31gxz; + CCTK_REAL_VEC JacPDstandard2nd31gyy; + CCTK_REAL_VEC JacPDstandard2nd31gyz; + CCTK_REAL_VEC JacPDstandard2nd32gyz; + CCTK_REAL_VEC JacPDstandard2nd33gxx; + CCTK_REAL_VEC JacPDstandard2nd33gxy; + CCTK_REAL_VEC JacPDstandard2nd33gyy; + CCTK_REAL_VEC JacPDstandard2nd3gxx; + CCTK_REAL_VEC JacPDstandard2nd3gxy; + CCTK_REAL_VEC JacPDstandard2nd3gxz; + CCTK_REAL_VEC JacPDstandard2nd3gyy; + CCTK_REAL_VEC JacPDstandard2nd3gyz; + CCTK_REAL_VEC JacPDstandard2nd3gzz; + CCTK_REAL_VEC JacPDstandard2nd3kxx; + CCTK_REAL_VEC JacPDstandard2nd3kxy; + CCTK_REAL_VEC JacPDstandard2nd3kxz; + CCTK_REAL_VEC JacPDstandard2nd3kyy; + CCTK_REAL_VEC JacPDstandard2nd3kyz; + + if (use_jacobian) + { + JacPDstandard2nd1gxx = + kmadd(J11L,PDstandard2nd1gxx,kmadd(J21L,PDstandard2nd2gxx,kmul(J31L,PDstandard2nd3gxx))); + + JacPDstandard2nd1gxy = + kmadd(J11L,PDstandard2nd1gxy,kmadd(J21L,PDstandard2nd2gxy,kmul(J31L,PDstandard2nd3gxy))); + + JacPDstandard2nd1gxz = + kmadd(J11L,PDstandard2nd1gxz,kmadd(J21L,PDstandard2nd2gxz,kmul(J31L,PDstandard2nd3gxz))); + + JacPDstandard2nd1gyy = + kmadd(J11L,PDstandard2nd1gyy,kmadd(J21L,PDstandard2nd2gyy,kmul(J31L,PDstandard2nd3gyy))); + + JacPDstandard2nd1gyz = + kmadd(J11L,PDstandard2nd1gyz,kmadd(J21L,PDstandard2nd2gyz,kmul(J31L,PDstandard2nd3gyz))); + + JacPDstandard2nd1gzz = + kmadd(J11L,PDstandard2nd1gzz,kmadd(J21L,PDstandard2nd2gzz,kmul(J31L,PDstandard2nd3gzz))); + + JacPDstandard2nd1kxy = + kmadd(J11L,PDstandard2nd1kxy,kmadd(J21L,PDstandard2nd2kxy,kmul(J31L,PDstandard2nd3kxy))); + + JacPDstandard2nd1kxz = + kmadd(J11L,PDstandard2nd1kxz,kmadd(J21L,PDstandard2nd2kxz,kmul(J31L,PDstandard2nd3kxz))); + + JacPDstandard2nd1kyy = + kmadd(J11L,PDstandard2nd1kyy,kmadd(J21L,PDstandard2nd2kyy,kmul(J31L,PDstandard2nd3kyy))); + + JacPDstandard2nd1kyz = + kmadd(J11L,PDstandard2nd1kyz,kmadd(J21L,PDstandard2nd2kyz,kmul(J31L,PDstandard2nd3kyz))); + + JacPDstandard2nd1kzz = + kmadd(J11L,PDstandard2nd1kzz,kmadd(J21L,PDstandard2nd2kzz,kmul(J31L,PDstandard2nd3kzz))); + + JacPDstandard2nd2gxx = + kmadd(J12L,PDstandard2nd1gxx,kmadd(J22L,PDstandard2nd2gxx,kmul(J32L,PDstandard2nd3gxx))); + + JacPDstandard2nd2gxy = + kmadd(J12L,PDstandard2nd1gxy,kmadd(J22L,PDstandard2nd2gxy,kmul(J32L,PDstandard2nd3gxy))); + + JacPDstandard2nd2gxz = + kmadd(J12L,PDstandard2nd1gxz,kmadd(J22L,PDstandard2nd2gxz,kmul(J32L,PDstandard2nd3gxz))); + + JacPDstandard2nd2gyy = + kmadd(J12L,PDstandard2nd1gyy,kmadd(J22L,PDstandard2nd2gyy,kmul(J32L,PDstandard2nd3gyy))); + + JacPDstandard2nd2gyz = + kmadd(J12L,PDstandard2nd1gyz,kmadd(J22L,PDstandard2nd2gyz,kmul(J32L,PDstandard2nd3gyz))); + + JacPDstandard2nd2gzz = + kmadd(J12L,PDstandard2nd1gzz,kmadd(J22L,PDstandard2nd2gzz,kmul(J32L,PDstandard2nd3gzz))); + + JacPDstandard2nd2kxx = + kmadd(J12L,PDstandard2nd1kxx,kmadd(J22L,PDstandard2nd2kxx,kmul(J32L,PDstandard2nd3kxx))); + + JacPDstandard2nd2kxy = + kmadd(J12L,PDstandard2nd1kxy,kmadd(J22L,PDstandard2nd2kxy,kmul(J32L,PDstandard2nd3kxy))); + + JacPDstandard2nd2kxz = + kmadd(J12L,PDstandard2nd1kxz,kmadd(J22L,PDstandard2nd2kxz,kmul(J32L,PDstandard2nd3kxz))); + + JacPDstandard2nd2kyz = + kmadd(J12L,PDstandard2nd1kyz,kmadd(J22L,PDstandard2nd2kyz,kmul(J32L,PDstandard2nd3kyz))); + + JacPDstandard2nd2kzz = + kmadd(J12L,PDstandard2nd1kzz,kmadd(J22L,PDstandard2nd2kzz,kmul(J32L,PDstandard2nd3kzz))); + + JacPDstandard2nd3gxx = + kmadd(J13L,PDstandard2nd1gxx,kmadd(J23L,PDstandard2nd2gxx,kmul(J33L,PDstandard2nd3gxx))); + + JacPDstandard2nd3gxy = + kmadd(J13L,PDstandard2nd1gxy,kmadd(J23L,PDstandard2nd2gxy,kmul(J33L,PDstandard2nd3gxy))); + + JacPDstandard2nd3gxz = + kmadd(J13L,PDstandard2nd1gxz,kmadd(J23L,PDstandard2nd2gxz,kmul(J33L,PDstandard2nd3gxz))); + + JacPDstandard2nd3gyy = + kmadd(J13L,PDstandard2nd1gyy,kmadd(J23L,PDstandard2nd2gyy,kmul(J33L,PDstandard2nd3gyy))); + + JacPDstandard2nd3gyz = + kmadd(J13L,PDstandard2nd1gyz,kmadd(J23L,PDstandard2nd2gyz,kmul(J33L,PDstandard2nd3gyz))); + + JacPDstandard2nd3gzz = + kmadd(J13L,PDstandard2nd1gzz,kmadd(J23L,PDstandard2nd2gzz,kmul(J33L,PDstandard2nd3gzz))); + + JacPDstandard2nd3kxx = + kmadd(J13L,PDstandard2nd1kxx,kmadd(J23L,PDstandard2nd2kxx,kmul(J33L,PDstandard2nd3kxx))); + + JacPDstandard2nd3kxy = + kmadd(J13L,PDstandard2nd1kxy,kmadd(J23L,PDstandard2nd2kxy,kmul(J33L,PDstandard2nd3kxy))); + + JacPDstandard2nd3kxz = + kmadd(J13L,PDstandard2nd1kxz,kmadd(J23L,PDstandard2nd2kxz,kmul(J33L,PDstandard2nd3kxz))); + + JacPDstandard2nd3kyy = + kmadd(J13L,PDstandard2nd1kyy,kmadd(J23L,PDstandard2nd2kyy,kmul(J33L,PDstandard2nd3kyy))); + + JacPDstandard2nd3kyz = + kmadd(J13L,PDstandard2nd1kyz,kmadd(J23L,PDstandard2nd2kyz,kmul(J33L,PDstandard2nd3kyz))); + + JacPDstandard2nd11gyy = + kmadd(dJ111L,PDstandard2nd1gyy,kmadd(dJ211L,PDstandard2nd2gyy,kmadd(dJ311L,PDstandard2nd3gyy,kmadd(PDstandard2nd11gyy,kmul(J11L,J11L),kmadd(PDstandard2nd22gyy,kmul(J21L,J21L),kmadd(PDstandard2nd33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gyy,kmul(J31L,PDstandard2nd13gyy)),kmul(J21L,kmul(J31L,PDstandard2nd23gyy))),ToReal(2)))))))); + + JacPDstandard2nd11gyz = + kmadd(dJ111L,PDstandard2nd1gyz,kmadd(dJ211L,PDstandard2nd2gyz,kmadd(dJ311L,PDstandard2nd3gyz,kmadd(PDstandard2nd11gyz,kmul(J11L,J11L),kmadd(PDstandard2nd22gyz,kmul(J21L,J21L),kmadd(PDstandard2nd33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz)),kmul(J21L,kmul(J31L,PDstandard2nd23gyz))),ToReal(2)))))))); + + JacPDstandard2nd11gzz = + kmadd(dJ111L,PDstandard2nd1gzz,kmadd(dJ211L,PDstandard2nd2gzz,kmadd(dJ311L,PDstandard2nd3gzz,kmadd(PDstandard2nd11gzz,kmul(J11L,J11L),kmadd(PDstandard2nd22gzz,kmul(J21L,J21L),kmadd(PDstandard2nd33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gzz,kmul(J31L,PDstandard2nd13gzz)),kmul(J21L,kmul(J31L,PDstandard2nd23gzz))),ToReal(2)))))))); + + JacPDstandard2nd22gxx = + kmadd(dJ122L,PDstandard2nd1gxx,kmadd(dJ222L,PDstandard2nd2gxx,kmadd(dJ322L,PDstandard2nd3gxx,kmadd(PDstandard2nd11gxx,kmul(J12L,J12L),kmadd(PDstandard2nd22gxx,kmul(J22L,J22L),kmadd(PDstandard2nd33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gxx,kmul(J32L,PDstandard2nd13gxx)),kmul(J22L,kmul(J32L,PDstandard2nd23gxx))),ToReal(2)))))))); + + JacPDstandard2nd22gxz = + kmadd(dJ122L,PDstandard2nd1gxz,kmadd(dJ222L,PDstandard2nd2gxz,kmadd(dJ322L,PDstandard2nd3gxz,kmadd(PDstandard2nd11gxz,kmul(J12L,J12L),kmadd(PDstandard2nd22gxz,kmul(J22L,J22L),kmadd(PDstandard2nd33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz)),kmul(J22L,kmul(J32L,PDstandard2nd23gxz))),ToReal(2)))))))); + + JacPDstandard2nd22gzz = + kmadd(dJ122L,PDstandard2nd1gzz,kmadd(dJ222L,PDstandard2nd2gzz,kmadd(dJ322L,PDstandard2nd3gzz,kmadd(PDstandard2nd11gzz,kmul(J12L,J12L),kmadd(PDstandard2nd22gzz,kmul(J22L,J22L),kmadd(PDstandard2nd33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gzz,kmul(J32L,PDstandard2nd13gzz)),kmul(J22L,kmul(J32L,PDstandard2nd23gzz))),ToReal(2)))))))); + + JacPDstandard2nd33gxx = + kmadd(dJ133L,PDstandard2nd1gxx,kmadd(dJ233L,PDstandard2nd2gxx,kmadd(dJ333L,PDstandard2nd3gxx,kmadd(PDstandard2nd11gxx,kmul(J13L,J13L),kmadd(PDstandard2nd22gxx,kmul(J23L,J23L),kmadd(PDstandard2nd33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gxx,kmul(J33L,PDstandard2nd13gxx)),kmul(J23L,kmul(J33L,PDstandard2nd23gxx))),ToReal(2)))))))); + + JacPDstandard2nd33gxy = + kmadd(dJ133L,PDstandard2nd1gxy,kmadd(dJ233L,PDstandard2nd2gxy,kmadd(dJ333L,PDstandard2nd3gxy,kmadd(PDstandard2nd11gxy,kmul(J13L,J13L),kmadd(PDstandard2nd22gxy,kmul(J23L,J23L),kmadd(PDstandard2nd33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmul(J23L,kmul(J33L,PDstandard2nd23gxy))),ToReal(2)))))))); + + JacPDstandard2nd33gyy = + kmadd(dJ133L,PDstandard2nd1gyy,kmadd(dJ233L,PDstandard2nd2gyy,kmadd(dJ333L,PDstandard2nd3gyy,kmadd(PDstandard2nd11gyy,kmul(J13L,J13L),kmadd(PDstandard2nd22gyy,kmul(J23L,J23L),kmadd(PDstandard2nd33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gyy,kmul(J33L,PDstandard2nd13gyy)),kmul(J23L,kmul(J33L,PDstandard2nd23gyy))),ToReal(2)))))))); + + JacPDstandard2nd12gxy = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy)),kmadd(dJ112L,PDstandard2nd1gxy,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ212L,PDstandard2nd2gxy,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ312L,PDstandard2nd3gxy))))))); + + JacPDstandard2nd12gxz = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz)),kmadd(dJ112L,PDstandard2nd1gxz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ212L,PDstandard2nd2gxz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ312L,PDstandard2nd3gxz))))))); + + JacPDstandard2nd12gyz = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gyz,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz)),kmadd(dJ112L,PDstandard2nd1gyz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gyz,kmul(J31L,PDstandard2nd23gyz)),kmadd(dJ212L,PDstandard2nd2gyz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gyz,kmul(J31L,PDstandard2nd33gyz)),kmul(dJ312L,PDstandard2nd3gyz))))))); + + JacPDstandard2nd12gzz = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gzz,kmadd(J21L,PDstandard2nd12gzz,kmul(J31L,PDstandard2nd13gzz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gzz,kmul(J32L,PDstandard2nd13gzz)),kmadd(dJ112L,PDstandard2nd1gzz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gzz,kmul(J31L,PDstandard2nd23gzz)),kmadd(dJ212L,PDstandard2nd2gzz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gzz,kmul(J31L,PDstandard2nd33gzz)),kmul(dJ312L,PDstandard2nd3gzz))))))); + + JacPDstandard2nd13gxz = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ113L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ213L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ313L,PDstandard2nd3gxz))))))); + + JacPDstandard2nd21gxy = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy)),kmadd(dJ112L,PDstandard2nd1gxy,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ212L,PDstandard2nd2gxy,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ312L,PDstandard2nd3gxy))))))); + + JacPDstandard2nd23gxx = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gxx,kmadd(J22L,PDstandard2nd12gxx,kmul(J32L,PDstandard2nd13gxx))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxx,kmul(J33L,PDstandard2nd13gxx)),kmadd(dJ123L,PDstandard2nd1gxx,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxx,kmul(J32L,PDstandard2nd23gxx)),kmadd(dJ223L,PDstandard2nd2gxx,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxx,kmul(J32L,PDstandard2nd33gxx)),kmul(dJ323L,PDstandard2nd3gxx))))))); + + JacPDstandard2nd23gxy = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gxy,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmadd(dJ123L,PDstandard2nd1gxy,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxy,kmul(J32L,PDstandard2nd23gxy)),kmadd(dJ223L,PDstandard2nd2gxy,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxy,kmul(J32L,PDstandard2nd33gxy)),kmul(dJ323L,PDstandard2nd3gxy))))))); + + JacPDstandard2nd23gxz = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gxz,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ123L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxz,kmul(J32L,PDstandard2nd23gxz)),kmadd(dJ223L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxz,kmul(J32L,PDstandard2nd33gxz)),kmul(dJ323L,PDstandard2nd3gxz))))))); + + JacPDstandard2nd23gyz = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gyz,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ123L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gyz,kmul(J32L,PDstandard2nd23gyz)),kmadd(dJ223L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gyz,kmul(J32L,PDstandard2nd33gyz)),kmul(dJ323L,PDstandard2nd3gyz))))))); + + JacPDstandard2nd31gxy = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmadd(dJ113L,PDstandard2nd1gxy,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ213L,PDstandard2nd2gxy,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ313L,PDstandard2nd3gxy))))))); + + JacPDstandard2nd31gxz = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ113L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ213L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ313L,PDstandard2nd3gxz))))))); + + JacPDstandard2nd31gyy = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gyy,kmadd(J21L,PDstandard2nd12gyy,kmul(J31L,PDstandard2nd13gyy))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gyy,kmul(J33L,PDstandard2nd13gyy)),kmadd(dJ113L,PDstandard2nd1gyy,kmadd(J23L,kmadd(J21L,PDstandard2nd22gyy,kmul(J31L,PDstandard2nd23gyy)),kmadd(dJ213L,PDstandard2nd2gyy,kmadd(J33L,kmadd(J21L,PDstandard2nd23gyy,kmul(J31L,PDstandard2nd33gyy)),kmul(dJ313L,PDstandard2nd3gyy))))))); + + JacPDstandard2nd31gyz = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gyz,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ113L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gyz,kmul(J31L,PDstandard2nd23gyz)),kmadd(dJ213L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gyz,kmul(J31L,PDstandard2nd33gyz)),kmul(dJ313L,PDstandard2nd3gyz))))))); + + JacPDstandard2nd32gyz = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gyz,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ123L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gyz,kmul(J32L,PDstandard2nd23gyz)),kmadd(dJ223L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gyz,kmul(J32L,PDstandard2nd33gyz)),kmul(dJ323L,PDstandard2nd3gyz))))))); + } + else + { + JacPDstandard2nd1gxx = PDstandard2nd1gxx; + + JacPDstandard2nd1gxy = PDstandard2nd1gxy; + + JacPDstandard2nd1gxz = PDstandard2nd1gxz; + + JacPDstandard2nd1gyy = PDstandard2nd1gyy; + + JacPDstandard2nd1gyz = PDstandard2nd1gyz; + + JacPDstandard2nd1gzz = PDstandard2nd1gzz; + + JacPDstandard2nd1kxy = PDstandard2nd1kxy; + + JacPDstandard2nd1kxz = PDstandard2nd1kxz; + + JacPDstandard2nd1kyy = PDstandard2nd1kyy; + + JacPDstandard2nd1kyz = PDstandard2nd1kyz; + + JacPDstandard2nd1kzz = PDstandard2nd1kzz; + + JacPDstandard2nd2gxx = PDstandard2nd2gxx; + + JacPDstandard2nd2gxy = PDstandard2nd2gxy; + + JacPDstandard2nd2gxz = PDstandard2nd2gxz; + + JacPDstandard2nd2gyy = PDstandard2nd2gyy; + + JacPDstandard2nd2gyz = PDstandard2nd2gyz; + + JacPDstandard2nd2gzz = PDstandard2nd2gzz; + + JacPDstandard2nd2kxx = PDstandard2nd2kxx; + + JacPDstandard2nd2kxy = PDstandard2nd2kxy; + + JacPDstandard2nd2kxz = PDstandard2nd2kxz; + + JacPDstandard2nd2kyz = PDstandard2nd2kyz; + + JacPDstandard2nd2kzz = PDstandard2nd2kzz; + + JacPDstandard2nd3gxx = PDstandard2nd3gxx; + + JacPDstandard2nd3gxy = PDstandard2nd3gxy; + + JacPDstandard2nd3gxz = PDstandard2nd3gxz; + + JacPDstandard2nd3gyy = PDstandard2nd3gyy; + + JacPDstandard2nd3gyz = PDstandard2nd3gyz; + + JacPDstandard2nd3gzz = PDstandard2nd3gzz; + + JacPDstandard2nd3kxx = PDstandard2nd3kxx; + + JacPDstandard2nd3kxy = PDstandard2nd3kxy; + + JacPDstandard2nd3kxz = PDstandard2nd3kxz; + + JacPDstandard2nd3kyy = PDstandard2nd3kyy; + + JacPDstandard2nd3kyz = PDstandard2nd3kyz; + + JacPDstandard2nd11gyy = PDstandard2nd11gyy; + + JacPDstandard2nd11gyz = PDstandard2nd11gyz; + + JacPDstandard2nd11gzz = PDstandard2nd11gzz; + + JacPDstandard2nd22gxx = PDstandard2nd22gxx; + + JacPDstandard2nd22gxz = PDstandard2nd22gxz; + + JacPDstandard2nd22gzz = PDstandard2nd22gzz; + + JacPDstandard2nd33gxx = PDstandard2nd33gxx; + + JacPDstandard2nd33gxy = PDstandard2nd33gxy; + + JacPDstandard2nd33gyy = PDstandard2nd33gyy; + + JacPDstandard2nd12gxy = PDstandard2nd12gxy; + + JacPDstandard2nd12gxz = PDstandard2nd12gxz; + + JacPDstandard2nd12gyz = PDstandard2nd12gyz; + + JacPDstandard2nd12gzz = PDstandard2nd12gzz; + + JacPDstandard2nd13gxz = PDstandard2nd13gxz; + + JacPDstandard2nd21gxy = PDstandard2nd12gxy; + + JacPDstandard2nd23gxx = PDstandard2nd23gxx; + + JacPDstandard2nd23gxy = PDstandard2nd23gxy; + + JacPDstandard2nd23gxz = PDstandard2nd23gxz; + + JacPDstandard2nd23gyz = PDstandard2nd23gyz; + + JacPDstandard2nd31gxy = PDstandard2nd13gxy; + + JacPDstandard2nd31gxz = PDstandard2nd13gxz; + + JacPDstandard2nd31gyy = PDstandard2nd13gyy; + + JacPDstandard2nd31gyz = PDstandard2nd13gyz; + + JacPDstandard2nd32gyz = PDstandard2nd23gyz; + } + + CCTK_REAL_VEC detg = + knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); + + CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); + + CCTK_REAL_VEC gInv11 = + kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); + + CCTK_REAL_VEC gInv12 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv13 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv21 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv22 = + kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); + + CCTK_REAL_VEC gInv23 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv31 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv32 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv33 = + kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); + + CCTK_REAL_VEC gamma111 = + kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard2nd1gxx,knmsub(gInv12,JacPDstandard2nd2gxx,kmsub(kmadd(gInv12,JacPDstandard2nd1gxy,kmul(gInv13,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv13,JacPDstandard2nd3gxx))))); + + CCTK_REAL_VEC gamma211 = + kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard2nd1gxx,knmsub(gInv22,JacPDstandard2nd2gxx,kmsub(kmadd(gInv22,JacPDstandard2nd1gxy,kmul(gInv23,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv23,JacPDstandard2nd3gxx))))); + + CCTK_REAL_VEC gamma311 = + kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard2nd1gxx,knmsub(gInv32,JacPDstandard2nd2gxx,kmsub(kmadd(gInv32,JacPDstandard2nd1gxy,kmul(gInv33,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv33,JacPDstandard2nd3gxx))))); + + CCTK_REAL_VEC gamma121 = + kmul(kmadd(gInv12,JacPDstandard2nd1gyy,kmadd(gInv11,JacPDstandard2nd2gxx,kmul(gInv13,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma221 = + kmul(kmadd(gInv22,JacPDstandard2nd1gyy,kmadd(gInv21,JacPDstandard2nd2gxx,kmul(gInv23,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma321 = + kmul(kmadd(gInv32,JacPDstandard2nd1gyy,kmadd(gInv31,JacPDstandard2nd2gxx,kmul(gInv33,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma131 = + kmul(kmadd(gInv13,JacPDstandard2nd1gzz,kmadd(gInv11,JacPDstandard2nd3gxx,kmul(gInv12,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma231 = + kmul(kmadd(gInv23,JacPDstandard2nd1gzz,kmadd(gInv21,JacPDstandard2nd3gxx,kmul(gInv22,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma331 = + kmul(kmadd(gInv33,JacPDstandard2nd1gzz,kmadd(gInv31,JacPDstandard2nd3gxx,kmul(gInv32,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma122 = + kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2nd2gyy,kmadd(gInv11,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv13,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); + + CCTK_REAL_VEC gamma222 = + kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2nd2gyy,kmadd(gInv21,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv23,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); + + CCTK_REAL_VEC gamma322 = + kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2nd2gyy,kmadd(gInv31,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv33,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); + + CCTK_REAL_VEC gamma132 = + kmul(kmadd(gInv13,JacPDstandard2nd2gzz,kmadd(gInv12,JacPDstandard2nd3gyy,kmul(gInv11,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma232 = + kmul(kmadd(gInv23,JacPDstandard2nd2gzz,kmadd(gInv22,JacPDstandard2nd3gyy,kmul(gInv21,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma332 = + kmul(kmadd(gInv33,JacPDstandard2nd2gzz,kmadd(gInv32,JacPDstandard2nd3gyy,kmul(gInv31,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma133 = + kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard2nd3gzz,kmadd(gInv11,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv12,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); + + CCTK_REAL_VEC gamma233 = + kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard2nd3gzz,kmadd(gInv21,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv22,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); + + CCTK_REAL_VEC gamma333 = + kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard2nd3gzz,kmadd(gInv31,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv32,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); + + CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); + + CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); + + CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); + + CCTK_REAL_VEC va1 = kneg(ymoved); + + CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC va3 = ToReal(0); + + CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC vb2 = ymoved; + + CCTK_REAL_VEC vb3 = zmoved; + + CCTK_REAL_VEC vc1 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); + + CCTK_REAL_VEC vc2 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); + + CCTK_REAL_VEC vc3 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); + + CCTK_REAL_VEC wa1 = va1; + + CCTK_REAL_VEC wa2 = va2; + + CCTK_REAL_VEC wa3 = va3; + + CCTK_REAL_VEC omega11 = + kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); + + CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); + + CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); + + CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); + + CCTK_REAL_VEC omega12 = + kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); + + CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); + + CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); + + CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); + + CCTK_REAL_VEC omega22 = + kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); + + CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); + + CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); + + CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); + + CCTK_REAL_VEC omega13 = + kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC omega23 = + kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); + + CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); + + CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); + + CCTK_REAL_VEC omega33 = + kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); + + CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); + + CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); + + CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); + + CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); + + CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); + + CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); + + CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); + + CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); + + CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); + + CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); + + CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); + + CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); + + CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); + + CCTK_REAL_VEC nn = isqrt2; + + CCTK_REAL_VEC R1212 = + kmul(ToReal(0.5),kadd(JacPDstandard2nd12gxy,kadd(JacPDstandard2nd21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard2nd22gxx),JacPDstandard2nd11gyy))))); + + CCTK_REAL_VEC R1213 = + kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard2nd12gxz,kadd(JacPDstandard2nd31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard2nd23gxx),JacPDstandard2nd11gyz)))))); + + CCTK_REAL_VEC R1223 = + kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard2nd22gxz,kadd(JacPDstandard2nd31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard2nd23gxy),JacPDstandard2nd12gyz)))))); + + CCTK_REAL_VEC R1313 = + kmul(ToReal(0.5),kadd(JacPDstandard2nd13gxz,kadd(JacPDstandard2nd31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard2nd33gxx),JacPDstandard2nd11gzz))))); + + CCTK_REAL_VEC R1323 = + kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard2nd23gxz,kadd(JacPDstandard2nd31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard2nd33gxy),JacPDstandard2nd12gzz)))))); + + CCTK_REAL_VEC R2323 = + kmul(ToReal(0.5),kadd(JacPDstandard2nd23gyz,kadd(JacPDstandard2nd32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard2nd33gyy),JacPDstandard2nd22gzz))))); + + CCTK_REAL_VEC R4p1212 = + kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); + + CCTK_REAL_VEC R4p1213 = + kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); + + CCTK_REAL_VEC R4p1223 = + kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); + + CCTK_REAL_VEC R4p1313 = + kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); + + CCTK_REAL_VEC R4p1323 = + kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); + + CCTK_REAL_VEC R4p2323 = + kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); + + CCTK_REAL_VEC Ro111 = ToReal(0); + + CCTK_REAL_VEC Ro112 = + kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard2nd1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2nd2kxx)))))); + + CCTK_REAL_VEC Ro113 = + kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard2nd1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard2nd3kxx)))))); + + CCTK_REAL_VEC Ro121 = + kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2nd2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard2nd1kxy)))))); + + CCTK_REAL_VEC Ro122 = ToReal(0); + + CCTK_REAL_VEC Ro123 = + kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2nd2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard2nd3kxy)))))); + + CCTK_REAL_VEC Ro131 = + kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard2nd3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard2nd1kxz)))))); + + CCTK_REAL_VEC Ro132 = + kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard2nd3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2nd2kxz)))))); + + CCTK_REAL_VEC Ro133 = ToReal(0); + + CCTK_REAL_VEC Ro211 = ToReal(0); + + CCTK_REAL_VEC Ro212 = + kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard2nd1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2nd2kxy)))))); + + CCTK_REAL_VEC Ro213 = + kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard2nd1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard2nd3kxy)))))); + + CCTK_REAL_VEC Ro221 = + kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2nd2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard2nd1kyy)))))); + + CCTK_REAL_VEC Ro222 = ToReal(0); + + CCTK_REAL_VEC Ro223 = + kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2nd2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard2nd3kyy)))))); + + CCTK_REAL_VEC Ro231 = + kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard2nd3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard2nd1kyz)))))); + + CCTK_REAL_VEC Ro232 = + kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard2nd3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2nd2kyz)))))); + + CCTK_REAL_VEC Ro233 = ToReal(0); + + CCTK_REAL_VEC Ro311 = ToReal(0); + + CCTK_REAL_VEC Ro312 = + kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard2nd1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2nd2kxz)))))); + + CCTK_REAL_VEC Ro313 = + kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard2nd1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard2nd3kxz)))))); + + CCTK_REAL_VEC Ro321 = + kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2nd2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard2nd1kyz)))))); + + CCTK_REAL_VEC Ro322 = ToReal(0); + + CCTK_REAL_VEC Ro323 = + kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2nd2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard2nd3kyz)))))); + + CCTK_REAL_VEC Ro331 = + kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard2nd3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard2nd1kzz)))))); + + CCTK_REAL_VEC Ro332 = + kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard2nd3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2nd2kzz)))))); + + CCTK_REAL_VEC Ro333 = ToReal(0); + + CCTK_REAL_VEC Rojo11 = + kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); + + CCTK_REAL_VEC Rojo12 = + kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo13 = + kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); + + CCTK_REAL_VEC Rojo21 = + kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo22 = + kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Rojo23 = + kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo31 = + kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); + + CCTK_REAL_VEC Rojo32 = + kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo33 = + kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Psi4rL = + kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi4iL = + knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(Psi4i[index],Psi4iL); + vec_store_nta_partial(Psi4r[index],Psi4rL); + } + LC_ENDLOOP3VEC(WeylScal4_psi4_calc_2nd); +} + +extern "C" void WeylScal4_psi4_calc_2nd(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_psi4_calc_2nd_Body"); + } + + if (cctk_iteration % WeylScal4_psi4_calc_2nd_calc_every != WeylScal4_psi4_calc_2nd_calc_offset) + { + return; + } + + const char *const groups[] = { + "admbase::curv", + "admbase::metric", + "grid::coordinates", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_psi4_calc_2nd", 5, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_2nd", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_2nd", 1, 1, 1); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_2nd", 1, 1, 1); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_2nd", 1, 1, 1); + break; + } + + GenericFD_LoopOverInterior(cctkGH, WeylScal4_psi4_calc_2nd_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_psi4_calc_2nd_Body"); + } +} diff --git a/src/WeylScal4_psi4_calc_4th.cc b/src/WeylScal4_psi4_calc_4th.cc new file mode 100644 index 0000000..491e384 --- /dev/null +++ b/src/WeylScal4_psi4_calc_4th.cc @@ -0,0 +1,1356 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +extern "C" void WeylScal4_psi4_calc_4th_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); + return; +} + +static void WeylScal4_psi4_calc_4th_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_psi4_calc_4th, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC gxxL = vec_load(gxx[index]); + CCTK_REAL_VEC gxyL = vec_load(gxy[index]); + CCTK_REAL_VEC gxzL = vec_load(gxz[index]); + CCTK_REAL_VEC gyyL = vec_load(gyy[index]); + CCTK_REAL_VEC gyzL = vec_load(gyz[index]); + CCTK_REAL_VEC gzzL = vec_load(gzz[index]); + CCTK_REAL_VEC kxxL = vec_load(kxx[index]); + CCTK_REAL_VEC kxyL = vec_load(kxy[index]); + CCTK_REAL_VEC kxzL = vec_load(kxz[index]); + CCTK_REAL_VEC kyyL = vec_load(kyy[index]); + CCTK_REAL_VEC kyzL = vec_load(kyz[index]); + CCTK_REAL_VEC kzzL = vec_load(kzz[index]); + CCTK_REAL_VEC xL = vec_load(x[index]); + CCTK_REAL_VEC yL = vec_load(y[index]); + CCTK_REAL_VEC zL = vec_load(z[index]); + + + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + + /* Include user supplied include files */ + + /* Precompute derivatives */ + CCTK_REAL_VEC PDstandard4th1gxx; + CCTK_REAL_VEC PDstandard4th2gxx; + CCTK_REAL_VEC PDstandard4th3gxx; + CCTK_REAL_VEC PDstandard4th11gxx; + CCTK_REAL_VEC PDstandard4th22gxx; + CCTK_REAL_VEC PDstandard4th33gxx; + CCTK_REAL_VEC PDstandard4th12gxx; + CCTK_REAL_VEC PDstandard4th13gxx; + CCTK_REAL_VEC PDstandard4th23gxx; + CCTK_REAL_VEC PDstandard4th1gxy; + CCTK_REAL_VEC PDstandard4th2gxy; + CCTK_REAL_VEC PDstandard4th3gxy; + CCTK_REAL_VEC PDstandard4th11gxy; + CCTK_REAL_VEC PDstandard4th22gxy; + CCTK_REAL_VEC PDstandard4th33gxy; + CCTK_REAL_VEC PDstandard4th12gxy; + CCTK_REAL_VEC PDstandard4th13gxy; + CCTK_REAL_VEC PDstandard4th23gxy; + CCTK_REAL_VEC PDstandard4th1gxz; + CCTK_REAL_VEC PDstandard4th2gxz; + CCTK_REAL_VEC PDstandard4th3gxz; + CCTK_REAL_VEC PDstandard4th11gxz; + CCTK_REAL_VEC PDstandard4th22gxz; + CCTK_REAL_VEC PDstandard4th33gxz; + CCTK_REAL_VEC PDstandard4th12gxz; + CCTK_REAL_VEC PDstandard4th13gxz; + CCTK_REAL_VEC PDstandard4th23gxz; + CCTK_REAL_VEC PDstandard4th1gyy; + CCTK_REAL_VEC PDstandard4th2gyy; + CCTK_REAL_VEC PDstandard4th3gyy; + CCTK_REAL_VEC PDstandard4th11gyy; + CCTK_REAL_VEC PDstandard4th22gyy; + CCTK_REAL_VEC PDstandard4th33gyy; + CCTK_REAL_VEC PDstandard4th12gyy; + CCTK_REAL_VEC PDstandard4th13gyy; + CCTK_REAL_VEC PDstandard4th23gyy; + CCTK_REAL_VEC PDstandard4th1gyz; + CCTK_REAL_VEC PDstandard4th2gyz; + CCTK_REAL_VEC PDstandard4th3gyz; + CCTK_REAL_VEC PDstandard4th11gyz; + CCTK_REAL_VEC PDstandard4th22gyz; + CCTK_REAL_VEC PDstandard4th33gyz; + CCTK_REAL_VEC PDstandard4th12gyz; + CCTK_REAL_VEC PDstandard4th13gyz; + CCTK_REAL_VEC PDstandard4th23gyz; + CCTK_REAL_VEC PDstandard4th1gzz; + CCTK_REAL_VEC PDstandard4th2gzz; + CCTK_REAL_VEC PDstandard4th3gzz; + CCTK_REAL_VEC PDstandard4th11gzz; + CCTK_REAL_VEC PDstandard4th22gzz; + CCTK_REAL_VEC PDstandard4th33gzz; + CCTK_REAL_VEC PDstandard4th12gzz; + CCTK_REAL_VEC PDstandard4th13gzz; + CCTK_REAL_VEC PDstandard4th23gzz; + CCTK_REAL_VEC PDstandard4th1kxx; + CCTK_REAL_VEC PDstandard4th2kxx; + CCTK_REAL_VEC PDstandard4th3kxx; + CCTK_REAL_VEC PDstandard4th1kxy; + CCTK_REAL_VEC PDstandard4th2kxy; + CCTK_REAL_VEC PDstandard4th3kxy; + CCTK_REAL_VEC PDstandard4th1kxz; + CCTK_REAL_VEC PDstandard4th2kxz; + CCTK_REAL_VEC PDstandard4th3kxz; + CCTK_REAL_VEC PDstandard4th1kyy; + CCTK_REAL_VEC PDstandard4th2kyy; + CCTK_REAL_VEC PDstandard4th3kyy; + CCTK_REAL_VEC PDstandard4th1kyz; + CCTK_REAL_VEC PDstandard4th2kyz; + CCTK_REAL_VEC PDstandard4th3kyz; + CCTK_REAL_VEC PDstandard4th1kzz; + CCTK_REAL_VEC PDstandard4th2kzz; + CCTK_REAL_VEC PDstandard4th3kzz; + + switch(fdOrder) + { + case 2: + PDstandard4th1gxx = PDstandard4th1(&gxx[index]); + PDstandard4th2gxx = PDstandard4th2(&gxx[index]); + PDstandard4th3gxx = PDstandard4th3(&gxx[index]); + PDstandard4th11gxx = PDstandard4th11(&gxx[index]); + PDstandard4th22gxx = PDstandard4th22(&gxx[index]); + PDstandard4th33gxx = PDstandard4th33(&gxx[index]); + PDstandard4th12gxx = PDstandard4th12(&gxx[index]); + PDstandard4th13gxx = PDstandard4th13(&gxx[index]); + PDstandard4th23gxx = PDstandard4th23(&gxx[index]); + PDstandard4th1gxy = PDstandard4th1(&gxy[index]); + PDstandard4th2gxy = PDstandard4th2(&gxy[index]); + PDstandard4th3gxy = PDstandard4th3(&gxy[index]); + PDstandard4th11gxy = PDstandard4th11(&gxy[index]); + PDstandard4th22gxy = PDstandard4th22(&gxy[index]); + PDstandard4th33gxy = PDstandard4th33(&gxy[index]); + PDstandard4th12gxy = PDstandard4th12(&gxy[index]); + PDstandard4th13gxy = PDstandard4th13(&gxy[index]); + PDstandard4th23gxy = PDstandard4th23(&gxy[index]); + PDstandard4th1gxz = PDstandard4th1(&gxz[index]); + PDstandard4th2gxz = PDstandard4th2(&gxz[index]); + PDstandard4th3gxz = PDstandard4th3(&gxz[index]); + PDstandard4th11gxz = PDstandard4th11(&gxz[index]); + PDstandard4th22gxz = PDstandard4th22(&gxz[index]); + PDstandard4th33gxz = PDstandard4th33(&gxz[index]); + PDstandard4th12gxz = PDstandard4th12(&gxz[index]); + PDstandard4th13gxz = PDstandard4th13(&gxz[index]); + PDstandard4th23gxz = PDstandard4th23(&gxz[index]); + PDstandard4th1gyy = PDstandard4th1(&gyy[index]); + PDstandard4th2gyy = PDstandard4th2(&gyy[index]); + PDstandard4th3gyy = PDstandard4th3(&gyy[index]); + PDstandard4th11gyy = PDstandard4th11(&gyy[index]); + PDstandard4th22gyy = PDstandard4th22(&gyy[index]); + PDstandard4th33gyy = PDstandard4th33(&gyy[index]); + PDstandard4th12gyy = PDstandard4th12(&gyy[index]); + PDstandard4th13gyy = PDstandard4th13(&gyy[index]); + PDstandard4th23gyy = PDstandard4th23(&gyy[index]); + PDstandard4th1gyz = PDstandard4th1(&gyz[index]); + PDstandard4th2gyz = PDstandard4th2(&gyz[index]); + PDstandard4th3gyz = PDstandard4th3(&gyz[index]); + PDstandard4th11gyz = PDstandard4th11(&gyz[index]); + PDstandard4th22gyz = PDstandard4th22(&gyz[index]); + PDstandard4th33gyz = PDstandard4th33(&gyz[index]); + PDstandard4th12gyz = PDstandard4th12(&gyz[index]); + PDstandard4th13gyz = PDstandard4th13(&gyz[index]); + PDstandard4th23gyz = PDstandard4th23(&gyz[index]); + PDstandard4th1gzz = PDstandard4th1(&gzz[index]); + PDstandard4th2gzz = PDstandard4th2(&gzz[index]); + PDstandard4th3gzz = PDstandard4th3(&gzz[index]); + PDstandard4th11gzz = PDstandard4th11(&gzz[index]); + PDstandard4th22gzz = PDstandard4th22(&gzz[index]); + PDstandard4th33gzz = PDstandard4th33(&gzz[index]); + PDstandard4th12gzz = PDstandard4th12(&gzz[index]); + PDstandard4th13gzz = PDstandard4th13(&gzz[index]); + PDstandard4th23gzz = PDstandard4th23(&gzz[index]); + PDstandard4th1kxx = PDstandard4th1(&kxx[index]); + PDstandard4th2kxx = PDstandard4th2(&kxx[index]); + PDstandard4th3kxx = PDstandard4th3(&kxx[index]); + PDstandard4th1kxy = PDstandard4th1(&kxy[index]); + PDstandard4th2kxy = PDstandard4th2(&kxy[index]); + PDstandard4th3kxy = PDstandard4th3(&kxy[index]); + PDstandard4th1kxz = PDstandard4th1(&kxz[index]); + PDstandard4th2kxz = PDstandard4th2(&kxz[index]); + PDstandard4th3kxz = PDstandard4th3(&kxz[index]); + PDstandard4th1kyy = PDstandard4th1(&kyy[index]); + PDstandard4th2kyy = PDstandard4th2(&kyy[index]); + PDstandard4th3kyy = PDstandard4th3(&kyy[index]); + PDstandard4th1kyz = PDstandard4th1(&kyz[index]); + PDstandard4th2kyz = PDstandard4th2(&kyz[index]); + PDstandard4th3kyz = PDstandard4th3(&kyz[index]); + PDstandard4th1kzz = PDstandard4th1(&kzz[index]); + PDstandard4th2kzz = PDstandard4th2(&kzz[index]); + PDstandard4th3kzz = PDstandard4th3(&kzz[index]); + break; + + case 4: + PDstandard4th1gxx = PDstandard4th1(&gxx[index]); + PDstandard4th2gxx = PDstandard4th2(&gxx[index]); + PDstandard4th3gxx = PDstandard4th3(&gxx[index]); + PDstandard4th11gxx = PDstandard4th11(&gxx[index]); + PDstandard4th22gxx = PDstandard4th22(&gxx[index]); + PDstandard4th33gxx = PDstandard4th33(&gxx[index]); + PDstandard4th12gxx = PDstandard4th12(&gxx[index]); + PDstandard4th13gxx = PDstandard4th13(&gxx[index]); + PDstandard4th23gxx = PDstandard4th23(&gxx[index]); + PDstandard4th1gxy = PDstandard4th1(&gxy[index]); + PDstandard4th2gxy = PDstandard4th2(&gxy[index]); + PDstandard4th3gxy = PDstandard4th3(&gxy[index]); + PDstandard4th11gxy = PDstandard4th11(&gxy[index]); + PDstandard4th22gxy = PDstandard4th22(&gxy[index]); + PDstandard4th33gxy = PDstandard4th33(&gxy[index]); + PDstandard4th12gxy = PDstandard4th12(&gxy[index]); + PDstandard4th13gxy = PDstandard4th13(&gxy[index]); + PDstandard4th23gxy = PDstandard4th23(&gxy[index]); + PDstandard4th1gxz = PDstandard4th1(&gxz[index]); + PDstandard4th2gxz = PDstandard4th2(&gxz[index]); + PDstandard4th3gxz = PDstandard4th3(&gxz[index]); + PDstandard4th11gxz = PDstandard4th11(&gxz[index]); + PDstandard4th22gxz = PDstandard4th22(&gxz[index]); + PDstandard4th33gxz = PDstandard4th33(&gxz[index]); + PDstandard4th12gxz = PDstandard4th12(&gxz[index]); + PDstandard4th13gxz = PDstandard4th13(&gxz[index]); + PDstandard4th23gxz = PDstandard4th23(&gxz[index]); + PDstandard4th1gyy = PDstandard4th1(&gyy[index]); + PDstandard4th2gyy = PDstandard4th2(&gyy[index]); + PDstandard4th3gyy = PDstandard4th3(&gyy[index]); + PDstandard4th11gyy = PDstandard4th11(&gyy[index]); + PDstandard4th22gyy = PDstandard4th22(&gyy[index]); + PDstandard4th33gyy = PDstandard4th33(&gyy[index]); + PDstandard4th12gyy = PDstandard4th12(&gyy[index]); + PDstandard4th13gyy = PDstandard4th13(&gyy[index]); + PDstandard4th23gyy = PDstandard4th23(&gyy[index]); + PDstandard4th1gyz = PDstandard4th1(&gyz[index]); + PDstandard4th2gyz = PDstandard4th2(&gyz[index]); + PDstandard4th3gyz = PDstandard4th3(&gyz[index]); + PDstandard4th11gyz = PDstandard4th11(&gyz[index]); + PDstandard4th22gyz = PDstandard4th22(&gyz[index]); + PDstandard4th33gyz = PDstandard4th33(&gyz[index]); + PDstandard4th12gyz = PDstandard4th12(&gyz[index]); + PDstandard4th13gyz = PDstandard4th13(&gyz[index]); + PDstandard4th23gyz = PDstandard4th23(&gyz[index]); + PDstandard4th1gzz = PDstandard4th1(&gzz[index]); + PDstandard4th2gzz = PDstandard4th2(&gzz[index]); + PDstandard4th3gzz = PDstandard4th3(&gzz[index]); + PDstandard4th11gzz = PDstandard4th11(&gzz[index]); + PDstandard4th22gzz = PDstandard4th22(&gzz[index]); + PDstandard4th33gzz = PDstandard4th33(&gzz[index]); + PDstandard4th12gzz = PDstandard4th12(&gzz[index]); + PDstandard4th13gzz = PDstandard4th13(&gzz[index]); + PDstandard4th23gzz = PDstandard4th23(&gzz[index]); + PDstandard4th1kxx = PDstandard4th1(&kxx[index]); + PDstandard4th2kxx = PDstandard4th2(&kxx[index]); + PDstandard4th3kxx = PDstandard4th3(&kxx[index]); + PDstandard4th1kxy = PDstandard4th1(&kxy[index]); + PDstandard4th2kxy = PDstandard4th2(&kxy[index]); + PDstandard4th3kxy = PDstandard4th3(&kxy[index]); + PDstandard4th1kxz = PDstandard4th1(&kxz[index]); + PDstandard4th2kxz = PDstandard4th2(&kxz[index]); + PDstandard4th3kxz = PDstandard4th3(&kxz[index]); + PDstandard4th1kyy = PDstandard4th1(&kyy[index]); + PDstandard4th2kyy = PDstandard4th2(&kyy[index]); + PDstandard4th3kyy = PDstandard4th3(&kyy[index]); + PDstandard4th1kyz = PDstandard4th1(&kyz[index]); + PDstandard4th2kyz = PDstandard4th2(&kyz[index]); + PDstandard4th3kyz = PDstandard4th3(&kyz[index]); + PDstandard4th1kzz = PDstandard4th1(&kzz[index]); + PDstandard4th2kzz = PDstandard4th2(&kzz[index]); + PDstandard4th3kzz = PDstandard4th3(&kzz[index]); + break; + + case 6: + PDstandard4th1gxx = PDstandard4th1(&gxx[index]); + PDstandard4th2gxx = PDstandard4th2(&gxx[index]); + PDstandard4th3gxx = PDstandard4th3(&gxx[index]); + PDstandard4th11gxx = PDstandard4th11(&gxx[index]); + PDstandard4th22gxx = PDstandard4th22(&gxx[index]); + PDstandard4th33gxx = PDstandard4th33(&gxx[index]); + PDstandard4th12gxx = PDstandard4th12(&gxx[index]); + PDstandard4th13gxx = PDstandard4th13(&gxx[index]); + PDstandard4th23gxx = PDstandard4th23(&gxx[index]); + PDstandard4th1gxy = PDstandard4th1(&gxy[index]); + PDstandard4th2gxy = PDstandard4th2(&gxy[index]); + PDstandard4th3gxy = PDstandard4th3(&gxy[index]); + PDstandard4th11gxy = PDstandard4th11(&gxy[index]); + PDstandard4th22gxy = PDstandard4th22(&gxy[index]); + PDstandard4th33gxy = PDstandard4th33(&gxy[index]); + PDstandard4th12gxy = PDstandard4th12(&gxy[index]); + PDstandard4th13gxy = PDstandard4th13(&gxy[index]); + PDstandard4th23gxy = PDstandard4th23(&gxy[index]); + PDstandard4th1gxz = PDstandard4th1(&gxz[index]); + PDstandard4th2gxz = PDstandard4th2(&gxz[index]); + PDstandard4th3gxz = PDstandard4th3(&gxz[index]); + PDstandard4th11gxz = PDstandard4th11(&gxz[index]); + PDstandard4th22gxz = PDstandard4th22(&gxz[index]); + PDstandard4th33gxz = PDstandard4th33(&gxz[index]); + PDstandard4th12gxz = PDstandard4th12(&gxz[index]); + PDstandard4th13gxz = PDstandard4th13(&gxz[index]); + PDstandard4th23gxz = PDstandard4th23(&gxz[index]); + PDstandard4th1gyy = PDstandard4th1(&gyy[index]); + PDstandard4th2gyy = PDstandard4th2(&gyy[index]); + PDstandard4th3gyy = PDstandard4th3(&gyy[index]); + PDstandard4th11gyy = PDstandard4th11(&gyy[index]); + PDstandard4th22gyy = PDstandard4th22(&gyy[index]); + PDstandard4th33gyy = PDstandard4th33(&gyy[index]); + PDstandard4th12gyy = PDstandard4th12(&gyy[index]); + PDstandard4th13gyy = PDstandard4th13(&gyy[index]); + PDstandard4th23gyy = PDstandard4th23(&gyy[index]); + PDstandard4th1gyz = PDstandard4th1(&gyz[index]); + PDstandard4th2gyz = PDstandard4th2(&gyz[index]); + PDstandard4th3gyz = PDstandard4th3(&gyz[index]); + PDstandard4th11gyz = PDstandard4th11(&gyz[index]); + PDstandard4th22gyz = PDstandard4th22(&gyz[index]); + PDstandard4th33gyz = PDstandard4th33(&gyz[index]); + PDstandard4th12gyz = PDstandard4th12(&gyz[index]); + PDstandard4th13gyz = PDstandard4th13(&gyz[index]); + PDstandard4th23gyz = PDstandard4th23(&gyz[index]); + PDstandard4th1gzz = PDstandard4th1(&gzz[index]); + PDstandard4th2gzz = PDstandard4th2(&gzz[index]); + PDstandard4th3gzz = PDstandard4th3(&gzz[index]); + PDstandard4th11gzz = PDstandard4th11(&gzz[index]); + PDstandard4th22gzz = PDstandard4th22(&gzz[index]); + PDstandard4th33gzz = PDstandard4th33(&gzz[index]); + PDstandard4th12gzz = PDstandard4th12(&gzz[index]); + PDstandard4th13gzz = PDstandard4th13(&gzz[index]); + PDstandard4th23gzz = PDstandard4th23(&gzz[index]); + PDstandard4th1kxx = PDstandard4th1(&kxx[index]); + PDstandard4th2kxx = PDstandard4th2(&kxx[index]); + PDstandard4th3kxx = PDstandard4th3(&kxx[index]); + PDstandard4th1kxy = PDstandard4th1(&kxy[index]); + PDstandard4th2kxy = PDstandard4th2(&kxy[index]); + PDstandard4th3kxy = PDstandard4th3(&kxy[index]); + PDstandard4th1kxz = PDstandard4th1(&kxz[index]); + PDstandard4th2kxz = PDstandard4th2(&kxz[index]); + PDstandard4th3kxz = PDstandard4th3(&kxz[index]); + PDstandard4th1kyy = PDstandard4th1(&kyy[index]); + PDstandard4th2kyy = PDstandard4th2(&kyy[index]); + PDstandard4th3kyy = PDstandard4th3(&kyy[index]); + PDstandard4th1kyz = PDstandard4th1(&kyz[index]); + PDstandard4th2kyz = PDstandard4th2(&kyz[index]); + PDstandard4th3kyz = PDstandard4th3(&kyz[index]); + PDstandard4th1kzz = PDstandard4th1(&kzz[index]); + PDstandard4th2kzz = PDstandard4th2(&kzz[index]); + PDstandard4th3kzz = PDstandard4th3(&kzz[index]); + break; + + case 8: + PDstandard4th1gxx = PDstandard4th1(&gxx[index]); + PDstandard4th2gxx = PDstandard4th2(&gxx[index]); + PDstandard4th3gxx = PDstandard4th3(&gxx[index]); + PDstandard4th11gxx = PDstandard4th11(&gxx[index]); + PDstandard4th22gxx = PDstandard4th22(&gxx[index]); + PDstandard4th33gxx = PDstandard4th33(&gxx[index]); + PDstandard4th12gxx = PDstandard4th12(&gxx[index]); + PDstandard4th13gxx = PDstandard4th13(&gxx[index]); + PDstandard4th23gxx = PDstandard4th23(&gxx[index]); + PDstandard4th1gxy = PDstandard4th1(&gxy[index]); + PDstandard4th2gxy = PDstandard4th2(&gxy[index]); + PDstandard4th3gxy = PDstandard4th3(&gxy[index]); + PDstandard4th11gxy = PDstandard4th11(&gxy[index]); + PDstandard4th22gxy = PDstandard4th22(&gxy[index]); + PDstandard4th33gxy = PDstandard4th33(&gxy[index]); + PDstandard4th12gxy = PDstandard4th12(&gxy[index]); + PDstandard4th13gxy = PDstandard4th13(&gxy[index]); + PDstandard4th23gxy = PDstandard4th23(&gxy[index]); + PDstandard4th1gxz = PDstandard4th1(&gxz[index]); + PDstandard4th2gxz = PDstandard4th2(&gxz[index]); + PDstandard4th3gxz = PDstandard4th3(&gxz[index]); + PDstandard4th11gxz = PDstandard4th11(&gxz[index]); + PDstandard4th22gxz = PDstandard4th22(&gxz[index]); + PDstandard4th33gxz = PDstandard4th33(&gxz[index]); + PDstandard4th12gxz = PDstandard4th12(&gxz[index]); + PDstandard4th13gxz = PDstandard4th13(&gxz[index]); + PDstandard4th23gxz = PDstandard4th23(&gxz[index]); + PDstandard4th1gyy = PDstandard4th1(&gyy[index]); + PDstandard4th2gyy = PDstandard4th2(&gyy[index]); + PDstandard4th3gyy = PDstandard4th3(&gyy[index]); + PDstandard4th11gyy = PDstandard4th11(&gyy[index]); + PDstandard4th22gyy = PDstandard4th22(&gyy[index]); + PDstandard4th33gyy = PDstandard4th33(&gyy[index]); + PDstandard4th12gyy = PDstandard4th12(&gyy[index]); + PDstandard4th13gyy = PDstandard4th13(&gyy[index]); + PDstandard4th23gyy = PDstandard4th23(&gyy[index]); + PDstandard4th1gyz = PDstandard4th1(&gyz[index]); + PDstandard4th2gyz = PDstandard4th2(&gyz[index]); + PDstandard4th3gyz = PDstandard4th3(&gyz[index]); + PDstandard4th11gyz = PDstandard4th11(&gyz[index]); + PDstandard4th22gyz = PDstandard4th22(&gyz[index]); + PDstandard4th33gyz = PDstandard4th33(&gyz[index]); + PDstandard4th12gyz = PDstandard4th12(&gyz[index]); + PDstandard4th13gyz = PDstandard4th13(&gyz[index]); + PDstandard4th23gyz = PDstandard4th23(&gyz[index]); + PDstandard4th1gzz = PDstandard4th1(&gzz[index]); + PDstandard4th2gzz = PDstandard4th2(&gzz[index]); + PDstandard4th3gzz = PDstandard4th3(&gzz[index]); + PDstandard4th11gzz = PDstandard4th11(&gzz[index]); + PDstandard4th22gzz = PDstandard4th22(&gzz[index]); + PDstandard4th33gzz = PDstandard4th33(&gzz[index]); + PDstandard4th12gzz = PDstandard4th12(&gzz[index]); + PDstandard4th13gzz = PDstandard4th13(&gzz[index]); + PDstandard4th23gzz = PDstandard4th23(&gzz[index]); + PDstandard4th1kxx = PDstandard4th1(&kxx[index]); + PDstandard4th2kxx = PDstandard4th2(&kxx[index]); + PDstandard4th3kxx = PDstandard4th3(&kxx[index]); + PDstandard4th1kxy = PDstandard4th1(&kxy[index]); + PDstandard4th2kxy = PDstandard4th2(&kxy[index]); + PDstandard4th3kxy = PDstandard4th3(&kxy[index]); + PDstandard4th1kxz = PDstandard4th1(&kxz[index]); + PDstandard4th2kxz = PDstandard4th2(&kxz[index]); + PDstandard4th3kxz = PDstandard4th3(&kxz[index]); + PDstandard4th1kyy = PDstandard4th1(&kyy[index]); + PDstandard4th2kyy = PDstandard4th2(&kyy[index]); + PDstandard4th3kyy = PDstandard4th3(&kyy[index]); + PDstandard4th1kyz = PDstandard4th1(&kyz[index]); + PDstandard4th2kyz = PDstandard4th2(&kyz[index]); + PDstandard4th3kyz = PDstandard4th3(&kyz[index]); + PDstandard4th1kzz = PDstandard4th1(&kzz[index]); + PDstandard4th2kzz = PDstandard4th2(&kzz[index]); + PDstandard4th3kzz = PDstandard4th3(&kzz[index]); + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandard4th11gyy; + CCTK_REAL_VEC JacPDstandard4th11gyz; + CCTK_REAL_VEC JacPDstandard4th11gzz; + CCTK_REAL_VEC JacPDstandard4th12gxy; + CCTK_REAL_VEC JacPDstandard4th12gxz; + CCTK_REAL_VEC JacPDstandard4th12gyz; + CCTK_REAL_VEC JacPDstandard4th12gzz; + CCTK_REAL_VEC JacPDstandard4th13gxz; + CCTK_REAL_VEC JacPDstandard4th1gxx; + CCTK_REAL_VEC JacPDstandard4th1gxy; + CCTK_REAL_VEC JacPDstandard4th1gxz; + CCTK_REAL_VEC JacPDstandard4th1gyy; + CCTK_REAL_VEC JacPDstandard4th1gyz; + CCTK_REAL_VEC JacPDstandard4th1gzz; + CCTK_REAL_VEC JacPDstandard4th1kxy; + CCTK_REAL_VEC JacPDstandard4th1kxz; + CCTK_REAL_VEC JacPDstandard4th1kyy; + CCTK_REAL_VEC JacPDstandard4th1kyz; + CCTK_REAL_VEC JacPDstandard4th1kzz; + CCTK_REAL_VEC JacPDstandard4th21gxy; + CCTK_REAL_VEC JacPDstandard4th22gxx; + CCTK_REAL_VEC JacPDstandard4th22gxz; + CCTK_REAL_VEC JacPDstandard4th22gzz; + CCTK_REAL_VEC JacPDstandard4th23gxx; + CCTK_REAL_VEC JacPDstandard4th23gxy; + CCTK_REAL_VEC JacPDstandard4th23gxz; + CCTK_REAL_VEC JacPDstandard4th23gyz; + CCTK_REAL_VEC JacPDstandard4th2gxx; + CCTK_REAL_VEC JacPDstandard4th2gxy; + CCTK_REAL_VEC JacPDstandard4th2gxz; + CCTK_REAL_VEC JacPDstandard4th2gyy; + CCTK_REAL_VEC JacPDstandard4th2gyz; + CCTK_REAL_VEC JacPDstandard4th2gzz; + CCTK_REAL_VEC JacPDstandard4th2kxx; + CCTK_REAL_VEC JacPDstandard4th2kxy; + CCTK_REAL_VEC JacPDstandard4th2kxz; + CCTK_REAL_VEC JacPDstandard4th2kyz; + CCTK_REAL_VEC JacPDstandard4th2kzz; + CCTK_REAL_VEC JacPDstandard4th31gxy; + CCTK_REAL_VEC JacPDstandard4th31gxz; + CCTK_REAL_VEC JacPDstandard4th31gyy; + CCTK_REAL_VEC JacPDstandard4th31gyz; + CCTK_REAL_VEC JacPDstandard4th32gyz; + CCTK_REAL_VEC JacPDstandard4th33gxx; + CCTK_REAL_VEC JacPDstandard4th33gxy; + CCTK_REAL_VEC JacPDstandard4th33gyy; + CCTK_REAL_VEC JacPDstandard4th3gxx; + CCTK_REAL_VEC JacPDstandard4th3gxy; + CCTK_REAL_VEC JacPDstandard4th3gxz; + CCTK_REAL_VEC JacPDstandard4th3gyy; + CCTK_REAL_VEC JacPDstandard4th3gyz; + CCTK_REAL_VEC JacPDstandard4th3gzz; + CCTK_REAL_VEC JacPDstandard4th3kxx; + CCTK_REAL_VEC JacPDstandard4th3kxy; + CCTK_REAL_VEC JacPDstandard4th3kxz; + CCTK_REAL_VEC JacPDstandard4th3kyy; + CCTK_REAL_VEC JacPDstandard4th3kyz; + + if (use_jacobian) + { + JacPDstandard4th1gxx = + kmadd(J11L,PDstandard4th1gxx,kmadd(J21L,PDstandard4th2gxx,kmul(J31L,PDstandard4th3gxx))); + + JacPDstandard4th1gxy = + kmadd(J11L,PDstandard4th1gxy,kmadd(J21L,PDstandard4th2gxy,kmul(J31L,PDstandard4th3gxy))); + + JacPDstandard4th1gxz = + kmadd(J11L,PDstandard4th1gxz,kmadd(J21L,PDstandard4th2gxz,kmul(J31L,PDstandard4th3gxz))); + + JacPDstandard4th1gyy = + kmadd(J11L,PDstandard4th1gyy,kmadd(J21L,PDstandard4th2gyy,kmul(J31L,PDstandard4th3gyy))); + + JacPDstandard4th1gyz = + kmadd(J11L,PDstandard4th1gyz,kmadd(J21L,PDstandard4th2gyz,kmul(J31L,PDstandard4th3gyz))); + + JacPDstandard4th1gzz = + kmadd(J11L,PDstandard4th1gzz,kmadd(J21L,PDstandard4th2gzz,kmul(J31L,PDstandard4th3gzz))); + + JacPDstandard4th1kxy = + kmadd(J11L,PDstandard4th1kxy,kmadd(J21L,PDstandard4th2kxy,kmul(J31L,PDstandard4th3kxy))); + + JacPDstandard4th1kxz = + kmadd(J11L,PDstandard4th1kxz,kmadd(J21L,PDstandard4th2kxz,kmul(J31L,PDstandard4th3kxz))); + + JacPDstandard4th1kyy = + kmadd(J11L,PDstandard4th1kyy,kmadd(J21L,PDstandard4th2kyy,kmul(J31L,PDstandard4th3kyy))); + + JacPDstandard4th1kyz = + kmadd(J11L,PDstandard4th1kyz,kmadd(J21L,PDstandard4th2kyz,kmul(J31L,PDstandard4th3kyz))); + + JacPDstandard4th1kzz = + kmadd(J11L,PDstandard4th1kzz,kmadd(J21L,PDstandard4th2kzz,kmul(J31L,PDstandard4th3kzz))); + + JacPDstandard4th2gxx = + kmadd(J12L,PDstandard4th1gxx,kmadd(J22L,PDstandard4th2gxx,kmul(J32L,PDstandard4th3gxx))); + + JacPDstandard4th2gxy = + kmadd(J12L,PDstandard4th1gxy,kmadd(J22L,PDstandard4th2gxy,kmul(J32L,PDstandard4th3gxy))); + + JacPDstandard4th2gxz = + kmadd(J12L,PDstandard4th1gxz,kmadd(J22L,PDstandard4th2gxz,kmul(J32L,PDstandard4th3gxz))); + + JacPDstandard4th2gyy = + kmadd(J12L,PDstandard4th1gyy,kmadd(J22L,PDstandard4th2gyy,kmul(J32L,PDstandard4th3gyy))); + + JacPDstandard4th2gyz = + kmadd(J12L,PDstandard4th1gyz,kmadd(J22L,PDstandard4th2gyz,kmul(J32L,PDstandard4th3gyz))); + + JacPDstandard4th2gzz = + kmadd(J12L,PDstandard4th1gzz,kmadd(J22L,PDstandard4th2gzz,kmul(J32L,PDstandard4th3gzz))); + + JacPDstandard4th2kxx = + kmadd(J12L,PDstandard4th1kxx,kmadd(J22L,PDstandard4th2kxx,kmul(J32L,PDstandard4th3kxx))); + + JacPDstandard4th2kxy = + kmadd(J12L,PDstandard4th1kxy,kmadd(J22L,PDstandard4th2kxy,kmul(J32L,PDstandard4th3kxy))); + + JacPDstandard4th2kxz = + kmadd(J12L,PDstandard4th1kxz,kmadd(J22L,PDstandard4th2kxz,kmul(J32L,PDstandard4th3kxz))); + + JacPDstandard4th2kyz = + kmadd(J12L,PDstandard4th1kyz,kmadd(J22L,PDstandard4th2kyz,kmul(J32L,PDstandard4th3kyz))); + + JacPDstandard4th2kzz = + kmadd(J12L,PDstandard4th1kzz,kmadd(J22L,PDstandard4th2kzz,kmul(J32L,PDstandard4th3kzz))); + + JacPDstandard4th3gxx = + kmadd(J13L,PDstandard4th1gxx,kmadd(J23L,PDstandard4th2gxx,kmul(J33L,PDstandard4th3gxx))); + + JacPDstandard4th3gxy = + kmadd(J13L,PDstandard4th1gxy,kmadd(J23L,PDstandard4th2gxy,kmul(J33L,PDstandard4th3gxy))); + + JacPDstandard4th3gxz = + kmadd(J13L,PDstandard4th1gxz,kmadd(J23L,PDstandard4th2gxz,kmul(J33L,PDstandard4th3gxz))); + + JacPDstandard4th3gyy = + kmadd(J13L,PDstandard4th1gyy,kmadd(J23L,PDstandard4th2gyy,kmul(J33L,PDstandard4th3gyy))); + + JacPDstandard4th3gyz = + kmadd(J13L,PDstandard4th1gyz,kmadd(J23L,PDstandard4th2gyz,kmul(J33L,PDstandard4th3gyz))); + + JacPDstandard4th3gzz = + kmadd(J13L,PDstandard4th1gzz,kmadd(J23L,PDstandard4th2gzz,kmul(J33L,PDstandard4th3gzz))); + + JacPDstandard4th3kxx = + kmadd(J13L,PDstandard4th1kxx,kmadd(J23L,PDstandard4th2kxx,kmul(J33L,PDstandard4th3kxx))); + + JacPDstandard4th3kxy = + kmadd(J13L,PDstandard4th1kxy,kmadd(J23L,PDstandard4th2kxy,kmul(J33L,PDstandard4th3kxy))); + + JacPDstandard4th3kxz = + kmadd(J13L,PDstandard4th1kxz,kmadd(J23L,PDstandard4th2kxz,kmul(J33L,PDstandard4th3kxz))); + + JacPDstandard4th3kyy = + kmadd(J13L,PDstandard4th1kyy,kmadd(J23L,PDstandard4th2kyy,kmul(J33L,PDstandard4th3kyy))); + + JacPDstandard4th3kyz = + kmadd(J13L,PDstandard4th1kyz,kmadd(J23L,PDstandard4th2kyz,kmul(J33L,PDstandard4th3kyz))); + + JacPDstandard4th11gyy = + kmadd(dJ111L,PDstandard4th1gyy,kmadd(dJ211L,PDstandard4th2gyy,kmadd(dJ311L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J11L,J11L),kmadd(PDstandard4th22gyy,kmul(J21L,J21L),kmadd(PDstandard4th33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy)),kmul(J21L,kmul(J31L,PDstandard4th23gyy))),ToReal(2)))))))); + + JacPDstandard4th11gyz = + kmadd(dJ111L,PDstandard4th1gyz,kmadd(dJ211L,PDstandard4th2gyz,kmadd(dJ311L,PDstandard4th3gyz,kmadd(PDstandard4th11gyz,kmul(J11L,J11L),kmadd(PDstandard4th22gyz,kmul(J21L,J21L),kmadd(PDstandard4th33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz)),kmul(J21L,kmul(J31L,PDstandard4th23gyz))),ToReal(2)))))))); + + JacPDstandard4th11gzz = + kmadd(dJ111L,PDstandard4th1gzz,kmadd(dJ211L,PDstandard4th2gzz,kmadd(dJ311L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J11L,J11L),kmadd(PDstandard4th22gzz,kmul(J21L,J21L),kmadd(PDstandard4th33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz)),kmul(J21L,kmul(J31L,PDstandard4th23gzz))),ToReal(2)))))))); + + JacPDstandard4th22gxx = + kmadd(dJ122L,PDstandard4th1gxx,kmadd(dJ222L,PDstandard4th2gxx,kmadd(dJ322L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J12L,J12L),kmadd(PDstandard4th22gxx,kmul(J22L,J22L),kmadd(PDstandard4th33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx)),kmul(J22L,kmul(J32L,PDstandard4th23gxx))),ToReal(2)))))))); + + JacPDstandard4th22gxz = + kmadd(dJ122L,PDstandard4th1gxz,kmadd(dJ222L,PDstandard4th2gxz,kmadd(dJ322L,PDstandard4th3gxz,kmadd(PDstandard4th11gxz,kmul(J12L,J12L),kmadd(PDstandard4th22gxz,kmul(J22L,J22L),kmadd(PDstandard4th33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmul(J22L,kmul(J32L,PDstandard4th23gxz))),ToReal(2)))))))); + + JacPDstandard4th22gzz = + kmadd(dJ122L,PDstandard4th1gzz,kmadd(dJ222L,PDstandard4th2gzz,kmadd(dJ322L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J12L,J12L),kmadd(PDstandard4th22gzz,kmul(J22L,J22L),kmadd(PDstandard4th33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmul(J22L,kmul(J32L,PDstandard4th23gzz))),ToReal(2)))))))); + + JacPDstandard4th33gxx = + kmadd(dJ133L,PDstandard4th1gxx,kmadd(dJ233L,PDstandard4th2gxx,kmadd(dJ333L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J13L,J13L),kmadd(PDstandard4th22gxx,kmul(J23L,J23L),kmadd(PDstandard4th33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmul(J23L,kmul(J33L,PDstandard4th23gxx))),ToReal(2)))))))); + + JacPDstandard4th33gxy = + kmadd(dJ133L,PDstandard4th1gxy,kmadd(dJ233L,PDstandard4th2gxy,kmadd(dJ333L,PDstandard4th3gxy,kmadd(PDstandard4th11gxy,kmul(J13L,J13L),kmadd(PDstandard4th22gxy,kmul(J23L,J23L),kmadd(PDstandard4th33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmul(J23L,kmul(J33L,PDstandard4th23gxy))),ToReal(2)))))))); + + JacPDstandard4th33gyy = + kmadd(dJ133L,PDstandard4th1gyy,kmadd(dJ233L,PDstandard4th2gyy,kmadd(dJ333L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J13L,J13L),kmadd(PDstandard4th22gyy,kmul(J23L,J23L),kmadd(PDstandard4th33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmul(J23L,kmul(J33L,PDstandard4th23gyy))),ToReal(2)))))))); + + JacPDstandard4th12gxy = + kmadd(J12L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy)),kmadd(dJ112L,PDstandard4th1gxy,kmadd(J22L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ212L,PDstandard4th2gxy,kmadd(J32L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ312L,PDstandard4th3gxy))))))); + + JacPDstandard4th12gxz = + kmadd(J12L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmadd(dJ112L,PDstandard4th1gxz,kmadd(J22L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ212L,PDstandard4th2gxz,kmadd(J32L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ312L,PDstandard4th3gxz))))))); + + JacPDstandard4th12gyz = + kmadd(J12L,kmadd(J11L,PDstandard4th11gyz,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz)),kmadd(dJ112L,PDstandard4th1gyz,kmadd(J22L,kmadd(J21L,PDstandard4th22gyz,kmul(J31L,PDstandard4th23gyz)),kmadd(dJ212L,PDstandard4th2gyz,kmadd(J32L,kmadd(J21L,PDstandard4th23gyz,kmul(J31L,PDstandard4th33gyz)),kmul(dJ312L,PDstandard4th3gyz))))))); + + JacPDstandard4th12gzz = + kmadd(J12L,kmadd(J11L,PDstandard4th11gzz,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmadd(dJ112L,PDstandard4th1gzz,kmadd(J22L,kmadd(J21L,PDstandard4th22gzz,kmul(J31L,PDstandard4th23gzz)),kmadd(dJ212L,PDstandard4th2gzz,kmadd(J32L,kmadd(J21L,PDstandard4th23gzz,kmul(J31L,PDstandard4th33gzz)),kmul(dJ312L,PDstandard4th3gzz))))))); + + JacPDstandard4th13gxz = + kmadd(J13L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ113L,PDstandard4th1gxz,kmadd(J23L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ213L,PDstandard4th2gxz,kmadd(J33L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ313L,PDstandard4th3gxz))))))); + + JacPDstandard4th21gxy = + kmadd(J12L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy)),kmadd(dJ112L,PDstandard4th1gxy,kmadd(J22L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ212L,PDstandard4th2gxy,kmadd(J32L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ312L,PDstandard4th3gxy))))))); + + JacPDstandard4th23gxx = + kmadd(J13L,kmadd(J12L,PDstandard4th11gxx,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmadd(dJ123L,PDstandard4th1gxx,kmadd(J23L,kmadd(J22L,PDstandard4th22gxx,kmul(J32L,PDstandard4th23gxx)),kmadd(dJ223L,PDstandard4th2gxx,kmadd(J33L,kmadd(J22L,PDstandard4th23gxx,kmul(J32L,PDstandard4th33gxx)),kmul(dJ323L,PDstandard4th3gxx))))))); + + JacPDstandard4th23gxy = + kmadd(J13L,kmadd(J12L,PDstandard4th11gxy,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmadd(dJ123L,PDstandard4th1gxy,kmadd(J23L,kmadd(J22L,PDstandard4th22gxy,kmul(J32L,PDstandard4th23gxy)),kmadd(dJ223L,PDstandard4th2gxy,kmadd(J33L,kmadd(J22L,PDstandard4th23gxy,kmul(J32L,PDstandard4th33gxy)),kmul(dJ323L,PDstandard4th3gxy))))))); + + JacPDstandard4th23gxz = + kmadd(J13L,kmadd(J12L,PDstandard4th11gxz,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ123L,PDstandard4th1gxz,kmadd(J23L,kmadd(J22L,PDstandard4th22gxz,kmul(J32L,PDstandard4th23gxz)),kmadd(dJ223L,PDstandard4th2gxz,kmadd(J33L,kmadd(J22L,PDstandard4th23gxz,kmul(J32L,PDstandard4th33gxz)),kmul(dJ323L,PDstandard4th3gxz))))))); + + JacPDstandard4th23gyz = + kmadd(J13L,kmadd(J12L,PDstandard4th11gyz,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ123L,PDstandard4th1gyz,kmadd(J23L,kmadd(J22L,PDstandard4th22gyz,kmul(J32L,PDstandard4th23gyz)),kmadd(dJ223L,PDstandard4th2gyz,kmadd(J33L,kmadd(J22L,PDstandard4th23gyz,kmul(J32L,PDstandard4th33gyz)),kmul(dJ323L,PDstandard4th3gyz))))))); + + JacPDstandard4th31gxy = + kmadd(J13L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmadd(dJ113L,PDstandard4th1gxy,kmadd(J23L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ213L,PDstandard4th2gxy,kmadd(J33L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ313L,PDstandard4th3gxy))))))); + + JacPDstandard4th31gxz = + kmadd(J13L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ113L,PDstandard4th1gxz,kmadd(J23L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ213L,PDstandard4th2gxz,kmadd(J33L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ313L,PDstandard4th3gxz))))))); + + JacPDstandard4th31gyy = + kmadd(J13L,kmadd(J11L,PDstandard4th11gyy,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy))),kmadd(J11L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmadd(dJ113L,PDstandard4th1gyy,kmadd(J23L,kmadd(J21L,PDstandard4th22gyy,kmul(J31L,PDstandard4th23gyy)),kmadd(dJ213L,PDstandard4th2gyy,kmadd(J33L,kmadd(J21L,PDstandard4th23gyy,kmul(J31L,PDstandard4th33gyy)),kmul(dJ313L,PDstandard4th3gyy))))))); + + JacPDstandard4th31gyz = + kmadd(J13L,kmadd(J11L,PDstandard4th11gyz,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ113L,PDstandard4th1gyz,kmadd(J23L,kmadd(J21L,PDstandard4th22gyz,kmul(J31L,PDstandard4th23gyz)),kmadd(dJ213L,PDstandard4th2gyz,kmadd(J33L,kmadd(J21L,PDstandard4th23gyz,kmul(J31L,PDstandard4th33gyz)),kmul(dJ313L,PDstandard4th3gyz))))))); + + JacPDstandard4th32gyz = + kmadd(J13L,kmadd(J12L,PDstandard4th11gyz,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ123L,PDstandard4th1gyz,kmadd(J23L,kmadd(J22L,PDstandard4th22gyz,kmul(J32L,PDstandard4th23gyz)),kmadd(dJ223L,PDstandard4th2gyz,kmadd(J33L,kmadd(J22L,PDstandard4th23gyz,kmul(J32L,PDstandard4th33gyz)),kmul(dJ323L,PDstandard4th3gyz))))))); + } + else + { + JacPDstandard4th1gxx = PDstandard4th1gxx; + + JacPDstandard4th1gxy = PDstandard4th1gxy; + + JacPDstandard4th1gxz = PDstandard4th1gxz; + + JacPDstandard4th1gyy = PDstandard4th1gyy; + + JacPDstandard4th1gyz = PDstandard4th1gyz; + + JacPDstandard4th1gzz = PDstandard4th1gzz; + + JacPDstandard4th1kxy = PDstandard4th1kxy; + + JacPDstandard4th1kxz = PDstandard4th1kxz; + + JacPDstandard4th1kyy = PDstandard4th1kyy; + + JacPDstandard4th1kyz = PDstandard4th1kyz; + + JacPDstandard4th1kzz = PDstandard4th1kzz; + + JacPDstandard4th2gxx = PDstandard4th2gxx; + + JacPDstandard4th2gxy = PDstandard4th2gxy; + + JacPDstandard4th2gxz = PDstandard4th2gxz; + + JacPDstandard4th2gyy = PDstandard4th2gyy; + + JacPDstandard4th2gyz = PDstandard4th2gyz; + + JacPDstandard4th2gzz = PDstandard4th2gzz; + + JacPDstandard4th2kxx = PDstandard4th2kxx; + + JacPDstandard4th2kxy = PDstandard4th2kxy; + + JacPDstandard4th2kxz = PDstandard4th2kxz; + + JacPDstandard4th2kyz = PDstandard4th2kyz; + + JacPDstandard4th2kzz = PDstandard4th2kzz; + + JacPDstandard4th3gxx = PDstandard4th3gxx; + + JacPDstandard4th3gxy = PDstandard4th3gxy; + + JacPDstandard4th3gxz = PDstandard4th3gxz; + + JacPDstandard4th3gyy = PDstandard4th3gyy; + + JacPDstandard4th3gyz = PDstandard4th3gyz; + + JacPDstandard4th3gzz = PDstandard4th3gzz; + + JacPDstandard4th3kxx = PDstandard4th3kxx; + + JacPDstandard4th3kxy = PDstandard4th3kxy; + + JacPDstandard4th3kxz = PDstandard4th3kxz; + + JacPDstandard4th3kyy = PDstandard4th3kyy; + + JacPDstandard4th3kyz = PDstandard4th3kyz; + + JacPDstandard4th11gyy = PDstandard4th11gyy; + + JacPDstandard4th11gyz = PDstandard4th11gyz; + + JacPDstandard4th11gzz = PDstandard4th11gzz; + + JacPDstandard4th22gxx = PDstandard4th22gxx; + + JacPDstandard4th22gxz = PDstandard4th22gxz; + + JacPDstandard4th22gzz = PDstandard4th22gzz; + + JacPDstandard4th33gxx = PDstandard4th33gxx; + + JacPDstandard4th33gxy = PDstandard4th33gxy; + + JacPDstandard4th33gyy = PDstandard4th33gyy; + + JacPDstandard4th12gxy = PDstandard4th12gxy; + + JacPDstandard4th12gxz = PDstandard4th12gxz; + + JacPDstandard4th12gyz = PDstandard4th12gyz; + + JacPDstandard4th12gzz = PDstandard4th12gzz; + + JacPDstandard4th13gxz = PDstandard4th13gxz; + + JacPDstandard4th21gxy = PDstandard4th12gxy; + + JacPDstandard4th23gxx = PDstandard4th23gxx; + + JacPDstandard4th23gxy = PDstandard4th23gxy; + + JacPDstandard4th23gxz = PDstandard4th23gxz; + + JacPDstandard4th23gyz = PDstandard4th23gyz; + + JacPDstandard4th31gxy = PDstandard4th13gxy; + + JacPDstandard4th31gxz = PDstandard4th13gxz; + + JacPDstandard4th31gyy = PDstandard4th13gyy; + + JacPDstandard4th31gyz = PDstandard4th13gyz; + + JacPDstandard4th32gyz = PDstandard4th23gyz; + } + + CCTK_REAL_VEC detg = + knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); + + CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); + + CCTK_REAL_VEC gInv11 = + kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); + + CCTK_REAL_VEC gInv12 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv13 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv21 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv22 = + kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); + + CCTK_REAL_VEC gInv23 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv31 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv32 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv33 = + kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); + + CCTK_REAL_VEC gamma111 = + kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard4th1gxx,knmsub(gInv12,JacPDstandard4th2gxx,kmsub(kmadd(gInv12,JacPDstandard4th1gxy,kmul(gInv13,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv13,JacPDstandard4th3gxx))))); + + CCTK_REAL_VEC gamma211 = + kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard4th1gxx,knmsub(gInv22,JacPDstandard4th2gxx,kmsub(kmadd(gInv22,JacPDstandard4th1gxy,kmul(gInv23,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv23,JacPDstandard4th3gxx))))); + + CCTK_REAL_VEC gamma311 = + kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard4th1gxx,knmsub(gInv32,JacPDstandard4th2gxx,kmsub(kmadd(gInv32,JacPDstandard4th1gxy,kmul(gInv33,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv33,JacPDstandard4th3gxx))))); + + CCTK_REAL_VEC gamma121 = + kmul(kmadd(gInv12,JacPDstandard4th1gyy,kmadd(gInv11,JacPDstandard4th2gxx,kmul(gInv13,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma221 = + kmul(kmadd(gInv22,JacPDstandard4th1gyy,kmadd(gInv21,JacPDstandard4th2gxx,kmul(gInv23,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma321 = + kmul(kmadd(gInv32,JacPDstandard4th1gyy,kmadd(gInv31,JacPDstandard4th2gxx,kmul(gInv33,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma131 = + kmul(kmadd(gInv13,JacPDstandard4th1gzz,kmadd(gInv11,JacPDstandard4th3gxx,kmul(gInv12,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma231 = + kmul(kmadd(gInv23,JacPDstandard4th1gzz,kmadd(gInv21,JacPDstandard4th3gxx,kmul(gInv22,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma331 = + kmul(kmadd(gInv33,JacPDstandard4th1gzz,kmadd(gInv31,JacPDstandard4th3gxx,kmul(gInv32,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma122 = + kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard4th2gyy,kmadd(gInv11,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv13,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + + CCTK_REAL_VEC gamma222 = + kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard4th2gyy,kmadd(gInv21,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv23,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + + CCTK_REAL_VEC gamma322 = + kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard4th2gyy,kmadd(gInv31,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv33,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + + CCTK_REAL_VEC gamma132 = + kmul(kmadd(gInv13,JacPDstandard4th2gzz,kmadd(gInv12,JacPDstandard4th3gyy,kmul(gInv11,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma232 = + kmul(kmadd(gInv23,JacPDstandard4th2gzz,kmadd(gInv22,JacPDstandard4th3gyy,kmul(gInv21,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma332 = + kmul(kmadd(gInv33,JacPDstandard4th2gzz,kmadd(gInv32,JacPDstandard4th3gyy,kmul(gInv31,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma133 = + kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard4th3gzz,kmadd(gInv11,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv12,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + + CCTK_REAL_VEC gamma233 = + kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard4th3gzz,kmadd(gInv21,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv22,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + + CCTK_REAL_VEC gamma333 = + kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard4th3gzz,kmadd(gInv31,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv32,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + + CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); + + CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); + + CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); + + CCTK_REAL_VEC va1 = kneg(ymoved); + + CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC va3 = ToReal(0); + + CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC vb2 = ymoved; + + CCTK_REAL_VEC vb3 = zmoved; + + CCTK_REAL_VEC vc1 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); + + CCTK_REAL_VEC vc2 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); + + CCTK_REAL_VEC vc3 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); + + CCTK_REAL_VEC wa1 = va1; + + CCTK_REAL_VEC wa2 = va2; + + CCTK_REAL_VEC wa3 = va3; + + CCTK_REAL_VEC omega11 = + kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); + + CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); + + CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); + + CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); + + CCTK_REAL_VEC omega12 = + kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); + + CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); + + CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); + + CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); + + CCTK_REAL_VEC omega22 = + kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); + + CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); + + CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); + + CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); + + CCTK_REAL_VEC omega13 = + kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC omega23 = + kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); + + CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); + + CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); + + CCTK_REAL_VEC omega33 = + kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); + + CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); + + CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); + + CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); + + CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); + + CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); + + CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); + + CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); + + CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); + + CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); + + CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); + + CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); + + CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); + + CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); + + CCTK_REAL_VEC nn = isqrt2; + + CCTK_REAL_VEC R1212 = + kmul(ToReal(0.5),kadd(JacPDstandard4th12gxy,kadd(JacPDstandard4th21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard4th22gxx),JacPDstandard4th11gyy))))); + + CCTK_REAL_VEC R1213 = + kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard4th12gxz,kadd(JacPDstandard4th31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard4th23gxx),JacPDstandard4th11gyz)))))); + + CCTK_REAL_VEC R1223 = + kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard4th22gxz,kadd(JacPDstandard4th31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard4th23gxy),JacPDstandard4th12gyz)))))); + + CCTK_REAL_VEC R1313 = + kmul(ToReal(0.5),kadd(JacPDstandard4th13gxz,kadd(JacPDstandard4th31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard4th33gxx),JacPDstandard4th11gzz))))); + + CCTK_REAL_VEC R1323 = + kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard4th23gxz,kadd(JacPDstandard4th31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard4th33gxy),JacPDstandard4th12gzz)))))); + + CCTK_REAL_VEC R2323 = + kmul(ToReal(0.5),kadd(JacPDstandard4th23gyz,kadd(JacPDstandard4th32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard4th33gyy),JacPDstandard4th22gzz))))); + + CCTK_REAL_VEC R4p1212 = + kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); + + CCTK_REAL_VEC R4p1213 = + kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); + + CCTK_REAL_VEC R4p1223 = + kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); + + CCTK_REAL_VEC R4p1313 = + kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); + + CCTK_REAL_VEC R4p1323 = + kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); + + CCTK_REAL_VEC R4p2323 = + kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); + + CCTK_REAL_VEC Ro111 = ToReal(0); + + CCTK_REAL_VEC Ro112 = + kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard4th1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard4th2kxx)))))); + + CCTK_REAL_VEC Ro113 = + kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard4th1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard4th3kxx)))))); + + CCTK_REAL_VEC Ro121 = + kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard4th2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard4th1kxy)))))); + + CCTK_REAL_VEC Ro122 = ToReal(0); + + CCTK_REAL_VEC Ro123 = + kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard4th2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard4th3kxy)))))); + + CCTK_REAL_VEC Ro131 = + kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard4th3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard4th1kxz)))))); + + CCTK_REAL_VEC Ro132 = + kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard4th2kxz)))))); + + CCTK_REAL_VEC Ro133 = ToReal(0); + + CCTK_REAL_VEC Ro211 = ToReal(0); + + CCTK_REAL_VEC Ro212 = + kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard4th1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard4th2kxy)))))); + + CCTK_REAL_VEC Ro213 = + kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard4th1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard4th3kxy)))))); + + CCTK_REAL_VEC Ro221 = + kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard4th2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard4th1kyy)))))); + + CCTK_REAL_VEC Ro222 = ToReal(0); + + CCTK_REAL_VEC Ro223 = + kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard4th2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard4th3kyy)))))); + + CCTK_REAL_VEC Ro231 = + kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard4th1kyz)))))); + + CCTK_REAL_VEC Ro232 = + kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard4th3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard4th2kyz)))))); + + CCTK_REAL_VEC Ro233 = ToReal(0); + + CCTK_REAL_VEC Ro311 = ToReal(0); + + CCTK_REAL_VEC Ro312 = + kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard4th1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard4th2kxz)))))); + + CCTK_REAL_VEC Ro313 = + kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard4th1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard4th3kxz)))))); + + CCTK_REAL_VEC Ro321 = + kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard4th2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard4th1kyz)))))); + + CCTK_REAL_VEC Ro322 = ToReal(0); + + CCTK_REAL_VEC Ro323 = + kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard4th2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard4th3kyz)))))); + + CCTK_REAL_VEC Ro331 = + kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard4th3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard4th1kzz)))))); + + CCTK_REAL_VEC Ro332 = + kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard4th3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard4th2kzz)))))); + + CCTK_REAL_VEC Ro333 = ToReal(0); + + CCTK_REAL_VEC Rojo11 = + kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); + + CCTK_REAL_VEC Rojo12 = + kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo13 = + kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); + + CCTK_REAL_VEC Rojo21 = + kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo22 = + kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Rojo23 = + kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo31 = + kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); + + CCTK_REAL_VEC Rojo32 = + kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo33 = + kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Psi4rL = + kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi4iL = + knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(Psi4i[index],Psi4iL); + vec_store_nta_partial(Psi4r[index],Psi4rL); + } + LC_ENDLOOP3VEC(WeylScal4_psi4_calc_4th); +} + +extern "C" void WeylScal4_psi4_calc_4th(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_psi4_calc_4th_Body"); + } + + if (cctk_iteration % WeylScal4_psi4_calc_4th_calc_every != WeylScal4_psi4_calc_4th_calc_offset) + { + return; + } + + const char *const groups[] = { + "admbase::curv", + "admbase::metric", + "grid::coordinates", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_psi4_calc_4th", 5, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); + break; + } + + GenericFD_LoopOverInterior(cctkGH, WeylScal4_psi4_calc_4th_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_psi4_calc_4th_Body"); + } +} diff --git a/src/WeylScal4_psi4_calc_Nth.cc b/src/WeylScal4_psi4_calc_Nth.cc new file mode 100644 index 0000000..b0f9387 --- /dev/null +++ b/src/WeylScal4_psi4_calc_Nth.cc @@ -0,0 +1,1356 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +extern "C" void WeylScal4_psi4_calc_Nth_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); + return; +} + +static void WeylScal4_psi4_calc_Nth_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_psi4_calc_Nth, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC gxxL = vec_load(gxx[index]); + CCTK_REAL_VEC gxyL = vec_load(gxy[index]); + CCTK_REAL_VEC gxzL = vec_load(gxz[index]); + CCTK_REAL_VEC gyyL = vec_load(gyy[index]); + CCTK_REAL_VEC gyzL = vec_load(gyz[index]); + CCTK_REAL_VEC gzzL = vec_load(gzz[index]); + CCTK_REAL_VEC kxxL = vec_load(kxx[index]); + CCTK_REAL_VEC kxyL = vec_load(kxy[index]); + CCTK_REAL_VEC kxzL = vec_load(kxz[index]); + CCTK_REAL_VEC kyyL = vec_load(kyy[index]); + CCTK_REAL_VEC kyzL = vec_load(kyz[index]); + CCTK_REAL_VEC kzzL = vec_load(kzz[index]); + CCTK_REAL_VEC xL = vec_load(x[index]); + CCTK_REAL_VEC yL = vec_load(y[index]); + CCTK_REAL_VEC zL = vec_load(z[index]); + + + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + + /* Include user supplied include files */ + + /* Precompute derivatives */ + CCTK_REAL_VEC PDstandard1gxx; + CCTK_REAL_VEC PDstandard2gxx; + CCTK_REAL_VEC PDstandard3gxx; + CCTK_REAL_VEC PDstandard11gxx; + CCTK_REAL_VEC PDstandard22gxx; + CCTK_REAL_VEC PDstandard33gxx; + CCTK_REAL_VEC PDstandard12gxx; + CCTK_REAL_VEC PDstandard13gxx; + CCTK_REAL_VEC PDstandard23gxx; + CCTK_REAL_VEC PDstandard1gxy; + CCTK_REAL_VEC PDstandard2gxy; + CCTK_REAL_VEC PDstandard3gxy; + CCTK_REAL_VEC PDstandard11gxy; + CCTK_REAL_VEC PDstandard22gxy; + CCTK_REAL_VEC PDstandard33gxy; + CCTK_REAL_VEC PDstandard12gxy; + CCTK_REAL_VEC PDstandard13gxy; + CCTK_REAL_VEC PDstandard23gxy; + CCTK_REAL_VEC PDstandard1gxz; + CCTK_REAL_VEC PDstandard2gxz; + CCTK_REAL_VEC PDstandard3gxz; + CCTK_REAL_VEC PDstandard11gxz; + CCTK_REAL_VEC PDstandard22gxz; + CCTK_REAL_VEC PDstandard33gxz; + CCTK_REAL_VEC PDstandard12gxz; + CCTK_REAL_VEC PDstandard13gxz; + CCTK_REAL_VEC PDstandard23gxz; + CCTK_REAL_VEC PDstandard1gyy; + CCTK_REAL_VEC PDstandard2gyy; + CCTK_REAL_VEC PDstandard3gyy; + CCTK_REAL_VEC PDstandard11gyy; + CCTK_REAL_VEC PDstandard22gyy; + CCTK_REAL_VEC PDstandard33gyy; + CCTK_REAL_VEC PDstandard12gyy; + CCTK_REAL_VEC PDstandard13gyy; + CCTK_REAL_VEC PDstandard23gyy; + CCTK_REAL_VEC PDstandard1gyz; + CCTK_REAL_VEC PDstandard2gyz; + CCTK_REAL_VEC PDstandard3gyz; + CCTK_REAL_VEC PDstandard11gyz; + CCTK_REAL_VEC PDstandard22gyz; + CCTK_REAL_VEC PDstandard33gyz; + CCTK_REAL_VEC PDstandard12gyz; + CCTK_REAL_VEC PDstandard13gyz; + CCTK_REAL_VEC PDstandard23gyz; + CCTK_REAL_VEC PDstandard1gzz; + CCTK_REAL_VEC PDstandard2gzz; + CCTK_REAL_VEC PDstandard3gzz; + CCTK_REAL_VEC PDstandard11gzz; + CCTK_REAL_VEC PDstandard22gzz; + CCTK_REAL_VEC PDstandard33gzz; + CCTK_REAL_VEC PDstandard12gzz; + CCTK_REAL_VEC PDstandard13gzz; + CCTK_REAL_VEC PDstandard23gzz; + CCTK_REAL_VEC PDstandard1kxx; + CCTK_REAL_VEC PDstandard2kxx; + CCTK_REAL_VEC PDstandard3kxx; + CCTK_REAL_VEC PDstandard1kxy; + CCTK_REAL_VEC PDstandard2kxy; + CCTK_REAL_VEC PDstandard3kxy; + CCTK_REAL_VEC PDstandard1kxz; + CCTK_REAL_VEC PDstandard2kxz; + CCTK_REAL_VEC PDstandard3kxz; + CCTK_REAL_VEC PDstandard1kyy; + CCTK_REAL_VEC PDstandard2kyy; + CCTK_REAL_VEC PDstandard3kyy; + CCTK_REAL_VEC PDstandard1kyz; + CCTK_REAL_VEC PDstandard2kyz; + CCTK_REAL_VEC PDstandard3kyz; + CCTK_REAL_VEC PDstandard1kzz; + CCTK_REAL_VEC PDstandard2kzz; + CCTK_REAL_VEC PDstandard3kzz; + + switch(fdOrder) + { + case 2: + PDstandard1gxx = PDstandardfdOrder21(&gxx[index]); + PDstandard2gxx = PDstandardfdOrder22(&gxx[index]); + PDstandard3gxx = PDstandardfdOrder23(&gxx[index]); + PDstandard11gxx = PDstandardfdOrder211(&gxx[index]); + PDstandard22gxx = PDstandardfdOrder222(&gxx[index]); + PDstandard33gxx = PDstandardfdOrder233(&gxx[index]); + PDstandard12gxx = PDstandardfdOrder212(&gxx[index]); + PDstandard13gxx = PDstandardfdOrder213(&gxx[index]); + PDstandard23gxx = PDstandardfdOrder223(&gxx[index]); + PDstandard1gxy = PDstandardfdOrder21(&gxy[index]); + PDstandard2gxy = PDstandardfdOrder22(&gxy[index]); + PDstandard3gxy = PDstandardfdOrder23(&gxy[index]); + PDstandard11gxy = PDstandardfdOrder211(&gxy[index]); + PDstandard22gxy = PDstandardfdOrder222(&gxy[index]); + PDstandard33gxy = PDstandardfdOrder233(&gxy[index]); + PDstandard12gxy = PDstandardfdOrder212(&gxy[index]); + PDstandard13gxy = PDstandardfdOrder213(&gxy[index]); + PDstandard23gxy = PDstandardfdOrder223(&gxy[index]); + PDstandard1gxz = PDstandardfdOrder21(&gxz[index]); + PDstandard2gxz = PDstandardfdOrder22(&gxz[index]); + PDstandard3gxz = PDstandardfdOrder23(&gxz[index]); + PDstandard11gxz = PDstandardfdOrder211(&gxz[index]); + PDstandard22gxz = PDstandardfdOrder222(&gxz[index]); + PDstandard33gxz = PDstandardfdOrder233(&gxz[index]); + PDstandard12gxz = PDstandardfdOrder212(&gxz[index]); + PDstandard13gxz = PDstandardfdOrder213(&gxz[index]); + PDstandard23gxz = PDstandardfdOrder223(&gxz[index]); + PDstandard1gyy = PDstandardfdOrder21(&gyy[index]); + PDstandard2gyy = PDstandardfdOrder22(&gyy[index]); + PDstandard3gyy = PDstandardfdOrder23(&gyy[index]); + PDstandard11gyy = PDstandardfdOrder211(&gyy[index]); + PDstandard22gyy = PDstandardfdOrder222(&gyy[index]); + PDstandard33gyy = PDstandardfdOrder233(&gyy[index]); + PDstandard12gyy = PDstandardfdOrder212(&gyy[index]); + PDstandard13gyy = PDstandardfdOrder213(&gyy[index]); + PDstandard23gyy = PDstandardfdOrder223(&gyy[index]); + PDstandard1gyz = PDstandardfdOrder21(&gyz[index]); + PDstandard2gyz = PDstandardfdOrder22(&gyz[index]); + PDstandard3gyz = PDstandardfdOrder23(&gyz[index]); + PDstandard11gyz = PDstandardfdOrder211(&gyz[index]); + PDstandard22gyz = PDstandardfdOrder222(&gyz[index]); + PDstandard33gyz = PDstandardfdOrder233(&gyz[index]); + PDstandard12gyz = PDstandardfdOrder212(&gyz[index]); + PDstandard13gyz = PDstandardfdOrder213(&gyz[index]); + PDstandard23gyz = PDstandardfdOrder223(&gyz[index]); + PDstandard1gzz = PDstandardfdOrder21(&gzz[index]); + PDstandard2gzz = PDstandardfdOrder22(&gzz[index]); + PDstandard3gzz = PDstandardfdOrder23(&gzz[index]); + PDstandard11gzz = PDstandardfdOrder211(&gzz[index]); + PDstandard22gzz = PDstandardfdOrder222(&gzz[index]); + PDstandard33gzz = PDstandardfdOrder233(&gzz[index]); + PDstandard12gzz = PDstandardfdOrder212(&gzz[index]); + PDstandard13gzz = PDstandardfdOrder213(&gzz[index]); + PDstandard23gzz = PDstandardfdOrder223(&gzz[index]); + PDstandard1kxx = PDstandardfdOrder21(&kxx[index]); + PDstandard2kxx = PDstandardfdOrder22(&kxx[index]); + PDstandard3kxx = PDstandardfdOrder23(&kxx[index]); + PDstandard1kxy = PDstandardfdOrder21(&kxy[index]); + PDstandard2kxy = PDstandardfdOrder22(&kxy[index]); + PDstandard3kxy = PDstandardfdOrder23(&kxy[index]); + PDstandard1kxz = PDstandardfdOrder21(&kxz[index]); + PDstandard2kxz = PDstandardfdOrder22(&kxz[index]); + PDstandard3kxz = PDstandardfdOrder23(&kxz[index]); + PDstandard1kyy = PDstandardfdOrder21(&kyy[index]); + PDstandard2kyy = PDstandardfdOrder22(&kyy[index]); + PDstandard3kyy = PDstandardfdOrder23(&kyy[index]); + PDstandard1kyz = PDstandardfdOrder21(&kyz[index]); + PDstandard2kyz = PDstandardfdOrder22(&kyz[index]); + PDstandard3kyz = PDstandardfdOrder23(&kyz[index]); + PDstandard1kzz = PDstandardfdOrder21(&kzz[index]); + PDstandard2kzz = PDstandardfdOrder22(&kzz[index]); + PDstandard3kzz = PDstandardfdOrder23(&kzz[index]); + break; + + case 4: + PDstandard1gxx = PDstandardfdOrder41(&gxx[index]); + PDstandard2gxx = PDstandardfdOrder42(&gxx[index]); + PDstandard3gxx = PDstandardfdOrder43(&gxx[index]); + PDstandard11gxx = PDstandardfdOrder411(&gxx[index]); + PDstandard22gxx = PDstandardfdOrder422(&gxx[index]); + PDstandard33gxx = PDstandardfdOrder433(&gxx[index]); + PDstandard12gxx = PDstandardfdOrder412(&gxx[index]); + PDstandard13gxx = PDstandardfdOrder413(&gxx[index]); + PDstandard23gxx = PDstandardfdOrder423(&gxx[index]); + PDstandard1gxy = PDstandardfdOrder41(&gxy[index]); + PDstandard2gxy = PDstandardfdOrder42(&gxy[index]); + PDstandard3gxy = PDstandardfdOrder43(&gxy[index]); + PDstandard11gxy = PDstandardfdOrder411(&gxy[index]); + PDstandard22gxy = PDstandardfdOrder422(&gxy[index]); + PDstandard33gxy = PDstandardfdOrder433(&gxy[index]); + PDstandard12gxy = PDstandardfdOrder412(&gxy[index]); + PDstandard13gxy = PDstandardfdOrder413(&gxy[index]); + PDstandard23gxy = PDstandardfdOrder423(&gxy[index]); + PDstandard1gxz = PDstandardfdOrder41(&gxz[index]); + PDstandard2gxz = PDstandardfdOrder42(&gxz[index]); + PDstandard3gxz = PDstandardfdOrder43(&gxz[index]); + PDstandard11gxz = PDstandardfdOrder411(&gxz[index]); + PDstandard22gxz = PDstandardfdOrder422(&gxz[index]); + PDstandard33gxz = PDstandardfdOrder433(&gxz[index]); + PDstandard12gxz = PDstandardfdOrder412(&gxz[index]); + PDstandard13gxz = PDstandardfdOrder413(&gxz[index]); + PDstandard23gxz = PDstandardfdOrder423(&gxz[index]); + PDstandard1gyy = PDstandardfdOrder41(&gyy[index]); + PDstandard2gyy = PDstandardfdOrder42(&gyy[index]); + PDstandard3gyy = PDstandardfdOrder43(&gyy[index]); + PDstandard11gyy = PDstandardfdOrder411(&gyy[index]); + PDstandard22gyy = PDstandardfdOrder422(&gyy[index]); + PDstandard33gyy = PDstandardfdOrder433(&gyy[index]); + PDstandard12gyy = PDstandardfdOrder412(&gyy[index]); + PDstandard13gyy = PDstandardfdOrder413(&gyy[index]); + PDstandard23gyy = PDstandardfdOrder423(&gyy[index]); + PDstandard1gyz = PDstandardfdOrder41(&gyz[index]); + PDstandard2gyz = PDstandardfdOrder42(&gyz[index]); + PDstandard3gyz = PDstandardfdOrder43(&gyz[index]); + PDstandard11gyz = PDstandardfdOrder411(&gyz[index]); + PDstandard22gyz = PDstandardfdOrder422(&gyz[index]); + PDstandard33gyz = PDstandardfdOrder433(&gyz[index]); + PDstandard12gyz = PDstandardfdOrder412(&gyz[index]); + PDstandard13gyz = PDstandardfdOrder413(&gyz[index]); + PDstandard23gyz = PDstandardfdOrder423(&gyz[index]); + PDstandard1gzz = PDstandardfdOrder41(&gzz[index]); + PDstandard2gzz = PDstandardfdOrder42(&gzz[index]); + PDstandard3gzz = PDstandardfdOrder43(&gzz[index]); + PDstandard11gzz = PDstandardfdOrder411(&gzz[index]); + PDstandard22gzz = PDstandardfdOrder422(&gzz[index]); + PDstandard33gzz = PDstandardfdOrder433(&gzz[index]); + PDstandard12gzz = PDstandardfdOrder412(&gzz[index]); + PDstandard13gzz = PDstandardfdOrder413(&gzz[index]); + PDstandard23gzz = PDstandardfdOrder423(&gzz[index]); + PDstandard1kxx = PDstandardfdOrder41(&kxx[index]); + PDstandard2kxx = PDstandardfdOrder42(&kxx[index]); + PDstandard3kxx = PDstandardfdOrder43(&kxx[index]); + PDstandard1kxy = PDstandardfdOrder41(&kxy[index]); + PDstandard2kxy = PDstandardfdOrder42(&kxy[index]); + PDstandard3kxy = PDstandardfdOrder43(&kxy[index]); + PDstandard1kxz = PDstandardfdOrder41(&kxz[index]); + PDstandard2kxz = PDstandardfdOrder42(&kxz[index]); + PDstandard3kxz = PDstandardfdOrder43(&kxz[index]); + PDstandard1kyy = PDstandardfdOrder41(&kyy[index]); + PDstandard2kyy = PDstandardfdOrder42(&kyy[index]); + PDstandard3kyy = PDstandardfdOrder43(&kyy[index]); + PDstandard1kyz = PDstandardfdOrder41(&kyz[index]); + PDstandard2kyz = PDstandardfdOrder42(&kyz[index]); + PDstandard3kyz = PDstandardfdOrder43(&kyz[index]); + PDstandard1kzz = PDstandardfdOrder41(&kzz[index]); + PDstandard2kzz = PDstandardfdOrder42(&kzz[index]); + PDstandard3kzz = PDstandardfdOrder43(&kzz[index]); + break; + + case 6: + PDstandard1gxx = PDstandardfdOrder61(&gxx[index]); + PDstandard2gxx = PDstandardfdOrder62(&gxx[index]); + PDstandard3gxx = PDstandardfdOrder63(&gxx[index]); + PDstandard11gxx = PDstandardfdOrder611(&gxx[index]); + PDstandard22gxx = PDstandardfdOrder622(&gxx[index]); + PDstandard33gxx = PDstandardfdOrder633(&gxx[index]); + PDstandard12gxx = PDstandardfdOrder612(&gxx[index]); + PDstandard13gxx = PDstandardfdOrder613(&gxx[index]); + PDstandard23gxx = PDstandardfdOrder623(&gxx[index]); + PDstandard1gxy = PDstandardfdOrder61(&gxy[index]); + PDstandard2gxy = PDstandardfdOrder62(&gxy[index]); + PDstandard3gxy = PDstandardfdOrder63(&gxy[index]); + PDstandard11gxy = PDstandardfdOrder611(&gxy[index]); + PDstandard22gxy = PDstandardfdOrder622(&gxy[index]); + PDstandard33gxy = PDstandardfdOrder633(&gxy[index]); + PDstandard12gxy = PDstandardfdOrder612(&gxy[index]); + PDstandard13gxy = PDstandardfdOrder613(&gxy[index]); + PDstandard23gxy = PDstandardfdOrder623(&gxy[index]); + PDstandard1gxz = PDstandardfdOrder61(&gxz[index]); + PDstandard2gxz = PDstandardfdOrder62(&gxz[index]); + PDstandard3gxz = PDstandardfdOrder63(&gxz[index]); + PDstandard11gxz = PDstandardfdOrder611(&gxz[index]); + PDstandard22gxz = PDstandardfdOrder622(&gxz[index]); + PDstandard33gxz = PDstandardfdOrder633(&gxz[index]); + PDstandard12gxz = PDstandardfdOrder612(&gxz[index]); + PDstandard13gxz = PDstandardfdOrder613(&gxz[index]); + PDstandard23gxz = PDstandardfdOrder623(&gxz[index]); + PDstandard1gyy = PDstandardfdOrder61(&gyy[index]); + PDstandard2gyy = PDstandardfdOrder62(&gyy[index]); + PDstandard3gyy = PDstandardfdOrder63(&gyy[index]); + PDstandard11gyy = PDstandardfdOrder611(&gyy[index]); + PDstandard22gyy = PDstandardfdOrder622(&gyy[index]); + PDstandard33gyy = PDstandardfdOrder633(&gyy[index]); + PDstandard12gyy = PDstandardfdOrder612(&gyy[index]); + PDstandard13gyy = PDstandardfdOrder613(&gyy[index]); + PDstandard23gyy = PDstandardfdOrder623(&gyy[index]); + PDstandard1gyz = PDstandardfdOrder61(&gyz[index]); + PDstandard2gyz = PDstandardfdOrder62(&gyz[index]); + PDstandard3gyz = PDstandardfdOrder63(&gyz[index]); + PDstandard11gyz = PDstandardfdOrder611(&gyz[index]); + PDstandard22gyz = PDstandardfdOrder622(&gyz[index]); + PDstandard33gyz = PDstandardfdOrder633(&gyz[index]); + PDstandard12gyz = PDstandardfdOrder612(&gyz[index]); + PDstandard13gyz = PDstandardfdOrder613(&gyz[index]); + PDstandard23gyz = PDstandardfdOrder623(&gyz[index]); + PDstandard1gzz = PDstandardfdOrder61(&gzz[index]); + PDstandard2gzz = PDstandardfdOrder62(&gzz[index]); + PDstandard3gzz = PDstandardfdOrder63(&gzz[index]); + PDstandard11gzz = PDstandardfdOrder611(&gzz[index]); + PDstandard22gzz = PDstandardfdOrder622(&gzz[index]); + PDstandard33gzz = PDstandardfdOrder633(&gzz[index]); + PDstandard12gzz = PDstandardfdOrder612(&gzz[index]); + PDstandard13gzz = PDstandardfdOrder613(&gzz[index]); + PDstandard23gzz = PDstandardfdOrder623(&gzz[index]); + PDstandard1kxx = PDstandardfdOrder61(&kxx[index]); + PDstandard2kxx = PDstandardfdOrder62(&kxx[index]); + PDstandard3kxx = PDstandardfdOrder63(&kxx[index]); + PDstandard1kxy = PDstandardfdOrder61(&kxy[index]); + PDstandard2kxy = PDstandardfdOrder62(&kxy[index]); + PDstandard3kxy = PDstandardfdOrder63(&kxy[index]); + PDstandard1kxz = PDstandardfdOrder61(&kxz[index]); + PDstandard2kxz = PDstandardfdOrder62(&kxz[index]); + PDstandard3kxz = PDstandardfdOrder63(&kxz[index]); + PDstandard1kyy = PDstandardfdOrder61(&kyy[index]); + PDstandard2kyy = PDstandardfdOrder62(&kyy[index]); + PDstandard3kyy = PDstandardfdOrder63(&kyy[index]); + PDstandard1kyz = PDstandardfdOrder61(&kyz[index]); + PDstandard2kyz = PDstandardfdOrder62(&kyz[index]); + PDstandard3kyz = PDstandardfdOrder63(&kyz[index]); + PDstandard1kzz = PDstandardfdOrder61(&kzz[index]); + PDstandard2kzz = PDstandardfdOrder62(&kzz[index]); + PDstandard3kzz = PDstandardfdOrder63(&kzz[index]); + break; + + case 8: + PDstandard1gxx = PDstandardfdOrder81(&gxx[index]); + PDstandard2gxx = PDstandardfdOrder82(&gxx[index]); + PDstandard3gxx = PDstandardfdOrder83(&gxx[index]); + PDstandard11gxx = PDstandardfdOrder811(&gxx[index]); + PDstandard22gxx = PDstandardfdOrder822(&gxx[index]); + PDstandard33gxx = PDstandardfdOrder833(&gxx[index]); + PDstandard12gxx = PDstandardfdOrder812(&gxx[index]); + PDstandard13gxx = PDstandardfdOrder813(&gxx[index]); + PDstandard23gxx = PDstandardfdOrder823(&gxx[index]); + PDstandard1gxy = PDstandardfdOrder81(&gxy[index]); + PDstandard2gxy = PDstandardfdOrder82(&gxy[index]); + PDstandard3gxy = PDstandardfdOrder83(&gxy[index]); + PDstandard11gxy = PDstandardfdOrder811(&gxy[index]); + PDstandard22gxy = PDstandardfdOrder822(&gxy[index]); + PDstandard33gxy = PDstandardfdOrder833(&gxy[index]); + PDstandard12gxy = PDstandardfdOrder812(&gxy[index]); + PDstandard13gxy = PDstandardfdOrder813(&gxy[index]); + PDstandard23gxy = PDstandardfdOrder823(&gxy[index]); + PDstandard1gxz = PDstandardfdOrder81(&gxz[index]); + PDstandard2gxz = PDstandardfdOrder82(&gxz[index]); + PDstandard3gxz = PDstandardfdOrder83(&gxz[index]); + PDstandard11gxz = PDstandardfdOrder811(&gxz[index]); + PDstandard22gxz = PDstandardfdOrder822(&gxz[index]); + PDstandard33gxz = PDstandardfdOrder833(&gxz[index]); + PDstandard12gxz = PDstandardfdOrder812(&gxz[index]); + PDstandard13gxz = PDstandardfdOrder813(&gxz[index]); + PDstandard23gxz = PDstandardfdOrder823(&gxz[index]); + PDstandard1gyy = PDstandardfdOrder81(&gyy[index]); + PDstandard2gyy = PDstandardfdOrder82(&gyy[index]); + PDstandard3gyy = PDstandardfdOrder83(&gyy[index]); + PDstandard11gyy = PDstandardfdOrder811(&gyy[index]); + PDstandard22gyy = PDstandardfdOrder822(&gyy[index]); + PDstandard33gyy = PDstandardfdOrder833(&gyy[index]); + PDstandard12gyy = PDstandardfdOrder812(&gyy[index]); + PDstandard13gyy = PDstandardfdOrder813(&gyy[index]); + PDstandard23gyy = PDstandardfdOrder823(&gyy[index]); + PDstandard1gyz = PDstandardfdOrder81(&gyz[index]); + PDstandard2gyz = PDstandardfdOrder82(&gyz[index]); + PDstandard3gyz = PDstandardfdOrder83(&gyz[index]); + PDstandard11gyz = PDstandardfdOrder811(&gyz[index]); + PDstandard22gyz = PDstandardfdOrder822(&gyz[index]); + PDstandard33gyz = PDstandardfdOrder833(&gyz[index]); + PDstandard12gyz = PDstandardfdOrder812(&gyz[index]); + PDstandard13gyz = PDstandardfdOrder813(&gyz[index]); + PDstandard23gyz = PDstandardfdOrder823(&gyz[index]); + PDstandard1gzz = PDstandardfdOrder81(&gzz[index]); + PDstandard2gzz = PDstandardfdOrder82(&gzz[index]); + PDstandard3gzz = PDstandardfdOrder83(&gzz[index]); + PDstandard11gzz = PDstandardfdOrder811(&gzz[index]); + PDstandard22gzz = PDstandardfdOrder822(&gzz[index]); + PDstandard33gzz = PDstandardfdOrder833(&gzz[index]); + PDstandard12gzz = PDstandardfdOrder812(&gzz[index]); + PDstandard13gzz = PDstandardfdOrder813(&gzz[index]); + PDstandard23gzz = PDstandardfdOrder823(&gzz[index]); + PDstandard1kxx = PDstandardfdOrder81(&kxx[index]); + PDstandard2kxx = PDstandardfdOrder82(&kxx[index]); + PDstandard3kxx = PDstandardfdOrder83(&kxx[index]); + PDstandard1kxy = PDstandardfdOrder81(&kxy[index]); + PDstandard2kxy = PDstandardfdOrder82(&kxy[index]); + PDstandard3kxy = PDstandardfdOrder83(&kxy[index]); + PDstandard1kxz = PDstandardfdOrder81(&kxz[index]); + PDstandard2kxz = PDstandardfdOrder82(&kxz[index]); + PDstandard3kxz = PDstandardfdOrder83(&kxz[index]); + PDstandard1kyy = PDstandardfdOrder81(&kyy[index]); + PDstandard2kyy = PDstandardfdOrder82(&kyy[index]); + PDstandard3kyy = PDstandardfdOrder83(&kyy[index]); + PDstandard1kyz = PDstandardfdOrder81(&kyz[index]); + PDstandard2kyz = PDstandardfdOrder82(&kyz[index]); + PDstandard3kyz = PDstandardfdOrder83(&kyz[index]); + PDstandard1kzz = PDstandardfdOrder81(&kzz[index]); + PDstandard2kzz = PDstandardfdOrder82(&kzz[index]); + PDstandard3kzz = PDstandardfdOrder83(&kzz[index]); + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandard11gyy; + CCTK_REAL_VEC JacPDstandard11gyz; + CCTK_REAL_VEC JacPDstandard11gzz; + CCTK_REAL_VEC JacPDstandard12gxy; + CCTK_REAL_VEC JacPDstandard12gxz; + CCTK_REAL_VEC JacPDstandard12gyz; + CCTK_REAL_VEC JacPDstandard12gzz; + CCTK_REAL_VEC JacPDstandard13gxz; + CCTK_REAL_VEC JacPDstandard1gxx; + CCTK_REAL_VEC JacPDstandard1gxy; + CCTK_REAL_VEC JacPDstandard1gxz; + CCTK_REAL_VEC JacPDstandard1gyy; + CCTK_REAL_VEC JacPDstandard1gyz; + CCTK_REAL_VEC JacPDstandard1gzz; + CCTK_REAL_VEC JacPDstandard1kxy; + CCTK_REAL_VEC JacPDstandard1kxz; + CCTK_REAL_VEC JacPDstandard1kyy; + CCTK_REAL_VEC JacPDstandard1kyz; + CCTK_REAL_VEC JacPDstandard1kzz; + CCTK_REAL_VEC JacPDstandard21gxy; + CCTK_REAL_VEC JacPDstandard22gxx; + CCTK_REAL_VEC JacPDstandard22gxz; + CCTK_REAL_VEC JacPDstandard22gzz; + CCTK_REAL_VEC JacPDstandard23gxx; + CCTK_REAL_VEC JacPDstandard23gxy; + CCTK_REAL_VEC JacPDstandard23gxz; + CCTK_REAL_VEC JacPDstandard23gyz; + CCTK_REAL_VEC JacPDstandard2gxx; + CCTK_REAL_VEC JacPDstandard2gxy; + CCTK_REAL_VEC JacPDstandard2gxz; + CCTK_REAL_VEC JacPDstandard2gyy; + CCTK_REAL_VEC JacPDstandard2gyz; + CCTK_REAL_VEC JacPDstandard2gzz; + CCTK_REAL_VEC JacPDstandard2kxx; + CCTK_REAL_VEC JacPDstandard2kxy; + CCTK_REAL_VEC JacPDstandard2kxz; + CCTK_REAL_VEC JacPDstandard2kyz; + CCTK_REAL_VEC JacPDstandard2kzz; + CCTK_REAL_VEC JacPDstandard31gxy; + CCTK_REAL_VEC JacPDstandard31gxz; + CCTK_REAL_VEC JacPDstandard31gyy; + CCTK_REAL_VEC JacPDstandard31gyz; + CCTK_REAL_VEC JacPDstandard32gyz; + CCTK_REAL_VEC JacPDstandard33gxx; + CCTK_REAL_VEC JacPDstandard33gxy; + CCTK_REAL_VEC JacPDstandard33gyy; + CCTK_REAL_VEC JacPDstandard3gxx; + CCTK_REAL_VEC JacPDstandard3gxy; + CCTK_REAL_VEC JacPDstandard3gxz; + CCTK_REAL_VEC JacPDstandard3gyy; + CCTK_REAL_VEC JacPDstandard3gyz; + CCTK_REAL_VEC JacPDstandard3gzz; + CCTK_REAL_VEC JacPDstandard3kxx; + CCTK_REAL_VEC JacPDstandard3kxy; + CCTK_REAL_VEC JacPDstandard3kxz; + CCTK_REAL_VEC JacPDstandard3kyy; + CCTK_REAL_VEC JacPDstandard3kyz; + + if (use_jacobian) + { + JacPDstandard1gxx = + kmadd(J11L,PDstandard1gxx,kmadd(J21L,PDstandard2gxx,kmul(J31L,PDstandard3gxx))); + + JacPDstandard1gxy = + kmadd(J11L,PDstandard1gxy,kmadd(J21L,PDstandard2gxy,kmul(J31L,PDstandard3gxy))); + + JacPDstandard1gxz = + kmadd(J11L,PDstandard1gxz,kmadd(J21L,PDstandard2gxz,kmul(J31L,PDstandard3gxz))); + + JacPDstandard1gyy = + kmadd(J11L,PDstandard1gyy,kmadd(J21L,PDstandard2gyy,kmul(J31L,PDstandard3gyy))); + + JacPDstandard1gyz = + kmadd(J11L,PDstandard1gyz,kmadd(J21L,PDstandard2gyz,kmul(J31L,PDstandard3gyz))); + + JacPDstandard1gzz = + kmadd(J11L,PDstandard1gzz,kmadd(J21L,PDstandard2gzz,kmul(J31L,PDstandard3gzz))); + + JacPDstandard1kxy = + kmadd(J11L,PDstandard1kxy,kmadd(J21L,PDstandard2kxy,kmul(J31L,PDstandard3kxy))); + + JacPDstandard1kxz = + kmadd(J11L,PDstandard1kxz,kmadd(J21L,PDstandard2kxz,kmul(J31L,PDstandard3kxz))); + + JacPDstandard1kyy = + kmadd(J11L,PDstandard1kyy,kmadd(J21L,PDstandard2kyy,kmul(J31L,PDstandard3kyy))); + + JacPDstandard1kyz = + kmadd(J11L,PDstandard1kyz,kmadd(J21L,PDstandard2kyz,kmul(J31L,PDstandard3kyz))); + + JacPDstandard1kzz = + kmadd(J11L,PDstandard1kzz,kmadd(J21L,PDstandard2kzz,kmul(J31L,PDstandard3kzz))); + + JacPDstandard2gxx = + kmadd(J12L,PDstandard1gxx,kmadd(J22L,PDstandard2gxx,kmul(J32L,PDstandard3gxx))); + + JacPDstandard2gxy = + kmadd(J12L,PDstandard1gxy,kmadd(J22L,PDstandard2gxy,kmul(J32L,PDstandard3gxy))); + + JacPDstandard2gxz = + kmadd(J12L,PDstandard1gxz,kmadd(J22L,PDstandard2gxz,kmul(J32L,PDstandard3gxz))); + + JacPDstandard2gyy = + kmadd(J12L,PDstandard1gyy,kmadd(J22L,PDstandard2gyy,kmul(J32L,PDstandard3gyy))); + + JacPDstandard2gyz = + kmadd(J12L,PDstandard1gyz,kmadd(J22L,PDstandard2gyz,kmul(J32L,PDstandard3gyz))); + + JacPDstandard2gzz = + kmadd(J12L,PDstandard1gzz,kmadd(J22L,PDstandard2gzz,kmul(J32L,PDstandard3gzz))); + + JacPDstandard2kxx = + kmadd(J12L,PDstandard1kxx,kmadd(J22L,PDstandard2kxx,kmul(J32L,PDstandard3kxx))); + + JacPDstandard2kxy = + kmadd(J12L,PDstandard1kxy,kmadd(J22L,PDstandard2kxy,kmul(J32L,PDstandard3kxy))); + + JacPDstandard2kxz = + kmadd(J12L,PDstandard1kxz,kmadd(J22L,PDstandard2kxz,kmul(J32L,PDstandard3kxz))); + + JacPDstandard2kyz = + kmadd(J12L,PDstandard1kyz,kmadd(J22L,PDstandard2kyz,kmul(J32L,PDstandard3kyz))); + + JacPDstandard2kzz = + kmadd(J12L,PDstandard1kzz,kmadd(J22L,PDstandard2kzz,kmul(J32L,PDstandard3kzz))); + + JacPDstandard3gxx = + kmadd(J13L,PDstandard1gxx,kmadd(J23L,PDstandard2gxx,kmul(J33L,PDstandard3gxx))); + + JacPDstandard3gxy = + kmadd(J13L,PDstandard1gxy,kmadd(J23L,PDstandard2gxy,kmul(J33L,PDstandard3gxy))); + + JacPDstandard3gxz = + kmadd(J13L,PDstandard1gxz,kmadd(J23L,PDstandard2gxz,kmul(J33L,PDstandard3gxz))); + + JacPDstandard3gyy = + kmadd(J13L,PDstandard1gyy,kmadd(J23L,PDstandard2gyy,kmul(J33L,PDstandard3gyy))); + + JacPDstandard3gyz = + kmadd(J13L,PDstandard1gyz,kmadd(J23L,PDstandard2gyz,kmul(J33L,PDstandard3gyz))); + + JacPDstandard3gzz = + kmadd(J13L,PDstandard1gzz,kmadd(J23L,PDstandard2gzz,kmul(J33L,PDstandard3gzz))); + + JacPDstandard3kxx = + kmadd(J13L,PDstandard1kxx,kmadd(J23L,PDstandard2kxx,kmul(J33L,PDstandard3kxx))); + + JacPDstandard3kxy = + kmadd(J13L,PDstandard1kxy,kmadd(J23L,PDstandard2kxy,kmul(J33L,PDstandard3kxy))); + + JacPDstandard3kxz = + kmadd(J13L,PDstandard1kxz,kmadd(J23L,PDstandard2kxz,kmul(J33L,PDstandard3kxz))); + + JacPDstandard3kyy = + kmadd(J13L,PDstandard1kyy,kmadd(J23L,PDstandard2kyy,kmul(J33L,PDstandard3kyy))); + + JacPDstandard3kyz = + kmadd(J13L,PDstandard1kyz,kmadd(J23L,PDstandard2kyz,kmul(J33L,PDstandard3kyz))); + + JacPDstandard11gyy = + kmadd(dJ111L,PDstandard1gyy,kmadd(dJ211L,PDstandard2gyy,kmadd(dJ311L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J11L,J11L),kmadd(PDstandard22gyy,kmul(J21L,J21L),kmadd(PDstandard33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy)),kmul(J21L,kmul(J31L,PDstandard23gyy))),ToReal(2)))))))); + + JacPDstandard11gyz = + kmadd(dJ111L,PDstandard1gyz,kmadd(dJ211L,PDstandard2gyz,kmadd(dJ311L,PDstandard3gyz,kmadd(PDstandard11gyz,kmul(J11L,J11L),kmadd(PDstandard22gyz,kmul(J21L,J21L),kmadd(PDstandard33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz)),kmul(J21L,kmul(J31L,PDstandard23gyz))),ToReal(2)))))))); + + JacPDstandard11gzz = + kmadd(dJ111L,PDstandard1gzz,kmadd(dJ211L,PDstandard2gzz,kmadd(dJ311L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J11L,J11L),kmadd(PDstandard22gzz,kmul(J21L,J21L),kmadd(PDstandard33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz)),kmul(J21L,kmul(J31L,PDstandard23gzz))),ToReal(2)))))))); + + JacPDstandard22gxx = + kmadd(dJ122L,PDstandard1gxx,kmadd(dJ222L,PDstandard2gxx,kmadd(dJ322L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J12L,J12L),kmadd(PDstandard22gxx,kmul(J22L,J22L),kmadd(PDstandard33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx)),kmul(J22L,kmul(J32L,PDstandard23gxx))),ToReal(2)))))))); + + JacPDstandard22gxz = + kmadd(dJ122L,PDstandard1gxz,kmadd(dJ222L,PDstandard2gxz,kmadd(dJ322L,PDstandard3gxz,kmadd(PDstandard11gxz,kmul(J12L,J12L),kmadd(PDstandard22gxz,kmul(J22L,J22L),kmadd(PDstandard33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmul(J22L,kmul(J32L,PDstandard23gxz))),ToReal(2)))))))); + + JacPDstandard22gzz = + kmadd(dJ122L,PDstandard1gzz,kmadd(dJ222L,PDstandard2gzz,kmadd(dJ322L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J12L,J12L),kmadd(PDstandard22gzz,kmul(J22L,J22L),kmadd(PDstandard33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmul(J22L,kmul(J32L,PDstandard23gzz))),ToReal(2)))))))); + + JacPDstandard33gxx = + kmadd(dJ133L,PDstandard1gxx,kmadd(dJ233L,PDstandard2gxx,kmadd(dJ333L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J13L,J13L),kmadd(PDstandard22gxx,kmul(J23L,J23L),kmadd(PDstandard33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmul(J23L,kmul(J33L,PDstandard23gxx))),ToReal(2)))))))); + + JacPDstandard33gxy = + kmadd(dJ133L,PDstandard1gxy,kmadd(dJ233L,PDstandard2gxy,kmadd(dJ333L,PDstandard3gxy,kmadd(PDstandard11gxy,kmul(J13L,J13L),kmadd(PDstandard22gxy,kmul(J23L,J23L),kmadd(PDstandard33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmul(J23L,kmul(J33L,PDstandard23gxy))),ToReal(2)))))))); + + JacPDstandard33gyy = + kmadd(dJ133L,PDstandard1gyy,kmadd(dJ233L,PDstandard2gyy,kmadd(dJ333L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J13L,J13L),kmadd(PDstandard22gyy,kmul(J23L,J23L),kmadd(PDstandard33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmul(J23L,kmul(J33L,PDstandard23gyy))),ToReal(2)))))))); + + JacPDstandard12gxy = + kmadd(J12L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy)),kmadd(dJ112L,PDstandard1gxy,kmadd(J22L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ212L,PDstandard2gxy,kmadd(J32L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ312L,PDstandard3gxy))))))); + + JacPDstandard12gxz = + kmadd(J12L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmadd(dJ112L,PDstandard1gxz,kmadd(J22L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ212L,PDstandard2gxz,kmadd(J32L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ312L,PDstandard3gxz))))))); + + JacPDstandard12gyz = + kmadd(J12L,kmadd(J11L,PDstandard11gyz,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz))),kmadd(J11L,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz)),kmadd(dJ112L,PDstandard1gyz,kmadd(J22L,kmadd(J21L,PDstandard22gyz,kmul(J31L,PDstandard23gyz)),kmadd(dJ212L,PDstandard2gyz,kmadd(J32L,kmadd(J21L,PDstandard23gyz,kmul(J31L,PDstandard33gyz)),kmul(dJ312L,PDstandard3gyz))))))); + + JacPDstandard12gzz = + kmadd(J12L,kmadd(J11L,PDstandard11gzz,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz))),kmadd(J11L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmadd(dJ112L,PDstandard1gzz,kmadd(J22L,kmadd(J21L,PDstandard22gzz,kmul(J31L,PDstandard23gzz)),kmadd(dJ212L,PDstandard2gzz,kmadd(J32L,kmadd(J21L,PDstandard23gzz,kmul(J31L,PDstandard33gzz)),kmul(dJ312L,PDstandard3gzz))))))); + + JacPDstandard13gxz = + kmadd(J13L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ113L,PDstandard1gxz,kmadd(J23L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ213L,PDstandard2gxz,kmadd(J33L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ313L,PDstandard3gxz))))))); + + JacPDstandard21gxy = + kmadd(J12L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy)),kmadd(dJ112L,PDstandard1gxy,kmadd(J22L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ212L,PDstandard2gxy,kmadd(J32L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ312L,PDstandard3gxy))))))); + + JacPDstandard23gxx = + kmadd(J13L,kmadd(J12L,PDstandard11gxx,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx))),kmadd(J12L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmadd(dJ123L,PDstandard1gxx,kmadd(J23L,kmadd(J22L,PDstandard22gxx,kmul(J32L,PDstandard23gxx)),kmadd(dJ223L,PDstandard2gxx,kmadd(J33L,kmadd(J22L,PDstandard23gxx,kmul(J32L,PDstandard33gxx)),kmul(dJ323L,PDstandard3gxx))))))); + + JacPDstandard23gxy = + kmadd(J13L,kmadd(J12L,PDstandard11gxy,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy))),kmadd(J12L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmadd(dJ123L,PDstandard1gxy,kmadd(J23L,kmadd(J22L,PDstandard22gxy,kmul(J32L,PDstandard23gxy)),kmadd(dJ223L,PDstandard2gxy,kmadd(J33L,kmadd(J22L,PDstandard23gxy,kmul(J32L,PDstandard33gxy)),kmul(dJ323L,PDstandard3gxy))))))); + + JacPDstandard23gxz = + kmadd(J13L,kmadd(J12L,PDstandard11gxz,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz))),kmadd(J12L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ123L,PDstandard1gxz,kmadd(J23L,kmadd(J22L,PDstandard22gxz,kmul(J32L,PDstandard23gxz)),kmadd(dJ223L,PDstandard2gxz,kmadd(J33L,kmadd(J22L,PDstandard23gxz,kmul(J32L,PDstandard33gxz)),kmul(dJ323L,PDstandard3gxz))))))); + + JacPDstandard23gyz = + kmadd(J13L,kmadd(J12L,PDstandard11gyz,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz))),kmadd(J12L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ123L,PDstandard1gyz,kmadd(J23L,kmadd(J22L,PDstandard22gyz,kmul(J32L,PDstandard23gyz)),kmadd(dJ223L,PDstandard2gyz,kmadd(J33L,kmadd(J22L,PDstandard23gyz,kmul(J32L,PDstandard33gyz)),kmul(dJ323L,PDstandard3gyz))))))); + + JacPDstandard31gxy = + kmadd(J13L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmadd(dJ113L,PDstandard1gxy,kmadd(J23L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ213L,PDstandard2gxy,kmadd(J33L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ313L,PDstandard3gxy))))))); + + JacPDstandard31gxz = + kmadd(J13L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ113L,PDstandard1gxz,kmadd(J23L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ213L,PDstandard2gxz,kmadd(J33L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ313L,PDstandard3gxz))))))); + + JacPDstandard31gyy = + kmadd(J13L,kmadd(J11L,PDstandard11gyy,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy))),kmadd(J11L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmadd(dJ113L,PDstandard1gyy,kmadd(J23L,kmadd(J21L,PDstandard22gyy,kmul(J31L,PDstandard23gyy)),kmadd(dJ213L,PDstandard2gyy,kmadd(J33L,kmadd(J21L,PDstandard23gyy,kmul(J31L,PDstandard33gyy)),kmul(dJ313L,PDstandard3gyy))))))); + + JacPDstandard31gyz = + kmadd(J13L,kmadd(J11L,PDstandard11gyz,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz))),kmadd(J11L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ113L,PDstandard1gyz,kmadd(J23L,kmadd(J21L,PDstandard22gyz,kmul(J31L,PDstandard23gyz)),kmadd(dJ213L,PDstandard2gyz,kmadd(J33L,kmadd(J21L,PDstandard23gyz,kmul(J31L,PDstandard33gyz)),kmul(dJ313L,PDstandard3gyz))))))); + + JacPDstandard32gyz = + kmadd(J13L,kmadd(J12L,PDstandard11gyz,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz))),kmadd(J12L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ123L,PDstandard1gyz,kmadd(J23L,kmadd(J22L,PDstandard22gyz,kmul(J32L,PDstandard23gyz)),kmadd(dJ223L,PDstandard2gyz,kmadd(J33L,kmadd(J22L,PDstandard23gyz,kmul(J32L,PDstandard33gyz)),kmul(dJ323L,PDstandard3gyz))))))); + } + else + { + JacPDstandard1gxx = PDstandard1gxx; + + JacPDstandard1gxy = PDstandard1gxy; + + JacPDstandard1gxz = PDstandard1gxz; + + JacPDstandard1gyy = PDstandard1gyy; + + JacPDstandard1gyz = PDstandard1gyz; + + JacPDstandard1gzz = PDstandard1gzz; + + JacPDstandard1kxy = PDstandard1kxy; + + JacPDstandard1kxz = PDstandard1kxz; + + JacPDstandard1kyy = PDstandard1kyy; + + JacPDstandard1kyz = PDstandard1kyz; + + JacPDstandard1kzz = PDstandard1kzz; + + JacPDstandard2gxx = PDstandard2gxx; + + JacPDstandard2gxy = PDstandard2gxy; + + JacPDstandard2gxz = PDstandard2gxz; + + JacPDstandard2gyy = PDstandard2gyy; + + JacPDstandard2gyz = PDstandard2gyz; + + JacPDstandard2gzz = PDstandard2gzz; + + JacPDstandard2kxx = PDstandard2kxx; + + JacPDstandard2kxy = PDstandard2kxy; + + JacPDstandard2kxz = PDstandard2kxz; + + JacPDstandard2kyz = PDstandard2kyz; + + JacPDstandard2kzz = PDstandard2kzz; + + JacPDstandard3gxx = PDstandard3gxx; + + JacPDstandard3gxy = PDstandard3gxy; + + JacPDstandard3gxz = PDstandard3gxz; + + JacPDstandard3gyy = PDstandard3gyy; + + JacPDstandard3gyz = PDstandard3gyz; + + JacPDstandard3gzz = PDstandard3gzz; + + JacPDstandard3kxx = PDstandard3kxx; + + JacPDstandard3kxy = PDstandard3kxy; + + JacPDstandard3kxz = PDstandard3kxz; + + JacPDstandard3kyy = PDstandard3kyy; + + JacPDstandard3kyz = PDstandard3kyz; + + JacPDstandard11gyy = PDstandard11gyy; + + JacPDstandard11gyz = PDstandard11gyz; + + JacPDstandard11gzz = PDstandard11gzz; + + JacPDstandard22gxx = PDstandard22gxx; + + JacPDstandard22gxz = PDstandard22gxz; + + JacPDstandard22gzz = PDstandard22gzz; + + JacPDstandard33gxx = PDstandard33gxx; + + JacPDstandard33gxy = PDstandard33gxy; + + JacPDstandard33gyy = PDstandard33gyy; + + JacPDstandard12gxy = PDstandard12gxy; + + JacPDstandard12gxz = PDstandard12gxz; + + JacPDstandard12gyz = PDstandard12gyz; + + JacPDstandard12gzz = PDstandard12gzz; + + JacPDstandard13gxz = PDstandard13gxz; + + JacPDstandard21gxy = PDstandard12gxy; + + JacPDstandard23gxx = PDstandard23gxx; + + JacPDstandard23gxy = PDstandard23gxy; + + JacPDstandard23gxz = PDstandard23gxz; + + JacPDstandard23gyz = PDstandard23gyz; + + JacPDstandard31gxy = PDstandard13gxy; + + JacPDstandard31gxz = PDstandard13gxz; + + JacPDstandard31gyy = PDstandard13gyy; + + JacPDstandard31gyz = PDstandard13gyz; + + JacPDstandard32gyz = PDstandard23gyz; + } + + CCTK_REAL_VEC detg = + knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); + + CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); + + CCTK_REAL_VEC gInv11 = + kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); + + CCTK_REAL_VEC gInv12 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv13 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv21 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv22 = + kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); + + CCTK_REAL_VEC gInv23 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv31 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv32 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv33 = + kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); + + CCTK_REAL_VEC gamma111 = + kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard1gxx,knmsub(gInv12,JacPDstandard2gxx,kmsub(kmadd(gInv12,JacPDstandard1gxy,kmul(gInv13,JacPDstandard1gxz)),ToReal(2),kmul(gInv13,JacPDstandard3gxx))))); + + CCTK_REAL_VEC gamma211 = + kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard1gxx,knmsub(gInv22,JacPDstandard2gxx,kmsub(kmadd(gInv22,JacPDstandard1gxy,kmul(gInv23,JacPDstandard1gxz)),ToReal(2),kmul(gInv23,JacPDstandard3gxx))))); + + CCTK_REAL_VEC gamma311 = + kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard1gxx,knmsub(gInv32,JacPDstandard2gxx,kmsub(kmadd(gInv32,JacPDstandard1gxy,kmul(gInv33,JacPDstandard1gxz)),ToReal(2),kmul(gInv33,JacPDstandard3gxx))))); + + CCTK_REAL_VEC gamma121 = + kmul(kmadd(gInv12,JacPDstandard1gyy,kmadd(gInv11,JacPDstandard2gxx,kmul(gInv13,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma221 = + kmul(kmadd(gInv22,JacPDstandard1gyy,kmadd(gInv21,JacPDstandard2gxx,kmul(gInv23,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma321 = + kmul(kmadd(gInv32,JacPDstandard1gyy,kmadd(gInv31,JacPDstandard2gxx,kmul(gInv33,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma131 = + kmul(kmadd(gInv13,JacPDstandard1gzz,kmadd(gInv11,JacPDstandard3gxx,kmul(gInv12,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma231 = + kmul(kmadd(gInv23,JacPDstandard1gzz,kmadd(gInv21,JacPDstandard3gxx,kmul(gInv22,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma331 = + kmul(kmadd(gInv33,JacPDstandard1gzz,kmadd(gInv31,JacPDstandard3gxx,kmul(gInv32,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma122 = + kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2gyy,kmadd(gInv11,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv13,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + + CCTK_REAL_VEC gamma222 = + kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2gyy,kmadd(gInv21,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv23,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + + CCTK_REAL_VEC gamma322 = + kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2gyy,kmadd(gInv31,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv33,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + + CCTK_REAL_VEC gamma132 = + kmul(kmadd(gInv13,JacPDstandard2gzz,kmadd(gInv12,JacPDstandard3gyy,kmul(gInv11,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma232 = + kmul(kmadd(gInv23,JacPDstandard2gzz,kmadd(gInv22,JacPDstandard3gyy,kmul(gInv21,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma332 = + kmul(kmadd(gInv33,JacPDstandard2gzz,kmadd(gInv32,JacPDstandard3gyy,kmul(gInv31,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma133 = + kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard3gzz,kmadd(gInv11,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv12,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + + CCTK_REAL_VEC gamma233 = + kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard3gzz,kmadd(gInv21,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv22,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + + CCTK_REAL_VEC gamma333 = + kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard3gzz,kmadd(gInv31,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv32,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + + CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); + + CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); + + CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); + + CCTK_REAL_VEC va1 = kneg(ymoved); + + CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC va3 = ToReal(0); + + CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC vb2 = ymoved; + + CCTK_REAL_VEC vb3 = zmoved; + + CCTK_REAL_VEC vc1 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); + + CCTK_REAL_VEC vc2 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); + + CCTK_REAL_VEC vc3 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); + + CCTK_REAL_VEC wa1 = va1; + + CCTK_REAL_VEC wa2 = va2; + + CCTK_REAL_VEC wa3 = va3; + + CCTK_REAL_VEC omega11 = + kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); + + CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); + + CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); + + CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); + + CCTK_REAL_VEC omega12 = + kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); + + CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); + + CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); + + CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); + + CCTK_REAL_VEC omega22 = + kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); + + CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); + + CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); + + CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); + + CCTK_REAL_VEC omega13 = + kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC omega23 = + kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); + + CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); + + CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); + + CCTK_REAL_VEC omega33 = + kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); + + CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); + + CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); + + CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); + + CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); + + CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); + + CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); + + CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); + + CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); + + CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); + + CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); + + CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); + + CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); + + CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); + + CCTK_REAL_VEC nn = isqrt2; + + CCTK_REAL_VEC R1212 = + kmul(ToReal(0.5),kadd(JacPDstandard12gxy,kadd(JacPDstandard21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard22gxx),JacPDstandard11gyy))))); + + CCTK_REAL_VEC R1213 = + kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard12gxz,kadd(JacPDstandard31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard23gxx),JacPDstandard11gyz)))))); + + CCTK_REAL_VEC R1223 = + kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard22gxz,kadd(JacPDstandard31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard23gxy),JacPDstandard12gyz)))))); + + CCTK_REAL_VEC R1313 = + kmul(ToReal(0.5),kadd(JacPDstandard13gxz,kadd(JacPDstandard31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard33gxx),JacPDstandard11gzz))))); + + CCTK_REAL_VEC R1323 = + kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard23gxz,kadd(JacPDstandard31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard33gxy),JacPDstandard12gzz)))))); + + CCTK_REAL_VEC R2323 = + kmul(ToReal(0.5),kadd(JacPDstandard23gyz,kadd(JacPDstandard32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard33gyy),JacPDstandard22gzz))))); + + CCTK_REAL_VEC R4p1212 = + kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); + + CCTK_REAL_VEC R4p1213 = + kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); + + CCTK_REAL_VEC R4p1223 = + kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); + + CCTK_REAL_VEC R4p1313 = + kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); + + CCTK_REAL_VEC R4p1323 = + kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); + + CCTK_REAL_VEC R4p2323 = + kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); + + CCTK_REAL_VEC Ro111 = ToReal(0); + + CCTK_REAL_VEC Ro112 = + kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2kxx)))))); + + CCTK_REAL_VEC Ro113 = + kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard3kxx)))))); + + CCTK_REAL_VEC Ro121 = + kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard1kxy)))))); + + CCTK_REAL_VEC Ro122 = ToReal(0); + + CCTK_REAL_VEC Ro123 = + kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard3kxy)))))); + + CCTK_REAL_VEC Ro131 = + kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard1kxz)))))); + + CCTK_REAL_VEC Ro132 = + kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2kxz)))))); + + CCTK_REAL_VEC Ro133 = ToReal(0); + + CCTK_REAL_VEC Ro211 = ToReal(0); + + CCTK_REAL_VEC Ro212 = + kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2kxy)))))); + + CCTK_REAL_VEC Ro213 = + kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard3kxy)))))); + + CCTK_REAL_VEC Ro221 = + kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard1kyy)))))); + + CCTK_REAL_VEC Ro222 = ToReal(0); + + CCTK_REAL_VEC Ro223 = + kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard3kyy)))))); + + CCTK_REAL_VEC Ro231 = + kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard1kyz)))))); + + CCTK_REAL_VEC Ro232 = + kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2kyz)))))); + + CCTK_REAL_VEC Ro233 = ToReal(0); + + CCTK_REAL_VEC Ro311 = ToReal(0); + + CCTK_REAL_VEC Ro312 = + kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2kxz)))))); + + CCTK_REAL_VEC Ro313 = + kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard3kxz)))))); + + CCTK_REAL_VEC Ro321 = + kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard1kyz)))))); + + CCTK_REAL_VEC Ro322 = ToReal(0); + + CCTK_REAL_VEC Ro323 = + kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard3kyz)))))); + + CCTK_REAL_VEC Ro331 = + kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard1kzz)))))); + + CCTK_REAL_VEC Ro332 = + kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2kzz)))))); + + CCTK_REAL_VEC Ro333 = ToReal(0); + + CCTK_REAL_VEC Rojo11 = + kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); + + CCTK_REAL_VEC Rojo12 = + kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo13 = + kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); + + CCTK_REAL_VEC Rojo21 = + kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo22 = + kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Rojo23 = + kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo31 = + kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); + + CCTK_REAL_VEC Rojo32 = + kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo33 = + kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Psi4rL = + kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi4iL = + knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(Psi4i[index],Psi4iL); + vec_store_nta_partial(Psi4r[index],Psi4rL); + } + LC_ENDLOOP3VEC(WeylScal4_psi4_calc_Nth); +} + +extern "C" void WeylScal4_psi4_calc_Nth(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_psi4_calc_Nth_Body"); + } + + if (cctk_iteration % WeylScal4_psi4_calc_Nth_calc_every != WeylScal4_psi4_calc_Nth_calc_offset) + { + return; + } + + const char *const groups[] = { + "admbase::curv", + "admbase::metric", + "grid::coordinates", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_psi4_calc_Nth", 5, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 4, 4, 4); + break; + } + + GenericFD_LoopOverInterior(cctkGH, WeylScal4_psi4_calc_Nth_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_psi4_calc_Nth_Body"); + } +} diff --git a/src/WeylScal4_psis_calc_2nd.cc b/src/WeylScal4_psis_calc_2nd.cc new file mode 100644 index 0000000..0cc5b1b --- /dev/null +++ b/src/WeylScal4_psis_calc_2nd.cc @@ -0,0 +1,1426 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +extern "C" void WeylScal4_psis_calc_2nd_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); + return; +} + +static void WeylScal4_psis_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_psis_calc_2nd, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC gxxL = vec_load(gxx[index]); + CCTK_REAL_VEC gxyL = vec_load(gxy[index]); + CCTK_REAL_VEC gxzL = vec_load(gxz[index]); + CCTK_REAL_VEC gyyL = vec_load(gyy[index]); + CCTK_REAL_VEC gyzL = vec_load(gyz[index]); + CCTK_REAL_VEC gzzL = vec_load(gzz[index]); + CCTK_REAL_VEC kxxL = vec_load(kxx[index]); + CCTK_REAL_VEC kxyL = vec_load(kxy[index]); + CCTK_REAL_VEC kxzL = vec_load(kxz[index]); + CCTK_REAL_VEC kyyL = vec_load(kyy[index]); + CCTK_REAL_VEC kyzL = vec_load(kyz[index]); + CCTK_REAL_VEC kzzL = vec_load(kzz[index]); + CCTK_REAL_VEC xL = vec_load(x[index]); + CCTK_REAL_VEC yL = vec_load(y[index]); + CCTK_REAL_VEC zL = vec_load(z[index]); + + + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + + /* Include user supplied include files */ + + /* Precompute derivatives */ + CCTK_REAL_VEC PDstandard2nd1gxx; + CCTK_REAL_VEC PDstandard2nd2gxx; + CCTK_REAL_VEC PDstandard2nd3gxx; + CCTK_REAL_VEC PDstandard2nd11gxx; + CCTK_REAL_VEC PDstandard2nd22gxx; + CCTK_REAL_VEC PDstandard2nd33gxx; + CCTK_REAL_VEC PDstandard2nd12gxx; + CCTK_REAL_VEC PDstandard2nd13gxx; + CCTK_REAL_VEC PDstandard2nd23gxx; + CCTK_REAL_VEC PDstandard2nd1gxy; + CCTK_REAL_VEC PDstandard2nd2gxy; + CCTK_REAL_VEC PDstandard2nd3gxy; + CCTK_REAL_VEC PDstandard2nd11gxy; + CCTK_REAL_VEC PDstandard2nd22gxy; + CCTK_REAL_VEC PDstandard2nd33gxy; + CCTK_REAL_VEC PDstandard2nd12gxy; + CCTK_REAL_VEC PDstandard2nd13gxy; + CCTK_REAL_VEC PDstandard2nd23gxy; + CCTK_REAL_VEC PDstandard2nd1gxz; + CCTK_REAL_VEC PDstandard2nd2gxz; + CCTK_REAL_VEC PDstandard2nd3gxz; + CCTK_REAL_VEC PDstandard2nd11gxz; + CCTK_REAL_VEC PDstandard2nd22gxz; + CCTK_REAL_VEC PDstandard2nd33gxz; + CCTK_REAL_VEC PDstandard2nd12gxz; + CCTK_REAL_VEC PDstandard2nd13gxz; + CCTK_REAL_VEC PDstandard2nd23gxz; + CCTK_REAL_VEC PDstandard2nd1gyy; + CCTK_REAL_VEC PDstandard2nd2gyy; + CCTK_REAL_VEC PDstandard2nd3gyy; + CCTK_REAL_VEC PDstandard2nd11gyy; + CCTK_REAL_VEC PDstandard2nd22gyy; + CCTK_REAL_VEC PDstandard2nd33gyy; + CCTK_REAL_VEC PDstandard2nd12gyy; + CCTK_REAL_VEC PDstandard2nd13gyy; + CCTK_REAL_VEC PDstandard2nd23gyy; + CCTK_REAL_VEC PDstandard2nd1gyz; + CCTK_REAL_VEC PDstandard2nd2gyz; + CCTK_REAL_VEC PDstandard2nd3gyz; + CCTK_REAL_VEC PDstandard2nd11gyz; + CCTK_REAL_VEC PDstandard2nd22gyz; + CCTK_REAL_VEC PDstandard2nd33gyz; + CCTK_REAL_VEC PDstandard2nd12gyz; + CCTK_REAL_VEC PDstandard2nd13gyz; + CCTK_REAL_VEC PDstandard2nd23gyz; + CCTK_REAL_VEC PDstandard2nd1gzz; + CCTK_REAL_VEC PDstandard2nd2gzz; + CCTK_REAL_VEC PDstandard2nd3gzz; + CCTK_REAL_VEC PDstandard2nd11gzz; + CCTK_REAL_VEC PDstandard2nd22gzz; + CCTK_REAL_VEC PDstandard2nd33gzz; + CCTK_REAL_VEC PDstandard2nd12gzz; + CCTK_REAL_VEC PDstandard2nd13gzz; + CCTK_REAL_VEC PDstandard2nd23gzz; + CCTK_REAL_VEC PDstandard2nd1kxx; + CCTK_REAL_VEC PDstandard2nd2kxx; + CCTK_REAL_VEC PDstandard2nd3kxx; + CCTK_REAL_VEC PDstandard2nd1kxy; + CCTK_REAL_VEC PDstandard2nd2kxy; + CCTK_REAL_VEC PDstandard2nd3kxy; + CCTK_REAL_VEC PDstandard2nd1kxz; + CCTK_REAL_VEC PDstandard2nd2kxz; + CCTK_REAL_VEC PDstandard2nd3kxz; + CCTK_REAL_VEC PDstandard2nd1kyy; + CCTK_REAL_VEC PDstandard2nd2kyy; + CCTK_REAL_VEC PDstandard2nd3kyy; + CCTK_REAL_VEC PDstandard2nd1kyz; + CCTK_REAL_VEC PDstandard2nd2kyz; + CCTK_REAL_VEC PDstandard2nd3kyz; + CCTK_REAL_VEC PDstandard2nd1kzz; + CCTK_REAL_VEC PDstandard2nd2kzz; + CCTK_REAL_VEC PDstandard2nd3kzz; + + switch(fdOrder) + { + case 2: + PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); + PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); + PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); + PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); + PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); + PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); + PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); + PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); + PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); + PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); + PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); + PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); + PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); + PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); + PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); + PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); + PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); + PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); + PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); + PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); + PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); + PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); + PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); + PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); + PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); + PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); + PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); + PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); + PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); + PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); + PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); + PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); + PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); + PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); + PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); + PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); + PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); + PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); + PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); + PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); + PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); + PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); + PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); + PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); + PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); + PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); + PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); + PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); + PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); + PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); + PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); + PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); + PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); + PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); + PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); + PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); + PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); + PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); + PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); + PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); + PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); + PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); + PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); + PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); + PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); + PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); + PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); + PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); + PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); + PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); + PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); + PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); + break; + + case 4: + PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); + PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); + PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); + PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); + PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); + PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); + PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); + PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); + PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); + PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); + PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); + PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); + PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); + PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); + PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); + PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); + PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); + PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); + PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); + PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); + PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); + PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); + PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); + PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); + PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); + PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); + PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); + PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); + PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); + PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); + PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); + PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); + PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); + PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); + PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); + PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); + PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); + PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); + PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); + PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); + PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); + PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); + PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); + PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); + PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); + PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); + PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); + PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); + PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); + PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); + PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); + PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); + PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); + PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); + PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); + PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); + PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); + PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); + PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); + PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); + PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); + PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); + PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); + PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); + PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); + PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); + PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); + PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); + PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); + PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); + PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); + PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); + break; + + case 6: + PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); + PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); + PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); + PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); + PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); + PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); + PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); + PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); + PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); + PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); + PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); + PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); + PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); + PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); + PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); + PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); + PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); + PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); + PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); + PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); + PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); + PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); + PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); + PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); + PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); + PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); + PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); + PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); + PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); + PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); + PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); + PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); + PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); + PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); + PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); + PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); + PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); + PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); + PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); + PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); + PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); + PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); + PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); + PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); + PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); + PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); + PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); + PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); + PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); + PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); + PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); + PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); + PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); + PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); + PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); + PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); + PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); + PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); + PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); + PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); + PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); + PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); + PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); + PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); + PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); + PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); + PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); + PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); + PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); + PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); + PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); + PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); + break; + + case 8: + PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); + PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); + PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); + PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); + PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); + PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); + PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); + PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); + PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); + PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); + PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); + PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); + PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); + PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); + PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); + PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); + PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); + PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); + PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); + PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); + PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); + PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); + PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); + PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); + PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); + PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); + PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); + PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); + PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); + PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); + PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); + PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); + PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); + PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); + PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); + PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); + PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); + PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); + PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); + PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); + PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); + PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); + PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); + PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); + PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); + PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); + PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); + PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); + PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); + PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); + PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); + PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); + PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); + PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); + PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); + PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); + PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); + PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); + PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); + PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); + PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); + PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); + PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); + PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); + PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); + PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); + PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); + PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); + PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); + PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); + PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); + PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandard2nd11gyy; + CCTK_REAL_VEC JacPDstandard2nd11gyz; + CCTK_REAL_VEC JacPDstandard2nd11gzz; + CCTK_REAL_VEC JacPDstandard2nd12gxy; + CCTK_REAL_VEC JacPDstandard2nd12gxz; + CCTK_REAL_VEC JacPDstandard2nd12gyz; + CCTK_REAL_VEC JacPDstandard2nd12gzz; + CCTK_REAL_VEC JacPDstandard2nd13gxz; + CCTK_REAL_VEC JacPDstandard2nd1gxx; + CCTK_REAL_VEC JacPDstandard2nd1gxy; + CCTK_REAL_VEC JacPDstandard2nd1gxz; + CCTK_REAL_VEC JacPDstandard2nd1gyy; + CCTK_REAL_VEC JacPDstandard2nd1gyz; + CCTK_REAL_VEC JacPDstandard2nd1gzz; + CCTK_REAL_VEC JacPDstandard2nd1kxy; + CCTK_REAL_VEC JacPDstandard2nd1kxz; + CCTK_REAL_VEC JacPDstandard2nd1kyy; + CCTK_REAL_VEC JacPDstandard2nd1kyz; + CCTK_REAL_VEC JacPDstandard2nd1kzz; + CCTK_REAL_VEC JacPDstandard2nd21gxy; + CCTK_REAL_VEC JacPDstandard2nd22gxx; + CCTK_REAL_VEC JacPDstandard2nd22gxz; + CCTK_REAL_VEC JacPDstandard2nd22gzz; + CCTK_REAL_VEC JacPDstandard2nd23gxx; + CCTK_REAL_VEC JacPDstandard2nd23gxy; + CCTK_REAL_VEC JacPDstandard2nd23gxz; + CCTK_REAL_VEC JacPDstandard2nd23gyz; + CCTK_REAL_VEC JacPDstandard2nd2gxx; + CCTK_REAL_VEC JacPDstandard2nd2gxy; + CCTK_REAL_VEC JacPDstandard2nd2gxz; + CCTK_REAL_VEC JacPDstandard2nd2gyy; + CCTK_REAL_VEC JacPDstandard2nd2gyz; + CCTK_REAL_VEC JacPDstandard2nd2gzz; + CCTK_REAL_VEC JacPDstandard2nd2kxx; + CCTK_REAL_VEC JacPDstandard2nd2kxy; + CCTK_REAL_VEC JacPDstandard2nd2kxz; + CCTK_REAL_VEC JacPDstandard2nd2kyz; + CCTK_REAL_VEC JacPDstandard2nd2kzz; + CCTK_REAL_VEC JacPDstandard2nd31gxy; + CCTK_REAL_VEC JacPDstandard2nd31gxz; + CCTK_REAL_VEC JacPDstandard2nd31gyy; + CCTK_REAL_VEC JacPDstandard2nd31gyz; + CCTK_REAL_VEC JacPDstandard2nd32gyz; + CCTK_REAL_VEC JacPDstandard2nd33gxx; + CCTK_REAL_VEC JacPDstandard2nd33gxy; + CCTK_REAL_VEC JacPDstandard2nd33gyy; + CCTK_REAL_VEC JacPDstandard2nd3gxx; + CCTK_REAL_VEC JacPDstandard2nd3gxy; + CCTK_REAL_VEC JacPDstandard2nd3gxz; + CCTK_REAL_VEC JacPDstandard2nd3gyy; + CCTK_REAL_VEC JacPDstandard2nd3gyz; + CCTK_REAL_VEC JacPDstandard2nd3gzz; + CCTK_REAL_VEC JacPDstandard2nd3kxx; + CCTK_REAL_VEC JacPDstandard2nd3kxy; + CCTK_REAL_VEC JacPDstandard2nd3kxz; + CCTK_REAL_VEC JacPDstandard2nd3kyy; + CCTK_REAL_VEC JacPDstandard2nd3kyz; + + if (use_jacobian) + { + JacPDstandard2nd1gxx = + kmadd(J11L,PDstandard2nd1gxx,kmadd(J21L,PDstandard2nd2gxx,kmul(J31L,PDstandard2nd3gxx))); + + JacPDstandard2nd1gxy = + kmadd(J11L,PDstandard2nd1gxy,kmadd(J21L,PDstandard2nd2gxy,kmul(J31L,PDstandard2nd3gxy))); + + JacPDstandard2nd1gxz = + kmadd(J11L,PDstandard2nd1gxz,kmadd(J21L,PDstandard2nd2gxz,kmul(J31L,PDstandard2nd3gxz))); + + JacPDstandard2nd1gyy = + kmadd(J11L,PDstandard2nd1gyy,kmadd(J21L,PDstandard2nd2gyy,kmul(J31L,PDstandard2nd3gyy))); + + JacPDstandard2nd1gyz = + kmadd(J11L,PDstandard2nd1gyz,kmadd(J21L,PDstandard2nd2gyz,kmul(J31L,PDstandard2nd3gyz))); + + JacPDstandard2nd1gzz = + kmadd(J11L,PDstandard2nd1gzz,kmadd(J21L,PDstandard2nd2gzz,kmul(J31L,PDstandard2nd3gzz))); + + JacPDstandard2nd1kxy = + kmadd(J11L,PDstandard2nd1kxy,kmadd(J21L,PDstandard2nd2kxy,kmul(J31L,PDstandard2nd3kxy))); + + JacPDstandard2nd1kxz = + kmadd(J11L,PDstandard2nd1kxz,kmadd(J21L,PDstandard2nd2kxz,kmul(J31L,PDstandard2nd3kxz))); + + JacPDstandard2nd1kyy = + kmadd(J11L,PDstandard2nd1kyy,kmadd(J21L,PDstandard2nd2kyy,kmul(J31L,PDstandard2nd3kyy))); + + JacPDstandard2nd1kyz = + kmadd(J11L,PDstandard2nd1kyz,kmadd(J21L,PDstandard2nd2kyz,kmul(J31L,PDstandard2nd3kyz))); + + JacPDstandard2nd1kzz = + kmadd(J11L,PDstandard2nd1kzz,kmadd(J21L,PDstandard2nd2kzz,kmul(J31L,PDstandard2nd3kzz))); + + JacPDstandard2nd2gxx = + kmadd(J12L,PDstandard2nd1gxx,kmadd(J22L,PDstandard2nd2gxx,kmul(J32L,PDstandard2nd3gxx))); + + JacPDstandard2nd2gxy = + kmadd(J12L,PDstandard2nd1gxy,kmadd(J22L,PDstandard2nd2gxy,kmul(J32L,PDstandard2nd3gxy))); + + JacPDstandard2nd2gxz = + kmadd(J12L,PDstandard2nd1gxz,kmadd(J22L,PDstandard2nd2gxz,kmul(J32L,PDstandard2nd3gxz))); + + JacPDstandard2nd2gyy = + kmadd(J12L,PDstandard2nd1gyy,kmadd(J22L,PDstandard2nd2gyy,kmul(J32L,PDstandard2nd3gyy))); + + JacPDstandard2nd2gyz = + kmadd(J12L,PDstandard2nd1gyz,kmadd(J22L,PDstandard2nd2gyz,kmul(J32L,PDstandard2nd3gyz))); + + JacPDstandard2nd2gzz = + kmadd(J12L,PDstandard2nd1gzz,kmadd(J22L,PDstandard2nd2gzz,kmul(J32L,PDstandard2nd3gzz))); + + JacPDstandard2nd2kxx = + kmadd(J12L,PDstandard2nd1kxx,kmadd(J22L,PDstandard2nd2kxx,kmul(J32L,PDstandard2nd3kxx))); + + JacPDstandard2nd2kxy = + kmadd(J12L,PDstandard2nd1kxy,kmadd(J22L,PDstandard2nd2kxy,kmul(J32L,PDstandard2nd3kxy))); + + JacPDstandard2nd2kxz = + kmadd(J12L,PDstandard2nd1kxz,kmadd(J22L,PDstandard2nd2kxz,kmul(J32L,PDstandard2nd3kxz))); + + JacPDstandard2nd2kyz = + kmadd(J12L,PDstandard2nd1kyz,kmadd(J22L,PDstandard2nd2kyz,kmul(J32L,PDstandard2nd3kyz))); + + JacPDstandard2nd2kzz = + kmadd(J12L,PDstandard2nd1kzz,kmadd(J22L,PDstandard2nd2kzz,kmul(J32L,PDstandard2nd3kzz))); + + JacPDstandard2nd3gxx = + kmadd(J13L,PDstandard2nd1gxx,kmadd(J23L,PDstandard2nd2gxx,kmul(J33L,PDstandard2nd3gxx))); + + JacPDstandard2nd3gxy = + kmadd(J13L,PDstandard2nd1gxy,kmadd(J23L,PDstandard2nd2gxy,kmul(J33L,PDstandard2nd3gxy))); + + JacPDstandard2nd3gxz = + kmadd(J13L,PDstandard2nd1gxz,kmadd(J23L,PDstandard2nd2gxz,kmul(J33L,PDstandard2nd3gxz))); + + JacPDstandard2nd3gyy = + kmadd(J13L,PDstandard2nd1gyy,kmadd(J23L,PDstandard2nd2gyy,kmul(J33L,PDstandard2nd3gyy))); + + JacPDstandard2nd3gyz = + kmadd(J13L,PDstandard2nd1gyz,kmadd(J23L,PDstandard2nd2gyz,kmul(J33L,PDstandard2nd3gyz))); + + JacPDstandard2nd3gzz = + kmadd(J13L,PDstandard2nd1gzz,kmadd(J23L,PDstandard2nd2gzz,kmul(J33L,PDstandard2nd3gzz))); + + JacPDstandard2nd3kxx = + kmadd(J13L,PDstandard2nd1kxx,kmadd(J23L,PDstandard2nd2kxx,kmul(J33L,PDstandard2nd3kxx))); + + JacPDstandard2nd3kxy = + kmadd(J13L,PDstandard2nd1kxy,kmadd(J23L,PDstandard2nd2kxy,kmul(J33L,PDstandard2nd3kxy))); + + JacPDstandard2nd3kxz = + kmadd(J13L,PDstandard2nd1kxz,kmadd(J23L,PDstandard2nd2kxz,kmul(J33L,PDstandard2nd3kxz))); + + JacPDstandard2nd3kyy = + kmadd(J13L,PDstandard2nd1kyy,kmadd(J23L,PDstandard2nd2kyy,kmul(J33L,PDstandard2nd3kyy))); + + JacPDstandard2nd3kyz = + kmadd(J13L,PDstandard2nd1kyz,kmadd(J23L,PDstandard2nd2kyz,kmul(J33L,PDstandard2nd3kyz))); + + JacPDstandard2nd11gyy = + kmadd(dJ111L,PDstandard2nd1gyy,kmadd(dJ211L,PDstandard2nd2gyy,kmadd(dJ311L,PDstandard2nd3gyy,kmadd(PDstandard2nd11gyy,kmul(J11L,J11L),kmadd(PDstandard2nd22gyy,kmul(J21L,J21L),kmadd(PDstandard2nd33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gyy,kmul(J31L,PDstandard2nd13gyy)),kmul(J21L,kmul(J31L,PDstandard2nd23gyy))),ToReal(2)))))))); + + JacPDstandard2nd11gyz = + kmadd(dJ111L,PDstandard2nd1gyz,kmadd(dJ211L,PDstandard2nd2gyz,kmadd(dJ311L,PDstandard2nd3gyz,kmadd(PDstandard2nd11gyz,kmul(J11L,J11L),kmadd(PDstandard2nd22gyz,kmul(J21L,J21L),kmadd(PDstandard2nd33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz)),kmul(J21L,kmul(J31L,PDstandard2nd23gyz))),ToReal(2)))))))); + + JacPDstandard2nd11gzz = + kmadd(dJ111L,PDstandard2nd1gzz,kmadd(dJ211L,PDstandard2nd2gzz,kmadd(dJ311L,PDstandard2nd3gzz,kmadd(PDstandard2nd11gzz,kmul(J11L,J11L),kmadd(PDstandard2nd22gzz,kmul(J21L,J21L),kmadd(PDstandard2nd33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gzz,kmul(J31L,PDstandard2nd13gzz)),kmul(J21L,kmul(J31L,PDstandard2nd23gzz))),ToReal(2)))))))); + + JacPDstandard2nd22gxx = + kmadd(dJ122L,PDstandard2nd1gxx,kmadd(dJ222L,PDstandard2nd2gxx,kmadd(dJ322L,PDstandard2nd3gxx,kmadd(PDstandard2nd11gxx,kmul(J12L,J12L),kmadd(PDstandard2nd22gxx,kmul(J22L,J22L),kmadd(PDstandard2nd33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gxx,kmul(J32L,PDstandard2nd13gxx)),kmul(J22L,kmul(J32L,PDstandard2nd23gxx))),ToReal(2)))))))); + + JacPDstandard2nd22gxz = + kmadd(dJ122L,PDstandard2nd1gxz,kmadd(dJ222L,PDstandard2nd2gxz,kmadd(dJ322L,PDstandard2nd3gxz,kmadd(PDstandard2nd11gxz,kmul(J12L,J12L),kmadd(PDstandard2nd22gxz,kmul(J22L,J22L),kmadd(PDstandard2nd33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz)),kmul(J22L,kmul(J32L,PDstandard2nd23gxz))),ToReal(2)))))))); + + JacPDstandard2nd22gzz = + kmadd(dJ122L,PDstandard2nd1gzz,kmadd(dJ222L,PDstandard2nd2gzz,kmadd(dJ322L,PDstandard2nd3gzz,kmadd(PDstandard2nd11gzz,kmul(J12L,J12L),kmadd(PDstandard2nd22gzz,kmul(J22L,J22L),kmadd(PDstandard2nd33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gzz,kmul(J32L,PDstandard2nd13gzz)),kmul(J22L,kmul(J32L,PDstandard2nd23gzz))),ToReal(2)))))))); + + JacPDstandard2nd33gxx = + kmadd(dJ133L,PDstandard2nd1gxx,kmadd(dJ233L,PDstandard2nd2gxx,kmadd(dJ333L,PDstandard2nd3gxx,kmadd(PDstandard2nd11gxx,kmul(J13L,J13L),kmadd(PDstandard2nd22gxx,kmul(J23L,J23L),kmadd(PDstandard2nd33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gxx,kmul(J33L,PDstandard2nd13gxx)),kmul(J23L,kmul(J33L,PDstandard2nd23gxx))),ToReal(2)))))))); + + JacPDstandard2nd33gxy = + kmadd(dJ133L,PDstandard2nd1gxy,kmadd(dJ233L,PDstandard2nd2gxy,kmadd(dJ333L,PDstandard2nd3gxy,kmadd(PDstandard2nd11gxy,kmul(J13L,J13L),kmadd(PDstandard2nd22gxy,kmul(J23L,J23L),kmadd(PDstandard2nd33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmul(J23L,kmul(J33L,PDstandard2nd23gxy))),ToReal(2)))))))); + + JacPDstandard2nd33gyy = + kmadd(dJ133L,PDstandard2nd1gyy,kmadd(dJ233L,PDstandard2nd2gyy,kmadd(dJ333L,PDstandard2nd3gyy,kmadd(PDstandard2nd11gyy,kmul(J13L,J13L),kmadd(PDstandard2nd22gyy,kmul(J23L,J23L),kmadd(PDstandard2nd33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gyy,kmul(J33L,PDstandard2nd13gyy)),kmul(J23L,kmul(J33L,PDstandard2nd23gyy))),ToReal(2)))))))); + + JacPDstandard2nd12gxy = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy)),kmadd(dJ112L,PDstandard2nd1gxy,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ212L,PDstandard2nd2gxy,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ312L,PDstandard2nd3gxy))))))); + + JacPDstandard2nd12gxz = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz)),kmadd(dJ112L,PDstandard2nd1gxz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ212L,PDstandard2nd2gxz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ312L,PDstandard2nd3gxz))))))); + + JacPDstandard2nd12gyz = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gyz,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz)),kmadd(dJ112L,PDstandard2nd1gyz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gyz,kmul(J31L,PDstandard2nd23gyz)),kmadd(dJ212L,PDstandard2nd2gyz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gyz,kmul(J31L,PDstandard2nd33gyz)),kmul(dJ312L,PDstandard2nd3gyz))))))); + + JacPDstandard2nd12gzz = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gzz,kmadd(J21L,PDstandard2nd12gzz,kmul(J31L,PDstandard2nd13gzz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gzz,kmul(J32L,PDstandard2nd13gzz)),kmadd(dJ112L,PDstandard2nd1gzz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gzz,kmul(J31L,PDstandard2nd23gzz)),kmadd(dJ212L,PDstandard2nd2gzz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gzz,kmul(J31L,PDstandard2nd33gzz)),kmul(dJ312L,PDstandard2nd3gzz))))))); + + JacPDstandard2nd13gxz = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ113L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ213L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ313L,PDstandard2nd3gxz))))))); + + JacPDstandard2nd21gxy = + kmadd(J12L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy)),kmadd(dJ112L,PDstandard2nd1gxy,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ212L,PDstandard2nd2gxy,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ312L,PDstandard2nd3gxy))))))); + + JacPDstandard2nd23gxx = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gxx,kmadd(J22L,PDstandard2nd12gxx,kmul(J32L,PDstandard2nd13gxx))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxx,kmul(J33L,PDstandard2nd13gxx)),kmadd(dJ123L,PDstandard2nd1gxx,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxx,kmul(J32L,PDstandard2nd23gxx)),kmadd(dJ223L,PDstandard2nd2gxx,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxx,kmul(J32L,PDstandard2nd33gxx)),kmul(dJ323L,PDstandard2nd3gxx))))))); + + JacPDstandard2nd23gxy = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gxy,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmadd(dJ123L,PDstandard2nd1gxy,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxy,kmul(J32L,PDstandard2nd23gxy)),kmadd(dJ223L,PDstandard2nd2gxy,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxy,kmul(J32L,PDstandard2nd33gxy)),kmul(dJ323L,PDstandard2nd3gxy))))))); + + JacPDstandard2nd23gxz = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gxz,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ123L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxz,kmul(J32L,PDstandard2nd23gxz)),kmadd(dJ223L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxz,kmul(J32L,PDstandard2nd33gxz)),kmul(dJ323L,PDstandard2nd3gxz))))))); + + JacPDstandard2nd23gyz = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gyz,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ123L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gyz,kmul(J32L,PDstandard2nd23gyz)),kmadd(dJ223L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gyz,kmul(J32L,PDstandard2nd33gyz)),kmul(dJ323L,PDstandard2nd3gyz))))))); + + JacPDstandard2nd31gxy = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmadd(dJ113L,PDstandard2nd1gxy,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ213L,PDstandard2nd2gxy,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ313L,PDstandard2nd3gxy))))))); + + JacPDstandard2nd31gxz = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ113L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ213L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ313L,PDstandard2nd3gxz))))))); + + JacPDstandard2nd31gyy = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gyy,kmadd(J21L,PDstandard2nd12gyy,kmul(J31L,PDstandard2nd13gyy))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gyy,kmul(J33L,PDstandard2nd13gyy)),kmadd(dJ113L,PDstandard2nd1gyy,kmadd(J23L,kmadd(J21L,PDstandard2nd22gyy,kmul(J31L,PDstandard2nd23gyy)),kmadd(dJ213L,PDstandard2nd2gyy,kmadd(J33L,kmadd(J21L,PDstandard2nd23gyy,kmul(J31L,PDstandard2nd33gyy)),kmul(dJ313L,PDstandard2nd3gyy))))))); + + JacPDstandard2nd31gyz = + kmadd(J13L,kmadd(J11L,PDstandard2nd11gyz,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ113L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gyz,kmul(J31L,PDstandard2nd23gyz)),kmadd(dJ213L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gyz,kmul(J31L,PDstandard2nd33gyz)),kmul(dJ313L,PDstandard2nd3gyz))))))); + + JacPDstandard2nd32gyz = + kmadd(J13L,kmadd(J12L,PDstandard2nd11gyz,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ123L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gyz,kmul(J32L,PDstandard2nd23gyz)),kmadd(dJ223L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gyz,kmul(J32L,PDstandard2nd33gyz)),kmul(dJ323L,PDstandard2nd3gyz))))))); + } + else + { + JacPDstandard2nd1gxx = PDstandard2nd1gxx; + + JacPDstandard2nd1gxy = PDstandard2nd1gxy; + + JacPDstandard2nd1gxz = PDstandard2nd1gxz; + + JacPDstandard2nd1gyy = PDstandard2nd1gyy; + + JacPDstandard2nd1gyz = PDstandard2nd1gyz; + + JacPDstandard2nd1gzz = PDstandard2nd1gzz; + + JacPDstandard2nd1kxy = PDstandard2nd1kxy; + + JacPDstandard2nd1kxz = PDstandard2nd1kxz; + + JacPDstandard2nd1kyy = PDstandard2nd1kyy; + + JacPDstandard2nd1kyz = PDstandard2nd1kyz; + + JacPDstandard2nd1kzz = PDstandard2nd1kzz; + + JacPDstandard2nd2gxx = PDstandard2nd2gxx; + + JacPDstandard2nd2gxy = PDstandard2nd2gxy; + + JacPDstandard2nd2gxz = PDstandard2nd2gxz; + + JacPDstandard2nd2gyy = PDstandard2nd2gyy; + + JacPDstandard2nd2gyz = PDstandard2nd2gyz; + + JacPDstandard2nd2gzz = PDstandard2nd2gzz; + + JacPDstandard2nd2kxx = PDstandard2nd2kxx; + + JacPDstandard2nd2kxy = PDstandard2nd2kxy; + + JacPDstandard2nd2kxz = PDstandard2nd2kxz; + + JacPDstandard2nd2kyz = PDstandard2nd2kyz; + + JacPDstandard2nd2kzz = PDstandard2nd2kzz; + + JacPDstandard2nd3gxx = PDstandard2nd3gxx; + + JacPDstandard2nd3gxy = PDstandard2nd3gxy; + + JacPDstandard2nd3gxz = PDstandard2nd3gxz; + + JacPDstandard2nd3gyy = PDstandard2nd3gyy; + + JacPDstandard2nd3gyz = PDstandard2nd3gyz; + + JacPDstandard2nd3gzz = PDstandard2nd3gzz; + + JacPDstandard2nd3kxx = PDstandard2nd3kxx; + + JacPDstandard2nd3kxy = PDstandard2nd3kxy; + + JacPDstandard2nd3kxz = PDstandard2nd3kxz; + + JacPDstandard2nd3kyy = PDstandard2nd3kyy; + + JacPDstandard2nd3kyz = PDstandard2nd3kyz; + + JacPDstandard2nd11gyy = PDstandard2nd11gyy; + + JacPDstandard2nd11gyz = PDstandard2nd11gyz; + + JacPDstandard2nd11gzz = PDstandard2nd11gzz; + + JacPDstandard2nd22gxx = PDstandard2nd22gxx; + + JacPDstandard2nd22gxz = PDstandard2nd22gxz; + + JacPDstandard2nd22gzz = PDstandard2nd22gzz; + + JacPDstandard2nd33gxx = PDstandard2nd33gxx; + + JacPDstandard2nd33gxy = PDstandard2nd33gxy; + + JacPDstandard2nd33gyy = PDstandard2nd33gyy; + + JacPDstandard2nd12gxy = PDstandard2nd12gxy; + + JacPDstandard2nd12gxz = PDstandard2nd12gxz; + + JacPDstandard2nd12gyz = PDstandard2nd12gyz; + + JacPDstandard2nd12gzz = PDstandard2nd12gzz; + + JacPDstandard2nd13gxz = PDstandard2nd13gxz; + + JacPDstandard2nd21gxy = PDstandard2nd12gxy; + + JacPDstandard2nd23gxx = PDstandard2nd23gxx; + + JacPDstandard2nd23gxy = PDstandard2nd23gxy; + + JacPDstandard2nd23gxz = PDstandard2nd23gxz; + + JacPDstandard2nd23gyz = PDstandard2nd23gyz; + + JacPDstandard2nd31gxy = PDstandard2nd13gxy; + + JacPDstandard2nd31gxz = PDstandard2nd13gxz; + + JacPDstandard2nd31gyy = PDstandard2nd13gyy; + + JacPDstandard2nd31gyz = PDstandard2nd13gyz; + + JacPDstandard2nd32gyz = PDstandard2nd23gyz; + } + + CCTK_REAL_VEC detg = + knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); + + CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); + + CCTK_REAL_VEC gInv11 = + kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); + + CCTK_REAL_VEC gInv12 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv13 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv21 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv22 = + kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); + + CCTK_REAL_VEC gInv23 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv31 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv32 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv33 = + kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); + + CCTK_REAL_VEC gamma111 = + kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard2nd1gxx,knmsub(gInv12,JacPDstandard2nd2gxx,kmsub(kmadd(gInv12,JacPDstandard2nd1gxy,kmul(gInv13,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv13,JacPDstandard2nd3gxx))))); + + CCTK_REAL_VEC gamma211 = + kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard2nd1gxx,knmsub(gInv22,JacPDstandard2nd2gxx,kmsub(kmadd(gInv22,JacPDstandard2nd1gxy,kmul(gInv23,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv23,JacPDstandard2nd3gxx))))); + + CCTK_REAL_VEC gamma311 = + kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard2nd1gxx,knmsub(gInv32,JacPDstandard2nd2gxx,kmsub(kmadd(gInv32,JacPDstandard2nd1gxy,kmul(gInv33,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv33,JacPDstandard2nd3gxx))))); + + CCTK_REAL_VEC gamma121 = + kmul(kmadd(gInv12,JacPDstandard2nd1gyy,kmadd(gInv11,JacPDstandard2nd2gxx,kmul(gInv13,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma221 = + kmul(kmadd(gInv22,JacPDstandard2nd1gyy,kmadd(gInv21,JacPDstandard2nd2gxx,kmul(gInv23,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma321 = + kmul(kmadd(gInv32,JacPDstandard2nd1gyy,kmadd(gInv31,JacPDstandard2nd2gxx,kmul(gInv33,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma131 = + kmul(kmadd(gInv13,JacPDstandard2nd1gzz,kmadd(gInv11,JacPDstandard2nd3gxx,kmul(gInv12,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma231 = + kmul(kmadd(gInv23,JacPDstandard2nd1gzz,kmadd(gInv21,JacPDstandard2nd3gxx,kmul(gInv22,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma331 = + kmul(kmadd(gInv33,JacPDstandard2nd1gzz,kmadd(gInv31,JacPDstandard2nd3gxx,kmul(gInv32,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma122 = + kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2nd2gyy,kmadd(gInv11,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv13,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); + + CCTK_REAL_VEC gamma222 = + kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2nd2gyy,kmadd(gInv21,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv23,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); + + CCTK_REAL_VEC gamma322 = + kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2nd2gyy,kmadd(gInv31,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv33,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); + + CCTK_REAL_VEC gamma132 = + kmul(kmadd(gInv13,JacPDstandard2nd2gzz,kmadd(gInv12,JacPDstandard2nd3gyy,kmul(gInv11,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma232 = + kmul(kmadd(gInv23,JacPDstandard2nd2gzz,kmadd(gInv22,JacPDstandard2nd3gyy,kmul(gInv21,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma332 = + kmul(kmadd(gInv33,JacPDstandard2nd2gzz,kmadd(gInv32,JacPDstandard2nd3gyy,kmul(gInv31,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma133 = + kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard2nd3gzz,kmadd(gInv11,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv12,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); + + CCTK_REAL_VEC gamma233 = + kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard2nd3gzz,kmadd(gInv21,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv22,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); + + CCTK_REAL_VEC gamma333 = + kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard2nd3gzz,kmadd(gInv31,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv32,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); + + CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); + + CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); + + CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); + + CCTK_REAL_VEC va1 = kneg(ymoved); + + CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC va3 = ToReal(0); + + CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC vb2 = ymoved; + + CCTK_REAL_VEC vb3 = zmoved; + + CCTK_REAL_VEC vc1 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); + + CCTK_REAL_VEC vc2 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); + + CCTK_REAL_VEC vc3 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); + + CCTK_REAL_VEC wa1 = va1; + + CCTK_REAL_VEC wa2 = va2; + + CCTK_REAL_VEC wa3 = va3; + + CCTK_REAL_VEC omega11 = + kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); + + CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); + + CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); + + CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); + + CCTK_REAL_VEC omega12 = + kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); + + CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); + + CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); + + CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); + + CCTK_REAL_VEC omega22 = + kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); + + CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); + + CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); + + CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); + + CCTK_REAL_VEC omega13 = + kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC omega23 = + kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); + + CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); + + CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); + + CCTK_REAL_VEC omega33 = + kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); + + CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); + + CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); + + CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); + + CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); + + CCTK_REAL_VEC ltet1 = kmul(eb1,isqrt2); + + CCTK_REAL_VEC ltet2 = kmul(eb2,isqrt2); + + CCTK_REAL_VEC ltet3 = kmul(eb3,isqrt2); + + CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); + + CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); + + CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); + + CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); + + CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); + + CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); + + CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); + + CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); + + CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); + + CCTK_REAL_VEC nn = isqrt2; + + CCTK_REAL_VEC R1212 = + kmul(ToReal(0.5),kadd(JacPDstandard2nd12gxy,kadd(JacPDstandard2nd21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard2nd22gxx),JacPDstandard2nd11gyy))))); + + CCTK_REAL_VEC R1213 = + kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard2nd12gxz,kadd(JacPDstandard2nd31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard2nd23gxx),JacPDstandard2nd11gyz)))))); + + CCTK_REAL_VEC R1223 = + kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard2nd22gxz,kadd(JacPDstandard2nd31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard2nd23gxy),JacPDstandard2nd12gyz)))))); + + CCTK_REAL_VEC R1313 = + kmul(ToReal(0.5),kadd(JacPDstandard2nd13gxz,kadd(JacPDstandard2nd31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard2nd33gxx),JacPDstandard2nd11gzz))))); + + CCTK_REAL_VEC R1323 = + kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard2nd23gxz,kadd(JacPDstandard2nd31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard2nd33gxy),JacPDstandard2nd12gzz)))))); + + CCTK_REAL_VEC R2323 = + kmul(ToReal(0.5),kadd(JacPDstandard2nd23gyz,kadd(JacPDstandard2nd32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard2nd33gyy),JacPDstandard2nd22gzz))))); + + CCTK_REAL_VEC R4p1212 = + kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); + + CCTK_REAL_VEC R4p1213 = + kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); + + CCTK_REAL_VEC R4p1223 = + kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); + + CCTK_REAL_VEC R4p1313 = + kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); + + CCTK_REAL_VEC R4p1323 = + kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); + + CCTK_REAL_VEC R4p2323 = + kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); + + CCTK_REAL_VEC Ro111 = ToReal(0); + + CCTK_REAL_VEC Ro112 = + kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard2nd1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2nd2kxx)))))); + + CCTK_REAL_VEC Ro113 = + kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard2nd1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard2nd3kxx)))))); + + CCTK_REAL_VEC Ro121 = + kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2nd2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard2nd1kxy)))))); + + CCTK_REAL_VEC Ro122 = ToReal(0); + + CCTK_REAL_VEC Ro123 = + kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2nd2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard2nd3kxy)))))); + + CCTK_REAL_VEC Ro131 = + kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard2nd3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard2nd1kxz)))))); + + CCTK_REAL_VEC Ro132 = + kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard2nd3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2nd2kxz)))))); + + CCTK_REAL_VEC Ro133 = ToReal(0); + + CCTK_REAL_VEC Ro211 = ToReal(0); + + CCTK_REAL_VEC Ro212 = + kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard2nd1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2nd2kxy)))))); + + CCTK_REAL_VEC Ro213 = + kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard2nd1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard2nd3kxy)))))); + + CCTK_REAL_VEC Ro221 = + kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2nd2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard2nd1kyy)))))); + + CCTK_REAL_VEC Ro222 = ToReal(0); + + CCTK_REAL_VEC Ro223 = + kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2nd2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard2nd3kyy)))))); + + CCTK_REAL_VEC Ro231 = + kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard2nd3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard2nd1kyz)))))); + + CCTK_REAL_VEC Ro232 = + kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard2nd3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2nd2kyz)))))); + + CCTK_REAL_VEC Ro233 = ToReal(0); + + CCTK_REAL_VEC Ro311 = ToReal(0); + + CCTK_REAL_VEC Ro312 = + kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard2nd1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2nd2kxz)))))); + + CCTK_REAL_VEC Ro313 = + kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard2nd1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard2nd3kxz)))))); + + CCTK_REAL_VEC Ro321 = + kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2nd2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard2nd1kyz)))))); + + CCTK_REAL_VEC Ro322 = ToReal(0); + + CCTK_REAL_VEC Ro323 = + kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2nd2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard2nd3kyz)))))); + + CCTK_REAL_VEC Ro331 = + kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard2nd3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard2nd1kzz)))))); + + CCTK_REAL_VEC Ro332 = + kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard2nd3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2nd2kzz)))))); + + CCTK_REAL_VEC Ro333 = ToReal(0); + + CCTK_REAL_VEC Rojo11 = + kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); + + CCTK_REAL_VEC Rojo12 = + kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo13 = + kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); + + CCTK_REAL_VEC Rojo21 = + kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo22 = + kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Rojo23 = + kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo31 = + kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); + + CCTK_REAL_VEC Rojo32 = + kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo33 = + kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Psi4rL = + kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi4iL = + knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); + + CCTK_REAL_VEC Psi3rL = + kmadd(ltet2,kmul(R4p1212,kmul(rm2,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1213,kmul(rm2,kmul(n1,n1))),kmadd(ltet2,kmul(R4p1213,kmul(rm3,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1313,kmul(rm3,kmul(n1,n1))),kmadd(ltet1,kmul(R4p1212,kmul(rm1,kmul(n2,n2))),kmadd(ltet3,kmul(R4p2323,kmul(rm3,kmul(n2,n2))),kmadd(ltet1,kmul(R4p1313,kmul(rm1,kmul(n3,n3))),kmadd(ltet2,kmul(R4p1323,kmul(rm1,kmul(n3,n3))),kmadd(ltet1,kmul(R4p1323,kmul(rm2,kmul(n3,n3))),kmadd(ltet2,kmul(R4p2323,kmul(rm2,kmul(n3,n3))),kmadd(n1,kmul(nn,kmul(rm2,kmul(Ro221,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n2,kmul(nn,kmul(rm2,kmul(Ro222,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n3,kmul(nn,kmul(rm2,kmul(Ro223,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n1,kmul(nn,kmul(rm3,kmul(Ro331,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n2,kmul(nn,kmul(rm3,kmul(Ro332,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,kmadd(ltet3,ToReal(-2),n3)))),kmadd(rm1,kmul(Rojo11,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm2,kmul(Rojo12,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm3,kmul(Rojo13,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm1,kmul(Rojo21,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm3,kmul(Rojo23,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm1,kmul(Rojo31,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm2,kmul(Rojo32,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm3,kmul(Rojo33,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(n2,kmul(nn,kmul(Ro212,kmsub(rm1,ksub(n2,ltet2),kmul(ltet1,rm2)))),kmadd(n2,kmul(nn,kmul(Ro232,kmsub(rm3,ksub(n2,ltet2),kmul(ltet3,rm2)))),kmadd(n3,kmul(nn,kmul(Ro313,kmsub(rm1,ksub(n3,ltet3),kmul(ltet1,rm3)))),kmadd(n3,kmul(nn,kmul(Ro323,kmsub(rm2,ksub(n3,ltet3),kmul(ltet2,rm3)))),kmadd(ltet3,kmsub(n2,kmul(rm2,kmsub(n1,R4p1223,kmul(n3,R4p2323))),kmul(R4p1223,kmul(rm1,kmul(n2,n2)))),kmadd(ltet1,kmsub(n3,kmsub(n2,kmul(R4p1223,rm2),kmul(n1,kmul(R4p1313,rm3))),kmul(R4p1223,kmul(rm3,kmul(n2,n2)))),kmadd(n3,kmsub(rm1,kmsub(ltet2,kmul(n2,R4p1223),kmul(ltet3,kmul(n1,R4p1313))),kmadd(ltet1,kmadd(n2,kmul(R4p1323,rm3),kmul(n1,kmul(R4p1213,rm2))),kmul(nn,kmul(Ro123,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n1,kmsub(ltet2,kmul(n3,kmul(R4p1223,kmul(rm2,ToReal(-2)))),kmadd(ltet1,kmul(n2,kmul(R4p1213,rm3)),kmul(nn,kmul(Ro211,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2))))))),kmadd(nn,kmsub(n1,kmul(rm1,kmul(Ro111,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro213,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n2,kmul(rm1,kmul(Ro112,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro233,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n3,kmul(rm1,kmul(Ro113,kmadd(ltet1,ToReal(-2),n1))),kmul(n1,kmul(Ro311,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(nn,kmsub(n1,kmul(Ro121,kmsub(rm2,ksub(n1,ltet1),kmul(ltet2,rm1))),kmul(n2,kmul(Ro312,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(n1,kmul(nn,kmsub(Ro131,kmsub(rm3,ksub(n1,ltet1),kmul(ltet3,rm1)),kmul(Ro321,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3)))))),knmsub(n1,kmadd(ltet2,kmul(n3,kmul(R4p1323,rm3)),kmadd(n2,kmadd(rm1,kmadd(ltet3,R4p1213,kmul(ltet2,R4p1212)),kmul(ltet1,kmul(R4p1212,rm2))),kmul(nn,kmul(Ro231,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2))))))),kmadd(n2,kmsub(ltet2,kmul(n1,kmul(R4p1223,rm3)),kmul(nn,kmadd(Ro322,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3))),kmul(Ro122,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n2,kmsub(ltet3,kmul(n1,kmul(R4p1323,kmul(rm3,ToReal(2)))),kmul(nn,kmul(Ro132,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))),kmul(n3,knmsub(ltet2,kmul(n2,kmul(R4p2323,rm3)),knmsub(ltet3,kmul(R4p1323,kmadd(n1,rm2,kmul(n2,rm1))),kmsub(R4p1213,kmul(rm1,kmsub(ltet1,kmul(n2,ToReal(2)),kmul(ltet2,n1))),kmul(nn,kmul(Ro133,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))))))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi3iL = + kmadd(im2,kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),knmsub(ltet2,kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(n1,kmul(kmadd(n3,R4p1223,kmul(nn,Ro221)),ToReal(-2)),kmadd(n3,kmul(nn,kmul(Ro223,ToReal(-2))),kmul(nn,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(-2))))))))),kmadd(nn,kmsub(ltet3,kmul(n3,Ro233),kmul(Ro121,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro321),kmul(Ro222,kmul(n2,n2))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro322),kmul(Ro323,kmul(n3,n3))),kmadd(ltet3,kmsub(n3,kmul(nn,Ro323),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet3,kmadd(n2,kmul(n3,R4p2323),kmadd(n1,kmul(nn,Ro231),kmsub(n1,kmsub(n3,R4p1323,kmul(n2,R4p1223)),kmul(R4p1213,kmul(n1,n1))))),kmadd(ltet1,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo12,kmul(nn,nn)))))))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro232,kmul(n3,kadd(Ro322,Ro223)))),kmul(n1,kmul(nn,kmadd(n3,kadd(Ro321,Ro123),kmul(n2,kadd(Ro221,Ro122)))))))))))))))),kmadd(im1,kmadd(ltet3,kmul(R4p1223,kmul(n2,n2)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(n3,kmul(nn,kmsub(ltet3,Ro133,kmul(n1,Ro311))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro311),kmul(Ro111,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro312),kmul(Ro212,kmul(n2,n2))),kmadd(nn,kmul(Ro313,kmsub(ltet3,n3,kmul(n3,n3))),kmadd(ltet3,kmadd(n1,kmul(n2,R4p1213),kmadd(n1,kmul(n3,R4p1313),kmadd(n2,kmul(n3,R4p1323),kmsub(n1,kmul(nn,Ro131),kmul(Rojo31,kmul(nn,nn)))))),kmadd(ltet2,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo21,kmul(nn,nn)))))))),knmsub(n1,kmul(nn,kmadd(n2,kadd(Ro211,Ro112),kmul(n3,Ro113))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro132,kmul(n3,kadd(Ro312,Ro213)))),kmul(ltet1,kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(Rojo11,kmul(nn,nn),kmadd(n1,kmul(nn,kmul(Ro111,ToReal(-2))),kmadd(n2,kmul(nn,kmul(Ro112,ToReal(-2))),kmadd(n3,kmul(nn,kmul(Ro113,ToReal(-2))),kmul(n2,kmul(n3,kmul(R4p1213,ToReal(2))))))))))))))))))))))),kmul(im3,kmadd(n1,kmul(Rojo13,kmul(nn,nn)),kmadd(n2,kmul(Rojo23,kmul(nn,nn)),kmadd(n3,kmul(Rojo33,kmul(nn,nn)),knmsub(n3,kmul(nn,kmadd(n2,kadd(Ro332,Ro233),kmul(n1,Ro331))),kmadd(ltet1,kmadd(n1,kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,kadd(Ro131,Ro311)))),kmadd(n2,kmadd(n3,R4p1323,kmul(nn,kadd(Ro132,Ro312))),kmadd(R4p1223,kmul(n2,n2),kmul(nn,kmsub(n3,kadd(Ro133,Ro313),kmul(nn,Rojo13)))))),kmadd(ltet2,kmadd(n2,kmadd(n3,R4p2323,kmul(nn,kadd(Ro232,Ro322))),knmsub(R4p1213,kmul(n1,n1),kmadd(n1,kmadd(n3,R4p1323,kmsub(nn,kadd(Ro231,Ro321),kmul(n2,R4p1223))),kmul(nn,kmsub(n3,kadd(Ro233,Ro323),kmul(nn,Rojo23)))))),kmadd(ltet3,knmsub(R4p1313,kmul(n1,n1),knmsub(R4p2323,kmul(n2,n2),kmsub(n2,kmul(nn,kmul(Ro332,ToReal(2))),kmul(Rojo33,kmul(nn,nn))))),kmadd(nn,knmsub(Ro131,kmul(n1,n1),kmsub(Ro333,kmsub(ltet3,kmul(n3,ToReal(2)),kmul(n3,n3)),kmul(Ro232,kmul(n2,n2)))),kmul(n1,kmadd(n2,kmsub(ltet3,kmul(R4p1323,ToReal(-2)),kmul(nn,kadd(Ro231,Ro132))),kmul(nn,kmsub(ltet3,kmul(Ro331,ToReal(2)),kmul(n3,Ro133)))))))))))))))); + + CCTK_REAL_VEC Psi2rL = + kmadd(ltet1,kmul(n3,kmul(R4p1223,kmadd(im2,im2,kmul(rm2,rm2)))),kmadd(nn,kmul(kmadd(im1,im2,kmul(rm1,rm2)),kmul(Ro211,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro311,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro322,ksub(n2,ltet2))),kmadd(nn,kmul(Ro222,kmul(kmadd(im2,im2,kmul(rm2,rm2)),ksub(n2,ltet2))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro133,ksub(n3,ltet3))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro233,ksub(n3,ltet3))),kmadd(nn,kmul(Ro112,kmsub(n2,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro221,kmsub(n1,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro113,kmsub(n3,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro331,kmsub(n1,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro223,kmsub(n3,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro332,kmsub(n2,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(ltet3,kmul(n3,kmul(R4p1323,ToReal(-2))),kmul(Rojo12,kmul(nn,nn))),kmadd(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n1,R4p1213),kmul(Rojo13,kmul(nn,nn))),kmadd(kmadd(im2,im2,kmul(rm2,rm2)),kmsub(ltet3,kmul(n1,R4p1223),kmul(Rojo22,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet1,kmul(n1,kmul(R4p1213,ToReal(-2))),kmul(Rojo23,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet3,kmul(n1,R4p1323),kmul(Rojo32,kmul(nn,nn))),kmadd(nn,kmul(Ro121,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet2,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro131,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(ltet3,kmul(R4p1313,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(n3,kmsub(ltet1,kmul(R4p1313,kmadd(im1,im3,kmul(rm1,rm3))),kmul(ltet2,kmul(R4p1213,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro212,kmsub(n2,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet1,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro232,kmsub(n2,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet3,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet1,kmsub(n3,kmul(R4p1323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(n1,kmul(R4p1212,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet3,kmsub(n2,kmul(R4p1323,kmadd(im1,im3,kmul(rm1,rm3))),kmul(n3,kmul(R4p2323,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro313,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(nn,kmul(Ro323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p1323,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p2323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(n2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(n2,kmsub(ltet3,kmul(R4p2323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(ltet1,kmul(R4p1323,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(kmadd(im1,im1,kmul(rm1,rm1)),kmsub(nn,kmul(Ro111,ksub(n1,ltet1)),kmul(Rojo11,kmul(nn,nn))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(nn,kmul(Ro122,ksub(n2,ltet2)),kmul(Rojo21,kmul(nn,nn))),kmadd(kmadd(im3,im3,kmul(rm3,rm3)),kmsub(nn,kmul(Ro333,ksub(n3,ltet3)),kmul(Rojo33,kmul(nn,nn))),knmsub(R4p1223,kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmadd(ltet2,n3,kmul(ltet3,n2)),kmul(ltet2,kmul(n1,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro321,kmadd(im3,kmsub(im2,n1,kmul(im1,ltet2)),kmul(rm3,kmsub(n1,rm2,kmul(ltet2,rm1))))),kmadd(nn,kmul(Ro231,kmadd(im2,kmsub(im3,n1,kmul(im1,ltet3)),kmul(rm2,kmsub(n1,rm3,kmul(ltet3,rm1))))),kmadd(nn,kmul(Ro312,kmadd(im3,kmsub(im1,n2,kmul(im2,ltet1)),kmul(rm3,kmsub(n2,rm1,kmul(ltet1,rm2))))),kmadd(nn,kmul(Ro132,kmadd(im1,kmsub(im3,n2,kmul(im2,ltet3)),kmul(rm1,kmsub(n2,rm3,kmul(ltet3,rm2))))),kmadd(nn,kmul(Ro213,kmadd(im2,kmsub(im1,n3,kmul(im3,ltet1)),kmul(rm2,kmsub(n3,rm1,kmul(ltet1,rm3))))),kmadd(nn,kmul(Ro123,kmadd(im1,kmsub(im2,n3,kmul(im3,ltet2)),kmul(rm1,kmsub(n3,rm2,kmul(ltet2,rm3))))),kmadd(ltet1,kmsub(n2,kmsub(R4p1213,kmadd(im1,im3,kmul(rm1,rm3)),kmul(R4p1223,kmadd(im2,im3,kmul(rm2,rm3)))),kmul(n1,kmul(R4p1313,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(R4p1212,kmadd(ltet1,kmul(n2,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet2,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmadd(R4p1213,kmadd(ltet1,kmul(n3,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet3,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n2,kmul(R4p1223,ToReal(2))),kmul(Rojo31,kmul(nn,nn)))))))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi2iL = + kmadd(im3,kmadd(n2,kmul(nn,kmul(rm1,Ro312)),kmadd(n3,kmul(nn,kmul(rm1,Ro313)),kmadd(n2,kmul(nn,kmul(rm2,Ro322)),kmadd(n3,kmul(nn,kmul(rm2,Ro323)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro331)),kmadd(ltet3,kmul(nn,kmul(rm2,Ro332)),kmadd(rm1,kmul(Rojo13,kmul(nn,nn)),kmadd(rm2,kmul(Rojo23,kmul(nn,nn)),kmadd(rm1,kmsub(n1,kmul(nn,Ro311),kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(nn,Ro321),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet1,kmadd(n3,kmul(R4p1313,rm1),kmadd(n3,kmul(R4p1323,rm2),kmadd(nn,kmul(rm1,Ro311),kmadd(nn,kmul(rm2,Ro312),kmadd(rm1,kmsub(n2,R4p1213,kmul(nn,Ro113)),kmul(rm2,kmsub(n2,R4p1223,kmul(nn,Ro213)))))))),kmsub(ltet2,kmadd(nn,kmul(rm1,Ro321),kmadd(nn,kmul(rm2,Ro322),knmsub(n1,kmadd(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(rm1,kmsub(n3,R4p1323,kmul(nn,Ro123)),kmul(rm2,kmsub(n3,R4p2323,kmul(nn,Ro223))))))),kmadd(ltet3,kmadd(rm2,kmadd(n1,R4p1323,kmadd(nn,Ro233,kmul(n2,R4p2323))),kmul(rm1,kmadd(n1,R4p1313,kmadd(nn,Ro133,kmul(n2,R4p1323))))),kmul(nn,kmadd(rm2,kmadd(n1,Ro231,kmadd(n3,Ro233,kmul(n2,Ro232))),kmul(rm1,kmadd(n1,Ro131,kmadd(n3,Ro133,kmul(n2,Ro132))))))))))))))))))),kmadd(im2,kmadd(n3,kmul(nn,kmul(rm1,Ro213)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro231)),kmadd(n2,kmul(nn,kmul(rm3,Ro232)),kmadd(ltet3,kmul(nn,kmul(rm3,Ro233)),kmadd(n3,kmul(nn,kmul(rm3,Ro233)),kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(rm1,kmsub(n2,kmul(nn,Ro212),kmul(Rojo21,kmul(nn,nn))),kmadd(rm3,kmsub(n1,kmul(nn,Ro231),kmul(Rojo23,kmul(nn,nn))),kmadd(nn,kmsub(rm1,kmsub(n1,Ro211,kmul(n3,Ro123)),kmul(n3,kmul(rm3,Ro323))),knmsub(ltet3,kmadd(rm1,kmadd(n1,R4p1213,kmadd(nn,Ro132,kmul(n2,R4p1223))),kmul(nn,kmul(rm3,Ro332))),kmadd(n1,kmsub(rm3,kmsub(ltet3,R4p1323,kmul(nn,Ro321)),kmul(nn,kmul(rm1,Ro121))),kmadd(n2,kmsub(rm3,kmsub(ltet3,R4p2323,kmul(nn,Ro322)),kmul(nn,kmul(rm1,Ro122))),kmadd(ltet2,kmadd(nn,kmul(rm1,Ro221),kmadd(nn,kmul(rm3,Ro223),kmadd(rm1,kmsub(n3,R4p1223,kmadd(nn,Ro122,kmul(n1,R4p1212))),kmul(rm3,kmsub(n1,R4p1223,kmadd(nn,Ro322,kmul(n3,R4p2323))))))),kmul(ltet1,kmadd(nn,kmul(rm3,Ro213),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1323,rm3)),kmul(nn,kmsub(rm1,ksub(Ro211,Ro112),kmul(rm3,Ro312))))))))))))))))))))),kmul(im1,kmadd(rm2,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo31,kmul(nn,nn)),knmsub(kmul(nn,nn),kmadd(rm3,Rojo13,kmul(rm2,Rojo12)),knmsub(ltet1,kmadd(n3,kmul(R4p1213,rm2),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm2,Ro211),kmadd(nn,kmul(rm3,Ro311),kmadd(rm2,kmsub(n2,R4p1212,kmul(nn,Ro112)),kmul(rm3,kmsub(n2,R4p1213,kmul(nn,Ro113)))))))),kmadd(nn,kmadd(n1,kmul(rm2,ksub(Ro121,Ro211)),kmadd(n2,kmul(rm2,ksub(Ro122,Ro212)),kmadd(n3,kmul(rm2,ksub(Ro123,Ro213)),kmadd(n1,kmul(rm3,ksub(Ro131,Ro311)),kmadd(n2,kmul(rm3,ksub(Ro132,Ro312)),kmul(n3,kmul(rm3,ksub(Ro133,Ro313)))))))),kmadd(ltet3,kmadd(n2,kmul(R4p1223,rm2),kmadd(n2,kmul(R4p1323,rm3),kmadd(nn,kmul(rm2,Ro132),kmadd(nn,kmul(rm3,Ro133),kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro231)),kmul(rm3,kmsub(n1,R4p1313,kmul(nn,Ro331)))))))),kmul(ltet2,kmadd(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmsub(nn,kmadd(rm2,ksub(Ro122,Ro221),kmul(rm3,ksub(Ro123,Ro321))),kmul(n3,kmadd(R4p1223,rm2,kmul(R4p1323,rm3))))))))))))))); + + CCTK_REAL_VEC Psi1rL = + kmadd(kmadd(n2,kmul(R4p1212,rm2),kmadd(n3,kmul(R4p1213,rm2),kmadd(n2,kmul(R4p1213,rm3),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm1,Ro111),kmadd(nn,kmul(rm2,Ro121),kmul(nn,kmul(rm3,Ro131)))))))),kmul(ltet1,ltet1),kmadd(n1,kmul(R4p1313,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p1323,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p2323,kmul(rm2,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm1,kmul(Ro313,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm2,kmul(Ro323,kmul(ltet3,ltet3))),kmadd(n1,kmul(rm1,kmul(Rojo11,kmul(nn,nn))),kmadd(n1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(n1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(n2,kmul(rm1,kmul(Rojo21,kmul(nn,nn))),kmadd(n2,kmul(rm2,kmul(Rojo22,kmul(nn,nn))),kmadd(n2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(n3,kmul(rm1,kmul(Rojo31,kmul(nn,nn))),kmadd(n3,kmul(rm2,kmul(Rojo32,kmul(nn,nn))),kmadd(n3,kmul(rm3,kmul(Rojo33,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo32,kmul(nn,nn)))),kmadd(rm3,kmsub(nn,kmul(Ro333,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo33,kmul(nn,nn)))),kmadd(kmul(ltet2,ltet2),kmadd(nn,kmul(rm1,Ro212),kmadd(nn,kmul(rm2,Ro222),kmadd(nn,kmul(rm3,Ro232),kmadd(rm3,kmsub(n3,R4p2323,kmul(n1,R4p1223)),kmul(rm1,kmsub(n1,R4p1212,kmul(n3,R4p1223))))))),kmsub(ltet3,kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,ToReal(-2)))),knmsub(rm1,kmul(Rojo31,kmul(nn,nn)),kmadd(n2,kmul(nn,kmsub(rm2,kmul(Ro223,ToReal(-2)),kmul(rm3,kadd(Ro323,Ro233)))),kmul(nn,knmsub(n3,kmul(rm2,kadd(Ro323,Ro233)),kmsub(rm1,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(n1,kmadd(rm3,kadd(Ro313,Ro133),kmul(rm2,kadd(Ro213,Ro123)))))))))),kmadd(ltet2,kmadd(ltet1,kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(rm3,kmsub(n1,R4p1213,kmul(nn,Ro132)),knmsub(nn,kmul(rm1,kadd(Ro211,Ro112)),kmadd(rm3,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmul(nn,Ro231)),kmul(rm2,kmsub(n1,R4p1212,kmul(nn,kadd(Ro221,Ro122))))))))),kmsub(nn,kmadd(n3,kmul(rm1,Ro132),kmadd(n3,kmul(rm2,Ro232),kmadd(n3,kmul(rm1,Ro312),kmadd(n3,kmul(rm2,Ro322),kmadd(nn,kmul(rm1,Rojo21),kmadd(nn,kmul(rm2,Rojo22),kmadd(nn,kmul(rm3,Rojo23),kmadd(n3,kmul(rm3,kmul(Ro332,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro132,Ro312),kmul(rm1,kmul(Ro112,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro232,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))))),kmul(ltet3,kmadd(nn,kmul(rm1,Ro213),kmadd(nn,kmul(rm2,Ro223),kmadd(nn,kmul(rm3,Ro233),kmadd(nn,kmul(rm1,Ro312),kmadd(nn,kmul(rm2,Ro322),kmadd(nn,kmul(rm3,Ro332),kmadd(rm1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmsub(n1,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(R4p2323,kmadd(n2,rm3,kmul(n3,rm2)))))))))))))),kmul(ltet1,kmadd(ltet3,kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro123)),kmadd(rm2,kmsub(n3,R4p1323,kmul(nn,Ro321)),kmadd(rm1,kmsub(n3,R4p1313,kmul(nn,kadd(Ro311,Ro113))),kmadd(rm3,kmsub(n1,R4p1313,kmul(nn,kadd(Ro331,Ro133))),kmul(n2,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))))),kmul(nn,kmadd(n3,kmul(rm1,Ro131),kmadd(n3,kmul(rm2,Ro231),kmadd(n3,kmul(rm1,Ro311),kmadd(n3,kmul(rm2,Ro321),kmadd(nn,kmul(rm1,Rojo11),kmadd(nn,kmul(rm2,Rojo12),kmadd(nn,kmul(rm3,Rojo13),kmadd(n3,kmul(rm3,kmul(Ro331,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro131,Ro311),kmul(rm1,kmul(Ro111,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro231,Ro321),kmul(rm2,kmul(Ro221,ToReal(2)))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi1iL = + kmadd(im1,kmadd(nn,kmul(Ro111,kmul(ltet1,ltet1)),kmadd(n1,kmul(R4p1313,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro313,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(kmul(ltet2,ltet2),kmadd(n1,R4p1212,kmsub(nn,Ro212,kmul(n3,R4p1223))),kmsub(ltet3,kmsub(nn,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(Rojo31,kmul(nn,nn))),kmadd(ltet2,kmadd(ltet1,kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211)))),kmsub(nn,kmadd(n3,Ro132,kmadd(n2,kadd(Ro122,Ro212),kmadd(n3,Ro312,kmadd(nn,Rojo21,kmul(n1,kmul(Ro112,ToReal(2))))))),kmul(ltet3,kmadd(n2,R4p1223,kmadd(nn,Ro213,kmadd(nn,Ro312,kmsub(n1,kmul(R4p1213,ToReal(2)),kmul(n3,R4p1323)))))))),kmul(ltet1,kmadd(ltet3,kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),kmul(nn,kmadd(n3,Ro131,kmadd(n2,kadd(Ro121,Ro211),kmadd(n3,Ro311,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2)))))))))))))))))))),kmadd(im2,kmadd(kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,Ro121))),kmul(ltet1,ltet1),kmadd(nn,kmul(Ro222,kmul(ltet2,ltet2)),kmadd(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p2323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro323,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),kmadd(ltet3,kmul(nn,kmsub(n2,kmul(Ro223,ToReal(-2)),kmul(n3,Ro323))),knmsub(ltet3,kmadd(nn,kmadd(n1,kadd(Ro213,Ro123),kmul(n3,Ro233)),kmul(Rojo32,kmul(nn,nn))),kmsub(ltet2,kmsub(ltet3,kmadd(n1,R4p1223,kmsub(nn,kadd(Ro223,Ro322),kmul(n3,R4p2323))),kmul(nn,kmadd(n1,kadd(Ro122,Ro212),kmadd(n3,Ro232,kmadd(n3,Ro322,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(2))))))))),kmul(ltet1,kmadd(ltet2,kmsub(n1,R4p1212,kmadd(nn,kadd(Ro122,Ro221),kmul(n3,R4p1223))),kmadd(ltet3,kmadd(n1,R4p1213,kmadd(n3,R4p1323,kmsub(n2,kmul(R4p1223,ToReal(2)),kmul(nn,kadd(Ro321,Ro123))))),kmul(nn,kmadd(n1,kadd(Ro121,Ro211),kmadd(n3,Ro231,kmadd(n3,Ro321,kmadd(nn,Rojo12,kmul(n2,kmul(Ro221,ToReal(2)))))))))))))))))))))),kmul(im3,kmadd(kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,Ro131))),kmul(ltet1,ltet1),kmsub(kmul(ltet2,ltet2),kmadd(n3,R4p2323,kmsub(nn,Ro232,kmul(n1,R4p1223))),kmadd(ltet1,kmadd(ltet3,kmadd(n1,R4p1313,kmsub(n2,R4p1323,kmul(nn,kadd(Ro133,Ro331)))),kmadd(ltet2,kmadd(n1,R4p1213,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmadd(nn,kadd(Ro231,Ro132),kmul(n2,R4p1223)))),kmul(nn,kmadd(n1,kadd(Ro131,Ro311),kmadd(n2,kadd(Ro231,Ro321),kmadd(nn,Rojo13,kmul(n3,kmul(Ro331,ToReal(2))))))))),kmadd(nn,knmsub(nn,kmadd(n1,Rojo13,kmadd(n2,Rojo23,kmul(n3,Rojo33))),kmsub(ltet3,kmadd(n1,kadd(Ro133,Ro313),kmadd(n2,kadd(Ro233,Ro323),kmadd(nn,Rojo33,kmul(n3,kmul(Ro333,ToReal(2)))))),kmul(Ro333,kmul(ltet3,ltet3)))),kmul(ltet2,kmadd(ltet3,kmadd(n1,R4p1323,kmsub(n2,R4p2323,kmul(nn,kadd(Ro233,Ro332)))),kmul(nn,kmadd(n1,kadd(Ro132,Ro312),kmadd(n2,kadd(Ro232,Ro322),kmadd(nn,Rojo23,kmul(n3,kmul(Ro332,ToReal(2)))))))))))))))); + + CCTK_REAL_VEC Psi0rL = + kmadd(rm1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(rm1,kmul(rm2,kmul(Rojo21,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(ltet2,ltet2),kmul(rm1,rm1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rm1,rm1)),kmadd(R4p1212,kmul(kmul(ltet1,ltet1),kmul(rm2,rm2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rm2,rm2)),kmadd(R4p1313,kmul(kmul(ltet1,ltet1),kmul(rm3,rm3)),kmadd(R4p2323,kmul(kmul(ltet2,ltet2),kmul(rm3,rm3)),kmadd(kmadd(ltet1,kmul(ltet2,kmul(R4p1212,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1213,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1313,kmul(rm1,rm3))),kmadd(ltet1,kmul(ltet3,kmul(R4p1323,kmul(rm2,rm3))),kmadd(ltet2,kmul(ltet3,kmul(R4p2323,kmul(rm2,rm3))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(im3,im3))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(im3,im3))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(im3,im3))),kmul(R4p1223,kmul(rm1,kmul(rm3,kmul(ltet2,ltet2)))))))))))),ToReal(-2),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,kmul(kmul(rm2,rm2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(ltet3,ltet3),kmul(rm1,rm1),kmul(kmul(im3,im3),kmul(ltet1,ltet1))),kmadd(R4p2323,kmsub(kmul(ltet3,ltet3),kmul(rm2,rm2),kmul(kmul(im3,im3),kmul(ltet2,ltet2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rm3,rm3),kmul(kmul(im3,im3),kmul(nn,nn))),kmadd(kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro112))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro113))),kmadd(ltet2,kmul(nn,kmul(rm1,kmul(rm3,Ro123))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro132))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro133))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro211))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro213))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro223))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro231))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro233))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro311))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro312))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro322))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro331))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro332))),kmadd(R4p1213,kmul(rm2,kmul(rm3,kmul(ltet1,ltet1))),kmul(R4p1323,kmul(rm1,kmul(rm2,kmul(ltet3,ltet3)))))))))))))))))))),ToReal(2),kmadd(ltet1,kmul(nn,kmul(Ro111,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro121,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro131,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro212,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro222,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro232,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(kmul(rm3,rm3),ToReal(2)))),knmsub(kmul(im2,im2),kmadd(R4p1212,kmul(ltet1,ltet1),kmadd(R4p2323,kmul(ltet3,ltet3),kmadd(Rojo22,kmul(nn,nn),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,ToReal(-2))),kmadd(ltet1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(ltet2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(ltet3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(ltet2,kmadd(ltet1,kmul(R4p1213,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(ltet3,kmul(R4p1323,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(im3,im3),ToReal(-2))),kmadd(ltet3,kmul(R4p1223,kmul(rm1,kmul(rm2,ToReal(2)))),kmadd(ltet1,kmul(R4p1223,kmul(rm2,kmul(rm3,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm3,kmul(Ro321,ToReal(2)))),kmul(ltet3,kmul(R4p1213,kmul(kmul(rm1,rm1),ToReal(2)))))))))))),knmsub(kmul(im1,im1),kmadd(R4p1212,kmul(ltet2,ltet2),kmadd(R4p1313,kmul(ltet3,ltet3),kmadd(ltet2,kmul(kmadd(ltet3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(ltet1,kmul(Ro111,ToReal(2))))))))),kmsub(im1,kmul(im3,kmadd(R4p1223,kmul(kmul(ltet2,ltet2),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1213,kmsub(ltet3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(ltet2,kmul(kmsub(ltet3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(ltet3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(im2,kmadd(im3,kmadd(R4p1213,kmul(kmul(ltet1,ltet1),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(ltet3,R4p1323))),ToReal(2)),kmadd(ltet2,kmadd(ltet3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(ltet3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(im1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(ltet1,kmul(ToReal(-2),kmadd(ltet2,R4p1212,kmsub(ltet3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(ltet3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(ltet2,kmul(kmadd(ltet3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(ltet3,ltet3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi0iL = + kmadd(im1,kmadd(nn,kmadd(ltet1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(ltet3,ltet3),kmadd(kmul(ltet2,ltet2),kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(ltet2,knmsub(ltet1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(ltet3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2)))))))),kmul(ltet3,kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(ltet1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3)))))))))),kmadd(im3,kmadd(kmul(ltet2,ltet2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(nn,kmadd(ltet3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(ltet1,ltet1),kmadd(ltet1,knmsub(ltet3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(ltet2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2)))))))),kmul(ltet2,kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(ltet3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2)))))))))),kmul(im2,kmadd(kmadd(rm1,kadd(Rojo12,Rojo21),kmul(rm3,kadd(Rojo23,Rojo32))),kmul(nn,nn),kmadd(ToReal(2),kmadd(ltet3,kmul(nn,kmadd(rm1,kadd(Ro132,Ro231),kmul(rm3,Ro233))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(ltet1,ltet1),kmadd(kmadd(R4p1323,rm1,kmul(R4p2323,rm2)),kmul(ltet3,ltet3),kmadd(rm2,kmul(Rojo22,kmul(nn,nn)),kmadd(ltet1,kmadd(ltet2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(ltet3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))),kmul(ltet2,kmadd(ltet3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))),kmul(ltet3,kmul(nn,kmadd(rm3,kmul(Ro332,ToReal(2)),kmul(rm2,kmul(Ro232,ToReal(4))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(Psi0i[index],Psi0iL); + vec_store_nta_partial(Psi0r[index],Psi0rL); + vec_store_nta_partial(Psi1i[index],Psi1iL); + vec_store_nta_partial(Psi1r[index],Psi1rL); + vec_store_nta_partial(Psi2i[index],Psi2iL); + vec_store_nta_partial(Psi2r[index],Psi2rL); + vec_store_nta_partial(Psi3i[index],Psi3iL); + vec_store_nta_partial(Psi3r[index],Psi3rL); + vec_store_nta_partial(Psi4i[index],Psi4iL); + vec_store_nta_partial(Psi4r[index],Psi4rL); + } + LC_ENDLOOP3VEC(WeylScal4_psis_calc_2nd); +} + +extern "C" void WeylScal4_psis_calc_2nd(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_psis_calc_2nd_Body"); + } + + if (cctk_iteration % WeylScal4_psis_calc_2nd_calc_every != WeylScal4_psis_calc_2nd_calc_offset) + { + return; + } + + const char *const groups[] = { + "admbase::curv", + "admbase::metric", + "grid::coordinates", + "WeylScal4::Psi0i_group", + "WeylScal4::Psi0r_group", + "WeylScal4::Psi1i_group", + "WeylScal4::Psi1r_group", + "WeylScal4::Psi2i_group", + "WeylScal4::Psi2r_group", + "WeylScal4::Psi3i_group", + "WeylScal4::Psi3r_group", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_psis_calc_2nd", 13, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_2nd", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_2nd", 1, 1, 1); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_2nd", 1, 1, 1); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_2nd", 1, 1, 1); + break; + } + + GenericFD_LoopOverInterior(cctkGH, WeylScal4_psis_calc_2nd_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_psis_calc_2nd_Body"); + } +} diff --git a/src/WeylScal4_psis_calc_4th.cc b/src/WeylScal4_psis_calc_4th.cc new file mode 100644 index 0000000..fbe29bb --- /dev/null +++ b/src/WeylScal4_psis_calc_4th.cc @@ -0,0 +1,1426 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +extern "C" void WeylScal4_psis_calc_4th_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); + return; +} + +static void WeylScal4_psis_calc_4th_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_psis_calc_4th, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC gxxL = vec_load(gxx[index]); + CCTK_REAL_VEC gxyL = vec_load(gxy[index]); + CCTK_REAL_VEC gxzL = vec_load(gxz[index]); + CCTK_REAL_VEC gyyL = vec_load(gyy[index]); + CCTK_REAL_VEC gyzL = vec_load(gyz[index]); + CCTK_REAL_VEC gzzL = vec_load(gzz[index]); + CCTK_REAL_VEC kxxL = vec_load(kxx[index]); + CCTK_REAL_VEC kxyL = vec_load(kxy[index]); + CCTK_REAL_VEC kxzL = vec_load(kxz[index]); + CCTK_REAL_VEC kyyL = vec_load(kyy[index]); + CCTK_REAL_VEC kyzL = vec_load(kyz[index]); + CCTK_REAL_VEC kzzL = vec_load(kzz[index]); + CCTK_REAL_VEC xL = vec_load(x[index]); + CCTK_REAL_VEC yL = vec_load(y[index]); + CCTK_REAL_VEC zL = vec_load(z[index]); + + + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + + /* Include user supplied include files */ + + /* Precompute derivatives */ + CCTK_REAL_VEC PDstandard4th1gxx; + CCTK_REAL_VEC PDstandard4th2gxx; + CCTK_REAL_VEC PDstandard4th3gxx; + CCTK_REAL_VEC PDstandard4th11gxx; + CCTK_REAL_VEC PDstandard4th22gxx; + CCTK_REAL_VEC PDstandard4th33gxx; + CCTK_REAL_VEC PDstandard4th12gxx; + CCTK_REAL_VEC PDstandard4th13gxx; + CCTK_REAL_VEC PDstandard4th23gxx; + CCTK_REAL_VEC PDstandard4th1gxy; + CCTK_REAL_VEC PDstandard4th2gxy; + CCTK_REAL_VEC PDstandard4th3gxy; + CCTK_REAL_VEC PDstandard4th11gxy; + CCTK_REAL_VEC PDstandard4th22gxy; + CCTK_REAL_VEC PDstandard4th33gxy; + CCTK_REAL_VEC PDstandard4th12gxy; + CCTK_REAL_VEC PDstandard4th13gxy; + CCTK_REAL_VEC PDstandard4th23gxy; + CCTK_REAL_VEC PDstandard4th1gxz; + CCTK_REAL_VEC PDstandard4th2gxz; + CCTK_REAL_VEC PDstandard4th3gxz; + CCTK_REAL_VEC PDstandard4th11gxz; + CCTK_REAL_VEC PDstandard4th22gxz; + CCTK_REAL_VEC PDstandard4th33gxz; + CCTK_REAL_VEC PDstandard4th12gxz; + CCTK_REAL_VEC PDstandard4th13gxz; + CCTK_REAL_VEC PDstandard4th23gxz; + CCTK_REAL_VEC PDstandard4th1gyy; + CCTK_REAL_VEC PDstandard4th2gyy; + CCTK_REAL_VEC PDstandard4th3gyy; + CCTK_REAL_VEC PDstandard4th11gyy; + CCTK_REAL_VEC PDstandard4th22gyy; + CCTK_REAL_VEC PDstandard4th33gyy; + CCTK_REAL_VEC PDstandard4th12gyy; + CCTK_REAL_VEC PDstandard4th13gyy; + CCTK_REAL_VEC PDstandard4th23gyy; + CCTK_REAL_VEC PDstandard4th1gyz; + CCTK_REAL_VEC PDstandard4th2gyz; + CCTK_REAL_VEC PDstandard4th3gyz; + CCTK_REAL_VEC PDstandard4th11gyz; + CCTK_REAL_VEC PDstandard4th22gyz; + CCTK_REAL_VEC PDstandard4th33gyz; + CCTK_REAL_VEC PDstandard4th12gyz; + CCTK_REAL_VEC PDstandard4th13gyz; + CCTK_REAL_VEC PDstandard4th23gyz; + CCTK_REAL_VEC PDstandard4th1gzz; + CCTK_REAL_VEC PDstandard4th2gzz; + CCTK_REAL_VEC PDstandard4th3gzz; + CCTK_REAL_VEC PDstandard4th11gzz; + CCTK_REAL_VEC PDstandard4th22gzz; + CCTK_REAL_VEC PDstandard4th33gzz; + CCTK_REAL_VEC PDstandard4th12gzz; + CCTK_REAL_VEC PDstandard4th13gzz; + CCTK_REAL_VEC PDstandard4th23gzz; + CCTK_REAL_VEC PDstandard4th1kxx; + CCTK_REAL_VEC PDstandard4th2kxx; + CCTK_REAL_VEC PDstandard4th3kxx; + CCTK_REAL_VEC PDstandard4th1kxy; + CCTK_REAL_VEC PDstandard4th2kxy; + CCTK_REAL_VEC PDstandard4th3kxy; + CCTK_REAL_VEC PDstandard4th1kxz; + CCTK_REAL_VEC PDstandard4th2kxz; + CCTK_REAL_VEC PDstandard4th3kxz; + CCTK_REAL_VEC PDstandard4th1kyy; + CCTK_REAL_VEC PDstandard4th2kyy; + CCTK_REAL_VEC PDstandard4th3kyy; + CCTK_REAL_VEC PDstandard4th1kyz; + CCTK_REAL_VEC PDstandard4th2kyz; + CCTK_REAL_VEC PDstandard4th3kyz; + CCTK_REAL_VEC PDstandard4th1kzz; + CCTK_REAL_VEC PDstandard4th2kzz; + CCTK_REAL_VEC PDstandard4th3kzz; + + switch(fdOrder) + { + case 2: + PDstandard4th1gxx = PDstandard4th1(&gxx[index]); + PDstandard4th2gxx = PDstandard4th2(&gxx[index]); + PDstandard4th3gxx = PDstandard4th3(&gxx[index]); + PDstandard4th11gxx = PDstandard4th11(&gxx[index]); + PDstandard4th22gxx = PDstandard4th22(&gxx[index]); + PDstandard4th33gxx = PDstandard4th33(&gxx[index]); + PDstandard4th12gxx = PDstandard4th12(&gxx[index]); + PDstandard4th13gxx = PDstandard4th13(&gxx[index]); + PDstandard4th23gxx = PDstandard4th23(&gxx[index]); + PDstandard4th1gxy = PDstandard4th1(&gxy[index]); + PDstandard4th2gxy = PDstandard4th2(&gxy[index]); + PDstandard4th3gxy = PDstandard4th3(&gxy[index]); + PDstandard4th11gxy = PDstandard4th11(&gxy[index]); + PDstandard4th22gxy = PDstandard4th22(&gxy[index]); + PDstandard4th33gxy = PDstandard4th33(&gxy[index]); + PDstandard4th12gxy = PDstandard4th12(&gxy[index]); + PDstandard4th13gxy = PDstandard4th13(&gxy[index]); + PDstandard4th23gxy = PDstandard4th23(&gxy[index]); + PDstandard4th1gxz = PDstandard4th1(&gxz[index]); + PDstandard4th2gxz = PDstandard4th2(&gxz[index]); + PDstandard4th3gxz = PDstandard4th3(&gxz[index]); + PDstandard4th11gxz = PDstandard4th11(&gxz[index]); + PDstandard4th22gxz = PDstandard4th22(&gxz[index]); + PDstandard4th33gxz = PDstandard4th33(&gxz[index]); + PDstandard4th12gxz = PDstandard4th12(&gxz[index]); + PDstandard4th13gxz = PDstandard4th13(&gxz[index]); + PDstandard4th23gxz = PDstandard4th23(&gxz[index]); + PDstandard4th1gyy = PDstandard4th1(&gyy[index]); + PDstandard4th2gyy = PDstandard4th2(&gyy[index]); + PDstandard4th3gyy = PDstandard4th3(&gyy[index]); + PDstandard4th11gyy = PDstandard4th11(&gyy[index]); + PDstandard4th22gyy = PDstandard4th22(&gyy[index]); + PDstandard4th33gyy = PDstandard4th33(&gyy[index]); + PDstandard4th12gyy = PDstandard4th12(&gyy[index]); + PDstandard4th13gyy = PDstandard4th13(&gyy[index]); + PDstandard4th23gyy = PDstandard4th23(&gyy[index]); + PDstandard4th1gyz = PDstandard4th1(&gyz[index]); + PDstandard4th2gyz = PDstandard4th2(&gyz[index]); + PDstandard4th3gyz = PDstandard4th3(&gyz[index]); + PDstandard4th11gyz = PDstandard4th11(&gyz[index]); + PDstandard4th22gyz = PDstandard4th22(&gyz[index]); + PDstandard4th33gyz = PDstandard4th33(&gyz[index]); + PDstandard4th12gyz = PDstandard4th12(&gyz[index]); + PDstandard4th13gyz = PDstandard4th13(&gyz[index]); + PDstandard4th23gyz = PDstandard4th23(&gyz[index]); + PDstandard4th1gzz = PDstandard4th1(&gzz[index]); + PDstandard4th2gzz = PDstandard4th2(&gzz[index]); + PDstandard4th3gzz = PDstandard4th3(&gzz[index]); + PDstandard4th11gzz = PDstandard4th11(&gzz[index]); + PDstandard4th22gzz = PDstandard4th22(&gzz[index]); + PDstandard4th33gzz = PDstandard4th33(&gzz[index]); + PDstandard4th12gzz = PDstandard4th12(&gzz[index]); + PDstandard4th13gzz = PDstandard4th13(&gzz[index]); + PDstandard4th23gzz = PDstandard4th23(&gzz[index]); + PDstandard4th1kxx = PDstandard4th1(&kxx[index]); + PDstandard4th2kxx = PDstandard4th2(&kxx[index]); + PDstandard4th3kxx = PDstandard4th3(&kxx[index]); + PDstandard4th1kxy = PDstandard4th1(&kxy[index]); + PDstandard4th2kxy = PDstandard4th2(&kxy[index]); + PDstandard4th3kxy = PDstandard4th3(&kxy[index]); + PDstandard4th1kxz = PDstandard4th1(&kxz[index]); + PDstandard4th2kxz = PDstandard4th2(&kxz[index]); + PDstandard4th3kxz = PDstandard4th3(&kxz[index]); + PDstandard4th1kyy = PDstandard4th1(&kyy[index]); + PDstandard4th2kyy = PDstandard4th2(&kyy[index]); + PDstandard4th3kyy = PDstandard4th3(&kyy[index]); + PDstandard4th1kyz = PDstandard4th1(&kyz[index]); + PDstandard4th2kyz = PDstandard4th2(&kyz[index]); + PDstandard4th3kyz = PDstandard4th3(&kyz[index]); + PDstandard4th1kzz = PDstandard4th1(&kzz[index]); + PDstandard4th2kzz = PDstandard4th2(&kzz[index]); + PDstandard4th3kzz = PDstandard4th3(&kzz[index]); + break; + + case 4: + PDstandard4th1gxx = PDstandard4th1(&gxx[index]); + PDstandard4th2gxx = PDstandard4th2(&gxx[index]); + PDstandard4th3gxx = PDstandard4th3(&gxx[index]); + PDstandard4th11gxx = PDstandard4th11(&gxx[index]); + PDstandard4th22gxx = PDstandard4th22(&gxx[index]); + PDstandard4th33gxx = PDstandard4th33(&gxx[index]); + PDstandard4th12gxx = PDstandard4th12(&gxx[index]); + PDstandard4th13gxx = PDstandard4th13(&gxx[index]); + PDstandard4th23gxx = PDstandard4th23(&gxx[index]); + PDstandard4th1gxy = PDstandard4th1(&gxy[index]); + PDstandard4th2gxy = PDstandard4th2(&gxy[index]); + PDstandard4th3gxy = PDstandard4th3(&gxy[index]); + PDstandard4th11gxy = PDstandard4th11(&gxy[index]); + PDstandard4th22gxy = PDstandard4th22(&gxy[index]); + PDstandard4th33gxy = PDstandard4th33(&gxy[index]); + PDstandard4th12gxy = PDstandard4th12(&gxy[index]); + PDstandard4th13gxy = PDstandard4th13(&gxy[index]); + PDstandard4th23gxy = PDstandard4th23(&gxy[index]); + PDstandard4th1gxz = PDstandard4th1(&gxz[index]); + PDstandard4th2gxz = PDstandard4th2(&gxz[index]); + PDstandard4th3gxz = PDstandard4th3(&gxz[index]); + PDstandard4th11gxz = PDstandard4th11(&gxz[index]); + PDstandard4th22gxz = PDstandard4th22(&gxz[index]); + PDstandard4th33gxz = PDstandard4th33(&gxz[index]); + PDstandard4th12gxz = PDstandard4th12(&gxz[index]); + PDstandard4th13gxz = PDstandard4th13(&gxz[index]); + PDstandard4th23gxz = PDstandard4th23(&gxz[index]); + PDstandard4th1gyy = PDstandard4th1(&gyy[index]); + PDstandard4th2gyy = PDstandard4th2(&gyy[index]); + PDstandard4th3gyy = PDstandard4th3(&gyy[index]); + PDstandard4th11gyy = PDstandard4th11(&gyy[index]); + PDstandard4th22gyy = PDstandard4th22(&gyy[index]); + PDstandard4th33gyy = PDstandard4th33(&gyy[index]); + PDstandard4th12gyy = PDstandard4th12(&gyy[index]); + PDstandard4th13gyy = PDstandard4th13(&gyy[index]); + PDstandard4th23gyy = PDstandard4th23(&gyy[index]); + PDstandard4th1gyz = PDstandard4th1(&gyz[index]); + PDstandard4th2gyz = PDstandard4th2(&gyz[index]); + PDstandard4th3gyz = PDstandard4th3(&gyz[index]); + PDstandard4th11gyz = PDstandard4th11(&gyz[index]); + PDstandard4th22gyz = PDstandard4th22(&gyz[index]); + PDstandard4th33gyz = PDstandard4th33(&gyz[index]); + PDstandard4th12gyz = PDstandard4th12(&gyz[index]); + PDstandard4th13gyz = PDstandard4th13(&gyz[index]); + PDstandard4th23gyz = PDstandard4th23(&gyz[index]); + PDstandard4th1gzz = PDstandard4th1(&gzz[index]); + PDstandard4th2gzz = PDstandard4th2(&gzz[index]); + PDstandard4th3gzz = PDstandard4th3(&gzz[index]); + PDstandard4th11gzz = PDstandard4th11(&gzz[index]); + PDstandard4th22gzz = PDstandard4th22(&gzz[index]); + PDstandard4th33gzz = PDstandard4th33(&gzz[index]); + PDstandard4th12gzz = PDstandard4th12(&gzz[index]); + PDstandard4th13gzz = PDstandard4th13(&gzz[index]); + PDstandard4th23gzz = PDstandard4th23(&gzz[index]); + PDstandard4th1kxx = PDstandard4th1(&kxx[index]); + PDstandard4th2kxx = PDstandard4th2(&kxx[index]); + PDstandard4th3kxx = PDstandard4th3(&kxx[index]); + PDstandard4th1kxy = PDstandard4th1(&kxy[index]); + PDstandard4th2kxy = PDstandard4th2(&kxy[index]); + PDstandard4th3kxy = PDstandard4th3(&kxy[index]); + PDstandard4th1kxz = PDstandard4th1(&kxz[index]); + PDstandard4th2kxz = PDstandard4th2(&kxz[index]); + PDstandard4th3kxz = PDstandard4th3(&kxz[index]); + PDstandard4th1kyy = PDstandard4th1(&kyy[index]); + PDstandard4th2kyy = PDstandard4th2(&kyy[index]); + PDstandard4th3kyy = PDstandard4th3(&kyy[index]); + PDstandard4th1kyz = PDstandard4th1(&kyz[index]); + PDstandard4th2kyz = PDstandard4th2(&kyz[index]); + PDstandard4th3kyz = PDstandard4th3(&kyz[index]); + PDstandard4th1kzz = PDstandard4th1(&kzz[index]); + PDstandard4th2kzz = PDstandard4th2(&kzz[index]); + PDstandard4th3kzz = PDstandard4th3(&kzz[index]); + break; + + case 6: + PDstandard4th1gxx = PDstandard4th1(&gxx[index]); + PDstandard4th2gxx = PDstandard4th2(&gxx[index]); + PDstandard4th3gxx = PDstandard4th3(&gxx[index]); + PDstandard4th11gxx = PDstandard4th11(&gxx[index]); + PDstandard4th22gxx = PDstandard4th22(&gxx[index]); + PDstandard4th33gxx = PDstandard4th33(&gxx[index]); + PDstandard4th12gxx = PDstandard4th12(&gxx[index]); + PDstandard4th13gxx = PDstandard4th13(&gxx[index]); + PDstandard4th23gxx = PDstandard4th23(&gxx[index]); + PDstandard4th1gxy = PDstandard4th1(&gxy[index]); + PDstandard4th2gxy = PDstandard4th2(&gxy[index]); + PDstandard4th3gxy = PDstandard4th3(&gxy[index]); + PDstandard4th11gxy = PDstandard4th11(&gxy[index]); + PDstandard4th22gxy = PDstandard4th22(&gxy[index]); + PDstandard4th33gxy = PDstandard4th33(&gxy[index]); + PDstandard4th12gxy = PDstandard4th12(&gxy[index]); + PDstandard4th13gxy = PDstandard4th13(&gxy[index]); + PDstandard4th23gxy = PDstandard4th23(&gxy[index]); + PDstandard4th1gxz = PDstandard4th1(&gxz[index]); + PDstandard4th2gxz = PDstandard4th2(&gxz[index]); + PDstandard4th3gxz = PDstandard4th3(&gxz[index]); + PDstandard4th11gxz = PDstandard4th11(&gxz[index]); + PDstandard4th22gxz = PDstandard4th22(&gxz[index]); + PDstandard4th33gxz = PDstandard4th33(&gxz[index]); + PDstandard4th12gxz = PDstandard4th12(&gxz[index]); + PDstandard4th13gxz = PDstandard4th13(&gxz[index]); + PDstandard4th23gxz = PDstandard4th23(&gxz[index]); + PDstandard4th1gyy = PDstandard4th1(&gyy[index]); + PDstandard4th2gyy = PDstandard4th2(&gyy[index]); + PDstandard4th3gyy = PDstandard4th3(&gyy[index]); + PDstandard4th11gyy = PDstandard4th11(&gyy[index]); + PDstandard4th22gyy = PDstandard4th22(&gyy[index]); + PDstandard4th33gyy = PDstandard4th33(&gyy[index]); + PDstandard4th12gyy = PDstandard4th12(&gyy[index]); + PDstandard4th13gyy = PDstandard4th13(&gyy[index]); + PDstandard4th23gyy = PDstandard4th23(&gyy[index]); + PDstandard4th1gyz = PDstandard4th1(&gyz[index]); + PDstandard4th2gyz = PDstandard4th2(&gyz[index]); + PDstandard4th3gyz = PDstandard4th3(&gyz[index]); + PDstandard4th11gyz = PDstandard4th11(&gyz[index]); + PDstandard4th22gyz = PDstandard4th22(&gyz[index]); + PDstandard4th33gyz = PDstandard4th33(&gyz[index]); + PDstandard4th12gyz = PDstandard4th12(&gyz[index]); + PDstandard4th13gyz = PDstandard4th13(&gyz[index]); + PDstandard4th23gyz = PDstandard4th23(&gyz[index]); + PDstandard4th1gzz = PDstandard4th1(&gzz[index]); + PDstandard4th2gzz = PDstandard4th2(&gzz[index]); + PDstandard4th3gzz = PDstandard4th3(&gzz[index]); + PDstandard4th11gzz = PDstandard4th11(&gzz[index]); + PDstandard4th22gzz = PDstandard4th22(&gzz[index]); + PDstandard4th33gzz = PDstandard4th33(&gzz[index]); + PDstandard4th12gzz = PDstandard4th12(&gzz[index]); + PDstandard4th13gzz = PDstandard4th13(&gzz[index]); + PDstandard4th23gzz = PDstandard4th23(&gzz[index]); + PDstandard4th1kxx = PDstandard4th1(&kxx[index]); + PDstandard4th2kxx = PDstandard4th2(&kxx[index]); + PDstandard4th3kxx = PDstandard4th3(&kxx[index]); + PDstandard4th1kxy = PDstandard4th1(&kxy[index]); + PDstandard4th2kxy = PDstandard4th2(&kxy[index]); + PDstandard4th3kxy = PDstandard4th3(&kxy[index]); + PDstandard4th1kxz = PDstandard4th1(&kxz[index]); + PDstandard4th2kxz = PDstandard4th2(&kxz[index]); + PDstandard4th3kxz = PDstandard4th3(&kxz[index]); + PDstandard4th1kyy = PDstandard4th1(&kyy[index]); + PDstandard4th2kyy = PDstandard4th2(&kyy[index]); + PDstandard4th3kyy = PDstandard4th3(&kyy[index]); + PDstandard4th1kyz = PDstandard4th1(&kyz[index]); + PDstandard4th2kyz = PDstandard4th2(&kyz[index]); + PDstandard4th3kyz = PDstandard4th3(&kyz[index]); + PDstandard4th1kzz = PDstandard4th1(&kzz[index]); + PDstandard4th2kzz = PDstandard4th2(&kzz[index]); + PDstandard4th3kzz = PDstandard4th3(&kzz[index]); + break; + + case 8: + PDstandard4th1gxx = PDstandard4th1(&gxx[index]); + PDstandard4th2gxx = PDstandard4th2(&gxx[index]); + PDstandard4th3gxx = PDstandard4th3(&gxx[index]); + PDstandard4th11gxx = PDstandard4th11(&gxx[index]); + PDstandard4th22gxx = PDstandard4th22(&gxx[index]); + PDstandard4th33gxx = PDstandard4th33(&gxx[index]); + PDstandard4th12gxx = PDstandard4th12(&gxx[index]); + PDstandard4th13gxx = PDstandard4th13(&gxx[index]); + PDstandard4th23gxx = PDstandard4th23(&gxx[index]); + PDstandard4th1gxy = PDstandard4th1(&gxy[index]); + PDstandard4th2gxy = PDstandard4th2(&gxy[index]); + PDstandard4th3gxy = PDstandard4th3(&gxy[index]); + PDstandard4th11gxy = PDstandard4th11(&gxy[index]); + PDstandard4th22gxy = PDstandard4th22(&gxy[index]); + PDstandard4th33gxy = PDstandard4th33(&gxy[index]); + PDstandard4th12gxy = PDstandard4th12(&gxy[index]); + PDstandard4th13gxy = PDstandard4th13(&gxy[index]); + PDstandard4th23gxy = PDstandard4th23(&gxy[index]); + PDstandard4th1gxz = PDstandard4th1(&gxz[index]); + PDstandard4th2gxz = PDstandard4th2(&gxz[index]); + PDstandard4th3gxz = PDstandard4th3(&gxz[index]); + PDstandard4th11gxz = PDstandard4th11(&gxz[index]); + PDstandard4th22gxz = PDstandard4th22(&gxz[index]); + PDstandard4th33gxz = PDstandard4th33(&gxz[index]); + PDstandard4th12gxz = PDstandard4th12(&gxz[index]); + PDstandard4th13gxz = PDstandard4th13(&gxz[index]); + PDstandard4th23gxz = PDstandard4th23(&gxz[index]); + PDstandard4th1gyy = PDstandard4th1(&gyy[index]); + PDstandard4th2gyy = PDstandard4th2(&gyy[index]); + PDstandard4th3gyy = PDstandard4th3(&gyy[index]); + PDstandard4th11gyy = PDstandard4th11(&gyy[index]); + PDstandard4th22gyy = PDstandard4th22(&gyy[index]); + PDstandard4th33gyy = PDstandard4th33(&gyy[index]); + PDstandard4th12gyy = PDstandard4th12(&gyy[index]); + PDstandard4th13gyy = PDstandard4th13(&gyy[index]); + PDstandard4th23gyy = PDstandard4th23(&gyy[index]); + PDstandard4th1gyz = PDstandard4th1(&gyz[index]); + PDstandard4th2gyz = PDstandard4th2(&gyz[index]); + PDstandard4th3gyz = PDstandard4th3(&gyz[index]); + PDstandard4th11gyz = PDstandard4th11(&gyz[index]); + PDstandard4th22gyz = PDstandard4th22(&gyz[index]); + PDstandard4th33gyz = PDstandard4th33(&gyz[index]); + PDstandard4th12gyz = PDstandard4th12(&gyz[index]); + PDstandard4th13gyz = PDstandard4th13(&gyz[index]); + PDstandard4th23gyz = PDstandard4th23(&gyz[index]); + PDstandard4th1gzz = PDstandard4th1(&gzz[index]); + PDstandard4th2gzz = PDstandard4th2(&gzz[index]); + PDstandard4th3gzz = PDstandard4th3(&gzz[index]); + PDstandard4th11gzz = PDstandard4th11(&gzz[index]); + PDstandard4th22gzz = PDstandard4th22(&gzz[index]); + PDstandard4th33gzz = PDstandard4th33(&gzz[index]); + PDstandard4th12gzz = PDstandard4th12(&gzz[index]); + PDstandard4th13gzz = PDstandard4th13(&gzz[index]); + PDstandard4th23gzz = PDstandard4th23(&gzz[index]); + PDstandard4th1kxx = PDstandard4th1(&kxx[index]); + PDstandard4th2kxx = PDstandard4th2(&kxx[index]); + PDstandard4th3kxx = PDstandard4th3(&kxx[index]); + PDstandard4th1kxy = PDstandard4th1(&kxy[index]); + PDstandard4th2kxy = PDstandard4th2(&kxy[index]); + PDstandard4th3kxy = PDstandard4th3(&kxy[index]); + PDstandard4th1kxz = PDstandard4th1(&kxz[index]); + PDstandard4th2kxz = PDstandard4th2(&kxz[index]); + PDstandard4th3kxz = PDstandard4th3(&kxz[index]); + PDstandard4th1kyy = PDstandard4th1(&kyy[index]); + PDstandard4th2kyy = PDstandard4th2(&kyy[index]); + PDstandard4th3kyy = PDstandard4th3(&kyy[index]); + PDstandard4th1kyz = PDstandard4th1(&kyz[index]); + PDstandard4th2kyz = PDstandard4th2(&kyz[index]); + PDstandard4th3kyz = PDstandard4th3(&kyz[index]); + PDstandard4th1kzz = PDstandard4th1(&kzz[index]); + PDstandard4th2kzz = PDstandard4th2(&kzz[index]); + PDstandard4th3kzz = PDstandard4th3(&kzz[index]); + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandard4th11gyy; + CCTK_REAL_VEC JacPDstandard4th11gyz; + CCTK_REAL_VEC JacPDstandard4th11gzz; + CCTK_REAL_VEC JacPDstandard4th12gxy; + CCTK_REAL_VEC JacPDstandard4th12gxz; + CCTK_REAL_VEC JacPDstandard4th12gyz; + CCTK_REAL_VEC JacPDstandard4th12gzz; + CCTK_REAL_VEC JacPDstandard4th13gxz; + CCTK_REAL_VEC JacPDstandard4th1gxx; + CCTK_REAL_VEC JacPDstandard4th1gxy; + CCTK_REAL_VEC JacPDstandard4th1gxz; + CCTK_REAL_VEC JacPDstandard4th1gyy; + CCTK_REAL_VEC JacPDstandard4th1gyz; + CCTK_REAL_VEC JacPDstandard4th1gzz; + CCTK_REAL_VEC JacPDstandard4th1kxy; + CCTK_REAL_VEC JacPDstandard4th1kxz; + CCTK_REAL_VEC JacPDstandard4th1kyy; + CCTK_REAL_VEC JacPDstandard4th1kyz; + CCTK_REAL_VEC JacPDstandard4th1kzz; + CCTK_REAL_VEC JacPDstandard4th21gxy; + CCTK_REAL_VEC JacPDstandard4th22gxx; + CCTK_REAL_VEC JacPDstandard4th22gxz; + CCTK_REAL_VEC JacPDstandard4th22gzz; + CCTK_REAL_VEC JacPDstandard4th23gxx; + CCTK_REAL_VEC JacPDstandard4th23gxy; + CCTK_REAL_VEC JacPDstandard4th23gxz; + CCTK_REAL_VEC JacPDstandard4th23gyz; + CCTK_REAL_VEC JacPDstandard4th2gxx; + CCTK_REAL_VEC JacPDstandard4th2gxy; + CCTK_REAL_VEC JacPDstandard4th2gxz; + CCTK_REAL_VEC JacPDstandard4th2gyy; + CCTK_REAL_VEC JacPDstandard4th2gyz; + CCTK_REAL_VEC JacPDstandard4th2gzz; + CCTK_REAL_VEC JacPDstandard4th2kxx; + CCTK_REAL_VEC JacPDstandard4th2kxy; + CCTK_REAL_VEC JacPDstandard4th2kxz; + CCTK_REAL_VEC JacPDstandard4th2kyz; + CCTK_REAL_VEC JacPDstandard4th2kzz; + CCTK_REAL_VEC JacPDstandard4th31gxy; + CCTK_REAL_VEC JacPDstandard4th31gxz; + CCTK_REAL_VEC JacPDstandard4th31gyy; + CCTK_REAL_VEC JacPDstandard4th31gyz; + CCTK_REAL_VEC JacPDstandard4th32gyz; + CCTK_REAL_VEC JacPDstandard4th33gxx; + CCTK_REAL_VEC JacPDstandard4th33gxy; + CCTK_REAL_VEC JacPDstandard4th33gyy; + CCTK_REAL_VEC JacPDstandard4th3gxx; + CCTK_REAL_VEC JacPDstandard4th3gxy; + CCTK_REAL_VEC JacPDstandard4th3gxz; + CCTK_REAL_VEC JacPDstandard4th3gyy; + CCTK_REAL_VEC JacPDstandard4th3gyz; + CCTK_REAL_VEC JacPDstandard4th3gzz; + CCTK_REAL_VEC JacPDstandard4th3kxx; + CCTK_REAL_VEC JacPDstandard4th3kxy; + CCTK_REAL_VEC JacPDstandard4th3kxz; + CCTK_REAL_VEC JacPDstandard4th3kyy; + CCTK_REAL_VEC JacPDstandard4th3kyz; + + if (use_jacobian) + { + JacPDstandard4th1gxx = + kmadd(J11L,PDstandard4th1gxx,kmadd(J21L,PDstandard4th2gxx,kmul(J31L,PDstandard4th3gxx))); + + JacPDstandard4th1gxy = + kmadd(J11L,PDstandard4th1gxy,kmadd(J21L,PDstandard4th2gxy,kmul(J31L,PDstandard4th3gxy))); + + JacPDstandard4th1gxz = + kmadd(J11L,PDstandard4th1gxz,kmadd(J21L,PDstandard4th2gxz,kmul(J31L,PDstandard4th3gxz))); + + JacPDstandard4th1gyy = + kmadd(J11L,PDstandard4th1gyy,kmadd(J21L,PDstandard4th2gyy,kmul(J31L,PDstandard4th3gyy))); + + JacPDstandard4th1gyz = + kmadd(J11L,PDstandard4th1gyz,kmadd(J21L,PDstandard4th2gyz,kmul(J31L,PDstandard4th3gyz))); + + JacPDstandard4th1gzz = + kmadd(J11L,PDstandard4th1gzz,kmadd(J21L,PDstandard4th2gzz,kmul(J31L,PDstandard4th3gzz))); + + JacPDstandard4th1kxy = + kmadd(J11L,PDstandard4th1kxy,kmadd(J21L,PDstandard4th2kxy,kmul(J31L,PDstandard4th3kxy))); + + JacPDstandard4th1kxz = + kmadd(J11L,PDstandard4th1kxz,kmadd(J21L,PDstandard4th2kxz,kmul(J31L,PDstandard4th3kxz))); + + JacPDstandard4th1kyy = + kmadd(J11L,PDstandard4th1kyy,kmadd(J21L,PDstandard4th2kyy,kmul(J31L,PDstandard4th3kyy))); + + JacPDstandard4th1kyz = + kmadd(J11L,PDstandard4th1kyz,kmadd(J21L,PDstandard4th2kyz,kmul(J31L,PDstandard4th3kyz))); + + JacPDstandard4th1kzz = + kmadd(J11L,PDstandard4th1kzz,kmadd(J21L,PDstandard4th2kzz,kmul(J31L,PDstandard4th3kzz))); + + JacPDstandard4th2gxx = + kmadd(J12L,PDstandard4th1gxx,kmadd(J22L,PDstandard4th2gxx,kmul(J32L,PDstandard4th3gxx))); + + JacPDstandard4th2gxy = + kmadd(J12L,PDstandard4th1gxy,kmadd(J22L,PDstandard4th2gxy,kmul(J32L,PDstandard4th3gxy))); + + JacPDstandard4th2gxz = + kmadd(J12L,PDstandard4th1gxz,kmadd(J22L,PDstandard4th2gxz,kmul(J32L,PDstandard4th3gxz))); + + JacPDstandard4th2gyy = + kmadd(J12L,PDstandard4th1gyy,kmadd(J22L,PDstandard4th2gyy,kmul(J32L,PDstandard4th3gyy))); + + JacPDstandard4th2gyz = + kmadd(J12L,PDstandard4th1gyz,kmadd(J22L,PDstandard4th2gyz,kmul(J32L,PDstandard4th3gyz))); + + JacPDstandard4th2gzz = + kmadd(J12L,PDstandard4th1gzz,kmadd(J22L,PDstandard4th2gzz,kmul(J32L,PDstandard4th3gzz))); + + JacPDstandard4th2kxx = + kmadd(J12L,PDstandard4th1kxx,kmadd(J22L,PDstandard4th2kxx,kmul(J32L,PDstandard4th3kxx))); + + JacPDstandard4th2kxy = + kmadd(J12L,PDstandard4th1kxy,kmadd(J22L,PDstandard4th2kxy,kmul(J32L,PDstandard4th3kxy))); + + JacPDstandard4th2kxz = + kmadd(J12L,PDstandard4th1kxz,kmadd(J22L,PDstandard4th2kxz,kmul(J32L,PDstandard4th3kxz))); + + JacPDstandard4th2kyz = + kmadd(J12L,PDstandard4th1kyz,kmadd(J22L,PDstandard4th2kyz,kmul(J32L,PDstandard4th3kyz))); + + JacPDstandard4th2kzz = + kmadd(J12L,PDstandard4th1kzz,kmadd(J22L,PDstandard4th2kzz,kmul(J32L,PDstandard4th3kzz))); + + JacPDstandard4th3gxx = + kmadd(J13L,PDstandard4th1gxx,kmadd(J23L,PDstandard4th2gxx,kmul(J33L,PDstandard4th3gxx))); + + JacPDstandard4th3gxy = + kmadd(J13L,PDstandard4th1gxy,kmadd(J23L,PDstandard4th2gxy,kmul(J33L,PDstandard4th3gxy))); + + JacPDstandard4th3gxz = + kmadd(J13L,PDstandard4th1gxz,kmadd(J23L,PDstandard4th2gxz,kmul(J33L,PDstandard4th3gxz))); + + JacPDstandard4th3gyy = + kmadd(J13L,PDstandard4th1gyy,kmadd(J23L,PDstandard4th2gyy,kmul(J33L,PDstandard4th3gyy))); + + JacPDstandard4th3gyz = + kmadd(J13L,PDstandard4th1gyz,kmadd(J23L,PDstandard4th2gyz,kmul(J33L,PDstandard4th3gyz))); + + JacPDstandard4th3gzz = + kmadd(J13L,PDstandard4th1gzz,kmadd(J23L,PDstandard4th2gzz,kmul(J33L,PDstandard4th3gzz))); + + JacPDstandard4th3kxx = + kmadd(J13L,PDstandard4th1kxx,kmadd(J23L,PDstandard4th2kxx,kmul(J33L,PDstandard4th3kxx))); + + JacPDstandard4th3kxy = + kmadd(J13L,PDstandard4th1kxy,kmadd(J23L,PDstandard4th2kxy,kmul(J33L,PDstandard4th3kxy))); + + JacPDstandard4th3kxz = + kmadd(J13L,PDstandard4th1kxz,kmadd(J23L,PDstandard4th2kxz,kmul(J33L,PDstandard4th3kxz))); + + JacPDstandard4th3kyy = + kmadd(J13L,PDstandard4th1kyy,kmadd(J23L,PDstandard4th2kyy,kmul(J33L,PDstandard4th3kyy))); + + JacPDstandard4th3kyz = + kmadd(J13L,PDstandard4th1kyz,kmadd(J23L,PDstandard4th2kyz,kmul(J33L,PDstandard4th3kyz))); + + JacPDstandard4th11gyy = + kmadd(dJ111L,PDstandard4th1gyy,kmadd(dJ211L,PDstandard4th2gyy,kmadd(dJ311L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J11L,J11L),kmadd(PDstandard4th22gyy,kmul(J21L,J21L),kmadd(PDstandard4th33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy)),kmul(J21L,kmul(J31L,PDstandard4th23gyy))),ToReal(2)))))))); + + JacPDstandard4th11gyz = + kmadd(dJ111L,PDstandard4th1gyz,kmadd(dJ211L,PDstandard4th2gyz,kmadd(dJ311L,PDstandard4th3gyz,kmadd(PDstandard4th11gyz,kmul(J11L,J11L),kmadd(PDstandard4th22gyz,kmul(J21L,J21L),kmadd(PDstandard4th33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz)),kmul(J21L,kmul(J31L,PDstandard4th23gyz))),ToReal(2)))))))); + + JacPDstandard4th11gzz = + kmadd(dJ111L,PDstandard4th1gzz,kmadd(dJ211L,PDstandard4th2gzz,kmadd(dJ311L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J11L,J11L),kmadd(PDstandard4th22gzz,kmul(J21L,J21L),kmadd(PDstandard4th33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz)),kmul(J21L,kmul(J31L,PDstandard4th23gzz))),ToReal(2)))))))); + + JacPDstandard4th22gxx = + kmadd(dJ122L,PDstandard4th1gxx,kmadd(dJ222L,PDstandard4th2gxx,kmadd(dJ322L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J12L,J12L),kmadd(PDstandard4th22gxx,kmul(J22L,J22L),kmadd(PDstandard4th33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx)),kmul(J22L,kmul(J32L,PDstandard4th23gxx))),ToReal(2)))))))); + + JacPDstandard4th22gxz = + kmadd(dJ122L,PDstandard4th1gxz,kmadd(dJ222L,PDstandard4th2gxz,kmadd(dJ322L,PDstandard4th3gxz,kmadd(PDstandard4th11gxz,kmul(J12L,J12L),kmadd(PDstandard4th22gxz,kmul(J22L,J22L),kmadd(PDstandard4th33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmul(J22L,kmul(J32L,PDstandard4th23gxz))),ToReal(2)))))))); + + JacPDstandard4th22gzz = + kmadd(dJ122L,PDstandard4th1gzz,kmadd(dJ222L,PDstandard4th2gzz,kmadd(dJ322L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J12L,J12L),kmadd(PDstandard4th22gzz,kmul(J22L,J22L),kmadd(PDstandard4th33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmul(J22L,kmul(J32L,PDstandard4th23gzz))),ToReal(2)))))))); + + JacPDstandard4th33gxx = + kmadd(dJ133L,PDstandard4th1gxx,kmadd(dJ233L,PDstandard4th2gxx,kmadd(dJ333L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J13L,J13L),kmadd(PDstandard4th22gxx,kmul(J23L,J23L),kmadd(PDstandard4th33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmul(J23L,kmul(J33L,PDstandard4th23gxx))),ToReal(2)))))))); + + JacPDstandard4th33gxy = + kmadd(dJ133L,PDstandard4th1gxy,kmadd(dJ233L,PDstandard4th2gxy,kmadd(dJ333L,PDstandard4th3gxy,kmadd(PDstandard4th11gxy,kmul(J13L,J13L),kmadd(PDstandard4th22gxy,kmul(J23L,J23L),kmadd(PDstandard4th33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmul(J23L,kmul(J33L,PDstandard4th23gxy))),ToReal(2)))))))); + + JacPDstandard4th33gyy = + kmadd(dJ133L,PDstandard4th1gyy,kmadd(dJ233L,PDstandard4th2gyy,kmadd(dJ333L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J13L,J13L),kmadd(PDstandard4th22gyy,kmul(J23L,J23L),kmadd(PDstandard4th33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmul(J23L,kmul(J33L,PDstandard4th23gyy))),ToReal(2)))))))); + + JacPDstandard4th12gxy = + kmadd(J12L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy)),kmadd(dJ112L,PDstandard4th1gxy,kmadd(J22L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ212L,PDstandard4th2gxy,kmadd(J32L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ312L,PDstandard4th3gxy))))))); + + JacPDstandard4th12gxz = + kmadd(J12L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmadd(dJ112L,PDstandard4th1gxz,kmadd(J22L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ212L,PDstandard4th2gxz,kmadd(J32L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ312L,PDstandard4th3gxz))))))); + + JacPDstandard4th12gyz = + kmadd(J12L,kmadd(J11L,PDstandard4th11gyz,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz)),kmadd(dJ112L,PDstandard4th1gyz,kmadd(J22L,kmadd(J21L,PDstandard4th22gyz,kmul(J31L,PDstandard4th23gyz)),kmadd(dJ212L,PDstandard4th2gyz,kmadd(J32L,kmadd(J21L,PDstandard4th23gyz,kmul(J31L,PDstandard4th33gyz)),kmul(dJ312L,PDstandard4th3gyz))))))); + + JacPDstandard4th12gzz = + kmadd(J12L,kmadd(J11L,PDstandard4th11gzz,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmadd(dJ112L,PDstandard4th1gzz,kmadd(J22L,kmadd(J21L,PDstandard4th22gzz,kmul(J31L,PDstandard4th23gzz)),kmadd(dJ212L,PDstandard4th2gzz,kmadd(J32L,kmadd(J21L,PDstandard4th23gzz,kmul(J31L,PDstandard4th33gzz)),kmul(dJ312L,PDstandard4th3gzz))))))); + + JacPDstandard4th13gxz = + kmadd(J13L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ113L,PDstandard4th1gxz,kmadd(J23L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ213L,PDstandard4th2gxz,kmadd(J33L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ313L,PDstandard4th3gxz))))))); + + JacPDstandard4th21gxy = + kmadd(J12L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy)),kmadd(dJ112L,PDstandard4th1gxy,kmadd(J22L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ212L,PDstandard4th2gxy,kmadd(J32L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ312L,PDstandard4th3gxy))))))); + + JacPDstandard4th23gxx = + kmadd(J13L,kmadd(J12L,PDstandard4th11gxx,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmadd(dJ123L,PDstandard4th1gxx,kmadd(J23L,kmadd(J22L,PDstandard4th22gxx,kmul(J32L,PDstandard4th23gxx)),kmadd(dJ223L,PDstandard4th2gxx,kmadd(J33L,kmadd(J22L,PDstandard4th23gxx,kmul(J32L,PDstandard4th33gxx)),kmul(dJ323L,PDstandard4th3gxx))))))); + + JacPDstandard4th23gxy = + kmadd(J13L,kmadd(J12L,PDstandard4th11gxy,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmadd(dJ123L,PDstandard4th1gxy,kmadd(J23L,kmadd(J22L,PDstandard4th22gxy,kmul(J32L,PDstandard4th23gxy)),kmadd(dJ223L,PDstandard4th2gxy,kmadd(J33L,kmadd(J22L,PDstandard4th23gxy,kmul(J32L,PDstandard4th33gxy)),kmul(dJ323L,PDstandard4th3gxy))))))); + + JacPDstandard4th23gxz = + kmadd(J13L,kmadd(J12L,PDstandard4th11gxz,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ123L,PDstandard4th1gxz,kmadd(J23L,kmadd(J22L,PDstandard4th22gxz,kmul(J32L,PDstandard4th23gxz)),kmadd(dJ223L,PDstandard4th2gxz,kmadd(J33L,kmadd(J22L,PDstandard4th23gxz,kmul(J32L,PDstandard4th33gxz)),kmul(dJ323L,PDstandard4th3gxz))))))); + + JacPDstandard4th23gyz = + kmadd(J13L,kmadd(J12L,PDstandard4th11gyz,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ123L,PDstandard4th1gyz,kmadd(J23L,kmadd(J22L,PDstandard4th22gyz,kmul(J32L,PDstandard4th23gyz)),kmadd(dJ223L,PDstandard4th2gyz,kmadd(J33L,kmadd(J22L,PDstandard4th23gyz,kmul(J32L,PDstandard4th33gyz)),kmul(dJ323L,PDstandard4th3gyz))))))); + + JacPDstandard4th31gxy = + kmadd(J13L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmadd(dJ113L,PDstandard4th1gxy,kmadd(J23L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ213L,PDstandard4th2gxy,kmadd(J33L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ313L,PDstandard4th3gxy))))))); + + JacPDstandard4th31gxz = + kmadd(J13L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ113L,PDstandard4th1gxz,kmadd(J23L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ213L,PDstandard4th2gxz,kmadd(J33L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ313L,PDstandard4th3gxz))))))); + + JacPDstandard4th31gyy = + kmadd(J13L,kmadd(J11L,PDstandard4th11gyy,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy))),kmadd(J11L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmadd(dJ113L,PDstandard4th1gyy,kmadd(J23L,kmadd(J21L,PDstandard4th22gyy,kmul(J31L,PDstandard4th23gyy)),kmadd(dJ213L,PDstandard4th2gyy,kmadd(J33L,kmadd(J21L,PDstandard4th23gyy,kmul(J31L,PDstandard4th33gyy)),kmul(dJ313L,PDstandard4th3gyy))))))); + + JacPDstandard4th31gyz = + kmadd(J13L,kmadd(J11L,PDstandard4th11gyz,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ113L,PDstandard4th1gyz,kmadd(J23L,kmadd(J21L,PDstandard4th22gyz,kmul(J31L,PDstandard4th23gyz)),kmadd(dJ213L,PDstandard4th2gyz,kmadd(J33L,kmadd(J21L,PDstandard4th23gyz,kmul(J31L,PDstandard4th33gyz)),kmul(dJ313L,PDstandard4th3gyz))))))); + + JacPDstandard4th32gyz = + kmadd(J13L,kmadd(J12L,PDstandard4th11gyz,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ123L,PDstandard4th1gyz,kmadd(J23L,kmadd(J22L,PDstandard4th22gyz,kmul(J32L,PDstandard4th23gyz)),kmadd(dJ223L,PDstandard4th2gyz,kmadd(J33L,kmadd(J22L,PDstandard4th23gyz,kmul(J32L,PDstandard4th33gyz)),kmul(dJ323L,PDstandard4th3gyz))))))); + } + else + { + JacPDstandard4th1gxx = PDstandard4th1gxx; + + JacPDstandard4th1gxy = PDstandard4th1gxy; + + JacPDstandard4th1gxz = PDstandard4th1gxz; + + JacPDstandard4th1gyy = PDstandard4th1gyy; + + JacPDstandard4th1gyz = PDstandard4th1gyz; + + JacPDstandard4th1gzz = PDstandard4th1gzz; + + JacPDstandard4th1kxy = PDstandard4th1kxy; + + JacPDstandard4th1kxz = PDstandard4th1kxz; + + JacPDstandard4th1kyy = PDstandard4th1kyy; + + JacPDstandard4th1kyz = PDstandard4th1kyz; + + JacPDstandard4th1kzz = PDstandard4th1kzz; + + JacPDstandard4th2gxx = PDstandard4th2gxx; + + JacPDstandard4th2gxy = PDstandard4th2gxy; + + JacPDstandard4th2gxz = PDstandard4th2gxz; + + JacPDstandard4th2gyy = PDstandard4th2gyy; + + JacPDstandard4th2gyz = PDstandard4th2gyz; + + JacPDstandard4th2gzz = PDstandard4th2gzz; + + JacPDstandard4th2kxx = PDstandard4th2kxx; + + JacPDstandard4th2kxy = PDstandard4th2kxy; + + JacPDstandard4th2kxz = PDstandard4th2kxz; + + JacPDstandard4th2kyz = PDstandard4th2kyz; + + JacPDstandard4th2kzz = PDstandard4th2kzz; + + JacPDstandard4th3gxx = PDstandard4th3gxx; + + JacPDstandard4th3gxy = PDstandard4th3gxy; + + JacPDstandard4th3gxz = PDstandard4th3gxz; + + JacPDstandard4th3gyy = PDstandard4th3gyy; + + JacPDstandard4th3gyz = PDstandard4th3gyz; + + JacPDstandard4th3gzz = PDstandard4th3gzz; + + JacPDstandard4th3kxx = PDstandard4th3kxx; + + JacPDstandard4th3kxy = PDstandard4th3kxy; + + JacPDstandard4th3kxz = PDstandard4th3kxz; + + JacPDstandard4th3kyy = PDstandard4th3kyy; + + JacPDstandard4th3kyz = PDstandard4th3kyz; + + JacPDstandard4th11gyy = PDstandard4th11gyy; + + JacPDstandard4th11gyz = PDstandard4th11gyz; + + JacPDstandard4th11gzz = PDstandard4th11gzz; + + JacPDstandard4th22gxx = PDstandard4th22gxx; + + JacPDstandard4th22gxz = PDstandard4th22gxz; + + JacPDstandard4th22gzz = PDstandard4th22gzz; + + JacPDstandard4th33gxx = PDstandard4th33gxx; + + JacPDstandard4th33gxy = PDstandard4th33gxy; + + JacPDstandard4th33gyy = PDstandard4th33gyy; + + JacPDstandard4th12gxy = PDstandard4th12gxy; + + JacPDstandard4th12gxz = PDstandard4th12gxz; + + JacPDstandard4th12gyz = PDstandard4th12gyz; + + JacPDstandard4th12gzz = PDstandard4th12gzz; + + JacPDstandard4th13gxz = PDstandard4th13gxz; + + JacPDstandard4th21gxy = PDstandard4th12gxy; + + JacPDstandard4th23gxx = PDstandard4th23gxx; + + JacPDstandard4th23gxy = PDstandard4th23gxy; + + JacPDstandard4th23gxz = PDstandard4th23gxz; + + JacPDstandard4th23gyz = PDstandard4th23gyz; + + JacPDstandard4th31gxy = PDstandard4th13gxy; + + JacPDstandard4th31gxz = PDstandard4th13gxz; + + JacPDstandard4th31gyy = PDstandard4th13gyy; + + JacPDstandard4th31gyz = PDstandard4th13gyz; + + JacPDstandard4th32gyz = PDstandard4th23gyz; + } + + CCTK_REAL_VEC detg = + knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); + + CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); + + CCTK_REAL_VEC gInv11 = + kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); + + CCTK_REAL_VEC gInv12 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv13 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv21 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv22 = + kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); + + CCTK_REAL_VEC gInv23 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv31 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv32 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv33 = + kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); + + CCTK_REAL_VEC gamma111 = + kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard4th1gxx,knmsub(gInv12,JacPDstandard4th2gxx,kmsub(kmadd(gInv12,JacPDstandard4th1gxy,kmul(gInv13,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv13,JacPDstandard4th3gxx))))); + + CCTK_REAL_VEC gamma211 = + kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard4th1gxx,knmsub(gInv22,JacPDstandard4th2gxx,kmsub(kmadd(gInv22,JacPDstandard4th1gxy,kmul(gInv23,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv23,JacPDstandard4th3gxx))))); + + CCTK_REAL_VEC gamma311 = + kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard4th1gxx,knmsub(gInv32,JacPDstandard4th2gxx,kmsub(kmadd(gInv32,JacPDstandard4th1gxy,kmul(gInv33,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv33,JacPDstandard4th3gxx))))); + + CCTK_REAL_VEC gamma121 = + kmul(kmadd(gInv12,JacPDstandard4th1gyy,kmadd(gInv11,JacPDstandard4th2gxx,kmul(gInv13,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma221 = + kmul(kmadd(gInv22,JacPDstandard4th1gyy,kmadd(gInv21,JacPDstandard4th2gxx,kmul(gInv23,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma321 = + kmul(kmadd(gInv32,JacPDstandard4th1gyy,kmadd(gInv31,JacPDstandard4th2gxx,kmul(gInv33,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma131 = + kmul(kmadd(gInv13,JacPDstandard4th1gzz,kmadd(gInv11,JacPDstandard4th3gxx,kmul(gInv12,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma231 = + kmul(kmadd(gInv23,JacPDstandard4th1gzz,kmadd(gInv21,JacPDstandard4th3gxx,kmul(gInv22,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma331 = + kmul(kmadd(gInv33,JacPDstandard4th1gzz,kmadd(gInv31,JacPDstandard4th3gxx,kmul(gInv32,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma122 = + kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard4th2gyy,kmadd(gInv11,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv13,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + + CCTK_REAL_VEC gamma222 = + kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard4th2gyy,kmadd(gInv21,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv23,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + + CCTK_REAL_VEC gamma322 = + kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard4th2gyy,kmadd(gInv31,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv33,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + + CCTK_REAL_VEC gamma132 = + kmul(kmadd(gInv13,JacPDstandard4th2gzz,kmadd(gInv12,JacPDstandard4th3gyy,kmul(gInv11,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma232 = + kmul(kmadd(gInv23,JacPDstandard4th2gzz,kmadd(gInv22,JacPDstandard4th3gyy,kmul(gInv21,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma332 = + kmul(kmadd(gInv33,JacPDstandard4th2gzz,kmadd(gInv32,JacPDstandard4th3gyy,kmul(gInv31,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma133 = + kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard4th3gzz,kmadd(gInv11,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv12,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + + CCTK_REAL_VEC gamma233 = + kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard4th3gzz,kmadd(gInv21,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv22,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + + CCTK_REAL_VEC gamma333 = + kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard4th3gzz,kmadd(gInv31,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv32,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + + CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); + + CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); + + CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); + + CCTK_REAL_VEC va1 = kneg(ymoved); + + CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC va3 = ToReal(0); + + CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC vb2 = ymoved; + + CCTK_REAL_VEC vb3 = zmoved; + + CCTK_REAL_VEC vc1 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); + + CCTK_REAL_VEC vc2 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); + + CCTK_REAL_VEC vc3 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); + + CCTK_REAL_VEC wa1 = va1; + + CCTK_REAL_VEC wa2 = va2; + + CCTK_REAL_VEC wa3 = va3; + + CCTK_REAL_VEC omega11 = + kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); + + CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); + + CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); + + CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); + + CCTK_REAL_VEC omega12 = + kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); + + CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); + + CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); + + CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); + + CCTK_REAL_VEC omega22 = + kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); + + CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); + + CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); + + CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); + + CCTK_REAL_VEC omega13 = + kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC omega23 = + kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); + + CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); + + CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); + + CCTK_REAL_VEC omega33 = + kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); + + CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); + + CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); + + CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); + + CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); + + CCTK_REAL_VEC ltet1 = kmul(eb1,isqrt2); + + CCTK_REAL_VEC ltet2 = kmul(eb2,isqrt2); + + CCTK_REAL_VEC ltet3 = kmul(eb3,isqrt2); + + CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); + + CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); + + CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); + + CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); + + CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); + + CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); + + CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); + + CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); + + CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); + + CCTK_REAL_VEC nn = isqrt2; + + CCTK_REAL_VEC R1212 = + kmul(ToReal(0.5),kadd(JacPDstandard4th12gxy,kadd(JacPDstandard4th21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard4th22gxx),JacPDstandard4th11gyy))))); + + CCTK_REAL_VEC R1213 = + kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard4th12gxz,kadd(JacPDstandard4th31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard4th23gxx),JacPDstandard4th11gyz)))))); + + CCTK_REAL_VEC R1223 = + kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard4th22gxz,kadd(JacPDstandard4th31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard4th23gxy),JacPDstandard4th12gyz)))))); + + CCTK_REAL_VEC R1313 = + kmul(ToReal(0.5),kadd(JacPDstandard4th13gxz,kadd(JacPDstandard4th31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard4th33gxx),JacPDstandard4th11gzz))))); + + CCTK_REAL_VEC R1323 = + kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard4th23gxz,kadd(JacPDstandard4th31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard4th33gxy),JacPDstandard4th12gzz)))))); + + CCTK_REAL_VEC R2323 = + kmul(ToReal(0.5),kadd(JacPDstandard4th23gyz,kadd(JacPDstandard4th32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard4th33gyy),JacPDstandard4th22gzz))))); + + CCTK_REAL_VEC R4p1212 = + kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); + + CCTK_REAL_VEC R4p1213 = + kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); + + CCTK_REAL_VEC R4p1223 = + kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); + + CCTK_REAL_VEC R4p1313 = + kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); + + CCTK_REAL_VEC R4p1323 = + kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); + + CCTK_REAL_VEC R4p2323 = + kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); + + CCTK_REAL_VEC Ro111 = ToReal(0); + + CCTK_REAL_VEC Ro112 = + kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard4th1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard4th2kxx)))))); + + CCTK_REAL_VEC Ro113 = + kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard4th1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard4th3kxx)))))); + + CCTK_REAL_VEC Ro121 = + kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard4th2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard4th1kxy)))))); + + CCTK_REAL_VEC Ro122 = ToReal(0); + + CCTK_REAL_VEC Ro123 = + kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard4th2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard4th3kxy)))))); + + CCTK_REAL_VEC Ro131 = + kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard4th3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard4th1kxz)))))); + + CCTK_REAL_VEC Ro132 = + kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard4th2kxz)))))); + + CCTK_REAL_VEC Ro133 = ToReal(0); + + CCTK_REAL_VEC Ro211 = ToReal(0); + + CCTK_REAL_VEC Ro212 = + kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard4th1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard4th2kxy)))))); + + CCTK_REAL_VEC Ro213 = + kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard4th1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard4th3kxy)))))); + + CCTK_REAL_VEC Ro221 = + kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard4th2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard4th1kyy)))))); + + CCTK_REAL_VEC Ro222 = ToReal(0); + + CCTK_REAL_VEC Ro223 = + kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard4th2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard4th3kyy)))))); + + CCTK_REAL_VEC Ro231 = + kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard4th1kyz)))))); + + CCTK_REAL_VEC Ro232 = + kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard4th3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard4th2kyz)))))); + + CCTK_REAL_VEC Ro233 = ToReal(0); + + CCTK_REAL_VEC Ro311 = ToReal(0); + + CCTK_REAL_VEC Ro312 = + kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard4th1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard4th2kxz)))))); + + CCTK_REAL_VEC Ro313 = + kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard4th1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard4th3kxz)))))); + + CCTK_REAL_VEC Ro321 = + kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard4th2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard4th1kyz)))))); + + CCTK_REAL_VEC Ro322 = ToReal(0); + + CCTK_REAL_VEC Ro323 = + kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard4th2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard4th3kyz)))))); + + CCTK_REAL_VEC Ro331 = + kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard4th3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard4th1kzz)))))); + + CCTK_REAL_VEC Ro332 = + kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard4th3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard4th2kzz)))))); + + CCTK_REAL_VEC Ro333 = ToReal(0); + + CCTK_REAL_VEC Rojo11 = + kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); + + CCTK_REAL_VEC Rojo12 = + kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo13 = + kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); + + CCTK_REAL_VEC Rojo21 = + kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo22 = + kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Rojo23 = + kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo31 = + kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); + + CCTK_REAL_VEC Rojo32 = + kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo33 = + kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Psi4rL = + kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi4iL = + knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); + + CCTK_REAL_VEC Psi3rL = + kmadd(ltet2,kmul(R4p1212,kmul(rm2,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1213,kmul(rm2,kmul(n1,n1))),kmadd(ltet2,kmul(R4p1213,kmul(rm3,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1313,kmul(rm3,kmul(n1,n1))),kmadd(ltet1,kmul(R4p1212,kmul(rm1,kmul(n2,n2))),kmadd(ltet3,kmul(R4p2323,kmul(rm3,kmul(n2,n2))),kmadd(ltet1,kmul(R4p1313,kmul(rm1,kmul(n3,n3))),kmadd(ltet2,kmul(R4p1323,kmul(rm1,kmul(n3,n3))),kmadd(ltet1,kmul(R4p1323,kmul(rm2,kmul(n3,n3))),kmadd(ltet2,kmul(R4p2323,kmul(rm2,kmul(n3,n3))),kmadd(n1,kmul(nn,kmul(rm2,kmul(Ro221,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n2,kmul(nn,kmul(rm2,kmul(Ro222,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n3,kmul(nn,kmul(rm2,kmul(Ro223,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n1,kmul(nn,kmul(rm3,kmul(Ro331,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n2,kmul(nn,kmul(rm3,kmul(Ro332,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,kmadd(ltet3,ToReal(-2),n3)))),kmadd(rm1,kmul(Rojo11,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm2,kmul(Rojo12,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm3,kmul(Rojo13,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm1,kmul(Rojo21,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm3,kmul(Rojo23,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm1,kmul(Rojo31,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm2,kmul(Rojo32,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm3,kmul(Rojo33,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(n2,kmul(nn,kmul(Ro212,kmsub(rm1,ksub(n2,ltet2),kmul(ltet1,rm2)))),kmadd(n2,kmul(nn,kmul(Ro232,kmsub(rm3,ksub(n2,ltet2),kmul(ltet3,rm2)))),kmadd(n3,kmul(nn,kmul(Ro313,kmsub(rm1,ksub(n3,ltet3),kmul(ltet1,rm3)))),kmadd(n3,kmul(nn,kmul(Ro323,kmsub(rm2,ksub(n3,ltet3),kmul(ltet2,rm3)))),kmadd(ltet3,kmsub(n2,kmul(rm2,kmsub(n1,R4p1223,kmul(n3,R4p2323))),kmul(R4p1223,kmul(rm1,kmul(n2,n2)))),kmadd(ltet1,kmsub(n3,kmsub(n2,kmul(R4p1223,rm2),kmul(n1,kmul(R4p1313,rm3))),kmul(R4p1223,kmul(rm3,kmul(n2,n2)))),kmadd(n3,kmsub(rm1,kmsub(ltet2,kmul(n2,R4p1223),kmul(ltet3,kmul(n1,R4p1313))),kmadd(ltet1,kmadd(n2,kmul(R4p1323,rm3),kmul(n1,kmul(R4p1213,rm2))),kmul(nn,kmul(Ro123,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n1,kmsub(ltet2,kmul(n3,kmul(R4p1223,kmul(rm2,ToReal(-2)))),kmadd(ltet1,kmul(n2,kmul(R4p1213,rm3)),kmul(nn,kmul(Ro211,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2))))))),kmadd(nn,kmsub(n1,kmul(rm1,kmul(Ro111,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro213,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n2,kmul(rm1,kmul(Ro112,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro233,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n3,kmul(rm1,kmul(Ro113,kmadd(ltet1,ToReal(-2),n1))),kmul(n1,kmul(Ro311,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(nn,kmsub(n1,kmul(Ro121,kmsub(rm2,ksub(n1,ltet1),kmul(ltet2,rm1))),kmul(n2,kmul(Ro312,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(n1,kmul(nn,kmsub(Ro131,kmsub(rm3,ksub(n1,ltet1),kmul(ltet3,rm1)),kmul(Ro321,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3)))))),knmsub(n1,kmadd(ltet2,kmul(n3,kmul(R4p1323,rm3)),kmadd(n2,kmadd(rm1,kmadd(ltet3,R4p1213,kmul(ltet2,R4p1212)),kmul(ltet1,kmul(R4p1212,rm2))),kmul(nn,kmul(Ro231,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2))))))),kmadd(n2,kmsub(ltet2,kmul(n1,kmul(R4p1223,rm3)),kmul(nn,kmadd(Ro322,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3))),kmul(Ro122,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n2,kmsub(ltet3,kmul(n1,kmul(R4p1323,kmul(rm3,ToReal(2)))),kmul(nn,kmul(Ro132,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))),kmul(n3,knmsub(ltet2,kmul(n2,kmul(R4p2323,rm3)),knmsub(ltet3,kmul(R4p1323,kmadd(n1,rm2,kmul(n2,rm1))),kmsub(R4p1213,kmul(rm1,kmsub(ltet1,kmul(n2,ToReal(2)),kmul(ltet2,n1))),kmul(nn,kmul(Ro133,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))))))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi3iL = + kmadd(im2,kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),knmsub(ltet2,kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(n1,kmul(kmadd(n3,R4p1223,kmul(nn,Ro221)),ToReal(-2)),kmadd(n3,kmul(nn,kmul(Ro223,ToReal(-2))),kmul(nn,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(-2))))))))),kmadd(nn,kmsub(ltet3,kmul(n3,Ro233),kmul(Ro121,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro321),kmul(Ro222,kmul(n2,n2))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro322),kmul(Ro323,kmul(n3,n3))),kmadd(ltet3,kmsub(n3,kmul(nn,Ro323),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet3,kmadd(n2,kmul(n3,R4p2323),kmadd(n1,kmul(nn,Ro231),kmsub(n1,kmsub(n3,R4p1323,kmul(n2,R4p1223)),kmul(R4p1213,kmul(n1,n1))))),kmadd(ltet1,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo12,kmul(nn,nn)))))))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro232,kmul(n3,kadd(Ro322,Ro223)))),kmul(n1,kmul(nn,kmadd(n3,kadd(Ro321,Ro123),kmul(n2,kadd(Ro221,Ro122)))))))))))))))),kmadd(im1,kmadd(ltet3,kmul(R4p1223,kmul(n2,n2)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(n3,kmul(nn,kmsub(ltet3,Ro133,kmul(n1,Ro311))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro311),kmul(Ro111,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro312),kmul(Ro212,kmul(n2,n2))),kmadd(nn,kmul(Ro313,kmsub(ltet3,n3,kmul(n3,n3))),kmadd(ltet3,kmadd(n1,kmul(n2,R4p1213),kmadd(n1,kmul(n3,R4p1313),kmadd(n2,kmul(n3,R4p1323),kmsub(n1,kmul(nn,Ro131),kmul(Rojo31,kmul(nn,nn)))))),kmadd(ltet2,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo21,kmul(nn,nn)))))))),knmsub(n1,kmul(nn,kmadd(n2,kadd(Ro211,Ro112),kmul(n3,Ro113))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro132,kmul(n3,kadd(Ro312,Ro213)))),kmul(ltet1,kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(Rojo11,kmul(nn,nn),kmadd(n1,kmul(nn,kmul(Ro111,ToReal(-2))),kmadd(n2,kmul(nn,kmul(Ro112,ToReal(-2))),kmadd(n3,kmul(nn,kmul(Ro113,ToReal(-2))),kmul(n2,kmul(n3,kmul(R4p1213,ToReal(2))))))))))))))))))))))),kmul(im3,kmadd(n1,kmul(Rojo13,kmul(nn,nn)),kmadd(n2,kmul(Rojo23,kmul(nn,nn)),kmadd(n3,kmul(Rojo33,kmul(nn,nn)),knmsub(n3,kmul(nn,kmadd(n2,kadd(Ro332,Ro233),kmul(n1,Ro331))),kmadd(ltet1,kmadd(n1,kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,kadd(Ro131,Ro311)))),kmadd(n2,kmadd(n3,R4p1323,kmul(nn,kadd(Ro132,Ro312))),kmadd(R4p1223,kmul(n2,n2),kmul(nn,kmsub(n3,kadd(Ro133,Ro313),kmul(nn,Rojo13)))))),kmadd(ltet2,kmadd(n2,kmadd(n3,R4p2323,kmul(nn,kadd(Ro232,Ro322))),knmsub(R4p1213,kmul(n1,n1),kmadd(n1,kmadd(n3,R4p1323,kmsub(nn,kadd(Ro231,Ro321),kmul(n2,R4p1223))),kmul(nn,kmsub(n3,kadd(Ro233,Ro323),kmul(nn,Rojo23)))))),kmadd(ltet3,knmsub(R4p1313,kmul(n1,n1),knmsub(R4p2323,kmul(n2,n2),kmsub(n2,kmul(nn,kmul(Ro332,ToReal(2))),kmul(Rojo33,kmul(nn,nn))))),kmadd(nn,knmsub(Ro131,kmul(n1,n1),kmsub(Ro333,kmsub(ltet3,kmul(n3,ToReal(2)),kmul(n3,n3)),kmul(Ro232,kmul(n2,n2)))),kmul(n1,kmadd(n2,kmsub(ltet3,kmul(R4p1323,ToReal(-2)),kmul(nn,kadd(Ro231,Ro132))),kmul(nn,kmsub(ltet3,kmul(Ro331,ToReal(2)),kmul(n3,Ro133)))))))))))))))); + + CCTK_REAL_VEC Psi2rL = + kmadd(ltet1,kmul(n3,kmul(R4p1223,kmadd(im2,im2,kmul(rm2,rm2)))),kmadd(nn,kmul(kmadd(im1,im2,kmul(rm1,rm2)),kmul(Ro211,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro311,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro322,ksub(n2,ltet2))),kmadd(nn,kmul(Ro222,kmul(kmadd(im2,im2,kmul(rm2,rm2)),ksub(n2,ltet2))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro133,ksub(n3,ltet3))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro233,ksub(n3,ltet3))),kmadd(nn,kmul(Ro112,kmsub(n2,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro221,kmsub(n1,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro113,kmsub(n3,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro331,kmsub(n1,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro223,kmsub(n3,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro332,kmsub(n2,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(ltet3,kmul(n3,kmul(R4p1323,ToReal(-2))),kmul(Rojo12,kmul(nn,nn))),kmadd(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n1,R4p1213),kmul(Rojo13,kmul(nn,nn))),kmadd(kmadd(im2,im2,kmul(rm2,rm2)),kmsub(ltet3,kmul(n1,R4p1223),kmul(Rojo22,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet1,kmul(n1,kmul(R4p1213,ToReal(-2))),kmul(Rojo23,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet3,kmul(n1,R4p1323),kmul(Rojo32,kmul(nn,nn))),kmadd(nn,kmul(Ro121,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet2,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro131,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(ltet3,kmul(R4p1313,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(n3,kmsub(ltet1,kmul(R4p1313,kmadd(im1,im3,kmul(rm1,rm3))),kmul(ltet2,kmul(R4p1213,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro212,kmsub(n2,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet1,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro232,kmsub(n2,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet3,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet1,kmsub(n3,kmul(R4p1323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(n1,kmul(R4p1212,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet3,kmsub(n2,kmul(R4p1323,kmadd(im1,im3,kmul(rm1,rm3))),kmul(n3,kmul(R4p2323,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro313,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(nn,kmul(Ro323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p1323,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p2323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(n2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(n2,kmsub(ltet3,kmul(R4p2323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(ltet1,kmul(R4p1323,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(kmadd(im1,im1,kmul(rm1,rm1)),kmsub(nn,kmul(Ro111,ksub(n1,ltet1)),kmul(Rojo11,kmul(nn,nn))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(nn,kmul(Ro122,ksub(n2,ltet2)),kmul(Rojo21,kmul(nn,nn))),kmadd(kmadd(im3,im3,kmul(rm3,rm3)),kmsub(nn,kmul(Ro333,ksub(n3,ltet3)),kmul(Rojo33,kmul(nn,nn))),knmsub(R4p1223,kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmadd(ltet2,n3,kmul(ltet3,n2)),kmul(ltet2,kmul(n1,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro321,kmadd(im3,kmsub(im2,n1,kmul(im1,ltet2)),kmul(rm3,kmsub(n1,rm2,kmul(ltet2,rm1))))),kmadd(nn,kmul(Ro231,kmadd(im2,kmsub(im3,n1,kmul(im1,ltet3)),kmul(rm2,kmsub(n1,rm3,kmul(ltet3,rm1))))),kmadd(nn,kmul(Ro312,kmadd(im3,kmsub(im1,n2,kmul(im2,ltet1)),kmul(rm3,kmsub(n2,rm1,kmul(ltet1,rm2))))),kmadd(nn,kmul(Ro132,kmadd(im1,kmsub(im3,n2,kmul(im2,ltet3)),kmul(rm1,kmsub(n2,rm3,kmul(ltet3,rm2))))),kmadd(nn,kmul(Ro213,kmadd(im2,kmsub(im1,n3,kmul(im3,ltet1)),kmul(rm2,kmsub(n3,rm1,kmul(ltet1,rm3))))),kmadd(nn,kmul(Ro123,kmadd(im1,kmsub(im2,n3,kmul(im3,ltet2)),kmul(rm1,kmsub(n3,rm2,kmul(ltet2,rm3))))),kmadd(ltet1,kmsub(n2,kmsub(R4p1213,kmadd(im1,im3,kmul(rm1,rm3)),kmul(R4p1223,kmadd(im2,im3,kmul(rm2,rm3)))),kmul(n1,kmul(R4p1313,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(R4p1212,kmadd(ltet1,kmul(n2,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet2,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmadd(R4p1213,kmadd(ltet1,kmul(n3,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet3,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n2,kmul(R4p1223,ToReal(2))),kmul(Rojo31,kmul(nn,nn)))))))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi2iL = + kmadd(im3,kmadd(n2,kmul(nn,kmul(rm1,Ro312)),kmadd(n3,kmul(nn,kmul(rm1,Ro313)),kmadd(n2,kmul(nn,kmul(rm2,Ro322)),kmadd(n3,kmul(nn,kmul(rm2,Ro323)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro331)),kmadd(ltet3,kmul(nn,kmul(rm2,Ro332)),kmadd(rm1,kmul(Rojo13,kmul(nn,nn)),kmadd(rm2,kmul(Rojo23,kmul(nn,nn)),kmadd(rm1,kmsub(n1,kmul(nn,Ro311),kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(nn,Ro321),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet1,kmadd(n3,kmul(R4p1313,rm1),kmadd(n3,kmul(R4p1323,rm2),kmadd(nn,kmul(rm1,Ro311),kmadd(nn,kmul(rm2,Ro312),kmadd(rm1,kmsub(n2,R4p1213,kmul(nn,Ro113)),kmul(rm2,kmsub(n2,R4p1223,kmul(nn,Ro213)))))))),kmsub(ltet2,kmadd(nn,kmul(rm1,Ro321),kmadd(nn,kmul(rm2,Ro322),knmsub(n1,kmadd(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(rm1,kmsub(n3,R4p1323,kmul(nn,Ro123)),kmul(rm2,kmsub(n3,R4p2323,kmul(nn,Ro223))))))),kmadd(ltet3,kmadd(rm2,kmadd(n1,R4p1323,kmadd(nn,Ro233,kmul(n2,R4p2323))),kmul(rm1,kmadd(n1,R4p1313,kmadd(nn,Ro133,kmul(n2,R4p1323))))),kmul(nn,kmadd(rm2,kmadd(n1,Ro231,kmadd(n3,Ro233,kmul(n2,Ro232))),kmul(rm1,kmadd(n1,Ro131,kmadd(n3,Ro133,kmul(n2,Ro132))))))))))))))))))),kmadd(im2,kmadd(n3,kmul(nn,kmul(rm1,Ro213)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro231)),kmadd(n2,kmul(nn,kmul(rm3,Ro232)),kmadd(ltet3,kmul(nn,kmul(rm3,Ro233)),kmadd(n3,kmul(nn,kmul(rm3,Ro233)),kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(rm1,kmsub(n2,kmul(nn,Ro212),kmul(Rojo21,kmul(nn,nn))),kmadd(rm3,kmsub(n1,kmul(nn,Ro231),kmul(Rojo23,kmul(nn,nn))),kmadd(nn,kmsub(rm1,kmsub(n1,Ro211,kmul(n3,Ro123)),kmul(n3,kmul(rm3,Ro323))),knmsub(ltet3,kmadd(rm1,kmadd(n1,R4p1213,kmadd(nn,Ro132,kmul(n2,R4p1223))),kmul(nn,kmul(rm3,Ro332))),kmadd(n1,kmsub(rm3,kmsub(ltet3,R4p1323,kmul(nn,Ro321)),kmul(nn,kmul(rm1,Ro121))),kmadd(n2,kmsub(rm3,kmsub(ltet3,R4p2323,kmul(nn,Ro322)),kmul(nn,kmul(rm1,Ro122))),kmadd(ltet2,kmadd(nn,kmul(rm1,Ro221),kmadd(nn,kmul(rm3,Ro223),kmadd(rm1,kmsub(n3,R4p1223,kmadd(nn,Ro122,kmul(n1,R4p1212))),kmul(rm3,kmsub(n1,R4p1223,kmadd(nn,Ro322,kmul(n3,R4p2323))))))),kmul(ltet1,kmadd(nn,kmul(rm3,Ro213),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1323,rm3)),kmul(nn,kmsub(rm1,ksub(Ro211,Ro112),kmul(rm3,Ro312))))))))))))))))))))),kmul(im1,kmadd(rm2,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo31,kmul(nn,nn)),knmsub(kmul(nn,nn),kmadd(rm3,Rojo13,kmul(rm2,Rojo12)),knmsub(ltet1,kmadd(n3,kmul(R4p1213,rm2),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm2,Ro211),kmadd(nn,kmul(rm3,Ro311),kmadd(rm2,kmsub(n2,R4p1212,kmul(nn,Ro112)),kmul(rm3,kmsub(n2,R4p1213,kmul(nn,Ro113)))))))),kmadd(nn,kmadd(n1,kmul(rm2,ksub(Ro121,Ro211)),kmadd(n2,kmul(rm2,ksub(Ro122,Ro212)),kmadd(n3,kmul(rm2,ksub(Ro123,Ro213)),kmadd(n1,kmul(rm3,ksub(Ro131,Ro311)),kmadd(n2,kmul(rm3,ksub(Ro132,Ro312)),kmul(n3,kmul(rm3,ksub(Ro133,Ro313)))))))),kmadd(ltet3,kmadd(n2,kmul(R4p1223,rm2),kmadd(n2,kmul(R4p1323,rm3),kmadd(nn,kmul(rm2,Ro132),kmadd(nn,kmul(rm3,Ro133),kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro231)),kmul(rm3,kmsub(n1,R4p1313,kmul(nn,Ro331)))))))),kmul(ltet2,kmadd(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmsub(nn,kmadd(rm2,ksub(Ro122,Ro221),kmul(rm3,ksub(Ro123,Ro321))),kmul(n3,kmadd(R4p1223,rm2,kmul(R4p1323,rm3))))))))))))))); + + CCTK_REAL_VEC Psi1rL = + kmadd(kmadd(n2,kmul(R4p1212,rm2),kmadd(n3,kmul(R4p1213,rm2),kmadd(n2,kmul(R4p1213,rm3),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm1,Ro111),kmadd(nn,kmul(rm2,Ro121),kmul(nn,kmul(rm3,Ro131)))))))),kmul(ltet1,ltet1),kmadd(n1,kmul(R4p1313,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p1323,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p2323,kmul(rm2,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm1,kmul(Ro313,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm2,kmul(Ro323,kmul(ltet3,ltet3))),kmadd(n1,kmul(rm1,kmul(Rojo11,kmul(nn,nn))),kmadd(n1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(n1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(n2,kmul(rm1,kmul(Rojo21,kmul(nn,nn))),kmadd(n2,kmul(rm2,kmul(Rojo22,kmul(nn,nn))),kmadd(n2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(n3,kmul(rm1,kmul(Rojo31,kmul(nn,nn))),kmadd(n3,kmul(rm2,kmul(Rojo32,kmul(nn,nn))),kmadd(n3,kmul(rm3,kmul(Rojo33,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo32,kmul(nn,nn)))),kmadd(rm3,kmsub(nn,kmul(Ro333,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo33,kmul(nn,nn)))),kmadd(kmul(ltet2,ltet2),kmadd(nn,kmul(rm1,Ro212),kmadd(nn,kmul(rm2,Ro222),kmadd(nn,kmul(rm3,Ro232),kmadd(rm3,kmsub(n3,R4p2323,kmul(n1,R4p1223)),kmul(rm1,kmsub(n1,R4p1212,kmul(n3,R4p1223))))))),kmsub(ltet3,kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,ToReal(-2)))),knmsub(rm1,kmul(Rojo31,kmul(nn,nn)),kmadd(n2,kmul(nn,kmsub(rm2,kmul(Ro223,ToReal(-2)),kmul(rm3,kadd(Ro323,Ro233)))),kmul(nn,knmsub(n3,kmul(rm2,kadd(Ro323,Ro233)),kmsub(rm1,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(n1,kmadd(rm3,kadd(Ro313,Ro133),kmul(rm2,kadd(Ro213,Ro123)))))))))),kmadd(ltet2,kmadd(ltet1,kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(rm3,kmsub(n1,R4p1213,kmul(nn,Ro132)),knmsub(nn,kmul(rm1,kadd(Ro211,Ro112)),kmadd(rm3,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmul(nn,Ro231)),kmul(rm2,kmsub(n1,R4p1212,kmul(nn,kadd(Ro221,Ro122))))))))),kmsub(nn,kmadd(n3,kmul(rm1,Ro132),kmadd(n3,kmul(rm2,Ro232),kmadd(n3,kmul(rm1,Ro312),kmadd(n3,kmul(rm2,Ro322),kmadd(nn,kmul(rm1,Rojo21),kmadd(nn,kmul(rm2,Rojo22),kmadd(nn,kmul(rm3,Rojo23),kmadd(n3,kmul(rm3,kmul(Ro332,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro132,Ro312),kmul(rm1,kmul(Ro112,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro232,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))))),kmul(ltet3,kmadd(nn,kmul(rm1,Ro213),kmadd(nn,kmul(rm2,Ro223),kmadd(nn,kmul(rm3,Ro233),kmadd(nn,kmul(rm1,Ro312),kmadd(nn,kmul(rm2,Ro322),kmadd(nn,kmul(rm3,Ro332),kmadd(rm1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmsub(n1,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(R4p2323,kmadd(n2,rm3,kmul(n3,rm2)))))))))))))),kmul(ltet1,kmadd(ltet3,kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro123)),kmadd(rm2,kmsub(n3,R4p1323,kmul(nn,Ro321)),kmadd(rm1,kmsub(n3,R4p1313,kmul(nn,kadd(Ro311,Ro113))),kmadd(rm3,kmsub(n1,R4p1313,kmul(nn,kadd(Ro331,Ro133))),kmul(n2,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))))),kmul(nn,kmadd(n3,kmul(rm1,Ro131),kmadd(n3,kmul(rm2,Ro231),kmadd(n3,kmul(rm1,Ro311),kmadd(n3,kmul(rm2,Ro321),kmadd(nn,kmul(rm1,Rojo11),kmadd(nn,kmul(rm2,Rojo12),kmadd(nn,kmul(rm3,Rojo13),kmadd(n3,kmul(rm3,kmul(Ro331,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro131,Ro311),kmul(rm1,kmul(Ro111,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro231,Ro321),kmul(rm2,kmul(Ro221,ToReal(2)))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi1iL = + kmadd(im1,kmadd(nn,kmul(Ro111,kmul(ltet1,ltet1)),kmadd(n1,kmul(R4p1313,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro313,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(kmul(ltet2,ltet2),kmadd(n1,R4p1212,kmsub(nn,Ro212,kmul(n3,R4p1223))),kmsub(ltet3,kmsub(nn,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(Rojo31,kmul(nn,nn))),kmadd(ltet2,kmadd(ltet1,kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211)))),kmsub(nn,kmadd(n3,Ro132,kmadd(n2,kadd(Ro122,Ro212),kmadd(n3,Ro312,kmadd(nn,Rojo21,kmul(n1,kmul(Ro112,ToReal(2))))))),kmul(ltet3,kmadd(n2,R4p1223,kmadd(nn,Ro213,kmadd(nn,Ro312,kmsub(n1,kmul(R4p1213,ToReal(2)),kmul(n3,R4p1323)))))))),kmul(ltet1,kmadd(ltet3,kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),kmul(nn,kmadd(n3,Ro131,kmadd(n2,kadd(Ro121,Ro211),kmadd(n3,Ro311,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2)))))))))))))))))))),kmadd(im2,kmadd(kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,Ro121))),kmul(ltet1,ltet1),kmadd(nn,kmul(Ro222,kmul(ltet2,ltet2)),kmadd(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p2323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro323,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),kmadd(ltet3,kmul(nn,kmsub(n2,kmul(Ro223,ToReal(-2)),kmul(n3,Ro323))),knmsub(ltet3,kmadd(nn,kmadd(n1,kadd(Ro213,Ro123),kmul(n3,Ro233)),kmul(Rojo32,kmul(nn,nn))),kmsub(ltet2,kmsub(ltet3,kmadd(n1,R4p1223,kmsub(nn,kadd(Ro223,Ro322),kmul(n3,R4p2323))),kmul(nn,kmadd(n1,kadd(Ro122,Ro212),kmadd(n3,Ro232,kmadd(n3,Ro322,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(2))))))))),kmul(ltet1,kmadd(ltet2,kmsub(n1,R4p1212,kmadd(nn,kadd(Ro122,Ro221),kmul(n3,R4p1223))),kmadd(ltet3,kmadd(n1,R4p1213,kmadd(n3,R4p1323,kmsub(n2,kmul(R4p1223,ToReal(2)),kmul(nn,kadd(Ro321,Ro123))))),kmul(nn,kmadd(n1,kadd(Ro121,Ro211),kmadd(n3,Ro231,kmadd(n3,Ro321,kmadd(nn,Rojo12,kmul(n2,kmul(Ro221,ToReal(2)))))))))))))))))))))),kmul(im3,kmadd(kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,Ro131))),kmul(ltet1,ltet1),kmsub(kmul(ltet2,ltet2),kmadd(n3,R4p2323,kmsub(nn,Ro232,kmul(n1,R4p1223))),kmadd(ltet1,kmadd(ltet3,kmadd(n1,R4p1313,kmsub(n2,R4p1323,kmul(nn,kadd(Ro133,Ro331)))),kmadd(ltet2,kmadd(n1,R4p1213,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmadd(nn,kadd(Ro231,Ro132),kmul(n2,R4p1223)))),kmul(nn,kmadd(n1,kadd(Ro131,Ro311),kmadd(n2,kadd(Ro231,Ro321),kmadd(nn,Rojo13,kmul(n3,kmul(Ro331,ToReal(2))))))))),kmadd(nn,knmsub(nn,kmadd(n1,Rojo13,kmadd(n2,Rojo23,kmul(n3,Rojo33))),kmsub(ltet3,kmadd(n1,kadd(Ro133,Ro313),kmadd(n2,kadd(Ro233,Ro323),kmadd(nn,Rojo33,kmul(n3,kmul(Ro333,ToReal(2)))))),kmul(Ro333,kmul(ltet3,ltet3)))),kmul(ltet2,kmadd(ltet3,kmadd(n1,R4p1323,kmsub(n2,R4p2323,kmul(nn,kadd(Ro233,Ro332)))),kmul(nn,kmadd(n1,kadd(Ro132,Ro312),kmadd(n2,kadd(Ro232,Ro322),kmadd(nn,Rojo23,kmul(n3,kmul(Ro332,ToReal(2)))))))))))))))); + + CCTK_REAL_VEC Psi0rL = + kmadd(rm1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(rm1,kmul(rm2,kmul(Rojo21,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(ltet2,ltet2),kmul(rm1,rm1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rm1,rm1)),kmadd(R4p1212,kmul(kmul(ltet1,ltet1),kmul(rm2,rm2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rm2,rm2)),kmadd(R4p1313,kmul(kmul(ltet1,ltet1),kmul(rm3,rm3)),kmadd(R4p2323,kmul(kmul(ltet2,ltet2),kmul(rm3,rm3)),kmadd(kmadd(ltet1,kmul(ltet2,kmul(R4p1212,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1213,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1313,kmul(rm1,rm3))),kmadd(ltet1,kmul(ltet3,kmul(R4p1323,kmul(rm2,rm3))),kmadd(ltet2,kmul(ltet3,kmul(R4p2323,kmul(rm2,rm3))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(im3,im3))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(im3,im3))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(im3,im3))),kmul(R4p1223,kmul(rm1,kmul(rm3,kmul(ltet2,ltet2)))))))))))),ToReal(-2),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,kmul(kmul(rm2,rm2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(ltet3,ltet3),kmul(rm1,rm1),kmul(kmul(im3,im3),kmul(ltet1,ltet1))),kmadd(R4p2323,kmsub(kmul(ltet3,ltet3),kmul(rm2,rm2),kmul(kmul(im3,im3),kmul(ltet2,ltet2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rm3,rm3),kmul(kmul(im3,im3),kmul(nn,nn))),kmadd(kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro112))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro113))),kmadd(ltet2,kmul(nn,kmul(rm1,kmul(rm3,Ro123))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro132))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro133))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro211))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro213))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro223))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro231))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro233))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro311))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro312))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro322))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro331))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro332))),kmadd(R4p1213,kmul(rm2,kmul(rm3,kmul(ltet1,ltet1))),kmul(R4p1323,kmul(rm1,kmul(rm2,kmul(ltet3,ltet3)))))))))))))))))))),ToReal(2),kmadd(ltet1,kmul(nn,kmul(Ro111,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro121,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro131,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro212,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro222,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro232,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(kmul(rm3,rm3),ToReal(2)))),knmsub(kmul(im2,im2),kmadd(R4p1212,kmul(ltet1,ltet1),kmadd(R4p2323,kmul(ltet3,ltet3),kmadd(Rojo22,kmul(nn,nn),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,ToReal(-2))),kmadd(ltet1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(ltet2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(ltet3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(ltet2,kmadd(ltet1,kmul(R4p1213,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(ltet3,kmul(R4p1323,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(im3,im3),ToReal(-2))),kmadd(ltet3,kmul(R4p1223,kmul(rm1,kmul(rm2,ToReal(2)))),kmadd(ltet1,kmul(R4p1223,kmul(rm2,kmul(rm3,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm3,kmul(Ro321,ToReal(2)))),kmul(ltet3,kmul(R4p1213,kmul(kmul(rm1,rm1),ToReal(2)))))))))))),knmsub(kmul(im1,im1),kmadd(R4p1212,kmul(ltet2,ltet2),kmadd(R4p1313,kmul(ltet3,ltet3),kmadd(ltet2,kmul(kmadd(ltet3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(ltet1,kmul(Ro111,ToReal(2))))))))),kmsub(im1,kmul(im3,kmadd(R4p1223,kmul(kmul(ltet2,ltet2),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1213,kmsub(ltet3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(ltet2,kmul(kmsub(ltet3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(ltet3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(im2,kmadd(im3,kmadd(R4p1213,kmul(kmul(ltet1,ltet1),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(ltet3,R4p1323))),ToReal(2)),kmadd(ltet2,kmadd(ltet3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(ltet3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(im1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(ltet1,kmul(ToReal(-2),kmadd(ltet2,R4p1212,kmsub(ltet3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(ltet3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(ltet2,kmul(kmadd(ltet3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(ltet3,ltet3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi0iL = + kmadd(im1,kmadd(nn,kmadd(ltet1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(ltet3,ltet3),kmadd(kmul(ltet2,ltet2),kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(ltet2,knmsub(ltet1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(ltet3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2)))))))),kmul(ltet3,kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(ltet1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3)))))))))),kmadd(im3,kmadd(kmul(ltet2,ltet2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(nn,kmadd(ltet3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(ltet1,ltet1),kmadd(ltet1,knmsub(ltet3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(ltet2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2)))))))),kmul(ltet2,kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(ltet3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2)))))))))),kmul(im2,kmadd(kmadd(rm1,kadd(Rojo12,Rojo21),kmul(rm3,kadd(Rojo23,Rojo32))),kmul(nn,nn),kmadd(ToReal(2),kmadd(ltet3,kmul(nn,kmadd(rm1,kadd(Ro132,Ro231),kmul(rm3,Ro233))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(ltet1,ltet1),kmadd(kmadd(R4p1323,rm1,kmul(R4p2323,rm2)),kmul(ltet3,ltet3),kmadd(rm2,kmul(Rojo22,kmul(nn,nn)),kmadd(ltet1,kmadd(ltet2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(ltet3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))),kmul(ltet2,kmadd(ltet3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))),kmul(ltet3,kmul(nn,kmadd(rm3,kmul(Ro332,ToReal(2)),kmul(rm2,kmul(Ro232,ToReal(4))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(Psi0i[index],Psi0iL); + vec_store_nta_partial(Psi0r[index],Psi0rL); + vec_store_nta_partial(Psi1i[index],Psi1iL); + vec_store_nta_partial(Psi1r[index],Psi1rL); + vec_store_nta_partial(Psi2i[index],Psi2iL); + vec_store_nta_partial(Psi2r[index],Psi2rL); + vec_store_nta_partial(Psi3i[index],Psi3iL); + vec_store_nta_partial(Psi3r[index],Psi3rL); + vec_store_nta_partial(Psi4i[index],Psi4iL); + vec_store_nta_partial(Psi4r[index],Psi4rL); + } + LC_ENDLOOP3VEC(WeylScal4_psis_calc_4th); +} + +extern "C" void WeylScal4_psis_calc_4th(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_psis_calc_4th_Body"); + } + + if (cctk_iteration % WeylScal4_psis_calc_4th_calc_every != WeylScal4_psis_calc_4th_calc_offset) + { + return; + } + + const char *const groups[] = { + "admbase::curv", + "admbase::metric", + "grid::coordinates", + "WeylScal4::Psi0i_group", + "WeylScal4::Psi0r_group", + "WeylScal4::Psi1i_group", + "WeylScal4::Psi1r_group", + "WeylScal4::Psi2i_group", + "WeylScal4::Psi2r_group", + "WeylScal4::Psi3i_group", + "WeylScal4::Psi3r_group", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_psis_calc_4th", 13, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_4th", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_4th", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_4th", 2, 2, 2); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_4th", 2, 2, 2); + break; + } + + GenericFD_LoopOverInterior(cctkGH, WeylScal4_psis_calc_4th_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_psis_calc_4th_Body"); + } +} diff --git a/src/WeylScal4_psis_calc_Nth.cc b/src/WeylScal4_psis_calc_Nth.cc new file mode 100644 index 0000000..99c4514 --- /dev/null +++ b/src/WeylScal4_psis_calc_Nth.cc @@ -0,0 +1,1426 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include +#include +#include +#include +#include +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) +#define ScalarSQR(x) ((x) * (x)) +#define ScalarCUB(x) ((x) * ScalarSQR(x)) +#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) +#define QAD(x) (SQR(SQR(x))) + +extern "C" void WeylScal4_psis_calc_Nth_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3r_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); + return; +} + +static void WeylScal4_psis_calc_Nth_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); + CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); + CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); + CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); + CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); + CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); + CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); + CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); + CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); + CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); + CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); + CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); + CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); + CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); + CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); + CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); + CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); + CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); + CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); + CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); + CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); + CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); + CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); + CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); + CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); + CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); + CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); + CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); + CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); + CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); + CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); + CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); + CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); + CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(WeylScal4_psis_calc_Nth, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_ash[0],cctk_ash[1],cctk_ash[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC gxxL = vec_load(gxx[index]); + CCTK_REAL_VEC gxyL = vec_load(gxy[index]); + CCTK_REAL_VEC gxzL = vec_load(gxz[index]); + CCTK_REAL_VEC gyyL = vec_load(gyy[index]); + CCTK_REAL_VEC gyzL = vec_load(gyz[index]); + CCTK_REAL_VEC gzzL = vec_load(gzz[index]); + CCTK_REAL_VEC kxxL = vec_load(kxx[index]); + CCTK_REAL_VEC kxyL = vec_load(kxy[index]); + CCTK_REAL_VEC kxzL = vec_load(kxz[index]); + CCTK_REAL_VEC kyyL = vec_load(kyy[index]); + CCTK_REAL_VEC kyzL = vec_load(kyz[index]); + CCTK_REAL_VEC kzzL = vec_load(kzz[index]); + CCTK_REAL_VEC xL = vec_load(x[index]); + CCTK_REAL_VEC yL = vec_load(y[index]); + CCTK_REAL_VEC zL = vec_load(z[index]); + + + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + + /* Include user supplied include files */ + + /* Precompute derivatives */ + CCTK_REAL_VEC PDstandard1gxx; + CCTK_REAL_VEC PDstandard2gxx; + CCTK_REAL_VEC PDstandard3gxx; + CCTK_REAL_VEC PDstandard11gxx; + CCTK_REAL_VEC PDstandard22gxx; + CCTK_REAL_VEC PDstandard33gxx; + CCTK_REAL_VEC PDstandard12gxx; + CCTK_REAL_VEC PDstandard13gxx; + CCTK_REAL_VEC PDstandard23gxx; + CCTK_REAL_VEC PDstandard1gxy; + CCTK_REAL_VEC PDstandard2gxy; + CCTK_REAL_VEC PDstandard3gxy; + CCTK_REAL_VEC PDstandard11gxy; + CCTK_REAL_VEC PDstandard22gxy; + CCTK_REAL_VEC PDstandard33gxy; + CCTK_REAL_VEC PDstandard12gxy; + CCTK_REAL_VEC PDstandard13gxy; + CCTK_REAL_VEC PDstandard23gxy; + CCTK_REAL_VEC PDstandard1gxz; + CCTK_REAL_VEC PDstandard2gxz; + CCTK_REAL_VEC PDstandard3gxz; + CCTK_REAL_VEC PDstandard11gxz; + CCTK_REAL_VEC PDstandard22gxz; + CCTK_REAL_VEC PDstandard33gxz; + CCTK_REAL_VEC PDstandard12gxz; + CCTK_REAL_VEC PDstandard13gxz; + CCTK_REAL_VEC PDstandard23gxz; + CCTK_REAL_VEC PDstandard1gyy; + CCTK_REAL_VEC PDstandard2gyy; + CCTK_REAL_VEC PDstandard3gyy; + CCTK_REAL_VEC PDstandard11gyy; + CCTK_REAL_VEC PDstandard22gyy; + CCTK_REAL_VEC PDstandard33gyy; + CCTK_REAL_VEC PDstandard12gyy; + CCTK_REAL_VEC PDstandard13gyy; + CCTK_REAL_VEC PDstandard23gyy; + CCTK_REAL_VEC PDstandard1gyz; + CCTK_REAL_VEC PDstandard2gyz; + CCTK_REAL_VEC PDstandard3gyz; + CCTK_REAL_VEC PDstandard11gyz; + CCTK_REAL_VEC PDstandard22gyz; + CCTK_REAL_VEC PDstandard33gyz; + CCTK_REAL_VEC PDstandard12gyz; + CCTK_REAL_VEC PDstandard13gyz; + CCTK_REAL_VEC PDstandard23gyz; + CCTK_REAL_VEC PDstandard1gzz; + CCTK_REAL_VEC PDstandard2gzz; + CCTK_REAL_VEC PDstandard3gzz; + CCTK_REAL_VEC PDstandard11gzz; + CCTK_REAL_VEC PDstandard22gzz; + CCTK_REAL_VEC PDstandard33gzz; + CCTK_REAL_VEC PDstandard12gzz; + CCTK_REAL_VEC PDstandard13gzz; + CCTK_REAL_VEC PDstandard23gzz; + CCTK_REAL_VEC PDstandard1kxx; + CCTK_REAL_VEC PDstandard2kxx; + CCTK_REAL_VEC PDstandard3kxx; + CCTK_REAL_VEC PDstandard1kxy; + CCTK_REAL_VEC PDstandard2kxy; + CCTK_REAL_VEC PDstandard3kxy; + CCTK_REAL_VEC PDstandard1kxz; + CCTK_REAL_VEC PDstandard2kxz; + CCTK_REAL_VEC PDstandard3kxz; + CCTK_REAL_VEC PDstandard1kyy; + CCTK_REAL_VEC PDstandard2kyy; + CCTK_REAL_VEC PDstandard3kyy; + CCTK_REAL_VEC PDstandard1kyz; + CCTK_REAL_VEC PDstandard2kyz; + CCTK_REAL_VEC PDstandard3kyz; + CCTK_REAL_VEC PDstandard1kzz; + CCTK_REAL_VEC PDstandard2kzz; + CCTK_REAL_VEC PDstandard3kzz; + + switch(fdOrder) + { + case 2: + PDstandard1gxx = PDstandardfdOrder21(&gxx[index]); + PDstandard2gxx = PDstandardfdOrder22(&gxx[index]); + PDstandard3gxx = PDstandardfdOrder23(&gxx[index]); + PDstandard11gxx = PDstandardfdOrder211(&gxx[index]); + PDstandard22gxx = PDstandardfdOrder222(&gxx[index]); + PDstandard33gxx = PDstandardfdOrder233(&gxx[index]); + PDstandard12gxx = PDstandardfdOrder212(&gxx[index]); + PDstandard13gxx = PDstandardfdOrder213(&gxx[index]); + PDstandard23gxx = PDstandardfdOrder223(&gxx[index]); + PDstandard1gxy = PDstandardfdOrder21(&gxy[index]); + PDstandard2gxy = PDstandardfdOrder22(&gxy[index]); + PDstandard3gxy = PDstandardfdOrder23(&gxy[index]); + PDstandard11gxy = PDstandardfdOrder211(&gxy[index]); + PDstandard22gxy = PDstandardfdOrder222(&gxy[index]); + PDstandard33gxy = PDstandardfdOrder233(&gxy[index]); + PDstandard12gxy = PDstandardfdOrder212(&gxy[index]); + PDstandard13gxy = PDstandardfdOrder213(&gxy[index]); + PDstandard23gxy = PDstandardfdOrder223(&gxy[index]); + PDstandard1gxz = PDstandardfdOrder21(&gxz[index]); + PDstandard2gxz = PDstandardfdOrder22(&gxz[index]); + PDstandard3gxz = PDstandardfdOrder23(&gxz[index]); + PDstandard11gxz = PDstandardfdOrder211(&gxz[index]); + PDstandard22gxz = PDstandardfdOrder222(&gxz[index]); + PDstandard33gxz = PDstandardfdOrder233(&gxz[index]); + PDstandard12gxz = PDstandardfdOrder212(&gxz[index]); + PDstandard13gxz = PDstandardfdOrder213(&gxz[index]); + PDstandard23gxz = PDstandardfdOrder223(&gxz[index]); + PDstandard1gyy = PDstandardfdOrder21(&gyy[index]); + PDstandard2gyy = PDstandardfdOrder22(&gyy[index]); + PDstandard3gyy = PDstandardfdOrder23(&gyy[index]); + PDstandard11gyy = PDstandardfdOrder211(&gyy[index]); + PDstandard22gyy = PDstandardfdOrder222(&gyy[index]); + PDstandard33gyy = PDstandardfdOrder233(&gyy[index]); + PDstandard12gyy = PDstandardfdOrder212(&gyy[index]); + PDstandard13gyy = PDstandardfdOrder213(&gyy[index]); + PDstandard23gyy = PDstandardfdOrder223(&gyy[index]); + PDstandard1gyz = PDstandardfdOrder21(&gyz[index]); + PDstandard2gyz = PDstandardfdOrder22(&gyz[index]); + PDstandard3gyz = PDstandardfdOrder23(&gyz[index]); + PDstandard11gyz = PDstandardfdOrder211(&gyz[index]); + PDstandard22gyz = PDstandardfdOrder222(&gyz[index]); + PDstandard33gyz = PDstandardfdOrder233(&gyz[index]); + PDstandard12gyz = PDstandardfdOrder212(&gyz[index]); + PDstandard13gyz = PDstandardfdOrder213(&gyz[index]); + PDstandard23gyz = PDstandardfdOrder223(&gyz[index]); + PDstandard1gzz = PDstandardfdOrder21(&gzz[index]); + PDstandard2gzz = PDstandardfdOrder22(&gzz[index]); + PDstandard3gzz = PDstandardfdOrder23(&gzz[index]); + PDstandard11gzz = PDstandardfdOrder211(&gzz[index]); + PDstandard22gzz = PDstandardfdOrder222(&gzz[index]); + PDstandard33gzz = PDstandardfdOrder233(&gzz[index]); + PDstandard12gzz = PDstandardfdOrder212(&gzz[index]); + PDstandard13gzz = PDstandardfdOrder213(&gzz[index]); + PDstandard23gzz = PDstandardfdOrder223(&gzz[index]); + PDstandard1kxx = PDstandardfdOrder21(&kxx[index]); + PDstandard2kxx = PDstandardfdOrder22(&kxx[index]); + PDstandard3kxx = PDstandardfdOrder23(&kxx[index]); + PDstandard1kxy = PDstandardfdOrder21(&kxy[index]); + PDstandard2kxy = PDstandardfdOrder22(&kxy[index]); + PDstandard3kxy = PDstandardfdOrder23(&kxy[index]); + PDstandard1kxz = PDstandardfdOrder21(&kxz[index]); + PDstandard2kxz = PDstandardfdOrder22(&kxz[index]); + PDstandard3kxz = PDstandardfdOrder23(&kxz[index]); + PDstandard1kyy = PDstandardfdOrder21(&kyy[index]); + PDstandard2kyy = PDstandardfdOrder22(&kyy[index]); + PDstandard3kyy = PDstandardfdOrder23(&kyy[index]); + PDstandard1kyz = PDstandardfdOrder21(&kyz[index]); + PDstandard2kyz = PDstandardfdOrder22(&kyz[index]); + PDstandard3kyz = PDstandardfdOrder23(&kyz[index]); + PDstandard1kzz = PDstandardfdOrder21(&kzz[index]); + PDstandard2kzz = PDstandardfdOrder22(&kzz[index]); + PDstandard3kzz = PDstandardfdOrder23(&kzz[index]); + break; + + case 4: + PDstandard1gxx = PDstandardfdOrder41(&gxx[index]); + PDstandard2gxx = PDstandardfdOrder42(&gxx[index]); + PDstandard3gxx = PDstandardfdOrder43(&gxx[index]); + PDstandard11gxx = PDstandardfdOrder411(&gxx[index]); + PDstandard22gxx = PDstandardfdOrder422(&gxx[index]); + PDstandard33gxx = PDstandardfdOrder433(&gxx[index]); + PDstandard12gxx = PDstandardfdOrder412(&gxx[index]); + PDstandard13gxx = PDstandardfdOrder413(&gxx[index]); + PDstandard23gxx = PDstandardfdOrder423(&gxx[index]); + PDstandard1gxy = PDstandardfdOrder41(&gxy[index]); + PDstandard2gxy = PDstandardfdOrder42(&gxy[index]); + PDstandard3gxy = PDstandardfdOrder43(&gxy[index]); + PDstandard11gxy = PDstandardfdOrder411(&gxy[index]); + PDstandard22gxy = PDstandardfdOrder422(&gxy[index]); + PDstandard33gxy = PDstandardfdOrder433(&gxy[index]); + PDstandard12gxy = PDstandardfdOrder412(&gxy[index]); + PDstandard13gxy = PDstandardfdOrder413(&gxy[index]); + PDstandard23gxy = PDstandardfdOrder423(&gxy[index]); + PDstandard1gxz = PDstandardfdOrder41(&gxz[index]); + PDstandard2gxz = PDstandardfdOrder42(&gxz[index]); + PDstandard3gxz = PDstandardfdOrder43(&gxz[index]); + PDstandard11gxz = PDstandardfdOrder411(&gxz[index]); + PDstandard22gxz = PDstandardfdOrder422(&gxz[index]); + PDstandard33gxz = PDstandardfdOrder433(&gxz[index]); + PDstandard12gxz = PDstandardfdOrder412(&gxz[index]); + PDstandard13gxz = PDstandardfdOrder413(&gxz[index]); + PDstandard23gxz = PDstandardfdOrder423(&gxz[index]); + PDstandard1gyy = PDstandardfdOrder41(&gyy[index]); + PDstandard2gyy = PDstandardfdOrder42(&gyy[index]); + PDstandard3gyy = PDstandardfdOrder43(&gyy[index]); + PDstandard11gyy = PDstandardfdOrder411(&gyy[index]); + PDstandard22gyy = PDstandardfdOrder422(&gyy[index]); + PDstandard33gyy = PDstandardfdOrder433(&gyy[index]); + PDstandard12gyy = PDstandardfdOrder412(&gyy[index]); + PDstandard13gyy = PDstandardfdOrder413(&gyy[index]); + PDstandard23gyy = PDstandardfdOrder423(&gyy[index]); + PDstandard1gyz = PDstandardfdOrder41(&gyz[index]); + PDstandard2gyz = PDstandardfdOrder42(&gyz[index]); + PDstandard3gyz = PDstandardfdOrder43(&gyz[index]); + PDstandard11gyz = PDstandardfdOrder411(&gyz[index]); + PDstandard22gyz = PDstandardfdOrder422(&gyz[index]); + PDstandard33gyz = PDstandardfdOrder433(&gyz[index]); + PDstandard12gyz = PDstandardfdOrder412(&gyz[index]); + PDstandard13gyz = PDstandardfdOrder413(&gyz[index]); + PDstandard23gyz = PDstandardfdOrder423(&gyz[index]); + PDstandard1gzz = PDstandardfdOrder41(&gzz[index]); + PDstandard2gzz = PDstandardfdOrder42(&gzz[index]); + PDstandard3gzz = PDstandardfdOrder43(&gzz[index]); + PDstandard11gzz = PDstandardfdOrder411(&gzz[index]); + PDstandard22gzz = PDstandardfdOrder422(&gzz[index]); + PDstandard33gzz = PDstandardfdOrder433(&gzz[index]); + PDstandard12gzz = PDstandardfdOrder412(&gzz[index]); + PDstandard13gzz = PDstandardfdOrder413(&gzz[index]); + PDstandard23gzz = PDstandardfdOrder423(&gzz[index]); + PDstandard1kxx = PDstandardfdOrder41(&kxx[index]); + PDstandard2kxx = PDstandardfdOrder42(&kxx[index]); + PDstandard3kxx = PDstandardfdOrder43(&kxx[index]); + PDstandard1kxy = PDstandardfdOrder41(&kxy[index]); + PDstandard2kxy = PDstandardfdOrder42(&kxy[index]); + PDstandard3kxy = PDstandardfdOrder43(&kxy[index]); + PDstandard1kxz = PDstandardfdOrder41(&kxz[index]); + PDstandard2kxz = PDstandardfdOrder42(&kxz[index]); + PDstandard3kxz = PDstandardfdOrder43(&kxz[index]); + PDstandard1kyy = PDstandardfdOrder41(&kyy[index]); + PDstandard2kyy = PDstandardfdOrder42(&kyy[index]); + PDstandard3kyy = PDstandardfdOrder43(&kyy[index]); + PDstandard1kyz = PDstandardfdOrder41(&kyz[index]); + PDstandard2kyz = PDstandardfdOrder42(&kyz[index]); + PDstandard3kyz = PDstandardfdOrder43(&kyz[index]); + PDstandard1kzz = PDstandardfdOrder41(&kzz[index]); + PDstandard2kzz = PDstandardfdOrder42(&kzz[index]); + PDstandard3kzz = PDstandardfdOrder43(&kzz[index]); + break; + + case 6: + PDstandard1gxx = PDstandardfdOrder61(&gxx[index]); + PDstandard2gxx = PDstandardfdOrder62(&gxx[index]); + PDstandard3gxx = PDstandardfdOrder63(&gxx[index]); + PDstandard11gxx = PDstandardfdOrder611(&gxx[index]); + PDstandard22gxx = PDstandardfdOrder622(&gxx[index]); + PDstandard33gxx = PDstandardfdOrder633(&gxx[index]); + PDstandard12gxx = PDstandardfdOrder612(&gxx[index]); + PDstandard13gxx = PDstandardfdOrder613(&gxx[index]); + PDstandard23gxx = PDstandardfdOrder623(&gxx[index]); + PDstandard1gxy = PDstandardfdOrder61(&gxy[index]); + PDstandard2gxy = PDstandardfdOrder62(&gxy[index]); + PDstandard3gxy = PDstandardfdOrder63(&gxy[index]); + PDstandard11gxy = PDstandardfdOrder611(&gxy[index]); + PDstandard22gxy = PDstandardfdOrder622(&gxy[index]); + PDstandard33gxy = PDstandardfdOrder633(&gxy[index]); + PDstandard12gxy = PDstandardfdOrder612(&gxy[index]); + PDstandard13gxy = PDstandardfdOrder613(&gxy[index]); + PDstandard23gxy = PDstandardfdOrder623(&gxy[index]); + PDstandard1gxz = PDstandardfdOrder61(&gxz[index]); + PDstandard2gxz = PDstandardfdOrder62(&gxz[index]); + PDstandard3gxz = PDstandardfdOrder63(&gxz[index]); + PDstandard11gxz = PDstandardfdOrder611(&gxz[index]); + PDstandard22gxz = PDstandardfdOrder622(&gxz[index]); + PDstandard33gxz = PDstandardfdOrder633(&gxz[index]); + PDstandard12gxz = PDstandardfdOrder612(&gxz[index]); + PDstandard13gxz = PDstandardfdOrder613(&gxz[index]); + PDstandard23gxz = PDstandardfdOrder623(&gxz[index]); + PDstandard1gyy = PDstandardfdOrder61(&gyy[index]); + PDstandard2gyy = PDstandardfdOrder62(&gyy[index]); + PDstandard3gyy = PDstandardfdOrder63(&gyy[index]); + PDstandard11gyy = PDstandardfdOrder611(&gyy[index]); + PDstandard22gyy = PDstandardfdOrder622(&gyy[index]); + PDstandard33gyy = PDstandardfdOrder633(&gyy[index]); + PDstandard12gyy = PDstandardfdOrder612(&gyy[index]); + PDstandard13gyy = PDstandardfdOrder613(&gyy[index]); + PDstandard23gyy = PDstandardfdOrder623(&gyy[index]); + PDstandard1gyz = PDstandardfdOrder61(&gyz[index]); + PDstandard2gyz = PDstandardfdOrder62(&gyz[index]); + PDstandard3gyz = PDstandardfdOrder63(&gyz[index]); + PDstandard11gyz = PDstandardfdOrder611(&gyz[index]); + PDstandard22gyz = PDstandardfdOrder622(&gyz[index]); + PDstandard33gyz = PDstandardfdOrder633(&gyz[index]); + PDstandard12gyz = PDstandardfdOrder612(&gyz[index]); + PDstandard13gyz = PDstandardfdOrder613(&gyz[index]); + PDstandard23gyz = PDstandardfdOrder623(&gyz[index]); + PDstandard1gzz = PDstandardfdOrder61(&gzz[index]); + PDstandard2gzz = PDstandardfdOrder62(&gzz[index]); + PDstandard3gzz = PDstandardfdOrder63(&gzz[index]); + PDstandard11gzz = PDstandardfdOrder611(&gzz[index]); + PDstandard22gzz = PDstandardfdOrder622(&gzz[index]); + PDstandard33gzz = PDstandardfdOrder633(&gzz[index]); + PDstandard12gzz = PDstandardfdOrder612(&gzz[index]); + PDstandard13gzz = PDstandardfdOrder613(&gzz[index]); + PDstandard23gzz = PDstandardfdOrder623(&gzz[index]); + PDstandard1kxx = PDstandardfdOrder61(&kxx[index]); + PDstandard2kxx = PDstandardfdOrder62(&kxx[index]); + PDstandard3kxx = PDstandardfdOrder63(&kxx[index]); + PDstandard1kxy = PDstandardfdOrder61(&kxy[index]); + PDstandard2kxy = PDstandardfdOrder62(&kxy[index]); + PDstandard3kxy = PDstandardfdOrder63(&kxy[index]); + PDstandard1kxz = PDstandardfdOrder61(&kxz[index]); + PDstandard2kxz = PDstandardfdOrder62(&kxz[index]); + PDstandard3kxz = PDstandardfdOrder63(&kxz[index]); + PDstandard1kyy = PDstandardfdOrder61(&kyy[index]); + PDstandard2kyy = PDstandardfdOrder62(&kyy[index]); + PDstandard3kyy = PDstandardfdOrder63(&kyy[index]); + PDstandard1kyz = PDstandardfdOrder61(&kyz[index]); + PDstandard2kyz = PDstandardfdOrder62(&kyz[index]); + PDstandard3kyz = PDstandardfdOrder63(&kyz[index]); + PDstandard1kzz = PDstandardfdOrder61(&kzz[index]); + PDstandard2kzz = PDstandardfdOrder62(&kzz[index]); + PDstandard3kzz = PDstandardfdOrder63(&kzz[index]); + break; + + case 8: + PDstandard1gxx = PDstandardfdOrder81(&gxx[index]); + PDstandard2gxx = PDstandardfdOrder82(&gxx[index]); + PDstandard3gxx = PDstandardfdOrder83(&gxx[index]); + PDstandard11gxx = PDstandardfdOrder811(&gxx[index]); + PDstandard22gxx = PDstandardfdOrder822(&gxx[index]); + PDstandard33gxx = PDstandardfdOrder833(&gxx[index]); + PDstandard12gxx = PDstandardfdOrder812(&gxx[index]); + PDstandard13gxx = PDstandardfdOrder813(&gxx[index]); + PDstandard23gxx = PDstandardfdOrder823(&gxx[index]); + PDstandard1gxy = PDstandardfdOrder81(&gxy[index]); + PDstandard2gxy = PDstandardfdOrder82(&gxy[index]); + PDstandard3gxy = PDstandardfdOrder83(&gxy[index]); + PDstandard11gxy = PDstandardfdOrder811(&gxy[index]); + PDstandard22gxy = PDstandardfdOrder822(&gxy[index]); + PDstandard33gxy = PDstandardfdOrder833(&gxy[index]); + PDstandard12gxy = PDstandardfdOrder812(&gxy[index]); + PDstandard13gxy = PDstandardfdOrder813(&gxy[index]); + PDstandard23gxy = PDstandardfdOrder823(&gxy[index]); + PDstandard1gxz = PDstandardfdOrder81(&gxz[index]); + PDstandard2gxz = PDstandardfdOrder82(&gxz[index]); + PDstandard3gxz = PDstandardfdOrder83(&gxz[index]); + PDstandard11gxz = PDstandardfdOrder811(&gxz[index]); + PDstandard22gxz = PDstandardfdOrder822(&gxz[index]); + PDstandard33gxz = PDstandardfdOrder833(&gxz[index]); + PDstandard12gxz = PDstandardfdOrder812(&gxz[index]); + PDstandard13gxz = PDstandardfdOrder813(&gxz[index]); + PDstandard23gxz = PDstandardfdOrder823(&gxz[index]); + PDstandard1gyy = PDstandardfdOrder81(&gyy[index]); + PDstandard2gyy = PDstandardfdOrder82(&gyy[index]); + PDstandard3gyy = PDstandardfdOrder83(&gyy[index]); + PDstandard11gyy = PDstandardfdOrder811(&gyy[index]); + PDstandard22gyy = PDstandardfdOrder822(&gyy[index]); + PDstandard33gyy = PDstandardfdOrder833(&gyy[index]); + PDstandard12gyy = PDstandardfdOrder812(&gyy[index]); + PDstandard13gyy = PDstandardfdOrder813(&gyy[index]); + PDstandard23gyy = PDstandardfdOrder823(&gyy[index]); + PDstandard1gyz = PDstandardfdOrder81(&gyz[index]); + PDstandard2gyz = PDstandardfdOrder82(&gyz[index]); + PDstandard3gyz = PDstandardfdOrder83(&gyz[index]); + PDstandard11gyz = PDstandardfdOrder811(&gyz[index]); + PDstandard22gyz = PDstandardfdOrder822(&gyz[index]); + PDstandard33gyz = PDstandardfdOrder833(&gyz[index]); + PDstandard12gyz = PDstandardfdOrder812(&gyz[index]); + PDstandard13gyz = PDstandardfdOrder813(&gyz[index]); + PDstandard23gyz = PDstandardfdOrder823(&gyz[index]); + PDstandard1gzz = PDstandardfdOrder81(&gzz[index]); + PDstandard2gzz = PDstandardfdOrder82(&gzz[index]); + PDstandard3gzz = PDstandardfdOrder83(&gzz[index]); + PDstandard11gzz = PDstandardfdOrder811(&gzz[index]); + PDstandard22gzz = PDstandardfdOrder822(&gzz[index]); + PDstandard33gzz = PDstandardfdOrder833(&gzz[index]); + PDstandard12gzz = PDstandardfdOrder812(&gzz[index]); + PDstandard13gzz = PDstandardfdOrder813(&gzz[index]); + PDstandard23gzz = PDstandardfdOrder823(&gzz[index]); + PDstandard1kxx = PDstandardfdOrder81(&kxx[index]); + PDstandard2kxx = PDstandardfdOrder82(&kxx[index]); + PDstandard3kxx = PDstandardfdOrder83(&kxx[index]); + PDstandard1kxy = PDstandardfdOrder81(&kxy[index]); + PDstandard2kxy = PDstandardfdOrder82(&kxy[index]); + PDstandard3kxy = PDstandardfdOrder83(&kxy[index]); + PDstandard1kxz = PDstandardfdOrder81(&kxz[index]); + PDstandard2kxz = PDstandardfdOrder82(&kxz[index]); + PDstandard3kxz = PDstandardfdOrder83(&kxz[index]); + PDstandard1kyy = PDstandardfdOrder81(&kyy[index]); + PDstandard2kyy = PDstandardfdOrder82(&kyy[index]); + PDstandard3kyy = PDstandardfdOrder83(&kyy[index]); + PDstandard1kyz = PDstandardfdOrder81(&kyz[index]); + PDstandard2kyz = PDstandardfdOrder82(&kyz[index]); + PDstandard3kyz = PDstandardfdOrder83(&kyz[index]); + PDstandard1kzz = PDstandardfdOrder81(&kzz[index]); + PDstandard2kzz = PDstandardfdOrder82(&kzz[index]); + PDstandard3kzz = PDstandardfdOrder83(&kzz[index]); + break; + } + + /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandard11gyy; + CCTK_REAL_VEC JacPDstandard11gyz; + CCTK_REAL_VEC JacPDstandard11gzz; + CCTK_REAL_VEC JacPDstandard12gxy; + CCTK_REAL_VEC JacPDstandard12gxz; + CCTK_REAL_VEC JacPDstandard12gyz; + CCTK_REAL_VEC JacPDstandard12gzz; + CCTK_REAL_VEC JacPDstandard13gxz; + CCTK_REAL_VEC JacPDstandard1gxx; + CCTK_REAL_VEC JacPDstandard1gxy; + CCTK_REAL_VEC JacPDstandard1gxz; + CCTK_REAL_VEC JacPDstandard1gyy; + CCTK_REAL_VEC JacPDstandard1gyz; + CCTK_REAL_VEC JacPDstandard1gzz; + CCTK_REAL_VEC JacPDstandard1kxy; + CCTK_REAL_VEC JacPDstandard1kxz; + CCTK_REAL_VEC JacPDstandard1kyy; + CCTK_REAL_VEC JacPDstandard1kyz; + CCTK_REAL_VEC JacPDstandard1kzz; + CCTK_REAL_VEC JacPDstandard21gxy; + CCTK_REAL_VEC JacPDstandard22gxx; + CCTK_REAL_VEC JacPDstandard22gxz; + CCTK_REAL_VEC JacPDstandard22gzz; + CCTK_REAL_VEC JacPDstandard23gxx; + CCTK_REAL_VEC JacPDstandard23gxy; + CCTK_REAL_VEC JacPDstandard23gxz; + CCTK_REAL_VEC JacPDstandard23gyz; + CCTK_REAL_VEC JacPDstandard2gxx; + CCTK_REAL_VEC JacPDstandard2gxy; + CCTK_REAL_VEC JacPDstandard2gxz; + CCTK_REAL_VEC JacPDstandard2gyy; + CCTK_REAL_VEC JacPDstandard2gyz; + CCTK_REAL_VEC JacPDstandard2gzz; + CCTK_REAL_VEC JacPDstandard2kxx; + CCTK_REAL_VEC JacPDstandard2kxy; + CCTK_REAL_VEC JacPDstandard2kxz; + CCTK_REAL_VEC JacPDstandard2kyz; + CCTK_REAL_VEC JacPDstandard2kzz; + CCTK_REAL_VEC JacPDstandard31gxy; + CCTK_REAL_VEC JacPDstandard31gxz; + CCTK_REAL_VEC JacPDstandard31gyy; + CCTK_REAL_VEC JacPDstandard31gyz; + CCTK_REAL_VEC JacPDstandard32gyz; + CCTK_REAL_VEC JacPDstandard33gxx; + CCTK_REAL_VEC JacPDstandard33gxy; + CCTK_REAL_VEC JacPDstandard33gyy; + CCTK_REAL_VEC JacPDstandard3gxx; + CCTK_REAL_VEC JacPDstandard3gxy; + CCTK_REAL_VEC JacPDstandard3gxz; + CCTK_REAL_VEC JacPDstandard3gyy; + CCTK_REAL_VEC JacPDstandard3gyz; + CCTK_REAL_VEC JacPDstandard3gzz; + CCTK_REAL_VEC JacPDstandard3kxx; + CCTK_REAL_VEC JacPDstandard3kxy; + CCTK_REAL_VEC JacPDstandard3kxz; + CCTK_REAL_VEC JacPDstandard3kyy; + CCTK_REAL_VEC JacPDstandard3kyz; + + if (use_jacobian) + { + JacPDstandard1gxx = + kmadd(J11L,PDstandard1gxx,kmadd(J21L,PDstandard2gxx,kmul(J31L,PDstandard3gxx))); + + JacPDstandard1gxy = + kmadd(J11L,PDstandard1gxy,kmadd(J21L,PDstandard2gxy,kmul(J31L,PDstandard3gxy))); + + JacPDstandard1gxz = + kmadd(J11L,PDstandard1gxz,kmadd(J21L,PDstandard2gxz,kmul(J31L,PDstandard3gxz))); + + JacPDstandard1gyy = + kmadd(J11L,PDstandard1gyy,kmadd(J21L,PDstandard2gyy,kmul(J31L,PDstandard3gyy))); + + JacPDstandard1gyz = + kmadd(J11L,PDstandard1gyz,kmadd(J21L,PDstandard2gyz,kmul(J31L,PDstandard3gyz))); + + JacPDstandard1gzz = + kmadd(J11L,PDstandard1gzz,kmadd(J21L,PDstandard2gzz,kmul(J31L,PDstandard3gzz))); + + JacPDstandard1kxy = + kmadd(J11L,PDstandard1kxy,kmadd(J21L,PDstandard2kxy,kmul(J31L,PDstandard3kxy))); + + JacPDstandard1kxz = + kmadd(J11L,PDstandard1kxz,kmadd(J21L,PDstandard2kxz,kmul(J31L,PDstandard3kxz))); + + JacPDstandard1kyy = + kmadd(J11L,PDstandard1kyy,kmadd(J21L,PDstandard2kyy,kmul(J31L,PDstandard3kyy))); + + JacPDstandard1kyz = + kmadd(J11L,PDstandard1kyz,kmadd(J21L,PDstandard2kyz,kmul(J31L,PDstandard3kyz))); + + JacPDstandard1kzz = + kmadd(J11L,PDstandard1kzz,kmadd(J21L,PDstandard2kzz,kmul(J31L,PDstandard3kzz))); + + JacPDstandard2gxx = + kmadd(J12L,PDstandard1gxx,kmadd(J22L,PDstandard2gxx,kmul(J32L,PDstandard3gxx))); + + JacPDstandard2gxy = + kmadd(J12L,PDstandard1gxy,kmadd(J22L,PDstandard2gxy,kmul(J32L,PDstandard3gxy))); + + JacPDstandard2gxz = + kmadd(J12L,PDstandard1gxz,kmadd(J22L,PDstandard2gxz,kmul(J32L,PDstandard3gxz))); + + JacPDstandard2gyy = + kmadd(J12L,PDstandard1gyy,kmadd(J22L,PDstandard2gyy,kmul(J32L,PDstandard3gyy))); + + JacPDstandard2gyz = + kmadd(J12L,PDstandard1gyz,kmadd(J22L,PDstandard2gyz,kmul(J32L,PDstandard3gyz))); + + JacPDstandard2gzz = + kmadd(J12L,PDstandard1gzz,kmadd(J22L,PDstandard2gzz,kmul(J32L,PDstandard3gzz))); + + JacPDstandard2kxx = + kmadd(J12L,PDstandard1kxx,kmadd(J22L,PDstandard2kxx,kmul(J32L,PDstandard3kxx))); + + JacPDstandard2kxy = + kmadd(J12L,PDstandard1kxy,kmadd(J22L,PDstandard2kxy,kmul(J32L,PDstandard3kxy))); + + JacPDstandard2kxz = + kmadd(J12L,PDstandard1kxz,kmadd(J22L,PDstandard2kxz,kmul(J32L,PDstandard3kxz))); + + JacPDstandard2kyz = + kmadd(J12L,PDstandard1kyz,kmadd(J22L,PDstandard2kyz,kmul(J32L,PDstandard3kyz))); + + JacPDstandard2kzz = + kmadd(J12L,PDstandard1kzz,kmadd(J22L,PDstandard2kzz,kmul(J32L,PDstandard3kzz))); + + JacPDstandard3gxx = + kmadd(J13L,PDstandard1gxx,kmadd(J23L,PDstandard2gxx,kmul(J33L,PDstandard3gxx))); + + JacPDstandard3gxy = + kmadd(J13L,PDstandard1gxy,kmadd(J23L,PDstandard2gxy,kmul(J33L,PDstandard3gxy))); + + JacPDstandard3gxz = + kmadd(J13L,PDstandard1gxz,kmadd(J23L,PDstandard2gxz,kmul(J33L,PDstandard3gxz))); + + JacPDstandard3gyy = + kmadd(J13L,PDstandard1gyy,kmadd(J23L,PDstandard2gyy,kmul(J33L,PDstandard3gyy))); + + JacPDstandard3gyz = + kmadd(J13L,PDstandard1gyz,kmadd(J23L,PDstandard2gyz,kmul(J33L,PDstandard3gyz))); + + JacPDstandard3gzz = + kmadd(J13L,PDstandard1gzz,kmadd(J23L,PDstandard2gzz,kmul(J33L,PDstandard3gzz))); + + JacPDstandard3kxx = + kmadd(J13L,PDstandard1kxx,kmadd(J23L,PDstandard2kxx,kmul(J33L,PDstandard3kxx))); + + JacPDstandard3kxy = + kmadd(J13L,PDstandard1kxy,kmadd(J23L,PDstandard2kxy,kmul(J33L,PDstandard3kxy))); + + JacPDstandard3kxz = + kmadd(J13L,PDstandard1kxz,kmadd(J23L,PDstandard2kxz,kmul(J33L,PDstandard3kxz))); + + JacPDstandard3kyy = + kmadd(J13L,PDstandard1kyy,kmadd(J23L,PDstandard2kyy,kmul(J33L,PDstandard3kyy))); + + JacPDstandard3kyz = + kmadd(J13L,PDstandard1kyz,kmadd(J23L,PDstandard2kyz,kmul(J33L,PDstandard3kyz))); + + JacPDstandard11gyy = + kmadd(dJ111L,PDstandard1gyy,kmadd(dJ211L,PDstandard2gyy,kmadd(dJ311L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J11L,J11L),kmadd(PDstandard22gyy,kmul(J21L,J21L),kmadd(PDstandard33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy)),kmul(J21L,kmul(J31L,PDstandard23gyy))),ToReal(2)))))))); + + JacPDstandard11gyz = + kmadd(dJ111L,PDstandard1gyz,kmadd(dJ211L,PDstandard2gyz,kmadd(dJ311L,PDstandard3gyz,kmadd(PDstandard11gyz,kmul(J11L,J11L),kmadd(PDstandard22gyz,kmul(J21L,J21L),kmadd(PDstandard33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz)),kmul(J21L,kmul(J31L,PDstandard23gyz))),ToReal(2)))))))); + + JacPDstandard11gzz = + kmadd(dJ111L,PDstandard1gzz,kmadd(dJ211L,PDstandard2gzz,kmadd(dJ311L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J11L,J11L),kmadd(PDstandard22gzz,kmul(J21L,J21L),kmadd(PDstandard33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz)),kmul(J21L,kmul(J31L,PDstandard23gzz))),ToReal(2)))))))); + + JacPDstandard22gxx = + kmadd(dJ122L,PDstandard1gxx,kmadd(dJ222L,PDstandard2gxx,kmadd(dJ322L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J12L,J12L),kmadd(PDstandard22gxx,kmul(J22L,J22L),kmadd(PDstandard33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx)),kmul(J22L,kmul(J32L,PDstandard23gxx))),ToReal(2)))))))); + + JacPDstandard22gxz = + kmadd(dJ122L,PDstandard1gxz,kmadd(dJ222L,PDstandard2gxz,kmadd(dJ322L,PDstandard3gxz,kmadd(PDstandard11gxz,kmul(J12L,J12L),kmadd(PDstandard22gxz,kmul(J22L,J22L),kmadd(PDstandard33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmul(J22L,kmul(J32L,PDstandard23gxz))),ToReal(2)))))))); + + JacPDstandard22gzz = + kmadd(dJ122L,PDstandard1gzz,kmadd(dJ222L,PDstandard2gzz,kmadd(dJ322L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J12L,J12L),kmadd(PDstandard22gzz,kmul(J22L,J22L),kmadd(PDstandard33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmul(J22L,kmul(J32L,PDstandard23gzz))),ToReal(2)))))))); + + JacPDstandard33gxx = + kmadd(dJ133L,PDstandard1gxx,kmadd(dJ233L,PDstandard2gxx,kmadd(dJ333L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J13L,J13L),kmadd(PDstandard22gxx,kmul(J23L,J23L),kmadd(PDstandard33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmul(J23L,kmul(J33L,PDstandard23gxx))),ToReal(2)))))))); + + JacPDstandard33gxy = + kmadd(dJ133L,PDstandard1gxy,kmadd(dJ233L,PDstandard2gxy,kmadd(dJ333L,PDstandard3gxy,kmadd(PDstandard11gxy,kmul(J13L,J13L),kmadd(PDstandard22gxy,kmul(J23L,J23L),kmadd(PDstandard33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmul(J23L,kmul(J33L,PDstandard23gxy))),ToReal(2)))))))); + + JacPDstandard33gyy = + kmadd(dJ133L,PDstandard1gyy,kmadd(dJ233L,PDstandard2gyy,kmadd(dJ333L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J13L,J13L),kmadd(PDstandard22gyy,kmul(J23L,J23L),kmadd(PDstandard33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmul(J23L,kmul(J33L,PDstandard23gyy))),ToReal(2)))))))); + + JacPDstandard12gxy = + kmadd(J12L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy)),kmadd(dJ112L,PDstandard1gxy,kmadd(J22L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ212L,PDstandard2gxy,kmadd(J32L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ312L,PDstandard3gxy))))))); + + JacPDstandard12gxz = + kmadd(J12L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmadd(dJ112L,PDstandard1gxz,kmadd(J22L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ212L,PDstandard2gxz,kmadd(J32L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ312L,PDstandard3gxz))))))); + + JacPDstandard12gyz = + kmadd(J12L,kmadd(J11L,PDstandard11gyz,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz))),kmadd(J11L,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz)),kmadd(dJ112L,PDstandard1gyz,kmadd(J22L,kmadd(J21L,PDstandard22gyz,kmul(J31L,PDstandard23gyz)),kmadd(dJ212L,PDstandard2gyz,kmadd(J32L,kmadd(J21L,PDstandard23gyz,kmul(J31L,PDstandard33gyz)),kmul(dJ312L,PDstandard3gyz))))))); + + JacPDstandard12gzz = + kmadd(J12L,kmadd(J11L,PDstandard11gzz,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz))),kmadd(J11L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmadd(dJ112L,PDstandard1gzz,kmadd(J22L,kmadd(J21L,PDstandard22gzz,kmul(J31L,PDstandard23gzz)),kmadd(dJ212L,PDstandard2gzz,kmadd(J32L,kmadd(J21L,PDstandard23gzz,kmul(J31L,PDstandard33gzz)),kmul(dJ312L,PDstandard3gzz))))))); + + JacPDstandard13gxz = + kmadd(J13L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ113L,PDstandard1gxz,kmadd(J23L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ213L,PDstandard2gxz,kmadd(J33L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ313L,PDstandard3gxz))))))); + + JacPDstandard21gxy = + kmadd(J12L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy)),kmadd(dJ112L,PDstandard1gxy,kmadd(J22L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ212L,PDstandard2gxy,kmadd(J32L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ312L,PDstandard3gxy))))))); + + JacPDstandard23gxx = + kmadd(J13L,kmadd(J12L,PDstandard11gxx,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx))),kmadd(J12L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmadd(dJ123L,PDstandard1gxx,kmadd(J23L,kmadd(J22L,PDstandard22gxx,kmul(J32L,PDstandard23gxx)),kmadd(dJ223L,PDstandard2gxx,kmadd(J33L,kmadd(J22L,PDstandard23gxx,kmul(J32L,PDstandard33gxx)),kmul(dJ323L,PDstandard3gxx))))))); + + JacPDstandard23gxy = + kmadd(J13L,kmadd(J12L,PDstandard11gxy,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy))),kmadd(J12L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmadd(dJ123L,PDstandard1gxy,kmadd(J23L,kmadd(J22L,PDstandard22gxy,kmul(J32L,PDstandard23gxy)),kmadd(dJ223L,PDstandard2gxy,kmadd(J33L,kmadd(J22L,PDstandard23gxy,kmul(J32L,PDstandard33gxy)),kmul(dJ323L,PDstandard3gxy))))))); + + JacPDstandard23gxz = + kmadd(J13L,kmadd(J12L,PDstandard11gxz,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz))),kmadd(J12L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ123L,PDstandard1gxz,kmadd(J23L,kmadd(J22L,PDstandard22gxz,kmul(J32L,PDstandard23gxz)),kmadd(dJ223L,PDstandard2gxz,kmadd(J33L,kmadd(J22L,PDstandard23gxz,kmul(J32L,PDstandard33gxz)),kmul(dJ323L,PDstandard3gxz))))))); + + JacPDstandard23gyz = + kmadd(J13L,kmadd(J12L,PDstandard11gyz,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz))),kmadd(J12L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ123L,PDstandard1gyz,kmadd(J23L,kmadd(J22L,PDstandard22gyz,kmul(J32L,PDstandard23gyz)),kmadd(dJ223L,PDstandard2gyz,kmadd(J33L,kmadd(J22L,PDstandard23gyz,kmul(J32L,PDstandard33gyz)),kmul(dJ323L,PDstandard3gyz))))))); + + JacPDstandard31gxy = + kmadd(J13L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmadd(dJ113L,PDstandard1gxy,kmadd(J23L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ213L,PDstandard2gxy,kmadd(J33L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ313L,PDstandard3gxy))))))); + + JacPDstandard31gxz = + kmadd(J13L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ113L,PDstandard1gxz,kmadd(J23L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ213L,PDstandard2gxz,kmadd(J33L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ313L,PDstandard3gxz))))))); + + JacPDstandard31gyy = + kmadd(J13L,kmadd(J11L,PDstandard11gyy,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy))),kmadd(J11L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmadd(dJ113L,PDstandard1gyy,kmadd(J23L,kmadd(J21L,PDstandard22gyy,kmul(J31L,PDstandard23gyy)),kmadd(dJ213L,PDstandard2gyy,kmadd(J33L,kmadd(J21L,PDstandard23gyy,kmul(J31L,PDstandard33gyy)),kmul(dJ313L,PDstandard3gyy))))))); + + JacPDstandard31gyz = + kmadd(J13L,kmadd(J11L,PDstandard11gyz,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz))),kmadd(J11L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ113L,PDstandard1gyz,kmadd(J23L,kmadd(J21L,PDstandard22gyz,kmul(J31L,PDstandard23gyz)),kmadd(dJ213L,PDstandard2gyz,kmadd(J33L,kmadd(J21L,PDstandard23gyz,kmul(J31L,PDstandard33gyz)),kmul(dJ313L,PDstandard3gyz))))))); + + JacPDstandard32gyz = + kmadd(J13L,kmadd(J12L,PDstandard11gyz,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz))),kmadd(J12L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ123L,PDstandard1gyz,kmadd(J23L,kmadd(J22L,PDstandard22gyz,kmul(J32L,PDstandard23gyz)),kmadd(dJ223L,PDstandard2gyz,kmadd(J33L,kmadd(J22L,PDstandard23gyz,kmul(J32L,PDstandard33gyz)),kmul(dJ323L,PDstandard3gyz))))))); + } + else + { + JacPDstandard1gxx = PDstandard1gxx; + + JacPDstandard1gxy = PDstandard1gxy; + + JacPDstandard1gxz = PDstandard1gxz; + + JacPDstandard1gyy = PDstandard1gyy; + + JacPDstandard1gyz = PDstandard1gyz; + + JacPDstandard1gzz = PDstandard1gzz; + + JacPDstandard1kxy = PDstandard1kxy; + + JacPDstandard1kxz = PDstandard1kxz; + + JacPDstandard1kyy = PDstandard1kyy; + + JacPDstandard1kyz = PDstandard1kyz; + + JacPDstandard1kzz = PDstandard1kzz; + + JacPDstandard2gxx = PDstandard2gxx; + + JacPDstandard2gxy = PDstandard2gxy; + + JacPDstandard2gxz = PDstandard2gxz; + + JacPDstandard2gyy = PDstandard2gyy; + + JacPDstandard2gyz = PDstandard2gyz; + + JacPDstandard2gzz = PDstandard2gzz; + + JacPDstandard2kxx = PDstandard2kxx; + + JacPDstandard2kxy = PDstandard2kxy; + + JacPDstandard2kxz = PDstandard2kxz; + + JacPDstandard2kyz = PDstandard2kyz; + + JacPDstandard2kzz = PDstandard2kzz; + + JacPDstandard3gxx = PDstandard3gxx; + + JacPDstandard3gxy = PDstandard3gxy; + + JacPDstandard3gxz = PDstandard3gxz; + + JacPDstandard3gyy = PDstandard3gyy; + + JacPDstandard3gyz = PDstandard3gyz; + + JacPDstandard3gzz = PDstandard3gzz; + + JacPDstandard3kxx = PDstandard3kxx; + + JacPDstandard3kxy = PDstandard3kxy; + + JacPDstandard3kxz = PDstandard3kxz; + + JacPDstandard3kyy = PDstandard3kyy; + + JacPDstandard3kyz = PDstandard3kyz; + + JacPDstandard11gyy = PDstandard11gyy; + + JacPDstandard11gyz = PDstandard11gyz; + + JacPDstandard11gzz = PDstandard11gzz; + + JacPDstandard22gxx = PDstandard22gxx; + + JacPDstandard22gxz = PDstandard22gxz; + + JacPDstandard22gzz = PDstandard22gzz; + + JacPDstandard33gxx = PDstandard33gxx; + + JacPDstandard33gxy = PDstandard33gxy; + + JacPDstandard33gyy = PDstandard33gyy; + + JacPDstandard12gxy = PDstandard12gxy; + + JacPDstandard12gxz = PDstandard12gxz; + + JacPDstandard12gyz = PDstandard12gyz; + + JacPDstandard12gzz = PDstandard12gzz; + + JacPDstandard13gxz = PDstandard13gxz; + + JacPDstandard21gxy = PDstandard12gxy; + + JacPDstandard23gxx = PDstandard23gxx; + + JacPDstandard23gxy = PDstandard23gxy; + + JacPDstandard23gxz = PDstandard23gxz; + + JacPDstandard23gyz = PDstandard23gyz; + + JacPDstandard31gxy = PDstandard13gxy; + + JacPDstandard31gxz = PDstandard13gxz; + + JacPDstandard31gyy = PDstandard13gyy; + + JacPDstandard31gyz = PDstandard13gyz; + + JacPDstandard32gyz = PDstandard23gyz; + } + + CCTK_REAL_VEC detg = + knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); + + CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); + + CCTK_REAL_VEC gInv11 = + kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); + + CCTK_REAL_VEC gInv12 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv13 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv21 = + kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); + + CCTK_REAL_VEC gInv22 = + kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); + + CCTK_REAL_VEC gInv23 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv31 = + kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); + + CCTK_REAL_VEC gInv32 = + kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); + + CCTK_REAL_VEC gInv33 = + kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); + + CCTK_REAL_VEC gamma111 = + kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard1gxx,knmsub(gInv12,JacPDstandard2gxx,kmsub(kmadd(gInv12,JacPDstandard1gxy,kmul(gInv13,JacPDstandard1gxz)),ToReal(2),kmul(gInv13,JacPDstandard3gxx))))); + + CCTK_REAL_VEC gamma211 = + kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard1gxx,knmsub(gInv22,JacPDstandard2gxx,kmsub(kmadd(gInv22,JacPDstandard1gxy,kmul(gInv23,JacPDstandard1gxz)),ToReal(2),kmul(gInv23,JacPDstandard3gxx))))); + + CCTK_REAL_VEC gamma311 = + kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard1gxx,knmsub(gInv32,JacPDstandard2gxx,kmsub(kmadd(gInv32,JacPDstandard1gxy,kmul(gInv33,JacPDstandard1gxz)),ToReal(2),kmul(gInv33,JacPDstandard3gxx))))); + + CCTK_REAL_VEC gamma121 = + kmul(kmadd(gInv12,JacPDstandard1gyy,kmadd(gInv11,JacPDstandard2gxx,kmul(gInv13,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma221 = + kmul(kmadd(gInv22,JacPDstandard1gyy,kmadd(gInv21,JacPDstandard2gxx,kmul(gInv23,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma321 = + kmul(kmadd(gInv32,JacPDstandard1gyy,kmadd(gInv31,JacPDstandard2gxx,kmul(gInv33,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma131 = + kmul(kmadd(gInv13,JacPDstandard1gzz,kmadd(gInv11,JacPDstandard3gxx,kmul(gInv12,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma231 = + kmul(kmadd(gInv23,JacPDstandard1gzz,kmadd(gInv21,JacPDstandard3gxx,kmul(gInv22,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma331 = + kmul(kmadd(gInv33,JacPDstandard1gzz,kmadd(gInv31,JacPDstandard3gxx,kmul(gInv32,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma122 = + kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2gyy,kmadd(gInv11,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv13,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + + CCTK_REAL_VEC gamma222 = + kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2gyy,kmadd(gInv21,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv23,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + + CCTK_REAL_VEC gamma322 = + kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2gyy,kmadd(gInv31,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv33,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + + CCTK_REAL_VEC gamma132 = + kmul(kmadd(gInv13,JacPDstandard2gzz,kmadd(gInv12,JacPDstandard3gyy,kmul(gInv11,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma232 = + kmul(kmadd(gInv23,JacPDstandard2gzz,kmadd(gInv22,JacPDstandard3gyy,kmul(gInv21,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma332 = + kmul(kmadd(gInv33,JacPDstandard2gzz,kmadd(gInv32,JacPDstandard3gyy,kmul(gInv31,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + + CCTK_REAL_VEC gamma133 = + kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard3gzz,kmadd(gInv11,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv12,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + + CCTK_REAL_VEC gamma233 = + kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard3gzz,kmadd(gInv21,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv22,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + + CCTK_REAL_VEC gamma333 = + kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard3gzz,kmadd(gInv31,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv32,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + + CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); + + CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); + + CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); + + CCTK_REAL_VEC va1 = kneg(ymoved); + + CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC va3 = ToReal(0); + + CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); + + CCTK_REAL_VEC vb2 = ymoved; + + CCTK_REAL_VEC vb3 = zmoved; + + CCTK_REAL_VEC vc1 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); + + CCTK_REAL_VEC vc2 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); + + CCTK_REAL_VEC vc3 = + kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); + + CCTK_REAL_VEC wa1 = va1; + + CCTK_REAL_VEC wa2 = va2; + + CCTK_REAL_VEC wa3 = va3; + + CCTK_REAL_VEC omega11 = + kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); + + CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); + + CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); + + CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); + + CCTK_REAL_VEC omega12 = + kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); + + CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); + + CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); + + CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); + + CCTK_REAL_VEC omega22 = + kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); + + CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); + + CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); + + CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); + + CCTK_REAL_VEC omega13 = + kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC omega23 = + kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); + + CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); + + CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); + + CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); + + CCTK_REAL_VEC omega33 = + kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); + + CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); + + CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); + + CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); + + CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); + + CCTK_REAL_VEC ltet1 = kmul(eb1,isqrt2); + + CCTK_REAL_VEC ltet2 = kmul(eb2,isqrt2); + + CCTK_REAL_VEC ltet3 = kmul(eb3,isqrt2); + + CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); + + CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); + + CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); + + CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); + + CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); + + CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); + + CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); + + CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); + + CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); + + CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); + + CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); + + CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); + + CCTK_REAL_VEC nn = isqrt2; + + CCTK_REAL_VEC R1212 = + kmul(ToReal(0.5),kadd(JacPDstandard12gxy,kadd(JacPDstandard21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard22gxx),JacPDstandard11gyy))))); + + CCTK_REAL_VEC R1213 = + kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard12gxz,kadd(JacPDstandard31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard23gxx),JacPDstandard11gyz)))))); + + CCTK_REAL_VEC R1223 = + kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard22gxz,kadd(JacPDstandard31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard23gxy),JacPDstandard12gyz)))))); + + CCTK_REAL_VEC R1313 = + kmul(ToReal(0.5),kadd(JacPDstandard13gxz,kadd(JacPDstandard31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard33gxx),JacPDstandard11gzz))))); + + CCTK_REAL_VEC R1323 = + kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard23gxz,kadd(JacPDstandard31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard33gxy),JacPDstandard12gzz)))))); + + CCTK_REAL_VEC R2323 = + kmul(ToReal(0.5),kadd(JacPDstandard23gyz,kadd(JacPDstandard32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard33gyy),JacPDstandard22gzz))))); + + CCTK_REAL_VEC R4p1212 = + kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); + + CCTK_REAL_VEC R4p1213 = + kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); + + CCTK_REAL_VEC R4p1223 = + kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); + + CCTK_REAL_VEC R4p1313 = + kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); + + CCTK_REAL_VEC R4p1323 = + kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); + + CCTK_REAL_VEC R4p2323 = + kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); + + CCTK_REAL_VEC Ro111 = ToReal(0); + + CCTK_REAL_VEC Ro112 = + kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2kxx)))))); + + CCTK_REAL_VEC Ro113 = + kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard3kxx)))))); + + CCTK_REAL_VEC Ro121 = + kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard1kxy)))))); + + CCTK_REAL_VEC Ro122 = ToReal(0); + + CCTK_REAL_VEC Ro123 = + kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard3kxy)))))); + + CCTK_REAL_VEC Ro131 = + kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard1kxz)))))); + + CCTK_REAL_VEC Ro132 = + kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2kxz)))))); + + CCTK_REAL_VEC Ro133 = ToReal(0); + + CCTK_REAL_VEC Ro211 = ToReal(0); + + CCTK_REAL_VEC Ro212 = + kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2kxy)))))); + + CCTK_REAL_VEC Ro213 = + kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard3kxy)))))); + + CCTK_REAL_VEC Ro221 = + kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard1kyy)))))); + + CCTK_REAL_VEC Ro222 = ToReal(0); + + CCTK_REAL_VEC Ro223 = + kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard3kyy)))))); + + CCTK_REAL_VEC Ro231 = + kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard1kyz)))))); + + CCTK_REAL_VEC Ro232 = + kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2kyz)))))); + + CCTK_REAL_VEC Ro233 = ToReal(0); + + CCTK_REAL_VEC Ro311 = ToReal(0); + + CCTK_REAL_VEC Ro312 = + kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2kxz)))))); + + CCTK_REAL_VEC Ro313 = + kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard3kxz)))))); + + CCTK_REAL_VEC Ro321 = + kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard1kyz)))))); + + CCTK_REAL_VEC Ro322 = ToReal(0); + + CCTK_REAL_VEC Ro323 = + kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard3kyz)))))); + + CCTK_REAL_VEC Ro331 = + kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard1kzz)))))); + + CCTK_REAL_VEC Ro332 = + kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2kzz)))))); + + CCTK_REAL_VEC Ro333 = ToReal(0); + + CCTK_REAL_VEC Rojo11 = + kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); + + CCTK_REAL_VEC Rojo12 = + kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo13 = + kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); + + CCTK_REAL_VEC Rojo21 = + kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); + + CCTK_REAL_VEC Rojo22 = + kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Rojo23 = + kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo31 = + kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); + + CCTK_REAL_VEC Rojo32 = + kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); + + CCTK_REAL_VEC Rojo33 = + kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); + + CCTK_REAL_VEC Psi4rL = + kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi4iL = + knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); + + CCTK_REAL_VEC Psi3rL = + kmadd(ltet2,kmul(R4p1212,kmul(rm2,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1213,kmul(rm2,kmul(n1,n1))),kmadd(ltet2,kmul(R4p1213,kmul(rm3,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1313,kmul(rm3,kmul(n1,n1))),kmadd(ltet1,kmul(R4p1212,kmul(rm1,kmul(n2,n2))),kmadd(ltet3,kmul(R4p2323,kmul(rm3,kmul(n2,n2))),kmadd(ltet1,kmul(R4p1313,kmul(rm1,kmul(n3,n3))),kmadd(ltet2,kmul(R4p1323,kmul(rm1,kmul(n3,n3))),kmadd(ltet1,kmul(R4p1323,kmul(rm2,kmul(n3,n3))),kmadd(ltet2,kmul(R4p2323,kmul(rm2,kmul(n3,n3))),kmadd(n1,kmul(nn,kmul(rm2,kmul(Ro221,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n2,kmul(nn,kmul(rm2,kmul(Ro222,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n3,kmul(nn,kmul(rm2,kmul(Ro223,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n1,kmul(nn,kmul(rm3,kmul(Ro331,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n2,kmul(nn,kmul(rm3,kmul(Ro332,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,kmadd(ltet3,ToReal(-2),n3)))),kmadd(rm1,kmul(Rojo11,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm2,kmul(Rojo12,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm3,kmul(Rojo13,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm1,kmul(Rojo21,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm3,kmul(Rojo23,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm1,kmul(Rojo31,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm2,kmul(Rojo32,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm3,kmul(Rojo33,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(n2,kmul(nn,kmul(Ro212,kmsub(rm1,ksub(n2,ltet2),kmul(ltet1,rm2)))),kmadd(n2,kmul(nn,kmul(Ro232,kmsub(rm3,ksub(n2,ltet2),kmul(ltet3,rm2)))),kmadd(n3,kmul(nn,kmul(Ro313,kmsub(rm1,ksub(n3,ltet3),kmul(ltet1,rm3)))),kmadd(n3,kmul(nn,kmul(Ro323,kmsub(rm2,ksub(n3,ltet3),kmul(ltet2,rm3)))),kmadd(ltet3,kmsub(n2,kmul(rm2,kmsub(n1,R4p1223,kmul(n3,R4p2323))),kmul(R4p1223,kmul(rm1,kmul(n2,n2)))),kmadd(ltet1,kmsub(n3,kmsub(n2,kmul(R4p1223,rm2),kmul(n1,kmul(R4p1313,rm3))),kmul(R4p1223,kmul(rm3,kmul(n2,n2)))),kmadd(n3,kmsub(rm1,kmsub(ltet2,kmul(n2,R4p1223),kmul(ltet3,kmul(n1,R4p1313))),kmadd(ltet1,kmadd(n2,kmul(R4p1323,rm3),kmul(n1,kmul(R4p1213,rm2))),kmul(nn,kmul(Ro123,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n1,kmsub(ltet2,kmul(n3,kmul(R4p1223,kmul(rm2,ToReal(-2)))),kmadd(ltet1,kmul(n2,kmul(R4p1213,rm3)),kmul(nn,kmul(Ro211,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2))))))),kmadd(nn,kmsub(n1,kmul(rm1,kmul(Ro111,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro213,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n2,kmul(rm1,kmul(Ro112,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro233,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n3,kmul(rm1,kmul(Ro113,kmadd(ltet1,ToReal(-2),n1))),kmul(n1,kmul(Ro311,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(nn,kmsub(n1,kmul(Ro121,kmsub(rm2,ksub(n1,ltet1),kmul(ltet2,rm1))),kmul(n2,kmul(Ro312,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(n1,kmul(nn,kmsub(Ro131,kmsub(rm3,ksub(n1,ltet1),kmul(ltet3,rm1)),kmul(Ro321,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3)))))),knmsub(n1,kmadd(ltet2,kmul(n3,kmul(R4p1323,rm3)),kmadd(n2,kmadd(rm1,kmadd(ltet3,R4p1213,kmul(ltet2,R4p1212)),kmul(ltet1,kmul(R4p1212,rm2))),kmul(nn,kmul(Ro231,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2))))))),kmadd(n2,kmsub(ltet2,kmul(n1,kmul(R4p1223,rm3)),kmul(nn,kmadd(Ro322,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3))),kmul(Ro122,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n2,kmsub(ltet3,kmul(n1,kmul(R4p1323,kmul(rm3,ToReal(2)))),kmul(nn,kmul(Ro132,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))),kmul(n3,knmsub(ltet2,kmul(n2,kmul(R4p2323,rm3)),knmsub(ltet3,kmul(R4p1323,kmadd(n1,rm2,kmul(n2,rm1))),kmsub(R4p1213,kmul(rm1,kmsub(ltet1,kmul(n2,ToReal(2)),kmul(ltet2,n1))),kmul(nn,kmul(Ro133,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))))))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi3iL = + kmadd(im2,kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),knmsub(ltet2,kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(n1,kmul(kmadd(n3,R4p1223,kmul(nn,Ro221)),ToReal(-2)),kmadd(n3,kmul(nn,kmul(Ro223,ToReal(-2))),kmul(nn,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(-2))))))))),kmadd(nn,kmsub(ltet3,kmul(n3,Ro233),kmul(Ro121,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro321),kmul(Ro222,kmul(n2,n2))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro322),kmul(Ro323,kmul(n3,n3))),kmadd(ltet3,kmsub(n3,kmul(nn,Ro323),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet3,kmadd(n2,kmul(n3,R4p2323),kmadd(n1,kmul(nn,Ro231),kmsub(n1,kmsub(n3,R4p1323,kmul(n2,R4p1223)),kmul(R4p1213,kmul(n1,n1))))),kmadd(ltet1,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo12,kmul(nn,nn)))))))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro232,kmul(n3,kadd(Ro322,Ro223)))),kmul(n1,kmul(nn,kmadd(n3,kadd(Ro321,Ro123),kmul(n2,kadd(Ro221,Ro122)))))))))))))))),kmadd(im1,kmadd(ltet3,kmul(R4p1223,kmul(n2,n2)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(n3,kmul(nn,kmsub(ltet3,Ro133,kmul(n1,Ro311))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro311),kmul(Ro111,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro312),kmul(Ro212,kmul(n2,n2))),kmadd(nn,kmul(Ro313,kmsub(ltet3,n3,kmul(n3,n3))),kmadd(ltet3,kmadd(n1,kmul(n2,R4p1213),kmadd(n1,kmul(n3,R4p1313),kmadd(n2,kmul(n3,R4p1323),kmsub(n1,kmul(nn,Ro131),kmul(Rojo31,kmul(nn,nn)))))),kmadd(ltet2,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo21,kmul(nn,nn)))))))),knmsub(n1,kmul(nn,kmadd(n2,kadd(Ro211,Ro112),kmul(n3,Ro113))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro132,kmul(n3,kadd(Ro312,Ro213)))),kmul(ltet1,kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(Rojo11,kmul(nn,nn),kmadd(n1,kmul(nn,kmul(Ro111,ToReal(-2))),kmadd(n2,kmul(nn,kmul(Ro112,ToReal(-2))),kmadd(n3,kmul(nn,kmul(Ro113,ToReal(-2))),kmul(n2,kmul(n3,kmul(R4p1213,ToReal(2))))))))))))))))))))))),kmul(im3,kmadd(n1,kmul(Rojo13,kmul(nn,nn)),kmadd(n2,kmul(Rojo23,kmul(nn,nn)),kmadd(n3,kmul(Rojo33,kmul(nn,nn)),knmsub(n3,kmul(nn,kmadd(n2,kadd(Ro332,Ro233),kmul(n1,Ro331))),kmadd(ltet1,kmadd(n1,kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,kadd(Ro131,Ro311)))),kmadd(n2,kmadd(n3,R4p1323,kmul(nn,kadd(Ro132,Ro312))),kmadd(R4p1223,kmul(n2,n2),kmul(nn,kmsub(n3,kadd(Ro133,Ro313),kmul(nn,Rojo13)))))),kmadd(ltet2,kmadd(n2,kmadd(n3,R4p2323,kmul(nn,kadd(Ro232,Ro322))),knmsub(R4p1213,kmul(n1,n1),kmadd(n1,kmadd(n3,R4p1323,kmsub(nn,kadd(Ro231,Ro321),kmul(n2,R4p1223))),kmul(nn,kmsub(n3,kadd(Ro233,Ro323),kmul(nn,Rojo23)))))),kmadd(ltet3,knmsub(R4p1313,kmul(n1,n1),knmsub(R4p2323,kmul(n2,n2),kmsub(n2,kmul(nn,kmul(Ro332,ToReal(2))),kmul(Rojo33,kmul(nn,nn))))),kmadd(nn,knmsub(Ro131,kmul(n1,n1),kmsub(Ro333,kmsub(ltet3,kmul(n3,ToReal(2)),kmul(n3,n3)),kmul(Ro232,kmul(n2,n2)))),kmul(n1,kmadd(n2,kmsub(ltet3,kmul(R4p1323,ToReal(-2)),kmul(nn,kadd(Ro231,Ro132))),kmul(nn,kmsub(ltet3,kmul(Ro331,ToReal(2)),kmul(n3,Ro133)))))))))))))))); + + CCTK_REAL_VEC Psi2rL = + kmadd(ltet1,kmul(n3,kmul(R4p1223,kmadd(im2,im2,kmul(rm2,rm2)))),kmadd(nn,kmul(kmadd(im1,im2,kmul(rm1,rm2)),kmul(Ro211,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro311,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro322,ksub(n2,ltet2))),kmadd(nn,kmul(Ro222,kmul(kmadd(im2,im2,kmul(rm2,rm2)),ksub(n2,ltet2))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro133,ksub(n3,ltet3))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro233,ksub(n3,ltet3))),kmadd(nn,kmul(Ro112,kmsub(n2,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro221,kmsub(n1,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro113,kmsub(n3,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro331,kmsub(n1,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro223,kmsub(n3,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro332,kmsub(n2,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(ltet3,kmul(n3,kmul(R4p1323,ToReal(-2))),kmul(Rojo12,kmul(nn,nn))),kmadd(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n1,R4p1213),kmul(Rojo13,kmul(nn,nn))),kmadd(kmadd(im2,im2,kmul(rm2,rm2)),kmsub(ltet3,kmul(n1,R4p1223),kmul(Rojo22,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet1,kmul(n1,kmul(R4p1213,ToReal(-2))),kmul(Rojo23,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet3,kmul(n1,R4p1323),kmul(Rojo32,kmul(nn,nn))),kmadd(nn,kmul(Ro121,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet2,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro131,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(ltet3,kmul(R4p1313,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(n3,kmsub(ltet1,kmul(R4p1313,kmadd(im1,im3,kmul(rm1,rm3))),kmul(ltet2,kmul(R4p1213,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro212,kmsub(n2,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet1,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro232,kmsub(n2,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet3,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet1,kmsub(n3,kmul(R4p1323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(n1,kmul(R4p1212,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet3,kmsub(n2,kmul(R4p1323,kmadd(im1,im3,kmul(rm1,rm3))),kmul(n3,kmul(R4p2323,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro313,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(nn,kmul(Ro323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p1323,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p2323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(n2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(n2,kmsub(ltet3,kmul(R4p2323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(ltet1,kmul(R4p1323,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(kmadd(im1,im1,kmul(rm1,rm1)),kmsub(nn,kmul(Ro111,ksub(n1,ltet1)),kmul(Rojo11,kmul(nn,nn))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(nn,kmul(Ro122,ksub(n2,ltet2)),kmul(Rojo21,kmul(nn,nn))),kmadd(kmadd(im3,im3,kmul(rm3,rm3)),kmsub(nn,kmul(Ro333,ksub(n3,ltet3)),kmul(Rojo33,kmul(nn,nn))),knmsub(R4p1223,kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmadd(ltet2,n3,kmul(ltet3,n2)),kmul(ltet2,kmul(n1,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro321,kmadd(im3,kmsub(im2,n1,kmul(im1,ltet2)),kmul(rm3,kmsub(n1,rm2,kmul(ltet2,rm1))))),kmadd(nn,kmul(Ro231,kmadd(im2,kmsub(im3,n1,kmul(im1,ltet3)),kmul(rm2,kmsub(n1,rm3,kmul(ltet3,rm1))))),kmadd(nn,kmul(Ro312,kmadd(im3,kmsub(im1,n2,kmul(im2,ltet1)),kmul(rm3,kmsub(n2,rm1,kmul(ltet1,rm2))))),kmadd(nn,kmul(Ro132,kmadd(im1,kmsub(im3,n2,kmul(im2,ltet3)),kmul(rm1,kmsub(n2,rm3,kmul(ltet3,rm2))))),kmadd(nn,kmul(Ro213,kmadd(im2,kmsub(im1,n3,kmul(im3,ltet1)),kmul(rm2,kmsub(n3,rm1,kmul(ltet1,rm3))))),kmadd(nn,kmul(Ro123,kmadd(im1,kmsub(im2,n3,kmul(im3,ltet2)),kmul(rm1,kmsub(n3,rm2,kmul(ltet2,rm3))))),kmadd(ltet1,kmsub(n2,kmsub(R4p1213,kmadd(im1,im3,kmul(rm1,rm3)),kmul(R4p1223,kmadd(im2,im3,kmul(rm2,rm3)))),kmul(n1,kmul(R4p1313,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(R4p1212,kmadd(ltet1,kmul(n2,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet2,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmadd(R4p1213,kmadd(ltet1,kmul(n3,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet3,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n2,kmul(R4p1223,ToReal(2))),kmul(Rojo31,kmul(nn,nn)))))))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi2iL = + kmadd(im3,kmadd(n2,kmul(nn,kmul(rm1,Ro312)),kmadd(n3,kmul(nn,kmul(rm1,Ro313)),kmadd(n2,kmul(nn,kmul(rm2,Ro322)),kmadd(n3,kmul(nn,kmul(rm2,Ro323)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro331)),kmadd(ltet3,kmul(nn,kmul(rm2,Ro332)),kmadd(rm1,kmul(Rojo13,kmul(nn,nn)),kmadd(rm2,kmul(Rojo23,kmul(nn,nn)),kmadd(rm1,kmsub(n1,kmul(nn,Ro311),kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(nn,Ro321),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet1,kmadd(n3,kmul(R4p1313,rm1),kmadd(n3,kmul(R4p1323,rm2),kmadd(nn,kmul(rm1,Ro311),kmadd(nn,kmul(rm2,Ro312),kmadd(rm1,kmsub(n2,R4p1213,kmul(nn,Ro113)),kmul(rm2,kmsub(n2,R4p1223,kmul(nn,Ro213)))))))),kmsub(ltet2,kmadd(nn,kmul(rm1,Ro321),kmadd(nn,kmul(rm2,Ro322),knmsub(n1,kmadd(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(rm1,kmsub(n3,R4p1323,kmul(nn,Ro123)),kmul(rm2,kmsub(n3,R4p2323,kmul(nn,Ro223))))))),kmadd(ltet3,kmadd(rm2,kmadd(n1,R4p1323,kmadd(nn,Ro233,kmul(n2,R4p2323))),kmul(rm1,kmadd(n1,R4p1313,kmadd(nn,Ro133,kmul(n2,R4p1323))))),kmul(nn,kmadd(rm2,kmadd(n1,Ro231,kmadd(n3,Ro233,kmul(n2,Ro232))),kmul(rm1,kmadd(n1,Ro131,kmadd(n3,Ro133,kmul(n2,Ro132))))))))))))))))))),kmadd(im2,kmadd(n3,kmul(nn,kmul(rm1,Ro213)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro231)),kmadd(n2,kmul(nn,kmul(rm3,Ro232)),kmadd(ltet3,kmul(nn,kmul(rm3,Ro233)),kmadd(n3,kmul(nn,kmul(rm3,Ro233)),kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(rm1,kmsub(n2,kmul(nn,Ro212),kmul(Rojo21,kmul(nn,nn))),kmadd(rm3,kmsub(n1,kmul(nn,Ro231),kmul(Rojo23,kmul(nn,nn))),kmadd(nn,kmsub(rm1,kmsub(n1,Ro211,kmul(n3,Ro123)),kmul(n3,kmul(rm3,Ro323))),knmsub(ltet3,kmadd(rm1,kmadd(n1,R4p1213,kmadd(nn,Ro132,kmul(n2,R4p1223))),kmul(nn,kmul(rm3,Ro332))),kmadd(n1,kmsub(rm3,kmsub(ltet3,R4p1323,kmul(nn,Ro321)),kmul(nn,kmul(rm1,Ro121))),kmadd(n2,kmsub(rm3,kmsub(ltet3,R4p2323,kmul(nn,Ro322)),kmul(nn,kmul(rm1,Ro122))),kmadd(ltet2,kmadd(nn,kmul(rm1,Ro221),kmadd(nn,kmul(rm3,Ro223),kmadd(rm1,kmsub(n3,R4p1223,kmadd(nn,Ro122,kmul(n1,R4p1212))),kmul(rm3,kmsub(n1,R4p1223,kmadd(nn,Ro322,kmul(n3,R4p2323))))))),kmul(ltet1,kmadd(nn,kmul(rm3,Ro213),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1323,rm3)),kmul(nn,kmsub(rm1,ksub(Ro211,Ro112),kmul(rm3,Ro312))))))))))))))))))))),kmul(im1,kmadd(rm2,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo31,kmul(nn,nn)),knmsub(kmul(nn,nn),kmadd(rm3,Rojo13,kmul(rm2,Rojo12)),knmsub(ltet1,kmadd(n3,kmul(R4p1213,rm2),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm2,Ro211),kmadd(nn,kmul(rm3,Ro311),kmadd(rm2,kmsub(n2,R4p1212,kmul(nn,Ro112)),kmul(rm3,kmsub(n2,R4p1213,kmul(nn,Ro113)))))))),kmadd(nn,kmadd(n1,kmul(rm2,ksub(Ro121,Ro211)),kmadd(n2,kmul(rm2,ksub(Ro122,Ro212)),kmadd(n3,kmul(rm2,ksub(Ro123,Ro213)),kmadd(n1,kmul(rm3,ksub(Ro131,Ro311)),kmadd(n2,kmul(rm3,ksub(Ro132,Ro312)),kmul(n3,kmul(rm3,ksub(Ro133,Ro313)))))))),kmadd(ltet3,kmadd(n2,kmul(R4p1223,rm2),kmadd(n2,kmul(R4p1323,rm3),kmadd(nn,kmul(rm2,Ro132),kmadd(nn,kmul(rm3,Ro133),kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro231)),kmul(rm3,kmsub(n1,R4p1313,kmul(nn,Ro331)))))))),kmul(ltet2,kmadd(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmsub(nn,kmadd(rm2,ksub(Ro122,Ro221),kmul(rm3,ksub(Ro123,Ro321))),kmul(n3,kmadd(R4p1223,rm2,kmul(R4p1323,rm3))))))))))))))); + + CCTK_REAL_VEC Psi1rL = + kmadd(kmadd(n2,kmul(R4p1212,rm2),kmadd(n3,kmul(R4p1213,rm2),kmadd(n2,kmul(R4p1213,rm3),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm1,Ro111),kmadd(nn,kmul(rm2,Ro121),kmul(nn,kmul(rm3,Ro131)))))))),kmul(ltet1,ltet1),kmadd(n1,kmul(R4p1313,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p1323,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p2323,kmul(rm2,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm1,kmul(Ro313,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm2,kmul(Ro323,kmul(ltet3,ltet3))),kmadd(n1,kmul(rm1,kmul(Rojo11,kmul(nn,nn))),kmadd(n1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(n1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(n2,kmul(rm1,kmul(Rojo21,kmul(nn,nn))),kmadd(n2,kmul(rm2,kmul(Rojo22,kmul(nn,nn))),kmadd(n2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(n3,kmul(rm1,kmul(Rojo31,kmul(nn,nn))),kmadd(n3,kmul(rm2,kmul(Rojo32,kmul(nn,nn))),kmadd(n3,kmul(rm3,kmul(Rojo33,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo32,kmul(nn,nn)))),kmadd(rm3,kmsub(nn,kmul(Ro333,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo33,kmul(nn,nn)))),kmadd(kmul(ltet2,ltet2),kmadd(nn,kmul(rm1,Ro212),kmadd(nn,kmul(rm2,Ro222),kmadd(nn,kmul(rm3,Ro232),kmadd(rm3,kmsub(n3,R4p2323,kmul(n1,R4p1223)),kmul(rm1,kmsub(n1,R4p1212,kmul(n3,R4p1223))))))),kmsub(ltet3,kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,ToReal(-2)))),knmsub(rm1,kmul(Rojo31,kmul(nn,nn)),kmadd(n2,kmul(nn,kmsub(rm2,kmul(Ro223,ToReal(-2)),kmul(rm3,kadd(Ro323,Ro233)))),kmul(nn,knmsub(n3,kmul(rm2,kadd(Ro323,Ro233)),kmsub(rm1,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(n1,kmadd(rm3,kadd(Ro313,Ro133),kmul(rm2,kadd(Ro213,Ro123)))))))))),kmadd(ltet2,kmadd(ltet1,kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(rm3,kmsub(n1,R4p1213,kmul(nn,Ro132)),knmsub(nn,kmul(rm1,kadd(Ro211,Ro112)),kmadd(rm3,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmul(nn,Ro231)),kmul(rm2,kmsub(n1,R4p1212,kmul(nn,kadd(Ro221,Ro122))))))))),kmsub(nn,kmadd(n3,kmul(rm1,Ro132),kmadd(n3,kmul(rm2,Ro232),kmadd(n3,kmul(rm1,Ro312),kmadd(n3,kmul(rm2,Ro322),kmadd(nn,kmul(rm1,Rojo21),kmadd(nn,kmul(rm2,Rojo22),kmadd(nn,kmul(rm3,Rojo23),kmadd(n3,kmul(rm3,kmul(Ro332,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro132,Ro312),kmul(rm1,kmul(Ro112,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro232,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))))),kmul(ltet3,kmadd(nn,kmul(rm1,Ro213),kmadd(nn,kmul(rm2,Ro223),kmadd(nn,kmul(rm3,Ro233),kmadd(nn,kmul(rm1,Ro312),kmadd(nn,kmul(rm2,Ro322),kmadd(nn,kmul(rm3,Ro332),kmadd(rm1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmsub(n1,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(R4p2323,kmadd(n2,rm3,kmul(n3,rm2)))))))))))))),kmul(ltet1,kmadd(ltet3,kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro123)),kmadd(rm2,kmsub(n3,R4p1323,kmul(nn,Ro321)),kmadd(rm1,kmsub(n3,R4p1313,kmul(nn,kadd(Ro311,Ro113))),kmadd(rm3,kmsub(n1,R4p1313,kmul(nn,kadd(Ro331,Ro133))),kmul(n2,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))))),kmul(nn,kmadd(n3,kmul(rm1,Ro131),kmadd(n3,kmul(rm2,Ro231),kmadd(n3,kmul(rm1,Ro311),kmadd(n3,kmul(rm2,Ro321),kmadd(nn,kmul(rm1,Rojo11),kmadd(nn,kmul(rm2,Rojo12),kmadd(nn,kmul(rm3,Rojo13),kmadd(n3,kmul(rm3,kmul(Ro331,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro131,Ro311),kmul(rm1,kmul(Ro111,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro231,Ro321),kmul(rm2,kmul(Ro221,ToReal(2)))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi1iL = + kmadd(im1,kmadd(nn,kmul(Ro111,kmul(ltet1,ltet1)),kmadd(n1,kmul(R4p1313,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro313,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(kmul(ltet2,ltet2),kmadd(n1,R4p1212,kmsub(nn,Ro212,kmul(n3,R4p1223))),kmsub(ltet3,kmsub(nn,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(Rojo31,kmul(nn,nn))),kmadd(ltet2,kmadd(ltet1,kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211)))),kmsub(nn,kmadd(n3,Ro132,kmadd(n2,kadd(Ro122,Ro212),kmadd(n3,Ro312,kmadd(nn,Rojo21,kmul(n1,kmul(Ro112,ToReal(2))))))),kmul(ltet3,kmadd(n2,R4p1223,kmadd(nn,Ro213,kmadd(nn,Ro312,kmsub(n1,kmul(R4p1213,ToReal(2)),kmul(n3,R4p1323)))))))),kmul(ltet1,kmadd(ltet3,kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),kmul(nn,kmadd(n3,Ro131,kmadd(n2,kadd(Ro121,Ro211),kmadd(n3,Ro311,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2)))))))))))))))))))),kmadd(im2,kmadd(kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,Ro121))),kmul(ltet1,ltet1),kmadd(nn,kmul(Ro222,kmul(ltet2,ltet2)),kmadd(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p2323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro323,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),kmadd(ltet3,kmul(nn,kmsub(n2,kmul(Ro223,ToReal(-2)),kmul(n3,Ro323))),knmsub(ltet3,kmadd(nn,kmadd(n1,kadd(Ro213,Ro123),kmul(n3,Ro233)),kmul(Rojo32,kmul(nn,nn))),kmsub(ltet2,kmsub(ltet3,kmadd(n1,R4p1223,kmsub(nn,kadd(Ro223,Ro322),kmul(n3,R4p2323))),kmul(nn,kmadd(n1,kadd(Ro122,Ro212),kmadd(n3,Ro232,kmadd(n3,Ro322,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(2))))))))),kmul(ltet1,kmadd(ltet2,kmsub(n1,R4p1212,kmadd(nn,kadd(Ro122,Ro221),kmul(n3,R4p1223))),kmadd(ltet3,kmadd(n1,R4p1213,kmadd(n3,R4p1323,kmsub(n2,kmul(R4p1223,ToReal(2)),kmul(nn,kadd(Ro321,Ro123))))),kmul(nn,kmadd(n1,kadd(Ro121,Ro211),kmadd(n3,Ro231,kmadd(n3,Ro321,kmadd(nn,Rojo12,kmul(n2,kmul(Ro221,ToReal(2)))))))))))))))))))))),kmul(im3,kmadd(kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,Ro131))),kmul(ltet1,ltet1),kmsub(kmul(ltet2,ltet2),kmadd(n3,R4p2323,kmsub(nn,Ro232,kmul(n1,R4p1223))),kmadd(ltet1,kmadd(ltet3,kmadd(n1,R4p1313,kmsub(n2,R4p1323,kmul(nn,kadd(Ro133,Ro331)))),kmadd(ltet2,kmadd(n1,R4p1213,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmadd(nn,kadd(Ro231,Ro132),kmul(n2,R4p1223)))),kmul(nn,kmadd(n1,kadd(Ro131,Ro311),kmadd(n2,kadd(Ro231,Ro321),kmadd(nn,Rojo13,kmul(n3,kmul(Ro331,ToReal(2))))))))),kmadd(nn,knmsub(nn,kmadd(n1,Rojo13,kmadd(n2,Rojo23,kmul(n3,Rojo33))),kmsub(ltet3,kmadd(n1,kadd(Ro133,Ro313),kmadd(n2,kadd(Ro233,Ro323),kmadd(nn,Rojo33,kmul(n3,kmul(Ro333,ToReal(2)))))),kmul(Ro333,kmul(ltet3,ltet3)))),kmul(ltet2,kmadd(ltet3,kmadd(n1,R4p1323,kmsub(n2,R4p2323,kmul(nn,kadd(Ro233,Ro332)))),kmul(nn,kmadd(n1,kadd(Ro132,Ro312),kmadd(n2,kadd(Ro232,Ro322),kmadd(nn,Rojo23,kmul(n3,kmul(Ro332,ToReal(2)))))))))))))))); + + CCTK_REAL_VEC Psi0rL = + kmadd(rm1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(rm1,kmul(rm2,kmul(Rojo21,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(ltet2,ltet2),kmul(rm1,rm1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rm1,rm1)),kmadd(R4p1212,kmul(kmul(ltet1,ltet1),kmul(rm2,rm2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rm2,rm2)),kmadd(R4p1313,kmul(kmul(ltet1,ltet1),kmul(rm3,rm3)),kmadd(R4p2323,kmul(kmul(ltet2,ltet2),kmul(rm3,rm3)),kmadd(kmadd(ltet1,kmul(ltet2,kmul(R4p1212,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1213,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1313,kmul(rm1,rm3))),kmadd(ltet1,kmul(ltet3,kmul(R4p1323,kmul(rm2,rm3))),kmadd(ltet2,kmul(ltet3,kmul(R4p2323,kmul(rm2,rm3))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(im3,im3))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(im3,im3))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(im3,im3))),kmul(R4p1223,kmul(rm1,kmul(rm3,kmul(ltet2,ltet2)))))))))))),ToReal(-2),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,kmul(kmul(rm2,rm2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(ltet3,ltet3),kmul(rm1,rm1),kmul(kmul(im3,im3),kmul(ltet1,ltet1))),kmadd(R4p2323,kmsub(kmul(ltet3,ltet3),kmul(rm2,rm2),kmul(kmul(im3,im3),kmul(ltet2,ltet2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rm3,rm3),kmul(kmul(im3,im3),kmul(nn,nn))),kmadd(kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro112))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro113))),kmadd(ltet2,kmul(nn,kmul(rm1,kmul(rm3,Ro123))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro132))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro133))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro211))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro213))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro223))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro231))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro233))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro311))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro312))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro322))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro331))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro332))),kmadd(R4p1213,kmul(rm2,kmul(rm3,kmul(ltet1,ltet1))),kmul(R4p1323,kmul(rm1,kmul(rm2,kmul(ltet3,ltet3)))))))))))))))))))),ToReal(2),kmadd(ltet1,kmul(nn,kmul(Ro111,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro121,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro131,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro212,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro222,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro232,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(kmul(rm3,rm3),ToReal(2)))),knmsub(kmul(im2,im2),kmadd(R4p1212,kmul(ltet1,ltet1),kmadd(R4p2323,kmul(ltet3,ltet3),kmadd(Rojo22,kmul(nn,nn),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,ToReal(-2))),kmadd(ltet1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(ltet2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(ltet3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(ltet2,kmadd(ltet1,kmul(R4p1213,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(ltet3,kmul(R4p1323,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(im3,im3),ToReal(-2))),kmadd(ltet3,kmul(R4p1223,kmul(rm1,kmul(rm2,ToReal(2)))),kmadd(ltet1,kmul(R4p1223,kmul(rm2,kmul(rm3,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm3,kmul(Ro321,ToReal(2)))),kmul(ltet3,kmul(R4p1213,kmul(kmul(rm1,rm1),ToReal(2)))))))))))),knmsub(kmul(im1,im1),kmadd(R4p1212,kmul(ltet2,ltet2),kmadd(R4p1313,kmul(ltet3,ltet3),kmadd(ltet2,kmul(kmadd(ltet3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(ltet1,kmul(Ro111,ToReal(2))))))))),kmsub(im1,kmul(im3,kmadd(R4p1223,kmul(kmul(ltet2,ltet2),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1213,kmsub(ltet3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(ltet2,kmul(kmsub(ltet3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(ltet3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(im2,kmadd(im3,kmadd(R4p1213,kmul(kmul(ltet1,ltet1),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(ltet3,R4p1323))),ToReal(2)),kmadd(ltet2,kmadd(ltet3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(ltet3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(im1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(ltet1,kmul(ToReal(-2),kmadd(ltet2,R4p1212,kmsub(ltet3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(ltet3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(ltet2,kmul(kmadd(ltet3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(ltet3,ltet3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); + + CCTK_REAL_VEC Psi0iL = + kmadd(im1,kmadd(nn,kmadd(ltet1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(ltet3,ltet3),kmadd(kmul(ltet2,ltet2),kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(ltet2,knmsub(ltet1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(ltet3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2)))))))),kmul(ltet3,kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(ltet1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3)))))))))),kmadd(im3,kmadd(kmul(ltet2,ltet2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(nn,kmadd(ltet3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(ltet1,ltet1),kmadd(ltet1,knmsub(ltet3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(ltet2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2)))))))),kmul(ltet2,kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(ltet3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2)))))))))),kmul(im2,kmadd(kmadd(rm1,kadd(Rojo12,Rojo21),kmul(rm3,kadd(Rojo23,Rojo32))),kmul(nn,nn),kmadd(ToReal(2),kmadd(ltet3,kmul(nn,kmadd(rm1,kadd(Ro132,Ro231),kmul(rm3,Ro233))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(ltet1,ltet1),kmadd(kmadd(R4p1323,rm1,kmul(R4p2323,rm2)),kmul(ltet3,ltet3),kmadd(rm2,kmul(Rojo22,kmul(nn,nn)),kmadd(ltet1,kmadd(ltet2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(ltet3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))),kmul(ltet2,kmadd(ltet3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))),kmul(ltet3,kmul(nn,kmadd(rm3,kmul(Ro332,ToReal(2)),kmul(rm2,kmul(Ro232,ToReal(4))))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(Psi0i[index],Psi0iL); + vec_store_nta_partial(Psi0r[index],Psi0rL); + vec_store_nta_partial(Psi1i[index],Psi1iL); + vec_store_nta_partial(Psi1r[index],Psi1rL); + vec_store_nta_partial(Psi2i[index],Psi2iL); + vec_store_nta_partial(Psi2r[index],Psi2rL); + vec_store_nta_partial(Psi3i[index],Psi3iL); + vec_store_nta_partial(Psi3r[index],Psi3rL); + vec_store_nta_partial(Psi4i[index],Psi4iL); + vec_store_nta_partial(Psi4r[index],Psi4rL); + } + LC_ENDLOOP3VEC(WeylScal4_psis_calc_Nth); +} + +extern "C" void WeylScal4_psis_calc_Nth(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering WeylScal4_psis_calc_Nth_Body"); + } + + if (cctk_iteration % WeylScal4_psis_calc_Nth_calc_every != WeylScal4_psis_calc_Nth_calc_offset) + { + return; + } + + const char *const groups[] = { + "admbase::curv", + "admbase::metric", + "grid::coordinates", + "WeylScal4::Psi0i_group", + "WeylScal4::Psi0r_group", + "WeylScal4::Psi1i_group", + "WeylScal4::Psi1r_group", + "WeylScal4::Psi2i_group", + "WeylScal4::Psi2r_group", + "WeylScal4::Psi3i_group", + "WeylScal4::Psi3r_group", + "WeylScal4::Psi4i_group", + "WeylScal4::Psi4r_group"}; + GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_psis_calc_Nth", 13, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_Nth", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_Nth", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_Nth", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psis_calc_Nth", 4, 4, 4); + break; + } + + GenericFD_LoopOverInterior(cctkGH, WeylScal4_psis_calc_Nth_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_psis_calc_Nth_Body"); + } +} diff --git a/src/invars_calc_2nd.cc b/src/invars_calc_2nd.cc deleted file mode 100644 index 683c2fd..0000000 --- a/src/invars_calc_2nd.cc +++ /dev/null @@ -1,326 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void invars_calc_2nd_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvIi_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvIi_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvIr_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvIr_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ1_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ1_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ2_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ2_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ3_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ3_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ4_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ4_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJi_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJi_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJr_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJr_group."); - return; -} - -static void invars_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(invars_calc_2nd, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC Psi0iL = vec_load(Psi0i[index]); - CCTK_REAL_VEC Psi0rL = vec_load(Psi0r[index]); - CCTK_REAL_VEC Psi1iL = vec_load(Psi1i[index]); - CCTK_REAL_VEC Psi1rL = vec_load(Psi1r[index]); - CCTK_REAL_VEC Psi2iL = vec_load(Psi2i[index]); - CCTK_REAL_VEC Psi2rL = vec_load(Psi2r[index]); - CCTK_REAL_VEC Psi3iL = vec_load(Psi3i[index]); - CCTK_REAL_VEC Psi3rL = vec_load(Psi3r[index]); - CCTK_REAL_VEC Psi4iL = vec_load(Psi4i[index]); - CCTK_REAL_VEC Psi4rL = vec_load(Psi4r[index]); - - - - /* Include user supplied include files */ - - /* Precompute derivatives */ - - switch(fdOrder) - { - case 2: - break; - - case 4: - break; - - case 6: - break; - - case 8: - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC curvIrL = - kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),knmsub(Psi0iL,Psi4iL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(3),kmul(Psi1iL,kmul(Psi3iL,ToReal(4)))))))); - - CCTK_REAL_VEC curvIiL = - kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(-4),kmul(Psi2iL,kmul(Psi2rL,ToReal(6)))))); - - CCTK_REAL_VEC curvJrL = - knmsub(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2),knmsub(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(2)),kmul(Psi1iL,kmul(Psi3rL,ToReal(2)))))),kmadd(Psi2rL,kmadd(Psi0rL,Psi4rL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))),kmul(Psi2rL,kmul(kmul(Psi2iL,Psi2iL),ToReal(3))))))))); - - CCTK_REAL_VEC curvJiL = - kmadd(Psi2iL,kmul(Psi2iL,Psi2iL),kmadd(Psi4rL,kmadd(Psi0iL,Psi2rL,kmul(Psi1iL,kmul(Psi1rL,ToReal(-2)))),kmadd(Psi0rL,kmadd(Psi2rL,Psi4iL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-2)))),kmadd(Psi4iL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0iL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(Psi2rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)),kmul(Psi2iL,kmadd(Psi0rL,Psi4rL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))))))))))); - - CCTK_REAL_VEC curvJ1L = - kmul(ToReal(-16),kmadd(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-4)),kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),knmsub(Psi0rL,Psi4rL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(3),kmul(Psi1rL,kmul(Psi3rL,ToReal(4))))))))); - - CCTK_REAL_VEC curvJ2L = - kmul(kmadd(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmadd(Psi0iL,Psi4iL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),kmadd(Psi1rL,kmul(Psi3rL,ToReal(-2)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(2)),kmul(Psi0rL,Psi4rL))))),kmul(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)))))))))),ToReal(96)); - - CCTK_REAL_VEC curvJ3L = - kmul(kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi3rL,Psi3rL))),ToReal(-16),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi2rL,Psi2rL),kmul(kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(Psi0iL,Psi4iL)))),ToReal(6)),kmadd(kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi3iL,Psi4iL)),kmadd(Psi0rL,kmul(Psi1iL,kmul(Psi3rL,Psi4iL)),kmadd(Psi0iL,kmul(Psi1rL,kmul(Psi3rL,Psi4iL)),kmul(Psi0iL,kmul(Psi1rL,kmul(Psi3iL,Psi4rL)))))),ToReal(8),kmadd(Psi3rL,kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi4rL,ToReal(-8))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi4rL,ToReal(8))))),kmadd(Psi1iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-64))),kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi4iL,ToReal(-8))),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi4rL,ToReal(8)))))),kmadd(kmadd(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL),kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(9),kmadd(kmul(Psi2iL,Psi2iL),kmul(ToReal(-6),kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),knmsub(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(kmul(Psi2rL,Psi2rL),ToReal(9))))))),kmadd(Psi2iL,kmul(Psi2rL,kmul(knmsub(Psi0rL,Psi4iL,knmsub(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(4)),kmul(Psi1iL,kmul(Psi3rL,ToReal(4)))))),ToReal(12))),kmul(kmadd(kmul(Psi1iL,Psi1iL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1rL,Psi1rL),kmul(Psi3rL,Psi3rL))),ToReal(16))))))))))))))),ToReal(64)); - - CCTK_REAL_VEC curvJ4L = - kmul(ToReal(-640),kmadd(Psi1iL,kmul(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi3rL,Psi3rL)))),ToReal(-12)),kmadd(kmadd(Psi3iL,kmul(Psi4iL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL))))),ToReal(-4),kmadd(kmul(Psi2rL,kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(-3),kmadd(Psi4rL,kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3iL,Psi3iL),kmsub(kmul(Psi0iL,Psi0iL),kmul(Psi3rL,Psi3rL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3rL,Psi3rL),kmul(kmul(Psi0iL,Psi0iL),kmul(Psi3iL,Psi3iL))))),kmadd(Psi0rL,kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4iL,Psi4iL),kmsub(kmul(Psi1iL,Psi1iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4rL,Psi4rL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi4iL,Psi4iL))))),kmadd(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1iL,kmul(Psi1iL,Psi1iL)),kmadd(Psi3rL,kmul(Psi4rL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmadd(Psi0rL,kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),Psi4rL,kmul(Psi1iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)))),kmul(Psi1rL,kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)),kmul(Psi0rL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL)))))))),ToReal(4),kmadd(ToReal(-2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0iL,Psi0iL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1iL,Psi1iL),kmul(Psi0rL,kmul(Psi3iL,Psi3iL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL)))))),kmadd(ToReal(2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0rL,Psi0rL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3rL,Psi3rL))))),kmadd(kmul(Psi2iL,kmul(Psi2iL,Psi2iL)),kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(5)))),kmul(Psi2iL,kmadd(Psi3rL,kmadd(Psi1iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmul(Psi3iL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-8)))),kmadd(Psi4iL,kmadd(Psi2rL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-3)),kmul(Psi4rL,kmsub(Psi0iL,Psi0iL,kmul(Psi0rL,Psi0rL)))),knmsub(Psi0iL,kmadd(Psi1iL,kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmadd(Psi2rL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-3)),kmadd(Psi0rL,kmsub(Psi4rL,Psi4rL,kmul(Psi4iL,Psi4iL)),kmul(kmadd(Psi4rL,kmul(Psi2rL,Psi2rL),kmul(Psi2rL,kmul(Psi3iL,Psi3iL))),ToReal(3))))),kmadd(Psi0rL,kmadd(Psi1iL,kmul(Psi3rL,Psi4rL),kmadd(Psi4iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-3)),kmul(Psi3iL,kmsub(Psi2rL,kmul(Psi3rL,ToReal(6)),kmul(Psi1iL,Psi4iL))))),kmadd(kmul(Psi1rL,Psi1rL),kmadd(Psi2rL,kmul(Psi4iL,ToReal(3)),kmul(Psi3iL,kmul(Psi3rL,ToReal(8)))),kmul(Psi1rL,kmadd(Psi3iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmadd(Psi4iL,kmsub(Psi0rL,Psi3rL,kmul(Psi0iL,Psi3iL)),kmadd(Psi4rL,kmadd(Psi0rL,Psi3iL,kmadd(Psi0iL,Psi3rL,kmul(Psi1iL,kmul(Psi2rL,ToReal(6))))),kmul(Psi1iL,kmadd(kmul(Psi3iL,Psi3iL),ToReal(-8),kmul(kmul(Psi3rL,Psi3rL),ToReal(8)))))))))))))))),kmadd(ToReal(3),kmadd(kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmul(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2)))),kmul(kmul(Psi2iL,Psi2iL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmul(ToReal(2),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),ToReal(10)))))))),kmadd(Psi1rL,kmadd(Psi0rL,kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(-12))),kmadd(Psi0iL,kmul(Psi1iL,kmul(kmul(Psi4iL,Psi4iL),ToReal(-2))),kmul(kmul(Psi1iL,Psi1iL),kmadd(Psi3rL,kmul(Psi4rL,ToReal(-12)),kmul(Psi3iL,kmul(Psi4iL,ToReal(12))))))),kmadd(Psi0iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-12))),kmul(Psi1iL,kmadd(Psi1rL,kmul(kmul(Psi4rL,Psi4rL),ToReal(2)),kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(12)))))),kmul(Psi2rL,kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmul(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL)),ToReal(-15),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmul(Psi1iL,Psi1iL),ToReal(-8),kmul(kmul(Psi1rL,Psi1rL),ToReal(8))),kmul(ToReal(2),kmadd(Psi1rL,kmadd(Psi0iL,kmul(Psi3rL,Psi4iL),kmadd(Psi0iL,kmul(Psi3iL,Psi4rL),kmul(Psi0rL,kmsub(Psi3iL,Psi4iL,kmul(Psi3rL,Psi4rL))))),kmul(Psi1iL,kmadd(Psi0rL,kmul(Psi3rL,Psi4iL),kmadd(Psi0rL,kmul(Psi3iL,Psi4rL),kmadd(Psi0iL,kmul(Psi3rL,Psi4rL),kmul(Psi3iL,kmsub(Psi1rL,kmul(Psi3rL,ToReal(16)),kmul(Psi0iL,Psi4iL))))))))))))))))))))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(curvIi[index],curvIiL); - vec_store_nta_partial(curvIr[index],curvIrL); - vec_store_nta_partial(curvJ1[index],curvJ1L); - vec_store_nta_partial(curvJ2[index],curvJ2L); - vec_store_nta_partial(curvJ3[index],curvJ3L); - vec_store_nta_partial(curvJ4[index],curvJ4L); - vec_store_nta_partial(curvJi[index],curvJiL); - vec_store_nta_partial(curvJr[index],curvJrL); - } - LC_ENDLOOP3VEC(invars_calc_2nd); -} - -extern "C" void invars_calc_2nd(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering invars_calc_2nd_Body"); - } - - if (cctk_iteration % invars_calc_2nd_calc_every != invars_calc_2nd_calc_offset) - { - return; - } - - const char *const groups[] = { - "WeylScal4::curvIi_group", - "WeylScal4::curvIr_group", - "WeylScal4::curvJ1_group", - "WeylScal4::curvJ2_group", - "WeylScal4::curvJ3_group", - "WeylScal4::curvJ4_group", - "WeylScal4::curvJi_group", - "WeylScal4::curvJr_group", - "WeylScal4::Psi0i_group", - "WeylScal4::Psi0r_group", - "WeylScal4::Psi1i_group", - "WeylScal4::Psi1r_group", - "WeylScal4::Psi2i_group", - "WeylScal4::Psi2r_group", - "WeylScal4::Psi3i_group", - "WeylScal4::Psi3r_group", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "invars_calc_2nd", 18, groups); - - switch(fdOrder) - { - case 2: - break; - - case 4: - break; - - case 6: - break; - - case 8: - break; - } - - GenericFD_LoopOverInterior(cctkGH, invars_calc_2nd_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving invars_calc_2nd_Body"); - } -} diff --git a/src/invars_calc_4th.cc b/src/invars_calc_4th.cc deleted file mode 100644 index 71ea9c1..0000000 --- a/src/invars_calc_4th.cc +++ /dev/null @@ -1,326 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void invars_calc_4th_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvIi_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvIi_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvIr_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvIr_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ1_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ1_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ2_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ2_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ3_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ3_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ4_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ4_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJi_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJi_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJr_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJr_group."); - return; -} - -static void invars_calc_4th_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(invars_calc_4th, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC Psi0iL = vec_load(Psi0i[index]); - CCTK_REAL_VEC Psi0rL = vec_load(Psi0r[index]); - CCTK_REAL_VEC Psi1iL = vec_load(Psi1i[index]); - CCTK_REAL_VEC Psi1rL = vec_load(Psi1r[index]); - CCTK_REAL_VEC Psi2iL = vec_load(Psi2i[index]); - CCTK_REAL_VEC Psi2rL = vec_load(Psi2r[index]); - CCTK_REAL_VEC Psi3iL = vec_load(Psi3i[index]); - CCTK_REAL_VEC Psi3rL = vec_load(Psi3r[index]); - CCTK_REAL_VEC Psi4iL = vec_load(Psi4i[index]); - CCTK_REAL_VEC Psi4rL = vec_load(Psi4r[index]); - - - - /* Include user supplied include files */ - - /* Precompute derivatives */ - - switch(fdOrder) - { - case 2: - break; - - case 4: - break; - - case 6: - break; - - case 8: - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC curvIrL = - kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),knmsub(Psi0iL,Psi4iL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(3),kmul(Psi1iL,kmul(Psi3iL,ToReal(4)))))))); - - CCTK_REAL_VEC curvIiL = - kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(-4),kmul(Psi2iL,kmul(Psi2rL,ToReal(6)))))); - - CCTK_REAL_VEC curvJrL = - knmsub(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2),knmsub(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(2)),kmul(Psi1iL,kmul(Psi3rL,ToReal(2)))))),kmadd(Psi2rL,kmadd(Psi0rL,Psi4rL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))),kmul(Psi2rL,kmul(kmul(Psi2iL,Psi2iL),ToReal(3))))))))); - - CCTK_REAL_VEC curvJiL = - kmadd(Psi2iL,kmul(Psi2iL,Psi2iL),kmadd(Psi4rL,kmadd(Psi0iL,Psi2rL,kmul(Psi1iL,kmul(Psi1rL,ToReal(-2)))),kmadd(Psi0rL,kmadd(Psi2rL,Psi4iL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-2)))),kmadd(Psi4iL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0iL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(Psi2rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)),kmul(Psi2iL,kmadd(Psi0rL,Psi4rL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))))))))))); - - CCTK_REAL_VEC curvJ1L = - kmul(ToReal(-16),kmadd(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-4)),kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),knmsub(Psi0rL,Psi4rL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(3),kmul(Psi1rL,kmul(Psi3rL,ToReal(4))))))))); - - CCTK_REAL_VEC curvJ2L = - kmul(kmadd(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmadd(Psi0iL,Psi4iL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),kmadd(Psi1rL,kmul(Psi3rL,ToReal(-2)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(2)),kmul(Psi0rL,Psi4rL))))),kmul(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)))))))))),ToReal(96)); - - CCTK_REAL_VEC curvJ3L = - kmul(kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi3rL,Psi3rL))),ToReal(-16),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi2rL,Psi2rL),kmul(kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(Psi0iL,Psi4iL)))),ToReal(6)),kmadd(kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi3iL,Psi4iL)),kmadd(Psi0rL,kmul(Psi1iL,kmul(Psi3rL,Psi4iL)),kmadd(Psi0iL,kmul(Psi1rL,kmul(Psi3rL,Psi4iL)),kmul(Psi0iL,kmul(Psi1rL,kmul(Psi3iL,Psi4rL)))))),ToReal(8),kmadd(Psi3rL,kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi4rL,ToReal(-8))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi4rL,ToReal(8))))),kmadd(Psi1iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-64))),kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi4iL,ToReal(-8))),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi4rL,ToReal(8)))))),kmadd(kmadd(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL),kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(9),kmadd(kmul(Psi2iL,Psi2iL),kmul(ToReal(-6),kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),knmsub(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(kmul(Psi2rL,Psi2rL),ToReal(9))))))),kmadd(Psi2iL,kmul(Psi2rL,kmul(knmsub(Psi0rL,Psi4iL,knmsub(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(4)),kmul(Psi1iL,kmul(Psi3rL,ToReal(4)))))),ToReal(12))),kmul(kmadd(kmul(Psi1iL,Psi1iL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1rL,Psi1rL),kmul(Psi3rL,Psi3rL))),ToReal(16))))))))))))))),ToReal(64)); - - CCTK_REAL_VEC curvJ4L = - kmul(ToReal(-640),kmadd(Psi1iL,kmul(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi3rL,Psi3rL)))),ToReal(-12)),kmadd(kmadd(Psi3iL,kmul(Psi4iL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL))))),ToReal(-4),kmadd(kmul(Psi2rL,kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(-3),kmadd(Psi4rL,kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3iL,Psi3iL),kmsub(kmul(Psi0iL,Psi0iL),kmul(Psi3rL,Psi3rL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3rL,Psi3rL),kmul(kmul(Psi0iL,Psi0iL),kmul(Psi3iL,Psi3iL))))),kmadd(Psi0rL,kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4iL,Psi4iL),kmsub(kmul(Psi1iL,Psi1iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4rL,Psi4rL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi4iL,Psi4iL))))),kmadd(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1iL,kmul(Psi1iL,Psi1iL)),kmadd(Psi3rL,kmul(Psi4rL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmadd(Psi0rL,kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),Psi4rL,kmul(Psi1iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)))),kmul(Psi1rL,kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)),kmul(Psi0rL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL)))))))),ToReal(4),kmadd(ToReal(-2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0iL,Psi0iL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1iL,Psi1iL),kmul(Psi0rL,kmul(Psi3iL,Psi3iL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL)))))),kmadd(ToReal(2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0rL,Psi0rL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3rL,Psi3rL))))),kmadd(kmul(Psi2iL,kmul(Psi2iL,Psi2iL)),kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(5)))),kmul(Psi2iL,kmadd(Psi3rL,kmadd(Psi1iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmul(Psi3iL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-8)))),kmadd(Psi4iL,kmadd(Psi2rL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-3)),kmul(Psi4rL,kmsub(Psi0iL,Psi0iL,kmul(Psi0rL,Psi0rL)))),knmsub(Psi0iL,kmadd(Psi1iL,kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmadd(Psi2rL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-3)),kmadd(Psi0rL,kmsub(Psi4rL,Psi4rL,kmul(Psi4iL,Psi4iL)),kmul(kmadd(Psi4rL,kmul(Psi2rL,Psi2rL),kmul(Psi2rL,kmul(Psi3iL,Psi3iL))),ToReal(3))))),kmadd(Psi0rL,kmadd(Psi1iL,kmul(Psi3rL,Psi4rL),kmadd(Psi4iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-3)),kmul(Psi3iL,kmsub(Psi2rL,kmul(Psi3rL,ToReal(6)),kmul(Psi1iL,Psi4iL))))),kmadd(kmul(Psi1rL,Psi1rL),kmadd(Psi2rL,kmul(Psi4iL,ToReal(3)),kmul(Psi3iL,kmul(Psi3rL,ToReal(8)))),kmul(Psi1rL,kmadd(Psi3iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmadd(Psi4iL,kmsub(Psi0rL,Psi3rL,kmul(Psi0iL,Psi3iL)),kmadd(Psi4rL,kmadd(Psi0rL,Psi3iL,kmadd(Psi0iL,Psi3rL,kmul(Psi1iL,kmul(Psi2rL,ToReal(6))))),kmul(Psi1iL,kmadd(kmul(Psi3iL,Psi3iL),ToReal(-8),kmul(kmul(Psi3rL,Psi3rL),ToReal(8)))))))))))))))),kmadd(ToReal(3),kmadd(kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmul(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2)))),kmul(kmul(Psi2iL,Psi2iL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmul(ToReal(2),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),ToReal(10)))))))),kmadd(Psi1rL,kmadd(Psi0rL,kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(-12))),kmadd(Psi0iL,kmul(Psi1iL,kmul(kmul(Psi4iL,Psi4iL),ToReal(-2))),kmul(kmul(Psi1iL,Psi1iL),kmadd(Psi3rL,kmul(Psi4rL,ToReal(-12)),kmul(Psi3iL,kmul(Psi4iL,ToReal(12))))))),kmadd(Psi0iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-12))),kmul(Psi1iL,kmadd(Psi1rL,kmul(kmul(Psi4rL,Psi4rL),ToReal(2)),kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(12)))))),kmul(Psi2rL,kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmul(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL)),ToReal(-15),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmul(Psi1iL,Psi1iL),ToReal(-8),kmul(kmul(Psi1rL,Psi1rL),ToReal(8))),kmul(ToReal(2),kmadd(Psi1rL,kmadd(Psi0iL,kmul(Psi3rL,Psi4iL),kmadd(Psi0iL,kmul(Psi3iL,Psi4rL),kmul(Psi0rL,kmsub(Psi3iL,Psi4iL,kmul(Psi3rL,Psi4rL))))),kmul(Psi1iL,kmadd(Psi0rL,kmul(Psi3rL,Psi4iL),kmadd(Psi0rL,kmul(Psi3iL,Psi4rL),kmadd(Psi0iL,kmul(Psi3rL,Psi4rL),kmul(Psi3iL,kmsub(Psi1rL,kmul(Psi3rL,ToReal(16)),kmul(Psi0iL,Psi4iL))))))))))))))))))))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(curvIi[index],curvIiL); - vec_store_nta_partial(curvIr[index],curvIrL); - vec_store_nta_partial(curvJ1[index],curvJ1L); - vec_store_nta_partial(curvJ2[index],curvJ2L); - vec_store_nta_partial(curvJ3[index],curvJ3L); - vec_store_nta_partial(curvJ4[index],curvJ4L); - vec_store_nta_partial(curvJi[index],curvJiL); - vec_store_nta_partial(curvJr[index],curvJrL); - } - LC_ENDLOOP3VEC(invars_calc_4th); -} - -extern "C" void invars_calc_4th(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering invars_calc_4th_Body"); - } - - if (cctk_iteration % invars_calc_4th_calc_every != invars_calc_4th_calc_offset) - { - return; - } - - const char *const groups[] = { - "WeylScal4::curvIi_group", - "WeylScal4::curvIr_group", - "WeylScal4::curvJ1_group", - "WeylScal4::curvJ2_group", - "WeylScal4::curvJ3_group", - "WeylScal4::curvJ4_group", - "WeylScal4::curvJi_group", - "WeylScal4::curvJr_group", - "WeylScal4::Psi0i_group", - "WeylScal4::Psi0r_group", - "WeylScal4::Psi1i_group", - "WeylScal4::Psi1r_group", - "WeylScal4::Psi2i_group", - "WeylScal4::Psi2r_group", - "WeylScal4::Psi3i_group", - "WeylScal4::Psi3r_group", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "invars_calc_4th", 18, groups); - - switch(fdOrder) - { - case 2: - break; - - case 4: - break; - - case 6: - break; - - case 8: - break; - } - - GenericFD_LoopOverInterior(cctkGH, invars_calc_4th_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving invars_calc_4th_Body"); - } -} diff --git a/src/invars_calc_Nth.cc b/src/invars_calc_Nth.cc deleted file mode 100644 index b06d7e3..0000000 --- a/src/invars_calc_Nth.cc +++ /dev/null @@ -1,326 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void invars_calc_Nth_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvIi_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvIi_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvIr_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvIr_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ1_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ1_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ2_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ2_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ3_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ3_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJ4_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJ4_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJi_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJi_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::curvJr_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::curvJr_group."); - return; -} - -static void invars_calc_Nth_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(invars_calc_Nth, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC Psi0iL = vec_load(Psi0i[index]); - CCTK_REAL_VEC Psi0rL = vec_load(Psi0r[index]); - CCTK_REAL_VEC Psi1iL = vec_load(Psi1i[index]); - CCTK_REAL_VEC Psi1rL = vec_load(Psi1r[index]); - CCTK_REAL_VEC Psi2iL = vec_load(Psi2i[index]); - CCTK_REAL_VEC Psi2rL = vec_load(Psi2r[index]); - CCTK_REAL_VEC Psi3iL = vec_load(Psi3i[index]); - CCTK_REAL_VEC Psi3rL = vec_load(Psi3r[index]); - CCTK_REAL_VEC Psi4iL = vec_load(Psi4i[index]); - CCTK_REAL_VEC Psi4rL = vec_load(Psi4r[index]); - - - - /* Include user supplied include files */ - - /* Precompute derivatives */ - - switch(fdOrder) - { - case 2: - break; - - case 4: - break; - - case 6: - break; - - case 8: - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC curvIrL = - kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),knmsub(Psi0iL,Psi4iL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(3),kmul(Psi1iL,kmul(Psi3iL,ToReal(4)))))))); - - CCTK_REAL_VEC curvIiL = - kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(-4),kmul(Psi2iL,kmul(Psi2rL,ToReal(6)))))); - - CCTK_REAL_VEC curvJrL = - knmsub(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2),knmsub(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(2)),kmul(Psi1iL,kmul(Psi3rL,ToReal(2)))))),kmadd(Psi2rL,kmadd(Psi0rL,Psi4rL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))),kmul(Psi2rL,kmul(kmul(Psi2iL,Psi2iL),ToReal(3))))))))); - - CCTK_REAL_VEC curvJiL = - kmadd(Psi2iL,kmul(Psi2iL,Psi2iL),kmadd(Psi4rL,kmadd(Psi0iL,Psi2rL,kmul(Psi1iL,kmul(Psi1rL,ToReal(-2)))),kmadd(Psi0rL,kmadd(Psi2rL,Psi4iL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-2)))),kmadd(Psi4iL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0iL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(Psi2rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)),kmul(Psi2iL,kmadd(Psi0rL,Psi4rL,kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),kmadd(Psi1iL,kmul(Psi3iL,ToReal(-2)),kmsub(Psi1rL,kmul(Psi3rL,ToReal(2)),kmul(Psi0iL,Psi4iL)))))))))))); - - CCTK_REAL_VEC curvJ1L = - kmul(ToReal(-16),kmadd(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(-4)),kmadd(kmul(Psi2rL,Psi2rL),ToReal(-3),knmsub(Psi0rL,Psi4rL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(3),kmul(Psi1rL,kmul(Psi3rL,ToReal(4))))))))); - - CCTK_REAL_VEC curvJ2L = - kmul(kmadd(Psi2rL,kmul(Psi2rL,Psi2rL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmadd(Psi0iL,Psi4iL,kmadd(kmul(Psi2iL,Psi2iL),ToReal(-3),kmadd(Psi1rL,kmul(Psi3rL,ToReal(-2)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(2)),kmul(Psi0rL,Psi4rL))))),kmul(Psi2iL,kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(2)))))))))),ToReal(96)); - - CCTK_REAL_VEC curvJ3L = - kmul(kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi3rL,Psi3rL))),ToReal(-16),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi2rL,Psi2rL),kmul(kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(Psi0iL,Psi4iL)))),ToReal(6)),kmadd(kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi3iL,Psi4iL)),kmadd(Psi0rL,kmul(Psi1iL,kmul(Psi3rL,Psi4iL)),kmadd(Psi0iL,kmul(Psi1rL,kmul(Psi3rL,Psi4iL)),kmul(Psi0iL,kmul(Psi1rL,kmul(Psi3iL,Psi4rL)))))),ToReal(8),kmadd(Psi3rL,kmadd(Psi0rL,kmul(Psi1rL,kmul(Psi4rL,ToReal(-8))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi4rL,ToReal(8))))),kmadd(Psi1iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(Psi3rL,ToReal(-64))),kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi4iL,ToReal(-8))),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi4rL,ToReal(8)))))),kmadd(kmadd(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL),kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(9),kmadd(kmul(Psi2iL,Psi2iL),kmul(ToReal(-6),kmadd(Psi0rL,Psi4rL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-4)),knmsub(Psi0iL,Psi4iL,kmadd(Psi1iL,kmul(Psi3iL,ToReal(4)),kmul(kmul(Psi2rL,Psi2rL),ToReal(9))))))),kmadd(Psi2iL,kmul(Psi2rL,kmul(knmsub(Psi0rL,Psi4iL,knmsub(Psi0iL,Psi4rL,kmadd(Psi1rL,kmul(Psi3iL,ToReal(4)),kmul(Psi1iL,kmul(Psi3rL,ToReal(4)))))),ToReal(12))),kmul(kmadd(kmul(Psi1iL,Psi1iL),kmul(Psi3iL,Psi3iL),kmul(kmul(Psi1rL,Psi1rL),kmul(Psi3rL,Psi3rL))),ToReal(16))))))))))))))),ToReal(64)); - - CCTK_REAL_VEC curvJ4L = - kmul(ToReal(-640),kmadd(Psi1iL,kmul(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3iL,kmul(Psi3rL,Psi3rL)))),ToReal(-12)),kmadd(kmadd(Psi3iL,kmul(Psi4iL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmul(Psi0iL,kmul(Psi1iL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL))))),ToReal(-4),kmadd(kmul(Psi2rL,kmul(kmul(Psi2rL,Psi2rL),kmul(Psi2rL,Psi2rL))),ToReal(-3),kmadd(Psi4rL,kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3iL,Psi3iL),kmsub(kmul(Psi0iL,Psi0iL),kmul(Psi3rL,Psi3rL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi3rL,Psi3rL),kmul(kmul(Psi0iL,Psi0iL),kmul(Psi3iL,Psi3iL))))),kmadd(Psi0rL,kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4iL,Psi4iL),kmsub(kmul(Psi1iL,Psi1iL),kmul(Psi4rL,Psi4rL),kmadd(kmul(Psi1rL,Psi1rL),kmul(Psi4rL,Psi4rL),kmul(kmul(Psi1iL,Psi1iL),kmul(Psi4iL,Psi4iL))))),kmadd(kmadd(kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmul(Psi1iL,kmul(Psi1iL,Psi1iL)),kmadd(Psi3rL,kmul(Psi4rL,kmul(Psi1rL,kmul(Psi1rL,Psi1rL))),kmadd(Psi0rL,kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),Psi4rL,kmul(Psi1iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)))),kmul(Psi1rL,kmadd(Psi0iL,kmul(Psi3iL,kmul(Psi3iL,Psi3iL)),kmul(Psi0rL,kmul(Psi3rL,kmul(Psi3rL,Psi3rL)))))))),ToReal(4),kmadd(ToReal(-2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0iL,Psi0iL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1iL,Psi1iL),kmul(Psi0rL,kmul(Psi3iL,Psi3iL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL)))))),kmadd(ToReal(2),kmadd(Psi4iL,kmadd(Psi3iL,kmul(Psi3rL,kmul(Psi0rL,Psi0rL)),kmul(Psi0iL,kmadd(Psi4rL,kmul(Psi1rL,Psi1rL),kmul(Psi0rL,kmul(Psi3rL,Psi3rL))))),kmadd(kmul(Psi2iL,kmul(Psi2iL,Psi2iL)),kmadd(Psi0rL,Psi4iL,kmadd(Psi0iL,Psi4rL,kmul(kmadd(Psi1rL,Psi3iL,kmul(Psi1iL,Psi3rL)),ToReal(5)))),kmul(Psi2iL,kmadd(Psi3rL,kmadd(Psi1iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmul(Psi3iL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-8)))),kmadd(Psi4iL,kmadd(Psi2rL,kmul(kmul(Psi1iL,Psi1iL),ToReal(-3)),kmul(Psi4rL,kmsub(Psi0iL,Psi0iL,kmul(Psi0rL,Psi0rL)))),knmsub(Psi0iL,kmadd(Psi1iL,kmadd(Psi3rL,Psi4iL,kmul(Psi3iL,Psi4rL)),kmadd(Psi2rL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-3)),kmadd(Psi0rL,kmsub(Psi4rL,Psi4rL,kmul(Psi4iL,Psi4iL)),kmul(kmadd(Psi4rL,kmul(Psi2rL,Psi2rL),kmul(Psi2rL,kmul(Psi3iL,Psi3iL))),ToReal(3))))),kmadd(Psi0rL,kmadd(Psi1iL,kmul(Psi3rL,Psi4rL),kmadd(Psi4iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-3)),kmul(Psi3iL,kmsub(Psi2rL,kmul(Psi3rL,ToReal(6)),kmul(Psi1iL,Psi4iL))))),kmadd(kmul(Psi1rL,Psi1rL),kmadd(Psi2rL,kmul(Psi4iL,ToReal(3)),kmul(Psi3iL,kmul(Psi3rL,ToReal(8)))),kmul(Psi1rL,kmadd(Psi3iL,kmul(kmul(Psi2rL,Psi2rL),ToReal(-15)),kmadd(Psi4iL,kmsub(Psi0rL,Psi3rL,kmul(Psi0iL,Psi3iL)),kmadd(Psi4rL,kmadd(Psi0rL,Psi3iL,kmadd(Psi0iL,Psi3rL,kmul(Psi1iL,kmul(Psi2rL,ToReal(6))))),kmul(Psi1iL,kmadd(kmul(Psi3iL,Psi3iL),ToReal(-8),kmul(kmul(Psi3rL,Psi3rL),ToReal(8)))))))))))))))),kmadd(ToReal(3),kmadd(kmul(Psi2rL,Psi2rL),kmadd(Psi4rL,kmsub(Psi1iL,Psi1iL,kmul(Psi1rL,Psi1rL)),kmadd(Psi0rL,kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmul(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(2)))),kmul(kmul(Psi2iL,Psi2iL),kmadd(kmadd(Psi0iL,kmul(Psi3iL,Psi3rL),kmul(Psi1iL,kmul(Psi1rL,Psi4iL))),ToReal(-2),kmadd(Psi4rL,kmsub(Psi1rL,Psi1rL,kmul(Psi1iL,Psi1iL)),kmadd(Psi0rL,kmsub(Psi3rL,Psi3rL,kmul(Psi3iL,Psi3iL)),kmadd(Psi2rL,kmul(ToReal(2),kmadd(Psi0iL,Psi4iL,kmadd(Psi1rL,kmul(Psi3rL,ToReal(-5)),kmsub(Psi1iL,kmul(Psi3iL,ToReal(5)),kmul(Psi0rL,Psi4rL))))),kmul(kmul(Psi2rL,kmul(Psi2rL,Psi2rL)),ToReal(10)))))))),kmadd(Psi1rL,kmadd(Psi0rL,kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(-12))),kmadd(Psi0iL,kmul(Psi1iL,kmul(kmul(Psi4iL,Psi4iL),ToReal(-2))),kmul(kmul(Psi1iL,Psi1iL),kmadd(Psi3rL,kmul(Psi4rL,ToReal(-12)),kmul(Psi3iL,kmul(Psi4iL,ToReal(12))))))),kmadd(Psi0iL,kmadd(Psi1rL,kmul(Psi3iL,kmul(kmul(Psi3rL,Psi3rL),ToReal(-12))),kmul(Psi1iL,kmadd(Psi1rL,kmul(kmul(Psi4rL,Psi4rL),ToReal(2)),kmul(Psi3rL,kmul(kmul(Psi3iL,Psi3iL),ToReal(12)))))),kmul(Psi2rL,kmadd(kmul(Psi0iL,Psi0iL),kmul(Psi4iL,Psi4iL),kmadd(kmul(Psi0rL,Psi0rL),kmul(Psi4rL,Psi4rL),kmadd(kmul(kmul(Psi2iL,Psi2iL),kmul(Psi2iL,Psi2iL)),ToReal(-15),kmadd(Psi0iL,kmul(Psi0rL,kmul(Psi4iL,kmul(Psi4rL,ToReal(-4)))),knmsub(kmul(Psi0rL,Psi0rL),kmul(Psi4iL,Psi4iL),knmsub(kmul(Psi0iL,Psi0iL),kmul(Psi4rL,Psi4rL),kmadd(kmsub(Psi3iL,Psi3iL,kmul(Psi3rL,Psi3rL)),kmadd(kmul(Psi1iL,Psi1iL),ToReal(-8),kmul(kmul(Psi1rL,Psi1rL),ToReal(8))),kmul(ToReal(2),kmadd(Psi1rL,kmadd(Psi0iL,kmul(Psi3rL,Psi4iL),kmadd(Psi0iL,kmul(Psi3iL,Psi4rL),kmul(Psi0rL,kmsub(Psi3iL,Psi4iL,kmul(Psi3rL,Psi4rL))))),kmul(Psi1iL,kmadd(Psi0rL,kmul(Psi3rL,Psi4iL),kmadd(Psi0rL,kmul(Psi3iL,Psi4rL),kmadd(Psi0iL,kmul(Psi3rL,Psi4rL),kmul(Psi3iL,kmsub(Psi1rL,kmul(Psi3rL,ToReal(16)),kmul(Psi0iL,Psi4iL))))))))))))))))))))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(curvIi[index],curvIiL); - vec_store_nta_partial(curvIr[index],curvIrL); - vec_store_nta_partial(curvJ1[index],curvJ1L); - vec_store_nta_partial(curvJ2[index],curvJ2L); - vec_store_nta_partial(curvJ3[index],curvJ3L); - vec_store_nta_partial(curvJ4[index],curvJ4L); - vec_store_nta_partial(curvJi[index],curvJiL); - vec_store_nta_partial(curvJr[index],curvJrL); - } - LC_ENDLOOP3VEC(invars_calc_Nth); -} - -extern "C" void invars_calc_Nth(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering invars_calc_Nth_Body"); - } - - if (cctk_iteration % invars_calc_Nth_calc_every != invars_calc_Nth_calc_offset) - { - return; - } - - const char *const groups[] = { - "WeylScal4::curvIi_group", - "WeylScal4::curvIr_group", - "WeylScal4::curvJ1_group", - "WeylScal4::curvJ2_group", - "WeylScal4::curvJ3_group", - "WeylScal4::curvJ4_group", - "WeylScal4::curvJi_group", - "WeylScal4::curvJr_group", - "WeylScal4::Psi0i_group", - "WeylScal4::Psi0r_group", - "WeylScal4::Psi1i_group", - "WeylScal4::Psi1r_group", - "WeylScal4::Psi2i_group", - "WeylScal4::Psi2r_group", - "WeylScal4::Psi3i_group", - "WeylScal4::Psi3r_group", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "invars_calc_Nth", 18, groups); - - switch(fdOrder) - { - case 2: - break; - - case 4: - break; - - case 6: - break; - - case 8: - break; - } - - GenericFD_LoopOverInterior(cctkGH, invars_calc_Nth_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving invars_calc_Nth_Body"); - } -} diff --git a/src/psi4_calc_2nd.cc b/src/psi4_calc_2nd.cc deleted file mode 100644 index 5c70f94..0000000 --- a/src/psi4_calc_2nd.cc +++ /dev/null @@ -1,1356 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void psi4_calc_2nd_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); - return; -} - -static void psi4_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(psi4_calc_2nd, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC gxxL = vec_load(gxx[index]); - CCTK_REAL_VEC gxyL = vec_load(gxy[index]); - CCTK_REAL_VEC gxzL = vec_load(gxz[index]); - CCTK_REAL_VEC gyyL = vec_load(gyy[index]); - CCTK_REAL_VEC gyzL = vec_load(gyz[index]); - CCTK_REAL_VEC gzzL = vec_load(gzz[index]); - CCTK_REAL_VEC kxxL = vec_load(kxx[index]); - CCTK_REAL_VEC kxyL = vec_load(kxy[index]); - CCTK_REAL_VEC kxzL = vec_load(kxz[index]); - CCTK_REAL_VEC kyyL = vec_load(kyy[index]); - CCTK_REAL_VEC kyzL = vec_load(kyz[index]); - CCTK_REAL_VEC kzzL = vec_load(kzz[index]); - CCTK_REAL_VEC xL = vec_load(x[index]); - CCTK_REAL_VEC yL = vec_load(y[index]); - CCTK_REAL_VEC zL = vec_load(z[index]); - - - CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; - - if (use_jacobian) - { - dJ111L = vec_load(dJ111[index]); - dJ112L = vec_load(dJ112[index]); - dJ113L = vec_load(dJ113[index]); - dJ122L = vec_load(dJ122[index]); - dJ123L = vec_load(dJ123[index]); - dJ133L = vec_load(dJ133[index]); - dJ211L = vec_load(dJ211[index]); - dJ212L = vec_load(dJ212[index]); - dJ213L = vec_load(dJ213[index]); - dJ222L = vec_load(dJ222[index]); - dJ223L = vec_load(dJ223[index]); - dJ233L = vec_load(dJ233[index]); - dJ311L = vec_load(dJ311[index]); - dJ312L = vec_load(dJ312[index]); - dJ313L = vec_load(dJ313[index]); - dJ322L = vec_load(dJ322[index]); - dJ323L = vec_load(dJ323[index]); - dJ333L = vec_load(dJ333[index]); - J11L = vec_load(J11[index]); - J12L = vec_load(J12[index]); - J13L = vec_load(J13[index]); - J21L = vec_load(J21[index]); - J22L = vec_load(J22[index]); - J23L = vec_load(J23[index]); - J31L = vec_load(J31[index]); - J32L = vec_load(J32[index]); - J33L = vec_load(J33[index]); - } - - /* Include user supplied include files */ - - /* Precompute derivatives */ - CCTK_REAL_VEC PDstandard2nd1gxx; - CCTK_REAL_VEC PDstandard2nd2gxx; - CCTK_REAL_VEC PDstandard2nd3gxx; - CCTK_REAL_VEC PDstandard2nd11gxx; - CCTK_REAL_VEC PDstandard2nd22gxx; - CCTK_REAL_VEC PDstandard2nd33gxx; - CCTK_REAL_VEC PDstandard2nd12gxx; - CCTK_REAL_VEC PDstandard2nd13gxx; - CCTK_REAL_VEC PDstandard2nd23gxx; - CCTK_REAL_VEC PDstandard2nd1gxy; - CCTK_REAL_VEC PDstandard2nd2gxy; - CCTK_REAL_VEC PDstandard2nd3gxy; - CCTK_REAL_VEC PDstandard2nd11gxy; - CCTK_REAL_VEC PDstandard2nd22gxy; - CCTK_REAL_VEC PDstandard2nd33gxy; - CCTK_REAL_VEC PDstandard2nd12gxy; - CCTK_REAL_VEC PDstandard2nd13gxy; - CCTK_REAL_VEC PDstandard2nd23gxy; - CCTK_REAL_VEC PDstandard2nd1gxz; - CCTK_REAL_VEC PDstandard2nd2gxz; - CCTK_REAL_VEC PDstandard2nd3gxz; - CCTK_REAL_VEC PDstandard2nd11gxz; - CCTK_REAL_VEC PDstandard2nd22gxz; - CCTK_REAL_VEC PDstandard2nd33gxz; - CCTK_REAL_VEC PDstandard2nd12gxz; - CCTK_REAL_VEC PDstandard2nd13gxz; - CCTK_REAL_VEC PDstandard2nd23gxz; - CCTK_REAL_VEC PDstandard2nd1gyy; - CCTK_REAL_VEC PDstandard2nd2gyy; - CCTK_REAL_VEC PDstandard2nd3gyy; - CCTK_REAL_VEC PDstandard2nd11gyy; - CCTK_REAL_VEC PDstandard2nd22gyy; - CCTK_REAL_VEC PDstandard2nd33gyy; - CCTK_REAL_VEC PDstandard2nd12gyy; - CCTK_REAL_VEC PDstandard2nd13gyy; - CCTK_REAL_VEC PDstandard2nd23gyy; - CCTK_REAL_VEC PDstandard2nd1gyz; - CCTK_REAL_VEC PDstandard2nd2gyz; - CCTK_REAL_VEC PDstandard2nd3gyz; - CCTK_REAL_VEC PDstandard2nd11gyz; - CCTK_REAL_VEC PDstandard2nd22gyz; - CCTK_REAL_VEC PDstandard2nd33gyz; - CCTK_REAL_VEC PDstandard2nd12gyz; - CCTK_REAL_VEC PDstandard2nd13gyz; - CCTK_REAL_VEC PDstandard2nd23gyz; - CCTK_REAL_VEC PDstandard2nd1gzz; - CCTK_REAL_VEC PDstandard2nd2gzz; - CCTK_REAL_VEC PDstandard2nd3gzz; - CCTK_REAL_VEC PDstandard2nd11gzz; - CCTK_REAL_VEC PDstandard2nd22gzz; - CCTK_REAL_VEC PDstandard2nd33gzz; - CCTK_REAL_VEC PDstandard2nd12gzz; - CCTK_REAL_VEC PDstandard2nd13gzz; - CCTK_REAL_VEC PDstandard2nd23gzz; - CCTK_REAL_VEC PDstandard2nd1kxx; - CCTK_REAL_VEC PDstandard2nd2kxx; - CCTK_REAL_VEC PDstandard2nd3kxx; - CCTK_REAL_VEC PDstandard2nd1kxy; - CCTK_REAL_VEC PDstandard2nd2kxy; - CCTK_REAL_VEC PDstandard2nd3kxy; - CCTK_REAL_VEC PDstandard2nd1kxz; - CCTK_REAL_VEC PDstandard2nd2kxz; - CCTK_REAL_VEC PDstandard2nd3kxz; - CCTK_REAL_VEC PDstandard2nd1kyy; - CCTK_REAL_VEC PDstandard2nd2kyy; - CCTK_REAL_VEC PDstandard2nd3kyy; - CCTK_REAL_VEC PDstandard2nd1kyz; - CCTK_REAL_VEC PDstandard2nd2kyz; - CCTK_REAL_VEC PDstandard2nd3kyz; - CCTK_REAL_VEC PDstandard2nd1kzz; - CCTK_REAL_VEC PDstandard2nd2kzz; - CCTK_REAL_VEC PDstandard2nd3kzz; - - switch(fdOrder) - { - case 2: - PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); - PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); - PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); - PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); - PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); - PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); - PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); - PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); - PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); - PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); - PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); - PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); - PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); - PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); - PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); - PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); - PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); - PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); - PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); - PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); - PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); - PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); - PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); - PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); - PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); - PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); - PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); - PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); - PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); - PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); - PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); - PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); - PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); - PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); - PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); - PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); - PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); - PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); - PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); - PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); - PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); - PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); - PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); - PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); - PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); - PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); - PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); - PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); - PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); - PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); - PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); - PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); - PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); - PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); - PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); - PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); - PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); - PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); - PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); - PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); - PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); - PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); - PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); - PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); - PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); - PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); - PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); - PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); - PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); - PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); - PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); - PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); - break; - - case 4: - PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); - PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); - PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); - PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); - PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); - PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); - PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); - PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); - PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); - PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); - PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); - PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); - PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); - PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); - PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); - PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); - PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); - PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); - PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); - PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); - PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); - PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); - PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); - PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); - PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); - PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); - PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); - PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); - PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); - PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); - PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); - PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); - PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); - PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); - PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); - PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); - PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); - PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); - PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); - PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); - PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); - PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); - PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); - PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); - PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); - PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); - PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); - PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); - PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); - PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); - PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); - PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); - PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); - PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); - PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); - PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); - PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); - PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); - PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); - PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); - PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); - PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); - PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); - PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); - PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); - PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); - PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); - PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); - PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); - PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); - PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); - PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); - break; - - case 6: - PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); - PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); - PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); - PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); - PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); - PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); - PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); - PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); - PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); - PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); - PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); - PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); - PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); - PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); - PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); - PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); - PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); - PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); - PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); - PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); - PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); - PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); - PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); - PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); - PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); - PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); - PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); - PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); - PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); - PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); - PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); - PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); - PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); - PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); - PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); - PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); - PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); - PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); - PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); - PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); - PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); - PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); - PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); - PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); - PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); - PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); - PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); - PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); - PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); - PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); - PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); - PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); - PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); - PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); - PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); - PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); - PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); - PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); - PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); - PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); - PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); - PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); - PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); - PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); - PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); - PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); - PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); - PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); - PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); - PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); - PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); - PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); - break; - - case 8: - PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); - PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); - PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); - PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); - PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); - PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); - PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); - PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); - PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); - PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); - PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); - PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); - PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); - PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); - PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); - PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); - PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); - PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); - PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); - PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); - PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); - PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); - PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); - PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); - PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); - PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); - PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); - PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); - PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); - PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); - PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); - PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); - PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); - PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); - PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); - PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); - PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); - PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); - PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); - PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); - PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); - PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); - PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); - PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); - PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); - PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); - PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); - PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); - PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); - PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); - PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); - PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); - PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); - PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); - PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); - PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); - PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); - PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); - PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); - PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); - PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); - PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); - PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); - PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); - PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); - PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); - PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); - PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); - PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); - PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); - PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); - PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC JacPDstandard2nd11gyy; - CCTK_REAL_VEC JacPDstandard2nd11gyz; - CCTK_REAL_VEC JacPDstandard2nd11gzz; - CCTK_REAL_VEC JacPDstandard2nd12gxy; - CCTK_REAL_VEC JacPDstandard2nd12gxz; - CCTK_REAL_VEC JacPDstandard2nd12gyz; - CCTK_REAL_VEC JacPDstandard2nd12gzz; - CCTK_REAL_VEC JacPDstandard2nd13gxz; - CCTK_REAL_VEC JacPDstandard2nd1gxx; - CCTK_REAL_VEC JacPDstandard2nd1gxy; - CCTK_REAL_VEC JacPDstandard2nd1gxz; - CCTK_REAL_VEC JacPDstandard2nd1gyy; - CCTK_REAL_VEC JacPDstandard2nd1gyz; - CCTK_REAL_VEC JacPDstandard2nd1gzz; - CCTK_REAL_VEC JacPDstandard2nd1kxy; - CCTK_REAL_VEC JacPDstandard2nd1kxz; - CCTK_REAL_VEC JacPDstandard2nd1kyy; - CCTK_REAL_VEC JacPDstandard2nd1kyz; - CCTK_REAL_VEC JacPDstandard2nd1kzz; - CCTK_REAL_VEC JacPDstandard2nd21gxy; - CCTK_REAL_VEC JacPDstandard2nd22gxx; - CCTK_REAL_VEC JacPDstandard2nd22gxz; - CCTK_REAL_VEC JacPDstandard2nd22gzz; - CCTK_REAL_VEC JacPDstandard2nd23gxx; - CCTK_REAL_VEC JacPDstandard2nd23gxy; - CCTK_REAL_VEC JacPDstandard2nd23gxz; - CCTK_REAL_VEC JacPDstandard2nd23gyz; - CCTK_REAL_VEC JacPDstandard2nd2gxx; - CCTK_REAL_VEC JacPDstandard2nd2gxy; - CCTK_REAL_VEC JacPDstandard2nd2gxz; - CCTK_REAL_VEC JacPDstandard2nd2gyy; - CCTK_REAL_VEC JacPDstandard2nd2gyz; - CCTK_REAL_VEC JacPDstandard2nd2gzz; - CCTK_REAL_VEC JacPDstandard2nd2kxx; - CCTK_REAL_VEC JacPDstandard2nd2kxy; - CCTK_REAL_VEC JacPDstandard2nd2kxz; - CCTK_REAL_VEC JacPDstandard2nd2kyz; - CCTK_REAL_VEC JacPDstandard2nd2kzz; - CCTK_REAL_VEC JacPDstandard2nd31gxy; - CCTK_REAL_VEC JacPDstandard2nd31gxz; - CCTK_REAL_VEC JacPDstandard2nd31gyy; - CCTK_REAL_VEC JacPDstandard2nd31gyz; - CCTK_REAL_VEC JacPDstandard2nd32gyz; - CCTK_REAL_VEC JacPDstandard2nd33gxx; - CCTK_REAL_VEC JacPDstandard2nd33gxy; - CCTK_REAL_VEC JacPDstandard2nd33gyy; - CCTK_REAL_VEC JacPDstandard2nd3gxx; - CCTK_REAL_VEC JacPDstandard2nd3gxy; - CCTK_REAL_VEC JacPDstandard2nd3gxz; - CCTK_REAL_VEC JacPDstandard2nd3gyy; - CCTK_REAL_VEC JacPDstandard2nd3gyz; - CCTK_REAL_VEC JacPDstandard2nd3gzz; - CCTK_REAL_VEC JacPDstandard2nd3kxx; - CCTK_REAL_VEC JacPDstandard2nd3kxy; - CCTK_REAL_VEC JacPDstandard2nd3kxz; - CCTK_REAL_VEC JacPDstandard2nd3kyy; - CCTK_REAL_VEC JacPDstandard2nd3kyz; - - if (use_jacobian) - { - JacPDstandard2nd1gxx = - kmadd(J11L,PDstandard2nd1gxx,kmadd(J21L,PDstandard2nd2gxx,kmul(J31L,PDstandard2nd3gxx))); - - JacPDstandard2nd1gxy = - kmadd(J11L,PDstandard2nd1gxy,kmadd(J21L,PDstandard2nd2gxy,kmul(J31L,PDstandard2nd3gxy))); - - JacPDstandard2nd1gxz = - kmadd(J11L,PDstandard2nd1gxz,kmadd(J21L,PDstandard2nd2gxz,kmul(J31L,PDstandard2nd3gxz))); - - JacPDstandard2nd1gyy = - kmadd(J11L,PDstandard2nd1gyy,kmadd(J21L,PDstandard2nd2gyy,kmul(J31L,PDstandard2nd3gyy))); - - JacPDstandard2nd1gyz = - kmadd(J11L,PDstandard2nd1gyz,kmadd(J21L,PDstandard2nd2gyz,kmul(J31L,PDstandard2nd3gyz))); - - JacPDstandard2nd1gzz = - kmadd(J11L,PDstandard2nd1gzz,kmadd(J21L,PDstandard2nd2gzz,kmul(J31L,PDstandard2nd3gzz))); - - JacPDstandard2nd1kxy = - kmadd(J11L,PDstandard2nd1kxy,kmadd(J21L,PDstandard2nd2kxy,kmul(J31L,PDstandard2nd3kxy))); - - JacPDstandard2nd1kxz = - kmadd(J11L,PDstandard2nd1kxz,kmadd(J21L,PDstandard2nd2kxz,kmul(J31L,PDstandard2nd3kxz))); - - JacPDstandard2nd1kyy = - kmadd(J11L,PDstandard2nd1kyy,kmadd(J21L,PDstandard2nd2kyy,kmul(J31L,PDstandard2nd3kyy))); - - JacPDstandard2nd1kyz = - kmadd(J11L,PDstandard2nd1kyz,kmadd(J21L,PDstandard2nd2kyz,kmul(J31L,PDstandard2nd3kyz))); - - JacPDstandard2nd1kzz = - kmadd(J11L,PDstandard2nd1kzz,kmadd(J21L,PDstandard2nd2kzz,kmul(J31L,PDstandard2nd3kzz))); - - JacPDstandard2nd2gxx = - kmadd(J12L,PDstandard2nd1gxx,kmadd(J22L,PDstandard2nd2gxx,kmul(J32L,PDstandard2nd3gxx))); - - JacPDstandard2nd2gxy = - kmadd(J12L,PDstandard2nd1gxy,kmadd(J22L,PDstandard2nd2gxy,kmul(J32L,PDstandard2nd3gxy))); - - JacPDstandard2nd2gxz = - kmadd(J12L,PDstandard2nd1gxz,kmadd(J22L,PDstandard2nd2gxz,kmul(J32L,PDstandard2nd3gxz))); - - JacPDstandard2nd2gyy = - kmadd(J12L,PDstandard2nd1gyy,kmadd(J22L,PDstandard2nd2gyy,kmul(J32L,PDstandard2nd3gyy))); - - JacPDstandard2nd2gyz = - kmadd(J12L,PDstandard2nd1gyz,kmadd(J22L,PDstandard2nd2gyz,kmul(J32L,PDstandard2nd3gyz))); - - JacPDstandard2nd2gzz = - kmadd(J12L,PDstandard2nd1gzz,kmadd(J22L,PDstandard2nd2gzz,kmul(J32L,PDstandard2nd3gzz))); - - JacPDstandard2nd2kxx = - kmadd(J12L,PDstandard2nd1kxx,kmadd(J22L,PDstandard2nd2kxx,kmul(J32L,PDstandard2nd3kxx))); - - JacPDstandard2nd2kxy = - kmadd(J12L,PDstandard2nd1kxy,kmadd(J22L,PDstandard2nd2kxy,kmul(J32L,PDstandard2nd3kxy))); - - JacPDstandard2nd2kxz = - kmadd(J12L,PDstandard2nd1kxz,kmadd(J22L,PDstandard2nd2kxz,kmul(J32L,PDstandard2nd3kxz))); - - JacPDstandard2nd2kyz = - kmadd(J12L,PDstandard2nd1kyz,kmadd(J22L,PDstandard2nd2kyz,kmul(J32L,PDstandard2nd3kyz))); - - JacPDstandard2nd2kzz = - kmadd(J12L,PDstandard2nd1kzz,kmadd(J22L,PDstandard2nd2kzz,kmul(J32L,PDstandard2nd3kzz))); - - JacPDstandard2nd3gxx = - kmadd(J13L,PDstandard2nd1gxx,kmadd(J23L,PDstandard2nd2gxx,kmul(J33L,PDstandard2nd3gxx))); - - JacPDstandard2nd3gxy = - kmadd(J13L,PDstandard2nd1gxy,kmadd(J23L,PDstandard2nd2gxy,kmul(J33L,PDstandard2nd3gxy))); - - JacPDstandard2nd3gxz = - kmadd(J13L,PDstandard2nd1gxz,kmadd(J23L,PDstandard2nd2gxz,kmul(J33L,PDstandard2nd3gxz))); - - JacPDstandard2nd3gyy = - kmadd(J13L,PDstandard2nd1gyy,kmadd(J23L,PDstandard2nd2gyy,kmul(J33L,PDstandard2nd3gyy))); - - JacPDstandard2nd3gyz = - kmadd(J13L,PDstandard2nd1gyz,kmadd(J23L,PDstandard2nd2gyz,kmul(J33L,PDstandard2nd3gyz))); - - JacPDstandard2nd3gzz = - kmadd(J13L,PDstandard2nd1gzz,kmadd(J23L,PDstandard2nd2gzz,kmul(J33L,PDstandard2nd3gzz))); - - JacPDstandard2nd3kxx = - kmadd(J13L,PDstandard2nd1kxx,kmadd(J23L,PDstandard2nd2kxx,kmul(J33L,PDstandard2nd3kxx))); - - JacPDstandard2nd3kxy = - kmadd(J13L,PDstandard2nd1kxy,kmadd(J23L,PDstandard2nd2kxy,kmul(J33L,PDstandard2nd3kxy))); - - JacPDstandard2nd3kxz = - kmadd(J13L,PDstandard2nd1kxz,kmadd(J23L,PDstandard2nd2kxz,kmul(J33L,PDstandard2nd3kxz))); - - JacPDstandard2nd3kyy = - kmadd(J13L,PDstandard2nd1kyy,kmadd(J23L,PDstandard2nd2kyy,kmul(J33L,PDstandard2nd3kyy))); - - JacPDstandard2nd3kyz = - kmadd(J13L,PDstandard2nd1kyz,kmadd(J23L,PDstandard2nd2kyz,kmul(J33L,PDstandard2nd3kyz))); - - JacPDstandard2nd11gyy = - kmadd(dJ111L,PDstandard2nd1gyy,kmadd(dJ211L,PDstandard2nd2gyy,kmadd(dJ311L,PDstandard2nd3gyy,kmadd(PDstandard2nd11gyy,kmul(J11L,J11L),kmadd(PDstandard2nd22gyy,kmul(J21L,J21L),kmadd(PDstandard2nd33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gyy,kmul(J31L,PDstandard2nd13gyy)),kmul(J21L,kmul(J31L,PDstandard2nd23gyy))),ToReal(2)))))))); - - JacPDstandard2nd11gyz = - kmadd(dJ111L,PDstandard2nd1gyz,kmadd(dJ211L,PDstandard2nd2gyz,kmadd(dJ311L,PDstandard2nd3gyz,kmadd(PDstandard2nd11gyz,kmul(J11L,J11L),kmadd(PDstandard2nd22gyz,kmul(J21L,J21L),kmadd(PDstandard2nd33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz)),kmul(J21L,kmul(J31L,PDstandard2nd23gyz))),ToReal(2)))))))); - - JacPDstandard2nd11gzz = - kmadd(dJ111L,PDstandard2nd1gzz,kmadd(dJ211L,PDstandard2nd2gzz,kmadd(dJ311L,PDstandard2nd3gzz,kmadd(PDstandard2nd11gzz,kmul(J11L,J11L),kmadd(PDstandard2nd22gzz,kmul(J21L,J21L),kmadd(PDstandard2nd33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gzz,kmul(J31L,PDstandard2nd13gzz)),kmul(J21L,kmul(J31L,PDstandard2nd23gzz))),ToReal(2)))))))); - - JacPDstandard2nd22gxx = - kmadd(dJ122L,PDstandard2nd1gxx,kmadd(dJ222L,PDstandard2nd2gxx,kmadd(dJ322L,PDstandard2nd3gxx,kmadd(PDstandard2nd11gxx,kmul(J12L,J12L),kmadd(PDstandard2nd22gxx,kmul(J22L,J22L),kmadd(PDstandard2nd33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gxx,kmul(J32L,PDstandard2nd13gxx)),kmul(J22L,kmul(J32L,PDstandard2nd23gxx))),ToReal(2)))))))); - - JacPDstandard2nd22gxz = - kmadd(dJ122L,PDstandard2nd1gxz,kmadd(dJ222L,PDstandard2nd2gxz,kmadd(dJ322L,PDstandard2nd3gxz,kmadd(PDstandard2nd11gxz,kmul(J12L,J12L),kmadd(PDstandard2nd22gxz,kmul(J22L,J22L),kmadd(PDstandard2nd33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz)),kmul(J22L,kmul(J32L,PDstandard2nd23gxz))),ToReal(2)))))))); - - JacPDstandard2nd22gzz = - kmadd(dJ122L,PDstandard2nd1gzz,kmadd(dJ222L,PDstandard2nd2gzz,kmadd(dJ322L,PDstandard2nd3gzz,kmadd(PDstandard2nd11gzz,kmul(J12L,J12L),kmadd(PDstandard2nd22gzz,kmul(J22L,J22L),kmadd(PDstandard2nd33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gzz,kmul(J32L,PDstandard2nd13gzz)),kmul(J22L,kmul(J32L,PDstandard2nd23gzz))),ToReal(2)))))))); - - JacPDstandard2nd33gxx = - kmadd(dJ133L,PDstandard2nd1gxx,kmadd(dJ233L,PDstandard2nd2gxx,kmadd(dJ333L,PDstandard2nd3gxx,kmadd(PDstandard2nd11gxx,kmul(J13L,J13L),kmadd(PDstandard2nd22gxx,kmul(J23L,J23L),kmadd(PDstandard2nd33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gxx,kmul(J33L,PDstandard2nd13gxx)),kmul(J23L,kmul(J33L,PDstandard2nd23gxx))),ToReal(2)))))))); - - JacPDstandard2nd33gxy = - kmadd(dJ133L,PDstandard2nd1gxy,kmadd(dJ233L,PDstandard2nd2gxy,kmadd(dJ333L,PDstandard2nd3gxy,kmadd(PDstandard2nd11gxy,kmul(J13L,J13L),kmadd(PDstandard2nd22gxy,kmul(J23L,J23L),kmadd(PDstandard2nd33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmul(J23L,kmul(J33L,PDstandard2nd23gxy))),ToReal(2)))))))); - - JacPDstandard2nd33gyy = - kmadd(dJ133L,PDstandard2nd1gyy,kmadd(dJ233L,PDstandard2nd2gyy,kmadd(dJ333L,PDstandard2nd3gyy,kmadd(PDstandard2nd11gyy,kmul(J13L,J13L),kmadd(PDstandard2nd22gyy,kmul(J23L,J23L),kmadd(PDstandard2nd33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gyy,kmul(J33L,PDstandard2nd13gyy)),kmul(J23L,kmul(J33L,PDstandard2nd23gyy))),ToReal(2)))))))); - - JacPDstandard2nd12gxy = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy)),kmadd(dJ112L,PDstandard2nd1gxy,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ212L,PDstandard2nd2gxy,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ312L,PDstandard2nd3gxy))))))); - - JacPDstandard2nd12gxz = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz)),kmadd(dJ112L,PDstandard2nd1gxz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ212L,PDstandard2nd2gxz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ312L,PDstandard2nd3gxz))))))); - - JacPDstandard2nd12gyz = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gyz,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz)),kmadd(dJ112L,PDstandard2nd1gyz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gyz,kmul(J31L,PDstandard2nd23gyz)),kmadd(dJ212L,PDstandard2nd2gyz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gyz,kmul(J31L,PDstandard2nd33gyz)),kmul(dJ312L,PDstandard2nd3gyz))))))); - - JacPDstandard2nd12gzz = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gzz,kmadd(J21L,PDstandard2nd12gzz,kmul(J31L,PDstandard2nd13gzz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gzz,kmul(J32L,PDstandard2nd13gzz)),kmadd(dJ112L,PDstandard2nd1gzz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gzz,kmul(J31L,PDstandard2nd23gzz)),kmadd(dJ212L,PDstandard2nd2gzz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gzz,kmul(J31L,PDstandard2nd33gzz)),kmul(dJ312L,PDstandard2nd3gzz))))))); - - JacPDstandard2nd13gxz = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ113L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ213L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ313L,PDstandard2nd3gxz))))))); - - JacPDstandard2nd21gxy = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy)),kmadd(dJ112L,PDstandard2nd1gxy,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ212L,PDstandard2nd2gxy,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ312L,PDstandard2nd3gxy))))))); - - JacPDstandard2nd23gxx = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gxx,kmadd(J22L,PDstandard2nd12gxx,kmul(J32L,PDstandard2nd13gxx))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxx,kmul(J33L,PDstandard2nd13gxx)),kmadd(dJ123L,PDstandard2nd1gxx,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxx,kmul(J32L,PDstandard2nd23gxx)),kmadd(dJ223L,PDstandard2nd2gxx,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxx,kmul(J32L,PDstandard2nd33gxx)),kmul(dJ323L,PDstandard2nd3gxx))))))); - - JacPDstandard2nd23gxy = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gxy,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmadd(dJ123L,PDstandard2nd1gxy,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxy,kmul(J32L,PDstandard2nd23gxy)),kmadd(dJ223L,PDstandard2nd2gxy,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxy,kmul(J32L,PDstandard2nd33gxy)),kmul(dJ323L,PDstandard2nd3gxy))))))); - - JacPDstandard2nd23gxz = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gxz,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ123L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxz,kmul(J32L,PDstandard2nd23gxz)),kmadd(dJ223L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxz,kmul(J32L,PDstandard2nd33gxz)),kmul(dJ323L,PDstandard2nd3gxz))))))); - - JacPDstandard2nd23gyz = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gyz,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ123L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gyz,kmul(J32L,PDstandard2nd23gyz)),kmadd(dJ223L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gyz,kmul(J32L,PDstandard2nd33gyz)),kmul(dJ323L,PDstandard2nd3gyz))))))); - - JacPDstandard2nd31gxy = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmadd(dJ113L,PDstandard2nd1gxy,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ213L,PDstandard2nd2gxy,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ313L,PDstandard2nd3gxy))))))); - - JacPDstandard2nd31gxz = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ113L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ213L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ313L,PDstandard2nd3gxz))))))); - - JacPDstandard2nd31gyy = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gyy,kmadd(J21L,PDstandard2nd12gyy,kmul(J31L,PDstandard2nd13gyy))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gyy,kmul(J33L,PDstandard2nd13gyy)),kmadd(dJ113L,PDstandard2nd1gyy,kmadd(J23L,kmadd(J21L,PDstandard2nd22gyy,kmul(J31L,PDstandard2nd23gyy)),kmadd(dJ213L,PDstandard2nd2gyy,kmadd(J33L,kmadd(J21L,PDstandard2nd23gyy,kmul(J31L,PDstandard2nd33gyy)),kmul(dJ313L,PDstandard2nd3gyy))))))); - - JacPDstandard2nd31gyz = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gyz,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ113L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gyz,kmul(J31L,PDstandard2nd23gyz)),kmadd(dJ213L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gyz,kmul(J31L,PDstandard2nd33gyz)),kmul(dJ313L,PDstandard2nd3gyz))))))); - - JacPDstandard2nd32gyz = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gyz,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ123L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gyz,kmul(J32L,PDstandard2nd23gyz)),kmadd(dJ223L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gyz,kmul(J32L,PDstandard2nd33gyz)),kmul(dJ323L,PDstandard2nd3gyz))))))); - } - else - { - JacPDstandard2nd1gxx = PDstandard2nd1gxx; - - JacPDstandard2nd1gxy = PDstandard2nd1gxy; - - JacPDstandard2nd1gxz = PDstandard2nd1gxz; - - JacPDstandard2nd1gyy = PDstandard2nd1gyy; - - JacPDstandard2nd1gyz = PDstandard2nd1gyz; - - JacPDstandard2nd1gzz = PDstandard2nd1gzz; - - JacPDstandard2nd1kxy = PDstandard2nd1kxy; - - JacPDstandard2nd1kxz = PDstandard2nd1kxz; - - JacPDstandard2nd1kyy = PDstandard2nd1kyy; - - JacPDstandard2nd1kyz = PDstandard2nd1kyz; - - JacPDstandard2nd1kzz = PDstandard2nd1kzz; - - JacPDstandard2nd2gxx = PDstandard2nd2gxx; - - JacPDstandard2nd2gxy = PDstandard2nd2gxy; - - JacPDstandard2nd2gxz = PDstandard2nd2gxz; - - JacPDstandard2nd2gyy = PDstandard2nd2gyy; - - JacPDstandard2nd2gyz = PDstandard2nd2gyz; - - JacPDstandard2nd2gzz = PDstandard2nd2gzz; - - JacPDstandard2nd2kxx = PDstandard2nd2kxx; - - JacPDstandard2nd2kxy = PDstandard2nd2kxy; - - JacPDstandard2nd2kxz = PDstandard2nd2kxz; - - JacPDstandard2nd2kyz = PDstandard2nd2kyz; - - JacPDstandard2nd2kzz = PDstandard2nd2kzz; - - JacPDstandard2nd3gxx = PDstandard2nd3gxx; - - JacPDstandard2nd3gxy = PDstandard2nd3gxy; - - JacPDstandard2nd3gxz = PDstandard2nd3gxz; - - JacPDstandard2nd3gyy = PDstandard2nd3gyy; - - JacPDstandard2nd3gyz = PDstandard2nd3gyz; - - JacPDstandard2nd3gzz = PDstandard2nd3gzz; - - JacPDstandard2nd3kxx = PDstandard2nd3kxx; - - JacPDstandard2nd3kxy = PDstandard2nd3kxy; - - JacPDstandard2nd3kxz = PDstandard2nd3kxz; - - JacPDstandard2nd3kyy = PDstandard2nd3kyy; - - JacPDstandard2nd3kyz = PDstandard2nd3kyz; - - JacPDstandard2nd11gyy = PDstandard2nd11gyy; - - JacPDstandard2nd11gyz = PDstandard2nd11gyz; - - JacPDstandard2nd11gzz = PDstandard2nd11gzz; - - JacPDstandard2nd22gxx = PDstandard2nd22gxx; - - JacPDstandard2nd22gxz = PDstandard2nd22gxz; - - JacPDstandard2nd22gzz = PDstandard2nd22gzz; - - JacPDstandard2nd33gxx = PDstandard2nd33gxx; - - JacPDstandard2nd33gxy = PDstandard2nd33gxy; - - JacPDstandard2nd33gyy = PDstandard2nd33gyy; - - JacPDstandard2nd12gxy = PDstandard2nd12gxy; - - JacPDstandard2nd12gxz = PDstandard2nd12gxz; - - JacPDstandard2nd12gyz = PDstandard2nd12gyz; - - JacPDstandard2nd12gzz = PDstandard2nd12gzz; - - JacPDstandard2nd13gxz = PDstandard2nd13gxz; - - JacPDstandard2nd21gxy = PDstandard2nd12gxy; - - JacPDstandard2nd23gxx = PDstandard2nd23gxx; - - JacPDstandard2nd23gxy = PDstandard2nd23gxy; - - JacPDstandard2nd23gxz = PDstandard2nd23gxz; - - JacPDstandard2nd23gyz = PDstandard2nd23gyz; - - JacPDstandard2nd31gxy = PDstandard2nd13gxy; - - JacPDstandard2nd31gxz = PDstandard2nd13gxz; - - JacPDstandard2nd31gyy = PDstandard2nd13gyy; - - JacPDstandard2nd31gyz = PDstandard2nd13gyz; - - JacPDstandard2nd32gyz = PDstandard2nd23gyz; - } - - CCTK_REAL_VEC detg = - knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); - - CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); - - CCTK_REAL_VEC gInv11 = - kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); - - CCTK_REAL_VEC gInv12 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv13 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv21 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv22 = - kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); - - CCTK_REAL_VEC gInv23 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv31 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv32 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv33 = - kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); - - CCTK_REAL_VEC gamma111 = - kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard2nd1gxx,knmsub(gInv12,JacPDstandard2nd2gxx,kmsub(kmadd(gInv12,JacPDstandard2nd1gxy,kmul(gInv13,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv13,JacPDstandard2nd3gxx))))); - - CCTK_REAL_VEC gamma211 = - kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard2nd1gxx,knmsub(gInv22,JacPDstandard2nd2gxx,kmsub(kmadd(gInv22,JacPDstandard2nd1gxy,kmul(gInv23,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv23,JacPDstandard2nd3gxx))))); - - CCTK_REAL_VEC gamma311 = - kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard2nd1gxx,knmsub(gInv32,JacPDstandard2nd2gxx,kmsub(kmadd(gInv32,JacPDstandard2nd1gxy,kmul(gInv33,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv33,JacPDstandard2nd3gxx))))); - - CCTK_REAL_VEC gamma121 = - kmul(kmadd(gInv12,JacPDstandard2nd1gyy,kmadd(gInv11,JacPDstandard2nd2gxx,kmul(gInv13,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma221 = - kmul(kmadd(gInv22,JacPDstandard2nd1gyy,kmadd(gInv21,JacPDstandard2nd2gxx,kmul(gInv23,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma321 = - kmul(kmadd(gInv32,JacPDstandard2nd1gyy,kmadd(gInv31,JacPDstandard2nd2gxx,kmul(gInv33,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma131 = - kmul(kmadd(gInv13,JacPDstandard2nd1gzz,kmadd(gInv11,JacPDstandard2nd3gxx,kmul(gInv12,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma231 = - kmul(kmadd(gInv23,JacPDstandard2nd1gzz,kmadd(gInv21,JacPDstandard2nd3gxx,kmul(gInv22,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma331 = - kmul(kmadd(gInv33,JacPDstandard2nd1gzz,kmadd(gInv31,JacPDstandard2nd3gxx,kmul(gInv32,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma122 = - kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2nd2gyy,kmadd(gInv11,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv13,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); - - CCTK_REAL_VEC gamma222 = - kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2nd2gyy,kmadd(gInv21,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv23,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); - - CCTK_REAL_VEC gamma322 = - kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2nd2gyy,kmadd(gInv31,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv33,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); - - CCTK_REAL_VEC gamma132 = - kmul(kmadd(gInv13,JacPDstandard2nd2gzz,kmadd(gInv12,JacPDstandard2nd3gyy,kmul(gInv11,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma232 = - kmul(kmadd(gInv23,JacPDstandard2nd2gzz,kmadd(gInv22,JacPDstandard2nd3gyy,kmul(gInv21,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma332 = - kmul(kmadd(gInv33,JacPDstandard2nd2gzz,kmadd(gInv32,JacPDstandard2nd3gyy,kmul(gInv31,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma133 = - kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard2nd3gzz,kmadd(gInv11,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv12,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); - - CCTK_REAL_VEC gamma233 = - kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard2nd3gzz,kmadd(gInv21,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv22,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); - - CCTK_REAL_VEC gamma333 = - kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard2nd3gzz,kmadd(gInv31,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv32,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); - - CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); - - CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); - - CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); - - CCTK_REAL_VEC va1 = kneg(ymoved); - - CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC va3 = ToReal(0); - - CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC vb2 = ymoved; - - CCTK_REAL_VEC vb3 = zmoved; - - CCTK_REAL_VEC vc1 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); - - CCTK_REAL_VEC vc2 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); - - CCTK_REAL_VEC vc3 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); - - CCTK_REAL_VEC wa1 = va1; - - CCTK_REAL_VEC wa2 = va2; - - CCTK_REAL_VEC wa3 = va3; - - CCTK_REAL_VEC omega11 = - kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); - - CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); - - CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); - - CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); - - CCTK_REAL_VEC omega12 = - kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); - - CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); - - CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); - - CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); - - CCTK_REAL_VEC omega22 = - kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); - - CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); - - CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); - - CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); - - CCTK_REAL_VEC omega13 = - kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC omega23 = - kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); - - CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); - - CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); - - CCTK_REAL_VEC omega33 = - kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); - - CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); - - CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); - - CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); - - CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); - - CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); - - CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); - - CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); - - CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); - - CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); - - CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); - - CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); - - CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); - - CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); - - CCTK_REAL_VEC nn = isqrt2; - - CCTK_REAL_VEC R1212 = - kmul(ToReal(0.5),kadd(JacPDstandard2nd12gxy,kadd(JacPDstandard2nd21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard2nd22gxx),JacPDstandard2nd11gyy))))); - - CCTK_REAL_VEC R1213 = - kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard2nd12gxz,kadd(JacPDstandard2nd31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard2nd23gxx),JacPDstandard2nd11gyz)))))); - - CCTK_REAL_VEC R1223 = - kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard2nd22gxz,kadd(JacPDstandard2nd31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard2nd23gxy),JacPDstandard2nd12gyz)))))); - - CCTK_REAL_VEC R1313 = - kmul(ToReal(0.5),kadd(JacPDstandard2nd13gxz,kadd(JacPDstandard2nd31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard2nd33gxx),JacPDstandard2nd11gzz))))); - - CCTK_REAL_VEC R1323 = - kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard2nd23gxz,kadd(JacPDstandard2nd31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard2nd33gxy),JacPDstandard2nd12gzz)))))); - - CCTK_REAL_VEC R2323 = - kmul(ToReal(0.5),kadd(JacPDstandard2nd23gyz,kadd(JacPDstandard2nd32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard2nd33gyy),JacPDstandard2nd22gzz))))); - - CCTK_REAL_VEC R4p1212 = - kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); - - CCTK_REAL_VEC R4p1213 = - kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); - - CCTK_REAL_VEC R4p1223 = - kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); - - CCTK_REAL_VEC R4p1313 = - kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); - - CCTK_REAL_VEC R4p1323 = - kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); - - CCTK_REAL_VEC R4p2323 = - kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); - - CCTK_REAL_VEC Ro111 = ToReal(0); - - CCTK_REAL_VEC Ro112 = - kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard2nd1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2nd2kxx)))))); - - CCTK_REAL_VEC Ro113 = - kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard2nd1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard2nd3kxx)))))); - - CCTK_REAL_VEC Ro121 = - kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2nd2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard2nd1kxy)))))); - - CCTK_REAL_VEC Ro122 = ToReal(0); - - CCTK_REAL_VEC Ro123 = - kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2nd2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard2nd3kxy)))))); - - CCTK_REAL_VEC Ro131 = - kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard2nd3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard2nd1kxz)))))); - - CCTK_REAL_VEC Ro132 = - kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard2nd3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2nd2kxz)))))); - - CCTK_REAL_VEC Ro133 = ToReal(0); - - CCTK_REAL_VEC Ro211 = ToReal(0); - - CCTK_REAL_VEC Ro212 = - kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard2nd1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2nd2kxy)))))); - - CCTK_REAL_VEC Ro213 = - kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard2nd1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard2nd3kxy)))))); - - CCTK_REAL_VEC Ro221 = - kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2nd2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard2nd1kyy)))))); - - CCTK_REAL_VEC Ro222 = ToReal(0); - - CCTK_REAL_VEC Ro223 = - kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2nd2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard2nd3kyy)))))); - - CCTK_REAL_VEC Ro231 = - kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard2nd3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard2nd1kyz)))))); - - CCTK_REAL_VEC Ro232 = - kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard2nd3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2nd2kyz)))))); - - CCTK_REAL_VEC Ro233 = ToReal(0); - - CCTK_REAL_VEC Ro311 = ToReal(0); - - CCTK_REAL_VEC Ro312 = - kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard2nd1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2nd2kxz)))))); - - CCTK_REAL_VEC Ro313 = - kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard2nd1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard2nd3kxz)))))); - - CCTK_REAL_VEC Ro321 = - kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2nd2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard2nd1kyz)))))); - - CCTK_REAL_VEC Ro322 = ToReal(0); - - CCTK_REAL_VEC Ro323 = - kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2nd2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard2nd3kyz)))))); - - CCTK_REAL_VEC Ro331 = - kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard2nd3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard2nd1kzz)))))); - - CCTK_REAL_VEC Ro332 = - kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard2nd3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2nd2kzz)))))); - - CCTK_REAL_VEC Ro333 = ToReal(0); - - CCTK_REAL_VEC Rojo11 = - kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); - - CCTK_REAL_VEC Rojo12 = - kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo13 = - kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); - - CCTK_REAL_VEC Rojo21 = - kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo22 = - kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Rojo23 = - kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo31 = - kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); - - CCTK_REAL_VEC Rojo32 = - kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo33 = - kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Psi4rL = - kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi4iL = - knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(Psi4i[index],Psi4iL); - vec_store_nta_partial(Psi4r[index],Psi4rL); - } - LC_ENDLOOP3VEC(psi4_calc_2nd); -} - -extern "C" void psi4_calc_2nd(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering psi4_calc_2nd_Body"); - } - - if (cctk_iteration % psi4_calc_2nd_calc_every != psi4_calc_2nd_calc_offset) - { - return; - } - - const char *const groups[] = { - "admbase::curv", - "admbase::metric", - "grid::coordinates", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "psi4_calc_2nd", 5, groups); - - switch(fdOrder) - { - case 2: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_2nd", 1, 1, 1); - break; - - case 4: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_2nd", 1, 1, 1); - break; - - case 6: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_2nd", 1, 1, 1); - break; - - case 8: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_2nd", 1, 1, 1); - break; - } - - GenericFD_LoopOverInterior(cctkGH, psi4_calc_2nd_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving psi4_calc_2nd_Body"); - } -} diff --git a/src/psi4_calc_4th.cc b/src/psi4_calc_4th.cc deleted file mode 100644 index da44533..0000000 --- a/src/psi4_calc_4th.cc +++ /dev/null @@ -1,1356 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void psi4_calc_4th_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); - return; -} - -static void psi4_calc_4th_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(psi4_calc_4th, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC gxxL = vec_load(gxx[index]); - CCTK_REAL_VEC gxyL = vec_load(gxy[index]); - CCTK_REAL_VEC gxzL = vec_load(gxz[index]); - CCTK_REAL_VEC gyyL = vec_load(gyy[index]); - CCTK_REAL_VEC gyzL = vec_load(gyz[index]); - CCTK_REAL_VEC gzzL = vec_load(gzz[index]); - CCTK_REAL_VEC kxxL = vec_load(kxx[index]); - CCTK_REAL_VEC kxyL = vec_load(kxy[index]); - CCTK_REAL_VEC kxzL = vec_load(kxz[index]); - CCTK_REAL_VEC kyyL = vec_load(kyy[index]); - CCTK_REAL_VEC kyzL = vec_load(kyz[index]); - CCTK_REAL_VEC kzzL = vec_load(kzz[index]); - CCTK_REAL_VEC xL = vec_load(x[index]); - CCTK_REAL_VEC yL = vec_load(y[index]); - CCTK_REAL_VEC zL = vec_load(z[index]); - - - CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; - - if (use_jacobian) - { - dJ111L = vec_load(dJ111[index]); - dJ112L = vec_load(dJ112[index]); - dJ113L = vec_load(dJ113[index]); - dJ122L = vec_load(dJ122[index]); - dJ123L = vec_load(dJ123[index]); - dJ133L = vec_load(dJ133[index]); - dJ211L = vec_load(dJ211[index]); - dJ212L = vec_load(dJ212[index]); - dJ213L = vec_load(dJ213[index]); - dJ222L = vec_load(dJ222[index]); - dJ223L = vec_load(dJ223[index]); - dJ233L = vec_load(dJ233[index]); - dJ311L = vec_load(dJ311[index]); - dJ312L = vec_load(dJ312[index]); - dJ313L = vec_load(dJ313[index]); - dJ322L = vec_load(dJ322[index]); - dJ323L = vec_load(dJ323[index]); - dJ333L = vec_load(dJ333[index]); - J11L = vec_load(J11[index]); - J12L = vec_load(J12[index]); - J13L = vec_load(J13[index]); - J21L = vec_load(J21[index]); - J22L = vec_load(J22[index]); - J23L = vec_load(J23[index]); - J31L = vec_load(J31[index]); - J32L = vec_load(J32[index]); - J33L = vec_load(J33[index]); - } - - /* Include user supplied include files */ - - /* Precompute derivatives */ - CCTK_REAL_VEC PDstandard4th1gxx; - CCTK_REAL_VEC PDstandard4th2gxx; - CCTK_REAL_VEC PDstandard4th3gxx; - CCTK_REAL_VEC PDstandard4th11gxx; - CCTK_REAL_VEC PDstandard4th22gxx; - CCTK_REAL_VEC PDstandard4th33gxx; - CCTK_REAL_VEC PDstandard4th12gxx; - CCTK_REAL_VEC PDstandard4th13gxx; - CCTK_REAL_VEC PDstandard4th23gxx; - CCTK_REAL_VEC PDstandard4th1gxy; - CCTK_REAL_VEC PDstandard4th2gxy; - CCTK_REAL_VEC PDstandard4th3gxy; - CCTK_REAL_VEC PDstandard4th11gxy; - CCTK_REAL_VEC PDstandard4th22gxy; - CCTK_REAL_VEC PDstandard4th33gxy; - CCTK_REAL_VEC PDstandard4th12gxy; - CCTK_REAL_VEC PDstandard4th13gxy; - CCTK_REAL_VEC PDstandard4th23gxy; - CCTK_REAL_VEC PDstandard4th1gxz; - CCTK_REAL_VEC PDstandard4th2gxz; - CCTK_REAL_VEC PDstandard4th3gxz; - CCTK_REAL_VEC PDstandard4th11gxz; - CCTK_REAL_VEC PDstandard4th22gxz; - CCTK_REAL_VEC PDstandard4th33gxz; - CCTK_REAL_VEC PDstandard4th12gxz; - CCTK_REAL_VEC PDstandard4th13gxz; - CCTK_REAL_VEC PDstandard4th23gxz; - CCTK_REAL_VEC PDstandard4th1gyy; - CCTK_REAL_VEC PDstandard4th2gyy; - CCTK_REAL_VEC PDstandard4th3gyy; - CCTK_REAL_VEC PDstandard4th11gyy; - CCTK_REAL_VEC PDstandard4th22gyy; - CCTK_REAL_VEC PDstandard4th33gyy; - CCTK_REAL_VEC PDstandard4th12gyy; - CCTK_REAL_VEC PDstandard4th13gyy; - CCTK_REAL_VEC PDstandard4th23gyy; - CCTK_REAL_VEC PDstandard4th1gyz; - CCTK_REAL_VEC PDstandard4th2gyz; - CCTK_REAL_VEC PDstandard4th3gyz; - CCTK_REAL_VEC PDstandard4th11gyz; - CCTK_REAL_VEC PDstandard4th22gyz; - CCTK_REAL_VEC PDstandard4th33gyz; - CCTK_REAL_VEC PDstandard4th12gyz; - CCTK_REAL_VEC PDstandard4th13gyz; - CCTK_REAL_VEC PDstandard4th23gyz; - CCTK_REAL_VEC PDstandard4th1gzz; - CCTK_REAL_VEC PDstandard4th2gzz; - CCTK_REAL_VEC PDstandard4th3gzz; - CCTK_REAL_VEC PDstandard4th11gzz; - CCTK_REAL_VEC PDstandard4th22gzz; - CCTK_REAL_VEC PDstandard4th33gzz; - CCTK_REAL_VEC PDstandard4th12gzz; - CCTK_REAL_VEC PDstandard4th13gzz; - CCTK_REAL_VEC PDstandard4th23gzz; - CCTK_REAL_VEC PDstandard4th1kxx; - CCTK_REAL_VEC PDstandard4th2kxx; - CCTK_REAL_VEC PDstandard4th3kxx; - CCTK_REAL_VEC PDstandard4th1kxy; - CCTK_REAL_VEC PDstandard4th2kxy; - CCTK_REAL_VEC PDstandard4th3kxy; - CCTK_REAL_VEC PDstandard4th1kxz; - CCTK_REAL_VEC PDstandard4th2kxz; - CCTK_REAL_VEC PDstandard4th3kxz; - CCTK_REAL_VEC PDstandard4th1kyy; - CCTK_REAL_VEC PDstandard4th2kyy; - CCTK_REAL_VEC PDstandard4th3kyy; - CCTK_REAL_VEC PDstandard4th1kyz; - CCTK_REAL_VEC PDstandard4th2kyz; - CCTK_REAL_VEC PDstandard4th3kyz; - CCTK_REAL_VEC PDstandard4th1kzz; - CCTK_REAL_VEC PDstandard4th2kzz; - CCTK_REAL_VEC PDstandard4th3kzz; - - switch(fdOrder) - { - case 2: - PDstandard4th1gxx = PDstandard4th1(&gxx[index]); - PDstandard4th2gxx = PDstandard4th2(&gxx[index]); - PDstandard4th3gxx = PDstandard4th3(&gxx[index]); - PDstandard4th11gxx = PDstandard4th11(&gxx[index]); - PDstandard4th22gxx = PDstandard4th22(&gxx[index]); - PDstandard4th33gxx = PDstandard4th33(&gxx[index]); - PDstandard4th12gxx = PDstandard4th12(&gxx[index]); - PDstandard4th13gxx = PDstandard4th13(&gxx[index]); - PDstandard4th23gxx = PDstandard4th23(&gxx[index]); - PDstandard4th1gxy = PDstandard4th1(&gxy[index]); - PDstandard4th2gxy = PDstandard4th2(&gxy[index]); - PDstandard4th3gxy = PDstandard4th3(&gxy[index]); - PDstandard4th11gxy = PDstandard4th11(&gxy[index]); - PDstandard4th22gxy = PDstandard4th22(&gxy[index]); - PDstandard4th33gxy = PDstandard4th33(&gxy[index]); - PDstandard4th12gxy = PDstandard4th12(&gxy[index]); - PDstandard4th13gxy = PDstandard4th13(&gxy[index]); - PDstandard4th23gxy = PDstandard4th23(&gxy[index]); - PDstandard4th1gxz = PDstandard4th1(&gxz[index]); - PDstandard4th2gxz = PDstandard4th2(&gxz[index]); - PDstandard4th3gxz = PDstandard4th3(&gxz[index]); - PDstandard4th11gxz = PDstandard4th11(&gxz[index]); - PDstandard4th22gxz = PDstandard4th22(&gxz[index]); - PDstandard4th33gxz = PDstandard4th33(&gxz[index]); - PDstandard4th12gxz = PDstandard4th12(&gxz[index]); - PDstandard4th13gxz = PDstandard4th13(&gxz[index]); - PDstandard4th23gxz = PDstandard4th23(&gxz[index]); - PDstandard4th1gyy = PDstandard4th1(&gyy[index]); - PDstandard4th2gyy = PDstandard4th2(&gyy[index]); - PDstandard4th3gyy = PDstandard4th3(&gyy[index]); - PDstandard4th11gyy = PDstandard4th11(&gyy[index]); - PDstandard4th22gyy = PDstandard4th22(&gyy[index]); - PDstandard4th33gyy = PDstandard4th33(&gyy[index]); - PDstandard4th12gyy = PDstandard4th12(&gyy[index]); - PDstandard4th13gyy = PDstandard4th13(&gyy[index]); - PDstandard4th23gyy = PDstandard4th23(&gyy[index]); - PDstandard4th1gyz = PDstandard4th1(&gyz[index]); - PDstandard4th2gyz = PDstandard4th2(&gyz[index]); - PDstandard4th3gyz = PDstandard4th3(&gyz[index]); - PDstandard4th11gyz = PDstandard4th11(&gyz[index]); - PDstandard4th22gyz = PDstandard4th22(&gyz[index]); - PDstandard4th33gyz = PDstandard4th33(&gyz[index]); - PDstandard4th12gyz = PDstandard4th12(&gyz[index]); - PDstandard4th13gyz = PDstandard4th13(&gyz[index]); - PDstandard4th23gyz = PDstandard4th23(&gyz[index]); - PDstandard4th1gzz = PDstandard4th1(&gzz[index]); - PDstandard4th2gzz = PDstandard4th2(&gzz[index]); - PDstandard4th3gzz = PDstandard4th3(&gzz[index]); - PDstandard4th11gzz = PDstandard4th11(&gzz[index]); - PDstandard4th22gzz = PDstandard4th22(&gzz[index]); - PDstandard4th33gzz = PDstandard4th33(&gzz[index]); - PDstandard4th12gzz = PDstandard4th12(&gzz[index]); - PDstandard4th13gzz = PDstandard4th13(&gzz[index]); - PDstandard4th23gzz = PDstandard4th23(&gzz[index]); - PDstandard4th1kxx = PDstandard4th1(&kxx[index]); - PDstandard4th2kxx = PDstandard4th2(&kxx[index]); - PDstandard4th3kxx = PDstandard4th3(&kxx[index]); - PDstandard4th1kxy = PDstandard4th1(&kxy[index]); - PDstandard4th2kxy = PDstandard4th2(&kxy[index]); - PDstandard4th3kxy = PDstandard4th3(&kxy[index]); - PDstandard4th1kxz = PDstandard4th1(&kxz[index]); - PDstandard4th2kxz = PDstandard4th2(&kxz[index]); - PDstandard4th3kxz = PDstandard4th3(&kxz[index]); - PDstandard4th1kyy = PDstandard4th1(&kyy[index]); - PDstandard4th2kyy = PDstandard4th2(&kyy[index]); - PDstandard4th3kyy = PDstandard4th3(&kyy[index]); - PDstandard4th1kyz = PDstandard4th1(&kyz[index]); - PDstandard4th2kyz = PDstandard4th2(&kyz[index]); - PDstandard4th3kyz = PDstandard4th3(&kyz[index]); - PDstandard4th1kzz = PDstandard4th1(&kzz[index]); - PDstandard4th2kzz = PDstandard4th2(&kzz[index]); - PDstandard4th3kzz = PDstandard4th3(&kzz[index]); - break; - - case 4: - PDstandard4th1gxx = PDstandard4th1(&gxx[index]); - PDstandard4th2gxx = PDstandard4th2(&gxx[index]); - PDstandard4th3gxx = PDstandard4th3(&gxx[index]); - PDstandard4th11gxx = PDstandard4th11(&gxx[index]); - PDstandard4th22gxx = PDstandard4th22(&gxx[index]); - PDstandard4th33gxx = PDstandard4th33(&gxx[index]); - PDstandard4th12gxx = PDstandard4th12(&gxx[index]); - PDstandard4th13gxx = PDstandard4th13(&gxx[index]); - PDstandard4th23gxx = PDstandard4th23(&gxx[index]); - PDstandard4th1gxy = PDstandard4th1(&gxy[index]); - PDstandard4th2gxy = PDstandard4th2(&gxy[index]); - PDstandard4th3gxy = PDstandard4th3(&gxy[index]); - PDstandard4th11gxy = PDstandard4th11(&gxy[index]); - PDstandard4th22gxy = PDstandard4th22(&gxy[index]); - PDstandard4th33gxy = PDstandard4th33(&gxy[index]); - PDstandard4th12gxy = PDstandard4th12(&gxy[index]); - PDstandard4th13gxy = PDstandard4th13(&gxy[index]); - PDstandard4th23gxy = PDstandard4th23(&gxy[index]); - PDstandard4th1gxz = PDstandard4th1(&gxz[index]); - PDstandard4th2gxz = PDstandard4th2(&gxz[index]); - PDstandard4th3gxz = PDstandard4th3(&gxz[index]); - PDstandard4th11gxz = PDstandard4th11(&gxz[index]); - PDstandard4th22gxz = PDstandard4th22(&gxz[index]); - PDstandard4th33gxz = PDstandard4th33(&gxz[index]); - PDstandard4th12gxz = PDstandard4th12(&gxz[index]); - PDstandard4th13gxz = PDstandard4th13(&gxz[index]); - PDstandard4th23gxz = PDstandard4th23(&gxz[index]); - PDstandard4th1gyy = PDstandard4th1(&gyy[index]); - PDstandard4th2gyy = PDstandard4th2(&gyy[index]); - PDstandard4th3gyy = PDstandard4th3(&gyy[index]); - PDstandard4th11gyy = PDstandard4th11(&gyy[index]); - PDstandard4th22gyy = PDstandard4th22(&gyy[index]); - PDstandard4th33gyy = PDstandard4th33(&gyy[index]); - PDstandard4th12gyy = PDstandard4th12(&gyy[index]); - PDstandard4th13gyy = PDstandard4th13(&gyy[index]); - PDstandard4th23gyy = PDstandard4th23(&gyy[index]); - PDstandard4th1gyz = PDstandard4th1(&gyz[index]); - PDstandard4th2gyz = PDstandard4th2(&gyz[index]); - PDstandard4th3gyz = PDstandard4th3(&gyz[index]); - PDstandard4th11gyz = PDstandard4th11(&gyz[index]); - PDstandard4th22gyz = PDstandard4th22(&gyz[index]); - PDstandard4th33gyz = PDstandard4th33(&gyz[index]); - PDstandard4th12gyz = PDstandard4th12(&gyz[index]); - PDstandard4th13gyz = PDstandard4th13(&gyz[index]); - PDstandard4th23gyz = PDstandard4th23(&gyz[index]); - PDstandard4th1gzz = PDstandard4th1(&gzz[index]); - PDstandard4th2gzz = PDstandard4th2(&gzz[index]); - PDstandard4th3gzz = PDstandard4th3(&gzz[index]); - PDstandard4th11gzz = PDstandard4th11(&gzz[index]); - PDstandard4th22gzz = PDstandard4th22(&gzz[index]); - PDstandard4th33gzz = PDstandard4th33(&gzz[index]); - PDstandard4th12gzz = PDstandard4th12(&gzz[index]); - PDstandard4th13gzz = PDstandard4th13(&gzz[index]); - PDstandard4th23gzz = PDstandard4th23(&gzz[index]); - PDstandard4th1kxx = PDstandard4th1(&kxx[index]); - PDstandard4th2kxx = PDstandard4th2(&kxx[index]); - PDstandard4th3kxx = PDstandard4th3(&kxx[index]); - PDstandard4th1kxy = PDstandard4th1(&kxy[index]); - PDstandard4th2kxy = PDstandard4th2(&kxy[index]); - PDstandard4th3kxy = PDstandard4th3(&kxy[index]); - PDstandard4th1kxz = PDstandard4th1(&kxz[index]); - PDstandard4th2kxz = PDstandard4th2(&kxz[index]); - PDstandard4th3kxz = PDstandard4th3(&kxz[index]); - PDstandard4th1kyy = PDstandard4th1(&kyy[index]); - PDstandard4th2kyy = PDstandard4th2(&kyy[index]); - PDstandard4th3kyy = PDstandard4th3(&kyy[index]); - PDstandard4th1kyz = PDstandard4th1(&kyz[index]); - PDstandard4th2kyz = PDstandard4th2(&kyz[index]); - PDstandard4th3kyz = PDstandard4th3(&kyz[index]); - PDstandard4th1kzz = PDstandard4th1(&kzz[index]); - PDstandard4th2kzz = PDstandard4th2(&kzz[index]); - PDstandard4th3kzz = PDstandard4th3(&kzz[index]); - break; - - case 6: - PDstandard4th1gxx = PDstandard4th1(&gxx[index]); - PDstandard4th2gxx = PDstandard4th2(&gxx[index]); - PDstandard4th3gxx = PDstandard4th3(&gxx[index]); - PDstandard4th11gxx = PDstandard4th11(&gxx[index]); - PDstandard4th22gxx = PDstandard4th22(&gxx[index]); - PDstandard4th33gxx = PDstandard4th33(&gxx[index]); - PDstandard4th12gxx = PDstandard4th12(&gxx[index]); - PDstandard4th13gxx = PDstandard4th13(&gxx[index]); - PDstandard4th23gxx = PDstandard4th23(&gxx[index]); - PDstandard4th1gxy = PDstandard4th1(&gxy[index]); - PDstandard4th2gxy = PDstandard4th2(&gxy[index]); - PDstandard4th3gxy = PDstandard4th3(&gxy[index]); - PDstandard4th11gxy = PDstandard4th11(&gxy[index]); - PDstandard4th22gxy = PDstandard4th22(&gxy[index]); - PDstandard4th33gxy = PDstandard4th33(&gxy[index]); - PDstandard4th12gxy = PDstandard4th12(&gxy[index]); - PDstandard4th13gxy = PDstandard4th13(&gxy[index]); - PDstandard4th23gxy = PDstandard4th23(&gxy[index]); - PDstandard4th1gxz = PDstandard4th1(&gxz[index]); - PDstandard4th2gxz = PDstandard4th2(&gxz[index]); - PDstandard4th3gxz = PDstandard4th3(&gxz[index]); - PDstandard4th11gxz = PDstandard4th11(&gxz[index]); - PDstandard4th22gxz = PDstandard4th22(&gxz[index]); - PDstandard4th33gxz = PDstandard4th33(&gxz[index]); - PDstandard4th12gxz = PDstandard4th12(&gxz[index]); - PDstandard4th13gxz = PDstandard4th13(&gxz[index]); - PDstandard4th23gxz = PDstandard4th23(&gxz[index]); - PDstandard4th1gyy = PDstandard4th1(&gyy[index]); - PDstandard4th2gyy = PDstandard4th2(&gyy[index]); - PDstandard4th3gyy = PDstandard4th3(&gyy[index]); - PDstandard4th11gyy = PDstandard4th11(&gyy[index]); - PDstandard4th22gyy = PDstandard4th22(&gyy[index]); - PDstandard4th33gyy = PDstandard4th33(&gyy[index]); - PDstandard4th12gyy = PDstandard4th12(&gyy[index]); - PDstandard4th13gyy = PDstandard4th13(&gyy[index]); - PDstandard4th23gyy = PDstandard4th23(&gyy[index]); - PDstandard4th1gyz = PDstandard4th1(&gyz[index]); - PDstandard4th2gyz = PDstandard4th2(&gyz[index]); - PDstandard4th3gyz = PDstandard4th3(&gyz[index]); - PDstandard4th11gyz = PDstandard4th11(&gyz[index]); - PDstandard4th22gyz = PDstandard4th22(&gyz[index]); - PDstandard4th33gyz = PDstandard4th33(&gyz[index]); - PDstandard4th12gyz = PDstandard4th12(&gyz[index]); - PDstandard4th13gyz = PDstandard4th13(&gyz[index]); - PDstandard4th23gyz = PDstandard4th23(&gyz[index]); - PDstandard4th1gzz = PDstandard4th1(&gzz[index]); - PDstandard4th2gzz = PDstandard4th2(&gzz[index]); - PDstandard4th3gzz = PDstandard4th3(&gzz[index]); - PDstandard4th11gzz = PDstandard4th11(&gzz[index]); - PDstandard4th22gzz = PDstandard4th22(&gzz[index]); - PDstandard4th33gzz = PDstandard4th33(&gzz[index]); - PDstandard4th12gzz = PDstandard4th12(&gzz[index]); - PDstandard4th13gzz = PDstandard4th13(&gzz[index]); - PDstandard4th23gzz = PDstandard4th23(&gzz[index]); - PDstandard4th1kxx = PDstandard4th1(&kxx[index]); - PDstandard4th2kxx = PDstandard4th2(&kxx[index]); - PDstandard4th3kxx = PDstandard4th3(&kxx[index]); - PDstandard4th1kxy = PDstandard4th1(&kxy[index]); - PDstandard4th2kxy = PDstandard4th2(&kxy[index]); - PDstandard4th3kxy = PDstandard4th3(&kxy[index]); - PDstandard4th1kxz = PDstandard4th1(&kxz[index]); - PDstandard4th2kxz = PDstandard4th2(&kxz[index]); - PDstandard4th3kxz = PDstandard4th3(&kxz[index]); - PDstandard4th1kyy = PDstandard4th1(&kyy[index]); - PDstandard4th2kyy = PDstandard4th2(&kyy[index]); - PDstandard4th3kyy = PDstandard4th3(&kyy[index]); - PDstandard4th1kyz = PDstandard4th1(&kyz[index]); - PDstandard4th2kyz = PDstandard4th2(&kyz[index]); - PDstandard4th3kyz = PDstandard4th3(&kyz[index]); - PDstandard4th1kzz = PDstandard4th1(&kzz[index]); - PDstandard4th2kzz = PDstandard4th2(&kzz[index]); - PDstandard4th3kzz = PDstandard4th3(&kzz[index]); - break; - - case 8: - PDstandard4th1gxx = PDstandard4th1(&gxx[index]); - PDstandard4th2gxx = PDstandard4th2(&gxx[index]); - PDstandard4th3gxx = PDstandard4th3(&gxx[index]); - PDstandard4th11gxx = PDstandard4th11(&gxx[index]); - PDstandard4th22gxx = PDstandard4th22(&gxx[index]); - PDstandard4th33gxx = PDstandard4th33(&gxx[index]); - PDstandard4th12gxx = PDstandard4th12(&gxx[index]); - PDstandard4th13gxx = PDstandard4th13(&gxx[index]); - PDstandard4th23gxx = PDstandard4th23(&gxx[index]); - PDstandard4th1gxy = PDstandard4th1(&gxy[index]); - PDstandard4th2gxy = PDstandard4th2(&gxy[index]); - PDstandard4th3gxy = PDstandard4th3(&gxy[index]); - PDstandard4th11gxy = PDstandard4th11(&gxy[index]); - PDstandard4th22gxy = PDstandard4th22(&gxy[index]); - PDstandard4th33gxy = PDstandard4th33(&gxy[index]); - PDstandard4th12gxy = PDstandard4th12(&gxy[index]); - PDstandard4th13gxy = PDstandard4th13(&gxy[index]); - PDstandard4th23gxy = PDstandard4th23(&gxy[index]); - PDstandard4th1gxz = PDstandard4th1(&gxz[index]); - PDstandard4th2gxz = PDstandard4th2(&gxz[index]); - PDstandard4th3gxz = PDstandard4th3(&gxz[index]); - PDstandard4th11gxz = PDstandard4th11(&gxz[index]); - PDstandard4th22gxz = PDstandard4th22(&gxz[index]); - PDstandard4th33gxz = PDstandard4th33(&gxz[index]); - PDstandard4th12gxz = PDstandard4th12(&gxz[index]); - PDstandard4th13gxz = PDstandard4th13(&gxz[index]); - PDstandard4th23gxz = PDstandard4th23(&gxz[index]); - PDstandard4th1gyy = PDstandard4th1(&gyy[index]); - PDstandard4th2gyy = PDstandard4th2(&gyy[index]); - PDstandard4th3gyy = PDstandard4th3(&gyy[index]); - PDstandard4th11gyy = PDstandard4th11(&gyy[index]); - PDstandard4th22gyy = PDstandard4th22(&gyy[index]); - PDstandard4th33gyy = PDstandard4th33(&gyy[index]); - PDstandard4th12gyy = PDstandard4th12(&gyy[index]); - PDstandard4th13gyy = PDstandard4th13(&gyy[index]); - PDstandard4th23gyy = PDstandard4th23(&gyy[index]); - PDstandard4th1gyz = PDstandard4th1(&gyz[index]); - PDstandard4th2gyz = PDstandard4th2(&gyz[index]); - PDstandard4th3gyz = PDstandard4th3(&gyz[index]); - PDstandard4th11gyz = PDstandard4th11(&gyz[index]); - PDstandard4th22gyz = PDstandard4th22(&gyz[index]); - PDstandard4th33gyz = PDstandard4th33(&gyz[index]); - PDstandard4th12gyz = PDstandard4th12(&gyz[index]); - PDstandard4th13gyz = PDstandard4th13(&gyz[index]); - PDstandard4th23gyz = PDstandard4th23(&gyz[index]); - PDstandard4th1gzz = PDstandard4th1(&gzz[index]); - PDstandard4th2gzz = PDstandard4th2(&gzz[index]); - PDstandard4th3gzz = PDstandard4th3(&gzz[index]); - PDstandard4th11gzz = PDstandard4th11(&gzz[index]); - PDstandard4th22gzz = PDstandard4th22(&gzz[index]); - PDstandard4th33gzz = PDstandard4th33(&gzz[index]); - PDstandard4th12gzz = PDstandard4th12(&gzz[index]); - PDstandard4th13gzz = PDstandard4th13(&gzz[index]); - PDstandard4th23gzz = PDstandard4th23(&gzz[index]); - PDstandard4th1kxx = PDstandard4th1(&kxx[index]); - PDstandard4th2kxx = PDstandard4th2(&kxx[index]); - PDstandard4th3kxx = PDstandard4th3(&kxx[index]); - PDstandard4th1kxy = PDstandard4th1(&kxy[index]); - PDstandard4th2kxy = PDstandard4th2(&kxy[index]); - PDstandard4th3kxy = PDstandard4th3(&kxy[index]); - PDstandard4th1kxz = PDstandard4th1(&kxz[index]); - PDstandard4th2kxz = PDstandard4th2(&kxz[index]); - PDstandard4th3kxz = PDstandard4th3(&kxz[index]); - PDstandard4th1kyy = PDstandard4th1(&kyy[index]); - PDstandard4th2kyy = PDstandard4th2(&kyy[index]); - PDstandard4th3kyy = PDstandard4th3(&kyy[index]); - PDstandard4th1kyz = PDstandard4th1(&kyz[index]); - PDstandard4th2kyz = PDstandard4th2(&kyz[index]); - PDstandard4th3kyz = PDstandard4th3(&kyz[index]); - PDstandard4th1kzz = PDstandard4th1(&kzz[index]); - PDstandard4th2kzz = PDstandard4th2(&kzz[index]); - PDstandard4th3kzz = PDstandard4th3(&kzz[index]); - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC JacPDstandard4th11gyy; - CCTK_REAL_VEC JacPDstandard4th11gyz; - CCTK_REAL_VEC JacPDstandard4th11gzz; - CCTK_REAL_VEC JacPDstandard4th12gxy; - CCTK_REAL_VEC JacPDstandard4th12gxz; - CCTK_REAL_VEC JacPDstandard4th12gyz; - CCTK_REAL_VEC JacPDstandard4th12gzz; - CCTK_REAL_VEC JacPDstandard4th13gxz; - CCTK_REAL_VEC JacPDstandard4th1gxx; - CCTK_REAL_VEC JacPDstandard4th1gxy; - CCTK_REAL_VEC JacPDstandard4th1gxz; - CCTK_REAL_VEC JacPDstandard4th1gyy; - CCTK_REAL_VEC JacPDstandard4th1gyz; - CCTK_REAL_VEC JacPDstandard4th1gzz; - CCTK_REAL_VEC JacPDstandard4th1kxy; - CCTK_REAL_VEC JacPDstandard4th1kxz; - CCTK_REAL_VEC JacPDstandard4th1kyy; - CCTK_REAL_VEC JacPDstandard4th1kyz; - CCTK_REAL_VEC JacPDstandard4th1kzz; - CCTK_REAL_VEC JacPDstandard4th21gxy; - CCTK_REAL_VEC JacPDstandard4th22gxx; - CCTK_REAL_VEC JacPDstandard4th22gxz; - CCTK_REAL_VEC JacPDstandard4th22gzz; - CCTK_REAL_VEC JacPDstandard4th23gxx; - CCTK_REAL_VEC JacPDstandard4th23gxy; - CCTK_REAL_VEC JacPDstandard4th23gxz; - CCTK_REAL_VEC JacPDstandard4th23gyz; - CCTK_REAL_VEC JacPDstandard4th2gxx; - CCTK_REAL_VEC JacPDstandard4th2gxy; - CCTK_REAL_VEC JacPDstandard4th2gxz; - CCTK_REAL_VEC JacPDstandard4th2gyy; - CCTK_REAL_VEC JacPDstandard4th2gyz; - CCTK_REAL_VEC JacPDstandard4th2gzz; - CCTK_REAL_VEC JacPDstandard4th2kxx; - CCTK_REAL_VEC JacPDstandard4th2kxy; - CCTK_REAL_VEC JacPDstandard4th2kxz; - CCTK_REAL_VEC JacPDstandard4th2kyz; - CCTK_REAL_VEC JacPDstandard4th2kzz; - CCTK_REAL_VEC JacPDstandard4th31gxy; - CCTK_REAL_VEC JacPDstandard4th31gxz; - CCTK_REAL_VEC JacPDstandard4th31gyy; - CCTK_REAL_VEC JacPDstandard4th31gyz; - CCTK_REAL_VEC JacPDstandard4th32gyz; - CCTK_REAL_VEC JacPDstandard4th33gxx; - CCTK_REAL_VEC JacPDstandard4th33gxy; - CCTK_REAL_VEC JacPDstandard4th33gyy; - CCTK_REAL_VEC JacPDstandard4th3gxx; - CCTK_REAL_VEC JacPDstandard4th3gxy; - CCTK_REAL_VEC JacPDstandard4th3gxz; - CCTK_REAL_VEC JacPDstandard4th3gyy; - CCTK_REAL_VEC JacPDstandard4th3gyz; - CCTK_REAL_VEC JacPDstandard4th3gzz; - CCTK_REAL_VEC JacPDstandard4th3kxx; - CCTK_REAL_VEC JacPDstandard4th3kxy; - CCTK_REAL_VEC JacPDstandard4th3kxz; - CCTK_REAL_VEC JacPDstandard4th3kyy; - CCTK_REAL_VEC JacPDstandard4th3kyz; - - if (use_jacobian) - { - JacPDstandard4th1gxx = - kmadd(J11L,PDstandard4th1gxx,kmadd(J21L,PDstandard4th2gxx,kmul(J31L,PDstandard4th3gxx))); - - JacPDstandard4th1gxy = - kmadd(J11L,PDstandard4th1gxy,kmadd(J21L,PDstandard4th2gxy,kmul(J31L,PDstandard4th3gxy))); - - JacPDstandard4th1gxz = - kmadd(J11L,PDstandard4th1gxz,kmadd(J21L,PDstandard4th2gxz,kmul(J31L,PDstandard4th3gxz))); - - JacPDstandard4th1gyy = - kmadd(J11L,PDstandard4th1gyy,kmadd(J21L,PDstandard4th2gyy,kmul(J31L,PDstandard4th3gyy))); - - JacPDstandard4th1gyz = - kmadd(J11L,PDstandard4th1gyz,kmadd(J21L,PDstandard4th2gyz,kmul(J31L,PDstandard4th3gyz))); - - JacPDstandard4th1gzz = - kmadd(J11L,PDstandard4th1gzz,kmadd(J21L,PDstandard4th2gzz,kmul(J31L,PDstandard4th3gzz))); - - JacPDstandard4th1kxy = - kmadd(J11L,PDstandard4th1kxy,kmadd(J21L,PDstandard4th2kxy,kmul(J31L,PDstandard4th3kxy))); - - JacPDstandard4th1kxz = - kmadd(J11L,PDstandard4th1kxz,kmadd(J21L,PDstandard4th2kxz,kmul(J31L,PDstandard4th3kxz))); - - JacPDstandard4th1kyy = - kmadd(J11L,PDstandard4th1kyy,kmadd(J21L,PDstandard4th2kyy,kmul(J31L,PDstandard4th3kyy))); - - JacPDstandard4th1kyz = - kmadd(J11L,PDstandard4th1kyz,kmadd(J21L,PDstandard4th2kyz,kmul(J31L,PDstandard4th3kyz))); - - JacPDstandard4th1kzz = - kmadd(J11L,PDstandard4th1kzz,kmadd(J21L,PDstandard4th2kzz,kmul(J31L,PDstandard4th3kzz))); - - JacPDstandard4th2gxx = - kmadd(J12L,PDstandard4th1gxx,kmadd(J22L,PDstandard4th2gxx,kmul(J32L,PDstandard4th3gxx))); - - JacPDstandard4th2gxy = - kmadd(J12L,PDstandard4th1gxy,kmadd(J22L,PDstandard4th2gxy,kmul(J32L,PDstandard4th3gxy))); - - JacPDstandard4th2gxz = - kmadd(J12L,PDstandard4th1gxz,kmadd(J22L,PDstandard4th2gxz,kmul(J32L,PDstandard4th3gxz))); - - JacPDstandard4th2gyy = - kmadd(J12L,PDstandard4th1gyy,kmadd(J22L,PDstandard4th2gyy,kmul(J32L,PDstandard4th3gyy))); - - JacPDstandard4th2gyz = - kmadd(J12L,PDstandard4th1gyz,kmadd(J22L,PDstandard4th2gyz,kmul(J32L,PDstandard4th3gyz))); - - JacPDstandard4th2gzz = - kmadd(J12L,PDstandard4th1gzz,kmadd(J22L,PDstandard4th2gzz,kmul(J32L,PDstandard4th3gzz))); - - JacPDstandard4th2kxx = - kmadd(J12L,PDstandard4th1kxx,kmadd(J22L,PDstandard4th2kxx,kmul(J32L,PDstandard4th3kxx))); - - JacPDstandard4th2kxy = - kmadd(J12L,PDstandard4th1kxy,kmadd(J22L,PDstandard4th2kxy,kmul(J32L,PDstandard4th3kxy))); - - JacPDstandard4th2kxz = - kmadd(J12L,PDstandard4th1kxz,kmadd(J22L,PDstandard4th2kxz,kmul(J32L,PDstandard4th3kxz))); - - JacPDstandard4th2kyz = - kmadd(J12L,PDstandard4th1kyz,kmadd(J22L,PDstandard4th2kyz,kmul(J32L,PDstandard4th3kyz))); - - JacPDstandard4th2kzz = - kmadd(J12L,PDstandard4th1kzz,kmadd(J22L,PDstandard4th2kzz,kmul(J32L,PDstandard4th3kzz))); - - JacPDstandard4th3gxx = - kmadd(J13L,PDstandard4th1gxx,kmadd(J23L,PDstandard4th2gxx,kmul(J33L,PDstandard4th3gxx))); - - JacPDstandard4th3gxy = - kmadd(J13L,PDstandard4th1gxy,kmadd(J23L,PDstandard4th2gxy,kmul(J33L,PDstandard4th3gxy))); - - JacPDstandard4th3gxz = - kmadd(J13L,PDstandard4th1gxz,kmadd(J23L,PDstandard4th2gxz,kmul(J33L,PDstandard4th3gxz))); - - JacPDstandard4th3gyy = - kmadd(J13L,PDstandard4th1gyy,kmadd(J23L,PDstandard4th2gyy,kmul(J33L,PDstandard4th3gyy))); - - JacPDstandard4th3gyz = - kmadd(J13L,PDstandard4th1gyz,kmadd(J23L,PDstandard4th2gyz,kmul(J33L,PDstandard4th3gyz))); - - JacPDstandard4th3gzz = - kmadd(J13L,PDstandard4th1gzz,kmadd(J23L,PDstandard4th2gzz,kmul(J33L,PDstandard4th3gzz))); - - JacPDstandard4th3kxx = - kmadd(J13L,PDstandard4th1kxx,kmadd(J23L,PDstandard4th2kxx,kmul(J33L,PDstandard4th3kxx))); - - JacPDstandard4th3kxy = - kmadd(J13L,PDstandard4th1kxy,kmadd(J23L,PDstandard4th2kxy,kmul(J33L,PDstandard4th3kxy))); - - JacPDstandard4th3kxz = - kmadd(J13L,PDstandard4th1kxz,kmadd(J23L,PDstandard4th2kxz,kmul(J33L,PDstandard4th3kxz))); - - JacPDstandard4th3kyy = - kmadd(J13L,PDstandard4th1kyy,kmadd(J23L,PDstandard4th2kyy,kmul(J33L,PDstandard4th3kyy))); - - JacPDstandard4th3kyz = - kmadd(J13L,PDstandard4th1kyz,kmadd(J23L,PDstandard4th2kyz,kmul(J33L,PDstandard4th3kyz))); - - JacPDstandard4th11gyy = - kmadd(dJ111L,PDstandard4th1gyy,kmadd(dJ211L,PDstandard4th2gyy,kmadd(dJ311L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J11L,J11L),kmadd(PDstandard4th22gyy,kmul(J21L,J21L),kmadd(PDstandard4th33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy)),kmul(J21L,kmul(J31L,PDstandard4th23gyy))),ToReal(2)))))))); - - JacPDstandard4th11gyz = - kmadd(dJ111L,PDstandard4th1gyz,kmadd(dJ211L,PDstandard4th2gyz,kmadd(dJ311L,PDstandard4th3gyz,kmadd(PDstandard4th11gyz,kmul(J11L,J11L),kmadd(PDstandard4th22gyz,kmul(J21L,J21L),kmadd(PDstandard4th33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz)),kmul(J21L,kmul(J31L,PDstandard4th23gyz))),ToReal(2)))))))); - - JacPDstandard4th11gzz = - kmadd(dJ111L,PDstandard4th1gzz,kmadd(dJ211L,PDstandard4th2gzz,kmadd(dJ311L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J11L,J11L),kmadd(PDstandard4th22gzz,kmul(J21L,J21L),kmadd(PDstandard4th33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz)),kmul(J21L,kmul(J31L,PDstandard4th23gzz))),ToReal(2)))))))); - - JacPDstandard4th22gxx = - kmadd(dJ122L,PDstandard4th1gxx,kmadd(dJ222L,PDstandard4th2gxx,kmadd(dJ322L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J12L,J12L),kmadd(PDstandard4th22gxx,kmul(J22L,J22L),kmadd(PDstandard4th33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx)),kmul(J22L,kmul(J32L,PDstandard4th23gxx))),ToReal(2)))))))); - - JacPDstandard4th22gxz = - kmadd(dJ122L,PDstandard4th1gxz,kmadd(dJ222L,PDstandard4th2gxz,kmadd(dJ322L,PDstandard4th3gxz,kmadd(PDstandard4th11gxz,kmul(J12L,J12L),kmadd(PDstandard4th22gxz,kmul(J22L,J22L),kmadd(PDstandard4th33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmul(J22L,kmul(J32L,PDstandard4th23gxz))),ToReal(2)))))))); - - JacPDstandard4th22gzz = - kmadd(dJ122L,PDstandard4th1gzz,kmadd(dJ222L,PDstandard4th2gzz,kmadd(dJ322L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J12L,J12L),kmadd(PDstandard4th22gzz,kmul(J22L,J22L),kmadd(PDstandard4th33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmul(J22L,kmul(J32L,PDstandard4th23gzz))),ToReal(2)))))))); - - JacPDstandard4th33gxx = - kmadd(dJ133L,PDstandard4th1gxx,kmadd(dJ233L,PDstandard4th2gxx,kmadd(dJ333L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J13L,J13L),kmadd(PDstandard4th22gxx,kmul(J23L,J23L),kmadd(PDstandard4th33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmul(J23L,kmul(J33L,PDstandard4th23gxx))),ToReal(2)))))))); - - JacPDstandard4th33gxy = - kmadd(dJ133L,PDstandard4th1gxy,kmadd(dJ233L,PDstandard4th2gxy,kmadd(dJ333L,PDstandard4th3gxy,kmadd(PDstandard4th11gxy,kmul(J13L,J13L),kmadd(PDstandard4th22gxy,kmul(J23L,J23L),kmadd(PDstandard4th33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmul(J23L,kmul(J33L,PDstandard4th23gxy))),ToReal(2)))))))); - - JacPDstandard4th33gyy = - kmadd(dJ133L,PDstandard4th1gyy,kmadd(dJ233L,PDstandard4th2gyy,kmadd(dJ333L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J13L,J13L),kmadd(PDstandard4th22gyy,kmul(J23L,J23L),kmadd(PDstandard4th33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmul(J23L,kmul(J33L,PDstandard4th23gyy))),ToReal(2)))))))); - - JacPDstandard4th12gxy = - kmadd(J12L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy)),kmadd(dJ112L,PDstandard4th1gxy,kmadd(J22L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ212L,PDstandard4th2gxy,kmadd(J32L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ312L,PDstandard4th3gxy))))))); - - JacPDstandard4th12gxz = - kmadd(J12L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmadd(dJ112L,PDstandard4th1gxz,kmadd(J22L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ212L,PDstandard4th2gxz,kmadd(J32L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ312L,PDstandard4th3gxz))))))); - - JacPDstandard4th12gyz = - kmadd(J12L,kmadd(J11L,PDstandard4th11gyz,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz)),kmadd(dJ112L,PDstandard4th1gyz,kmadd(J22L,kmadd(J21L,PDstandard4th22gyz,kmul(J31L,PDstandard4th23gyz)),kmadd(dJ212L,PDstandard4th2gyz,kmadd(J32L,kmadd(J21L,PDstandard4th23gyz,kmul(J31L,PDstandard4th33gyz)),kmul(dJ312L,PDstandard4th3gyz))))))); - - JacPDstandard4th12gzz = - kmadd(J12L,kmadd(J11L,PDstandard4th11gzz,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmadd(dJ112L,PDstandard4th1gzz,kmadd(J22L,kmadd(J21L,PDstandard4th22gzz,kmul(J31L,PDstandard4th23gzz)),kmadd(dJ212L,PDstandard4th2gzz,kmadd(J32L,kmadd(J21L,PDstandard4th23gzz,kmul(J31L,PDstandard4th33gzz)),kmul(dJ312L,PDstandard4th3gzz))))))); - - JacPDstandard4th13gxz = - kmadd(J13L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ113L,PDstandard4th1gxz,kmadd(J23L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ213L,PDstandard4th2gxz,kmadd(J33L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ313L,PDstandard4th3gxz))))))); - - JacPDstandard4th21gxy = - kmadd(J12L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy)),kmadd(dJ112L,PDstandard4th1gxy,kmadd(J22L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ212L,PDstandard4th2gxy,kmadd(J32L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ312L,PDstandard4th3gxy))))))); - - JacPDstandard4th23gxx = - kmadd(J13L,kmadd(J12L,PDstandard4th11gxx,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmadd(dJ123L,PDstandard4th1gxx,kmadd(J23L,kmadd(J22L,PDstandard4th22gxx,kmul(J32L,PDstandard4th23gxx)),kmadd(dJ223L,PDstandard4th2gxx,kmadd(J33L,kmadd(J22L,PDstandard4th23gxx,kmul(J32L,PDstandard4th33gxx)),kmul(dJ323L,PDstandard4th3gxx))))))); - - JacPDstandard4th23gxy = - kmadd(J13L,kmadd(J12L,PDstandard4th11gxy,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmadd(dJ123L,PDstandard4th1gxy,kmadd(J23L,kmadd(J22L,PDstandard4th22gxy,kmul(J32L,PDstandard4th23gxy)),kmadd(dJ223L,PDstandard4th2gxy,kmadd(J33L,kmadd(J22L,PDstandard4th23gxy,kmul(J32L,PDstandard4th33gxy)),kmul(dJ323L,PDstandard4th3gxy))))))); - - JacPDstandard4th23gxz = - kmadd(J13L,kmadd(J12L,PDstandard4th11gxz,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ123L,PDstandard4th1gxz,kmadd(J23L,kmadd(J22L,PDstandard4th22gxz,kmul(J32L,PDstandard4th23gxz)),kmadd(dJ223L,PDstandard4th2gxz,kmadd(J33L,kmadd(J22L,PDstandard4th23gxz,kmul(J32L,PDstandard4th33gxz)),kmul(dJ323L,PDstandard4th3gxz))))))); - - JacPDstandard4th23gyz = - kmadd(J13L,kmadd(J12L,PDstandard4th11gyz,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ123L,PDstandard4th1gyz,kmadd(J23L,kmadd(J22L,PDstandard4th22gyz,kmul(J32L,PDstandard4th23gyz)),kmadd(dJ223L,PDstandard4th2gyz,kmadd(J33L,kmadd(J22L,PDstandard4th23gyz,kmul(J32L,PDstandard4th33gyz)),kmul(dJ323L,PDstandard4th3gyz))))))); - - JacPDstandard4th31gxy = - kmadd(J13L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmadd(dJ113L,PDstandard4th1gxy,kmadd(J23L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ213L,PDstandard4th2gxy,kmadd(J33L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ313L,PDstandard4th3gxy))))))); - - JacPDstandard4th31gxz = - kmadd(J13L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ113L,PDstandard4th1gxz,kmadd(J23L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ213L,PDstandard4th2gxz,kmadd(J33L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ313L,PDstandard4th3gxz))))))); - - JacPDstandard4th31gyy = - kmadd(J13L,kmadd(J11L,PDstandard4th11gyy,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy))),kmadd(J11L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmadd(dJ113L,PDstandard4th1gyy,kmadd(J23L,kmadd(J21L,PDstandard4th22gyy,kmul(J31L,PDstandard4th23gyy)),kmadd(dJ213L,PDstandard4th2gyy,kmadd(J33L,kmadd(J21L,PDstandard4th23gyy,kmul(J31L,PDstandard4th33gyy)),kmul(dJ313L,PDstandard4th3gyy))))))); - - JacPDstandard4th31gyz = - kmadd(J13L,kmadd(J11L,PDstandard4th11gyz,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ113L,PDstandard4th1gyz,kmadd(J23L,kmadd(J21L,PDstandard4th22gyz,kmul(J31L,PDstandard4th23gyz)),kmadd(dJ213L,PDstandard4th2gyz,kmadd(J33L,kmadd(J21L,PDstandard4th23gyz,kmul(J31L,PDstandard4th33gyz)),kmul(dJ313L,PDstandard4th3gyz))))))); - - JacPDstandard4th32gyz = - kmadd(J13L,kmadd(J12L,PDstandard4th11gyz,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ123L,PDstandard4th1gyz,kmadd(J23L,kmadd(J22L,PDstandard4th22gyz,kmul(J32L,PDstandard4th23gyz)),kmadd(dJ223L,PDstandard4th2gyz,kmadd(J33L,kmadd(J22L,PDstandard4th23gyz,kmul(J32L,PDstandard4th33gyz)),kmul(dJ323L,PDstandard4th3gyz))))))); - } - else - { - JacPDstandard4th1gxx = PDstandard4th1gxx; - - JacPDstandard4th1gxy = PDstandard4th1gxy; - - JacPDstandard4th1gxz = PDstandard4th1gxz; - - JacPDstandard4th1gyy = PDstandard4th1gyy; - - JacPDstandard4th1gyz = PDstandard4th1gyz; - - JacPDstandard4th1gzz = PDstandard4th1gzz; - - JacPDstandard4th1kxy = PDstandard4th1kxy; - - JacPDstandard4th1kxz = PDstandard4th1kxz; - - JacPDstandard4th1kyy = PDstandard4th1kyy; - - JacPDstandard4th1kyz = PDstandard4th1kyz; - - JacPDstandard4th1kzz = PDstandard4th1kzz; - - JacPDstandard4th2gxx = PDstandard4th2gxx; - - JacPDstandard4th2gxy = PDstandard4th2gxy; - - JacPDstandard4th2gxz = PDstandard4th2gxz; - - JacPDstandard4th2gyy = PDstandard4th2gyy; - - JacPDstandard4th2gyz = PDstandard4th2gyz; - - JacPDstandard4th2gzz = PDstandard4th2gzz; - - JacPDstandard4th2kxx = PDstandard4th2kxx; - - JacPDstandard4th2kxy = PDstandard4th2kxy; - - JacPDstandard4th2kxz = PDstandard4th2kxz; - - JacPDstandard4th2kyz = PDstandard4th2kyz; - - JacPDstandard4th2kzz = PDstandard4th2kzz; - - JacPDstandard4th3gxx = PDstandard4th3gxx; - - JacPDstandard4th3gxy = PDstandard4th3gxy; - - JacPDstandard4th3gxz = PDstandard4th3gxz; - - JacPDstandard4th3gyy = PDstandard4th3gyy; - - JacPDstandard4th3gyz = PDstandard4th3gyz; - - JacPDstandard4th3gzz = PDstandard4th3gzz; - - JacPDstandard4th3kxx = PDstandard4th3kxx; - - JacPDstandard4th3kxy = PDstandard4th3kxy; - - JacPDstandard4th3kxz = PDstandard4th3kxz; - - JacPDstandard4th3kyy = PDstandard4th3kyy; - - JacPDstandard4th3kyz = PDstandard4th3kyz; - - JacPDstandard4th11gyy = PDstandard4th11gyy; - - JacPDstandard4th11gyz = PDstandard4th11gyz; - - JacPDstandard4th11gzz = PDstandard4th11gzz; - - JacPDstandard4th22gxx = PDstandard4th22gxx; - - JacPDstandard4th22gxz = PDstandard4th22gxz; - - JacPDstandard4th22gzz = PDstandard4th22gzz; - - JacPDstandard4th33gxx = PDstandard4th33gxx; - - JacPDstandard4th33gxy = PDstandard4th33gxy; - - JacPDstandard4th33gyy = PDstandard4th33gyy; - - JacPDstandard4th12gxy = PDstandard4th12gxy; - - JacPDstandard4th12gxz = PDstandard4th12gxz; - - JacPDstandard4th12gyz = PDstandard4th12gyz; - - JacPDstandard4th12gzz = PDstandard4th12gzz; - - JacPDstandard4th13gxz = PDstandard4th13gxz; - - JacPDstandard4th21gxy = PDstandard4th12gxy; - - JacPDstandard4th23gxx = PDstandard4th23gxx; - - JacPDstandard4th23gxy = PDstandard4th23gxy; - - JacPDstandard4th23gxz = PDstandard4th23gxz; - - JacPDstandard4th23gyz = PDstandard4th23gyz; - - JacPDstandard4th31gxy = PDstandard4th13gxy; - - JacPDstandard4th31gxz = PDstandard4th13gxz; - - JacPDstandard4th31gyy = PDstandard4th13gyy; - - JacPDstandard4th31gyz = PDstandard4th13gyz; - - JacPDstandard4th32gyz = PDstandard4th23gyz; - } - - CCTK_REAL_VEC detg = - knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); - - CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); - - CCTK_REAL_VEC gInv11 = - kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); - - CCTK_REAL_VEC gInv12 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv13 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv21 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv22 = - kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); - - CCTK_REAL_VEC gInv23 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv31 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv32 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv33 = - kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); - - CCTK_REAL_VEC gamma111 = - kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard4th1gxx,knmsub(gInv12,JacPDstandard4th2gxx,kmsub(kmadd(gInv12,JacPDstandard4th1gxy,kmul(gInv13,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv13,JacPDstandard4th3gxx))))); - - CCTK_REAL_VEC gamma211 = - kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard4th1gxx,knmsub(gInv22,JacPDstandard4th2gxx,kmsub(kmadd(gInv22,JacPDstandard4th1gxy,kmul(gInv23,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv23,JacPDstandard4th3gxx))))); - - CCTK_REAL_VEC gamma311 = - kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard4th1gxx,knmsub(gInv32,JacPDstandard4th2gxx,kmsub(kmadd(gInv32,JacPDstandard4th1gxy,kmul(gInv33,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv33,JacPDstandard4th3gxx))))); - - CCTK_REAL_VEC gamma121 = - kmul(kmadd(gInv12,JacPDstandard4th1gyy,kmadd(gInv11,JacPDstandard4th2gxx,kmul(gInv13,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma221 = - kmul(kmadd(gInv22,JacPDstandard4th1gyy,kmadd(gInv21,JacPDstandard4th2gxx,kmul(gInv23,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma321 = - kmul(kmadd(gInv32,JacPDstandard4th1gyy,kmadd(gInv31,JacPDstandard4th2gxx,kmul(gInv33,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma131 = - kmul(kmadd(gInv13,JacPDstandard4th1gzz,kmadd(gInv11,JacPDstandard4th3gxx,kmul(gInv12,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma231 = - kmul(kmadd(gInv23,JacPDstandard4th1gzz,kmadd(gInv21,JacPDstandard4th3gxx,kmul(gInv22,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma331 = - kmul(kmadd(gInv33,JacPDstandard4th1gzz,kmadd(gInv31,JacPDstandard4th3gxx,kmul(gInv32,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma122 = - kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard4th2gyy,kmadd(gInv11,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv13,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); - - CCTK_REAL_VEC gamma222 = - kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard4th2gyy,kmadd(gInv21,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv23,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); - - CCTK_REAL_VEC gamma322 = - kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard4th2gyy,kmadd(gInv31,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv33,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); - - CCTK_REAL_VEC gamma132 = - kmul(kmadd(gInv13,JacPDstandard4th2gzz,kmadd(gInv12,JacPDstandard4th3gyy,kmul(gInv11,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma232 = - kmul(kmadd(gInv23,JacPDstandard4th2gzz,kmadd(gInv22,JacPDstandard4th3gyy,kmul(gInv21,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma332 = - kmul(kmadd(gInv33,JacPDstandard4th2gzz,kmadd(gInv32,JacPDstandard4th3gyy,kmul(gInv31,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma133 = - kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard4th3gzz,kmadd(gInv11,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv12,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); - - CCTK_REAL_VEC gamma233 = - kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard4th3gzz,kmadd(gInv21,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv22,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); - - CCTK_REAL_VEC gamma333 = - kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard4th3gzz,kmadd(gInv31,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv32,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); - - CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); - - CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); - - CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); - - CCTK_REAL_VEC va1 = kneg(ymoved); - - CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC va3 = ToReal(0); - - CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC vb2 = ymoved; - - CCTK_REAL_VEC vb3 = zmoved; - - CCTK_REAL_VEC vc1 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); - - CCTK_REAL_VEC vc2 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); - - CCTK_REAL_VEC vc3 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); - - CCTK_REAL_VEC wa1 = va1; - - CCTK_REAL_VEC wa2 = va2; - - CCTK_REAL_VEC wa3 = va3; - - CCTK_REAL_VEC omega11 = - kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); - - CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); - - CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); - - CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); - - CCTK_REAL_VEC omega12 = - kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); - - CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); - - CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); - - CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); - - CCTK_REAL_VEC omega22 = - kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); - - CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); - - CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); - - CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); - - CCTK_REAL_VEC omega13 = - kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC omega23 = - kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); - - CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); - - CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); - - CCTK_REAL_VEC omega33 = - kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); - - CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); - - CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); - - CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); - - CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); - - CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); - - CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); - - CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); - - CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); - - CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); - - CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); - - CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); - - CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); - - CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); - - CCTK_REAL_VEC nn = isqrt2; - - CCTK_REAL_VEC R1212 = - kmul(ToReal(0.5),kadd(JacPDstandard4th12gxy,kadd(JacPDstandard4th21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard4th22gxx),JacPDstandard4th11gyy))))); - - CCTK_REAL_VEC R1213 = - kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard4th12gxz,kadd(JacPDstandard4th31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard4th23gxx),JacPDstandard4th11gyz)))))); - - CCTK_REAL_VEC R1223 = - kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard4th22gxz,kadd(JacPDstandard4th31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard4th23gxy),JacPDstandard4th12gyz)))))); - - CCTK_REAL_VEC R1313 = - kmul(ToReal(0.5),kadd(JacPDstandard4th13gxz,kadd(JacPDstandard4th31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard4th33gxx),JacPDstandard4th11gzz))))); - - CCTK_REAL_VEC R1323 = - kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard4th23gxz,kadd(JacPDstandard4th31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard4th33gxy),JacPDstandard4th12gzz)))))); - - CCTK_REAL_VEC R2323 = - kmul(ToReal(0.5),kadd(JacPDstandard4th23gyz,kadd(JacPDstandard4th32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard4th33gyy),JacPDstandard4th22gzz))))); - - CCTK_REAL_VEC R4p1212 = - kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); - - CCTK_REAL_VEC R4p1213 = - kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); - - CCTK_REAL_VEC R4p1223 = - kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); - - CCTK_REAL_VEC R4p1313 = - kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); - - CCTK_REAL_VEC R4p1323 = - kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); - - CCTK_REAL_VEC R4p2323 = - kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); - - CCTK_REAL_VEC Ro111 = ToReal(0); - - CCTK_REAL_VEC Ro112 = - kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard4th1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard4th2kxx)))))); - - CCTK_REAL_VEC Ro113 = - kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard4th1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard4th3kxx)))))); - - CCTK_REAL_VEC Ro121 = - kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard4th2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard4th1kxy)))))); - - CCTK_REAL_VEC Ro122 = ToReal(0); - - CCTK_REAL_VEC Ro123 = - kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard4th2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard4th3kxy)))))); - - CCTK_REAL_VEC Ro131 = - kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard4th3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard4th1kxz)))))); - - CCTK_REAL_VEC Ro132 = - kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard4th2kxz)))))); - - CCTK_REAL_VEC Ro133 = ToReal(0); - - CCTK_REAL_VEC Ro211 = ToReal(0); - - CCTK_REAL_VEC Ro212 = - kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard4th1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard4th2kxy)))))); - - CCTK_REAL_VEC Ro213 = - kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard4th1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard4th3kxy)))))); - - CCTK_REAL_VEC Ro221 = - kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard4th2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard4th1kyy)))))); - - CCTK_REAL_VEC Ro222 = ToReal(0); - - CCTK_REAL_VEC Ro223 = - kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard4th2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard4th3kyy)))))); - - CCTK_REAL_VEC Ro231 = - kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard4th1kyz)))))); - - CCTK_REAL_VEC Ro232 = - kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard4th3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard4th2kyz)))))); - - CCTK_REAL_VEC Ro233 = ToReal(0); - - CCTK_REAL_VEC Ro311 = ToReal(0); - - CCTK_REAL_VEC Ro312 = - kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard4th1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard4th2kxz)))))); - - CCTK_REAL_VEC Ro313 = - kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard4th1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard4th3kxz)))))); - - CCTK_REAL_VEC Ro321 = - kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard4th2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard4th1kyz)))))); - - CCTK_REAL_VEC Ro322 = ToReal(0); - - CCTK_REAL_VEC Ro323 = - kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard4th2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard4th3kyz)))))); - - CCTK_REAL_VEC Ro331 = - kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard4th3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard4th1kzz)))))); - - CCTK_REAL_VEC Ro332 = - kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard4th3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard4th2kzz)))))); - - CCTK_REAL_VEC Ro333 = ToReal(0); - - CCTK_REAL_VEC Rojo11 = - kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); - - CCTK_REAL_VEC Rojo12 = - kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo13 = - kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); - - CCTK_REAL_VEC Rojo21 = - kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo22 = - kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Rojo23 = - kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo31 = - kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); - - CCTK_REAL_VEC Rojo32 = - kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo33 = - kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Psi4rL = - kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi4iL = - knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(Psi4i[index],Psi4iL); - vec_store_nta_partial(Psi4r[index],Psi4rL); - } - LC_ENDLOOP3VEC(psi4_calc_4th); -} - -extern "C" void psi4_calc_4th(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering psi4_calc_4th_Body"); - } - - if (cctk_iteration % psi4_calc_4th_calc_every != psi4_calc_4th_calc_offset) - { - return; - } - - const char *const groups[] = { - "admbase::curv", - "admbase::metric", - "grid::coordinates", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "psi4_calc_4th", 5, groups); - - switch(fdOrder) - { - case 2: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_4th", 2, 2, 2); - break; - - case 4: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_4th", 2, 2, 2); - break; - - case 6: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_4th", 2, 2, 2); - break; - - case 8: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_4th", 2, 2, 2); - break; - } - - GenericFD_LoopOverInterior(cctkGH, psi4_calc_4th_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving psi4_calc_4th_Body"); - } -} diff --git a/src/psi4_calc_Nth.cc b/src/psi4_calc_Nth.cc deleted file mode 100644 index b6c7351..0000000 --- a/src/psi4_calc_Nth.cc +++ /dev/null @@ -1,1356 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void psi4_calc_Nth_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); - return; -} - -static void psi4_calc_Nth_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(psi4_calc_Nth, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC gxxL = vec_load(gxx[index]); - CCTK_REAL_VEC gxyL = vec_load(gxy[index]); - CCTK_REAL_VEC gxzL = vec_load(gxz[index]); - CCTK_REAL_VEC gyyL = vec_load(gyy[index]); - CCTK_REAL_VEC gyzL = vec_load(gyz[index]); - CCTK_REAL_VEC gzzL = vec_load(gzz[index]); - CCTK_REAL_VEC kxxL = vec_load(kxx[index]); - CCTK_REAL_VEC kxyL = vec_load(kxy[index]); - CCTK_REAL_VEC kxzL = vec_load(kxz[index]); - CCTK_REAL_VEC kyyL = vec_load(kyy[index]); - CCTK_REAL_VEC kyzL = vec_load(kyz[index]); - CCTK_REAL_VEC kzzL = vec_load(kzz[index]); - CCTK_REAL_VEC xL = vec_load(x[index]); - CCTK_REAL_VEC yL = vec_load(y[index]); - CCTK_REAL_VEC zL = vec_load(z[index]); - - - CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; - - if (use_jacobian) - { - dJ111L = vec_load(dJ111[index]); - dJ112L = vec_load(dJ112[index]); - dJ113L = vec_load(dJ113[index]); - dJ122L = vec_load(dJ122[index]); - dJ123L = vec_load(dJ123[index]); - dJ133L = vec_load(dJ133[index]); - dJ211L = vec_load(dJ211[index]); - dJ212L = vec_load(dJ212[index]); - dJ213L = vec_load(dJ213[index]); - dJ222L = vec_load(dJ222[index]); - dJ223L = vec_load(dJ223[index]); - dJ233L = vec_load(dJ233[index]); - dJ311L = vec_load(dJ311[index]); - dJ312L = vec_load(dJ312[index]); - dJ313L = vec_load(dJ313[index]); - dJ322L = vec_load(dJ322[index]); - dJ323L = vec_load(dJ323[index]); - dJ333L = vec_load(dJ333[index]); - J11L = vec_load(J11[index]); - J12L = vec_load(J12[index]); - J13L = vec_load(J13[index]); - J21L = vec_load(J21[index]); - J22L = vec_load(J22[index]); - J23L = vec_load(J23[index]); - J31L = vec_load(J31[index]); - J32L = vec_load(J32[index]); - J33L = vec_load(J33[index]); - } - - /* Include user supplied include files */ - - /* Precompute derivatives */ - CCTK_REAL_VEC PDstandard1gxx; - CCTK_REAL_VEC PDstandard2gxx; - CCTK_REAL_VEC PDstandard3gxx; - CCTK_REAL_VEC PDstandard11gxx; - CCTK_REAL_VEC PDstandard22gxx; - CCTK_REAL_VEC PDstandard33gxx; - CCTK_REAL_VEC PDstandard12gxx; - CCTK_REAL_VEC PDstandard13gxx; - CCTK_REAL_VEC PDstandard23gxx; - CCTK_REAL_VEC PDstandard1gxy; - CCTK_REAL_VEC PDstandard2gxy; - CCTK_REAL_VEC PDstandard3gxy; - CCTK_REAL_VEC PDstandard11gxy; - CCTK_REAL_VEC PDstandard22gxy; - CCTK_REAL_VEC PDstandard33gxy; - CCTK_REAL_VEC PDstandard12gxy; - CCTK_REAL_VEC PDstandard13gxy; - CCTK_REAL_VEC PDstandard23gxy; - CCTK_REAL_VEC PDstandard1gxz; - CCTK_REAL_VEC PDstandard2gxz; - CCTK_REAL_VEC PDstandard3gxz; - CCTK_REAL_VEC PDstandard11gxz; - CCTK_REAL_VEC PDstandard22gxz; - CCTK_REAL_VEC PDstandard33gxz; - CCTK_REAL_VEC PDstandard12gxz; - CCTK_REAL_VEC PDstandard13gxz; - CCTK_REAL_VEC PDstandard23gxz; - CCTK_REAL_VEC PDstandard1gyy; - CCTK_REAL_VEC PDstandard2gyy; - CCTK_REAL_VEC PDstandard3gyy; - CCTK_REAL_VEC PDstandard11gyy; - CCTK_REAL_VEC PDstandard22gyy; - CCTK_REAL_VEC PDstandard33gyy; - CCTK_REAL_VEC PDstandard12gyy; - CCTK_REAL_VEC PDstandard13gyy; - CCTK_REAL_VEC PDstandard23gyy; - CCTK_REAL_VEC PDstandard1gyz; - CCTK_REAL_VEC PDstandard2gyz; - CCTK_REAL_VEC PDstandard3gyz; - CCTK_REAL_VEC PDstandard11gyz; - CCTK_REAL_VEC PDstandard22gyz; - CCTK_REAL_VEC PDstandard33gyz; - CCTK_REAL_VEC PDstandard12gyz; - CCTK_REAL_VEC PDstandard13gyz; - CCTK_REAL_VEC PDstandard23gyz; - CCTK_REAL_VEC PDstandard1gzz; - CCTK_REAL_VEC PDstandard2gzz; - CCTK_REAL_VEC PDstandard3gzz; - CCTK_REAL_VEC PDstandard11gzz; - CCTK_REAL_VEC PDstandard22gzz; - CCTK_REAL_VEC PDstandard33gzz; - CCTK_REAL_VEC PDstandard12gzz; - CCTK_REAL_VEC PDstandard13gzz; - CCTK_REAL_VEC PDstandard23gzz; - CCTK_REAL_VEC PDstandard1kxx; - CCTK_REAL_VEC PDstandard2kxx; - CCTK_REAL_VEC PDstandard3kxx; - CCTK_REAL_VEC PDstandard1kxy; - CCTK_REAL_VEC PDstandard2kxy; - CCTK_REAL_VEC PDstandard3kxy; - CCTK_REAL_VEC PDstandard1kxz; - CCTK_REAL_VEC PDstandard2kxz; - CCTK_REAL_VEC PDstandard3kxz; - CCTK_REAL_VEC PDstandard1kyy; - CCTK_REAL_VEC PDstandard2kyy; - CCTK_REAL_VEC PDstandard3kyy; - CCTK_REAL_VEC PDstandard1kyz; - CCTK_REAL_VEC PDstandard2kyz; - CCTK_REAL_VEC PDstandard3kyz; - CCTK_REAL_VEC PDstandard1kzz; - CCTK_REAL_VEC PDstandard2kzz; - CCTK_REAL_VEC PDstandard3kzz; - - switch(fdOrder) - { - case 2: - PDstandard1gxx = PDstandardfdOrder21(&gxx[index]); - PDstandard2gxx = PDstandardfdOrder22(&gxx[index]); - PDstandard3gxx = PDstandardfdOrder23(&gxx[index]); - PDstandard11gxx = PDstandardfdOrder211(&gxx[index]); - PDstandard22gxx = PDstandardfdOrder222(&gxx[index]); - PDstandard33gxx = PDstandardfdOrder233(&gxx[index]); - PDstandard12gxx = PDstandardfdOrder212(&gxx[index]); - PDstandard13gxx = PDstandardfdOrder213(&gxx[index]); - PDstandard23gxx = PDstandardfdOrder223(&gxx[index]); - PDstandard1gxy = PDstandardfdOrder21(&gxy[index]); - PDstandard2gxy = PDstandardfdOrder22(&gxy[index]); - PDstandard3gxy = PDstandardfdOrder23(&gxy[index]); - PDstandard11gxy = PDstandardfdOrder211(&gxy[index]); - PDstandard22gxy = PDstandardfdOrder222(&gxy[index]); - PDstandard33gxy = PDstandardfdOrder233(&gxy[index]); - PDstandard12gxy = PDstandardfdOrder212(&gxy[index]); - PDstandard13gxy = PDstandardfdOrder213(&gxy[index]); - PDstandard23gxy = PDstandardfdOrder223(&gxy[index]); - PDstandard1gxz = PDstandardfdOrder21(&gxz[index]); - PDstandard2gxz = PDstandardfdOrder22(&gxz[index]); - PDstandard3gxz = PDstandardfdOrder23(&gxz[index]); - PDstandard11gxz = PDstandardfdOrder211(&gxz[index]); - PDstandard22gxz = PDstandardfdOrder222(&gxz[index]); - PDstandard33gxz = PDstandardfdOrder233(&gxz[index]); - PDstandard12gxz = PDstandardfdOrder212(&gxz[index]); - PDstandard13gxz = PDstandardfdOrder213(&gxz[index]); - PDstandard23gxz = PDstandardfdOrder223(&gxz[index]); - PDstandard1gyy = PDstandardfdOrder21(&gyy[index]); - PDstandard2gyy = PDstandardfdOrder22(&gyy[index]); - PDstandard3gyy = PDstandardfdOrder23(&gyy[index]); - PDstandard11gyy = PDstandardfdOrder211(&gyy[index]); - PDstandard22gyy = PDstandardfdOrder222(&gyy[index]); - PDstandard33gyy = PDstandardfdOrder233(&gyy[index]); - PDstandard12gyy = PDstandardfdOrder212(&gyy[index]); - PDstandard13gyy = PDstandardfdOrder213(&gyy[index]); - PDstandard23gyy = PDstandardfdOrder223(&gyy[index]); - PDstandard1gyz = PDstandardfdOrder21(&gyz[index]); - PDstandard2gyz = PDstandardfdOrder22(&gyz[index]); - PDstandard3gyz = PDstandardfdOrder23(&gyz[index]); - PDstandard11gyz = PDstandardfdOrder211(&gyz[index]); - PDstandard22gyz = PDstandardfdOrder222(&gyz[index]); - PDstandard33gyz = PDstandardfdOrder233(&gyz[index]); - PDstandard12gyz = PDstandardfdOrder212(&gyz[index]); - PDstandard13gyz = PDstandardfdOrder213(&gyz[index]); - PDstandard23gyz = PDstandardfdOrder223(&gyz[index]); - PDstandard1gzz = PDstandardfdOrder21(&gzz[index]); - PDstandard2gzz = PDstandardfdOrder22(&gzz[index]); - PDstandard3gzz = PDstandardfdOrder23(&gzz[index]); - PDstandard11gzz = PDstandardfdOrder211(&gzz[index]); - PDstandard22gzz = PDstandardfdOrder222(&gzz[index]); - PDstandard33gzz = PDstandardfdOrder233(&gzz[index]); - PDstandard12gzz = PDstandardfdOrder212(&gzz[index]); - PDstandard13gzz = PDstandardfdOrder213(&gzz[index]); - PDstandard23gzz = PDstandardfdOrder223(&gzz[index]); - PDstandard1kxx = PDstandardfdOrder21(&kxx[index]); - PDstandard2kxx = PDstandardfdOrder22(&kxx[index]); - PDstandard3kxx = PDstandardfdOrder23(&kxx[index]); - PDstandard1kxy = PDstandardfdOrder21(&kxy[index]); - PDstandard2kxy = PDstandardfdOrder22(&kxy[index]); - PDstandard3kxy = PDstandardfdOrder23(&kxy[index]); - PDstandard1kxz = PDstandardfdOrder21(&kxz[index]); - PDstandard2kxz = PDstandardfdOrder22(&kxz[index]); - PDstandard3kxz = PDstandardfdOrder23(&kxz[index]); - PDstandard1kyy = PDstandardfdOrder21(&kyy[index]); - PDstandard2kyy = PDstandardfdOrder22(&kyy[index]); - PDstandard3kyy = PDstandardfdOrder23(&kyy[index]); - PDstandard1kyz = PDstandardfdOrder21(&kyz[index]); - PDstandard2kyz = PDstandardfdOrder22(&kyz[index]); - PDstandard3kyz = PDstandardfdOrder23(&kyz[index]); - PDstandard1kzz = PDstandardfdOrder21(&kzz[index]); - PDstandard2kzz = PDstandardfdOrder22(&kzz[index]); - PDstandard3kzz = PDstandardfdOrder23(&kzz[index]); - break; - - case 4: - PDstandard1gxx = PDstandardfdOrder41(&gxx[index]); - PDstandard2gxx = PDstandardfdOrder42(&gxx[index]); - PDstandard3gxx = PDstandardfdOrder43(&gxx[index]); - PDstandard11gxx = PDstandardfdOrder411(&gxx[index]); - PDstandard22gxx = PDstandardfdOrder422(&gxx[index]); - PDstandard33gxx = PDstandardfdOrder433(&gxx[index]); - PDstandard12gxx = PDstandardfdOrder412(&gxx[index]); - PDstandard13gxx = PDstandardfdOrder413(&gxx[index]); - PDstandard23gxx = PDstandardfdOrder423(&gxx[index]); - PDstandard1gxy = PDstandardfdOrder41(&gxy[index]); - PDstandard2gxy = PDstandardfdOrder42(&gxy[index]); - PDstandard3gxy = PDstandardfdOrder43(&gxy[index]); - PDstandard11gxy = PDstandardfdOrder411(&gxy[index]); - PDstandard22gxy = PDstandardfdOrder422(&gxy[index]); - PDstandard33gxy = PDstandardfdOrder433(&gxy[index]); - PDstandard12gxy = PDstandardfdOrder412(&gxy[index]); - PDstandard13gxy = PDstandardfdOrder413(&gxy[index]); - PDstandard23gxy = PDstandardfdOrder423(&gxy[index]); - PDstandard1gxz = PDstandardfdOrder41(&gxz[index]); - PDstandard2gxz = PDstandardfdOrder42(&gxz[index]); - PDstandard3gxz = PDstandardfdOrder43(&gxz[index]); - PDstandard11gxz = PDstandardfdOrder411(&gxz[index]); - PDstandard22gxz = PDstandardfdOrder422(&gxz[index]); - PDstandard33gxz = PDstandardfdOrder433(&gxz[index]); - PDstandard12gxz = PDstandardfdOrder412(&gxz[index]); - PDstandard13gxz = PDstandardfdOrder413(&gxz[index]); - PDstandard23gxz = PDstandardfdOrder423(&gxz[index]); - PDstandard1gyy = PDstandardfdOrder41(&gyy[index]); - PDstandard2gyy = PDstandardfdOrder42(&gyy[index]); - PDstandard3gyy = PDstandardfdOrder43(&gyy[index]); - PDstandard11gyy = PDstandardfdOrder411(&gyy[index]); - PDstandard22gyy = PDstandardfdOrder422(&gyy[index]); - PDstandard33gyy = PDstandardfdOrder433(&gyy[index]); - PDstandard12gyy = PDstandardfdOrder412(&gyy[index]); - PDstandard13gyy = PDstandardfdOrder413(&gyy[index]); - PDstandard23gyy = PDstandardfdOrder423(&gyy[index]); - PDstandard1gyz = PDstandardfdOrder41(&gyz[index]); - PDstandard2gyz = PDstandardfdOrder42(&gyz[index]); - PDstandard3gyz = PDstandardfdOrder43(&gyz[index]); - PDstandard11gyz = PDstandardfdOrder411(&gyz[index]); - PDstandard22gyz = PDstandardfdOrder422(&gyz[index]); - PDstandard33gyz = PDstandardfdOrder433(&gyz[index]); - PDstandard12gyz = PDstandardfdOrder412(&gyz[index]); - PDstandard13gyz = PDstandardfdOrder413(&gyz[index]); - PDstandard23gyz = PDstandardfdOrder423(&gyz[index]); - PDstandard1gzz = PDstandardfdOrder41(&gzz[index]); - PDstandard2gzz = PDstandardfdOrder42(&gzz[index]); - PDstandard3gzz = PDstandardfdOrder43(&gzz[index]); - PDstandard11gzz = PDstandardfdOrder411(&gzz[index]); - PDstandard22gzz = PDstandardfdOrder422(&gzz[index]); - PDstandard33gzz = PDstandardfdOrder433(&gzz[index]); - PDstandard12gzz = PDstandardfdOrder412(&gzz[index]); - PDstandard13gzz = PDstandardfdOrder413(&gzz[index]); - PDstandard23gzz = PDstandardfdOrder423(&gzz[index]); - PDstandard1kxx = PDstandardfdOrder41(&kxx[index]); - PDstandard2kxx = PDstandardfdOrder42(&kxx[index]); - PDstandard3kxx = PDstandardfdOrder43(&kxx[index]); - PDstandard1kxy = PDstandardfdOrder41(&kxy[index]); - PDstandard2kxy = PDstandardfdOrder42(&kxy[index]); - PDstandard3kxy = PDstandardfdOrder43(&kxy[index]); - PDstandard1kxz = PDstandardfdOrder41(&kxz[index]); - PDstandard2kxz = PDstandardfdOrder42(&kxz[index]); - PDstandard3kxz = PDstandardfdOrder43(&kxz[index]); - PDstandard1kyy = PDstandardfdOrder41(&kyy[index]); - PDstandard2kyy = PDstandardfdOrder42(&kyy[index]); - PDstandard3kyy = PDstandardfdOrder43(&kyy[index]); - PDstandard1kyz = PDstandardfdOrder41(&kyz[index]); - PDstandard2kyz = PDstandardfdOrder42(&kyz[index]); - PDstandard3kyz = PDstandardfdOrder43(&kyz[index]); - PDstandard1kzz = PDstandardfdOrder41(&kzz[index]); - PDstandard2kzz = PDstandardfdOrder42(&kzz[index]); - PDstandard3kzz = PDstandardfdOrder43(&kzz[index]); - break; - - case 6: - PDstandard1gxx = PDstandardfdOrder61(&gxx[index]); - PDstandard2gxx = PDstandardfdOrder62(&gxx[index]); - PDstandard3gxx = PDstandardfdOrder63(&gxx[index]); - PDstandard11gxx = PDstandardfdOrder611(&gxx[index]); - PDstandard22gxx = PDstandardfdOrder622(&gxx[index]); - PDstandard33gxx = PDstandardfdOrder633(&gxx[index]); - PDstandard12gxx = PDstandardfdOrder612(&gxx[index]); - PDstandard13gxx = PDstandardfdOrder613(&gxx[index]); - PDstandard23gxx = PDstandardfdOrder623(&gxx[index]); - PDstandard1gxy = PDstandardfdOrder61(&gxy[index]); - PDstandard2gxy = PDstandardfdOrder62(&gxy[index]); - PDstandard3gxy = PDstandardfdOrder63(&gxy[index]); - PDstandard11gxy = PDstandardfdOrder611(&gxy[index]); - PDstandard22gxy = PDstandardfdOrder622(&gxy[index]); - PDstandard33gxy = PDstandardfdOrder633(&gxy[index]); - PDstandard12gxy = PDstandardfdOrder612(&gxy[index]); - PDstandard13gxy = PDstandardfdOrder613(&gxy[index]); - PDstandard23gxy = PDstandardfdOrder623(&gxy[index]); - PDstandard1gxz = PDstandardfdOrder61(&gxz[index]); - PDstandard2gxz = PDstandardfdOrder62(&gxz[index]); - PDstandard3gxz = PDstandardfdOrder63(&gxz[index]); - PDstandard11gxz = PDstandardfdOrder611(&gxz[index]); - PDstandard22gxz = PDstandardfdOrder622(&gxz[index]); - PDstandard33gxz = PDstandardfdOrder633(&gxz[index]); - PDstandard12gxz = PDstandardfdOrder612(&gxz[index]); - PDstandard13gxz = PDstandardfdOrder613(&gxz[index]); - PDstandard23gxz = PDstandardfdOrder623(&gxz[index]); - PDstandard1gyy = PDstandardfdOrder61(&gyy[index]); - PDstandard2gyy = PDstandardfdOrder62(&gyy[index]); - PDstandard3gyy = PDstandardfdOrder63(&gyy[index]); - PDstandard11gyy = PDstandardfdOrder611(&gyy[index]); - PDstandard22gyy = PDstandardfdOrder622(&gyy[index]); - PDstandard33gyy = PDstandardfdOrder633(&gyy[index]); - PDstandard12gyy = PDstandardfdOrder612(&gyy[index]); - PDstandard13gyy = PDstandardfdOrder613(&gyy[index]); - PDstandard23gyy = PDstandardfdOrder623(&gyy[index]); - PDstandard1gyz = PDstandardfdOrder61(&gyz[index]); - PDstandard2gyz = PDstandardfdOrder62(&gyz[index]); - PDstandard3gyz = PDstandardfdOrder63(&gyz[index]); - PDstandard11gyz = PDstandardfdOrder611(&gyz[index]); - PDstandard22gyz = PDstandardfdOrder622(&gyz[index]); - PDstandard33gyz = PDstandardfdOrder633(&gyz[index]); - PDstandard12gyz = PDstandardfdOrder612(&gyz[index]); - PDstandard13gyz = PDstandardfdOrder613(&gyz[index]); - PDstandard23gyz = PDstandardfdOrder623(&gyz[index]); - PDstandard1gzz = PDstandardfdOrder61(&gzz[index]); - PDstandard2gzz = PDstandardfdOrder62(&gzz[index]); - PDstandard3gzz = PDstandardfdOrder63(&gzz[index]); - PDstandard11gzz = PDstandardfdOrder611(&gzz[index]); - PDstandard22gzz = PDstandardfdOrder622(&gzz[index]); - PDstandard33gzz = PDstandardfdOrder633(&gzz[index]); - PDstandard12gzz = PDstandardfdOrder612(&gzz[index]); - PDstandard13gzz = PDstandardfdOrder613(&gzz[index]); - PDstandard23gzz = PDstandardfdOrder623(&gzz[index]); - PDstandard1kxx = PDstandardfdOrder61(&kxx[index]); - PDstandard2kxx = PDstandardfdOrder62(&kxx[index]); - PDstandard3kxx = PDstandardfdOrder63(&kxx[index]); - PDstandard1kxy = PDstandardfdOrder61(&kxy[index]); - PDstandard2kxy = PDstandardfdOrder62(&kxy[index]); - PDstandard3kxy = PDstandardfdOrder63(&kxy[index]); - PDstandard1kxz = PDstandardfdOrder61(&kxz[index]); - PDstandard2kxz = PDstandardfdOrder62(&kxz[index]); - PDstandard3kxz = PDstandardfdOrder63(&kxz[index]); - PDstandard1kyy = PDstandardfdOrder61(&kyy[index]); - PDstandard2kyy = PDstandardfdOrder62(&kyy[index]); - PDstandard3kyy = PDstandardfdOrder63(&kyy[index]); - PDstandard1kyz = PDstandardfdOrder61(&kyz[index]); - PDstandard2kyz = PDstandardfdOrder62(&kyz[index]); - PDstandard3kyz = PDstandardfdOrder63(&kyz[index]); - PDstandard1kzz = PDstandardfdOrder61(&kzz[index]); - PDstandard2kzz = PDstandardfdOrder62(&kzz[index]); - PDstandard3kzz = PDstandardfdOrder63(&kzz[index]); - break; - - case 8: - PDstandard1gxx = PDstandardfdOrder81(&gxx[index]); - PDstandard2gxx = PDstandardfdOrder82(&gxx[index]); - PDstandard3gxx = PDstandardfdOrder83(&gxx[index]); - PDstandard11gxx = PDstandardfdOrder811(&gxx[index]); - PDstandard22gxx = PDstandardfdOrder822(&gxx[index]); - PDstandard33gxx = PDstandardfdOrder833(&gxx[index]); - PDstandard12gxx = PDstandardfdOrder812(&gxx[index]); - PDstandard13gxx = PDstandardfdOrder813(&gxx[index]); - PDstandard23gxx = PDstandardfdOrder823(&gxx[index]); - PDstandard1gxy = PDstandardfdOrder81(&gxy[index]); - PDstandard2gxy = PDstandardfdOrder82(&gxy[index]); - PDstandard3gxy = PDstandardfdOrder83(&gxy[index]); - PDstandard11gxy = PDstandardfdOrder811(&gxy[index]); - PDstandard22gxy = PDstandardfdOrder822(&gxy[index]); - PDstandard33gxy = PDstandardfdOrder833(&gxy[index]); - PDstandard12gxy = PDstandardfdOrder812(&gxy[index]); - PDstandard13gxy = PDstandardfdOrder813(&gxy[index]); - PDstandard23gxy = PDstandardfdOrder823(&gxy[index]); - PDstandard1gxz = PDstandardfdOrder81(&gxz[index]); - PDstandard2gxz = PDstandardfdOrder82(&gxz[index]); - PDstandard3gxz = PDstandardfdOrder83(&gxz[index]); - PDstandard11gxz = PDstandardfdOrder811(&gxz[index]); - PDstandard22gxz = PDstandardfdOrder822(&gxz[index]); - PDstandard33gxz = PDstandardfdOrder833(&gxz[index]); - PDstandard12gxz = PDstandardfdOrder812(&gxz[index]); - PDstandard13gxz = PDstandardfdOrder813(&gxz[index]); - PDstandard23gxz = PDstandardfdOrder823(&gxz[index]); - PDstandard1gyy = PDstandardfdOrder81(&gyy[index]); - PDstandard2gyy = PDstandardfdOrder82(&gyy[index]); - PDstandard3gyy = PDstandardfdOrder83(&gyy[index]); - PDstandard11gyy = PDstandardfdOrder811(&gyy[index]); - PDstandard22gyy = PDstandardfdOrder822(&gyy[index]); - PDstandard33gyy = PDstandardfdOrder833(&gyy[index]); - PDstandard12gyy = PDstandardfdOrder812(&gyy[index]); - PDstandard13gyy = PDstandardfdOrder813(&gyy[index]); - PDstandard23gyy = PDstandardfdOrder823(&gyy[index]); - PDstandard1gyz = PDstandardfdOrder81(&gyz[index]); - PDstandard2gyz = PDstandardfdOrder82(&gyz[index]); - PDstandard3gyz = PDstandardfdOrder83(&gyz[index]); - PDstandard11gyz = PDstandardfdOrder811(&gyz[index]); - PDstandard22gyz = PDstandardfdOrder822(&gyz[index]); - PDstandard33gyz = PDstandardfdOrder833(&gyz[index]); - PDstandard12gyz = PDstandardfdOrder812(&gyz[index]); - PDstandard13gyz = PDstandardfdOrder813(&gyz[index]); - PDstandard23gyz = PDstandardfdOrder823(&gyz[index]); - PDstandard1gzz = PDstandardfdOrder81(&gzz[index]); - PDstandard2gzz = PDstandardfdOrder82(&gzz[index]); - PDstandard3gzz = PDstandardfdOrder83(&gzz[index]); - PDstandard11gzz = PDstandardfdOrder811(&gzz[index]); - PDstandard22gzz = PDstandardfdOrder822(&gzz[index]); - PDstandard33gzz = PDstandardfdOrder833(&gzz[index]); - PDstandard12gzz = PDstandardfdOrder812(&gzz[index]); - PDstandard13gzz = PDstandardfdOrder813(&gzz[index]); - PDstandard23gzz = PDstandardfdOrder823(&gzz[index]); - PDstandard1kxx = PDstandardfdOrder81(&kxx[index]); - PDstandard2kxx = PDstandardfdOrder82(&kxx[index]); - PDstandard3kxx = PDstandardfdOrder83(&kxx[index]); - PDstandard1kxy = PDstandardfdOrder81(&kxy[index]); - PDstandard2kxy = PDstandardfdOrder82(&kxy[index]); - PDstandard3kxy = PDstandardfdOrder83(&kxy[index]); - PDstandard1kxz = PDstandardfdOrder81(&kxz[index]); - PDstandard2kxz = PDstandardfdOrder82(&kxz[index]); - PDstandard3kxz = PDstandardfdOrder83(&kxz[index]); - PDstandard1kyy = PDstandardfdOrder81(&kyy[index]); - PDstandard2kyy = PDstandardfdOrder82(&kyy[index]); - PDstandard3kyy = PDstandardfdOrder83(&kyy[index]); - PDstandard1kyz = PDstandardfdOrder81(&kyz[index]); - PDstandard2kyz = PDstandardfdOrder82(&kyz[index]); - PDstandard3kyz = PDstandardfdOrder83(&kyz[index]); - PDstandard1kzz = PDstandardfdOrder81(&kzz[index]); - PDstandard2kzz = PDstandardfdOrder82(&kzz[index]); - PDstandard3kzz = PDstandardfdOrder83(&kzz[index]); - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC JacPDstandard11gyy; - CCTK_REAL_VEC JacPDstandard11gyz; - CCTK_REAL_VEC JacPDstandard11gzz; - CCTK_REAL_VEC JacPDstandard12gxy; - CCTK_REAL_VEC JacPDstandard12gxz; - CCTK_REAL_VEC JacPDstandard12gyz; - CCTK_REAL_VEC JacPDstandard12gzz; - CCTK_REAL_VEC JacPDstandard13gxz; - CCTK_REAL_VEC JacPDstandard1gxx; - CCTK_REAL_VEC JacPDstandard1gxy; - CCTK_REAL_VEC JacPDstandard1gxz; - CCTK_REAL_VEC JacPDstandard1gyy; - CCTK_REAL_VEC JacPDstandard1gyz; - CCTK_REAL_VEC JacPDstandard1gzz; - CCTK_REAL_VEC JacPDstandard1kxy; - CCTK_REAL_VEC JacPDstandard1kxz; - CCTK_REAL_VEC JacPDstandard1kyy; - CCTK_REAL_VEC JacPDstandard1kyz; - CCTK_REAL_VEC JacPDstandard1kzz; - CCTK_REAL_VEC JacPDstandard21gxy; - CCTK_REAL_VEC JacPDstandard22gxx; - CCTK_REAL_VEC JacPDstandard22gxz; - CCTK_REAL_VEC JacPDstandard22gzz; - CCTK_REAL_VEC JacPDstandard23gxx; - CCTK_REAL_VEC JacPDstandard23gxy; - CCTK_REAL_VEC JacPDstandard23gxz; - CCTK_REAL_VEC JacPDstandard23gyz; - CCTK_REAL_VEC JacPDstandard2gxx; - CCTK_REAL_VEC JacPDstandard2gxy; - CCTK_REAL_VEC JacPDstandard2gxz; - CCTK_REAL_VEC JacPDstandard2gyy; - CCTK_REAL_VEC JacPDstandard2gyz; - CCTK_REAL_VEC JacPDstandard2gzz; - CCTK_REAL_VEC JacPDstandard2kxx; - CCTK_REAL_VEC JacPDstandard2kxy; - CCTK_REAL_VEC JacPDstandard2kxz; - CCTK_REAL_VEC JacPDstandard2kyz; - CCTK_REAL_VEC JacPDstandard2kzz; - CCTK_REAL_VEC JacPDstandard31gxy; - CCTK_REAL_VEC JacPDstandard31gxz; - CCTK_REAL_VEC JacPDstandard31gyy; - CCTK_REAL_VEC JacPDstandard31gyz; - CCTK_REAL_VEC JacPDstandard32gyz; - CCTK_REAL_VEC JacPDstandard33gxx; - CCTK_REAL_VEC JacPDstandard33gxy; - CCTK_REAL_VEC JacPDstandard33gyy; - CCTK_REAL_VEC JacPDstandard3gxx; - CCTK_REAL_VEC JacPDstandard3gxy; - CCTK_REAL_VEC JacPDstandard3gxz; - CCTK_REAL_VEC JacPDstandard3gyy; - CCTK_REAL_VEC JacPDstandard3gyz; - CCTK_REAL_VEC JacPDstandard3gzz; - CCTK_REAL_VEC JacPDstandard3kxx; - CCTK_REAL_VEC JacPDstandard3kxy; - CCTK_REAL_VEC JacPDstandard3kxz; - CCTK_REAL_VEC JacPDstandard3kyy; - CCTK_REAL_VEC JacPDstandard3kyz; - - if (use_jacobian) - { - JacPDstandard1gxx = - kmadd(J11L,PDstandard1gxx,kmadd(J21L,PDstandard2gxx,kmul(J31L,PDstandard3gxx))); - - JacPDstandard1gxy = - kmadd(J11L,PDstandard1gxy,kmadd(J21L,PDstandard2gxy,kmul(J31L,PDstandard3gxy))); - - JacPDstandard1gxz = - kmadd(J11L,PDstandard1gxz,kmadd(J21L,PDstandard2gxz,kmul(J31L,PDstandard3gxz))); - - JacPDstandard1gyy = - kmadd(J11L,PDstandard1gyy,kmadd(J21L,PDstandard2gyy,kmul(J31L,PDstandard3gyy))); - - JacPDstandard1gyz = - kmadd(J11L,PDstandard1gyz,kmadd(J21L,PDstandard2gyz,kmul(J31L,PDstandard3gyz))); - - JacPDstandard1gzz = - kmadd(J11L,PDstandard1gzz,kmadd(J21L,PDstandard2gzz,kmul(J31L,PDstandard3gzz))); - - JacPDstandard1kxy = - kmadd(J11L,PDstandard1kxy,kmadd(J21L,PDstandard2kxy,kmul(J31L,PDstandard3kxy))); - - JacPDstandard1kxz = - kmadd(J11L,PDstandard1kxz,kmadd(J21L,PDstandard2kxz,kmul(J31L,PDstandard3kxz))); - - JacPDstandard1kyy = - kmadd(J11L,PDstandard1kyy,kmadd(J21L,PDstandard2kyy,kmul(J31L,PDstandard3kyy))); - - JacPDstandard1kyz = - kmadd(J11L,PDstandard1kyz,kmadd(J21L,PDstandard2kyz,kmul(J31L,PDstandard3kyz))); - - JacPDstandard1kzz = - kmadd(J11L,PDstandard1kzz,kmadd(J21L,PDstandard2kzz,kmul(J31L,PDstandard3kzz))); - - JacPDstandard2gxx = - kmadd(J12L,PDstandard1gxx,kmadd(J22L,PDstandard2gxx,kmul(J32L,PDstandard3gxx))); - - JacPDstandard2gxy = - kmadd(J12L,PDstandard1gxy,kmadd(J22L,PDstandard2gxy,kmul(J32L,PDstandard3gxy))); - - JacPDstandard2gxz = - kmadd(J12L,PDstandard1gxz,kmadd(J22L,PDstandard2gxz,kmul(J32L,PDstandard3gxz))); - - JacPDstandard2gyy = - kmadd(J12L,PDstandard1gyy,kmadd(J22L,PDstandard2gyy,kmul(J32L,PDstandard3gyy))); - - JacPDstandard2gyz = - kmadd(J12L,PDstandard1gyz,kmadd(J22L,PDstandard2gyz,kmul(J32L,PDstandard3gyz))); - - JacPDstandard2gzz = - kmadd(J12L,PDstandard1gzz,kmadd(J22L,PDstandard2gzz,kmul(J32L,PDstandard3gzz))); - - JacPDstandard2kxx = - kmadd(J12L,PDstandard1kxx,kmadd(J22L,PDstandard2kxx,kmul(J32L,PDstandard3kxx))); - - JacPDstandard2kxy = - kmadd(J12L,PDstandard1kxy,kmadd(J22L,PDstandard2kxy,kmul(J32L,PDstandard3kxy))); - - JacPDstandard2kxz = - kmadd(J12L,PDstandard1kxz,kmadd(J22L,PDstandard2kxz,kmul(J32L,PDstandard3kxz))); - - JacPDstandard2kyz = - kmadd(J12L,PDstandard1kyz,kmadd(J22L,PDstandard2kyz,kmul(J32L,PDstandard3kyz))); - - JacPDstandard2kzz = - kmadd(J12L,PDstandard1kzz,kmadd(J22L,PDstandard2kzz,kmul(J32L,PDstandard3kzz))); - - JacPDstandard3gxx = - kmadd(J13L,PDstandard1gxx,kmadd(J23L,PDstandard2gxx,kmul(J33L,PDstandard3gxx))); - - JacPDstandard3gxy = - kmadd(J13L,PDstandard1gxy,kmadd(J23L,PDstandard2gxy,kmul(J33L,PDstandard3gxy))); - - JacPDstandard3gxz = - kmadd(J13L,PDstandard1gxz,kmadd(J23L,PDstandard2gxz,kmul(J33L,PDstandard3gxz))); - - JacPDstandard3gyy = - kmadd(J13L,PDstandard1gyy,kmadd(J23L,PDstandard2gyy,kmul(J33L,PDstandard3gyy))); - - JacPDstandard3gyz = - kmadd(J13L,PDstandard1gyz,kmadd(J23L,PDstandard2gyz,kmul(J33L,PDstandard3gyz))); - - JacPDstandard3gzz = - kmadd(J13L,PDstandard1gzz,kmadd(J23L,PDstandard2gzz,kmul(J33L,PDstandard3gzz))); - - JacPDstandard3kxx = - kmadd(J13L,PDstandard1kxx,kmadd(J23L,PDstandard2kxx,kmul(J33L,PDstandard3kxx))); - - JacPDstandard3kxy = - kmadd(J13L,PDstandard1kxy,kmadd(J23L,PDstandard2kxy,kmul(J33L,PDstandard3kxy))); - - JacPDstandard3kxz = - kmadd(J13L,PDstandard1kxz,kmadd(J23L,PDstandard2kxz,kmul(J33L,PDstandard3kxz))); - - JacPDstandard3kyy = - kmadd(J13L,PDstandard1kyy,kmadd(J23L,PDstandard2kyy,kmul(J33L,PDstandard3kyy))); - - JacPDstandard3kyz = - kmadd(J13L,PDstandard1kyz,kmadd(J23L,PDstandard2kyz,kmul(J33L,PDstandard3kyz))); - - JacPDstandard11gyy = - kmadd(dJ111L,PDstandard1gyy,kmadd(dJ211L,PDstandard2gyy,kmadd(dJ311L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J11L,J11L),kmadd(PDstandard22gyy,kmul(J21L,J21L),kmadd(PDstandard33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy)),kmul(J21L,kmul(J31L,PDstandard23gyy))),ToReal(2)))))))); - - JacPDstandard11gyz = - kmadd(dJ111L,PDstandard1gyz,kmadd(dJ211L,PDstandard2gyz,kmadd(dJ311L,PDstandard3gyz,kmadd(PDstandard11gyz,kmul(J11L,J11L),kmadd(PDstandard22gyz,kmul(J21L,J21L),kmadd(PDstandard33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz)),kmul(J21L,kmul(J31L,PDstandard23gyz))),ToReal(2)))))))); - - JacPDstandard11gzz = - kmadd(dJ111L,PDstandard1gzz,kmadd(dJ211L,PDstandard2gzz,kmadd(dJ311L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J11L,J11L),kmadd(PDstandard22gzz,kmul(J21L,J21L),kmadd(PDstandard33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz)),kmul(J21L,kmul(J31L,PDstandard23gzz))),ToReal(2)))))))); - - JacPDstandard22gxx = - kmadd(dJ122L,PDstandard1gxx,kmadd(dJ222L,PDstandard2gxx,kmadd(dJ322L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J12L,J12L),kmadd(PDstandard22gxx,kmul(J22L,J22L),kmadd(PDstandard33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx)),kmul(J22L,kmul(J32L,PDstandard23gxx))),ToReal(2)))))))); - - JacPDstandard22gxz = - kmadd(dJ122L,PDstandard1gxz,kmadd(dJ222L,PDstandard2gxz,kmadd(dJ322L,PDstandard3gxz,kmadd(PDstandard11gxz,kmul(J12L,J12L),kmadd(PDstandard22gxz,kmul(J22L,J22L),kmadd(PDstandard33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmul(J22L,kmul(J32L,PDstandard23gxz))),ToReal(2)))))))); - - JacPDstandard22gzz = - kmadd(dJ122L,PDstandard1gzz,kmadd(dJ222L,PDstandard2gzz,kmadd(dJ322L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J12L,J12L),kmadd(PDstandard22gzz,kmul(J22L,J22L),kmadd(PDstandard33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmul(J22L,kmul(J32L,PDstandard23gzz))),ToReal(2)))))))); - - JacPDstandard33gxx = - kmadd(dJ133L,PDstandard1gxx,kmadd(dJ233L,PDstandard2gxx,kmadd(dJ333L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J13L,J13L),kmadd(PDstandard22gxx,kmul(J23L,J23L),kmadd(PDstandard33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmul(J23L,kmul(J33L,PDstandard23gxx))),ToReal(2)))))))); - - JacPDstandard33gxy = - kmadd(dJ133L,PDstandard1gxy,kmadd(dJ233L,PDstandard2gxy,kmadd(dJ333L,PDstandard3gxy,kmadd(PDstandard11gxy,kmul(J13L,J13L),kmadd(PDstandard22gxy,kmul(J23L,J23L),kmadd(PDstandard33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmul(J23L,kmul(J33L,PDstandard23gxy))),ToReal(2)))))))); - - JacPDstandard33gyy = - kmadd(dJ133L,PDstandard1gyy,kmadd(dJ233L,PDstandard2gyy,kmadd(dJ333L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J13L,J13L),kmadd(PDstandard22gyy,kmul(J23L,J23L),kmadd(PDstandard33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmul(J23L,kmul(J33L,PDstandard23gyy))),ToReal(2)))))))); - - JacPDstandard12gxy = - kmadd(J12L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy)),kmadd(dJ112L,PDstandard1gxy,kmadd(J22L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ212L,PDstandard2gxy,kmadd(J32L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ312L,PDstandard3gxy))))))); - - JacPDstandard12gxz = - kmadd(J12L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmadd(dJ112L,PDstandard1gxz,kmadd(J22L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ212L,PDstandard2gxz,kmadd(J32L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ312L,PDstandard3gxz))))))); - - JacPDstandard12gyz = - kmadd(J12L,kmadd(J11L,PDstandard11gyz,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz))),kmadd(J11L,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz)),kmadd(dJ112L,PDstandard1gyz,kmadd(J22L,kmadd(J21L,PDstandard22gyz,kmul(J31L,PDstandard23gyz)),kmadd(dJ212L,PDstandard2gyz,kmadd(J32L,kmadd(J21L,PDstandard23gyz,kmul(J31L,PDstandard33gyz)),kmul(dJ312L,PDstandard3gyz))))))); - - JacPDstandard12gzz = - kmadd(J12L,kmadd(J11L,PDstandard11gzz,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz))),kmadd(J11L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmadd(dJ112L,PDstandard1gzz,kmadd(J22L,kmadd(J21L,PDstandard22gzz,kmul(J31L,PDstandard23gzz)),kmadd(dJ212L,PDstandard2gzz,kmadd(J32L,kmadd(J21L,PDstandard23gzz,kmul(J31L,PDstandard33gzz)),kmul(dJ312L,PDstandard3gzz))))))); - - JacPDstandard13gxz = - kmadd(J13L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ113L,PDstandard1gxz,kmadd(J23L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ213L,PDstandard2gxz,kmadd(J33L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ313L,PDstandard3gxz))))))); - - JacPDstandard21gxy = - kmadd(J12L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy)),kmadd(dJ112L,PDstandard1gxy,kmadd(J22L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ212L,PDstandard2gxy,kmadd(J32L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ312L,PDstandard3gxy))))))); - - JacPDstandard23gxx = - kmadd(J13L,kmadd(J12L,PDstandard11gxx,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx))),kmadd(J12L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmadd(dJ123L,PDstandard1gxx,kmadd(J23L,kmadd(J22L,PDstandard22gxx,kmul(J32L,PDstandard23gxx)),kmadd(dJ223L,PDstandard2gxx,kmadd(J33L,kmadd(J22L,PDstandard23gxx,kmul(J32L,PDstandard33gxx)),kmul(dJ323L,PDstandard3gxx))))))); - - JacPDstandard23gxy = - kmadd(J13L,kmadd(J12L,PDstandard11gxy,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy))),kmadd(J12L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmadd(dJ123L,PDstandard1gxy,kmadd(J23L,kmadd(J22L,PDstandard22gxy,kmul(J32L,PDstandard23gxy)),kmadd(dJ223L,PDstandard2gxy,kmadd(J33L,kmadd(J22L,PDstandard23gxy,kmul(J32L,PDstandard33gxy)),kmul(dJ323L,PDstandard3gxy))))))); - - JacPDstandard23gxz = - kmadd(J13L,kmadd(J12L,PDstandard11gxz,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz))),kmadd(J12L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ123L,PDstandard1gxz,kmadd(J23L,kmadd(J22L,PDstandard22gxz,kmul(J32L,PDstandard23gxz)),kmadd(dJ223L,PDstandard2gxz,kmadd(J33L,kmadd(J22L,PDstandard23gxz,kmul(J32L,PDstandard33gxz)),kmul(dJ323L,PDstandard3gxz))))))); - - JacPDstandard23gyz = - kmadd(J13L,kmadd(J12L,PDstandard11gyz,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz))),kmadd(J12L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ123L,PDstandard1gyz,kmadd(J23L,kmadd(J22L,PDstandard22gyz,kmul(J32L,PDstandard23gyz)),kmadd(dJ223L,PDstandard2gyz,kmadd(J33L,kmadd(J22L,PDstandard23gyz,kmul(J32L,PDstandard33gyz)),kmul(dJ323L,PDstandard3gyz))))))); - - JacPDstandard31gxy = - kmadd(J13L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmadd(dJ113L,PDstandard1gxy,kmadd(J23L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ213L,PDstandard2gxy,kmadd(J33L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ313L,PDstandard3gxy))))))); - - JacPDstandard31gxz = - kmadd(J13L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ113L,PDstandard1gxz,kmadd(J23L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ213L,PDstandard2gxz,kmadd(J33L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ313L,PDstandard3gxz))))))); - - JacPDstandard31gyy = - kmadd(J13L,kmadd(J11L,PDstandard11gyy,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy))),kmadd(J11L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmadd(dJ113L,PDstandard1gyy,kmadd(J23L,kmadd(J21L,PDstandard22gyy,kmul(J31L,PDstandard23gyy)),kmadd(dJ213L,PDstandard2gyy,kmadd(J33L,kmadd(J21L,PDstandard23gyy,kmul(J31L,PDstandard33gyy)),kmul(dJ313L,PDstandard3gyy))))))); - - JacPDstandard31gyz = - kmadd(J13L,kmadd(J11L,PDstandard11gyz,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz))),kmadd(J11L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ113L,PDstandard1gyz,kmadd(J23L,kmadd(J21L,PDstandard22gyz,kmul(J31L,PDstandard23gyz)),kmadd(dJ213L,PDstandard2gyz,kmadd(J33L,kmadd(J21L,PDstandard23gyz,kmul(J31L,PDstandard33gyz)),kmul(dJ313L,PDstandard3gyz))))))); - - JacPDstandard32gyz = - kmadd(J13L,kmadd(J12L,PDstandard11gyz,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz))),kmadd(J12L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ123L,PDstandard1gyz,kmadd(J23L,kmadd(J22L,PDstandard22gyz,kmul(J32L,PDstandard23gyz)),kmadd(dJ223L,PDstandard2gyz,kmadd(J33L,kmadd(J22L,PDstandard23gyz,kmul(J32L,PDstandard33gyz)),kmul(dJ323L,PDstandard3gyz))))))); - } - else - { - JacPDstandard1gxx = PDstandard1gxx; - - JacPDstandard1gxy = PDstandard1gxy; - - JacPDstandard1gxz = PDstandard1gxz; - - JacPDstandard1gyy = PDstandard1gyy; - - JacPDstandard1gyz = PDstandard1gyz; - - JacPDstandard1gzz = PDstandard1gzz; - - JacPDstandard1kxy = PDstandard1kxy; - - JacPDstandard1kxz = PDstandard1kxz; - - JacPDstandard1kyy = PDstandard1kyy; - - JacPDstandard1kyz = PDstandard1kyz; - - JacPDstandard1kzz = PDstandard1kzz; - - JacPDstandard2gxx = PDstandard2gxx; - - JacPDstandard2gxy = PDstandard2gxy; - - JacPDstandard2gxz = PDstandard2gxz; - - JacPDstandard2gyy = PDstandard2gyy; - - JacPDstandard2gyz = PDstandard2gyz; - - JacPDstandard2gzz = PDstandard2gzz; - - JacPDstandard2kxx = PDstandard2kxx; - - JacPDstandard2kxy = PDstandard2kxy; - - JacPDstandard2kxz = PDstandard2kxz; - - JacPDstandard2kyz = PDstandard2kyz; - - JacPDstandard2kzz = PDstandard2kzz; - - JacPDstandard3gxx = PDstandard3gxx; - - JacPDstandard3gxy = PDstandard3gxy; - - JacPDstandard3gxz = PDstandard3gxz; - - JacPDstandard3gyy = PDstandard3gyy; - - JacPDstandard3gyz = PDstandard3gyz; - - JacPDstandard3gzz = PDstandard3gzz; - - JacPDstandard3kxx = PDstandard3kxx; - - JacPDstandard3kxy = PDstandard3kxy; - - JacPDstandard3kxz = PDstandard3kxz; - - JacPDstandard3kyy = PDstandard3kyy; - - JacPDstandard3kyz = PDstandard3kyz; - - JacPDstandard11gyy = PDstandard11gyy; - - JacPDstandard11gyz = PDstandard11gyz; - - JacPDstandard11gzz = PDstandard11gzz; - - JacPDstandard22gxx = PDstandard22gxx; - - JacPDstandard22gxz = PDstandard22gxz; - - JacPDstandard22gzz = PDstandard22gzz; - - JacPDstandard33gxx = PDstandard33gxx; - - JacPDstandard33gxy = PDstandard33gxy; - - JacPDstandard33gyy = PDstandard33gyy; - - JacPDstandard12gxy = PDstandard12gxy; - - JacPDstandard12gxz = PDstandard12gxz; - - JacPDstandard12gyz = PDstandard12gyz; - - JacPDstandard12gzz = PDstandard12gzz; - - JacPDstandard13gxz = PDstandard13gxz; - - JacPDstandard21gxy = PDstandard12gxy; - - JacPDstandard23gxx = PDstandard23gxx; - - JacPDstandard23gxy = PDstandard23gxy; - - JacPDstandard23gxz = PDstandard23gxz; - - JacPDstandard23gyz = PDstandard23gyz; - - JacPDstandard31gxy = PDstandard13gxy; - - JacPDstandard31gxz = PDstandard13gxz; - - JacPDstandard31gyy = PDstandard13gyy; - - JacPDstandard31gyz = PDstandard13gyz; - - JacPDstandard32gyz = PDstandard23gyz; - } - - CCTK_REAL_VEC detg = - knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); - - CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); - - CCTK_REAL_VEC gInv11 = - kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); - - CCTK_REAL_VEC gInv12 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv13 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv21 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv22 = - kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); - - CCTK_REAL_VEC gInv23 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv31 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv32 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv33 = - kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); - - CCTK_REAL_VEC gamma111 = - kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard1gxx,knmsub(gInv12,JacPDstandard2gxx,kmsub(kmadd(gInv12,JacPDstandard1gxy,kmul(gInv13,JacPDstandard1gxz)),ToReal(2),kmul(gInv13,JacPDstandard3gxx))))); - - CCTK_REAL_VEC gamma211 = - kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard1gxx,knmsub(gInv22,JacPDstandard2gxx,kmsub(kmadd(gInv22,JacPDstandard1gxy,kmul(gInv23,JacPDstandard1gxz)),ToReal(2),kmul(gInv23,JacPDstandard3gxx))))); - - CCTK_REAL_VEC gamma311 = - kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard1gxx,knmsub(gInv32,JacPDstandard2gxx,kmsub(kmadd(gInv32,JacPDstandard1gxy,kmul(gInv33,JacPDstandard1gxz)),ToReal(2),kmul(gInv33,JacPDstandard3gxx))))); - - CCTK_REAL_VEC gamma121 = - kmul(kmadd(gInv12,JacPDstandard1gyy,kmadd(gInv11,JacPDstandard2gxx,kmul(gInv13,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma221 = - kmul(kmadd(gInv22,JacPDstandard1gyy,kmadd(gInv21,JacPDstandard2gxx,kmul(gInv23,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma321 = - kmul(kmadd(gInv32,JacPDstandard1gyy,kmadd(gInv31,JacPDstandard2gxx,kmul(gInv33,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma131 = - kmul(kmadd(gInv13,JacPDstandard1gzz,kmadd(gInv11,JacPDstandard3gxx,kmul(gInv12,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma231 = - kmul(kmadd(gInv23,JacPDstandard1gzz,kmadd(gInv21,JacPDstandard3gxx,kmul(gInv22,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma331 = - kmul(kmadd(gInv33,JacPDstandard1gzz,kmadd(gInv31,JacPDstandard3gxx,kmul(gInv32,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma122 = - kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2gyy,kmadd(gInv11,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv13,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); - - CCTK_REAL_VEC gamma222 = - kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2gyy,kmadd(gInv21,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv23,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); - - CCTK_REAL_VEC gamma322 = - kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2gyy,kmadd(gInv31,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv33,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); - - CCTK_REAL_VEC gamma132 = - kmul(kmadd(gInv13,JacPDstandard2gzz,kmadd(gInv12,JacPDstandard3gyy,kmul(gInv11,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma232 = - kmul(kmadd(gInv23,JacPDstandard2gzz,kmadd(gInv22,JacPDstandard3gyy,kmul(gInv21,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma332 = - kmul(kmadd(gInv33,JacPDstandard2gzz,kmadd(gInv32,JacPDstandard3gyy,kmul(gInv31,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma133 = - kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard3gzz,kmadd(gInv11,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv12,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); - - CCTK_REAL_VEC gamma233 = - kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard3gzz,kmadd(gInv21,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv22,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); - - CCTK_REAL_VEC gamma333 = - kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard3gzz,kmadd(gInv31,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv32,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); - - CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); - - CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); - - CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); - - CCTK_REAL_VEC va1 = kneg(ymoved); - - CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC va3 = ToReal(0); - - CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC vb2 = ymoved; - - CCTK_REAL_VEC vb3 = zmoved; - - CCTK_REAL_VEC vc1 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); - - CCTK_REAL_VEC vc2 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); - - CCTK_REAL_VEC vc3 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); - - CCTK_REAL_VEC wa1 = va1; - - CCTK_REAL_VEC wa2 = va2; - - CCTK_REAL_VEC wa3 = va3; - - CCTK_REAL_VEC omega11 = - kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); - - CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); - - CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); - - CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); - - CCTK_REAL_VEC omega12 = - kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); - - CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); - - CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); - - CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); - - CCTK_REAL_VEC omega22 = - kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); - - CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); - - CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); - - CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); - - CCTK_REAL_VEC omega13 = - kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC omega23 = - kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); - - CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); - - CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); - - CCTK_REAL_VEC omega33 = - kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); - - CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); - - CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); - - CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); - - CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); - - CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); - - CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); - - CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); - - CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); - - CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); - - CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); - - CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); - - CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); - - CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); - - CCTK_REAL_VEC nn = isqrt2; - - CCTK_REAL_VEC R1212 = - kmul(ToReal(0.5),kadd(JacPDstandard12gxy,kadd(JacPDstandard21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard22gxx),JacPDstandard11gyy))))); - - CCTK_REAL_VEC R1213 = - kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard12gxz,kadd(JacPDstandard31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard23gxx),JacPDstandard11gyz)))))); - - CCTK_REAL_VEC R1223 = - kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard22gxz,kadd(JacPDstandard31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard23gxy),JacPDstandard12gyz)))))); - - CCTK_REAL_VEC R1313 = - kmul(ToReal(0.5),kadd(JacPDstandard13gxz,kadd(JacPDstandard31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard33gxx),JacPDstandard11gzz))))); - - CCTK_REAL_VEC R1323 = - kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard23gxz,kadd(JacPDstandard31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard33gxy),JacPDstandard12gzz)))))); - - CCTK_REAL_VEC R2323 = - kmul(ToReal(0.5),kadd(JacPDstandard23gyz,kadd(JacPDstandard32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard33gyy),JacPDstandard22gzz))))); - - CCTK_REAL_VEC R4p1212 = - kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); - - CCTK_REAL_VEC R4p1213 = - kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); - - CCTK_REAL_VEC R4p1223 = - kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); - - CCTK_REAL_VEC R4p1313 = - kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); - - CCTK_REAL_VEC R4p1323 = - kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); - - CCTK_REAL_VEC R4p2323 = - kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); - - CCTK_REAL_VEC Ro111 = ToReal(0); - - CCTK_REAL_VEC Ro112 = - kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2kxx)))))); - - CCTK_REAL_VEC Ro113 = - kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard3kxx)))))); - - CCTK_REAL_VEC Ro121 = - kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard1kxy)))))); - - CCTK_REAL_VEC Ro122 = ToReal(0); - - CCTK_REAL_VEC Ro123 = - kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard3kxy)))))); - - CCTK_REAL_VEC Ro131 = - kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard1kxz)))))); - - CCTK_REAL_VEC Ro132 = - kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2kxz)))))); - - CCTK_REAL_VEC Ro133 = ToReal(0); - - CCTK_REAL_VEC Ro211 = ToReal(0); - - CCTK_REAL_VEC Ro212 = - kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2kxy)))))); - - CCTK_REAL_VEC Ro213 = - kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard3kxy)))))); - - CCTK_REAL_VEC Ro221 = - kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard1kyy)))))); - - CCTK_REAL_VEC Ro222 = ToReal(0); - - CCTK_REAL_VEC Ro223 = - kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard3kyy)))))); - - CCTK_REAL_VEC Ro231 = - kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard1kyz)))))); - - CCTK_REAL_VEC Ro232 = - kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2kyz)))))); - - CCTK_REAL_VEC Ro233 = ToReal(0); - - CCTK_REAL_VEC Ro311 = ToReal(0); - - CCTK_REAL_VEC Ro312 = - kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2kxz)))))); - - CCTK_REAL_VEC Ro313 = - kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard3kxz)))))); - - CCTK_REAL_VEC Ro321 = - kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard1kyz)))))); - - CCTK_REAL_VEC Ro322 = ToReal(0); - - CCTK_REAL_VEC Ro323 = - kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard3kyz)))))); - - CCTK_REAL_VEC Ro331 = - kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard1kzz)))))); - - CCTK_REAL_VEC Ro332 = - kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2kzz)))))); - - CCTK_REAL_VEC Ro333 = ToReal(0); - - CCTK_REAL_VEC Rojo11 = - kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); - - CCTK_REAL_VEC Rojo12 = - kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo13 = - kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); - - CCTK_REAL_VEC Rojo21 = - kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo22 = - kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Rojo23 = - kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo31 = - kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); - - CCTK_REAL_VEC Rojo32 = - kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo33 = - kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Psi4rL = - kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi4iL = - knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(Psi4i[index],Psi4iL); - vec_store_nta_partial(Psi4r[index],Psi4rL); - } - LC_ENDLOOP3VEC(psi4_calc_Nth); -} - -extern "C" void psi4_calc_Nth(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering psi4_calc_Nth_Body"); - } - - if (cctk_iteration % psi4_calc_Nth_calc_every != psi4_calc_Nth_calc_offset) - { - return; - } - - const char *const groups[] = { - "admbase::curv", - "admbase::metric", - "grid::coordinates", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "psi4_calc_Nth", 5, groups); - - switch(fdOrder) - { - case 2: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_Nth", 1, 1, 1); - break; - - case 4: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_Nth", 2, 2, 2); - break; - - case 6: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_Nth", 3, 3, 3); - break; - - case 8: - GenericFD_EnsureStencilFits(cctkGH, "psi4_calc_Nth", 4, 4, 4); - break; - } - - GenericFD_LoopOverInterior(cctkGH, psi4_calc_Nth_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving psi4_calc_Nth_Body"); - } -} diff --git a/src/psis_calc_2nd.cc b/src/psis_calc_2nd.cc deleted file mode 100644 index 9dff1a1..0000000 --- a/src/psis_calc_2nd.cc +++ /dev/null @@ -1,1426 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void psis_calc_2nd_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); - return; -} - -static void psis_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(psis_calc_2nd, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC gxxL = vec_load(gxx[index]); - CCTK_REAL_VEC gxyL = vec_load(gxy[index]); - CCTK_REAL_VEC gxzL = vec_load(gxz[index]); - CCTK_REAL_VEC gyyL = vec_load(gyy[index]); - CCTK_REAL_VEC gyzL = vec_load(gyz[index]); - CCTK_REAL_VEC gzzL = vec_load(gzz[index]); - CCTK_REAL_VEC kxxL = vec_load(kxx[index]); - CCTK_REAL_VEC kxyL = vec_load(kxy[index]); - CCTK_REAL_VEC kxzL = vec_load(kxz[index]); - CCTK_REAL_VEC kyyL = vec_load(kyy[index]); - CCTK_REAL_VEC kyzL = vec_load(kyz[index]); - CCTK_REAL_VEC kzzL = vec_load(kzz[index]); - CCTK_REAL_VEC xL = vec_load(x[index]); - CCTK_REAL_VEC yL = vec_load(y[index]); - CCTK_REAL_VEC zL = vec_load(z[index]); - - - CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; - - if (use_jacobian) - { - dJ111L = vec_load(dJ111[index]); - dJ112L = vec_load(dJ112[index]); - dJ113L = vec_load(dJ113[index]); - dJ122L = vec_load(dJ122[index]); - dJ123L = vec_load(dJ123[index]); - dJ133L = vec_load(dJ133[index]); - dJ211L = vec_load(dJ211[index]); - dJ212L = vec_load(dJ212[index]); - dJ213L = vec_load(dJ213[index]); - dJ222L = vec_load(dJ222[index]); - dJ223L = vec_load(dJ223[index]); - dJ233L = vec_load(dJ233[index]); - dJ311L = vec_load(dJ311[index]); - dJ312L = vec_load(dJ312[index]); - dJ313L = vec_load(dJ313[index]); - dJ322L = vec_load(dJ322[index]); - dJ323L = vec_load(dJ323[index]); - dJ333L = vec_load(dJ333[index]); - J11L = vec_load(J11[index]); - J12L = vec_load(J12[index]); - J13L = vec_load(J13[index]); - J21L = vec_load(J21[index]); - J22L = vec_load(J22[index]); - J23L = vec_load(J23[index]); - J31L = vec_load(J31[index]); - J32L = vec_load(J32[index]); - J33L = vec_load(J33[index]); - } - - /* Include user supplied include files */ - - /* Precompute derivatives */ - CCTK_REAL_VEC PDstandard2nd1gxx; - CCTK_REAL_VEC PDstandard2nd2gxx; - CCTK_REAL_VEC PDstandard2nd3gxx; - CCTK_REAL_VEC PDstandard2nd11gxx; - CCTK_REAL_VEC PDstandard2nd22gxx; - CCTK_REAL_VEC PDstandard2nd33gxx; - CCTK_REAL_VEC PDstandard2nd12gxx; - CCTK_REAL_VEC PDstandard2nd13gxx; - CCTK_REAL_VEC PDstandard2nd23gxx; - CCTK_REAL_VEC PDstandard2nd1gxy; - CCTK_REAL_VEC PDstandard2nd2gxy; - CCTK_REAL_VEC PDstandard2nd3gxy; - CCTK_REAL_VEC PDstandard2nd11gxy; - CCTK_REAL_VEC PDstandard2nd22gxy; - CCTK_REAL_VEC PDstandard2nd33gxy; - CCTK_REAL_VEC PDstandard2nd12gxy; - CCTK_REAL_VEC PDstandard2nd13gxy; - CCTK_REAL_VEC PDstandard2nd23gxy; - CCTK_REAL_VEC PDstandard2nd1gxz; - CCTK_REAL_VEC PDstandard2nd2gxz; - CCTK_REAL_VEC PDstandard2nd3gxz; - CCTK_REAL_VEC PDstandard2nd11gxz; - CCTK_REAL_VEC PDstandard2nd22gxz; - CCTK_REAL_VEC PDstandard2nd33gxz; - CCTK_REAL_VEC PDstandard2nd12gxz; - CCTK_REAL_VEC PDstandard2nd13gxz; - CCTK_REAL_VEC PDstandard2nd23gxz; - CCTK_REAL_VEC PDstandard2nd1gyy; - CCTK_REAL_VEC PDstandard2nd2gyy; - CCTK_REAL_VEC PDstandard2nd3gyy; - CCTK_REAL_VEC PDstandard2nd11gyy; - CCTK_REAL_VEC PDstandard2nd22gyy; - CCTK_REAL_VEC PDstandard2nd33gyy; - CCTK_REAL_VEC PDstandard2nd12gyy; - CCTK_REAL_VEC PDstandard2nd13gyy; - CCTK_REAL_VEC PDstandard2nd23gyy; - CCTK_REAL_VEC PDstandard2nd1gyz; - CCTK_REAL_VEC PDstandard2nd2gyz; - CCTK_REAL_VEC PDstandard2nd3gyz; - CCTK_REAL_VEC PDstandard2nd11gyz; - CCTK_REAL_VEC PDstandard2nd22gyz; - CCTK_REAL_VEC PDstandard2nd33gyz; - CCTK_REAL_VEC PDstandard2nd12gyz; - CCTK_REAL_VEC PDstandard2nd13gyz; - CCTK_REAL_VEC PDstandard2nd23gyz; - CCTK_REAL_VEC PDstandard2nd1gzz; - CCTK_REAL_VEC PDstandard2nd2gzz; - CCTK_REAL_VEC PDstandard2nd3gzz; - CCTK_REAL_VEC PDstandard2nd11gzz; - CCTK_REAL_VEC PDstandard2nd22gzz; - CCTK_REAL_VEC PDstandard2nd33gzz; - CCTK_REAL_VEC PDstandard2nd12gzz; - CCTK_REAL_VEC PDstandard2nd13gzz; - CCTK_REAL_VEC PDstandard2nd23gzz; - CCTK_REAL_VEC PDstandard2nd1kxx; - CCTK_REAL_VEC PDstandard2nd2kxx; - CCTK_REAL_VEC PDstandard2nd3kxx; - CCTK_REAL_VEC PDstandard2nd1kxy; - CCTK_REAL_VEC PDstandard2nd2kxy; - CCTK_REAL_VEC PDstandard2nd3kxy; - CCTK_REAL_VEC PDstandard2nd1kxz; - CCTK_REAL_VEC PDstandard2nd2kxz; - CCTK_REAL_VEC PDstandard2nd3kxz; - CCTK_REAL_VEC PDstandard2nd1kyy; - CCTK_REAL_VEC PDstandard2nd2kyy; - CCTK_REAL_VEC PDstandard2nd3kyy; - CCTK_REAL_VEC PDstandard2nd1kyz; - CCTK_REAL_VEC PDstandard2nd2kyz; - CCTK_REAL_VEC PDstandard2nd3kyz; - CCTK_REAL_VEC PDstandard2nd1kzz; - CCTK_REAL_VEC PDstandard2nd2kzz; - CCTK_REAL_VEC PDstandard2nd3kzz; - - switch(fdOrder) - { - case 2: - PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); - PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); - PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); - PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); - PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); - PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); - PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); - PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); - PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); - PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); - PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); - PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); - PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); - PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); - PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); - PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); - PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); - PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); - PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); - PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); - PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); - PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); - PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); - PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); - PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); - PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); - PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); - PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); - PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); - PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); - PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); - PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); - PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); - PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); - PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); - PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); - PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); - PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); - PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); - PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); - PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); - PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); - PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); - PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); - PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); - PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); - PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); - PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); - PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); - PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); - PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); - PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); - PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); - PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); - PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); - PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); - PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); - PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); - PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); - PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); - PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); - PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); - PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); - PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); - PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); - PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); - PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); - PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); - PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); - PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); - PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); - PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); - break; - - case 4: - PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); - PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); - PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); - PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); - PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); - PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); - PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); - PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); - PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); - PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); - PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); - PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); - PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); - PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); - PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); - PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); - PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); - PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); - PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); - PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); - PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); - PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); - PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); - PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); - PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); - PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); - PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); - PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); - PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); - PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); - PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); - PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); - PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); - PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); - PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); - PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); - PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); - PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); - PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); - PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); - PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); - PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); - PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); - PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); - PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); - PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); - PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); - PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); - PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); - PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); - PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); - PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); - PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); - PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); - PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); - PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); - PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); - PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); - PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); - PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); - PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); - PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); - PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); - PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); - PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); - PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); - PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); - PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); - PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); - PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); - PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); - PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); - break; - - case 6: - PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); - PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); - PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); - PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); - PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); - PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); - PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); - PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); - PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); - PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); - PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); - PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); - PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); - PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); - PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); - PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); - PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); - PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); - PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); - PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); - PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); - PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); - PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); - PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); - PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); - PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); - PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); - PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); - PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); - PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); - PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); - PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); - PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); - PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); - PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); - PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); - PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); - PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); - PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); - PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); - PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); - PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); - PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); - PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); - PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); - PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); - PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); - PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); - PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); - PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); - PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); - PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); - PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); - PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); - PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); - PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); - PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); - PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); - PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); - PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); - PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); - PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); - PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); - PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); - PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); - PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); - PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); - PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); - PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); - PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); - PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); - PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); - break; - - case 8: - PDstandard2nd1gxx = PDstandard2nd1(&gxx[index]); - PDstandard2nd2gxx = PDstandard2nd2(&gxx[index]); - PDstandard2nd3gxx = PDstandard2nd3(&gxx[index]); - PDstandard2nd11gxx = PDstandard2nd11(&gxx[index]); - PDstandard2nd22gxx = PDstandard2nd22(&gxx[index]); - PDstandard2nd33gxx = PDstandard2nd33(&gxx[index]); - PDstandard2nd12gxx = PDstandard2nd12(&gxx[index]); - PDstandard2nd13gxx = PDstandard2nd13(&gxx[index]); - PDstandard2nd23gxx = PDstandard2nd23(&gxx[index]); - PDstandard2nd1gxy = PDstandard2nd1(&gxy[index]); - PDstandard2nd2gxy = PDstandard2nd2(&gxy[index]); - PDstandard2nd3gxy = PDstandard2nd3(&gxy[index]); - PDstandard2nd11gxy = PDstandard2nd11(&gxy[index]); - PDstandard2nd22gxy = PDstandard2nd22(&gxy[index]); - PDstandard2nd33gxy = PDstandard2nd33(&gxy[index]); - PDstandard2nd12gxy = PDstandard2nd12(&gxy[index]); - PDstandard2nd13gxy = PDstandard2nd13(&gxy[index]); - PDstandard2nd23gxy = PDstandard2nd23(&gxy[index]); - PDstandard2nd1gxz = PDstandard2nd1(&gxz[index]); - PDstandard2nd2gxz = PDstandard2nd2(&gxz[index]); - PDstandard2nd3gxz = PDstandard2nd3(&gxz[index]); - PDstandard2nd11gxz = PDstandard2nd11(&gxz[index]); - PDstandard2nd22gxz = PDstandard2nd22(&gxz[index]); - PDstandard2nd33gxz = PDstandard2nd33(&gxz[index]); - PDstandard2nd12gxz = PDstandard2nd12(&gxz[index]); - PDstandard2nd13gxz = PDstandard2nd13(&gxz[index]); - PDstandard2nd23gxz = PDstandard2nd23(&gxz[index]); - PDstandard2nd1gyy = PDstandard2nd1(&gyy[index]); - PDstandard2nd2gyy = PDstandard2nd2(&gyy[index]); - PDstandard2nd3gyy = PDstandard2nd3(&gyy[index]); - PDstandard2nd11gyy = PDstandard2nd11(&gyy[index]); - PDstandard2nd22gyy = PDstandard2nd22(&gyy[index]); - PDstandard2nd33gyy = PDstandard2nd33(&gyy[index]); - PDstandard2nd12gyy = PDstandard2nd12(&gyy[index]); - PDstandard2nd13gyy = PDstandard2nd13(&gyy[index]); - PDstandard2nd23gyy = PDstandard2nd23(&gyy[index]); - PDstandard2nd1gyz = PDstandard2nd1(&gyz[index]); - PDstandard2nd2gyz = PDstandard2nd2(&gyz[index]); - PDstandard2nd3gyz = PDstandard2nd3(&gyz[index]); - PDstandard2nd11gyz = PDstandard2nd11(&gyz[index]); - PDstandard2nd22gyz = PDstandard2nd22(&gyz[index]); - PDstandard2nd33gyz = PDstandard2nd33(&gyz[index]); - PDstandard2nd12gyz = PDstandard2nd12(&gyz[index]); - PDstandard2nd13gyz = PDstandard2nd13(&gyz[index]); - PDstandard2nd23gyz = PDstandard2nd23(&gyz[index]); - PDstandard2nd1gzz = PDstandard2nd1(&gzz[index]); - PDstandard2nd2gzz = PDstandard2nd2(&gzz[index]); - PDstandard2nd3gzz = PDstandard2nd3(&gzz[index]); - PDstandard2nd11gzz = PDstandard2nd11(&gzz[index]); - PDstandard2nd22gzz = PDstandard2nd22(&gzz[index]); - PDstandard2nd33gzz = PDstandard2nd33(&gzz[index]); - PDstandard2nd12gzz = PDstandard2nd12(&gzz[index]); - PDstandard2nd13gzz = PDstandard2nd13(&gzz[index]); - PDstandard2nd23gzz = PDstandard2nd23(&gzz[index]); - PDstandard2nd1kxx = PDstandard2nd1(&kxx[index]); - PDstandard2nd2kxx = PDstandard2nd2(&kxx[index]); - PDstandard2nd3kxx = PDstandard2nd3(&kxx[index]); - PDstandard2nd1kxy = PDstandard2nd1(&kxy[index]); - PDstandard2nd2kxy = PDstandard2nd2(&kxy[index]); - PDstandard2nd3kxy = PDstandard2nd3(&kxy[index]); - PDstandard2nd1kxz = PDstandard2nd1(&kxz[index]); - PDstandard2nd2kxz = PDstandard2nd2(&kxz[index]); - PDstandard2nd3kxz = PDstandard2nd3(&kxz[index]); - PDstandard2nd1kyy = PDstandard2nd1(&kyy[index]); - PDstandard2nd2kyy = PDstandard2nd2(&kyy[index]); - PDstandard2nd3kyy = PDstandard2nd3(&kyy[index]); - PDstandard2nd1kyz = PDstandard2nd1(&kyz[index]); - PDstandard2nd2kyz = PDstandard2nd2(&kyz[index]); - PDstandard2nd3kyz = PDstandard2nd3(&kyz[index]); - PDstandard2nd1kzz = PDstandard2nd1(&kzz[index]); - PDstandard2nd2kzz = PDstandard2nd2(&kzz[index]); - PDstandard2nd3kzz = PDstandard2nd3(&kzz[index]); - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC JacPDstandard2nd11gyy; - CCTK_REAL_VEC JacPDstandard2nd11gyz; - CCTK_REAL_VEC JacPDstandard2nd11gzz; - CCTK_REAL_VEC JacPDstandard2nd12gxy; - CCTK_REAL_VEC JacPDstandard2nd12gxz; - CCTK_REAL_VEC JacPDstandard2nd12gyz; - CCTK_REAL_VEC JacPDstandard2nd12gzz; - CCTK_REAL_VEC JacPDstandard2nd13gxz; - CCTK_REAL_VEC JacPDstandard2nd1gxx; - CCTK_REAL_VEC JacPDstandard2nd1gxy; - CCTK_REAL_VEC JacPDstandard2nd1gxz; - CCTK_REAL_VEC JacPDstandard2nd1gyy; - CCTK_REAL_VEC JacPDstandard2nd1gyz; - CCTK_REAL_VEC JacPDstandard2nd1gzz; - CCTK_REAL_VEC JacPDstandard2nd1kxy; - CCTK_REAL_VEC JacPDstandard2nd1kxz; - CCTK_REAL_VEC JacPDstandard2nd1kyy; - CCTK_REAL_VEC JacPDstandard2nd1kyz; - CCTK_REAL_VEC JacPDstandard2nd1kzz; - CCTK_REAL_VEC JacPDstandard2nd21gxy; - CCTK_REAL_VEC JacPDstandard2nd22gxx; - CCTK_REAL_VEC JacPDstandard2nd22gxz; - CCTK_REAL_VEC JacPDstandard2nd22gzz; - CCTK_REAL_VEC JacPDstandard2nd23gxx; - CCTK_REAL_VEC JacPDstandard2nd23gxy; - CCTK_REAL_VEC JacPDstandard2nd23gxz; - CCTK_REAL_VEC JacPDstandard2nd23gyz; - CCTK_REAL_VEC JacPDstandard2nd2gxx; - CCTK_REAL_VEC JacPDstandard2nd2gxy; - CCTK_REAL_VEC JacPDstandard2nd2gxz; - CCTK_REAL_VEC JacPDstandard2nd2gyy; - CCTK_REAL_VEC JacPDstandard2nd2gyz; - CCTK_REAL_VEC JacPDstandard2nd2gzz; - CCTK_REAL_VEC JacPDstandard2nd2kxx; - CCTK_REAL_VEC JacPDstandard2nd2kxy; - CCTK_REAL_VEC JacPDstandard2nd2kxz; - CCTK_REAL_VEC JacPDstandard2nd2kyz; - CCTK_REAL_VEC JacPDstandard2nd2kzz; - CCTK_REAL_VEC JacPDstandard2nd31gxy; - CCTK_REAL_VEC JacPDstandard2nd31gxz; - CCTK_REAL_VEC JacPDstandard2nd31gyy; - CCTK_REAL_VEC JacPDstandard2nd31gyz; - CCTK_REAL_VEC JacPDstandard2nd32gyz; - CCTK_REAL_VEC JacPDstandard2nd33gxx; - CCTK_REAL_VEC JacPDstandard2nd33gxy; - CCTK_REAL_VEC JacPDstandard2nd33gyy; - CCTK_REAL_VEC JacPDstandard2nd3gxx; - CCTK_REAL_VEC JacPDstandard2nd3gxy; - CCTK_REAL_VEC JacPDstandard2nd3gxz; - CCTK_REAL_VEC JacPDstandard2nd3gyy; - CCTK_REAL_VEC JacPDstandard2nd3gyz; - CCTK_REAL_VEC JacPDstandard2nd3gzz; - CCTK_REAL_VEC JacPDstandard2nd3kxx; - CCTK_REAL_VEC JacPDstandard2nd3kxy; - CCTK_REAL_VEC JacPDstandard2nd3kxz; - CCTK_REAL_VEC JacPDstandard2nd3kyy; - CCTK_REAL_VEC JacPDstandard2nd3kyz; - - if (use_jacobian) - { - JacPDstandard2nd1gxx = - kmadd(J11L,PDstandard2nd1gxx,kmadd(J21L,PDstandard2nd2gxx,kmul(J31L,PDstandard2nd3gxx))); - - JacPDstandard2nd1gxy = - kmadd(J11L,PDstandard2nd1gxy,kmadd(J21L,PDstandard2nd2gxy,kmul(J31L,PDstandard2nd3gxy))); - - JacPDstandard2nd1gxz = - kmadd(J11L,PDstandard2nd1gxz,kmadd(J21L,PDstandard2nd2gxz,kmul(J31L,PDstandard2nd3gxz))); - - JacPDstandard2nd1gyy = - kmadd(J11L,PDstandard2nd1gyy,kmadd(J21L,PDstandard2nd2gyy,kmul(J31L,PDstandard2nd3gyy))); - - JacPDstandard2nd1gyz = - kmadd(J11L,PDstandard2nd1gyz,kmadd(J21L,PDstandard2nd2gyz,kmul(J31L,PDstandard2nd3gyz))); - - JacPDstandard2nd1gzz = - kmadd(J11L,PDstandard2nd1gzz,kmadd(J21L,PDstandard2nd2gzz,kmul(J31L,PDstandard2nd3gzz))); - - JacPDstandard2nd1kxy = - kmadd(J11L,PDstandard2nd1kxy,kmadd(J21L,PDstandard2nd2kxy,kmul(J31L,PDstandard2nd3kxy))); - - JacPDstandard2nd1kxz = - kmadd(J11L,PDstandard2nd1kxz,kmadd(J21L,PDstandard2nd2kxz,kmul(J31L,PDstandard2nd3kxz))); - - JacPDstandard2nd1kyy = - kmadd(J11L,PDstandard2nd1kyy,kmadd(J21L,PDstandard2nd2kyy,kmul(J31L,PDstandard2nd3kyy))); - - JacPDstandard2nd1kyz = - kmadd(J11L,PDstandard2nd1kyz,kmadd(J21L,PDstandard2nd2kyz,kmul(J31L,PDstandard2nd3kyz))); - - JacPDstandard2nd1kzz = - kmadd(J11L,PDstandard2nd1kzz,kmadd(J21L,PDstandard2nd2kzz,kmul(J31L,PDstandard2nd3kzz))); - - JacPDstandard2nd2gxx = - kmadd(J12L,PDstandard2nd1gxx,kmadd(J22L,PDstandard2nd2gxx,kmul(J32L,PDstandard2nd3gxx))); - - JacPDstandard2nd2gxy = - kmadd(J12L,PDstandard2nd1gxy,kmadd(J22L,PDstandard2nd2gxy,kmul(J32L,PDstandard2nd3gxy))); - - JacPDstandard2nd2gxz = - kmadd(J12L,PDstandard2nd1gxz,kmadd(J22L,PDstandard2nd2gxz,kmul(J32L,PDstandard2nd3gxz))); - - JacPDstandard2nd2gyy = - kmadd(J12L,PDstandard2nd1gyy,kmadd(J22L,PDstandard2nd2gyy,kmul(J32L,PDstandard2nd3gyy))); - - JacPDstandard2nd2gyz = - kmadd(J12L,PDstandard2nd1gyz,kmadd(J22L,PDstandard2nd2gyz,kmul(J32L,PDstandard2nd3gyz))); - - JacPDstandard2nd2gzz = - kmadd(J12L,PDstandard2nd1gzz,kmadd(J22L,PDstandard2nd2gzz,kmul(J32L,PDstandard2nd3gzz))); - - JacPDstandard2nd2kxx = - kmadd(J12L,PDstandard2nd1kxx,kmadd(J22L,PDstandard2nd2kxx,kmul(J32L,PDstandard2nd3kxx))); - - JacPDstandard2nd2kxy = - kmadd(J12L,PDstandard2nd1kxy,kmadd(J22L,PDstandard2nd2kxy,kmul(J32L,PDstandard2nd3kxy))); - - JacPDstandard2nd2kxz = - kmadd(J12L,PDstandard2nd1kxz,kmadd(J22L,PDstandard2nd2kxz,kmul(J32L,PDstandard2nd3kxz))); - - JacPDstandard2nd2kyz = - kmadd(J12L,PDstandard2nd1kyz,kmadd(J22L,PDstandard2nd2kyz,kmul(J32L,PDstandard2nd3kyz))); - - JacPDstandard2nd2kzz = - kmadd(J12L,PDstandard2nd1kzz,kmadd(J22L,PDstandard2nd2kzz,kmul(J32L,PDstandard2nd3kzz))); - - JacPDstandard2nd3gxx = - kmadd(J13L,PDstandard2nd1gxx,kmadd(J23L,PDstandard2nd2gxx,kmul(J33L,PDstandard2nd3gxx))); - - JacPDstandard2nd3gxy = - kmadd(J13L,PDstandard2nd1gxy,kmadd(J23L,PDstandard2nd2gxy,kmul(J33L,PDstandard2nd3gxy))); - - JacPDstandard2nd3gxz = - kmadd(J13L,PDstandard2nd1gxz,kmadd(J23L,PDstandard2nd2gxz,kmul(J33L,PDstandard2nd3gxz))); - - JacPDstandard2nd3gyy = - kmadd(J13L,PDstandard2nd1gyy,kmadd(J23L,PDstandard2nd2gyy,kmul(J33L,PDstandard2nd3gyy))); - - JacPDstandard2nd3gyz = - kmadd(J13L,PDstandard2nd1gyz,kmadd(J23L,PDstandard2nd2gyz,kmul(J33L,PDstandard2nd3gyz))); - - JacPDstandard2nd3gzz = - kmadd(J13L,PDstandard2nd1gzz,kmadd(J23L,PDstandard2nd2gzz,kmul(J33L,PDstandard2nd3gzz))); - - JacPDstandard2nd3kxx = - kmadd(J13L,PDstandard2nd1kxx,kmadd(J23L,PDstandard2nd2kxx,kmul(J33L,PDstandard2nd3kxx))); - - JacPDstandard2nd3kxy = - kmadd(J13L,PDstandard2nd1kxy,kmadd(J23L,PDstandard2nd2kxy,kmul(J33L,PDstandard2nd3kxy))); - - JacPDstandard2nd3kxz = - kmadd(J13L,PDstandard2nd1kxz,kmadd(J23L,PDstandard2nd2kxz,kmul(J33L,PDstandard2nd3kxz))); - - JacPDstandard2nd3kyy = - kmadd(J13L,PDstandard2nd1kyy,kmadd(J23L,PDstandard2nd2kyy,kmul(J33L,PDstandard2nd3kyy))); - - JacPDstandard2nd3kyz = - kmadd(J13L,PDstandard2nd1kyz,kmadd(J23L,PDstandard2nd2kyz,kmul(J33L,PDstandard2nd3kyz))); - - JacPDstandard2nd11gyy = - kmadd(dJ111L,PDstandard2nd1gyy,kmadd(dJ211L,PDstandard2nd2gyy,kmadd(dJ311L,PDstandard2nd3gyy,kmadd(PDstandard2nd11gyy,kmul(J11L,J11L),kmadd(PDstandard2nd22gyy,kmul(J21L,J21L),kmadd(PDstandard2nd33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gyy,kmul(J31L,PDstandard2nd13gyy)),kmul(J21L,kmul(J31L,PDstandard2nd23gyy))),ToReal(2)))))))); - - JacPDstandard2nd11gyz = - kmadd(dJ111L,PDstandard2nd1gyz,kmadd(dJ211L,PDstandard2nd2gyz,kmadd(dJ311L,PDstandard2nd3gyz,kmadd(PDstandard2nd11gyz,kmul(J11L,J11L),kmadd(PDstandard2nd22gyz,kmul(J21L,J21L),kmadd(PDstandard2nd33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz)),kmul(J21L,kmul(J31L,PDstandard2nd23gyz))),ToReal(2)))))))); - - JacPDstandard2nd11gzz = - kmadd(dJ111L,PDstandard2nd1gzz,kmadd(dJ211L,PDstandard2nd2gzz,kmadd(dJ311L,PDstandard2nd3gzz,kmadd(PDstandard2nd11gzz,kmul(J11L,J11L),kmadd(PDstandard2nd22gzz,kmul(J21L,J21L),kmadd(PDstandard2nd33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard2nd12gzz,kmul(J31L,PDstandard2nd13gzz)),kmul(J21L,kmul(J31L,PDstandard2nd23gzz))),ToReal(2)))))))); - - JacPDstandard2nd22gxx = - kmadd(dJ122L,PDstandard2nd1gxx,kmadd(dJ222L,PDstandard2nd2gxx,kmadd(dJ322L,PDstandard2nd3gxx,kmadd(PDstandard2nd11gxx,kmul(J12L,J12L),kmadd(PDstandard2nd22gxx,kmul(J22L,J22L),kmadd(PDstandard2nd33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gxx,kmul(J32L,PDstandard2nd13gxx)),kmul(J22L,kmul(J32L,PDstandard2nd23gxx))),ToReal(2)))))))); - - JacPDstandard2nd22gxz = - kmadd(dJ122L,PDstandard2nd1gxz,kmadd(dJ222L,PDstandard2nd2gxz,kmadd(dJ322L,PDstandard2nd3gxz,kmadd(PDstandard2nd11gxz,kmul(J12L,J12L),kmadd(PDstandard2nd22gxz,kmul(J22L,J22L),kmadd(PDstandard2nd33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz)),kmul(J22L,kmul(J32L,PDstandard2nd23gxz))),ToReal(2)))))))); - - JacPDstandard2nd22gzz = - kmadd(dJ122L,PDstandard2nd1gzz,kmadd(dJ222L,PDstandard2nd2gzz,kmadd(dJ322L,PDstandard2nd3gzz,kmadd(PDstandard2nd11gzz,kmul(J12L,J12L),kmadd(PDstandard2nd22gzz,kmul(J22L,J22L),kmadd(PDstandard2nd33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard2nd12gzz,kmul(J32L,PDstandard2nd13gzz)),kmul(J22L,kmul(J32L,PDstandard2nd23gzz))),ToReal(2)))))))); - - JacPDstandard2nd33gxx = - kmadd(dJ133L,PDstandard2nd1gxx,kmadd(dJ233L,PDstandard2nd2gxx,kmadd(dJ333L,PDstandard2nd3gxx,kmadd(PDstandard2nd11gxx,kmul(J13L,J13L),kmadd(PDstandard2nd22gxx,kmul(J23L,J23L),kmadd(PDstandard2nd33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gxx,kmul(J33L,PDstandard2nd13gxx)),kmul(J23L,kmul(J33L,PDstandard2nd23gxx))),ToReal(2)))))))); - - JacPDstandard2nd33gxy = - kmadd(dJ133L,PDstandard2nd1gxy,kmadd(dJ233L,PDstandard2nd2gxy,kmadd(dJ333L,PDstandard2nd3gxy,kmadd(PDstandard2nd11gxy,kmul(J13L,J13L),kmadd(PDstandard2nd22gxy,kmul(J23L,J23L),kmadd(PDstandard2nd33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmul(J23L,kmul(J33L,PDstandard2nd23gxy))),ToReal(2)))))))); - - JacPDstandard2nd33gyy = - kmadd(dJ133L,PDstandard2nd1gyy,kmadd(dJ233L,PDstandard2nd2gyy,kmadd(dJ333L,PDstandard2nd3gyy,kmadd(PDstandard2nd11gyy,kmul(J13L,J13L),kmadd(PDstandard2nd22gyy,kmul(J23L,J23L),kmadd(PDstandard2nd33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard2nd12gyy,kmul(J33L,PDstandard2nd13gyy)),kmul(J23L,kmul(J33L,PDstandard2nd23gyy))),ToReal(2)))))))); - - JacPDstandard2nd12gxy = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy)),kmadd(dJ112L,PDstandard2nd1gxy,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ212L,PDstandard2nd2gxy,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ312L,PDstandard2nd3gxy))))))); - - JacPDstandard2nd12gxz = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz)),kmadd(dJ112L,PDstandard2nd1gxz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ212L,PDstandard2nd2gxz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ312L,PDstandard2nd3gxz))))))); - - JacPDstandard2nd12gyz = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gyz,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz)),kmadd(dJ112L,PDstandard2nd1gyz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gyz,kmul(J31L,PDstandard2nd23gyz)),kmadd(dJ212L,PDstandard2nd2gyz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gyz,kmul(J31L,PDstandard2nd33gyz)),kmul(dJ312L,PDstandard2nd3gyz))))))); - - JacPDstandard2nd12gzz = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gzz,kmadd(J21L,PDstandard2nd12gzz,kmul(J31L,PDstandard2nd13gzz))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gzz,kmul(J32L,PDstandard2nd13gzz)),kmadd(dJ112L,PDstandard2nd1gzz,kmadd(J22L,kmadd(J21L,PDstandard2nd22gzz,kmul(J31L,PDstandard2nd23gzz)),kmadd(dJ212L,PDstandard2nd2gzz,kmadd(J32L,kmadd(J21L,PDstandard2nd23gzz,kmul(J31L,PDstandard2nd33gzz)),kmul(dJ312L,PDstandard2nd3gzz))))))); - - JacPDstandard2nd13gxz = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ113L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ213L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ313L,PDstandard2nd3gxz))))))); - - JacPDstandard2nd21gxy = - kmadd(J12L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy)),kmadd(dJ112L,PDstandard2nd1gxy,kmadd(J22L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ212L,PDstandard2nd2gxy,kmadd(J32L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ312L,PDstandard2nd3gxy))))))); - - JacPDstandard2nd23gxx = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gxx,kmadd(J22L,PDstandard2nd12gxx,kmul(J32L,PDstandard2nd13gxx))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxx,kmul(J33L,PDstandard2nd13gxx)),kmadd(dJ123L,PDstandard2nd1gxx,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxx,kmul(J32L,PDstandard2nd23gxx)),kmadd(dJ223L,PDstandard2nd2gxx,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxx,kmul(J32L,PDstandard2nd33gxx)),kmul(dJ323L,PDstandard2nd3gxx))))))); - - JacPDstandard2nd23gxy = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gxy,kmadd(J22L,PDstandard2nd12gxy,kmul(J32L,PDstandard2nd13gxy))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmadd(dJ123L,PDstandard2nd1gxy,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxy,kmul(J32L,PDstandard2nd23gxy)),kmadd(dJ223L,PDstandard2nd2gxy,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxy,kmul(J32L,PDstandard2nd33gxy)),kmul(dJ323L,PDstandard2nd3gxy))))))); - - JacPDstandard2nd23gxz = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gxz,kmadd(J22L,PDstandard2nd12gxz,kmul(J32L,PDstandard2nd13gxz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ123L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gxz,kmul(J32L,PDstandard2nd23gxz)),kmadd(dJ223L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gxz,kmul(J32L,PDstandard2nd33gxz)),kmul(dJ323L,PDstandard2nd3gxz))))))); - - JacPDstandard2nd23gyz = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gyz,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ123L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gyz,kmul(J32L,PDstandard2nd23gyz)),kmadd(dJ223L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gyz,kmul(J32L,PDstandard2nd33gyz)),kmul(dJ323L,PDstandard2nd3gyz))))))); - - JacPDstandard2nd31gxy = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gxy,kmadd(J21L,PDstandard2nd12gxy,kmul(J31L,PDstandard2nd13gxy))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxy,kmul(J33L,PDstandard2nd13gxy)),kmadd(dJ113L,PDstandard2nd1gxy,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxy,kmul(J31L,PDstandard2nd23gxy)),kmadd(dJ213L,PDstandard2nd2gxy,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxy,kmul(J31L,PDstandard2nd33gxy)),kmul(dJ313L,PDstandard2nd3gxy))))))); - - JacPDstandard2nd31gxz = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gxz,kmadd(J21L,PDstandard2nd12gxz,kmul(J31L,PDstandard2nd13gxz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gxz,kmul(J33L,PDstandard2nd13gxz)),kmadd(dJ113L,PDstandard2nd1gxz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gxz,kmul(J31L,PDstandard2nd23gxz)),kmadd(dJ213L,PDstandard2nd2gxz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gxz,kmul(J31L,PDstandard2nd33gxz)),kmul(dJ313L,PDstandard2nd3gxz))))))); - - JacPDstandard2nd31gyy = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gyy,kmadd(J21L,PDstandard2nd12gyy,kmul(J31L,PDstandard2nd13gyy))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gyy,kmul(J33L,PDstandard2nd13gyy)),kmadd(dJ113L,PDstandard2nd1gyy,kmadd(J23L,kmadd(J21L,PDstandard2nd22gyy,kmul(J31L,PDstandard2nd23gyy)),kmadd(dJ213L,PDstandard2nd2gyy,kmadd(J33L,kmadd(J21L,PDstandard2nd23gyy,kmul(J31L,PDstandard2nd33gyy)),kmul(dJ313L,PDstandard2nd3gyy))))))); - - JacPDstandard2nd31gyz = - kmadd(J13L,kmadd(J11L,PDstandard2nd11gyz,kmadd(J21L,PDstandard2nd12gyz,kmul(J31L,PDstandard2nd13gyz))),kmadd(J11L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ113L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J21L,PDstandard2nd22gyz,kmul(J31L,PDstandard2nd23gyz)),kmadd(dJ213L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J21L,PDstandard2nd23gyz,kmul(J31L,PDstandard2nd33gyz)),kmul(dJ313L,PDstandard2nd3gyz))))))); - - JacPDstandard2nd32gyz = - kmadd(J13L,kmadd(J12L,PDstandard2nd11gyz,kmadd(J22L,PDstandard2nd12gyz,kmul(J32L,PDstandard2nd13gyz))),kmadd(J12L,kmadd(J23L,PDstandard2nd12gyz,kmul(J33L,PDstandard2nd13gyz)),kmadd(dJ123L,PDstandard2nd1gyz,kmadd(J23L,kmadd(J22L,PDstandard2nd22gyz,kmul(J32L,PDstandard2nd23gyz)),kmadd(dJ223L,PDstandard2nd2gyz,kmadd(J33L,kmadd(J22L,PDstandard2nd23gyz,kmul(J32L,PDstandard2nd33gyz)),kmul(dJ323L,PDstandard2nd3gyz))))))); - } - else - { - JacPDstandard2nd1gxx = PDstandard2nd1gxx; - - JacPDstandard2nd1gxy = PDstandard2nd1gxy; - - JacPDstandard2nd1gxz = PDstandard2nd1gxz; - - JacPDstandard2nd1gyy = PDstandard2nd1gyy; - - JacPDstandard2nd1gyz = PDstandard2nd1gyz; - - JacPDstandard2nd1gzz = PDstandard2nd1gzz; - - JacPDstandard2nd1kxy = PDstandard2nd1kxy; - - JacPDstandard2nd1kxz = PDstandard2nd1kxz; - - JacPDstandard2nd1kyy = PDstandard2nd1kyy; - - JacPDstandard2nd1kyz = PDstandard2nd1kyz; - - JacPDstandard2nd1kzz = PDstandard2nd1kzz; - - JacPDstandard2nd2gxx = PDstandard2nd2gxx; - - JacPDstandard2nd2gxy = PDstandard2nd2gxy; - - JacPDstandard2nd2gxz = PDstandard2nd2gxz; - - JacPDstandard2nd2gyy = PDstandard2nd2gyy; - - JacPDstandard2nd2gyz = PDstandard2nd2gyz; - - JacPDstandard2nd2gzz = PDstandard2nd2gzz; - - JacPDstandard2nd2kxx = PDstandard2nd2kxx; - - JacPDstandard2nd2kxy = PDstandard2nd2kxy; - - JacPDstandard2nd2kxz = PDstandard2nd2kxz; - - JacPDstandard2nd2kyz = PDstandard2nd2kyz; - - JacPDstandard2nd2kzz = PDstandard2nd2kzz; - - JacPDstandard2nd3gxx = PDstandard2nd3gxx; - - JacPDstandard2nd3gxy = PDstandard2nd3gxy; - - JacPDstandard2nd3gxz = PDstandard2nd3gxz; - - JacPDstandard2nd3gyy = PDstandard2nd3gyy; - - JacPDstandard2nd3gyz = PDstandard2nd3gyz; - - JacPDstandard2nd3gzz = PDstandard2nd3gzz; - - JacPDstandard2nd3kxx = PDstandard2nd3kxx; - - JacPDstandard2nd3kxy = PDstandard2nd3kxy; - - JacPDstandard2nd3kxz = PDstandard2nd3kxz; - - JacPDstandard2nd3kyy = PDstandard2nd3kyy; - - JacPDstandard2nd3kyz = PDstandard2nd3kyz; - - JacPDstandard2nd11gyy = PDstandard2nd11gyy; - - JacPDstandard2nd11gyz = PDstandard2nd11gyz; - - JacPDstandard2nd11gzz = PDstandard2nd11gzz; - - JacPDstandard2nd22gxx = PDstandard2nd22gxx; - - JacPDstandard2nd22gxz = PDstandard2nd22gxz; - - JacPDstandard2nd22gzz = PDstandard2nd22gzz; - - JacPDstandard2nd33gxx = PDstandard2nd33gxx; - - JacPDstandard2nd33gxy = PDstandard2nd33gxy; - - JacPDstandard2nd33gyy = PDstandard2nd33gyy; - - JacPDstandard2nd12gxy = PDstandard2nd12gxy; - - JacPDstandard2nd12gxz = PDstandard2nd12gxz; - - JacPDstandard2nd12gyz = PDstandard2nd12gyz; - - JacPDstandard2nd12gzz = PDstandard2nd12gzz; - - JacPDstandard2nd13gxz = PDstandard2nd13gxz; - - JacPDstandard2nd21gxy = PDstandard2nd12gxy; - - JacPDstandard2nd23gxx = PDstandard2nd23gxx; - - JacPDstandard2nd23gxy = PDstandard2nd23gxy; - - JacPDstandard2nd23gxz = PDstandard2nd23gxz; - - JacPDstandard2nd23gyz = PDstandard2nd23gyz; - - JacPDstandard2nd31gxy = PDstandard2nd13gxy; - - JacPDstandard2nd31gxz = PDstandard2nd13gxz; - - JacPDstandard2nd31gyy = PDstandard2nd13gyy; - - JacPDstandard2nd31gyz = PDstandard2nd13gyz; - - JacPDstandard2nd32gyz = PDstandard2nd23gyz; - } - - CCTK_REAL_VEC detg = - knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); - - CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); - - CCTK_REAL_VEC gInv11 = - kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); - - CCTK_REAL_VEC gInv12 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv13 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv21 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv22 = - kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); - - CCTK_REAL_VEC gInv23 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv31 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv32 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv33 = - kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); - - CCTK_REAL_VEC gamma111 = - kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard2nd1gxx,knmsub(gInv12,JacPDstandard2nd2gxx,kmsub(kmadd(gInv12,JacPDstandard2nd1gxy,kmul(gInv13,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv13,JacPDstandard2nd3gxx))))); - - CCTK_REAL_VEC gamma211 = - kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard2nd1gxx,knmsub(gInv22,JacPDstandard2nd2gxx,kmsub(kmadd(gInv22,JacPDstandard2nd1gxy,kmul(gInv23,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv23,JacPDstandard2nd3gxx))))); - - CCTK_REAL_VEC gamma311 = - kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard2nd1gxx,knmsub(gInv32,JacPDstandard2nd2gxx,kmsub(kmadd(gInv32,JacPDstandard2nd1gxy,kmul(gInv33,JacPDstandard2nd1gxz)),ToReal(2),kmul(gInv33,JacPDstandard2nd3gxx))))); - - CCTK_REAL_VEC gamma121 = - kmul(kmadd(gInv12,JacPDstandard2nd1gyy,kmadd(gInv11,JacPDstandard2nd2gxx,kmul(gInv13,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma221 = - kmul(kmadd(gInv22,JacPDstandard2nd1gyy,kmadd(gInv21,JacPDstandard2nd2gxx,kmul(gInv23,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma321 = - kmul(kmadd(gInv32,JacPDstandard2nd1gyy,kmadd(gInv31,JacPDstandard2nd2gxx,kmul(gInv33,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd2gxz,JacPDstandard2nd3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma131 = - kmul(kmadd(gInv13,JacPDstandard2nd1gzz,kmadd(gInv11,JacPDstandard2nd3gxx,kmul(gInv12,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma231 = - kmul(kmadd(gInv23,JacPDstandard2nd1gzz,kmadd(gInv21,JacPDstandard2nd3gxx,kmul(gInv22,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma331 = - kmul(kmadd(gInv33,JacPDstandard2nd1gzz,kmadd(gInv31,JacPDstandard2nd3gxx,kmul(gInv32,kadd(JacPDstandard2nd1gyz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma122 = - kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2nd2gyy,kmadd(gInv11,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv13,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); - - CCTK_REAL_VEC gamma222 = - kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2nd2gyy,kmadd(gInv21,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv23,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); - - CCTK_REAL_VEC gamma322 = - kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2nd2gyy,kmadd(gInv31,kmsub(JacPDstandard2nd2gxy,ToReal(2),JacPDstandard2nd1gyy),kmul(gInv33,kmsub(JacPDstandard2nd2gyz,ToReal(2),JacPDstandard2nd3gyy))))); - - CCTK_REAL_VEC gamma132 = - kmul(kmadd(gInv13,JacPDstandard2nd2gzz,kmadd(gInv12,JacPDstandard2nd3gyy,kmul(gInv11,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma232 = - kmul(kmadd(gInv23,JacPDstandard2nd2gzz,kmadd(gInv22,JacPDstandard2nd3gyy,kmul(gInv21,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma332 = - kmul(kmadd(gInv33,JacPDstandard2nd2gzz,kmadd(gInv32,JacPDstandard2nd3gyy,kmul(gInv31,kadd(JacPDstandard2nd2gxz,ksub(JacPDstandard2nd3gxy,JacPDstandard2nd1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma133 = - kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard2nd3gzz,kmadd(gInv11,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv12,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); - - CCTK_REAL_VEC gamma233 = - kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard2nd3gzz,kmadd(gInv21,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv22,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); - - CCTK_REAL_VEC gamma333 = - kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard2nd3gzz,kmadd(gInv31,kmsub(JacPDstandard2nd3gxz,ToReal(2),JacPDstandard2nd1gzz),kmul(gInv32,kmsub(JacPDstandard2nd3gyz,ToReal(2),JacPDstandard2nd2gzz))))); - - CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); - - CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); - - CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); - - CCTK_REAL_VEC va1 = kneg(ymoved); - - CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC va3 = ToReal(0); - - CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC vb2 = ymoved; - - CCTK_REAL_VEC vb3 = zmoved; - - CCTK_REAL_VEC vc1 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); - - CCTK_REAL_VEC vc2 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); - - CCTK_REAL_VEC vc3 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); - - CCTK_REAL_VEC wa1 = va1; - - CCTK_REAL_VEC wa2 = va2; - - CCTK_REAL_VEC wa3 = va3; - - CCTK_REAL_VEC omega11 = - kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); - - CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); - - CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); - - CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); - - CCTK_REAL_VEC omega12 = - kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); - - CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); - - CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); - - CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); - - CCTK_REAL_VEC omega22 = - kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); - - CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); - - CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); - - CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); - - CCTK_REAL_VEC omega13 = - kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC omega23 = - kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); - - CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); - - CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); - - CCTK_REAL_VEC omega33 = - kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); - - CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); - - CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); - - CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); - - CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); - - CCTK_REAL_VEC ltet1 = kmul(eb1,isqrt2); - - CCTK_REAL_VEC ltet2 = kmul(eb2,isqrt2); - - CCTK_REAL_VEC ltet3 = kmul(eb3,isqrt2); - - CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); - - CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); - - CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); - - CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); - - CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); - - CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); - - CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); - - CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); - - CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); - - CCTK_REAL_VEC nn = isqrt2; - - CCTK_REAL_VEC R1212 = - kmul(ToReal(0.5),kadd(JacPDstandard2nd12gxy,kadd(JacPDstandard2nd21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard2nd22gxx),JacPDstandard2nd11gyy))))); - - CCTK_REAL_VEC R1213 = - kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard2nd12gxz,kadd(JacPDstandard2nd31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard2nd23gxx),JacPDstandard2nd11gyz)))))); - - CCTK_REAL_VEC R1223 = - kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard2nd22gxz,kadd(JacPDstandard2nd31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard2nd23gxy),JacPDstandard2nd12gyz)))))); - - CCTK_REAL_VEC R1313 = - kmul(ToReal(0.5),kadd(JacPDstandard2nd13gxz,kadd(JacPDstandard2nd31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard2nd33gxx),JacPDstandard2nd11gzz))))); - - CCTK_REAL_VEC R1323 = - kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard2nd23gxz,kadd(JacPDstandard2nd31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard2nd33gxy),JacPDstandard2nd12gzz)))))); - - CCTK_REAL_VEC R2323 = - kmul(ToReal(0.5),kadd(JacPDstandard2nd23gyz,kadd(JacPDstandard2nd32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard2nd33gyy),JacPDstandard2nd22gzz))))); - - CCTK_REAL_VEC R4p1212 = - kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); - - CCTK_REAL_VEC R4p1213 = - kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); - - CCTK_REAL_VEC R4p1223 = - kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); - - CCTK_REAL_VEC R4p1313 = - kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); - - CCTK_REAL_VEC R4p1323 = - kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); - - CCTK_REAL_VEC R4p2323 = - kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); - - CCTK_REAL_VEC Ro111 = ToReal(0); - - CCTK_REAL_VEC Ro112 = - kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard2nd1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2nd2kxx)))))); - - CCTK_REAL_VEC Ro113 = - kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard2nd1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard2nd3kxx)))))); - - CCTK_REAL_VEC Ro121 = - kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2nd2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard2nd1kxy)))))); - - CCTK_REAL_VEC Ro122 = ToReal(0); - - CCTK_REAL_VEC Ro123 = - kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2nd2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard2nd3kxy)))))); - - CCTK_REAL_VEC Ro131 = - kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard2nd3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard2nd1kxz)))))); - - CCTK_REAL_VEC Ro132 = - kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard2nd3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2nd2kxz)))))); - - CCTK_REAL_VEC Ro133 = ToReal(0); - - CCTK_REAL_VEC Ro211 = ToReal(0); - - CCTK_REAL_VEC Ro212 = - kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard2nd1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2nd2kxy)))))); - - CCTK_REAL_VEC Ro213 = - kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard2nd1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard2nd3kxy)))))); - - CCTK_REAL_VEC Ro221 = - kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2nd2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard2nd1kyy)))))); - - CCTK_REAL_VEC Ro222 = ToReal(0); - - CCTK_REAL_VEC Ro223 = - kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2nd2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard2nd3kyy)))))); - - CCTK_REAL_VEC Ro231 = - kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard2nd3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard2nd1kyz)))))); - - CCTK_REAL_VEC Ro232 = - kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard2nd3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2nd2kyz)))))); - - CCTK_REAL_VEC Ro233 = ToReal(0); - - CCTK_REAL_VEC Ro311 = ToReal(0); - - CCTK_REAL_VEC Ro312 = - kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard2nd1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2nd2kxz)))))); - - CCTK_REAL_VEC Ro313 = - kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard2nd1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard2nd3kxz)))))); - - CCTK_REAL_VEC Ro321 = - kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2nd2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard2nd1kyz)))))); - - CCTK_REAL_VEC Ro322 = ToReal(0); - - CCTK_REAL_VEC Ro323 = - kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2nd2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard2nd3kyz)))))); - - CCTK_REAL_VEC Ro331 = - kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard2nd3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard2nd1kzz)))))); - - CCTK_REAL_VEC Ro332 = - kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard2nd3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2nd2kzz)))))); - - CCTK_REAL_VEC Ro333 = ToReal(0); - - CCTK_REAL_VEC Rojo11 = - kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); - - CCTK_REAL_VEC Rojo12 = - kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo13 = - kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); - - CCTK_REAL_VEC Rojo21 = - kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo22 = - kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Rojo23 = - kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo31 = - kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); - - CCTK_REAL_VEC Rojo32 = - kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo33 = - kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Psi4rL = - kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi4iL = - knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); - - CCTK_REAL_VEC Psi3rL = - kmadd(ltet2,kmul(R4p1212,kmul(rm2,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1213,kmul(rm2,kmul(n1,n1))),kmadd(ltet2,kmul(R4p1213,kmul(rm3,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1313,kmul(rm3,kmul(n1,n1))),kmadd(ltet1,kmul(R4p1212,kmul(rm1,kmul(n2,n2))),kmadd(ltet3,kmul(R4p2323,kmul(rm3,kmul(n2,n2))),kmadd(ltet1,kmul(R4p1313,kmul(rm1,kmul(n3,n3))),kmadd(ltet2,kmul(R4p1323,kmul(rm1,kmul(n3,n3))),kmadd(ltet1,kmul(R4p1323,kmul(rm2,kmul(n3,n3))),kmadd(ltet2,kmul(R4p2323,kmul(rm2,kmul(n3,n3))),kmadd(n1,kmul(nn,kmul(rm2,kmul(Ro221,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n2,kmul(nn,kmul(rm2,kmul(Ro222,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n3,kmul(nn,kmul(rm2,kmul(Ro223,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n1,kmul(nn,kmul(rm3,kmul(Ro331,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n2,kmul(nn,kmul(rm3,kmul(Ro332,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,kmadd(ltet3,ToReal(-2),n3)))),kmadd(rm1,kmul(Rojo11,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm2,kmul(Rojo12,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm3,kmul(Rojo13,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm1,kmul(Rojo21,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm3,kmul(Rojo23,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm1,kmul(Rojo31,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm2,kmul(Rojo32,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm3,kmul(Rojo33,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(n2,kmul(nn,kmul(Ro212,kmsub(rm1,ksub(n2,ltet2),kmul(ltet1,rm2)))),kmadd(n2,kmul(nn,kmul(Ro232,kmsub(rm3,ksub(n2,ltet2),kmul(ltet3,rm2)))),kmadd(n3,kmul(nn,kmul(Ro313,kmsub(rm1,ksub(n3,ltet3),kmul(ltet1,rm3)))),kmadd(n3,kmul(nn,kmul(Ro323,kmsub(rm2,ksub(n3,ltet3),kmul(ltet2,rm3)))),kmadd(ltet3,kmsub(n2,kmul(rm2,kmsub(n1,R4p1223,kmul(n3,R4p2323))),kmul(R4p1223,kmul(rm1,kmul(n2,n2)))),kmadd(ltet1,kmsub(n3,kmsub(n2,kmul(R4p1223,rm2),kmul(n1,kmul(R4p1313,rm3))),kmul(R4p1223,kmul(rm3,kmul(n2,n2)))),kmadd(n3,kmsub(rm1,kmsub(ltet2,kmul(n2,R4p1223),kmul(ltet3,kmul(n1,R4p1313))),kmadd(ltet1,kmadd(n2,kmul(R4p1323,rm3),kmul(n1,kmul(R4p1213,rm2))),kmul(nn,kmul(Ro123,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n1,kmsub(ltet2,kmul(n3,kmul(R4p1223,kmul(rm2,ToReal(-2)))),kmadd(ltet1,kmul(n2,kmul(R4p1213,rm3)),kmul(nn,kmul(Ro211,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2))))))),kmadd(nn,kmsub(n1,kmul(rm1,kmul(Ro111,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro213,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n2,kmul(rm1,kmul(Ro112,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro233,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n3,kmul(rm1,kmul(Ro113,kmadd(ltet1,ToReal(-2),n1))),kmul(n1,kmul(Ro311,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(nn,kmsub(n1,kmul(Ro121,kmsub(rm2,ksub(n1,ltet1),kmul(ltet2,rm1))),kmul(n2,kmul(Ro312,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(n1,kmul(nn,kmsub(Ro131,kmsub(rm3,ksub(n1,ltet1),kmul(ltet3,rm1)),kmul(Ro321,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3)))))),knmsub(n1,kmadd(ltet2,kmul(n3,kmul(R4p1323,rm3)),kmadd(n2,kmadd(rm1,kmadd(ltet3,R4p1213,kmul(ltet2,R4p1212)),kmul(ltet1,kmul(R4p1212,rm2))),kmul(nn,kmul(Ro231,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2))))))),kmadd(n2,kmsub(ltet2,kmul(n1,kmul(R4p1223,rm3)),kmul(nn,kmadd(Ro322,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3))),kmul(Ro122,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n2,kmsub(ltet3,kmul(n1,kmul(R4p1323,kmul(rm3,ToReal(2)))),kmul(nn,kmul(Ro132,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))),kmul(n3,knmsub(ltet2,kmul(n2,kmul(R4p2323,rm3)),knmsub(ltet3,kmul(R4p1323,kmadd(n1,rm2,kmul(n2,rm1))),kmsub(R4p1213,kmul(rm1,kmsub(ltet1,kmul(n2,ToReal(2)),kmul(ltet2,n1))),kmul(nn,kmul(Ro133,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))))))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi3iL = - kmadd(im2,kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),knmsub(ltet2,kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(n1,kmul(kmadd(n3,R4p1223,kmul(nn,Ro221)),ToReal(-2)),kmadd(n3,kmul(nn,kmul(Ro223,ToReal(-2))),kmul(nn,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(-2))))))))),kmadd(nn,kmsub(ltet3,kmul(n3,Ro233),kmul(Ro121,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro321),kmul(Ro222,kmul(n2,n2))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro322),kmul(Ro323,kmul(n3,n3))),kmadd(ltet3,kmsub(n3,kmul(nn,Ro323),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet3,kmadd(n2,kmul(n3,R4p2323),kmadd(n1,kmul(nn,Ro231),kmsub(n1,kmsub(n3,R4p1323,kmul(n2,R4p1223)),kmul(R4p1213,kmul(n1,n1))))),kmadd(ltet1,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo12,kmul(nn,nn)))))))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro232,kmul(n3,kadd(Ro322,Ro223)))),kmul(n1,kmul(nn,kmadd(n3,kadd(Ro321,Ro123),kmul(n2,kadd(Ro221,Ro122)))))))))))))))),kmadd(im1,kmadd(ltet3,kmul(R4p1223,kmul(n2,n2)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(n3,kmul(nn,kmsub(ltet3,Ro133,kmul(n1,Ro311))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro311),kmul(Ro111,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro312),kmul(Ro212,kmul(n2,n2))),kmadd(nn,kmul(Ro313,kmsub(ltet3,n3,kmul(n3,n3))),kmadd(ltet3,kmadd(n1,kmul(n2,R4p1213),kmadd(n1,kmul(n3,R4p1313),kmadd(n2,kmul(n3,R4p1323),kmsub(n1,kmul(nn,Ro131),kmul(Rojo31,kmul(nn,nn)))))),kmadd(ltet2,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo21,kmul(nn,nn)))))))),knmsub(n1,kmul(nn,kmadd(n2,kadd(Ro211,Ro112),kmul(n3,Ro113))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro132,kmul(n3,kadd(Ro312,Ro213)))),kmul(ltet1,kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(Rojo11,kmul(nn,nn),kmadd(n1,kmul(nn,kmul(Ro111,ToReal(-2))),kmadd(n2,kmul(nn,kmul(Ro112,ToReal(-2))),kmadd(n3,kmul(nn,kmul(Ro113,ToReal(-2))),kmul(n2,kmul(n3,kmul(R4p1213,ToReal(2))))))))))))))))))))))),kmul(im3,kmadd(n1,kmul(Rojo13,kmul(nn,nn)),kmadd(n2,kmul(Rojo23,kmul(nn,nn)),kmadd(n3,kmul(Rojo33,kmul(nn,nn)),knmsub(n3,kmul(nn,kmadd(n2,kadd(Ro332,Ro233),kmul(n1,Ro331))),kmadd(ltet1,kmadd(n1,kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,kadd(Ro131,Ro311)))),kmadd(n2,kmadd(n3,R4p1323,kmul(nn,kadd(Ro132,Ro312))),kmadd(R4p1223,kmul(n2,n2),kmul(nn,kmsub(n3,kadd(Ro133,Ro313),kmul(nn,Rojo13)))))),kmadd(ltet2,kmadd(n2,kmadd(n3,R4p2323,kmul(nn,kadd(Ro232,Ro322))),knmsub(R4p1213,kmul(n1,n1),kmadd(n1,kmadd(n3,R4p1323,kmsub(nn,kadd(Ro231,Ro321),kmul(n2,R4p1223))),kmul(nn,kmsub(n3,kadd(Ro233,Ro323),kmul(nn,Rojo23)))))),kmadd(ltet3,knmsub(R4p1313,kmul(n1,n1),knmsub(R4p2323,kmul(n2,n2),kmsub(n2,kmul(nn,kmul(Ro332,ToReal(2))),kmul(Rojo33,kmul(nn,nn))))),kmadd(nn,knmsub(Ro131,kmul(n1,n1),kmsub(Ro333,kmsub(ltet3,kmul(n3,ToReal(2)),kmul(n3,n3)),kmul(Ro232,kmul(n2,n2)))),kmul(n1,kmadd(n2,kmsub(ltet3,kmul(R4p1323,ToReal(-2)),kmul(nn,kadd(Ro231,Ro132))),kmul(nn,kmsub(ltet3,kmul(Ro331,ToReal(2)),kmul(n3,Ro133)))))))))))))))); - - CCTK_REAL_VEC Psi2rL = - kmadd(ltet1,kmul(n3,kmul(R4p1223,kmadd(im2,im2,kmul(rm2,rm2)))),kmadd(nn,kmul(kmadd(im1,im2,kmul(rm1,rm2)),kmul(Ro211,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro311,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro322,ksub(n2,ltet2))),kmadd(nn,kmul(Ro222,kmul(kmadd(im2,im2,kmul(rm2,rm2)),ksub(n2,ltet2))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro133,ksub(n3,ltet3))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro233,ksub(n3,ltet3))),kmadd(nn,kmul(Ro112,kmsub(n2,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro221,kmsub(n1,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro113,kmsub(n3,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro331,kmsub(n1,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro223,kmsub(n3,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro332,kmsub(n2,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(ltet3,kmul(n3,kmul(R4p1323,ToReal(-2))),kmul(Rojo12,kmul(nn,nn))),kmadd(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n1,R4p1213),kmul(Rojo13,kmul(nn,nn))),kmadd(kmadd(im2,im2,kmul(rm2,rm2)),kmsub(ltet3,kmul(n1,R4p1223),kmul(Rojo22,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet1,kmul(n1,kmul(R4p1213,ToReal(-2))),kmul(Rojo23,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet3,kmul(n1,R4p1323),kmul(Rojo32,kmul(nn,nn))),kmadd(nn,kmul(Ro121,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet2,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro131,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(ltet3,kmul(R4p1313,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(n3,kmsub(ltet1,kmul(R4p1313,kmadd(im1,im3,kmul(rm1,rm3))),kmul(ltet2,kmul(R4p1213,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro212,kmsub(n2,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet1,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro232,kmsub(n2,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet3,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet1,kmsub(n3,kmul(R4p1323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(n1,kmul(R4p1212,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet3,kmsub(n2,kmul(R4p1323,kmadd(im1,im3,kmul(rm1,rm3))),kmul(n3,kmul(R4p2323,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro313,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(nn,kmul(Ro323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p1323,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p2323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(n2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(n2,kmsub(ltet3,kmul(R4p2323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(ltet1,kmul(R4p1323,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(kmadd(im1,im1,kmul(rm1,rm1)),kmsub(nn,kmul(Ro111,ksub(n1,ltet1)),kmul(Rojo11,kmul(nn,nn))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(nn,kmul(Ro122,ksub(n2,ltet2)),kmul(Rojo21,kmul(nn,nn))),kmadd(kmadd(im3,im3,kmul(rm3,rm3)),kmsub(nn,kmul(Ro333,ksub(n3,ltet3)),kmul(Rojo33,kmul(nn,nn))),knmsub(R4p1223,kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmadd(ltet2,n3,kmul(ltet3,n2)),kmul(ltet2,kmul(n1,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro321,kmadd(im3,kmsub(im2,n1,kmul(im1,ltet2)),kmul(rm3,kmsub(n1,rm2,kmul(ltet2,rm1))))),kmadd(nn,kmul(Ro231,kmadd(im2,kmsub(im3,n1,kmul(im1,ltet3)),kmul(rm2,kmsub(n1,rm3,kmul(ltet3,rm1))))),kmadd(nn,kmul(Ro312,kmadd(im3,kmsub(im1,n2,kmul(im2,ltet1)),kmul(rm3,kmsub(n2,rm1,kmul(ltet1,rm2))))),kmadd(nn,kmul(Ro132,kmadd(im1,kmsub(im3,n2,kmul(im2,ltet3)),kmul(rm1,kmsub(n2,rm3,kmul(ltet3,rm2))))),kmadd(nn,kmul(Ro213,kmadd(im2,kmsub(im1,n3,kmul(im3,ltet1)),kmul(rm2,kmsub(n3,rm1,kmul(ltet1,rm3))))),kmadd(nn,kmul(Ro123,kmadd(im1,kmsub(im2,n3,kmul(im3,ltet2)),kmul(rm1,kmsub(n3,rm2,kmul(ltet2,rm3))))),kmadd(ltet1,kmsub(n2,kmsub(R4p1213,kmadd(im1,im3,kmul(rm1,rm3)),kmul(R4p1223,kmadd(im2,im3,kmul(rm2,rm3)))),kmul(n1,kmul(R4p1313,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(R4p1212,kmadd(ltet1,kmul(n2,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet2,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmadd(R4p1213,kmadd(ltet1,kmul(n3,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet3,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n2,kmul(R4p1223,ToReal(2))),kmul(Rojo31,kmul(nn,nn)))))))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi2iL = - kmadd(im3,kmadd(n2,kmul(nn,kmul(rm1,Ro312)),kmadd(n3,kmul(nn,kmul(rm1,Ro313)),kmadd(n2,kmul(nn,kmul(rm2,Ro322)),kmadd(n3,kmul(nn,kmul(rm2,Ro323)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro331)),kmadd(ltet3,kmul(nn,kmul(rm2,Ro332)),kmadd(rm1,kmul(Rojo13,kmul(nn,nn)),kmadd(rm2,kmul(Rojo23,kmul(nn,nn)),kmadd(rm1,kmsub(n1,kmul(nn,Ro311),kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(nn,Ro321),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet1,kmadd(n3,kmul(R4p1313,rm1),kmadd(n3,kmul(R4p1323,rm2),kmadd(nn,kmul(rm1,Ro311),kmadd(nn,kmul(rm2,Ro312),kmadd(rm1,kmsub(n2,R4p1213,kmul(nn,Ro113)),kmul(rm2,kmsub(n2,R4p1223,kmul(nn,Ro213)))))))),kmsub(ltet2,kmadd(nn,kmul(rm1,Ro321),kmadd(nn,kmul(rm2,Ro322),knmsub(n1,kmadd(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(rm1,kmsub(n3,R4p1323,kmul(nn,Ro123)),kmul(rm2,kmsub(n3,R4p2323,kmul(nn,Ro223))))))),kmadd(ltet3,kmadd(rm2,kmadd(n1,R4p1323,kmadd(nn,Ro233,kmul(n2,R4p2323))),kmul(rm1,kmadd(n1,R4p1313,kmadd(nn,Ro133,kmul(n2,R4p1323))))),kmul(nn,kmadd(rm2,kmadd(n1,Ro231,kmadd(n3,Ro233,kmul(n2,Ro232))),kmul(rm1,kmadd(n1,Ro131,kmadd(n3,Ro133,kmul(n2,Ro132))))))))))))))))))),kmadd(im2,kmadd(n3,kmul(nn,kmul(rm1,Ro213)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro231)),kmadd(n2,kmul(nn,kmul(rm3,Ro232)),kmadd(ltet3,kmul(nn,kmul(rm3,Ro233)),kmadd(n3,kmul(nn,kmul(rm3,Ro233)),kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(rm1,kmsub(n2,kmul(nn,Ro212),kmul(Rojo21,kmul(nn,nn))),kmadd(rm3,kmsub(n1,kmul(nn,Ro231),kmul(Rojo23,kmul(nn,nn))),kmadd(nn,kmsub(rm1,kmsub(n1,Ro211,kmul(n3,Ro123)),kmul(n3,kmul(rm3,Ro323))),knmsub(ltet3,kmadd(rm1,kmadd(n1,R4p1213,kmadd(nn,Ro132,kmul(n2,R4p1223))),kmul(nn,kmul(rm3,Ro332))),kmadd(n1,kmsub(rm3,kmsub(ltet3,R4p1323,kmul(nn,Ro321)),kmul(nn,kmul(rm1,Ro121))),kmadd(n2,kmsub(rm3,kmsub(ltet3,R4p2323,kmul(nn,Ro322)),kmul(nn,kmul(rm1,Ro122))),kmadd(ltet2,kmadd(nn,kmul(rm1,Ro221),kmadd(nn,kmul(rm3,Ro223),kmadd(rm1,kmsub(n3,R4p1223,kmadd(nn,Ro122,kmul(n1,R4p1212))),kmul(rm3,kmsub(n1,R4p1223,kmadd(nn,Ro322,kmul(n3,R4p2323))))))),kmul(ltet1,kmadd(nn,kmul(rm3,Ro213),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1323,rm3)),kmul(nn,kmsub(rm1,ksub(Ro211,Ro112),kmul(rm3,Ro312))))))))))))))))))))),kmul(im1,kmadd(rm2,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo31,kmul(nn,nn)),knmsub(kmul(nn,nn),kmadd(rm3,Rojo13,kmul(rm2,Rojo12)),knmsub(ltet1,kmadd(n3,kmul(R4p1213,rm2),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm2,Ro211),kmadd(nn,kmul(rm3,Ro311),kmadd(rm2,kmsub(n2,R4p1212,kmul(nn,Ro112)),kmul(rm3,kmsub(n2,R4p1213,kmul(nn,Ro113)))))))),kmadd(nn,kmadd(n1,kmul(rm2,ksub(Ro121,Ro211)),kmadd(n2,kmul(rm2,ksub(Ro122,Ro212)),kmadd(n3,kmul(rm2,ksub(Ro123,Ro213)),kmadd(n1,kmul(rm3,ksub(Ro131,Ro311)),kmadd(n2,kmul(rm3,ksub(Ro132,Ro312)),kmul(n3,kmul(rm3,ksub(Ro133,Ro313)))))))),kmadd(ltet3,kmadd(n2,kmul(R4p1223,rm2),kmadd(n2,kmul(R4p1323,rm3),kmadd(nn,kmul(rm2,Ro132),kmadd(nn,kmul(rm3,Ro133),kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro231)),kmul(rm3,kmsub(n1,R4p1313,kmul(nn,Ro331)))))))),kmul(ltet2,kmadd(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmsub(nn,kmadd(rm2,ksub(Ro122,Ro221),kmul(rm3,ksub(Ro123,Ro321))),kmul(n3,kmadd(R4p1223,rm2,kmul(R4p1323,rm3))))))))))))))); - - CCTK_REAL_VEC Psi1rL = - kmadd(kmadd(n2,kmul(R4p1212,rm2),kmadd(n3,kmul(R4p1213,rm2),kmadd(n2,kmul(R4p1213,rm3),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm1,Ro111),kmadd(nn,kmul(rm2,Ro121),kmul(nn,kmul(rm3,Ro131)))))))),kmul(ltet1,ltet1),kmadd(n1,kmul(R4p1313,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p1323,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p2323,kmul(rm2,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm1,kmul(Ro313,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm2,kmul(Ro323,kmul(ltet3,ltet3))),kmadd(n1,kmul(rm1,kmul(Rojo11,kmul(nn,nn))),kmadd(n1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(n1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(n2,kmul(rm1,kmul(Rojo21,kmul(nn,nn))),kmadd(n2,kmul(rm2,kmul(Rojo22,kmul(nn,nn))),kmadd(n2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(n3,kmul(rm1,kmul(Rojo31,kmul(nn,nn))),kmadd(n3,kmul(rm2,kmul(Rojo32,kmul(nn,nn))),kmadd(n3,kmul(rm3,kmul(Rojo33,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo32,kmul(nn,nn)))),kmadd(rm3,kmsub(nn,kmul(Ro333,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo33,kmul(nn,nn)))),kmadd(kmul(ltet2,ltet2),kmadd(nn,kmul(rm1,Ro212),kmadd(nn,kmul(rm2,Ro222),kmadd(nn,kmul(rm3,Ro232),kmadd(rm3,kmsub(n3,R4p2323,kmul(n1,R4p1223)),kmul(rm1,kmsub(n1,R4p1212,kmul(n3,R4p1223))))))),kmsub(ltet3,kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,ToReal(-2)))),knmsub(rm1,kmul(Rojo31,kmul(nn,nn)),kmadd(n2,kmul(nn,kmsub(rm2,kmul(Ro223,ToReal(-2)),kmul(rm3,kadd(Ro323,Ro233)))),kmul(nn,knmsub(n3,kmul(rm2,kadd(Ro323,Ro233)),kmsub(rm1,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(n1,kmadd(rm3,kadd(Ro313,Ro133),kmul(rm2,kadd(Ro213,Ro123)))))))))),kmadd(ltet2,kmadd(ltet1,kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(rm3,kmsub(n1,R4p1213,kmul(nn,Ro132)),knmsub(nn,kmul(rm1,kadd(Ro211,Ro112)),kmadd(rm3,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmul(nn,Ro231)),kmul(rm2,kmsub(n1,R4p1212,kmul(nn,kadd(Ro221,Ro122))))))))),kmsub(nn,kmadd(n3,kmul(rm1,Ro132),kmadd(n3,kmul(rm2,Ro232),kmadd(n3,kmul(rm1,Ro312),kmadd(n3,kmul(rm2,Ro322),kmadd(nn,kmul(rm1,Rojo21),kmadd(nn,kmul(rm2,Rojo22),kmadd(nn,kmul(rm3,Rojo23),kmadd(n3,kmul(rm3,kmul(Ro332,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro132,Ro312),kmul(rm1,kmul(Ro112,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro232,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))))),kmul(ltet3,kmadd(nn,kmul(rm1,Ro213),kmadd(nn,kmul(rm2,Ro223),kmadd(nn,kmul(rm3,Ro233),kmadd(nn,kmul(rm1,Ro312),kmadd(nn,kmul(rm2,Ro322),kmadd(nn,kmul(rm3,Ro332),kmadd(rm1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmsub(n1,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(R4p2323,kmadd(n2,rm3,kmul(n3,rm2)))))))))))))),kmul(ltet1,kmadd(ltet3,kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro123)),kmadd(rm2,kmsub(n3,R4p1323,kmul(nn,Ro321)),kmadd(rm1,kmsub(n3,R4p1313,kmul(nn,kadd(Ro311,Ro113))),kmadd(rm3,kmsub(n1,R4p1313,kmul(nn,kadd(Ro331,Ro133))),kmul(n2,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))))),kmul(nn,kmadd(n3,kmul(rm1,Ro131),kmadd(n3,kmul(rm2,Ro231),kmadd(n3,kmul(rm1,Ro311),kmadd(n3,kmul(rm2,Ro321),kmadd(nn,kmul(rm1,Rojo11),kmadd(nn,kmul(rm2,Rojo12),kmadd(nn,kmul(rm3,Rojo13),kmadd(n3,kmul(rm3,kmul(Ro331,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro131,Ro311),kmul(rm1,kmul(Ro111,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro231,Ro321),kmul(rm2,kmul(Ro221,ToReal(2)))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi1iL = - kmadd(im1,kmadd(nn,kmul(Ro111,kmul(ltet1,ltet1)),kmadd(n1,kmul(R4p1313,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro313,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(kmul(ltet2,ltet2),kmadd(n1,R4p1212,kmsub(nn,Ro212,kmul(n3,R4p1223))),kmsub(ltet3,kmsub(nn,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(Rojo31,kmul(nn,nn))),kmadd(ltet2,kmadd(ltet1,kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211)))),kmsub(nn,kmadd(n3,Ro132,kmadd(n2,kadd(Ro122,Ro212),kmadd(n3,Ro312,kmadd(nn,Rojo21,kmul(n1,kmul(Ro112,ToReal(2))))))),kmul(ltet3,kmadd(n2,R4p1223,kmadd(nn,Ro213,kmadd(nn,Ro312,kmsub(n1,kmul(R4p1213,ToReal(2)),kmul(n3,R4p1323)))))))),kmul(ltet1,kmadd(ltet3,kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),kmul(nn,kmadd(n3,Ro131,kmadd(n2,kadd(Ro121,Ro211),kmadd(n3,Ro311,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2)))))))))))))))))))),kmadd(im2,kmadd(kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,Ro121))),kmul(ltet1,ltet1),kmadd(nn,kmul(Ro222,kmul(ltet2,ltet2)),kmadd(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p2323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro323,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),kmadd(ltet3,kmul(nn,kmsub(n2,kmul(Ro223,ToReal(-2)),kmul(n3,Ro323))),knmsub(ltet3,kmadd(nn,kmadd(n1,kadd(Ro213,Ro123),kmul(n3,Ro233)),kmul(Rojo32,kmul(nn,nn))),kmsub(ltet2,kmsub(ltet3,kmadd(n1,R4p1223,kmsub(nn,kadd(Ro223,Ro322),kmul(n3,R4p2323))),kmul(nn,kmadd(n1,kadd(Ro122,Ro212),kmadd(n3,Ro232,kmadd(n3,Ro322,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(2))))))))),kmul(ltet1,kmadd(ltet2,kmsub(n1,R4p1212,kmadd(nn,kadd(Ro122,Ro221),kmul(n3,R4p1223))),kmadd(ltet3,kmadd(n1,R4p1213,kmadd(n3,R4p1323,kmsub(n2,kmul(R4p1223,ToReal(2)),kmul(nn,kadd(Ro321,Ro123))))),kmul(nn,kmadd(n1,kadd(Ro121,Ro211),kmadd(n3,Ro231,kmadd(n3,Ro321,kmadd(nn,Rojo12,kmul(n2,kmul(Ro221,ToReal(2)))))))))))))))))))))),kmul(im3,kmadd(kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,Ro131))),kmul(ltet1,ltet1),kmsub(kmul(ltet2,ltet2),kmadd(n3,R4p2323,kmsub(nn,Ro232,kmul(n1,R4p1223))),kmadd(ltet1,kmadd(ltet3,kmadd(n1,R4p1313,kmsub(n2,R4p1323,kmul(nn,kadd(Ro133,Ro331)))),kmadd(ltet2,kmadd(n1,R4p1213,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmadd(nn,kadd(Ro231,Ro132),kmul(n2,R4p1223)))),kmul(nn,kmadd(n1,kadd(Ro131,Ro311),kmadd(n2,kadd(Ro231,Ro321),kmadd(nn,Rojo13,kmul(n3,kmul(Ro331,ToReal(2))))))))),kmadd(nn,knmsub(nn,kmadd(n1,Rojo13,kmadd(n2,Rojo23,kmul(n3,Rojo33))),kmsub(ltet3,kmadd(n1,kadd(Ro133,Ro313),kmadd(n2,kadd(Ro233,Ro323),kmadd(nn,Rojo33,kmul(n3,kmul(Ro333,ToReal(2)))))),kmul(Ro333,kmul(ltet3,ltet3)))),kmul(ltet2,kmadd(ltet3,kmadd(n1,R4p1323,kmsub(n2,R4p2323,kmul(nn,kadd(Ro233,Ro332)))),kmul(nn,kmadd(n1,kadd(Ro132,Ro312),kmadd(n2,kadd(Ro232,Ro322),kmadd(nn,Rojo23,kmul(n3,kmul(Ro332,ToReal(2)))))))))))))))); - - CCTK_REAL_VEC Psi0rL = - kmadd(rm1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(rm1,kmul(rm2,kmul(Rojo21,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(ltet2,ltet2),kmul(rm1,rm1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rm1,rm1)),kmadd(R4p1212,kmul(kmul(ltet1,ltet1),kmul(rm2,rm2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rm2,rm2)),kmadd(R4p1313,kmul(kmul(ltet1,ltet1),kmul(rm3,rm3)),kmadd(R4p2323,kmul(kmul(ltet2,ltet2),kmul(rm3,rm3)),kmadd(kmadd(ltet1,kmul(ltet2,kmul(R4p1212,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1213,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1313,kmul(rm1,rm3))),kmadd(ltet1,kmul(ltet3,kmul(R4p1323,kmul(rm2,rm3))),kmadd(ltet2,kmul(ltet3,kmul(R4p2323,kmul(rm2,rm3))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(im3,im3))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(im3,im3))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(im3,im3))),kmul(R4p1223,kmul(rm1,kmul(rm3,kmul(ltet2,ltet2)))))))))))),ToReal(-2),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,kmul(kmul(rm2,rm2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(ltet3,ltet3),kmul(rm1,rm1),kmul(kmul(im3,im3),kmul(ltet1,ltet1))),kmadd(R4p2323,kmsub(kmul(ltet3,ltet3),kmul(rm2,rm2),kmul(kmul(im3,im3),kmul(ltet2,ltet2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rm3,rm3),kmul(kmul(im3,im3),kmul(nn,nn))),kmadd(kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro112))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro113))),kmadd(ltet2,kmul(nn,kmul(rm1,kmul(rm3,Ro123))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro132))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro133))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro211))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro213))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro223))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro231))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro233))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro311))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro312))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro322))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro331))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro332))),kmadd(R4p1213,kmul(rm2,kmul(rm3,kmul(ltet1,ltet1))),kmul(R4p1323,kmul(rm1,kmul(rm2,kmul(ltet3,ltet3)))))))))))))))))))),ToReal(2),kmadd(ltet1,kmul(nn,kmul(Ro111,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro121,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro131,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro212,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro222,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro232,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(kmul(rm3,rm3),ToReal(2)))),knmsub(kmul(im2,im2),kmadd(R4p1212,kmul(ltet1,ltet1),kmadd(R4p2323,kmul(ltet3,ltet3),kmadd(Rojo22,kmul(nn,nn),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,ToReal(-2))),kmadd(ltet1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(ltet2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(ltet3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(ltet2,kmadd(ltet1,kmul(R4p1213,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(ltet3,kmul(R4p1323,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(im3,im3),ToReal(-2))),kmadd(ltet3,kmul(R4p1223,kmul(rm1,kmul(rm2,ToReal(2)))),kmadd(ltet1,kmul(R4p1223,kmul(rm2,kmul(rm3,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm3,kmul(Ro321,ToReal(2)))),kmul(ltet3,kmul(R4p1213,kmul(kmul(rm1,rm1),ToReal(2)))))))))))),knmsub(kmul(im1,im1),kmadd(R4p1212,kmul(ltet2,ltet2),kmadd(R4p1313,kmul(ltet3,ltet3),kmadd(ltet2,kmul(kmadd(ltet3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(ltet1,kmul(Ro111,ToReal(2))))))))),kmsub(im1,kmul(im3,kmadd(R4p1223,kmul(kmul(ltet2,ltet2),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1213,kmsub(ltet3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(ltet2,kmul(kmsub(ltet3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(ltet3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(im2,kmadd(im3,kmadd(R4p1213,kmul(kmul(ltet1,ltet1),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(ltet3,R4p1323))),ToReal(2)),kmadd(ltet2,kmadd(ltet3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(ltet3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(im1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(ltet1,kmul(ToReal(-2),kmadd(ltet2,R4p1212,kmsub(ltet3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(ltet3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(ltet2,kmul(kmadd(ltet3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(ltet3,ltet3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi0iL = - kmadd(im1,kmadd(nn,kmadd(ltet1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(ltet3,ltet3),kmadd(kmul(ltet2,ltet2),kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(ltet2,knmsub(ltet1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(ltet3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2)))))))),kmul(ltet3,kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(ltet1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3)))))))))),kmadd(im3,kmadd(kmul(ltet2,ltet2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(nn,kmadd(ltet3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(ltet1,ltet1),kmadd(ltet1,knmsub(ltet3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(ltet2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2)))))))),kmul(ltet2,kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(ltet3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2)))))))))),kmul(im2,kmadd(kmadd(rm1,kadd(Rojo12,Rojo21),kmul(rm3,kadd(Rojo23,Rojo32))),kmul(nn,nn),kmadd(ToReal(2),kmadd(ltet3,kmul(nn,kmadd(rm1,kadd(Ro132,Ro231),kmul(rm3,Ro233))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(ltet1,ltet1),kmadd(kmadd(R4p1323,rm1,kmul(R4p2323,rm2)),kmul(ltet3,ltet3),kmadd(rm2,kmul(Rojo22,kmul(nn,nn)),kmadd(ltet1,kmadd(ltet2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(ltet3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))),kmul(ltet2,kmadd(ltet3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))),kmul(ltet3,kmul(nn,kmadd(rm3,kmul(Ro332,ToReal(2)),kmul(rm2,kmul(Ro232,ToReal(4))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(Psi0i[index],Psi0iL); - vec_store_nta_partial(Psi0r[index],Psi0rL); - vec_store_nta_partial(Psi1i[index],Psi1iL); - vec_store_nta_partial(Psi1r[index],Psi1rL); - vec_store_nta_partial(Psi2i[index],Psi2iL); - vec_store_nta_partial(Psi2r[index],Psi2rL); - vec_store_nta_partial(Psi3i[index],Psi3iL); - vec_store_nta_partial(Psi3r[index],Psi3rL); - vec_store_nta_partial(Psi4i[index],Psi4iL); - vec_store_nta_partial(Psi4r[index],Psi4rL); - } - LC_ENDLOOP3VEC(psis_calc_2nd); -} - -extern "C" void psis_calc_2nd(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering psis_calc_2nd_Body"); - } - - if (cctk_iteration % psis_calc_2nd_calc_every != psis_calc_2nd_calc_offset) - { - return; - } - - const char *const groups[] = { - "admbase::curv", - "admbase::metric", - "grid::coordinates", - "WeylScal4::Psi0i_group", - "WeylScal4::Psi0r_group", - "WeylScal4::Psi1i_group", - "WeylScal4::Psi1r_group", - "WeylScal4::Psi2i_group", - "WeylScal4::Psi2r_group", - "WeylScal4::Psi3i_group", - "WeylScal4::Psi3r_group", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "psis_calc_2nd", 13, groups); - - switch(fdOrder) - { - case 2: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1); - break; - - case 4: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1); - break; - - case 6: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1); - break; - - case 8: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_2nd", 1, 1, 1); - break; - } - - GenericFD_LoopOverInterior(cctkGH, psis_calc_2nd_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving psis_calc_2nd_Body"); - } -} diff --git a/src/psis_calc_4th.cc b/src/psis_calc_4th.cc deleted file mode 100644 index 5e349aa..0000000 --- a/src/psis_calc_4th.cc +++ /dev/null @@ -1,1426 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void psis_calc_4th_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); - return; -} - -static void psis_calc_4th_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(psis_calc_4th, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC gxxL = vec_load(gxx[index]); - CCTK_REAL_VEC gxyL = vec_load(gxy[index]); - CCTK_REAL_VEC gxzL = vec_load(gxz[index]); - CCTK_REAL_VEC gyyL = vec_load(gyy[index]); - CCTK_REAL_VEC gyzL = vec_load(gyz[index]); - CCTK_REAL_VEC gzzL = vec_load(gzz[index]); - CCTK_REAL_VEC kxxL = vec_load(kxx[index]); - CCTK_REAL_VEC kxyL = vec_load(kxy[index]); - CCTK_REAL_VEC kxzL = vec_load(kxz[index]); - CCTK_REAL_VEC kyyL = vec_load(kyy[index]); - CCTK_REAL_VEC kyzL = vec_load(kyz[index]); - CCTK_REAL_VEC kzzL = vec_load(kzz[index]); - CCTK_REAL_VEC xL = vec_load(x[index]); - CCTK_REAL_VEC yL = vec_load(y[index]); - CCTK_REAL_VEC zL = vec_load(z[index]); - - - CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; - - if (use_jacobian) - { - dJ111L = vec_load(dJ111[index]); - dJ112L = vec_load(dJ112[index]); - dJ113L = vec_load(dJ113[index]); - dJ122L = vec_load(dJ122[index]); - dJ123L = vec_load(dJ123[index]); - dJ133L = vec_load(dJ133[index]); - dJ211L = vec_load(dJ211[index]); - dJ212L = vec_load(dJ212[index]); - dJ213L = vec_load(dJ213[index]); - dJ222L = vec_load(dJ222[index]); - dJ223L = vec_load(dJ223[index]); - dJ233L = vec_load(dJ233[index]); - dJ311L = vec_load(dJ311[index]); - dJ312L = vec_load(dJ312[index]); - dJ313L = vec_load(dJ313[index]); - dJ322L = vec_load(dJ322[index]); - dJ323L = vec_load(dJ323[index]); - dJ333L = vec_load(dJ333[index]); - J11L = vec_load(J11[index]); - J12L = vec_load(J12[index]); - J13L = vec_load(J13[index]); - J21L = vec_load(J21[index]); - J22L = vec_load(J22[index]); - J23L = vec_load(J23[index]); - J31L = vec_load(J31[index]); - J32L = vec_load(J32[index]); - J33L = vec_load(J33[index]); - } - - /* Include user supplied include files */ - - /* Precompute derivatives */ - CCTK_REAL_VEC PDstandard4th1gxx; - CCTK_REAL_VEC PDstandard4th2gxx; - CCTK_REAL_VEC PDstandard4th3gxx; - CCTK_REAL_VEC PDstandard4th11gxx; - CCTK_REAL_VEC PDstandard4th22gxx; - CCTK_REAL_VEC PDstandard4th33gxx; - CCTK_REAL_VEC PDstandard4th12gxx; - CCTK_REAL_VEC PDstandard4th13gxx; - CCTK_REAL_VEC PDstandard4th23gxx; - CCTK_REAL_VEC PDstandard4th1gxy; - CCTK_REAL_VEC PDstandard4th2gxy; - CCTK_REAL_VEC PDstandard4th3gxy; - CCTK_REAL_VEC PDstandard4th11gxy; - CCTK_REAL_VEC PDstandard4th22gxy; - CCTK_REAL_VEC PDstandard4th33gxy; - CCTK_REAL_VEC PDstandard4th12gxy; - CCTK_REAL_VEC PDstandard4th13gxy; - CCTK_REAL_VEC PDstandard4th23gxy; - CCTK_REAL_VEC PDstandard4th1gxz; - CCTK_REAL_VEC PDstandard4th2gxz; - CCTK_REAL_VEC PDstandard4th3gxz; - CCTK_REAL_VEC PDstandard4th11gxz; - CCTK_REAL_VEC PDstandard4th22gxz; - CCTK_REAL_VEC PDstandard4th33gxz; - CCTK_REAL_VEC PDstandard4th12gxz; - CCTK_REAL_VEC PDstandard4th13gxz; - CCTK_REAL_VEC PDstandard4th23gxz; - CCTK_REAL_VEC PDstandard4th1gyy; - CCTK_REAL_VEC PDstandard4th2gyy; - CCTK_REAL_VEC PDstandard4th3gyy; - CCTK_REAL_VEC PDstandard4th11gyy; - CCTK_REAL_VEC PDstandard4th22gyy; - CCTK_REAL_VEC PDstandard4th33gyy; - CCTK_REAL_VEC PDstandard4th12gyy; - CCTK_REAL_VEC PDstandard4th13gyy; - CCTK_REAL_VEC PDstandard4th23gyy; - CCTK_REAL_VEC PDstandard4th1gyz; - CCTK_REAL_VEC PDstandard4th2gyz; - CCTK_REAL_VEC PDstandard4th3gyz; - CCTK_REAL_VEC PDstandard4th11gyz; - CCTK_REAL_VEC PDstandard4th22gyz; - CCTK_REAL_VEC PDstandard4th33gyz; - CCTK_REAL_VEC PDstandard4th12gyz; - CCTK_REAL_VEC PDstandard4th13gyz; - CCTK_REAL_VEC PDstandard4th23gyz; - CCTK_REAL_VEC PDstandard4th1gzz; - CCTK_REAL_VEC PDstandard4th2gzz; - CCTK_REAL_VEC PDstandard4th3gzz; - CCTK_REAL_VEC PDstandard4th11gzz; - CCTK_REAL_VEC PDstandard4th22gzz; - CCTK_REAL_VEC PDstandard4th33gzz; - CCTK_REAL_VEC PDstandard4th12gzz; - CCTK_REAL_VEC PDstandard4th13gzz; - CCTK_REAL_VEC PDstandard4th23gzz; - CCTK_REAL_VEC PDstandard4th1kxx; - CCTK_REAL_VEC PDstandard4th2kxx; - CCTK_REAL_VEC PDstandard4th3kxx; - CCTK_REAL_VEC PDstandard4th1kxy; - CCTK_REAL_VEC PDstandard4th2kxy; - CCTK_REAL_VEC PDstandard4th3kxy; - CCTK_REAL_VEC PDstandard4th1kxz; - CCTK_REAL_VEC PDstandard4th2kxz; - CCTK_REAL_VEC PDstandard4th3kxz; - CCTK_REAL_VEC PDstandard4th1kyy; - CCTK_REAL_VEC PDstandard4th2kyy; - CCTK_REAL_VEC PDstandard4th3kyy; - CCTK_REAL_VEC PDstandard4th1kyz; - CCTK_REAL_VEC PDstandard4th2kyz; - CCTK_REAL_VEC PDstandard4th3kyz; - CCTK_REAL_VEC PDstandard4th1kzz; - CCTK_REAL_VEC PDstandard4th2kzz; - CCTK_REAL_VEC PDstandard4th3kzz; - - switch(fdOrder) - { - case 2: - PDstandard4th1gxx = PDstandard4th1(&gxx[index]); - PDstandard4th2gxx = PDstandard4th2(&gxx[index]); - PDstandard4th3gxx = PDstandard4th3(&gxx[index]); - PDstandard4th11gxx = PDstandard4th11(&gxx[index]); - PDstandard4th22gxx = PDstandard4th22(&gxx[index]); - PDstandard4th33gxx = PDstandard4th33(&gxx[index]); - PDstandard4th12gxx = PDstandard4th12(&gxx[index]); - PDstandard4th13gxx = PDstandard4th13(&gxx[index]); - PDstandard4th23gxx = PDstandard4th23(&gxx[index]); - PDstandard4th1gxy = PDstandard4th1(&gxy[index]); - PDstandard4th2gxy = PDstandard4th2(&gxy[index]); - PDstandard4th3gxy = PDstandard4th3(&gxy[index]); - PDstandard4th11gxy = PDstandard4th11(&gxy[index]); - PDstandard4th22gxy = PDstandard4th22(&gxy[index]); - PDstandard4th33gxy = PDstandard4th33(&gxy[index]); - PDstandard4th12gxy = PDstandard4th12(&gxy[index]); - PDstandard4th13gxy = PDstandard4th13(&gxy[index]); - PDstandard4th23gxy = PDstandard4th23(&gxy[index]); - PDstandard4th1gxz = PDstandard4th1(&gxz[index]); - PDstandard4th2gxz = PDstandard4th2(&gxz[index]); - PDstandard4th3gxz = PDstandard4th3(&gxz[index]); - PDstandard4th11gxz = PDstandard4th11(&gxz[index]); - PDstandard4th22gxz = PDstandard4th22(&gxz[index]); - PDstandard4th33gxz = PDstandard4th33(&gxz[index]); - PDstandard4th12gxz = PDstandard4th12(&gxz[index]); - PDstandard4th13gxz = PDstandard4th13(&gxz[index]); - PDstandard4th23gxz = PDstandard4th23(&gxz[index]); - PDstandard4th1gyy = PDstandard4th1(&gyy[index]); - PDstandard4th2gyy = PDstandard4th2(&gyy[index]); - PDstandard4th3gyy = PDstandard4th3(&gyy[index]); - PDstandard4th11gyy = PDstandard4th11(&gyy[index]); - PDstandard4th22gyy = PDstandard4th22(&gyy[index]); - PDstandard4th33gyy = PDstandard4th33(&gyy[index]); - PDstandard4th12gyy = PDstandard4th12(&gyy[index]); - PDstandard4th13gyy = PDstandard4th13(&gyy[index]); - PDstandard4th23gyy = PDstandard4th23(&gyy[index]); - PDstandard4th1gyz = PDstandard4th1(&gyz[index]); - PDstandard4th2gyz = PDstandard4th2(&gyz[index]); - PDstandard4th3gyz = PDstandard4th3(&gyz[index]); - PDstandard4th11gyz = PDstandard4th11(&gyz[index]); - PDstandard4th22gyz = PDstandard4th22(&gyz[index]); - PDstandard4th33gyz = PDstandard4th33(&gyz[index]); - PDstandard4th12gyz = PDstandard4th12(&gyz[index]); - PDstandard4th13gyz = PDstandard4th13(&gyz[index]); - PDstandard4th23gyz = PDstandard4th23(&gyz[index]); - PDstandard4th1gzz = PDstandard4th1(&gzz[index]); - PDstandard4th2gzz = PDstandard4th2(&gzz[index]); - PDstandard4th3gzz = PDstandard4th3(&gzz[index]); - PDstandard4th11gzz = PDstandard4th11(&gzz[index]); - PDstandard4th22gzz = PDstandard4th22(&gzz[index]); - PDstandard4th33gzz = PDstandard4th33(&gzz[index]); - PDstandard4th12gzz = PDstandard4th12(&gzz[index]); - PDstandard4th13gzz = PDstandard4th13(&gzz[index]); - PDstandard4th23gzz = PDstandard4th23(&gzz[index]); - PDstandard4th1kxx = PDstandard4th1(&kxx[index]); - PDstandard4th2kxx = PDstandard4th2(&kxx[index]); - PDstandard4th3kxx = PDstandard4th3(&kxx[index]); - PDstandard4th1kxy = PDstandard4th1(&kxy[index]); - PDstandard4th2kxy = PDstandard4th2(&kxy[index]); - PDstandard4th3kxy = PDstandard4th3(&kxy[index]); - PDstandard4th1kxz = PDstandard4th1(&kxz[index]); - PDstandard4th2kxz = PDstandard4th2(&kxz[index]); - PDstandard4th3kxz = PDstandard4th3(&kxz[index]); - PDstandard4th1kyy = PDstandard4th1(&kyy[index]); - PDstandard4th2kyy = PDstandard4th2(&kyy[index]); - PDstandard4th3kyy = PDstandard4th3(&kyy[index]); - PDstandard4th1kyz = PDstandard4th1(&kyz[index]); - PDstandard4th2kyz = PDstandard4th2(&kyz[index]); - PDstandard4th3kyz = PDstandard4th3(&kyz[index]); - PDstandard4th1kzz = PDstandard4th1(&kzz[index]); - PDstandard4th2kzz = PDstandard4th2(&kzz[index]); - PDstandard4th3kzz = PDstandard4th3(&kzz[index]); - break; - - case 4: - PDstandard4th1gxx = PDstandard4th1(&gxx[index]); - PDstandard4th2gxx = PDstandard4th2(&gxx[index]); - PDstandard4th3gxx = PDstandard4th3(&gxx[index]); - PDstandard4th11gxx = PDstandard4th11(&gxx[index]); - PDstandard4th22gxx = PDstandard4th22(&gxx[index]); - PDstandard4th33gxx = PDstandard4th33(&gxx[index]); - PDstandard4th12gxx = PDstandard4th12(&gxx[index]); - PDstandard4th13gxx = PDstandard4th13(&gxx[index]); - PDstandard4th23gxx = PDstandard4th23(&gxx[index]); - PDstandard4th1gxy = PDstandard4th1(&gxy[index]); - PDstandard4th2gxy = PDstandard4th2(&gxy[index]); - PDstandard4th3gxy = PDstandard4th3(&gxy[index]); - PDstandard4th11gxy = PDstandard4th11(&gxy[index]); - PDstandard4th22gxy = PDstandard4th22(&gxy[index]); - PDstandard4th33gxy = PDstandard4th33(&gxy[index]); - PDstandard4th12gxy = PDstandard4th12(&gxy[index]); - PDstandard4th13gxy = PDstandard4th13(&gxy[index]); - PDstandard4th23gxy = PDstandard4th23(&gxy[index]); - PDstandard4th1gxz = PDstandard4th1(&gxz[index]); - PDstandard4th2gxz = PDstandard4th2(&gxz[index]); - PDstandard4th3gxz = PDstandard4th3(&gxz[index]); - PDstandard4th11gxz = PDstandard4th11(&gxz[index]); - PDstandard4th22gxz = PDstandard4th22(&gxz[index]); - PDstandard4th33gxz = PDstandard4th33(&gxz[index]); - PDstandard4th12gxz = PDstandard4th12(&gxz[index]); - PDstandard4th13gxz = PDstandard4th13(&gxz[index]); - PDstandard4th23gxz = PDstandard4th23(&gxz[index]); - PDstandard4th1gyy = PDstandard4th1(&gyy[index]); - PDstandard4th2gyy = PDstandard4th2(&gyy[index]); - PDstandard4th3gyy = PDstandard4th3(&gyy[index]); - PDstandard4th11gyy = PDstandard4th11(&gyy[index]); - PDstandard4th22gyy = PDstandard4th22(&gyy[index]); - PDstandard4th33gyy = PDstandard4th33(&gyy[index]); - PDstandard4th12gyy = PDstandard4th12(&gyy[index]); - PDstandard4th13gyy = PDstandard4th13(&gyy[index]); - PDstandard4th23gyy = PDstandard4th23(&gyy[index]); - PDstandard4th1gyz = PDstandard4th1(&gyz[index]); - PDstandard4th2gyz = PDstandard4th2(&gyz[index]); - PDstandard4th3gyz = PDstandard4th3(&gyz[index]); - PDstandard4th11gyz = PDstandard4th11(&gyz[index]); - PDstandard4th22gyz = PDstandard4th22(&gyz[index]); - PDstandard4th33gyz = PDstandard4th33(&gyz[index]); - PDstandard4th12gyz = PDstandard4th12(&gyz[index]); - PDstandard4th13gyz = PDstandard4th13(&gyz[index]); - PDstandard4th23gyz = PDstandard4th23(&gyz[index]); - PDstandard4th1gzz = PDstandard4th1(&gzz[index]); - PDstandard4th2gzz = PDstandard4th2(&gzz[index]); - PDstandard4th3gzz = PDstandard4th3(&gzz[index]); - PDstandard4th11gzz = PDstandard4th11(&gzz[index]); - PDstandard4th22gzz = PDstandard4th22(&gzz[index]); - PDstandard4th33gzz = PDstandard4th33(&gzz[index]); - PDstandard4th12gzz = PDstandard4th12(&gzz[index]); - PDstandard4th13gzz = PDstandard4th13(&gzz[index]); - PDstandard4th23gzz = PDstandard4th23(&gzz[index]); - PDstandard4th1kxx = PDstandard4th1(&kxx[index]); - PDstandard4th2kxx = PDstandard4th2(&kxx[index]); - PDstandard4th3kxx = PDstandard4th3(&kxx[index]); - PDstandard4th1kxy = PDstandard4th1(&kxy[index]); - PDstandard4th2kxy = PDstandard4th2(&kxy[index]); - PDstandard4th3kxy = PDstandard4th3(&kxy[index]); - PDstandard4th1kxz = PDstandard4th1(&kxz[index]); - PDstandard4th2kxz = PDstandard4th2(&kxz[index]); - PDstandard4th3kxz = PDstandard4th3(&kxz[index]); - PDstandard4th1kyy = PDstandard4th1(&kyy[index]); - PDstandard4th2kyy = PDstandard4th2(&kyy[index]); - PDstandard4th3kyy = PDstandard4th3(&kyy[index]); - PDstandard4th1kyz = PDstandard4th1(&kyz[index]); - PDstandard4th2kyz = PDstandard4th2(&kyz[index]); - PDstandard4th3kyz = PDstandard4th3(&kyz[index]); - PDstandard4th1kzz = PDstandard4th1(&kzz[index]); - PDstandard4th2kzz = PDstandard4th2(&kzz[index]); - PDstandard4th3kzz = PDstandard4th3(&kzz[index]); - break; - - case 6: - PDstandard4th1gxx = PDstandard4th1(&gxx[index]); - PDstandard4th2gxx = PDstandard4th2(&gxx[index]); - PDstandard4th3gxx = PDstandard4th3(&gxx[index]); - PDstandard4th11gxx = PDstandard4th11(&gxx[index]); - PDstandard4th22gxx = PDstandard4th22(&gxx[index]); - PDstandard4th33gxx = PDstandard4th33(&gxx[index]); - PDstandard4th12gxx = PDstandard4th12(&gxx[index]); - PDstandard4th13gxx = PDstandard4th13(&gxx[index]); - PDstandard4th23gxx = PDstandard4th23(&gxx[index]); - PDstandard4th1gxy = PDstandard4th1(&gxy[index]); - PDstandard4th2gxy = PDstandard4th2(&gxy[index]); - PDstandard4th3gxy = PDstandard4th3(&gxy[index]); - PDstandard4th11gxy = PDstandard4th11(&gxy[index]); - PDstandard4th22gxy = PDstandard4th22(&gxy[index]); - PDstandard4th33gxy = PDstandard4th33(&gxy[index]); - PDstandard4th12gxy = PDstandard4th12(&gxy[index]); - PDstandard4th13gxy = PDstandard4th13(&gxy[index]); - PDstandard4th23gxy = PDstandard4th23(&gxy[index]); - PDstandard4th1gxz = PDstandard4th1(&gxz[index]); - PDstandard4th2gxz = PDstandard4th2(&gxz[index]); - PDstandard4th3gxz = PDstandard4th3(&gxz[index]); - PDstandard4th11gxz = PDstandard4th11(&gxz[index]); - PDstandard4th22gxz = PDstandard4th22(&gxz[index]); - PDstandard4th33gxz = PDstandard4th33(&gxz[index]); - PDstandard4th12gxz = PDstandard4th12(&gxz[index]); - PDstandard4th13gxz = PDstandard4th13(&gxz[index]); - PDstandard4th23gxz = PDstandard4th23(&gxz[index]); - PDstandard4th1gyy = PDstandard4th1(&gyy[index]); - PDstandard4th2gyy = PDstandard4th2(&gyy[index]); - PDstandard4th3gyy = PDstandard4th3(&gyy[index]); - PDstandard4th11gyy = PDstandard4th11(&gyy[index]); - PDstandard4th22gyy = PDstandard4th22(&gyy[index]); - PDstandard4th33gyy = PDstandard4th33(&gyy[index]); - PDstandard4th12gyy = PDstandard4th12(&gyy[index]); - PDstandard4th13gyy = PDstandard4th13(&gyy[index]); - PDstandard4th23gyy = PDstandard4th23(&gyy[index]); - PDstandard4th1gyz = PDstandard4th1(&gyz[index]); - PDstandard4th2gyz = PDstandard4th2(&gyz[index]); - PDstandard4th3gyz = PDstandard4th3(&gyz[index]); - PDstandard4th11gyz = PDstandard4th11(&gyz[index]); - PDstandard4th22gyz = PDstandard4th22(&gyz[index]); - PDstandard4th33gyz = PDstandard4th33(&gyz[index]); - PDstandard4th12gyz = PDstandard4th12(&gyz[index]); - PDstandard4th13gyz = PDstandard4th13(&gyz[index]); - PDstandard4th23gyz = PDstandard4th23(&gyz[index]); - PDstandard4th1gzz = PDstandard4th1(&gzz[index]); - PDstandard4th2gzz = PDstandard4th2(&gzz[index]); - PDstandard4th3gzz = PDstandard4th3(&gzz[index]); - PDstandard4th11gzz = PDstandard4th11(&gzz[index]); - PDstandard4th22gzz = PDstandard4th22(&gzz[index]); - PDstandard4th33gzz = PDstandard4th33(&gzz[index]); - PDstandard4th12gzz = PDstandard4th12(&gzz[index]); - PDstandard4th13gzz = PDstandard4th13(&gzz[index]); - PDstandard4th23gzz = PDstandard4th23(&gzz[index]); - PDstandard4th1kxx = PDstandard4th1(&kxx[index]); - PDstandard4th2kxx = PDstandard4th2(&kxx[index]); - PDstandard4th3kxx = PDstandard4th3(&kxx[index]); - PDstandard4th1kxy = PDstandard4th1(&kxy[index]); - PDstandard4th2kxy = PDstandard4th2(&kxy[index]); - PDstandard4th3kxy = PDstandard4th3(&kxy[index]); - PDstandard4th1kxz = PDstandard4th1(&kxz[index]); - PDstandard4th2kxz = PDstandard4th2(&kxz[index]); - PDstandard4th3kxz = PDstandard4th3(&kxz[index]); - PDstandard4th1kyy = PDstandard4th1(&kyy[index]); - PDstandard4th2kyy = PDstandard4th2(&kyy[index]); - PDstandard4th3kyy = PDstandard4th3(&kyy[index]); - PDstandard4th1kyz = PDstandard4th1(&kyz[index]); - PDstandard4th2kyz = PDstandard4th2(&kyz[index]); - PDstandard4th3kyz = PDstandard4th3(&kyz[index]); - PDstandard4th1kzz = PDstandard4th1(&kzz[index]); - PDstandard4th2kzz = PDstandard4th2(&kzz[index]); - PDstandard4th3kzz = PDstandard4th3(&kzz[index]); - break; - - case 8: - PDstandard4th1gxx = PDstandard4th1(&gxx[index]); - PDstandard4th2gxx = PDstandard4th2(&gxx[index]); - PDstandard4th3gxx = PDstandard4th3(&gxx[index]); - PDstandard4th11gxx = PDstandard4th11(&gxx[index]); - PDstandard4th22gxx = PDstandard4th22(&gxx[index]); - PDstandard4th33gxx = PDstandard4th33(&gxx[index]); - PDstandard4th12gxx = PDstandard4th12(&gxx[index]); - PDstandard4th13gxx = PDstandard4th13(&gxx[index]); - PDstandard4th23gxx = PDstandard4th23(&gxx[index]); - PDstandard4th1gxy = PDstandard4th1(&gxy[index]); - PDstandard4th2gxy = PDstandard4th2(&gxy[index]); - PDstandard4th3gxy = PDstandard4th3(&gxy[index]); - PDstandard4th11gxy = PDstandard4th11(&gxy[index]); - PDstandard4th22gxy = PDstandard4th22(&gxy[index]); - PDstandard4th33gxy = PDstandard4th33(&gxy[index]); - PDstandard4th12gxy = PDstandard4th12(&gxy[index]); - PDstandard4th13gxy = PDstandard4th13(&gxy[index]); - PDstandard4th23gxy = PDstandard4th23(&gxy[index]); - PDstandard4th1gxz = PDstandard4th1(&gxz[index]); - PDstandard4th2gxz = PDstandard4th2(&gxz[index]); - PDstandard4th3gxz = PDstandard4th3(&gxz[index]); - PDstandard4th11gxz = PDstandard4th11(&gxz[index]); - PDstandard4th22gxz = PDstandard4th22(&gxz[index]); - PDstandard4th33gxz = PDstandard4th33(&gxz[index]); - PDstandard4th12gxz = PDstandard4th12(&gxz[index]); - PDstandard4th13gxz = PDstandard4th13(&gxz[index]); - PDstandard4th23gxz = PDstandard4th23(&gxz[index]); - PDstandard4th1gyy = PDstandard4th1(&gyy[index]); - PDstandard4th2gyy = PDstandard4th2(&gyy[index]); - PDstandard4th3gyy = PDstandard4th3(&gyy[index]); - PDstandard4th11gyy = PDstandard4th11(&gyy[index]); - PDstandard4th22gyy = PDstandard4th22(&gyy[index]); - PDstandard4th33gyy = PDstandard4th33(&gyy[index]); - PDstandard4th12gyy = PDstandard4th12(&gyy[index]); - PDstandard4th13gyy = PDstandard4th13(&gyy[index]); - PDstandard4th23gyy = PDstandard4th23(&gyy[index]); - PDstandard4th1gyz = PDstandard4th1(&gyz[index]); - PDstandard4th2gyz = PDstandard4th2(&gyz[index]); - PDstandard4th3gyz = PDstandard4th3(&gyz[index]); - PDstandard4th11gyz = PDstandard4th11(&gyz[index]); - PDstandard4th22gyz = PDstandard4th22(&gyz[index]); - PDstandard4th33gyz = PDstandard4th33(&gyz[index]); - PDstandard4th12gyz = PDstandard4th12(&gyz[index]); - PDstandard4th13gyz = PDstandard4th13(&gyz[index]); - PDstandard4th23gyz = PDstandard4th23(&gyz[index]); - PDstandard4th1gzz = PDstandard4th1(&gzz[index]); - PDstandard4th2gzz = PDstandard4th2(&gzz[index]); - PDstandard4th3gzz = PDstandard4th3(&gzz[index]); - PDstandard4th11gzz = PDstandard4th11(&gzz[index]); - PDstandard4th22gzz = PDstandard4th22(&gzz[index]); - PDstandard4th33gzz = PDstandard4th33(&gzz[index]); - PDstandard4th12gzz = PDstandard4th12(&gzz[index]); - PDstandard4th13gzz = PDstandard4th13(&gzz[index]); - PDstandard4th23gzz = PDstandard4th23(&gzz[index]); - PDstandard4th1kxx = PDstandard4th1(&kxx[index]); - PDstandard4th2kxx = PDstandard4th2(&kxx[index]); - PDstandard4th3kxx = PDstandard4th3(&kxx[index]); - PDstandard4th1kxy = PDstandard4th1(&kxy[index]); - PDstandard4th2kxy = PDstandard4th2(&kxy[index]); - PDstandard4th3kxy = PDstandard4th3(&kxy[index]); - PDstandard4th1kxz = PDstandard4th1(&kxz[index]); - PDstandard4th2kxz = PDstandard4th2(&kxz[index]); - PDstandard4th3kxz = PDstandard4th3(&kxz[index]); - PDstandard4th1kyy = PDstandard4th1(&kyy[index]); - PDstandard4th2kyy = PDstandard4th2(&kyy[index]); - PDstandard4th3kyy = PDstandard4th3(&kyy[index]); - PDstandard4th1kyz = PDstandard4th1(&kyz[index]); - PDstandard4th2kyz = PDstandard4th2(&kyz[index]); - PDstandard4th3kyz = PDstandard4th3(&kyz[index]); - PDstandard4th1kzz = PDstandard4th1(&kzz[index]); - PDstandard4th2kzz = PDstandard4th2(&kzz[index]); - PDstandard4th3kzz = PDstandard4th3(&kzz[index]); - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC JacPDstandard4th11gyy; - CCTK_REAL_VEC JacPDstandard4th11gyz; - CCTK_REAL_VEC JacPDstandard4th11gzz; - CCTK_REAL_VEC JacPDstandard4th12gxy; - CCTK_REAL_VEC JacPDstandard4th12gxz; - CCTK_REAL_VEC JacPDstandard4th12gyz; - CCTK_REAL_VEC JacPDstandard4th12gzz; - CCTK_REAL_VEC JacPDstandard4th13gxz; - CCTK_REAL_VEC JacPDstandard4th1gxx; - CCTK_REAL_VEC JacPDstandard4th1gxy; - CCTK_REAL_VEC JacPDstandard4th1gxz; - CCTK_REAL_VEC JacPDstandard4th1gyy; - CCTK_REAL_VEC JacPDstandard4th1gyz; - CCTK_REAL_VEC JacPDstandard4th1gzz; - CCTK_REAL_VEC JacPDstandard4th1kxy; - CCTK_REAL_VEC JacPDstandard4th1kxz; - CCTK_REAL_VEC JacPDstandard4th1kyy; - CCTK_REAL_VEC JacPDstandard4th1kyz; - CCTK_REAL_VEC JacPDstandard4th1kzz; - CCTK_REAL_VEC JacPDstandard4th21gxy; - CCTK_REAL_VEC JacPDstandard4th22gxx; - CCTK_REAL_VEC JacPDstandard4th22gxz; - CCTK_REAL_VEC JacPDstandard4th22gzz; - CCTK_REAL_VEC JacPDstandard4th23gxx; - CCTK_REAL_VEC JacPDstandard4th23gxy; - CCTK_REAL_VEC JacPDstandard4th23gxz; - CCTK_REAL_VEC JacPDstandard4th23gyz; - CCTK_REAL_VEC JacPDstandard4th2gxx; - CCTK_REAL_VEC JacPDstandard4th2gxy; - CCTK_REAL_VEC JacPDstandard4th2gxz; - CCTK_REAL_VEC JacPDstandard4th2gyy; - CCTK_REAL_VEC JacPDstandard4th2gyz; - CCTK_REAL_VEC JacPDstandard4th2gzz; - CCTK_REAL_VEC JacPDstandard4th2kxx; - CCTK_REAL_VEC JacPDstandard4th2kxy; - CCTK_REAL_VEC JacPDstandard4th2kxz; - CCTK_REAL_VEC JacPDstandard4th2kyz; - CCTK_REAL_VEC JacPDstandard4th2kzz; - CCTK_REAL_VEC JacPDstandard4th31gxy; - CCTK_REAL_VEC JacPDstandard4th31gxz; - CCTK_REAL_VEC JacPDstandard4th31gyy; - CCTK_REAL_VEC JacPDstandard4th31gyz; - CCTK_REAL_VEC JacPDstandard4th32gyz; - CCTK_REAL_VEC JacPDstandard4th33gxx; - CCTK_REAL_VEC JacPDstandard4th33gxy; - CCTK_REAL_VEC JacPDstandard4th33gyy; - CCTK_REAL_VEC JacPDstandard4th3gxx; - CCTK_REAL_VEC JacPDstandard4th3gxy; - CCTK_REAL_VEC JacPDstandard4th3gxz; - CCTK_REAL_VEC JacPDstandard4th3gyy; - CCTK_REAL_VEC JacPDstandard4th3gyz; - CCTK_REAL_VEC JacPDstandard4th3gzz; - CCTK_REAL_VEC JacPDstandard4th3kxx; - CCTK_REAL_VEC JacPDstandard4th3kxy; - CCTK_REAL_VEC JacPDstandard4th3kxz; - CCTK_REAL_VEC JacPDstandard4th3kyy; - CCTK_REAL_VEC JacPDstandard4th3kyz; - - if (use_jacobian) - { - JacPDstandard4th1gxx = - kmadd(J11L,PDstandard4th1gxx,kmadd(J21L,PDstandard4th2gxx,kmul(J31L,PDstandard4th3gxx))); - - JacPDstandard4th1gxy = - kmadd(J11L,PDstandard4th1gxy,kmadd(J21L,PDstandard4th2gxy,kmul(J31L,PDstandard4th3gxy))); - - JacPDstandard4th1gxz = - kmadd(J11L,PDstandard4th1gxz,kmadd(J21L,PDstandard4th2gxz,kmul(J31L,PDstandard4th3gxz))); - - JacPDstandard4th1gyy = - kmadd(J11L,PDstandard4th1gyy,kmadd(J21L,PDstandard4th2gyy,kmul(J31L,PDstandard4th3gyy))); - - JacPDstandard4th1gyz = - kmadd(J11L,PDstandard4th1gyz,kmadd(J21L,PDstandard4th2gyz,kmul(J31L,PDstandard4th3gyz))); - - JacPDstandard4th1gzz = - kmadd(J11L,PDstandard4th1gzz,kmadd(J21L,PDstandard4th2gzz,kmul(J31L,PDstandard4th3gzz))); - - JacPDstandard4th1kxy = - kmadd(J11L,PDstandard4th1kxy,kmadd(J21L,PDstandard4th2kxy,kmul(J31L,PDstandard4th3kxy))); - - JacPDstandard4th1kxz = - kmadd(J11L,PDstandard4th1kxz,kmadd(J21L,PDstandard4th2kxz,kmul(J31L,PDstandard4th3kxz))); - - JacPDstandard4th1kyy = - kmadd(J11L,PDstandard4th1kyy,kmadd(J21L,PDstandard4th2kyy,kmul(J31L,PDstandard4th3kyy))); - - JacPDstandard4th1kyz = - kmadd(J11L,PDstandard4th1kyz,kmadd(J21L,PDstandard4th2kyz,kmul(J31L,PDstandard4th3kyz))); - - JacPDstandard4th1kzz = - kmadd(J11L,PDstandard4th1kzz,kmadd(J21L,PDstandard4th2kzz,kmul(J31L,PDstandard4th3kzz))); - - JacPDstandard4th2gxx = - kmadd(J12L,PDstandard4th1gxx,kmadd(J22L,PDstandard4th2gxx,kmul(J32L,PDstandard4th3gxx))); - - JacPDstandard4th2gxy = - kmadd(J12L,PDstandard4th1gxy,kmadd(J22L,PDstandard4th2gxy,kmul(J32L,PDstandard4th3gxy))); - - JacPDstandard4th2gxz = - kmadd(J12L,PDstandard4th1gxz,kmadd(J22L,PDstandard4th2gxz,kmul(J32L,PDstandard4th3gxz))); - - JacPDstandard4th2gyy = - kmadd(J12L,PDstandard4th1gyy,kmadd(J22L,PDstandard4th2gyy,kmul(J32L,PDstandard4th3gyy))); - - JacPDstandard4th2gyz = - kmadd(J12L,PDstandard4th1gyz,kmadd(J22L,PDstandard4th2gyz,kmul(J32L,PDstandard4th3gyz))); - - JacPDstandard4th2gzz = - kmadd(J12L,PDstandard4th1gzz,kmadd(J22L,PDstandard4th2gzz,kmul(J32L,PDstandard4th3gzz))); - - JacPDstandard4th2kxx = - kmadd(J12L,PDstandard4th1kxx,kmadd(J22L,PDstandard4th2kxx,kmul(J32L,PDstandard4th3kxx))); - - JacPDstandard4th2kxy = - kmadd(J12L,PDstandard4th1kxy,kmadd(J22L,PDstandard4th2kxy,kmul(J32L,PDstandard4th3kxy))); - - JacPDstandard4th2kxz = - kmadd(J12L,PDstandard4th1kxz,kmadd(J22L,PDstandard4th2kxz,kmul(J32L,PDstandard4th3kxz))); - - JacPDstandard4th2kyz = - kmadd(J12L,PDstandard4th1kyz,kmadd(J22L,PDstandard4th2kyz,kmul(J32L,PDstandard4th3kyz))); - - JacPDstandard4th2kzz = - kmadd(J12L,PDstandard4th1kzz,kmadd(J22L,PDstandard4th2kzz,kmul(J32L,PDstandard4th3kzz))); - - JacPDstandard4th3gxx = - kmadd(J13L,PDstandard4th1gxx,kmadd(J23L,PDstandard4th2gxx,kmul(J33L,PDstandard4th3gxx))); - - JacPDstandard4th3gxy = - kmadd(J13L,PDstandard4th1gxy,kmadd(J23L,PDstandard4th2gxy,kmul(J33L,PDstandard4th3gxy))); - - JacPDstandard4th3gxz = - kmadd(J13L,PDstandard4th1gxz,kmadd(J23L,PDstandard4th2gxz,kmul(J33L,PDstandard4th3gxz))); - - JacPDstandard4th3gyy = - kmadd(J13L,PDstandard4th1gyy,kmadd(J23L,PDstandard4th2gyy,kmul(J33L,PDstandard4th3gyy))); - - JacPDstandard4th3gyz = - kmadd(J13L,PDstandard4th1gyz,kmadd(J23L,PDstandard4th2gyz,kmul(J33L,PDstandard4th3gyz))); - - JacPDstandard4th3gzz = - kmadd(J13L,PDstandard4th1gzz,kmadd(J23L,PDstandard4th2gzz,kmul(J33L,PDstandard4th3gzz))); - - JacPDstandard4th3kxx = - kmadd(J13L,PDstandard4th1kxx,kmadd(J23L,PDstandard4th2kxx,kmul(J33L,PDstandard4th3kxx))); - - JacPDstandard4th3kxy = - kmadd(J13L,PDstandard4th1kxy,kmadd(J23L,PDstandard4th2kxy,kmul(J33L,PDstandard4th3kxy))); - - JacPDstandard4th3kxz = - kmadd(J13L,PDstandard4th1kxz,kmadd(J23L,PDstandard4th2kxz,kmul(J33L,PDstandard4th3kxz))); - - JacPDstandard4th3kyy = - kmadd(J13L,PDstandard4th1kyy,kmadd(J23L,PDstandard4th2kyy,kmul(J33L,PDstandard4th3kyy))); - - JacPDstandard4th3kyz = - kmadd(J13L,PDstandard4th1kyz,kmadd(J23L,PDstandard4th2kyz,kmul(J33L,PDstandard4th3kyz))); - - JacPDstandard4th11gyy = - kmadd(dJ111L,PDstandard4th1gyy,kmadd(dJ211L,PDstandard4th2gyy,kmadd(dJ311L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J11L,J11L),kmadd(PDstandard4th22gyy,kmul(J21L,J21L),kmadd(PDstandard4th33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy)),kmul(J21L,kmul(J31L,PDstandard4th23gyy))),ToReal(2)))))))); - - JacPDstandard4th11gyz = - kmadd(dJ111L,PDstandard4th1gyz,kmadd(dJ211L,PDstandard4th2gyz,kmadd(dJ311L,PDstandard4th3gyz,kmadd(PDstandard4th11gyz,kmul(J11L,J11L),kmadd(PDstandard4th22gyz,kmul(J21L,J21L),kmadd(PDstandard4th33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz)),kmul(J21L,kmul(J31L,PDstandard4th23gyz))),ToReal(2)))))))); - - JacPDstandard4th11gzz = - kmadd(dJ111L,PDstandard4th1gzz,kmadd(dJ211L,PDstandard4th2gzz,kmadd(dJ311L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J11L,J11L),kmadd(PDstandard4th22gzz,kmul(J21L,J21L),kmadd(PDstandard4th33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz)),kmul(J21L,kmul(J31L,PDstandard4th23gzz))),ToReal(2)))))))); - - JacPDstandard4th22gxx = - kmadd(dJ122L,PDstandard4th1gxx,kmadd(dJ222L,PDstandard4th2gxx,kmadd(dJ322L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J12L,J12L),kmadd(PDstandard4th22gxx,kmul(J22L,J22L),kmadd(PDstandard4th33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx)),kmul(J22L,kmul(J32L,PDstandard4th23gxx))),ToReal(2)))))))); - - JacPDstandard4th22gxz = - kmadd(dJ122L,PDstandard4th1gxz,kmadd(dJ222L,PDstandard4th2gxz,kmadd(dJ322L,PDstandard4th3gxz,kmadd(PDstandard4th11gxz,kmul(J12L,J12L),kmadd(PDstandard4th22gxz,kmul(J22L,J22L),kmadd(PDstandard4th33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmul(J22L,kmul(J32L,PDstandard4th23gxz))),ToReal(2)))))))); - - JacPDstandard4th22gzz = - kmadd(dJ122L,PDstandard4th1gzz,kmadd(dJ222L,PDstandard4th2gzz,kmadd(dJ322L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J12L,J12L),kmadd(PDstandard4th22gzz,kmul(J22L,J22L),kmadd(PDstandard4th33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmul(J22L,kmul(J32L,PDstandard4th23gzz))),ToReal(2)))))))); - - JacPDstandard4th33gxx = - kmadd(dJ133L,PDstandard4th1gxx,kmadd(dJ233L,PDstandard4th2gxx,kmadd(dJ333L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J13L,J13L),kmadd(PDstandard4th22gxx,kmul(J23L,J23L),kmadd(PDstandard4th33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmul(J23L,kmul(J33L,PDstandard4th23gxx))),ToReal(2)))))))); - - JacPDstandard4th33gxy = - kmadd(dJ133L,PDstandard4th1gxy,kmadd(dJ233L,PDstandard4th2gxy,kmadd(dJ333L,PDstandard4th3gxy,kmadd(PDstandard4th11gxy,kmul(J13L,J13L),kmadd(PDstandard4th22gxy,kmul(J23L,J23L),kmadd(PDstandard4th33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmul(J23L,kmul(J33L,PDstandard4th23gxy))),ToReal(2)))))))); - - JacPDstandard4th33gyy = - kmadd(dJ133L,PDstandard4th1gyy,kmadd(dJ233L,PDstandard4th2gyy,kmadd(dJ333L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J13L,J13L),kmadd(PDstandard4th22gyy,kmul(J23L,J23L),kmadd(PDstandard4th33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmul(J23L,kmul(J33L,PDstandard4th23gyy))),ToReal(2)))))))); - - JacPDstandard4th12gxy = - kmadd(J12L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy)),kmadd(dJ112L,PDstandard4th1gxy,kmadd(J22L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ212L,PDstandard4th2gxy,kmadd(J32L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ312L,PDstandard4th3gxy))))))); - - JacPDstandard4th12gxz = - kmadd(J12L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmadd(dJ112L,PDstandard4th1gxz,kmadd(J22L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ212L,PDstandard4th2gxz,kmadd(J32L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ312L,PDstandard4th3gxz))))))); - - JacPDstandard4th12gyz = - kmadd(J12L,kmadd(J11L,PDstandard4th11gyz,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz)),kmadd(dJ112L,PDstandard4th1gyz,kmadd(J22L,kmadd(J21L,PDstandard4th22gyz,kmul(J31L,PDstandard4th23gyz)),kmadd(dJ212L,PDstandard4th2gyz,kmadd(J32L,kmadd(J21L,PDstandard4th23gyz,kmul(J31L,PDstandard4th33gyz)),kmul(dJ312L,PDstandard4th3gyz))))))); - - JacPDstandard4th12gzz = - kmadd(J12L,kmadd(J11L,PDstandard4th11gzz,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz))),kmadd(J11L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmadd(dJ112L,PDstandard4th1gzz,kmadd(J22L,kmadd(J21L,PDstandard4th22gzz,kmul(J31L,PDstandard4th23gzz)),kmadd(dJ212L,PDstandard4th2gzz,kmadd(J32L,kmadd(J21L,PDstandard4th23gzz,kmul(J31L,PDstandard4th33gzz)),kmul(dJ312L,PDstandard4th3gzz))))))); - - JacPDstandard4th13gxz = - kmadd(J13L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ113L,PDstandard4th1gxz,kmadd(J23L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ213L,PDstandard4th2gxz,kmadd(J33L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ313L,PDstandard4th3gxz))))))); - - JacPDstandard4th21gxy = - kmadd(J12L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy)),kmadd(dJ112L,PDstandard4th1gxy,kmadd(J22L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ212L,PDstandard4th2gxy,kmadd(J32L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ312L,PDstandard4th3gxy))))))); - - JacPDstandard4th23gxx = - kmadd(J13L,kmadd(J12L,PDstandard4th11gxx,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmadd(dJ123L,PDstandard4th1gxx,kmadd(J23L,kmadd(J22L,PDstandard4th22gxx,kmul(J32L,PDstandard4th23gxx)),kmadd(dJ223L,PDstandard4th2gxx,kmadd(J33L,kmadd(J22L,PDstandard4th23gxx,kmul(J32L,PDstandard4th33gxx)),kmul(dJ323L,PDstandard4th3gxx))))))); - - JacPDstandard4th23gxy = - kmadd(J13L,kmadd(J12L,PDstandard4th11gxy,kmadd(J22L,PDstandard4th12gxy,kmul(J32L,PDstandard4th13gxy))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmadd(dJ123L,PDstandard4th1gxy,kmadd(J23L,kmadd(J22L,PDstandard4th22gxy,kmul(J32L,PDstandard4th23gxy)),kmadd(dJ223L,PDstandard4th2gxy,kmadd(J33L,kmadd(J22L,PDstandard4th23gxy,kmul(J32L,PDstandard4th33gxy)),kmul(dJ323L,PDstandard4th3gxy))))))); - - JacPDstandard4th23gxz = - kmadd(J13L,kmadd(J12L,PDstandard4th11gxz,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ123L,PDstandard4th1gxz,kmadd(J23L,kmadd(J22L,PDstandard4th22gxz,kmul(J32L,PDstandard4th23gxz)),kmadd(dJ223L,PDstandard4th2gxz,kmadd(J33L,kmadd(J22L,PDstandard4th23gxz,kmul(J32L,PDstandard4th33gxz)),kmul(dJ323L,PDstandard4th3gxz))))))); - - JacPDstandard4th23gyz = - kmadd(J13L,kmadd(J12L,PDstandard4th11gyz,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ123L,PDstandard4th1gyz,kmadd(J23L,kmadd(J22L,PDstandard4th22gyz,kmul(J32L,PDstandard4th23gyz)),kmadd(dJ223L,PDstandard4th2gyz,kmadd(J33L,kmadd(J22L,PDstandard4th23gyz,kmul(J32L,PDstandard4th33gyz)),kmul(dJ323L,PDstandard4th3gyz))))))); - - JacPDstandard4th31gxy = - kmadd(J13L,kmadd(J11L,PDstandard4th11gxy,kmadd(J21L,PDstandard4th12gxy,kmul(J31L,PDstandard4th13gxy))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmadd(dJ113L,PDstandard4th1gxy,kmadd(J23L,kmadd(J21L,PDstandard4th22gxy,kmul(J31L,PDstandard4th23gxy)),kmadd(dJ213L,PDstandard4th2gxy,kmadd(J33L,kmadd(J21L,PDstandard4th23gxy,kmul(J31L,PDstandard4th33gxy)),kmul(dJ313L,PDstandard4th3gxy))))))); - - JacPDstandard4th31gxz = - kmadd(J13L,kmadd(J11L,PDstandard4th11gxz,kmadd(J21L,PDstandard4th12gxz,kmul(J31L,PDstandard4th13gxz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gxz,kmul(J33L,PDstandard4th13gxz)),kmadd(dJ113L,PDstandard4th1gxz,kmadd(J23L,kmadd(J21L,PDstandard4th22gxz,kmul(J31L,PDstandard4th23gxz)),kmadd(dJ213L,PDstandard4th2gxz,kmadd(J33L,kmadd(J21L,PDstandard4th23gxz,kmul(J31L,PDstandard4th33gxz)),kmul(dJ313L,PDstandard4th3gxz))))))); - - JacPDstandard4th31gyy = - kmadd(J13L,kmadd(J11L,PDstandard4th11gyy,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy))),kmadd(J11L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmadd(dJ113L,PDstandard4th1gyy,kmadd(J23L,kmadd(J21L,PDstandard4th22gyy,kmul(J31L,PDstandard4th23gyy)),kmadd(dJ213L,PDstandard4th2gyy,kmadd(J33L,kmadd(J21L,PDstandard4th23gyy,kmul(J31L,PDstandard4th33gyy)),kmul(dJ313L,PDstandard4th3gyy))))))); - - JacPDstandard4th31gyz = - kmadd(J13L,kmadd(J11L,PDstandard4th11gyz,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz))),kmadd(J11L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ113L,PDstandard4th1gyz,kmadd(J23L,kmadd(J21L,PDstandard4th22gyz,kmul(J31L,PDstandard4th23gyz)),kmadd(dJ213L,PDstandard4th2gyz,kmadd(J33L,kmadd(J21L,PDstandard4th23gyz,kmul(J31L,PDstandard4th33gyz)),kmul(dJ313L,PDstandard4th3gyz))))))); - - JacPDstandard4th32gyz = - kmadd(J13L,kmadd(J12L,PDstandard4th11gyz,kmadd(J22L,PDstandard4th12gyz,kmul(J32L,PDstandard4th13gyz))),kmadd(J12L,kmadd(J23L,PDstandard4th12gyz,kmul(J33L,PDstandard4th13gyz)),kmadd(dJ123L,PDstandard4th1gyz,kmadd(J23L,kmadd(J22L,PDstandard4th22gyz,kmul(J32L,PDstandard4th23gyz)),kmadd(dJ223L,PDstandard4th2gyz,kmadd(J33L,kmadd(J22L,PDstandard4th23gyz,kmul(J32L,PDstandard4th33gyz)),kmul(dJ323L,PDstandard4th3gyz))))))); - } - else - { - JacPDstandard4th1gxx = PDstandard4th1gxx; - - JacPDstandard4th1gxy = PDstandard4th1gxy; - - JacPDstandard4th1gxz = PDstandard4th1gxz; - - JacPDstandard4th1gyy = PDstandard4th1gyy; - - JacPDstandard4th1gyz = PDstandard4th1gyz; - - JacPDstandard4th1gzz = PDstandard4th1gzz; - - JacPDstandard4th1kxy = PDstandard4th1kxy; - - JacPDstandard4th1kxz = PDstandard4th1kxz; - - JacPDstandard4th1kyy = PDstandard4th1kyy; - - JacPDstandard4th1kyz = PDstandard4th1kyz; - - JacPDstandard4th1kzz = PDstandard4th1kzz; - - JacPDstandard4th2gxx = PDstandard4th2gxx; - - JacPDstandard4th2gxy = PDstandard4th2gxy; - - JacPDstandard4th2gxz = PDstandard4th2gxz; - - JacPDstandard4th2gyy = PDstandard4th2gyy; - - JacPDstandard4th2gyz = PDstandard4th2gyz; - - JacPDstandard4th2gzz = PDstandard4th2gzz; - - JacPDstandard4th2kxx = PDstandard4th2kxx; - - JacPDstandard4th2kxy = PDstandard4th2kxy; - - JacPDstandard4th2kxz = PDstandard4th2kxz; - - JacPDstandard4th2kyz = PDstandard4th2kyz; - - JacPDstandard4th2kzz = PDstandard4th2kzz; - - JacPDstandard4th3gxx = PDstandard4th3gxx; - - JacPDstandard4th3gxy = PDstandard4th3gxy; - - JacPDstandard4th3gxz = PDstandard4th3gxz; - - JacPDstandard4th3gyy = PDstandard4th3gyy; - - JacPDstandard4th3gyz = PDstandard4th3gyz; - - JacPDstandard4th3gzz = PDstandard4th3gzz; - - JacPDstandard4th3kxx = PDstandard4th3kxx; - - JacPDstandard4th3kxy = PDstandard4th3kxy; - - JacPDstandard4th3kxz = PDstandard4th3kxz; - - JacPDstandard4th3kyy = PDstandard4th3kyy; - - JacPDstandard4th3kyz = PDstandard4th3kyz; - - JacPDstandard4th11gyy = PDstandard4th11gyy; - - JacPDstandard4th11gyz = PDstandard4th11gyz; - - JacPDstandard4th11gzz = PDstandard4th11gzz; - - JacPDstandard4th22gxx = PDstandard4th22gxx; - - JacPDstandard4th22gxz = PDstandard4th22gxz; - - JacPDstandard4th22gzz = PDstandard4th22gzz; - - JacPDstandard4th33gxx = PDstandard4th33gxx; - - JacPDstandard4th33gxy = PDstandard4th33gxy; - - JacPDstandard4th33gyy = PDstandard4th33gyy; - - JacPDstandard4th12gxy = PDstandard4th12gxy; - - JacPDstandard4th12gxz = PDstandard4th12gxz; - - JacPDstandard4th12gyz = PDstandard4th12gyz; - - JacPDstandard4th12gzz = PDstandard4th12gzz; - - JacPDstandard4th13gxz = PDstandard4th13gxz; - - JacPDstandard4th21gxy = PDstandard4th12gxy; - - JacPDstandard4th23gxx = PDstandard4th23gxx; - - JacPDstandard4th23gxy = PDstandard4th23gxy; - - JacPDstandard4th23gxz = PDstandard4th23gxz; - - JacPDstandard4th23gyz = PDstandard4th23gyz; - - JacPDstandard4th31gxy = PDstandard4th13gxy; - - JacPDstandard4th31gxz = PDstandard4th13gxz; - - JacPDstandard4th31gyy = PDstandard4th13gyy; - - JacPDstandard4th31gyz = PDstandard4th13gyz; - - JacPDstandard4th32gyz = PDstandard4th23gyz; - } - - CCTK_REAL_VEC detg = - knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); - - CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); - - CCTK_REAL_VEC gInv11 = - kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); - - CCTK_REAL_VEC gInv12 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv13 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv21 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv22 = - kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); - - CCTK_REAL_VEC gInv23 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv31 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv32 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv33 = - kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); - - CCTK_REAL_VEC gamma111 = - kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard4th1gxx,knmsub(gInv12,JacPDstandard4th2gxx,kmsub(kmadd(gInv12,JacPDstandard4th1gxy,kmul(gInv13,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv13,JacPDstandard4th3gxx))))); - - CCTK_REAL_VEC gamma211 = - kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard4th1gxx,knmsub(gInv22,JacPDstandard4th2gxx,kmsub(kmadd(gInv22,JacPDstandard4th1gxy,kmul(gInv23,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv23,JacPDstandard4th3gxx))))); - - CCTK_REAL_VEC gamma311 = - kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard4th1gxx,knmsub(gInv32,JacPDstandard4th2gxx,kmsub(kmadd(gInv32,JacPDstandard4th1gxy,kmul(gInv33,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv33,JacPDstandard4th3gxx))))); - - CCTK_REAL_VEC gamma121 = - kmul(kmadd(gInv12,JacPDstandard4th1gyy,kmadd(gInv11,JacPDstandard4th2gxx,kmul(gInv13,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma221 = - kmul(kmadd(gInv22,JacPDstandard4th1gyy,kmadd(gInv21,JacPDstandard4th2gxx,kmul(gInv23,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma321 = - kmul(kmadd(gInv32,JacPDstandard4th1gyy,kmadd(gInv31,JacPDstandard4th2gxx,kmul(gInv33,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma131 = - kmul(kmadd(gInv13,JacPDstandard4th1gzz,kmadd(gInv11,JacPDstandard4th3gxx,kmul(gInv12,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma231 = - kmul(kmadd(gInv23,JacPDstandard4th1gzz,kmadd(gInv21,JacPDstandard4th3gxx,kmul(gInv22,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma331 = - kmul(kmadd(gInv33,JacPDstandard4th1gzz,kmadd(gInv31,JacPDstandard4th3gxx,kmul(gInv32,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma122 = - kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard4th2gyy,kmadd(gInv11,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv13,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); - - CCTK_REAL_VEC gamma222 = - kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard4th2gyy,kmadd(gInv21,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv23,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); - - CCTK_REAL_VEC gamma322 = - kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard4th2gyy,kmadd(gInv31,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv33,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); - - CCTK_REAL_VEC gamma132 = - kmul(kmadd(gInv13,JacPDstandard4th2gzz,kmadd(gInv12,JacPDstandard4th3gyy,kmul(gInv11,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma232 = - kmul(kmadd(gInv23,JacPDstandard4th2gzz,kmadd(gInv22,JacPDstandard4th3gyy,kmul(gInv21,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma332 = - kmul(kmadd(gInv33,JacPDstandard4th2gzz,kmadd(gInv32,JacPDstandard4th3gyy,kmul(gInv31,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma133 = - kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard4th3gzz,kmadd(gInv11,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv12,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); - - CCTK_REAL_VEC gamma233 = - kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard4th3gzz,kmadd(gInv21,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv22,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); - - CCTK_REAL_VEC gamma333 = - kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard4th3gzz,kmadd(gInv31,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv32,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); - - CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); - - CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); - - CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); - - CCTK_REAL_VEC va1 = kneg(ymoved); - - CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC va3 = ToReal(0); - - CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC vb2 = ymoved; - - CCTK_REAL_VEC vb3 = zmoved; - - CCTK_REAL_VEC vc1 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); - - CCTK_REAL_VEC vc2 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); - - CCTK_REAL_VEC vc3 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); - - CCTK_REAL_VEC wa1 = va1; - - CCTK_REAL_VEC wa2 = va2; - - CCTK_REAL_VEC wa3 = va3; - - CCTK_REAL_VEC omega11 = - kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); - - CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); - - CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); - - CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); - - CCTK_REAL_VEC omega12 = - kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); - - CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); - - CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); - - CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); - - CCTK_REAL_VEC omega22 = - kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); - - CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); - - CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); - - CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); - - CCTK_REAL_VEC omega13 = - kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC omega23 = - kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); - - CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); - - CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); - - CCTK_REAL_VEC omega33 = - kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); - - CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); - - CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); - - CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); - - CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); - - CCTK_REAL_VEC ltet1 = kmul(eb1,isqrt2); - - CCTK_REAL_VEC ltet2 = kmul(eb2,isqrt2); - - CCTK_REAL_VEC ltet3 = kmul(eb3,isqrt2); - - CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); - - CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); - - CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); - - CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); - - CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); - - CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); - - CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); - - CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); - - CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); - - CCTK_REAL_VEC nn = isqrt2; - - CCTK_REAL_VEC R1212 = - kmul(ToReal(0.5),kadd(JacPDstandard4th12gxy,kadd(JacPDstandard4th21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard4th22gxx),JacPDstandard4th11gyy))))); - - CCTK_REAL_VEC R1213 = - kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard4th12gxz,kadd(JacPDstandard4th31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard4th23gxx),JacPDstandard4th11gyz)))))); - - CCTK_REAL_VEC R1223 = - kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard4th22gxz,kadd(JacPDstandard4th31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard4th23gxy),JacPDstandard4th12gyz)))))); - - CCTK_REAL_VEC R1313 = - kmul(ToReal(0.5),kadd(JacPDstandard4th13gxz,kadd(JacPDstandard4th31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard4th33gxx),JacPDstandard4th11gzz))))); - - CCTK_REAL_VEC R1323 = - kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard4th23gxz,kadd(JacPDstandard4th31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard4th33gxy),JacPDstandard4th12gzz)))))); - - CCTK_REAL_VEC R2323 = - kmul(ToReal(0.5),kadd(JacPDstandard4th23gyz,kadd(JacPDstandard4th32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard4th33gyy),JacPDstandard4th22gzz))))); - - CCTK_REAL_VEC R4p1212 = - kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); - - CCTK_REAL_VEC R4p1213 = - kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); - - CCTK_REAL_VEC R4p1223 = - kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); - - CCTK_REAL_VEC R4p1313 = - kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); - - CCTK_REAL_VEC R4p1323 = - kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); - - CCTK_REAL_VEC R4p2323 = - kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); - - CCTK_REAL_VEC Ro111 = ToReal(0); - - CCTK_REAL_VEC Ro112 = - kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard4th1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard4th2kxx)))))); - - CCTK_REAL_VEC Ro113 = - kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard4th1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard4th3kxx)))))); - - CCTK_REAL_VEC Ro121 = - kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard4th2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard4th1kxy)))))); - - CCTK_REAL_VEC Ro122 = ToReal(0); - - CCTK_REAL_VEC Ro123 = - kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard4th2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard4th3kxy)))))); - - CCTK_REAL_VEC Ro131 = - kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard4th3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard4th1kxz)))))); - - CCTK_REAL_VEC Ro132 = - kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard4th2kxz)))))); - - CCTK_REAL_VEC Ro133 = ToReal(0); - - CCTK_REAL_VEC Ro211 = ToReal(0); - - CCTK_REAL_VEC Ro212 = - kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard4th1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard4th2kxy)))))); - - CCTK_REAL_VEC Ro213 = - kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard4th1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard4th3kxy)))))); - - CCTK_REAL_VEC Ro221 = - kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard4th2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard4th1kyy)))))); - - CCTK_REAL_VEC Ro222 = ToReal(0); - - CCTK_REAL_VEC Ro223 = - kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard4th2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard4th3kyy)))))); - - CCTK_REAL_VEC Ro231 = - kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard4th1kyz)))))); - - CCTK_REAL_VEC Ro232 = - kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard4th3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard4th2kyz)))))); - - CCTK_REAL_VEC Ro233 = ToReal(0); - - CCTK_REAL_VEC Ro311 = ToReal(0); - - CCTK_REAL_VEC Ro312 = - kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard4th1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard4th2kxz)))))); - - CCTK_REAL_VEC Ro313 = - kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard4th1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard4th3kxz)))))); - - CCTK_REAL_VEC Ro321 = - kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard4th2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard4th1kyz)))))); - - CCTK_REAL_VEC Ro322 = ToReal(0); - - CCTK_REAL_VEC Ro323 = - kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard4th2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard4th3kyz)))))); - - CCTK_REAL_VEC Ro331 = - kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard4th3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard4th1kzz)))))); - - CCTK_REAL_VEC Ro332 = - kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard4th3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard4th2kzz)))))); - - CCTK_REAL_VEC Ro333 = ToReal(0); - - CCTK_REAL_VEC Rojo11 = - kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); - - CCTK_REAL_VEC Rojo12 = - kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo13 = - kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); - - CCTK_REAL_VEC Rojo21 = - kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo22 = - kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Rojo23 = - kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo31 = - kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); - - CCTK_REAL_VEC Rojo32 = - kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo33 = - kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Psi4rL = - kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi4iL = - knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); - - CCTK_REAL_VEC Psi3rL = - kmadd(ltet2,kmul(R4p1212,kmul(rm2,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1213,kmul(rm2,kmul(n1,n1))),kmadd(ltet2,kmul(R4p1213,kmul(rm3,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1313,kmul(rm3,kmul(n1,n1))),kmadd(ltet1,kmul(R4p1212,kmul(rm1,kmul(n2,n2))),kmadd(ltet3,kmul(R4p2323,kmul(rm3,kmul(n2,n2))),kmadd(ltet1,kmul(R4p1313,kmul(rm1,kmul(n3,n3))),kmadd(ltet2,kmul(R4p1323,kmul(rm1,kmul(n3,n3))),kmadd(ltet1,kmul(R4p1323,kmul(rm2,kmul(n3,n3))),kmadd(ltet2,kmul(R4p2323,kmul(rm2,kmul(n3,n3))),kmadd(n1,kmul(nn,kmul(rm2,kmul(Ro221,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n2,kmul(nn,kmul(rm2,kmul(Ro222,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n3,kmul(nn,kmul(rm2,kmul(Ro223,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n1,kmul(nn,kmul(rm3,kmul(Ro331,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n2,kmul(nn,kmul(rm3,kmul(Ro332,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,kmadd(ltet3,ToReal(-2),n3)))),kmadd(rm1,kmul(Rojo11,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm2,kmul(Rojo12,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm3,kmul(Rojo13,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm1,kmul(Rojo21,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm3,kmul(Rojo23,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm1,kmul(Rojo31,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm2,kmul(Rojo32,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm3,kmul(Rojo33,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(n2,kmul(nn,kmul(Ro212,kmsub(rm1,ksub(n2,ltet2),kmul(ltet1,rm2)))),kmadd(n2,kmul(nn,kmul(Ro232,kmsub(rm3,ksub(n2,ltet2),kmul(ltet3,rm2)))),kmadd(n3,kmul(nn,kmul(Ro313,kmsub(rm1,ksub(n3,ltet3),kmul(ltet1,rm3)))),kmadd(n3,kmul(nn,kmul(Ro323,kmsub(rm2,ksub(n3,ltet3),kmul(ltet2,rm3)))),kmadd(ltet3,kmsub(n2,kmul(rm2,kmsub(n1,R4p1223,kmul(n3,R4p2323))),kmul(R4p1223,kmul(rm1,kmul(n2,n2)))),kmadd(ltet1,kmsub(n3,kmsub(n2,kmul(R4p1223,rm2),kmul(n1,kmul(R4p1313,rm3))),kmul(R4p1223,kmul(rm3,kmul(n2,n2)))),kmadd(n3,kmsub(rm1,kmsub(ltet2,kmul(n2,R4p1223),kmul(ltet3,kmul(n1,R4p1313))),kmadd(ltet1,kmadd(n2,kmul(R4p1323,rm3),kmul(n1,kmul(R4p1213,rm2))),kmul(nn,kmul(Ro123,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n1,kmsub(ltet2,kmul(n3,kmul(R4p1223,kmul(rm2,ToReal(-2)))),kmadd(ltet1,kmul(n2,kmul(R4p1213,rm3)),kmul(nn,kmul(Ro211,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2))))))),kmadd(nn,kmsub(n1,kmul(rm1,kmul(Ro111,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro213,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n2,kmul(rm1,kmul(Ro112,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro233,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n3,kmul(rm1,kmul(Ro113,kmadd(ltet1,ToReal(-2),n1))),kmul(n1,kmul(Ro311,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(nn,kmsub(n1,kmul(Ro121,kmsub(rm2,ksub(n1,ltet1),kmul(ltet2,rm1))),kmul(n2,kmul(Ro312,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(n1,kmul(nn,kmsub(Ro131,kmsub(rm3,ksub(n1,ltet1),kmul(ltet3,rm1)),kmul(Ro321,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3)))))),knmsub(n1,kmadd(ltet2,kmul(n3,kmul(R4p1323,rm3)),kmadd(n2,kmadd(rm1,kmadd(ltet3,R4p1213,kmul(ltet2,R4p1212)),kmul(ltet1,kmul(R4p1212,rm2))),kmul(nn,kmul(Ro231,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2))))))),kmadd(n2,kmsub(ltet2,kmul(n1,kmul(R4p1223,rm3)),kmul(nn,kmadd(Ro322,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3))),kmul(Ro122,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n2,kmsub(ltet3,kmul(n1,kmul(R4p1323,kmul(rm3,ToReal(2)))),kmul(nn,kmul(Ro132,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))),kmul(n3,knmsub(ltet2,kmul(n2,kmul(R4p2323,rm3)),knmsub(ltet3,kmul(R4p1323,kmadd(n1,rm2,kmul(n2,rm1))),kmsub(R4p1213,kmul(rm1,kmsub(ltet1,kmul(n2,ToReal(2)),kmul(ltet2,n1))),kmul(nn,kmul(Ro133,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))))))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi3iL = - kmadd(im2,kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),knmsub(ltet2,kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(n1,kmul(kmadd(n3,R4p1223,kmul(nn,Ro221)),ToReal(-2)),kmadd(n3,kmul(nn,kmul(Ro223,ToReal(-2))),kmul(nn,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(-2))))))))),kmadd(nn,kmsub(ltet3,kmul(n3,Ro233),kmul(Ro121,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro321),kmul(Ro222,kmul(n2,n2))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro322),kmul(Ro323,kmul(n3,n3))),kmadd(ltet3,kmsub(n3,kmul(nn,Ro323),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet3,kmadd(n2,kmul(n3,R4p2323),kmadd(n1,kmul(nn,Ro231),kmsub(n1,kmsub(n3,R4p1323,kmul(n2,R4p1223)),kmul(R4p1213,kmul(n1,n1))))),kmadd(ltet1,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo12,kmul(nn,nn)))))))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro232,kmul(n3,kadd(Ro322,Ro223)))),kmul(n1,kmul(nn,kmadd(n3,kadd(Ro321,Ro123),kmul(n2,kadd(Ro221,Ro122)))))))))))))))),kmadd(im1,kmadd(ltet3,kmul(R4p1223,kmul(n2,n2)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(n3,kmul(nn,kmsub(ltet3,Ro133,kmul(n1,Ro311))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro311),kmul(Ro111,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro312),kmul(Ro212,kmul(n2,n2))),kmadd(nn,kmul(Ro313,kmsub(ltet3,n3,kmul(n3,n3))),kmadd(ltet3,kmadd(n1,kmul(n2,R4p1213),kmadd(n1,kmul(n3,R4p1313),kmadd(n2,kmul(n3,R4p1323),kmsub(n1,kmul(nn,Ro131),kmul(Rojo31,kmul(nn,nn)))))),kmadd(ltet2,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo21,kmul(nn,nn)))))))),knmsub(n1,kmul(nn,kmadd(n2,kadd(Ro211,Ro112),kmul(n3,Ro113))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro132,kmul(n3,kadd(Ro312,Ro213)))),kmul(ltet1,kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(Rojo11,kmul(nn,nn),kmadd(n1,kmul(nn,kmul(Ro111,ToReal(-2))),kmadd(n2,kmul(nn,kmul(Ro112,ToReal(-2))),kmadd(n3,kmul(nn,kmul(Ro113,ToReal(-2))),kmul(n2,kmul(n3,kmul(R4p1213,ToReal(2))))))))))))))))))))))),kmul(im3,kmadd(n1,kmul(Rojo13,kmul(nn,nn)),kmadd(n2,kmul(Rojo23,kmul(nn,nn)),kmadd(n3,kmul(Rojo33,kmul(nn,nn)),knmsub(n3,kmul(nn,kmadd(n2,kadd(Ro332,Ro233),kmul(n1,Ro331))),kmadd(ltet1,kmadd(n1,kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,kadd(Ro131,Ro311)))),kmadd(n2,kmadd(n3,R4p1323,kmul(nn,kadd(Ro132,Ro312))),kmadd(R4p1223,kmul(n2,n2),kmul(nn,kmsub(n3,kadd(Ro133,Ro313),kmul(nn,Rojo13)))))),kmadd(ltet2,kmadd(n2,kmadd(n3,R4p2323,kmul(nn,kadd(Ro232,Ro322))),knmsub(R4p1213,kmul(n1,n1),kmadd(n1,kmadd(n3,R4p1323,kmsub(nn,kadd(Ro231,Ro321),kmul(n2,R4p1223))),kmul(nn,kmsub(n3,kadd(Ro233,Ro323),kmul(nn,Rojo23)))))),kmadd(ltet3,knmsub(R4p1313,kmul(n1,n1),knmsub(R4p2323,kmul(n2,n2),kmsub(n2,kmul(nn,kmul(Ro332,ToReal(2))),kmul(Rojo33,kmul(nn,nn))))),kmadd(nn,knmsub(Ro131,kmul(n1,n1),kmsub(Ro333,kmsub(ltet3,kmul(n3,ToReal(2)),kmul(n3,n3)),kmul(Ro232,kmul(n2,n2)))),kmul(n1,kmadd(n2,kmsub(ltet3,kmul(R4p1323,ToReal(-2)),kmul(nn,kadd(Ro231,Ro132))),kmul(nn,kmsub(ltet3,kmul(Ro331,ToReal(2)),kmul(n3,Ro133)))))))))))))))); - - CCTK_REAL_VEC Psi2rL = - kmadd(ltet1,kmul(n3,kmul(R4p1223,kmadd(im2,im2,kmul(rm2,rm2)))),kmadd(nn,kmul(kmadd(im1,im2,kmul(rm1,rm2)),kmul(Ro211,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro311,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro322,ksub(n2,ltet2))),kmadd(nn,kmul(Ro222,kmul(kmadd(im2,im2,kmul(rm2,rm2)),ksub(n2,ltet2))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro133,ksub(n3,ltet3))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro233,ksub(n3,ltet3))),kmadd(nn,kmul(Ro112,kmsub(n2,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro221,kmsub(n1,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro113,kmsub(n3,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro331,kmsub(n1,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro223,kmsub(n3,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro332,kmsub(n2,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(ltet3,kmul(n3,kmul(R4p1323,ToReal(-2))),kmul(Rojo12,kmul(nn,nn))),kmadd(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n1,R4p1213),kmul(Rojo13,kmul(nn,nn))),kmadd(kmadd(im2,im2,kmul(rm2,rm2)),kmsub(ltet3,kmul(n1,R4p1223),kmul(Rojo22,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet1,kmul(n1,kmul(R4p1213,ToReal(-2))),kmul(Rojo23,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet3,kmul(n1,R4p1323),kmul(Rojo32,kmul(nn,nn))),kmadd(nn,kmul(Ro121,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet2,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro131,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(ltet3,kmul(R4p1313,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(n3,kmsub(ltet1,kmul(R4p1313,kmadd(im1,im3,kmul(rm1,rm3))),kmul(ltet2,kmul(R4p1213,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro212,kmsub(n2,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet1,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro232,kmsub(n2,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet3,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet1,kmsub(n3,kmul(R4p1323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(n1,kmul(R4p1212,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet3,kmsub(n2,kmul(R4p1323,kmadd(im1,im3,kmul(rm1,rm3))),kmul(n3,kmul(R4p2323,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro313,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(nn,kmul(Ro323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p1323,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p2323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(n2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(n2,kmsub(ltet3,kmul(R4p2323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(ltet1,kmul(R4p1323,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(kmadd(im1,im1,kmul(rm1,rm1)),kmsub(nn,kmul(Ro111,ksub(n1,ltet1)),kmul(Rojo11,kmul(nn,nn))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(nn,kmul(Ro122,ksub(n2,ltet2)),kmul(Rojo21,kmul(nn,nn))),kmadd(kmadd(im3,im3,kmul(rm3,rm3)),kmsub(nn,kmul(Ro333,ksub(n3,ltet3)),kmul(Rojo33,kmul(nn,nn))),knmsub(R4p1223,kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmadd(ltet2,n3,kmul(ltet3,n2)),kmul(ltet2,kmul(n1,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro321,kmadd(im3,kmsub(im2,n1,kmul(im1,ltet2)),kmul(rm3,kmsub(n1,rm2,kmul(ltet2,rm1))))),kmadd(nn,kmul(Ro231,kmadd(im2,kmsub(im3,n1,kmul(im1,ltet3)),kmul(rm2,kmsub(n1,rm3,kmul(ltet3,rm1))))),kmadd(nn,kmul(Ro312,kmadd(im3,kmsub(im1,n2,kmul(im2,ltet1)),kmul(rm3,kmsub(n2,rm1,kmul(ltet1,rm2))))),kmadd(nn,kmul(Ro132,kmadd(im1,kmsub(im3,n2,kmul(im2,ltet3)),kmul(rm1,kmsub(n2,rm3,kmul(ltet3,rm2))))),kmadd(nn,kmul(Ro213,kmadd(im2,kmsub(im1,n3,kmul(im3,ltet1)),kmul(rm2,kmsub(n3,rm1,kmul(ltet1,rm3))))),kmadd(nn,kmul(Ro123,kmadd(im1,kmsub(im2,n3,kmul(im3,ltet2)),kmul(rm1,kmsub(n3,rm2,kmul(ltet2,rm3))))),kmadd(ltet1,kmsub(n2,kmsub(R4p1213,kmadd(im1,im3,kmul(rm1,rm3)),kmul(R4p1223,kmadd(im2,im3,kmul(rm2,rm3)))),kmul(n1,kmul(R4p1313,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(R4p1212,kmadd(ltet1,kmul(n2,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet2,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmadd(R4p1213,kmadd(ltet1,kmul(n3,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet3,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n2,kmul(R4p1223,ToReal(2))),kmul(Rojo31,kmul(nn,nn)))))))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi2iL = - kmadd(im3,kmadd(n2,kmul(nn,kmul(rm1,Ro312)),kmadd(n3,kmul(nn,kmul(rm1,Ro313)),kmadd(n2,kmul(nn,kmul(rm2,Ro322)),kmadd(n3,kmul(nn,kmul(rm2,Ro323)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro331)),kmadd(ltet3,kmul(nn,kmul(rm2,Ro332)),kmadd(rm1,kmul(Rojo13,kmul(nn,nn)),kmadd(rm2,kmul(Rojo23,kmul(nn,nn)),kmadd(rm1,kmsub(n1,kmul(nn,Ro311),kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(nn,Ro321),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet1,kmadd(n3,kmul(R4p1313,rm1),kmadd(n3,kmul(R4p1323,rm2),kmadd(nn,kmul(rm1,Ro311),kmadd(nn,kmul(rm2,Ro312),kmadd(rm1,kmsub(n2,R4p1213,kmul(nn,Ro113)),kmul(rm2,kmsub(n2,R4p1223,kmul(nn,Ro213)))))))),kmsub(ltet2,kmadd(nn,kmul(rm1,Ro321),kmadd(nn,kmul(rm2,Ro322),knmsub(n1,kmadd(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(rm1,kmsub(n3,R4p1323,kmul(nn,Ro123)),kmul(rm2,kmsub(n3,R4p2323,kmul(nn,Ro223))))))),kmadd(ltet3,kmadd(rm2,kmadd(n1,R4p1323,kmadd(nn,Ro233,kmul(n2,R4p2323))),kmul(rm1,kmadd(n1,R4p1313,kmadd(nn,Ro133,kmul(n2,R4p1323))))),kmul(nn,kmadd(rm2,kmadd(n1,Ro231,kmadd(n3,Ro233,kmul(n2,Ro232))),kmul(rm1,kmadd(n1,Ro131,kmadd(n3,Ro133,kmul(n2,Ro132))))))))))))))))))),kmadd(im2,kmadd(n3,kmul(nn,kmul(rm1,Ro213)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro231)),kmadd(n2,kmul(nn,kmul(rm3,Ro232)),kmadd(ltet3,kmul(nn,kmul(rm3,Ro233)),kmadd(n3,kmul(nn,kmul(rm3,Ro233)),kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(rm1,kmsub(n2,kmul(nn,Ro212),kmul(Rojo21,kmul(nn,nn))),kmadd(rm3,kmsub(n1,kmul(nn,Ro231),kmul(Rojo23,kmul(nn,nn))),kmadd(nn,kmsub(rm1,kmsub(n1,Ro211,kmul(n3,Ro123)),kmul(n3,kmul(rm3,Ro323))),knmsub(ltet3,kmadd(rm1,kmadd(n1,R4p1213,kmadd(nn,Ro132,kmul(n2,R4p1223))),kmul(nn,kmul(rm3,Ro332))),kmadd(n1,kmsub(rm3,kmsub(ltet3,R4p1323,kmul(nn,Ro321)),kmul(nn,kmul(rm1,Ro121))),kmadd(n2,kmsub(rm3,kmsub(ltet3,R4p2323,kmul(nn,Ro322)),kmul(nn,kmul(rm1,Ro122))),kmadd(ltet2,kmadd(nn,kmul(rm1,Ro221),kmadd(nn,kmul(rm3,Ro223),kmadd(rm1,kmsub(n3,R4p1223,kmadd(nn,Ro122,kmul(n1,R4p1212))),kmul(rm3,kmsub(n1,R4p1223,kmadd(nn,Ro322,kmul(n3,R4p2323))))))),kmul(ltet1,kmadd(nn,kmul(rm3,Ro213),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1323,rm3)),kmul(nn,kmsub(rm1,ksub(Ro211,Ro112),kmul(rm3,Ro312))))))))))))))))))))),kmul(im1,kmadd(rm2,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo31,kmul(nn,nn)),knmsub(kmul(nn,nn),kmadd(rm3,Rojo13,kmul(rm2,Rojo12)),knmsub(ltet1,kmadd(n3,kmul(R4p1213,rm2),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm2,Ro211),kmadd(nn,kmul(rm3,Ro311),kmadd(rm2,kmsub(n2,R4p1212,kmul(nn,Ro112)),kmul(rm3,kmsub(n2,R4p1213,kmul(nn,Ro113)))))))),kmadd(nn,kmadd(n1,kmul(rm2,ksub(Ro121,Ro211)),kmadd(n2,kmul(rm2,ksub(Ro122,Ro212)),kmadd(n3,kmul(rm2,ksub(Ro123,Ro213)),kmadd(n1,kmul(rm3,ksub(Ro131,Ro311)),kmadd(n2,kmul(rm3,ksub(Ro132,Ro312)),kmul(n3,kmul(rm3,ksub(Ro133,Ro313)))))))),kmadd(ltet3,kmadd(n2,kmul(R4p1223,rm2),kmadd(n2,kmul(R4p1323,rm3),kmadd(nn,kmul(rm2,Ro132),kmadd(nn,kmul(rm3,Ro133),kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro231)),kmul(rm3,kmsub(n1,R4p1313,kmul(nn,Ro331)))))))),kmul(ltet2,kmadd(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmsub(nn,kmadd(rm2,ksub(Ro122,Ro221),kmul(rm3,ksub(Ro123,Ro321))),kmul(n3,kmadd(R4p1223,rm2,kmul(R4p1323,rm3))))))))))))))); - - CCTK_REAL_VEC Psi1rL = - kmadd(kmadd(n2,kmul(R4p1212,rm2),kmadd(n3,kmul(R4p1213,rm2),kmadd(n2,kmul(R4p1213,rm3),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm1,Ro111),kmadd(nn,kmul(rm2,Ro121),kmul(nn,kmul(rm3,Ro131)))))))),kmul(ltet1,ltet1),kmadd(n1,kmul(R4p1313,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p1323,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p2323,kmul(rm2,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm1,kmul(Ro313,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm2,kmul(Ro323,kmul(ltet3,ltet3))),kmadd(n1,kmul(rm1,kmul(Rojo11,kmul(nn,nn))),kmadd(n1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(n1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(n2,kmul(rm1,kmul(Rojo21,kmul(nn,nn))),kmadd(n2,kmul(rm2,kmul(Rojo22,kmul(nn,nn))),kmadd(n2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(n3,kmul(rm1,kmul(Rojo31,kmul(nn,nn))),kmadd(n3,kmul(rm2,kmul(Rojo32,kmul(nn,nn))),kmadd(n3,kmul(rm3,kmul(Rojo33,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo32,kmul(nn,nn)))),kmadd(rm3,kmsub(nn,kmul(Ro333,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo33,kmul(nn,nn)))),kmadd(kmul(ltet2,ltet2),kmadd(nn,kmul(rm1,Ro212),kmadd(nn,kmul(rm2,Ro222),kmadd(nn,kmul(rm3,Ro232),kmadd(rm3,kmsub(n3,R4p2323,kmul(n1,R4p1223)),kmul(rm1,kmsub(n1,R4p1212,kmul(n3,R4p1223))))))),kmsub(ltet3,kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,ToReal(-2)))),knmsub(rm1,kmul(Rojo31,kmul(nn,nn)),kmadd(n2,kmul(nn,kmsub(rm2,kmul(Ro223,ToReal(-2)),kmul(rm3,kadd(Ro323,Ro233)))),kmul(nn,knmsub(n3,kmul(rm2,kadd(Ro323,Ro233)),kmsub(rm1,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(n1,kmadd(rm3,kadd(Ro313,Ro133),kmul(rm2,kadd(Ro213,Ro123)))))))))),kmadd(ltet2,kmadd(ltet1,kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(rm3,kmsub(n1,R4p1213,kmul(nn,Ro132)),knmsub(nn,kmul(rm1,kadd(Ro211,Ro112)),kmadd(rm3,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmul(nn,Ro231)),kmul(rm2,kmsub(n1,R4p1212,kmul(nn,kadd(Ro221,Ro122))))))))),kmsub(nn,kmadd(n3,kmul(rm1,Ro132),kmadd(n3,kmul(rm2,Ro232),kmadd(n3,kmul(rm1,Ro312),kmadd(n3,kmul(rm2,Ro322),kmadd(nn,kmul(rm1,Rojo21),kmadd(nn,kmul(rm2,Rojo22),kmadd(nn,kmul(rm3,Rojo23),kmadd(n3,kmul(rm3,kmul(Ro332,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro132,Ro312),kmul(rm1,kmul(Ro112,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro232,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))))),kmul(ltet3,kmadd(nn,kmul(rm1,Ro213),kmadd(nn,kmul(rm2,Ro223),kmadd(nn,kmul(rm3,Ro233),kmadd(nn,kmul(rm1,Ro312),kmadd(nn,kmul(rm2,Ro322),kmadd(nn,kmul(rm3,Ro332),kmadd(rm1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmsub(n1,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(R4p2323,kmadd(n2,rm3,kmul(n3,rm2)))))))))))))),kmul(ltet1,kmadd(ltet3,kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro123)),kmadd(rm2,kmsub(n3,R4p1323,kmul(nn,Ro321)),kmadd(rm1,kmsub(n3,R4p1313,kmul(nn,kadd(Ro311,Ro113))),kmadd(rm3,kmsub(n1,R4p1313,kmul(nn,kadd(Ro331,Ro133))),kmul(n2,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))))),kmul(nn,kmadd(n3,kmul(rm1,Ro131),kmadd(n3,kmul(rm2,Ro231),kmadd(n3,kmul(rm1,Ro311),kmadd(n3,kmul(rm2,Ro321),kmadd(nn,kmul(rm1,Rojo11),kmadd(nn,kmul(rm2,Rojo12),kmadd(nn,kmul(rm3,Rojo13),kmadd(n3,kmul(rm3,kmul(Ro331,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro131,Ro311),kmul(rm1,kmul(Ro111,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro231,Ro321),kmul(rm2,kmul(Ro221,ToReal(2)))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi1iL = - kmadd(im1,kmadd(nn,kmul(Ro111,kmul(ltet1,ltet1)),kmadd(n1,kmul(R4p1313,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro313,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(kmul(ltet2,ltet2),kmadd(n1,R4p1212,kmsub(nn,Ro212,kmul(n3,R4p1223))),kmsub(ltet3,kmsub(nn,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(Rojo31,kmul(nn,nn))),kmadd(ltet2,kmadd(ltet1,kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211)))),kmsub(nn,kmadd(n3,Ro132,kmadd(n2,kadd(Ro122,Ro212),kmadd(n3,Ro312,kmadd(nn,Rojo21,kmul(n1,kmul(Ro112,ToReal(2))))))),kmul(ltet3,kmadd(n2,R4p1223,kmadd(nn,Ro213,kmadd(nn,Ro312,kmsub(n1,kmul(R4p1213,ToReal(2)),kmul(n3,R4p1323)))))))),kmul(ltet1,kmadd(ltet3,kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),kmul(nn,kmadd(n3,Ro131,kmadd(n2,kadd(Ro121,Ro211),kmadd(n3,Ro311,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2)))))))))))))))))))),kmadd(im2,kmadd(kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,Ro121))),kmul(ltet1,ltet1),kmadd(nn,kmul(Ro222,kmul(ltet2,ltet2)),kmadd(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p2323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro323,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),kmadd(ltet3,kmul(nn,kmsub(n2,kmul(Ro223,ToReal(-2)),kmul(n3,Ro323))),knmsub(ltet3,kmadd(nn,kmadd(n1,kadd(Ro213,Ro123),kmul(n3,Ro233)),kmul(Rojo32,kmul(nn,nn))),kmsub(ltet2,kmsub(ltet3,kmadd(n1,R4p1223,kmsub(nn,kadd(Ro223,Ro322),kmul(n3,R4p2323))),kmul(nn,kmadd(n1,kadd(Ro122,Ro212),kmadd(n3,Ro232,kmadd(n3,Ro322,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(2))))))))),kmul(ltet1,kmadd(ltet2,kmsub(n1,R4p1212,kmadd(nn,kadd(Ro122,Ro221),kmul(n3,R4p1223))),kmadd(ltet3,kmadd(n1,R4p1213,kmadd(n3,R4p1323,kmsub(n2,kmul(R4p1223,ToReal(2)),kmul(nn,kadd(Ro321,Ro123))))),kmul(nn,kmadd(n1,kadd(Ro121,Ro211),kmadd(n3,Ro231,kmadd(n3,Ro321,kmadd(nn,Rojo12,kmul(n2,kmul(Ro221,ToReal(2)))))))))))))))))))))),kmul(im3,kmadd(kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,Ro131))),kmul(ltet1,ltet1),kmsub(kmul(ltet2,ltet2),kmadd(n3,R4p2323,kmsub(nn,Ro232,kmul(n1,R4p1223))),kmadd(ltet1,kmadd(ltet3,kmadd(n1,R4p1313,kmsub(n2,R4p1323,kmul(nn,kadd(Ro133,Ro331)))),kmadd(ltet2,kmadd(n1,R4p1213,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmadd(nn,kadd(Ro231,Ro132),kmul(n2,R4p1223)))),kmul(nn,kmadd(n1,kadd(Ro131,Ro311),kmadd(n2,kadd(Ro231,Ro321),kmadd(nn,Rojo13,kmul(n3,kmul(Ro331,ToReal(2))))))))),kmadd(nn,knmsub(nn,kmadd(n1,Rojo13,kmadd(n2,Rojo23,kmul(n3,Rojo33))),kmsub(ltet3,kmadd(n1,kadd(Ro133,Ro313),kmadd(n2,kadd(Ro233,Ro323),kmadd(nn,Rojo33,kmul(n3,kmul(Ro333,ToReal(2)))))),kmul(Ro333,kmul(ltet3,ltet3)))),kmul(ltet2,kmadd(ltet3,kmadd(n1,R4p1323,kmsub(n2,R4p2323,kmul(nn,kadd(Ro233,Ro332)))),kmul(nn,kmadd(n1,kadd(Ro132,Ro312),kmadd(n2,kadd(Ro232,Ro322),kmadd(nn,Rojo23,kmul(n3,kmul(Ro332,ToReal(2)))))))))))))))); - - CCTK_REAL_VEC Psi0rL = - kmadd(rm1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(rm1,kmul(rm2,kmul(Rojo21,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(ltet2,ltet2),kmul(rm1,rm1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rm1,rm1)),kmadd(R4p1212,kmul(kmul(ltet1,ltet1),kmul(rm2,rm2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rm2,rm2)),kmadd(R4p1313,kmul(kmul(ltet1,ltet1),kmul(rm3,rm3)),kmadd(R4p2323,kmul(kmul(ltet2,ltet2),kmul(rm3,rm3)),kmadd(kmadd(ltet1,kmul(ltet2,kmul(R4p1212,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1213,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1313,kmul(rm1,rm3))),kmadd(ltet1,kmul(ltet3,kmul(R4p1323,kmul(rm2,rm3))),kmadd(ltet2,kmul(ltet3,kmul(R4p2323,kmul(rm2,rm3))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(im3,im3))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(im3,im3))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(im3,im3))),kmul(R4p1223,kmul(rm1,kmul(rm3,kmul(ltet2,ltet2)))))))))))),ToReal(-2),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,kmul(kmul(rm2,rm2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(ltet3,ltet3),kmul(rm1,rm1),kmul(kmul(im3,im3),kmul(ltet1,ltet1))),kmadd(R4p2323,kmsub(kmul(ltet3,ltet3),kmul(rm2,rm2),kmul(kmul(im3,im3),kmul(ltet2,ltet2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rm3,rm3),kmul(kmul(im3,im3),kmul(nn,nn))),kmadd(kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro112))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro113))),kmadd(ltet2,kmul(nn,kmul(rm1,kmul(rm3,Ro123))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro132))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro133))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro211))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro213))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro223))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro231))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro233))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro311))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro312))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro322))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro331))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro332))),kmadd(R4p1213,kmul(rm2,kmul(rm3,kmul(ltet1,ltet1))),kmul(R4p1323,kmul(rm1,kmul(rm2,kmul(ltet3,ltet3)))))))))))))))))))),ToReal(2),kmadd(ltet1,kmul(nn,kmul(Ro111,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro121,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro131,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro212,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro222,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro232,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(kmul(rm3,rm3),ToReal(2)))),knmsub(kmul(im2,im2),kmadd(R4p1212,kmul(ltet1,ltet1),kmadd(R4p2323,kmul(ltet3,ltet3),kmadd(Rojo22,kmul(nn,nn),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,ToReal(-2))),kmadd(ltet1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(ltet2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(ltet3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(ltet2,kmadd(ltet1,kmul(R4p1213,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(ltet3,kmul(R4p1323,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(im3,im3),ToReal(-2))),kmadd(ltet3,kmul(R4p1223,kmul(rm1,kmul(rm2,ToReal(2)))),kmadd(ltet1,kmul(R4p1223,kmul(rm2,kmul(rm3,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm3,kmul(Ro321,ToReal(2)))),kmul(ltet3,kmul(R4p1213,kmul(kmul(rm1,rm1),ToReal(2)))))))))))),knmsub(kmul(im1,im1),kmadd(R4p1212,kmul(ltet2,ltet2),kmadd(R4p1313,kmul(ltet3,ltet3),kmadd(ltet2,kmul(kmadd(ltet3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(ltet1,kmul(Ro111,ToReal(2))))))))),kmsub(im1,kmul(im3,kmadd(R4p1223,kmul(kmul(ltet2,ltet2),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1213,kmsub(ltet3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(ltet2,kmul(kmsub(ltet3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(ltet3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(im2,kmadd(im3,kmadd(R4p1213,kmul(kmul(ltet1,ltet1),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(ltet3,R4p1323))),ToReal(2)),kmadd(ltet2,kmadd(ltet3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(ltet3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(im1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(ltet1,kmul(ToReal(-2),kmadd(ltet2,R4p1212,kmsub(ltet3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(ltet3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(ltet2,kmul(kmadd(ltet3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(ltet3,ltet3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi0iL = - kmadd(im1,kmadd(nn,kmadd(ltet1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(ltet3,ltet3),kmadd(kmul(ltet2,ltet2),kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(ltet2,knmsub(ltet1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(ltet3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2)))))))),kmul(ltet3,kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(ltet1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3)))))))))),kmadd(im3,kmadd(kmul(ltet2,ltet2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(nn,kmadd(ltet3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(ltet1,ltet1),kmadd(ltet1,knmsub(ltet3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(ltet2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2)))))))),kmul(ltet2,kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(ltet3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2)))))))))),kmul(im2,kmadd(kmadd(rm1,kadd(Rojo12,Rojo21),kmul(rm3,kadd(Rojo23,Rojo32))),kmul(nn,nn),kmadd(ToReal(2),kmadd(ltet3,kmul(nn,kmadd(rm1,kadd(Ro132,Ro231),kmul(rm3,Ro233))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(ltet1,ltet1),kmadd(kmadd(R4p1323,rm1,kmul(R4p2323,rm2)),kmul(ltet3,ltet3),kmadd(rm2,kmul(Rojo22,kmul(nn,nn)),kmadd(ltet1,kmadd(ltet2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(ltet3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))),kmul(ltet2,kmadd(ltet3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))),kmul(ltet3,kmul(nn,kmadd(rm3,kmul(Ro332,ToReal(2)),kmul(rm2,kmul(Ro232,ToReal(4))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(Psi0i[index],Psi0iL); - vec_store_nta_partial(Psi0r[index],Psi0rL); - vec_store_nta_partial(Psi1i[index],Psi1iL); - vec_store_nta_partial(Psi1r[index],Psi1rL); - vec_store_nta_partial(Psi2i[index],Psi2iL); - vec_store_nta_partial(Psi2r[index],Psi2rL); - vec_store_nta_partial(Psi3i[index],Psi3iL); - vec_store_nta_partial(Psi3r[index],Psi3rL); - vec_store_nta_partial(Psi4i[index],Psi4iL); - vec_store_nta_partial(Psi4r[index],Psi4rL); - } - LC_ENDLOOP3VEC(psis_calc_4th); -} - -extern "C" void psis_calc_4th(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering psis_calc_4th_Body"); - } - - if (cctk_iteration % psis_calc_4th_calc_every != psis_calc_4th_calc_offset) - { - return; - } - - const char *const groups[] = { - "admbase::curv", - "admbase::metric", - "grid::coordinates", - "WeylScal4::Psi0i_group", - "WeylScal4::Psi0r_group", - "WeylScal4::Psi1i_group", - "WeylScal4::Psi1r_group", - "WeylScal4::Psi2i_group", - "WeylScal4::Psi2r_group", - "WeylScal4::Psi3i_group", - "WeylScal4::Psi3r_group", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "psis_calc_4th", 13, groups); - - switch(fdOrder) - { - case 2: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_4th", 2, 2, 2); - break; - - case 4: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_4th", 2, 2, 2); - break; - - case 6: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_4th", 2, 2, 2); - break; - - case 8: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_4th", 2, 2, 2); - break; - } - - GenericFD_LoopOverInterior(cctkGH, psis_calc_4th_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving psis_calc_4th_Body"); - } -} diff --git a/src/psis_calc_Nth.cc b/src/psis_calc_Nth.cc deleted file mode 100644 index e6bae2f..0000000 --- a/src/psis_calc_Nth.cc +++ /dev/null @@ -1,1426 +0,0 @@ -/* File produced by Kranc */ - -#define KRANC_C - -#include -#include -#include -#include -#include -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" -#include "GenericFD.h" -#include "Differencing.h" -#include "cctk_Loop.h" -#include "loopcontrol.h" -#include "vectors.h" - -/* Define macros used in calculations */ -#define INITVALUE (42) -#define ScalarINV(x) ((CCTK_REAL)1.0 / (x)) -#define ScalarSQR(x) ((x) * (x)) -#define ScalarCUB(x) ((x) * ScalarSQR(x)) -#define ScalarQAD(x) (ScalarSQR(ScalarSQR(x))) -#define INV(x) (kdiv(ToReal(1.0),x)) -#define SQR(x) (kmul(x,x)) -#define CUB(x) (kmul(x,SQR(x))) -#define QAD(x) (SQR(SQR(x))) - -extern "C" void psis_calc_Nth_SelectBCs(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - CCTK_INT ierr = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi0r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi0r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi1r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi1r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi2r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi2r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi3r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi3r_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4i_group."); - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4r_group","flat"); - if (ierr < 0) - CCTK_WARN(1, "Failed to register flat BC for WeylScal4::Psi4r_group."); - return; -} - -static void psis_calc_Nth_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - /* Include user-supplied include files */ - - /* Initialise finite differencing variables */ - ptrdiff_t const di = 1; - ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); - ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; - ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; - ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; - CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); - CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); - CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); - CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); - CCTK_REAL_VEC const t = ToReal(cctk_time); - CCTK_REAL_VEC const dxi = INV(dx); - CCTK_REAL_VEC const dyi = INV(dy); - CCTK_REAL_VEC const dzi = INV(dz); - CCTK_REAL_VEC const khalf = ToReal(0.5); - CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); - CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); - CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); - CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); - CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); - CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); - CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); - - /* Initialize predefined quantities */ - CCTK_REAL_VEC const p1o12dx = kdiv(ToReal(0.0833333333333333333333333333333),dx); - CCTK_REAL_VEC const p1o12dy = kdiv(ToReal(0.0833333333333333333333333333333),dy); - CCTK_REAL_VEC const p1o12dz = kdiv(ToReal(0.0833333333333333333333333333333),dz); - CCTK_REAL_VEC const p1o144dxdy = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - CCTK_REAL_VEC const p1o144dxdz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - CCTK_REAL_VEC const p1o144dydz = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); - CCTK_REAL_VEC const p1o180dx2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); - CCTK_REAL_VEC const p1o180dy2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); - CCTK_REAL_VEC const p1o180dz2 = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); - CCTK_REAL_VEC const p1o2dx = kdiv(ToReal(0.5),dx); - CCTK_REAL_VEC const p1o2dy = kdiv(ToReal(0.5),dy); - CCTK_REAL_VEC const p1o2dz = kdiv(ToReal(0.5),dz); - CCTK_REAL_VEC const p1o3600dxdy = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - CCTK_REAL_VEC const p1o3600dxdz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - CCTK_REAL_VEC const p1o3600dydz = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - CCTK_REAL_VEC const p1o4dxdy = kdiv(ToReal(0.25),kmul(dy,dx)); - CCTK_REAL_VEC const p1o4dxdz = kdiv(ToReal(0.25),kmul(dz,dx)); - CCTK_REAL_VEC const p1o4dydz = kdiv(ToReal(0.25),kmul(dz,dy)); - CCTK_REAL_VEC const p1o5040dx2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); - CCTK_REAL_VEC const p1o5040dy2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); - CCTK_REAL_VEC const p1o5040dz2 = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); - CCTK_REAL_VEC const p1o60dx = kdiv(ToReal(0.0166666666666666666666666666667),dx); - CCTK_REAL_VEC const p1o60dy = kdiv(ToReal(0.0166666666666666666666666666667),dy); - CCTK_REAL_VEC const p1o60dz = kdiv(ToReal(0.0166666666666666666666666666667),dz); - CCTK_REAL_VEC const p1o705600dxdy = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - CCTK_REAL_VEC const p1o705600dxdz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - CCTK_REAL_VEC const p1o705600dydz = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); - CCTK_REAL_VEC const p1o840dx = kdiv(ToReal(0.00119047619047619047619047619048),dx); - CCTK_REAL_VEC const p1o840dy = kdiv(ToReal(0.00119047619047619047619047619048),dy); - CCTK_REAL_VEC const p1o840dz = kdiv(ToReal(0.00119047619047619047619047619048),dz); - CCTK_REAL_VEC const p1odx2 = kdiv(ToReal(1),kmul(dx,dx)); - CCTK_REAL_VEC const p1ody2 = kdiv(ToReal(1),kmul(dy,dy)); - CCTK_REAL_VEC const p1odz2 = kdiv(ToReal(1),kmul(dz,dz)); - CCTK_REAL_VEC const pm1o12dx2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); - CCTK_REAL_VEC const pm1o12dy2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); - CCTK_REAL_VEC const pm1o12dz2 = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - - /* Jacobian variable pointers */ - bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) - && strlen(jacobian_group) > 0; - if (use_jacobian && strlen(jacobian_derivative_group) == 0) - { - CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); - } - - CCTK_REAL const *restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, - 9, jacobian_ptrs); - - CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; - CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; - CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; - CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; - CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; - CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; - CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; - CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; - CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; - - CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); - - CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; - - /* Assign local copies of arrays functions */ - - - - /* Calculate temporaries and arrays functions */ - - /* Copy local copies back to grid functions */ - - /* Loop over the grid points */ - #pragma omp parallel - LC_LOOP3VEC(psis_calc_Nth, - i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], - cctk_ash[0],cctk_ash[1],cctk_ash[2], - CCTK_REAL_VEC_SIZE) - { - ptrdiff_t const index = di*i + dj*j + dk*k; - - /* Assign local copies of grid functions */ - - CCTK_REAL_VEC gxxL = vec_load(gxx[index]); - CCTK_REAL_VEC gxyL = vec_load(gxy[index]); - CCTK_REAL_VEC gxzL = vec_load(gxz[index]); - CCTK_REAL_VEC gyyL = vec_load(gyy[index]); - CCTK_REAL_VEC gyzL = vec_load(gyz[index]); - CCTK_REAL_VEC gzzL = vec_load(gzz[index]); - CCTK_REAL_VEC kxxL = vec_load(kxx[index]); - CCTK_REAL_VEC kxyL = vec_load(kxy[index]); - CCTK_REAL_VEC kxzL = vec_load(kxz[index]); - CCTK_REAL_VEC kyyL = vec_load(kyy[index]); - CCTK_REAL_VEC kyzL = vec_load(kyz[index]); - CCTK_REAL_VEC kzzL = vec_load(kzz[index]); - CCTK_REAL_VEC xL = vec_load(x[index]); - CCTK_REAL_VEC yL = vec_load(y[index]); - CCTK_REAL_VEC zL = vec_load(z[index]); - - - CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; - - if (use_jacobian) - { - dJ111L = vec_load(dJ111[index]); - dJ112L = vec_load(dJ112[index]); - dJ113L = vec_load(dJ113[index]); - dJ122L = vec_load(dJ122[index]); - dJ123L = vec_load(dJ123[index]); - dJ133L = vec_load(dJ133[index]); - dJ211L = vec_load(dJ211[index]); - dJ212L = vec_load(dJ212[index]); - dJ213L = vec_load(dJ213[index]); - dJ222L = vec_load(dJ222[index]); - dJ223L = vec_load(dJ223[index]); - dJ233L = vec_load(dJ233[index]); - dJ311L = vec_load(dJ311[index]); - dJ312L = vec_load(dJ312[index]); - dJ313L = vec_load(dJ313[index]); - dJ322L = vec_load(dJ322[index]); - dJ323L = vec_load(dJ323[index]); - dJ333L = vec_load(dJ333[index]); - J11L = vec_load(J11[index]); - J12L = vec_load(J12[index]); - J13L = vec_load(J13[index]); - J21L = vec_load(J21[index]); - J22L = vec_load(J22[index]); - J23L = vec_load(J23[index]); - J31L = vec_load(J31[index]); - J32L = vec_load(J32[index]); - J33L = vec_load(J33[index]); - } - - /* Include user supplied include files */ - - /* Precompute derivatives */ - CCTK_REAL_VEC PDstandard1gxx; - CCTK_REAL_VEC PDstandard2gxx; - CCTK_REAL_VEC PDstandard3gxx; - CCTK_REAL_VEC PDstandard11gxx; - CCTK_REAL_VEC PDstandard22gxx; - CCTK_REAL_VEC PDstandard33gxx; - CCTK_REAL_VEC PDstandard12gxx; - CCTK_REAL_VEC PDstandard13gxx; - CCTK_REAL_VEC PDstandard23gxx; - CCTK_REAL_VEC PDstandard1gxy; - CCTK_REAL_VEC PDstandard2gxy; - CCTK_REAL_VEC PDstandard3gxy; - CCTK_REAL_VEC PDstandard11gxy; - CCTK_REAL_VEC PDstandard22gxy; - CCTK_REAL_VEC PDstandard33gxy; - CCTK_REAL_VEC PDstandard12gxy; - CCTK_REAL_VEC PDstandard13gxy; - CCTK_REAL_VEC PDstandard23gxy; - CCTK_REAL_VEC PDstandard1gxz; - CCTK_REAL_VEC PDstandard2gxz; - CCTK_REAL_VEC PDstandard3gxz; - CCTK_REAL_VEC PDstandard11gxz; - CCTK_REAL_VEC PDstandard22gxz; - CCTK_REAL_VEC PDstandard33gxz; - CCTK_REAL_VEC PDstandard12gxz; - CCTK_REAL_VEC PDstandard13gxz; - CCTK_REAL_VEC PDstandard23gxz; - CCTK_REAL_VEC PDstandard1gyy; - CCTK_REAL_VEC PDstandard2gyy; - CCTK_REAL_VEC PDstandard3gyy; - CCTK_REAL_VEC PDstandard11gyy; - CCTK_REAL_VEC PDstandard22gyy; - CCTK_REAL_VEC PDstandard33gyy; - CCTK_REAL_VEC PDstandard12gyy; - CCTK_REAL_VEC PDstandard13gyy; - CCTK_REAL_VEC PDstandard23gyy; - CCTK_REAL_VEC PDstandard1gyz; - CCTK_REAL_VEC PDstandard2gyz; - CCTK_REAL_VEC PDstandard3gyz; - CCTK_REAL_VEC PDstandard11gyz; - CCTK_REAL_VEC PDstandard22gyz; - CCTK_REAL_VEC PDstandard33gyz; - CCTK_REAL_VEC PDstandard12gyz; - CCTK_REAL_VEC PDstandard13gyz; - CCTK_REAL_VEC PDstandard23gyz; - CCTK_REAL_VEC PDstandard1gzz; - CCTK_REAL_VEC PDstandard2gzz; - CCTK_REAL_VEC PDstandard3gzz; - CCTK_REAL_VEC PDstandard11gzz; - CCTK_REAL_VEC PDstandard22gzz; - CCTK_REAL_VEC PDstandard33gzz; - CCTK_REAL_VEC PDstandard12gzz; - CCTK_REAL_VEC PDstandard13gzz; - CCTK_REAL_VEC PDstandard23gzz; - CCTK_REAL_VEC PDstandard1kxx; - CCTK_REAL_VEC PDstandard2kxx; - CCTK_REAL_VEC PDstandard3kxx; - CCTK_REAL_VEC PDstandard1kxy; - CCTK_REAL_VEC PDstandard2kxy; - CCTK_REAL_VEC PDstandard3kxy; - CCTK_REAL_VEC PDstandard1kxz; - CCTK_REAL_VEC PDstandard2kxz; - CCTK_REAL_VEC PDstandard3kxz; - CCTK_REAL_VEC PDstandard1kyy; - CCTK_REAL_VEC PDstandard2kyy; - CCTK_REAL_VEC PDstandard3kyy; - CCTK_REAL_VEC PDstandard1kyz; - CCTK_REAL_VEC PDstandard2kyz; - CCTK_REAL_VEC PDstandard3kyz; - CCTK_REAL_VEC PDstandard1kzz; - CCTK_REAL_VEC PDstandard2kzz; - CCTK_REAL_VEC PDstandard3kzz; - - switch(fdOrder) - { - case 2: - PDstandard1gxx = PDstandardfdOrder21(&gxx[index]); - PDstandard2gxx = PDstandardfdOrder22(&gxx[index]); - PDstandard3gxx = PDstandardfdOrder23(&gxx[index]); - PDstandard11gxx = PDstandardfdOrder211(&gxx[index]); - PDstandard22gxx = PDstandardfdOrder222(&gxx[index]); - PDstandard33gxx = PDstandardfdOrder233(&gxx[index]); - PDstandard12gxx = PDstandardfdOrder212(&gxx[index]); - PDstandard13gxx = PDstandardfdOrder213(&gxx[index]); - PDstandard23gxx = PDstandardfdOrder223(&gxx[index]); - PDstandard1gxy = PDstandardfdOrder21(&gxy[index]); - PDstandard2gxy = PDstandardfdOrder22(&gxy[index]); - PDstandard3gxy = PDstandardfdOrder23(&gxy[index]); - PDstandard11gxy = PDstandardfdOrder211(&gxy[index]); - PDstandard22gxy = PDstandardfdOrder222(&gxy[index]); - PDstandard33gxy = PDstandardfdOrder233(&gxy[index]); - PDstandard12gxy = PDstandardfdOrder212(&gxy[index]); - PDstandard13gxy = PDstandardfdOrder213(&gxy[index]); - PDstandard23gxy = PDstandardfdOrder223(&gxy[index]); - PDstandard1gxz = PDstandardfdOrder21(&gxz[index]); - PDstandard2gxz = PDstandardfdOrder22(&gxz[index]); - PDstandard3gxz = PDstandardfdOrder23(&gxz[index]); - PDstandard11gxz = PDstandardfdOrder211(&gxz[index]); - PDstandard22gxz = PDstandardfdOrder222(&gxz[index]); - PDstandard33gxz = PDstandardfdOrder233(&gxz[index]); - PDstandard12gxz = PDstandardfdOrder212(&gxz[index]); - PDstandard13gxz = PDstandardfdOrder213(&gxz[index]); - PDstandard23gxz = PDstandardfdOrder223(&gxz[index]); - PDstandard1gyy = PDstandardfdOrder21(&gyy[index]); - PDstandard2gyy = PDstandardfdOrder22(&gyy[index]); - PDstandard3gyy = PDstandardfdOrder23(&gyy[index]); - PDstandard11gyy = PDstandardfdOrder211(&gyy[index]); - PDstandard22gyy = PDstandardfdOrder222(&gyy[index]); - PDstandard33gyy = PDstandardfdOrder233(&gyy[index]); - PDstandard12gyy = PDstandardfdOrder212(&gyy[index]); - PDstandard13gyy = PDstandardfdOrder213(&gyy[index]); - PDstandard23gyy = PDstandardfdOrder223(&gyy[index]); - PDstandard1gyz = PDstandardfdOrder21(&gyz[index]); - PDstandard2gyz = PDstandardfdOrder22(&gyz[index]); - PDstandard3gyz = PDstandardfdOrder23(&gyz[index]); - PDstandard11gyz = PDstandardfdOrder211(&gyz[index]); - PDstandard22gyz = PDstandardfdOrder222(&gyz[index]); - PDstandard33gyz = PDstandardfdOrder233(&gyz[index]); - PDstandard12gyz = PDstandardfdOrder212(&gyz[index]); - PDstandard13gyz = PDstandardfdOrder213(&gyz[index]); - PDstandard23gyz = PDstandardfdOrder223(&gyz[index]); - PDstandard1gzz = PDstandardfdOrder21(&gzz[index]); - PDstandard2gzz = PDstandardfdOrder22(&gzz[index]); - PDstandard3gzz = PDstandardfdOrder23(&gzz[index]); - PDstandard11gzz = PDstandardfdOrder211(&gzz[index]); - PDstandard22gzz = PDstandardfdOrder222(&gzz[index]); - PDstandard33gzz = PDstandardfdOrder233(&gzz[index]); - PDstandard12gzz = PDstandardfdOrder212(&gzz[index]); - PDstandard13gzz = PDstandardfdOrder213(&gzz[index]); - PDstandard23gzz = PDstandardfdOrder223(&gzz[index]); - PDstandard1kxx = PDstandardfdOrder21(&kxx[index]); - PDstandard2kxx = PDstandardfdOrder22(&kxx[index]); - PDstandard3kxx = PDstandardfdOrder23(&kxx[index]); - PDstandard1kxy = PDstandardfdOrder21(&kxy[index]); - PDstandard2kxy = PDstandardfdOrder22(&kxy[index]); - PDstandard3kxy = PDstandardfdOrder23(&kxy[index]); - PDstandard1kxz = PDstandardfdOrder21(&kxz[index]); - PDstandard2kxz = PDstandardfdOrder22(&kxz[index]); - PDstandard3kxz = PDstandardfdOrder23(&kxz[index]); - PDstandard1kyy = PDstandardfdOrder21(&kyy[index]); - PDstandard2kyy = PDstandardfdOrder22(&kyy[index]); - PDstandard3kyy = PDstandardfdOrder23(&kyy[index]); - PDstandard1kyz = PDstandardfdOrder21(&kyz[index]); - PDstandard2kyz = PDstandardfdOrder22(&kyz[index]); - PDstandard3kyz = PDstandardfdOrder23(&kyz[index]); - PDstandard1kzz = PDstandardfdOrder21(&kzz[index]); - PDstandard2kzz = PDstandardfdOrder22(&kzz[index]); - PDstandard3kzz = PDstandardfdOrder23(&kzz[index]); - break; - - case 4: - PDstandard1gxx = PDstandardfdOrder41(&gxx[index]); - PDstandard2gxx = PDstandardfdOrder42(&gxx[index]); - PDstandard3gxx = PDstandardfdOrder43(&gxx[index]); - PDstandard11gxx = PDstandardfdOrder411(&gxx[index]); - PDstandard22gxx = PDstandardfdOrder422(&gxx[index]); - PDstandard33gxx = PDstandardfdOrder433(&gxx[index]); - PDstandard12gxx = PDstandardfdOrder412(&gxx[index]); - PDstandard13gxx = PDstandardfdOrder413(&gxx[index]); - PDstandard23gxx = PDstandardfdOrder423(&gxx[index]); - PDstandard1gxy = PDstandardfdOrder41(&gxy[index]); - PDstandard2gxy = PDstandardfdOrder42(&gxy[index]); - PDstandard3gxy = PDstandardfdOrder43(&gxy[index]); - PDstandard11gxy = PDstandardfdOrder411(&gxy[index]); - PDstandard22gxy = PDstandardfdOrder422(&gxy[index]); - PDstandard33gxy = PDstandardfdOrder433(&gxy[index]); - PDstandard12gxy = PDstandardfdOrder412(&gxy[index]); - PDstandard13gxy = PDstandardfdOrder413(&gxy[index]); - PDstandard23gxy = PDstandardfdOrder423(&gxy[index]); - PDstandard1gxz = PDstandardfdOrder41(&gxz[index]); - PDstandard2gxz = PDstandardfdOrder42(&gxz[index]); - PDstandard3gxz = PDstandardfdOrder43(&gxz[index]); - PDstandard11gxz = PDstandardfdOrder411(&gxz[index]); - PDstandard22gxz = PDstandardfdOrder422(&gxz[index]); - PDstandard33gxz = PDstandardfdOrder433(&gxz[index]); - PDstandard12gxz = PDstandardfdOrder412(&gxz[index]); - PDstandard13gxz = PDstandardfdOrder413(&gxz[index]); - PDstandard23gxz = PDstandardfdOrder423(&gxz[index]); - PDstandard1gyy = PDstandardfdOrder41(&gyy[index]); - PDstandard2gyy = PDstandardfdOrder42(&gyy[index]); - PDstandard3gyy = PDstandardfdOrder43(&gyy[index]); - PDstandard11gyy = PDstandardfdOrder411(&gyy[index]); - PDstandard22gyy = PDstandardfdOrder422(&gyy[index]); - PDstandard33gyy = PDstandardfdOrder433(&gyy[index]); - PDstandard12gyy = PDstandardfdOrder412(&gyy[index]); - PDstandard13gyy = PDstandardfdOrder413(&gyy[index]); - PDstandard23gyy = PDstandardfdOrder423(&gyy[index]); - PDstandard1gyz = PDstandardfdOrder41(&gyz[index]); - PDstandard2gyz = PDstandardfdOrder42(&gyz[index]); - PDstandard3gyz = PDstandardfdOrder43(&gyz[index]); - PDstandard11gyz = PDstandardfdOrder411(&gyz[index]); - PDstandard22gyz = PDstandardfdOrder422(&gyz[index]); - PDstandard33gyz = PDstandardfdOrder433(&gyz[index]); - PDstandard12gyz = PDstandardfdOrder412(&gyz[index]); - PDstandard13gyz = PDstandardfdOrder413(&gyz[index]); - PDstandard23gyz = PDstandardfdOrder423(&gyz[index]); - PDstandard1gzz = PDstandardfdOrder41(&gzz[index]); - PDstandard2gzz = PDstandardfdOrder42(&gzz[index]); - PDstandard3gzz = PDstandardfdOrder43(&gzz[index]); - PDstandard11gzz = PDstandardfdOrder411(&gzz[index]); - PDstandard22gzz = PDstandardfdOrder422(&gzz[index]); - PDstandard33gzz = PDstandardfdOrder433(&gzz[index]); - PDstandard12gzz = PDstandardfdOrder412(&gzz[index]); - PDstandard13gzz = PDstandardfdOrder413(&gzz[index]); - PDstandard23gzz = PDstandardfdOrder423(&gzz[index]); - PDstandard1kxx = PDstandardfdOrder41(&kxx[index]); - PDstandard2kxx = PDstandardfdOrder42(&kxx[index]); - PDstandard3kxx = PDstandardfdOrder43(&kxx[index]); - PDstandard1kxy = PDstandardfdOrder41(&kxy[index]); - PDstandard2kxy = PDstandardfdOrder42(&kxy[index]); - PDstandard3kxy = PDstandardfdOrder43(&kxy[index]); - PDstandard1kxz = PDstandardfdOrder41(&kxz[index]); - PDstandard2kxz = PDstandardfdOrder42(&kxz[index]); - PDstandard3kxz = PDstandardfdOrder43(&kxz[index]); - PDstandard1kyy = PDstandardfdOrder41(&kyy[index]); - PDstandard2kyy = PDstandardfdOrder42(&kyy[index]); - PDstandard3kyy = PDstandardfdOrder43(&kyy[index]); - PDstandard1kyz = PDstandardfdOrder41(&kyz[index]); - PDstandard2kyz = PDstandardfdOrder42(&kyz[index]); - PDstandard3kyz = PDstandardfdOrder43(&kyz[index]); - PDstandard1kzz = PDstandardfdOrder41(&kzz[index]); - PDstandard2kzz = PDstandardfdOrder42(&kzz[index]); - PDstandard3kzz = PDstandardfdOrder43(&kzz[index]); - break; - - case 6: - PDstandard1gxx = PDstandardfdOrder61(&gxx[index]); - PDstandard2gxx = PDstandardfdOrder62(&gxx[index]); - PDstandard3gxx = PDstandardfdOrder63(&gxx[index]); - PDstandard11gxx = PDstandardfdOrder611(&gxx[index]); - PDstandard22gxx = PDstandardfdOrder622(&gxx[index]); - PDstandard33gxx = PDstandardfdOrder633(&gxx[index]); - PDstandard12gxx = PDstandardfdOrder612(&gxx[index]); - PDstandard13gxx = PDstandardfdOrder613(&gxx[index]); - PDstandard23gxx = PDstandardfdOrder623(&gxx[index]); - PDstandard1gxy = PDstandardfdOrder61(&gxy[index]); - PDstandard2gxy = PDstandardfdOrder62(&gxy[index]); - PDstandard3gxy = PDstandardfdOrder63(&gxy[index]); - PDstandard11gxy = PDstandardfdOrder611(&gxy[index]); - PDstandard22gxy = PDstandardfdOrder622(&gxy[index]); - PDstandard33gxy = PDstandardfdOrder633(&gxy[index]); - PDstandard12gxy = PDstandardfdOrder612(&gxy[index]); - PDstandard13gxy = PDstandardfdOrder613(&gxy[index]); - PDstandard23gxy = PDstandardfdOrder623(&gxy[index]); - PDstandard1gxz = PDstandardfdOrder61(&gxz[index]); - PDstandard2gxz = PDstandardfdOrder62(&gxz[index]); - PDstandard3gxz = PDstandardfdOrder63(&gxz[index]); - PDstandard11gxz = PDstandardfdOrder611(&gxz[index]); - PDstandard22gxz = PDstandardfdOrder622(&gxz[index]); - PDstandard33gxz = PDstandardfdOrder633(&gxz[index]); - PDstandard12gxz = PDstandardfdOrder612(&gxz[index]); - PDstandard13gxz = PDstandardfdOrder613(&gxz[index]); - PDstandard23gxz = PDstandardfdOrder623(&gxz[index]); - PDstandard1gyy = PDstandardfdOrder61(&gyy[index]); - PDstandard2gyy = PDstandardfdOrder62(&gyy[index]); - PDstandard3gyy = PDstandardfdOrder63(&gyy[index]); - PDstandard11gyy = PDstandardfdOrder611(&gyy[index]); - PDstandard22gyy = PDstandardfdOrder622(&gyy[index]); - PDstandard33gyy = PDstandardfdOrder633(&gyy[index]); - PDstandard12gyy = PDstandardfdOrder612(&gyy[index]); - PDstandard13gyy = PDstandardfdOrder613(&gyy[index]); - PDstandard23gyy = PDstandardfdOrder623(&gyy[index]); - PDstandard1gyz = PDstandardfdOrder61(&gyz[index]); - PDstandard2gyz = PDstandardfdOrder62(&gyz[index]); - PDstandard3gyz = PDstandardfdOrder63(&gyz[index]); - PDstandard11gyz = PDstandardfdOrder611(&gyz[index]); - PDstandard22gyz = PDstandardfdOrder622(&gyz[index]); - PDstandard33gyz = PDstandardfdOrder633(&gyz[index]); - PDstandard12gyz = PDstandardfdOrder612(&gyz[index]); - PDstandard13gyz = PDstandardfdOrder613(&gyz[index]); - PDstandard23gyz = PDstandardfdOrder623(&gyz[index]); - PDstandard1gzz = PDstandardfdOrder61(&gzz[index]); - PDstandard2gzz = PDstandardfdOrder62(&gzz[index]); - PDstandard3gzz = PDstandardfdOrder63(&gzz[index]); - PDstandard11gzz = PDstandardfdOrder611(&gzz[index]); - PDstandard22gzz = PDstandardfdOrder622(&gzz[index]); - PDstandard33gzz = PDstandardfdOrder633(&gzz[index]); - PDstandard12gzz = PDstandardfdOrder612(&gzz[index]); - PDstandard13gzz = PDstandardfdOrder613(&gzz[index]); - PDstandard23gzz = PDstandardfdOrder623(&gzz[index]); - PDstandard1kxx = PDstandardfdOrder61(&kxx[index]); - PDstandard2kxx = PDstandardfdOrder62(&kxx[index]); - PDstandard3kxx = PDstandardfdOrder63(&kxx[index]); - PDstandard1kxy = PDstandardfdOrder61(&kxy[index]); - PDstandard2kxy = PDstandardfdOrder62(&kxy[index]); - PDstandard3kxy = PDstandardfdOrder63(&kxy[index]); - PDstandard1kxz = PDstandardfdOrder61(&kxz[index]); - PDstandard2kxz = PDstandardfdOrder62(&kxz[index]); - PDstandard3kxz = PDstandardfdOrder63(&kxz[index]); - PDstandard1kyy = PDstandardfdOrder61(&kyy[index]); - PDstandard2kyy = PDstandardfdOrder62(&kyy[index]); - PDstandard3kyy = PDstandardfdOrder63(&kyy[index]); - PDstandard1kyz = PDstandardfdOrder61(&kyz[index]); - PDstandard2kyz = PDstandardfdOrder62(&kyz[index]); - PDstandard3kyz = PDstandardfdOrder63(&kyz[index]); - PDstandard1kzz = PDstandardfdOrder61(&kzz[index]); - PDstandard2kzz = PDstandardfdOrder62(&kzz[index]); - PDstandard3kzz = PDstandardfdOrder63(&kzz[index]); - break; - - case 8: - PDstandard1gxx = PDstandardfdOrder81(&gxx[index]); - PDstandard2gxx = PDstandardfdOrder82(&gxx[index]); - PDstandard3gxx = PDstandardfdOrder83(&gxx[index]); - PDstandard11gxx = PDstandardfdOrder811(&gxx[index]); - PDstandard22gxx = PDstandardfdOrder822(&gxx[index]); - PDstandard33gxx = PDstandardfdOrder833(&gxx[index]); - PDstandard12gxx = PDstandardfdOrder812(&gxx[index]); - PDstandard13gxx = PDstandardfdOrder813(&gxx[index]); - PDstandard23gxx = PDstandardfdOrder823(&gxx[index]); - PDstandard1gxy = PDstandardfdOrder81(&gxy[index]); - PDstandard2gxy = PDstandardfdOrder82(&gxy[index]); - PDstandard3gxy = PDstandardfdOrder83(&gxy[index]); - PDstandard11gxy = PDstandardfdOrder811(&gxy[index]); - PDstandard22gxy = PDstandardfdOrder822(&gxy[index]); - PDstandard33gxy = PDstandardfdOrder833(&gxy[index]); - PDstandard12gxy = PDstandardfdOrder812(&gxy[index]); - PDstandard13gxy = PDstandardfdOrder813(&gxy[index]); - PDstandard23gxy = PDstandardfdOrder823(&gxy[index]); - PDstandard1gxz = PDstandardfdOrder81(&gxz[index]); - PDstandard2gxz = PDstandardfdOrder82(&gxz[index]); - PDstandard3gxz = PDstandardfdOrder83(&gxz[index]); - PDstandard11gxz = PDstandardfdOrder811(&gxz[index]); - PDstandard22gxz = PDstandardfdOrder822(&gxz[index]); - PDstandard33gxz = PDstandardfdOrder833(&gxz[index]); - PDstandard12gxz = PDstandardfdOrder812(&gxz[index]); - PDstandard13gxz = PDstandardfdOrder813(&gxz[index]); - PDstandard23gxz = PDstandardfdOrder823(&gxz[index]); - PDstandard1gyy = PDstandardfdOrder81(&gyy[index]); - PDstandard2gyy = PDstandardfdOrder82(&gyy[index]); - PDstandard3gyy = PDstandardfdOrder83(&gyy[index]); - PDstandard11gyy = PDstandardfdOrder811(&gyy[index]); - PDstandard22gyy = PDstandardfdOrder822(&gyy[index]); - PDstandard33gyy = PDstandardfdOrder833(&gyy[index]); - PDstandard12gyy = PDstandardfdOrder812(&gyy[index]); - PDstandard13gyy = PDstandardfdOrder813(&gyy[index]); - PDstandard23gyy = PDstandardfdOrder823(&gyy[index]); - PDstandard1gyz = PDstandardfdOrder81(&gyz[index]); - PDstandard2gyz = PDstandardfdOrder82(&gyz[index]); - PDstandard3gyz = PDstandardfdOrder83(&gyz[index]); - PDstandard11gyz = PDstandardfdOrder811(&gyz[index]); - PDstandard22gyz = PDstandardfdOrder822(&gyz[index]); - PDstandard33gyz = PDstandardfdOrder833(&gyz[index]); - PDstandard12gyz = PDstandardfdOrder812(&gyz[index]); - PDstandard13gyz = PDstandardfdOrder813(&gyz[index]); - PDstandard23gyz = PDstandardfdOrder823(&gyz[index]); - PDstandard1gzz = PDstandardfdOrder81(&gzz[index]); - PDstandard2gzz = PDstandardfdOrder82(&gzz[index]); - PDstandard3gzz = PDstandardfdOrder83(&gzz[index]); - PDstandard11gzz = PDstandardfdOrder811(&gzz[index]); - PDstandard22gzz = PDstandardfdOrder822(&gzz[index]); - PDstandard33gzz = PDstandardfdOrder833(&gzz[index]); - PDstandard12gzz = PDstandardfdOrder812(&gzz[index]); - PDstandard13gzz = PDstandardfdOrder813(&gzz[index]); - PDstandard23gzz = PDstandardfdOrder823(&gzz[index]); - PDstandard1kxx = PDstandardfdOrder81(&kxx[index]); - PDstandard2kxx = PDstandardfdOrder82(&kxx[index]); - PDstandard3kxx = PDstandardfdOrder83(&kxx[index]); - PDstandard1kxy = PDstandardfdOrder81(&kxy[index]); - PDstandard2kxy = PDstandardfdOrder82(&kxy[index]); - PDstandard3kxy = PDstandardfdOrder83(&kxy[index]); - PDstandard1kxz = PDstandardfdOrder81(&kxz[index]); - PDstandard2kxz = PDstandardfdOrder82(&kxz[index]); - PDstandard3kxz = PDstandardfdOrder83(&kxz[index]); - PDstandard1kyy = PDstandardfdOrder81(&kyy[index]); - PDstandard2kyy = PDstandardfdOrder82(&kyy[index]); - PDstandard3kyy = PDstandardfdOrder83(&kyy[index]); - PDstandard1kyz = PDstandardfdOrder81(&kyz[index]); - PDstandard2kyz = PDstandardfdOrder82(&kyz[index]); - PDstandard3kyz = PDstandardfdOrder83(&kyz[index]); - PDstandard1kzz = PDstandardfdOrder81(&kzz[index]); - PDstandard2kzz = PDstandardfdOrder82(&kzz[index]); - PDstandard3kzz = PDstandardfdOrder83(&kzz[index]); - break; - } - - /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC JacPDstandard11gyy; - CCTK_REAL_VEC JacPDstandard11gyz; - CCTK_REAL_VEC JacPDstandard11gzz; - CCTK_REAL_VEC JacPDstandard12gxy; - CCTK_REAL_VEC JacPDstandard12gxz; - CCTK_REAL_VEC JacPDstandard12gyz; - CCTK_REAL_VEC JacPDstandard12gzz; - CCTK_REAL_VEC JacPDstandard13gxz; - CCTK_REAL_VEC JacPDstandard1gxx; - CCTK_REAL_VEC JacPDstandard1gxy; - CCTK_REAL_VEC JacPDstandard1gxz; - CCTK_REAL_VEC JacPDstandard1gyy; - CCTK_REAL_VEC JacPDstandard1gyz; - CCTK_REAL_VEC JacPDstandard1gzz; - CCTK_REAL_VEC JacPDstandard1kxy; - CCTK_REAL_VEC JacPDstandard1kxz; - CCTK_REAL_VEC JacPDstandard1kyy; - CCTK_REAL_VEC JacPDstandard1kyz; - CCTK_REAL_VEC JacPDstandard1kzz; - CCTK_REAL_VEC JacPDstandard21gxy; - CCTK_REAL_VEC JacPDstandard22gxx; - CCTK_REAL_VEC JacPDstandard22gxz; - CCTK_REAL_VEC JacPDstandard22gzz; - CCTK_REAL_VEC JacPDstandard23gxx; - CCTK_REAL_VEC JacPDstandard23gxy; - CCTK_REAL_VEC JacPDstandard23gxz; - CCTK_REAL_VEC JacPDstandard23gyz; - CCTK_REAL_VEC JacPDstandard2gxx; - CCTK_REAL_VEC JacPDstandard2gxy; - CCTK_REAL_VEC JacPDstandard2gxz; - CCTK_REAL_VEC JacPDstandard2gyy; - CCTK_REAL_VEC JacPDstandard2gyz; - CCTK_REAL_VEC JacPDstandard2gzz; - CCTK_REAL_VEC JacPDstandard2kxx; - CCTK_REAL_VEC JacPDstandard2kxy; - CCTK_REAL_VEC JacPDstandard2kxz; - CCTK_REAL_VEC JacPDstandard2kyz; - CCTK_REAL_VEC JacPDstandard2kzz; - CCTK_REAL_VEC JacPDstandard31gxy; - CCTK_REAL_VEC JacPDstandard31gxz; - CCTK_REAL_VEC JacPDstandard31gyy; - CCTK_REAL_VEC JacPDstandard31gyz; - CCTK_REAL_VEC JacPDstandard32gyz; - CCTK_REAL_VEC JacPDstandard33gxx; - CCTK_REAL_VEC JacPDstandard33gxy; - CCTK_REAL_VEC JacPDstandard33gyy; - CCTK_REAL_VEC JacPDstandard3gxx; - CCTK_REAL_VEC JacPDstandard3gxy; - CCTK_REAL_VEC JacPDstandard3gxz; - CCTK_REAL_VEC JacPDstandard3gyy; - CCTK_REAL_VEC JacPDstandard3gyz; - CCTK_REAL_VEC JacPDstandard3gzz; - CCTK_REAL_VEC JacPDstandard3kxx; - CCTK_REAL_VEC JacPDstandard3kxy; - CCTK_REAL_VEC JacPDstandard3kxz; - CCTK_REAL_VEC JacPDstandard3kyy; - CCTK_REAL_VEC JacPDstandard3kyz; - - if (use_jacobian) - { - JacPDstandard1gxx = - kmadd(J11L,PDstandard1gxx,kmadd(J21L,PDstandard2gxx,kmul(J31L,PDstandard3gxx))); - - JacPDstandard1gxy = - kmadd(J11L,PDstandard1gxy,kmadd(J21L,PDstandard2gxy,kmul(J31L,PDstandard3gxy))); - - JacPDstandard1gxz = - kmadd(J11L,PDstandard1gxz,kmadd(J21L,PDstandard2gxz,kmul(J31L,PDstandard3gxz))); - - JacPDstandard1gyy = - kmadd(J11L,PDstandard1gyy,kmadd(J21L,PDstandard2gyy,kmul(J31L,PDstandard3gyy))); - - JacPDstandard1gyz = - kmadd(J11L,PDstandard1gyz,kmadd(J21L,PDstandard2gyz,kmul(J31L,PDstandard3gyz))); - - JacPDstandard1gzz = - kmadd(J11L,PDstandard1gzz,kmadd(J21L,PDstandard2gzz,kmul(J31L,PDstandard3gzz))); - - JacPDstandard1kxy = - kmadd(J11L,PDstandard1kxy,kmadd(J21L,PDstandard2kxy,kmul(J31L,PDstandard3kxy))); - - JacPDstandard1kxz = - kmadd(J11L,PDstandard1kxz,kmadd(J21L,PDstandard2kxz,kmul(J31L,PDstandard3kxz))); - - JacPDstandard1kyy = - kmadd(J11L,PDstandard1kyy,kmadd(J21L,PDstandard2kyy,kmul(J31L,PDstandard3kyy))); - - JacPDstandard1kyz = - kmadd(J11L,PDstandard1kyz,kmadd(J21L,PDstandard2kyz,kmul(J31L,PDstandard3kyz))); - - JacPDstandard1kzz = - kmadd(J11L,PDstandard1kzz,kmadd(J21L,PDstandard2kzz,kmul(J31L,PDstandard3kzz))); - - JacPDstandard2gxx = - kmadd(J12L,PDstandard1gxx,kmadd(J22L,PDstandard2gxx,kmul(J32L,PDstandard3gxx))); - - JacPDstandard2gxy = - kmadd(J12L,PDstandard1gxy,kmadd(J22L,PDstandard2gxy,kmul(J32L,PDstandard3gxy))); - - JacPDstandard2gxz = - kmadd(J12L,PDstandard1gxz,kmadd(J22L,PDstandard2gxz,kmul(J32L,PDstandard3gxz))); - - JacPDstandard2gyy = - kmadd(J12L,PDstandard1gyy,kmadd(J22L,PDstandard2gyy,kmul(J32L,PDstandard3gyy))); - - JacPDstandard2gyz = - kmadd(J12L,PDstandard1gyz,kmadd(J22L,PDstandard2gyz,kmul(J32L,PDstandard3gyz))); - - JacPDstandard2gzz = - kmadd(J12L,PDstandard1gzz,kmadd(J22L,PDstandard2gzz,kmul(J32L,PDstandard3gzz))); - - JacPDstandard2kxx = - kmadd(J12L,PDstandard1kxx,kmadd(J22L,PDstandard2kxx,kmul(J32L,PDstandard3kxx))); - - JacPDstandard2kxy = - kmadd(J12L,PDstandard1kxy,kmadd(J22L,PDstandard2kxy,kmul(J32L,PDstandard3kxy))); - - JacPDstandard2kxz = - kmadd(J12L,PDstandard1kxz,kmadd(J22L,PDstandard2kxz,kmul(J32L,PDstandard3kxz))); - - JacPDstandard2kyz = - kmadd(J12L,PDstandard1kyz,kmadd(J22L,PDstandard2kyz,kmul(J32L,PDstandard3kyz))); - - JacPDstandard2kzz = - kmadd(J12L,PDstandard1kzz,kmadd(J22L,PDstandard2kzz,kmul(J32L,PDstandard3kzz))); - - JacPDstandard3gxx = - kmadd(J13L,PDstandard1gxx,kmadd(J23L,PDstandard2gxx,kmul(J33L,PDstandard3gxx))); - - JacPDstandard3gxy = - kmadd(J13L,PDstandard1gxy,kmadd(J23L,PDstandard2gxy,kmul(J33L,PDstandard3gxy))); - - JacPDstandard3gxz = - kmadd(J13L,PDstandard1gxz,kmadd(J23L,PDstandard2gxz,kmul(J33L,PDstandard3gxz))); - - JacPDstandard3gyy = - kmadd(J13L,PDstandard1gyy,kmadd(J23L,PDstandard2gyy,kmul(J33L,PDstandard3gyy))); - - JacPDstandard3gyz = - kmadd(J13L,PDstandard1gyz,kmadd(J23L,PDstandard2gyz,kmul(J33L,PDstandard3gyz))); - - JacPDstandard3gzz = - kmadd(J13L,PDstandard1gzz,kmadd(J23L,PDstandard2gzz,kmul(J33L,PDstandard3gzz))); - - JacPDstandard3kxx = - kmadd(J13L,PDstandard1kxx,kmadd(J23L,PDstandard2kxx,kmul(J33L,PDstandard3kxx))); - - JacPDstandard3kxy = - kmadd(J13L,PDstandard1kxy,kmadd(J23L,PDstandard2kxy,kmul(J33L,PDstandard3kxy))); - - JacPDstandard3kxz = - kmadd(J13L,PDstandard1kxz,kmadd(J23L,PDstandard2kxz,kmul(J33L,PDstandard3kxz))); - - JacPDstandard3kyy = - kmadd(J13L,PDstandard1kyy,kmadd(J23L,PDstandard2kyy,kmul(J33L,PDstandard3kyy))); - - JacPDstandard3kyz = - kmadd(J13L,PDstandard1kyz,kmadd(J23L,PDstandard2kyz,kmul(J33L,PDstandard3kyz))); - - JacPDstandard11gyy = - kmadd(dJ111L,PDstandard1gyy,kmadd(dJ211L,PDstandard2gyy,kmadd(dJ311L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J11L,J11L),kmadd(PDstandard22gyy,kmul(J21L,J21L),kmadd(PDstandard33gyy,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy)),kmul(J21L,kmul(J31L,PDstandard23gyy))),ToReal(2)))))))); - - JacPDstandard11gyz = - kmadd(dJ111L,PDstandard1gyz,kmadd(dJ211L,PDstandard2gyz,kmadd(dJ311L,PDstandard3gyz,kmadd(PDstandard11gyz,kmul(J11L,J11L),kmadd(PDstandard22gyz,kmul(J21L,J21L),kmadd(PDstandard33gyz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz)),kmul(J21L,kmul(J31L,PDstandard23gyz))),ToReal(2)))))))); - - JacPDstandard11gzz = - kmadd(dJ111L,PDstandard1gzz,kmadd(dJ211L,PDstandard2gzz,kmadd(dJ311L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J11L,J11L),kmadd(PDstandard22gzz,kmul(J21L,J21L),kmadd(PDstandard33gzz,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz)),kmul(J21L,kmul(J31L,PDstandard23gzz))),ToReal(2)))))))); - - JacPDstandard22gxx = - kmadd(dJ122L,PDstandard1gxx,kmadd(dJ222L,PDstandard2gxx,kmadd(dJ322L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J12L,J12L),kmadd(PDstandard22gxx,kmul(J22L,J22L),kmadd(PDstandard33gxx,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx)),kmul(J22L,kmul(J32L,PDstandard23gxx))),ToReal(2)))))))); - - JacPDstandard22gxz = - kmadd(dJ122L,PDstandard1gxz,kmadd(dJ222L,PDstandard2gxz,kmadd(dJ322L,PDstandard3gxz,kmadd(PDstandard11gxz,kmul(J12L,J12L),kmadd(PDstandard22gxz,kmul(J22L,J22L),kmadd(PDstandard33gxz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmul(J22L,kmul(J32L,PDstandard23gxz))),ToReal(2)))))))); - - JacPDstandard22gzz = - kmadd(dJ122L,PDstandard1gzz,kmadd(dJ222L,PDstandard2gzz,kmadd(dJ322L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J12L,J12L),kmadd(PDstandard22gzz,kmul(J22L,J22L),kmadd(PDstandard33gzz,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmul(J22L,kmul(J32L,PDstandard23gzz))),ToReal(2)))))))); - - JacPDstandard33gxx = - kmadd(dJ133L,PDstandard1gxx,kmadd(dJ233L,PDstandard2gxx,kmadd(dJ333L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J13L,J13L),kmadd(PDstandard22gxx,kmul(J23L,J23L),kmadd(PDstandard33gxx,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmul(J23L,kmul(J33L,PDstandard23gxx))),ToReal(2)))))))); - - JacPDstandard33gxy = - kmadd(dJ133L,PDstandard1gxy,kmadd(dJ233L,PDstandard2gxy,kmadd(dJ333L,PDstandard3gxy,kmadd(PDstandard11gxy,kmul(J13L,J13L),kmadd(PDstandard22gxy,kmul(J23L,J23L),kmadd(PDstandard33gxy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmul(J23L,kmul(J33L,PDstandard23gxy))),ToReal(2)))))))); - - JacPDstandard33gyy = - kmadd(dJ133L,PDstandard1gyy,kmadd(dJ233L,PDstandard2gyy,kmadd(dJ333L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J13L,J13L),kmadd(PDstandard22gyy,kmul(J23L,J23L),kmadd(PDstandard33gyy,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmul(J23L,kmul(J33L,PDstandard23gyy))),ToReal(2)))))))); - - JacPDstandard12gxy = - kmadd(J12L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy)),kmadd(dJ112L,PDstandard1gxy,kmadd(J22L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ212L,PDstandard2gxy,kmadd(J32L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ312L,PDstandard3gxy))))))); - - JacPDstandard12gxz = - kmadd(J12L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmadd(dJ112L,PDstandard1gxz,kmadd(J22L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ212L,PDstandard2gxz,kmadd(J32L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ312L,PDstandard3gxz))))))); - - JacPDstandard12gyz = - kmadd(J12L,kmadd(J11L,PDstandard11gyz,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz))),kmadd(J11L,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz)),kmadd(dJ112L,PDstandard1gyz,kmadd(J22L,kmadd(J21L,PDstandard22gyz,kmul(J31L,PDstandard23gyz)),kmadd(dJ212L,PDstandard2gyz,kmadd(J32L,kmadd(J21L,PDstandard23gyz,kmul(J31L,PDstandard33gyz)),kmul(dJ312L,PDstandard3gyz))))))); - - JacPDstandard12gzz = - kmadd(J12L,kmadd(J11L,PDstandard11gzz,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz))),kmadd(J11L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmadd(dJ112L,PDstandard1gzz,kmadd(J22L,kmadd(J21L,PDstandard22gzz,kmul(J31L,PDstandard23gzz)),kmadd(dJ212L,PDstandard2gzz,kmadd(J32L,kmadd(J21L,PDstandard23gzz,kmul(J31L,PDstandard33gzz)),kmul(dJ312L,PDstandard3gzz))))))); - - JacPDstandard13gxz = - kmadd(J13L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ113L,PDstandard1gxz,kmadd(J23L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ213L,PDstandard2gxz,kmadd(J33L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ313L,PDstandard3gxz))))))); - - JacPDstandard21gxy = - kmadd(J12L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy)),kmadd(dJ112L,PDstandard1gxy,kmadd(J22L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ212L,PDstandard2gxy,kmadd(J32L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ312L,PDstandard3gxy))))))); - - JacPDstandard23gxx = - kmadd(J13L,kmadd(J12L,PDstandard11gxx,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx))),kmadd(J12L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmadd(dJ123L,PDstandard1gxx,kmadd(J23L,kmadd(J22L,PDstandard22gxx,kmul(J32L,PDstandard23gxx)),kmadd(dJ223L,PDstandard2gxx,kmadd(J33L,kmadd(J22L,PDstandard23gxx,kmul(J32L,PDstandard33gxx)),kmul(dJ323L,PDstandard3gxx))))))); - - JacPDstandard23gxy = - kmadd(J13L,kmadd(J12L,PDstandard11gxy,kmadd(J22L,PDstandard12gxy,kmul(J32L,PDstandard13gxy))),kmadd(J12L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmadd(dJ123L,PDstandard1gxy,kmadd(J23L,kmadd(J22L,PDstandard22gxy,kmul(J32L,PDstandard23gxy)),kmadd(dJ223L,PDstandard2gxy,kmadd(J33L,kmadd(J22L,PDstandard23gxy,kmul(J32L,PDstandard33gxy)),kmul(dJ323L,PDstandard3gxy))))))); - - JacPDstandard23gxz = - kmadd(J13L,kmadd(J12L,PDstandard11gxz,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz))),kmadd(J12L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ123L,PDstandard1gxz,kmadd(J23L,kmadd(J22L,PDstandard22gxz,kmul(J32L,PDstandard23gxz)),kmadd(dJ223L,PDstandard2gxz,kmadd(J33L,kmadd(J22L,PDstandard23gxz,kmul(J32L,PDstandard33gxz)),kmul(dJ323L,PDstandard3gxz))))))); - - JacPDstandard23gyz = - kmadd(J13L,kmadd(J12L,PDstandard11gyz,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz))),kmadd(J12L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ123L,PDstandard1gyz,kmadd(J23L,kmadd(J22L,PDstandard22gyz,kmul(J32L,PDstandard23gyz)),kmadd(dJ223L,PDstandard2gyz,kmadd(J33L,kmadd(J22L,PDstandard23gyz,kmul(J32L,PDstandard33gyz)),kmul(dJ323L,PDstandard3gyz))))))); - - JacPDstandard31gxy = - kmadd(J13L,kmadd(J11L,PDstandard11gxy,kmadd(J21L,PDstandard12gxy,kmul(J31L,PDstandard13gxy))),kmadd(J11L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmadd(dJ113L,PDstandard1gxy,kmadd(J23L,kmadd(J21L,PDstandard22gxy,kmul(J31L,PDstandard23gxy)),kmadd(dJ213L,PDstandard2gxy,kmadd(J33L,kmadd(J21L,PDstandard23gxy,kmul(J31L,PDstandard33gxy)),kmul(dJ313L,PDstandard3gxy))))))); - - JacPDstandard31gxz = - kmadd(J13L,kmadd(J11L,PDstandard11gxz,kmadd(J21L,PDstandard12gxz,kmul(J31L,PDstandard13gxz))),kmadd(J11L,kmadd(J23L,PDstandard12gxz,kmul(J33L,PDstandard13gxz)),kmadd(dJ113L,PDstandard1gxz,kmadd(J23L,kmadd(J21L,PDstandard22gxz,kmul(J31L,PDstandard23gxz)),kmadd(dJ213L,PDstandard2gxz,kmadd(J33L,kmadd(J21L,PDstandard23gxz,kmul(J31L,PDstandard33gxz)),kmul(dJ313L,PDstandard3gxz))))))); - - JacPDstandard31gyy = - kmadd(J13L,kmadd(J11L,PDstandard11gyy,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy))),kmadd(J11L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmadd(dJ113L,PDstandard1gyy,kmadd(J23L,kmadd(J21L,PDstandard22gyy,kmul(J31L,PDstandard23gyy)),kmadd(dJ213L,PDstandard2gyy,kmadd(J33L,kmadd(J21L,PDstandard23gyy,kmul(J31L,PDstandard33gyy)),kmul(dJ313L,PDstandard3gyy))))))); - - JacPDstandard31gyz = - kmadd(J13L,kmadd(J11L,PDstandard11gyz,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz))),kmadd(J11L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ113L,PDstandard1gyz,kmadd(J23L,kmadd(J21L,PDstandard22gyz,kmul(J31L,PDstandard23gyz)),kmadd(dJ213L,PDstandard2gyz,kmadd(J33L,kmadd(J21L,PDstandard23gyz,kmul(J31L,PDstandard33gyz)),kmul(dJ313L,PDstandard3gyz))))))); - - JacPDstandard32gyz = - kmadd(J13L,kmadd(J12L,PDstandard11gyz,kmadd(J22L,PDstandard12gyz,kmul(J32L,PDstandard13gyz))),kmadd(J12L,kmadd(J23L,PDstandard12gyz,kmul(J33L,PDstandard13gyz)),kmadd(dJ123L,PDstandard1gyz,kmadd(J23L,kmadd(J22L,PDstandard22gyz,kmul(J32L,PDstandard23gyz)),kmadd(dJ223L,PDstandard2gyz,kmadd(J33L,kmadd(J22L,PDstandard23gyz,kmul(J32L,PDstandard33gyz)),kmul(dJ323L,PDstandard3gyz))))))); - } - else - { - JacPDstandard1gxx = PDstandard1gxx; - - JacPDstandard1gxy = PDstandard1gxy; - - JacPDstandard1gxz = PDstandard1gxz; - - JacPDstandard1gyy = PDstandard1gyy; - - JacPDstandard1gyz = PDstandard1gyz; - - JacPDstandard1gzz = PDstandard1gzz; - - JacPDstandard1kxy = PDstandard1kxy; - - JacPDstandard1kxz = PDstandard1kxz; - - JacPDstandard1kyy = PDstandard1kyy; - - JacPDstandard1kyz = PDstandard1kyz; - - JacPDstandard1kzz = PDstandard1kzz; - - JacPDstandard2gxx = PDstandard2gxx; - - JacPDstandard2gxy = PDstandard2gxy; - - JacPDstandard2gxz = PDstandard2gxz; - - JacPDstandard2gyy = PDstandard2gyy; - - JacPDstandard2gyz = PDstandard2gyz; - - JacPDstandard2gzz = PDstandard2gzz; - - JacPDstandard2kxx = PDstandard2kxx; - - JacPDstandard2kxy = PDstandard2kxy; - - JacPDstandard2kxz = PDstandard2kxz; - - JacPDstandard2kyz = PDstandard2kyz; - - JacPDstandard2kzz = PDstandard2kzz; - - JacPDstandard3gxx = PDstandard3gxx; - - JacPDstandard3gxy = PDstandard3gxy; - - JacPDstandard3gxz = PDstandard3gxz; - - JacPDstandard3gyy = PDstandard3gyy; - - JacPDstandard3gyz = PDstandard3gyz; - - JacPDstandard3gzz = PDstandard3gzz; - - JacPDstandard3kxx = PDstandard3kxx; - - JacPDstandard3kxy = PDstandard3kxy; - - JacPDstandard3kxz = PDstandard3kxz; - - JacPDstandard3kyy = PDstandard3kyy; - - JacPDstandard3kyz = PDstandard3kyz; - - JacPDstandard11gyy = PDstandard11gyy; - - JacPDstandard11gyz = PDstandard11gyz; - - JacPDstandard11gzz = PDstandard11gzz; - - JacPDstandard22gxx = PDstandard22gxx; - - JacPDstandard22gxz = PDstandard22gxz; - - JacPDstandard22gzz = PDstandard22gzz; - - JacPDstandard33gxx = PDstandard33gxx; - - JacPDstandard33gxy = PDstandard33gxy; - - JacPDstandard33gyy = PDstandard33gyy; - - JacPDstandard12gxy = PDstandard12gxy; - - JacPDstandard12gxz = PDstandard12gxz; - - JacPDstandard12gyz = PDstandard12gyz; - - JacPDstandard12gzz = PDstandard12gzz; - - JacPDstandard13gxz = PDstandard13gxz; - - JacPDstandard21gxy = PDstandard12gxy; - - JacPDstandard23gxx = PDstandard23gxx; - - JacPDstandard23gxy = PDstandard23gxy; - - JacPDstandard23gxz = PDstandard23gxz; - - JacPDstandard23gyz = PDstandard23gyz; - - JacPDstandard31gxy = PDstandard13gxy; - - JacPDstandard31gxz = PDstandard13gxz; - - JacPDstandard31gyy = PDstandard13gyy; - - JacPDstandard31gyz = PDstandard13gyz; - - JacPDstandard32gyz = PDstandard23gyz; - } - - CCTK_REAL_VEC detg = - knmsub(gyyL,kmul(gxzL,gxzL),knmsub(gxxL,kmul(gyzL,gyzL),kmadd(gzzL,kmsub(gxxL,gyyL,kmul(gxyL,gxyL)),kmul(gxyL,kmul(gxzL,kmul(gyzL,ToReal(2))))))); - - CCTK_REAL_VEC invdetg = kdiv(ToReal(1),detg); - - CCTK_REAL_VEC gInv11 = - kmul(invdetg,kmsub(gyyL,gzzL,kmul(gyzL,gyzL))); - - CCTK_REAL_VEC gInv12 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv13 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv21 = - kmul(invdetg,kmsub(gxzL,gyzL,kmul(gxyL,gzzL))); - - CCTK_REAL_VEC gInv22 = - kmul(invdetg,kmsub(gxxL,gzzL,kmul(gxzL,gxzL))); - - CCTK_REAL_VEC gInv23 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv31 = - kmul(invdetg,kmsub(gxyL,gyzL,kmul(gxzL,gyyL))); - - CCTK_REAL_VEC gInv32 = - kmul(invdetg,kmsub(gxyL,gxzL,kmul(gxxL,gyzL))); - - CCTK_REAL_VEC gInv33 = - kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); - - CCTK_REAL_VEC gamma111 = - kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard1gxx,knmsub(gInv12,JacPDstandard2gxx,kmsub(kmadd(gInv12,JacPDstandard1gxy,kmul(gInv13,JacPDstandard1gxz)),ToReal(2),kmul(gInv13,JacPDstandard3gxx))))); - - CCTK_REAL_VEC gamma211 = - kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard1gxx,knmsub(gInv22,JacPDstandard2gxx,kmsub(kmadd(gInv22,JacPDstandard1gxy,kmul(gInv23,JacPDstandard1gxz)),ToReal(2),kmul(gInv23,JacPDstandard3gxx))))); - - CCTK_REAL_VEC gamma311 = - kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard1gxx,knmsub(gInv32,JacPDstandard2gxx,kmsub(kmadd(gInv32,JacPDstandard1gxy,kmul(gInv33,JacPDstandard1gxz)),ToReal(2),kmul(gInv33,JacPDstandard3gxx))))); - - CCTK_REAL_VEC gamma121 = - kmul(kmadd(gInv12,JacPDstandard1gyy,kmadd(gInv11,JacPDstandard2gxx,kmul(gInv13,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma221 = - kmul(kmadd(gInv22,JacPDstandard1gyy,kmadd(gInv21,JacPDstandard2gxx,kmul(gInv23,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma321 = - kmul(kmadd(gInv32,JacPDstandard1gyy,kmadd(gInv31,JacPDstandard2gxx,kmul(gInv33,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma131 = - kmul(kmadd(gInv13,JacPDstandard1gzz,kmadd(gInv11,JacPDstandard3gxx,kmul(gInv12,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma231 = - kmul(kmadd(gInv23,JacPDstandard1gzz,kmadd(gInv21,JacPDstandard3gxx,kmul(gInv22,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma331 = - kmul(kmadd(gInv33,JacPDstandard1gzz,kmadd(gInv31,JacPDstandard3gxx,kmul(gInv32,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma122 = - kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2gyy,kmadd(gInv11,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv13,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); - - CCTK_REAL_VEC gamma222 = - kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2gyy,kmadd(gInv21,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv23,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); - - CCTK_REAL_VEC gamma322 = - kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2gyy,kmadd(gInv31,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv33,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); - - CCTK_REAL_VEC gamma132 = - kmul(kmadd(gInv13,JacPDstandard2gzz,kmadd(gInv12,JacPDstandard3gyy,kmul(gInv11,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma232 = - kmul(kmadd(gInv23,JacPDstandard2gzz,kmadd(gInv22,JacPDstandard3gyy,kmul(gInv21,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma332 = - kmul(kmadd(gInv33,JacPDstandard2gzz,kmadd(gInv32,JacPDstandard3gyy,kmul(gInv31,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); - - CCTK_REAL_VEC gamma133 = - kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard3gzz,kmadd(gInv11,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv12,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); - - CCTK_REAL_VEC gamma233 = - kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard3gzz,kmadd(gInv21,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv22,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); - - CCTK_REAL_VEC gamma333 = - kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard3gzz,kmadd(gInv31,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv32,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); - - CCTK_REAL_VEC xmoved = ksub(xL,ToReal(xorig)); - - CCTK_REAL_VEC ymoved = ksub(yL,ToReal(yorig)); - - CCTK_REAL_VEC zmoved = ksub(zL,ToReal(zorig)); - - CCTK_REAL_VEC va1 = kneg(ymoved); - - CCTK_REAL_VEC va2 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC va3 = ToReal(0); - - CCTK_REAL_VEC vb1 = kadd(xmoved,ToReal(offset)); - - CCTK_REAL_VEC vb2 = ymoved; - - CCTK_REAL_VEC vb3 = zmoved; - - CCTK_REAL_VEC vc1 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv11,va2,kmul(gInv12,va1)),kmadd(vb1,kmsub(gInv12,va3,kmul(gInv13,va2)),kmul(vb2,kmsub(gInv13,va1,kmul(gInv11,va3)))))); - - CCTK_REAL_VEC vc2 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv21,va2,kmul(gInv22,va1)),kmadd(vb1,kmsub(gInv22,va3,kmul(gInv23,va2)),kmul(vb2,kmsub(gInv23,va1,kmul(gInv21,va3)))))); - - CCTK_REAL_VEC vc3 = - kmul(ksqrt(detg),kmadd(vb3,kmsub(gInv31,va2,kmul(gInv32,va1)),kmadd(vb1,kmsub(gInv32,va3,kmul(gInv33,va2)),kmul(vb2,kmsub(gInv33,va1,kmul(gInv31,va3)))))); - - CCTK_REAL_VEC wa1 = va1; - - CCTK_REAL_VEC wa2 = va2; - - CCTK_REAL_VEC wa3 = va3; - - CCTK_REAL_VEC omega11 = - kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmadd(gzzL,kmul(wa3,wa3),kmul(kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),ToReal(2))))); - - CCTK_REAL_VEC ea1 = kdiv(wa1,ksqrt(omega11)); - - CCTK_REAL_VEC ea2 = kdiv(wa2,ksqrt(omega11)); - - CCTK_REAL_VEC ea3 = kdiv(wa3,ksqrt(omega11)); - - CCTK_REAL_VEC omega12 = - kmadd(ea1,kmadd(gxxL,vb1,kmadd(gxyL,vb2,kmul(gxzL,vb3))),kmadd(ea2,kmadd(gxyL,vb1,kmadd(gyyL,vb2,kmul(gyzL,vb3))),kmul(ea3,kmadd(gxzL,vb1,kmadd(gyzL,vb2,kmul(gzzL,vb3)))))); - - CCTK_REAL_VEC wb1 = knmsub(ea1,omega12,vb1); - - CCTK_REAL_VEC wb2 = knmsub(ea2,omega12,vb2); - - CCTK_REAL_VEC wb3 = knmsub(ea3,omega12,vb3); - - CCTK_REAL_VEC omega22 = - kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmadd(gzzL,kmul(wb3,wb3),kmul(kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),ToReal(2))))); - - CCTK_REAL_VEC eb1 = kdiv(wb1,ksqrt(omega22)); - - CCTK_REAL_VEC eb2 = kdiv(wb2,ksqrt(omega22)); - - CCTK_REAL_VEC eb3 = kdiv(wb3,ksqrt(omega22)); - - CCTK_REAL_VEC omega13 = - kmadd(ea1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(ea2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(ea3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC omega23 = - kmadd(eb1,kmadd(gxxL,vc1,kmadd(gxyL,vc2,kmul(gxzL,vc3))),kmadd(eb2,kmadd(gxyL,vc1,kmadd(gyyL,vc2,kmul(gyzL,vc3))),kmul(eb3,kmadd(gxzL,vc1,kmadd(gyzL,vc2,kmul(gzzL,vc3)))))); - - CCTK_REAL_VEC wc1 = ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); - - CCTK_REAL_VEC wc2 = ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); - - CCTK_REAL_VEC wc3 = ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); - - CCTK_REAL_VEC omega33 = - kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmadd(gzzL,kmul(wc3,wc3),kmul(kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),ToReal(2))))); - - CCTK_REAL_VEC ec1 = kdiv(wc1,ksqrt(omega33)); - - CCTK_REAL_VEC ec2 = kdiv(wc2,ksqrt(omega33)); - - CCTK_REAL_VEC ec3 = kdiv(wc3,ksqrt(omega33)); - - CCTK_REAL_VEC isqrt2 = ToReal(0.707106781186547524); - - CCTK_REAL_VEC ltet1 = kmul(eb1,isqrt2); - - CCTK_REAL_VEC ltet2 = kmul(eb2,isqrt2); - - CCTK_REAL_VEC ltet3 = kmul(eb3,isqrt2); - - CCTK_REAL_VEC n1 = kneg(kmul(eb1,isqrt2)); - - CCTK_REAL_VEC n2 = kneg(kmul(eb2,isqrt2)); - - CCTK_REAL_VEC n3 = kneg(kmul(eb3,isqrt2)); - - CCTK_REAL_VEC rm1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rm2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rm3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC im1 = kmul(ea1,isqrt2); - - CCTK_REAL_VEC im2 = kmul(ea2,isqrt2); - - CCTK_REAL_VEC im3 = kmul(ea3,isqrt2); - - CCTK_REAL_VEC rmbar1 = kmul(ec1,isqrt2); - - CCTK_REAL_VEC rmbar2 = kmul(ec2,isqrt2); - - CCTK_REAL_VEC rmbar3 = kmul(ec3,isqrt2); - - CCTK_REAL_VEC imbar1 = kneg(kmul(ea1,isqrt2)); - - CCTK_REAL_VEC imbar2 = kneg(kmul(ea2,isqrt2)); - - CCTK_REAL_VEC imbar3 = kneg(kmul(ea3,isqrt2)); - - CCTK_REAL_VEC nn = isqrt2; - - CCTK_REAL_VEC R1212 = - kmul(ToReal(0.5),kadd(JacPDstandard12gxy,kadd(JacPDstandard21gxy,kmadd(kmadd(gxyL,kmul(gamma122,gamma211),kmadd(gyyL,kmul(gamma211,gamma222),kmadd(gxzL,kmul(gamma122,gamma311),kmadd(gyzL,kmul(gamma222,gamma311),kmadd(gyzL,kmul(gamma211,gamma322),kmadd(gzzL,kmul(gamma311,gamma322),kmul(gamma111,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma121,gamma121),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma221,gamma221),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma321,gamma321),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma221,gamma321),kmul(gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)))),ToReal(4))))),JacPDstandard22gxx),JacPDstandard11gyy))))); - - CCTK_REAL_VEC R1213 = - kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard12gxz,kadd(JacPDstandard31gxy,kmadd(kmadd(gyyL,kmul(gamma211,gamma232),kmadd(gyzL,kmul(gamma232,gamma311),kmadd(gamma132,kmadd(gxyL,gamma211,kmul(gxzL,gamma311)),kmadd(gyzL,kmul(gamma211,gamma332),kmadd(gzzL,kmul(gamma311,gamma332),kmul(gamma111,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma221),kmadd(gyyL,kmul(gamma221,gamma231),kmadd(gxzL,kmul(gamma131,gamma321),kmadd(gyzL,kmul(gamma231,gamma321),kmadd(gyzL,kmul(gamma221,gamma331),kmul(gzzL,kmul(gamma321,gamma331))))))),ToReal(2),JacPDstandard23gxx),JacPDstandard11gyz)))))); - - CCTK_REAL_VEC R1223 = - kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmul(ToReal(0.5),kadd(JacPDstandard22gxz,kadd(JacPDstandard31gyy,kmadd(kmadd(gyyL,kmul(gamma221,gamma232),kmadd(gyzL,kmul(gamma232,gamma321),kmadd(gamma132,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma332),kmadd(gzzL,kmul(gamma321,gamma332),kmul(gamma121,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma131,gamma222),kmadd(gyyL,kmul(gamma222,gamma231),kmadd(gxzL,kmul(gamma131,gamma322),kmadd(gyzL,kmul(gamma231,gamma322),kmadd(gyzL,kmul(gamma222,gamma331),kmul(gzzL,kmul(gamma322,gamma331))))))),ToReal(2),JacPDstandard23gxy),JacPDstandard12gyz)))))); - - CCTK_REAL_VEC R1313 = - kmul(ToReal(0.5),kadd(JacPDstandard13gxz,kadd(JacPDstandard31gxz,kmadd(kmadd(gxyL,kmul(gamma133,gamma211),kmadd(gyyL,kmul(gamma211,gamma233),kmadd(gxzL,kmul(gamma133,gamma311),kmadd(gyzL,kmul(gamma233,gamma311),kmadd(gyzL,kmul(gamma211,gamma333),kmadd(gzzL,kmul(gamma311,gamma333),kmul(gamma111,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma131,gamma131),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma231,gamma231),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma331,gamma331),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma231,gamma331),kmul(gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331)))),ToReal(4))))),JacPDstandard33gxx),JacPDstandard11gzz))))); - - CCTK_REAL_VEC R1323 = - kmadd(gamma131,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmul(ToReal(0.5),kadd(JacPDstandard23gxz,kadd(JacPDstandard31gyz,kmadd(kmadd(gyyL,kmul(gamma221,gamma233),kmadd(gyzL,kmul(gamma233,gamma321),kmadd(gamma133,kmadd(gxyL,gamma221,kmul(gxzL,gamma321)),kmadd(gyzL,kmul(gamma221,gamma333),kmadd(gzzL,kmul(gamma321,gamma333),kmul(gamma121,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333))))))))),ToReal(-2),ksub(kmsub(kmadd(gxyL,kmul(gamma132,gamma231),kmadd(gyyL,kmul(gamma231,gamma232),kmadd(gxzL,kmul(gamma132,gamma331),kmadd(gyzL,kmul(gamma232,gamma331),kmadd(gyzL,kmul(gamma231,gamma332),kmul(gzzL,kmul(gamma331,gamma332))))))),ToReal(2),JacPDstandard33gxy),JacPDstandard12gzz)))))); - - CCTK_REAL_VEC R2323 = - kmul(ToReal(0.5),kadd(JacPDstandard23gyz,kadd(JacPDstandard32gyz,kmadd(kmadd(gxyL,kmul(gamma133,gamma222),kmadd(gyyL,kmul(gamma222,gamma233),kmadd(gxzL,kmul(gamma133,gamma322),kmadd(gyzL,kmul(gamma233,gamma322),kmadd(gyzL,kmul(gamma222,gamma333),kmadd(gzzL,kmul(gamma322,gamma333),kmul(gamma122,kmadd(gxxL,gamma133,kmadd(gxyL,gamma233,kmul(gxzL,gamma333)))))))))),ToReal(-2),ksub(ksub(kmadd(gxxL,kmul(kmul(gamma132,gamma132),ToReal(2)),kmadd(gyyL,kmul(kmul(gamma232,gamma232),ToReal(2)),kmadd(gzzL,kmul(kmul(gamma332,gamma332),ToReal(2)),kmul(kmadd(gyzL,kmul(gamma232,gamma332),kmul(gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332)))),ToReal(4))))),JacPDstandard33gyy),JacPDstandard22gzz))))); - - CCTK_REAL_VEC R4p1212 = - kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); - - CCTK_REAL_VEC R4p1213 = - kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); - - CCTK_REAL_VEC R4p1223 = - kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); - - CCTK_REAL_VEC R4p1313 = - kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); - - CCTK_REAL_VEC R4p1323 = - kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); - - CCTK_REAL_VEC R4p2323 = - kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); - - CCTK_REAL_VEC Ro111 = ToReal(0); - - CCTK_REAL_VEC Ro112 = - kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2kxx)))))); - - CCTK_REAL_VEC Ro113 = - kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard3kxx)))))); - - CCTK_REAL_VEC Ro121 = - kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard1kxy)))))); - - CCTK_REAL_VEC Ro122 = ToReal(0); - - CCTK_REAL_VEC Ro123 = - kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard3kxy)))))); - - CCTK_REAL_VEC Ro131 = - kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard1kxz)))))); - - CCTK_REAL_VEC Ro132 = - kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2kxz)))))); - - CCTK_REAL_VEC Ro133 = ToReal(0); - - CCTK_REAL_VEC Ro211 = ToReal(0); - - CCTK_REAL_VEC Ro212 = - kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2kxy)))))); - - CCTK_REAL_VEC Ro213 = - kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard3kxy)))))); - - CCTK_REAL_VEC Ro221 = - kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard1kyy)))))); - - CCTK_REAL_VEC Ro222 = ToReal(0); - - CCTK_REAL_VEC Ro223 = - kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard3kyy)))))); - - CCTK_REAL_VEC Ro231 = - kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard1kyz)))))); - - CCTK_REAL_VEC Ro232 = - kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2kyz)))))); - - CCTK_REAL_VEC Ro233 = ToReal(0); - - CCTK_REAL_VEC Ro311 = ToReal(0); - - CCTK_REAL_VEC Ro312 = - kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2kxz)))))); - - CCTK_REAL_VEC Ro313 = - kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard3kxz)))))); - - CCTK_REAL_VEC Ro321 = - kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard1kyz)))))); - - CCTK_REAL_VEC Ro322 = ToReal(0); - - CCTK_REAL_VEC Ro323 = - kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard3kyz)))))); - - CCTK_REAL_VEC Ro331 = - kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard1kzz)))))); - - CCTK_REAL_VEC Ro332 = - kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2kzz)))))); - - CCTK_REAL_VEC Ro333 = ToReal(0); - - CCTK_REAL_VEC Rojo11 = - kmadd(kadd(gInv23,gInv32),kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); - - CCTK_REAL_VEC Rojo12 = - kmadd(gInv23,R1223,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv32,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo13 = - kmadd(kxzL,kmul(kyzL,gInv23),kmadd(gInv13,kmul(kxzL,kxzL),knmsub(gInv21,R1213,knmsub(gInv31,R1313,knmsub(gInv32,R1323,kmadd(gInv12,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv23,kmul(kxxL,gInv13)))))))))); - - CCTK_REAL_VEC Rojo21 = - kmadd(gInv32,R1223,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL)),kmadd(gInv23,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmul(gInv33,kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323))))))))); - - CCTK_REAL_VEC Rojo22 = - kmadd(kadd(gInv13,gInv31),kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmadd(gInv11,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Rojo23 = - kmadd(gInv12,R1223,knmsub(gInv31,R1323,knmsub(gInv32,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv21,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv13,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo31 = - kmadd(kxzL,kmul(kyzL,gInv32),kmadd(gInv31,kmul(kxzL,kxzL),knmsub(gInv12,R1213,knmsub(gInv13,R1313,knmsub(gInv23,R1323,kmadd(gInv21,kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),kmsub(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),kmul(kzzL,kmadd(kxyL,gInv32,kmul(kxxL,gInv31)))))))))); - - CCTK_REAL_VEC Rojo32 = - kmadd(gInv21,R1223,knmsub(gInv13,R1323,knmsub(gInv23,R2323,kmadd(gInv11,kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)),kmadd(gInv12,kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),kmadd(gInv31,kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),kmul(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL))))))))); - - CCTK_REAL_VEC Rojo33 = - kmadd(kadd(gInv12,gInv21),kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); - - CCTK_REAL_VEC Psi4rL = - kmadd(rmbar1,kmul(rmbar2,kmul(Rojo12,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo13,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar2,kmul(Rojo21,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo23,kmul(nn,nn))),kmadd(rmbar1,kmul(rmbar3,kmul(Rojo31,kmul(nn,nn))),kmadd(rmbar2,kmul(rmbar3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(n2,n2),kmul(rmbar1,rmbar1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(kmul(n1,n1),kmul(rmbar2,rmbar2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rmbar2,rmbar2)),kmadd(R4p1313,kmul(kmul(n1,n1),kmul(rmbar3,rmbar3)),kmadd(R4p2323,kmul(kmul(n2,n2),kmul(rmbar3,rmbar3)),kmadd(kmadd(n1,kmul(n2,kmul(R4p1212,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1213,kmul(rmbar1,rmbar2))),kmadd(n1,kmul(n3,kmul(R4p1313,kmul(rmbar1,rmbar3))),kmadd(n1,kmul(n3,kmul(R4p1323,kmul(rmbar2,rmbar3))),kmadd(n2,kmul(n3,kmul(R4p2323,kmul(rmbar2,rmbar3))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(imbar3,imbar3))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(imbar3,imbar3))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(imbar3,imbar3))),kmul(R4p1223,kmul(rmbar1,kmul(rmbar3,kmul(n2,n2)))))))))))),ToReal(-2),kmadd(n1,kmul(n3,kmul(R4p1223,kmul(kmul(rmbar2,rmbar2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(n3,n3),kmul(rmbar1,rmbar1),kmul(kmul(imbar3,imbar3),kmul(n1,n1))),kmadd(R4p2323,kmsub(kmul(n3,n3),kmul(rmbar2,rmbar2),kmul(kmul(imbar3,imbar3),kmul(n2,n2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rmbar3,rmbar3),kmul(kmul(imbar3,imbar3),kmul(nn,nn))),kmadd(kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro112))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro113))),kmadd(n2,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro123))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro132))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro133))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro211))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro213))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro223))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar2,Ro231))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro233))),kmadd(n1,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro311))),kmadd(n1,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro312))),kmadd(n2,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro322))),kmadd(n3,kmul(nn,kmul(rmbar1,kmul(rmbar3,Ro331))),kmadd(n3,kmul(nn,kmul(rmbar2,kmul(rmbar3,Ro332))),kmadd(R4p1213,kmul(rmbar2,kmul(rmbar3,kmul(n1,n1))),kmul(R4p1323,kmul(rmbar1,kmul(rmbar2,kmul(n3,n3)))))))))))))))))))),ToReal(2),kmadd(n1,kmul(nn,kmul(Ro111,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro121,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro131,kmul(kmul(rmbar1,rmbar1),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro212,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro222,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro232,kmul(kmul(rmbar2,rmbar2),ToReal(2)))),kmadd(n1,kmul(n2,kmul(R4p1323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n1,kmul(nn,kmul(Ro313,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n2,kmul(nn,kmul(Ro323,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),kmadd(n3,kmul(nn,kmul(Ro333,kmul(kmul(rmbar3,rmbar3),ToReal(2)))),knmsub(kmul(imbar2,imbar2),kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(Rojo22,kmul(nn,nn),kmadd(n1,kmul(n3,kmul(R4p1223,ToReal(-2))),kmadd(n1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(n2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(n3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(n2,kmadd(n1,kmul(R4p1213,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(n3,kmul(R4p1323,kmul(rmbar1,kmul(rmbar3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(imbar3,imbar3),ToReal(-2))),kmadd(n3,kmul(R4p1223,kmul(rmbar1,kmul(rmbar2,ToReal(2)))),kmadd(n1,kmul(R4p1223,kmul(rmbar2,kmul(rmbar3,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rmbar1,kmul(rmbar3,kmul(Ro321,ToReal(2)))),kmul(n3,kmul(R4p1213,kmul(kmul(rmbar1,rmbar1),ToReal(2)))))))))))),knmsub(kmul(imbar1,imbar1),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(n2,kmul(kmadd(n3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2))))))))),kmsub(imbar1,kmul(imbar3,kmadd(R4p1223,kmul(kmul(n2,n2),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(n2,kmul(kmsub(n3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(n3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(imbar2,kmadd(imbar3,kmadd(R4p1213,kmul(kmul(n1,n1),ToReal(2)),kmadd(n1,kmul(kmadd(n2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(n3,R4p1323))),ToReal(2)),kmadd(n2,kmadd(n3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(n3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(imbar1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(n1,kmul(ToReal(-2),kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(n3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(n2,kmul(kmadd(n3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(n3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(n3,n3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi4iL = - knmadd(im1,kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(kmul(n3,n3),ToReal(2)),kmadd(kmul(n2,n2),kmul(kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),ToReal(2)),kmadd(n2,kmul(ToReal(2),knmsub(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(n3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2))))))))),kmadd(n3,kmul(ToReal(2),kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(n1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3))))),kmul(nn,kmadd(n1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2)))))))))))),kmadd(im2,kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm1,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo23,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro132,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm1,kmul(Ro231,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro233,ToReal(2)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro332,ToReal(2)))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(R4p1323,kmul(rm1,kmul(kmul(n3,n3),ToReal(2))),kmadd(R4p2323,kmul(rm2,kmul(kmul(n3,n3),ToReal(2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ToReal(2))),kmadd(n1,kmul(ToReal(2),kmadd(n2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(n3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmadd(n3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2)))))))),kmul(n3,kmul(nn,kmul(rm2,kmul(Ro232,ToReal(4))))))))))))))))))),kmul(im3,kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(kmul(n1,n1),ToReal(2)),kmadd(kmul(n2,n2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(n1,kmul(ToReal(2),knmsub(n3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(n2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2))))))))),kmadd(n2,kmul(ToReal(2),kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(n3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2))))),kmul(nn,kmadd(n3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))))))); - - CCTK_REAL_VEC Psi3rL = - kmadd(ltet2,kmul(R4p1212,kmul(rm2,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1213,kmul(rm2,kmul(n1,n1))),kmadd(ltet2,kmul(R4p1213,kmul(rm3,kmul(n1,n1))),kmadd(ltet3,kmul(R4p1313,kmul(rm3,kmul(n1,n1))),kmadd(ltet1,kmul(R4p1212,kmul(rm1,kmul(n2,n2))),kmadd(ltet3,kmul(R4p2323,kmul(rm3,kmul(n2,n2))),kmadd(ltet1,kmul(R4p1313,kmul(rm1,kmul(n3,n3))),kmadd(ltet2,kmul(R4p1323,kmul(rm1,kmul(n3,n3))),kmadd(ltet1,kmul(R4p1323,kmul(rm2,kmul(n3,n3))),kmadd(ltet2,kmul(R4p2323,kmul(rm2,kmul(n3,n3))),kmadd(n1,kmul(nn,kmul(rm2,kmul(Ro221,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n2,kmul(nn,kmul(rm2,kmul(Ro222,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n3,kmul(nn,kmul(rm2,kmul(Ro223,kmadd(ltet2,ToReal(-2),n2)))),kmadd(n1,kmul(nn,kmul(rm3,kmul(Ro331,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n2,kmul(nn,kmul(rm3,kmul(Ro332,kmadd(ltet3,ToReal(-2),n3)))),kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,kmadd(ltet3,ToReal(-2),n3)))),kmadd(rm1,kmul(Rojo11,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm2,kmul(Rojo12,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm3,kmul(Rojo13,kmul(kmul(nn,nn),ksub(ltet1,n1))),kmadd(rm1,kmul(Rojo21,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm2,kmul(Rojo22,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm3,kmul(Rojo23,kmul(kmul(nn,nn),ksub(ltet2,n2))),kmadd(rm1,kmul(Rojo31,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm2,kmul(Rojo32,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(rm3,kmul(Rojo33,kmul(kmul(nn,nn),ksub(ltet3,n3))),kmadd(n2,kmul(nn,kmul(Ro212,kmsub(rm1,ksub(n2,ltet2),kmul(ltet1,rm2)))),kmadd(n2,kmul(nn,kmul(Ro232,kmsub(rm3,ksub(n2,ltet2),kmul(ltet3,rm2)))),kmadd(n3,kmul(nn,kmul(Ro313,kmsub(rm1,ksub(n3,ltet3),kmul(ltet1,rm3)))),kmadd(n3,kmul(nn,kmul(Ro323,kmsub(rm2,ksub(n3,ltet3),kmul(ltet2,rm3)))),kmadd(ltet3,kmsub(n2,kmul(rm2,kmsub(n1,R4p1223,kmul(n3,R4p2323))),kmul(R4p1223,kmul(rm1,kmul(n2,n2)))),kmadd(ltet1,kmsub(n3,kmsub(n2,kmul(R4p1223,rm2),kmul(n1,kmul(R4p1313,rm3))),kmul(R4p1223,kmul(rm3,kmul(n2,n2)))),kmadd(n3,kmsub(rm1,kmsub(ltet2,kmul(n2,R4p1223),kmul(ltet3,kmul(n1,R4p1313))),kmadd(ltet1,kmadd(n2,kmul(R4p1323,rm3),kmul(n1,kmul(R4p1213,rm2))),kmul(nn,kmul(Ro123,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n1,kmsub(ltet2,kmul(n3,kmul(R4p1223,kmul(rm2,ToReal(-2)))),kmadd(ltet1,kmul(n2,kmul(R4p1213,rm3)),kmul(nn,kmul(Ro211,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2))))))),kmadd(nn,kmsub(n1,kmul(rm1,kmul(Ro111,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro213,kmadd(ltet1,rm2,kmul(rm1,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n2,kmul(rm1,kmul(Ro112,kmadd(ltet1,ToReal(-2),n1))),kmul(n3,kmul(Ro233,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2)))))),kmadd(nn,kmsub(n3,kmul(rm1,kmul(Ro113,kmadd(ltet1,ToReal(-2),n1))),kmul(n1,kmul(Ro311,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(nn,kmsub(n1,kmul(Ro121,kmsub(rm2,ksub(n1,ltet1),kmul(ltet2,rm1))),kmul(n2,kmul(Ro312,kmadd(ltet1,rm3,kmul(rm1,ksub(ltet3,n3)))))),kmadd(n1,kmul(nn,kmsub(Ro131,kmsub(rm3,ksub(n1,ltet1),kmul(ltet3,rm1)),kmul(Ro321,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3)))))),knmsub(n1,kmadd(ltet2,kmul(n3,kmul(R4p1323,rm3)),kmadd(n2,kmadd(rm1,kmadd(ltet3,R4p1213,kmul(ltet2,R4p1212)),kmul(ltet1,kmul(R4p1212,rm2))),kmul(nn,kmul(Ro231,kmadd(ltet3,rm2,kmul(rm3,ksub(ltet2,n2))))))),kmadd(n2,kmsub(ltet2,kmul(n1,kmul(R4p1223,rm3)),kmul(nn,kmadd(Ro322,kmadd(ltet2,rm3,kmul(rm2,ksub(ltet3,n3))),kmul(Ro122,kmadd(ltet2,rm1,kmul(rm2,ksub(ltet1,n1))))))),kmadd(n2,kmsub(ltet3,kmul(n1,kmul(R4p1323,kmul(rm3,ToReal(2)))),kmul(nn,kmul(Ro132,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))),kmul(n3,knmsub(ltet2,kmul(n2,kmul(R4p2323,rm3)),knmsub(ltet3,kmul(R4p1323,kmadd(n1,rm2,kmul(n2,rm1))),kmsub(R4p1213,kmul(rm1,kmsub(ltet1,kmul(n2,ToReal(2)),kmul(ltet2,n1))),kmul(nn,kmul(Ro133,kmadd(ltet3,rm1,kmul(rm3,ksub(ltet1,n1)))))))))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi3iL = - kmadd(im2,kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),knmsub(ltet2,kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmadd(n1,kmul(kmadd(n3,R4p1223,kmul(nn,Ro221)),ToReal(-2)),kmadd(n3,kmul(nn,kmul(Ro223,ToReal(-2))),kmul(nn,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(-2))))))))),kmadd(nn,kmsub(ltet3,kmul(n3,Ro233),kmul(Ro121,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro321),kmul(Ro222,kmul(n2,n2))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro322),kmul(Ro323,kmul(n3,n3))),kmadd(ltet3,kmsub(n3,kmul(nn,Ro323),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet3,kmadd(n2,kmul(n3,R4p2323),kmadd(n1,kmul(nn,Ro231),kmsub(n1,kmsub(n3,R4p1323,kmul(n2,R4p1223)),kmul(R4p1213,kmul(n1,n1))))),kmadd(ltet1,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo12,kmul(nn,nn)))))))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro232,kmul(n3,kadd(Ro322,Ro223)))),kmul(n1,kmul(nn,kmadd(n3,kadd(Ro321,Ro123),kmul(n2,kadd(Ro221,Ro122)))))))))))))))),kmadd(im1,kmadd(ltet3,kmul(R4p1223,kmul(n2,n2)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(n3,kmul(nn,kmsub(ltet3,Ro133,kmul(n1,Ro311))),kmadd(nn,kmsub(ltet3,kmul(n1,Ro311),kmul(Ro111,kmul(n1,n1))),kmadd(nn,kmsub(ltet3,kmul(n2,Ro312),kmul(Ro212,kmul(n2,n2))),kmadd(nn,kmul(Ro313,kmsub(ltet3,n3,kmul(n3,n3))),kmadd(ltet3,kmadd(n1,kmul(n2,R4p1213),kmadd(n1,kmul(n3,R4p1313),kmadd(n2,kmul(n3,R4p1323),kmsub(n1,kmul(nn,Ro131),kmul(Rojo31,kmul(nn,nn)))))),kmadd(ltet2,kmadd(n3,kmul(nn,Ro123),kmadd(n1,kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,kadd(Ro121,Ro211)))),kmadd(n2,kmul(nn,Ro212),kmadd(n3,kmul(nn,Ro213),knmsub(R4p1323,kmul(n3,n3),kmsub(n2,kmsub(nn,Ro122,kmul(n3,R4p1223)),kmul(Rojo21,kmul(nn,nn)))))))),knmsub(n1,kmul(nn,kmadd(n2,kadd(Ro211,Ro112),kmul(n3,Ro113))),kmsub(n2,kmul(nn,kmsub(ltet3,Ro132,kmul(n3,kadd(Ro312,Ro213)))),kmul(ltet1,kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmadd(Rojo11,kmul(nn,nn),kmadd(n1,kmul(nn,kmul(Ro111,ToReal(-2))),kmadd(n2,kmul(nn,kmul(Ro112,ToReal(-2))),kmadd(n3,kmul(nn,kmul(Ro113,ToReal(-2))),kmul(n2,kmul(n3,kmul(R4p1213,ToReal(2))))))))))))))))))))))),kmul(im3,kmadd(n1,kmul(Rojo13,kmul(nn,nn)),kmadd(n2,kmul(Rojo23,kmul(nn,nn)),kmadd(n3,kmul(Rojo33,kmul(nn,nn)),knmsub(n3,kmul(nn,kmadd(n2,kadd(Ro332,Ro233),kmul(n1,Ro331))),kmadd(ltet1,kmadd(n1,kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,kadd(Ro131,Ro311)))),kmadd(n2,kmadd(n3,R4p1323,kmul(nn,kadd(Ro132,Ro312))),kmadd(R4p1223,kmul(n2,n2),kmul(nn,kmsub(n3,kadd(Ro133,Ro313),kmul(nn,Rojo13)))))),kmadd(ltet2,kmadd(n2,kmadd(n3,R4p2323,kmul(nn,kadd(Ro232,Ro322))),knmsub(R4p1213,kmul(n1,n1),kmadd(n1,kmadd(n3,R4p1323,kmsub(nn,kadd(Ro231,Ro321),kmul(n2,R4p1223))),kmul(nn,kmsub(n3,kadd(Ro233,Ro323),kmul(nn,Rojo23)))))),kmadd(ltet3,knmsub(R4p1313,kmul(n1,n1),knmsub(R4p2323,kmul(n2,n2),kmsub(n2,kmul(nn,kmul(Ro332,ToReal(2))),kmul(Rojo33,kmul(nn,nn))))),kmadd(nn,knmsub(Ro131,kmul(n1,n1),kmsub(Ro333,kmsub(ltet3,kmul(n3,ToReal(2)),kmul(n3,n3)),kmul(Ro232,kmul(n2,n2)))),kmul(n1,kmadd(n2,kmsub(ltet3,kmul(R4p1323,ToReal(-2)),kmul(nn,kadd(Ro231,Ro132))),kmul(nn,kmsub(ltet3,kmul(Ro331,ToReal(2)),kmul(n3,Ro133)))))))))))))))); - - CCTK_REAL_VEC Psi2rL = - kmadd(ltet1,kmul(n3,kmul(R4p1223,kmadd(im2,im2,kmul(rm2,rm2)))),kmadd(nn,kmul(kmadd(im1,im2,kmul(rm1,rm2)),kmul(Ro211,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro311,ksub(n1,ltet1))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro322,ksub(n2,ltet2))),kmadd(nn,kmul(Ro222,kmul(kmadd(im2,im2,kmul(rm2,rm2)),ksub(n2,ltet2))),kmadd(nn,kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmul(Ro133,ksub(n3,ltet3))),kmadd(nn,kmul(kmadd(im2,im3,kmul(rm2,rm3)),kmul(Ro233,ksub(n3,ltet3))),kmadd(nn,kmul(Ro112,kmsub(n2,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro221,kmsub(n1,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im1,im2,kmul(rm1,rm2))))),kmadd(nn,kmul(Ro113,kmsub(n3,kmadd(im1,im1,kmul(rm1,rm1)),kmul(ltet1,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro331,kmsub(n1,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im1,im3,kmul(rm1,rm3))))),kmadd(nn,kmul(Ro223,kmsub(n3,kmadd(im2,im2,kmul(rm2,rm2)),kmul(ltet2,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro332,kmsub(n2,kmadd(im3,im3,kmul(rm3,rm3)),kmul(ltet3,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(ltet3,kmul(n3,kmul(R4p1323,ToReal(-2))),kmul(Rojo12,kmul(nn,nn))),kmadd(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n1,R4p1213),kmul(Rojo13,kmul(nn,nn))),kmadd(kmadd(im2,im2,kmul(rm2,rm2)),kmsub(ltet3,kmul(n1,R4p1223),kmul(Rojo22,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet1,kmul(n1,kmul(R4p1213,ToReal(-2))),kmul(Rojo23,kmul(nn,nn))),kmadd(kmadd(im2,im3,kmul(rm2,rm3)),kmsub(ltet3,kmul(n1,R4p1323),kmul(Rojo32,kmul(nn,nn))),kmadd(nn,kmul(Ro121,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet2,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro131,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(ltet3,kmul(R4p1313,kmsub(n1,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n3,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(n3,kmsub(ltet1,kmul(R4p1313,kmadd(im1,im3,kmul(rm1,rm3))),kmul(ltet2,kmul(R4p1213,kmadd(im1,im1,kmul(rm1,rm1))))),kmadd(nn,kmul(Ro212,kmsub(n2,kmadd(im1,im2,kmul(rm1,rm2)),kmul(ltet1,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro232,kmsub(n2,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet3,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet1,kmsub(n3,kmul(R4p1323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(n1,kmul(R4p1212,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(ltet3,kmsub(n2,kmul(R4p1323,kmadd(im1,im3,kmul(rm1,rm3))),kmul(n3,kmul(R4p2323,kmadd(im2,im2,kmul(rm2,rm2))))),kmadd(nn,kmul(Ro313,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(ltet1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(nn,kmul(Ro323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(ltet2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p1323,kmsub(n3,kmadd(im1,im3,kmul(rm1,rm3)),kmul(n1,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(ltet2,kmul(R4p2323,kmsub(n3,kmadd(im2,im3,kmul(rm2,rm3)),kmul(n2,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(n2,kmsub(ltet3,kmul(R4p2323,kmadd(im2,im3,kmul(rm2,rm3))),kmul(ltet1,kmul(R4p1323,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(kmadd(im1,im1,kmul(rm1,rm1)),kmsub(nn,kmul(Ro111,ksub(n1,ltet1)),kmul(Rojo11,kmul(nn,nn))),kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmsub(nn,kmul(Ro122,ksub(n2,ltet2)),kmul(Rojo21,kmul(nn,nn))),kmadd(kmadd(im3,im3,kmul(rm3,rm3)),kmsub(nn,kmul(Ro333,ksub(n3,ltet3)),kmul(Rojo33,kmul(nn,nn))),knmsub(R4p1223,kmadd(kmadd(im1,im2,kmul(rm1,rm2)),kmadd(ltet2,n3,kmul(ltet3,n2)),kmul(ltet2,kmul(n1,kmadd(im2,im3,kmul(rm2,rm3))))),kmadd(nn,kmul(Ro321,kmadd(im3,kmsub(im2,n1,kmul(im1,ltet2)),kmul(rm3,kmsub(n1,rm2,kmul(ltet2,rm1))))),kmadd(nn,kmul(Ro231,kmadd(im2,kmsub(im3,n1,kmul(im1,ltet3)),kmul(rm2,kmsub(n1,rm3,kmul(ltet3,rm1))))),kmadd(nn,kmul(Ro312,kmadd(im3,kmsub(im1,n2,kmul(im2,ltet1)),kmul(rm3,kmsub(n2,rm1,kmul(ltet1,rm2))))),kmadd(nn,kmul(Ro132,kmadd(im1,kmsub(im3,n2,kmul(im2,ltet3)),kmul(rm1,kmsub(n2,rm3,kmul(ltet3,rm2))))),kmadd(nn,kmul(Ro213,kmadd(im2,kmsub(im1,n3,kmul(im3,ltet1)),kmul(rm2,kmsub(n3,rm1,kmul(ltet1,rm3))))),kmadd(nn,kmul(Ro123,kmadd(im1,kmsub(im2,n3,kmul(im3,ltet2)),kmul(rm1,kmsub(n3,rm2,kmul(ltet2,rm3))))),kmadd(ltet1,kmsub(n2,kmsub(R4p1213,kmadd(im1,im3,kmul(rm1,rm3)),kmul(R4p1223,kmadd(im2,im3,kmul(rm2,rm3)))),kmul(n1,kmul(R4p1313,kmadd(im3,im3,kmul(rm3,rm3))))),kmadd(R4p1212,kmadd(ltet1,kmul(n2,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet2,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmadd(R4p1213,kmadd(ltet1,kmul(n3,kmadd(im1,im2,kmul(rm1,rm2))),kmul(ltet3,kmsub(n1,kmadd(im1,im2,kmul(rm1,rm2)),kmul(n2,kmadd(im1,im1,kmul(rm1,rm1)))))),kmul(kmadd(im1,im3,kmul(rm1,rm3)),kmsub(ltet2,kmul(n2,kmul(R4p1223,ToReal(2))),kmul(Rojo31,kmul(nn,nn)))))))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi2iL = - kmadd(im3,kmadd(n2,kmul(nn,kmul(rm1,Ro312)),kmadd(n3,kmul(nn,kmul(rm1,Ro313)),kmadd(n2,kmul(nn,kmul(rm2,Ro322)),kmadd(n3,kmul(nn,kmul(rm2,Ro323)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro331)),kmadd(ltet3,kmul(nn,kmul(rm2,Ro332)),kmadd(rm1,kmul(Rojo13,kmul(nn,nn)),kmadd(rm2,kmul(Rojo23,kmul(nn,nn)),kmadd(rm1,kmsub(n1,kmul(nn,Ro311),kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(nn,Ro321),kmul(Rojo32,kmul(nn,nn))),kmadd(ltet1,kmadd(n3,kmul(R4p1313,rm1),kmadd(n3,kmul(R4p1323,rm2),kmadd(nn,kmul(rm1,Ro311),kmadd(nn,kmul(rm2,Ro312),kmadd(rm1,kmsub(n2,R4p1213,kmul(nn,Ro113)),kmul(rm2,kmsub(n2,R4p1223,kmul(nn,Ro213)))))))),kmsub(ltet2,kmadd(nn,kmul(rm1,Ro321),kmadd(nn,kmul(rm2,Ro322),knmsub(n1,kmadd(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(rm1,kmsub(n3,R4p1323,kmul(nn,Ro123)),kmul(rm2,kmsub(n3,R4p2323,kmul(nn,Ro223))))))),kmadd(ltet3,kmadd(rm2,kmadd(n1,R4p1323,kmadd(nn,Ro233,kmul(n2,R4p2323))),kmul(rm1,kmadd(n1,R4p1313,kmadd(nn,Ro133,kmul(n2,R4p1323))))),kmul(nn,kmadd(rm2,kmadd(n1,Ro231,kmadd(n3,Ro233,kmul(n2,Ro232))),kmul(rm1,kmadd(n1,Ro131,kmadd(n3,Ro133,kmul(n2,Ro132))))))))))))))))))),kmadd(im2,kmadd(n3,kmul(nn,kmul(rm1,Ro213)),kmadd(ltet3,kmul(nn,kmul(rm1,Ro231)),kmadd(n2,kmul(nn,kmul(rm3,Ro232)),kmadd(ltet3,kmul(nn,kmul(rm3,Ro233)),kmadd(n3,kmul(nn,kmul(rm3,Ro233)),kmadd(rm1,kmul(Rojo12,kmul(nn,nn)),kmadd(rm3,kmul(Rojo32,kmul(nn,nn)),kmadd(rm1,kmsub(n2,kmul(nn,Ro212),kmul(Rojo21,kmul(nn,nn))),kmadd(rm3,kmsub(n1,kmul(nn,Ro231),kmul(Rojo23,kmul(nn,nn))),kmadd(nn,kmsub(rm1,kmsub(n1,Ro211,kmul(n3,Ro123)),kmul(n3,kmul(rm3,Ro323))),knmsub(ltet3,kmadd(rm1,kmadd(n1,R4p1213,kmadd(nn,Ro132,kmul(n2,R4p1223))),kmul(nn,kmul(rm3,Ro332))),kmadd(n1,kmsub(rm3,kmsub(ltet3,R4p1323,kmul(nn,Ro321)),kmul(nn,kmul(rm1,Ro121))),kmadd(n2,kmsub(rm3,kmsub(ltet3,R4p2323,kmul(nn,Ro322)),kmul(nn,kmul(rm1,Ro122))),kmadd(ltet2,kmadd(nn,kmul(rm1,Ro221),kmadd(nn,kmul(rm3,Ro223),kmadd(rm1,kmsub(n3,R4p1223,kmadd(nn,Ro122,kmul(n1,R4p1212))),kmul(rm3,kmsub(n1,R4p1223,kmadd(nn,Ro322,kmul(n3,R4p2323))))))),kmul(ltet1,kmadd(nn,kmul(rm3,Ro213),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1323,rm3)),kmul(nn,kmsub(rm1,ksub(Ro211,Ro112),kmul(rm3,Ro312))))))))))))))))))))),kmul(im1,kmadd(rm2,kmul(Rojo21,kmul(nn,nn)),kmadd(rm3,kmul(Rojo31,kmul(nn,nn)),knmsub(kmul(nn,nn),kmadd(rm3,Rojo13,kmul(rm2,Rojo12)),knmsub(ltet1,kmadd(n3,kmul(R4p1213,rm2),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm2,Ro211),kmadd(nn,kmul(rm3,Ro311),kmadd(rm2,kmsub(n2,R4p1212,kmul(nn,Ro112)),kmul(rm3,kmsub(n2,R4p1213,kmul(nn,Ro113)))))))),kmadd(nn,kmadd(n1,kmul(rm2,ksub(Ro121,Ro211)),kmadd(n2,kmul(rm2,ksub(Ro122,Ro212)),kmadd(n3,kmul(rm2,ksub(Ro123,Ro213)),kmadd(n1,kmul(rm3,ksub(Ro131,Ro311)),kmadd(n2,kmul(rm3,ksub(Ro132,Ro312)),kmul(n3,kmul(rm3,ksub(Ro133,Ro313)))))))),kmadd(ltet3,kmadd(n2,kmul(R4p1223,rm2),kmadd(n2,kmul(R4p1323,rm3),kmadd(nn,kmul(rm2,Ro132),kmadd(nn,kmul(rm3,Ro133),kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro231)),kmul(rm3,kmsub(n1,R4p1313,kmul(nn,Ro331)))))))),kmul(ltet2,kmadd(n1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmsub(nn,kmadd(rm2,ksub(Ro122,Ro221),kmul(rm3,ksub(Ro123,Ro321))),kmul(n3,kmadd(R4p1223,rm2,kmul(R4p1323,rm3))))))))))))))); - - CCTK_REAL_VEC Psi1rL = - kmadd(kmadd(n2,kmul(R4p1212,rm2),kmadd(n3,kmul(R4p1213,rm2),kmadd(n2,kmul(R4p1213,rm3),kmadd(n3,kmul(R4p1313,rm3),kmadd(nn,kmul(rm1,Ro111),kmadd(nn,kmul(rm2,Ro121),kmul(nn,kmul(rm3,Ro131)))))))),kmul(ltet1,ltet1),kmadd(n1,kmul(R4p1313,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p1323,kmul(rm1,kmul(ltet3,ltet3))),kmadd(n2,kmul(R4p2323,kmul(rm2,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm1,kmul(Ro313,kmul(ltet3,ltet3))),kmadd(nn,kmul(rm2,kmul(Ro323,kmul(ltet3,ltet3))),kmadd(n1,kmul(rm1,kmul(Rojo11,kmul(nn,nn))),kmadd(n1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(n1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(n2,kmul(rm1,kmul(Rojo21,kmul(nn,nn))),kmadd(n2,kmul(rm2,kmul(Rojo22,kmul(nn,nn))),kmadd(n2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(n3,kmul(rm1,kmul(Rojo31,kmul(nn,nn))),kmadd(n3,kmul(rm2,kmul(Rojo32,kmul(nn,nn))),kmadd(n3,kmul(rm3,kmul(Rojo33,kmul(nn,nn))),kmadd(rm2,kmsub(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo32,kmul(nn,nn)))),kmadd(rm3,kmsub(nn,kmul(Ro333,kmul(ltet3,ltet3)),kmul(ltet3,kmul(Rojo33,kmul(nn,nn)))),kmadd(kmul(ltet2,ltet2),kmadd(nn,kmul(rm1,Ro212),kmadd(nn,kmul(rm2,Ro222),kmadd(nn,kmul(rm3,Ro232),kmadd(rm3,kmsub(n3,R4p2323,kmul(n1,R4p1223)),kmul(rm1,kmsub(n1,R4p1212,kmul(n3,R4p1223))))))),kmsub(ltet3,kmadd(n3,kmul(nn,kmul(rm3,kmul(Ro333,ToReal(-2)))),knmsub(rm1,kmul(Rojo31,kmul(nn,nn)),kmadd(n2,kmul(nn,kmsub(rm2,kmul(Ro223,ToReal(-2)),kmul(rm3,kadd(Ro323,Ro233)))),kmul(nn,knmsub(n3,kmul(rm2,kadd(Ro323,Ro233)),kmsub(rm1,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(n1,kmadd(rm3,kadd(Ro313,Ro133),kmul(rm2,kadd(Ro213,Ro123)))))))))),kmadd(ltet2,kmadd(ltet1,kmadd(n3,kmsub(R4p1213,rm1,kmul(R4p1223,rm2)),kmadd(n2,kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(rm3,kmsub(n1,R4p1213,kmul(nn,Ro132)),knmsub(nn,kmul(rm1,kadd(Ro211,Ro112)),kmadd(rm3,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmul(nn,Ro231)),kmul(rm2,kmsub(n1,R4p1212,kmul(nn,kadd(Ro221,Ro122))))))))),kmsub(nn,kmadd(n3,kmul(rm1,Ro132),kmadd(n3,kmul(rm2,Ro232),kmadd(n3,kmul(rm1,Ro312),kmadd(n3,kmul(rm2,Ro322),kmadd(nn,kmul(rm1,Rojo21),kmadd(nn,kmul(rm2,Rojo22),kmadd(nn,kmul(rm3,Rojo23),kmadd(n3,kmul(rm3,kmul(Ro332,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro132,Ro312),kmul(rm1,kmul(Ro112,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro122,Ro212),kmadd(rm3,kadd(Ro232,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))))),kmul(ltet3,kmadd(nn,kmul(rm1,Ro213),kmadd(nn,kmul(rm2,Ro223),kmadd(nn,kmul(rm3,Ro233),kmadd(nn,kmul(rm1,Ro312),kmadd(nn,kmul(rm2,Ro322),kmadd(nn,kmul(rm3,Ro332),kmadd(rm1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmsub(n1,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(R4p2323,kmadd(n2,rm3,kmul(n3,rm2)))))))))))))),kmul(ltet1,kmadd(ltet3,kmadd(rm2,kmsub(n1,R4p1213,kmul(nn,Ro123)),kmadd(rm2,kmsub(n3,R4p1323,kmul(nn,Ro321)),kmadd(rm1,kmsub(n3,R4p1313,kmul(nn,kadd(Ro311,Ro113))),kmadd(rm3,kmsub(n1,R4p1313,kmul(nn,kadd(Ro331,Ro133))),kmul(n2,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))))),kmul(nn,kmadd(n3,kmul(rm1,Ro131),kmadd(n3,kmul(rm2,Ro231),kmadd(n3,kmul(rm1,Ro311),kmadd(n3,kmul(rm2,Ro321),kmadd(nn,kmul(rm1,Rojo11),kmadd(nn,kmul(rm2,Rojo12),kmadd(nn,kmul(rm3,Rojo13),kmadd(n3,kmul(rm3,kmul(Ro331,ToReal(2))),kmadd(n1,kmadd(rm2,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro131,Ro311),kmul(rm1,kmul(Ro111,ToReal(2))))),kmul(n2,kmadd(rm1,kadd(Ro121,Ro211),kmadd(rm3,kadd(Ro231,Ro321),kmul(rm2,kmul(Ro221,ToReal(2)))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi1iL = - kmadd(im1,kmadd(nn,kmul(Ro111,kmul(ltet1,ltet1)),kmadd(n1,kmul(R4p1313,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro313,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo11,kmul(nn,nn)),kmadd(n2,kmul(Rojo21,kmul(nn,nn)),kmadd(n3,kmul(Rojo31,kmul(nn,nn)),kmadd(kmul(ltet2,ltet2),kmadd(n1,R4p1212,kmsub(nn,Ro212,kmul(n3,R4p1223))),kmsub(ltet3,kmsub(nn,kmsub(n1,kmul(Ro113,ToReal(-2)),kmadd(n3,kadd(Ro313,Ro133),kmul(n2,kadd(Ro213,Ro123)))),kmul(Rojo31,kmul(nn,nn))),kmadd(ltet2,kmadd(ltet1,kmadd(n2,R4p1212,kmsub(n3,R4p1213,kmul(nn,kadd(Ro112,Ro211)))),kmsub(nn,kmadd(n3,Ro132,kmadd(n2,kadd(Ro122,Ro212),kmadd(n3,Ro312,kmadd(nn,Rojo21,kmul(n1,kmul(Ro112,ToReal(2))))))),kmul(ltet3,kmadd(n2,R4p1223,kmadd(nn,Ro213,kmadd(nn,Ro312,kmsub(n1,kmul(R4p1213,ToReal(2)),kmul(n3,R4p1323)))))))),kmul(ltet1,kmadd(ltet3,kmadd(n2,R4p1213,kmsub(n3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),kmul(nn,kmadd(n3,Ro131,kmadd(n2,kadd(Ro121,Ro211),kmadd(n3,Ro311,kmadd(nn,Rojo11,kmul(n1,kmul(Ro111,ToReal(2)))))))))))))))))))),kmadd(im2,kmadd(kmadd(n2,R4p1212,kmadd(n3,R4p1213,kmul(nn,Ro121))),kmul(ltet1,ltet1),kmadd(nn,kmul(Ro222,kmul(ltet2,ltet2)),kmadd(n1,kmul(R4p1323,kmul(ltet3,ltet3)),kmadd(n2,kmul(R4p2323,kmul(ltet3,ltet3)),kmadd(nn,kmul(Ro323,kmul(ltet3,ltet3)),kmadd(n1,kmul(Rojo12,kmul(nn,nn)),kmadd(n2,kmul(Rojo22,kmul(nn,nn)),kmadd(n3,kmul(Rojo32,kmul(nn,nn)),kmadd(ltet3,kmul(nn,kmsub(n2,kmul(Ro223,ToReal(-2)),kmul(n3,Ro323))),knmsub(ltet3,kmadd(nn,kmadd(n1,kadd(Ro213,Ro123),kmul(n3,Ro233)),kmul(Rojo32,kmul(nn,nn))),kmsub(ltet2,kmsub(ltet3,kmadd(n1,R4p1223,kmsub(nn,kadd(Ro223,Ro322),kmul(n3,R4p2323))),kmul(nn,kmadd(n1,kadd(Ro122,Ro212),kmadd(n3,Ro232,kmadd(n3,Ro322,kmadd(nn,Rojo22,kmul(n2,kmul(Ro222,ToReal(2))))))))),kmul(ltet1,kmadd(ltet2,kmsub(n1,R4p1212,kmadd(nn,kadd(Ro122,Ro221),kmul(n3,R4p1223))),kmadd(ltet3,kmadd(n1,R4p1213,kmadd(n3,R4p1323,kmsub(n2,kmul(R4p1223,ToReal(2)),kmul(nn,kadd(Ro321,Ro123))))),kmul(nn,kmadd(n1,kadd(Ro121,Ro211),kmadd(n3,Ro231,kmadd(n3,Ro321,kmadd(nn,Rojo12,kmul(n2,kmul(Ro221,ToReal(2)))))))))))))))))))))),kmul(im3,kmadd(kmadd(n2,R4p1213,kmadd(n3,R4p1313,kmul(nn,Ro131))),kmul(ltet1,ltet1),kmsub(kmul(ltet2,ltet2),kmadd(n3,R4p2323,kmsub(nn,Ro232,kmul(n1,R4p1223))),kmadd(ltet1,kmadd(ltet3,kmadd(n1,R4p1313,kmsub(n2,R4p1323,kmul(nn,kadd(Ro133,Ro331)))),kmadd(ltet2,kmadd(n1,R4p1213,kmsub(n3,kmul(R4p1323,ToReal(-2)),kmadd(nn,kadd(Ro231,Ro132),kmul(n2,R4p1223)))),kmul(nn,kmadd(n1,kadd(Ro131,Ro311),kmadd(n2,kadd(Ro231,Ro321),kmadd(nn,Rojo13,kmul(n3,kmul(Ro331,ToReal(2))))))))),kmadd(nn,knmsub(nn,kmadd(n1,Rojo13,kmadd(n2,Rojo23,kmul(n3,Rojo33))),kmsub(ltet3,kmadd(n1,kadd(Ro133,Ro313),kmadd(n2,kadd(Ro233,Ro323),kmadd(nn,Rojo33,kmul(n3,kmul(Ro333,ToReal(2)))))),kmul(Ro333,kmul(ltet3,ltet3)))),kmul(ltet2,kmadd(ltet3,kmadd(n1,R4p1323,kmsub(n2,R4p2323,kmul(nn,kadd(Ro233,Ro332)))),kmul(nn,kmadd(n1,kadd(Ro132,Ro312),kmadd(n2,kadd(Ro232,Ro322),kmadd(nn,Rojo23,kmul(n3,kmul(Ro332,ToReal(2)))))))))))))))); - - CCTK_REAL_VEC Psi0rL = - kmadd(rm1,kmul(rm2,kmul(Rojo12,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo13,kmul(nn,nn))),kmadd(rm1,kmul(rm2,kmul(Rojo21,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo23,kmul(nn,nn))),kmadd(rm1,kmul(rm3,kmul(Rojo31,kmul(nn,nn))),kmadd(rm2,kmul(rm3,kmul(Rojo32,kmul(nn,nn))),kmadd(R4p1212,kmul(kmul(ltet2,ltet2),kmul(rm1,rm1)),kmadd(Rojo11,kmul(kmul(nn,nn),kmul(rm1,rm1)),kmadd(R4p1212,kmul(kmul(ltet1,ltet1),kmul(rm2,rm2)),kmadd(Rojo22,kmul(kmul(nn,nn),kmul(rm2,rm2)),kmadd(R4p1313,kmul(kmul(ltet1,ltet1),kmul(rm3,rm3)),kmadd(R4p2323,kmul(kmul(ltet2,ltet2),kmul(rm3,rm3)),kmadd(kmadd(ltet1,kmul(ltet2,kmul(R4p1212,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1213,kmul(rm1,rm2))),kmadd(ltet1,kmul(ltet3,kmul(R4p1313,kmul(rm1,rm3))),kmadd(ltet1,kmul(ltet3,kmul(R4p1323,kmul(rm2,rm3))),kmadd(ltet2,kmul(ltet3,kmul(R4p2323,kmul(rm2,rm3))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(im3,im3))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(im3,im3))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(im3,im3))),kmul(R4p1223,kmul(rm1,kmul(rm3,kmul(ltet2,ltet2)))))))))))),ToReal(-2),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,kmul(kmul(rm2,rm2),ToReal(-2)))),kmadd(R4p1313,kmsub(kmul(ltet3,ltet3),kmul(rm1,rm1),kmul(kmul(im3,im3),kmul(ltet1,ltet1))),kmadd(R4p2323,kmsub(kmul(ltet3,ltet3),kmul(rm2,rm2),kmul(kmul(im3,im3),kmul(ltet2,ltet2))),kmadd(Rojo33,kmsub(kmul(nn,nn),kmul(rm3,rm3),kmul(kmul(im3,im3),kmul(nn,nn))),kmadd(kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro112))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro113))),kmadd(ltet2,kmul(nn,kmul(rm1,kmul(rm3,Ro123))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro132))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro133))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm2,Ro211))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro213))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro223))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm2,Ro231))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro233))),kmadd(ltet1,kmul(nn,kmul(rm1,kmul(rm3,Ro311))),kmadd(ltet1,kmul(nn,kmul(rm2,kmul(rm3,Ro312))),kmadd(ltet2,kmul(nn,kmul(rm2,kmul(rm3,Ro322))),kmadd(ltet3,kmul(nn,kmul(rm1,kmul(rm3,Ro331))),kmadd(ltet3,kmul(nn,kmul(rm2,kmul(rm3,Ro332))),kmadd(R4p1213,kmul(rm2,kmul(rm3,kmul(ltet1,ltet1))),kmul(R4p1323,kmul(rm1,kmul(rm2,kmul(ltet3,ltet3)))))))))))))))))))),ToReal(2),kmadd(ltet1,kmul(nn,kmul(Ro111,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro121,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro131,kmul(kmul(rm1,rm1),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro212,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro222,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro232,kmul(kmul(rm2,rm2),ToReal(2)))),kmadd(ltet1,kmul(ltet2,kmul(R4p1323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet1,kmul(nn,kmul(Ro313,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet2,kmul(nn,kmul(Ro323,kmul(kmul(rm3,rm3),ToReal(2)))),kmadd(ltet3,kmul(nn,kmul(Ro333,kmul(kmul(rm3,rm3),ToReal(2)))),knmsub(kmul(im2,im2),kmadd(R4p1212,kmul(ltet1,ltet1),kmadd(R4p2323,kmul(ltet3,ltet3),kmadd(Rojo22,kmul(nn,nn),kmadd(ltet1,kmul(ltet3,kmul(R4p1223,ToReal(-2))),kmadd(ltet1,kmul(nn,kmul(Ro212,ToReal(2))),kmadd(ltet2,kmul(nn,kmul(Ro222,ToReal(2))),kmul(ltet3,kmul(nn,kmul(Ro232,ToReal(2)))))))))),kmadd(ltet2,kmadd(ltet1,kmul(R4p1213,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(ltet3,kmul(R4p1323,kmul(rm1,kmul(rm3,ToReal(-2)))),kmadd(nn,kmul(Ro323,kmul(kmul(im3,im3),ToReal(-2))),kmadd(ltet3,kmul(R4p1223,kmul(rm1,kmul(rm2,ToReal(2)))),kmadd(ltet1,kmul(R4p1223,kmul(rm2,kmul(rm3,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro122,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm2,kmul(Ro221,ToReal(2)))),kmadd(nn,kmul(rm1,kmul(rm3,kmul(Ro321,ToReal(2)))),kmul(ltet3,kmul(R4p1213,kmul(kmul(rm1,rm1),ToReal(2)))))))))))),knmsub(kmul(im1,im1),kmadd(R4p1212,kmul(ltet2,ltet2),kmadd(R4p1313,kmul(ltet3,ltet3),kmadd(ltet2,kmul(kmadd(ltet3,R4p1213,kmul(nn,Ro121)),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro131,ToReal(2))),kmul(nn,kmadd(nn,Rojo11,kmul(ltet1,kmul(Ro111,ToReal(2))))))))),kmsub(im1,kmul(im3,kmadd(R4p1223,kmul(kmul(ltet2,ltet2),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1213,kmsub(ltet3,R4p1313,kmul(nn,kadd(Ro113,Ro311)))),ToReal(2)),kmsub(ltet2,kmul(kmsub(ltet3,R4p1323,kmul(nn,kadd(Ro123,Ro321))),ToReal(2)),kmul(nn,kmadd(nn,kadd(Rojo13,Rojo31),kmul(ltet3,kmul(kadd(Ro133,Ro331),ToReal(2))))))))),kmul(im2,kmadd(im3,kmadd(R4p1213,kmul(kmul(ltet1,ltet1),ToReal(2)),kmadd(ltet1,kmul(kmadd(ltet2,R4p1223,kmsub(nn,kadd(Ro213,Ro312),kmul(ltet3,R4p1323))),ToReal(2)),kmadd(ltet2,kmadd(ltet3,kmul(R4p2323,ToReal(-2)),kmul(nn,kmul(kadd(Ro223,Ro322),ToReal(2)))),kmul(nn,kmadd(nn,kadd(Rojo23,Rojo32),kmul(ltet3,kmul(kadd(Ro233,Ro332),ToReal(2)))))))),kmul(im1,kmadd(Rojo12,kmul(nn,nn),kmadd(Rojo21,kmul(nn,nn),kmadd(ltet1,kmul(ToReal(-2),kmadd(ltet2,R4p1212,kmsub(ltet3,R4p1213,kmul(nn,kadd(Ro112,Ro211))))),kmadd(ltet3,kmul(nn,kmul(Ro132,ToReal(2))),kmadd(ltet2,kmul(kmadd(ltet3,R4p1223,kmul(nn,kadd(Ro122,Ro221))),ToReal(2)),kmadd(ltet3,kmul(nn,kmul(Ro231,ToReal(2))),kmul(R4p1323,kmul(kmul(ltet3,ltet3),ToReal(2)))))))))))))))))))))))))))))))))))))))))))); - - CCTK_REAL_VEC Psi0iL = - kmadd(im1,kmadd(nn,kmadd(ltet1,kmul(ToReal(2),kmadd(rm2,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro113,Ro311),kmul(rm1,kmul(Ro111,ToReal(2)))))),kmul(nn,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmul(ltet3,ltet3),kmadd(kmul(ltet2,ltet2),kmsub(R4p1212,rm1,kmul(R4p1223,rm3)),kmadd(ltet2,knmsub(ltet1,kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmadd(ltet3,kmadd(R4p1223,rm2,kmsub(R4p1213,kmul(rm1,ToReal(2)),kmul(R4p1323,rm3))),kmul(nn,kmadd(rm2,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro123,Ro321),kmul(rm1,kmul(Ro121,ToReal(2)))))))),kmul(ltet3,kmsub(nn,kmadd(rm2,kadd(Ro132,Ro231),kmadd(rm3,kadd(Ro133,Ro331),kmul(rm1,kmul(Ro131,ToReal(2))))),kmul(ltet1,kmadd(R4p1213,rm2,kmul(R4p1313,rm3)))))))))),kmadd(im3,kmadd(kmul(ltet2,ltet2),kmadd(R4p1223,kmul(rm1,ToReal(-2)),kmul(R4p2323,kmul(rm3,ToReal(2)))),kmadd(nn,kmadd(ltet3,kmul(ToReal(2),kmadd(rm1,kadd(Ro133,Ro331),kmadd(rm2,kadd(Ro233,Ro332),kmul(rm3,kmul(Ro333,ToReal(2)))))),kmul(nn,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))),kmul(ToReal(2),kmadd(kmadd(R4p1213,rm2,kmul(R4p1313,rm3)),kmul(ltet1,ltet1),kmadd(ltet1,knmsub(ltet3,kmadd(R4p1313,rm1,kmul(R4p1323,rm2)),kmadd(ltet2,kmadd(R4p1223,rm2,kmsub(R4p1323,kmul(rm3,ToReal(2)),kmul(R4p1213,rm1))),kmul(nn,kmadd(rm1,kadd(Ro113,Ro311),kmadd(rm2,kadd(Ro213,Ro312),kmul(rm3,kmul(Ro313,ToReal(2)))))))),kmul(ltet2,kmsub(nn,kmadd(rm1,kadd(Ro123,Ro321),kmadd(rm2,kadd(Ro223,Ro322),kmul(rm3,kmul(Ro323,ToReal(2))))),kmul(ltet3,kmadd(R4p1323,rm1,kmul(R4p2323,rm2)))))))))),kmul(im2,kmadd(kmadd(rm1,kadd(Rojo12,Rojo21),kmul(rm3,kadd(Rojo23,Rojo32))),kmul(nn,nn),kmadd(ToReal(2),kmadd(ltet3,kmul(nn,kmadd(rm1,kadd(Ro132,Ro231),kmul(rm3,Ro233))),kmadd(kmadd(R4p1212,rm2,kmul(R4p1213,rm3)),kmul(ltet1,ltet1),kmadd(kmadd(R4p1323,rm1,kmul(R4p2323,rm2)),kmul(ltet3,ltet3),kmadd(rm2,kmul(Rojo22,kmul(nn,nn)),kmadd(ltet1,kmadd(ltet2,kmsub(R4p1223,rm3,kmul(R4p1212,rm1)),kmsub(nn,kmadd(rm1,kadd(Ro112,Ro211),kmadd(rm3,kadd(Ro213,Ro312),kmul(rm2,kmul(Ro212,ToReal(2))))),kmul(ltet3,kmadd(R4p1213,rm1,kmadd(R4p1323,rm3,kmul(R4p1223,kmul(rm2,ToReal(2)))))))),kmul(ltet2,kmadd(ltet3,kmsub(R4p1223,rm1,kmul(R4p2323,rm3)),kmul(nn,kmadd(rm1,kadd(Ro122,Ro221),kmadd(rm3,kadd(Ro223,Ro322),kmul(rm2,kmul(Ro222,ToReal(2))))))))))))),kmul(ltet3,kmul(nn,kmadd(rm3,kmul(Ro332,ToReal(2)),kmul(rm2,kmul(Ro232,ToReal(4))))))))))); - - /* Copy local copies back to grid functions */ - vec_store_partial_prepare(i,lc_imin,lc_imax); - vec_store_nta_partial(Psi0i[index],Psi0iL); - vec_store_nta_partial(Psi0r[index],Psi0rL); - vec_store_nta_partial(Psi1i[index],Psi1iL); - vec_store_nta_partial(Psi1r[index],Psi1rL); - vec_store_nta_partial(Psi2i[index],Psi2iL); - vec_store_nta_partial(Psi2r[index],Psi2rL); - vec_store_nta_partial(Psi3i[index],Psi3iL); - vec_store_nta_partial(Psi3r[index],Psi3rL); - vec_store_nta_partial(Psi4i[index],Psi4iL); - vec_store_nta_partial(Psi4r[index],Psi4rL); - } - LC_ENDLOOP3VEC(psis_calc_Nth); -} - -extern "C" void psis_calc_Nth(CCTK_ARGUMENTS) -{ - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering psis_calc_Nth_Body"); - } - - if (cctk_iteration % psis_calc_Nth_calc_every != psis_calc_Nth_calc_offset) - { - return; - } - - const char *const groups[] = { - "admbase::curv", - "admbase::metric", - "grid::coordinates", - "WeylScal4::Psi0i_group", - "WeylScal4::Psi0r_group", - "WeylScal4::Psi1i_group", - "WeylScal4::Psi1r_group", - "WeylScal4::Psi2i_group", - "WeylScal4::Psi2r_group", - "WeylScal4::Psi3i_group", - "WeylScal4::Psi3r_group", - "WeylScal4::Psi4i_group", - "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "psis_calc_Nth", 13, groups); - - switch(fdOrder) - { - case 2: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_Nth", 1, 1, 1); - break; - - case 4: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_Nth", 2, 2, 2); - break; - - case 6: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_Nth", 3, 3, 3); - break; - - case 8: - GenericFD_EnsureStencilFits(cctkGH, "psis_calc_Nth", 4, 4, 4); - break; - } - - GenericFD_LoopOverInterior(cctkGH, psis_calc_Nth_Body); - - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Leaving psis_calc_Nth_Body"); - } -} -- cgit v1.2.3