diff options
Diffstat (limited to 'src/WeylScal4_psi4_calc_Nth.cc')
-rw-r--r-- | src/WeylScal4_psi4_calc_Nth.cc | 364 |
1 files changed, 191 insertions, 173 deletions
diff --git a/src/WeylScal4_psi4_calc_Nth.cc b/src/WeylScal4_psi4_calc_Nth.cc index b0d6cc1..06be2b9 100644 --- a/src/WeylScal4_psi4_calc_Nth.cc +++ b/src/WeylScal4_psi4_calc_Nth.cc @@ -2,6 +2,7 @@ #define KRANC_C +#include <algorithm> #include <assert.h> #include <math.h> #include <stdio.h> @@ -10,22 +11,12 @@ #include "cctk.h" #include "cctk_Arguments.h" #include "cctk_Parameters.h" -#include "GenericFD.h" +#include "Kranc.hh" #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))) +namespace WeylScal4 { extern "C" void WeylScal4_psi4_calc_Nth_SelectBCs(CCTK_ARGUMENTS) { @@ -35,10 +26,10 @@ extern "C" void WeylScal4_psi4_calc_Nth_SelectBCs(CCTK_ARGUMENTS) if (cctk_iteration % WeylScal4_psi4_calc_Nth_calc_every != WeylScal4_psi4_calc_Nth_calc_offset) return; CCTK_INT ierr CCTK_ATTRIBUTE_UNUSED = 0; - ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "WeylScal4::Psi4i_group","flat"); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 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"); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 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; @@ -49,24 +40,37 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; - /* Include user-supplied include files */ - /* Initialise finite differencing variables */ const ptrdiff_t di CCTK_ATTRIBUTE_UNUSED = 1; - const ptrdiff_t dj CCTK_ATTRIBUTE_UNUSED = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); - const ptrdiff_t dk CCTK_ATTRIBUTE_UNUSED = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + const ptrdiff_t dj CCTK_ATTRIBUTE_UNUSED = + CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + const ptrdiff_t dk CCTK_ATTRIBUTE_UNUSED = + CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); const ptrdiff_t cdi CCTK_ATTRIBUTE_UNUSED = sizeof(CCTK_REAL) * di; const ptrdiff_t cdj CCTK_ATTRIBUTE_UNUSED = sizeof(CCTK_REAL) * dj; const ptrdiff_t cdk CCTK_ATTRIBUTE_UNUSED = sizeof(CCTK_REAL) * dk; - const CCTK_REAL_VEC dx CCTK_ATTRIBUTE_UNUSED = ToReal(CCTK_DELTA_SPACE(0)); - const CCTK_REAL_VEC dy CCTK_ATTRIBUTE_UNUSED = ToReal(CCTK_DELTA_SPACE(1)); - const CCTK_REAL_VEC dz CCTK_ATTRIBUTE_UNUSED = ToReal(CCTK_DELTA_SPACE(2)); - const CCTK_REAL_VEC dt CCTK_ATTRIBUTE_UNUSED = ToReal(CCTK_DELTA_TIME); + const ptrdiff_t cctkLbnd1 CCTK_ATTRIBUTE_UNUSED = cctk_lbnd[0]; + const ptrdiff_t cctkLbnd2 CCTK_ATTRIBUTE_UNUSED = cctk_lbnd[1]; + const ptrdiff_t cctkLbnd3 CCTK_ATTRIBUTE_UNUSED = cctk_lbnd[2]; const CCTK_REAL_VEC t CCTK_ATTRIBUTE_UNUSED = ToReal(cctk_time); - const CCTK_REAL_VEC dxi CCTK_ATTRIBUTE_UNUSED = INV(dx); - const CCTK_REAL_VEC dyi CCTK_ATTRIBUTE_UNUSED = INV(dy); - const CCTK_REAL_VEC dzi CCTK_ATTRIBUTE_UNUSED = INV(dz); + const CCTK_REAL_VEC cctkOriginSpace1 CCTK_ATTRIBUTE_UNUSED = + ToReal(CCTK_ORIGIN_SPACE(0)); + const CCTK_REAL_VEC cctkOriginSpace2 CCTK_ATTRIBUTE_UNUSED = + ToReal(CCTK_ORIGIN_SPACE(1)); + const CCTK_REAL_VEC cctkOriginSpace3 CCTK_ATTRIBUTE_UNUSED = + ToReal(CCTK_ORIGIN_SPACE(2)); + const CCTK_REAL_VEC dt CCTK_ATTRIBUTE_UNUSED = + ToReal(CCTK_DELTA_TIME); + const CCTK_REAL_VEC dx CCTK_ATTRIBUTE_UNUSED = + ToReal(CCTK_DELTA_SPACE(0)); + const CCTK_REAL_VEC dy CCTK_ATTRIBUTE_UNUSED = + ToReal(CCTK_DELTA_SPACE(1)); + const CCTK_REAL_VEC dz CCTK_ATTRIBUTE_UNUSED = + ToReal(CCTK_DELTA_SPACE(2)); + const CCTK_REAL_VEC dxi CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),dx); + const CCTK_REAL_VEC dyi CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),dy); + const CCTK_REAL_VEC dzi CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),dz); const CCTK_REAL_VEC khalf CCTK_ATTRIBUTE_UNUSED = ToReal(0.5); const CCTK_REAL_VEC kthird CCTK_ATTRIBUTE_UNUSED = ToReal(0.333333333333333333333333333333); @@ -80,35 +84,34 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const kmul(dyi,ToReal(0.5)); const CCTK_REAL_VEC hdzi CCTK_ATTRIBUTE_UNUSED = kmul(dzi,ToReal(0.5)); - /* Initialize predefined quantities */ const CCTK_REAL_VEC p1o12dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0833333333333333333333333333333),dx); const CCTK_REAL_VEC p1o12dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0833333333333333333333333333333),dy); const CCTK_REAL_VEC p1o12dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0833333333333333333333333333333),dz); - const CCTK_REAL_VEC p1o144dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); - const CCTK_REAL_VEC p1o144dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); - const CCTK_REAL_VEC p1o144dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); + const CCTK_REAL_VEC p1o144dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dx,dy)); + const CCTK_REAL_VEC p1o144dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dx,dz)); + const CCTK_REAL_VEC p1o144dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dz)); const CCTK_REAL_VEC p1o180dx2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); const CCTK_REAL_VEC p1o180dy2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); const CCTK_REAL_VEC p1o180dz2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); const CCTK_REAL_VEC p1o2dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.5),dx); const CCTK_REAL_VEC p1o2dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.5),dy); const CCTK_REAL_VEC p1o2dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.5),dz); - const CCTK_REAL_VEC p1o3600dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); - const CCTK_REAL_VEC p1o3600dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); - const CCTK_REAL_VEC p1o3600dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); - const CCTK_REAL_VEC p1o4dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dy,dx)); - const CCTK_REAL_VEC p1o4dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dz,dx)); - const CCTK_REAL_VEC p1o4dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dz,dy)); + const CCTK_REAL_VEC p1o3600dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dx,dy)); + const CCTK_REAL_VEC p1o3600dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dx,dz)); + const CCTK_REAL_VEC p1o3600dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dz)); + const CCTK_REAL_VEC p1o4dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dx,dy)); + const CCTK_REAL_VEC p1o4dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dx,dz)); + const CCTK_REAL_VEC p1o4dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dy,dz)); const CCTK_REAL_VEC p1o5040dx2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); const CCTK_REAL_VEC p1o5040dy2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); const CCTK_REAL_VEC p1o5040dz2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); const CCTK_REAL_VEC p1o60dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0166666666666666666666666666667),dx); const CCTK_REAL_VEC p1o60dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0166666666666666666666666666667),dy); const CCTK_REAL_VEC p1o60dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0166666666666666666666666666667),dz); - const CCTK_REAL_VEC p1o705600dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); - const CCTK_REAL_VEC p1o705600dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); - const CCTK_REAL_VEC p1o705600dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); + const CCTK_REAL_VEC p1o705600dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dx,dy)); + const CCTK_REAL_VEC p1o705600dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dx,dz)); + const CCTK_REAL_VEC p1o705600dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dz)); const CCTK_REAL_VEC p1o840dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00119047619047619047619047619048),dx); const CCTK_REAL_VEC p1o840dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00119047619047619047619047619048),dy); const CCTK_REAL_VEC p1o840dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00119047619047619047619047619048),dz); @@ -118,62 +121,76 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const const CCTK_REAL_VEC pm1o12dx2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); const CCTK_REAL_VEC pm1o12dy2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); const CCTK_REAL_VEC pm1o12dz2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); - /* Jacobian variable pointers */ - const bool use_jacobian1 = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + const bool usejacobian1 = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) && strlen(jacobian_group) > 0; - const bool use_jacobian = assume_use_jacobian>=0 ? assume_use_jacobian : use_jacobian1; - const bool usejacobian CCTK_ATTRIBUTE_UNUSED = use_jacobian; - if (use_jacobian && (strlen(jacobian_derivative_group) == 0)) + const bool usejacobian = assume_use_jacobian>=0 ? assume_use_jacobian : usejacobian1; + if (usejacobian && (strlen(jacobian_derivative_group) == 0)) { CCTK_WARN(1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); } const CCTK_REAL* restrict jacobian_ptrs[9]; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + if (usejacobian) GroupDataPointers(cctkGH, jacobian_group, 9, jacobian_ptrs); - const CCTK_REAL* restrict const J11 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[0] : 0; - const CCTK_REAL* restrict const J12 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[1] : 0; - const CCTK_REAL* restrict const J13 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[2] : 0; - const CCTK_REAL* restrict const J21 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[3] : 0; - const CCTK_REAL* restrict const J22 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[4] : 0; - const CCTK_REAL* restrict const J23 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[5] : 0; - const CCTK_REAL* restrict const J31 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[6] : 0; - const CCTK_REAL* restrict const J32 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[7] : 0; - const CCTK_REAL* restrict const J33 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[8] : 0; + const CCTK_REAL* restrict const J11 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[0] : 0; + const CCTK_REAL* restrict const J12 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[1] : 0; + const CCTK_REAL* restrict const J13 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[2] : 0; + const CCTK_REAL* restrict const J21 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[3] : 0; + const CCTK_REAL* restrict const J22 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[4] : 0; + const CCTK_REAL* restrict const J23 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[5] : 0; + const CCTK_REAL* restrict const J31 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[6] : 0; + const CCTK_REAL* restrict const J32 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[7] : 0; + const CCTK_REAL* restrict const J33 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_ptrs[8] : 0; - const CCTK_REAL* restrict jacobian_derivative_ptrs[18] CCTK_ATTRIBUTE_UNUSED; - if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, - 18, jacobian_derivative_ptrs); + const CCTK_REAL* restrict jacobian_determinant_ptrs[1] CCTK_ATTRIBUTE_UNUSED; + if (usejacobian && strlen(jacobian_determinant_group) > 0) GroupDataPointers(cctkGH, jacobian_determinant_group, + 1, jacobian_determinant_ptrs); - const CCTK_REAL* restrict const dJ111 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[0] : 0; - const CCTK_REAL* restrict const dJ112 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[1] : 0; - const CCTK_REAL* restrict const dJ113 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[2] : 0; - const CCTK_REAL* restrict const dJ122 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[3] : 0; - const CCTK_REAL* restrict const dJ123 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[4] : 0; - const CCTK_REAL* restrict const dJ133 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[5] : 0; - const CCTK_REAL* restrict const dJ211 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[6] : 0; - const CCTK_REAL* restrict const dJ212 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[7] : 0; - const CCTK_REAL* restrict const dJ213 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[8] : 0; - const CCTK_REAL* restrict const dJ222 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[9] : 0; - const CCTK_REAL* restrict const dJ223 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[10] : 0; - const CCTK_REAL* restrict const dJ233 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[11] : 0; - const CCTK_REAL* restrict const dJ311 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[12] : 0; - const CCTK_REAL* restrict const dJ312 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[13] : 0; - const CCTK_REAL* restrict const dJ313 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[14] : 0; - const CCTK_REAL* restrict const dJ322 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[15] : 0; - const CCTK_REAL* restrict const dJ323 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[16] : 0; - const CCTK_REAL* restrict const dJ333 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + const CCTK_REAL* restrict const detJ CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_determinant_ptrs[0] : 0; - /* Assign local copies of arrays functions */ + const CCTK_REAL* restrict jacobian_inverse_ptrs[9] CCTK_ATTRIBUTE_UNUSED; + if (usejacobian && strlen(jacobian_inverse_group) > 0) GroupDataPointers(cctkGH, jacobian_inverse_group, + 9, jacobian_inverse_ptrs); + const CCTK_REAL* restrict const iJ11 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[0] : 0; + const CCTK_REAL* restrict const iJ12 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[1] : 0; + const CCTK_REAL* restrict const iJ13 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[2] : 0; + const CCTK_REAL* restrict const iJ21 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[3] : 0; + const CCTK_REAL* restrict const iJ22 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[4] : 0; + const CCTK_REAL* restrict const iJ23 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[5] : 0; + const CCTK_REAL* restrict const iJ31 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[6] : 0; + const CCTK_REAL* restrict const iJ32 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[7] : 0; + const CCTK_REAL* restrict const iJ33 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_inverse_ptrs[8] : 0; + const CCTK_REAL* restrict jacobian_derivative_ptrs[18] CCTK_ATTRIBUTE_UNUSED; + if (usejacobian) GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); - /* Calculate temporaries and arrays functions */ + const CCTK_REAL* restrict const dJ111 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[0] : 0; + const CCTK_REAL* restrict const dJ112 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[1] : 0; + const CCTK_REAL* restrict const dJ113 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[2] : 0; + const CCTK_REAL* restrict const dJ122 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[3] : 0; + const CCTK_REAL* restrict const dJ123 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[4] : 0; + const CCTK_REAL* restrict const dJ133 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[5] : 0; + const CCTK_REAL* restrict const dJ211 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[6] : 0; + const CCTK_REAL* restrict const dJ212 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[7] : 0; + const CCTK_REAL* restrict const dJ213 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[8] : 0; + const CCTK_REAL* restrict const dJ222 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[9] : 0; + const CCTK_REAL* restrict const dJ223 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[10] : 0; + const CCTK_REAL* restrict const dJ233 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[11] : 0; + const CCTK_REAL* restrict const dJ311 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[12] : 0; + const CCTK_REAL* restrict const dJ312 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[13] : 0; + const CCTK_REAL* restrict const dJ313 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[14] : 0; + const CCTK_REAL* restrict const dJ322 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[15] : 0; + const CCTK_REAL* restrict const dJ323 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[16] : 0; + const CCTK_REAL* restrict const dJ333 CCTK_ATTRIBUTE_UNUSED = usejacobian ? jacobian_derivative_ptrs[17] : 0; + /* Assign local copies of arrays functions */ - /* Copy local copies back to grid functions */ + /* Calculate temporaries and arrays functions */ + /* Copy local copies back to grid functions */ /* Loop over the grid points */ const int imin0=imin[0]; const int imin1=imin[1]; @@ -181,15 +198,13 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const const int imax0=imax[0]; const int imax1=imax[1]; const int imax2=imax[2]; - #pragma omp parallel // reduction(+: vec_iter_counter, vec_op_counter, vec_mem_counter) + #pragma omp parallel CCTK_LOOP3STR(WeylScal4_psi4_calc_Nth, i,j,k, imin0,imin1,imin2, imax0,imax1,imax2, cctk_ash[0],cctk_ash[1],cctk_ash[2], vecimin,vecimax, CCTK_REAL_VEC_SIZE) { const ptrdiff_t index CCTK_ATTRIBUTE_UNUSED = di*i + dj*j + dk*k; - // vec_iter_counter+=CCTK_REAL_VEC_SIZE; - /* Assign local copies of grid functions */ CCTK_REAL_VEC gxxL CCTK_ATTRIBUTE_UNUSED = vec_load(gxx[index]); @@ -211,7 +226,7 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const 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 CCTK_ATTRIBUTE_UNUSED ; - if (use_jacobian) + if (usejacobian) { dJ111L = vec_load(dJ111[index]); dJ112L = vec_load(dJ112[index]); @@ -241,9 +256,7 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const J32L = vec_load(J32[index]); J33L = vec_load(J33[index]); } - /* Include user supplied include files */ - /* Precompute derivatives */ CCTK_REAL_VEC PDstandard1gxx CCTK_ATTRIBUTE_UNUSED; CCTK_REAL_VEC PDstandard2gxx CCTK_ATTRIBUTE_UNUSED; @@ -630,7 +643,6 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const default: CCTK_BUILTIN_UNREACHABLE(); } - /* Calculate temporaries and grid functions */ CCTK_REAL_VEC JacPDstandard11gyy CCTK_ATTRIBUTE_UNUSED; CCTK_REAL_VEC JacPDstandard11gyz CCTK_ATTRIBUTE_UNUSED; @@ -690,7 +702,7 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const CCTK_REAL_VEC JacPDstandard3kyy CCTK_ATTRIBUTE_UNUSED; CCTK_REAL_VEC JacPDstandard3kyz CCTK_ATTRIBUTE_UNUSED; - if (use_jacobian) + if (usejacobian) { JacPDstandard1gxx = kmadd(J11L,PDstandard1gxx,kmadd(J21L,PDstandard2gxx,kmul(J31L,PDstandard3gxx))); @@ -792,31 +804,31 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const 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)))))))); + kmadd(dJ111L,PDstandard1gyy,kmadd(ToReal(2),kmadd(J11L,kmadd(J21L,PDstandard12gyy,kmul(J31L,PDstandard13gyy)),kmul(J21L,kmul(J31L,PDstandard23gyy))),kmadd(dJ211L,PDstandard2gyy,kmadd(dJ311L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J11L,J11L),kmadd(PDstandard22gyy,kmul(J21L,J21L),kmul(PDstandard33gyy,kmul(J31L,J31L)))))))); 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)))))))); + kmadd(dJ111L,PDstandard1gyz,kmadd(ToReal(2),kmadd(J11L,kmadd(J21L,PDstandard12gyz,kmul(J31L,PDstandard13gyz)),kmul(J21L,kmul(J31L,PDstandard23gyz))),kmadd(dJ211L,PDstandard2gyz,kmadd(dJ311L,PDstandard3gyz,kmadd(PDstandard11gyz,kmul(J11L,J11L),kmadd(PDstandard22gyz,kmul(J21L,J21L),kmul(PDstandard33gyz,kmul(J31L,J31L)))))))); 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)))))))); + kmadd(dJ111L,PDstandard1gzz,kmadd(ToReal(2),kmadd(J11L,kmadd(J21L,PDstandard12gzz,kmul(J31L,PDstandard13gzz)),kmul(J21L,kmul(J31L,PDstandard23gzz))),kmadd(dJ211L,PDstandard2gzz,kmadd(dJ311L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J11L,J11L),kmadd(PDstandard22gzz,kmul(J21L,J21L),kmul(PDstandard33gzz,kmul(J31L,J31L)))))))); 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)))))))); + kmadd(dJ122L,PDstandard1gxx,kmadd(ToReal(2),kmadd(J12L,kmadd(J22L,PDstandard12gxx,kmul(J32L,PDstandard13gxx)),kmul(J22L,kmul(J32L,PDstandard23gxx))),kmadd(dJ222L,PDstandard2gxx,kmadd(dJ322L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J12L,J12L),kmadd(PDstandard22gxx,kmul(J22L,J22L),kmul(PDstandard33gxx,kmul(J32L,J32L)))))))); 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)))))))); + kmadd(dJ122L,PDstandard1gxz,kmadd(ToReal(2),kmadd(J12L,kmadd(J22L,PDstandard12gxz,kmul(J32L,PDstandard13gxz)),kmul(J22L,kmul(J32L,PDstandard23gxz))),kmadd(dJ222L,PDstandard2gxz,kmadd(dJ322L,PDstandard3gxz,kmadd(PDstandard11gxz,kmul(J12L,J12L),kmadd(PDstandard22gxz,kmul(J22L,J22L),kmul(PDstandard33gxz,kmul(J32L,J32L)))))))); 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)))))))); + kmadd(dJ122L,PDstandard1gzz,kmadd(ToReal(2),kmadd(J12L,kmadd(J22L,PDstandard12gzz,kmul(J32L,PDstandard13gzz)),kmul(J22L,kmul(J32L,PDstandard23gzz))),kmadd(dJ222L,PDstandard2gzz,kmadd(dJ322L,PDstandard3gzz,kmadd(PDstandard11gzz,kmul(J12L,J12L),kmadd(PDstandard22gzz,kmul(J22L,J22L),kmul(PDstandard33gzz,kmul(J32L,J32L)))))))); 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)))))))); + kmadd(dJ133L,PDstandard1gxx,kmadd(ToReal(2),kmadd(J13L,kmadd(J23L,PDstandard12gxx,kmul(J33L,PDstandard13gxx)),kmul(J23L,kmul(J33L,PDstandard23gxx))),kmadd(dJ233L,PDstandard2gxx,kmadd(dJ333L,PDstandard3gxx,kmadd(PDstandard11gxx,kmul(J13L,J13L),kmadd(PDstandard22gxx,kmul(J23L,J23L),kmul(PDstandard33gxx,kmul(J33L,J33L)))))))); 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)))))))); + kmadd(dJ133L,PDstandard1gxy,kmadd(ToReal(2),kmadd(J13L,kmadd(J23L,PDstandard12gxy,kmul(J33L,PDstandard13gxy)),kmul(J23L,kmul(J33L,PDstandard23gxy))),kmadd(dJ233L,PDstandard2gxy,kmadd(dJ333L,PDstandard3gxy,kmadd(PDstandard11gxy,kmul(J13L,J13L),kmadd(PDstandard22gxy,kmul(J23L,J23L),kmul(PDstandard33gxy,kmul(J33L,J33L)))))))); 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)))))))); + kmadd(dJ133L,PDstandard1gyy,kmadd(ToReal(2),kmadd(J13L,kmadd(J23L,PDstandard12gyy,kmul(J33L,PDstandard13gyy)),kmul(J23L,kmul(J33L,PDstandard23gyy))),kmadd(dJ233L,PDstandard2gyy,kmadd(dJ333L,PDstandard3gyy,kmadd(PDstandard11gyy,kmul(J13L,J13L),kmadd(PDstandard22gyy,kmul(J23L,J23L),kmul(PDstandard33gyy,kmul(J33L,J33L)))))))); 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))))))); @@ -981,7 +993,7 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const } CCTK_REAL_VEC detg CCTK_ATTRIBUTE_UNUSED = - 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))))))); + kmadd(ToReal(2),kmul(gxyL,kmul(gxzL,gyzL)),knmsub(gzzL,kmul(gxyL,gxyL),kmsub(gyyL,kmsub(gxxL,gzzL,kmul(gxzL,gxzL)),kmul(gxxL,kmul(gyzL,gyzL))))); CCTK_REAL_VEC invdetg CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),detg); @@ -1013,13 +1025,13 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const kmul(invdetg,kmsub(gxxL,gyyL,kmul(gxyL,gxyL))); CCTK_REAL_VEC gamma111 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv11,JacPDstandard1gxx,knmsub(gInv12,JacPDstandard2gxx,kmsub(kmadd(gInv12,JacPDstandard1gxy,kmul(gInv13,JacPDstandard1gxz)),ToReal(2),kmul(gInv13,JacPDstandard3gxx))))); + kmul(kmadd(gInv11,JacPDstandard1gxx,kmsub(ToReal(2),kmadd(gInv12,JacPDstandard1gxy,kmul(gInv13,JacPDstandard1gxz)),kmadd(gInv13,JacPDstandard3gxx,kmul(gInv12,JacPDstandard2gxx)))),ToReal(0.5)); CCTK_REAL_VEC gamma211 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard1gxx,knmsub(gInv22,JacPDstandard2gxx,kmsub(kmadd(gInv22,JacPDstandard1gxy,kmul(gInv23,JacPDstandard1gxz)),ToReal(2),kmul(gInv23,JacPDstandard3gxx))))); + kmul(kmadd(gInv21,JacPDstandard1gxx,kmsub(ToReal(2),kmadd(gInv22,JacPDstandard1gxy,kmul(gInv23,JacPDstandard1gxz)),kmadd(gInv23,JacPDstandard3gxx,kmul(gInv22,JacPDstandard2gxx)))),ToReal(0.5)); CCTK_REAL_VEC gamma311 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard1gxx,knmsub(gInv32,JacPDstandard2gxx,kmsub(kmadd(gInv32,JacPDstandard1gxy,kmul(gInv33,JacPDstandard1gxz)),ToReal(2),kmul(gInv33,JacPDstandard3gxx))))); + kmul(kmadd(gInv31,JacPDstandard1gxx,kmsub(ToReal(2),kmadd(gInv32,JacPDstandard1gxy,kmul(gInv33,JacPDstandard1gxz)),kmadd(gInv33,JacPDstandard3gxx,kmul(gInv32,JacPDstandard2gxx)))),ToReal(0.5)); CCTK_REAL_VEC gamma121 CCTK_ATTRIBUTE_UNUSED = kmul(kmadd(gInv12,JacPDstandard1gyy,kmadd(gInv11,JacPDstandard2gxx,kmul(gInv13,kadd(JacPDstandard1gyz,ksub(JacPDstandard2gxz,JacPDstandard3gxy))))),ToReal(0.5)); @@ -1040,31 +1052,31 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const kmul(kmadd(gInv33,JacPDstandard1gzz,kmadd(gInv31,JacPDstandard3gxx,kmul(gInv32,kadd(JacPDstandard1gyz,ksub(JacPDstandard3gxy,JacPDstandard2gxz))))),ToReal(0.5)); CCTK_REAL_VEC gamma122 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard2gyy,kmadd(gInv11,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv13,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + kmul(kmadd(gInv11,kmsub(ToReal(2),JacPDstandard2gxy,JacPDstandard1gyy),kmadd(gInv12,JacPDstandard2gyy,kmul(gInv13,kmsub(ToReal(2),JacPDstandard2gyz,JacPDstandard3gyy)))),ToReal(0.5)); CCTK_REAL_VEC gamma222 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard2gyy,kmadd(gInv21,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv23,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + kmul(kmadd(gInv21,kmsub(ToReal(2),JacPDstandard2gxy,JacPDstandard1gyy),kmadd(gInv22,JacPDstandard2gyy,kmul(gInv23,kmsub(ToReal(2),JacPDstandard2gyz,JacPDstandard3gyy)))),ToReal(0.5)); CCTK_REAL_VEC gamma322 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard2gyy,kmadd(gInv31,kmsub(JacPDstandard2gxy,ToReal(2),JacPDstandard1gyy),kmul(gInv33,kmsub(JacPDstandard2gyz,ToReal(2),JacPDstandard3gyy))))); + kmul(kmadd(gInv31,kmsub(ToReal(2),JacPDstandard2gxy,JacPDstandard1gyy),kmadd(gInv32,JacPDstandard2gyy,kmul(gInv33,kmsub(ToReal(2),JacPDstandard2gyz,JacPDstandard3gyy)))),ToReal(0.5)); CCTK_REAL_VEC gamma132 CCTK_ATTRIBUTE_UNUSED = - kmul(kmadd(gInv13,JacPDstandard2gzz,kmadd(gInv12,JacPDstandard3gyy,kmul(gInv11,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + kmul(kmadd(gInv13,JacPDstandard2gzz,kmadd(gInv11,ksub(kadd(JacPDstandard2gxz,JacPDstandard3gxy),JacPDstandard1gyz),kmul(gInv12,JacPDstandard3gyy))),ToReal(0.5)); CCTK_REAL_VEC gamma232 CCTK_ATTRIBUTE_UNUSED = - kmul(kmadd(gInv23,JacPDstandard2gzz,kmadd(gInv22,JacPDstandard3gyy,kmul(gInv21,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + kmul(kmadd(gInv23,JacPDstandard2gzz,kmadd(gInv21,ksub(kadd(JacPDstandard2gxz,JacPDstandard3gxy),JacPDstandard1gyz),kmul(gInv22,JacPDstandard3gyy))),ToReal(0.5)); CCTK_REAL_VEC gamma332 CCTK_ATTRIBUTE_UNUSED = - kmul(kmadd(gInv33,JacPDstandard2gzz,kmadd(gInv32,JacPDstandard3gyy,kmul(gInv31,kadd(JacPDstandard2gxz,ksub(JacPDstandard3gxy,JacPDstandard1gyz))))),ToReal(0.5)); + kmul(kmadd(gInv33,JacPDstandard2gzz,kmadd(gInv31,ksub(kadd(JacPDstandard2gxz,JacPDstandard3gxy),JacPDstandard1gyz),kmul(gInv32,JacPDstandard3gyy))),ToReal(0.5)); CCTK_REAL_VEC gamma133 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard3gzz,kmadd(gInv11,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv12,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + kmul(kmadd(gInv11,kmsub(ToReal(2),JacPDstandard3gxz,JacPDstandard1gzz),kmadd(gInv12,kmsub(ToReal(2),JacPDstandard3gyz,JacPDstandard2gzz),kmul(gInv13,JacPDstandard3gzz))),ToReal(0.5)); CCTK_REAL_VEC gamma233 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard3gzz,kmadd(gInv21,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv22,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + kmul(kmadd(gInv21,kmsub(ToReal(2),JacPDstandard3gxz,JacPDstandard1gzz),kmadd(gInv22,kmsub(ToReal(2),JacPDstandard3gyz,JacPDstandard2gzz),kmul(gInv23,JacPDstandard3gzz))),ToReal(0.5)); CCTK_REAL_VEC gamma333 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard3gzz,kmadd(gInv31,kmsub(JacPDstandard3gxz,ToReal(2),JacPDstandard1gzz),kmul(gInv32,kmsub(JacPDstandard3gyz,ToReal(2),JacPDstandard2gzz))))); + kmul(kmadd(gInv31,kmsub(ToReal(2),JacPDstandard3gxz,JacPDstandard1gzz),kmadd(gInv32,kmsub(ToReal(2),JacPDstandard3gyz,JacPDstandard2gzz),kmul(gInv33,JacPDstandard3gzz))),ToReal(0.5)); CCTK_REAL_VEC xmoved CCTK_ATTRIBUTE_UNUSED = ksub(xL,ToReal(xorig)); @@ -1085,13 +1097,13 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const CCTK_REAL_VEC vb3 CCTK_ATTRIBUTE_UNUSED = zmoved; CCTK_REAL_VEC vc1 CCTK_ATTRIBUTE_UNUSED = - 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)))))); + kmul(kmadd(kmsub(gInv12,va3,kmul(gInv13,va2)),vb1,kmadd(kmsub(gInv13,va1,kmul(gInv11,va3)),vb2,kmul(vb3,kmsub(gInv11,va2,kmul(gInv12,va1))))),kpow(detg,0.5)); CCTK_REAL_VEC vc2 CCTK_ATTRIBUTE_UNUSED = - 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)))))); + kmul(kmadd(kmsub(gInv22,va3,kmul(gInv23,va2)),vb1,kmadd(kmsub(gInv23,va1,kmul(gInv21,va3)),vb2,kmul(vb3,kmsub(gInv21,va2,kmul(gInv22,va1))))),kpow(detg,0.5)); CCTK_REAL_VEC vc3 CCTK_ATTRIBUTE_UNUSED = - 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)))))); + kmul(kmadd(kmsub(gInv32,va3,kmul(gInv33,va2)),vb1,kmadd(kmsub(gInv33,va1,kmul(gInv31,va3)),vb2,kmul(vb3,kmsub(gInv31,va2,kmul(gInv32,va1))))),kpow(detg,0.5)); CCTK_REAL_VEC wa1 CCTK_ATTRIBUTE_UNUSED = va1; @@ -1100,13 +1112,16 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const CCTK_REAL_VEC wa3 CCTK_ATTRIBUTE_UNUSED = va3; CCTK_REAL_VEC omega11 CCTK_ATTRIBUTE_UNUSED = - 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))))); + kmadd(ToReal(2),kmadd(gyzL,kmul(wa2,wa3),kmul(wa1,kmadd(gxyL,wa2,kmul(gxzL,wa3)))),kmadd(gxxL,kmul(wa1,wa1),kmadd(gyyL,kmul(wa2,wa2),kmul(gzzL,kmul(wa3,wa3))))); - CCTK_REAL_VEC ea1 CCTK_ATTRIBUTE_UNUSED = kdiv(wa1,ksqrt(omega11)); + CCTK_REAL_VEC ea1 CCTK_ATTRIBUTE_UNUSED = + kmul(wa1,kpow(omega11,-0.5)); - CCTK_REAL_VEC ea2 CCTK_ATTRIBUTE_UNUSED = kdiv(wa2,ksqrt(omega11)); + CCTK_REAL_VEC ea2 CCTK_ATTRIBUTE_UNUSED = + kmul(wa2,kpow(omega11,-0.5)); - CCTK_REAL_VEC ea3 CCTK_ATTRIBUTE_UNUSED = kdiv(wa3,ksqrt(omega11)); + CCTK_REAL_VEC ea3 CCTK_ATTRIBUTE_UNUSED = + kmul(wa3,kpow(omega11,-0.5)); CCTK_REAL_VEC omega12 CCTK_ATTRIBUTE_UNUSED = 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)))))); @@ -1118,13 +1133,16 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const CCTK_REAL_VEC wb3 CCTK_ATTRIBUTE_UNUSED = knmsub(ea3,omega12,vb3); CCTK_REAL_VEC omega22 CCTK_ATTRIBUTE_UNUSED = - 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))))); + kmadd(ToReal(2),kmadd(gyzL,kmul(wb2,wb3),kmul(wb1,kmadd(gxyL,wb2,kmul(gxzL,wb3)))),kmadd(gxxL,kmul(wb1,wb1),kmadd(gyyL,kmul(wb2,wb2),kmul(gzzL,kmul(wb3,wb3))))); - CCTK_REAL_VEC eb1 CCTK_ATTRIBUTE_UNUSED = kdiv(wb1,ksqrt(omega22)); + CCTK_REAL_VEC eb1 CCTK_ATTRIBUTE_UNUSED = + kmul(wb1,kpow(omega22,-0.5)); - CCTK_REAL_VEC eb2 CCTK_ATTRIBUTE_UNUSED = kdiv(wb2,ksqrt(omega22)); + CCTK_REAL_VEC eb2 CCTK_ATTRIBUTE_UNUSED = + kmul(wb2,kpow(omega22,-0.5)); - CCTK_REAL_VEC eb3 CCTK_ATTRIBUTE_UNUSED = kdiv(wb3,ksqrt(omega22)); + CCTK_REAL_VEC eb3 CCTK_ATTRIBUTE_UNUSED = + kmul(wb3,kpow(omega22,-0.5)); CCTK_REAL_VEC omega13 CCTK_ATTRIBUTE_UNUSED = 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)))))); @@ -1133,22 +1151,25 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const 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 CCTK_ATTRIBUTE_UNUSED = - ksub(vc1,kmadd(eb1,omega23,kmul(ea1,omega13))); + knmsub(ea1,omega13,knmsub(eb1,omega23,vc1)); CCTK_REAL_VEC wc2 CCTK_ATTRIBUTE_UNUSED = - ksub(vc2,kmadd(eb2,omega23,kmul(ea2,omega13))); + knmsub(ea2,omega13,knmsub(eb2,omega23,vc2)); CCTK_REAL_VEC wc3 CCTK_ATTRIBUTE_UNUSED = - ksub(vc3,kmadd(eb3,omega23,kmul(ea3,omega13))); + knmsub(ea3,omega13,knmsub(eb3,omega23,vc3)); CCTK_REAL_VEC omega33 CCTK_ATTRIBUTE_UNUSED = - 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))))); + kmadd(ToReal(2),kmadd(gyzL,kmul(wc2,wc3),kmul(wc1,kmadd(gxyL,wc2,kmul(gxzL,wc3)))),kmadd(gxxL,kmul(wc1,wc1),kmadd(gyyL,kmul(wc2,wc2),kmul(gzzL,kmul(wc3,wc3))))); - CCTK_REAL_VEC ec1 CCTK_ATTRIBUTE_UNUSED = kdiv(wc1,ksqrt(omega33)); + CCTK_REAL_VEC ec1 CCTK_ATTRIBUTE_UNUSED = + kmul(wc1,kpow(omega33,-0.5)); - CCTK_REAL_VEC ec2 CCTK_ATTRIBUTE_UNUSED = kdiv(wc2,ksqrt(omega33)); + CCTK_REAL_VEC ec2 CCTK_ATTRIBUTE_UNUSED = + kmul(wc2,kpow(omega33,-0.5)); - CCTK_REAL_VEC ec3 CCTK_ATTRIBUTE_UNUSED = kdiv(wc3,ksqrt(omega33)); + CCTK_REAL_VEC ec3 CCTK_ATTRIBUTE_UNUSED = + kmul(wc3,kpow(omega33,-0.5)); CCTK_REAL_VEC isqrt2 CCTK_ATTRIBUTE_UNUSED = ToReal(0.707106781186547524); @@ -1186,37 +1207,37 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const CCTK_REAL_VEC nn CCTK_ATTRIBUTE_UNUSED = isqrt2; CCTK_REAL_VEC R1212 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard12gxy,kadd(JacPDstandard21gxy,kmadd(kmadd(gamma122,kmadd(gxxL,gamma111,kmadd(gxyL,gamma211,kmul(gxzL,gamma311))),kmadd(gamma222,kmadd(gxyL,gamma111,kmadd(gyyL,gamma211,kmul(gyzL,gamma311))),kmul(kmadd(gxzL,gamma111,kmadd(gyzL,gamma211,kmul(gzzL,gamma311))),gamma322))),ToReal(-2),ksub(kmsub(kmadd(gamma121,kmadd(gxxL,gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321))),kmadd(gamma221,kmadd(gxyL,gamma121,kmadd(gyyL,gamma221,kmul(gyzL,gamma321))),kmul(gamma321,kmadd(gxzL,gamma121,kmadd(gyzL,gamma221,kmul(gzzL,gamma321)))))),ToReal(2),JacPDstandard22gxx),JacPDstandard11gyy))))); + kmul(kmadd(ToReal(2),kmadd(gamma121,kmadd(gxxL,gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321))),kmadd(gamma221,kmadd(gxyL,gamma121,kmadd(gyyL,gamma221,kmul(gyzL,gamma321))),kmul(gamma321,kmadd(gxzL,gamma121,kmadd(gyzL,gamma221,kmul(gzzL,gamma321)))))),kmadd(ToReal(-2),kmadd(gamma122,kmadd(gxxL,gamma111,kmadd(gxyL,gamma211,kmul(gxzL,gamma311))),kmadd(gamma222,kmadd(gxyL,gamma111,kmadd(gyyL,gamma211,kmul(gyzL,gamma311))),kmul(kmadd(gxzL,gamma111,kmadd(gyzL,gamma211,kmul(gzzL,gamma311))),gamma322))),ksub(kadd(JacPDstandard12gxy,ksub(JacPDstandard21gxy,JacPDstandard22gxx)),JacPDstandard11gyy))),ToReal(0.5)); CCTK_REAL_VEC R1213 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard12gxz,kadd(JacPDstandard31gxy,kmadd(kmadd(gamma132,kmadd(gxxL,gamma111,kmadd(gxyL,gamma211,kmul(gxzL,gamma311))),kmadd(gamma232,kmadd(gxyL,gamma111,kmadd(gyyL,gamma211,kmul(gyzL,gamma311))),kmul(kmadd(gxzL,gamma111,kmadd(gyzL,gamma211,kmul(gzzL,gamma311))),gamma332))),ToReal(-2),ksub(kmsub(kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmadd(gamma221,kmadd(gxyL,gamma131,kmadd(gyyL,gamma231,kmul(gyzL,gamma331))),kmul(gamma321,kmadd(gxzL,gamma131,kmadd(gyzL,gamma231,kmul(gzzL,gamma331)))))),ToReal(2),JacPDstandard23gxx),JacPDstandard11gyz))))); + kmul(kmadd(ToReal(2),kmadd(gamma121,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmadd(gamma221,kmadd(gxyL,gamma131,kmadd(gyyL,gamma231,kmul(gyzL,gamma331))),kmul(gamma321,kmadd(gxzL,gamma131,kmadd(gyzL,gamma231,kmul(gzzL,gamma331)))))),kmadd(ToReal(-2),kmadd(gamma132,kmadd(gxxL,gamma111,kmadd(gxyL,gamma211,kmul(gxzL,gamma311))),kmadd(gamma232,kmadd(gxyL,gamma111,kmadd(gyyL,gamma211,kmul(gyzL,gamma311))),kmul(kmadd(gxzL,gamma111,kmadd(gyzL,gamma211,kmul(gzzL,gamma311))),gamma332))),ksub(kadd(JacPDstandard12gxz,ksub(JacPDstandard31gxy,JacPDstandard23gxx)),JacPDstandard11gyz))),ToReal(0.5)); CCTK_REAL_VEC R1223 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard22gxz,kadd(JacPDstandard31gyy,kmadd(kmadd(gamma132,kmadd(gxxL,gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321))),kmadd(gamma232,kmadd(gxyL,gamma121,kmadd(gyyL,gamma221,kmul(gyzL,gamma321))),kmul(kmadd(gxzL,gamma121,kmadd(gyzL,gamma221,kmul(gzzL,gamma321))),gamma332))),ToReal(-2),ksub(kmsub(kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmadd(gamma222,kmadd(gxyL,gamma131,kmadd(gyyL,gamma231,kmul(gyzL,gamma331))),kmul(gamma322,kmadd(gxzL,gamma131,kmadd(gyzL,gamma231,kmul(gzzL,gamma331)))))),ToReal(2),JacPDstandard23gxy),JacPDstandard12gyz))))); + kmul(kmadd(ToReal(2),kmadd(gamma122,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmadd(gamma222,kmadd(gxyL,gamma131,kmadd(gyyL,gamma231,kmul(gyzL,gamma331))),kmul(gamma322,kmadd(gxzL,gamma131,kmadd(gyzL,gamma231,kmul(gzzL,gamma331)))))),kmadd(ToReal(-2),kmadd(gamma132,kmadd(gxxL,gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321))),kmadd(gamma232,kmadd(gxyL,gamma121,kmadd(gyyL,gamma221,kmul(gyzL,gamma321))),kmul(kmadd(gxzL,gamma121,kmadd(gyzL,gamma221,kmul(gzzL,gamma321))),gamma332))),ksub(kadd(JacPDstandard22gxz,ksub(JacPDstandard31gyy,JacPDstandard23gxy)),JacPDstandard12gyz))),ToReal(0.5)); CCTK_REAL_VEC R1313 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard13gxz,kadd(JacPDstandard31gxz,kmadd(kmadd(gamma133,kmadd(gxxL,gamma111,kmadd(gxyL,gamma211,kmul(gxzL,gamma311))),kmadd(gamma233,kmadd(gxyL,gamma111,kmadd(gyyL,gamma211,kmul(gyzL,gamma311))),kmul(kmadd(gxzL,gamma111,kmadd(gyzL,gamma211,kmul(gzzL,gamma311))),gamma333))),ToReal(-2),ksub(kmsub(kmadd(gamma131,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmadd(gamma231,kmadd(gxyL,gamma131,kmadd(gyyL,gamma231,kmul(gyzL,gamma331))),kmul(gamma331,kmadd(gxzL,gamma131,kmadd(gyzL,gamma231,kmul(gzzL,gamma331)))))),ToReal(2),JacPDstandard33gxx),JacPDstandard11gzz))))); + kmul(kmadd(ToReal(2),kmadd(gamma131,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmadd(gamma231,kmadd(gxyL,gamma131,kmadd(gyyL,gamma231,kmul(gyzL,gamma331))),kmul(gamma331,kmadd(gxzL,gamma131,kmadd(gyzL,gamma231,kmul(gzzL,gamma331)))))),kmadd(ToReal(-2),kmadd(gamma133,kmadd(gxxL,gamma111,kmadd(gxyL,gamma211,kmul(gxzL,gamma311))),kmadd(gamma233,kmadd(gxyL,gamma111,kmadd(gyyL,gamma211,kmul(gyzL,gamma311))),kmul(kmadd(gxzL,gamma111,kmadd(gyzL,gamma211,kmul(gzzL,gamma311))),gamma333))),ksub(kadd(JacPDstandard13gxz,ksub(JacPDstandard31gxz,JacPDstandard33gxx)),JacPDstandard11gzz))),ToReal(0.5)); CCTK_REAL_VEC R1323 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard23gxz,kadd(JacPDstandard31gyz,kmadd(kmadd(gamma133,kmadd(gxxL,gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321))),kmadd(gamma233,kmadd(gxyL,gamma121,kmadd(gyyL,gamma221,kmul(gyzL,gamma321))),kmul(kmadd(gxzL,gamma121,kmadd(gyzL,gamma221,kmul(gzzL,gamma321))),gamma333))),ToReal(-2),ksub(kmsub(kmadd(gamma132,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmadd(gamma232,kmadd(gxyL,gamma131,kmadd(gyyL,gamma231,kmul(gyzL,gamma331))),kmul(kmadd(gxzL,gamma131,kmadd(gyzL,gamma231,kmul(gzzL,gamma331))),gamma332))),ToReal(2),JacPDstandard33gxy),JacPDstandard12gzz))))); + kmul(kmadd(ToReal(2),kmadd(gamma132,kmadd(gxxL,gamma131,kmadd(gxyL,gamma231,kmul(gxzL,gamma331))),kmadd(gamma232,kmadd(gxyL,gamma131,kmadd(gyyL,gamma231,kmul(gyzL,gamma331))),kmul(kmadd(gxzL,gamma131,kmadd(gyzL,gamma231,kmul(gzzL,gamma331))),gamma332))),kmadd(ToReal(-2),kmadd(gamma133,kmadd(gxxL,gamma121,kmadd(gxyL,gamma221,kmul(gxzL,gamma321))),kmadd(gamma233,kmadd(gxyL,gamma121,kmadd(gyyL,gamma221,kmul(gyzL,gamma321))),kmul(kmadd(gxzL,gamma121,kmadd(gyzL,gamma221,kmul(gzzL,gamma321))),gamma333))),ksub(kadd(JacPDstandard23gxz,ksub(JacPDstandard31gyz,JacPDstandard33gxy)),JacPDstandard12gzz))),ToReal(0.5)); CCTK_REAL_VEC R2323 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard23gyz,kadd(JacPDstandard32gyz,kmadd(kmadd(gamma133,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322))),kmadd(gamma233,kmadd(gxyL,gamma122,kmadd(gyyL,gamma222,kmul(gyzL,gamma322))),kmul(kmadd(gxzL,gamma122,kmadd(gyzL,gamma222,kmul(gzzL,gamma322))),gamma333))),ToReal(-2),ksub(kmsub(kmadd(gamma132,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmadd(gamma232,kmadd(gxyL,gamma132,kmadd(gyyL,gamma232,kmul(gyzL,gamma332))),kmul(gamma332,kmadd(gxzL,gamma132,kmadd(gyzL,gamma232,kmul(gzzL,gamma332)))))),ToReal(2),JacPDstandard33gyy),JacPDstandard22gzz))))); + kmul(kmadd(ToReal(2),kmadd(gamma132,kmadd(gxxL,gamma132,kmadd(gxyL,gamma232,kmul(gxzL,gamma332))),kmadd(gamma232,kmadd(gxyL,gamma132,kmadd(gyyL,gamma232,kmul(gyzL,gamma332))),kmul(gamma332,kmadd(gxzL,gamma132,kmadd(gyzL,gamma232,kmul(gzzL,gamma332)))))),kmadd(ToReal(-2),kmadd(gamma133,kmadd(gxxL,gamma122,kmadd(gxyL,gamma222,kmul(gxzL,gamma322))),kmadd(gamma233,kmadd(gxyL,gamma122,kmadd(gyyL,gamma222,kmul(gyzL,gamma322))),kmul(kmadd(gxzL,gamma122,kmadd(gyzL,gamma222,kmul(gzzL,gamma322))),gamma333))),ksub(kadd(JacPDstandard23gyz,ksub(JacPDstandard32gyz,JacPDstandard33gyy)),JacPDstandard22gzz))),ToReal(0.5)); CCTK_REAL_VEC R4p1212 CCTK_ATTRIBUTE_UNUSED = kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)); CCTK_REAL_VEC R4p1213 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,kyzL,knmsub(kxyL,kxzL,R1213)); + knmsub(kxyL,kxzL,kmadd(kxxL,kyzL,R1213)); CCTK_REAL_VEC R4p1223 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxyL,kyzL,knmsub(kxzL,kyyL,R1223)); + knmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)); CCTK_REAL_VEC R4p1313 CCTK_ATTRIBUTE_UNUSED = kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)); CCTK_REAL_VEC R4p1323 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxyL,kzzL,knmsub(kxzL,kyzL,R1323)); + knmsub(kxzL,kyzL,kmadd(kxyL,kzzL,R1323)); CCTK_REAL_VEC R4p2323 CCTK_ATTRIBUTE_UNUSED = kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323)); @@ -1224,108 +1245,107 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const CCTK_REAL_VEC Ro111 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro112 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma121,kmadd(kxzL,gamma321,kadd(JacPDstandard1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard2kxx)))))); + kmadd(kxxL,gamma121,knmsub(kyyL,gamma211,kmadd(kxyL,ksub(gamma221,gamma111),knmsub(kyzL,gamma311,kmadd(kxzL,gamma321,ksub(JacPDstandard1kxy,JacPDstandard2kxx)))))); CCTK_REAL_VEC Ro113 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard3kxx)))))); + kmadd(kxxL,gamma131,knmsub(kyzL,gamma211,kmadd(kxyL,gamma231,knmsub(kzzL,gamma311,kmadd(kxzL,ksub(gamma331,gamma111),ksub(JacPDstandard1kxz,JacPDstandard3kxx)))))); CCTK_REAL_VEC Ro121 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard1kxy)))))); + knmsub(kxxL,gamma121,kmadd(kyyL,gamma211,kmadd(kxyL,ksub(gamma111,gamma221),kmadd(kyzL,gamma311,knmsub(kxzL,gamma321,ksub(JacPDstandard2kxx,JacPDstandard1kxy)))))); CCTK_REAL_VEC Ro122 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro123 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard3kxy)))))); + knmsub(kxzL,gamma121,kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,knmsub(kzzL,gamma321,kmadd(kyzL,ksub(gamma331,gamma221),ksub(JacPDstandard2kxz,JacPDstandard3kxy)))))); CCTK_REAL_VEC Ro131 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard1kxz)))))); + knmsub(kxxL,gamma131,kmadd(kyzL,gamma211,knmsub(kxyL,gamma231,kmadd(kzzL,gamma311,kmadd(kxzL,ksub(gamma111,gamma331),ksub(JacPDstandard3kxx,JacPDstandard1kxz)))))); CCTK_REAL_VEC Ro132 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard2kxz)))))); + kmadd(kxzL,gamma121,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmadd(kzzL,gamma321,kmadd(kyzL,ksub(gamma221,gamma331),ksub(JacPDstandard3kxy,JacPDstandard2kxz)))))); CCTK_REAL_VEC Ro133 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro211 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro212 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma122,kmadd(kxzL,gamma322,kadd(JacPDstandard1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard2kxy)))))); + kmadd(kxxL,gamma122,knmsub(kyyL,gamma221,kmadd(kxyL,ksub(gamma222,gamma121),knmsub(kyzL,gamma321,kmadd(kxzL,gamma322,ksub(JacPDstandard1kyy,JacPDstandard2kxy)))))); CCTK_REAL_VEC Ro213 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard3kxy)))))); + kmadd(kxxL,gamma132,knmsub(kyzL,gamma221,kmadd(kxyL,gamma232,knmsub(kzzL,gamma321,kmadd(kxzL,ksub(gamma332,gamma121),ksub(JacPDstandard1kyz,JacPDstandard3kxy)))))); CCTK_REAL_VEC Ro221 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard1kyy)))))); + knmsub(kxxL,gamma122,kmadd(kyyL,gamma221,kmadd(kxyL,ksub(gamma121,gamma222),kmadd(kyzL,gamma321,knmsub(kxzL,gamma322,ksub(JacPDstandard2kxy,JacPDstandard1kyy)))))); CCTK_REAL_VEC Ro222 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro223 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard3kyy)))))); + knmsub(kxzL,gamma122,kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,knmsub(kzzL,gamma322,kmadd(kyzL,ksub(gamma332,gamma222),ksub(JacPDstandard2kyz,JacPDstandard3kyy)))))); CCTK_REAL_VEC Ro231 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard1kyz)))))); + knmsub(kxxL,gamma132,kmadd(kyzL,gamma221,knmsub(kxyL,gamma232,kmadd(kzzL,gamma321,kmadd(kxzL,ksub(gamma121,gamma332),ksub(JacPDstandard3kxy,JacPDstandard1kyz)))))); CCTK_REAL_VEC Ro232 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard2kyz)))))); + kmadd(kxzL,gamma122,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmadd(kzzL,gamma322,kmadd(kyzL,ksub(gamma222,gamma332),ksub(JacPDstandard3kyy,JacPDstandard2kyz)))))); CCTK_REAL_VEC Ro233 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro311 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro312 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma132,kmadd(kxzL,gamma332,kadd(JacPDstandard1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard2kxz)))))); + kmadd(kxxL,gamma132,knmsub(kyyL,gamma231,kmadd(kxyL,ksub(gamma232,gamma131),knmsub(kyzL,gamma331,kmadd(kxzL,gamma332,ksub(JacPDstandard1kyz,JacPDstandard2kxz)))))); CCTK_REAL_VEC Ro313 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard3kxz)))))); + kmadd(kxxL,gamma133,knmsub(kyzL,gamma231,kmadd(kxyL,gamma233,knmsub(kzzL,gamma331,kmadd(kxzL,ksub(gamma333,gamma131),ksub(JacPDstandard1kzz,JacPDstandard3kxz)))))); CCTK_REAL_VEC Ro321 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard1kyz)))))); + knmsub(kxxL,gamma132,kmadd(kyyL,gamma231,kmadd(kxyL,ksub(gamma131,gamma232),kmadd(kyzL,gamma331,knmsub(kxzL,gamma332,ksub(JacPDstandard2kxz,JacPDstandard1kyz)))))); CCTK_REAL_VEC Ro322 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro323 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard3kyz)))))); + knmsub(kxzL,gamma132,kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,knmsub(kzzL,gamma332,kmadd(kyzL,ksub(gamma333,gamma232),ksub(JacPDstandard2kzz,JacPDstandard3kyz)))))); CCTK_REAL_VEC Ro331 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard1kzz)))))); + knmsub(kxxL,gamma133,kmadd(kyzL,gamma231,knmsub(kxyL,gamma233,kmadd(kzzL,gamma331,kmadd(kxzL,ksub(gamma131,gamma333),ksub(JacPDstandard3kxz,JacPDstandard1kzz)))))); CCTK_REAL_VEC Ro332 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard2kzz)))))); + kmadd(kxzL,gamma132,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmadd(kzzL,gamma332,kmadd(kyzL,ksub(gamma232,gamma333),ksub(JacPDstandard3kyz,JacPDstandard2kzz)))))); CCTK_REAL_VEC Ro333 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Rojo11 CCTK_ATTRIBUTE_UNUSED = - 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))))); + kmadd(kadd(gInv23,gInv32),knmsub(kxyL,kxzL,kmadd(kxxL,kyzL,R1213)),kmadd(gInv22,kmadd(kxxL,kyyL,knmsub(kxyL,kxyL,R1212)),kmul(gInv33,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313))))); CCTK_REAL_VEC Rojo12 CCTK_ATTRIBUTE_UNUSED = - 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))))))))); + kmadd(kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),gInv13,kmadd(kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),gInv32,knmsub(gInv21,R1212,knmsub(gInv31,R1213,kmadd(gInv23,R1223,kmadd(gInv33,knmsub(kxzL,kyzL,kmadd(kxyL,kzzL,R1323)),kmul(gInv12,kmsub(kxyL,kxyL,kmul(kxxL,kyyL))))))))); CCTK_REAL_VEC Rojo13 CCTK_ATTRIBUTE_UNUSED = - 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)))))))))); + kmadd(kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),gInv12,kmadd(kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),gInv23,knmsub(gInv21,R1213,kmadd(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),knmsub(gInv31,R1313,kmsub(gInv13,kmsub(kxzL,kxzL,kmul(kxxL,kzzL)),kmul(gInv32,R1323))))))); CCTK_REAL_VEC Rojo21 CCTK_ATTRIBUTE_UNUSED = - 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))))))))); + kmadd(kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),gInv23,kmadd(kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),gInv31,knmsub(gInv12,R1212,knmsub(gInv13,R1213,kmadd(gInv32,R1223,kmadd(gInv33,knmsub(kxzL,kyzL,kmadd(kxyL,kzzL,R1323)),kmul(gInv21,kmsub(kxyL,kxyL,kmul(kxxL,kyyL))))))))); CCTK_REAL_VEC Rojo22 CCTK_ATTRIBUTE_UNUSED = 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 CCTK_ATTRIBUTE_UNUSED = - 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))))))))); + kmadd(kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),gInv13,kmadd(kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),gInv21,kmadd(gInv11,knmsub(kxyL,kxzL,kmadd(kxxL,kyzL,R1213)),kmadd(gInv12,R1223,knmsub(gInv31,R1323,kmsub(gInv23,kmsub(kyzL,kyzL,kmul(kyyL,kzzL)),kmul(gInv32,R2323))))))); CCTK_REAL_VEC Rojo31 CCTK_ATTRIBUTE_UNUSED = - 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)))))))))); + kmadd(kmsub(kxyL,kxzL,kmul(kxxL,kyzL)),gInv21,kmadd(kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),gInv32,knmsub(gInv12,R1213,kmadd(gInv22,kmsub(kxzL,kyyL,kmadd(kxyL,kyzL,R1223)),knmsub(gInv13,R1313,kmsub(gInv31,kmsub(kxzL,kxzL,kmul(kxxL,kzzL)),kmul(gInv23,R1323))))))); CCTK_REAL_VEC Rojo32 CCTK_ATTRIBUTE_UNUSED = - 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))))))))); + kmadd(kmsub(kxyL,kyzL,kmul(kxzL,kyyL)),gInv12,kmadd(kmsub(kxzL,kyzL,kmul(kxyL,kzzL)),gInv31,kmadd(gInv11,knmsub(kxyL,kxzL,kmadd(kxxL,kyzL,R1213)),kmadd(gInv21,R1223,knmsub(gInv13,R1323,kmsub(gInv32,kmsub(kyzL,kyzL,kmul(kyyL,kzzL)),kmul(gInv23,R2323))))))); CCTK_REAL_VEC Rojo33 CCTK_ATTRIBUTE_UNUSED = - 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))))); + kmadd(kadd(gInv12,gInv21),knmsub(kxzL,kyzL,kmadd(kxyL,kzzL,R1323)),kmadd(gInv11,kmadd(kxxL,kzzL,knmsub(kxzL,kxzL,R1313)),kmul(gInv22,kmadd(kyyL,kzzL,knmsub(kyzL,kyzL,R2323))))); CCTK_REAL_VEC Psi4rL CCTK_ATTRIBUTE_UNUSED = - knmsub(kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmul(n1,kmul(n3,kmul(R4p1223,ToReal(-2)))))),kmsub(imbar2,imbar2,kmul(rmbar2,rmbar2)),knmsub(kmul(nn,nn),kmadd(imbar1,kmadd(imbar2,kadd(Rojo12,Rojo21),kmul(imbar3,kadd(Rojo13,Rojo31))),knmsub(rmbar1,kmadd(rmbar2,kadd(Rojo12,Rojo21),kmul(rmbar3,kadd(Rojo13,Rojo31))),kmadd(Rojo23,kmsub(imbar2,imbar3,kmul(rmbar2,rmbar3)),kmadd(Rojo32,kmsub(imbar2,imbar3,kmul(rmbar2,rmbar3)),kmadd(Rojo11,kmsub(imbar1,imbar1,kmul(rmbar1,rmbar1)),kmadd(Rojo22,kmsub(imbar2,imbar2,kmul(rmbar2,rmbar2)),kmul(Rojo33,kmsub(imbar3,imbar3,kmul(rmbar3,rmbar3))))))))),kmsub(kmadd(kmsub(n1,kmadd(n2,R4p1212,kmul(n3,R4p1213)),kmul(n3,kmadd(n2,R4p1223,kmul(n3,R4p1323)))),kmsub(imbar1,imbar2,kmul(rmbar1,rmbar2)),kmadd(kmadd(n1,kmul(n2,R4p1213),kmadd(n1,kmul(n3,R4p1313),kmadd(n2,kmul(n3,R4p1323),kmul(R4p1223,kmul(n2,n2))))),kmsub(imbar1,imbar3,kmul(rmbar1,rmbar3)),kmadd(kmsub(rmbar2,rmbar3,kmul(imbar2,imbar3)),kmadd(R4p1213,kmul(n1,n1),kmsub(n1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmul(n2,kmul(n3,R4p2323)))),kmul(nn,kmadd(kmadd(n1,Ro112,kmadd(n2,Ro122,kmul(n3,Ro132))),kmsub(rmbar1,rmbar2,kmul(imbar1,imbar2)),kmadd(kmadd(n1,Ro211,kmadd(n2,Ro221,kmul(n3,Ro231))),kmsub(rmbar1,rmbar2,kmul(imbar1,imbar2)),kmadd(kmadd(n1,Ro113,kmadd(n2,Ro123,kmul(n3,Ro133))),kmsub(rmbar1,rmbar3,kmul(imbar1,imbar3)),kmadd(kmadd(n1,Ro311,kmadd(n2,Ro321,kmul(n3,Ro331))),kmsub(rmbar1,rmbar3,kmul(imbar1,imbar3)),kmadd(kmadd(n1,Ro213,kmadd(n2,Ro223,kmul(n3,Ro233))),kmsub(rmbar2,rmbar3,kmul(imbar2,imbar3)),kmadd(kmadd(n1,Ro312,kmadd(n2,Ro322,kmul(n3,Ro332))),kmsub(rmbar2,rmbar3,kmul(imbar2,imbar3)),kmadd(kmadd(n1,Ro111,kmadd(n2,Ro121,kmul(n3,Ro131))),kmsub(rmbar1,rmbar1,kmul(imbar1,imbar1)),kmadd(kmadd(n1,Ro212,kmadd(n2,Ro222,kmul(n3,Ro232))),kmsub(rmbar2,rmbar2,kmul(imbar2,imbar2)),kmul(kmadd(n1,Ro313,kmadd(n2,Ro323,kmul(n3,Ro333))),kmsub(rmbar3,rmbar3,kmul(imbar3,imbar3))))))))))))))),ToReal(2),kmadd(kmsub(imbar3,imbar3,kmul(rmbar3,rmbar3)),kmadd(R4p1313,kmul(n1,n1),kmadd(R4p2323,kmul(n2,n2),kmul(n1,kmul(n2,kmul(R4p1323,ToReal(2)))))),kmul(kmsub(imbar1,imbar1,kmul(rmbar1,rmbar1)),kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmul(n2,kmul(n3,kmul(R4p1213,ToReal(2))))))))))); + kmadd(ToReal(2),kmul(kmsub(imbar1,imbar2,kmul(rmbar1,rmbar2)),kmsub(n1,kmadd(n2,R4p1212,kmul(n3,R4p1213)),kmul(n3,kmadd(n2,R4p1223,kmul(n3,R4p1323))))),kmadd(ToReal(2),kmul(kmadd(n1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmsub(R4p1213,kmul(n1,n1),kmul(n2,kmul(n3,R4p2323)))),kmsub(rmbar2,rmbar3,kmul(imbar2,imbar3))),kmadd(ToReal(2),kmul(kmadd(n1,kmul(n2,R4p1213),kmadd(n1,kmul(n3,R4p1313),kmadd(n2,kmul(n3,R4p1323),kmul(R4p1223,kmul(n2,n2))))),kmsub(imbar1,imbar3,kmul(rmbar1,rmbar3))),knmsub(kmadd(ToReal(2),kmul(n2,kmul(n3,R4p1213)),kmadd(R4p1212,kmul(n2,n2),kmul(R4p1313,kmul(n3,n3)))),kmsub(imbar1,imbar1,kmul(rmbar1,rmbar1)),knmsub(kmadd(ToReal(-2),kmul(n1,kmul(n3,R4p1223)),kmadd(R4p1212,kmul(n1,n1),kmul(R4p2323,kmul(n3,n3)))),kmsub(imbar2,imbar2,kmul(rmbar2,rmbar2)),knmsub(kmul(nn,nn),kmadd(kmsub(imbar2,imbar3,kmul(rmbar2,rmbar3)),Rojo23,kmadd(imbar1,kmadd(imbar2,kadd(Rojo12,Rojo21),kmul(imbar3,kadd(Rojo13,Rojo31))),knmsub(rmbar1,kmadd(rmbar2,kadd(Rojo12,Rojo21),kmul(rmbar3,kadd(Rojo13,Rojo31))),kmadd(kmsub(imbar2,imbar3,kmul(rmbar2,rmbar3)),Rojo32,kmadd(Rojo11,kmsub(imbar1,imbar1,kmul(rmbar1,rmbar1)),kmadd(Rojo22,kmsub(imbar2,imbar2,kmul(rmbar2,rmbar2)),kmul(Rojo33,kmsub(imbar3,imbar3,kmul(rmbar3,rmbar3))))))))),kmsub(ToReal(2),kmul(nn,kmadd(kmsub(rmbar1,rmbar2,kmul(imbar1,imbar2)),kmadd(n1,Ro112,kmadd(n2,Ro122,kmul(n3,Ro132))),kmadd(kmsub(rmbar1,rmbar3,kmul(imbar1,imbar3)),kmadd(n1,Ro113,kmadd(n2,Ro123,kmul(n3,Ro133))),kmadd(kmsub(rmbar1,rmbar2,kmul(imbar1,imbar2)),kmadd(n1,Ro211,kmadd(n2,Ro221,kmul(n3,Ro231))),kmadd(kmsub(rmbar2,rmbar3,kmul(imbar2,imbar3)),kmadd(n1,Ro213,kmadd(n2,Ro223,kmul(n3,Ro233))),kmadd(kmsub(rmbar1,rmbar3,kmul(imbar1,imbar3)),kmadd(n1,Ro311,kmadd(n2,Ro321,kmul(n3,Ro331))),kmadd(kmsub(rmbar2,rmbar3,kmul(imbar2,imbar3)),kmadd(n1,Ro312,kmadd(n2,Ro322,kmul(n3,Ro332))),kmadd(kmadd(n1,Ro111,kmadd(n2,Ro121,kmul(n3,Ro131))),kmsub(rmbar1,rmbar1,kmul(imbar1,imbar1)),kmadd(kmadd(n1,Ro212,kmadd(n2,Ro222,kmul(n3,Ro232))),kmsub(rmbar2,rmbar2,kmul(imbar2,imbar2)),kmul(kmadd(n1,Ro313,kmadd(n2,Ro323,kmul(n3,Ro333))),kmsub(rmbar3,rmbar3,kmul(imbar3,imbar3)))))))))))),kmul(kmadd(ToReal(2),kmul(n1,kmul(n2,R4p1323)),kmadd(R4p1313,kmul(n1,n1),kmul(R4p2323,kmul(n2,n2)))),kmsub(imbar3,imbar3,kmul(rmbar3,rmbar3)))))))))); CCTK_REAL_VEC Psi4iL CCTK_ATTRIBUTE_UNUSED = - kmadd(kmadd(kmadd(im3,rm1,kmul(im1,rm3)),kmadd(n1,kmadd(n2,R4p1213,kmul(n3,R4p1313)),kmadd(n2,kmul(n3,R4p1323),kmul(R4p1223,kmul(n2,n2)))),kmadd(kmadd(im2,rm1,kmul(im1,rm2)),kmsub(n1,kmadd(n2,R4p1212,kmul(n3,R4p1213)),kmul(n3,kmadd(n2,R4p1223,kmul(n3,R4p1323)))),kmul(nn,kmadd(kmadd(im1,kmul(rm1,kmadd(n1,Ro111,kmadd(n2,Ro121,kmul(n3,Ro131)))),kmul(im2,kmul(rm2,kmadd(n1,Ro212,kmadd(n2,Ro222,kmul(n3,Ro232)))))),ToReal(-2),kmsub(im3,kmul(rm3,kmul(kmadd(n1,Ro313,kmadd(n2,Ro323,kmul(n3,Ro333))),ToReal(-2))),kmadd(kmadd(im2,rm1,kmul(im1,rm2)),kmadd(n1,kadd(Ro211,Ro112),kmadd(n3,kadd(Ro231,Ro132),kmul(n2,kadd(Ro221,Ro122)))),kmadd(kmadd(im3,rm2,kmul(im2,rm3)),kmadd(n1,kadd(Ro312,Ro213),kmadd(n3,kadd(Ro332,Ro233),kmul(n2,kadd(Ro322,Ro223)))),kmul(kmadd(im3,rm1,kmul(im1,rm3)),kmadd(n1,kadd(Ro311,Ro113),kmadd(n3,kadd(Ro331,Ro133),kmul(n2,kadd(Ro321,Ro123)))))))))))),ToReal(2),kmsub(ToReal(-2),kmadd(im2,kmul(rm2,kmadd(R4p1212,kmul(n1,n1),kmadd(R4p2323,kmul(n3,n3),kmul(n1,kmul(n3,kmul(R4p1223,ToReal(-2))))))),kmadd(kmadd(im3,rm2,kmul(im2,rm3)),kmadd(R4p1213,kmul(n1,n1),kmsub(n1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmul(n2,kmul(n3,R4p2323)))),kmadd(im1,kmul(rm1,kmadd(R4p1212,kmul(n2,n2),kmadd(R4p1313,kmul(n3,n3),kmul(n2,kmul(n3,kmul(R4p1213,ToReal(2))))))),kmul(im3,kmul(rm3,kmadd(R4p1313,kmul(n1,n1),kmadd(R4p2323,kmul(n2,n2),kmul(n1,kmul(n2,kmul(R4p1323,ToReal(2))))))))))),kmul(kmul(nn,nn),kmadd(im1,kmadd(rm2,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo13,Rojo31),kmul(rm1,kmul(Rojo11,ToReal(2))))),kmadd(im2,kmadd(rm1,kadd(Rojo12,Rojo21),kmadd(rm3,kadd(Rojo23,Rojo32),kmul(rm2,kmul(Rojo22,ToReal(2))))),kmul(im3,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(rm3,kmul(Rojo33,ToReal(2))))))))))); - + kmadd(ToReal(2),kmadd(kmsub(n1,kmadd(n2,R4p1212,kmul(n3,R4p1213)),kmul(n3,kmadd(n2,R4p1223,kmul(n3,R4p1323)))),kmadd(im2,rm1,kmul(im1,rm2)),kmadd(nn,knmsub(kmadd(im2,rm1,kmul(im1,rm2)),kmadd(n1,kadd(Ro112,Ro211),kmadd(n3,kadd(Ro132,Ro231),kmul(n2,kadd(Ro122,Ro221)))),kmadd(ToReal(-2),kmadd(im1,kmul(rm1,kmadd(n1,Ro111,kmadd(n2,Ro121,kmul(n3,Ro131)))),kmul(im2,kmul(rm2,kmadd(n1,Ro212,kmadd(n2,Ro222,kmul(n3,Ro232)))))),knmsub(kmadd(im3,rm1,kmul(im1,rm3)),kmadd(n1,kadd(Ro113,Ro311),kmadd(n3,kadd(Ro133,Ro331),kmul(n2,kadd(Ro123,Ro321)))),kmsub(ToReal(-2),kmul(im3,kmul(rm3,kmadd(n1,Ro313,kmadd(n2,Ro323,kmul(n3,Ro333))))),kmul(kmadd(im3,rm2,kmul(im2,rm3)),kmadd(n1,kadd(Ro213,Ro312),kmadd(n3,kadd(Ro233,Ro332),kmul(n2,kadd(Ro223,Ro322))))))))),kmul(kmadd(im3,rm1,kmul(im1,rm3)),kmadd(n1,kmadd(n2,R4p1213,kmul(n3,R4p1313)),kmadd(n2,kmul(n3,R4p1323),kmul(R4p1223,kmul(n2,n2))))))),kmsub(ToReal(-2),kmadd(kmadd(im3,rm2,kmul(im2,rm3)),kmadd(n1,kmsub(n2,R4p1223,kmul(n3,R4p1323)),kmsub(R4p1213,kmul(n1,n1),kmul(n2,kmul(n3,R4p2323)))),kmadd(im3,kmul(rm3,kmadd(ToReal(2),kmul(n1,kmul(n2,R4p1323)),kmadd(R4p1313,kmul(n1,n1),kmul(R4p2323,kmul(n2,n2))))),kmadd(im1,kmul(rm1,kmadd(ToReal(2),kmul(n2,kmul(n3,R4p1213)),kmadd(R4p1212,kmul(n2,n2),kmul(R4p1313,kmul(n3,n3))))),kmul(im2,kmul(rm2,kmadd(ToReal(-2),kmul(n1,kmul(n3,R4p1223)),kmadd(R4p1212,kmul(n1,n1),kmul(R4p2323,kmul(n3,n3))))))))),kmul(kmadd(im1,kmadd(ToReal(2),kmul(rm1,Rojo11),kmadd(rm2,kadd(Rojo12,Rojo21),kmul(rm3,kadd(Rojo13,Rojo31)))),kmadd(im2,kmadd(rm1,kadd(Rojo12,Rojo21),kmadd(ToReal(2),kmul(rm2,Rojo22),kmul(rm3,kadd(Rojo23,Rojo32)))),kmul(im3,kmadd(rm1,kadd(Rojo13,Rojo31),kmadd(rm2,kadd(Rojo23,Rojo32),kmul(kmul(rm3,Rojo33),ToReal(2))))))),kmul(nn,nn)))); /* Copy local copies back to grid functions */ vec_store_partial_prepare(i,vecimin,vecimax); vec_store_nta_partial(Psi4i[index],Psi4iL); @@ -1333,18 +1353,15 @@ static void WeylScal4_psi4_calc_Nth_Body(const cGH* restrict const cctkGH, const } CCTK_ENDLOOP3STR(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; @@ -1356,41 +1373,42 @@ extern "C" void WeylScal4_psi4_calc_Nth(CCTK_ARGUMENTS) "grid::coordinates", "WeylScal4::Psi4i_group", "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_psi4_calc_Nth", 5, groups); + AssertGroupStorage(cctkGH, "WeylScal4_psi4_calc_Nth", 5, groups); switch (fdOrder) { case 2: { - GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 1, 1, 1); + EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 1, 1, 1); break; } case 4: { - GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 2, 2, 2); + EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 2, 2, 2); break; } case 6: { - GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 3, 3, 3); + EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 3, 3, 3); break; } case 8: { - GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 4, 4, 4); + EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_Nth", 4, 4, 4); break; } default: CCTK_BUILTIN_UNREACHABLE(); } - GenericFD_LoopOverInterior(cctkGH, WeylScal4_psi4_calc_Nth_Body); - + LoopOverInterior(cctkGH, WeylScal4_psi4_calc_Nth_Body); if (verbose > 1) { CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_psi4_calc_Nth_Body"); } } + +} // namespace WeylScal4 |