diff options
Diffstat (limited to 'src/WeylScal4_psi4_calc_4th.cc')
-rw-r--r-- | src/WeylScal4_psi4_calc_4th.cc | 364 |
1 files changed, 191 insertions, 173 deletions
diff --git a/src/WeylScal4_psi4_calc_4th.cc b/src/WeylScal4_psi4_calc_4th.cc index 0c75849..cbf5375 100644 --- a/src/WeylScal4_psi4_calc_4th.cc +++ b/src/WeylScal4_psi4_calc_4th.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_4th_SelectBCs(CCTK_ARGUMENTS) { @@ -35,10 +26,10 @@ extern "C" void WeylScal4_psi4_calc_4th_SelectBCs(CCTK_ARGUMENTS) if (cctk_iteration % WeylScal4_psi4_calc_4th_calc_every != WeylScal4_psi4_calc_4th_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_4th_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_4th_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_4th_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_4th_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_4th, 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_4th_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_4th_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 PDstandard4th1gxx CCTK_ATTRIBUTE_UNUSED; CCTK_REAL_VEC PDstandard4th2gxx CCTK_ATTRIBUTE_UNUSED; @@ -630,7 +643,6 @@ static void WeylScal4_psi4_calc_4th_Body(const cGH* restrict const cctkGH, const default: CCTK_BUILTIN_UNREACHABLE(); } - /* Calculate temporaries and grid functions */ CCTK_REAL_VEC JacPDstandard4th11gyy CCTK_ATTRIBUTE_UNUSED; CCTK_REAL_VEC JacPDstandard4th11gyz CCTK_ATTRIBUTE_UNUSED; @@ -690,7 +702,7 @@ static void WeylScal4_psi4_calc_4th_Body(const cGH* restrict const cctkGH, const CCTK_REAL_VEC JacPDstandard4th3kyy CCTK_ATTRIBUTE_UNUSED; CCTK_REAL_VEC JacPDstandard4th3kyz CCTK_ATTRIBUTE_UNUSED; - if (use_jacobian) + if (usejacobian) { JacPDstandard4th1gxx = kmadd(J11L,PDstandard4th1gxx,kmadd(J21L,PDstandard4th2gxx,kmul(J31L,PDstandard4th3gxx))); @@ -792,31 +804,31 @@ static void WeylScal4_psi4_calc_4th_Body(const cGH* restrict const cctkGH, const 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)))))))); + kmadd(dJ111L,PDstandard4th1gyy,kmadd(ToReal(2),kmadd(J11L,kmadd(J21L,PDstandard4th12gyy,kmul(J31L,PDstandard4th13gyy)),kmul(J21L,kmul(J31L,PDstandard4th23gyy))),kmadd(dJ211L,PDstandard4th2gyy,kmadd(dJ311L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J11L,J11L),kmadd(PDstandard4th22gyy,kmul(J21L,J21L),kmul(PDstandard4th33gyy,kmul(J31L,J31L)))))))); 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)))))))); + kmadd(dJ111L,PDstandard4th1gyz,kmadd(ToReal(2),kmadd(J11L,kmadd(J21L,PDstandard4th12gyz,kmul(J31L,PDstandard4th13gyz)),kmul(J21L,kmul(J31L,PDstandard4th23gyz))),kmadd(dJ211L,PDstandard4th2gyz,kmadd(dJ311L,PDstandard4th3gyz,kmadd(PDstandard4th11gyz,kmul(J11L,J11L),kmadd(PDstandard4th22gyz,kmul(J21L,J21L),kmul(PDstandard4th33gyz,kmul(J31L,J31L)))))))); 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)))))))); + kmadd(dJ111L,PDstandard4th1gzz,kmadd(ToReal(2),kmadd(J11L,kmadd(J21L,PDstandard4th12gzz,kmul(J31L,PDstandard4th13gzz)),kmul(J21L,kmul(J31L,PDstandard4th23gzz))),kmadd(dJ211L,PDstandard4th2gzz,kmadd(dJ311L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J11L,J11L),kmadd(PDstandard4th22gzz,kmul(J21L,J21L),kmul(PDstandard4th33gzz,kmul(J31L,J31L)))))))); 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)))))))); + kmadd(dJ122L,PDstandard4th1gxx,kmadd(ToReal(2),kmadd(J12L,kmadd(J22L,PDstandard4th12gxx,kmul(J32L,PDstandard4th13gxx)),kmul(J22L,kmul(J32L,PDstandard4th23gxx))),kmadd(dJ222L,PDstandard4th2gxx,kmadd(dJ322L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J12L,J12L),kmadd(PDstandard4th22gxx,kmul(J22L,J22L),kmul(PDstandard4th33gxx,kmul(J32L,J32L)))))))); 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)))))))); + kmadd(dJ122L,PDstandard4th1gxz,kmadd(ToReal(2),kmadd(J12L,kmadd(J22L,PDstandard4th12gxz,kmul(J32L,PDstandard4th13gxz)),kmul(J22L,kmul(J32L,PDstandard4th23gxz))),kmadd(dJ222L,PDstandard4th2gxz,kmadd(dJ322L,PDstandard4th3gxz,kmadd(PDstandard4th11gxz,kmul(J12L,J12L),kmadd(PDstandard4th22gxz,kmul(J22L,J22L),kmul(PDstandard4th33gxz,kmul(J32L,J32L)))))))); 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)))))))); + kmadd(dJ122L,PDstandard4th1gzz,kmadd(ToReal(2),kmadd(J12L,kmadd(J22L,PDstandard4th12gzz,kmul(J32L,PDstandard4th13gzz)),kmul(J22L,kmul(J32L,PDstandard4th23gzz))),kmadd(dJ222L,PDstandard4th2gzz,kmadd(dJ322L,PDstandard4th3gzz,kmadd(PDstandard4th11gzz,kmul(J12L,J12L),kmadd(PDstandard4th22gzz,kmul(J22L,J22L),kmul(PDstandard4th33gzz,kmul(J32L,J32L)))))))); 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)))))))); + kmadd(dJ133L,PDstandard4th1gxx,kmadd(ToReal(2),kmadd(J13L,kmadd(J23L,PDstandard4th12gxx,kmul(J33L,PDstandard4th13gxx)),kmul(J23L,kmul(J33L,PDstandard4th23gxx))),kmadd(dJ233L,PDstandard4th2gxx,kmadd(dJ333L,PDstandard4th3gxx,kmadd(PDstandard4th11gxx,kmul(J13L,J13L),kmadd(PDstandard4th22gxx,kmul(J23L,J23L),kmul(PDstandard4th33gxx,kmul(J33L,J33L)))))))); 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)))))))); + kmadd(dJ133L,PDstandard4th1gxy,kmadd(ToReal(2),kmadd(J13L,kmadd(J23L,PDstandard4th12gxy,kmul(J33L,PDstandard4th13gxy)),kmul(J23L,kmul(J33L,PDstandard4th23gxy))),kmadd(dJ233L,PDstandard4th2gxy,kmadd(dJ333L,PDstandard4th3gxy,kmadd(PDstandard4th11gxy,kmul(J13L,J13L),kmadd(PDstandard4th22gxy,kmul(J23L,J23L),kmul(PDstandard4th33gxy,kmul(J33L,J33L)))))))); 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)))))))); + kmadd(dJ133L,PDstandard4th1gyy,kmadd(ToReal(2),kmadd(J13L,kmadd(J23L,PDstandard4th12gyy,kmul(J33L,PDstandard4th13gyy)),kmul(J23L,kmul(J33L,PDstandard4th23gyy))),kmadd(dJ233L,PDstandard4th2gyy,kmadd(dJ333L,PDstandard4th3gyy,kmadd(PDstandard4th11gyy,kmul(J13L,J13L),kmadd(PDstandard4th22gyy,kmul(J23L,J23L),kmul(PDstandard4th33gyy,kmul(J33L,J33L)))))))); 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))))))); @@ -981,7 +993,7 @@ static void WeylScal4_psi4_calc_4th_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_4th_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,JacPDstandard4th1gxx,knmsub(gInv12,JacPDstandard4th2gxx,kmsub(kmadd(gInv12,JacPDstandard4th1gxy,kmul(gInv13,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv13,JacPDstandard4th3gxx))))); + kmul(kmadd(gInv11,JacPDstandard4th1gxx,kmsub(ToReal(2),kmadd(gInv12,JacPDstandard4th1gxy,kmul(gInv13,JacPDstandard4th1gxz)),kmadd(gInv13,JacPDstandard4th3gxx,kmul(gInv12,JacPDstandard4th2gxx)))),ToReal(0.5)); CCTK_REAL_VEC gamma211 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv21,JacPDstandard4th1gxx,knmsub(gInv22,JacPDstandard4th2gxx,kmsub(kmadd(gInv22,JacPDstandard4th1gxy,kmul(gInv23,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv23,JacPDstandard4th3gxx))))); + kmul(kmadd(gInv21,JacPDstandard4th1gxx,kmsub(ToReal(2),kmadd(gInv22,JacPDstandard4th1gxy,kmul(gInv23,JacPDstandard4th1gxz)),kmadd(gInv23,JacPDstandard4th3gxx,kmul(gInv22,JacPDstandard4th2gxx)))),ToReal(0.5)); CCTK_REAL_VEC gamma311 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv31,JacPDstandard4th1gxx,knmsub(gInv32,JacPDstandard4th2gxx,kmsub(kmadd(gInv32,JacPDstandard4th1gxy,kmul(gInv33,JacPDstandard4th1gxz)),ToReal(2),kmul(gInv33,JacPDstandard4th3gxx))))); + kmul(kmadd(gInv31,JacPDstandard4th1gxx,kmsub(ToReal(2),kmadd(gInv32,JacPDstandard4th1gxy,kmul(gInv33,JacPDstandard4th1gxz)),kmadd(gInv33,JacPDstandard4th3gxx,kmul(gInv32,JacPDstandard4th2gxx)))),ToReal(0.5)); CCTK_REAL_VEC gamma121 CCTK_ATTRIBUTE_UNUSED = kmul(kmadd(gInv12,JacPDstandard4th1gyy,kmadd(gInv11,JacPDstandard4th2gxx,kmul(gInv13,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th2gxz,JacPDstandard4th3gxy))))),ToReal(0.5)); @@ -1040,31 +1052,31 @@ static void WeylScal4_psi4_calc_4th_Body(const cGH* restrict const cctkGH, const kmul(kmadd(gInv33,JacPDstandard4th1gzz,kmadd(gInv31,JacPDstandard4th3gxx,kmul(gInv32,kadd(JacPDstandard4th1gyz,ksub(JacPDstandard4th3gxy,JacPDstandard4th2gxz))))),ToReal(0.5)); CCTK_REAL_VEC gamma122 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv12,JacPDstandard4th2gyy,kmadd(gInv11,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv13,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + kmul(kmadd(gInv11,kmsub(ToReal(2),JacPDstandard4th2gxy,JacPDstandard4th1gyy),kmadd(gInv12,JacPDstandard4th2gyy,kmul(gInv13,kmsub(ToReal(2),JacPDstandard4th2gyz,JacPDstandard4th3gyy)))),ToReal(0.5)); CCTK_REAL_VEC gamma222 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv22,JacPDstandard4th2gyy,kmadd(gInv21,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv23,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + kmul(kmadd(gInv21,kmsub(ToReal(2),JacPDstandard4th2gxy,JacPDstandard4th1gyy),kmadd(gInv22,JacPDstandard4th2gyy,kmul(gInv23,kmsub(ToReal(2),JacPDstandard4th2gyz,JacPDstandard4th3gyy)))),ToReal(0.5)); CCTK_REAL_VEC gamma322 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv32,JacPDstandard4th2gyy,kmadd(gInv31,kmsub(JacPDstandard4th2gxy,ToReal(2),JacPDstandard4th1gyy),kmul(gInv33,kmsub(JacPDstandard4th2gyz,ToReal(2),JacPDstandard4th3gyy))))); + kmul(kmadd(gInv31,kmsub(ToReal(2),JacPDstandard4th2gxy,JacPDstandard4th1gyy),kmadd(gInv32,JacPDstandard4th2gyy,kmul(gInv33,kmsub(ToReal(2),JacPDstandard4th2gyz,JacPDstandard4th3gyy)))),ToReal(0.5)); CCTK_REAL_VEC gamma132 CCTK_ATTRIBUTE_UNUSED = - kmul(kmadd(gInv13,JacPDstandard4th2gzz,kmadd(gInv12,JacPDstandard4th3gyy,kmul(gInv11,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + kmul(kmadd(gInv13,JacPDstandard4th2gzz,kmadd(gInv11,ksub(kadd(JacPDstandard4th2gxz,JacPDstandard4th3gxy),JacPDstandard4th1gyz),kmul(gInv12,JacPDstandard4th3gyy))),ToReal(0.5)); CCTK_REAL_VEC gamma232 CCTK_ATTRIBUTE_UNUSED = - kmul(kmadd(gInv23,JacPDstandard4th2gzz,kmadd(gInv22,JacPDstandard4th3gyy,kmul(gInv21,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + kmul(kmadd(gInv23,JacPDstandard4th2gzz,kmadd(gInv21,ksub(kadd(JacPDstandard4th2gxz,JacPDstandard4th3gxy),JacPDstandard4th1gyz),kmul(gInv22,JacPDstandard4th3gyy))),ToReal(0.5)); CCTK_REAL_VEC gamma332 CCTK_ATTRIBUTE_UNUSED = - kmul(kmadd(gInv33,JacPDstandard4th2gzz,kmadd(gInv32,JacPDstandard4th3gyy,kmul(gInv31,kadd(JacPDstandard4th2gxz,ksub(JacPDstandard4th3gxy,JacPDstandard4th1gyz))))),ToReal(0.5)); + kmul(kmadd(gInv33,JacPDstandard4th2gzz,kmadd(gInv31,ksub(kadd(JacPDstandard4th2gxz,JacPDstandard4th3gxy),JacPDstandard4th1gyz),kmul(gInv32,JacPDstandard4th3gyy))),ToReal(0.5)); CCTK_REAL_VEC gamma133 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv13,JacPDstandard4th3gzz,kmadd(gInv11,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv12,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + kmul(kmadd(gInv11,kmsub(ToReal(2),JacPDstandard4th3gxz,JacPDstandard4th1gzz),kmadd(gInv12,kmsub(ToReal(2),JacPDstandard4th3gyz,JacPDstandard4th2gzz),kmul(gInv13,JacPDstandard4th3gzz))),ToReal(0.5)); CCTK_REAL_VEC gamma233 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv23,JacPDstandard4th3gzz,kmadd(gInv21,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv22,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + kmul(kmadd(gInv21,kmsub(ToReal(2),JacPDstandard4th3gxz,JacPDstandard4th1gzz),kmadd(gInv22,kmsub(ToReal(2),JacPDstandard4th3gyz,JacPDstandard4th2gzz),kmul(gInv23,JacPDstandard4th3gzz))),ToReal(0.5)); CCTK_REAL_VEC gamma333 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kmadd(gInv33,JacPDstandard4th3gzz,kmadd(gInv31,kmsub(JacPDstandard4th3gxz,ToReal(2),JacPDstandard4th1gzz),kmul(gInv32,kmsub(JacPDstandard4th3gyz,ToReal(2),JacPDstandard4th2gzz))))); + kmul(kmadd(gInv31,kmsub(ToReal(2),JacPDstandard4th3gxz,JacPDstandard4th1gzz),kmadd(gInv32,kmsub(ToReal(2),JacPDstandard4th3gyz,JacPDstandard4th2gzz),kmul(gInv33,JacPDstandard4th3gzz))),ToReal(0.5)); CCTK_REAL_VEC xmoved CCTK_ATTRIBUTE_UNUSED = ksub(xL,ToReal(xorig)); @@ -1085,13 +1097,13 @@ static void WeylScal4_psi4_calc_4th_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_4th_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_4th_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_4th_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_4th_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(JacPDstandard4th12gxy,kadd(JacPDstandard4th21gxy,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),JacPDstandard4th22gxx),JacPDstandard4th11gyy))))); + 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(JacPDstandard4th12gxy,ksub(JacPDstandard4th21gxy,JacPDstandard4th22gxx)),JacPDstandard4th11gyy))),ToReal(0.5)); CCTK_REAL_VEC R1213 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard4th12gxz,kadd(JacPDstandard4th31gxy,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),JacPDstandard4th23gxx),JacPDstandard4th11gyz))))); + 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(JacPDstandard4th12gxz,ksub(JacPDstandard4th31gxy,JacPDstandard4th23gxx)),JacPDstandard4th11gyz))),ToReal(0.5)); CCTK_REAL_VEC R1223 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard4th22gxz,kadd(JacPDstandard4th31gyy,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),JacPDstandard4th23gxy),JacPDstandard4th12gyz))))); + 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(JacPDstandard4th22gxz,ksub(JacPDstandard4th31gyy,JacPDstandard4th23gxy)),JacPDstandard4th12gyz))),ToReal(0.5)); CCTK_REAL_VEC R1313 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard4th13gxz,kadd(JacPDstandard4th31gxz,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),JacPDstandard4th33gxx),JacPDstandard4th11gzz))))); + 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(JacPDstandard4th13gxz,ksub(JacPDstandard4th31gxz,JacPDstandard4th33gxx)),JacPDstandard4th11gzz))),ToReal(0.5)); CCTK_REAL_VEC R1323 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard4th23gxz,kadd(JacPDstandard4th31gyz,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),JacPDstandard4th33gxy),JacPDstandard4th12gzz))))); + 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(JacPDstandard4th23gxz,ksub(JacPDstandard4th31gyz,JacPDstandard4th33gxy)),JacPDstandard4th12gzz))),ToReal(0.5)); CCTK_REAL_VEC R2323 CCTK_ATTRIBUTE_UNUSED = - kmul(ToReal(0.5),kadd(JacPDstandard4th23gyz,kadd(JacPDstandard4th32gyz,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),JacPDstandard4th33gyy),JacPDstandard4th22gzz))))); + 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(JacPDstandard4th23gyz,ksub(JacPDstandard4th32gyz,JacPDstandard4th33gyy)),JacPDstandard4th22gzz))),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_4th_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(JacPDstandard4th1kxy,knmsub(kyyL,gamma211,knmsub(kyzL,gamma311,kmsub(kxyL,ksub(gamma221,gamma111),JacPDstandard4th2kxx)))))); + kmadd(kxxL,gamma121,knmsub(kyyL,gamma211,kmadd(kxyL,ksub(gamma221,gamma111),knmsub(kyzL,gamma311,kmadd(kxzL,gamma321,ksub(JacPDstandard4th1kxy,JacPDstandard4th2kxx)))))); CCTK_REAL_VEC Ro113 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma131,kmadd(kxyL,gamma231,kadd(JacPDstandard4th1kxz,knmsub(kyzL,gamma211,knmsub(kzzL,gamma311,kmsub(kxzL,ksub(gamma331,gamma111),JacPDstandard4th3kxx)))))); + kmadd(kxxL,gamma131,knmsub(kyzL,gamma211,kmadd(kxyL,gamma231,knmsub(kzzL,gamma311,kmadd(kxzL,ksub(gamma331,gamma111),ksub(JacPDstandard4th1kxz,JacPDstandard4th3kxx)))))); CCTK_REAL_VEC Ro121 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyyL,gamma211,kmadd(kyzL,gamma311,kadd(JacPDstandard4th2kxx,knmsub(kxxL,gamma121,knmsub(kxzL,gamma321,kmsub(kxyL,ksub(gamma111,gamma221),JacPDstandard4th1kxy)))))); + knmsub(kxxL,gamma121,kmadd(kyyL,gamma211,kmadd(kxyL,ksub(gamma111,gamma221),kmadd(kyzL,gamma311,knmsub(kxzL,gamma321,ksub(JacPDstandard4th2kxx,JacPDstandard4th1kxy)))))); CCTK_REAL_VEC Ro122 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro123 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,kadd(JacPDstandard4th2kxz,knmsub(kxzL,gamma121,knmsub(kzzL,gamma321,kmsub(kyzL,ksub(gamma331,gamma221),JacPDstandard4th3kxy)))))); + knmsub(kxzL,gamma121,kmadd(kxyL,gamma131,kmadd(kyyL,gamma231,knmsub(kzzL,gamma321,kmadd(kyzL,ksub(gamma331,gamma221),ksub(JacPDstandard4th2kxz,JacPDstandard4th3kxy)))))); CCTK_REAL_VEC Ro131 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyzL,gamma211,kmadd(kzzL,gamma311,kadd(JacPDstandard4th3kxx,knmsub(kxxL,gamma131,knmsub(kxyL,gamma231,kmsub(kxzL,ksub(gamma111,gamma331),JacPDstandard4th1kxz)))))); + knmsub(kxxL,gamma131,kmadd(kyzL,gamma211,knmsub(kxyL,gamma231,kmadd(kzzL,gamma311,kmadd(kxzL,ksub(gamma111,gamma331),ksub(JacPDstandard4th3kxx,JacPDstandard4th1kxz)))))); CCTK_REAL_VEC Ro132 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxzL,gamma121,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmsub(kyzL,ksub(gamma221,gamma331),JacPDstandard4th2kxz)))))); + kmadd(kxzL,gamma121,knmsub(kxyL,gamma131,knmsub(kyyL,gamma231,kmadd(kzzL,gamma321,kmadd(kyzL,ksub(gamma221,gamma331),ksub(JacPDstandard4th3kxy,JacPDstandard4th2kxz)))))); 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(JacPDstandard4th1kyy,knmsub(kyyL,gamma221,knmsub(kyzL,gamma321,kmsub(kxyL,ksub(gamma222,gamma121),JacPDstandard4th2kxy)))))); + kmadd(kxxL,gamma122,knmsub(kyyL,gamma221,kmadd(kxyL,ksub(gamma222,gamma121),knmsub(kyzL,gamma321,kmadd(kxzL,gamma322,ksub(JacPDstandard4th1kyy,JacPDstandard4th2kxy)))))); CCTK_REAL_VEC Ro213 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma132,kmadd(kxyL,gamma232,kadd(JacPDstandard4th1kyz,knmsub(kyzL,gamma221,knmsub(kzzL,gamma321,kmsub(kxzL,ksub(gamma332,gamma121),JacPDstandard4th3kxy)))))); + kmadd(kxxL,gamma132,knmsub(kyzL,gamma221,kmadd(kxyL,gamma232,knmsub(kzzL,gamma321,kmadd(kxzL,ksub(gamma332,gamma121),ksub(JacPDstandard4th1kyz,JacPDstandard4th3kxy)))))); CCTK_REAL_VEC Ro221 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyyL,gamma221,kmadd(kyzL,gamma321,kadd(JacPDstandard4th2kxy,knmsub(kxxL,gamma122,knmsub(kxzL,gamma322,kmsub(kxyL,ksub(gamma121,gamma222),JacPDstandard4th1kyy)))))); + knmsub(kxxL,gamma122,kmadd(kyyL,gamma221,kmadd(kxyL,ksub(gamma121,gamma222),kmadd(kyzL,gamma321,knmsub(kxzL,gamma322,ksub(JacPDstandard4th2kxy,JacPDstandard4th1kyy)))))); CCTK_REAL_VEC Ro222 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro223 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,kadd(JacPDstandard4th2kyz,knmsub(kxzL,gamma122,knmsub(kzzL,gamma322,kmsub(kyzL,ksub(gamma332,gamma222),JacPDstandard4th3kyy)))))); + knmsub(kxzL,gamma122,kmadd(kxyL,gamma132,kmadd(kyyL,gamma232,knmsub(kzzL,gamma322,kmadd(kyzL,ksub(gamma332,gamma222),ksub(JacPDstandard4th2kyz,JacPDstandard4th3kyy)))))); CCTK_REAL_VEC Ro231 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyzL,gamma221,kmadd(kzzL,gamma321,kadd(JacPDstandard4th3kxy,knmsub(kxxL,gamma132,knmsub(kxyL,gamma232,kmsub(kxzL,ksub(gamma121,gamma332),JacPDstandard4th1kyz)))))); + knmsub(kxxL,gamma132,kmadd(kyzL,gamma221,knmsub(kxyL,gamma232,kmadd(kzzL,gamma321,kmadd(kxzL,ksub(gamma121,gamma332),ksub(JacPDstandard4th3kxy,JacPDstandard4th1kyz)))))); CCTK_REAL_VEC Ro232 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxzL,gamma122,kmadd(kzzL,gamma322,kadd(JacPDstandard4th3kyy,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmsub(kyzL,ksub(gamma222,gamma332),JacPDstandard4th2kyz)))))); + kmadd(kxzL,gamma122,knmsub(kxyL,gamma132,knmsub(kyyL,gamma232,kmadd(kzzL,gamma322,kmadd(kyzL,ksub(gamma222,gamma332),ksub(JacPDstandard4th3kyy,JacPDstandard4th2kyz)))))); 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(JacPDstandard4th1kyz,knmsub(kyyL,gamma231,knmsub(kyzL,gamma331,kmsub(kxyL,ksub(gamma232,gamma131),JacPDstandard4th2kxz)))))); + kmadd(kxxL,gamma132,knmsub(kyyL,gamma231,kmadd(kxyL,ksub(gamma232,gamma131),knmsub(kyzL,gamma331,kmadd(kxzL,gamma332,ksub(JacPDstandard4th1kyz,JacPDstandard4th2kxz)))))); CCTK_REAL_VEC Ro313 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxxL,gamma133,kmadd(kxyL,gamma233,kadd(JacPDstandard4th1kzz,knmsub(kyzL,gamma231,knmsub(kzzL,gamma331,kmsub(kxzL,ksub(gamma333,gamma131),JacPDstandard4th3kxz)))))); + kmadd(kxxL,gamma133,knmsub(kyzL,gamma231,kmadd(kxyL,gamma233,knmsub(kzzL,gamma331,kmadd(kxzL,ksub(gamma333,gamma131),ksub(JacPDstandard4th1kzz,JacPDstandard4th3kxz)))))); CCTK_REAL_VEC Ro321 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyyL,gamma231,kmadd(kyzL,gamma331,kadd(JacPDstandard4th2kxz,knmsub(kxxL,gamma132,knmsub(kxzL,gamma332,kmsub(kxyL,ksub(gamma131,gamma232),JacPDstandard4th1kyz)))))); + knmsub(kxxL,gamma132,kmadd(kyyL,gamma231,kmadd(kxyL,ksub(gamma131,gamma232),kmadd(kyzL,gamma331,knmsub(kxzL,gamma332,ksub(JacPDstandard4th2kxz,JacPDstandard4th1kyz)))))); CCTK_REAL_VEC Ro322 CCTK_ATTRIBUTE_UNUSED = ToReal(0); CCTK_REAL_VEC Ro323 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,kadd(JacPDstandard4th2kzz,knmsub(kxzL,gamma132,knmsub(kzzL,gamma332,kmsub(kyzL,ksub(gamma333,gamma232),JacPDstandard4th3kyz)))))); + knmsub(kxzL,gamma132,kmadd(kxyL,gamma133,kmadd(kyyL,gamma233,knmsub(kzzL,gamma332,kmadd(kyzL,ksub(gamma333,gamma232),ksub(JacPDstandard4th2kzz,JacPDstandard4th3kyz)))))); CCTK_REAL_VEC Ro331 CCTK_ATTRIBUTE_UNUSED = - kmadd(kyzL,gamma231,kmadd(kzzL,gamma331,kadd(JacPDstandard4th3kxz,knmsub(kxxL,gamma133,knmsub(kxyL,gamma233,kmsub(kxzL,ksub(gamma131,gamma333),JacPDstandard4th1kzz)))))); + knmsub(kxxL,gamma133,kmadd(kyzL,gamma231,knmsub(kxyL,gamma233,kmadd(kzzL,gamma331,kmadd(kxzL,ksub(gamma131,gamma333),ksub(JacPDstandard4th3kxz,JacPDstandard4th1kzz)))))); CCTK_REAL_VEC Ro332 CCTK_ATTRIBUTE_UNUSED = - kmadd(kxzL,gamma132,kmadd(kzzL,gamma332,kadd(JacPDstandard4th3kyz,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmsub(kyzL,ksub(gamma232,gamma333),JacPDstandard4th2kzz)))))); + kmadd(kxzL,gamma132,knmsub(kxyL,gamma133,knmsub(kyyL,gamma233,kmadd(kzzL,gamma332,kmadd(kyzL,ksub(gamma232,gamma333),ksub(JacPDstandard4th3kyz,JacPDstandard4th2kzz)))))); 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_4th_Body(const cGH* restrict const cctkGH, const } CCTK_ENDLOOP3STR(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; @@ -1356,41 +1373,42 @@ extern "C" void WeylScal4_psi4_calc_4th(CCTK_ARGUMENTS) "grid::coordinates", "WeylScal4::Psi4i_group", "WeylScal4::Psi4r_group"}; - GenericFD_AssertGroupStorage(cctkGH, "WeylScal4_psi4_calc_4th", 5, groups); + AssertGroupStorage(cctkGH, "WeylScal4_psi4_calc_4th", 5, groups); switch (fdOrder) { case 2: { - GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); + EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); break; } case 4: { - GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); + EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); break; } case 6: { - GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); + EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); break; } case 8: { - GenericFD_EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); + EnsureStencilFits(cctkGH, "WeylScal4_psi4_calc_4th", 2, 2, 2); break; } default: CCTK_BUILTIN_UNREACHABLE(); } - GenericFD_LoopOverInterior(cctkGH, WeylScal4_psi4_calc_4th_Body); - + LoopOverInterior(cctkGH, WeylScal4_psi4_calc_4th_Body); if (verbose > 1) { CCTK_VInfo(CCTK_THORNSTRING,"Leaving WeylScal4_psi4_calc_4th_Body"); } } + +} // namespace WeylScal4 |