From 99b2621c33bff4e5adb35d95bfa5a9472c1121ef Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Mon, 19 Sep 2011 17:44:24 +0200 Subject: Regenerate code --- ML_BSSN/param.ccl | 9 + ML_BSSN/src/Differencing.h | 1047 +++++++++- ML_BSSN/src/ML_BSSN_Advect.cc | 2010 ++++++++++++++++++-- ML_BSSN/src/ML_BSSN_Dissipation.cc | 1110 ++++++++++- ML_BSSN/src/ML_BSSN_InitGamma.cc | 135 ++ ML_BSSN/src/ML_BSSN_InitRHS.cc | 135 ++ ML_BSSN/src/ML_BSSN_Minkowski.cc | 135 ++ ML_BSSN/src/ML_BSSN_RHS1.cc | 1034 +++++++++- ML_BSSN/src/ML_BSSN_RHS2.cc | 1456 ++++++++++++-- ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc | 135 ++ ML_BSSN/src/ML_BSSN_boundary.cc | 135 ++ ML_BSSN/src/ML_BSSN_constraints1.cc | 1216 ++++++++++-- ML_BSSN/src/ML_BSSN_constraints2.cc | 712 ++++++- ML_BSSN/src/ML_BSSN_convertFromADMBase.cc | 135 ++ ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.cc | 708 ++++++- ML_BSSN/src/ML_BSSN_convertToADMBase.cc | 135 ++ .../src/ML_BSSN_convertToADMBaseDtLapseShift.cc | 456 ++++- ...ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc | 135 ++ .../ML_BSSN_convertToADMBaseFakeDtLapseShift.cc | 135 ++ ML_BSSN/src/ML_BSSN_enforce.cc | 135 ++ 20 files changed, 10230 insertions(+), 878 deletions(-) (limited to 'ML_BSSN') diff --git a/ML_BSSN/param.ccl b/ML_BSSN/param.ccl index 3d1cb43..f201772 100644 --- a/ML_BSSN/param.ccl +++ b/ML_BSSN/param.ccl @@ -37,6 +37,9 @@ EXTENDS CCTK_KEYWORD dtshift_evolution_method "dtshift_evolution_method" shares: GenericFD +USES CCTK_STRING jacobian_group +USES CCTK_STRING jacobian_derivative_group +USES CCTK_INT jacobian_identity_map shares: MethodOfLines @@ -139,6 +142,12 @@ CCTK_INT conformalMethod "Treatment of conformal factor" *:* :: "" } 0 +restricted: +CCTK_INT fdOrder "fdOrder" +{ + *:* :: "" +} 4 + private: KEYWORD my_initial_data "my_initial_data" { diff --git a/ML_BSSN/src/Differencing.h b/ML_BSSN/src/Differencing.h index 3fab658..5b657ef 100644 --- a/ML_BSSN/src/Differencing.h +++ b/ML_BSSN/src/Differencing.h @@ -2,11 +2,47 @@ #include "vectors.h" #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth1(u) (kmul(p1o12dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-8),kmsub(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(8),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])))))) +# define PDstandardNthfdOrder21(u) (kmul(p1o2dx,ksub(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)])))) #else -# define PDstandardNth1(u) (PDstandardNth1_impl(u,p1o12dx,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder21(u) (PDstandardNthfdOrder21_impl(u,p1o2dx,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o2dx,ksub(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder22(u) (kmul(p1o2dy,ksub(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)])))) +#else +# define PDstandardNthfdOrder22(u) (PDstandardNthfdOrder22_impl(u,p1o2dy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o2dy,ksub(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder23(u) (kmul(p1o2dz,ksub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)])))) +#else +# define PDstandardNthfdOrder23(u) (PDstandardNthfdOrder23_impl(u,p1o2dz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o2dz,ksub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder41(u) (kmul(p1o12dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-8),kmsub(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(8),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])))))) +#else +# define PDstandardNthfdOrder41(u) (PDstandardNthfdOrder41_impl(u,p1o12dx,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o12dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-8),kmsub(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(8),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]))))); @@ -14,11 +50,11 @@ static CCTK_REAL_VEC PDstandardNth1_impl(CCTK_REAL const* restrict const u, CCTK #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth2(u) (kmul(p1o12dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-8),kmsub(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(8),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])))))) +# define PDstandardNthfdOrder42(u) (kmul(p1o12dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-8),kmsub(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(8),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])))))) #else -# define PDstandardNth2(u) (PDstandardNth2_impl(u,p1o12dy,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder42(u) (PDstandardNthfdOrder42_impl(u,p1o12dy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o12dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-8),kmsub(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(8),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]))))); @@ -26,11 +62,11 @@ static CCTK_REAL_VEC PDstandardNth2_impl(CCTK_REAL const* restrict const u, CCTK #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth3(u) (kmul(p1o12dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-8),kmsub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(8),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])))))) +# define PDstandardNthfdOrder43(u) (kmul(p1o12dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-8),kmsub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(8),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])))))) #else -# define PDstandardNth3(u) (PDstandardNth3_impl(u,p1o12dz,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder43(u) (PDstandardNthfdOrder43_impl(u,p1o12dz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o12dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-8),kmsub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(8),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]))))); @@ -38,11 +74,119 @@ static CCTK_REAL_VEC PDstandardNth3_impl(CCTK_REAL const* restrict const u, CCTK #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth11(u) (kmul(pm1o12dx2,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30))))))) +# define PDstandardNthfdOrder61(u) (kmul(p1o60dx,kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-45),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-9),ksub(kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(9),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(45))),vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]))))))) +#else +# define PDstandardNthfdOrder61(u) (PDstandardNthfdOrder61_impl(u,p1o60dx,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o60dx,kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-45),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-9),ksub(kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(9),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(45))),vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)])))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder62(u) (kmul(p1o60dy,kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-45),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-9),ksub(kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(9),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(45))),vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]))))))) +#else +# define PDstandardNthfdOrder62(u) (PDstandardNthfdOrder62_impl(u,p1o60dy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o60dy,kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-45),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-9),ksub(kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(9),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(45))),vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)])))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder63(u) (kmul(p1o60dz,kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-45),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-9),ksub(kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(9),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(45))),vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]))))))) +#else +# define PDstandardNthfdOrder63(u) (PDstandardNthfdOrder63_impl(u,p1o60dz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o60dz,kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-45),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-9),ksub(kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(9),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(45))),vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)])))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder81(u) (kmul(p1o840dx,kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-672),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-168),kmadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),ToReal(-32),kmadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]),ToReal(-3),kmadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),ToReal(3),kmadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),ToReal(32),kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(168),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(672))))))))))) +#else +# define PDstandardNthfdOrder81(u) (PDstandardNthfdOrder81_impl(u,p1o840dx,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o840dx,kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-672),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-168),kmadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),ToReal(-32),kmadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]),ToReal(-3),kmadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),ToReal(3),kmadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),ToReal(32),kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(168),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(672)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder82(u) (kmul(p1o840dy,kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-672),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-168),kmadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),ToReal(-32),kmadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]),ToReal(-3),kmadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),ToReal(3),kmadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),ToReal(32),kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(168),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(672))))))))))) +#else +# define PDstandardNthfdOrder82(u) (PDstandardNthfdOrder82_impl(u,p1o840dy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o840dy,kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-672),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-168),kmadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),ToReal(-32),kmadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]),ToReal(-3),kmadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),ToReal(3),kmadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),ToReal(32),kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(168),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(672)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder83(u) (kmul(p1o840dz,kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-672),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-168),kmadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),ToReal(-32),kmadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]),ToReal(-3),kmadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),ToReal(3),kmadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),ToReal(32),kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(168),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(672))))))))))) +#else +# define PDstandardNthfdOrder83(u) (PDstandardNthfdOrder83_impl(u,p1o840dz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o840dz,kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-672),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-168),kmadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),ToReal(-32),kmadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]),ToReal(-3),kmadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),ToReal(3),kmadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),ToReal(32),kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(168),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(672)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder211(u) (kmul(p1odx2,kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-2),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]))))) #else -# define PDstandardNth11(u) (PDstandardNth11_impl(u,pm1o12dx2,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth11_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth11_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder211(u) (PDstandardNthfdOrder211_impl(u,p1odx2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder211_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder211_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odx2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1odx2,kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-2),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder222(u) (kmul(p1ody2,kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-2),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]))))) +#else +# define PDstandardNthfdOrder222(u) (PDstandardNthfdOrder222_impl(u,p1ody2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder222_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1ody2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder222_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1ody2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1ody2,kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-2),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder233(u) (kmul(p1odz2,kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-2),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]))))) +#else +# define PDstandardNthfdOrder233(u) (PDstandardNthfdOrder233_impl(u,p1odz2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder233_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder233_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1odz2,kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-2),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder411(u) (kmul(pm1o12dx2,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30))))))) +#else +# define PDstandardNthfdOrder411(u) (PDstandardNthfdOrder411_impl(u,pm1o12dx2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder411_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder411_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(pm1o12dx2,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30)))))); @@ -50,11 +194,11 @@ static CCTK_REAL_VEC PDstandardNth11_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth22(u) (kmul(pm1o12dy2,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30))))))) +# define PDstandardNthfdOrder422(u) (kmul(pm1o12dy2,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30))))))) #else -# define PDstandardNth22(u) (PDstandardNth22_impl(u,pm1o12dy2,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder422(u) (PDstandardNthfdOrder422_impl(u,pm1o12dy2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder422_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder422_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(pm1o12dy2,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30)))))); @@ -62,11 +206,11 @@ static CCTK_REAL_VEC PDstandardNth22_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth33(u) (kmul(pm1o12dz2,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30))))))) +# define PDstandardNthfdOrder433(u) (kmul(pm1o12dz2,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30))))))) #else -# define PDstandardNth33(u) (PDstandardNth33_impl(u,pm1o12dz2,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth33_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth33_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder433(u) (PDstandardNthfdOrder433_impl(u,pm1o12dz2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder433_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder433_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(pm1o12dz2,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-16),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(30)))))); @@ -74,11 +218,155 @@ static CCTK_REAL_VEC PDstandardNth33_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth12(u) (kmul(p1o144dxdy,kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(64))),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)])))))))) +# define PDstandardNthfdOrder611(u) (kmul(p1o180dx2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-490),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-27),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(2),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(270))))))) +#else +# define PDstandardNthfdOrder611(u) (PDstandardNthfdOrder611_impl(u,p1o180dx2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder611_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder611_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o180dx2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-490),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-27),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(2),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(270)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder622(u) (kmul(p1o180dy2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-490),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-27),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(2),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(270))))))) +#else +# define PDstandardNthfdOrder622(u) (PDstandardNthfdOrder622_impl(u,p1o180dy2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder622_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder622_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o180dy2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-490),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-27),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(2),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(270)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder633(u) (kmul(p1o180dz2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-490),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-27),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(2),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(270))))))) +#else +# define PDstandardNthfdOrder633(u) (PDstandardNthfdOrder633_impl(u,p1o180dz2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder633_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder633_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o180dz2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-490),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-27),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(2),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(270)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder811(u) (kmul(p1o5040dx2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-14350),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-1008),kmadd(kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(128),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(8064)))))))) +#else +# define PDstandardNthfdOrder811(u) (PDstandardNthfdOrder811_impl(u,p1o5040dx2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder811_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder811_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o5040dx2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-14350),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-1008),kmadd(kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(128),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(8064))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder822(u) (kmul(p1o5040dy2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-14350),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-1008),kmadd(kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(128),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(8064)))))))) +#else +# define PDstandardNthfdOrder822(u) (PDstandardNthfdOrder822_impl(u,p1o5040dy2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder822_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder822_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o5040dy2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-14350),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-1008),kmadd(kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(128),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(8064))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder833(u) (kmul(p1o5040dz2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-14350),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-1008),kmadd(kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(128),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(8064)))))))) +#else +# define PDstandardNthfdOrder833(u) (PDstandardNthfdOrder833_impl(u,p1o5040dz2,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder833_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder833_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o5040dz2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-14350),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-1008),kmadd(kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(128),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(8064))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder212(u) (kmul(p1o4dxdy,kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),ksub(vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)])))))) #else -# define PDstandardNth12(u) (PDstandardNth12_impl(u,p1o144dxdy,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth12_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth12_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder212(u) (PDstandardNthfdOrder212_impl(u,p1o4dxdy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder212_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder212_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o4dxdy,kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),ksub(vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder213(u) (kmul(p1o4dxdz,kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),ksub(vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)]),kadd(vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)])))))) +#else +# define PDstandardNthfdOrder213(u) (PDstandardNthfdOrder213_impl(u,p1o4dxdz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder213_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder213_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o4dxdz,kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),ksub(vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)]),kadd(vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder221(u) (kmul(p1o4dxdy,kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),ksub(vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)])))))) +#else +# define PDstandardNthfdOrder221(u) (PDstandardNthfdOrder221_impl(u,p1o4dxdy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder221_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder221_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o4dxdy,kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),ksub(vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder223(u) (kmul(p1o4dydz,kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),ksub(vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)]),kadd(vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)]),vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)])))))) +#else +# define PDstandardNthfdOrder223(u) (PDstandardNthfdOrder223_impl(u,p1o4dydz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder223_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder223_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o4dydz,kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),ksub(vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)]),kadd(vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)]),vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder231(u) (kmul(p1o4dxdz,kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),ksub(vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)]),kadd(vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)])))))) +#else +# define PDstandardNthfdOrder231(u) (PDstandardNthfdOrder231_impl(u,p1o4dxdz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder231_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder231_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o4dxdz,kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),ksub(vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)]),kadd(vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder232(u) (kmul(p1o4dydz,kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),ksub(vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)]),kadd(vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)]),vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)])))))) +#else +# define PDstandardNthfdOrder232(u) (PDstandardNthfdOrder232_impl(u,p1o4dydz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder232_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder232_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o4dydz,kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),ksub(vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)]),kadd(vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)]),vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder412(u) (kmul(p1o144dxdy,kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(64))),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)])))))))) +#else +# define PDstandardNthfdOrder412(u) (PDstandardNthfdOrder412_impl(u,p1o144dxdy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder412_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder412_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o144dxdy,kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(64))),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]))))))); @@ -86,11 +374,11 @@ static CCTK_REAL_VEC PDstandardNth12_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth13(u) (kmul(p1o144dxdz,kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)])))))))) +# define PDstandardNthfdOrder413(u) (kmul(p1o144dxdz,kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)])))))))) #else -# define PDstandardNth13(u) (PDstandardNth13_impl(u,p1o144dxdz,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth13_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth13_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder413(u) (PDstandardNthfdOrder413_impl(u,p1o144dxdz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder413_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder413_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o144dxdz,kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]))))))); @@ -98,11 +386,11 @@ static CCTK_REAL_VEC PDstandardNth13_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth21(u) (kmul(p1o144dxdy,kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(64))),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)])))))))) +# define PDstandardNthfdOrder421(u) (kmul(p1o144dxdy,kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(64))),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)])))))))) #else -# define PDstandardNth21(u) (PDstandardNth21_impl(u,p1o144dxdy,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder421(u) (PDstandardNthfdOrder421_impl(u,p1o144dxdy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder421_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder421_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o144dxdy,kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(64))),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]))))))); @@ -110,11 +398,11 @@ static CCTK_REAL_VEC PDstandardNth21_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth23(u) (kmul(p1o144dydz,kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)])))))))) +# define PDstandardNthfdOrder423(u) (kmul(p1o144dydz,kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)])))))))) #else -# define PDstandardNth23(u) (PDstandardNth23_impl(u,p1o144dydz,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder423(u) (PDstandardNthfdOrder423_impl(u,p1o144dydz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder423_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder423_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o144dydz,kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]))))))); @@ -122,11 +410,11 @@ static CCTK_REAL_VEC PDstandardNth23_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth31(u) (kmul(p1o144dxdz,kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)])))))))) +# define PDstandardNthfdOrder431(u) (kmul(p1o144dxdz,kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)])))))))) #else -# define PDstandardNth31(u) (PDstandardNth31_impl(u,p1o144dxdz,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth31_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth31_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder431(u) (PDstandardNthfdOrder431_impl(u,p1o144dxdz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder431_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder431_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o144dxdz,kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]))))))); @@ -134,11 +422,11 @@ static CCTK_REAL_VEC PDstandardNth31_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDstandardNth32(u) (kmul(p1o144dydz,kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)])))))))) +# define PDstandardNthfdOrder432(u) (kmul(p1o144dydz,kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)])))))))) #else -# define PDstandardNth32(u) (PDstandardNth32_impl(u,p1o144dydz,cdj,cdk)) -static CCTK_REAL_VEC PDstandardNth32_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDstandardNth32_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDstandardNthfdOrder432(u) (PDstandardNthfdOrder432_impl(u,p1o144dydz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder432_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder432_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o144dydz,kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-64),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-8),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(8),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(64))),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]))))))); @@ -146,11 +434,191 @@ static CCTK_REAL_VEC PDstandardNth32_impl(CCTK_REAL const* restrict const u, CCT #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDdissipationNth1(u) (kmul(p1o64dx,kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(15)))))))) +# define PDstandardNthfdOrder612(u) (kmul(p1o3600dxdy,kadd(vec_loadu_maybe3(-3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(3)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(-1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-1)+cdk*(0)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(-2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(2)+cdk*(0)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-2)+cdk*(0)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(1)+cdk*(0)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(2025)))))),vec_loadu_maybe3(3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-3)+cdk*(0)])),vec_loadu_maybe3(-3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(3)+cdk*(0)]))))))))))) +#else +# define PDstandardNthfdOrder612(u) (PDstandardNthfdOrder612_impl(u,p1o3600dxdy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder612_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder612_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o3600dxdy,kadd(vec_loadu_maybe3(-3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(3)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(-1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-1)+cdk*(0)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(-2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(2)+cdk*(0)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-2)+cdk*(0)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(1)+cdk*(0)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(2025)))))),vec_loadu_maybe3(3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-3)+cdk*(0)])),vec_loadu_maybe3(-3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(3)+cdk*(0)])))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder613(u) (kmul(p1o3600dxdz,kadd(vec_loadu_maybe3(-3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(3)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(-1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-1)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(-2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(2)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-2)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(1)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(2025)))))),vec_loadu_maybe3(3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-3)])),vec_loadu_maybe3(-3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(3)]))))))))))) +#else +# define PDstandardNthfdOrder613(u) (PDstandardNthfdOrder613_impl(u,p1o3600dxdz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder613_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder613_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o3600dxdz,kadd(vec_loadu_maybe3(-3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(3)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(-1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-1)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(-2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(2)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-2)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(1)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(2025)))))),vec_loadu_maybe3(3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-3)])),vec_loadu_maybe3(-3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(3)])))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder621(u) (kmul(p1o3600dxdy,kadd(vec_loadu_maybe3(-3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(3)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(-1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-1)+cdk*(0)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(-2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(2)+cdk*(0)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-2)+cdk*(0)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(1)+cdk*(0)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(2025)))))),vec_loadu_maybe3(3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-3)+cdk*(0)])),vec_loadu_maybe3(-3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(3)+cdk*(0)]))))))))))) +#else +# define PDstandardNthfdOrder621(u) (PDstandardNthfdOrder621_impl(u,p1o3600dxdy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder621_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder621_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o3600dxdy,kadd(vec_loadu_maybe3(-3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(3)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(-1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-1)+cdk*(0)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(-2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(2)+cdk*(0)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-2)+cdk*(0)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(1)+cdk*(0)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(2025)))))),vec_loadu_maybe3(3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-3)+cdk*(0)])),vec_loadu_maybe3(-3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(3)+cdk*(0)])))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder623(u) (kmul(p1o3600dydz,kadd(vec_loadu_maybe3(0,-3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(3)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(0,-1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(1)]),vec_loadu_maybe3(0,3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-1)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(0,-2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-2)]),vec_loadu_maybe3(0,3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(2)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(2)]),vec_loadu_maybe3(0,3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-2)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(0,-1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-1)]),vec_loadu_maybe3(0,3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(1)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(2025)))))),vec_loadu_maybe3(0,3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-3)])),vec_loadu_maybe3(0,-3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(3)]))))))))))) +#else +# define PDstandardNthfdOrder623(u) (PDstandardNthfdOrder623_impl(u,p1o3600dydz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder623_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder623_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o3600dydz,kadd(vec_loadu_maybe3(0,-3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(3)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(0,-1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(1)]),vec_loadu_maybe3(0,3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-1)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(0,-2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-2)]),vec_loadu_maybe3(0,3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(2)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(2)]),vec_loadu_maybe3(0,3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-2)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(0,-1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-1)]),vec_loadu_maybe3(0,3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(1)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(2025)))))),vec_loadu_maybe3(0,3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-3)])),vec_loadu_maybe3(0,-3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(3)])))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder631(u) (kmul(p1o3600dxdz,kadd(vec_loadu_maybe3(-3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(3)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(-1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-1)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(-2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(2)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-2)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(1)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(2025)))))),vec_loadu_maybe3(3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-3)])),vec_loadu_maybe3(-3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(3)]))))))))))) +#else +# define PDstandardNthfdOrder631(u) (PDstandardNthfdOrder631_impl(u,p1o3600dxdz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder631_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder631_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o3600dxdz,kadd(vec_loadu_maybe3(-3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(3)]),kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(-1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-1)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(-2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(2)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(-2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-2)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(1)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(2025)))))),vec_loadu_maybe3(3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-3)])),vec_loadu_maybe3(-3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(3)])))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder632(u) (kmul(p1o3600dydz,kadd(vec_loadu_maybe3(0,-3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(3)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(0,-1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(1)]),vec_loadu_maybe3(0,3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-1)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(0,-2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-2)]),vec_loadu_maybe3(0,3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(2)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(2)]),vec_loadu_maybe3(0,3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-2)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(0,-1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-1)]),vec_loadu_maybe3(0,3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(1)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(2025)))))),vec_loadu_maybe3(0,3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-3)])),vec_loadu_maybe3(0,-3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(3)]))))))))))) +#else +# define PDstandardNthfdOrder632(u) (PDstandardNthfdOrder632_impl(u,p1o3600dydz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder632_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder632_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o3600dydz,kadd(vec_loadu_maybe3(0,-3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(3)]),kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-2025),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-405),kmadd(kadd(vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),ToReal(-81),kmadd(kadd(vec_loadu_maybe3(0,-1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(1)]),vec_loadu_maybe3(0,3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-1)])))),ToReal(-45),kmadd(kadd(vec_loadu_maybe3(0,-2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-2)]),vec_loadu_maybe3(0,3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(2)])))),ToReal(-9),ksub(ksub(kmadd(kadd(vec_loadu_maybe3(0,-2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(2)]),vec_loadu_maybe3(0,3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-2)])))),ToReal(9),kmadd(kadd(vec_loadu_maybe3(0,-1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-1)]),vec_loadu_maybe3(0,3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(1)])))),ToReal(45),kmadd(kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)])),ToReal(81),kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(405),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(2025)))))),vec_loadu_maybe3(0,3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-3)])),vec_loadu_maybe3(0,-3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(3)])))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder812(u) (kmul(p1o705600dxdy,kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(-1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-1)+cdk*(0)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(-2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(2)+cdk*(0)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(-1,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(1,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(4,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(1)+cdk*(0)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(-3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(3)+cdk*(0)]),vec_loadu_maybe3(3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-3)+cdk*(0)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(-2,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(4,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-2)+cdk*(0)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(-3,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(3,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(4,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(3)+cdk*(0)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(-4,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(4)+cdk*(0)]),vec_loadu_maybe3(4,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-4)+cdk*(0)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-4,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(4,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(4)+cdk*(0)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-3,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(3,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(3)+cdk*(0)]),vec_loadu_maybe3(4,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-3)+cdk*(0)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(-2,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(2,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(4,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(2)+cdk*(0)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(-3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(3)+cdk*(0)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(-1,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(4,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-1)+cdk*(0)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(-2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-2)+cdk*(0)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(-1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(1)+cdk*(0)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(451584))))))))))))))))))))))) +#else +# define PDstandardNthfdOrder812(u) (PDstandardNthfdOrder812_impl(u,p1o705600dxdy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder812_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder812_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o705600dxdy,kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(-1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-1)+cdk*(0)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(-2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(2)+cdk*(0)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(-1,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(1,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(4,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(1)+cdk*(0)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(-3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(3)+cdk*(0)]),vec_loadu_maybe3(3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-3)+cdk*(0)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(-2,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(4,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-2)+cdk*(0)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(-3,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(3,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(4,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(3)+cdk*(0)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(-4,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(4)+cdk*(0)]),vec_loadu_maybe3(4,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-4)+cdk*(0)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-4,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(4,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(4)+cdk*(0)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-3,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(3,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(3)+cdk*(0)]),vec_loadu_maybe3(4,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-3)+cdk*(0)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(-2,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(2,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(4,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(2)+cdk*(0)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(-3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(3)+cdk*(0)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(-1,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(4,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-1)+cdk*(0)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(-2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-2)+cdk*(0)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(-1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(1)+cdk*(0)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder813(u) (kmul(p1o705600dxdz,kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(-1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-1)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(-2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(2)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(-1,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(1,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(4,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(1)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(-3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(3)]),vec_loadu_maybe3(3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-3)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(-2,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(2,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(4,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-2)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(-3,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(3,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(4,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(3)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(-4,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(4)]),vec_loadu_maybe3(4,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-4,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(4,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(4)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-3,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(3,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(3)]),vec_loadu_maybe3(4,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-3)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(-2,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(2,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(4,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(2)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(-3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(3)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(-1,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(1,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(4,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-1)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(-2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-2)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(-1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(1)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(451584))))))))))))))))))))))) +#else +# define PDstandardNthfdOrder813(u) (PDstandardNthfdOrder813_impl(u,p1o705600dxdz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder813_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder813_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o705600dxdz,kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(-1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-1)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(-2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(2)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(-1,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(1,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(4,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(1)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(-3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(3)]),vec_loadu_maybe3(3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-3)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(-2,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(2,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(4,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-2)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(-3,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(3,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(4,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(3)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(-4,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(4)]),vec_loadu_maybe3(4,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-4,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(4,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(4)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-3,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(3,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(3)]),vec_loadu_maybe3(4,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-3)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(-2,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(2,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(4,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(2)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(-3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(3)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(-1,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(1,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(4,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-1)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(-2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-2)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(-1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(1)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder821(u) (kmul(p1o705600dxdy,kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(-1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-1)+cdk*(0)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(-2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(2)+cdk*(0)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(-1,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(1,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(4,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(1)+cdk*(0)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(-3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(3)+cdk*(0)]),vec_loadu_maybe3(3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-3)+cdk*(0)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(-2,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(4,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-2)+cdk*(0)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(-3,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(3,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(4,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(3)+cdk*(0)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(-4,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(4)+cdk*(0)]),vec_loadu_maybe3(4,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-4)+cdk*(0)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-4,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(4,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(4)+cdk*(0)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-3,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(3,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(3)+cdk*(0)]),vec_loadu_maybe3(4,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-3)+cdk*(0)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(-2,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(2,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(4,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(2)+cdk*(0)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(-3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(3)+cdk*(0)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(-1,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(4,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-1)+cdk*(0)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(-2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-2)+cdk*(0)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(-1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(1)+cdk*(0)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(451584))))))))))))))))))))))) +#else +# define PDstandardNthfdOrder821(u) (PDstandardNthfdOrder821_impl(u,p1o705600dxdy,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder821_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder821_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o705600dxdy,kmadd(kadd(vec_loadu_maybe3(-1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-1)+cdk*(0)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(-1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(1)+cdk*(0)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(-2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-2)+cdk*(0)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(-1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-1)+cdk*(0)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(-2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(2)+cdk*(0)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(-1,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(1,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(4,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(1)+cdk*(0)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(-3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(3)+cdk*(0)]),vec_loadu_maybe3(3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-3)+cdk*(0)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(-2,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(4,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-2)+cdk*(0)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(-3,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(3,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(4,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(3)+cdk*(0)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(-4,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(4)+cdk*(0)]),vec_loadu_maybe3(4,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-4)+cdk*(0)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-4,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(4,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(4)+cdk*(0)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-3,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(3,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(3)+cdk*(0)]),vec_loadu_maybe3(4,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-3)+cdk*(0)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(-2,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(2,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(4,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(2)+cdk*(0)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(-3,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(3,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(3)+cdk*(0)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(-1,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(4)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(-4,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(4,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(-1)+cdk*(0)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(-2,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(2,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(2)+cdk*(0)]),vec_loadu_maybe3(3,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(-2)+cdk*(0)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(-1,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(1,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(3)+cdk*(0)]),kadd(vec_loadu_maybe3(-3,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(3,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(1)+cdk*(0)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(-2,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(2,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(2)+cdk*(0)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(-1,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(2)+cdk*(0)]),kadd(vec_loadu_maybe3(1,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(-2,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(1)+cdk*(0)]),vec_loadu_maybe3(2,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(-1)+cdk*(0)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(-1,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(1,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(1)+cdk*(0)])),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder823(u) (kmul(p1o705600dydz,kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(0,-1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(1)]),vec_loadu_maybe3(0,3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-1)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(0,-2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-2)]),vec_loadu_maybe3(0,3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(2)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(0,-1,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,1,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-1)]),vec_loadu_maybe3(0,4,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(1)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(0,-3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(3)]),vec_loadu_maybe3(0,3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-3)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(0,-2,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(4)]),kadd(vec_loadu_maybe3(0,2,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(2)]),vec_loadu_maybe3(0,4,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-2)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(0,-3,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,3,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-3)]),vec_loadu_maybe3(0,4,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(3)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(0,-4,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(4)]),vec_loadu_maybe3(0,4,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(0,-4,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-4)]),vec_loadu_maybe3(0,4,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(4)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(0,-3,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(4)]),kadd(vec_loadu_maybe3(0,3,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(3)]),vec_loadu_maybe3(0,4,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-3)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(0,-2,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,2,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-2)]),vec_loadu_maybe3(0,4,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(2)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(0,-3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-3)]),vec_loadu_maybe3(0,3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(3)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(0,-1,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(4)]),kadd(vec_loadu_maybe3(0,1,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(1)]),vec_loadu_maybe3(0,4,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-1)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(0,-2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(2)]),vec_loadu_maybe3(0,3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-2)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(0,-1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-1)]),vec_loadu_maybe3(0,3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(1)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(451584))))))))))))))))))))))) +#else +# define PDstandardNthfdOrder823(u) (PDstandardNthfdOrder823_impl(u,p1o705600dydz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder823_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder823_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o705600dydz,kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(0,-1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(1)]),vec_loadu_maybe3(0,3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-1)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(0,-2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-2)]),vec_loadu_maybe3(0,3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(2)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(0,-1,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,1,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-1)]),vec_loadu_maybe3(0,4,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(1)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(0,-3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(3)]),vec_loadu_maybe3(0,3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-3)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(0,-2,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(4)]),kadd(vec_loadu_maybe3(0,2,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(2)]),vec_loadu_maybe3(0,4,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-2)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(0,-3,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,3,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-3)]),vec_loadu_maybe3(0,4,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(3)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(0,-4,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(4)]),vec_loadu_maybe3(0,4,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(0,-4,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-4)]),vec_loadu_maybe3(0,4,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(4)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(0,-3,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(4)]),kadd(vec_loadu_maybe3(0,3,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(3)]),vec_loadu_maybe3(0,4,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-3)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(0,-2,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,2,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-2)]),vec_loadu_maybe3(0,4,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(2)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(0,-3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-3)]),vec_loadu_maybe3(0,3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(3)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(0,-1,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(4)]),kadd(vec_loadu_maybe3(0,1,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(1)]),vec_loadu_maybe3(0,4,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-1)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(0,-2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(2)]),vec_loadu_maybe3(0,3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-2)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(0,-1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-1)]),vec_loadu_maybe3(0,3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(1)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder831(u) (kmul(p1o705600dxdz,kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(-1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-1)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(-2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(2)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(-1,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(1,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(4,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(1)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(-3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(3)]),vec_loadu_maybe3(3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-3)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(-2,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(2,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(4,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-2)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(-3,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(3,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(4,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(3)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(-4,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(4)]),vec_loadu_maybe3(4,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-4,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(4,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(4)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-3,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(3,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(3)]),vec_loadu_maybe3(4,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-3)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(-2,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(2,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(4,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(2)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(-3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(3)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(-1,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(1,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(4,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-1)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(-2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-2)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(-1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(1)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(451584))))))))))))))))))))))) +#else +# define PDstandardNthfdOrder831(u) (PDstandardNthfdOrder831_impl(u,p1o705600dxdz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder831_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder831_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o705600dxdz,kmadd(kadd(vec_loadu_maybe3(-1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-1)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(-1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(-2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(1)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(-2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-2)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(-1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-1)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(-2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(2)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(-1,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(1,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(4,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(1)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(-3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(3)]),vec_loadu_maybe3(3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-3)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(-2,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(2,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(4,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-2)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(-3,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(3,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(4,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(3)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(-4,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(4)]),vec_loadu_maybe3(4,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(-4,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(4,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(4)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(-3,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(3,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(3)]),vec_loadu_maybe3(4,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-3)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(-2,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(2,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(-4,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(4,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(2)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(-3,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(3,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(3)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(-1,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(4)]),kadd(vec_loadu_maybe3(1,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(-4,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(4,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(-1)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(-2,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(2,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(-3,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(2)]),vec_loadu_maybe3(3,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(-2)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(-1,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(1,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(3)]),kadd(vec_loadu_maybe3(-3,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(3,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(1)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(-2,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(2,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(2)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(-1,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(2)]),kadd(vec_loadu_maybe3(1,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(-2,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(1)]),vec_loadu_maybe3(2,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(-1)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(-1,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(1,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(1)])),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder832(u) (kmul(p1o705600dydz,kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(0,-1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(1)]),vec_loadu_maybe3(0,3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-1)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(0,-2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-2)]),vec_loadu_maybe3(0,3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(2)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(0,-1,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,1,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-1)]),vec_loadu_maybe3(0,4,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(1)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(0,-3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(3)]),vec_loadu_maybe3(0,3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-3)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(0,-2,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(4)]),kadd(vec_loadu_maybe3(0,2,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(2)]),vec_loadu_maybe3(0,4,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-2)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(0,-3,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,3,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-3)]),vec_loadu_maybe3(0,4,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(3)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(0,-4,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(4)]),vec_loadu_maybe3(0,4,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(0,-4,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-4)]),vec_loadu_maybe3(0,4,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(4)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(0,-3,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(4)]),kadd(vec_loadu_maybe3(0,3,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(3)]),vec_loadu_maybe3(0,4,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-3)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(0,-2,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,2,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-2)]),vec_loadu_maybe3(0,4,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(2)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(0,-3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-3)]),vec_loadu_maybe3(0,3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(3)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(0,-1,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(4)]),kadd(vec_loadu_maybe3(0,1,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(1)]),vec_loadu_maybe3(0,4,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-1)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(0,-2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(2)]),vec_loadu_maybe3(0,3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-2)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(0,-1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-1)]),vec_loadu_maybe3(0,3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(1)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(451584))))))))))))))))))))))) +#else +# define PDstandardNthfdOrder832(u) (PDstandardNthfdOrder832_impl(u,p1o705600dydz,cdj,cdk)) +static CCTK_REAL_VEC PDstandardNthfdOrder832_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDstandardNthfdOrder832_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o705600dydz,kmadd(kadd(vec_loadu_maybe3(0,-1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(1)]),vec_loadu_maybe3(0,1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-1)])),ToReal(-451584),kmadd(kadd(vec_loadu_maybe3(0,-1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,-2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-1)]),vec_loadu_maybe3(0,2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(1)])))),ToReal(-112896),kmadd(kadd(vec_loadu_maybe3(0,-2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(2)]),vec_loadu_maybe3(0,2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-2)])),ToReal(-28224),kmadd(kadd(vec_loadu_maybe3(0,-1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(1)]),vec_loadu_maybe3(0,3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-1)])))),ToReal(-21504),kmadd(kadd(vec_loadu_maybe3(0,-2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-2)]),vec_loadu_maybe3(0,3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(2)])))),ToReal(-5376),kmadd(kadd(vec_loadu_maybe3(0,-1,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,1,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-1)]),vec_loadu_maybe3(0,4,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(1)])))),ToReal(-2016),kmadd(kadd(vec_loadu_maybe3(0,-3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(3)]),vec_loadu_maybe3(0,3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-3)])),ToReal(-1024),kmadd(kadd(vec_loadu_maybe3(0,-2,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(4)]),kadd(vec_loadu_maybe3(0,2,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(2)]),vec_loadu_maybe3(0,4,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-2)])))),ToReal(-504),kmadd(kadd(vec_loadu_maybe3(0,-3,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,3,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-3)]),vec_loadu_maybe3(0,4,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(3)])))),ToReal(-96),kmadd(kadd(vec_loadu_maybe3(0,-4,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(4)]),vec_loadu_maybe3(0,4,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-4)])),ToReal(-9),kmadd(kadd(vec_loadu_maybe3(0,-4,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-4)]),vec_loadu_maybe3(0,4,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(4)])),ToReal(9),kmadd(kadd(vec_loadu_maybe3(0,-3,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(4)]),kadd(vec_loadu_maybe3(0,3,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(3)]),vec_loadu_maybe3(0,4,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-3)])))),ToReal(96),kmadd(kadd(vec_loadu_maybe3(0,-2,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,2,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(4)]),kadd(vec_loadu_maybe3(0,-4,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(-2)]),vec_loadu_maybe3(0,4,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(2)])))),ToReal(504),kmadd(kadd(vec_loadu_maybe3(0,-3,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-3)]),vec_loadu_maybe3(0,3,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(3)])),ToReal(1024),kmadd(kadd(vec_loadu_maybe3(0,-1,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(4)]),kadd(vec_loadu_maybe3(0,1,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,-4,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(1)]),vec_loadu_maybe3(0,4,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(-1)])))),ToReal(2016),kmadd(kadd(vec_loadu_maybe3(0,-2,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(3)]),kadd(vec_loadu_maybe3(0,2,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,-3,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(2)]),vec_loadu_maybe3(0,3,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(-2)])))),ToReal(5376),kmadd(kadd(vec_loadu_maybe3(0,-1,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,1,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(3)]),kadd(vec_loadu_maybe3(0,-3,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(-1)]),vec_loadu_maybe3(0,3,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(1)])))),ToReal(21504),kmadd(kadd(vec_loadu_maybe3(0,-2,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(-2)]),vec_loadu_maybe3(0,2,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(2)])),ToReal(28224),kmadd(kadd(vec_loadu_maybe3(0,-1,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(2)]),kadd(vec_loadu_maybe3(0,1,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,-2,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(1)]),vec_loadu_maybe3(0,2,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(-1)])))),ToReal(112896),kmul(kadd(vec_loadu_maybe3(0,-1,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(-1)]),vec_loadu_maybe3(0,1,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(1)])),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder21(u) (kmul(p1o16dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6))))))) #else -# define PDdissipationNth1(u) (PDdissipationNth1_impl(u,p1o64dx,cdj,cdk)) -static CCTK_REAL_VEC PDdissipationNth1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDdissipationNth1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDdissipationNthfdOrder21(u) (PDdissipationNthfdOrder21_impl(u,p1o16dx,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o16dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder22(u) (kmul(p1o16dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6))))))) +#else +# define PDdissipationNthfdOrder22(u) (PDdissipationNthfdOrder22_impl(u,p1o16dy,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o16dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder23(u) (kmul(p1o16dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6))))))) +#else +# define PDdissipationNthfdOrder23(u) (PDdissipationNthfdOrder23_impl(u,p1o16dz,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o16dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder41(u) (kmul(p1o64dx,kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(15)))))))) +#else +# define PDdissipationNthfdOrder41(u) (PDdissipationNthfdOrder41_impl(u,p1o64dx,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dx, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o64dx,kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(15))))))); @@ -158,11 +626,11 @@ static CCTK_REAL_VEC PDdissipationNth1_impl(CCTK_REAL const* restrict const u, C #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDdissipationNth2(u) (kmul(p1o64dy,kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(15)))))))) +# define PDdissipationNthfdOrder42(u) (kmul(p1o64dy,kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(15)))))))) #else -# define PDdissipationNth2(u) (PDdissipationNth2_impl(u,p1o64dy,cdj,cdk)) -static CCTK_REAL_VEC PDdissipationNth2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDdissipationNth2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDdissipationNthfdOrder42(u) (PDdissipationNthfdOrder42_impl(u,p1o64dy,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dy, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o64dy,kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(15))))))); @@ -170,11 +638,11 @@ static CCTK_REAL_VEC PDdissipationNth2_impl(CCTK_REAL const* restrict const u, C #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDdissipationNth3(u) (kmul(p1o64dz,kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(15)))))))) +# define PDdissipationNthfdOrder43(u) (kmul(p1o64dz,kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(15)))))))) #else -# define PDdissipationNth3(u) (PDdissipationNth3_impl(u,p1o64dz,cdj,cdk)) -static CCTK_REAL_VEC PDdissipationNth3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDdissipationNth3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDdissipationNthfdOrder43(u) (PDdissipationNthfdOrder43_impl(u,p1o64dz,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o64dz,kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(15))))))); @@ -182,32 +650,209 @@ static CCTK_REAL_VEC PDdissipationNth3_impl(CCTK_REAL const* restrict const u, C #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNth1(u) (kmul(p1o12dx,kmul(dir1,kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3*dir1)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-10),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2*dir1)+cdj*(0)+cdk*(0)]),ToReal(-6),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-dir1)+cdj*(0)+cdk*(0)]),ToReal(-3),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(dir1)+cdj*(0)+cdk*(0)]),ToReal(18))))))))) +# define PDdissipationNthfdOrder61(u) (kmul(p1o256dx,kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70))))))))) +#else +# define PDdissipationNthfdOrder61(u) (PDdissipationNthfdOrder61_impl(u,p1o256dx,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o256dx,kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder62(u) (kmul(p1o256dy,kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70))))))))) +#else +# define PDdissipationNthfdOrder62(u) (PDdissipationNthfdOrder62_impl(u,p1o256dy,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o256dy,kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder63(u) (kmul(p1o256dz,kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70))))))))) +#else +# define PDdissipationNthfdOrder63(u) (PDdissipationNthfdOrder63_impl(u,p1o256dz,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o256dz,kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder81(u) (kmul(p1o1024dx,kadd(vec_loadu_maybe3(-5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-5)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(5)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(210)))))))))) +#else +# define PDdissipationNthfdOrder81(u) (PDdissipationNthfdOrder81_impl(u,p1o1024dx,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o1024dx,kadd(vec_loadu_maybe3(-5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-5)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(5)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder82(u) (kmul(p1o1024dy,kadd(vec_loadu_maybe3(0,-5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-5)+cdk*(0)]),kadd(vec_loadu_maybe3(0,5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(5)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(210)))))))))) +#else +# define PDdissipationNthfdOrder82(u) (PDdissipationNthfdOrder82_impl(u,p1o1024dy,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o1024dy,kadd(vec_loadu_maybe3(0,-5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-5)+cdk*(0)]),kadd(vec_loadu_maybe3(0,5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(5)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder83(u) (kmul(p1o1024dz,kadd(vec_loadu_maybe3(0,0,-5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-5)]),kadd(vec_loadu_maybe3(0,0,5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(5)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(210)))))))))) +#else +# define PDdissipationNthfdOrder83(u) (PDdissipationNthfdOrder83_impl(u,p1o1024dz,cdj,cdk)) +static CCTK_REAL_VEC PDdissipationNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDdissipationNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o1024dz,kadd(vec_loadu_maybe3(0,0,-5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-5)]),kadd(vec_loadu_maybe3(0,0,5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(5)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder21(u) (kmul(pm1o2dx,kmul(dir1,kadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2*dir1)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(dir1)+cdj*(0)+cdk*(0)]),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(3))))))) #else -# define PDupwindNth1(u) (PDupwindNth1_impl(u,p1o12dx,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNth1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNth1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthfdOrder21(u) (PDupwindNthfdOrder21_impl(u,pm1o2dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dx, ptrdiff_t const cdj, ptrdiff_t const cdk) { assert(0); return ToReal(1e30); /* ERROR */ } #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNth2(u) (kmul(p1o12dy,kmul(dir2,kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3*dir2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-10),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2*dir2)+cdk*(0)]),ToReal(-6),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-dir2)+cdk*(0)]),ToReal(-3),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(dir2)+cdk*(0)]),ToReal(18))))))))) +# define PDupwindNthfdOrder41(u) (kmul(p1o12dx,kmul(dir1,kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3*dir1)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-10),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2*dir1)+cdj*(0)+cdk*(0)]),ToReal(-6),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-dir1)+cdj*(0)+cdk*(0)]),ToReal(-3),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(dir1)+cdj*(0)+cdk*(0)]),ToReal(18))))))))) #else -# define PDupwindNth2(u) (PDupwindNth2_impl(u,p1o12dy,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNth2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNth2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthfdOrder41(u) (PDupwindNthfdOrder41_impl(u,p1o12dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) { assert(0); return ToReal(1e30); /* ERROR */ } #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNth3(u) (kmul(p1o12dz,kmul(dir3,kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3*dir3)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-10),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2*dir3)]),ToReal(-6),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-dir3)]),ToReal(-3),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(dir3)]),ToReal(18))))))))) +# define PDupwindNthfdOrder61(u) (kmul(pm1o60dx,kmul(dir1,kadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4*dir1)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(dir1)+cdj*(0)+cdk*(0)]),ToReal(-80),kmadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3*dir1)+cdj*(0)+cdk*(0)]),ToReal(-8),kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2*dir1)+cdj*(0)+cdk*(0)]),ToReal(-2),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-dir1)+cdj*(0)+cdk*(0)]),ToReal(24),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2*dir1)+cdj*(0)+cdk*(0)]),ToReal(30),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(35))))))))))) #else -# define PDupwindNth3(u) (PDupwindNth3_impl(u,p1o12dz,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNth3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNth3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthfdOrder61(u) (PDupwindNthfdOrder61_impl(u,pm1o60dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dx, ptrdiff_t const cdj, ptrdiff_t const cdk) { assert(0); return ToReal(1e30); /* ERROR */ } #endif +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder81(u) (kmul(p1o840dx,kmul(dir1,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-378),kmadd(vec_loadu_maybe3(5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(5*dir1)+cdj*(0)+cdk*(0)]),ToReal(3),kmul(ToReal(-5),kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3*dir1)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(dir1)+cdj*(0)+cdk*(0)]),ToReal(-210),kmadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3*dir1)+cdj*(0)+cdk*(0)]),ToReal(-28),kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2*dir1)+cdj*(0)+cdk*(0)]),ToReal(-12),kmadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4*dir1)+cdj*(0)+cdk*(0)]),ToReal(6),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-dir1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2*dir1)+cdj*(0)+cdk*(0)])),ToReal(84))))))))))))) +#else +# define PDupwindNthfdOrder81(u) (PDupwindNthfdOrder81_impl(u,p1o840dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder21(u) (kmul(p1o4dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-4),kmsub(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(4),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])))))) +#else +# define PDupwindNthAntifdOrder21(u) (PDupwindNthAntifdOrder21_impl(u,p1o4dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o4dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-4),kmsub(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(4),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder41(u) (kmul(p1o24dx,kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-21),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(6),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(21))),vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]))))))) +#else +# define PDupwindNthAntifdOrder41(u) (PDupwindNthAntifdOrder41_impl(u,p1o24dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o24dx,kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-21),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(6),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(21))),vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)])))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder61(u) (kmul(p1o120dx,kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-104),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-32),kmadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),ToReal(-8),ksub(kmadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),ToReal(8),kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(32),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(104)))),vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)])))))))) +#else +# define PDupwindNthAntifdOrder61(u) (PDupwindNthAntifdOrder61_impl(u,p1o120dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o120dx,kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-104),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-32),kmadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),ToReal(-8),ksub(kmadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),ToReal(8),kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(32),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(104)))),vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder81(u) (kmul(p1o1680dx,kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-1470),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-480),kmadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),ToReal(-145),kmadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]),ToReal(-30),kmadd(vec_loadu_maybe3(-5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-5)+cdj*(0)+cdk*(0)]),ToReal(-3),kmadd(vec_loadu_maybe3(5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(5)+cdj*(0)+cdk*(0)]),ToReal(3),kmadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),ToReal(30),kmadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),ToReal(145),kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(480),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(1470))))))))))))) +#else +# define PDupwindNthAntifdOrder81(u) (PDupwindNthAntifdOrder81_impl(u,p1o1680dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o1680dx,kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-1470),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-480),kmadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),ToReal(-145),kmadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]),ToReal(-30),kmadd(vec_loadu_maybe3(-5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-5)+cdj*(0)+cdk*(0)]),ToReal(-3),kmadd(vec_loadu_maybe3(5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(5)+cdj*(0)+cdk*(0)]),ToReal(3),kmadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),ToReal(30),kmadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),ToReal(145),kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(480),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(1470)))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder21(u) (kmul(pm1o4dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6))))))) +#else +# define PDupwindNthSymmfdOrder21(u) (PDupwindNthSymmfdOrder21_impl(u,pm1o4dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(pm1o4dx,kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder41(u) (kmul(p1o24dx,kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(15)))))))) +#else +# define PDupwindNthSymmfdOrder41(u) (PDupwindNthSymmfdOrder41_impl(u,p1o24dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o24dx,kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(15))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder61(u) (kmul(pm1o120dx,kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70))))))))) +#else +# define PDupwindNthSymmfdOrder61(u) (PDupwindNthSymmfdOrder61_impl(u,pm1o120dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(pm1o120dx,kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder81(u) (kmul(p1o560dx,kadd(vec_loadu_maybe3(-5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-5)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(5)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(210)))))))))) +#else +# define PDupwindNthSymmfdOrder81(u) (PDupwindNthSymmfdOrder81_impl(u,p1o560dx,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o560dx,kadd(vec_loadu_maybe3(-5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-5)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(5,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(5)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(-4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-4)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(4,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(4)+cdj*(0)+cdk*(0)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(210))))))))); +} +#endif + #ifndef KRANC_DIFF_FUNCTIONS # define PDonesided1(u) (kmul(p1odx,kmul(dir1,ksub(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(dir1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]))))) #else @@ -217,6 +862,138 @@ static CCTK_REAL_VEC PDonesided1_impl(CCTK_REAL const* restrict const u, CCTK_RE { assert(0); return ToReal(1e30); /* ERROR */ } #endif +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder22(u) (kmul(pm1o2dy,kmul(dir2,kadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2*dir2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(dir2)+cdk*(0)]),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(3))))))) +#else +# define PDupwindNthfdOrder22(u) (PDupwindNthfdOrder22_impl(u,pm1o2dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder42(u) (kmul(p1o12dy,kmul(dir2,kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3*dir2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-10),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2*dir2)+cdk*(0)]),ToReal(-6),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-dir2)+cdk*(0)]),ToReal(-3),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(dir2)+cdk*(0)]),ToReal(18))))))))) +#else +# define PDupwindNthfdOrder42(u) (PDupwindNthfdOrder42_impl(u,p1o12dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder62(u) (kmul(pm1o60dy,kmul(dir2,kadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4*dir2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(dir2)+cdk*(0)]),ToReal(-80),kmadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3*dir2)+cdk*(0)]),ToReal(-8),kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2*dir2)+cdk*(0)]),ToReal(-2),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-dir2)+cdk*(0)]),ToReal(24),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2*dir2)+cdk*(0)]),ToReal(30),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(35))))))))))) +#else +# define PDupwindNthfdOrder62(u) (PDupwindNthfdOrder62_impl(u,pm1o60dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder82(u) (kmul(p1o840dy,kmul(dir2,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-378),kmadd(vec_loadu_maybe3(0,5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(5*dir2)+cdk*(0)]),ToReal(3),kmul(ToReal(-5),kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3*dir2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(dir2)+cdk*(0)]),ToReal(-210),kmadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3*dir2)+cdk*(0)]),ToReal(-28),kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2*dir2)+cdk*(0)]),ToReal(-12),kmadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4*dir2)+cdk*(0)]),ToReal(6),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-dir2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2*dir2)+cdk*(0)])),ToReal(84))))))))))))) +#else +# define PDupwindNthfdOrder82(u) (PDupwindNthfdOrder82_impl(u,p1o840dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder22(u) (kmul(p1o4dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-4),kmsub(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(4),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])))))) +#else +# define PDupwindNthAntifdOrder22(u) (PDupwindNthAntifdOrder22_impl(u,p1o4dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o4dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-4),kmsub(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(4),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder42(u) (kmul(p1o24dy,kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-21),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(6),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(21))),vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]))))))) +#else +# define PDupwindNthAntifdOrder42(u) (PDupwindNthAntifdOrder42_impl(u,p1o24dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o24dy,kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-21),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(6),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(21))),vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)])))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder62(u) (kmul(p1o120dy,kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-104),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-32),kmadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),ToReal(-8),ksub(kmadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),ToReal(8),kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(32),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(104)))),vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)])))))))) +#else +# define PDupwindNthAntifdOrder62(u) (PDupwindNthAntifdOrder62_impl(u,p1o120dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o120dy,kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-104),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-32),kmadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),ToReal(-8),ksub(kmadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),ToReal(8),kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(32),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(104)))),vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder82(u) (kmul(p1o1680dy,kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-1470),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-480),kmadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),ToReal(-145),kmadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]),ToReal(-30),kmadd(vec_loadu_maybe3(0,-5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-5)+cdk*(0)]),ToReal(-3),kmadd(vec_loadu_maybe3(0,5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(5)+cdk*(0)]),ToReal(3),kmadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),ToReal(30),kmadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),ToReal(145),kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(480),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(1470))))))))))))) +#else +# define PDupwindNthAntifdOrder82(u) (PDupwindNthAntifdOrder82_impl(u,p1o1680dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o1680dy,kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-1470),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-480),kmadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),ToReal(-145),kmadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]),ToReal(-30),kmadd(vec_loadu_maybe3(0,-5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-5)+cdk*(0)]),ToReal(-3),kmadd(vec_loadu_maybe3(0,5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(5)+cdk*(0)]),ToReal(3),kmadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),ToReal(30),kmadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),ToReal(145),kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(480),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(1470)))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder22(u) (kmul(pm1o4dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6))))))) +#else +# define PDupwindNthSymmfdOrder22(u) (PDupwindNthSymmfdOrder22_impl(u,pm1o4dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(pm1o4dy,kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),kadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder42(u) (kmul(p1o24dy,kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(15)))))))) +#else +# define PDupwindNthSymmfdOrder42(u) (PDupwindNthSymmfdOrder42_impl(u,p1o24dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o24dy,kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(15))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder62(u) (kmul(pm1o120dy,kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70))))))))) +#else +# define PDupwindNthSymmfdOrder62(u) (PDupwindNthSymmfdOrder62_impl(u,pm1o120dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(pm1o120dy,kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),kadd(vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)]),kmadd(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder82(u) (kmul(p1o560dy,kadd(vec_loadu_maybe3(0,-5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-5)+cdk*(0)]),kadd(vec_loadu_maybe3(0,5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(5)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(210)))))))))) +#else +# define PDupwindNthSymmfdOrder82(u) (PDupwindNthSymmfdOrder82_impl(u,p1o560dy,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o560dy,kadd(vec_loadu_maybe3(0,-5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-5)+cdk*(0)]),kadd(vec_loadu_maybe3(0,5,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(5)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(0,-4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-4)+cdk*(0)]),vec_loadu_maybe3(0,4,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(4)+cdk*(0)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(210))))))))); +} +#endif + #ifndef KRANC_DIFF_FUNCTIONS # define PDonesided2(u) (kmul(p1ody,kmul(dir2,ksub(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(dir2)+cdk*(0)]),vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]))))) #else @@ -227,83 +1004,143 @@ static CCTK_REAL_VEC PDonesided2_impl(CCTK_REAL const* restrict const u, CCTK_RE #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDonesided3(u) (kmul(p1odz,kmul(dir3,ksub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(dir3)]),vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]))))) +# define PDupwindNthfdOrder23(u) (kmul(pm1o2dz,kmul(dir3,kadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2*dir3)]),kmadd(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(dir3)]),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(3))))))) #else -# define PDonesided3(u) (PDonesided3_impl(u,p1odz,cdj,cdk)) -static CCTK_REAL_VEC PDonesided3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDonesided3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthfdOrder23(u) (PDupwindNthfdOrder23_impl(u,pm1o2dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder43(u) (kmul(p1o12dz,kmul(dir3,kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3*dir3)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-10),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2*dir3)]),ToReal(-6),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-dir3)]),ToReal(-3),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(dir3)]),ToReal(18))))))))) +#else +# define PDupwindNthfdOrder43(u) (PDupwindNthfdOrder43_impl(u,p1o12dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { assert(0); return ToReal(1e30); /* ERROR */ } #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNthAnti1(u) (kmul(p1o24dx,kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-21),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(6),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(21))),vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]))))))) +# define PDupwindNthfdOrder63(u) (kmul(pm1o60dz,kmul(dir3,kadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4*dir3)]),kmadd(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(dir3)]),ToReal(-80),kmadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3*dir3)]),ToReal(-8),kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2*dir3)]),ToReal(-2),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-dir3)]),ToReal(24),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2*dir3)]),ToReal(30),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(35))))))))))) #else -# define PDupwindNthAnti1(u) (PDupwindNthAnti1_impl(u,p1o24dx,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNthAnti1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNthAnti1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthfdOrder63(u) (PDupwindNthfdOrder63_impl(u,pm1o60dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder83(u) (kmul(p1o840dz,kmul(dir3,kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-378),kmadd(vec_loadu_maybe3(0,0,5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(5*dir3)]),ToReal(3),kmul(ToReal(-5),kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3*dir3)]),kmadd(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(dir3)]),ToReal(-210),kmadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3*dir3)]),ToReal(-28),kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2*dir3)]),ToReal(-12),kmadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4*dir3)]),ToReal(6),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-dir3)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2*dir3)])),ToReal(84))))))))))))) +#else +# define PDupwindNthfdOrder83(u) (PDupwindNthfdOrder83_impl(u,p1o840dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder23(u) (kmul(p1o4dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-4),kmsub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(4),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])))))) +#else +# define PDupwindNthAntifdOrder23(u) (PDupwindNthAntifdOrder23_impl(u,p1o4dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); - return kmul(p1o24dx,kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),ToReal(-21),kmadd(vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),ToReal(6),kmul(vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)]),ToReal(21))),vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)])))))); + return kmul(p1o4dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-4),kmsub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(4),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]))))); } #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNthSymm1(u) (kmul(p1o24dx,kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(15)))))))) +# define PDupwindNthAntifdOrder43(u) (kmul(p1o24dz,kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-21),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(6),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(21))),vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]))))))) #else -# define PDupwindNthSymm1(u) (PDupwindNthSymm1_impl(u,p1o24dx,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNthSymm1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNthSymm1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthAntifdOrder43(u) (PDupwindNthAntifdOrder43_impl(u,p1o24dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); - return kmul(p1o24dx,kadd(vec_loadu_maybe3(-3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-3)+cdj*(0)+cdk*(0)]),kadd(vec_loadu_maybe3(3,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(3)+cdj*(0)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(-2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-2)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(2,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(2)+cdj*(0)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(-1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(-1)+cdj*(0)+cdk*(0)]),vec_loadu_maybe3(1,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(1)+cdj*(0)+cdk*(0)])),ToReal(15))))))); + return kmul(p1o24dz,kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-21),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(6),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(21))),vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)])))))); } #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNthAnti2(u) (kmul(p1o24dy,kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-21),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(6),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(21))),vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]))))))) +# define PDupwindNthAntifdOrder63(u) (kmul(p1o120dz,kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-104),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-32),kmadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),ToReal(-8),ksub(kmadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),ToReal(8),kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(32),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(104)))),vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)])))))))) #else -# define PDupwindNthAnti2(u) (PDupwindNthAnti2_impl(u,p1o24dy,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNthAnti2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNthAnti2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthAntifdOrder63(u) (PDupwindNthAntifdOrder63_impl(u,p1o120dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); - return kmul(p1o24dy,kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),ToReal(-21),kmadd(vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),ToReal(6),kmul(vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)]),ToReal(21))),vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)])))))); + return kmul(p1o120dz,kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-104),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-32),kmadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),ToReal(-8),ksub(kmadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),ToReal(8),kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(32),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(104)))),vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]))))))); } #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNthSymm2(u) (kmul(p1o24dy,kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(15)))))))) +# define PDupwindNthAntifdOrder83(u) (kmul(p1o1680dz,kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-1470),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-480),kmadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),ToReal(-145),kmadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]),ToReal(-30),kmadd(vec_loadu_maybe3(0,0,-5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-5)]),ToReal(-3),kmadd(vec_loadu_maybe3(0,0,5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(5)]),ToReal(3),kmadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),ToReal(30),kmadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),ToReal(145),kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(480),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(1470))))))))))))) #else -# define PDupwindNthSymm2(u) (PDupwindNthSymm2_impl(u,p1o24dy,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNthSymm2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNthSymm2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthAntifdOrder83(u) (PDupwindNthAntifdOrder83_impl(u,p1o1680dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthAntifdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthAntifdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); - return kmul(p1o24dy,kadd(vec_loadu_maybe3(0,-3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-3)+cdk*(0)]),kadd(vec_loadu_maybe3(0,3,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(3)+cdk*(0)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,-2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-2)+cdk*(0)]),vec_loadu_maybe3(0,2,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(2)+cdk*(0)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,-1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(-1)+cdk*(0)]),vec_loadu_maybe3(0,1,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(1)+cdk*(0)])),ToReal(15))))))); + return kmul(p1o1680dz,kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-1470),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-480),kmadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),ToReal(-145),kmadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]),ToReal(-30),kmadd(vec_loadu_maybe3(0,0,-5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-5)]),ToReal(-3),kmadd(vec_loadu_maybe3(0,0,5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(5)]),ToReal(3),kmadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),ToReal(30),kmadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),ToReal(145),kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(480),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(1470)))))))))))); } #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNthAnti3(u) (kmul(p1o24dz,kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-21),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(6),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(21))),vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]))))))) +# define PDupwindNthSymmfdOrder23(u) (kmul(pm1o4dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6))))))) #else -# define PDupwindNthAnti3(u) (PDupwindNthAnti3_impl(u,p1o24dz,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNthAnti3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNthAnti3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthSymmfdOrder23(u) (PDupwindNthSymmfdOrder23_impl(u,pm1o4dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); - return kmul(p1o24dz,kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),ToReal(-21),kmadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),ToReal(-6),ksub(kmadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),ToReal(6),kmul(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)]),ToReal(21))),vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)])))))); + return kmul(pm1o4dz,kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),kadd(vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-4),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(6)))))); } #endif #ifndef KRANC_DIFF_FUNCTIONS -# define PDupwindNthSymm3(u) (kmul(p1o24dz,kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(15)))))))) +# define PDupwindNthSymmfdOrder43(u) (kmul(p1o24dz,kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(15)))))))) #else -# define PDupwindNthSymm3(u) (PDupwindNthSymm3_impl(u,p1o24dz,cdj,cdk)) -static CCTK_REAL_VEC PDupwindNthSymm3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; -static CCTK_REAL_VEC PDupwindNthSymm3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +# define PDupwindNthSymmfdOrder43(u) (PDupwindNthSymmfdOrder43_impl(u,p1o24dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) { ptrdiff_t const cdi=sizeof(CCTK_REAL); return kmul(p1o24dz,kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),kadd(vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-20),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-6),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(15))))))); } #endif +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder63(u) (kmul(pm1o120dz,kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70))))))))) +#else +# define PDupwindNthSymmfdOrder63(u) (PDupwindNthSymmfdOrder63_impl(u,pm1o120dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(pm1o120dz,kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),kadd(vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)]),kmadd(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(-56),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(-8),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(28),kmul(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder83(u) (kmul(p1o560dz,kadd(vec_loadu_maybe3(0,0,-5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-5)]),kadd(vec_loadu_maybe3(0,0,5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(5)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(210)))))))))) +#else +# define PDupwindNthSymmfdOrder83(u) (PDupwindNthSymmfdOrder83_impl(u,p1o560dz,cdj,cdk)) +static CCTK_REAL_VEC PDupwindNthSymmfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDupwindNthSymmfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ + ptrdiff_t const cdi=sizeof(CCTK_REAL); + return kmul(p1o560dz,kadd(vec_loadu_maybe3(0,0,-5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-5)]),kadd(vec_loadu_maybe3(0,0,5,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(5)]),kmadd(vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]),ToReal(-252),kmadd(kadd(vec_loadu_maybe3(0,0,-2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-2)]),vec_loadu_maybe3(0,0,2,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(2)])),ToReal(-120),kmadd(kadd(vec_loadu_maybe3(0,0,-4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-4)]),vec_loadu_maybe3(0,0,4,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(4)])),ToReal(-10),kmadd(kadd(vec_loadu_maybe3(0,0,-3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-3)]),vec_loadu_maybe3(0,0,3,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(3)])),ToReal(45),kmul(kadd(vec_loadu_maybe3(0,0,-1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(-1)]),vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(1)])),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDonesided3(u) (kmul(p1odz,kmul(dir3,ksub(vec_loadu_maybe3(0,0,1,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(dir3)]),vec_loadu_maybe3(0,0,0,*(CCTK_REAL const*)&((char const*)(u))[cdi*(0)+cdj*(0)+cdk*(0)]))))) +#else +# define PDonesided3(u) (PDonesided3_impl(u,p1odz,cdj,cdk)) +static CCTK_REAL_VEC PDonesided3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDonesided3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + diff --git a/ML_BSSN/src/ML_BSSN_Advect.cc b/ML_BSSN/src/ML_BSSN_Advect.cc index 3b09d04..1ef1e4c 100644 --- a/ML_BSSN/src/ML_BSSN_Advect.cc +++ b/ML_BSSN/src/ML_BSSN_Advect.cc @@ -79,7 +79,24 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir const char *groups[] = {"ML_BSSN::ML_curv","ML_BSSN::ML_curvrhs","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtlapserhs","ML_BSSN::ML_dtshift","ML_BSSN::ML_dtshiftrhs","ML_BSSN::ML_Gamma","ML_BSSN::ML_Gammarhs","ML_BSSN::ML_lapse","ML_BSSN::ML_lapserhs","ML_BSSN::ML_log_confac","ML_BSSN::ML_log_confacrhs","ML_BSSN::ML_metric","ML_BSSN::ML_metricrhs","ML_BSSN::ML_shift","ML_BSSN::ML_shiftrhs","ML_BSSN::ML_trace_curv","ML_BSSN::ML_trace_curvrhs"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Advect", 18, groups); - GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Advect", 3, 3, 3); + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Advect", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Advect", 3, 3, 3); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Advect", 4, 4, 4); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Advect", 5, 5, 5); + break; + } /* Include user-supplied include files */ @@ -107,24 +124,129 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -189,161 +311,1697 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir CCTK_REAL_VEC Xt3rhsL = vec_load(Xt3rhs[index]); + CCTK_REAL_VEC J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + /* Include user supplied include files */ /* Precompute derivatives */ - CCTK_REAL_VEC const PDupwindNthAnti1A = PDupwindNthAnti1(&A[index]); - CCTK_REAL_VEC const PDupwindNthSymm1A = PDupwindNthSymm1(&A[index]); - CCTK_REAL_VEC const PDupwindNthAnti2A = PDupwindNthAnti2(&A[index]); - CCTK_REAL_VEC const PDupwindNthSymm2A = PDupwindNthSymm2(&A[index]); - CCTK_REAL_VEC const PDupwindNthAnti3A = PDupwindNthAnti3(&A[index]); - CCTK_REAL_VEC const PDupwindNthSymm3A = PDupwindNthSymm3(&A[index]); - CCTK_REAL_VEC const PDupwindNthAnti1alpha = PDupwindNthAnti1(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm1alpha = PDupwindNthSymm1(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti2alpha = PDupwindNthAnti2(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm2alpha = PDupwindNthSymm2(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti3alpha = PDupwindNthAnti3(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm3alpha = PDupwindNthSymm3(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti1At11 = PDupwindNthAnti1(&At11[index]); - CCTK_REAL_VEC const PDupwindNthSymm1At11 = PDupwindNthSymm1(&At11[index]); - CCTK_REAL_VEC const PDupwindNthAnti2At11 = PDupwindNthAnti2(&At11[index]); - CCTK_REAL_VEC const PDupwindNthSymm2At11 = PDupwindNthSymm2(&At11[index]); - CCTK_REAL_VEC const PDupwindNthAnti3At11 = PDupwindNthAnti3(&At11[index]); - CCTK_REAL_VEC const PDupwindNthSymm3At11 = PDupwindNthSymm3(&At11[index]); - CCTK_REAL_VEC const PDupwindNthAnti1At12 = PDupwindNthAnti1(&At12[index]); - CCTK_REAL_VEC const PDupwindNthSymm1At12 = PDupwindNthSymm1(&At12[index]); - CCTK_REAL_VEC const PDupwindNthAnti2At12 = PDupwindNthAnti2(&At12[index]); - CCTK_REAL_VEC const PDupwindNthSymm2At12 = PDupwindNthSymm2(&At12[index]); - CCTK_REAL_VEC const PDupwindNthAnti3At12 = PDupwindNthAnti3(&At12[index]); - CCTK_REAL_VEC const PDupwindNthSymm3At12 = PDupwindNthSymm3(&At12[index]); - CCTK_REAL_VEC const PDupwindNthAnti1At13 = PDupwindNthAnti1(&At13[index]); - CCTK_REAL_VEC const PDupwindNthSymm1At13 = PDupwindNthSymm1(&At13[index]); - CCTK_REAL_VEC const PDupwindNthAnti2At13 = PDupwindNthAnti2(&At13[index]); - CCTK_REAL_VEC const PDupwindNthSymm2At13 = PDupwindNthSymm2(&At13[index]); - CCTK_REAL_VEC const PDupwindNthAnti3At13 = PDupwindNthAnti3(&At13[index]); - CCTK_REAL_VEC const PDupwindNthSymm3At13 = PDupwindNthSymm3(&At13[index]); - CCTK_REAL_VEC const PDupwindNthAnti1At22 = PDupwindNthAnti1(&At22[index]); - CCTK_REAL_VEC const PDupwindNthSymm1At22 = PDupwindNthSymm1(&At22[index]); - CCTK_REAL_VEC const PDupwindNthAnti2At22 = PDupwindNthAnti2(&At22[index]); - CCTK_REAL_VEC const PDupwindNthSymm2At22 = PDupwindNthSymm2(&At22[index]); - CCTK_REAL_VEC const PDupwindNthAnti3At22 = PDupwindNthAnti3(&At22[index]); - CCTK_REAL_VEC const PDupwindNthSymm3At22 = PDupwindNthSymm3(&At22[index]); - CCTK_REAL_VEC const PDupwindNthAnti1At23 = PDupwindNthAnti1(&At23[index]); - CCTK_REAL_VEC const PDupwindNthSymm1At23 = PDupwindNthSymm1(&At23[index]); - CCTK_REAL_VEC const PDupwindNthAnti2At23 = PDupwindNthAnti2(&At23[index]); - CCTK_REAL_VEC const PDupwindNthSymm2At23 = PDupwindNthSymm2(&At23[index]); - CCTK_REAL_VEC const PDupwindNthAnti3At23 = PDupwindNthAnti3(&At23[index]); - CCTK_REAL_VEC const PDupwindNthSymm3At23 = PDupwindNthSymm3(&At23[index]); - CCTK_REAL_VEC const PDupwindNthAnti1At33 = PDupwindNthAnti1(&At33[index]); - CCTK_REAL_VEC const PDupwindNthSymm1At33 = PDupwindNthSymm1(&At33[index]); - CCTK_REAL_VEC const PDupwindNthAnti2At33 = PDupwindNthAnti2(&At33[index]); - CCTK_REAL_VEC const PDupwindNthSymm2At33 = PDupwindNthSymm2(&At33[index]); - CCTK_REAL_VEC const PDupwindNthAnti3At33 = PDupwindNthAnti3(&At33[index]); - CCTK_REAL_VEC const PDupwindNthSymm3At33 = PDupwindNthSymm3(&At33[index]); - CCTK_REAL_VEC const PDupwindNthAnti1B1 = PDupwindNthAnti1(&B1[index]); - CCTK_REAL_VEC const PDupwindNthSymm1B1 = PDupwindNthSymm1(&B1[index]); - CCTK_REAL_VEC const PDupwindNthAnti2B1 = PDupwindNthAnti2(&B1[index]); - CCTK_REAL_VEC const PDupwindNthSymm2B1 = PDupwindNthSymm2(&B1[index]); - CCTK_REAL_VEC const PDupwindNthAnti3B1 = PDupwindNthAnti3(&B1[index]); - CCTK_REAL_VEC const PDupwindNthSymm3B1 = PDupwindNthSymm3(&B1[index]); - CCTK_REAL_VEC const PDupwindNthAnti1B2 = PDupwindNthAnti1(&B2[index]); - CCTK_REAL_VEC const PDupwindNthSymm1B2 = PDupwindNthSymm1(&B2[index]); - CCTK_REAL_VEC const PDupwindNthAnti2B2 = PDupwindNthAnti2(&B2[index]); - CCTK_REAL_VEC const PDupwindNthSymm2B2 = PDupwindNthSymm2(&B2[index]); - CCTK_REAL_VEC const PDupwindNthAnti3B2 = PDupwindNthAnti3(&B2[index]); - CCTK_REAL_VEC const PDupwindNthSymm3B2 = PDupwindNthSymm3(&B2[index]); - CCTK_REAL_VEC const PDupwindNthAnti1B3 = PDupwindNthAnti1(&B3[index]); - CCTK_REAL_VEC const PDupwindNthSymm1B3 = PDupwindNthSymm1(&B3[index]); - CCTK_REAL_VEC const PDupwindNthAnti2B3 = PDupwindNthAnti2(&B3[index]); - CCTK_REAL_VEC const PDupwindNthSymm2B3 = PDupwindNthSymm2(&B3[index]); - CCTK_REAL_VEC const PDupwindNthAnti3B3 = PDupwindNthAnti3(&B3[index]); - CCTK_REAL_VEC const PDupwindNthSymm3B3 = PDupwindNthSymm3(&B3[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta1 = PDupwindNthAnti1(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta1 = PDupwindNthSymm1(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta1 = PDupwindNthAnti2(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta1 = PDupwindNthSymm2(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta1 = PDupwindNthAnti3(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta1 = PDupwindNthSymm3(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta2 = PDupwindNthAnti1(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta2 = PDupwindNthSymm1(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta2 = PDupwindNthAnti2(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta2 = PDupwindNthSymm2(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta2 = PDupwindNthAnti3(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta2 = PDupwindNthSymm3(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta3 = PDupwindNthAnti1(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta3 = PDupwindNthSymm1(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta3 = PDupwindNthAnti2(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta3 = PDupwindNthSymm2(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta3 = PDupwindNthAnti3(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta3 = PDupwindNthSymm3(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthAnti1gt11 = PDupwindNthAnti1(>11[index]); - CCTK_REAL_VEC const PDupwindNthSymm1gt11 = PDupwindNthSymm1(>11[index]); - CCTK_REAL_VEC const PDupwindNthAnti2gt11 = PDupwindNthAnti2(>11[index]); - CCTK_REAL_VEC const PDupwindNthSymm2gt11 = PDupwindNthSymm2(>11[index]); - CCTK_REAL_VEC const PDupwindNthAnti3gt11 = PDupwindNthAnti3(>11[index]); - CCTK_REAL_VEC const PDupwindNthSymm3gt11 = PDupwindNthSymm3(>11[index]); - CCTK_REAL_VEC const PDupwindNthAnti1gt12 = PDupwindNthAnti1(>12[index]); - CCTK_REAL_VEC const PDupwindNthSymm1gt12 = PDupwindNthSymm1(>12[index]); - CCTK_REAL_VEC const PDupwindNthAnti2gt12 = PDupwindNthAnti2(>12[index]); - CCTK_REAL_VEC const PDupwindNthSymm2gt12 = PDupwindNthSymm2(>12[index]); - CCTK_REAL_VEC const PDupwindNthAnti3gt12 = PDupwindNthAnti3(>12[index]); - CCTK_REAL_VEC const PDupwindNthSymm3gt12 = PDupwindNthSymm3(>12[index]); - CCTK_REAL_VEC const PDupwindNthAnti1gt13 = PDupwindNthAnti1(>13[index]); - CCTK_REAL_VEC const PDupwindNthSymm1gt13 = PDupwindNthSymm1(>13[index]); - CCTK_REAL_VEC const PDupwindNthAnti2gt13 = PDupwindNthAnti2(>13[index]); - CCTK_REAL_VEC const PDupwindNthSymm2gt13 = PDupwindNthSymm2(>13[index]); - CCTK_REAL_VEC const PDupwindNthAnti3gt13 = PDupwindNthAnti3(>13[index]); - CCTK_REAL_VEC const PDupwindNthSymm3gt13 = PDupwindNthSymm3(>13[index]); - CCTK_REAL_VEC const PDupwindNthAnti1gt22 = PDupwindNthAnti1(>22[index]); - CCTK_REAL_VEC const PDupwindNthSymm1gt22 = PDupwindNthSymm1(>22[index]); - CCTK_REAL_VEC const PDupwindNthAnti2gt22 = PDupwindNthAnti2(>22[index]); - CCTK_REAL_VEC const PDupwindNthSymm2gt22 = PDupwindNthSymm2(>22[index]); - CCTK_REAL_VEC const PDupwindNthAnti3gt22 = PDupwindNthAnti3(>22[index]); - CCTK_REAL_VEC const PDupwindNthSymm3gt22 = PDupwindNthSymm3(>22[index]); - CCTK_REAL_VEC const PDupwindNthAnti1gt23 = PDupwindNthAnti1(>23[index]); - CCTK_REAL_VEC const PDupwindNthSymm1gt23 = PDupwindNthSymm1(>23[index]); - CCTK_REAL_VEC const PDupwindNthAnti2gt23 = PDupwindNthAnti2(>23[index]); - CCTK_REAL_VEC const PDupwindNthSymm2gt23 = PDupwindNthSymm2(>23[index]); - CCTK_REAL_VEC const PDupwindNthAnti3gt23 = PDupwindNthAnti3(>23[index]); - CCTK_REAL_VEC const PDupwindNthSymm3gt23 = PDupwindNthSymm3(>23[index]); - CCTK_REAL_VEC const PDupwindNthAnti1gt33 = PDupwindNthAnti1(>33[index]); - CCTK_REAL_VEC const PDupwindNthSymm1gt33 = PDupwindNthSymm1(>33[index]); - CCTK_REAL_VEC const PDupwindNthAnti2gt33 = PDupwindNthAnti2(>33[index]); - CCTK_REAL_VEC const PDupwindNthSymm2gt33 = PDupwindNthSymm2(>33[index]); - CCTK_REAL_VEC const PDupwindNthAnti3gt33 = PDupwindNthAnti3(>33[index]); - CCTK_REAL_VEC const PDupwindNthSymm3gt33 = PDupwindNthSymm3(>33[index]); - CCTK_REAL_VEC const PDupwindNthAnti1phi = PDupwindNthAnti1(&phi[index]); - CCTK_REAL_VEC const PDupwindNthSymm1phi = PDupwindNthSymm1(&phi[index]); - CCTK_REAL_VEC const PDupwindNthAnti2phi = PDupwindNthAnti2(&phi[index]); - CCTK_REAL_VEC const PDupwindNthSymm2phi = PDupwindNthSymm2(&phi[index]); - CCTK_REAL_VEC const PDupwindNthAnti3phi = PDupwindNthAnti3(&phi[index]); - CCTK_REAL_VEC const PDupwindNthSymm3phi = PDupwindNthSymm3(&phi[index]); - CCTK_REAL_VEC const PDupwindNthAnti1trK = PDupwindNthAnti1(&trK[index]); - CCTK_REAL_VEC const PDupwindNthSymm1trK = PDupwindNthSymm1(&trK[index]); - CCTK_REAL_VEC const PDupwindNthAnti2trK = PDupwindNthAnti2(&trK[index]); - CCTK_REAL_VEC const PDupwindNthSymm2trK = PDupwindNthSymm2(&trK[index]); - CCTK_REAL_VEC const PDupwindNthAnti3trK = PDupwindNthAnti3(&trK[index]); - CCTK_REAL_VEC const PDupwindNthSymm3trK = PDupwindNthSymm3(&trK[index]); - CCTK_REAL_VEC const PDupwindNthAnti1Xt1 = PDupwindNthAnti1(&Xt1[index]); - CCTK_REAL_VEC const PDupwindNthSymm1Xt1 = PDupwindNthSymm1(&Xt1[index]); - CCTK_REAL_VEC const PDupwindNthAnti2Xt1 = PDupwindNthAnti2(&Xt1[index]); - CCTK_REAL_VEC const PDupwindNthSymm2Xt1 = PDupwindNthSymm2(&Xt1[index]); - CCTK_REAL_VEC const PDupwindNthAnti3Xt1 = PDupwindNthAnti3(&Xt1[index]); - CCTK_REAL_VEC const PDupwindNthSymm3Xt1 = PDupwindNthSymm3(&Xt1[index]); - CCTK_REAL_VEC const PDupwindNthAnti1Xt2 = PDupwindNthAnti1(&Xt2[index]); - CCTK_REAL_VEC const PDupwindNthSymm1Xt2 = PDupwindNthSymm1(&Xt2[index]); - CCTK_REAL_VEC const PDupwindNthAnti2Xt2 = PDupwindNthAnti2(&Xt2[index]); - CCTK_REAL_VEC const PDupwindNthSymm2Xt2 = PDupwindNthSymm2(&Xt2[index]); - CCTK_REAL_VEC const PDupwindNthAnti3Xt2 = PDupwindNthAnti3(&Xt2[index]); - CCTK_REAL_VEC const PDupwindNthSymm3Xt2 = PDupwindNthSymm3(&Xt2[index]); - CCTK_REAL_VEC const PDupwindNthAnti1Xt3 = PDupwindNthAnti1(&Xt3[index]); - CCTK_REAL_VEC const PDupwindNthSymm1Xt3 = PDupwindNthSymm1(&Xt3[index]); - CCTK_REAL_VEC const PDupwindNthAnti2Xt3 = PDupwindNthAnti2(&Xt3[index]); - CCTK_REAL_VEC const PDupwindNthSymm2Xt3 = PDupwindNthSymm2(&Xt3[index]); - CCTK_REAL_VEC const PDupwindNthAnti3Xt3 = PDupwindNthAnti3(&Xt3[index]); - CCTK_REAL_VEC const PDupwindNthSymm3Xt3 = PDupwindNthSymm3(&Xt3[index]); + CCTK_REAL_VEC PDupwindNthAnti1A; + CCTK_REAL_VEC PDupwindNthSymm1A; + CCTK_REAL_VEC PDupwindNthAnti2A; + CCTK_REAL_VEC PDupwindNthSymm2A; + CCTK_REAL_VEC PDupwindNthAnti3A; + CCTK_REAL_VEC PDupwindNthSymm3A; + CCTK_REAL_VEC PDupwindNthAnti1alpha; + CCTK_REAL_VEC PDupwindNthSymm1alpha; + CCTK_REAL_VEC PDupwindNthAnti2alpha; + CCTK_REAL_VEC PDupwindNthSymm2alpha; + CCTK_REAL_VEC PDupwindNthAnti3alpha; + CCTK_REAL_VEC PDupwindNthSymm3alpha; + CCTK_REAL_VEC PDupwindNthAnti1At11; + CCTK_REAL_VEC PDupwindNthSymm1At11; + CCTK_REAL_VEC PDupwindNthAnti2At11; + CCTK_REAL_VEC PDupwindNthSymm2At11; + CCTK_REAL_VEC PDupwindNthAnti3At11; + CCTK_REAL_VEC PDupwindNthSymm3At11; + CCTK_REAL_VEC PDupwindNthAnti1At12; + CCTK_REAL_VEC PDupwindNthSymm1At12; + CCTK_REAL_VEC PDupwindNthAnti2At12; + CCTK_REAL_VEC PDupwindNthSymm2At12; + CCTK_REAL_VEC PDupwindNthAnti3At12; + CCTK_REAL_VEC PDupwindNthSymm3At12; + CCTK_REAL_VEC PDupwindNthAnti1At13; + CCTK_REAL_VEC PDupwindNthSymm1At13; + CCTK_REAL_VEC PDupwindNthAnti2At13; + CCTK_REAL_VEC PDupwindNthSymm2At13; + CCTK_REAL_VEC PDupwindNthAnti3At13; + CCTK_REAL_VEC PDupwindNthSymm3At13; + CCTK_REAL_VEC PDupwindNthAnti1At22; + CCTK_REAL_VEC PDupwindNthSymm1At22; + CCTK_REAL_VEC PDupwindNthAnti2At22; + CCTK_REAL_VEC PDupwindNthSymm2At22; + CCTK_REAL_VEC PDupwindNthAnti3At22; + CCTK_REAL_VEC PDupwindNthSymm3At22; + CCTK_REAL_VEC PDupwindNthAnti1At23; + CCTK_REAL_VEC PDupwindNthSymm1At23; + CCTK_REAL_VEC PDupwindNthAnti2At23; + CCTK_REAL_VEC PDupwindNthSymm2At23; + CCTK_REAL_VEC PDupwindNthAnti3At23; + CCTK_REAL_VEC PDupwindNthSymm3At23; + CCTK_REAL_VEC PDupwindNthAnti1At33; + CCTK_REAL_VEC PDupwindNthSymm1At33; + CCTK_REAL_VEC PDupwindNthAnti2At33; + CCTK_REAL_VEC PDupwindNthSymm2At33; + CCTK_REAL_VEC PDupwindNthAnti3At33; + CCTK_REAL_VEC PDupwindNthSymm3At33; + CCTK_REAL_VEC PDupwindNthAnti1B1; + CCTK_REAL_VEC PDupwindNthSymm1B1; + CCTK_REAL_VEC PDupwindNthAnti2B1; + CCTK_REAL_VEC PDupwindNthSymm2B1; + CCTK_REAL_VEC PDupwindNthAnti3B1; + CCTK_REAL_VEC PDupwindNthSymm3B1; + CCTK_REAL_VEC PDupwindNthAnti1B2; + CCTK_REAL_VEC PDupwindNthSymm1B2; + CCTK_REAL_VEC PDupwindNthAnti2B2; + CCTK_REAL_VEC PDupwindNthSymm2B2; + CCTK_REAL_VEC PDupwindNthAnti3B2; + CCTK_REAL_VEC PDupwindNthSymm3B2; + CCTK_REAL_VEC PDupwindNthAnti1B3; + CCTK_REAL_VEC PDupwindNthSymm1B3; + CCTK_REAL_VEC PDupwindNthAnti2B3; + CCTK_REAL_VEC PDupwindNthSymm2B3; + CCTK_REAL_VEC PDupwindNthAnti3B3; + CCTK_REAL_VEC PDupwindNthSymm3B3; + CCTK_REAL_VEC PDupwindNthAnti1beta1; + CCTK_REAL_VEC PDupwindNthSymm1beta1; + CCTK_REAL_VEC PDupwindNthAnti2beta1; + CCTK_REAL_VEC PDupwindNthSymm2beta1; + CCTK_REAL_VEC PDupwindNthAnti3beta1; + CCTK_REAL_VEC PDupwindNthSymm3beta1; + CCTK_REAL_VEC PDupwindNthAnti1beta2; + CCTK_REAL_VEC PDupwindNthSymm1beta2; + CCTK_REAL_VEC PDupwindNthAnti2beta2; + CCTK_REAL_VEC PDupwindNthSymm2beta2; + CCTK_REAL_VEC PDupwindNthAnti3beta2; + CCTK_REAL_VEC PDupwindNthSymm3beta2; + CCTK_REAL_VEC PDupwindNthAnti1beta3; + CCTK_REAL_VEC PDupwindNthSymm1beta3; + CCTK_REAL_VEC PDupwindNthAnti2beta3; + CCTK_REAL_VEC PDupwindNthSymm2beta3; + CCTK_REAL_VEC PDupwindNthAnti3beta3; + CCTK_REAL_VEC PDupwindNthSymm3beta3; + CCTK_REAL_VEC PDupwindNthAnti1gt11; + CCTK_REAL_VEC PDupwindNthSymm1gt11; + CCTK_REAL_VEC PDupwindNthAnti2gt11; + CCTK_REAL_VEC PDupwindNthSymm2gt11; + CCTK_REAL_VEC PDupwindNthAnti3gt11; + CCTK_REAL_VEC PDupwindNthSymm3gt11; + CCTK_REAL_VEC PDupwindNthAnti1gt12; + CCTK_REAL_VEC PDupwindNthSymm1gt12; + CCTK_REAL_VEC PDupwindNthAnti2gt12; + CCTK_REAL_VEC PDupwindNthSymm2gt12; + CCTK_REAL_VEC PDupwindNthAnti3gt12; + CCTK_REAL_VEC PDupwindNthSymm3gt12; + CCTK_REAL_VEC PDupwindNthAnti1gt13; + CCTK_REAL_VEC PDupwindNthSymm1gt13; + CCTK_REAL_VEC PDupwindNthAnti2gt13; + CCTK_REAL_VEC PDupwindNthSymm2gt13; + CCTK_REAL_VEC PDupwindNthAnti3gt13; + CCTK_REAL_VEC PDupwindNthSymm3gt13; + CCTK_REAL_VEC PDupwindNthAnti1gt22; + CCTK_REAL_VEC PDupwindNthSymm1gt22; + CCTK_REAL_VEC PDupwindNthAnti2gt22; + CCTK_REAL_VEC PDupwindNthSymm2gt22; + CCTK_REAL_VEC PDupwindNthAnti3gt22; + CCTK_REAL_VEC PDupwindNthSymm3gt22; + CCTK_REAL_VEC PDupwindNthAnti1gt23; + CCTK_REAL_VEC PDupwindNthSymm1gt23; + CCTK_REAL_VEC PDupwindNthAnti2gt23; + CCTK_REAL_VEC PDupwindNthSymm2gt23; + CCTK_REAL_VEC PDupwindNthAnti3gt23; + CCTK_REAL_VEC PDupwindNthSymm3gt23; + CCTK_REAL_VEC PDupwindNthAnti1gt33; + CCTK_REAL_VEC PDupwindNthSymm1gt33; + CCTK_REAL_VEC PDupwindNthAnti2gt33; + CCTK_REAL_VEC PDupwindNthSymm2gt33; + CCTK_REAL_VEC PDupwindNthAnti3gt33; + CCTK_REAL_VEC PDupwindNthSymm3gt33; + CCTK_REAL_VEC PDupwindNthAnti1phi; + CCTK_REAL_VEC PDupwindNthSymm1phi; + CCTK_REAL_VEC PDupwindNthAnti2phi; + CCTK_REAL_VEC PDupwindNthSymm2phi; + CCTK_REAL_VEC PDupwindNthAnti3phi; + CCTK_REAL_VEC PDupwindNthSymm3phi; + CCTK_REAL_VEC PDupwindNthAnti1trK; + CCTK_REAL_VEC PDupwindNthSymm1trK; + CCTK_REAL_VEC PDupwindNthAnti2trK; + CCTK_REAL_VEC PDupwindNthSymm2trK; + CCTK_REAL_VEC PDupwindNthAnti3trK; + CCTK_REAL_VEC PDupwindNthSymm3trK; + CCTK_REAL_VEC PDupwindNthAnti1Xt1; + CCTK_REAL_VEC PDupwindNthSymm1Xt1; + CCTK_REAL_VEC PDupwindNthAnti2Xt1; + CCTK_REAL_VEC PDupwindNthSymm2Xt1; + CCTK_REAL_VEC PDupwindNthAnti3Xt1; + CCTK_REAL_VEC PDupwindNthSymm3Xt1; + CCTK_REAL_VEC PDupwindNthAnti1Xt2; + CCTK_REAL_VEC PDupwindNthSymm1Xt2; + CCTK_REAL_VEC PDupwindNthAnti2Xt2; + CCTK_REAL_VEC PDupwindNthSymm2Xt2; + CCTK_REAL_VEC PDupwindNthAnti3Xt2; + CCTK_REAL_VEC PDupwindNthSymm3Xt2; + CCTK_REAL_VEC PDupwindNthAnti1Xt3; + CCTK_REAL_VEC PDupwindNthSymm1Xt3; + CCTK_REAL_VEC PDupwindNthAnti2Xt3; + CCTK_REAL_VEC PDupwindNthSymm2Xt3; + CCTK_REAL_VEC PDupwindNthAnti3Xt3; + CCTK_REAL_VEC PDupwindNthSymm3Xt3; + + switch(fdOrder) + { + case 2: + PDupwindNthAnti1A = PDupwindNthAntifdOrder21(&A[index]); + PDupwindNthSymm1A = PDupwindNthSymmfdOrder21(&A[index]); + PDupwindNthAnti2A = PDupwindNthAntifdOrder22(&A[index]); + PDupwindNthSymm2A = PDupwindNthSymmfdOrder22(&A[index]); + PDupwindNthAnti3A = PDupwindNthAntifdOrder23(&A[index]); + PDupwindNthSymm3A = PDupwindNthSymmfdOrder23(&A[index]); + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder21(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder21(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder22(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder22(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder23(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder23(&alpha[index]); + PDupwindNthAnti1At11 = PDupwindNthAntifdOrder21(&At11[index]); + PDupwindNthSymm1At11 = PDupwindNthSymmfdOrder21(&At11[index]); + PDupwindNthAnti2At11 = PDupwindNthAntifdOrder22(&At11[index]); + PDupwindNthSymm2At11 = PDupwindNthSymmfdOrder22(&At11[index]); + PDupwindNthAnti3At11 = PDupwindNthAntifdOrder23(&At11[index]); + PDupwindNthSymm3At11 = PDupwindNthSymmfdOrder23(&At11[index]); + PDupwindNthAnti1At12 = PDupwindNthAntifdOrder21(&At12[index]); + PDupwindNthSymm1At12 = PDupwindNthSymmfdOrder21(&At12[index]); + PDupwindNthAnti2At12 = PDupwindNthAntifdOrder22(&At12[index]); + PDupwindNthSymm2At12 = PDupwindNthSymmfdOrder22(&At12[index]); + PDupwindNthAnti3At12 = PDupwindNthAntifdOrder23(&At12[index]); + PDupwindNthSymm3At12 = PDupwindNthSymmfdOrder23(&At12[index]); + PDupwindNthAnti1At13 = PDupwindNthAntifdOrder21(&At13[index]); + PDupwindNthSymm1At13 = PDupwindNthSymmfdOrder21(&At13[index]); + PDupwindNthAnti2At13 = PDupwindNthAntifdOrder22(&At13[index]); + PDupwindNthSymm2At13 = PDupwindNthSymmfdOrder22(&At13[index]); + PDupwindNthAnti3At13 = PDupwindNthAntifdOrder23(&At13[index]); + PDupwindNthSymm3At13 = PDupwindNthSymmfdOrder23(&At13[index]); + PDupwindNthAnti1At22 = PDupwindNthAntifdOrder21(&At22[index]); + PDupwindNthSymm1At22 = PDupwindNthSymmfdOrder21(&At22[index]); + PDupwindNthAnti2At22 = PDupwindNthAntifdOrder22(&At22[index]); + PDupwindNthSymm2At22 = PDupwindNthSymmfdOrder22(&At22[index]); + PDupwindNthAnti3At22 = PDupwindNthAntifdOrder23(&At22[index]); + PDupwindNthSymm3At22 = PDupwindNthSymmfdOrder23(&At22[index]); + PDupwindNthAnti1At23 = PDupwindNthAntifdOrder21(&At23[index]); + PDupwindNthSymm1At23 = PDupwindNthSymmfdOrder21(&At23[index]); + PDupwindNthAnti2At23 = PDupwindNthAntifdOrder22(&At23[index]); + PDupwindNthSymm2At23 = PDupwindNthSymmfdOrder22(&At23[index]); + PDupwindNthAnti3At23 = PDupwindNthAntifdOrder23(&At23[index]); + PDupwindNthSymm3At23 = PDupwindNthSymmfdOrder23(&At23[index]); + PDupwindNthAnti1At33 = PDupwindNthAntifdOrder21(&At33[index]); + PDupwindNthSymm1At33 = PDupwindNthSymmfdOrder21(&At33[index]); + PDupwindNthAnti2At33 = PDupwindNthAntifdOrder22(&At33[index]); + PDupwindNthSymm2At33 = PDupwindNthSymmfdOrder22(&At33[index]); + PDupwindNthAnti3At33 = PDupwindNthAntifdOrder23(&At33[index]); + PDupwindNthSymm3At33 = PDupwindNthSymmfdOrder23(&At33[index]); + PDupwindNthAnti1B1 = PDupwindNthAntifdOrder21(&B1[index]); + PDupwindNthSymm1B1 = PDupwindNthSymmfdOrder21(&B1[index]); + PDupwindNthAnti2B1 = PDupwindNthAntifdOrder22(&B1[index]); + PDupwindNthSymm2B1 = PDupwindNthSymmfdOrder22(&B1[index]); + PDupwindNthAnti3B1 = PDupwindNthAntifdOrder23(&B1[index]); + PDupwindNthSymm3B1 = PDupwindNthSymmfdOrder23(&B1[index]); + PDupwindNthAnti1B2 = PDupwindNthAntifdOrder21(&B2[index]); + PDupwindNthSymm1B2 = PDupwindNthSymmfdOrder21(&B2[index]); + PDupwindNthAnti2B2 = PDupwindNthAntifdOrder22(&B2[index]); + PDupwindNthSymm2B2 = PDupwindNthSymmfdOrder22(&B2[index]); + PDupwindNthAnti3B2 = PDupwindNthAntifdOrder23(&B2[index]); + PDupwindNthSymm3B2 = PDupwindNthSymmfdOrder23(&B2[index]); + PDupwindNthAnti1B3 = PDupwindNthAntifdOrder21(&B3[index]); + PDupwindNthSymm1B3 = PDupwindNthSymmfdOrder21(&B3[index]); + PDupwindNthAnti2B3 = PDupwindNthAntifdOrder22(&B3[index]); + PDupwindNthSymm2B3 = PDupwindNthSymmfdOrder22(&B3[index]); + PDupwindNthAnti3B3 = PDupwindNthAntifdOrder23(&B3[index]); + PDupwindNthSymm3B3 = PDupwindNthSymmfdOrder23(&B3[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder21(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder21(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder22(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder22(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder23(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder23(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder21(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder21(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder22(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder22(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder23(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder23(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder21(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder21(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder22(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder22(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder23(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder23(&beta3[index]); + PDupwindNthAnti1gt11 = PDupwindNthAntifdOrder21(>11[index]); + PDupwindNthSymm1gt11 = PDupwindNthSymmfdOrder21(>11[index]); + PDupwindNthAnti2gt11 = PDupwindNthAntifdOrder22(>11[index]); + PDupwindNthSymm2gt11 = PDupwindNthSymmfdOrder22(>11[index]); + PDupwindNthAnti3gt11 = PDupwindNthAntifdOrder23(>11[index]); + PDupwindNthSymm3gt11 = PDupwindNthSymmfdOrder23(>11[index]); + PDupwindNthAnti1gt12 = PDupwindNthAntifdOrder21(>12[index]); + PDupwindNthSymm1gt12 = PDupwindNthSymmfdOrder21(>12[index]); + PDupwindNthAnti2gt12 = PDupwindNthAntifdOrder22(>12[index]); + PDupwindNthSymm2gt12 = PDupwindNthSymmfdOrder22(>12[index]); + PDupwindNthAnti3gt12 = PDupwindNthAntifdOrder23(>12[index]); + PDupwindNthSymm3gt12 = PDupwindNthSymmfdOrder23(>12[index]); + PDupwindNthAnti1gt13 = PDupwindNthAntifdOrder21(>13[index]); + PDupwindNthSymm1gt13 = PDupwindNthSymmfdOrder21(>13[index]); + PDupwindNthAnti2gt13 = PDupwindNthAntifdOrder22(>13[index]); + PDupwindNthSymm2gt13 = PDupwindNthSymmfdOrder22(>13[index]); + PDupwindNthAnti3gt13 = PDupwindNthAntifdOrder23(>13[index]); + PDupwindNthSymm3gt13 = PDupwindNthSymmfdOrder23(>13[index]); + PDupwindNthAnti1gt22 = PDupwindNthAntifdOrder21(>22[index]); + PDupwindNthSymm1gt22 = PDupwindNthSymmfdOrder21(>22[index]); + PDupwindNthAnti2gt22 = PDupwindNthAntifdOrder22(>22[index]); + PDupwindNthSymm2gt22 = PDupwindNthSymmfdOrder22(>22[index]); + PDupwindNthAnti3gt22 = PDupwindNthAntifdOrder23(>22[index]); + PDupwindNthSymm3gt22 = PDupwindNthSymmfdOrder23(>22[index]); + PDupwindNthAnti1gt23 = PDupwindNthAntifdOrder21(>23[index]); + PDupwindNthSymm1gt23 = PDupwindNthSymmfdOrder21(>23[index]); + PDupwindNthAnti2gt23 = PDupwindNthAntifdOrder22(>23[index]); + PDupwindNthSymm2gt23 = PDupwindNthSymmfdOrder22(>23[index]); + PDupwindNthAnti3gt23 = PDupwindNthAntifdOrder23(>23[index]); + PDupwindNthSymm3gt23 = PDupwindNthSymmfdOrder23(>23[index]); + PDupwindNthAnti1gt33 = PDupwindNthAntifdOrder21(>33[index]); + PDupwindNthSymm1gt33 = PDupwindNthSymmfdOrder21(>33[index]); + PDupwindNthAnti2gt33 = PDupwindNthAntifdOrder22(>33[index]); + PDupwindNthSymm2gt33 = PDupwindNthSymmfdOrder22(>33[index]); + PDupwindNthAnti3gt33 = PDupwindNthAntifdOrder23(>33[index]); + PDupwindNthSymm3gt33 = PDupwindNthSymmfdOrder23(>33[index]); + PDupwindNthAnti1phi = PDupwindNthAntifdOrder21(&phi[index]); + PDupwindNthSymm1phi = PDupwindNthSymmfdOrder21(&phi[index]); + PDupwindNthAnti2phi = PDupwindNthAntifdOrder22(&phi[index]); + PDupwindNthSymm2phi = PDupwindNthSymmfdOrder22(&phi[index]); + PDupwindNthAnti3phi = PDupwindNthAntifdOrder23(&phi[index]); + PDupwindNthSymm3phi = PDupwindNthSymmfdOrder23(&phi[index]); + PDupwindNthAnti1trK = PDupwindNthAntifdOrder21(&trK[index]); + PDupwindNthSymm1trK = PDupwindNthSymmfdOrder21(&trK[index]); + PDupwindNthAnti2trK = PDupwindNthAntifdOrder22(&trK[index]); + PDupwindNthSymm2trK = PDupwindNthSymmfdOrder22(&trK[index]); + PDupwindNthAnti3trK = PDupwindNthAntifdOrder23(&trK[index]); + PDupwindNthSymm3trK = PDupwindNthSymmfdOrder23(&trK[index]); + PDupwindNthAnti1Xt1 = PDupwindNthAntifdOrder21(&Xt1[index]); + PDupwindNthSymm1Xt1 = PDupwindNthSymmfdOrder21(&Xt1[index]); + PDupwindNthAnti2Xt1 = PDupwindNthAntifdOrder22(&Xt1[index]); + PDupwindNthSymm2Xt1 = PDupwindNthSymmfdOrder22(&Xt1[index]); + PDupwindNthAnti3Xt1 = PDupwindNthAntifdOrder23(&Xt1[index]); + PDupwindNthSymm3Xt1 = PDupwindNthSymmfdOrder23(&Xt1[index]); + PDupwindNthAnti1Xt2 = PDupwindNthAntifdOrder21(&Xt2[index]); + PDupwindNthSymm1Xt2 = PDupwindNthSymmfdOrder21(&Xt2[index]); + PDupwindNthAnti2Xt2 = PDupwindNthAntifdOrder22(&Xt2[index]); + PDupwindNthSymm2Xt2 = PDupwindNthSymmfdOrder22(&Xt2[index]); + PDupwindNthAnti3Xt2 = PDupwindNthAntifdOrder23(&Xt2[index]); + PDupwindNthSymm3Xt2 = PDupwindNthSymmfdOrder23(&Xt2[index]); + PDupwindNthAnti1Xt3 = PDupwindNthAntifdOrder21(&Xt3[index]); + PDupwindNthSymm1Xt3 = PDupwindNthSymmfdOrder21(&Xt3[index]); + PDupwindNthAnti2Xt3 = PDupwindNthAntifdOrder22(&Xt3[index]); + PDupwindNthSymm2Xt3 = PDupwindNthSymmfdOrder22(&Xt3[index]); + PDupwindNthAnti3Xt3 = PDupwindNthAntifdOrder23(&Xt3[index]); + PDupwindNthSymm3Xt3 = PDupwindNthSymmfdOrder23(&Xt3[index]); + break; + + case 4: + PDupwindNthAnti1A = PDupwindNthAntifdOrder41(&A[index]); + PDupwindNthSymm1A = PDupwindNthSymmfdOrder41(&A[index]); + PDupwindNthAnti2A = PDupwindNthAntifdOrder42(&A[index]); + PDupwindNthSymm2A = PDupwindNthSymmfdOrder42(&A[index]); + PDupwindNthAnti3A = PDupwindNthAntifdOrder43(&A[index]); + PDupwindNthSymm3A = PDupwindNthSymmfdOrder43(&A[index]); + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder41(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder41(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder42(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder42(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder43(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder43(&alpha[index]); + PDupwindNthAnti1At11 = PDupwindNthAntifdOrder41(&At11[index]); + PDupwindNthSymm1At11 = PDupwindNthSymmfdOrder41(&At11[index]); + PDupwindNthAnti2At11 = PDupwindNthAntifdOrder42(&At11[index]); + PDupwindNthSymm2At11 = PDupwindNthSymmfdOrder42(&At11[index]); + PDupwindNthAnti3At11 = PDupwindNthAntifdOrder43(&At11[index]); + PDupwindNthSymm3At11 = PDupwindNthSymmfdOrder43(&At11[index]); + PDupwindNthAnti1At12 = PDupwindNthAntifdOrder41(&At12[index]); + PDupwindNthSymm1At12 = PDupwindNthSymmfdOrder41(&At12[index]); + PDupwindNthAnti2At12 = PDupwindNthAntifdOrder42(&At12[index]); + PDupwindNthSymm2At12 = PDupwindNthSymmfdOrder42(&At12[index]); + PDupwindNthAnti3At12 = PDupwindNthAntifdOrder43(&At12[index]); + PDupwindNthSymm3At12 = PDupwindNthSymmfdOrder43(&At12[index]); + PDupwindNthAnti1At13 = PDupwindNthAntifdOrder41(&At13[index]); + PDupwindNthSymm1At13 = PDupwindNthSymmfdOrder41(&At13[index]); + PDupwindNthAnti2At13 = PDupwindNthAntifdOrder42(&At13[index]); + PDupwindNthSymm2At13 = PDupwindNthSymmfdOrder42(&At13[index]); + PDupwindNthAnti3At13 = PDupwindNthAntifdOrder43(&At13[index]); + PDupwindNthSymm3At13 = PDupwindNthSymmfdOrder43(&At13[index]); + PDupwindNthAnti1At22 = PDupwindNthAntifdOrder41(&At22[index]); + PDupwindNthSymm1At22 = PDupwindNthSymmfdOrder41(&At22[index]); + PDupwindNthAnti2At22 = PDupwindNthAntifdOrder42(&At22[index]); + PDupwindNthSymm2At22 = PDupwindNthSymmfdOrder42(&At22[index]); + PDupwindNthAnti3At22 = PDupwindNthAntifdOrder43(&At22[index]); + PDupwindNthSymm3At22 = PDupwindNthSymmfdOrder43(&At22[index]); + PDupwindNthAnti1At23 = PDupwindNthAntifdOrder41(&At23[index]); + PDupwindNthSymm1At23 = PDupwindNthSymmfdOrder41(&At23[index]); + PDupwindNthAnti2At23 = PDupwindNthAntifdOrder42(&At23[index]); + PDupwindNthSymm2At23 = PDupwindNthSymmfdOrder42(&At23[index]); + PDupwindNthAnti3At23 = PDupwindNthAntifdOrder43(&At23[index]); + PDupwindNthSymm3At23 = PDupwindNthSymmfdOrder43(&At23[index]); + PDupwindNthAnti1At33 = PDupwindNthAntifdOrder41(&At33[index]); + PDupwindNthSymm1At33 = PDupwindNthSymmfdOrder41(&At33[index]); + PDupwindNthAnti2At33 = PDupwindNthAntifdOrder42(&At33[index]); + PDupwindNthSymm2At33 = PDupwindNthSymmfdOrder42(&At33[index]); + PDupwindNthAnti3At33 = PDupwindNthAntifdOrder43(&At33[index]); + PDupwindNthSymm3At33 = PDupwindNthSymmfdOrder43(&At33[index]); + PDupwindNthAnti1B1 = PDupwindNthAntifdOrder41(&B1[index]); + PDupwindNthSymm1B1 = PDupwindNthSymmfdOrder41(&B1[index]); + PDupwindNthAnti2B1 = PDupwindNthAntifdOrder42(&B1[index]); + PDupwindNthSymm2B1 = PDupwindNthSymmfdOrder42(&B1[index]); + PDupwindNthAnti3B1 = PDupwindNthAntifdOrder43(&B1[index]); + PDupwindNthSymm3B1 = PDupwindNthSymmfdOrder43(&B1[index]); + PDupwindNthAnti1B2 = PDupwindNthAntifdOrder41(&B2[index]); + PDupwindNthSymm1B2 = PDupwindNthSymmfdOrder41(&B2[index]); + PDupwindNthAnti2B2 = PDupwindNthAntifdOrder42(&B2[index]); + PDupwindNthSymm2B2 = PDupwindNthSymmfdOrder42(&B2[index]); + PDupwindNthAnti3B2 = PDupwindNthAntifdOrder43(&B2[index]); + PDupwindNthSymm3B2 = PDupwindNthSymmfdOrder43(&B2[index]); + PDupwindNthAnti1B3 = PDupwindNthAntifdOrder41(&B3[index]); + PDupwindNthSymm1B3 = PDupwindNthSymmfdOrder41(&B3[index]); + PDupwindNthAnti2B3 = PDupwindNthAntifdOrder42(&B3[index]); + PDupwindNthSymm2B3 = PDupwindNthSymmfdOrder42(&B3[index]); + PDupwindNthAnti3B3 = PDupwindNthAntifdOrder43(&B3[index]); + PDupwindNthSymm3B3 = PDupwindNthSymmfdOrder43(&B3[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder41(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder41(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder42(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder42(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder43(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder43(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder41(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder41(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder42(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder42(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder43(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder43(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder41(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder41(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder42(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder42(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder43(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder43(&beta3[index]); + PDupwindNthAnti1gt11 = PDupwindNthAntifdOrder41(>11[index]); + PDupwindNthSymm1gt11 = PDupwindNthSymmfdOrder41(>11[index]); + PDupwindNthAnti2gt11 = PDupwindNthAntifdOrder42(>11[index]); + PDupwindNthSymm2gt11 = PDupwindNthSymmfdOrder42(>11[index]); + PDupwindNthAnti3gt11 = PDupwindNthAntifdOrder43(>11[index]); + PDupwindNthSymm3gt11 = PDupwindNthSymmfdOrder43(>11[index]); + PDupwindNthAnti1gt12 = PDupwindNthAntifdOrder41(>12[index]); + PDupwindNthSymm1gt12 = PDupwindNthSymmfdOrder41(>12[index]); + PDupwindNthAnti2gt12 = PDupwindNthAntifdOrder42(>12[index]); + PDupwindNthSymm2gt12 = PDupwindNthSymmfdOrder42(>12[index]); + PDupwindNthAnti3gt12 = PDupwindNthAntifdOrder43(>12[index]); + PDupwindNthSymm3gt12 = PDupwindNthSymmfdOrder43(>12[index]); + PDupwindNthAnti1gt13 = PDupwindNthAntifdOrder41(>13[index]); + PDupwindNthSymm1gt13 = PDupwindNthSymmfdOrder41(>13[index]); + PDupwindNthAnti2gt13 = PDupwindNthAntifdOrder42(>13[index]); + PDupwindNthSymm2gt13 = PDupwindNthSymmfdOrder42(>13[index]); + PDupwindNthAnti3gt13 = PDupwindNthAntifdOrder43(>13[index]); + PDupwindNthSymm3gt13 = PDupwindNthSymmfdOrder43(>13[index]); + PDupwindNthAnti1gt22 = PDupwindNthAntifdOrder41(>22[index]); + PDupwindNthSymm1gt22 = PDupwindNthSymmfdOrder41(>22[index]); + PDupwindNthAnti2gt22 = PDupwindNthAntifdOrder42(>22[index]); + PDupwindNthSymm2gt22 = PDupwindNthSymmfdOrder42(>22[index]); + PDupwindNthAnti3gt22 = PDupwindNthAntifdOrder43(>22[index]); + PDupwindNthSymm3gt22 = PDupwindNthSymmfdOrder43(>22[index]); + PDupwindNthAnti1gt23 = PDupwindNthAntifdOrder41(>23[index]); + PDupwindNthSymm1gt23 = PDupwindNthSymmfdOrder41(>23[index]); + PDupwindNthAnti2gt23 = PDupwindNthAntifdOrder42(>23[index]); + PDupwindNthSymm2gt23 = PDupwindNthSymmfdOrder42(>23[index]); + PDupwindNthAnti3gt23 = PDupwindNthAntifdOrder43(>23[index]); + PDupwindNthSymm3gt23 = PDupwindNthSymmfdOrder43(>23[index]); + PDupwindNthAnti1gt33 = PDupwindNthAntifdOrder41(>33[index]); + PDupwindNthSymm1gt33 = PDupwindNthSymmfdOrder41(>33[index]); + PDupwindNthAnti2gt33 = PDupwindNthAntifdOrder42(>33[index]); + PDupwindNthSymm2gt33 = PDupwindNthSymmfdOrder42(>33[index]); + PDupwindNthAnti3gt33 = PDupwindNthAntifdOrder43(>33[index]); + PDupwindNthSymm3gt33 = PDupwindNthSymmfdOrder43(>33[index]); + PDupwindNthAnti1phi = PDupwindNthAntifdOrder41(&phi[index]); + PDupwindNthSymm1phi = PDupwindNthSymmfdOrder41(&phi[index]); + PDupwindNthAnti2phi = PDupwindNthAntifdOrder42(&phi[index]); + PDupwindNthSymm2phi = PDupwindNthSymmfdOrder42(&phi[index]); + PDupwindNthAnti3phi = PDupwindNthAntifdOrder43(&phi[index]); + PDupwindNthSymm3phi = PDupwindNthSymmfdOrder43(&phi[index]); + PDupwindNthAnti1trK = PDupwindNthAntifdOrder41(&trK[index]); + PDupwindNthSymm1trK = PDupwindNthSymmfdOrder41(&trK[index]); + PDupwindNthAnti2trK = PDupwindNthAntifdOrder42(&trK[index]); + PDupwindNthSymm2trK = PDupwindNthSymmfdOrder42(&trK[index]); + PDupwindNthAnti3trK = PDupwindNthAntifdOrder43(&trK[index]); + PDupwindNthSymm3trK = PDupwindNthSymmfdOrder43(&trK[index]); + PDupwindNthAnti1Xt1 = PDupwindNthAntifdOrder41(&Xt1[index]); + PDupwindNthSymm1Xt1 = PDupwindNthSymmfdOrder41(&Xt1[index]); + PDupwindNthAnti2Xt1 = PDupwindNthAntifdOrder42(&Xt1[index]); + PDupwindNthSymm2Xt1 = PDupwindNthSymmfdOrder42(&Xt1[index]); + PDupwindNthAnti3Xt1 = PDupwindNthAntifdOrder43(&Xt1[index]); + PDupwindNthSymm3Xt1 = PDupwindNthSymmfdOrder43(&Xt1[index]); + PDupwindNthAnti1Xt2 = PDupwindNthAntifdOrder41(&Xt2[index]); + PDupwindNthSymm1Xt2 = PDupwindNthSymmfdOrder41(&Xt2[index]); + PDupwindNthAnti2Xt2 = PDupwindNthAntifdOrder42(&Xt2[index]); + PDupwindNthSymm2Xt2 = PDupwindNthSymmfdOrder42(&Xt2[index]); + PDupwindNthAnti3Xt2 = PDupwindNthAntifdOrder43(&Xt2[index]); + PDupwindNthSymm3Xt2 = PDupwindNthSymmfdOrder43(&Xt2[index]); + PDupwindNthAnti1Xt3 = PDupwindNthAntifdOrder41(&Xt3[index]); + PDupwindNthSymm1Xt3 = PDupwindNthSymmfdOrder41(&Xt3[index]); + PDupwindNthAnti2Xt3 = PDupwindNthAntifdOrder42(&Xt3[index]); + PDupwindNthSymm2Xt3 = PDupwindNthSymmfdOrder42(&Xt3[index]); + PDupwindNthAnti3Xt3 = PDupwindNthAntifdOrder43(&Xt3[index]); + PDupwindNthSymm3Xt3 = PDupwindNthSymmfdOrder43(&Xt3[index]); + break; + + case 6: + PDupwindNthAnti1A = PDupwindNthAntifdOrder61(&A[index]); + PDupwindNthSymm1A = PDupwindNthSymmfdOrder61(&A[index]); + PDupwindNthAnti2A = PDupwindNthAntifdOrder62(&A[index]); + PDupwindNthSymm2A = PDupwindNthSymmfdOrder62(&A[index]); + PDupwindNthAnti3A = PDupwindNthAntifdOrder63(&A[index]); + PDupwindNthSymm3A = PDupwindNthSymmfdOrder63(&A[index]); + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder61(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder61(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder62(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder62(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder63(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder63(&alpha[index]); + PDupwindNthAnti1At11 = PDupwindNthAntifdOrder61(&At11[index]); + PDupwindNthSymm1At11 = PDupwindNthSymmfdOrder61(&At11[index]); + PDupwindNthAnti2At11 = PDupwindNthAntifdOrder62(&At11[index]); + PDupwindNthSymm2At11 = PDupwindNthSymmfdOrder62(&At11[index]); + PDupwindNthAnti3At11 = PDupwindNthAntifdOrder63(&At11[index]); + PDupwindNthSymm3At11 = PDupwindNthSymmfdOrder63(&At11[index]); + PDupwindNthAnti1At12 = PDupwindNthAntifdOrder61(&At12[index]); + PDupwindNthSymm1At12 = PDupwindNthSymmfdOrder61(&At12[index]); + PDupwindNthAnti2At12 = PDupwindNthAntifdOrder62(&At12[index]); + PDupwindNthSymm2At12 = PDupwindNthSymmfdOrder62(&At12[index]); + PDupwindNthAnti3At12 = PDupwindNthAntifdOrder63(&At12[index]); + PDupwindNthSymm3At12 = PDupwindNthSymmfdOrder63(&At12[index]); + PDupwindNthAnti1At13 = PDupwindNthAntifdOrder61(&At13[index]); + PDupwindNthSymm1At13 = PDupwindNthSymmfdOrder61(&At13[index]); + PDupwindNthAnti2At13 = PDupwindNthAntifdOrder62(&At13[index]); + PDupwindNthSymm2At13 = PDupwindNthSymmfdOrder62(&At13[index]); + PDupwindNthAnti3At13 = PDupwindNthAntifdOrder63(&At13[index]); + PDupwindNthSymm3At13 = PDupwindNthSymmfdOrder63(&At13[index]); + PDupwindNthAnti1At22 = PDupwindNthAntifdOrder61(&At22[index]); + PDupwindNthSymm1At22 = PDupwindNthSymmfdOrder61(&At22[index]); + PDupwindNthAnti2At22 = PDupwindNthAntifdOrder62(&At22[index]); + PDupwindNthSymm2At22 = PDupwindNthSymmfdOrder62(&At22[index]); + PDupwindNthAnti3At22 = PDupwindNthAntifdOrder63(&At22[index]); + PDupwindNthSymm3At22 = PDupwindNthSymmfdOrder63(&At22[index]); + PDupwindNthAnti1At23 = PDupwindNthAntifdOrder61(&At23[index]); + PDupwindNthSymm1At23 = PDupwindNthSymmfdOrder61(&At23[index]); + PDupwindNthAnti2At23 = PDupwindNthAntifdOrder62(&At23[index]); + PDupwindNthSymm2At23 = PDupwindNthSymmfdOrder62(&At23[index]); + PDupwindNthAnti3At23 = PDupwindNthAntifdOrder63(&At23[index]); + PDupwindNthSymm3At23 = PDupwindNthSymmfdOrder63(&At23[index]); + PDupwindNthAnti1At33 = PDupwindNthAntifdOrder61(&At33[index]); + PDupwindNthSymm1At33 = PDupwindNthSymmfdOrder61(&At33[index]); + PDupwindNthAnti2At33 = PDupwindNthAntifdOrder62(&At33[index]); + PDupwindNthSymm2At33 = PDupwindNthSymmfdOrder62(&At33[index]); + PDupwindNthAnti3At33 = PDupwindNthAntifdOrder63(&At33[index]); + PDupwindNthSymm3At33 = PDupwindNthSymmfdOrder63(&At33[index]); + PDupwindNthAnti1B1 = PDupwindNthAntifdOrder61(&B1[index]); + PDupwindNthSymm1B1 = PDupwindNthSymmfdOrder61(&B1[index]); + PDupwindNthAnti2B1 = PDupwindNthAntifdOrder62(&B1[index]); + PDupwindNthSymm2B1 = PDupwindNthSymmfdOrder62(&B1[index]); + PDupwindNthAnti3B1 = PDupwindNthAntifdOrder63(&B1[index]); + PDupwindNthSymm3B1 = PDupwindNthSymmfdOrder63(&B1[index]); + PDupwindNthAnti1B2 = PDupwindNthAntifdOrder61(&B2[index]); + PDupwindNthSymm1B2 = PDupwindNthSymmfdOrder61(&B2[index]); + PDupwindNthAnti2B2 = PDupwindNthAntifdOrder62(&B2[index]); + PDupwindNthSymm2B2 = PDupwindNthSymmfdOrder62(&B2[index]); + PDupwindNthAnti3B2 = PDupwindNthAntifdOrder63(&B2[index]); + PDupwindNthSymm3B2 = PDupwindNthSymmfdOrder63(&B2[index]); + PDupwindNthAnti1B3 = PDupwindNthAntifdOrder61(&B3[index]); + PDupwindNthSymm1B3 = PDupwindNthSymmfdOrder61(&B3[index]); + PDupwindNthAnti2B3 = PDupwindNthAntifdOrder62(&B3[index]); + PDupwindNthSymm2B3 = PDupwindNthSymmfdOrder62(&B3[index]); + PDupwindNthAnti3B3 = PDupwindNthAntifdOrder63(&B3[index]); + PDupwindNthSymm3B3 = PDupwindNthSymmfdOrder63(&B3[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder61(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder61(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder62(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder62(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder63(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder63(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder61(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder61(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder62(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder62(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder63(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder63(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder61(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder61(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder62(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder62(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder63(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder63(&beta3[index]); + PDupwindNthAnti1gt11 = PDupwindNthAntifdOrder61(>11[index]); + PDupwindNthSymm1gt11 = PDupwindNthSymmfdOrder61(>11[index]); + PDupwindNthAnti2gt11 = PDupwindNthAntifdOrder62(>11[index]); + PDupwindNthSymm2gt11 = PDupwindNthSymmfdOrder62(>11[index]); + PDupwindNthAnti3gt11 = PDupwindNthAntifdOrder63(>11[index]); + PDupwindNthSymm3gt11 = PDupwindNthSymmfdOrder63(>11[index]); + PDupwindNthAnti1gt12 = PDupwindNthAntifdOrder61(>12[index]); + PDupwindNthSymm1gt12 = PDupwindNthSymmfdOrder61(>12[index]); + PDupwindNthAnti2gt12 = PDupwindNthAntifdOrder62(>12[index]); + PDupwindNthSymm2gt12 = PDupwindNthSymmfdOrder62(>12[index]); + PDupwindNthAnti3gt12 = PDupwindNthAntifdOrder63(>12[index]); + PDupwindNthSymm3gt12 = PDupwindNthSymmfdOrder63(>12[index]); + PDupwindNthAnti1gt13 = PDupwindNthAntifdOrder61(>13[index]); + PDupwindNthSymm1gt13 = PDupwindNthSymmfdOrder61(>13[index]); + PDupwindNthAnti2gt13 = PDupwindNthAntifdOrder62(>13[index]); + PDupwindNthSymm2gt13 = PDupwindNthSymmfdOrder62(>13[index]); + PDupwindNthAnti3gt13 = PDupwindNthAntifdOrder63(>13[index]); + PDupwindNthSymm3gt13 = PDupwindNthSymmfdOrder63(>13[index]); + PDupwindNthAnti1gt22 = PDupwindNthAntifdOrder61(>22[index]); + PDupwindNthSymm1gt22 = PDupwindNthSymmfdOrder61(>22[index]); + PDupwindNthAnti2gt22 = PDupwindNthAntifdOrder62(>22[index]); + PDupwindNthSymm2gt22 = PDupwindNthSymmfdOrder62(>22[index]); + PDupwindNthAnti3gt22 = PDupwindNthAntifdOrder63(>22[index]); + PDupwindNthSymm3gt22 = PDupwindNthSymmfdOrder63(>22[index]); + PDupwindNthAnti1gt23 = PDupwindNthAntifdOrder61(>23[index]); + PDupwindNthSymm1gt23 = PDupwindNthSymmfdOrder61(>23[index]); + PDupwindNthAnti2gt23 = PDupwindNthAntifdOrder62(>23[index]); + PDupwindNthSymm2gt23 = PDupwindNthSymmfdOrder62(>23[index]); + PDupwindNthAnti3gt23 = PDupwindNthAntifdOrder63(>23[index]); + PDupwindNthSymm3gt23 = PDupwindNthSymmfdOrder63(>23[index]); + PDupwindNthAnti1gt33 = PDupwindNthAntifdOrder61(>33[index]); + PDupwindNthSymm1gt33 = PDupwindNthSymmfdOrder61(>33[index]); + PDupwindNthAnti2gt33 = PDupwindNthAntifdOrder62(>33[index]); + PDupwindNthSymm2gt33 = PDupwindNthSymmfdOrder62(>33[index]); + PDupwindNthAnti3gt33 = PDupwindNthAntifdOrder63(>33[index]); + PDupwindNthSymm3gt33 = PDupwindNthSymmfdOrder63(>33[index]); + PDupwindNthAnti1phi = PDupwindNthAntifdOrder61(&phi[index]); + PDupwindNthSymm1phi = PDupwindNthSymmfdOrder61(&phi[index]); + PDupwindNthAnti2phi = PDupwindNthAntifdOrder62(&phi[index]); + PDupwindNthSymm2phi = PDupwindNthSymmfdOrder62(&phi[index]); + PDupwindNthAnti3phi = PDupwindNthAntifdOrder63(&phi[index]); + PDupwindNthSymm3phi = PDupwindNthSymmfdOrder63(&phi[index]); + PDupwindNthAnti1trK = PDupwindNthAntifdOrder61(&trK[index]); + PDupwindNthSymm1trK = PDupwindNthSymmfdOrder61(&trK[index]); + PDupwindNthAnti2trK = PDupwindNthAntifdOrder62(&trK[index]); + PDupwindNthSymm2trK = PDupwindNthSymmfdOrder62(&trK[index]); + PDupwindNthAnti3trK = PDupwindNthAntifdOrder63(&trK[index]); + PDupwindNthSymm3trK = PDupwindNthSymmfdOrder63(&trK[index]); + PDupwindNthAnti1Xt1 = PDupwindNthAntifdOrder61(&Xt1[index]); + PDupwindNthSymm1Xt1 = PDupwindNthSymmfdOrder61(&Xt1[index]); + PDupwindNthAnti2Xt1 = PDupwindNthAntifdOrder62(&Xt1[index]); + PDupwindNthSymm2Xt1 = PDupwindNthSymmfdOrder62(&Xt1[index]); + PDupwindNthAnti3Xt1 = PDupwindNthAntifdOrder63(&Xt1[index]); + PDupwindNthSymm3Xt1 = PDupwindNthSymmfdOrder63(&Xt1[index]); + PDupwindNthAnti1Xt2 = PDupwindNthAntifdOrder61(&Xt2[index]); + PDupwindNthSymm1Xt2 = PDupwindNthSymmfdOrder61(&Xt2[index]); + PDupwindNthAnti2Xt2 = PDupwindNthAntifdOrder62(&Xt2[index]); + PDupwindNthSymm2Xt2 = PDupwindNthSymmfdOrder62(&Xt2[index]); + PDupwindNthAnti3Xt2 = PDupwindNthAntifdOrder63(&Xt2[index]); + PDupwindNthSymm3Xt2 = PDupwindNthSymmfdOrder63(&Xt2[index]); + PDupwindNthAnti1Xt3 = PDupwindNthAntifdOrder61(&Xt3[index]); + PDupwindNthSymm1Xt3 = PDupwindNthSymmfdOrder61(&Xt3[index]); + PDupwindNthAnti2Xt3 = PDupwindNthAntifdOrder62(&Xt3[index]); + PDupwindNthSymm2Xt3 = PDupwindNthSymmfdOrder62(&Xt3[index]); + PDupwindNthAnti3Xt3 = PDupwindNthAntifdOrder63(&Xt3[index]); + PDupwindNthSymm3Xt3 = PDupwindNthSymmfdOrder63(&Xt3[index]); + break; + + case 8: + PDupwindNthAnti1A = PDupwindNthAntifdOrder81(&A[index]); + PDupwindNthSymm1A = PDupwindNthSymmfdOrder81(&A[index]); + PDupwindNthAnti2A = PDupwindNthAntifdOrder82(&A[index]); + PDupwindNthSymm2A = PDupwindNthSymmfdOrder82(&A[index]); + PDupwindNthAnti3A = PDupwindNthAntifdOrder83(&A[index]); + PDupwindNthSymm3A = PDupwindNthSymmfdOrder83(&A[index]); + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder81(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder81(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder82(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder82(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder83(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder83(&alpha[index]); + PDupwindNthAnti1At11 = PDupwindNthAntifdOrder81(&At11[index]); + PDupwindNthSymm1At11 = PDupwindNthSymmfdOrder81(&At11[index]); + PDupwindNthAnti2At11 = PDupwindNthAntifdOrder82(&At11[index]); + PDupwindNthSymm2At11 = PDupwindNthSymmfdOrder82(&At11[index]); + PDupwindNthAnti3At11 = PDupwindNthAntifdOrder83(&At11[index]); + PDupwindNthSymm3At11 = PDupwindNthSymmfdOrder83(&At11[index]); + PDupwindNthAnti1At12 = PDupwindNthAntifdOrder81(&At12[index]); + PDupwindNthSymm1At12 = PDupwindNthSymmfdOrder81(&At12[index]); + PDupwindNthAnti2At12 = PDupwindNthAntifdOrder82(&At12[index]); + PDupwindNthSymm2At12 = PDupwindNthSymmfdOrder82(&At12[index]); + PDupwindNthAnti3At12 = PDupwindNthAntifdOrder83(&At12[index]); + PDupwindNthSymm3At12 = PDupwindNthSymmfdOrder83(&At12[index]); + PDupwindNthAnti1At13 = PDupwindNthAntifdOrder81(&At13[index]); + PDupwindNthSymm1At13 = PDupwindNthSymmfdOrder81(&At13[index]); + PDupwindNthAnti2At13 = PDupwindNthAntifdOrder82(&At13[index]); + PDupwindNthSymm2At13 = PDupwindNthSymmfdOrder82(&At13[index]); + PDupwindNthAnti3At13 = PDupwindNthAntifdOrder83(&At13[index]); + PDupwindNthSymm3At13 = PDupwindNthSymmfdOrder83(&At13[index]); + PDupwindNthAnti1At22 = PDupwindNthAntifdOrder81(&At22[index]); + PDupwindNthSymm1At22 = PDupwindNthSymmfdOrder81(&At22[index]); + PDupwindNthAnti2At22 = PDupwindNthAntifdOrder82(&At22[index]); + PDupwindNthSymm2At22 = PDupwindNthSymmfdOrder82(&At22[index]); + PDupwindNthAnti3At22 = PDupwindNthAntifdOrder83(&At22[index]); + PDupwindNthSymm3At22 = PDupwindNthSymmfdOrder83(&At22[index]); + PDupwindNthAnti1At23 = PDupwindNthAntifdOrder81(&At23[index]); + PDupwindNthSymm1At23 = PDupwindNthSymmfdOrder81(&At23[index]); + PDupwindNthAnti2At23 = PDupwindNthAntifdOrder82(&At23[index]); + PDupwindNthSymm2At23 = PDupwindNthSymmfdOrder82(&At23[index]); + PDupwindNthAnti3At23 = PDupwindNthAntifdOrder83(&At23[index]); + PDupwindNthSymm3At23 = PDupwindNthSymmfdOrder83(&At23[index]); + PDupwindNthAnti1At33 = PDupwindNthAntifdOrder81(&At33[index]); + PDupwindNthSymm1At33 = PDupwindNthSymmfdOrder81(&At33[index]); + PDupwindNthAnti2At33 = PDupwindNthAntifdOrder82(&At33[index]); + PDupwindNthSymm2At33 = PDupwindNthSymmfdOrder82(&At33[index]); + PDupwindNthAnti3At33 = PDupwindNthAntifdOrder83(&At33[index]); + PDupwindNthSymm3At33 = PDupwindNthSymmfdOrder83(&At33[index]); + PDupwindNthAnti1B1 = PDupwindNthAntifdOrder81(&B1[index]); + PDupwindNthSymm1B1 = PDupwindNthSymmfdOrder81(&B1[index]); + PDupwindNthAnti2B1 = PDupwindNthAntifdOrder82(&B1[index]); + PDupwindNthSymm2B1 = PDupwindNthSymmfdOrder82(&B1[index]); + PDupwindNthAnti3B1 = PDupwindNthAntifdOrder83(&B1[index]); + PDupwindNthSymm3B1 = PDupwindNthSymmfdOrder83(&B1[index]); + PDupwindNthAnti1B2 = PDupwindNthAntifdOrder81(&B2[index]); + PDupwindNthSymm1B2 = PDupwindNthSymmfdOrder81(&B2[index]); + PDupwindNthAnti2B2 = PDupwindNthAntifdOrder82(&B2[index]); + PDupwindNthSymm2B2 = PDupwindNthSymmfdOrder82(&B2[index]); + PDupwindNthAnti3B2 = PDupwindNthAntifdOrder83(&B2[index]); + PDupwindNthSymm3B2 = PDupwindNthSymmfdOrder83(&B2[index]); + PDupwindNthAnti1B3 = PDupwindNthAntifdOrder81(&B3[index]); + PDupwindNthSymm1B3 = PDupwindNthSymmfdOrder81(&B3[index]); + PDupwindNthAnti2B3 = PDupwindNthAntifdOrder82(&B3[index]); + PDupwindNthSymm2B3 = PDupwindNthSymmfdOrder82(&B3[index]); + PDupwindNthAnti3B3 = PDupwindNthAntifdOrder83(&B3[index]); + PDupwindNthSymm3B3 = PDupwindNthSymmfdOrder83(&B3[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder81(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder81(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder82(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder82(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder83(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder83(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder81(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder81(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder82(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder82(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder83(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder83(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder81(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder81(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder82(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder82(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder83(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder83(&beta3[index]); + PDupwindNthAnti1gt11 = PDupwindNthAntifdOrder81(>11[index]); + PDupwindNthSymm1gt11 = PDupwindNthSymmfdOrder81(>11[index]); + PDupwindNthAnti2gt11 = PDupwindNthAntifdOrder82(>11[index]); + PDupwindNthSymm2gt11 = PDupwindNthSymmfdOrder82(>11[index]); + PDupwindNthAnti3gt11 = PDupwindNthAntifdOrder83(>11[index]); + PDupwindNthSymm3gt11 = PDupwindNthSymmfdOrder83(>11[index]); + PDupwindNthAnti1gt12 = PDupwindNthAntifdOrder81(>12[index]); + PDupwindNthSymm1gt12 = PDupwindNthSymmfdOrder81(>12[index]); + PDupwindNthAnti2gt12 = PDupwindNthAntifdOrder82(>12[index]); + PDupwindNthSymm2gt12 = PDupwindNthSymmfdOrder82(>12[index]); + PDupwindNthAnti3gt12 = PDupwindNthAntifdOrder83(>12[index]); + PDupwindNthSymm3gt12 = PDupwindNthSymmfdOrder83(>12[index]); + PDupwindNthAnti1gt13 = PDupwindNthAntifdOrder81(>13[index]); + PDupwindNthSymm1gt13 = PDupwindNthSymmfdOrder81(>13[index]); + PDupwindNthAnti2gt13 = PDupwindNthAntifdOrder82(>13[index]); + PDupwindNthSymm2gt13 = PDupwindNthSymmfdOrder82(>13[index]); + PDupwindNthAnti3gt13 = PDupwindNthAntifdOrder83(>13[index]); + PDupwindNthSymm3gt13 = PDupwindNthSymmfdOrder83(>13[index]); + PDupwindNthAnti1gt22 = PDupwindNthAntifdOrder81(>22[index]); + PDupwindNthSymm1gt22 = PDupwindNthSymmfdOrder81(>22[index]); + PDupwindNthAnti2gt22 = PDupwindNthAntifdOrder82(>22[index]); + PDupwindNthSymm2gt22 = PDupwindNthSymmfdOrder82(>22[index]); + PDupwindNthAnti3gt22 = PDupwindNthAntifdOrder83(>22[index]); + PDupwindNthSymm3gt22 = PDupwindNthSymmfdOrder83(>22[index]); + PDupwindNthAnti1gt23 = PDupwindNthAntifdOrder81(>23[index]); + PDupwindNthSymm1gt23 = PDupwindNthSymmfdOrder81(>23[index]); + PDupwindNthAnti2gt23 = PDupwindNthAntifdOrder82(>23[index]); + PDupwindNthSymm2gt23 = PDupwindNthSymmfdOrder82(>23[index]); + PDupwindNthAnti3gt23 = PDupwindNthAntifdOrder83(>23[index]); + PDupwindNthSymm3gt23 = PDupwindNthSymmfdOrder83(>23[index]); + PDupwindNthAnti1gt33 = PDupwindNthAntifdOrder81(>33[index]); + PDupwindNthSymm1gt33 = PDupwindNthSymmfdOrder81(>33[index]); + PDupwindNthAnti2gt33 = PDupwindNthAntifdOrder82(>33[index]); + PDupwindNthSymm2gt33 = PDupwindNthSymmfdOrder82(>33[index]); + PDupwindNthAnti3gt33 = PDupwindNthAntifdOrder83(>33[index]); + PDupwindNthSymm3gt33 = PDupwindNthSymmfdOrder83(>33[index]); + PDupwindNthAnti1phi = PDupwindNthAntifdOrder81(&phi[index]); + PDupwindNthSymm1phi = PDupwindNthSymmfdOrder81(&phi[index]); + PDupwindNthAnti2phi = PDupwindNthAntifdOrder82(&phi[index]); + PDupwindNthSymm2phi = PDupwindNthSymmfdOrder82(&phi[index]); + PDupwindNthAnti3phi = PDupwindNthAntifdOrder83(&phi[index]); + PDupwindNthSymm3phi = PDupwindNthSymmfdOrder83(&phi[index]); + PDupwindNthAnti1trK = PDupwindNthAntifdOrder81(&trK[index]); + PDupwindNthSymm1trK = PDupwindNthSymmfdOrder81(&trK[index]); + PDupwindNthAnti2trK = PDupwindNthAntifdOrder82(&trK[index]); + PDupwindNthSymm2trK = PDupwindNthSymmfdOrder82(&trK[index]); + PDupwindNthAnti3trK = PDupwindNthAntifdOrder83(&trK[index]); + PDupwindNthSymm3trK = PDupwindNthSymmfdOrder83(&trK[index]); + PDupwindNthAnti1Xt1 = PDupwindNthAntifdOrder81(&Xt1[index]); + PDupwindNthSymm1Xt1 = PDupwindNthSymmfdOrder81(&Xt1[index]); + PDupwindNthAnti2Xt1 = PDupwindNthAntifdOrder82(&Xt1[index]); + PDupwindNthSymm2Xt1 = PDupwindNthSymmfdOrder82(&Xt1[index]); + PDupwindNthAnti3Xt1 = PDupwindNthAntifdOrder83(&Xt1[index]); + PDupwindNthSymm3Xt1 = PDupwindNthSymmfdOrder83(&Xt1[index]); + PDupwindNthAnti1Xt2 = PDupwindNthAntifdOrder81(&Xt2[index]); + PDupwindNthSymm1Xt2 = PDupwindNthSymmfdOrder81(&Xt2[index]); + PDupwindNthAnti2Xt2 = PDupwindNthAntifdOrder82(&Xt2[index]); + PDupwindNthSymm2Xt2 = PDupwindNthSymmfdOrder82(&Xt2[index]); + PDupwindNthAnti3Xt2 = PDupwindNthAntifdOrder83(&Xt2[index]); + PDupwindNthSymm3Xt2 = PDupwindNthSymmfdOrder83(&Xt2[index]); + PDupwindNthAnti1Xt3 = PDupwindNthAntifdOrder81(&Xt3[index]); + PDupwindNthSymm1Xt3 = PDupwindNthSymmfdOrder81(&Xt3[index]); + PDupwindNthAnti2Xt3 = PDupwindNthAntifdOrder82(&Xt3[index]); + PDupwindNthSymm2Xt3 = PDupwindNthSymmfdOrder82(&Xt3[index]); + PDupwindNthAnti3Xt3 = PDupwindNthAntifdOrder83(&Xt3[index]); + PDupwindNthSymm3Xt3 = PDupwindNthSymmfdOrder83(&Xt3[index]); + break; + } /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDupwindNthAnti1A; + CCTK_REAL_VEC JacPDupwindNthAnti1alpha; + CCTK_REAL_VEC JacPDupwindNthAnti1At11; + CCTK_REAL_VEC JacPDupwindNthAnti1At12; + CCTK_REAL_VEC JacPDupwindNthAnti1At13; + CCTK_REAL_VEC JacPDupwindNthAnti1At22; + CCTK_REAL_VEC JacPDupwindNthAnti1At23; + CCTK_REAL_VEC JacPDupwindNthAnti1At33; + CCTK_REAL_VEC JacPDupwindNthAnti1B1; + CCTK_REAL_VEC JacPDupwindNthAnti1B2; + CCTK_REAL_VEC JacPDupwindNthAnti1B3; + CCTK_REAL_VEC JacPDupwindNthAnti1beta1; + CCTK_REAL_VEC JacPDupwindNthAnti1beta2; + CCTK_REAL_VEC JacPDupwindNthAnti1beta3; + CCTK_REAL_VEC JacPDupwindNthAnti1gt11; + CCTK_REAL_VEC JacPDupwindNthAnti1gt12; + CCTK_REAL_VEC JacPDupwindNthAnti1gt13; + CCTK_REAL_VEC JacPDupwindNthAnti1gt22; + CCTK_REAL_VEC JacPDupwindNthAnti1gt23; + CCTK_REAL_VEC JacPDupwindNthAnti1gt33; + CCTK_REAL_VEC JacPDupwindNthAnti1phi; + CCTK_REAL_VEC JacPDupwindNthAnti1trK; + CCTK_REAL_VEC JacPDupwindNthAnti1Xt1; + CCTK_REAL_VEC JacPDupwindNthAnti1Xt2; + CCTK_REAL_VEC JacPDupwindNthAnti1Xt3; + CCTK_REAL_VEC JacPDupwindNthAnti2A; + CCTK_REAL_VEC JacPDupwindNthAnti2alpha; + CCTK_REAL_VEC JacPDupwindNthAnti2At11; + CCTK_REAL_VEC JacPDupwindNthAnti2At12; + CCTK_REAL_VEC JacPDupwindNthAnti2At13; + CCTK_REAL_VEC JacPDupwindNthAnti2At22; + CCTK_REAL_VEC JacPDupwindNthAnti2At23; + CCTK_REAL_VEC JacPDupwindNthAnti2At33; + CCTK_REAL_VEC JacPDupwindNthAnti2B1; + CCTK_REAL_VEC JacPDupwindNthAnti2B2; + CCTK_REAL_VEC JacPDupwindNthAnti2B3; + CCTK_REAL_VEC JacPDupwindNthAnti2beta1; + CCTK_REAL_VEC JacPDupwindNthAnti2beta2; + CCTK_REAL_VEC JacPDupwindNthAnti2beta3; + CCTK_REAL_VEC JacPDupwindNthAnti2gt11; + CCTK_REAL_VEC JacPDupwindNthAnti2gt12; + CCTK_REAL_VEC JacPDupwindNthAnti2gt13; + CCTK_REAL_VEC JacPDupwindNthAnti2gt22; + CCTK_REAL_VEC JacPDupwindNthAnti2gt23; + CCTK_REAL_VEC JacPDupwindNthAnti2gt33; + CCTK_REAL_VEC JacPDupwindNthAnti2phi; + CCTK_REAL_VEC JacPDupwindNthAnti2trK; + CCTK_REAL_VEC JacPDupwindNthAnti2Xt1; + CCTK_REAL_VEC JacPDupwindNthAnti2Xt2; + CCTK_REAL_VEC JacPDupwindNthAnti2Xt3; + CCTK_REAL_VEC JacPDupwindNthAnti3A; + CCTK_REAL_VEC JacPDupwindNthAnti3alpha; + CCTK_REAL_VEC JacPDupwindNthAnti3At11; + CCTK_REAL_VEC JacPDupwindNthAnti3At12; + CCTK_REAL_VEC JacPDupwindNthAnti3At13; + CCTK_REAL_VEC JacPDupwindNthAnti3At22; + CCTK_REAL_VEC JacPDupwindNthAnti3At23; + CCTK_REAL_VEC JacPDupwindNthAnti3At33; + CCTK_REAL_VEC JacPDupwindNthAnti3B1; + CCTK_REAL_VEC JacPDupwindNthAnti3B2; + CCTK_REAL_VEC JacPDupwindNthAnti3B3; + CCTK_REAL_VEC JacPDupwindNthAnti3beta1; + CCTK_REAL_VEC JacPDupwindNthAnti3beta2; + CCTK_REAL_VEC JacPDupwindNthAnti3beta3; + CCTK_REAL_VEC JacPDupwindNthAnti3gt11; + CCTK_REAL_VEC JacPDupwindNthAnti3gt12; + CCTK_REAL_VEC JacPDupwindNthAnti3gt13; + CCTK_REAL_VEC JacPDupwindNthAnti3gt22; + CCTK_REAL_VEC JacPDupwindNthAnti3gt23; + CCTK_REAL_VEC JacPDupwindNthAnti3gt33; + CCTK_REAL_VEC JacPDupwindNthAnti3phi; + CCTK_REAL_VEC JacPDupwindNthAnti3trK; + CCTK_REAL_VEC JacPDupwindNthAnti3Xt1; + CCTK_REAL_VEC JacPDupwindNthAnti3Xt2; + CCTK_REAL_VEC JacPDupwindNthAnti3Xt3; + CCTK_REAL_VEC JacPDupwindNthSymm1A; + CCTK_REAL_VEC JacPDupwindNthSymm1alpha; + CCTK_REAL_VEC JacPDupwindNthSymm1At11; + CCTK_REAL_VEC JacPDupwindNthSymm1At12; + CCTK_REAL_VEC JacPDupwindNthSymm1At13; + CCTK_REAL_VEC JacPDupwindNthSymm1At22; + CCTK_REAL_VEC JacPDupwindNthSymm1At23; + CCTK_REAL_VEC JacPDupwindNthSymm1At33; + CCTK_REAL_VEC JacPDupwindNthSymm1B1; + CCTK_REAL_VEC JacPDupwindNthSymm1B2; + CCTK_REAL_VEC JacPDupwindNthSymm1B3; + CCTK_REAL_VEC JacPDupwindNthSymm1beta1; + CCTK_REAL_VEC JacPDupwindNthSymm1beta2; + CCTK_REAL_VEC JacPDupwindNthSymm1beta3; + CCTK_REAL_VEC JacPDupwindNthSymm1gt11; + CCTK_REAL_VEC JacPDupwindNthSymm1gt12; + CCTK_REAL_VEC JacPDupwindNthSymm1gt13; + CCTK_REAL_VEC JacPDupwindNthSymm1gt22; + CCTK_REAL_VEC JacPDupwindNthSymm1gt23; + CCTK_REAL_VEC JacPDupwindNthSymm1gt33; + CCTK_REAL_VEC JacPDupwindNthSymm1phi; + CCTK_REAL_VEC JacPDupwindNthSymm1trK; + CCTK_REAL_VEC JacPDupwindNthSymm1Xt1; + CCTK_REAL_VEC JacPDupwindNthSymm1Xt2; + CCTK_REAL_VEC JacPDupwindNthSymm1Xt3; + CCTK_REAL_VEC JacPDupwindNthSymm2A; + CCTK_REAL_VEC JacPDupwindNthSymm2alpha; + CCTK_REAL_VEC JacPDupwindNthSymm2At11; + CCTK_REAL_VEC JacPDupwindNthSymm2At12; + CCTK_REAL_VEC JacPDupwindNthSymm2At13; + CCTK_REAL_VEC JacPDupwindNthSymm2At22; + CCTK_REAL_VEC JacPDupwindNthSymm2At23; + CCTK_REAL_VEC JacPDupwindNthSymm2At33; + CCTK_REAL_VEC JacPDupwindNthSymm2B1; + CCTK_REAL_VEC JacPDupwindNthSymm2B2; + CCTK_REAL_VEC JacPDupwindNthSymm2B3; + CCTK_REAL_VEC JacPDupwindNthSymm2beta1; + CCTK_REAL_VEC JacPDupwindNthSymm2beta2; + CCTK_REAL_VEC JacPDupwindNthSymm2beta3; + CCTK_REAL_VEC JacPDupwindNthSymm2gt11; + CCTK_REAL_VEC JacPDupwindNthSymm2gt12; + CCTK_REAL_VEC JacPDupwindNthSymm2gt13; + CCTK_REAL_VEC JacPDupwindNthSymm2gt22; + CCTK_REAL_VEC JacPDupwindNthSymm2gt23; + CCTK_REAL_VEC JacPDupwindNthSymm2gt33; + CCTK_REAL_VEC JacPDupwindNthSymm2phi; + CCTK_REAL_VEC JacPDupwindNthSymm2trK; + CCTK_REAL_VEC JacPDupwindNthSymm2Xt1; + CCTK_REAL_VEC JacPDupwindNthSymm2Xt2; + CCTK_REAL_VEC JacPDupwindNthSymm2Xt3; + CCTK_REAL_VEC JacPDupwindNthSymm3A; + CCTK_REAL_VEC JacPDupwindNthSymm3alpha; + CCTK_REAL_VEC JacPDupwindNthSymm3At11; + CCTK_REAL_VEC JacPDupwindNthSymm3At12; + CCTK_REAL_VEC JacPDupwindNthSymm3At13; + CCTK_REAL_VEC JacPDupwindNthSymm3At22; + CCTK_REAL_VEC JacPDupwindNthSymm3At23; + CCTK_REAL_VEC JacPDupwindNthSymm3At33; + CCTK_REAL_VEC JacPDupwindNthSymm3B1; + CCTK_REAL_VEC JacPDupwindNthSymm3B2; + CCTK_REAL_VEC JacPDupwindNthSymm3B3; + CCTK_REAL_VEC JacPDupwindNthSymm3beta1; + CCTK_REAL_VEC JacPDupwindNthSymm3beta2; + CCTK_REAL_VEC JacPDupwindNthSymm3beta3; + CCTK_REAL_VEC JacPDupwindNthSymm3gt11; + CCTK_REAL_VEC JacPDupwindNthSymm3gt12; + CCTK_REAL_VEC JacPDupwindNthSymm3gt13; + CCTK_REAL_VEC JacPDupwindNthSymm3gt22; + CCTK_REAL_VEC JacPDupwindNthSymm3gt23; + CCTK_REAL_VEC JacPDupwindNthSymm3gt33; + CCTK_REAL_VEC JacPDupwindNthSymm3phi; + CCTK_REAL_VEC JacPDupwindNthSymm3trK; + CCTK_REAL_VEC JacPDupwindNthSymm3Xt1; + CCTK_REAL_VEC JacPDupwindNthSymm3Xt2; + CCTK_REAL_VEC JacPDupwindNthSymm3Xt3; + + if (use_jacobian) + { + JacPDupwindNthAnti1A = + kmadd(J11L,PDupwindNthAnti1A,kmadd(J21L,PDupwindNthAnti2A,kmul(J31L,PDupwindNthAnti3A))); + + JacPDupwindNthAnti1alpha = + kmadd(J11L,PDupwindNthAnti1alpha,kmadd(J21L,PDupwindNthAnti2alpha,kmul(J31L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti1At11 = + kmadd(J11L,PDupwindNthAnti1At11,kmadd(J21L,PDupwindNthAnti2At11,kmul(J31L,PDupwindNthAnti3At11))); + + JacPDupwindNthAnti1At12 = + kmadd(J11L,PDupwindNthAnti1At12,kmadd(J21L,PDupwindNthAnti2At12,kmul(J31L,PDupwindNthAnti3At12))); + + JacPDupwindNthAnti1At13 = + kmadd(J11L,PDupwindNthAnti1At13,kmadd(J21L,PDupwindNthAnti2At13,kmul(J31L,PDupwindNthAnti3At13))); + + JacPDupwindNthAnti1At22 = + kmadd(J11L,PDupwindNthAnti1At22,kmadd(J21L,PDupwindNthAnti2At22,kmul(J31L,PDupwindNthAnti3At22))); + + JacPDupwindNthAnti1At23 = + kmadd(J11L,PDupwindNthAnti1At23,kmadd(J21L,PDupwindNthAnti2At23,kmul(J31L,PDupwindNthAnti3At23))); + + JacPDupwindNthAnti1At33 = + kmadd(J11L,PDupwindNthAnti1At33,kmadd(J21L,PDupwindNthAnti2At33,kmul(J31L,PDupwindNthAnti3At33))); + + JacPDupwindNthAnti1B1 = + kmadd(J11L,PDupwindNthAnti1B1,kmadd(J21L,PDupwindNthAnti2B1,kmul(J31L,PDupwindNthAnti3B1))); + + JacPDupwindNthAnti1B2 = + kmadd(J11L,PDupwindNthAnti1B2,kmadd(J21L,PDupwindNthAnti2B2,kmul(J31L,PDupwindNthAnti3B2))); + + JacPDupwindNthAnti1B3 = + kmadd(J11L,PDupwindNthAnti1B3,kmadd(J21L,PDupwindNthAnti2B3,kmul(J31L,PDupwindNthAnti3B3))); + + JacPDupwindNthAnti1beta1 = + kmadd(J11L,PDupwindNthAnti1beta1,kmadd(J21L,PDupwindNthAnti2beta1,kmul(J31L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti1beta2 = + kmadd(J11L,PDupwindNthAnti1beta2,kmadd(J21L,PDupwindNthAnti2beta2,kmul(J31L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti1beta3 = + kmadd(J11L,PDupwindNthAnti1beta3,kmadd(J21L,PDupwindNthAnti2beta3,kmul(J31L,PDupwindNthAnti3beta3))); + + JacPDupwindNthAnti1gt11 = + kmadd(J11L,PDupwindNthAnti1gt11,kmadd(J21L,PDupwindNthAnti2gt11,kmul(J31L,PDupwindNthAnti3gt11))); + + JacPDupwindNthAnti1gt12 = + kmadd(J11L,PDupwindNthAnti1gt12,kmadd(J21L,PDupwindNthAnti2gt12,kmul(J31L,PDupwindNthAnti3gt12))); + + JacPDupwindNthAnti1gt13 = + kmadd(J11L,PDupwindNthAnti1gt13,kmadd(J21L,PDupwindNthAnti2gt13,kmul(J31L,PDupwindNthAnti3gt13))); + + JacPDupwindNthAnti1gt22 = + kmadd(J11L,PDupwindNthAnti1gt22,kmadd(J21L,PDupwindNthAnti2gt22,kmul(J31L,PDupwindNthAnti3gt22))); + + JacPDupwindNthAnti1gt23 = + kmadd(J11L,PDupwindNthAnti1gt23,kmadd(J21L,PDupwindNthAnti2gt23,kmul(J31L,PDupwindNthAnti3gt23))); + + JacPDupwindNthAnti1gt33 = + kmadd(J11L,PDupwindNthAnti1gt33,kmadd(J21L,PDupwindNthAnti2gt33,kmul(J31L,PDupwindNthAnti3gt33))); + + JacPDupwindNthAnti1phi = + kmadd(J11L,PDupwindNthAnti1phi,kmadd(J21L,PDupwindNthAnti2phi,kmul(J31L,PDupwindNthAnti3phi))); + + JacPDupwindNthAnti1trK = + kmadd(J11L,PDupwindNthAnti1trK,kmadd(J21L,PDupwindNthAnti2trK,kmul(J31L,PDupwindNthAnti3trK))); + + JacPDupwindNthAnti1Xt1 = + kmadd(J11L,PDupwindNthAnti1Xt1,kmadd(J21L,PDupwindNthAnti2Xt1,kmul(J31L,PDupwindNthAnti3Xt1))); + + JacPDupwindNthAnti1Xt2 = + kmadd(J11L,PDupwindNthAnti1Xt2,kmadd(J21L,PDupwindNthAnti2Xt2,kmul(J31L,PDupwindNthAnti3Xt2))); + + JacPDupwindNthAnti1Xt3 = + kmadd(J11L,PDupwindNthAnti1Xt3,kmadd(J21L,PDupwindNthAnti2Xt3,kmul(J31L,PDupwindNthAnti3Xt3))); + + JacPDupwindNthSymm1A = + kmadd(J11L,PDupwindNthSymm1A,kmadd(J21L,PDupwindNthSymm2A,kmul(J31L,PDupwindNthSymm3A))); + + JacPDupwindNthSymm1alpha = + kmadd(J11L,PDupwindNthSymm1alpha,kmadd(J21L,PDupwindNthSymm2alpha,kmul(J31L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm1At11 = + kmadd(J11L,PDupwindNthSymm1At11,kmadd(J21L,PDupwindNthSymm2At11,kmul(J31L,PDupwindNthSymm3At11))); + + JacPDupwindNthSymm1At12 = + kmadd(J11L,PDupwindNthSymm1At12,kmadd(J21L,PDupwindNthSymm2At12,kmul(J31L,PDupwindNthSymm3At12))); + + JacPDupwindNthSymm1At13 = + kmadd(J11L,PDupwindNthSymm1At13,kmadd(J21L,PDupwindNthSymm2At13,kmul(J31L,PDupwindNthSymm3At13))); + + JacPDupwindNthSymm1At22 = + kmadd(J11L,PDupwindNthSymm1At22,kmadd(J21L,PDupwindNthSymm2At22,kmul(J31L,PDupwindNthSymm3At22))); + + JacPDupwindNthSymm1At23 = + kmadd(J11L,PDupwindNthSymm1At23,kmadd(J21L,PDupwindNthSymm2At23,kmul(J31L,PDupwindNthSymm3At23))); + + JacPDupwindNthSymm1At33 = + kmadd(J11L,PDupwindNthSymm1At33,kmadd(J21L,PDupwindNthSymm2At33,kmul(J31L,PDupwindNthSymm3At33))); + + JacPDupwindNthSymm1B1 = + kmadd(J11L,PDupwindNthSymm1B1,kmadd(J21L,PDupwindNthSymm2B1,kmul(J31L,PDupwindNthSymm3B1))); + + JacPDupwindNthSymm1B2 = + kmadd(J11L,PDupwindNthSymm1B2,kmadd(J21L,PDupwindNthSymm2B2,kmul(J31L,PDupwindNthSymm3B2))); + + JacPDupwindNthSymm1B3 = + kmadd(J11L,PDupwindNthSymm1B3,kmadd(J21L,PDupwindNthSymm2B3,kmul(J31L,PDupwindNthSymm3B3))); + + JacPDupwindNthSymm1beta1 = + kmadd(J11L,PDupwindNthSymm1beta1,kmadd(J21L,PDupwindNthSymm2beta1,kmul(J31L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm1beta2 = + kmadd(J11L,PDupwindNthSymm1beta2,kmadd(J21L,PDupwindNthSymm2beta2,kmul(J31L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm1beta3 = + kmadd(J11L,PDupwindNthSymm1beta3,kmadd(J21L,PDupwindNthSymm2beta3,kmul(J31L,PDupwindNthSymm3beta3))); + + JacPDupwindNthSymm1gt11 = + kmadd(J11L,PDupwindNthSymm1gt11,kmadd(J21L,PDupwindNthSymm2gt11,kmul(J31L,PDupwindNthSymm3gt11))); + + JacPDupwindNthSymm1gt12 = + kmadd(J11L,PDupwindNthSymm1gt12,kmadd(J21L,PDupwindNthSymm2gt12,kmul(J31L,PDupwindNthSymm3gt12))); + + JacPDupwindNthSymm1gt13 = + kmadd(J11L,PDupwindNthSymm1gt13,kmadd(J21L,PDupwindNthSymm2gt13,kmul(J31L,PDupwindNthSymm3gt13))); + + JacPDupwindNthSymm1gt22 = + kmadd(J11L,PDupwindNthSymm1gt22,kmadd(J21L,PDupwindNthSymm2gt22,kmul(J31L,PDupwindNthSymm3gt22))); + + JacPDupwindNthSymm1gt23 = + kmadd(J11L,PDupwindNthSymm1gt23,kmadd(J21L,PDupwindNthSymm2gt23,kmul(J31L,PDupwindNthSymm3gt23))); + + JacPDupwindNthSymm1gt33 = + kmadd(J11L,PDupwindNthSymm1gt33,kmadd(J21L,PDupwindNthSymm2gt33,kmul(J31L,PDupwindNthSymm3gt33))); + + JacPDupwindNthSymm1phi = + kmadd(J11L,PDupwindNthSymm1phi,kmadd(J21L,PDupwindNthSymm2phi,kmul(J31L,PDupwindNthSymm3phi))); + + JacPDupwindNthSymm1trK = + kmadd(J11L,PDupwindNthSymm1trK,kmadd(J21L,PDupwindNthSymm2trK,kmul(J31L,PDupwindNthSymm3trK))); + + JacPDupwindNthSymm1Xt1 = + kmadd(J11L,PDupwindNthSymm1Xt1,kmadd(J21L,PDupwindNthSymm2Xt1,kmul(J31L,PDupwindNthSymm3Xt1))); + + JacPDupwindNthSymm1Xt2 = + kmadd(J11L,PDupwindNthSymm1Xt2,kmadd(J21L,PDupwindNthSymm2Xt2,kmul(J31L,PDupwindNthSymm3Xt2))); + + JacPDupwindNthSymm1Xt3 = + kmadd(J11L,PDupwindNthSymm1Xt3,kmadd(J21L,PDupwindNthSymm2Xt3,kmul(J31L,PDupwindNthSymm3Xt3))); + + JacPDupwindNthAnti2A = + kmadd(J12L,PDupwindNthAnti1A,kmadd(J22L,PDupwindNthAnti2A,kmul(J32L,PDupwindNthAnti3A))); + + JacPDupwindNthAnti2alpha = + kmadd(J12L,PDupwindNthAnti1alpha,kmadd(J22L,PDupwindNthAnti2alpha,kmul(J32L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti2At11 = + kmadd(J12L,PDupwindNthAnti1At11,kmadd(J22L,PDupwindNthAnti2At11,kmul(J32L,PDupwindNthAnti3At11))); + + JacPDupwindNthAnti2At12 = + kmadd(J12L,PDupwindNthAnti1At12,kmadd(J22L,PDupwindNthAnti2At12,kmul(J32L,PDupwindNthAnti3At12))); + + JacPDupwindNthAnti2At13 = + kmadd(J12L,PDupwindNthAnti1At13,kmadd(J22L,PDupwindNthAnti2At13,kmul(J32L,PDupwindNthAnti3At13))); + + JacPDupwindNthAnti2At22 = + kmadd(J12L,PDupwindNthAnti1At22,kmadd(J22L,PDupwindNthAnti2At22,kmul(J32L,PDupwindNthAnti3At22))); + + JacPDupwindNthAnti2At23 = + kmadd(J12L,PDupwindNthAnti1At23,kmadd(J22L,PDupwindNthAnti2At23,kmul(J32L,PDupwindNthAnti3At23))); + + JacPDupwindNthAnti2At33 = + kmadd(J12L,PDupwindNthAnti1At33,kmadd(J22L,PDupwindNthAnti2At33,kmul(J32L,PDupwindNthAnti3At33))); + + JacPDupwindNthAnti2B1 = + kmadd(J12L,PDupwindNthAnti1B1,kmadd(J22L,PDupwindNthAnti2B1,kmul(J32L,PDupwindNthAnti3B1))); + + JacPDupwindNthAnti2B2 = + kmadd(J12L,PDupwindNthAnti1B2,kmadd(J22L,PDupwindNthAnti2B2,kmul(J32L,PDupwindNthAnti3B2))); + + JacPDupwindNthAnti2B3 = + kmadd(J12L,PDupwindNthAnti1B3,kmadd(J22L,PDupwindNthAnti2B3,kmul(J32L,PDupwindNthAnti3B3))); + + JacPDupwindNthAnti2beta1 = + kmadd(J12L,PDupwindNthAnti1beta1,kmadd(J22L,PDupwindNthAnti2beta1,kmul(J32L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti2beta2 = + kmadd(J12L,PDupwindNthAnti1beta2,kmadd(J22L,PDupwindNthAnti2beta2,kmul(J32L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti2beta3 = + kmadd(J12L,PDupwindNthAnti1beta3,kmadd(J22L,PDupwindNthAnti2beta3,kmul(J32L,PDupwindNthAnti3beta3))); + + JacPDupwindNthAnti2gt11 = + kmadd(J12L,PDupwindNthAnti1gt11,kmadd(J22L,PDupwindNthAnti2gt11,kmul(J32L,PDupwindNthAnti3gt11))); + + JacPDupwindNthAnti2gt12 = + kmadd(J12L,PDupwindNthAnti1gt12,kmadd(J22L,PDupwindNthAnti2gt12,kmul(J32L,PDupwindNthAnti3gt12))); + + JacPDupwindNthAnti2gt13 = + kmadd(J12L,PDupwindNthAnti1gt13,kmadd(J22L,PDupwindNthAnti2gt13,kmul(J32L,PDupwindNthAnti3gt13))); + + JacPDupwindNthAnti2gt22 = + kmadd(J12L,PDupwindNthAnti1gt22,kmadd(J22L,PDupwindNthAnti2gt22,kmul(J32L,PDupwindNthAnti3gt22))); + + JacPDupwindNthAnti2gt23 = + kmadd(J12L,PDupwindNthAnti1gt23,kmadd(J22L,PDupwindNthAnti2gt23,kmul(J32L,PDupwindNthAnti3gt23))); + + JacPDupwindNthAnti2gt33 = + kmadd(J12L,PDupwindNthAnti1gt33,kmadd(J22L,PDupwindNthAnti2gt33,kmul(J32L,PDupwindNthAnti3gt33))); + + JacPDupwindNthAnti2phi = + kmadd(J12L,PDupwindNthAnti1phi,kmadd(J22L,PDupwindNthAnti2phi,kmul(J32L,PDupwindNthAnti3phi))); + + JacPDupwindNthAnti2trK = + kmadd(J12L,PDupwindNthAnti1trK,kmadd(J22L,PDupwindNthAnti2trK,kmul(J32L,PDupwindNthAnti3trK))); + + JacPDupwindNthAnti2Xt1 = + kmadd(J12L,PDupwindNthAnti1Xt1,kmadd(J22L,PDupwindNthAnti2Xt1,kmul(J32L,PDupwindNthAnti3Xt1))); + + JacPDupwindNthAnti2Xt2 = + kmadd(J12L,PDupwindNthAnti1Xt2,kmadd(J22L,PDupwindNthAnti2Xt2,kmul(J32L,PDupwindNthAnti3Xt2))); + + JacPDupwindNthAnti2Xt3 = + kmadd(J12L,PDupwindNthAnti1Xt3,kmadd(J22L,PDupwindNthAnti2Xt3,kmul(J32L,PDupwindNthAnti3Xt3))); + + JacPDupwindNthSymm2A = + kmadd(J12L,PDupwindNthSymm1A,kmadd(J22L,PDupwindNthSymm2A,kmul(J32L,PDupwindNthSymm3A))); + + JacPDupwindNthSymm2alpha = + kmadd(J12L,PDupwindNthSymm1alpha,kmadd(J22L,PDupwindNthSymm2alpha,kmul(J32L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm2At11 = + kmadd(J12L,PDupwindNthSymm1At11,kmadd(J22L,PDupwindNthSymm2At11,kmul(J32L,PDupwindNthSymm3At11))); + + JacPDupwindNthSymm2At12 = + kmadd(J12L,PDupwindNthSymm1At12,kmadd(J22L,PDupwindNthSymm2At12,kmul(J32L,PDupwindNthSymm3At12))); + + JacPDupwindNthSymm2At13 = + kmadd(J12L,PDupwindNthSymm1At13,kmadd(J22L,PDupwindNthSymm2At13,kmul(J32L,PDupwindNthSymm3At13))); + + JacPDupwindNthSymm2At22 = + kmadd(J12L,PDupwindNthSymm1At22,kmadd(J22L,PDupwindNthSymm2At22,kmul(J32L,PDupwindNthSymm3At22))); + + JacPDupwindNthSymm2At23 = + kmadd(J12L,PDupwindNthSymm1At23,kmadd(J22L,PDupwindNthSymm2At23,kmul(J32L,PDupwindNthSymm3At23))); + + JacPDupwindNthSymm2At33 = + kmadd(J12L,PDupwindNthSymm1At33,kmadd(J22L,PDupwindNthSymm2At33,kmul(J32L,PDupwindNthSymm3At33))); + + JacPDupwindNthSymm2B1 = + kmadd(J12L,PDupwindNthSymm1B1,kmadd(J22L,PDupwindNthSymm2B1,kmul(J32L,PDupwindNthSymm3B1))); + + JacPDupwindNthSymm2B2 = + kmadd(J12L,PDupwindNthSymm1B2,kmadd(J22L,PDupwindNthSymm2B2,kmul(J32L,PDupwindNthSymm3B2))); + + JacPDupwindNthSymm2B3 = + kmadd(J12L,PDupwindNthSymm1B3,kmadd(J22L,PDupwindNthSymm2B3,kmul(J32L,PDupwindNthSymm3B3))); + + JacPDupwindNthSymm2beta1 = + kmadd(J12L,PDupwindNthSymm1beta1,kmadd(J22L,PDupwindNthSymm2beta1,kmul(J32L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm2beta2 = + kmadd(J12L,PDupwindNthSymm1beta2,kmadd(J22L,PDupwindNthSymm2beta2,kmul(J32L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm2beta3 = + kmadd(J12L,PDupwindNthSymm1beta3,kmadd(J22L,PDupwindNthSymm2beta3,kmul(J32L,PDupwindNthSymm3beta3))); + + JacPDupwindNthSymm2gt11 = + kmadd(J12L,PDupwindNthSymm1gt11,kmadd(J22L,PDupwindNthSymm2gt11,kmul(J32L,PDupwindNthSymm3gt11))); + + JacPDupwindNthSymm2gt12 = + kmadd(J12L,PDupwindNthSymm1gt12,kmadd(J22L,PDupwindNthSymm2gt12,kmul(J32L,PDupwindNthSymm3gt12))); + + JacPDupwindNthSymm2gt13 = + kmadd(J12L,PDupwindNthSymm1gt13,kmadd(J22L,PDupwindNthSymm2gt13,kmul(J32L,PDupwindNthSymm3gt13))); + + JacPDupwindNthSymm2gt22 = + kmadd(J12L,PDupwindNthSymm1gt22,kmadd(J22L,PDupwindNthSymm2gt22,kmul(J32L,PDupwindNthSymm3gt22))); + + JacPDupwindNthSymm2gt23 = + kmadd(J12L,PDupwindNthSymm1gt23,kmadd(J22L,PDupwindNthSymm2gt23,kmul(J32L,PDupwindNthSymm3gt23))); + + JacPDupwindNthSymm2gt33 = + kmadd(J12L,PDupwindNthSymm1gt33,kmadd(J22L,PDupwindNthSymm2gt33,kmul(J32L,PDupwindNthSymm3gt33))); + + JacPDupwindNthSymm2phi = + kmadd(J12L,PDupwindNthSymm1phi,kmadd(J22L,PDupwindNthSymm2phi,kmul(J32L,PDupwindNthSymm3phi))); + + JacPDupwindNthSymm2trK = + kmadd(J12L,PDupwindNthSymm1trK,kmadd(J22L,PDupwindNthSymm2trK,kmul(J32L,PDupwindNthSymm3trK))); + + JacPDupwindNthSymm2Xt1 = + kmadd(J12L,PDupwindNthSymm1Xt1,kmadd(J22L,PDupwindNthSymm2Xt1,kmul(J32L,PDupwindNthSymm3Xt1))); + + JacPDupwindNthSymm2Xt2 = + kmadd(J12L,PDupwindNthSymm1Xt2,kmadd(J22L,PDupwindNthSymm2Xt2,kmul(J32L,PDupwindNthSymm3Xt2))); + + JacPDupwindNthSymm2Xt3 = + kmadd(J12L,PDupwindNthSymm1Xt3,kmadd(J22L,PDupwindNthSymm2Xt3,kmul(J32L,PDupwindNthSymm3Xt3))); + + JacPDupwindNthAnti3A = + kmadd(J13L,PDupwindNthAnti1A,kmadd(J23L,PDupwindNthAnti2A,kmul(J33L,PDupwindNthAnti3A))); + + JacPDupwindNthAnti3alpha = + kmadd(J13L,PDupwindNthAnti1alpha,kmadd(J23L,PDupwindNthAnti2alpha,kmul(J33L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti3At11 = + kmadd(J13L,PDupwindNthAnti1At11,kmadd(J23L,PDupwindNthAnti2At11,kmul(J33L,PDupwindNthAnti3At11))); + + JacPDupwindNthAnti3At12 = + kmadd(J13L,PDupwindNthAnti1At12,kmadd(J23L,PDupwindNthAnti2At12,kmul(J33L,PDupwindNthAnti3At12))); + + JacPDupwindNthAnti3At13 = + kmadd(J13L,PDupwindNthAnti1At13,kmadd(J23L,PDupwindNthAnti2At13,kmul(J33L,PDupwindNthAnti3At13))); + + JacPDupwindNthAnti3At22 = + kmadd(J13L,PDupwindNthAnti1At22,kmadd(J23L,PDupwindNthAnti2At22,kmul(J33L,PDupwindNthAnti3At22))); + + JacPDupwindNthAnti3At23 = + kmadd(J13L,PDupwindNthAnti1At23,kmadd(J23L,PDupwindNthAnti2At23,kmul(J33L,PDupwindNthAnti3At23))); + + JacPDupwindNthAnti3At33 = + kmadd(J13L,PDupwindNthAnti1At33,kmadd(J23L,PDupwindNthAnti2At33,kmul(J33L,PDupwindNthAnti3At33))); + + JacPDupwindNthAnti3B1 = + kmadd(J13L,PDupwindNthAnti1B1,kmadd(J23L,PDupwindNthAnti2B1,kmul(J33L,PDupwindNthAnti3B1))); + + JacPDupwindNthAnti3B2 = + kmadd(J13L,PDupwindNthAnti1B2,kmadd(J23L,PDupwindNthAnti2B2,kmul(J33L,PDupwindNthAnti3B2))); + + JacPDupwindNthAnti3B3 = + kmadd(J13L,PDupwindNthAnti1B3,kmadd(J23L,PDupwindNthAnti2B3,kmul(J33L,PDupwindNthAnti3B3))); + + JacPDupwindNthAnti3beta1 = + kmadd(J13L,PDupwindNthAnti1beta1,kmadd(J23L,PDupwindNthAnti2beta1,kmul(J33L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti3beta2 = + kmadd(J13L,PDupwindNthAnti1beta2,kmadd(J23L,PDupwindNthAnti2beta2,kmul(J33L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti3beta3 = + kmadd(J13L,PDupwindNthAnti1beta3,kmadd(J23L,PDupwindNthAnti2beta3,kmul(J33L,PDupwindNthAnti3beta3))); + + JacPDupwindNthAnti3gt11 = + kmadd(J13L,PDupwindNthAnti1gt11,kmadd(J23L,PDupwindNthAnti2gt11,kmul(J33L,PDupwindNthAnti3gt11))); + + JacPDupwindNthAnti3gt12 = + kmadd(J13L,PDupwindNthAnti1gt12,kmadd(J23L,PDupwindNthAnti2gt12,kmul(J33L,PDupwindNthAnti3gt12))); + + JacPDupwindNthAnti3gt13 = + kmadd(J13L,PDupwindNthAnti1gt13,kmadd(J23L,PDupwindNthAnti2gt13,kmul(J33L,PDupwindNthAnti3gt13))); + + JacPDupwindNthAnti3gt22 = + kmadd(J13L,PDupwindNthAnti1gt22,kmadd(J23L,PDupwindNthAnti2gt22,kmul(J33L,PDupwindNthAnti3gt22))); + + JacPDupwindNthAnti3gt23 = + kmadd(J13L,PDupwindNthAnti1gt23,kmadd(J23L,PDupwindNthAnti2gt23,kmul(J33L,PDupwindNthAnti3gt23))); + + JacPDupwindNthAnti3gt33 = + kmadd(J13L,PDupwindNthAnti1gt33,kmadd(J23L,PDupwindNthAnti2gt33,kmul(J33L,PDupwindNthAnti3gt33))); + + JacPDupwindNthAnti3phi = + kmadd(J13L,PDupwindNthAnti1phi,kmadd(J23L,PDupwindNthAnti2phi,kmul(J33L,PDupwindNthAnti3phi))); + + JacPDupwindNthAnti3trK = + kmadd(J13L,PDupwindNthAnti1trK,kmadd(J23L,PDupwindNthAnti2trK,kmul(J33L,PDupwindNthAnti3trK))); + + JacPDupwindNthAnti3Xt1 = + kmadd(J13L,PDupwindNthAnti1Xt1,kmadd(J23L,PDupwindNthAnti2Xt1,kmul(J33L,PDupwindNthAnti3Xt1))); + + JacPDupwindNthAnti3Xt2 = + kmadd(J13L,PDupwindNthAnti1Xt2,kmadd(J23L,PDupwindNthAnti2Xt2,kmul(J33L,PDupwindNthAnti3Xt2))); + + JacPDupwindNthAnti3Xt3 = + kmadd(J13L,PDupwindNthAnti1Xt3,kmadd(J23L,PDupwindNthAnti2Xt3,kmul(J33L,PDupwindNthAnti3Xt3))); + + JacPDupwindNthSymm3A = + kmadd(J13L,PDupwindNthSymm1A,kmadd(J23L,PDupwindNthSymm2A,kmul(J33L,PDupwindNthSymm3A))); + + JacPDupwindNthSymm3alpha = + kmadd(J13L,PDupwindNthSymm1alpha,kmadd(J23L,PDupwindNthSymm2alpha,kmul(J33L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm3At11 = + kmadd(J13L,PDupwindNthSymm1At11,kmadd(J23L,PDupwindNthSymm2At11,kmul(J33L,PDupwindNthSymm3At11))); + + JacPDupwindNthSymm3At12 = + kmadd(J13L,PDupwindNthSymm1At12,kmadd(J23L,PDupwindNthSymm2At12,kmul(J33L,PDupwindNthSymm3At12))); + + JacPDupwindNthSymm3At13 = + kmadd(J13L,PDupwindNthSymm1At13,kmadd(J23L,PDupwindNthSymm2At13,kmul(J33L,PDupwindNthSymm3At13))); + + JacPDupwindNthSymm3At22 = + kmadd(J13L,PDupwindNthSymm1At22,kmadd(J23L,PDupwindNthSymm2At22,kmul(J33L,PDupwindNthSymm3At22))); + + JacPDupwindNthSymm3At23 = + kmadd(J13L,PDupwindNthSymm1At23,kmadd(J23L,PDupwindNthSymm2At23,kmul(J33L,PDupwindNthSymm3At23))); + + JacPDupwindNthSymm3At33 = + kmadd(J13L,PDupwindNthSymm1At33,kmadd(J23L,PDupwindNthSymm2At33,kmul(J33L,PDupwindNthSymm3At33))); + + JacPDupwindNthSymm3B1 = + kmadd(J13L,PDupwindNthSymm1B1,kmadd(J23L,PDupwindNthSymm2B1,kmul(J33L,PDupwindNthSymm3B1))); + + JacPDupwindNthSymm3B2 = + kmadd(J13L,PDupwindNthSymm1B2,kmadd(J23L,PDupwindNthSymm2B2,kmul(J33L,PDupwindNthSymm3B2))); + + JacPDupwindNthSymm3B3 = + kmadd(J13L,PDupwindNthSymm1B3,kmadd(J23L,PDupwindNthSymm2B3,kmul(J33L,PDupwindNthSymm3B3))); + + JacPDupwindNthSymm3beta1 = + kmadd(J13L,PDupwindNthSymm1beta1,kmadd(J23L,PDupwindNthSymm2beta1,kmul(J33L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm3beta2 = + kmadd(J13L,PDupwindNthSymm1beta2,kmadd(J23L,PDupwindNthSymm2beta2,kmul(J33L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm3beta3 = + kmadd(J13L,PDupwindNthSymm1beta3,kmadd(J23L,PDupwindNthSymm2beta3,kmul(J33L,PDupwindNthSymm3beta3))); + + JacPDupwindNthSymm3gt11 = + kmadd(J13L,PDupwindNthSymm1gt11,kmadd(J23L,PDupwindNthSymm2gt11,kmul(J33L,PDupwindNthSymm3gt11))); + + JacPDupwindNthSymm3gt12 = + kmadd(J13L,PDupwindNthSymm1gt12,kmadd(J23L,PDupwindNthSymm2gt12,kmul(J33L,PDupwindNthSymm3gt12))); + + JacPDupwindNthSymm3gt13 = + kmadd(J13L,PDupwindNthSymm1gt13,kmadd(J23L,PDupwindNthSymm2gt13,kmul(J33L,PDupwindNthSymm3gt13))); + + JacPDupwindNthSymm3gt22 = + kmadd(J13L,PDupwindNthSymm1gt22,kmadd(J23L,PDupwindNthSymm2gt22,kmul(J33L,PDupwindNthSymm3gt22))); + + JacPDupwindNthSymm3gt23 = + kmadd(J13L,PDupwindNthSymm1gt23,kmadd(J23L,PDupwindNthSymm2gt23,kmul(J33L,PDupwindNthSymm3gt23))); + + JacPDupwindNthSymm3gt33 = + kmadd(J13L,PDupwindNthSymm1gt33,kmadd(J23L,PDupwindNthSymm2gt33,kmul(J33L,PDupwindNthSymm3gt33))); + + JacPDupwindNthSymm3phi = + kmadd(J13L,PDupwindNthSymm1phi,kmadd(J23L,PDupwindNthSymm2phi,kmul(J33L,PDupwindNthSymm3phi))); + + JacPDupwindNthSymm3trK = + kmadd(J13L,PDupwindNthSymm1trK,kmadd(J23L,PDupwindNthSymm2trK,kmul(J33L,PDupwindNthSymm3trK))); + + JacPDupwindNthSymm3Xt1 = + kmadd(J13L,PDupwindNthSymm1Xt1,kmadd(J23L,PDupwindNthSymm2Xt1,kmul(J33L,PDupwindNthSymm3Xt1))); + + JacPDupwindNthSymm3Xt2 = + kmadd(J13L,PDupwindNthSymm1Xt2,kmadd(J23L,PDupwindNthSymm2Xt2,kmul(J33L,PDupwindNthSymm3Xt2))); + + JacPDupwindNthSymm3Xt3 = + kmadd(J13L,PDupwindNthSymm1Xt3,kmadd(J23L,PDupwindNthSymm2Xt3,kmul(J33L,PDupwindNthSymm3Xt3))); + } + else + { + JacPDupwindNthAnti1A = PDupwindNthAnti1A; + + JacPDupwindNthAnti1alpha = PDupwindNthAnti1alpha; + + JacPDupwindNthAnti1At11 = PDupwindNthAnti1At11; + + JacPDupwindNthAnti1At12 = PDupwindNthAnti1At12; + + JacPDupwindNthAnti1At13 = PDupwindNthAnti1At13; + + JacPDupwindNthAnti1At22 = PDupwindNthAnti1At22; + + JacPDupwindNthAnti1At23 = PDupwindNthAnti1At23; + + JacPDupwindNthAnti1At33 = PDupwindNthAnti1At33; + + JacPDupwindNthAnti1B1 = PDupwindNthAnti1B1; + + JacPDupwindNthAnti1B2 = PDupwindNthAnti1B2; + + JacPDupwindNthAnti1B3 = PDupwindNthAnti1B3; + + JacPDupwindNthAnti1beta1 = PDupwindNthAnti1beta1; + + JacPDupwindNthAnti1beta2 = PDupwindNthAnti1beta2; + + JacPDupwindNthAnti1beta3 = PDupwindNthAnti1beta3; + + JacPDupwindNthAnti1gt11 = PDupwindNthAnti1gt11; + + JacPDupwindNthAnti1gt12 = PDupwindNthAnti1gt12; + + JacPDupwindNthAnti1gt13 = PDupwindNthAnti1gt13; + + JacPDupwindNthAnti1gt22 = PDupwindNthAnti1gt22; + + JacPDupwindNthAnti1gt23 = PDupwindNthAnti1gt23; + + JacPDupwindNthAnti1gt33 = PDupwindNthAnti1gt33; + + JacPDupwindNthAnti1phi = PDupwindNthAnti1phi; + + JacPDupwindNthAnti1trK = PDupwindNthAnti1trK; + + JacPDupwindNthAnti1Xt1 = PDupwindNthAnti1Xt1; + + JacPDupwindNthAnti1Xt2 = PDupwindNthAnti1Xt2; + + JacPDupwindNthAnti1Xt3 = PDupwindNthAnti1Xt3; + + JacPDupwindNthSymm1A = PDupwindNthSymm1A; + + JacPDupwindNthSymm1alpha = PDupwindNthSymm1alpha; + + JacPDupwindNthSymm1At11 = PDupwindNthSymm1At11; + + JacPDupwindNthSymm1At12 = PDupwindNthSymm1At12; + + JacPDupwindNthSymm1At13 = PDupwindNthSymm1At13; + + JacPDupwindNthSymm1At22 = PDupwindNthSymm1At22; + + JacPDupwindNthSymm1At23 = PDupwindNthSymm1At23; + + JacPDupwindNthSymm1At33 = PDupwindNthSymm1At33; + + JacPDupwindNthSymm1B1 = PDupwindNthSymm1B1; + + JacPDupwindNthSymm1B2 = PDupwindNthSymm1B2; + + JacPDupwindNthSymm1B3 = PDupwindNthSymm1B3; + + JacPDupwindNthSymm1beta1 = PDupwindNthSymm1beta1; + + JacPDupwindNthSymm1beta2 = PDupwindNthSymm1beta2; + + JacPDupwindNthSymm1beta3 = PDupwindNthSymm1beta3; + + JacPDupwindNthSymm1gt11 = PDupwindNthSymm1gt11; + + JacPDupwindNthSymm1gt12 = PDupwindNthSymm1gt12; + + JacPDupwindNthSymm1gt13 = PDupwindNthSymm1gt13; + + JacPDupwindNthSymm1gt22 = PDupwindNthSymm1gt22; + + JacPDupwindNthSymm1gt23 = PDupwindNthSymm1gt23; + + JacPDupwindNthSymm1gt33 = PDupwindNthSymm1gt33; + + JacPDupwindNthSymm1phi = PDupwindNthSymm1phi; + + JacPDupwindNthSymm1trK = PDupwindNthSymm1trK; + + JacPDupwindNthSymm1Xt1 = PDupwindNthSymm1Xt1; + + JacPDupwindNthSymm1Xt2 = PDupwindNthSymm1Xt2; + + JacPDupwindNthSymm1Xt3 = PDupwindNthSymm1Xt3; + + JacPDupwindNthAnti2A = PDupwindNthAnti2A; + + JacPDupwindNthAnti2alpha = PDupwindNthAnti2alpha; + + JacPDupwindNthAnti2At11 = PDupwindNthAnti2At11; + + JacPDupwindNthAnti2At12 = PDupwindNthAnti2At12; + + JacPDupwindNthAnti2At13 = PDupwindNthAnti2At13; + + JacPDupwindNthAnti2At22 = PDupwindNthAnti2At22; + + JacPDupwindNthAnti2At23 = PDupwindNthAnti2At23; + + JacPDupwindNthAnti2At33 = PDupwindNthAnti2At33; + + JacPDupwindNthAnti2B1 = PDupwindNthAnti2B1; + + JacPDupwindNthAnti2B2 = PDupwindNthAnti2B2; + + JacPDupwindNthAnti2B3 = PDupwindNthAnti2B3; + + JacPDupwindNthAnti2beta1 = PDupwindNthAnti2beta1; + + JacPDupwindNthAnti2beta2 = PDupwindNthAnti2beta2; + + JacPDupwindNthAnti2beta3 = PDupwindNthAnti2beta3; + + JacPDupwindNthAnti2gt11 = PDupwindNthAnti2gt11; + + JacPDupwindNthAnti2gt12 = PDupwindNthAnti2gt12; + + JacPDupwindNthAnti2gt13 = PDupwindNthAnti2gt13; + + JacPDupwindNthAnti2gt22 = PDupwindNthAnti2gt22; + + JacPDupwindNthAnti2gt23 = PDupwindNthAnti2gt23; + + JacPDupwindNthAnti2gt33 = PDupwindNthAnti2gt33; + + JacPDupwindNthAnti2phi = PDupwindNthAnti2phi; + + JacPDupwindNthAnti2trK = PDupwindNthAnti2trK; + + JacPDupwindNthAnti2Xt1 = PDupwindNthAnti2Xt1; + + JacPDupwindNthAnti2Xt2 = PDupwindNthAnti2Xt2; + + JacPDupwindNthAnti2Xt3 = PDupwindNthAnti2Xt3; + + JacPDupwindNthSymm2A = PDupwindNthSymm2A; + + JacPDupwindNthSymm2alpha = PDupwindNthSymm2alpha; + + JacPDupwindNthSymm2At11 = PDupwindNthSymm2At11; + + JacPDupwindNthSymm2At12 = PDupwindNthSymm2At12; + + JacPDupwindNthSymm2At13 = PDupwindNthSymm2At13; + + JacPDupwindNthSymm2At22 = PDupwindNthSymm2At22; + + JacPDupwindNthSymm2At23 = PDupwindNthSymm2At23; + + JacPDupwindNthSymm2At33 = PDupwindNthSymm2At33; + + JacPDupwindNthSymm2B1 = PDupwindNthSymm2B1; + + JacPDupwindNthSymm2B2 = PDupwindNthSymm2B2; + + JacPDupwindNthSymm2B3 = PDupwindNthSymm2B3; + + JacPDupwindNthSymm2beta1 = PDupwindNthSymm2beta1; + + JacPDupwindNthSymm2beta2 = PDupwindNthSymm2beta2; + + JacPDupwindNthSymm2beta3 = PDupwindNthSymm2beta3; + + JacPDupwindNthSymm2gt11 = PDupwindNthSymm2gt11; + + JacPDupwindNthSymm2gt12 = PDupwindNthSymm2gt12; + + JacPDupwindNthSymm2gt13 = PDupwindNthSymm2gt13; + + JacPDupwindNthSymm2gt22 = PDupwindNthSymm2gt22; + + JacPDupwindNthSymm2gt23 = PDupwindNthSymm2gt23; + + JacPDupwindNthSymm2gt33 = PDupwindNthSymm2gt33; + + JacPDupwindNthSymm2phi = PDupwindNthSymm2phi; + + JacPDupwindNthSymm2trK = PDupwindNthSymm2trK; + + JacPDupwindNthSymm2Xt1 = PDupwindNthSymm2Xt1; + + JacPDupwindNthSymm2Xt2 = PDupwindNthSymm2Xt2; + + JacPDupwindNthSymm2Xt3 = PDupwindNthSymm2Xt3; + + JacPDupwindNthAnti3A = PDupwindNthAnti3A; + + JacPDupwindNthAnti3alpha = PDupwindNthAnti3alpha; + + JacPDupwindNthAnti3At11 = PDupwindNthAnti3At11; + + JacPDupwindNthAnti3At12 = PDupwindNthAnti3At12; + + JacPDupwindNthAnti3At13 = PDupwindNthAnti3At13; + + JacPDupwindNthAnti3At22 = PDupwindNthAnti3At22; + + JacPDupwindNthAnti3At23 = PDupwindNthAnti3At23; + + JacPDupwindNthAnti3At33 = PDupwindNthAnti3At33; + + JacPDupwindNthAnti3B1 = PDupwindNthAnti3B1; + + JacPDupwindNthAnti3B2 = PDupwindNthAnti3B2; + + JacPDupwindNthAnti3B3 = PDupwindNthAnti3B3; + + JacPDupwindNthAnti3beta1 = PDupwindNthAnti3beta1; + + JacPDupwindNthAnti3beta2 = PDupwindNthAnti3beta2; + + JacPDupwindNthAnti3beta3 = PDupwindNthAnti3beta3; + + JacPDupwindNthAnti3gt11 = PDupwindNthAnti3gt11; + + JacPDupwindNthAnti3gt12 = PDupwindNthAnti3gt12; + + JacPDupwindNthAnti3gt13 = PDupwindNthAnti3gt13; + + JacPDupwindNthAnti3gt22 = PDupwindNthAnti3gt22; + + JacPDupwindNthAnti3gt23 = PDupwindNthAnti3gt23; + + JacPDupwindNthAnti3gt33 = PDupwindNthAnti3gt33; + + JacPDupwindNthAnti3phi = PDupwindNthAnti3phi; + + JacPDupwindNthAnti3trK = PDupwindNthAnti3trK; + + JacPDupwindNthAnti3Xt1 = PDupwindNthAnti3Xt1; + + JacPDupwindNthAnti3Xt2 = PDupwindNthAnti3Xt2; + + JacPDupwindNthAnti3Xt3 = PDupwindNthAnti3Xt3; + + JacPDupwindNthSymm3A = PDupwindNthSymm3A; + + JacPDupwindNthSymm3alpha = PDupwindNthSymm3alpha; + + JacPDupwindNthSymm3At11 = PDupwindNthSymm3At11; + + JacPDupwindNthSymm3At12 = PDupwindNthSymm3At12; + + JacPDupwindNthSymm3At13 = PDupwindNthSymm3At13; + + JacPDupwindNthSymm3At22 = PDupwindNthSymm3At22; + + JacPDupwindNthSymm3At23 = PDupwindNthSymm3At23; + + JacPDupwindNthSymm3At33 = PDupwindNthSymm3At33; + + JacPDupwindNthSymm3B1 = PDupwindNthSymm3B1; + + JacPDupwindNthSymm3B2 = PDupwindNthSymm3B2; + + JacPDupwindNthSymm3B3 = PDupwindNthSymm3B3; + + JacPDupwindNthSymm3beta1 = PDupwindNthSymm3beta1; + + JacPDupwindNthSymm3beta2 = PDupwindNthSymm3beta2; + + JacPDupwindNthSymm3beta3 = PDupwindNthSymm3beta3; + + JacPDupwindNthSymm3gt11 = PDupwindNthSymm3gt11; + + JacPDupwindNthSymm3gt12 = PDupwindNthSymm3gt12; + + JacPDupwindNthSymm3gt13 = PDupwindNthSymm3gt13; + + JacPDupwindNthSymm3gt22 = PDupwindNthSymm3gt22; + + JacPDupwindNthSymm3gt23 = PDupwindNthSymm3gt23; + + JacPDupwindNthSymm3gt33 = PDupwindNthSymm3gt33; + + JacPDupwindNthSymm3phi = PDupwindNthSymm3phi; + + JacPDupwindNthSymm3trK = PDupwindNthSymm3trK; + + JacPDupwindNthSymm3Xt1 = PDupwindNthSymm3Xt1; + + JacPDupwindNthSymm3Xt2 = PDupwindNthSymm3Xt2; + + JacPDupwindNthSymm3Xt3 = PDupwindNthSymm3Xt3; + } + ptrdiff_t dir1 = Sign(beta1L); ptrdiff_t dir2 = Sign(beta2L); @@ -351,79 +2009,79 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir ptrdiff_t dir3 = Sign(beta3L); phirhsL = - kmadd(beta1L,PDupwindNthAnti1phi,kmadd(beta2L,PDupwindNthAnti2phi,kmadd(beta3L,PDupwindNthAnti3phi,kadd(phirhsL,kmadd(PDupwindNthSymm1phi,kfabs(beta1L),kmadd(PDupwindNthSymm2phi,kfabs(beta2L),kmul(PDupwindNthSymm3phi,kfabs(beta3L)))))))); + kmadd(beta1L,JacPDupwindNthAnti1phi,kmadd(beta2L,JacPDupwindNthAnti2phi,kmadd(beta3L,JacPDupwindNthAnti3phi,kadd(phirhsL,kmadd(JacPDupwindNthSymm1phi,kfabs(beta1L),kmadd(JacPDupwindNthSymm2phi,kfabs(beta2L),kmul(JacPDupwindNthSymm3phi,kfabs(beta3L)))))))); gt11rhsL = - kadd(gt11rhsL,kmadd(beta1L,PDupwindNthAnti1gt11,kmadd(beta2L,PDupwindNthAnti2gt11,kmadd(beta3L,PDupwindNthAnti3gt11,kmadd(PDupwindNthSymm1gt11,kfabs(beta1L),kmadd(PDupwindNthSymm2gt11,kfabs(beta2L),kmul(PDupwindNthSymm3gt11,kfabs(beta3L)))))))); + kadd(gt11rhsL,kmadd(beta1L,JacPDupwindNthAnti1gt11,kmadd(beta2L,JacPDupwindNthAnti2gt11,kmadd(beta3L,JacPDupwindNthAnti3gt11,kmadd(JacPDupwindNthSymm1gt11,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt11,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt11,kfabs(beta3L)))))))); gt12rhsL = - kadd(gt12rhsL,kmadd(beta1L,PDupwindNthAnti1gt12,kmadd(beta2L,PDupwindNthAnti2gt12,kmadd(beta3L,PDupwindNthAnti3gt12,kmadd(PDupwindNthSymm1gt12,kfabs(beta1L),kmadd(PDupwindNthSymm2gt12,kfabs(beta2L),kmul(PDupwindNthSymm3gt12,kfabs(beta3L)))))))); + kadd(gt12rhsL,kmadd(beta1L,JacPDupwindNthAnti1gt12,kmadd(beta2L,JacPDupwindNthAnti2gt12,kmadd(beta3L,JacPDupwindNthAnti3gt12,kmadd(JacPDupwindNthSymm1gt12,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt12,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt12,kfabs(beta3L)))))))); gt13rhsL = - kadd(gt13rhsL,kmadd(beta1L,PDupwindNthAnti1gt13,kmadd(beta2L,PDupwindNthAnti2gt13,kmadd(beta3L,PDupwindNthAnti3gt13,kmadd(PDupwindNthSymm1gt13,kfabs(beta1L),kmadd(PDupwindNthSymm2gt13,kfabs(beta2L),kmul(PDupwindNthSymm3gt13,kfabs(beta3L)))))))); + kadd(gt13rhsL,kmadd(beta1L,JacPDupwindNthAnti1gt13,kmadd(beta2L,JacPDupwindNthAnti2gt13,kmadd(beta3L,JacPDupwindNthAnti3gt13,kmadd(JacPDupwindNthSymm1gt13,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt13,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt13,kfabs(beta3L)))))))); gt22rhsL = - kadd(gt22rhsL,kmadd(beta1L,PDupwindNthAnti1gt22,kmadd(beta2L,PDupwindNthAnti2gt22,kmadd(beta3L,PDupwindNthAnti3gt22,kmadd(PDupwindNthSymm1gt22,kfabs(beta1L),kmadd(PDupwindNthSymm2gt22,kfabs(beta2L),kmul(PDupwindNthSymm3gt22,kfabs(beta3L)))))))); + kadd(gt22rhsL,kmadd(beta1L,JacPDupwindNthAnti1gt22,kmadd(beta2L,JacPDupwindNthAnti2gt22,kmadd(beta3L,JacPDupwindNthAnti3gt22,kmadd(JacPDupwindNthSymm1gt22,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt22,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt22,kfabs(beta3L)))))))); gt23rhsL = - kadd(gt23rhsL,kmadd(beta1L,PDupwindNthAnti1gt23,kmadd(beta2L,PDupwindNthAnti2gt23,kmadd(beta3L,PDupwindNthAnti3gt23,kmadd(PDupwindNthSymm1gt23,kfabs(beta1L),kmadd(PDupwindNthSymm2gt23,kfabs(beta2L),kmul(PDupwindNthSymm3gt23,kfabs(beta3L)))))))); + kadd(gt23rhsL,kmadd(beta1L,JacPDupwindNthAnti1gt23,kmadd(beta2L,JacPDupwindNthAnti2gt23,kmadd(beta3L,JacPDupwindNthAnti3gt23,kmadd(JacPDupwindNthSymm1gt23,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt23,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt23,kfabs(beta3L)))))))); gt33rhsL = - kadd(gt33rhsL,kmadd(beta1L,PDupwindNthAnti1gt33,kmadd(beta2L,PDupwindNthAnti2gt33,kmadd(beta3L,PDupwindNthAnti3gt33,kmadd(PDupwindNthSymm1gt33,kfabs(beta1L),kmadd(PDupwindNthSymm2gt33,kfabs(beta2L),kmul(PDupwindNthSymm3gt33,kfabs(beta3L)))))))); + kadd(gt33rhsL,kmadd(beta1L,JacPDupwindNthAnti1gt33,kmadd(beta2L,JacPDupwindNthAnti2gt33,kmadd(beta3L,JacPDupwindNthAnti3gt33,kmadd(JacPDupwindNthSymm1gt33,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt33,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt33,kfabs(beta3L)))))))); Xt1rhsL = - kmadd(beta1L,PDupwindNthAnti1Xt1,kmadd(beta2L,PDupwindNthAnti2Xt1,kmadd(beta3L,PDupwindNthAnti3Xt1,kadd(Xt1rhsL,kmadd(PDupwindNthSymm1Xt1,kfabs(beta1L),kmadd(PDupwindNthSymm2Xt1,kfabs(beta2L),kmul(PDupwindNthSymm3Xt1,kfabs(beta3L)))))))); + kmadd(beta1L,JacPDupwindNthAnti1Xt1,kmadd(beta2L,JacPDupwindNthAnti2Xt1,kmadd(beta3L,JacPDupwindNthAnti3Xt1,kadd(Xt1rhsL,kmadd(JacPDupwindNthSymm1Xt1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt1,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt1,kfabs(beta3L)))))))); Xt2rhsL = - kmadd(beta1L,PDupwindNthAnti1Xt2,kmadd(beta2L,PDupwindNthAnti2Xt2,kmadd(beta3L,PDupwindNthAnti3Xt2,kadd(Xt2rhsL,kmadd(PDupwindNthSymm1Xt2,kfabs(beta1L),kmadd(PDupwindNthSymm2Xt2,kfabs(beta2L),kmul(PDupwindNthSymm3Xt2,kfabs(beta3L)))))))); + kmadd(beta1L,JacPDupwindNthAnti1Xt2,kmadd(beta2L,JacPDupwindNthAnti2Xt2,kmadd(beta3L,JacPDupwindNthAnti3Xt2,kadd(Xt2rhsL,kmadd(JacPDupwindNthSymm1Xt2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt2,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt2,kfabs(beta3L)))))))); Xt3rhsL = - kmadd(beta1L,PDupwindNthAnti1Xt3,kmadd(beta2L,PDupwindNthAnti2Xt3,kmadd(beta3L,PDupwindNthAnti3Xt3,kadd(Xt3rhsL,kmadd(PDupwindNthSymm1Xt3,kfabs(beta1L),kmadd(PDupwindNthSymm2Xt3,kfabs(beta2L),kmul(PDupwindNthSymm3Xt3,kfabs(beta3L)))))))); + kmadd(beta1L,JacPDupwindNthAnti1Xt3,kmadd(beta2L,JacPDupwindNthAnti2Xt3,kmadd(beta3L,JacPDupwindNthAnti3Xt3,kadd(Xt3rhsL,kmadd(JacPDupwindNthSymm1Xt3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt3,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt3,kfabs(beta3L)))))))); trKrhsL = - kmadd(beta1L,PDupwindNthAnti1trK,kmadd(beta2L,PDupwindNthAnti2trK,kmadd(beta3L,PDupwindNthAnti3trK,kadd(trKrhsL,kmadd(PDupwindNthSymm1trK,kfabs(beta1L),kmadd(PDupwindNthSymm2trK,kfabs(beta2L),kmul(PDupwindNthSymm3trK,kfabs(beta3L)))))))); + kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kadd(trKrhsL,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L)))))))); At11rhsL = - kadd(At11rhsL,kmadd(beta1L,PDupwindNthAnti1At11,kmadd(beta2L,PDupwindNthAnti2At11,kmadd(beta3L,PDupwindNthAnti3At11,kmadd(PDupwindNthSymm1At11,kfabs(beta1L),kmadd(PDupwindNthSymm2At11,kfabs(beta2L),kmul(PDupwindNthSymm3At11,kfabs(beta3L)))))))); + kadd(At11rhsL,kmadd(beta1L,JacPDupwindNthAnti1At11,kmadd(beta2L,JacPDupwindNthAnti2At11,kmadd(beta3L,JacPDupwindNthAnti3At11,kmadd(JacPDupwindNthSymm1At11,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At11,kfabs(beta2L),kmul(JacPDupwindNthSymm3At11,kfabs(beta3L)))))))); At12rhsL = - kadd(At12rhsL,kmadd(beta1L,PDupwindNthAnti1At12,kmadd(beta2L,PDupwindNthAnti2At12,kmadd(beta3L,PDupwindNthAnti3At12,kmadd(PDupwindNthSymm1At12,kfabs(beta1L),kmadd(PDupwindNthSymm2At12,kfabs(beta2L),kmul(PDupwindNthSymm3At12,kfabs(beta3L)))))))); + kadd(At12rhsL,kmadd(beta1L,JacPDupwindNthAnti1At12,kmadd(beta2L,JacPDupwindNthAnti2At12,kmadd(beta3L,JacPDupwindNthAnti3At12,kmadd(JacPDupwindNthSymm1At12,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At12,kfabs(beta2L),kmul(JacPDupwindNthSymm3At12,kfabs(beta3L)))))))); At13rhsL = - kadd(At13rhsL,kmadd(beta1L,PDupwindNthAnti1At13,kmadd(beta2L,PDupwindNthAnti2At13,kmadd(beta3L,PDupwindNthAnti3At13,kmadd(PDupwindNthSymm1At13,kfabs(beta1L),kmadd(PDupwindNthSymm2At13,kfabs(beta2L),kmul(PDupwindNthSymm3At13,kfabs(beta3L)))))))); + kadd(At13rhsL,kmadd(beta1L,JacPDupwindNthAnti1At13,kmadd(beta2L,JacPDupwindNthAnti2At13,kmadd(beta3L,JacPDupwindNthAnti3At13,kmadd(JacPDupwindNthSymm1At13,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At13,kfabs(beta2L),kmul(JacPDupwindNthSymm3At13,kfabs(beta3L)))))))); At22rhsL = - kadd(At22rhsL,kmadd(beta1L,PDupwindNthAnti1At22,kmadd(beta2L,PDupwindNthAnti2At22,kmadd(beta3L,PDupwindNthAnti3At22,kmadd(PDupwindNthSymm1At22,kfabs(beta1L),kmadd(PDupwindNthSymm2At22,kfabs(beta2L),kmul(PDupwindNthSymm3At22,kfabs(beta3L)))))))); + kadd(At22rhsL,kmadd(beta1L,JacPDupwindNthAnti1At22,kmadd(beta2L,JacPDupwindNthAnti2At22,kmadd(beta3L,JacPDupwindNthAnti3At22,kmadd(JacPDupwindNthSymm1At22,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At22,kfabs(beta2L),kmul(JacPDupwindNthSymm3At22,kfabs(beta3L)))))))); At23rhsL = - kadd(At23rhsL,kmadd(beta1L,PDupwindNthAnti1At23,kmadd(beta2L,PDupwindNthAnti2At23,kmadd(beta3L,PDupwindNthAnti3At23,kmadd(PDupwindNthSymm1At23,kfabs(beta1L),kmadd(PDupwindNthSymm2At23,kfabs(beta2L),kmul(PDupwindNthSymm3At23,kfabs(beta3L)))))))); + kadd(At23rhsL,kmadd(beta1L,JacPDupwindNthAnti1At23,kmadd(beta2L,JacPDupwindNthAnti2At23,kmadd(beta3L,JacPDupwindNthAnti3At23,kmadd(JacPDupwindNthSymm1At23,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At23,kfabs(beta2L),kmul(JacPDupwindNthSymm3At23,kfabs(beta3L)))))))); At33rhsL = - kadd(At33rhsL,kmadd(beta1L,PDupwindNthAnti1At33,kmadd(beta2L,PDupwindNthAnti2At33,kmadd(beta3L,PDupwindNthAnti3At33,kmadd(PDupwindNthSymm1At33,kfabs(beta1L),kmadd(PDupwindNthSymm2At33,kfabs(beta2L),kmul(PDupwindNthSymm3At33,kfabs(beta3L)))))))); + kadd(At33rhsL,kmadd(beta1L,JacPDupwindNthAnti1At33,kmadd(beta2L,JacPDupwindNthAnti2At33,kmadd(beta3L,JacPDupwindNthAnti3At33,kmadd(JacPDupwindNthSymm1At33,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At33,kfabs(beta2L),kmul(JacPDupwindNthSymm3At33,kfabs(beta3L)))))))); alpharhsL = - kmadd(kmadd(beta1L,PDupwindNthAnti1alpha,kmadd(beta2L,PDupwindNthAnti2alpha,kmadd(beta3L,PDupwindNthAnti3alpha,kmadd(PDupwindNthSymm1alpha,kfabs(beta1L),kmadd(PDupwindNthSymm2alpha,kfabs(beta2L),kmul(PDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),alpharhsL); + kmadd(kmadd(beta1L,JacPDupwindNthAnti1alpha,kmadd(beta2L,JacPDupwindNthAnti2alpha,kmadd(beta3L,JacPDupwindNthAnti3alpha,kmadd(JacPDupwindNthSymm1alpha,kfabs(beta1L),kmadd(JacPDupwindNthSymm2alpha,kfabs(beta2L),kmul(JacPDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),alpharhsL); ArhsL = - kmadd(kmadd(beta1L,PDupwindNthAnti1A,kmadd(beta2L,PDupwindNthAnti2A,kmadd(beta3L,PDupwindNthAnti3A,kmadd(PDupwindNthSymm1A,kfabs(beta1L),kmadd(PDupwindNthSymm2A,kfabs(beta2L),kmul(PDupwindNthSymm3A,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),ArhsL); + kmadd(kmadd(beta1L,JacPDupwindNthAnti1A,kmadd(beta2L,JacPDupwindNthAnti2A,kmadd(beta3L,JacPDupwindNthAnti3A,kmadd(JacPDupwindNthSymm1A,kfabs(beta1L),kmadd(JacPDupwindNthSymm2A,kfabs(beta2L),kmul(JacPDupwindNthSymm3A,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),ArhsL); beta1rhsL = - kmadd(kmadd(beta1L,PDupwindNthAnti1beta1,kmadd(beta2L,PDupwindNthAnti2beta1,kmadd(beta3L,PDupwindNthAnti3beta1,kmadd(PDupwindNthSymm1beta1,kfabs(beta1L),kmadd(PDupwindNthSymm2beta1,kfabs(beta2L),kmul(PDupwindNthSymm3beta1,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),beta1rhsL); + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta1,kmadd(beta2L,JacPDupwindNthAnti2beta1,kmadd(beta3L,JacPDupwindNthAnti3beta1,kmadd(JacPDupwindNthSymm1beta1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta1,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta1,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),beta1rhsL); beta2rhsL = - kmadd(kmadd(beta1L,PDupwindNthAnti1beta2,kmadd(beta2L,PDupwindNthAnti2beta2,kmadd(beta3L,PDupwindNthAnti3beta2,kmadd(PDupwindNthSymm1beta2,kfabs(beta1L),kmadd(PDupwindNthSymm2beta2,kfabs(beta2L),kmul(PDupwindNthSymm3beta2,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),beta2rhsL); + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta2,kmadd(beta2L,JacPDupwindNthAnti2beta2,kmadd(beta3L,JacPDupwindNthAnti3beta2,kmadd(JacPDupwindNthSymm1beta2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta2,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta2,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),beta2rhsL); beta3rhsL = - kmadd(kmadd(beta1L,PDupwindNthAnti1beta3,kmadd(beta2L,PDupwindNthAnti2beta3,kmadd(beta3L,PDupwindNthAnti3beta3,kmadd(PDupwindNthSymm1beta3,kfabs(beta1L),kmadd(PDupwindNthSymm2beta3,kfabs(beta2L),kmul(PDupwindNthSymm3beta3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),beta3rhsL); + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta3,kmadd(beta2L,JacPDupwindNthAnti2beta3,kmadd(beta3L,JacPDupwindNthAnti3beta3,kmadd(JacPDupwindNthSymm1beta3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta3,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),beta3rhsL); B1rhsL = - kadd(B1rhsL,kmadd(kmadd(beta1L,ksub(PDupwindNthAnti1B1,PDupwindNthAnti1Xt1),kmadd(beta2L,ksub(PDupwindNthAnti2B1,PDupwindNthAnti2Xt1),kmadd(beta3L,ksub(PDupwindNthAnti3B1,PDupwindNthAnti3Xt1),kmadd(kfabs(beta1L),ksub(PDupwindNthSymm1B1,PDupwindNthSymm1Xt1),kmadd(kfabs(beta2L),ksub(PDupwindNthSymm2B1,PDupwindNthSymm2Xt1),kmul(kfabs(beta3L),ksub(PDupwindNthSymm3B1,PDupwindNthSymm3Xt1))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,PDupwindNthAnti1Xt1,kmadd(beta2L,PDupwindNthAnti2Xt1,kmadd(beta3L,PDupwindNthAnti3Xt1,kmadd(PDupwindNthSymm1Xt1,kfabs(beta1L),kmadd(PDupwindNthSymm2Xt1,kfabs(beta2L),kmul(PDupwindNthSymm3Xt1,kfabs(beta3L))))))),ToReal(ShiftBCoeff)))); + kadd(B1rhsL,kmadd(kmadd(beta1L,ksub(JacPDupwindNthAnti1B1,JacPDupwindNthAnti1Xt1),kmadd(beta2L,ksub(JacPDupwindNthAnti2B1,JacPDupwindNthAnti2Xt1),kmadd(beta3L,ksub(JacPDupwindNthAnti3B1,JacPDupwindNthAnti3Xt1),kmadd(kfabs(beta1L),ksub(JacPDupwindNthSymm1B1,JacPDupwindNthSymm1Xt1),kmadd(kfabs(beta2L),ksub(JacPDupwindNthSymm2B1,JacPDupwindNthSymm2Xt1),kmul(kfabs(beta3L),ksub(JacPDupwindNthSymm3B1,JacPDupwindNthSymm3Xt1))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,JacPDupwindNthAnti1Xt1,kmadd(beta2L,JacPDupwindNthAnti2Xt1,kmadd(beta3L,JacPDupwindNthAnti3Xt1,kmadd(JacPDupwindNthSymm1Xt1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt1,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt1,kfabs(beta3L))))))),ToReal(ShiftBCoeff)))); B2rhsL = - kadd(B2rhsL,kmadd(kmadd(beta1L,ksub(PDupwindNthAnti1B2,PDupwindNthAnti1Xt2),kmadd(beta2L,ksub(PDupwindNthAnti2B2,PDupwindNthAnti2Xt2),kmadd(beta3L,ksub(PDupwindNthAnti3B2,PDupwindNthAnti3Xt2),kmadd(kfabs(beta1L),ksub(PDupwindNthSymm1B2,PDupwindNthSymm1Xt2),kmadd(kfabs(beta2L),ksub(PDupwindNthSymm2B2,PDupwindNthSymm2Xt2),kmul(kfabs(beta3L),ksub(PDupwindNthSymm3B2,PDupwindNthSymm3Xt2))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,PDupwindNthAnti1Xt2,kmadd(beta2L,PDupwindNthAnti2Xt2,kmadd(beta3L,PDupwindNthAnti3Xt2,kmadd(PDupwindNthSymm1Xt2,kfabs(beta1L),kmadd(PDupwindNthSymm2Xt2,kfabs(beta2L),kmul(PDupwindNthSymm3Xt2,kfabs(beta3L))))))),ToReal(ShiftBCoeff)))); + kadd(B2rhsL,kmadd(kmadd(beta1L,ksub(JacPDupwindNthAnti1B2,JacPDupwindNthAnti1Xt2),kmadd(beta2L,ksub(JacPDupwindNthAnti2B2,JacPDupwindNthAnti2Xt2),kmadd(beta3L,ksub(JacPDupwindNthAnti3B2,JacPDupwindNthAnti3Xt2),kmadd(kfabs(beta1L),ksub(JacPDupwindNthSymm1B2,JacPDupwindNthSymm1Xt2),kmadd(kfabs(beta2L),ksub(JacPDupwindNthSymm2B2,JacPDupwindNthSymm2Xt2),kmul(kfabs(beta3L),ksub(JacPDupwindNthSymm3B2,JacPDupwindNthSymm3Xt2))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,JacPDupwindNthAnti1Xt2,kmadd(beta2L,JacPDupwindNthAnti2Xt2,kmadd(beta3L,JacPDupwindNthAnti3Xt2,kmadd(JacPDupwindNthSymm1Xt2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt2,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt2,kfabs(beta3L))))))),ToReal(ShiftBCoeff)))); B3rhsL = - kadd(B3rhsL,kmadd(kmadd(beta1L,ksub(PDupwindNthAnti1B3,PDupwindNthAnti1Xt3),kmadd(beta2L,ksub(PDupwindNthAnti2B3,PDupwindNthAnti2Xt3),kmadd(beta3L,ksub(PDupwindNthAnti3B3,PDupwindNthAnti3Xt3),kmadd(kfabs(beta1L),ksub(PDupwindNthSymm1B3,PDupwindNthSymm1Xt3),kmadd(kfabs(beta2L),ksub(PDupwindNthSymm2B3,PDupwindNthSymm2Xt3),kmul(kfabs(beta3L),ksub(PDupwindNthSymm3B3,PDupwindNthSymm3Xt3))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,PDupwindNthAnti1Xt3,kmadd(beta2L,PDupwindNthAnti2Xt3,kmadd(beta3L,PDupwindNthAnti3Xt3,kmadd(PDupwindNthSymm1Xt3,kfabs(beta1L),kmadd(PDupwindNthSymm2Xt3,kfabs(beta2L),kmul(PDupwindNthSymm3Xt3,kfabs(beta3L))))))),ToReal(ShiftBCoeff)))); + kadd(B3rhsL,kmadd(kmadd(beta1L,ksub(JacPDupwindNthAnti1B3,JacPDupwindNthAnti1Xt3),kmadd(beta2L,ksub(JacPDupwindNthAnti2B3,JacPDupwindNthAnti2Xt3),kmadd(beta3L,ksub(JacPDupwindNthAnti3B3,JacPDupwindNthAnti3Xt3),kmadd(kfabs(beta1L),ksub(JacPDupwindNthSymm1B3,JacPDupwindNthSymm1Xt3),kmadd(kfabs(beta2L),ksub(JacPDupwindNthSymm2B3,JacPDupwindNthSymm2Xt3),kmul(kfabs(beta3L),ksub(JacPDupwindNthSymm3B3,JacPDupwindNthSymm3Xt3))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,JacPDupwindNthAnti1Xt3,kmadd(beta2L,JacPDupwindNthAnti2Xt3,kmadd(beta3L,JacPDupwindNthAnti3Xt3,kmadd(JacPDupwindNthSymm1Xt3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt3,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt3,kfabs(beta3L))))))),ToReal(ShiftBCoeff)))); /* If necessary, store only partial vectors after the first iteration */ diff --git a/ML_BSSN/src/ML_BSSN_Dissipation.cc b/ML_BSSN/src/ML_BSSN_Dissipation.cc index 524b6d8..34683db 100644 --- a/ML_BSSN/src/ML_BSSN_Dissipation.cc +++ b/ML_BSSN/src/ML_BSSN_Dissipation.cc @@ -79,7 +79,24 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons const char *groups[] = {"ML_BSSN::ML_curv","ML_BSSN::ML_curvrhs","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtlapserhs","ML_BSSN::ML_dtshift","ML_BSSN::ML_dtshiftrhs","ML_BSSN::ML_Gamma","ML_BSSN::ML_Gammarhs","ML_BSSN::ML_lapse","ML_BSSN::ML_lapserhs","ML_BSSN::ML_log_confac","ML_BSSN::ML_log_confacrhs","ML_BSSN::ML_metric","ML_BSSN::ML_metricrhs","ML_BSSN::ML_shift","ML_BSSN::ML_shiftrhs","ML_BSSN::ML_trace_curv","ML_BSSN::ML_trace_curvrhs"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Dissipation", 18, groups); - GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Dissipation", 3, 3, 3); + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Dissipation", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Dissipation", 3, 3, 3); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Dissipation", 4, 4, 4); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_Dissipation", 5, 5, 5); + break; + } /* Include user-supplied include files */ @@ -107,24 +124,129 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -189,86 +311,872 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons CCTK_REAL_VEC Xt3rhsL = vec_load(Xt3rhs[index]); + CCTK_REAL_VEC J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + /* Include user supplied include files */ /* Precompute derivatives */ - CCTK_REAL_VEC const PDdissipationNth1A = PDdissipationNth1(&A[index]); - CCTK_REAL_VEC const PDdissipationNth2A = PDdissipationNth2(&A[index]); - CCTK_REAL_VEC const PDdissipationNth3A = PDdissipationNth3(&A[index]); - CCTK_REAL_VEC const PDdissipationNth1alpha = PDdissipationNth1(&alpha[index]); - CCTK_REAL_VEC const PDdissipationNth2alpha = PDdissipationNth2(&alpha[index]); - CCTK_REAL_VEC const PDdissipationNth3alpha = PDdissipationNth3(&alpha[index]); - CCTK_REAL_VEC const PDdissipationNth1At11 = PDdissipationNth1(&At11[index]); - CCTK_REAL_VEC const PDdissipationNth2At11 = PDdissipationNth2(&At11[index]); - CCTK_REAL_VEC const PDdissipationNth3At11 = PDdissipationNth3(&At11[index]); - CCTK_REAL_VEC const PDdissipationNth1At12 = PDdissipationNth1(&At12[index]); - CCTK_REAL_VEC const PDdissipationNth2At12 = PDdissipationNth2(&At12[index]); - CCTK_REAL_VEC const PDdissipationNth3At12 = PDdissipationNth3(&At12[index]); - CCTK_REAL_VEC const PDdissipationNth1At13 = PDdissipationNth1(&At13[index]); - CCTK_REAL_VEC const PDdissipationNth2At13 = PDdissipationNth2(&At13[index]); - CCTK_REAL_VEC const PDdissipationNth3At13 = PDdissipationNth3(&At13[index]); - CCTK_REAL_VEC const PDdissipationNth1At22 = PDdissipationNth1(&At22[index]); - CCTK_REAL_VEC const PDdissipationNth2At22 = PDdissipationNth2(&At22[index]); - CCTK_REAL_VEC const PDdissipationNth3At22 = PDdissipationNth3(&At22[index]); - CCTK_REAL_VEC const PDdissipationNth1At23 = PDdissipationNth1(&At23[index]); - CCTK_REAL_VEC const PDdissipationNth2At23 = PDdissipationNth2(&At23[index]); - CCTK_REAL_VEC const PDdissipationNth3At23 = PDdissipationNth3(&At23[index]); - CCTK_REAL_VEC const PDdissipationNth1At33 = PDdissipationNth1(&At33[index]); - CCTK_REAL_VEC const PDdissipationNth2At33 = PDdissipationNth2(&At33[index]); - CCTK_REAL_VEC const PDdissipationNth3At33 = PDdissipationNth3(&At33[index]); - CCTK_REAL_VEC const PDdissipationNth1B1 = PDdissipationNth1(&B1[index]); - CCTK_REAL_VEC const PDdissipationNth2B1 = PDdissipationNth2(&B1[index]); - CCTK_REAL_VEC const PDdissipationNth3B1 = PDdissipationNth3(&B1[index]); - CCTK_REAL_VEC const PDdissipationNth1B2 = PDdissipationNth1(&B2[index]); - CCTK_REAL_VEC const PDdissipationNth2B2 = PDdissipationNth2(&B2[index]); - CCTK_REAL_VEC const PDdissipationNth3B2 = PDdissipationNth3(&B2[index]); - CCTK_REAL_VEC const PDdissipationNth1B3 = PDdissipationNth1(&B3[index]); - CCTK_REAL_VEC const PDdissipationNth2B3 = PDdissipationNth2(&B3[index]); - CCTK_REAL_VEC const PDdissipationNth3B3 = PDdissipationNth3(&B3[index]); - CCTK_REAL_VEC const PDdissipationNth1beta1 = PDdissipationNth1(&beta1[index]); - CCTK_REAL_VEC const PDdissipationNth2beta1 = PDdissipationNth2(&beta1[index]); - CCTK_REAL_VEC const PDdissipationNth3beta1 = PDdissipationNth3(&beta1[index]); - CCTK_REAL_VEC const PDdissipationNth1beta2 = PDdissipationNth1(&beta2[index]); - CCTK_REAL_VEC const PDdissipationNth2beta2 = PDdissipationNth2(&beta2[index]); - CCTK_REAL_VEC const PDdissipationNth3beta2 = PDdissipationNth3(&beta2[index]); - CCTK_REAL_VEC const PDdissipationNth1beta3 = PDdissipationNth1(&beta3[index]); - CCTK_REAL_VEC const PDdissipationNth2beta3 = PDdissipationNth2(&beta3[index]); - CCTK_REAL_VEC const PDdissipationNth3beta3 = PDdissipationNth3(&beta3[index]); - CCTK_REAL_VEC const PDdissipationNth1gt11 = PDdissipationNth1(>11[index]); - CCTK_REAL_VEC const PDdissipationNth2gt11 = PDdissipationNth2(>11[index]); - CCTK_REAL_VEC const PDdissipationNth3gt11 = PDdissipationNth3(>11[index]); - CCTK_REAL_VEC const PDdissipationNth1gt12 = PDdissipationNth1(>12[index]); - CCTK_REAL_VEC const PDdissipationNth2gt12 = PDdissipationNth2(>12[index]); - CCTK_REAL_VEC const PDdissipationNth3gt12 = PDdissipationNth3(>12[index]); - CCTK_REAL_VEC const PDdissipationNth1gt13 = PDdissipationNth1(>13[index]); - CCTK_REAL_VEC const PDdissipationNth2gt13 = PDdissipationNth2(>13[index]); - CCTK_REAL_VEC const PDdissipationNth3gt13 = PDdissipationNth3(>13[index]); - CCTK_REAL_VEC const PDdissipationNth1gt22 = PDdissipationNth1(>22[index]); - CCTK_REAL_VEC const PDdissipationNth2gt22 = PDdissipationNth2(>22[index]); - CCTK_REAL_VEC const PDdissipationNth3gt22 = PDdissipationNth3(>22[index]); - CCTK_REAL_VEC const PDdissipationNth1gt23 = PDdissipationNth1(>23[index]); - CCTK_REAL_VEC const PDdissipationNth2gt23 = PDdissipationNth2(>23[index]); - CCTK_REAL_VEC const PDdissipationNth3gt23 = PDdissipationNth3(>23[index]); - CCTK_REAL_VEC const PDdissipationNth1gt33 = PDdissipationNth1(>33[index]); - CCTK_REAL_VEC const PDdissipationNth2gt33 = PDdissipationNth2(>33[index]); - CCTK_REAL_VEC const PDdissipationNth3gt33 = PDdissipationNth3(>33[index]); - CCTK_REAL_VEC const PDdissipationNth1phi = PDdissipationNth1(&phi[index]); - CCTK_REAL_VEC const PDdissipationNth2phi = PDdissipationNth2(&phi[index]); - CCTK_REAL_VEC const PDdissipationNth3phi = PDdissipationNth3(&phi[index]); - CCTK_REAL_VEC const PDdissipationNth1trK = PDdissipationNth1(&trK[index]); - CCTK_REAL_VEC const PDdissipationNth2trK = PDdissipationNth2(&trK[index]); - CCTK_REAL_VEC const PDdissipationNth3trK = PDdissipationNth3(&trK[index]); - CCTK_REAL_VEC const PDdissipationNth1Xt1 = PDdissipationNth1(&Xt1[index]); - CCTK_REAL_VEC const PDdissipationNth2Xt1 = PDdissipationNth2(&Xt1[index]); - CCTK_REAL_VEC const PDdissipationNth3Xt1 = PDdissipationNth3(&Xt1[index]); - CCTK_REAL_VEC const PDdissipationNth1Xt2 = PDdissipationNth1(&Xt2[index]); - CCTK_REAL_VEC const PDdissipationNth2Xt2 = PDdissipationNth2(&Xt2[index]); - CCTK_REAL_VEC const PDdissipationNth3Xt2 = PDdissipationNth3(&Xt2[index]); - CCTK_REAL_VEC const PDdissipationNth1Xt3 = PDdissipationNth1(&Xt3[index]); - CCTK_REAL_VEC const PDdissipationNth2Xt3 = PDdissipationNth2(&Xt3[index]); - CCTK_REAL_VEC const PDdissipationNth3Xt3 = PDdissipationNth3(&Xt3[index]); + CCTK_REAL_VEC PDdissipationNth1A; + CCTK_REAL_VEC PDdissipationNth2A; + CCTK_REAL_VEC PDdissipationNth3A; + CCTK_REAL_VEC PDdissipationNth1alpha; + CCTK_REAL_VEC PDdissipationNth2alpha; + CCTK_REAL_VEC PDdissipationNth3alpha; + CCTK_REAL_VEC PDdissipationNth1At11; + CCTK_REAL_VEC PDdissipationNth2At11; + CCTK_REAL_VEC PDdissipationNth3At11; + CCTK_REAL_VEC PDdissipationNth1At12; + CCTK_REAL_VEC PDdissipationNth2At12; + CCTK_REAL_VEC PDdissipationNth3At12; + CCTK_REAL_VEC PDdissipationNth1At13; + CCTK_REAL_VEC PDdissipationNth2At13; + CCTK_REAL_VEC PDdissipationNth3At13; + CCTK_REAL_VEC PDdissipationNth1At22; + CCTK_REAL_VEC PDdissipationNth2At22; + CCTK_REAL_VEC PDdissipationNth3At22; + CCTK_REAL_VEC PDdissipationNth1At23; + CCTK_REAL_VEC PDdissipationNth2At23; + CCTK_REAL_VEC PDdissipationNth3At23; + CCTK_REAL_VEC PDdissipationNth1At33; + CCTK_REAL_VEC PDdissipationNth2At33; + CCTK_REAL_VEC PDdissipationNth3At33; + CCTK_REAL_VEC PDdissipationNth1B1; + CCTK_REAL_VEC PDdissipationNth2B1; + CCTK_REAL_VEC PDdissipationNth3B1; + CCTK_REAL_VEC PDdissipationNth1B2; + CCTK_REAL_VEC PDdissipationNth2B2; + CCTK_REAL_VEC PDdissipationNth3B2; + CCTK_REAL_VEC PDdissipationNth1B3; + CCTK_REAL_VEC PDdissipationNth2B3; + CCTK_REAL_VEC PDdissipationNth3B3; + CCTK_REAL_VEC PDdissipationNth1beta1; + CCTK_REAL_VEC PDdissipationNth2beta1; + CCTK_REAL_VEC PDdissipationNth3beta1; + CCTK_REAL_VEC PDdissipationNth1beta2; + CCTK_REAL_VEC PDdissipationNth2beta2; + CCTK_REAL_VEC PDdissipationNth3beta2; + CCTK_REAL_VEC PDdissipationNth1beta3; + CCTK_REAL_VEC PDdissipationNth2beta3; + CCTK_REAL_VEC PDdissipationNth3beta3; + CCTK_REAL_VEC PDdissipationNth1gt11; + CCTK_REAL_VEC PDdissipationNth2gt11; + CCTK_REAL_VEC PDdissipationNth3gt11; + CCTK_REAL_VEC PDdissipationNth1gt12; + CCTK_REAL_VEC PDdissipationNth2gt12; + CCTK_REAL_VEC PDdissipationNth3gt12; + CCTK_REAL_VEC PDdissipationNth1gt13; + CCTK_REAL_VEC PDdissipationNth2gt13; + CCTK_REAL_VEC PDdissipationNth3gt13; + CCTK_REAL_VEC PDdissipationNth1gt22; + CCTK_REAL_VEC PDdissipationNth2gt22; + CCTK_REAL_VEC PDdissipationNth3gt22; + CCTK_REAL_VEC PDdissipationNth1gt23; + CCTK_REAL_VEC PDdissipationNth2gt23; + CCTK_REAL_VEC PDdissipationNth3gt23; + CCTK_REAL_VEC PDdissipationNth1gt33; + CCTK_REAL_VEC PDdissipationNth2gt33; + CCTK_REAL_VEC PDdissipationNth3gt33; + CCTK_REAL_VEC PDdissipationNth1phi; + CCTK_REAL_VEC PDdissipationNth2phi; + CCTK_REAL_VEC PDdissipationNth3phi; + CCTK_REAL_VEC PDdissipationNth1trK; + CCTK_REAL_VEC PDdissipationNth2trK; + CCTK_REAL_VEC PDdissipationNth3trK; + CCTK_REAL_VEC PDdissipationNth1Xt1; + CCTK_REAL_VEC PDdissipationNth2Xt1; + CCTK_REAL_VEC PDdissipationNth3Xt1; + CCTK_REAL_VEC PDdissipationNth1Xt2; + CCTK_REAL_VEC PDdissipationNth2Xt2; + CCTK_REAL_VEC PDdissipationNth3Xt2; + CCTK_REAL_VEC PDdissipationNth1Xt3; + CCTK_REAL_VEC PDdissipationNth2Xt3; + CCTK_REAL_VEC PDdissipationNth3Xt3; + + switch(fdOrder) + { + case 2: + PDdissipationNth1A = PDdissipationNthfdOrder21(&A[index]); + PDdissipationNth2A = PDdissipationNthfdOrder22(&A[index]); + PDdissipationNth3A = PDdissipationNthfdOrder23(&A[index]); + PDdissipationNth1alpha = PDdissipationNthfdOrder21(&alpha[index]); + PDdissipationNth2alpha = PDdissipationNthfdOrder22(&alpha[index]); + PDdissipationNth3alpha = PDdissipationNthfdOrder23(&alpha[index]); + PDdissipationNth1At11 = PDdissipationNthfdOrder21(&At11[index]); + PDdissipationNth2At11 = PDdissipationNthfdOrder22(&At11[index]); + PDdissipationNth3At11 = PDdissipationNthfdOrder23(&At11[index]); + PDdissipationNth1At12 = PDdissipationNthfdOrder21(&At12[index]); + PDdissipationNth2At12 = PDdissipationNthfdOrder22(&At12[index]); + PDdissipationNth3At12 = PDdissipationNthfdOrder23(&At12[index]); + PDdissipationNth1At13 = PDdissipationNthfdOrder21(&At13[index]); + PDdissipationNth2At13 = PDdissipationNthfdOrder22(&At13[index]); + PDdissipationNth3At13 = PDdissipationNthfdOrder23(&At13[index]); + PDdissipationNth1At22 = PDdissipationNthfdOrder21(&At22[index]); + PDdissipationNth2At22 = PDdissipationNthfdOrder22(&At22[index]); + PDdissipationNth3At22 = PDdissipationNthfdOrder23(&At22[index]); + PDdissipationNth1At23 = PDdissipationNthfdOrder21(&At23[index]); + PDdissipationNth2At23 = PDdissipationNthfdOrder22(&At23[index]); + PDdissipationNth3At23 = PDdissipationNthfdOrder23(&At23[index]); + PDdissipationNth1At33 = PDdissipationNthfdOrder21(&At33[index]); + PDdissipationNth2At33 = PDdissipationNthfdOrder22(&At33[index]); + PDdissipationNth3At33 = PDdissipationNthfdOrder23(&At33[index]); + PDdissipationNth1B1 = PDdissipationNthfdOrder21(&B1[index]); + PDdissipationNth2B1 = PDdissipationNthfdOrder22(&B1[index]); + PDdissipationNth3B1 = PDdissipationNthfdOrder23(&B1[index]); + PDdissipationNth1B2 = PDdissipationNthfdOrder21(&B2[index]); + PDdissipationNth2B2 = PDdissipationNthfdOrder22(&B2[index]); + PDdissipationNth3B2 = PDdissipationNthfdOrder23(&B2[index]); + PDdissipationNth1B3 = PDdissipationNthfdOrder21(&B3[index]); + PDdissipationNth2B3 = PDdissipationNthfdOrder22(&B3[index]); + PDdissipationNth3B3 = PDdissipationNthfdOrder23(&B3[index]); + PDdissipationNth1beta1 = PDdissipationNthfdOrder21(&beta1[index]); + PDdissipationNth2beta1 = PDdissipationNthfdOrder22(&beta1[index]); + PDdissipationNth3beta1 = PDdissipationNthfdOrder23(&beta1[index]); + PDdissipationNth1beta2 = PDdissipationNthfdOrder21(&beta2[index]); + PDdissipationNth2beta2 = PDdissipationNthfdOrder22(&beta2[index]); + PDdissipationNth3beta2 = PDdissipationNthfdOrder23(&beta2[index]); + PDdissipationNth1beta3 = PDdissipationNthfdOrder21(&beta3[index]); + PDdissipationNth2beta3 = PDdissipationNthfdOrder22(&beta3[index]); + PDdissipationNth3beta3 = PDdissipationNthfdOrder23(&beta3[index]); + PDdissipationNth1gt11 = PDdissipationNthfdOrder21(>11[index]); + PDdissipationNth2gt11 = PDdissipationNthfdOrder22(>11[index]); + PDdissipationNth3gt11 = PDdissipationNthfdOrder23(>11[index]); + PDdissipationNth1gt12 = PDdissipationNthfdOrder21(>12[index]); + PDdissipationNth2gt12 = PDdissipationNthfdOrder22(>12[index]); + PDdissipationNth3gt12 = PDdissipationNthfdOrder23(>12[index]); + PDdissipationNth1gt13 = PDdissipationNthfdOrder21(>13[index]); + PDdissipationNth2gt13 = PDdissipationNthfdOrder22(>13[index]); + PDdissipationNth3gt13 = PDdissipationNthfdOrder23(>13[index]); + PDdissipationNth1gt22 = PDdissipationNthfdOrder21(>22[index]); + PDdissipationNth2gt22 = PDdissipationNthfdOrder22(>22[index]); + PDdissipationNth3gt22 = PDdissipationNthfdOrder23(>22[index]); + PDdissipationNth1gt23 = PDdissipationNthfdOrder21(>23[index]); + PDdissipationNth2gt23 = PDdissipationNthfdOrder22(>23[index]); + PDdissipationNth3gt23 = PDdissipationNthfdOrder23(>23[index]); + PDdissipationNth1gt33 = PDdissipationNthfdOrder21(>33[index]); + PDdissipationNth2gt33 = PDdissipationNthfdOrder22(>33[index]); + PDdissipationNth3gt33 = PDdissipationNthfdOrder23(>33[index]); + PDdissipationNth1phi = PDdissipationNthfdOrder21(&phi[index]); + PDdissipationNth2phi = PDdissipationNthfdOrder22(&phi[index]); + PDdissipationNth3phi = PDdissipationNthfdOrder23(&phi[index]); + PDdissipationNth1trK = PDdissipationNthfdOrder21(&trK[index]); + PDdissipationNth2trK = PDdissipationNthfdOrder22(&trK[index]); + PDdissipationNth3trK = PDdissipationNthfdOrder23(&trK[index]); + PDdissipationNth1Xt1 = PDdissipationNthfdOrder21(&Xt1[index]); + PDdissipationNth2Xt1 = PDdissipationNthfdOrder22(&Xt1[index]); + PDdissipationNth3Xt1 = PDdissipationNthfdOrder23(&Xt1[index]); + PDdissipationNth1Xt2 = PDdissipationNthfdOrder21(&Xt2[index]); + PDdissipationNth2Xt2 = PDdissipationNthfdOrder22(&Xt2[index]); + PDdissipationNth3Xt2 = PDdissipationNthfdOrder23(&Xt2[index]); + PDdissipationNth1Xt3 = PDdissipationNthfdOrder21(&Xt3[index]); + PDdissipationNth2Xt3 = PDdissipationNthfdOrder22(&Xt3[index]); + PDdissipationNth3Xt3 = PDdissipationNthfdOrder23(&Xt3[index]); + break; + + case 4: + PDdissipationNth1A = PDdissipationNthfdOrder41(&A[index]); + PDdissipationNth2A = PDdissipationNthfdOrder42(&A[index]); + PDdissipationNth3A = PDdissipationNthfdOrder43(&A[index]); + PDdissipationNth1alpha = PDdissipationNthfdOrder41(&alpha[index]); + PDdissipationNth2alpha = PDdissipationNthfdOrder42(&alpha[index]); + PDdissipationNth3alpha = PDdissipationNthfdOrder43(&alpha[index]); + PDdissipationNth1At11 = PDdissipationNthfdOrder41(&At11[index]); + PDdissipationNth2At11 = PDdissipationNthfdOrder42(&At11[index]); + PDdissipationNth3At11 = PDdissipationNthfdOrder43(&At11[index]); + PDdissipationNth1At12 = PDdissipationNthfdOrder41(&At12[index]); + PDdissipationNth2At12 = PDdissipationNthfdOrder42(&At12[index]); + PDdissipationNth3At12 = PDdissipationNthfdOrder43(&At12[index]); + PDdissipationNth1At13 = PDdissipationNthfdOrder41(&At13[index]); + PDdissipationNth2At13 = PDdissipationNthfdOrder42(&At13[index]); + PDdissipationNth3At13 = PDdissipationNthfdOrder43(&At13[index]); + PDdissipationNth1At22 = PDdissipationNthfdOrder41(&At22[index]); + PDdissipationNth2At22 = PDdissipationNthfdOrder42(&At22[index]); + PDdissipationNth3At22 = PDdissipationNthfdOrder43(&At22[index]); + PDdissipationNth1At23 = PDdissipationNthfdOrder41(&At23[index]); + PDdissipationNth2At23 = PDdissipationNthfdOrder42(&At23[index]); + PDdissipationNth3At23 = PDdissipationNthfdOrder43(&At23[index]); + PDdissipationNth1At33 = PDdissipationNthfdOrder41(&At33[index]); + PDdissipationNth2At33 = PDdissipationNthfdOrder42(&At33[index]); + PDdissipationNth3At33 = PDdissipationNthfdOrder43(&At33[index]); + PDdissipationNth1B1 = PDdissipationNthfdOrder41(&B1[index]); + PDdissipationNth2B1 = PDdissipationNthfdOrder42(&B1[index]); + PDdissipationNth3B1 = PDdissipationNthfdOrder43(&B1[index]); + PDdissipationNth1B2 = PDdissipationNthfdOrder41(&B2[index]); + PDdissipationNth2B2 = PDdissipationNthfdOrder42(&B2[index]); + PDdissipationNth3B2 = PDdissipationNthfdOrder43(&B2[index]); + PDdissipationNth1B3 = PDdissipationNthfdOrder41(&B3[index]); + PDdissipationNth2B3 = PDdissipationNthfdOrder42(&B3[index]); + PDdissipationNth3B3 = PDdissipationNthfdOrder43(&B3[index]); + PDdissipationNth1beta1 = PDdissipationNthfdOrder41(&beta1[index]); + PDdissipationNth2beta1 = PDdissipationNthfdOrder42(&beta1[index]); + PDdissipationNth3beta1 = PDdissipationNthfdOrder43(&beta1[index]); + PDdissipationNth1beta2 = PDdissipationNthfdOrder41(&beta2[index]); + PDdissipationNth2beta2 = PDdissipationNthfdOrder42(&beta2[index]); + PDdissipationNth3beta2 = PDdissipationNthfdOrder43(&beta2[index]); + PDdissipationNth1beta3 = PDdissipationNthfdOrder41(&beta3[index]); + PDdissipationNth2beta3 = PDdissipationNthfdOrder42(&beta3[index]); + PDdissipationNth3beta3 = PDdissipationNthfdOrder43(&beta3[index]); + PDdissipationNth1gt11 = PDdissipationNthfdOrder41(>11[index]); + PDdissipationNth2gt11 = PDdissipationNthfdOrder42(>11[index]); + PDdissipationNth3gt11 = PDdissipationNthfdOrder43(>11[index]); + PDdissipationNth1gt12 = PDdissipationNthfdOrder41(>12[index]); + PDdissipationNth2gt12 = PDdissipationNthfdOrder42(>12[index]); + PDdissipationNth3gt12 = PDdissipationNthfdOrder43(>12[index]); + PDdissipationNth1gt13 = PDdissipationNthfdOrder41(>13[index]); + PDdissipationNth2gt13 = PDdissipationNthfdOrder42(>13[index]); + PDdissipationNth3gt13 = PDdissipationNthfdOrder43(>13[index]); + PDdissipationNth1gt22 = PDdissipationNthfdOrder41(>22[index]); + PDdissipationNth2gt22 = PDdissipationNthfdOrder42(>22[index]); + PDdissipationNth3gt22 = PDdissipationNthfdOrder43(>22[index]); + PDdissipationNth1gt23 = PDdissipationNthfdOrder41(>23[index]); + PDdissipationNth2gt23 = PDdissipationNthfdOrder42(>23[index]); + PDdissipationNth3gt23 = PDdissipationNthfdOrder43(>23[index]); + PDdissipationNth1gt33 = PDdissipationNthfdOrder41(>33[index]); + PDdissipationNth2gt33 = PDdissipationNthfdOrder42(>33[index]); + PDdissipationNth3gt33 = PDdissipationNthfdOrder43(>33[index]); + PDdissipationNth1phi = PDdissipationNthfdOrder41(&phi[index]); + PDdissipationNth2phi = PDdissipationNthfdOrder42(&phi[index]); + PDdissipationNth3phi = PDdissipationNthfdOrder43(&phi[index]); + PDdissipationNth1trK = PDdissipationNthfdOrder41(&trK[index]); + PDdissipationNth2trK = PDdissipationNthfdOrder42(&trK[index]); + PDdissipationNth3trK = PDdissipationNthfdOrder43(&trK[index]); + PDdissipationNth1Xt1 = PDdissipationNthfdOrder41(&Xt1[index]); + PDdissipationNth2Xt1 = PDdissipationNthfdOrder42(&Xt1[index]); + PDdissipationNth3Xt1 = PDdissipationNthfdOrder43(&Xt1[index]); + PDdissipationNth1Xt2 = PDdissipationNthfdOrder41(&Xt2[index]); + PDdissipationNth2Xt2 = PDdissipationNthfdOrder42(&Xt2[index]); + PDdissipationNth3Xt2 = PDdissipationNthfdOrder43(&Xt2[index]); + PDdissipationNth1Xt3 = PDdissipationNthfdOrder41(&Xt3[index]); + PDdissipationNth2Xt3 = PDdissipationNthfdOrder42(&Xt3[index]); + PDdissipationNth3Xt3 = PDdissipationNthfdOrder43(&Xt3[index]); + break; + + case 6: + PDdissipationNth1A = PDdissipationNthfdOrder61(&A[index]); + PDdissipationNth2A = PDdissipationNthfdOrder62(&A[index]); + PDdissipationNth3A = PDdissipationNthfdOrder63(&A[index]); + PDdissipationNth1alpha = PDdissipationNthfdOrder61(&alpha[index]); + PDdissipationNth2alpha = PDdissipationNthfdOrder62(&alpha[index]); + PDdissipationNth3alpha = PDdissipationNthfdOrder63(&alpha[index]); + PDdissipationNth1At11 = PDdissipationNthfdOrder61(&At11[index]); + PDdissipationNth2At11 = PDdissipationNthfdOrder62(&At11[index]); + PDdissipationNth3At11 = PDdissipationNthfdOrder63(&At11[index]); + PDdissipationNth1At12 = PDdissipationNthfdOrder61(&At12[index]); + PDdissipationNth2At12 = PDdissipationNthfdOrder62(&At12[index]); + PDdissipationNth3At12 = PDdissipationNthfdOrder63(&At12[index]); + PDdissipationNth1At13 = PDdissipationNthfdOrder61(&At13[index]); + PDdissipationNth2At13 = PDdissipationNthfdOrder62(&At13[index]); + PDdissipationNth3At13 = PDdissipationNthfdOrder63(&At13[index]); + PDdissipationNth1At22 = PDdissipationNthfdOrder61(&At22[index]); + PDdissipationNth2At22 = PDdissipationNthfdOrder62(&At22[index]); + PDdissipationNth3At22 = PDdissipationNthfdOrder63(&At22[index]); + PDdissipationNth1At23 = PDdissipationNthfdOrder61(&At23[index]); + PDdissipationNth2At23 = PDdissipationNthfdOrder62(&At23[index]); + PDdissipationNth3At23 = PDdissipationNthfdOrder63(&At23[index]); + PDdissipationNth1At33 = PDdissipationNthfdOrder61(&At33[index]); + PDdissipationNth2At33 = PDdissipationNthfdOrder62(&At33[index]); + PDdissipationNth3At33 = PDdissipationNthfdOrder63(&At33[index]); + PDdissipationNth1B1 = PDdissipationNthfdOrder61(&B1[index]); + PDdissipationNth2B1 = PDdissipationNthfdOrder62(&B1[index]); + PDdissipationNth3B1 = PDdissipationNthfdOrder63(&B1[index]); + PDdissipationNth1B2 = PDdissipationNthfdOrder61(&B2[index]); + PDdissipationNth2B2 = PDdissipationNthfdOrder62(&B2[index]); + PDdissipationNth3B2 = PDdissipationNthfdOrder63(&B2[index]); + PDdissipationNth1B3 = PDdissipationNthfdOrder61(&B3[index]); + PDdissipationNth2B3 = PDdissipationNthfdOrder62(&B3[index]); + PDdissipationNth3B3 = PDdissipationNthfdOrder63(&B3[index]); + PDdissipationNth1beta1 = PDdissipationNthfdOrder61(&beta1[index]); + PDdissipationNth2beta1 = PDdissipationNthfdOrder62(&beta1[index]); + PDdissipationNth3beta1 = PDdissipationNthfdOrder63(&beta1[index]); + PDdissipationNth1beta2 = PDdissipationNthfdOrder61(&beta2[index]); + PDdissipationNth2beta2 = PDdissipationNthfdOrder62(&beta2[index]); + PDdissipationNth3beta2 = PDdissipationNthfdOrder63(&beta2[index]); + PDdissipationNth1beta3 = PDdissipationNthfdOrder61(&beta3[index]); + PDdissipationNth2beta3 = PDdissipationNthfdOrder62(&beta3[index]); + PDdissipationNth3beta3 = PDdissipationNthfdOrder63(&beta3[index]); + PDdissipationNth1gt11 = PDdissipationNthfdOrder61(>11[index]); + PDdissipationNth2gt11 = PDdissipationNthfdOrder62(>11[index]); + PDdissipationNth3gt11 = PDdissipationNthfdOrder63(>11[index]); + PDdissipationNth1gt12 = PDdissipationNthfdOrder61(>12[index]); + PDdissipationNth2gt12 = PDdissipationNthfdOrder62(>12[index]); + PDdissipationNth3gt12 = PDdissipationNthfdOrder63(>12[index]); + PDdissipationNth1gt13 = PDdissipationNthfdOrder61(>13[index]); + PDdissipationNth2gt13 = PDdissipationNthfdOrder62(>13[index]); + PDdissipationNth3gt13 = PDdissipationNthfdOrder63(>13[index]); + PDdissipationNth1gt22 = PDdissipationNthfdOrder61(>22[index]); + PDdissipationNth2gt22 = PDdissipationNthfdOrder62(>22[index]); + PDdissipationNth3gt22 = PDdissipationNthfdOrder63(>22[index]); + PDdissipationNth1gt23 = PDdissipationNthfdOrder61(>23[index]); + PDdissipationNth2gt23 = PDdissipationNthfdOrder62(>23[index]); + PDdissipationNth3gt23 = PDdissipationNthfdOrder63(>23[index]); + PDdissipationNth1gt33 = PDdissipationNthfdOrder61(>33[index]); + PDdissipationNth2gt33 = PDdissipationNthfdOrder62(>33[index]); + PDdissipationNth3gt33 = PDdissipationNthfdOrder63(>33[index]); + PDdissipationNth1phi = PDdissipationNthfdOrder61(&phi[index]); + PDdissipationNth2phi = PDdissipationNthfdOrder62(&phi[index]); + PDdissipationNth3phi = PDdissipationNthfdOrder63(&phi[index]); + PDdissipationNth1trK = PDdissipationNthfdOrder61(&trK[index]); + PDdissipationNth2trK = PDdissipationNthfdOrder62(&trK[index]); + PDdissipationNth3trK = PDdissipationNthfdOrder63(&trK[index]); + PDdissipationNth1Xt1 = PDdissipationNthfdOrder61(&Xt1[index]); + PDdissipationNth2Xt1 = PDdissipationNthfdOrder62(&Xt1[index]); + PDdissipationNth3Xt1 = PDdissipationNthfdOrder63(&Xt1[index]); + PDdissipationNth1Xt2 = PDdissipationNthfdOrder61(&Xt2[index]); + PDdissipationNth2Xt2 = PDdissipationNthfdOrder62(&Xt2[index]); + PDdissipationNth3Xt2 = PDdissipationNthfdOrder63(&Xt2[index]); + PDdissipationNth1Xt3 = PDdissipationNthfdOrder61(&Xt3[index]); + PDdissipationNth2Xt3 = PDdissipationNthfdOrder62(&Xt3[index]); + PDdissipationNth3Xt3 = PDdissipationNthfdOrder63(&Xt3[index]); + break; + + case 8: + PDdissipationNth1A = PDdissipationNthfdOrder81(&A[index]); + PDdissipationNth2A = PDdissipationNthfdOrder82(&A[index]); + PDdissipationNth3A = PDdissipationNthfdOrder83(&A[index]); + PDdissipationNth1alpha = PDdissipationNthfdOrder81(&alpha[index]); + PDdissipationNth2alpha = PDdissipationNthfdOrder82(&alpha[index]); + PDdissipationNth3alpha = PDdissipationNthfdOrder83(&alpha[index]); + PDdissipationNth1At11 = PDdissipationNthfdOrder81(&At11[index]); + PDdissipationNth2At11 = PDdissipationNthfdOrder82(&At11[index]); + PDdissipationNth3At11 = PDdissipationNthfdOrder83(&At11[index]); + PDdissipationNth1At12 = PDdissipationNthfdOrder81(&At12[index]); + PDdissipationNth2At12 = PDdissipationNthfdOrder82(&At12[index]); + PDdissipationNth3At12 = PDdissipationNthfdOrder83(&At12[index]); + PDdissipationNth1At13 = PDdissipationNthfdOrder81(&At13[index]); + PDdissipationNth2At13 = PDdissipationNthfdOrder82(&At13[index]); + PDdissipationNth3At13 = PDdissipationNthfdOrder83(&At13[index]); + PDdissipationNth1At22 = PDdissipationNthfdOrder81(&At22[index]); + PDdissipationNth2At22 = PDdissipationNthfdOrder82(&At22[index]); + PDdissipationNth3At22 = PDdissipationNthfdOrder83(&At22[index]); + PDdissipationNth1At23 = PDdissipationNthfdOrder81(&At23[index]); + PDdissipationNth2At23 = PDdissipationNthfdOrder82(&At23[index]); + PDdissipationNth3At23 = PDdissipationNthfdOrder83(&At23[index]); + PDdissipationNth1At33 = PDdissipationNthfdOrder81(&At33[index]); + PDdissipationNth2At33 = PDdissipationNthfdOrder82(&At33[index]); + PDdissipationNth3At33 = PDdissipationNthfdOrder83(&At33[index]); + PDdissipationNth1B1 = PDdissipationNthfdOrder81(&B1[index]); + PDdissipationNth2B1 = PDdissipationNthfdOrder82(&B1[index]); + PDdissipationNth3B1 = PDdissipationNthfdOrder83(&B1[index]); + PDdissipationNth1B2 = PDdissipationNthfdOrder81(&B2[index]); + PDdissipationNth2B2 = PDdissipationNthfdOrder82(&B2[index]); + PDdissipationNth3B2 = PDdissipationNthfdOrder83(&B2[index]); + PDdissipationNth1B3 = PDdissipationNthfdOrder81(&B3[index]); + PDdissipationNth2B3 = PDdissipationNthfdOrder82(&B3[index]); + PDdissipationNth3B3 = PDdissipationNthfdOrder83(&B3[index]); + PDdissipationNth1beta1 = PDdissipationNthfdOrder81(&beta1[index]); + PDdissipationNth2beta1 = PDdissipationNthfdOrder82(&beta1[index]); + PDdissipationNth3beta1 = PDdissipationNthfdOrder83(&beta1[index]); + PDdissipationNth1beta2 = PDdissipationNthfdOrder81(&beta2[index]); + PDdissipationNth2beta2 = PDdissipationNthfdOrder82(&beta2[index]); + PDdissipationNth3beta2 = PDdissipationNthfdOrder83(&beta2[index]); + PDdissipationNth1beta3 = PDdissipationNthfdOrder81(&beta3[index]); + PDdissipationNth2beta3 = PDdissipationNthfdOrder82(&beta3[index]); + PDdissipationNth3beta3 = PDdissipationNthfdOrder83(&beta3[index]); + PDdissipationNth1gt11 = PDdissipationNthfdOrder81(>11[index]); + PDdissipationNth2gt11 = PDdissipationNthfdOrder82(>11[index]); + PDdissipationNth3gt11 = PDdissipationNthfdOrder83(>11[index]); + PDdissipationNth1gt12 = PDdissipationNthfdOrder81(>12[index]); + PDdissipationNth2gt12 = PDdissipationNthfdOrder82(>12[index]); + PDdissipationNth3gt12 = PDdissipationNthfdOrder83(>12[index]); + PDdissipationNth1gt13 = PDdissipationNthfdOrder81(>13[index]); + PDdissipationNth2gt13 = PDdissipationNthfdOrder82(>13[index]); + PDdissipationNth3gt13 = PDdissipationNthfdOrder83(>13[index]); + PDdissipationNth1gt22 = PDdissipationNthfdOrder81(>22[index]); + PDdissipationNth2gt22 = PDdissipationNthfdOrder82(>22[index]); + PDdissipationNth3gt22 = PDdissipationNthfdOrder83(>22[index]); + PDdissipationNth1gt23 = PDdissipationNthfdOrder81(>23[index]); + PDdissipationNth2gt23 = PDdissipationNthfdOrder82(>23[index]); + PDdissipationNth3gt23 = PDdissipationNthfdOrder83(>23[index]); + PDdissipationNth1gt33 = PDdissipationNthfdOrder81(>33[index]); + PDdissipationNth2gt33 = PDdissipationNthfdOrder82(>33[index]); + PDdissipationNth3gt33 = PDdissipationNthfdOrder83(>33[index]); + PDdissipationNth1phi = PDdissipationNthfdOrder81(&phi[index]); + PDdissipationNth2phi = PDdissipationNthfdOrder82(&phi[index]); + PDdissipationNth3phi = PDdissipationNthfdOrder83(&phi[index]); + PDdissipationNth1trK = PDdissipationNthfdOrder81(&trK[index]); + PDdissipationNth2trK = PDdissipationNthfdOrder82(&trK[index]); + PDdissipationNth3trK = PDdissipationNthfdOrder83(&trK[index]); + PDdissipationNth1Xt1 = PDdissipationNthfdOrder81(&Xt1[index]); + PDdissipationNth2Xt1 = PDdissipationNthfdOrder82(&Xt1[index]); + PDdissipationNth3Xt1 = PDdissipationNthfdOrder83(&Xt1[index]); + PDdissipationNth1Xt2 = PDdissipationNthfdOrder81(&Xt2[index]); + PDdissipationNth2Xt2 = PDdissipationNthfdOrder82(&Xt2[index]); + PDdissipationNth3Xt2 = PDdissipationNthfdOrder83(&Xt2[index]); + PDdissipationNth1Xt3 = PDdissipationNthfdOrder81(&Xt3[index]); + PDdissipationNth2Xt3 = PDdissipationNthfdOrder82(&Xt3[index]); + PDdissipationNth3Xt3 = PDdissipationNthfdOrder83(&Xt3[index]); + break; + } /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDdissipationNth1A; + CCTK_REAL_VEC JacPDdissipationNth1alpha; + CCTK_REAL_VEC JacPDdissipationNth1At11; + CCTK_REAL_VEC JacPDdissipationNth1At12; + CCTK_REAL_VEC JacPDdissipationNth1At13; + CCTK_REAL_VEC JacPDdissipationNth1At22; + CCTK_REAL_VEC JacPDdissipationNth1At23; + CCTK_REAL_VEC JacPDdissipationNth1At33; + CCTK_REAL_VEC JacPDdissipationNth1B1; + CCTK_REAL_VEC JacPDdissipationNth1B2; + CCTK_REAL_VEC JacPDdissipationNth1B3; + CCTK_REAL_VEC JacPDdissipationNth1beta1; + CCTK_REAL_VEC JacPDdissipationNth1beta2; + CCTK_REAL_VEC JacPDdissipationNth1beta3; + CCTK_REAL_VEC JacPDdissipationNth1gt11; + CCTK_REAL_VEC JacPDdissipationNth1gt12; + CCTK_REAL_VEC JacPDdissipationNth1gt13; + CCTK_REAL_VEC JacPDdissipationNth1gt22; + CCTK_REAL_VEC JacPDdissipationNth1gt23; + CCTK_REAL_VEC JacPDdissipationNth1gt33; + CCTK_REAL_VEC JacPDdissipationNth1phi; + CCTK_REAL_VEC JacPDdissipationNth1trK; + CCTK_REAL_VEC JacPDdissipationNth1Xt1; + CCTK_REAL_VEC JacPDdissipationNth1Xt2; + CCTK_REAL_VEC JacPDdissipationNth1Xt3; + CCTK_REAL_VEC JacPDdissipationNth2A; + CCTK_REAL_VEC JacPDdissipationNth2alpha; + CCTK_REAL_VEC JacPDdissipationNth2At11; + CCTK_REAL_VEC JacPDdissipationNth2At12; + CCTK_REAL_VEC JacPDdissipationNth2At13; + CCTK_REAL_VEC JacPDdissipationNth2At22; + CCTK_REAL_VEC JacPDdissipationNth2At23; + CCTK_REAL_VEC JacPDdissipationNth2At33; + CCTK_REAL_VEC JacPDdissipationNth2B1; + CCTK_REAL_VEC JacPDdissipationNth2B2; + CCTK_REAL_VEC JacPDdissipationNth2B3; + CCTK_REAL_VEC JacPDdissipationNth2beta1; + CCTK_REAL_VEC JacPDdissipationNth2beta2; + CCTK_REAL_VEC JacPDdissipationNth2beta3; + CCTK_REAL_VEC JacPDdissipationNth2gt11; + CCTK_REAL_VEC JacPDdissipationNth2gt12; + CCTK_REAL_VEC JacPDdissipationNth2gt13; + CCTK_REAL_VEC JacPDdissipationNth2gt22; + CCTK_REAL_VEC JacPDdissipationNth2gt23; + CCTK_REAL_VEC JacPDdissipationNth2gt33; + CCTK_REAL_VEC JacPDdissipationNth2phi; + CCTK_REAL_VEC JacPDdissipationNth2trK; + CCTK_REAL_VEC JacPDdissipationNth2Xt1; + CCTK_REAL_VEC JacPDdissipationNth2Xt2; + CCTK_REAL_VEC JacPDdissipationNth2Xt3; + CCTK_REAL_VEC JacPDdissipationNth3A; + CCTK_REAL_VEC JacPDdissipationNth3alpha; + CCTK_REAL_VEC JacPDdissipationNth3At11; + CCTK_REAL_VEC JacPDdissipationNth3At12; + CCTK_REAL_VEC JacPDdissipationNth3At13; + CCTK_REAL_VEC JacPDdissipationNth3At22; + CCTK_REAL_VEC JacPDdissipationNth3At23; + CCTK_REAL_VEC JacPDdissipationNth3At33; + CCTK_REAL_VEC JacPDdissipationNth3B1; + CCTK_REAL_VEC JacPDdissipationNth3B2; + CCTK_REAL_VEC JacPDdissipationNth3B3; + CCTK_REAL_VEC JacPDdissipationNth3beta1; + CCTK_REAL_VEC JacPDdissipationNth3beta2; + CCTK_REAL_VEC JacPDdissipationNth3beta3; + CCTK_REAL_VEC JacPDdissipationNth3gt11; + CCTK_REAL_VEC JacPDdissipationNth3gt12; + CCTK_REAL_VEC JacPDdissipationNth3gt13; + CCTK_REAL_VEC JacPDdissipationNth3gt22; + CCTK_REAL_VEC JacPDdissipationNth3gt23; + CCTK_REAL_VEC JacPDdissipationNth3gt33; + CCTK_REAL_VEC JacPDdissipationNth3phi; + CCTK_REAL_VEC JacPDdissipationNth3trK; + CCTK_REAL_VEC JacPDdissipationNth3Xt1; + CCTK_REAL_VEC JacPDdissipationNth3Xt2; + CCTK_REAL_VEC JacPDdissipationNth3Xt3; + + if (use_jacobian) + { + JacPDdissipationNth1A = + kmadd(J11L,PDdissipationNth1A,kmadd(J21L,PDdissipationNth2A,kmul(J31L,PDdissipationNth3A))); + + JacPDdissipationNth1alpha = + kmadd(J11L,PDdissipationNth1alpha,kmadd(J21L,PDdissipationNth2alpha,kmul(J31L,PDdissipationNth3alpha))); + + JacPDdissipationNth1At11 = + kmadd(J11L,PDdissipationNth1At11,kmadd(J21L,PDdissipationNth2At11,kmul(J31L,PDdissipationNth3At11))); + + JacPDdissipationNth1At12 = + kmadd(J11L,PDdissipationNth1At12,kmadd(J21L,PDdissipationNth2At12,kmul(J31L,PDdissipationNth3At12))); + + JacPDdissipationNth1At13 = + kmadd(J11L,PDdissipationNth1At13,kmadd(J21L,PDdissipationNth2At13,kmul(J31L,PDdissipationNth3At13))); + + JacPDdissipationNth1At22 = + kmadd(J11L,PDdissipationNth1At22,kmadd(J21L,PDdissipationNth2At22,kmul(J31L,PDdissipationNth3At22))); + + JacPDdissipationNth1At23 = + kmadd(J11L,PDdissipationNth1At23,kmadd(J21L,PDdissipationNth2At23,kmul(J31L,PDdissipationNth3At23))); + + JacPDdissipationNth1At33 = + kmadd(J11L,PDdissipationNth1At33,kmadd(J21L,PDdissipationNth2At33,kmul(J31L,PDdissipationNth3At33))); + + JacPDdissipationNth1B1 = + kmadd(J11L,PDdissipationNth1B1,kmadd(J21L,PDdissipationNth2B1,kmul(J31L,PDdissipationNth3B1))); + + JacPDdissipationNth1B2 = + kmadd(J11L,PDdissipationNth1B2,kmadd(J21L,PDdissipationNth2B2,kmul(J31L,PDdissipationNth3B2))); + + JacPDdissipationNth1B3 = + kmadd(J11L,PDdissipationNth1B3,kmadd(J21L,PDdissipationNth2B3,kmul(J31L,PDdissipationNth3B3))); + + JacPDdissipationNth1beta1 = + kmadd(J11L,PDdissipationNth1beta1,kmadd(J21L,PDdissipationNth2beta1,kmul(J31L,PDdissipationNth3beta1))); + + JacPDdissipationNth1beta2 = + kmadd(J11L,PDdissipationNth1beta2,kmadd(J21L,PDdissipationNth2beta2,kmul(J31L,PDdissipationNth3beta2))); + + JacPDdissipationNth1beta3 = + kmadd(J11L,PDdissipationNth1beta3,kmadd(J21L,PDdissipationNth2beta3,kmul(J31L,PDdissipationNth3beta3))); + + JacPDdissipationNth1gt11 = + kmadd(J11L,PDdissipationNth1gt11,kmadd(J21L,PDdissipationNth2gt11,kmul(J31L,PDdissipationNth3gt11))); + + JacPDdissipationNth1gt12 = + kmadd(J11L,PDdissipationNth1gt12,kmadd(J21L,PDdissipationNth2gt12,kmul(J31L,PDdissipationNth3gt12))); + + JacPDdissipationNth1gt13 = + kmadd(J11L,PDdissipationNth1gt13,kmadd(J21L,PDdissipationNth2gt13,kmul(J31L,PDdissipationNth3gt13))); + + JacPDdissipationNth1gt22 = + kmadd(J11L,PDdissipationNth1gt22,kmadd(J21L,PDdissipationNth2gt22,kmul(J31L,PDdissipationNth3gt22))); + + JacPDdissipationNth1gt23 = + kmadd(J11L,PDdissipationNth1gt23,kmadd(J21L,PDdissipationNth2gt23,kmul(J31L,PDdissipationNth3gt23))); + + JacPDdissipationNth1gt33 = + kmadd(J11L,PDdissipationNth1gt33,kmadd(J21L,PDdissipationNth2gt33,kmul(J31L,PDdissipationNth3gt33))); + + JacPDdissipationNth1phi = + kmadd(J11L,PDdissipationNth1phi,kmadd(J21L,PDdissipationNth2phi,kmul(J31L,PDdissipationNth3phi))); + + JacPDdissipationNth1trK = + kmadd(J11L,PDdissipationNth1trK,kmadd(J21L,PDdissipationNth2trK,kmul(J31L,PDdissipationNth3trK))); + + JacPDdissipationNth1Xt1 = + kmadd(J11L,PDdissipationNth1Xt1,kmadd(J21L,PDdissipationNth2Xt1,kmul(J31L,PDdissipationNth3Xt1))); + + JacPDdissipationNth1Xt2 = + kmadd(J11L,PDdissipationNth1Xt2,kmadd(J21L,PDdissipationNth2Xt2,kmul(J31L,PDdissipationNth3Xt2))); + + JacPDdissipationNth1Xt3 = + kmadd(J11L,PDdissipationNth1Xt3,kmadd(J21L,PDdissipationNth2Xt3,kmul(J31L,PDdissipationNth3Xt3))); + + JacPDdissipationNth2A = + kmadd(J12L,PDdissipationNth1A,kmadd(J22L,PDdissipationNth2A,kmul(J32L,PDdissipationNth3A))); + + JacPDdissipationNth2alpha = + kmadd(J12L,PDdissipationNth1alpha,kmadd(J22L,PDdissipationNth2alpha,kmul(J32L,PDdissipationNth3alpha))); + + JacPDdissipationNth2At11 = + kmadd(J12L,PDdissipationNth1At11,kmadd(J22L,PDdissipationNth2At11,kmul(J32L,PDdissipationNth3At11))); + + JacPDdissipationNth2At12 = + kmadd(J12L,PDdissipationNth1At12,kmadd(J22L,PDdissipationNth2At12,kmul(J32L,PDdissipationNth3At12))); + + JacPDdissipationNth2At13 = + kmadd(J12L,PDdissipationNth1At13,kmadd(J22L,PDdissipationNth2At13,kmul(J32L,PDdissipationNth3At13))); + + JacPDdissipationNth2At22 = + kmadd(J12L,PDdissipationNth1At22,kmadd(J22L,PDdissipationNth2At22,kmul(J32L,PDdissipationNth3At22))); + + JacPDdissipationNth2At23 = + kmadd(J12L,PDdissipationNth1At23,kmadd(J22L,PDdissipationNth2At23,kmul(J32L,PDdissipationNth3At23))); + + JacPDdissipationNth2At33 = + kmadd(J12L,PDdissipationNth1At33,kmadd(J22L,PDdissipationNth2At33,kmul(J32L,PDdissipationNth3At33))); + + JacPDdissipationNth2B1 = + kmadd(J12L,PDdissipationNth1B1,kmadd(J22L,PDdissipationNth2B1,kmul(J32L,PDdissipationNth3B1))); + + JacPDdissipationNth2B2 = + kmadd(J12L,PDdissipationNth1B2,kmadd(J22L,PDdissipationNth2B2,kmul(J32L,PDdissipationNth3B2))); + + JacPDdissipationNth2B3 = + kmadd(J12L,PDdissipationNth1B3,kmadd(J22L,PDdissipationNth2B3,kmul(J32L,PDdissipationNth3B3))); + + JacPDdissipationNth2beta1 = + kmadd(J12L,PDdissipationNth1beta1,kmadd(J22L,PDdissipationNth2beta1,kmul(J32L,PDdissipationNth3beta1))); + + JacPDdissipationNth2beta2 = + kmadd(J12L,PDdissipationNth1beta2,kmadd(J22L,PDdissipationNth2beta2,kmul(J32L,PDdissipationNth3beta2))); + + JacPDdissipationNth2beta3 = + kmadd(J12L,PDdissipationNth1beta3,kmadd(J22L,PDdissipationNth2beta3,kmul(J32L,PDdissipationNth3beta3))); + + JacPDdissipationNth2gt11 = + kmadd(J12L,PDdissipationNth1gt11,kmadd(J22L,PDdissipationNth2gt11,kmul(J32L,PDdissipationNth3gt11))); + + JacPDdissipationNth2gt12 = + kmadd(J12L,PDdissipationNth1gt12,kmadd(J22L,PDdissipationNth2gt12,kmul(J32L,PDdissipationNth3gt12))); + + JacPDdissipationNth2gt13 = + kmadd(J12L,PDdissipationNth1gt13,kmadd(J22L,PDdissipationNth2gt13,kmul(J32L,PDdissipationNth3gt13))); + + JacPDdissipationNth2gt22 = + kmadd(J12L,PDdissipationNth1gt22,kmadd(J22L,PDdissipationNth2gt22,kmul(J32L,PDdissipationNth3gt22))); + + JacPDdissipationNth2gt23 = + kmadd(J12L,PDdissipationNth1gt23,kmadd(J22L,PDdissipationNth2gt23,kmul(J32L,PDdissipationNth3gt23))); + + JacPDdissipationNth2gt33 = + kmadd(J12L,PDdissipationNth1gt33,kmadd(J22L,PDdissipationNth2gt33,kmul(J32L,PDdissipationNth3gt33))); + + JacPDdissipationNth2phi = + kmadd(J12L,PDdissipationNth1phi,kmadd(J22L,PDdissipationNth2phi,kmul(J32L,PDdissipationNth3phi))); + + JacPDdissipationNth2trK = + kmadd(J12L,PDdissipationNth1trK,kmadd(J22L,PDdissipationNth2trK,kmul(J32L,PDdissipationNth3trK))); + + JacPDdissipationNth2Xt1 = + kmadd(J12L,PDdissipationNth1Xt1,kmadd(J22L,PDdissipationNth2Xt1,kmul(J32L,PDdissipationNth3Xt1))); + + JacPDdissipationNth2Xt2 = + kmadd(J12L,PDdissipationNth1Xt2,kmadd(J22L,PDdissipationNth2Xt2,kmul(J32L,PDdissipationNth3Xt2))); + + JacPDdissipationNth2Xt3 = + kmadd(J12L,PDdissipationNth1Xt3,kmadd(J22L,PDdissipationNth2Xt3,kmul(J32L,PDdissipationNth3Xt3))); + + JacPDdissipationNth3A = + kmadd(J13L,PDdissipationNth1A,kmadd(J23L,PDdissipationNth2A,kmul(J33L,PDdissipationNth3A))); + + JacPDdissipationNth3alpha = + kmadd(J13L,PDdissipationNth1alpha,kmadd(J23L,PDdissipationNth2alpha,kmul(J33L,PDdissipationNth3alpha))); + + JacPDdissipationNth3At11 = + kmadd(J13L,PDdissipationNth1At11,kmadd(J23L,PDdissipationNth2At11,kmul(J33L,PDdissipationNth3At11))); + + JacPDdissipationNth3At12 = + kmadd(J13L,PDdissipationNth1At12,kmadd(J23L,PDdissipationNth2At12,kmul(J33L,PDdissipationNth3At12))); + + JacPDdissipationNth3At13 = + kmadd(J13L,PDdissipationNth1At13,kmadd(J23L,PDdissipationNth2At13,kmul(J33L,PDdissipationNth3At13))); + + JacPDdissipationNth3At22 = + kmadd(J13L,PDdissipationNth1At22,kmadd(J23L,PDdissipationNth2At22,kmul(J33L,PDdissipationNth3At22))); + + JacPDdissipationNth3At23 = + kmadd(J13L,PDdissipationNth1At23,kmadd(J23L,PDdissipationNth2At23,kmul(J33L,PDdissipationNth3At23))); + + JacPDdissipationNth3At33 = + kmadd(J13L,PDdissipationNth1At33,kmadd(J23L,PDdissipationNth2At33,kmul(J33L,PDdissipationNth3At33))); + + JacPDdissipationNth3B1 = + kmadd(J13L,PDdissipationNth1B1,kmadd(J23L,PDdissipationNth2B1,kmul(J33L,PDdissipationNth3B1))); + + JacPDdissipationNth3B2 = + kmadd(J13L,PDdissipationNth1B2,kmadd(J23L,PDdissipationNth2B2,kmul(J33L,PDdissipationNth3B2))); + + JacPDdissipationNth3B3 = + kmadd(J13L,PDdissipationNth1B3,kmadd(J23L,PDdissipationNth2B3,kmul(J33L,PDdissipationNth3B3))); + + JacPDdissipationNth3beta1 = + kmadd(J13L,PDdissipationNth1beta1,kmadd(J23L,PDdissipationNth2beta1,kmul(J33L,PDdissipationNth3beta1))); + + JacPDdissipationNth3beta2 = + kmadd(J13L,PDdissipationNth1beta2,kmadd(J23L,PDdissipationNth2beta2,kmul(J33L,PDdissipationNth3beta2))); + + JacPDdissipationNth3beta3 = + kmadd(J13L,PDdissipationNth1beta3,kmadd(J23L,PDdissipationNth2beta3,kmul(J33L,PDdissipationNth3beta3))); + + JacPDdissipationNth3gt11 = + kmadd(J13L,PDdissipationNth1gt11,kmadd(J23L,PDdissipationNth2gt11,kmul(J33L,PDdissipationNth3gt11))); + + JacPDdissipationNth3gt12 = + kmadd(J13L,PDdissipationNth1gt12,kmadd(J23L,PDdissipationNth2gt12,kmul(J33L,PDdissipationNth3gt12))); + + JacPDdissipationNth3gt13 = + kmadd(J13L,PDdissipationNth1gt13,kmadd(J23L,PDdissipationNth2gt13,kmul(J33L,PDdissipationNth3gt13))); + + JacPDdissipationNth3gt22 = + kmadd(J13L,PDdissipationNth1gt22,kmadd(J23L,PDdissipationNth2gt22,kmul(J33L,PDdissipationNth3gt22))); + + JacPDdissipationNth3gt23 = + kmadd(J13L,PDdissipationNth1gt23,kmadd(J23L,PDdissipationNth2gt23,kmul(J33L,PDdissipationNth3gt23))); + + JacPDdissipationNth3gt33 = + kmadd(J13L,PDdissipationNth1gt33,kmadd(J23L,PDdissipationNth2gt33,kmul(J33L,PDdissipationNth3gt33))); + + JacPDdissipationNth3phi = + kmadd(J13L,PDdissipationNth1phi,kmadd(J23L,PDdissipationNth2phi,kmul(J33L,PDdissipationNth3phi))); + + JacPDdissipationNth3trK = + kmadd(J13L,PDdissipationNth1trK,kmadd(J23L,PDdissipationNth2trK,kmul(J33L,PDdissipationNth3trK))); + + JacPDdissipationNth3Xt1 = + kmadd(J13L,PDdissipationNth1Xt1,kmadd(J23L,PDdissipationNth2Xt1,kmul(J33L,PDdissipationNth3Xt1))); + + JacPDdissipationNth3Xt2 = + kmadd(J13L,PDdissipationNth1Xt2,kmadd(J23L,PDdissipationNth2Xt2,kmul(J33L,PDdissipationNth3Xt2))); + + JacPDdissipationNth3Xt3 = + kmadd(J13L,PDdissipationNth1Xt3,kmadd(J23L,PDdissipationNth2Xt3,kmul(J33L,PDdissipationNth3Xt3))); + } + else + { + JacPDdissipationNth1A = PDdissipationNth1A; + + JacPDdissipationNth1alpha = PDdissipationNth1alpha; + + JacPDdissipationNth1At11 = PDdissipationNth1At11; + + JacPDdissipationNth1At12 = PDdissipationNth1At12; + + JacPDdissipationNth1At13 = PDdissipationNth1At13; + + JacPDdissipationNth1At22 = PDdissipationNth1At22; + + JacPDdissipationNth1At23 = PDdissipationNth1At23; + + JacPDdissipationNth1At33 = PDdissipationNth1At33; + + JacPDdissipationNth1B1 = PDdissipationNth1B1; + + JacPDdissipationNth1B2 = PDdissipationNth1B2; + + JacPDdissipationNth1B3 = PDdissipationNth1B3; + + JacPDdissipationNth1beta1 = PDdissipationNth1beta1; + + JacPDdissipationNth1beta2 = PDdissipationNth1beta2; + + JacPDdissipationNth1beta3 = PDdissipationNth1beta3; + + JacPDdissipationNth1gt11 = PDdissipationNth1gt11; + + JacPDdissipationNth1gt12 = PDdissipationNth1gt12; + + JacPDdissipationNth1gt13 = PDdissipationNth1gt13; + + JacPDdissipationNth1gt22 = PDdissipationNth1gt22; + + JacPDdissipationNth1gt23 = PDdissipationNth1gt23; + + JacPDdissipationNth1gt33 = PDdissipationNth1gt33; + + JacPDdissipationNth1phi = PDdissipationNth1phi; + + JacPDdissipationNth1trK = PDdissipationNth1trK; + + JacPDdissipationNth1Xt1 = PDdissipationNth1Xt1; + + JacPDdissipationNth1Xt2 = PDdissipationNth1Xt2; + + JacPDdissipationNth1Xt3 = PDdissipationNth1Xt3; + + JacPDdissipationNth2A = PDdissipationNth2A; + + JacPDdissipationNth2alpha = PDdissipationNth2alpha; + + JacPDdissipationNth2At11 = PDdissipationNth2At11; + + JacPDdissipationNth2At12 = PDdissipationNth2At12; + + JacPDdissipationNth2At13 = PDdissipationNth2At13; + + JacPDdissipationNth2At22 = PDdissipationNth2At22; + + JacPDdissipationNth2At23 = PDdissipationNth2At23; + + JacPDdissipationNth2At33 = PDdissipationNth2At33; + + JacPDdissipationNth2B1 = PDdissipationNth2B1; + + JacPDdissipationNth2B2 = PDdissipationNth2B2; + + JacPDdissipationNth2B3 = PDdissipationNth2B3; + + JacPDdissipationNth2beta1 = PDdissipationNth2beta1; + + JacPDdissipationNth2beta2 = PDdissipationNth2beta2; + + JacPDdissipationNth2beta3 = PDdissipationNth2beta3; + + JacPDdissipationNth2gt11 = PDdissipationNth2gt11; + + JacPDdissipationNth2gt12 = PDdissipationNth2gt12; + + JacPDdissipationNth2gt13 = PDdissipationNth2gt13; + + JacPDdissipationNth2gt22 = PDdissipationNth2gt22; + + JacPDdissipationNth2gt23 = PDdissipationNth2gt23; + + JacPDdissipationNth2gt33 = PDdissipationNth2gt33; + + JacPDdissipationNth2phi = PDdissipationNth2phi; + + JacPDdissipationNth2trK = PDdissipationNth2trK; + + JacPDdissipationNth2Xt1 = PDdissipationNth2Xt1; + + JacPDdissipationNth2Xt2 = PDdissipationNth2Xt2; + + JacPDdissipationNth2Xt3 = PDdissipationNth2Xt3; + + JacPDdissipationNth3A = PDdissipationNth3A; + + JacPDdissipationNth3alpha = PDdissipationNth3alpha; + + JacPDdissipationNth3At11 = PDdissipationNth3At11; + + JacPDdissipationNth3At12 = PDdissipationNth3At12; + + JacPDdissipationNth3At13 = PDdissipationNth3At13; + + JacPDdissipationNth3At22 = PDdissipationNth3At22; + + JacPDdissipationNth3At23 = PDdissipationNth3At23; + + JacPDdissipationNth3At33 = PDdissipationNth3At33; + + JacPDdissipationNth3B1 = PDdissipationNth3B1; + + JacPDdissipationNth3B2 = PDdissipationNth3B2; + + JacPDdissipationNth3B3 = PDdissipationNth3B3; + + JacPDdissipationNth3beta1 = PDdissipationNth3beta1; + + JacPDdissipationNth3beta2 = PDdissipationNth3beta2; + + JacPDdissipationNth3beta3 = PDdissipationNth3beta3; + + JacPDdissipationNth3gt11 = PDdissipationNth3gt11; + + JacPDdissipationNth3gt12 = PDdissipationNth3gt12; + + JacPDdissipationNth3gt13 = PDdissipationNth3gt13; + + JacPDdissipationNth3gt22 = PDdissipationNth3gt22; + + JacPDdissipationNth3gt23 = PDdissipationNth3gt23; + + JacPDdissipationNth3gt33 = PDdissipationNth3gt33; + + JacPDdissipationNth3phi = PDdissipationNth3phi; + + JacPDdissipationNth3trK = PDdissipationNth3trK; + + JacPDdissipationNth3Xt1 = PDdissipationNth3Xt1; + + JacPDdissipationNth3Xt2 = PDdissipationNth3Xt2; + + JacPDdissipationNth3Xt3 = PDdissipationNth3Xt3; + } + CCTK_REAL_VEC epsdiss1 = ToReal(EpsDiss); CCTK_REAL_VEC epsdiss2 = ToReal(EpsDiss); @@ -276,79 +1184,79 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons CCTK_REAL_VEC epsdiss3 = ToReal(EpsDiss); phirhsL = - kmadd(epsdiss1,PDdissipationNth1phi,kmadd(epsdiss2,PDdissipationNth2phi,kmadd(epsdiss3,PDdissipationNth3phi,phirhsL))); + kmadd(epsdiss1,JacPDdissipationNth1phi,kmadd(epsdiss2,JacPDdissipationNth2phi,kmadd(epsdiss3,JacPDdissipationNth3phi,phirhsL))); gt11rhsL = - kadd(gt11rhsL,kmadd(epsdiss1,PDdissipationNth1gt11,kmadd(epsdiss2,PDdissipationNth2gt11,kmul(epsdiss3,PDdissipationNth3gt11)))); + kadd(gt11rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt11,kmadd(epsdiss2,JacPDdissipationNth2gt11,kmul(epsdiss3,JacPDdissipationNth3gt11)))); gt12rhsL = - kadd(gt12rhsL,kmadd(epsdiss1,PDdissipationNth1gt12,kmadd(epsdiss2,PDdissipationNth2gt12,kmul(epsdiss3,PDdissipationNth3gt12)))); + kadd(gt12rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt12,kmadd(epsdiss2,JacPDdissipationNth2gt12,kmul(epsdiss3,JacPDdissipationNth3gt12)))); gt13rhsL = - kadd(gt13rhsL,kmadd(epsdiss1,PDdissipationNth1gt13,kmadd(epsdiss2,PDdissipationNth2gt13,kmul(epsdiss3,PDdissipationNth3gt13)))); + kadd(gt13rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt13,kmadd(epsdiss2,JacPDdissipationNth2gt13,kmul(epsdiss3,JacPDdissipationNth3gt13)))); gt22rhsL = - kadd(gt22rhsL,kmadd(epsdiss1,PDdissipationNth1gt22,kmadd(epsdiss2,PDdissipationNth2gt22,kmul(epsdiss3,PDdissipationNth3gt22)))); + kadd(gt22rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt22,kmadd(epsdiss2,JacPDdissipationNth2gt22,kmul(epsdiss3,JacPDdissipationNth3gt22)))); gt23rhsL = - kadd(gt23rhsL,kmadd(epsdiss1,PDdissipationNth1gt23,kmadd(epsdiss2,PDdissipationNth2gt23,kmul(epsdiss3,PDdissipationNth3gt23)))); + kadd(gt23rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt23,kmadd(epsdiss2,JacPDdissipationNth2gt23,kmul(epsdiss3,JacPDdissipationNth3gt23)))); gt33rhsL = - kadd(gt33rhsL,kmadd(epsdiss1,PDdissipationNth1gt33,kmadd(epsdiss2,PDdissipationNth2gt33,kmul(epsdiss3,PDdissipationNth3gt33)))); + kadd(gt33rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt33,kmadd(epsdiss2,JacPDdissipationNth2gt33,kmul(epsdiss3,JacPDdissipationNth3gt33)))); Xt1rhsL = - kmadd(epsdiss1,PDdissipationNth1Xt1,kmadd(epsdiss2,PDdissipationNth2Xt1,kmadd(epsdiss3,PDdissipationNth3Xt1,Xt1rhsL))); + kmadd(epsdiss1,JacPDdissipationNth1Xt1,kmadd(epsdiss2,JacPDdissipationNth2Xt1,kmadd(epsdiss3,JacPDdissipationNth3Xt1,Xt1rhsL))); Xt2rhsL = - kmadd(epsdiss1,PDdissipationNth1Xt2,kmadd(epsdiss2,PDdissipationNth2Xt2,kmadd(epsdiss3,PDdissipationNth3Xt2,Xt2rhsL))); + kmadd(epsdiss1,JacPDdissipationNth1Xt2,kmadd(epsdiss2,JacPDdissipationNth2Xt2,kmadd(epsdiss3,JacPDdissipationNth3Xt2,Xt2rhsL))); Xt3rhsL = - kmadd(epsdiss1,PDdissipationNth1Xt3,kmadd(epsdiss2,PDdissipationNth2Xt3,kmadd(epsdiss3,PDdissipationNth3Xt3,Xt3rhsL))); + kmadd(epsdiss1,JacPDdissipationNth1Xt3,kmadd(epsdiss2,JacPDdissipationNth2Xt3,kmadd(epsdiss3,JacPDdissipationNth3Xt3,Xt3rhsL))); trKrhsL = - kmadd(epsdiss1,PDdissipationNth1trK,kmadd(epsdiss2,PDdissipationNth2trK,kmadd(epsdiss3,PDdissipationNth3trK,trKrhsL))); + kmadd(epsdiss1,JacPDdissipationNth1trK,kmadd(epsdiss2,JacPDdissipationNth2trK,kmadd(epsdiss3,JacPDdissipationNth3trK,trKrhsL))); At11rhsL = - kadd(At11rhsL,kmadd(epsdiss1,PDdissipationNth1At11,kmadd(epsdiss2,PDdissipationNth2At11,kmul(epsdiss3,PDdissipationNth3At11)))); + kadd(At11rhsL,kmadd(epsdiss1,JacPDdissipationNth1At11,kmadd(epsdiss2,JacPDdissipationNth2At11,kmul(epsdiss3,JacPDdissipationNth3At11)))); At12rhsL = - kadd(At12rhsL,kmadd(epsdiss1,PDdissipationNth1At12,kmadd(epsdiss2,PDdissipationNth2At12,kmul(epsdiss3,PDdissipationNth3At12)))); + kadd(At12rhsL,kmadd(epsdiss1,JacPDdissipationNth1At12,kmadd(epsdiss2,JacPDdissipationNth2At12,kmul(epsdiss3,JacPDdissipationNth3At12)))); At13rhsL = - kadd(At13rhsL,kmadd(epsdiss1,PDdissipationNth1At13,kmadd(epsdiss2,PDdissipationNth2At13,kmul(epsdiss3,PDdissipationNth3At13)))); + kadd(At13rhsL,kmadd(epsdiss1,JacPDdissipationNth1At13,kmadd(epsdiss2,JacPDdissipationNth2At13,kmul(epsdiss3,JacPDdissipationNth3At13)))); At22rhsL = - kadd(At22rhsL,kmadd(epsdiss1,PDdissipationNth1At22,kmadd(epsdiss2,PDdissipationNth2At22,kmul(epsdiss3,PDdissipationNth3At22)))); + kadd(At22rhsL,kmadd(epsdiss1,JacPDdissipationNth1At22,kmadd(epsdiss2,JacPDdissipationNth2At22,kmul(epsdiss3,JacPDdissipationNth3At22)))); At23rhsL = - kadd(At23rhsL,kmadd(epsdiss1,PDdissipationNth1At23,kmadd(epsdiss2,PDdissipationNth2At23,kmul(epsdiss3,PDdissipationNth3At23)))); + kadd(At23rhsL,kmadd(epsdiss1,JacPDdissipationNth1At23,kmadd(epsdiss2,JacPDdissipationNth2At23,kmul(epsdiss3,JacPDdissipationNth3At23)))); At33rhsL = - kadd(At33rhsL,kmadd(epsdiss1,PDdissipationNth1At33,kmadd(epsdiss2,PDdissipationNth2At33,kmul(epsdiss3,PDdissipationNth3At33)))); + kadd(At33rhsL,kmadd(epsdiss1,JacPDdissipationNth1At33,kmadd(epsdiss2,JacPDdissipationNth2At33,kmul(epsdiss3,JacPDdissipationNth3At33)))); alpharhsL = - kadd(alpharhsL,kmadd(epsdiss1,PDdissipationNth1alpha,kmadd(epsdiss2,PDdissipationNth2alpha,kmul(epsdiss3,PDdissipationNth3alpha)))); + kadd(alpharhsL,kmadd(epsdiss1,JacPDdissipationNth1alpha,kmadd(epsdiss2,JacPDdissipationNth2alpha,kmul(epsdiss3,JacPDdissipationNth3alpha)))); ArhsL = - kadd(ArhsL,kmadd(epsdiss1,PDdissipationNth1A,kmadd(epsdiss2,PDdissipationNth2A,kmul(epsdiss3,PDdissipationNth3A)))); + kadd(ArhsL,kmadd(epsdiss1,JacPDdissipationNth1A,kmadd(epsdiss2,JacPDdissipationNth2A,kmul(epsdiss3,JacPDdissipationNth3A)))); beta1rhsL = - kadd(beta1rhsL,kmadd(epsdiss1,PDdissipationNth1beta1,kmadd(epsdiss2,PDdissipationNth2beta1,kmul(epsdiss3,PDdissipationNth3beta1)))); + kadd(beta1rhsL,kmadd(epsdiss1,JacPDdissipationNth1beta1,kmadd(epsdiss2,JacPDdissipationNth2beta1,kmul(epsdiss3,JacPDdissipationNth3beta1)))); beta2rhsL = - kadd(beta2rhsL,kmadd(epsdiss1,PDdissipationNth1beta2,kmadd(epsdiss2,PDdissipationNth2beta2,kmul(epsdiss3,PDdissipationNth3beta2)))); + kadd(beta2rhsL,kmadd(epsdiss1,JacPDdissipationNth1beta2,kmadd(epsdiss2,JacPDdissipationNth2beta2,kmul(epsdiss3,JacPDdissipationNth3beta2)))); beta3rhsL = - kadd(beta3rhsL,kmadd(epsdiss1,PDdissipationNth1beta3,kmadd(epsdiss2,PDdissipationNth2beta3,kmul(epsdiss3,PDdissipationNth3beta3)))); + kadd(beta3rhsL,kmadd(epsdiss1,JacPDdissipationNth1beta3,kmadd(epsdiss2,JacPDdissipationNth2beta3,kmul(epsdiss3,JacPDdissipationNth3beta3)))); B1rhsL = - kadd(B1rhsL,kmadd(epsdiss1,PDdissipationNth1B1,kmadd(epsdiss2,PDdissipationNth2B1,kmul(epsdiss3,PDdissipationNth3B1)))); + kadd(B1rhsL,kmadd(epsdiss1,JacPDdissipationNth1B1,kmadd(epsdiss2,JacPDdissipationNth2B1,kmul(epsdiss3,JacPDdissipationNth3B1)))); B2rhsL = - kadd(B2rhsL,kmadd(epsdiss1,PDdissipationNth1B2,kmadd(epsdiss2,PDdissipationNth2B2,kmul(epsdiss3,PDdissipationNth3B2)))); + kadd(B2rhsL,kmadd(epsdiss1,JacPDdissipationNth1B2,kmadd(epsdiss2,JacPDdissipationNth2B2,kmul(epsdiss3,JacPDdissipationNth3B2)))); B3rhsL = - kadd(B3rhsL,kmadd(epsdiss1,PDdissipationNth1B3,kmadd(epsdiss2,PDdissipationNth2B3,kmul(epsdiss3,PDdissipationNth3B3)))); + kadd(B3rhsL,kmadd(epsdiss1,JacPDdissipationNth1B3,kmadd(epsdiss2,JacPDdissipationNth2B3,kmul(epsdiss3,JacPDdissipationNth3B3)))); /* If necessary, store only partial vectors after the first iteration */ diff --git a/ML_BSSN/src/ML_BSSN_InitGamma.cc b/ML_BSSN/src/ML_BSSN_InitGamma.cc index ab44fd1..52fd007 100644 --- a/ML_BSSN/src/ML_BSSN_InitGamma.cc +++ b/ML_BSSN/src/ML_BSSN_InitGamma.cc @@ -43,6 +43,20 @@ static void ML_BSSN_InitGamma_Body(cGH const * restrict const cctkGH, int const const char *groups[] = {"ML_BSSN::ML_Gamma"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_InitGamma", 1, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -70,24 +84,129 @@ static void ML_BSSN_InitGamma_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -102,10 +221,26 @@ static void ML_BSSN_InitGamma_Body(cGH const * restrict const cctkGH, int const + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC Xt1L = ToReal(0); diff --git a/ML_BSSN/src/ML_BSSN_InitRHS.cc b/ML_BSSN/src/ML_BSSN_InitRHS.cc index 140c059..80a0539 100644 --- a/ML_BSSN/src/ML_BSSN_InitRHS.cc +++ b/ML_BSSN/src/ML_BSSN_InitRHS.cc @@ -43,6 +43,20 @@ static void ML_BSSN_InitRHS_Body(cGH const * restrict const cctkGH, int const di const char *groups[] = {"ML_BSSN::ML_curvrhs","ML_BSSN::ML_dtlapserhs","ML_BSSN::ML_dtshiftrhs","ML_BSSN::ML_Gammarhs","ML_BSSN::ML_lapserhs","ML_BSSN::ML_log_confacrhs","ML_BSSN::ML_metricrhs","ML_BSSN::ML_shiftrhs","ML_BSSN::ML_trace_curvrhs"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_InitRHS", 9, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -70,24 +84,129 @@ static void ML_BSSN_InitRHS_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -102,10 +221,26 @@ static void ML_BSSN_InitRHS_Body(cGH const * restrict const cctkGH, int const di + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC phirhsL = ToReal(0); diff --git a/ML_BSSN/src/ML_BSSN_Minkowski.cc b/ML_BSSN/src/ML_BSSN_Minkowski.cc index 7efbe04..fbbefee 100644 --- a/ML_BSSN/src/ML_BSSN_Minkowski.cc +++ b/ML_BSSN/src/ML_BSSN_Minkowski.cc @@ -43,6 +43,20 @@ static void ML_BSSN_Minkowski_Body(cGH const * restrict const cctkGH, int const const char *groups[] = {"ML_BSSN::ML_curv","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtshift","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Minkowski", 9, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -70,24 +84,129 @@ static void ML_BSSN_Minkowski_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -102,10 +221,26 @@ static void ML_BSSN_Minkowski_Body(cGH const * restrict const cctkGH, int const + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); diff --git a/ML_BSSN/src/ML_BSSN_RHS1.cc b/ML_BSSN/src/ML_BSSN_RHS1.cc index 41593a4..e5b7817 100644 --- a/ML_BSSN/src/ML_BSSN_RHS1.cc +++ b/ML_BSSN/src/ML_BSSN_RHS1.cc @@ -76,7 +76,24 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, const char *groups[] = {"grid::coordinates","Grid::coordinates","ML_BSSN::ML_curv","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtlapserhs","ML_BSSN::ML_dtshift","ML_BSSN::ML_dtshiftrhs","ML_BSSN::ML_Gamma","ML_BSSN::ML_Gammarhs","ML_BSSN::ML_lapse","ML_BSSN::ML_lapserhs","ML_BSSN::ML_log_confac","ML_BSSN::ML_log_confacrhs","ML_BSSN::ML_metric","ML_BSSN::ML_metricrhs","ML_BSSN::ML_shift","ML_BSSN::ML_shiftrhs","ML_BSSN::ML_trace_curv","ML_BSSN::ML_trace_curvrhs"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHS1", 19, groups); - GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS1", 2, 2, 2); + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS1", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS1", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS1", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS1", 4, 4, 4); + break; + } /* Include user-supplied include files */ @@ -104,24 +121,129 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -190,71 +312,797 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, eTzzL = ToReal(0.0); } + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + /* Include user supplied include files */ /* Precompute derivatives */ - CCTK_REAL_VEC const PDstandardNth1alpha = PDstandardNth1(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth2alpha = PDstandardNth2(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth3alpha = PDstandardNth3(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth11alpha = PDstandardNth11(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth22alpha = PDstandardNth22(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth33alpha = PDstandardNth33(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth12alpha = PDstandardNth12(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth13alpha = PDstandardNth13(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth23alpha = PDstandardNth23(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth1beta1 = PDstandardNth1(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth2beta1 = PDstandardNth2(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth3beta1 = PDstandardNth3(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth11beta1 = PDstandardNth11(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth22beta1 = PDstandardNth22(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth33beta1 = PDstandardNth33(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth12beta1 = PDstandardNth12(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth13beta1 = PDstandardNth13(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth23beta1 = PDstandardNth23(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth1beta2 = PDstandardNth1(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth2beta2 = PDstandardNth2(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth3beta2 = PDstandardNth3(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth11beta2 = PDstandardNth11(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth22beta2 = PDstandardNth22(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth33beta2 = PDstandardNth33(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth12beta2 = PDstandardNth12(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth13beta2 = PDstandardNth13(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth23beta2 = PDstandardNth23(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth1beta3 = PDstandardNth1(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth2beta3 = PDstandardNth2(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth3beta3 = PDstandardNth3(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth11beta3 = PDstandardNth11(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth22beta3 = PDstandardNth22(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth33beta3 = PDstandardNth33(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth12beta3 = PDstandardNth12(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth13beta3 = PDstandardNth13(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth23beta3 = PDstandardNth23(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth1gt11 = PDstandardNth1(>11[index]); - CCTK_REAL_VEC const PDstandardNth2gt11 = PDstandardNth2(>11[index]); - CCTK_REAL_VEC const PDstandardNth3gt11 = PDstandardNth3(>11[index]); - CCTK_REAL_VEC const PDstandardNth1gt12 = PDstandardNth1(>12[index]); - CCTK_REAL_VEC const PDstandardNth2gt12 = PDstandardNth2(>12[index]); - CCTK_REAL_VEC const PDstandardNth3gt12 = PDstandardNth3(>12[index]); - CCTK_REAL_VEC const PDstandardNth1gt13 = PDstandardNth1(>13[index]); - CCTK_REAL_VEC const PDstandardNth2gt13 = PDstandardNth2(>13[index]); - CCTK_REAL_VEC const PDstandardNth3gt13 = PDstandardNth3(>13[index]); - CCTK_REAL_VEC const PDstandardNth1gt22 = PDstandardNth1(>22[index]); - CCTK_REAL_VEC const PDstandardNth2gt22 = PDstandardNth2(>22[index]); - CCTK_REAL_VEC const PDstandardNth3gt22 = PDstandardNth3(>22[index]); - CCTK_REAL_VEC const PDstandardNth1gt23 = PDstandardNth1(>23[index]); - CCTK_REAL_VEC const PDstandardNth2gt23 = PDstandardNth2(>23[index]); - CCTK_REAL_VEC const PDstandardNth3gt23 = PDstandardNth3(>23[index]); - CCTK_REAL_VEC const PDstandardNth1gt33 = PDstandardNth1(>33[index]); - CCTK_REAL_VEC const PDstandardNth2gt33 = PDstandardNth2(>33[index]); - CCTK_REAL_VEC const PDstandardNth3gt33 = PDstandardNth3(>33[index]); - CCTK_REAL_VEC const PDstandardNth1phi = PDstandardNth1(&phi[index]); - CCTK_REAL_VEC const PDstandardNth2phi = PDstandardNth2(&phi[index]); - CCTK_REAL_VEC const PDstandardNth3phi = PDstandardNth3(&phi[index]); - CCTK_REAL_VEC const PDstandardNth1trK = PDstandardNth1(&trK[index]); - CCTK_REAL_VEC const PDstandardNth2trK = PDstandardNth2(&trK[index]); - CCTK_REAL_VEC const PDstandardNth3trK = PDstandardNth3(&trK[index]); + CCTK_REAL_VEC PDstandardNth1alpha; + CCTK_REAL_VEC PDstandardNth2alpha; + CCTK_REAL_VEC PDstandardNth3alpha; + CCTK_REAL_VEC PDstandardNth11alpha; + CCTK_REAL_VEC PDstandardNth22alpha; + CCTK_REAL_VEC PDstandardNth33alpha; + CCTK_REAL_VEC PDstandardNth12alpha; + CCTK_REAL_VEC PDstandardNth13alpha; + CCTK_REAL_VEC PDstandardNth23alpha; + CCTK_REAL_VEC PDstandardNth1beta1; + CCTK_REAL_VEC PDstandardNth2beta1; + CCTK_REAL_VEC PDstandardNth3beta1; + CCTK_REAL_VEC PDstandardNth11beta1; + CCTK_REAL_VEC PDstandardNth22beta1; + CCTK_REAL_VEC PDstandardNth33beta1; + CCTK_REAL_VEC PDstandardNth12beta1; + CCTK_REAL_VEC PDstandardNth13beta1; + CCTK_REAL_VEC PDstandardNth23beta1; + CCTK_REAL_VEC PDstandardNth1beta2; + CCTK_REAL_VEC PDstandardNth2beta2; + CCTK_REAL_VEC PDstandardNth3beta2; + CCTK_REAL_VEC PDstandardNth11beta2; + CCTK_REAL_VEC PDstandardNth22beta2; + CCTK_REAL_VEC PDstandardNth33beta2; + CCTK_REAL_VEC PDstandardNth12beta2; + CCTK_REAL_VEC PDstandardNth13beta2; + CCTK_REAL_VEC PDstandardNth23beta2; + CCTK_REAL_VEC PDstandardNth1beta3; + CCTK_REAL_VEC PDstandardNth2beta3; + CCTK_REAL_VEC PDstandardNth3beta3; + CCTK_REAL_VEC PDstandardNth11beta3; + CCTK_REAL_VEC PDstandardNth22beta3; + CCTK_REAL_VEC PDstandardNth33beta3; + CCTK_REAL_VEC PDstandardNth12beta3; + CCTK_REAL_VEC PDstandardNth13beta3; + CCTK_REAL_VEC PDstandardNth23beta3; + CCTK_REAL_VEC PDstandardNth1gt11; + CCTK_REAL_VEC PDstandardNth2gt11; + CCTK_REAL_VEC PDstandardNth3gt11; + CCTK_REAL_VEC PDstandardNth1gt12; + CCTK_REAL_VEC PDstandardNth2gt12; + CCTK_REAL_VEC PDstandardNth3gt12; + CCTK_REAL_VEC PDstandardNth1gt13; + CCTK_REAL_VEC PDstandardNth2gt13; + CCTK_REAL_VEC PDstandardNth3gt13; + CCTK_REAL_VEC PDstandardNth1gt22; + CCTK_REAL_VEC PDstandardNth2gt22; + CCTK_REAL_VEC PDstandardNth3gt22; + CCTK_REAL_VEC PDstandardNth1gt23; + CCTK_REAL_VEC PDstandardNth2gt23; + CCTK_REAL_VEC PDstandardNth3gt23; + CCTK_REAL_VEC PDstandardNth1gt33; + CCTK_REAL_VEC PDstandardNth2gt33; + CCTK_REAL_VEC PDstandardNth3gt33; + CCTK_REAL_VEC PDstandardNth1phi; + CCTK_REAL_VEC PDstandardNth2phi; + CCTK_REAL_VEC PDstandardNth3phi; + CCTK_REAL_VEC PDstandardNth1trK; + CCTK_REAL_VEC PDstandardNth2trK; + CCTK_REAL_VEC PDstandardNth3trK; + + switch(fdOrder) + { + case 2: + PDstandardNth1alpha = PDstandardNthfdOrder21(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder22(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder23(&alpha[index]); + PDstandardNth11alpha = PDstandardNthfdOrder211(&alpha[index]); + PDstandardNth22alpha = PDstandardNthfdOrder222(&alpha[index]); + PDstandardNth33alpha = PDstandardNthfdOrder233(&alpha[index]); + PDstandardNth12alpha = PDstandardNthfdOrder212(&alpha[index]); + PDstandardNth13alpha = PDstandardNthfdOrder213(&alpha[index]); + PDstandardNth23alpha = PDstandardNthfdOrder223(&alpha[index]); + PDstandardNth1beta1 = PDstandardNthfdOrder21(&beta1[index]); + PDstandardNth2beta1 = PDstandardNthfdOrder22(&beta1[index]); + PDstandardNth3beta1 = PDstandardNthfdOrder23(&beta1[index]); + PDstandardNth11beta1 = PDstandardNthfdOrder211(&beta1[index]); + PDstandardNth22beta1 = PDstandardNthfdOrder222(&beta1[index]); + PDstandardNth33beta1 = PDstandardNthfdOrder233(&beta1[index]); + PDstandardNth12beta1 = PDstandardNthfdOrder212(&beta1[index]); + PDstandardNth13beta1 = PDstandardNthfdOrder213(&beta1[index]); + PDstandardNth23beta1 = PDstandardNthfdOrder223(&beta1[index]); + PDstandardNth1beta2 = PDstandardNthfdOrder21(&beta2[index]); + PDstandardNth2beta2 = PDstandardNthfdOrder22(&beta2[index]); + PDstandardNth3beta2 = PDstandardNthfdOrder23(&beta2[index]); + PDstandardNth11beta2 = PDstandardNthfdOrder211(&beta2[index]); + PDstandardNth22beta2 = PDstandardNthfdOrder222(&beta2[index]); + PDstandardNth33beta2 = PDstandardNthfdOrder233(&beta2[index]); + PDstandardNth12beta2 = PDstandardNthfdOrder212(&beta2[index]); + PDstandardNth13beta2 = PDstandardNthfdOrder213(&beta2[index]); + PDstandardNth23beta2 = PDstandardNthfdOrder223(&beta2[index]); + PDstandardNth1beta3 = PDstandardNthfdOrder21(&beta3[index]); + PDstandardNth2beta3 = PDstandardNthfdOrder22(&beta3[index]); + PDstandardNth3beta3 = PDstandardNthfdOrder23(&beta3[index]); + PDstandardNth11beta3 = PDstandardNthfdOrder211(&beta3[index]); + PDstandardNth22beta3 = PDstandardNthfdOrder222(&beta3[index]); + PDstandardNth33beta3 = PDstandardNthfdOrder233(&beta3[index]); + PDstandardNth12beta3 = PDstandardNthfdOrder212(&beta3[index]); + PDstandardNth13beta3 = PDstandardNthfdOrder213(&beta3[index]); + PDstandardNth23beta3 = PDstandardNthfdOrder223(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder21(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder22(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder23(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder21(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder22(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder23(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder21(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder22(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder23(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder21(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder22(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder23(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder21(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder22(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder23(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder21(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder22(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder23(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder21(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder22(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder23(&phi[index]); + PDstandardNth1trK = PDstandardNthfdOrder21(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder22(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder23(&trK[index]); + break; + + case 4: + PDstandardNth1alpha = PDstandardNthfdOrder41(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder42(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder43(&alpha[index]); + PDstandardNth11alpha = PDstandardNthfdOrder411(&alpha[index]); + PDstandardNth22alpha = PDstandardNthfdOrder422(&alpha[index]); + PDstandardNth33alpha = PDstandardNthfdOrder433(&alpha[index]); + PDstandardNth12alpha = PDstandardNthfdOrder412(&alpha[index]); + PDstandardNth13alpha = PDstandardNthfdOrder413(&alpha[index]); + PDstandardNth23alpha = PDstandardNthfdOrder423(&alpha[index]); + PDstandardNth1beta1 = PDstandardNthfdOrder41(&beta1[index]); + PDstandardNth2beta1 = PDstandardNthfdOrder42(&beta1[index]); + PDstandardNth3beta1 = PDstandardNthfdOrder43(&beta1[index]); + PDstandardNth11beta1 = PDstandardNthfdOrder411(&beta1[index]); + PDstandardNth22beta1 = PDstandardNthfdOrder422(&beta1[index]); + PDstandardNth33beta1 = PDstandardNthfdOrder433(&beta1[index]); + PDstandardNth12beta1 = PDstandardNthfdOrder412(&beta1[index]); + PDstandardNth13beta1 = PDstandardNthfdOrder413(&beta1[index]); + PDstandardNth23beta1 = PDstandardNthfdOrder423(&beta1[index]); + PDstandardNth1beta2 = PDstandardNthfdOrder41(&beta2[index]); + PDstandardNth2beta2 = PDstandardNthfdOrder42(&beta2[index]); + PDstandardNth3beta2 = PDstandardNthfdOrder43(&beta2[index]); + PDstandardNth11beta2 = PDstandardNthfdOrder411(&beta2[index]); + PDstandardNth22beta2 = PDstandardNthfdOrder422(&beta2[index]); + PDstandardNth33beta2 = PDstandardNthfdOrder433(&beta2[index]); + PDstandardNth12beta2 = PDstandardNthfdOrder412(&beta2[index]); + PDstandardNth13beta2 = PDstandardNthfdOrder413(&beta2[index]); + PDstandardNth23beta2 = PDstandardNthfdOrder423(&beta2[index]); + PDstandardNth1beta3 = PDstandardNthfdOrder41(&beta3[index]); + PDstandardNth2beta3 = PDstandardNthfdOrder42(&beta3[index]); + PDstandardNth3beta3 = PDstandardNthfdOrder43(&beta3[index]); + PDstandardNth11beta3 = PDstandardNthfdOrder411(&beta3[index]); + PDstandardNth22beta3 = PDstandardNthfdOrder422(&beta3[index]); + PDstandardNth33beta3 = PDstandardNthfdOrder433(&beta3[index]); + PDstandardNth12beta3 = PDstandardNthfdOrder412(&beta3[index]); + PDstandardNth13beta3 = PDstandardNthfdOrder413(&beta3[index]); + PDstandardNth23beta3 = PDstandardNthfdOrder423(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder41(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder42(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder43(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder41(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder42(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder43(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder41(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder42(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder43(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder41(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder42(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder43(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder41(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder42(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder43(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder41(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder42(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder43(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder41(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder42(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder43(&phi[index]); + PDstandardNth1trK = PDstandardNthfdOrder41(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder42(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder43(&trK[index]); + break; + + case 6: + PDstandardNth1alpha = PDstandardNthfdOrder61(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder62(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder63(&alpha[index]); + PDstandardNth11alpha = PDstandardNthfdOrder611(&alpha[index]); + PDstandardNth22alpha = PDstandardNthfdOrder622(&alpha[index]); + PDstandardNth33alpha = PDstandardNthfdOrder633(&alpha[index]); + PDstandardNth12alpha = PDstandardNthfdOrder612(&alpha[index]); + PDstandardNth13alpha = PDstandardNthfdOrder613(&alpha[index]); + PDstandardNth23alpha = PDstandardNthfdOrder623(&alpha[index]); + PDstandardNth1beta1 = PDstandardNthfdOrder61(&beta1[index]); + PDstandardNth2beta1 = PDstandardNthfdOrder62(&beta1[index]); + PDstandardNth3beta1 = PDstandardNthfdOrder63(&beta1[index]); + PDstandardNth11beta1 = PDstandardNthfdOrder611(&beta1[index]); + PDstandardNth22beta1 = PDstandardNthfdOrder622(&beta1[index]); + PDstandardNth33beta1 = PDstandardNthfdOrder633(&beta1[index]); + PDstandardNth12beta1 = PDstandardNthfdOrder612(&beta1[index]); + PDstandardNth13beta1 = PDstandardNthfdOrder613(&beta1[index]); + PDstandardNth23beta1 = PDstandardNthfdOrder623(&beta1[index]); + PDstandardNth1beta2 = PDstandardNthfdOrder61(&beta2[index]); + PDstandardNth2beta2 = PDstandardNthfdOrder62(&beta2[index]); + PDstandardNth3beta2 = PDstandardNthfdOrder63(&beta2[index]); + PDstandardNth11beta2 = PDstandardNthfdOrder611(&beta2[index]); + PDstandardNth22beta2 = PDstandardNthfdOrder622(&beta2[index]); + PDstandardNth33beta2 = PDstandardNthfdOrder633(&beta2[index]); + PDstandardNth12beta2 = PDstandardNthfdOrder612(&beta2[index]); + PDstandardNth13beta2 = PDstandardNthfdOrder613(&beta2[index]); + PDstandardNth23beta2 = PDstandardNthfdOrder623(&beta2[index]); + PDstandardNth1beta3 = PDstandardNthfdOrder61(&beta3[index]); + PDstandardNth2beta3 = PDstandardNthfdOrder62(&beta3[index]); + PDstandardNth3beta3 = PDstandardNthfdOrder63(&beta3[index]); + PDstandardNth11beta3 = PDstandardNthfdOrder611(&beta3[index]); + PDstandardNth22beta3 = PDstandardNthfdOrder622(&beta3[index]); + PDstandardNth33beta3 = PDstandardNthfdOrder633(&beta3[index]); + PDstandardNth12beta3 = PDstandardNthfdOrder612(&beta3[index]); + PDstandardNth13beta3 = PDstandardNthfdOrder613(&beta3[index]); + PDstandardNth23beta3 = PDstandardNthfdOrder623(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder61(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder62(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder63(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder61(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder62(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder63(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder61(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder62(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder63(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder61(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder62(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder63(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder61(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder62(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder63(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder61(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder62(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder63(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder61(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder62(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder63(&phi[index]); + PDstandardNth1trK = PDstandardNthfdOrder61(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder62(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder63(&trK[index]); + break; + + case 8: + PDstandardNth1alpha = PDstandardNthfdOrder81(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder82(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder83(&alpha[index]); + PDstandardNth11alpha = PDstandardNthfdOrder811(&alpha[index]); + PDstandardNth22alpha = PDstandardNthfdOrder822(&alpha[index]); + PDstandardNth33alpha = PDstandardNthfdOrder833(&alpha[index]); + PDstandardNth12alpha = PDstandardNthfdOrder812(&alpha[index]); + PDstandardNth13alpha = PDstandardNthfdOrder813(&alpha[index]); + PDstandardNth23alpha = PDstandardNthfdOrder823(&alpha[index]); + PDstandardNth1beta1 = PDstandardNthfdOrder81(&beta1[index]); + PDstandardNth2beta1 = PDstandardNthfdOrder82(&beta1[index]); + PDstandardNth3beta1 = PDstandardNthfdOrder83(&beta1[index]); + PDstandardNth11beta1 = PDstandardNthfdOrder811(&beta1[index]); + PDstandardNth22beta1 = PDstandardNthfdOrder822(&beta1[index]); + PDstandardNth33beta1 = PDstandardNthfdOrder833(&beta1[index]); + PDstandardNth12beta1 = PDstandardNthfdOrder812(&beta1[index]); + PDstandardNth13beta1 = PDstandardNthfdOrder813(&beta1[index]); + PDstandardNth23beta1 = PDstandardNthfdOrder823(&beta1[index]); + PDstandardNth1beta2 = PDstandardNthfdOrder81(&beta2[index]); + PDstandardNth2beta2 = PDstandardNthfdOrder82(&beta2[index]); + PDstandardNth3beta2 = PDstandardNthfdOrder83(&beta2[index]); + PDstandardNth11beta2 = PDstandardNthfdOrder811(&beta2[index]); + PDstandardNth22beta2 = PDstandardNthfdOrder822(&beta2[index]); + PDstandardNth33beta2 = PDstandardNthfdOrder833(&beta2[index]); + PDstandardNth12beta2 = PDstandardNthfdOrder812(&beta2[index]); + PDstandardNth13beta2 = PDstandardNthfdOrder813(&beta2[index]); + PDstandardNth23beta2 = PDstandardNthfdOrder823(&beta2[index]); + PDstandardNth1beta3 = PDstandardNthfdOrder81(&beta3[index]); + PDstandardNth2beta3 = PDstandardNthfdOrder82(&beta3[index]); + PDstandardNth3beta3 = PDstandardNthfdOrder83(&beta3[index]); + PDstandardNth11beta3 = PDstandardNthfdOrder811(&beta3[index]); + PDstandardNth22beta3 = PDstandardNthfdOrder822(&beta3[index]); + PDstandardNth33beta3 = PDstandardNthfdOrder833(&beta3[index]); + PDstandardNth12beta3 = PDstandardNthfdOrder812(&beta3[index]); + PDstandardNth13beta3 = PDstandardNthfdOrder813(&beta3[index]); + PDstandardNth23beta3 = PDstandardNthfdOrder823(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder81(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder82(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder83(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder81(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder82(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder83(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder81(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder82(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder83(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder81(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder82(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder83(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder81(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder82(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder83(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder81(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder82(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder83(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder81(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder82(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder83(&phi[index]); + PDstandardNth1trK = PDstandardNthfdOrder81(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder82(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder83(&trK[index]); + break; + } /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandardNth11alpha; + CCTK_REAL_VEC JacPDstandardNth11beta1; + CCTK_REAL_VEC JacPDstandardNth11beta2; + CCTK_REAL_VEC JacPDstandardNth11beta3; + CCTK_REAL_VEC JacPDstandardNth12alpha; + CCTK_REAL_VEC JacPDstandardNth12beta1; + CCTK_REAL_VEC JacPDstandardNth12beta2; + CCTK_REAL_VEC JacPDstandardNth12beta3; + CCTK_REAL_VEC JacPDstandardNth13alpha; + CCTK_REAL_VEC JacPDstandardNth13beta1; + CCTK_REAL_VEC JacPDstandardNth13beta2; + CCTK_REAL_VEC JacPDstandardNth13beta3; + CCTK_REAL_VEC JacPDstandardNth1alpha; + CCTK_REAL_VEC JacPDstandardNth1beta1; + CCTK_REAL_VEC JacPDstandardNth1beta2; + CCTK_REAL_VEC JacPDstandardNth1beta3; + CCTK_REAL_VEC JacPDstandardNth1gt11; + CCTK_REAL_VEC JacPDstandardNth1gt12; + CCTK_REAL_VEC JacPDstandardNth1gt13; + CCTK_REAL_VEC JacPDstandardNth1gt22; + CCTK_REAL_VEC JacPDstandardNth1gt23; + CCTK_REAL_VEC JacPDstandardNth1gt33; + CCTK_REAL_VEC JacPDstandardNth1phi; + CCTK_REAL_VEC JacPDstandardNth1trK; + CCTK_REAL_VEC JacPDstandardNth21alpha; + CCTK_REAL_VEC JacPDstandardNth21beta1; + CCTK_REAL_VEC JacPDstandardNth21beta2; + CCTK_REAL_VEC JacPDstandardNth21beta3; + CCTK_REAL_VEC JacPDstandardNth22alpha; + CCTK_REAL_VEC JacPDstandardNth22beta1; + CCTK_REAL_VEC JacPDstandardNth22beta2; + CCTK_REAL_VEC JacPDstandardNth22beta3; + CCTK_REAL_VEC JacPDstandardNth23alpha; + CCTK_REAL_VEC JacPDstandardNth23beta1; + CCTK_REAL_VEC JacPDstandardNth23beta2; + CCTK_REAL_VEC JacPDstandardNth23beta3; + CCTK_REAL_VEC JacPDstandardNth2alpha; + CCTK_REAL_VEC JacPDstandardNth2beta1; + CCTK_REAL_VEC JacPDstandardNth2beta2; + CCTK_REAL_VEC JacPDstandardNth2beta3; + CCTK_REAL_VEC JacPDstandardNth2gt11; + CCTK_REAL_VEC JacPDstandardNth2gt12; + CCTK_REAL_VEC JacPDstandardNth2gt13; + CCTK_REAL_VEC JacPDstandardNth2gt22; + CCTK_REAL_VEC JacPDstandardNth2gt23; + CCTK_REAL_VEC JacPDstandardNth2gt33; + CCTK_REAL_VEC JacPDstandardNth2phi; + CCTK_REAL_VEC JacPDstandardNth2trK; + CCTK_REAL_VEC JacPDstandardNth31alpha; + CCTK_REAL_VEC JacPDstandardNth31beta1; + CCTK_REAL_VEC JacPDstandardNth31beta2; + CCTK_REAL_VEC JacPDstandardNth31beta3; + CCTK_REAL_VEC JacPDstandardNth32alpha; + CCTK_REAL_VEC JacPDstandardNth32beta1; + CCTK_REAL_VEC JacPDstandardNth32beta2; + CCTK_REAL_VEC JacPDstandardNth32beta3; + CCTK_REAL_VEC JacPDstandardNth33alpha; + CCTK_REAL_VEC JacPDstandardNth33beta1; + CCTK_REAL_VEC JacPDstandardNth33beta2; + CCTK_REAL_VEC JacPDstandardNth33beta3; + CCTK_REAL_VEC JacPDstandardNth3alpha; + CCTK_REAL_VEC JacPDstandardNth3beta1; + CCTK_REAL_VEC JacPDstandardNth3beta2; + CCTK_REAL_VEC JacPDstandardNth3beta3; + CCTK_REAL_VEC JacPDstandardNth3gt11; + CCTK_REAL_VEC JacPDstandardNth3gt12; + CCTK_REAL_VEC JacPDstandardNth3gt13; + CCTK_REAL_VEC JacPDstandardNth3gt22; + CCTK_REAL_VEC JacPDstandardNth3gt23; + CCTK_REAL_VEC JacPDstandardNth3gt33; + CCTK_REAL_VEC JacPDstandardNth3phi; + CCTK_REAL_VEC JacPDstandardNth3trK; + + if (use_jacobian) + { + JacPDstandardNth1alpha = + kmadd(J11L,PDstandardNth1alpha,kmadd(J21L,PDstandardNth2alpha,kmul(J31L,PDstandardNth3alpha))); + + JacPDstandardNth1beta1 = + kmadd(J11L,PDstandardNth1beta1,kmadd(J21L,PDstandardNth2beta1,kmul(J31L,PDstandardNth3beta1))); + + JacPDstandardNth1beta2 = + kmadd(J11L,PDstandardNth1beta2,kmadd(J21L,PDstandardNth2beta2,kmul(J31L,PDstandardNth3beta2))); + + JacPDstandardNth1beta3 = + kmadd(J11L,PDstandardNth1beta3,kmadd(J21L,PDstandardNth2beta3,kmul(J31L,PDstandardNth3beta3))); + + JacPDstandardNth1gt11 = + kmadd(J11L,PDstandardNth1gt11,kmadd(J21L,PDstandardNth2gt11,kmul(J31L,PDstandardNth3gt11))); + + JacPDstandardNth1gt12 = + kmadd(J11L,PDstandardNth1gt12,kmadd(J21L,PDstandardNth2gt12,kmul(J31L,PDstandardNth3gt12))); + + JacPDstandardNth1gt13 = + kmadd(J11L,PDstandardNth1gt13,kmadd(J21L,PDstandardNth2gt13,kmul(J31L,PDstandardNth3gt13))); + + JacPDstandardNth1gt22 = + kmadd(J11L,PDstandardNth1gt22,kmadd(J21L,PDstandardNth2gt22,kmul(J31L,PDstandardNth3gt22))); + + JacPDstandardNth1gt23 = + kmadd(J11L,PDstandardNth1gt23,kmadd(J21L,PDstandardNth2gt23,kmul(J31L,PDstandardNth3gt23))); + + JacPDstandardNth1gt33 = + kmadd(J11L,PDstandardNth1gt33,kmadd(J21L,PDstandardNth2gt33,kmul(J31L,PDstandardNth3gt33))); + + JacPDstandardNth1phi = + kmadd(J11L,PDstandardNth1phi,kmadd(J21L,PDstandardNth2phi,kmul(J31L,PDstandardNth3phi))); + + JacPDstandardNth1trK = + kmadd(J11L,PDstandardNth1trK,kmadd(J21L,PDstandardNth2trK,kmul(J31L,PDstandardNth3trK))); + + JacPDstandardNth2alpha = + kmadd(J12L,PDstandardNth1alpha,kmadd(J22L,PDstandardNth2alpha,kmul(J32L,PDstandardNth3alpha))); + + JacPDstandardNth2beta1 = + kmadd(J12L,PDstandardNth1beta1,kmadd(J22L,PDstandardNth2beta1,kmul(J32L,PDstandardNth3beta1))); + + JacPDstandardNth2beta2 = + kmadd(J12L,PDstandardNth1beta2,kmadd(J22L,PDstandardNth2beta2,kmul(J32L,PDstandardNth3beta2))); + + JacPDstandardNth2beta3 = + kmadd(J12L,PDstandardNth1beta3,kmadd(J22L,PDstandardNth2beta3,kmul(J32L,PDstandardNth3beta3))); + + JacPDstandardNth2gt11 = + kmadd(J12L,PDstandardNth1gt11,kmadd(J22L,PDstandardNth2gt11,kmul(J32L,PDstandardNth3gt11))); + + JacPDstandardNth2gt12 = + kmadd(J12L,PDstandardNth1gt12,kmadd(J22L,PDstandardNth2gt12,kmul(J32L,PDstandardNth3gt12))); + + JacPDstandardNth2gt13 = + kmadd(J12L,PDstandardNth1gt13,kmadd(J22L,PDstandardNth2gt13,kmul(J32L,PDstandardNth3gt13))); + + JacPDstandardNth2gt22 = + kmadd(J12L,PDstandardNth1gt22,kmadd(J22L,PDstandardNth2gt22,kmul(J32L,PDstandardNth3gt22))); + + JacPDstandardNth2gt23 = + kmadd(J12L,PDstandardNth1gt23,kmadd(J22L,PDstandardNth2gt23,kmul(J32L,PDstandardNth3gt23))); + + JacPDstandardNth2gt33 = + kmadd(J12L,PDstandardNth1gt33,kmadd(J22L,PDstandardNth2gt33,kmul(J32L,PDstandardNth3gt33))); + + JacPDstandardNth2phi = + kmadd(J12L,PDstandardNth1phi,kmadd(J22L,PDstandardNth2phi,kmul(J32L,PDstandardNth3phi))); + + JacPDstandardNth2trK = + kmadd(J12L,PDstandardNth1trK,kmadd(J22L,PDstandardNth2trK,kmul(J32L,PDstandardNth3trK))); + + JacPDstandardNth3alpha = + kmadd(J13L,PDstandardNth1alpha,kmadd(J23L,PDstandardNth2alpha,kmul(J33L,PDstandardNth3alpha))); + + JacPDstandardNth3beta1 = + kmadd(J13L,PDstandardNth1beta1,kmadd(J23L,PDstandardNth2beta1,kmul(J33L,PDstandardNth3beta1))); + + JacPDstandardNth3beta2 = + kmadd(J13L,PDstandardNth1beta2,kmadd(J23L,PDstandardNth2beta2,kmul(J33L,PDstandardNth3beta2))); + + JacPDstandardNth3beta3 = + kmadd(J13L,PDstandardNth1beta3,kmadd(J23L,PDstandardNth2beta3,kmul(J33L,PDstandardNth3beta3))); + + JacPDstandardNth3gt11 = + kmadd(J13L,PDstandardNth1gt11,kmadd(J23L,PDstandardNth2gt11,kmul(J33L,PDstandardNth3gt11))); + + JacPDstandardNth3gt12 = + kmadd(J13L,PDstandardNth1gt12,kmadd(J23L,PDstandardNth2gt12,kmul(J33L,PDstandardNth3gt12))); + + JacPDstandardNth3gt13 = + kmadd(J13L,PDstandardNth1gt13,kmadd(J23L,PDstandardNth2gt13,kmul(J33L,PDstandardNth3gt13))); + + JacPDstandardNth3gt22 = + kmadd(J13L,PDstandardNth1gt22,kmadd(J23L,PDstandardNth2gt22,kmul(J33L,PDstandardNth3gt22))); + + JacPDstandardNth3gt23 = + kmadd(J13L,PDstandardNth1gt23,kmadd(J23L,PDstandardNth2gt23,kmul(J33L,PDstandardNth3gt23))); + + JacPDstandardNth3gt33 = + kmadd(J13L,PDstandardNth1gt33,kmadd(J23L,PDstandardNth2gt33,kmul(J33L,PDstandardNth3gt33))); + + JacPDstandardNth3phi = + kmadd(J13L,PDstandardNth1phi,kmadd(J23L,PDstandardNth2phi,kmul(J33L,PDstandardNth3phi))); + + JacPDstandardNth3trK = + kmadd(J13L,PDstandardNth1trK,kmadd(J23L,PDstandardNth2trK,kmul(J33L,PDstandardNth3trK))); + + JacPDstandardNth11alpha = + kmadd(dJ111L,PDstandardNth1alpha,kmadd(dJ211L,PDstandardNth2alpha,kmadd(dJ311L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,SQR(J11L),kmadd(PDstandardNth22alpha,SQR(J21L),kmadd(PDstandardNth33alpha,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha)),kmul(J21L,kmul(J31L,PDstandardNth23alpha))),ToReal(2)))))))); + + JacPDstandardNth11beta1 = + kmadd(dJ111L,PDstandardNth1beta1,kmadd(dJ211L,PDstandardNth2beta1,kmadd(dJ311L,PDstandardNth3beta1,kmadd(PDstandardNth11beta1,SQR(J11L),kmadd(PDstandardNth22beta1,SQR(J21L),kmadd(PDstandardNth33beta1,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1)),kmul(J21L,kmul(J31L,PDstandardNth23beta1))),ToReal(2)))))))); + + JacPDstandardNth11beta2 = + kmadd(dJ111L,PDstandardNth1beta2,kmadd(dJ211L,PDstandardNth2beta2,kmadd(dJ311L,PDstandardNth3beta2,kmadd(PDstandardNth11beta2,SQR(J11L),kmadd(PDstandardNth22beta2,SQR(J21L),kmadd(PDstandardNth33beta2,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2)),kmul(J21L,kmul(J31L,PDstandardNth23beta2))),ToReal(2)))))))); + + JacPDstandardNth11beta3 = + kmadd(dJ111L,PDstandardNth1beta3,kmadd(dJ211L,PDstandardNth2beta3,kmadd(dJ311L,PDstandardNth3beta3,kmadd(PDstandardNth11beta3,SQR(J11L),kmadd(PDstandardNth22beta3,SQR(J21L),kmadd(PDstandardNth33beta3,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3)),kmul(J21L,kmul(J31L,PDstandardNth23beta3))),ToReal(2)))))))); + + JacPDstandardNth22alpha = + kmadd(dJ122L,PDstandardNth1alpha,kmadd(dJ222L,PDstandardNth2alpha,kmadd(dJ322L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,SQR(J12L),kmadd(PDstandardNth22alpha,SQR(J22L),kmadd(PDstandardNth33alpha,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha)),kmul(J22L,kmul(J32L,PDstandardNth23alpha))),ToReal(2)))))))); + + JacPDstandardNth22beta1 = + kmadd(dJ122L,PDstandardNth1beta1,kmadd(dJ222L,PDstandardNth2beta1,kmadd(dJ322L,PDstandardNth3beta1,kmadd(PDstandardNth11beta1,SQR(J12L),kmadd(PDstandardNth22beta1,SQR(J22L),kmadd(PDstandardNth33beta1,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1)),kmul(J22L,kmul(J32L,PDstandardNth23beta1))),ToReal(2)))))))); + + JacPDstandardNth22beta2 = + kmadd(dJ122L,PDstandardNth1beta2,kmadd(dJ222L,PDstandardNth2beta2,kmadd(dJ322L,PDstandardNth3beta2,kmadd(PDstandardNth11beta2,SQR(J12L),kmadd(PDstandardNth22beta2,SQR(J22L),kmadd(PDstandardNth33beta2,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2)),kmul(J22L,kmul(J32L,PDstandardNth23beta2))),ToReal(2)))))))); + + JacPDstandardNth22beta3 = + kmadd(dJ122L,PDstandardNth1beta3,kmadd(dJ222L,PDstandardNth2beta3,kmadd(dJ322L,PDstandardNth3beta3,kmadd(PDstandardNth11beta3,SQR(J12L),kmadd(PDstandardNth22beta3,SQR(J22L),kmadd(PDstandardNth33beta3,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3)),kmul(J22L,kmul(J32L,PDstandardNth23beta3))),ToReal(2)))))))); + + JacPDstandardNth33alpha = + kmadd(dJ133L,PDstandardNth1alpha,kmadd(dJ233L,PDstandardNth2alpha,kmadd(dJ333L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,SQR(J13L),kmadd(PDstandardNth22alpha,SQR(J23L),kmadd(PDstandardNth33alpha,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmul(J23L,kmul(J33L,PDstandardNth23alpha))),ToReal(2)))))))); + + JacPDstandardNth33beta1 = + kmadd(dJ133L,PDstandardNth1beta1,kmadd(dJ233L,PDstandardNth2beta1,kmadd(dJ333L,PDstandardNth3beta1,kmadd(PDstandardNth11beta1,SQR(J13L),kmadd(PDstandardNth22beta1,SQR(J23L),kmadd(PDstandardNth33beta1,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmul(J23L,kmul(J33L,PDstandardNth23beta1))),ToReal(2)))))))); + + JacPDstandardNth33beta2 = + kmadd(dJ133L,PDstandardNth1beta2,kmadd(dJ233L,PDstandardNth2beta2,kmadd(dJ333L,PDstandardNth3beta2,kmadd(PDstandardNth11beta2,SQR(J13L),kmadd(PDstandardNth22beta2,SQR(J23L),kmadd(PDstandardNth33beta2,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmul(J23L,kmul(J33L,PDstandardNth23beta2))),ToReal(2)))))))); + + JacPDstandardNth33beta3 = + kmadd(dJ133L,PDstandardNth1beta3,kmadd(dJ233L,PDstandardNth2beta3,kmadd(dJ333L,PDstandardNth3beta3,kmadd(PDstandardNth11beta3,SQR(J13L),kmadd(PDstandardNth22beta3,SQR(J23L),kmadd(PDstandardNth33beta3,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmul(J23L,kmul(J33L,PDstandardNth23beta3))),ToReal(2)))))))); + + JacPDstandardNth12alpha = + kmadd(J12L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha)),kmadd(dJ112L,PDstandardNth1alpha,kmadd(J22L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ212L,PDstandardNth2alpha,kmadd(J32L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ312L,PDstandardNth3alpha))))))); + + JacPDstandardNth12beta1 = + kmadd(J12L,kmadd(J11L,PDstandardNth11beta1,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1)),kmadd(dJ112L,PDstandardNth1beta1,kmadd(J22L,kmadd(J21L,PDstandardNth22beta1,kmul(J31L,PDstandardNth23beta1)),kmadd(dJ212L,PDstandardNth2beta1,kmadd(J32L,kmadd(J21L,PDstandardNth23beta1,kmul(J31L,PDstandardNth33beta1)),kmul(dJ312L,PDstandardNth3beta1))))))); + + JacPDstandardNth12beta2 = + kmadd(J12L,kmadd(J11L,PDstandardNth11beta2,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2)),kmadd(dJ112L,PDstandardNth1beta2,kmadd(J22L,kmadd(J21L,PDstandardNth22beta2,kmul(J31L,PDstandardNth23beta2)),kmadd(dJ212L,PDstandardNth2beta2,kmadd(J32L,kmadd(J21L,PDstandardNth23beta2,kmul(J31L,PDstandardNth33beta2)),kmul(dJ312L,PDstandardNth3beta2))))))); + + JacPDstandardNth12beta3 = + kmadd(J12L,kmadd(J11L,PDstandardNth11beta3,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3)),kmadd(dJ112L,PDstandardNth1beta3,kmadd(J22L,kmadd(J21L,PDstandardNth22beta3,kmul(J31L,PDstandardNth23beta3)),kmadd(dJ212L,PDstandardNth2beta3,kmadd(J32L,kmadd(J21L,PDstandardNth23beta3,kmul(J31L,PDstandardNth33beta3)),kmul(dJ312L,PDstandardNth3beta3))))))); + + JacPDstandardNth13alpha = + kmadd(J13L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ113L,PDstandardNth1alpha,kmadd(J23L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ213L,PDstandardNth2alpha,kmadd(J33L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ313L,PDstandardNth3alpha))))))); + + JacPDstandardNth13beta1 = + kmadd(J13L,kmadd(J11L,PDstandardNth11beta1,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmadd(dJ113L,PDstandardNth1beta1,kmadd(J23L,kmadd(J21L,PDstandardNth22beta1,kmul(J31L,PDstandardNth23beta1)),kmadd(dJ213L,PDstandardNth2beta1,kmadd(J33L,kmadd(J21L,PDstandardNth23beta1,kmul(J31L,PDstandardNth33beta1)),kmul(dJ313L,PDstandardNth3beta1))))))); + + JacPDstandardNth13beta2 = + kmadd(J13L,kmadd(J11L,PDstandardNth11beta2,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmadd(dJ113L,PDstandardNth1beta2,kmadd(J23L,kmadd(J21L,PDstandardNth22beta2,kmul(J31L,PDstandardNth23beta2)),kmadd(dJ213L,PDstandardNth2beta2,kmadd(J33L,kmadd(J21L,PDstandardNth23beta2,kmul(J31L,PDstandardNth33beta2)),kmul(dJ313L,PDstandardNth3beta2))))))); + + JacPDstandardNth13beta3 = + kmadd(J13L,kmadd(J11L,PDstandardNth11beta3,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmadd(dJ113L,PDstandardNth1beta3,kmadd(J23L,kmadd(J21L,PDstandardNth22beta3,kmul(J31L,PDstandardNth23beta3)),kmadd(dJ213L,PDstandardNth2beta3,kmadd(J33L,kmadd(J21L,PDstandardNth23beta3,kmul(J31L,PDstandardNth33beta3)),kmul(dJ313L,PDstandardNth3beta3))))))); + + JacPDstandardNth21alpha = + kmadd(J12L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha)),kmadd(dJ112L,PDstandardNth1alpha,kmadd(J22L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ212L,PDstandardNth2alpha,kmadd(J32L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ312L,PDstandardNth3alpha))))))); + + JacPDstandardNth21beta1 = + kmadd(J12L,kmadd(J11L,PDstandardNth11beta1,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1)),kmadd(dJ112L,PDstandardNth1beta1,kmadd(J22L,kmadd(J21L,PDstandardNth22beta1,kmul(J31L,PDstandardNth23beta1)),kmadd(dJ212L,PDstandardNth2beta1,kmadd(J32L,kmadd(J21L,PDstandardNth23beta1,kmul(J31L,PDstandardNth33beta1)),kmul(dJ312L,PDstandardNth3beta1))))))); + + JacPDstandardNth21beta2 = + kmadd(J12L,kmadd(J11L,PDstandardNth11beta2,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2)),kmadd(dJ112L,PDstandardNth1beta2,kmadd(J22L,kmadd(J21L,PDstandardNth22beta2,kmul(J31L,PDstandardNth23beta2)),kmadd(dJ212L,PDstandardNth2beta2,kmadd(J32L,kmadd(J21L,PDstandardNth23beta2,kmul(J31L,PDstandardNth33beta2)),kmul(dJ312L,PDstandardNth3beta2))))))); + + JacPDstandardNth21beta3 = + kmadd(J12L,kmadd(J11L,PDstandardNth11beta3,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3)),kmadd(dJ112L,PDstandardNth1beta3,kmadd(J22L,kmadd(J21L,PDstandardNth22beta3,kmul(J31L,PDstandardNth23beta3)),kmadd(dJ212L,PDstandardNth2beta3,kmadd(J32L,kmadd(J21L,PDstandardNth23beta3,kmul(J31L,PDstandardNth33beta3)),kmul(dJ312L,PDstandardNth3beta3))))))); + + JacPDstandardNth23alpha = + kmadd(J13L,kmadd(J12L,PDstandardNth11alpha,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha))),kmadd(J12L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ123L,PDstandardNth1alpha,kmadd(J23L,kmadd(J22L,PDstandardNth22alpha,kmul(J32L,PDstandardNth23alpha)),kmadd(dJ223L,PDstandardNth2alpha,kmadd(J33L,kmadd(J22L,PDstandardNth23alpha,kmul(J32L,PDstandardNth33alpha)),kmul(dJ323L,PDstandardNth3alpha))))))); + + JacPDstandardNth23beta1 = + kmadd(J13L,kmadd(J12L,PDstandardNth11beta1,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmadd(dJ123L,PDstandardNth1beta1,kmadd(J23L,kmadd(J22L,PDstandardNth22beta1,kmul(J32L,PDstandardNth23beta1)),kmadd(dJ223L,PDstandardNth2beta1,kmadd(J33L,kmadd(J22L,PDstandardNth23beta1,kmul(J32L,PDstandardNth33beta1)),kmul(dJ323L,PDstandardNth3beta1))))))); + + JacPDstandardNth23beta2 = + kmadd(J13L,kmadd(J12L,PDstandardNth11beta2,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmadd(dJ123L,PDstandardNth1beta2,kmadd(J23L,kmadd(J22L,PDstandardNth22beta2,kmul(J32L,PDstandardNth23beta2)),kmadd(dJ223L,PDstandardNth2beta2,kmadd(J33L,kmadd(J22L,PDstandardNth23beta2,kmul(J32L,PDstandardNth33beta2)),kmul(dJ323L,PDstandardNth3beta2))))))); + + JacPDstandardNth23beta3 = + kmadd(J13L,kmadd(J12L,PDstandardNth11beta3,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmadd(dJ123L,PDstandardNth1beta3,kmadd(J23L,kmadd(J22L,PDstandardNth22beta3,kmul(J32L,PDstandardNth23beta3)),kmadd(dJ223L,PDstandardNth2beta3,kmadd(J33L,kmadd(J22L,PDstandardNth23beta3,kmul(J32L,PDstandardNth33beta3)),kmul(dJ323L,PDstandardNth3beta3))))))); + + JacPDstandardNth31alpha = + kmadd(J13L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ113L,PDstandardNth1alpha,kmadd(J23L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ213L,PDstandardNth2alpha,kmadd(J33L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ313L,PDstandardNth3alpha))))))); + + JacPDstandardNth31beta1 = + kmadd(J13L,kmadd(J11L,PDstandardNth11beta1,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmadd(dJ113L,PDstandardNth1beta1,kmadd(J23L,kmadd(J21L,PDstandardNth22beta1,kmul(J31L,PDstandardNth23beta1)),kmadd(dJ213L,PDstandardNth2beta1,kmadd(J33L,kmadd(J21L,PDstandardNth23beta1,kmul(J31L,PDstandardNth33beta1)),kmul(dJ313L,PDstandardNth3beta1))))))); + + JacPDstandardNth31beta2 = + kmadd(J13L,kmadd(J11L,PDstandardNth11beta2,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmadd(dJ113L,PDstandardNth1beta2,kmadd(J23L,kmadd(J21L,PDstandardNth22beta2,kmul(J31L,PDstandardNth23beta2)),kmadd(dJ213L,PDstandardNth2beta2,kmadd(J33L,kmadd(J21L,PDstandardNth23beta2,kmul(J31L,PDstandardNth33beta2)),kmul(dJ313L,PDstandardNth3beta2))))))); + + JacPDstandardNth31beta3 = + kmadd(J13L,kmadd(J11L,PDstandardNth11beta3,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmadd(dJ113L,PDstandardNth1beta3,kmadd(J23L,kmadd(J21L,PDstandardNth22beta3,kmul(J31L,PDstandardNth23beta3)),kmadd(dJ213L,PDstandardNth2beta3,kmadd(J33L,kmadd(J21L,PDstandardNth23beta3,kmul(J31L,PDstandardNth33beta3)),kmul(dJ313L,PDstandardNth3beta3))))))); + + JacPDstandardNth32alpha = + kmadd(J13L,kmadd(J12L,PDstandardNth11alpha,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha))),kmadd(J12L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ123L,PDstandardNth1alpha,kmadd(J23L,kmadd(J22L,PDstandardNth22alpha,kmul(J32L,PDstandardNth23alpha)),kmadd(dJ223L,PDstandardNth2alpha,kmadd(J33L,kmadd(J22L,PDstandardNth23alpha,kmul(J32L,PDstandardNth33alpha)),kmul(dJ323L,PDstandardNth3alpha))))))); + + JacPDstandardNth32beta1 = + kmadd(J13L,kmadd(J12L,PDstandardNth11beta1,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmadd(dJ123L,PDstandardNth1beta1,kmadd(J23L,kmadd(J22L,PDstandardNth22beta1,kmul(J32L,PDstandardNth23beta1)),kmadd(dJ223L,PDstandardNth2beta1,kmadd(J33L,kmadd(J22L,PDstandardNth23beta1,kmul(J32L,PDstandardNth33beta1)),kmul(dJ323L,PDstandardNth3beta1))))))); + + JacPDstandardNth32beta2 = + kmadd(J13L,kmadd(J12L,PDstandardNth11beta2,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmadd(dJ123L,PDstandardNth1beta2,kmadd(J23L,kmadd(J22L,PDstandardNth22beta2,kmul(J32L,PDstandardNth23beta2)),kmadd(dJ223L,PDstandardNth2beta2,kmadd(J33L,kmadd(J22L,PDstandardNth23beta2,kmul(J32L,PDstandardNth33beta2)),kmul(dJ323L,PDstandardNth3beta2))))))); + + JacPDstandardNth32beta3 = + kmadd(J13L,kmadd(J12L,PDstandardNth11beta3,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmadd(dJ123L,PDstandardNth1beta3,kmadd(J23L,kmadd(J22L,PDstandardNth22beta3,kmul(J32L,PDstandardNth23beta3)),kmadd(dJ223L,PDstandardNth2beta3,kmadd(J33L,kmadd(J22L,PDstandardNth23beta3,kmul(J32L,PDstandardNth33beta3)),kmul(dJ323L,PDstandardNth3beta3))))))); + } + else + { + JacPDstandardNth1alpha = PDstandardNth1alpha; + + JacPDstandardNth1beta1 = PDstandardNth1beta1; + + JacPDstandardNth1beta2 = PDstandardNth1beta2; + + JacPDstandardNth1beta3 = PDstandardNth1beta3; + + JacPDstandardNth1gt11 = PDstandardNth1gt11; + + JacPDstandardNth1gt12 = PDstandardNth1gt12; + + JacPDstandardNth1gt13 = PDstandardNth1gt13; + + JacPDstandardNth1gt22 = PDstandardNth1gt22; + + JacPDstandardNth1gt23 = PDstandardNth1gt23; + + JacPDstandardNth1gt33 = PDstandardNth1gt33; + + JacPDstandardNth1phi = PDstandardNth1phi; + + JacPDstandardNth1trK = PDstandardNth1trK; + + JacPDstandardNth2alpha = PDstandardNth2alpha; + + JacPDstandardNth2beta1 = PDstandardNth2beta1; + + JacPDstandardNth2beta2 = PDstandardNth2beta2; + + JacPDstandardNth2beta3 = PDstandardNth2beta3; + + JacPDstandardNth2gt11 = PDstandardNth2gt11; + + JacPDstandardNth2gt12 = PDstandardNth2gt12; + + JacPDstandardNth2gt13 = PDstandardNth2gt13; + + JacPDstandardNth2gt22 = PDstandardNth2gt22; + + JacPDstandardNth2gt23 = PDstandardNth2gt23; + + JacPDstandardNth2gt33 = PDstandardNth2gt33; + + JacPDstandardNth2phi = PDstandardNth2phi; + + JacPDstandardNth2trK = PDstandardNth2trK; + + JacPDstandardNth3alpha = PDstandardNth3alpha; + + JacPDstandardNth3beta1 = PDstandardNth3beta1; + + JacPDstandardNth3beta2 = PDstandardNth3beta2; + + JacPDstandardNth3beta3 = PDstandardNth3beta3; + + JacPDstandardNth3gt11 = PDstandardNth3gt11; + + JacPDstandardNth3gt12 = PDstandardNth3gt12; + + JacPDstandardNth3gt13 = PDstandardNth3gt13; + + JacPDstandardNth3gt22 = PDstandardNth3gt22; + + JacPDstandardNth3gt23 = PDstandardNth3gt23; + + JacPDstandardNth3gt33 = PDstandardNth3gt33; + + JacPDstandardNth3phi = PDstandardNth3phi; + + JacPDstandardNth3trK = PDstandardNth3trK; + + JacPDstandardNth11alpha = PDstandardNth11alpha; + + JacPDstandardNth11beta1 = PDstandardNth11beta1; + + JacPDstandardNth11beta2 = PDstandardNth11beta2; + + JacPDstandardNth11beta3 = PDstandardNth11beta3; + + JacPDstandardNth22alpha = PDstandardNth22alpha; + + JacPDstandardNth22beta1 = PDstandardNth22beta1; + + JacPDstandardNth22beta2 = PDstandardNth22beta2; + + JacPDstandardNth22beta3 = PDstandardNth22beta3; + + JacPDstandardNth33alpha = PDstandardNth33alpha; + + JacPDstandardNth33beta1 = PDstandardNth33beta1; + + JacPDstandardNth33beta2 = PDstandardNth33beta2; + + JacPDstandardNth33beta3 = PDstandardNth33beta3; + + JacPDstandardNth12alpha = PDstandardNth12alpha; + + JacPDstandardNth12beta1 = PDstandardNth12beta1; + + JacPDstandardNth12beta2 = PDstandardNth12beta2; + + JacPDstandardNth12beta3 = PDstandardNth12beta3; + + JacPDstandardNth13alpha = PDstandardNth13alpha; + + JacPDstandardNth13beta1 = PDstandardNth13beta1; + + JacPDstandardNth13beta2 = PDstandardNth13beta2; + + JacPDstandardNth13beta3 = PDstandardNth13beta3; + + JacPDstandardNth21alpha = PDstandardNth12alpha; + + JacPDstandardNth21beta1 = PDstandardNth12beta1; + + JacPDstandardNth21beta2 = PDstandardNth12beta2; + + JacPDstandardNth21beta3 = PDstandardNth12beta3; + + JacPDstandardNth23alpha = PDstandardNth23alpha; + + JacPDstandardNth23beta1 = PDstandardNth23beta1; + + JacPDstandardNth23beta2 = PDstandardNth23beta2; + + JacPDstandardNth23beta3 = PDstandardNth23beta3; + + JacPDstandardNth31alpha = PDstandardNth13alpha; + + JacPDstandardNth31beta1 = PDstandardNth13beta1; + + JacPDstandardNth31beta2 = PDstandardNth13beta2; + + JacPDstandardNth31beta3 = PDstandardNth13beta3; + + JacPDstandardNth32alpha = PDstandardNth23alpha; + + JacPDstandardNth32beta1 = PDstandardNth23beta1; + + JacPDstandardNth32beta2 = PDstandardNth23beta2; + + JacPDstandardNth32beta3 = PDstandardNth23beta3; + } + ptrdiff_t dir1 = Sign(beta1L); ptrdiff_t dir2 = Sign(beta2L); @@ -278,50 +1126,50 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC gtu33 = kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); - CCTK_REAL_VEC Gtl111 = kmul(PDstandardNth1gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl111 = kmul(JacPDstandardNth1gt11,ToReal(0.5)); - CCTK_REAL_VEC Gtl112 = kmul(PDstandardNth2gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl112 = kmul(JacPDstandardNth2gt11,ToReal(0.5)); - CCTK_REAL_VEC Gtl113 = kmul(PDstandardNth3gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl113 = kmul(JacPDstandardNth3gt11,ToReal(0.5)); CCTK_REAL_VEC Gtl122 = - kmadd(PDstandardNth1gt22,ToReal(-0.5),PDstandardNth2gt12); + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); CCTK_REAL_VEC Gtl123 = - kmul(kadd(PDstandardNth2gt13,ksub(PDstandardNth3gt12,PDstandardNth1gt23)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); CCTK_REAL_VEC Gtl133 = - kmadd(PDstandardNth1gt33,ToReal(-0.5),PDstandardNth3gt13); + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); CCTK_REAL_VEC Gtl211 = - kmadd(PDstandardNth2gt11,ToReal(-0.5),PDstandardNth1gt12); + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); - CCTK_REAL_VEC Gtl212 = kmul(PDstandardNth1gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl212 = kmul(JacPDstandardNth1gt22,ToReal(0.5)); CCTK_REAL_VEC Gtl213 = - kmul(kadd(PDstandardNth1gt23,ksub(PDstandardNth3gt12,PDstandardNth2gt13)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); - CCTK_REAL_VEC Gtl222 = kmul(PDstandardNth2gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl222 = kmul(JacPDstandardNth2gt22,ToReal(0.5)); - CCTK_REAL_VEC Gtl223 = kmul(PDstandardNth3gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl223 = kmul(JacPDstandardNth3gt22,ToReal(0.5)); CCTK_REAL_VEC Gtl233 = - kmadd(PDstandardNth2gt33,ToReal(-0.5),PDstandardNth3gt23); + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); CCTK_REAL_VEC Gtl311 = - kmadd(PDstandardNth3gt11,ToReal(-0.5),PDstandardNth1gt13); + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); CCTK_REAL_VEC Gtl312 = - kmul(kadd(PDstandardNth1gt23,ksub(PDstandardNth2gt13,PDstandardNth3gt12)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); - CCTK_REAL_VEC Gtl313 = kmul(PDstandardNth1gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl313 = kmul(JacPDstandardNth1gt33,ToReal(0.5)); CCTK_REAL_VEC Gtl322 = - kmadd(PDstandardNth3gt22,ToReal(-0.5),PDstandardNth2gt23); + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); - CCTK_REAL_VEC Gtl323 = kmul(PDstandardNth2gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl323 = kmul(JacPDstandardNth2gt33,ToReal(0.5)); - CCTK_REAL_VEC Gtl333 = kmul(PDstandardNth3gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl333 = kmul(JacPDstandardNth3gt33,ToReal(0.5)); CCTK_REAL_VEC Gt111 = kmadd(Gtl111,gtu11,kmadd(Gtl211,gtu12,kmul(Gtl311,gtu13))); @@ -389,11 +1237,11 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC fac1 = IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); - CCTK_REAL_VEC cdphi1 = kmul(fac1,PDstandardNth1phi); + CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); - CCTK_REAL_VEC cdphi2 = kmul(fac1,PDstandardNth2phi); + CCTK_REAL_VEC cdphi2 = kmul(fac1,JacPDstandardNth2phi); - CCTK_REAL_VEC cdphi3 = kmul(fac1,PDstandardNth3phi); + CCTK_REAL_VEC cdphi3 = kmul(fac1,JacPDstandardNth3phi); CCTK_REAL_VEC Atm11 = kmadd(At11L,gtu11,kmadd(At12L,gtu12,kmul(At13L,gtu13))); @@ -461,34 +1309,34 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, kmul(em4phi,kmadd(eTxxL,gtu11,kmadd(eTyyL,gtu22,kmadd(eTzzL,gtu33,kmul(kmadd(eTxyL,gtu12,kmadd(eTxzL,gtu13,kmul(eTyzL,gtu23))),ToReal(2)))))); CCTK_REAL_VEC phirhsL = - IfThen(conformalMethod,kmul(phiL,kmadd(kadd(PDstandardNth1beta1,kadd(PDstandardNth2beta2,PDstandardNth3beta3)),ToReal(-0.333333333333333333333333333333),kmul(alphaL,kmul(trKL,ToReal(0.333333333333333333333333333333))))),kmadd(alphaL,kmul(trKL,ToReal(-0.166666666666666666666666666667)),kmul(kadd(PDstandardNth1beta1,kadd(PDstandardNth2beta2,PDstandardNth3beta3)),ToReal(0.166666666666666666666666666667)))); + IfThen(conformalMethod,kmul(phiL,kmadd(kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3)),ToReal(-0.333333333333333333333333333333),kmul(alphaL,kmul(trKL,ToReal(0.333333333333333333333333333333))))),kmadd(alphaL,kmul(trKL,ToReal(-0.166666666666666666666666666667)),kmul(kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3)),ToReal(0.166666666666666666666666666667)))); CCTK_REAL_VEC gt11rhsL = - kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,PDstandardNth1beta2,kmul(gt13L,PDstandardNth1beta3)),ToReal(-3),kmadd(gt11L,kadd(PDstandardNth2beta2,kmadd(PDstandardNth1beta1,ToReal(-2),PDstandardNth3beta3)),kmul(alphaL,kmul(At11L,ToReal(3)))))); + kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3)),ToReal(-3),kmadd(gt11L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmul(At11L,ToReal(3)))))); CCTK_REAL_VEC gt12rhsL = - kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At12L,ToReal(-6)),kmadd(gt12L,kadd(PDstandardNth1beta1,kmadd(PDstandardNth3beta3,ToReal(-2),PDstandardNth2beta2)),kmul(kmadd(gt22L,PDstandardNth1beta2,kmadd(gt23L,PDstandardNth1beta3,kmadd(gt11L,PDstandardNth2beta1,kmul(gt13L,PDstandardNth2beta3)))),ToReal(3))))); + kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At12L,ToReal(-6)),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3))))); CCTK_REAL_VEC gt13rhsL = - kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At13L,ToReal(-6)),kmadd(gt13L,kadd(PDstandardNth1beta1,kmadd(PDstandardNth2beta2,ToReal(-2),PDstandardNth3beta3)),kmul(kmadd(gt23L,PDstandardNth1beta2,kmadd(gt33L,PDstandardNth1beta3,kmadd(gt11L,PDstandardNth3beta1,kmul(gt12L,PDstandardNth3beta2)))),ToReal(3))))); + kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At13L,ToReal(-6)),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3))))); CCTK_REAL_VEC gt22rhsL = - kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,PDstandardNth2beta1,kmul(gt23L,PDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(PDstandardNth1beta1,kmadd(PDstandardNth2beta2,ToReal(-2),PDstandardNth3beta3)),kmul(alphaL,kmul(At22L,ToReal(3)))))); + kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmul(At22L,ToReal(3)))))); CCTK_REAL_VEC gt23rhsL = - kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At23L,ToReal(-6)),kmadd(gt23L,kadd(PDstandardNth2beta2,kmadd(PDstandardNth1beta1,ToReal(-2),PDstandardNth3beta3)),kmul(kmadd(gt13L,PDstandardNth2beta1,kmadd(gt33L,PDstandardNth2beta3,kmadd(gt12L,PDstandardNth3beta1,kmul(gt22L,PDstandardNth3beta2)))),ToReal(3))))); + kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At23L,ToReal(-6)),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3))))); CCTK_REAL_VEC gt33rhsL = - kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,PDstandardNth3beta1,kmul(gt23L,PDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(PDstandardNth1beta1,kmadd(PDstandardNth3beta3,ToReal(-2),PDstandardNth2beta2)),kmul(alphaL,kmul(At33L,ToReal(3)))))); + kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmul(At33L,ToReal(3)))))); CCTK_REAL_VEC dotXt1 = - kmul(ToReal(0.333333333333333333333333333333),kmadd(gtu12,kadd(PDstandardNth22beta2,kmadd(alphaL,kmul(S2,ToReal(-150.7964473723100754462068823974161384415)),PDstandardNth23beta3)),kmadd(gtu13,kadd(PDstandardNth23beta2,kmadd(alphaL,kmul(S3,ToReal(-150.7964473723100754462068823974161384415)),PDstandardNth33beta3)),kmadd(kmadd(Atu11,PDstandardNth1alpha,kmadd(Atu12,PDstandardNth2alpha,kmul(Atu13,PDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(PDstandardNth2beta1,Xtn2,kmul(PDstandardNth3beta1,Xtn3)),ToReal(-3),kmadd(Xtn1,kmsub(PDstandardNth3beta3,ToReal(2),PDstandardNth1beta1),kmadd(kmadd(gtu22,PDstandardNth22beta1,kmul(gtu33,PDstandardNth33beta1)),ToReal(3),kmadd(gtu11,kadd(PDstandardNth12beta2,kadd(PDstandardNth13beta3,kmadd(alphaL,kmul(S1,ToReal(-150.7964473723100754462068823974161384415)),kmul(PDstandardNth11beta1,ToReal(4))))),kmadd(gtu23,kmul(PDstandardNth23beta1,ToReal(6)),kmadd(kmadd(gtu12,PDstandardNth12beta1,kmul(gtu13,PDstandardNth13beta1)),ToReal(7),kmul(ToReal(2),kmadd(PDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,PDstandardNth1trK,kmadd(gtu12,PDstandardNth2trK,kmul(gtu13,PDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt111,kmadd(Atu22,Gt122,kmul(Atu33,Gt133))),ToReal(3),kmadd(kmadd(Atu12,Gt112,kmadd(Atu13,Gt113,kmul(Atu23,Gt123))),ToReal(6),kmul(kmadd(Atu11,cdphi1,kmadd(Atu12,cdphi2,kmul(Atu13,cdphi3))),ToReal(18)))))))))))))))))); + kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu11,JacPDstandardNth1alpha,kmadd(Atu12,JacPDstandardNth2alpha,kmul(Atu13,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth2beta1,Xtn2,kmul(JacPDstandardNth3beta1,Xtn3)),ToReal(-3),kmadd(Xtn1,kmsub(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmul(gtu33,JacPDstandardNth33beta1))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(alphaL,kmadd(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),ToReal(-150.7964473723100754462068823974161384415),kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-4),kmadd(ToReal(6),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(12),kmul(Atu13,kmadd(Gt113,ToReal(12),kmul(cdphi3,ToReal(36))))))))))))))))); CCTK_REAL_VEC dotXt2 = - kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu12,PDstandardNth1alpha,kmadd(Atu22,PDstandardNth2alpha,kmul(Atu23,PDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(PDstandardNth1beta2,Xtn1,kmul(PDstandardNth3beta2,Xtn3)),ToReal(-3),kmadd(Xtn2,kmsub(PDstandardNth3beta3,ToReal(2),PDstandardNth2beta2),kmadd(kmadd(gtu11,PDstandardNth11beta2,kmul(gtu33,PDstandardNth33beta2)),ToReal(3),kmadd(gtu22,kadd(PDstandardNth12beta1,kadd(PDstandardNth23beta3,kmadd(alphaL,kmul(S2,ToReal(-150.7964473723100754462068823974161384415)),kmul(PDstandardNth22beta2,ToReal(4))))),kmadd(gtu13,kmul(PDstandardNth13beta2,ToReal(6)),kmadd(gtu12,kadd(PDstandardNth11beta1,kadd(PDstandardNth13beta3,kmadd(alphaL,kmul(S1,ToReal(-150.7964473723100754462068823974161384415)),kmul(PDstandardNth12beta2,ToReal(7))))),kmadd(gtu23,kadd(PDstandardNth13beta1,kadd(PDstandardNth33beta3,kmadd(alphaL,kmul(S3,ToReal(-150.7964473723100754462068823974161384415)),kmul(PDstandardNth23beta2,ToReal(7))))),kmul(ToReal(2),kmadd(PDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,PDstandardNth1trK,kmadd(gtu22,PDstandardNth2trK,kmul(gtu23,PDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt211,kmadd(Atu22,Gt222,kmul(Atu33,Gt233))),ToReal(3),kmadd(kmadd(Atu12,Gt212,kmadd(Atu13,Gt213,kmul(Atu23,Gt223))),ToReal(6),kmul(kmadd(Atu12,cdphi1,kmadd(Atu22,cdphi2,kmul(Atu23,cdphi3))),ToReal(18))))))))))))))))); + kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu12,JacPDstandardNth1alpha,kmadd(Atu22,JacPDstandardNth2alpha,kmul(Atu23,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta2,Xtn1,kmul(JacPDstandardNth3beta2,Xtn3)),ToReal(-3),kmadd(Xtn2,kmsub(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmul(gtu33,JacPDstandardNth33beta2)))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(JacPDstandardNth21beta2,ToReal(3),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(alphaL,kmadd(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),ToReal(-150.7964473723100754462068823974161384415),kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-4),kmadd(ToReal(6),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(12),kmul(Atu23,kmadd(Gt223,ToReal(12),kmul(cdphi3,ToReal(36))))))))))))))))); CCTK_REAL_VEC dotXt3 = - kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,PDstandardNth1alpha,kmadd(Atu23,PDstandardNth2alpha,kmul(Atu33,PDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(PDstandardNth1beta3,Xtn1,kmul(PDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(PDstandardNth2beta2,ToReal(2),PDstandardNth3beta3),kmadd(kmadd(gtu11,PDstandardNth11beta3,kmul(gtu22,PDstandardNth22beta3)),ToReal(3),kmadd(gtu33,kadd(PDstandardNth13beta1,kadd(PDstandardNth23beta2,kmadd(alphaL,kmul(S3,ToReal(-150.7964473723100754462068823974161384415)),kmul(PDstandardNth33beta3,ToReal(4))))),kmadd(gtu12,kmul(PDstandardNth12beta3,ToReal(6)),kmadd(gtu13,kadd(PDstandardNth11beta1,kadd(PDstandardNth12beta2,kmadd(alphaL,kmul(S1,ToReal(-150.7964473723100754462068823974161384415)),kmul(PDstandardNth13beta3,ToReal(7))))),kmadd(gtu23,kadd(PDstandardNth12beta1,kadd(PDstandardNth22beta2,kmadd(alphaL,kmul(S2,ToReal(-150.7964473723100754462068823974161384415)),kmul(PDstandardNth23beta3,ToReal(7))))),kmul(ToReal(2),kmadd(PDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,PDstandardNth1trK,kmadd(gtu23,PDstandardNth2trK,kmul(gtu33,PDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmadd(Atu22,Gt322,kmul(Atu33,Gt333))),ToReal(3),kmadd(kmadd(Atu12,Gt312,kmadd(Atu13,Gt313,kmul(Atu23,Gt323))),ToReal(6),kmul(kmadd(Atu13,cdphi1,kmadd(Atu23,cdphi2,kmul(Atu33,cdphi3))),ToReal(18))))))))))))))))); + kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,JacPDstandardNth1alpha,kmadd(Atu23,JacPDstandardNth2alpha,kmul(Atu33,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta3,Xtn1,kmul(JacPDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmul(gtu23,JacPDstandardNth32beta3)))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(alphaL,kmadd(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),ToReal(-150.7964473723100754462068823974161384415),kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-4),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),ToReal(6),kmadd(kmadd(Atu12,Gt312,kmadd(Atu13,kmadd(cdphi1,ToReal(3),Gt313),kmul(Atu23,kmadd(cdphi2,ToReal(3),Gt323)))),ToReal(12),kmul(Atu33,kmadd(Gt333,ToReal(6),kmul(cdphi3,ToReal(36))))))))))))))))); CCTK_REAL_VEC Xt1rhsL = dotXt1; @@ -497,7 +1345,7 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC Xt3rhsL = dotXt3; CCTK_REAL_VEC dottrK = - kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),ToReal(12.56637061435917295385057353311801153679))))))),kmul(em4phi,kmadd(gtu11,PDstandardNth11alpha,kmadd(gtu22,PDstandardNth22alpha,knmsub(PDstandardNth3alpha,Xtn3,kmadd(kmadd(gtu12,PDstandardNth12alpha,kmadd(gtu13,kmadd(cdphi1,PDstandardNth3alpha,PDstandardNth13alpha),kmul(gtu23,kmadd(cdphi2,PDstandardNth3alpha,PDstandardNth23alpha)))),ToReal(2),kmadd(PDstandardNth1alpha,kmsub(kmadd(cdphi1,gtu11,kmadd(cdphi2,gtu12,kmul(cdphi3,gtu13))),ToReal(2),Xtn1),kmadd(PDstandardNth2alpha,kmsub(kmadd(cdphi1,gtu12,kmadd(cdphi2,gtu22,kmul(cdphi3,gtu23))),ToReal(2),Xtn2),kmul(gtu33,kmadd(cdphi3,kmul(PDstandardNth3alpha,ToReal(2)),PDstandardNth33alpha)))))))))); + kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),ToReal(12.56637061435917295385057353311801153679))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha)))))))))))); CCTK_REAL_VEC trKrhsL = dottrK; diff --git a/ML_BSSN/src/ML_BSSN_RHS2.cc b/ML_BSSN/src/ML_BSSN_RHS2.cc index 8710f4b..6015743 100644 --- a/ML_BSSN/src/ML_BSSN_RHS2.cc +++ b/ML_BSSN/src/ML_BSSN_RHS2.cc @@ -55,7 +55,24 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, const char *groups[] = {"ML_BSSN::ML_curv","ML_BSSN::ML_curvrhs","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHS2", 8, groups); - GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS2", 2, 2, 2); + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS2", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS2", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS2", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_RHS2", 4, 4, 4); + break; + } /* Include user-supplied include files */ @@ -83,24 +100,129 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -156,101 +278,1163 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, eTzzL = ToReal(0.0); } + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + /* Include user supplied include files */ /* Precompute derivatives */ - CCTK_REAL_VEC const PDstandardNth1alpha = PDstandardNth1(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth2alpha = PDstandardNth2(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth3alpha = PDstandardNth3(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth11alpha = PDstandardNth11(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth22alpha = PDstandardNth22(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth33alpha = PDstandardNth33(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth12alpha = PDstandardNth12(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth13alpha = PDstandardNth13(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth23alpha = PDstandardNth23(&alpha[index]); - CCTK_REAL_VEC const PDstandardNth1beta1 = PDstandardNth1(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth2beta1 = PDstandardNth2(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth3beta1 = PDstandardNth3(&beta1[index]); - CCTK_REAL_VEC const PDstandardNth1beta2 = PDstandardNth1(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth2beta2 = PDstandardNth2(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth3beta2 = PDstandardNth3(&beta2[index]); - CCTK_REAL_VEC const PDstandardNth1beta3 = PDstandardNth1(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth2beta3 = PDstandardNth2(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth3beta3 = PDstandardNth3(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth1gt11 = PDstandardNth1(>11[index]); - CCTK_REAL_VEC const PDstandardNth2gt11 = PDstandardNth2(>11[index]); - CCTK_REAL_VEC const PDstandardNth3gt11 = PDstandardNth3(>11[index]); - CCTK_REAL_VEC const PDstandardNth11gt11 = PDstandardNth11(>11[index]); - CCTK_REAL_VEC const PDstandardNth22gt11 = PDstandardNth22(>11[index]); - CCTK_REAL_VEC const PDstandardNth33gt11 = PDstandardNth33(>11[index]); - CCTK_REAL_VEC const PDstandardNth12gt11 = PDstandardNth12(>11[index]); - CCTK_REAL_VEC const PDstandardNth13gt11 = PDstandardNth13(>11[index]); - CCTK_REAL_VEC const PDstandardNth23gt11 = PDstandardNth23(>11[index]); - CCTK_REAL_VEC const PDstandardNth1gt12 = PDstandardNth1(>12[index]); - CCTK_REAL_VEC const PDstandardNth2gt12 = PDstandardNth2(>12[index]); - CCTK_REAL_VEC const PDstandardNth3gt12 = PDstandardNth3(>12[index]); - CCTK_REAL_VEC const PDstandardNth11gt12 = PDstandardNth11(>12[index]); - CCTK_REAL_VEC const PDstandardNth22gt12 = PDstandardNth22(>12[index]); - CCTK_REAL_VEC const PDstandardNth33gt12 = PDstandardNth33(>12[index]); - CCTK_REAL_VEC const PDstandardNth12gt12 = PDstandardNth12(>12[index]); - CCTK_REAL_VEC const PDstandardNth13gt12 = PDstandardNth13(>12[index]); - CCTK_REAL_VEC const PDstandardNth23gt12 = PDstandardNth23(>12[index]); - CCTK_REAL_VEC const PDstandardNth1gt13 = PDstandardNth1(>13[index]); - CCTK_REAL_VEC const PDstandardNth2gt13 = PDstandardNth2(>13[index]); - CCTK_REAL_VEC const PDstandardNth3gt13 = PDstandardNth3(>13[index]); - CCTK_REAL_VEC const PDstandardNth11gt13 = PDstandardNth11(>13[index]); - CCTK_REAL_VEC const PDstandardNth22gt13 = PDstandardNth22(>13[index]); - CCTK_REAL_VEC const PDstandardNth33gt13 = PDstandardNth33(>13[index]); - CCTK_REAL_VEC const PDstandardNth12gt13 = PDstandardNth12(>13[index]); - CCTK_REAL_VEC const PDstandardNth13gt13 = PDstandardNth13(>13[index]); - CCTK_REAL_VEC const PDstandardNth23gt13 = PDstandardNth23(>13[index]); - CCTK_REAL_VEC const PDstandardNth1gt22 = PDstandardNth1(>22[index]); - CCTK_REAL_VEC const PDstandardNth2gt22 = PDstandardNth2(>22[index]); - CCTK_REAL_VEC const PDstandardNth3gt22 = PDstandardNth3(>22[index]); - CCTK_REAL_VEC const PDstandardNth11gt22 = PDstandardNth11(>22[index]); - CCTK_REAL_VEC const PDstandardNth22gt22 = PDstandardNth22(>22[index]); - CCTK_REAL_VEC const PDstandardNth33gt22 = PDstandardNth33(>22[index]); - CCTK_REAL_VEC const PDstandardNth12gt22 = PDstandardNth12(>22[index]); - CCTK_REAL_VEC const PDstandardNth13gt22 = PDstandardNth13(>22[index]); - CCTK_REAL_VEC const PDstandardNth23gt22 = PDstandardNth23(>22[index]); - CCTK_REAL_VEC const PDstandardNth1gt23 = PDstandardNth1(>23[index]); - CCTK_REAL_VEC const PDstandardNth2gt23 = PDstandardNth2(>23[index]); - CCTK_REAL_VEC const PDstandardNth3gt23 = PDstandardNth3(>23[index]); - CCTK_REAL_VEC const PDstandardNth11gt23 = PDstandardNth11(>23[index]); - CCTK_REAL_VEC const PDstandardNth22gt23 = PDstandardNth22(>23[index]); - CCTK_REAL_VEC const PDstandardNth33gt23 = PDstandardNth33(>23[index]); - CCTK_REAL_VEC const PDstandardNth12gt23 = PDstandardNth12(>23[index]); - CCTK_REAL_VEC const PDstandardNth13gt23 = PDstandardNth13(>23[index]); - CCTK_REAL_VEC const PDstandardNth23gt23 = PDstandardNth23(>23[index]); - CCTK_REAL_VEC const PDstandardNth1gt33 = PDstandardNth1(>33[index]); - CCTK_REAL_VEC const PDstandardNth2gt33 = PDstandardNth2(>33[index]); - CCTK_REAL_VEC const PDstandardNth3gt33 = PDstandardNth3(>33[index]); - CCTK_REAL_VEC const PDstandardNth11gt33 = PDstandardNth11(>33[index]); - CCTK_REAL_VEC const PDstandardNth22gt33 = PDstandardNth22(>33[index]); - CCTK_REAL_VEC const PDstandardNth33gt33 = PDstandardNth33(>33[index]); - CCTK_REAL_VEC const PDstandardNth12gt33 = PDstandardNth12(>33[index]); - CCTK_REAL_VEC const PDstandardNth13gt33 = PDstandardNth13(>33[index]); - CCTK_REAL_VEC const PDstandardNth23gt33 = PDstandardNth23(>33[index]); - CCTK_REAL_VEC const PDstandardNth1phi = PDstandardNth1(&phi[index]); - CCTK_REAL_VEC const PDstandardNth2phi = PDstandardNth2(&phi[index]); - CCTK_REAL_VEC const PDstandardNth3phi = PDstandardNth3(&phi[index]); - CCTK_REAL_VEC const PDstandardNth11phi = PDstandardNth11(&phi[index]); - CCTK_REAL_VEC const PDstandardNth22phi = PDstandardNth22(&phi[index]); - CCTK_REAL_VEC const PDstandardNth33phi = PDstandardNth33(&phi[index]); - CCTK_REAL_VEC const PDstandardNth12phi = PDstandardNth12(&phi[index]); - CCTK_REAL_VEC const PDstandardNth13phi = PDstandardNth13(&phi[index]); - CCTK_REAL_VEC const PDstandardNth23phi = PDstandardNth23(&phi[index]); - CCTK_REAL_VEC const PDstandardNth1Xt1 = PDstandardNth1(&Xt1[index]); - CCTK_REAL_VEC const PDstandardNth2Xt1 = PDstandardNth2(&Xt1[index]); - CCTK_REAL_VEC const PDstandardNth3Xt1 = PDstandardNth3(&Xt1[index]); - CCTK_REAL_VEC const PDstandardNth1Xt2 = PDstandardNth1(&Xt2[index]); - CCTK_REAL_VEC const PDstandardNth2Xt2 = PDstandardNth2(&Xt2[index]); - CCTK_REAL_VEC const PDstandardNth3Xt2 = PDstandardNth3(&Xt2[index]); - CCTK_REAL_VEC const PDstandardNth1Xt3 = PDstandardNth1(&Xt3[index]); - CCTK_REAL_VEC const PDstandardNth2Xt3 = PDstandardNth2(&Xt3[index]); - CCTK_REAL_VEC const PDstandardNth3Xt3 = PDstandardNth3(&Xt3[index]); + CCTK_REAL_VEC PDstandardNth1alpha; + CCTK_REAL_VEC PDstandardNth2alpha; + CCTK_REAL_VEC PDstandardNth3alpha; + CCTK_REAL_VEC PDstandardNth11alpha; + CCTK_REAL_VEC PDstandardNth22alpha; + CCTK_REAL_VEC PDstandardNth33alpha; + CCTK_REAL_VEC PDstandardNth12alpha; + CCTK_REAL_VEC PDstandardNth13alpha; + CCTK_REAL_VEC PDstandardNth23alpha; + CCTK_REAL_VEC PDstandardNth1beta1; + CCTK_REAL_VEC PDstandardNth2beta1; + CCTK_REAL_VEC PDstandardNth3beta1; + CCTK_REAL_VEC PDstandardNth1beta2; + CCTK_REAL_VEC PDstandardNth2beta2; + CCTK_REAL_VEC PDstandardNth3beta2; + CCTK_REAL_VEC PDstandardNth1beta3; + CCTK_REAL_VEC PDstandardNth2beta3; + CCTK_REAL_VEC PDstandardNth3beta3; + CCTK_REAL_VEC PDstandardNth1gt11; + CCTK_REAL_VEC PDstandardNth2gt11; + CCTK_REAL_VEC PDstandardNth3gt11; + CCTK_REAL_VEC PDstandardNth11gt11; + CCTK_REAL_VEC PDstandardNth22gt11; + CCTK_REAL_VEC PDstandardNth33gt11; + CCTK_REAL_VEC PDstandardNth12gt11; + CCTK_REAL_VEC PDstandardNth13gt11; + CCTK_REAL_VEC PDstandardNth23gt11; + CCTK_REAL_VEC PDstandardNth1gt12; + CCTK_REAL_VEC PDstandardNth2gt12; + CCTK_REAL_VEC PDstandardNth3gt12; + CCTK_REAL_VEC PDstandardNth11gt12; + CCTK_REAL_VEC PDstandardNth22gt12; + CCTK_REAL_VEC PDstandardNth33gt12; + CCTK_REAL_VEC PDstandardNth12gt12; + CCTK_REAL_VEC PDstandardNth13gt12; + CCTK_REAL_VEC PDstandardNth23gt12; + CCTK_REAL_VEC PDstandardNth1gt13; + CCTK_REAL_VEC PDstandardNth2gt13; + CCTK_REAL_VEC PDstandardNth3gt13; + CCTK_REAL_VEC PDstandardNth11gt13; + CCTK_REAL_VEC PDstandardNth22gt13; + CCTK_REAL_VEC PDstandardNth33gt13; + CCTK_REAL_VEC PDstandardNth12gt13; + CCTK_REAL_VEC PDstandardNth13gt13; + CCTK_REAL_VEC PDstandardNth23gt13; + CCTK_REAL_VEC PDstandardNth1gt22; + CCTK_REAL_VEC PDstandardNth2gt22; + CCTK_REAL_VEC PDstandardNth3gt22; + CCTK_REAL_VEC PDstandardNth11gt22; + CCTK_REAL_VEC PDstandardNth22gt22; + CCTK_REAL_VEC PDstandardNth33gt22; + CCTK_REAL_VEC PDstandardNth12gt22; + CCTK_REAL_VEC PDstandardNth13gt22; + CCTK_REAL_VEC PDstandardNth23gt22; + CCTK_REAL_VEC PDstandardNth1gt23; + CCTK_REAL_VEC PDstandardNth2gt23; + CCTK_REAL_VEC PDstandardNth3gt23; + CCTK_REAL_VEC PDstandardNth11gt23; + CCTK_REAL_VEC PDstandardNth22gt23; + CCTK_REAL_VEC PDstandardNth33gt23; + CCTK_REAL_VEC PDstandardNth12gt23; + CCTK_REAL_VEC PDstandardNth13gt23; + CCTK_REAL_VEC PDstandardNth23gt23; + CCTK_REAL_VEC PDstandardNth1gt33; + CCTK_REAL_VEC PDstandardNth2gt33; + CCTK_REAL_VEC PDstandardNth3gt33; + CCTK_REAL_VEC PDstandardNth11gt33; + CCTK_REAL_VEC PDstandardNth22gt33; + CCTK_REAL_VEC PDstandardNth33gt33; + CCTK_REAL_VEC PDstandardNth12gt33; + CCTK_REAL_VEC PDstandardNth13gt33; + CCTK_REAL_VEC PDstandardNth23gt33; + CCTK_REAL_VEC PDstandardNth1phi; + CCTK_REAL_VEC PDstandardNth2phi; + CCTK_REAL_VEC PDstandardNth3phi; + CCTK_REAL_VEC PDstandardNth11phi; + CCTK_REAL_VEC PDstandardNth22phi; + CCTK_REAL_VEC PDstandardNth33phi; + CCTK_REAL_VEC PDstandardNth12phi; + CCTK_REAL_VEC PDstandardNth13phi; + CCTK_REAL_VEC PDstandardNth23phi; + CCTK_REAL_VEC PDstandardNth1Xt1; + CCTK_REAL_VEC PDstandardNth2Xt1; + CCTK_REAL_VEC PDstandardNth3Xt1; + CCTK_REAL_VEC PDstandardNth1Xt2; + CCTK_REAL_VEC PDstandardNth2Xt2; + CCTK_REAL_VEC PDstandardNth3Xt2; + CCTK_REAL_VEC PDstandardNth1Xt3; + CCTK_REAL_VEC PDstandardNth2Xt3; + CCTK_REAL_VEC PDstandardNth3Xt3; + + switch(fdOrder) + { + case 2: + PDstandardNth1alpha = PDstandardNthfdOrder21(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder22(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder23(&alpha[index]); + PDstandardNth11alpha = PDstandardNthfdOrder211(&alpha[index]); + PDstandardNth22alpha = PDstandardNthfdOrder222(&alpha[index]); + PDstandardNth33alpha = PDstandardNthfdOrder233(&alpha[index]); + PDstandardNth12alpha = PDstandardNthfdOrder212(&alpha[index]); + PDstandardNth13alpha = PDstandardNthfdOrder213(&alpha[index]); + PDstandardNth23alpha = PDstandardNthfdOrder223(&alpha[index]); + PDstandardNth1beta1 = PDstandardNthfdOrder21(&beta1[index]); + PDstandardNth2beta1 = PDstandardNthfdOrder22(&beta1[index]); + PDstandardNth3beta1 = PDstandardNthfdOrder23(&beta1[index]); + PDstandardNth1beta2 = PDstandardNthfdOrder21(&beta2[index]); + PDstandardNth2beta2 = PDstandardNthfdOrder22(&beta2[index]); + PDstandardNth3beta2 = PDstandardNthfdOrder23(&beta2[index]); + PDstandardNth1beta3 = PDstandardNthfdOrder21(&beta3[index]); + PDstandardNth2beta3 = PDstandardNthfdOrder22(&beta3[index]); + PDstandardNth3beta3 = PDstandardNthfdOrder23(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder21(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder22(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder23(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder211(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder222(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder233(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder212(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder213(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder223(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder21(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder22(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder23(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder211(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder222(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder233(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder212(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder213(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder223(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder21(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder22(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder23(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder211(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder222(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder233(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder212(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder213(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder223(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder21(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder22(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder23(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder211(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder222(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder233(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder212(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder213(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder223(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder21(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder22(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder23(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder211(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder222(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder233(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder212(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder213(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder223(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder21(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder22(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder23(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder211(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder222(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder233(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder212(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder213(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder223(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder21(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder22(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder23(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder211(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder222(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder233(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder212(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder213(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder223(&phi[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder21(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder22(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder23(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder21(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder22(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder23(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder21(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder22(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder23(&Xt3[index]); + break; + + case 4: + PDstandardNth1alpha = PDstandardNthfdOrder41(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder42(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder43(&alpha[index]); + PDstandardNth11alpha = PDstandardNthfdOrder411(&alpha[index]); + PDstandardNth22alpha = PDstandardNthfdOrder422(&alpha[index]); + PDstandardNth33alpha = PDstandardNthfdOrder433(&alpha[index]); + PDstandardNth12alpha = PDstandardNthfdOrder412(&alpha[index]); + PDstandardNth13alpha = PDstandardNthfdOrder413(&alpha[index]); + PDstandardNth23alpha = PDstandardNthfdOrder423(&alpha[index]); + PDstandardNth1beta1 = PDstandardNthfdOrder41(&beta1[index]); + PDstandardNth2beta1 = PDstandardNthfdOrder42(&beta1[index]); + PDstandardNth3beta1 = PDstandardNthfdOrder43(&beta1[index]); + PDstandardNth1beta2 = PDstandardNthfdOrder41(&beta2[index]); + PDstandardNth2beta2 = PDstandardNthfdOrder42(&beta2[index]); + PDstandardNth3beta2 = PDstandardNthfdOrder43(&beta2[index]); + PDstandardNth1beta3 = PDstandardNthfdOrder41(&beta3[index]); + PDstandardNth2beta3 = PDstandardNthfdOrder42(&beta3[index]); + PDstandardNth3beta3 = PDstandardNthfdOrder43(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder41(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder42(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder43(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder411(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder422(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder433(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder412(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder413(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder423(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder41(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder42(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder43(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder411(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder422(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder433(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder412(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder413(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder423(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder41(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder42(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder43(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder411(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder422(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder433(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder412(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder413(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder423(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder41(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder42(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder43(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder411(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder422(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder433(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder412(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder413(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder423(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder41(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder42(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder43(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder411(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder422(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder433(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder412(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder413(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder423(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder41(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder42(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder43(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder411(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder422(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder433(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder412(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder413(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder423(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder41(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder42(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder43(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder411(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder422(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder433(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder412(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder413(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder423(&phi[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder41(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder42(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder43(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder41(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder42(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder43(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder41(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder42(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder43(&Xt3[index]); + break; + + case 6: + PDstandardNth1alpha = PDstandardNthfdOrder61(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder62(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder63(&alpha[index]); + PDstandardNth11alpha = PDstandardNthfdOrder611(&alpha[index]); + PDstandardNth22alpha = PDstandardNthfdOrder622(&alpha[index]); + PDstandardNth33alpha = PDstandardNthfdOrder633(&alpha[index]); + PDstandardNth12alpha = PDstandardNthfdOrder612(&alpha[index]); + PDstandardNth13alpha = PDstandardNthfdOrder613(&alpha[index]); + PDstandardNth23alpha = PDstandardNthfdOrder623(&alpha[index]); + PDstandardNth1beta1 = PDstandardNthfdOrder61(&beta1[index]); + PDstandardNth2beta1 = PDstandardNthfdOrder62(&beta1[index]); + PDstandardNth3beta1 = PDstandardNthfdOrder63(&beta1[index]); + PDstandardNth1beta2 = PDstandardNthfdOrder61(&beta2[index]); + PDstandardNth2beta2 = PDstandardNthfdOrder62(&beta2[index]); + PDstandardNth3beta2 = PDstandardNthfdOrder63(&beta2[index]); + PDstandardNth1beta3 = PDstandardNthfdOrder61(&beta3[index]); + PDstandardNth2beta3 = PDstandardNthfdOrder62(&beta3[index]); + PDstandardNth3beta3 = PDstandardNthfdOrder63(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder61(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder62(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder63(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder611(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder622(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder633(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder612(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder613(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder623(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder61(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder62(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder63(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder611(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder622(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder633(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder612(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder613(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder623(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder61(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder62(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder63(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder611(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder622(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder633(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder612(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder613(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder623(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder61(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder62(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder63(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder611(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder622(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder633(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder612(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder613(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder623(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder61(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder62(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder63(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder611(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder622(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder633(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder612(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder613(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder623(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder61(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder62(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder63(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder611(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder622(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder633(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder612(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder613(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder623(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder61(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder62(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder63(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder611(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder622(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder633(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder612(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder613(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder623(&phi[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder61(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder62(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder63(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder61(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder62(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder63(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder61(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder62(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder63(&Xt3[index]); + break; + + case 8: + PDstandardNth1alpha = PDstandardNthfdOrder81(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder82(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder83(&alpha[index]); + PDstandardNth11alpha = PDstandardNthfdOrder811(&alpha[index]); + PDstandardNth22alpha = PDstandardNthfdOrder822(&alpha[index]); + PDstandardNth33alpha = PDstandardNthfdOrder833(&alpha[index]); + PDstandardNth12alpha = PDstandardNthfdOrder812(&alpha[index]); + PDstandardNth13alpha = PDstandardNthfdOrder813(&alpha[index]); + PDstandardNth23alpha = PDstandardNthfdOrder823(&alpha[index]); + PDstandardNth1beta1 = PDstandardNthfdOrder81(&beta1[index]); + PDstandardNth2beta1 = PDstandardNthfdOrder82(&beta1[index]); + PDstandardNth3beta1 = PDstandardNthfdOrder83(&beta1[index]); + PDstandardNth1beta2 = PDstandardNthfdOrder81(&beta2[index]); + PDstandardNth2beta2 = PDstandardNthfdOrder82(&beta2[index]); + PDstandardNth3beta2 = PDstandardNthfdOrder83(&beta2[index]); + PDstandardNth1beta3 = PDstandardNthfdOrder81(&beta3[index]); + PDstandardNth2beta3 = PDstandardNthfdOrder82(&beta3[index]); + PDstandardNth3beta3 = PDstandardNthfdOrder83(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder81(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder82(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder83(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder811(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder822(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder833(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder812(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder813(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder823(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder81(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder82(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder83(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder811(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder822(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder833(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder812(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder813(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder823(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder81(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder82(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder83(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder811(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder822(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder833(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder812(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder813(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder823(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder81(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder82(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder83(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder811(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder822(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder833(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder812(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder813(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder823(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder81(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder82(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder83(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder811(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder822(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder833(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder812(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder813(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder823(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder81(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder82(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder83(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder811(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder822(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder833(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder812(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder813(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder823(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder81(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder82(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder83(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder811(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder822(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder833(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder812(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder813(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder823(&phi[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder81(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder82(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder83(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder81(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder82(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder83(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder81(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder82(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder83(&Xt3[index]); + break; + } /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandardNth11alpha; + CCTK_REAL_VEC JacPDstandardNth11gt11; + CCTK_REAL_VEC JacPDstandardNth11gt12; + CCTK_REAL_VEC JacPDstandardNth11gt13; + CCTK_REAL_VEC JacPDstandardNth11gt22; + CCTK_REAL_VEC JacPDstandardNth11gt23; + CCTK_REAL_VEC JacPDstandardNth11gt33; + CCTK_REAL_VEC JacPDstandardNth11phi; + CCTK_REAL_VEC JacPDstandardNth12alpha; + CCTK_REAL_VEC JacPDstandardNth12gt11; + CCTK_REAL_VEC JacPDstandardNth12gt12; + CCTK_REAL_VEC JacPDstandardNth12gt13; + CCTK_REAL_VEC JacPDstandardNth12gt22; + CCTK_REAL_VEC JacPDstandardNth12gt23; + CCTK_REAL_VEC JacPDstandardNth12gt33; + CCTK_REAL_VEC JacPDstandardNth12phi; + CCTK_REAL_VEC JacPDstandardNth13alpha; + CCTK_REAL_VEC JacPDstandardNth13gt11; + CCTK_REAL_VEC JacPDstandardNth13gt12; + CCTK_REAL_VEC JacPDstandardNth13gt13; + CCTK_REAL_VEC JacPDstandardNth13gt22; + CCTK_REAL_VEC JacPDstandardNth13gt23; + CCTK_REAL_VEC JacPDstandardNth13gt33; + CCTK_REAL_VEC JacPDstandardNth13phi; + CCTK_REAL_VEC JacPDstandardNth1alpha; + CCTK_REAL_VEC JacPDstandardNth1beta1; + CCTK_REAL_VEC JacPDstandardNth1beta2; + CCTK_REAL_VEC JacPDstandardNth1beta3; + CCTK_REAL_VEC JacPDstandardNth1gt11; + CCTK_REAL_VEC JacPDstandardNth1gt12; + CCTK_REAL_VEC JacPDstandardNth1gt13; + CCTK_REAL_VEC JacPDstandardNth1gt22; + CCTK_REAL_VEC JacPDstandardNth1gt23; + CCTK_REAL_VEC JacPDstandardNth1gt33; + CCTK_REAL_VEC JacPDstandardNth1phi; + CCTK_REAL_VEC JacPDstandardNth1Xt1; + CCTK_REAL_VEC JacPDstandardNth1Xt2; + CCTK_REAL_VEC JacPDstandardNth1Xt3; + CCTK_REAL_VEC JacPDstandardNth21gt11; + CCTK_REAL_VEC JacPDstandardNth21gt12; + CCTK_REAL_VEC JacPDstandardNth21gt13; + CCTK_REAL_VEC JacPDstandardNth21gt22; + CCTK_REAL_VEC JacPDstandardNth21gt23; + CCTK_REAL_VEC JacPDstandardNth21gt33; + CCTK_REAL_VEC JacPDstandardNth22alpha; + CCTK_REAL_VEC JacPDstandardNth22gt11; + CCTK_REAL_VEC JacPDstandardNth22gt12; + CCTK_REAL_VEC JacPDstandardNth22gt13; + CCTK_REAL_VEC JacPDstandardNth22gt22; + CCTK_REAL_VEC JacPDstandardNth22gt23; + CCTK_REAL_VEC JacPDstandardNth22gt33; + CCTK_REAL_VEC JacPDstandardNth22phi; + CCTK_REAL_VEC JacPDstandardNth23alpha; + CCTK_REAL_VEC JacPDstandardNth23gt11; + CCTK_REAL_VEC JacPDstandardNth23gt12; + CCTK_REAL_VEC JacPDstandardNth23gt13; + CCTK_REAL_VEC JacPDstandardNth23gt22; + CCTK_REAL_VEC JacPDstandardNth23gt23; + CCTK_REAL_VEC JacPDstandardNth23gt33; + CCTK_REAL_VEC JacPDstandardNth23phi; + CCTK_REAL_VEC JacPDstandardNth2alpha; + CCTK_REAL_VEC JacPDstandardNth2beta1; + CCTK_REAL_VEC JacPDstandardNth2beta2; + CCTK_REAL_VEC JacPDstandardNth2beta3; + CCTK_REAL_VEC JacPDstandardNth2gt11; + CCTK_REAL_VEC JacPDstandardNth2gt12; + CCTK_REAL_VEC JacPDstandardNth2gt13; + CCTK_REAL_VEC JacPDstandardNth2gt22; + CCTK_REAL_VEC JacPDstandardNth2gt23; + CCTK_REAL_VEC JacPDstandardNth2gt33; + CCTK_REAL_VEC JacPDstandardNth2phi; + CCTK_REAL_VEC JacPDstandardNth2Xt1; + CCTK_REAL_VEC JacPDstandardNth2Xt2; + CCTK_REAL_VEC JacPDstandardNth2Xt3; + CCTK_REAL_VEC JacPDstandardNth31gt11; + CCTK_REAL_VEC JacPDstandardNth31gt12; + CCTK_REAL_VEC JacPDstandardNth31gt13; + CCTK_REAL_VEC JacPDstandardNth31gt22; + CCTK_REAL_VEC JacPDstandardNth31gt23; + CCTK_REAL_VEC JacPDstandardNth31gt33; + CCTK_REAL_VEC JacPDstandardNth32gt11; + CCTK_REAL_VEC JacPDstandardNth32gt12; + CCTK_REAL_VEC JacPDstandardNth32gt13; + CCTK_REAL_VEC JacPDstandardNth32gt22; + CCTK_REAL_VEC JacPDstandardNth32gt23; + CCTK_REAL_VEC JacPDstandardNth32gt33; + CCTK_REAL_VEC JacPDstandardNth33alpha; + CCTK_REAL_VEC JacPDstandardNth33gt11; + CCTK_REAL_VEC JacPDstandardNth33gt12; + CCTK_REAL_VEC JacPDstandardNth33gt13; + CCTK_REAL_VEC JacPDstandardNth33gt22; + CCTK_REAL_VEC JacPDstandardNth33gt23; + CCTK_REAL_VEC JacPDstandardNth33gt33; + CCTK_REAL_VEC JacPDstandardNth33phi; + CCTK_REAL_VEC JacPDstandardNth3alpha; + CCTK_REAL_VEC JacPDstandardNth3beta1; + CCTK_REAL_VEC JacPDstandardNth3beta2; + CCTK_REAL_VEC JacPDstandardNth3beta3; + CCTK_REAL_VEC JacPDstandardNth3gt11; + CCTK_REAL_VEC JacPDstandardNth3gt12; + CCTK_REAL_VEC JacPDstandardNth3gt13; + CCTK_REAL_VEC JacPDstandardNth3gt22; + CCTK_REAL_VEC JacPDstandardNth3gt23; + CCTK_REAL_VEC JacPDstandardNth3gt33; + CCTK_REAL_VEC JacPDstandardNth3phi; + CCTK_REAL_VEC JacPDstandardNth3Xt1; + CCTK_REAL_VEC JacPDstandardNth3Xt2; + CCTK_REAL_VEC JacPDstandardNth3Xt3; + + if (use_jacobian) + { + JacPDstandardNth1alpha = + kmadd(J11L,PDstandardNth1alpha,kmadd(J21L,PDstandardNth2alpha,kmul(J31L,PDstandardNth3alpha))); + + JacPDstandardNth1beta1 = + kmadd(J11L,PDstandardNth1beta1,kmadd(J21L,PDstandardNth2beta1,kmul(J31L,PDstandardNth3beta1))); + + JacPDstandardNth1beta2 = + kmadd(J11L,PDstandardNth1beta2,kmadd(J21L,PDstandardNth2beta2,kmul(J31L,PDstandardNth3beta2))); + + JacPDstandardNth1beta3 = + kmadd(J11L,PDstandardNth1beta3,kmadd(J21L,PDstandardNth2beta3,kmul(J31L,PDstandardNth3beta3))); + + JacPDstandardNth1gt11 = + kmadd(J11L,PDstandardNth1gt11,kmadd(J21L,PDstandardNth2gt11,kmul(J31L,PDstandardNth3gt11))); + + JacPDstandardNth1gt12 = + kmadd(J11L,PDstandardNth1gt12,kmadd(J21L,PDstandardNth2gt12,kmul(J31L,PDstandardNth3gt12))); + + JacPDstandardNth1gt13 = + kmadd(J11L,PDstandardNth1gt13,kmadd(J21L,PDstandardNth2gt13,kmul(J31L,PDstandardNth3gt13))); + + JacPDstandardNth1gt22 = + kmadd(J11L,PDstandardNth1gt22,kmadd(J21L,PDstandardNth2gt22,kmul(J31L,PDstandardNth3gt22))); + + JacPDstandardNth1gt23 = + kmadd(J11L,PDstandardNth1gt23,kmadd(J21L,PDstandardNth2gt23,kmul(J31L,PDstandardNth3gt23))); + + JacPDstandardNth1gt33 = + kmadd(J11L,PDstandardNth1gt33,kmadd(J21L,PDstandardNth2gt33,kmul(J31L,PDstandardNth3gt33))); + + JacPDstandardNth1phi = + kmadd(J11L,PDstandardNth1phi,kmadd(J21L,PDstandardNth2phi,kmul(J31L,PDstandardNth3phi))); + + JacPDstandardNth1Xt1 = + kmadd(J11L,PDstandardNth1Xt1,kmadd(J21L,PDstandardNth2Xt1,kmul(J31L,PDstandardNth3Xt1))); + + JacPDstandardNth1Xt2 = + kmadd(J11L,PDstandardNth1Xt2,kmadd(J21L,PDstandardNth2Xt2,kmul(J31L,PDstandardNth3Xt2))); + + JacPDstandardNth1Xt3 = + kmadd(J11L,PDstandardNth1Xt3,kmadd(J21L,PDstandardNth2Xt3,kmul(J31L,PDstandardNth3Xt3))); + + JacPDstandardNth2alpha = + kmadd(J12L,PDstandardNth1alpha,kmadd(J22L,PDstandardNth2alpha,kmul(J32L,PDstandardNth3alpha))); + + JacPDstandardNth2beta1 = + kmadd(J12L,PDstandardNth1beta1,kmadd(J22L,PDstandardNth2beta1,kmul(J32L,PDstandardNth3beta1))); + + JacPDstandardNth2beta2 = + kmadd(J12L,PDstandardNth1beta2,kmadd(J22L,PDstandardNth2beta2,kmul(J32L,PDstandardNth3beta2))); + + JacPDstandardNth2beta3 = + kmadd(J12L,PDstandardNth1beta3,kmadd(J22L,PDstandardNth2beta3,kmul(J32L,PDstandardNth3beta3))); + + JacPDstandardNth2gt11 = + kmadd(J12L,PDstandardNth1gt11,kmadd(J22L,PDstandardNth2gt11,kmul(J32L,PDstandardNth3gt11))); + + JacPDstandardNth2gt12 = + kmadd(J12L,PDstandardNth1gt12,kmadd(J22L,PDstandardNth2gt12,kmul(J32L,PDstandardNth3gt12))); + + JacPDstandardNth2gt13 = + kmadd(J12L,PDstandardNth1gt13,kmadd(J22L,PDstandardNth2gt13,kmul(J32L,PDstandardNth3gt13))); + + JacPDstandardNth2gt22 = + kmadd(J12L,PDstandardNth1gt22,kmadd(J22L,PDstandardNth2gt22,kmul(J32L,PDstandardNth3gt22))); + + JacPDstandardNth2gt23 = + kmadd(J12L,PDstandardNth1gt23,kmadd(J22L,PDstandardNth2gt23,kmul(J32L,PDstandardNth3gt23))); + + JacPDstandardNth2gt33 = + kmadd(J12L,PDstandardNth1gt33,kmadd(J22L,PDstandardNth2gt33,kmul(J32L,PDstandardNth3gt33))); + + JacPDstandardNth2phi = + kmadd(J12L,PDstandardNth1phi,kmadd(J22L,PDstandardNth2phi,kmul(J32L,PDstandardNth3phi))); + + JacPDstandardNth2Xt1 = + kmadd(J12L,PDstandardNth1Xt1,kmadd(J22L,PDstandardNth2Xt1,kmul(J32L,PDstandardNth3Xt1))); + + JacPDstandardNth2Xt2 = + kmadd(J12L,PDstandardNth1Xt2,kmadd(J22L,PDstandardNth2Xt2,kmul(J32L,PDstandardNth3Xt2))); + + JacPDstandardNth2Xt3 = + kmadd(J12L,PDstandardNth1Xt3,kmadd(J22L,PDstandardNth2Xt3,kmul(J32L,PDstandardNth3Xt3))); + + JacPDstandardNth3alpha = + kmadd(J13L,PDstandardNth1alpha,kmadd(J23L,PDstandardNth2alpha,kmul(J33L,PDstandardNth3alpha))); + + JacPDstandardNth3beta1 = + kmadd(J13L,PDstandardNth1beta1,kmadd(J23L,PDstandardNth2beta1,kmul(J33L,PDstandardNth3beta1))); + + JacPDstandardNth3beta2 = + kmadd(J13L,PDstandardNth1beta2,kmadd(J23L,PDstandardNth2beta2,kmul(J33L,PDstandardNth3beta2))); + + JacPDstandardNth3beta3 = + kmadd(J13L,PDstandardNth1beta3,kmadd(J23L,PDstandardNth2beta3,kmul(J33L,PDstandardNth3beta3))); + + JacPDstandardNth3gt11 = + kmadd(J13L,PDstandardNth1gt11,kmadd(J23L,PDstandardNth2gt11,kmul(J33L,PDstandardNth3gt11))); + + JacPDstandardNth3gt12 = + kmadd(J13L,PDstandardNth1gt12,kmadd(J23L,PDstandardNth2gt12,kmul(J33L,PDstandardNth3gt12))); + + JacPDstandardNth3gt13 = + kmadd(J13L,PDstandardNth1gt13,kmadd(J23L,PDstandardNth2gt13,kmul(J33L,PDstandardNth3gt13))); + + JacPDstandardNth3gt22 = + kmadd(J13L,PDstandardNth1gt22,kmadd(J23L,PDstandardNth2gt22,kmul(J33L,PDstandardNth3gt22))); + + JacPDstandardNth3gt23 = + kmadd(J13L,PDstandardNth1gt23,kmadd(J23L,PDstandardNth2gt23,kmul(J33L,PDstandardNth3gt23))); + + JacPDstandardNth3gt33 = + kmadd(J13L,PDstandardNth1gt33,kmadd(J23L,PDstandardNth2gt33,kmul(J33L,PDstandardNth3gt33))); + + JacPDstandardNth3phi = + kmadd(J13L,PDstandardNth1phi,kmadd(J23L,PDstandardNth2phi,kmul(J33L,PDstandardNth3phi))); + + JacPDstandardNth3Xt1 = + kmadd(J13L,PDstandardNth1Xt1,kmadd(J23L,PDstandardNth2Xt1,kmul(J33L,PDstandardNth3Xt1))); + + JacPDstandardNth3Xt2 = + kmadd(J13L,PDstandardNth1Xt2,kmadd(J23L,PDstandardNth2Xt2,kmul(J33L,PDstandardNth3Xt2))); + + JacPDstandardNth3Xt3 = + kmadd(J13L,PDstandardNth1Xt3,kmadd(J23L,PDstandardNth2Xt3,kmul(J33L,PDstandardNth3Xt3))); + + JacPDstandardNth11alpha = + kmadd(dJ111L,PDstandardNth1alpha,kmadd(dJ211L,PDstandardNth2alpha,kmadd(dJ311L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,SQR(J11L),kmadd(PDstandardNth22alpha,SQR(J21L),kmadd(PDstandardNth33alpha,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha)),kmul(J21L,kmul(J31L,PDstandardNth23alpha))),ToReal(2)))))))); + + JacPDstandardNth11gt11 = + kmadd(dJ111L,PDstandardNth1gt11,kmadd(dJ211L,PDstandardNth2gt11,kmadd(dJ311L,PDstandardNth3gt11,kmadd(PDstandardNth11gt11,SQR(J11L),kmadd(PDstandardNth22gt11,SQR(J21L),kmadd(PDstandardNth33gt11,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11)),kmul(J21L,kmul(J31L,PDstandardNth23gt11))),ToReal(2)))))))); + + JacPDstandardNth11gt12 = + kmadd(dJ111L,PDstandardNth1gt12,kmadd(dJ211L,PDstandardNth2gt12,kmadd(dJ311L,PDstandardNth3gt12,kmadd(PDstandardNth11gt12,SQR(J11L),kmadd(PDstandardNth22gt12,SQR(J21L),kmadd(PDstandardNth33gt12,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12)),kmul(J21L,kmul(J31L,PDstandardNth23gt12))),ToReal(2)))))))); + + JacPDstandardNth11gt13 = + kmadd(dJ111L,PDstandardNth1gt13,kmadd(dJ211L,PDstandardNth2gt13,kmadd(dJ311L,PDstandardNth3gt13,kmadd(PDstandardNth11gt13,SQR(J11L),kmadd(PDstandardNth22gt13,SQR(J21L),kmadd(PDstandardNth33gt13,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13)),kmul(J21L,kmul(J31L,PDstandardNth23gt13))),ToReal(2)))))))); + + JacPDstandardNth11gt22 = + kmadd(dJ111L,PDstandardNth1gt22,kmadd(dJ211L,PDstandardNth2gt22,kmadd(dJ311L,PDstandardNth3gt22,kmadd(PDstandardNth11gt22,SQR(J11L),kmadd(PDstandardNth22gt22,SQR(J21L),kmadd(PDstandardNth33gt22,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22)),kmul(J21L,kmul(J31L,PDstandardNth23gt22))),ToReal(2)))))))); + + JacPDstandardNth11gt23 = + kmadd(dJ111L,PDstandardNth1gt23,kmadd(dJ211L,PDstandardNth2gt23,kmadd(dJ311L,PDstandardNth3gt23,kmadd(PDstandardNth11gt23,SQR(J11L),kmadd(PDstandardNth22gt23,SQR(J21L),kmadd(PDstandardNth33gt23,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23)),kmul(J21L,kmul(J31L,PDstandardNth23gt23))),ToReal(2)))))))); + + JacPDstandardNth11gt33 = + kmadd(dJ111L,PDstandardNth1gt33,kmadd(dJ211L,PDstandardNth2gt33,kmadd(dJ311L,PDstandardNth3gt33,kmadd(PDstandardNth11gt33,SQR(J11L),kmadd(PDstandardNth22gt33,SQR(J21L),kmadd(PDstandardNth33gt33,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33)),kmul(J21L,kmul(J31L,PDstandardNth23gt33))),ToReal(2)))))))); + + JacPDstandardNth11phi = + kmadd(dJ111L,PDstandardNth1phi,kmadd(dJ211L,PDstandardNth2phi,kmadd(dJ311L,PDstandardNth3phi,kmadd(PDstandardNth11phi,SQR(J11L),kmadd(PDstandardNth22phi,SQR(J21L),kmadd(PDstandardNth33phi,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12phi,kmul(J31L,PDstandardNth13phi)),kmul(J21L,kmul(J31L,PDstandardNth23phi))),ToReal(2)))))))); + + JacPDstandardNth22alpha = + kmadd(dJ122L,PDstandardNth1alpha,kmadd(dJ222L,PDstandardNth2alpha,kmadd(dJ322L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,SQR(J12L),kmadd(PDstandardNth22alpha,SQR(J22L),kmadd(PDstandardNth33alpha,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha)),kmul(J22L,kmul(J32L,PDstandardNth23alpha))),ToReal(2)))))))); + + JacPDstandardNth22gt11 = + kmadd(dJ122L,PDstandardNth1gt11,kmadd(dJ222L,PDstandardNth2gt11,kmadd(dJ322L,PDstandardNth3gt11,kmadd(PDstandardNth11gt11,SQR(J12L),kmadd(PDstandardNth22gt11,SQR(J22L),kmadd(PDstandardNth33gt11,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11)),kmul(J22L,kmul(J32L,PDstandardNth23gt11))),ToReal(2)))))))); + + JacPDstandardNth22gt12 = + kmadd(dJ122L,PDstandardNth1gt12,kmadd(dJ222L,PDstandardNth2gt12,kmadd(dJ322L,PDstandardNth3gt12,kmadd(PDstandardNth11gt12,SQR(J12L),kmadd(PDstandardNth22gt12,SQR(J22L),kmadd(PDstandardNth33gt12,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12)),kmul(J22L,kmul(J32L,PDstandardNth23gt12))),ToReal(2)))))))); + + JacPDstandardNth22gt13 = + kmadd(dJ122L,PDstandardNth1gt13,kmadd(dJ222L,PDstandardNth2gt13,kmadd(dJ322L,PDstandardNth3gt13,kmadd(PDstandardNth11gt13,SQR(J12L),kmadd(PDstandardNth22gt13,SQR(J22L),kmadd(PDstandardNth33gt13,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13)),kmul(J22L,kmul(J32L,PDstandardNth23gt13))),ToReal(2)))))))); + + JacPDstandardNth22gt22 = + kmadd(dJ122L,PDstandardNth1gt22,kmadd(dJ222L,PDstandardNth2gt22,kmadd(dJ322L,PDstandardNth3gt22,kmadd(PDstandardNth11gt22,SQR(J12L),kmadd(PDstandardNth22gt22,SQR(J22L),kmadd(PDstandardNth33gt22,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22)),kmul(J22L,kmul(J32L,PDstandardNth23gt22))),ToReal(2)))))))); + + JacPDstandardNth22gt23 = + kmadd(dJ122L,PDstandardNth1gt23,kmadd(dJ222L,PDstandardNth2gt23,kmadd(dJ322L,PDstandardNth3gt23,kmadd(PDstandardNth11gt23,SQR(J12L),kmadd(PDstandardNth22gt23,SQR(J22L),kmadd(PDstandardNth33gt23,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23)),kmul(J22L,kmul(J32L,PDstandardNth23gt23))),ToReal(2)))))))); + + JacPDstandardNth22gt33 = + kmadd(dJ122L,PDstandardNth1gt33,kmadd(dJ222L,PDstandardNth2gt33,kmadd(dJ322L,PDstandardNth3gt33,kmadd(PDstandardNth11gt33,SQR(J12L),kmadd(PDstandardNth22gt33,SQR(J22L),kmadd(PDstandardNth33gt33,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33)),kmul(J22L,kmul(J32L,PDstandardNth23gt33))),ToReal(2)))))))); + + JacPDstandardNth22phi = + kmadd(dJ122L,PDstandardNth1phi,kmadd(dJ222L,PDstandardNth2phi,kmadd(dJ322L,PDstandardNth3phi,kmadd(PDstandardNth11phi,SQR(J12L),kmadd(PDstandardNth22phi,SQR(J22L),kmadd(PDstandardNth33phi,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12phi,kmul(J32L,PDstandardNth13phi)),kmul(J22L,kmul(J32L,PDstandardNth23phi))),ToReal(2)))))))); + + JacPDstandardNth33alpha = + kmadd(dJ133L,PDstandardNth1alpha,kmadd(dJ233L,PDstandardNth2alpha,kmadd(dJ333L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,SQR(J13L),kmadd(PDstandardNth22alpha,SQR(J23L),kmadd(PDstandardNth33alpha,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmul(J23L,kmul(J33L,PDstandardNth23alpha))),ToReal(2)))))))); + + JacPDstandardNth33gt11 = + kmadd(dJ133L,PDstandardNth1gt11,kmadd(dJ233L,PDstandardNth2gt11,kmadd(dJ333L,PDstandardNth3gt11,kmadd(PDstandardNth11gt11,SQR(J13L),kmadd(PDstandardNth22gt11,SQR(J23L),kmadd(PDstandardNth33gt11,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmul(J23L,kmul(J33L,PDstandardNth23gt11))),ToReal(2)))))))); + + JacPDstandardNth33gt12 = + kmadd(dJ133L,PDstandardNth1gt12,kmadd(dJ233L,PDstandardNth2gt12,kmadd(dJ333L,PDstandardNth3gt12,kmadd(PDstandardNth11gt12,SQR(J13L),kmadd(PDstandardNth22gt12,SQR(J23L),kmadd(PDstandardNth33gt12,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmul(J23L,kmul(J33L,PDstandardNth23gt12))),ToReal(2)))))))); + + JacPDstandardNth33gt13 = + kmadd(dJ133L,PDstandardNth1gt13,kmadd(dJ233L,PDstandardNth2gt13,kmadd(dJ333L,PDstandardNth3gt13,kmadd(PDstandardNth11gt13,SQR(J13L),kmadd(PDstandardNth22gt13,SQR(J23L),kmadd(PDstandardNth33gt13,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmul(J23L,kmul(J33L,PDstandardNth23gt13))),ToReal(2)))))))); + + JacPDstandardNth33gt22 = + kmadd(dJ133L,PDstandardNth1gt22,kmadd(dJ233L,PDstandardNth2gt22,kmadd(dJ333L,PDstandardNth3gt22,kmadd(PDstandardNth11gt22,SQR(J13L),kmadd(PDstandardNth22gt22,SQR(J23L),kmadd(PDstandardNth33gt22,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmul(J23L,kmul(J33L,PDstandardNth23gt22))),ToReal(2)))))))); + + JacPDstandardNth33gt23 = + kmadd(dJ133L,PDstandardNth1gt23,kmadd(dJ233L,PDstandardNth2gt23,kmadd(dJ333L,PDstandardNth3gt23,kmadd(PDstandardNth11gt23,SQR(J13L),kmadd(PDstandardNth22gt23,SQR(J23L),kmadd(PDstandardNth33gt23,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmul(J23L,kmul(J33L,PDstandardNth23gt23))),ToReal(2)))))))); + + JacPDstandardNth33gt33 = + kmadd(dJ133L,PDstandardNth1gt33,kmadd(dJ233L,PDstandardNth2gt33,kmadd(dJ333L,PDstandardNth3gt33,kmadd(PDstandardNth11gt33,SQR(J13L),kmadd(PDstandardNth22gt33,SQR(J23L),kmadd(PDstandardNth33gt33,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmul(J23L,kmul(J33L,PDstandardNth23gt33))),ToReal(2)))))))); + + JacPDstandardNth33phi = + kmadd(dJ133L,PDstandardNth1phi,kmadd(dJ233L,PDstandardNth2phi,kmadd(dJ333L,PDstandardNth3phi,kmadd(PDstandardNth11phi,SQR(J13L),kmadd(PDstandardNth22phi,SQR(J23L),kmadd(PDstandardNth33phi,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12phi,kmul(J33L,PDstandardNth13phi)),kmul(J23L,kmul(J33L,PDstandardNth23phi))),ToReal(2)))))))); + + JacPDstandardNth12alpha = + kmadd(J12L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha)),kmadd(dJ112L,PDstandardNth1alpha,kmadd(J22L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ212L,PDstandardNth2alpha,kmadd(J32L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ312L,PDstandardNth3alpha))))))); + + JacPDstandardNth12gt11 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt11,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11)),kmadd(dJ112L,PDstandardNth1gt11,kmadd(J22L,kmadd(J21L,PDstandardNth22gt11,kmul(J31L,PDstandardNth23gt11)),kmadd(dJ212L,PDstandardNth2gt11,kmadd(J32L,kmadd(J21L,PDstandardNth23gt11,kmul(J31L,PDstandardNth33gt11)),kmul(dJ312L,PDstandardNth3gt11))))))); + + JacPDstandardNth12gt12 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt12,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12)),kmadd(dJ112L,PDstandardNth1gt12,kmadd(J22L,kmadd(J21L,PDstandardNth22gt12,kmul(J31L,PDstandardNth23gt12)),kmadd(dJ212L,PDstandardNth2gt12,kmadd(J32L,kmadd(J21L,PDstandardNth23gt12,kmul(J31L,PDstandardNth33gt12)),kmul(dJ312L,PDstandardNth3gt12))))))); + + JacPDstandardNth12gt13 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt13,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13)),kmadd(dJ112L,PDstandardNth1gt13,kmadd(J22L,kmadd(J21L,PDstandardNth22gt13,kmul(J31L,PDstandardNth23gt13)),kmadd(dJ212L,PDstandardNth2gt13,kmadd(J32L,kmadd(J21L,PDstandardNth23gt13,kmul(J31L,PDstandardNth33gt13)),kmul(dJ312L,PDstandardNth3gt13))))))); + + JacPDstandardNth12gt22 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt22,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22)),kmadd(dJ112L,PDstandardNth1gt22,kmadd(J22L,kmadd(J21L,PDstandardNth22gt22,kmul(J31L,PDstandardNth23gt22)),kmadd(dJ212L,PDstandardNth2gt22,kmadd(J32L,kmadd(J21L,PDstandardNth23gt22,kmul(J31L,PDstandardNth33gt22)),kmul(dJ312L,PDstandardNth3gt22))))))); + + JacPDstandardNth12gt23 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt23,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23)),kmadd(dJ112L,PDstandardNth1gt23,kmadd(J22L,kmadd(J21L,PDstandardNth22gt23,kmul(J31L,PDstandardNth23gt23)),kmadd(dJ212L,PDstandardNth2gt23,kmadd(J32L,kmadd(J21L,PDstandardNth23gt23,kmul(J31L,PDstandardNth33gt23)),kmul(dJ312L,PDstandardNth3gt23))))))); + + JacPDstandardNth12gt33 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt33,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33)),kmadd(dJ112L,PDstandardNth1gt33,kmadd(J22L,kmadd(J21L,PDstandardNth22gt33,kmul(J31L,PDstandardNth23gt33)),kmadd(dJ212L,PDstandardNth2gt33,kmadd(J32L,kmadd(J21L,PDstandardNth23gt33,kmul(J31L,PDstandardNth33gt33)),kmul(dJ312L,PDstandardNth3gt33))))))); + + JacPDstandardNth12phi = + kmadd(J12L,kmadd(J11L,PDstandardNth11phi,kmadd(J21L,PDstandardNth12phi,kmul(J31L,PDstandardNth13phi))),kmadd(J11L,kmadd(J22L,PDstandardNth12phi,kmul(J32L,PDstandardNth13phi)),kmadd(dJ112L,PDstandardNth1phi,kmadd(J22L,kmadd(J21L,PDstandardNth22phi,kmul(J31L,PDstandardNth23phi)),kmadd(dJ212L,PDstandardNth2phi,kmadd(J32L,kmadd(J21L,PDstandardNth23phi,kmul(J31L,PDstandardNth33phi)),kmul(dJ312L,PDstandardNth3phi))))))); + + JacPDstandardNth13alpha = + kmadd(J13L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ113L,PDstandardNth1alpha,kmadd(J23L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ213L,PDstandardNth2alpha,kmadd(J33L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ313L,PDstandardNth3alpha))))))); + + JacPDstandardNth13gt11 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt11,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmadd(dJ113L,PDstandardNth1gt11,kmadd(J23L,kmadd(J21L,PDstandardNth22gt11,kmul(J31L,PDstandardNth23gt11)),kmadd(dJ213L,PDstandardNth2gt11,kmadd(J33L,kmadd(J21L,PDstandardNth23gt11,kmul(J31L,PDstandardNth33gt11)),kmul(dJ313L,PDstandardNth3gt11))))))); + + JacPDstandardNth13gt12 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt12,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmadd(dJ113L,PDstandardNth1gt12,kmadd(J23L,kmadd(J21L,PDstandardNth22gt12,kmul(J31L,PDstandardNth23gt12)),kmadd(dJ213L,PDstandardNth2gt12,kmadd(J33L,kmadd(J21L,PDstandardNth23gt12,kmul(J31L,PDstandardNth33gt12)),kmul(dJ313L,PDstandardNth3gt12))))))); + + JacPDstandardNth13gt13 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt13,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmadd(dJ113L,PDstandardNth1gt13,kmadd(J23L,kmadd(J21L,PDstandardNth22gt13,kmul(J31L,PDstandardNth23gt13)),kmadd(dJ213L,PDstandardNth2gt13,kmadd(J33L,kmadd(J21L,PDstandardNth23gt13,kmul(J31L,PDstandardNth33gt13)),kmul(dJ313L,PDstandardNth3gt13))))))); + + JacPDstandardNth13gt22 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt22,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmadd(dJ113L,PDstandardNth1gt22,kmadd(J23L,kmadd(J21L,PDstandardNth22gt22,kmul(J31L,PDstandardNth23gt22)),kmadd(dJ213L,PDstandardNth2gt22,kmadd(J33L,kmadd(J21L,PDstandardNth23gt22,kmul(J31L,PDstandardNth33gt22)),kmul(dJ313L,PDstandardNth3gt22))))))); + + JacPDstandardNth13gt23 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt23,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmadd(dJ113L,PDstandardNth1gt23,kmadd(J23L,kmadd(J21L,PDstandardNth22gt23,kmul(J31L,PDstandardNth23gt23)),kmadd(dJ213L,PDstandardNth2gt23,kmadd(J33L,kmadd(J21L,PDstandardNth23gt23,kmul(J31L,PDstandardNth33gt23)),kmul(dJ313L,PDstandardNth3gt23))))))); + + JacPDstandardNth13gt33 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt33,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmadd(dJ113L,PDstandardNth1gt33,kmadd(J23L,kmadd(J21L,PDstandardNth22gt33,kmul(J31L,PDstandardNth23gt33)),kmadd(dJ213L,PDstandardNth2gt33,kmadd(J33L,kmadd(J21L,PDstandardNth23gt33,kmul(J31L,PDstandardNth33gt33)),kmul(dJ313L,PDstandardNth3gt33))))))); + + JacPDstandardNth13phi = + kmadd(J13L,kmadd(J11L,PDstandardNth11phi,kmadd(J21L,PDstandardNth12phi,kmul(J31L,PDstandardNth13phi))),kmadd(J11L,kmadd(J23L,PDstandardNth12phi,kmul(J33L,PDstandardNth13phi)),kmadd(dJ113L,PDstandardNth1phi,kmadd(J23L,kmadd(J21L,PDstandardNth22phi,kmul(J31L,PDstandardNth23phi)),kmadd(dJ213L,PDstandardNth2phi,kmadd(J33L,kmadd(J21L,PDstandardNth23phi,kmul(J31L,PDstandardNth33phi)),kmul(dJ313L,PDstandardNth3phi))))))); + + JacPDstandardNth21gt11 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt11,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11)),kmadd(dJ112L,PDstandardNth1gt11,kmadd(J22L,kmadd(J21L,PDstandardNth22gt11,kmul(J31L,PDstandardNth23gt11)),kmadd(dJ212L,PDstandardNth2gt11,kmadd(J32L,kmadd(J21L,PDstandardNth23gt11,kmul(J31L,PDstandardNth33gt11)),kmul(dJ312L,PDstandardNth3gt11))))))); + + JacPDstandardNth21gt12 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt12,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12)),kmadd(dJ112L,PDstandardNth1gt12,kmadd(J22L,kmadd(J21L,PDstandardNth22gt12,kmul(J31L,PDstandardNth23gt12)),kmadd(dJ212L,PDstandardNth2gt12,kmadd(J32L,kmadd(J21L,PDstandardNth23gt12,kmul(J31L,PDstandardNth33gt12)),kmul(dJ312L,PDstandardNth3gt12))))))); + + JacPDstandardNth21gt13 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt13,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13)),kmadd(dJ112L,PDstandardNth1gt13,kmadd(J22L,kmadd(J21L,PDstandardNth22gt13,kmul(J31L,PDstandardNth23gt13)),kmadd(dJ212L,PDstandardNth2gt13,kmadd(J32L,kmadd(J21L,PDstandardNth23gt13,kmul(J31L,PDstandardNth33gt13)),kmul(dJ312L,PDstandardNth3gt13))))))); + + JacPDstandardNth21gt22 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt22,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22)),kmadd(dJ112L,PDstandardNth1gt22,kmadd(J22L,kmadd(J21L,PDstandardNth22gt22,kmul(J31L,PDstandardNth23gt22)),kmadd(dJ212L,PDstandardNth2gt22,kmadd(J32L,kmadd(J21L,PDstandardNth23gt22,kmul(J31L,PDstandardNth33gt22)),kmul(dJ312L,PDstandardNth3gt22))))))); + + JacPDstandardNth21gt23 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt23,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23)),kmadd(dJ112L,PDstandardNth1gt23,kmadd(J22L,kmadd(J21L,PDstandardNth22gt23,kmul(J31L,PDstandardNth23gt23)),kmadd(dJ212L,PDstandardNth2gt23,kmadd(J32L,kmadd(J21L,PDstandardNth23gt23,kmul(J31L,PDstandardNth33gt23)),kmul(dJ312L,PDstandardNth3gt23))))))); + + JacPDstandardNth21gt33 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt33,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33)),kmadd(dJ112L,PDstandardNth1gt33,kmadd(J22L,kmadd(J21L,PDstandardNth22gt33,kmul(J31L,PDstandardNth23gt33)),kmadd(dJ212L,PDstandardNth2gt33,kmadd(J32L,kmadd(J21L,PDstandardNth23gt33,kmul(J31L,PDstandardNth33gt33)),kmul(dJ312L,PDstandardNth3gt33))))))); + + JacPDstandardNth23alpha = + kmadd(J13L,kmadd(J12L,PDstandardNth11alpha,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha))),kmadd(J12L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ123L,PDstandardNth1alpha,kmadd(J23L,kmadd(J22L,PDstandardNth22alpha,kmul(J32L,PDstandardNth23alpha)),kmadd(dJ223L,PDstandardNth2alpha,kmadd(J33L,kmadd(J22L,PDstandardNth23alpha,kmul(J32L,PDstandardNth33alpha)),kmul(dJ323L,PDstandardNth3alpha))))))); + + JacPDstandardNth23gt11 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt11,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmadd(dJ123L,PDstandardNth1gt11,kmadd(J23L,kmadd(J22L,PDstandardNth22gt11,kmul(J32L,PDstandardNth23gt11)),kmadd(dJ223L,PDstandardNth2gt11,kmadd(J33L,kmadd(J22L,PDstandardNth23gt11,kmul(J32L,PDstandardNth33gt11)),kmul(dJ323L,PDstandardNth3gt11))))))); + + JacPDstandardNth23gt12 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt12,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmadd(dJ123L,PDstandardNth1gt12,kmadd(J23L,kmadd(J22L,PDstandardNth22gt12,kmul(J32L,PDstandardNth23gt12)),kmadd(dJ223L,PDstandardNth2gt12,kmadd(J33L,kmadd(J22L,PDstandardNth23gt12,kmul(J32L,PDstandardNth33gt12)),kmul(dJ323L,PDstandardNth3gt12))))))); + + JacPDstandardNth23gt13 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt13,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmadd(dJ123L,PDstandardNth1gt13,kmadd(J23L,kmadd(J22L,PDstandardNth22gt13,kmul(J32L,PDstandardNth23gt13)),kmadd(dJ223L,PDstandardNth2gt13,kmadd(J33L,kmadd(J22L,PDstandardNth23gt13,kmul(J32L,PDstandardNth33gt13)),kmul(dJ323L,PDstandardNth3gt13))))))); + + JacPDstandardNth23gt22 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt22,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmadd(dJ123L,PDstandardNth1gt22,kmadd(J23L,kmadd(J22L,PDstandardNth22gt22,kmul(J32L,PDstandardNth23gt22)),kmadd(dJ223L,PDstandardNth2gt22,kmadd(J33L,kmadd(J22L,PDstandardNth23gt22,kmul(J32L,PDstandardNth33gt22)),kmul(dJ323L,PDstandardNth3gt22))))))); + + JacPDstandardNth23gt23 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt23,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmadd(dJ123L,PDstandardNth1gt23,kmadd(J23L,kmadd(J22L,PDstandardNth22gt23,kmul(J32L,PDstandardNth23gt23)),kmadd(dJ223L,PDstandardNth2gt23,kmadd(J33L,kmadd(J22L,PDstandardNth23gt23,kmul(J32L,PDstandardNth33gt23)),kmul(dJ323L,PDstandardNth3gt23))))))); + + JacPDstandardNth23gt33 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt33,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmadd(dJ123L,PDstandardNth1gt33,kmadd(J23L,kmadd(J22L,PDstandardNth22gt33,kmul(J32L,PDstandardNth23gt33)),kmadd(dJ223L,PDstandardNth2gt33,kmadd(J33L,kmadd(J22L,PDstandardNth23gt33,kmul(J32L,PDstandardNth33gt33)),kmul(dJ323L,PDstandardNth3gt33))))))); + + JacPDstandardNth23phi = + kmadd(J13L,kmadd(J12L,PDstandardNth11phi,kmadd(J22L,PDstandardNth12phi,kmul(J32L,PDstandardNth13phi))),kmadd(J12L,kmadd(J23L,PDstandardNth12phi,kmul(J33L,PDstandardNth13phi)),kmadd(dJ123L,PDstandardNth1phi,kmadd(J23L,kmadd(J22L,PDstandardNth22phi,kmul(J32L,PDstandardNth23phi)),kmadd(dJ223L,PDstandardNth2phi,kmadd(J33L,kmadd(J22L,PDstandardNth23phi,kmul(J32L,PDstandardNth33phi)),kmul(dJ323L,PDstandardNth3phi))))))); + + JacPDstandardNth31gt11 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt11,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmadd(dJ113L,PDstandardNth1gt11,kmadd(J23L,kmadd(J21L,PDstandardNth22gt11,kmul(J31L,PDstandardNth23gt11)),kmadd(dJ213L,PDstandardNth2gt11,kmadd(J33L,kmadd(J21L,PDstandardNth23gt11,kmul(J31L,PDstandardNth33gt11)),kmul(dJ313L,PDstandardNth3gt11))))))); + + JacPDstandardNth31gt12 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt12,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmadd(dJ113L,PDstandardNth1gt12,kmadd(J23L,kmadd(J21L,PDstandardNth22gt12,kmul(J31L,PDstandardNth23gt12)),kmadd(dJ213L,PDstandardNth2gt12,kmadd(J33L,kmadd(J21L,PDstandardNth23gt12,kmul(J31L,PDstandardNth33gt12)),kmul(dJ313L,PDstandardNth3gt12))))))); + + JacPDstandardNth31gt13 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt13,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmadd(dJ113L,PDstandardNth1gt13,kmadd(J23L,kmadd(J21L,PDstandardNth22gt13,kmul(J31L,PDstandardNth23gt13)),kmadd(dJ213L,PDstandardNth2gt13,kmadd(J33L,kmadd(J21L,PDstandardNth23gt13,kmul(J31L,PDstandardNth33gt13)),kmul(dJ313L,PDstandardNth3gt13))))))); + + JacPDstandardNth31gt22 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt22,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmadd(dJ113L,PDstandardNth1gt22,kmadd(J23L,kmadd(J21L,PDstandardNth22gt22,kmul(J31L,PDstandardNth23gt22)),kmadd(dJ213L,PDstandardNth2gt22,kmadd(J33L,kmadd(J21L,PDstandardNth23gt22,kmul(J31L,PDstandardNth33gt22)),kmul(dJ313L,PDstandardNth3gt22))))))); + + JacPDstandardNth31gt23 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt23,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmadd(dJ113L,PDstandardNth1gt23,kmadd(J23L,kmadd(J21L,PDstandardNth22gt23,kmul(J31L,PDstandardNth23gt23)),kmadd(dJ213L,PDstandardNth2gt23,kmadd(J33L,kmadd(J21L,PDstandardNth23gt23,kmul(J31L,PDstandardNth33gt23)),kmul(dJ313L,PDstandardNth3gt23))))))); + + JacPDstandardNth31gt33 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt33,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmadd(dJ113L,PDstandardNth1gt33,kmadd(J23L,kmadd(J21L,PDstandardNth22gt33,kmul(J31L,PDstandardNth23gt33)),kmadd(dJ213L,PDstandardNth2gt33,kmadd(J33L,kmadd(J21L,PDstandardNth23gt33,kmul(J31L,PDstandardNth33gt33)),kmul(dJ313L,PDstandardNth3gt33))))))); + + JacPDstandardNth32gt11 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt11,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmadd(dJ123L,PDstandardNth1gt11,kmadd(J23L,kmadd(J22L,PDstandardNth22gt11,kmul(J32L,PDstandardNth23gt11)),kmadd(dJ223L,PDstandardNth2gt11,kmadd(J33L,kmadd(J22L,PDstandardNth23gt11,kmul(J32L,PDstandardNth33gt11)),kmul(dJ323L,PDstandardNth3gt11))))))); + + JacPDstandardNth32gt12 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt12,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmadd(dJ123L,PDstandardNth1gt12,kmadd(J23L,kmadd(J22L,PDstandardNth22gt12,kmul(J32L,PDstandardNth23gt12)),kmadd(dJ223L,PDstandardNth2gt12,kmadd(J33L,kmadd(J22L,PDstandardNth23gt12,kmul(J32L,PDstandardNth33gt12)),kmul(dJ323L,PDstandardNth3gt12))))))); + + JacPDstandardNth32gt13 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt13,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmadd(dJ123L,PDstandardNth1gt13,kmadd(J23L,kmadd(J22L,PDstandardNth22gt13,kmul(J32L,PDstandardNth23gt13)),kmadd(dJ223L,PDstandardNth2gt13,kmadd(J33L,kmadd(J22L,PDstandardNth23gt13,kmul(J32L,PDstandardNth33gt13)),kmul(dJ323L,PDstandardNth3gt13))))))); + + JacPDstandardNth32gt22 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt22,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmadd(dJ123L,PDstandardNth1gt22,kmadd(J23L,kmadd(J22L,PDstandardNth22gt22,kmul(J32L,PDstandardNth23gt22)),kmadd(dJ223L,PDstandardNth2gt22,kmadd(J33L,kmadd(J22L,PDstandardNth23gt22,kmul(J32L,PDstandardNth33gt22)),kmul(dJ323L,PDstandardNth3gt22))))))); + + JacPDstandardNth32gt23 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt23,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmadd(dJ123L,PDstandardNth1gt23,kmadd(J23L,kmadd(J22L,PDstandardNth22gt23,kmul(J32L,PDstandardNth23gt23)),kmadd(dJ223L,PDstandardNth2gt23,kmadd(J33L,kmadd(J22L,PDstandardNth23gt23,kmul(J32L,PDstandardNth33gt23)),kmul(dJ323L,PDstandardNth3gt23))))))); + + JacPDstandardNth32gt33 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt33,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmadd(dJ123L,PDstandardNth1gt33,kmadd(J23L,kmadd(J22L,PDstandardNth22gt33,kmul(J32L,PDstandardNth23gt33)),kmadd(dJ223L,PDstandardNth2gt33,kmadd(J33L,kmadd(J22L,PDstandardNth23gt33,kmul(J32L,PDstandardNth33gt33)),kmul(dJ323L,PDstandardNth3gt33))))))); + } + else + { + JacPDstandardNth1alpha = PDstandardNth1alpha; + + JacPDstandardNth1beta1 = PDstandardNth1beta1; + + JacPDstandardNth1beta2 = PDstandardNth1beta2; + + JacPDstandardNth1beta3 = PDstandardNth1beta3; + + JacPDstandardNth1gt11 = PDstandardNth1gt11; + + JacPDstandardNth1gt12 = PDstandardNth1gt12; + + JacPDstandardNth1gt13 = PDstandardNth1gt13; + + JacPDstandardNth1gt22 = PDstandardNth1gt22; + + JacPDstandardNth1gt23 = PDstandardNth1gt23; + + JacPDstandardNth1gt33 = PDstandardNth1gt33; + + JacPDstandardNth1phi = PDstandardNth1phi; + + JacPDstandardNth1Xt1 = PDstandardNth1Xt1; + + JacPDstandardNth1Xt2 = PDstandardNth1Xt2; + + JacPDstandardNth1Xt3 = PDstandardNth1Xt3; + + JacPDstandardNth2alpha = PDstandardNth2alpha; + + JacPDstandardNth2beta1 = PDstandardNth2beta1; + + JacPDstandardNth2beta2 = PDstandardNth2beta2; + + JacPDstandardNth2beta3 = PDstandardNth2beta3; + + JacPDstandardNth2gt11 = PDstandardNth2gt11; + + JacPDstandardNth2gt12 = PDstandardNth2gt12; + + JacPDstandardNth2gt13 = PDstandardNth2gt13; + + JacPDstandardNth2gt22 = PDstandardNth2gt22; + + JacPDstandardNth2gt23 = PDstandardNth2gt23; + + JacPDstandardNth2gt33 = PDstandardNth2gt33; + + JacPDstandardNth2phi = PDstandardNth2phi; + + JacPDstandardNth2Xt1 = PDstandardNth2Xt1; + + JacPDstandardNth2Xt2 = PDstandardNth2Xt2; + + JacPDstandardNth2Xt3 = PDstandardNth2Xt3; + + JacPDstandardNth3alpha = PDstandardNth3alpha; + + JacPDstandardNth3beta1 = PDstandardNth3beta1; + + JacPDstandardNth3beta2 = PDstandardNth3beta2; + + JacPDstandardNth3beta3 = PDstandardNth3beta3; + + JacPDstandardNth3gt11 = PDstandardNth3gt11; + + JacPDstandardNth3gt12 = PDstandardNth3gt12; + + JacPDstandardNth3gt13 = PDstandardNth3gt13; + + JacPDstandardNth3gt22 = PDstandardNth3gt22; + + JacPDstandardNth3gt23 = PDstandardNth3gt23; + + JacPDstandardNth3gt33 = PDstandardNth3gt33; + + JacPDstandardNth3phi = PDstandardNth3phi; + + JacPDstandardNth3Xt1 = PDstandardNth3Xt1; + + JacPDstandardNth3Xt2 = PDstandardNth3Xt2; + + JacPDstandardNth3Xt3 = PDstandardNth3Xt3; + + JacPDstandardNth11alpha = PDstandardNth11alpha; + + JacPDstandardNth11gt11 = PDstandardNth11gt11; + + JacPDstandardNth11gt12 = PDstandardNth11gt12; + + JacPDstandardNth11gt13 = PDstandardNth11gt13; + + JacPDstandardNth11gt22 = PDstandardNth11gt22; + + JacPDstandardNth11gt23 = PDstandardNth11gt23; + + JacPDstandardNth11gt33 = PDstandardNth11gt33; + + JacPDstandardNth11phi = PDstandardNth11phi; + + JacPDstandardNth22alpha = PDstandardNth22alpha; + + JacPDstandardNth22gt11 = PDstandardNth22gt11; + + JacPDstandardNth22gt12 = PDstandardNth22gt12; + + JacPDstandardNth22gt13 = PDstandardNth22gt13; + + JacPDstandardNth22gt22 = PDstandardNth22gt22; + + JacPDstandardNth22gt23 = PDstandardNth22gt23; + + JacPDstandardNth22gt33 = PDstandardNth22gt33; + + JacPDstandardNth22phi = PDstandardNth22phi; + + JacPDstandardNth33alpha = PDstandardNth33alpha; + + JacPDstandardNth33gt11 = PDstandardNth33gt11; + + JacPDstandardNth33gt12 = PDstandardNth33gt12; + + JacPDstandardNth33gt13 = PDstandardNth33gt13; + + JacPDstandardNth33gt22 = PDstandardNth33gt22; + + JacPDstandardNth33gt23 = PDstandardNth33gt23; + + JacPDstandardNth33gt33 = PDstandardNth33gt33; + + JacPDstandardNth33phi = PDstandardNth33phi; + + JacPDstandardNth12alpha = PDstandardNth12alpha; + + JacPDstandardNth12gt11 = PDstandardNth12gt11; + + JacPDstandardNth12gt12 = PDstandardNth12gt12; + + JacPDstandardNth12gt13 = PDstandardNth12gt13; + + JacPDstandardNth12gt22 = PDstandardNth12gt22; + + JacPDstandardNth12gt23 = PDstandardNth12gt23; + + JacPDstandardNth12gt33 = PDstandardNth12gt33; + + JacPDstandardNth12phi = PDstandardNth12phi; + + JacPDstandardNth13alpha = PDstandardNth13alpha; + + JacPDstandardNth13gt11 = PDstandardNth13gt11; + + JacPDstandardNth13gt12 = PDstandardNth13gt12; + + JacPDstandardNth13gt13 = PDstandardNth13gt13; + + JacPDstandardNth13gt22 = PDstandardNth13gt22; + + JacPDstandardNth13gt23 = PDstandardNth13gt23; + + JacPDstandardNth13gt33 = PDstandardNth13gt33; + + JacPDstandardNth13phi = PDstandardNth13phi; + + JacPDstandardNth21gt11 = PDstandardNth12gt11; + + JacPDstandardNth21gt12 = PDstandardNth12gt12; + + JacPDstandardNth21gt13 = PDstandardNth12gt13; + + JacPDstandardNth21gt22 = PDstandardNth12gt22; + + JacPDstandardNth21gt23 = PDstandardNth12gt23; + + JacPDstandardNth21gt33 = PDstandardNth12gt33; + + JacPDstandardNth23alpha = PDstandardNth23alpha; + + JacPDstandardNth23gt11 = PDstandardNth23gt11; + + JacPDstandardNth23gt12 = PDstandardNth23gt12; + + JacPDstandardNth23gt13 = PDstandardNth23gt13; + + JacPDstandardNth23gt22 = PDstandardNth23gt22; + + JacPDstandardNth23gt23 = PDstandardNth23gt23; + + JacPDstandardNth23gt33 = PDstandardNth23gt33; + + JacPDstandardNth23phi = PDstandardNth23phi; + + JacPDstandardNth31gt11 = PDstandardNth13gt11; + + JacPDstandardNth31gt12 = PDstandardNth13gt12; + + JacPDstandardNth31gt13 = PDstandardNth13gt13; + + JacPDstandardNth31gt22 = PDstandardNth13gt22; + + JacPDstandardNth31gt23 = PDstandardNth13gt23; + + JacPDstandardNth31gt33 = PDstandardNth13gt33; + + JacPDstandardNth32gt11 = PDstandardNth23gt11; + + JacPDstandardNth32gt12 = PDstandardNth23gt12; + + JacPDstandardNth32gt13 = PDstandardNth23gt13; + + JacPDstandardNth32gt22 = PDstandardNth23gt22; + + JacPDstandardNth32gt23 = PDstandardNth23gt23; + + JacPDstandardNth32gt33 = PDstandardNth23gt33; + } + ptrdiff_t dir1 = Sign(beta1L); ptrdiff_t dir2 = Sign(beta2L); @@ -274,50 +1458,50 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC gtu33 = kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); - CCTK_REAL_VEC Gtl111 = kmul(PDstandardNth1gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl111 = kmul(JacPDstandardNth1gt11,ToReal(0.5)); - CCTK_REAL_VEC Gtl112 = kmul(PDstandardNth2gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl112 = kmul(JacPDstandardNth2gt11,ToReal(0.5)); - CCTK_REAL_VEC Gtl113 = kmul(PDstandardNth3gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl113 = kmul(JacPDstandardNth3gt11,ToReal(0.5)); CCTK_REAL_VEC Gtl122 = - kmadd(PDstandardNth1gt22,ToReal(-0.5),PDstandardNth2gt12); + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); CCTK_REAL_VEC Gtl123 = - kmul(kadd(PDstandardNth2gt13,ksub(PDstandardNth3gt12,PDstandardNth1gt23)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); CCTK_REAL_VEC Gtl133 = - kmadd(PDstandardNth1gt33,ToReal(-0.5),PDstandardNth3gt13); + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); CCTK_REAL_VEC Gtl211 = - kmadd(PDstandardNth2gt11,ToReal(-0.5),PDstandardNth1gt12); + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); - CCTK_REAL_VEC Gtl212 = kmul(PDstandardNth1gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl212 = kmul(JacPDstandardNth1gt22,ToReal(0.5)); CCTK_REAL_VEC Gtl213 = - kmul(kadd(PDstandardNth1gt23,ksub(PDstandardNth3gt12,PDstandardNth2gt13)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); - CCTK_REAL_VEC Gtl222 = kmul(PDstandardNth2gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl222 = kmul(JacPDstandardNth2gt22,ToReal(0.5)); - CCTK_REAL_VEC Gtl223 = kmul(PDstandardNth3gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl223 = kmul(JacPDstandardNth3gt22,ToReal(0.5)); CCTK_REAL_VEC Gtl233 = - kmadd(PDstandardNth2gt33,ToReal(-0.5),PDstandardNth3gt23); + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); CCTK_REAL_VEC Gtl311 = - kmadd(PDstandardNth3gt11,ToReal(-0.5),PDstandardNth1gt13); + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); CCTK_REAL_VEC Gtl312 = - kmul(kadd(PDstandardNth1gt23,ksub(PDstandardNth2gt13,PDstandardNth3gt12)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); - CCTK_REAL_VEC Gtl313 = kmul(PDstandardNth1gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl313 = kmul(JacPDstandardNth1gt33,ToReal(0.5)); CCTK_REAL_VEC Gtl322 = - kmadd(PDstandardNth3gt22,ToReal(-0.5),PDstandardNth2gt23); + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); - CCTK_REAL_VEC Gtl323 = kmul(PDstandardNth2gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl323 = kmul(JacPDstandardNth2gt33,ToReal(0.5)); - CCTK_REAL_VEC Gtl333 = kmul(PDstandardNth3gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl333 = kmul(JacPDstandardNth3gt33,ToReal(0.5)); CCTK_REAL_VEC Gtlu111 = kmadd(Gtl111,gtu11,kmadd(Gtl112,gtu12,kmul(Gtl113,gtu13))); @@ -464,52 +1648,52 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); CCTK_REAL_VEC Rt11 = - kmul(ToReal(0.5),kmadd(gtu12,kmul(PDstandardNth12gt11,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt11,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt11,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt11,knmsub(gtu22,PDstandardNth22gt11,knmsub(gtu33,PDstandardNth33gt11,kmadd(kmadd(Gt211,Gtlu211,kmadd(Gt212,Gtlu212,kmadd(Gt213,Gtlu213,kmadd(Gt311,Gtlu311,kmadd(Gt312,Gtlu312,kmadd(Gt313,Gtlu313,kmul(gt11L,PDstandardNth1Xt1))))))),ToReal(2),kmadd(gt12L,kmul(PDstandardNth1Xt2,ToReal(2)),kmadd(gt13L,kmul(PDstandardNth1Xt3,ToReal(2)),kmadd(Gtl111,kmul(Xtn1,ToReal(2)),kmadd(Gtl112,kmul(Xtn2,ToReal(2)),kmadd(Gtl113,kmul(Xtn3,ToReal(2)),kmadd(kmadd(Gt211,Gtlu121,kmadd(Gt212,Gtlu122,kmadd(Gt213,Gtlu123,kmadd(Gt311,Gtlu131,kmadd(Gt312,Gtlu132,kmul(Gt313,Gtlu133)))))),ToReal(4),kmul(kmadd(Gt111,Gtlu111,kmadd(Gt112,Gtlu112,kmul(Gt113,Gtlu113))),ToReal(6)))))))))))))))); + kmul(ToReal(0.5),knmsub(gtu11,JacPDstandardNth11gt11,knmsub(gtu22,JacPDstandardNth22gt11,knmsub(gtu33,JacPDstandardNth33gt11,knmsub(gtu12,kadd(JacPDstandardNth21gt11,JacPDstandardNth12gt11),knmsub(gtu13,kadd(JacPDstandardNth31gt11,JacPDstandardNth13gt11),knmsub(gtu23,kadd(JacPDstandardNth32gt11,JacPDstandardNth23gt11),kmadd(kmadd(Gt211,Gtlu211,kmadd(Gt212,Gtlu212,kmadd(Gt213,Gtlu213,kmadd(Gt311,Gtlu311,kmadd(Gt312,Gtlu312,kmadd(Gt313,Gtlu313,kmul(gt11L,JacPDstandardNth1Xt1))))))),ToReal(2),kmadd(gt12L,kmul(JacPDstandardNth1Xt2,ToReal(2)),kmadd(gt13L,kmul(JacPDstandardNth1Xt3,ToReal(2)),kmadd(Gtl111,kmul(Xtn1,ToReal(2)),kmadd(Gtl112,kmul(Xtn2,ToReal(2)),kmadd(Gtl113,kmul(Xtn3,ToReal(2)),kmadd(kmadd(Gt211,Gtlu121,kmadd(Gt212,Gtlu122,kmadd(Gt213,Gtlu123,kmadd(Gt311,Gtlu131,kmadd(Gt312,Gtlu132,kmul(Gt313,Gtlu133)))))),ToReal(4),kmul(kmadd(Gt111,Gtlu111,kmadd(Gt112,Gtlu112,kmul(Gt113,Gtlu113))),ToReal(6)))))))))))))))); CCTK_REAL_VEC Rt12 = - kmul(ToReal(0.5),kmadd(gt12L,PDstandardNth1Xt1,kmadd(gt22L,PDstandardNth1Xt2,kmadd(gt23L,PDstandardNth1Xt3,kmadd(gt11L,PDstandardNth2Xt1,kmadd(gt12L,PDstandardNth2Xt2,kmadd(gt13L,PDstandardNth2Xt3,kmadd(Gtl112,Xtn1,kmadd(Gtl211,Xtn1,kmadd(Gtl122,Xtn2,kmadd(Gtl212,Xtn2,kmadd(Gtl123,Xtn3,kmadd(Gtl213,Xtn3,kmadd(gtu12,kmul(PDstandardNth12gt12,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt12,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt12,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt12,knmsub(gtu22,PDstandardNth22gt12,knmsub(gtu33,PDstandardNth33gt12,kmadd(kmadd(Gt112,Gtlu111,kmadd(Gt122,Gtlu112,kmadd(Gt123,Gtlu113,kmadd(Gt111,Gtlu121,kmadd(Gt212,Gtlu121,kmadd(Gt112,Gtlu122,kmadd(Gt222,Gtlu122,kmadd(Gt113,Gtlu123,kmadd(Gt223,Gtlu123,kmadd(Gt312,Gtlu131,kmadd(Gt322,Gtlu132,kmadd(Gt323,Gtlu133,kmadd(Gt111,Gtlu211,kmadd(Gt112,Gtlu212,kmadd(Gt113,Gtlu213,kmadd(Gt311,Gtlu231,kmadd(Gt312,Gtlu232,kmadd(Gt313,Gtlu233,kmadd(Gt311,Gtlu321,kmadd(Gt312,Gtlu322,kmul(Gt313,Gtlu323))))))))))))))))))))),ToReal(2),kmul(kmadd(Gt211,Gtlu221,kmadd(Gt212,Gtlu222,kmul(Gt213,Gtlu223))),ToReal(4)))))))))))))))))))))); + kmul(ToReal(0.5),kmadd(gt12L,JacPDstandardNth1Xt1,kmadd(gt22L,JacPDstandardNth1Xt2,kmadd(gt23L,JacPDstandardNth1Xt3,kmadd(gt11L,JacPDstandardNth2Xt1,kmadd(gt12L,JacPDstandardNth2Xt2,kmadd(gt13L,JacPDstandardNth2Xt3,kmadd(Gtl112,Xtn1,kmadd(Gtl211,Xtn1,kmadd(Gtl122,Xtn2,kmadd(Gtl212,Xtn2,kmadd(Gtl123,Xtn3,kmadd(Gtl213,Xtn3,knmsub(gtu11,JacPDstandardNth11gt12,knmsub(gtu22,JacPDstandardNth22gt12,knmsub(gtu33,JacPDstandardNth33gt12,knmsub(gtu12,kadd(JacPDstandardNth21gt12,JacPDstandardNth12gt12),knmsub(gtu13,kadd(JacPDstandardNth31gt12,JacPDstandardNth13gt12),knmsub(gtu23,kadd(JacPDstandardNth32gt12,JacPDstandardNth23gt12),kmadd(kmadd(Gt122,Gtlu112,kmadd(Gt123,Gtlu113,kmadd(Gt111,Gtlu121,kmadd(Gt212,Gtlu121,kmadd(Gt222,Gtlu122,kmadd(Gt113,Gtlu123,kmadd(Gt223,Gtlu123,kmadd(Gt312,Gtlu131,kmadd(Gt322,Gtlu132,kmadd(Gt323,Gtlu133,kmadd(Gt111,Gtlu211,kmadd(Gt112,kadd(Gtlu111,kadd(Gtlu122,Gtlu212)),kmadd(Gt113,Gtlu213,kmadd(Gt311,Gtlu231,kmadd(Gt312,Gtlu232,kmadd(Gt313,Gtlu233,kmadd(Gt311,Gtlu321,kmadd(Gt312,Gtlu322,kmul(Gt313,Gtlu323))))))))))))))))))),ToReal(2),kmul(kmadd(Gt211,Gtlu221,kmadd(Gt212,Gtlu222,kmul(Gt213,Gtlu223))),ToReal(4)))))))))))))))))))))); CCTK_REAL_VEC Rt13 = - kmul(ToReal(0.5),kmadd(gt13L,PDstandardNth1Xt1,kmadd(gt23L,PDstandardNth1Xt2,kmadd(gt33L,PDstandardNth1Xt3,kmadd(gt11L,PDstandardNth3Xt1,kmadd(gt12L,PDstandardNth3Xt2,kmadd(gt13L,PDstandardNth3Xt3,kmadd(Gtl113,Xtn1,kmadd(Gtl311,Xtn1,kmadd(Gtl123,Xtn2,kmadd(Gtl312,Xtn2,kmadd(Gtl133,Xtn3,kmadd(Gtl313,Xtn3,kmadd(gtu12,kmul(PDstandardNth12gt13,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt13,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt13,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt13,knmsub(gtu22,PDstandardNth22gt13,knmsub(gtu33,PDstandardNth33gt13,kmadd(kmadd(Gt113,Gtlu111,kmadd(Gt123,Gtlu112,kmadd(Gt133,Gtlu113,kmadd(Gt213,Gtlu121,kmadd(Gt223,Gtlu122,kmadd(Gt233,Gtlu123,kmadd(Gt111,Gtlu131,kmadd(Gt313,Gtlu131,kmadd(Gt112,Gtlu132,kmadd(Gt323,Gtlu132,kmadd(Gt113,Gtlu133,kmadd(Gt333,Gtlu133,kmadd(Gt211,Gtlu231,kmadd(Gt212,Gtlu232,kmadd(Gt213,Gtlu233,kmadd(Gt111,Gtlu311,kmadd(Gt112,Gtlu312,kmadd(Gt113,Gtlu313,kmadd(Gt211,Gtlu321,kmadd(Gt212,Gtlu322,kmul(Gt213,Gtlu323))))))))))))))))))))),ToReal(2),kmul(kmadd(Gt311,Gtlu331,kmadd(Gt312,Gtlu332,kmul(Gt313,Gtlu333))),ToReal(4)))))))))))))))))))))); + kmul(ToReal(0.5),kmadd(gt13L,JacPDstandardNth1Xt1,kmadd(gt23L,JacPDstandardNth1Xt2,kmadd(gt33L,JacPDstandardNth1Xt3,kmadd(gt11L,JacPDstandardNth3Xt1,kmadd(gt12L,JacPDstandardNth3Xt2,kmadd(gt13L,JacPDstandardNth3Xt3,kmadd(Gtl113,Xtn1,kmadd(Gtl311,Xtn1,kmadd(Gtl123,Xtn2,kmadd(Gtl312,Xtn2,kmadd(Gtl133,Xtn3,kmadd(Gtl313,Xtn3,knmsub(gtu11,JacPDstandardNth11gt13,knmsub(gtu22,JacPDstandardNth22gt13,knmsub(gtu33,JacPDstandardNth33gt13,knmsub(gtu12,kadd(JacPDstandardNth21gt13,JacPDstandardNth12gt13),knmsub(gtu13,kadd(JacPDstandardNth31gt13,JacPDstandardNth13gt13),knmsub(gtu23,kadd(JacPDstandardNth32gt13,JacPDstandardNth23gt13),kmadd(kmadd(Gt123,Gtlu112,kmadd(Gt133,Gtlu113,kmadd(Gt213,Gtlu121,kmadd(Gt223,Gtlu122,kmadd(Gt233,Gtlu123,kmadd(Gt111,Gtlu131,kmadd(Gt313,Gtlu131,kmadd(Gt112,Gtlu132,kmadd(Gt323,Gtlu132,kmadd(Gt333,Gtlu133,kmadd(Gt211,Gtlu231,kmadd(Gt212,Gtlu232,kmadd(Gt213,Gtlu233,kmadd(Gt111,Gtlu311,kmadd(Gt112,Gtlu312,kmadd(Gt113,kadd(Gtlu111,kadd(Gtlu133,Gtlu313)),kmadd(Gt211,Gtlu321,kmadd(Gt212,Gtlu322,kmul(Gt213,Gtlu323))))))))))))))))))),ToReal(2),kmul(kmadd(Gt311,Gtlu331,kmadd(Gt312,Gtlu332,kmul(Gt313,Gtlu333))),ToReal(4)))))))))))))))))))))); CCTK_REAL_VEC Rt22 = - kmul(ToReal(0.5),kmadd(gtu12,kmul(PDstandardNth12gt22,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt22,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt22,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt22,knmsub(gtu22,PDstandardNth22gt22,knmsub(gtu33,PDstandardNth33gt22,kmadd(kmadd(Gt112,Gtlu121,kmadd(Gt122,Gtlu122,kmadd(Gt123,Gtlu123,kmadd(Gt312,Gtlu321,kmadd(Gt322,Gtlu322,kmadd(Gt323,Gtlu323,kmul(gt12L,PDstandardNth2Xt1))))))),ToReal(2),kmadd(gt22L,kmul(PDstandardNth2Xt2,ToReal(2)),kmadd(gt23L,kmul(PDstandardNth2Xt3,ToReal(2)),kmadd(Gtl212,kmul(Xtn1,ToReal(2)),kmadd(Gtl222,kmul(Xtn2,ToReal(2)),kmadd(Gtl223,kmul(Xtn3,ToReal(2)),kmadd(kmadd(Gt112,Gtlu211,kmadd(Gt122,Gtlu212,kmadd(Gt123,Gtlu213,kmadd(Gt312,Gtlu231,kmadd(Gt322,Gtlu232,kmul(Gt323,Gtlu233)))))),ToReal(4),kmul(kmadd(Gt212,Gtlu221,kmadd(Gt222,Gtlu222,kmul(Gt223,Gtlu223))),ToReal(6)))))))))))))))); + kmul(ToReal(0.5),knmsub(gtu11,JacPDstandardNth11gt22,knmsub(gtu22,JacPDstandardNth22gt22,knmsub(gtu33,JacPDstandardNth33gt22,knmsub(gtu12,kadd(JacPDstandardNth21gt22,JacPDstandardNth12gt22),knmsub(gtu13,kadd(JacPDstandardNth31gt22,JacPDstandardNth13gt22),knmsub(gtu23,kadd(JacPDstandardNth32gt22,JacPDstandardNth23gt22),kmadd(gt22L,kmul(JacPDstandardNth2Xt2,ToReal(2)),kmadd(gt23L,kmul(JacPDstandardNth2Xt3,ToReal(2)),kmadd(Gtl212,kmul(Xtn1,ToReal(2)),kmadd(Gtl222,kmul(Xtn2,ToReal(2)),kmadd(Gtl223,kmul(Xtn3,ToReal(2)),kmadd(ToReal(2),kmadd(Gt123,Gtlu123,kmadd(Gt312,Gtlu321,kmadd(Gt322,Gtlu322,kmadd(Gt323,Gtlu323,kmadd(gt12L,JacPDstandardNth2Xt1,kmadd(Gt112,kmadd(Gtlu211,ToReal(2),Gtlu121),kmul(Gt122,kmadd(Gtlu212,ToReal(2),Gtlu122)))))))),kmadd(kmadd(Gt123,Gtlu213,kmadd(Gt312,Gtlu231,kmadd(Gt322,Gtlu232,kmul(Gt323,Gtlu233)))),ToReal(4),kmul(kmadd(Gt212,Gtlu221,kmadd(Gt222,Gtlu222,kmul(Gt223,Gtlu223))),ToReal(6)))))))))))))))); CCTK_REAL_VEC Rt23 = - kmul(ToReal(0.5),kmadd(gt13L,PDstandardNth2Xt1,kmadd(gt23L,PDstandardNth2Xt2,kmadd(gt33L,PDstandardNth2Xt3,kmadd(gt12L,PDstandardNth3Xt1,kmadd(gt22L,PDstandardNth3Xt2,kmadd(gt23L,PDstandardNth3Xt3,kmadd(Gtl213,Xtn1,kmadd(Gtl312,Xtn1,kmadd(Gtl223,Xtn2,kmadd(Gtl322,Xtn2,kmadd(Gtl233,Xtn3,kmadd(Gtl323,Xtn3,kmadd(gtu12,kmul(PDstandardNth12gt23,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt23,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt23,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt23,knmsub(gtu22,PDstandardNth22gt23,knmsub(gtu33,PDstandardNth33gt23,kmadd(kmadd(Gt112,Gtlu131,kmadd(Gt122,Gtlu132,kmadd(Gt123,Gtlu133,kmadd(Gt113,Gtlu211,kmadd(Gt123,Gtlu212,kmadd(Gt133,Gtlu213,kmadd(Gt213,Gtlu221,kmadd(Gt223,Gtlu222,kmadd(Gt233,Gtlu223,kmadd(Gt212,Gtlu231,kmadd(Gt313,Gtlu231,kmadd(Gt222,Gtlu232,kmadd(Gt323,Gtlu232,kmadd(Gt223,Gtlu233,kmadd(Gt333,Gtlu233,kmadd(Gt112,Gtlu311,kmadd(Gt122,Gtlu312,kmadd(Gt123,Gtlu313,kmadd(Gt212,Gtlu321,kmadd(Gt222,Gtlu322,kmul(Gt223,Gtlu323))))))))))))))))))))),ToReal(2),kmul(kmadd(Gt312,Gtlu331,kmadd(Gt322,Gtlu332,kmul(Gt323,Gtlu333))),ToReal(4)))))))))))))))))))))); + kmul(ToReal(0.5),kmadd(gt13L,JacPDstandardNth2Xt1,kmadd(gt23L,JacPDstandardNth2Xt2,kmadd(gt33L,JacPDstandardNth2Xt3,kmadd(gt12L,JacPDstandardNth3Xt1,kmadd(gt22L,JacPDstandardNth3Xt2,kmadd(gt23L,JacPDstandardNth3Xt3,kmadd(Gtl213,Xtn1,kmadd(Gtl312,Xtn1,kmadd(Gtl223,Xtn2,kmadd(Gtl322,Xtn2,kmadd(Gtl233,Xtn3,kmadd(Gtl323,Xtn3,knmsub(gtu11,JacPDstandardNth11gt23,knmsub(gtu22,JacPDstandardNth22gt23,knmsub(gtu33,JacPDstandardNth33gt23,knmsub(gtu12,kadd(JacPDstandardNth21gt23,JacPDstandardNth12gt23),knmsub(gtu13,kadd(JacPDstandardNth31gt23,JacPDstandardNth13gt23),knmsub(gtu23,kadd(JacPDstandardNth32gt23,JacPDstandardNth23gt23),kmadd(kmadd(Gt123,Gtlu133,kmadd(Gt113,Gtlu211,kmadd(Gt123,Gtlu212,kmadd(Gt133,Gtlu213,kmadd(Gt213,Gtlu221,kmadd(Gt223,Gtlu222,kmadd(Gt233,Gtlu223,kmadd(Gt212,Gtlu231,kmadd(Gt313,Gtlu231,kmadd(Gt222,Gtlu232,kmadd(Gt323,Gtlu232,kmadd(Gt223,Gtlu233,kmadd(Gt333,Gtlu233,kmadd(Gt112,kadd(Gtlu131,Gtlu311),kmadd(Gt122,kadd(Gtlu132,Gtlu312),kmadd(Gt123,Gtlu313,kmadd(Gt212,Gtlu321,kmadd(Gt222,Gtlu322,kmul(Gt223,Gtlu323))))))))))))))))))),ToReal(2),kmul(kmadd(Gt312,Gtlu331,kmadd(Gt322,Gtlu332,kmul(Gt323,Gtlu333))),ToReal(4)))))))))))))))))))))); CCTK_REAL_VEC Rt33 = - kmul(ToReal(0.5),kmadd(gtu12,kmul(PDstandardNth12gt33,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt33,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt33,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt33,knmsub(gtu22,PDstandardNth22gt33,knmsub(gtu33,PDstandardNth33gt33,kmadd(kmadd(Gt113,Gtlu131,kmadd(Gt123,Gtlu132,kmadd(Gt133,Gtlu133,kmadd(Gt213,Gtlu231,kmadd(Gt223,Gtlu232,kmadd(Gt233,Gtlu233,kmul(gt13L,PDstandardNth3Xt1))))))),ToReal(2),kmadd(gt23L,kmul(PDstandardNth3Xt2,ToReal(2)),kmadd(gt33L,kmul(PDstandardNth3Xt3,ToReal(2)),kmadd(Gtl313,kmul(Xtn1,ToReal(2)),kmadd(Gtl323,kmul(Xtn2,ToReal(2)),kmadd(Gtl333,kmul(Xtn3,ToReal(2)),kmadd(kmadd(Gt113,Gtlu311,kmadd(Gt123,Gtlu312,kmadd(Gt133,Gtlu313,kmadd(Gt213,Gtlu321,kmadd(Gt223,Gtlu322,kmul(Gt233,Gtlu323)))))),ToReal(4),kmul(kmadd(Gt313,Gtlu331,kmadd(Gt323,Gtlu332,kmul(Gt333,Gtlu333))),ToReal(6)))))))))))))))); + kmul(ToReal(0.5),knmsub(gtu11,JacPDstandardNth11gt33,knmsub(gtu22,JacPDstandardNth22gt33,knmsub(gtu33,JacPDstandardNth33gt33,knmsub(gtu12,kadd(JacPDstandardNth21gt33,JacPDstandardNth12gt33),knmsub(gtu13,kadd(JacPDstandardNth31gt33,JacPDstandardNth13gt33),knmsub(gtu23,kadd(JacPDstandardNth32gt33,JacPDstandardNth23gt33),kmadd(gt23L,kmul(JacPDstandardNth3Xt2,ToReal(2)),kmadd(gt33L,kmul(JacPDstandardNth3Xt3,ToReal(2)),kmadd(Gtl313,kmul(Xtn1,ToReal(2)),kmadd(Gtl323,kmul(Xtn2,ToReal(2)),kmadd(Gtl333,kmul(Xtn3,ToReal(2)),kmadd(ToReal(2),kmadd(Gt133,Gtlu133,kmadd(Gt213,Gtlu231,kmadd(Gt223,Gtlu232,kmadd(Gt233,Gtlu233,kmadd(gt13L,JacPDstandardNth3Xt1,kmadd(Gt113,kmadd(Gtlu311,ToReal(2),Gtlu131),kmul(Gt123,kmadd(Gtlu312,ToReal(2),Gtlu132)))))))),kmadd(kmadd(Gt133,Gtlu313,kmadd(Gt213,Gtlu321,kmadd(Gt223,Gtlu322,kmul(Gt233,Gtlu323)))),ToReal(4),kmul(kmadd(Gt313,Gtlu331,kmadd(Gt323,Gtlu332,kmul(Gt333,Gtlu333))),ToReal(6)))))))))))))))); CCTK_REAL_VEC fac1 = IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); - CCTK_REAL_VEC cdphi1 = kmul(fac1,PDstandardNth1phi); + CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); - CCTK_REAL_VEC cdphi2 = kmul(fac1,PDstandardNth2phi); + CCTK_REAL_VEC cdphi2 = kmul(fac1,JacPDstandardNth2phi); - CCTK_REAL_VEC cdphi3 = kmul(fac1,PDstandardNth3phi); + CCTK_REAL_VEC cdphi3 = kmul(fac1,JacPDstandardNth3phi); CCTK_REAL_VEC fac2 = IfThen(conformalMethod,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = - kmsub(fac2,SQR(PDstandardNth1phi),kmul(fac1,kmadd(Gt111,PDstandardNth1phi,kmadd(Gt211,PDstandardNth2phi,kmsub(Gt311,PDstandardNth3phi,PDstandardNth11phi))))); + kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); CCTK_REAL_VEC cdphi212 = - kmsub(fac2,kmul(PDstandardNth1phi,PDstandardNth2phi),kmul(fac1,kmadd(Gt112,PDstandardNth1phi,kmadd(Gt212,PDstandardNth2phi,kmsub(Gt312,PDstandardNth3phi,PDstandardNth12phi))))); + kmadd(fac2,kmul(JacPDstandardNth1phi,JacPDstandardNth2phi),kmul(fac1,ksub(JacPDstandardNth12phi,kmadd(Gt112,JacPDstandardNth1phi,kmadd(Gt312,JacPDstandardNth3phi,kmul(Gt212,JacPDstandardNth2phi)))))); CCTK_REAL_VEC cdphi213 = - kmsub(fac2,kmul(PDstandardNth1phi,PDstandardNth3phi),kmul(fac1,kmadd(Gt113,PDstandardNth1phi,kmadd(Gt213,PDstandardNth2phi,kmsub(Gt313,PDstandardNth3phi,PDstandardNth13phi))))); + kmadd(fac2,kmul(JacPDstandardNth1phi,JacPDstandardNth3phi),kmul(fac1,ksub(JacPDstandardNth13phi,kmadd(Gt113,JacPDstandardNth1phi,kmadd(Gt313,JacPDstandardNth3phi,kmul(Gt213,JacPDstandardNth2phi)))))); CCTK_REAL_VEC cdphi222 = - kmsub(fac2,SQR(PDstandardNth2phi),kmul(fac1,kmadd(Gt122,PDstandardNth1phi,kmadd(Gt222,PDstandardNth2phi,kmsub(Gt322,PDstandardNth3phi,PDstandardNth22phi))))); + kmsub(fac2,SQR(JacPDstandardNth2phi),kmul(fac1,kmadd(Gt122,JacPDstandardNth1phi,kmadd(Gt222,JacPDstandardNth2phi,kmsub(Gt322,JacPDstandardNth3phi,JacPDstandardNth22phi))))); CCTK_REAL_VEC cdphi223 = - kmsub(fac2,kmul(PDstandardNth2phi,PDstandardNth3phi),kmul(fac1,kmadd(Gt123,PDstandardNth1phi,kmadd(Gt223,PDstandardNth2phi,kmsub(Gt323,PDstandardNth3phi,PDstandardNth23phi))))); + kmsub(fac2,kmul(JacPDstandardNth2phi,JacPDstandardNth3phi),kmul(fac1,kmadd(Gt123,JacPDstandardNth1phi,kmadd(Gt223,JacPDstandardNth2phi,kmsub(Gt323,JacPDstandardNth3phi,JacPDstandardNth23phi))))); CCTK_REAL_VEC cdphi233 = - kmsub(fac2,SQR(PDstandardNth3phi),kmul(fac1,kmadd(Gt133,PDstandardNth1phi,kmadd(Gt233,PDstandardNth2phi,kmsub(Gt333,PDstandardNth3phi,PDstandardNth33phi))))); + kmsub(fac2,SQR(JacPDstandardNth3phi),kmul(fac1,kmadd(Gt133,JacPDstandardNth1phi,kmadd(Gt233,JacPDstandardNth2phi,kmsub(Gt333,JacPDstandardNth3phi,JacPDstandardNth33phi))))); CCTK_REAL_VEC Rphi11 = kmul(ToReal(-2),kadd(cdphi211,kmadd(SQR(cdphi1),kmul(kmadd(gt11L,gtu11,ToReal(-1)),ToReal(2)),kmul(gt11L,kmadd(cdphi211,gtu11,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu33,SQR(cdphi3))))),ToReal(2),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmul(kmadd(cdphi1,kmadd(cdphi2,gtu12,kmul(cdphi3,gtu13)),kmul(cdphi2,kmul(cdphi3,gtu23))),ToReal(4)))))))))); @@ -601,43 +1785,43 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, kmul(em4phi,kmadd(eTxxL,gtu11,kmadd(eTyyL,gtu22,kmadd(eTzzL,gtu33,kmul(kmadd(eTxyL,gtu12,kmadd(eTxzL,gtu13,kmul(eTyzL,gtu23))),ToReal(2)))))); CCTK_REAL_VEC Ats11 = - kmadd(Gt211,PDstandardNth2alpha,kmadd(Gt311,PDstandardNth3alpha,kmadd(alphaL,R11,kmsub(PDstandardNth1alpha,kmadd(cdphi1,ToReal(4),Gt111),PDstandardNth11alpha)))); + kmadd(Gt211,JacPDstandardNth2alpha,kmadd(Gt311,JacPDstandardNth3alpha,kmadd(alphaL,R11,kmsub(JacPDstandardNth1alpha,kmadd(cdphi1,ToReal(4),Gt111),JacPDstandardNth11alpha)))); CCTK_REAL_VEC Ats12 = - kmadd(Gt312,PDstandardNth3alpha,kmadd(alphaL,R12,ksub(kmadd(PDstandardNth2alpha,kmadd(cdphi1,ToReal(2),Gt212),kmul(PDstandardNth1alpha,kmadd(cdphi2,ToReal(2),Gt112))),PDstandardNth12alpha))); + kmadd(Gt312,JacPDstandardNth3alpha,kmadd(alphaL,R12,ksub(kmadd(JacPDstandardNth2alpha,kmadd(cdphi1,ToReal(2),Gt212),kmul(JacPDstandardNth1alpha,kmadd(cdphi2,ToReal(2),Gt112))),JacPDstandardNth12alpha))); CCTK_REAL_VEC Ats13 = - kmadd(Gt213,PDstandardNth2alpha,kmadd(alphaL,R13,ksub(kmadd(PDstandardNth3alpha,kmadd(cdphi1,ToReal(2),Gt313),kmul(PDstandardNth1alpha,kmadd(cdphi3,ToReal(2),Gt113))),PDstandardNth13alpha))); + kmadd(Gt213,JacPDstandardNth2alpha,kmadd(alphaL,R13,ksub(kmadd(JacPDstandardNth3alpha,kmadd(cdphi1,ToReal(2),Gt313),kmul(JacPDstandardNth1alpha,kmadd(cdphi3,ToReal(2),Gt113))),JacPDstandardNth13alpha))); CCTK_REAL_VEC Ats22 = - kmadd(Gt122,PDstandardNth1alpha,kmadd(Gt322,PDstandardNth3alpha,kmadd(alphaL,R22,kmsub(PDstandardNth2alpha,kmadd(cdphi2,ToReal(4),Gt222),PDstandardNth22alpha)))); + kmadd(Gt122,JacPDstandardNth1alpha,kmadd(Gt322,JacPDstandardNth3alpha,kmadd(alphaL,R22,kmsub(JacPDstandardNth2alpha,kmadd(cdphi2,ToReal(4),Gt222),JacPDstandardNth22alpha)))); CCTK_REAL_VEC Ats23 = - kmadd(Gt123,PDstandardNth1alpha,kmadd(alphaL,R23,ksub(kmadd(PDstandardNth3alpha,kmadd(cdphi2,ToReal(2),Gt323),kmul(PDstandardNth2alpha,kmadd(cdphi3,ToReal(2),Gt223))),PDstandardNth23alpha))); + kmadd(Gt123,JacPDstandardNth1alpha,kmadd(alphaL,R23,ksub(kmadd(JacPDstandardNth3alpha,kmadd(cdphi2,ToReal(2),Gt323),kmul(JacPDstandardNth2alpha,kmadd(cdphi3,ToReal(2),Gt223))),JacPDstandardNth23alpha))); CCTK_REAL_VEC Ats33 = - kmadd(Gt133,PDstandardNth1alpha,kmadd(Gt233,PDstandardNth2alpha,kmadd(alphaL,R33,kmsub(PDstandardNth3alpha,kmadd(cdphi3,ToReal(4),Gt333),PDstandardNth33alpha)))); + kmadd(Gt133,JacPDstandardNth1alpha,kmadd(Gt233,JacPDstandardNth2alpha,kmadd(alphaL,R33,kmsub(JacPDstandardNth3alpha,kmadd(cdphi3,ToReal(4),Gt333),JacPDstandardNth33alpha)))); CCTK_REAL_VEC trAts = kmadd(Ats11,gu11,kmadd(Ats22,gu22,kmadd(Ats33,gu33,kmul(kmadd(Ats12,gu12,kmadd(Ats13,gu13,kmul(Ats23,gu23))),ToReal(2))))); CCTK_REAL_VEC At11rhsL = - kmadd(alphaL,kmul(kmadd(At11L,Atm11,kmadd(At12L,Atm21,kmul(At13L,Atm31))),ToReal(-2.)),kmadd(At11L,kmadd(alphaL,trKL,kmadd(kadd(PDstandardNth2beta2,PDstandardNth3beta3),ToReal(-0.6666666666666666666666666666666666666667),kmul(PDstandardNth1beta1,ToReal(1.333333333333333333333333333333333333333)))),kmadd(kmadd(At12L,PDstandardNth1beta2,kmul(At13L,PDstandardNth1beta3)),ToReal(2.),kmul(em4phi,kadd(Ats11,kmadd(g11,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),kmul(alphaL,kmadd(eTxxL,ToReal(-25.13274122871834590770114706623602307358),kmul(g11,kmul(trS,ToReal(8.377580409572781969233715688745341024526))))))))))); + kmadd(em4phi,kmadd(g11,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),Ats11),kmadd(At11L,kmadd(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(-0.6666666666666666666666666666666666666667),kmul(JacPDstandardNth1beta1,ToReal(1.333333333333333333333333333333333333333))),kmadd(kmadd(At12L,JacPDstandardNth1beta2,kmul(At13L,JacPDstandardNth1beta3)),ToReal(2.),kmul(alphaL,kmadd(kmadd(At12L,Atm21,kmul(At13L,Atm31)),ToReal(-2.),kmadd(At11L,kmadd(Atm11,ToReal(-2.),trKL),kmul(em4phi,kmadd(eTxxL,ToReal(-25.13274122871834590770114706623602307358),kmul(g11,kmul(trS,ToReal(8.377580409572781969233715688745341024526))))))))))); CCTK_REAL_VEC At12rhsL = - kmadd(At22L,PDstandardNth1beta2,kmadd(At23L,PDstandardNth1beta3,kmadd(At11L,PDstandardNth2beta1,kmadd(At13L,PDstandardNth2beta3,kmadd(alphaL,kmul(kmadd(At11L,Atm12,kmadd(At12L,Atm22,kmul(At13L,Atm32))),ToReal(-2.)),kmadd(At12L,kmadd(alphaL,trKL,kmadd(PDstandardNth3beta3,ToReal(-0.6666666666666666666666666666666666666667),kmul(kadd(PDstandardNth1beta1,PDstandardNth2beta2),ToReal(0.3333333333333333333333333333333333333333)))),kmul(em4phi,kadd(Ats12,kmadd(g12,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),kmul(alphaL,kmadd(eTxyL,ToReal(-25.13274122871834590770114706623602307358),kmul(g12,kmul(trS,ToReal(8.377580409572781969233715688745341024526)))))))))))))); + kmadd(At22L,JacPDstandardNth1beta2,kmadd(At23L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth2beta1,kmadd(At13L,JacPDstandardNth2beta3,kmadd(em4phi,kmadd(g12,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),Ats12),kmadd(At12L,kmadd(JacPDstandardNth3beta3,ToReal(-0.6666666666666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(0.3333333333333333333333333333333333333333))),kmul(alphaL,kmadd(At12L,trKL,kmadd(kmadd(At11L,Atm12,kmadd(At12L,Atm22,kmul(At13L,Atm32))),ToReal(-2.),kmul(em4phi,kmadd(eTxyL,ToReal(-25.13274122871834590770114706623602307358),kmul(g12,kmul(trS,ToReal(8.377580409572781969233715688745341024526)))))))))))))); CCTK_REAL_VEC At13rhsL = - kmadd(At23L,PDstandardNth1beta2,kmadd(At33L,PDstandardNth1beta3,kmadd(At11L,PDstandardNth3beta1,kmadd(At12L,PDstandardNth3beta2,kmadd(alphaL,kmul(kmadd(At11L,Atm13,kmadd(At12L,Atm23,kmul(At13L,Atm33))),ToReal(-2.)),kmadd(At13L,kmadd(alphaL,trKL,kmadd(PDstandardNth2beta2,ToReal(-0.6666666666666666666666666666666666666667),kmul(kadd(PDstandardNth1beta1,PDstandardNth3beta3),ToReal(0.3333333333333333333333333333333333333333)))),kmul(em4phi,kadd(Ats13,kmadd(g13,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),kmul(alphaL,kmadd(eTxzL,ToReal(-25.13274122871834590770114706623602307358),kmul(g13,kmul(trS,ToReal(8.377580409572781969233715688745341024526)))))))))))))); + kmadd(At23L,JacPDstandardNth1beta2,kmadd(At33L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth3beta1,kmadd(At12L,JacPDstandardNth3beta2,kmadd(em4phi,kmadd(g13,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),Ats13),kmadd(At13L,kmadd(JacPDstandardNth2beta2,ToReal(-0.6666666666666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(0.3333333333333333333333333333333333333333))),kmul(alphaL,kmadd(At13L,trKL,kmadd(kmadd(At11L,Atm13,kmadd(At12L,Atm23,kmul(At13L,Atm33))),ToReal(-2.),kmul(em4phi,kmadd(eTxzL,ToReal(-25.13274122871834590770114706623602307358),kmul(g13,kmul(trS,ToReal(8.377580409572781969233715688745341024526)))))))))))))); CCTK_REAL_VEC At22rhsL = - kmadd(alphaL,kmul(kmadd(At12L,Atm12,kmadd(At22L,Atm22,kmul(At23L,Atm32))),ToReal(-2.)),kmadd(At22L,kmadd(alphaL,trKL,kmadd(kadd(PDstandardNth1beta1,PDstandardNth3beta3),ToReal(-0.6666666666666666666666666666666666666667),kmul(PDstandardNth2beta2,ToReal(1.333333333333333333333333333333333333333)))),kmadd(kmadd(At12L,PDstandardNth2beta1,kmul(At23L,PDstandardNth2beta3)),ToReal(2.),kmul(em4phi,kadd(Ats22,kmadd(g22,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),kmul(alphaL,kmadd(eTyyL,ToReal(-25.13274122871834590770114706623602307358),kmul(g22,kmul(trS,ToReal(8.377580409572781969233715688745341024526))))))))))); + kmadd(em4phi,kmadd(g22,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),Ats22),kmadd(At22L,kmadd(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(-0.6666666666666666666666666666666666666667),kmul(JacPDstandardNth2beta2,ToReal(1.333333333333333333333333333333333333333))),kmadd(kmadd(At12L,JacPDstandardNth2beta1,kmul(At23L,JacPDstandardNth2beta3)),ToReal(2.),kmul(alphaL,kmadd(At22L,trKL,kmadd(kmadd(At12L,Atm12,kmadd(At22L,Atm22,kmul(At23L,Atm32))),ToReal(-2.),kmul(em4phi,kmadd(eTyyL,ToReal(-25.13274122871834590770114706623602307358),kmul(g22,kmul(trS,ToReal(8.377580409572781969233715688745341024526))))))))))); CCTK_REAL_VEC At23rhsL = - kmadd(At13L,PDstandardNth2beta1,kmadd(At33L,PDstandardNth2beta3,kmadd(At12L,PDstandardNth3beta1,kmadd(At22L,PDstandardNth3beta2,kmadd(alphaL,kmul(kmadd(At12L,Atm13,kmadd(At22L,Atm23,kmul(At23L,Atm33))),ToReal(-2.)),kmadd(At23L,kmadd(alphaL,trKL,kmadd(PDstandardNth1beta1,ToReal(-0.6666666666666666666666666666666666666667),kmul(kadd(PDstandardNth2beta2,PDstandardNth3beta3),ToReal(0.3333333333333333333333333333333333333333)))),kmul(em4phi,kadd(Ats23,kmadd(g23,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),kmul(alphaL,kmadd(eTyzL,ToReal(-25.13274122871834590770114706623602307358),kmul(g23,kmul(trS,ToReal(8.377580409572781969233715688745341024526)))))))))))))); + kmadd(At13L,JacPDstandardNth2beta1,kmadd(At33L,JacPDstandardNth2beta3,kmadd(At12L,JacPDstandardNth3beta1,kmadd(At22L,JacPDstandardNth3beta2,kmadd(em4phi,kmadd(g23,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),Ats23),kmadd(At23L,kmadd(JacPDstandardNth1beta1,ToReal(-0.6666666666666666666666666666666666666667),kmul(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(0.3333333333333333333333333333333333333333))),kmul(alphaL,kmadd(At23L,trKL,kmadd(kmadd(At12L,Atm13,kmadd(At22L,Atm23,kmul(At23L,Atm33))),ToReal(-2.),kmul(em4phi,kmadd(eTyzL,ToReal(-25.13274122871834590770114706623602307358),kmul(g23,kmul(trS,ToReal(8.377580409572781969233715688745341024526)))))))))))))); CCTK_REAL_VEC At33rhsL = - kmadd(alphaL,kmul(kmadd(At13L,Atm13,kmadd(At23L,Atm23,kmul(At33L,Atm33))),ToReal(-2.)),kmadd(At33L,kmadd(alphaL,trKL,kmadd(kadd(PDstandardNth1beta1,PDstandardNth2beta2),ToReal(-0.6666666666666666666666666666666666666667),kmul(PDstandardNth3beta3,ToReal(1.333333333333333333333333333333333333333)))),kmadd(kmadd(At13L,PDstandardNth3beta1,kmul(At23L,PDstandardNth3beta2)),ToReal(2.),kmul(em4phi,kadd(Ats33,kmadd(g33,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),kmul(alphaL,kmadd(eTzzL,ToReal(-25.13274122871834590770114706623602307358),kmul(g33,kmul(trS,ToReal(8.377580409572781969233715688745341024526))))))))))); + kmadd(em4phi,kmadd(g33,kmul(trAts,ToReal(-0.3333333333333333333333333333333333333333)),Ats33),kmadd(At33L,kmadd(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(-0.6666666666666666666666666666666666666667),kmul(JacPDstandardNth3beta3,ToReal(1.333333333333333333333333333333333333333))),kmadd(kmadd(At13L,JacPDstandardNth3beta1,kmul(At23L,JacPDstandardNth3beta2)),ToReal(2.),kmul(alphaL,kmadd(At33L,trKL,kmadd(kmadd(At13L,Atm13,kmadd(At23L,Atm23,kmul(At33L,Atm33))),ToReal(-2.),kmul(em4phi,kmadd(eTzzL,ToReal(-25.13274122871834590770114706623602307358),kmul(g33,kmul(trS,ToReal(8.377580409572781969233715688745341024526))))))))))); /* If necessary, store only partial vectors after the first iteration */ diff --git a/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc b/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc index 6d1c90d..4b16e2c 100644 --- a/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc +++ b/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc @@ -79,6 +79,20 @@ static void ML_BSSN_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, in const char *groups[] = {"ML_BSSN::ML_curvrhs","ML_BSSN::ML_dtlapserhs","ML_BSSN::ML_dtshiftrhs","ML_BSSN::ML_Gammarhs","ML_BSSN::ML_lapserhs","ML_BSSN::ML_log_confacrhs","ML_BSSN::ML_metricrhs","ML_BSSN::ML_shiftrhs","ML_BSSN::ML_trace_curvrhs"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHSStaticBoundary", 9, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -106,24 +120,129 @@ static void ML_BSSN_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, in CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -138,10 +257,26 @@ static void ML_BSSN_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, in + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC phirhsL = ToReal(0); diff --git a/ML_BSSN/src/ML_BSSN_boundary.cc b/ML_BSSN/src/ML_BSSN_boundary.cc index b00443d..948c591 100644 --- a/ML_BSSN/src/ML_BSSN_boundary.cc +++ b/ML_BSSN/src/ML_BSSN_boundary.cc @@ -79,6 +79,20 @@ static void ML_BSSN_boundary_Body(cGH const * restrict const cctkGH, int const d const char *groups[] = {"ML_BSSN::ML_curv","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtshift","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_boundary", 9, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -106,24 +120,129 @@ static void ML_BSSN_boundary_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -138,10 +257,26 @@ static void ML_BSSN_boundary_Body(cGH const * restrict const cctkGH, int const d + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); diff --git a/ML_BSSN/src/ML_BSSN_constraints1.cc b/ML_BSSN/src/ML_BSSN_constraints1.cc index 3fb83d9..4b443d9 100644 --- a/ML_BSSN/src/ML_BSSN_constraints1.cc +++ b/ML_BSSN/src/ML_BSSN_constraints1.cc @@ -55,7 +55,24 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con const char *groups[] = {"ML_BSSN::ML_curv","ML_BSSN::ML_Gamma","ML_BSSN::ML_Ham","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_constraints1", 8, groups); - GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints1", 2, 2, 2); + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints1", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints1", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints1", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints1", 4, 4, 4); + break; + } /* Include user-supplied include files */ @@ -83,24 +100,129 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -164,83 +286,965 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con eTzzL = ToReal(0.0); } + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + dJ111L = vec_load(dJ111[index]); + dJ112L = vec_load(dJ112[index]); + dJ113L = vec_load(dJ113[index]); + dJ122L = vec_load(dJ122[index]); + dJ123L = vec_load(dJ123[index]); + dJ133L = vec_load(dJ133[index]); + dJ211L = vec_load(dJ211[index]); + dJ212L = vec_load(dJ212[index]); + dJ213L = vec_load(dJ213[index]); + dJ222L = vec_load(dJ222[index]); + dJ223L = vec_load(dJ223[index]); + dJ233L = vec_load(dJ233[index]); + dJ311L = vec_load(dJ311[index]); + dJ312L = vec_load(dJ312[index]); + dJ313L = vec_load(dJ313[index]); + dJ322L = vec_load(dJ322[index]); + dJ323L = vec_load(dJ323[index]); + dJ333L = vec_load(dJ333[index]); + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + /* Include user supplied include files */ /* Precompute derivatives */ - CCTK_REAL_VEC const PDstandardNth1gt11 = PDstandardNth1(>11[index]); - CCTK_REAL_VEC const PDstandardNth2gt11 = PDstandardNth2(>11[index]); - CCTK_REAL_VEC const PDstandardNth3gt11 = PDstandardNth3(>11[index]); - CCTK_REAL_VEC const PDstandardNth11gt11 = PDstandardNth11(>11[index]); - CCTK_REAL_VEC const PDstandardNth22gt11 = PDstandardNth22(>11[index]); - CCTK_REAL_VEC const PDstandardNth33gt11 = PDstandardNth33(>11[index]); - CCTK_REAL_VEC const PDstandardNth12gt11 = PDstandardNth12(>11[index]); - CCTK_REAL_VEC const PDstandardNth13gt11 = PDstandardNth13(>11[index]); - CCTK_REAL_VEC const PDstandardNth23gt11 = PDstandardNth23(>11[index]); - CCTK_REAL_VEC const PDstandardNth1gt12 = PDstandardNth1(>12[index]); - CCTK_REAL_VEC const PDstandardNth2gt12 = PDstandardNth2(>12[index]); - CCTK_REAL_VEC const PDstandardNth3gt12 = PDstandardNth3(>12[index]); - CCTK_REAL_VEC const PDstandardNth11gt12 = PDstandardNth11(>12[index]); - CCTK_REAL_VEC const PDstandardNth22gt12 = PDstandardNth22(>12[index]); - CCTK_REAL_VEC const PDstandardNth33gt12 = PDstandardNth33(>12[index]); - CCTK_REAL_VEC const PDstandardNth12gt12 = PDstandardNth12(>12[index]); - CCTK_REAL_VEC const PDstandardNth13gt12 = PDstandardNth13(>12[index]); - CCTK_REAL_VEC const PDstandardNth23gt12 = PDstandardNth23(>12[index]); - CCTK_REAL_VEC const PDstandardNth1gt13 = PDstandardNth1(>13[index]); - CCTK_REAL_VEC const PDstandardNth2gt13 = PDstandardNth2(>13[index]); - CCTK_REAL_VEC const PDstandardNth3gt13 = PDstandardNth3(>13[index]); - CCTK_REAL_VEC const PDstandardNth11gt13 = PDstandardNth11(>13[index]); - CCTK_REAL_VEC const PDstandardNth22gt13 = PDstandardNth22(>13[index]); - CCTK_REAL_VEC const PDstandardNth33gt13 = PDstandardNth33(>13[index]); - CCTK_REAL_VEC const PDstandardNth12gt13 = PDstandardNth12(>13[index]); - CCTK_REAL_VEC const PDstandardNth13gt13 = PDstandardNth13(>13[index]); - CCTK_REAL_VEC const PDstandardNth23gt13 = PDstandardNth23(>13[index]); - CCTK_REAL_VEC const PDstandardNth1gt22 = PDstandardNth1(>22[index]); - CCTK_REAL_VEC const PDstandardNth2gt22 = PDstandardNth2(>22[index]); - CCTK_REAL_VEC const PDstandardNth3gt22 = PDstandardNth3(>22[index]); - CCTK_REAL_VEC const PDstandardNth11gt22 = PDstandardNth11(>22[index]); - CCTK_REAL_VEC const PDstandardNth22gt22 = PDstandardNth22(>22[index]); - CCTK_REAL_VEC const PDstandardNth33gt22 = PDstandardNth33(>22[index]); - CCTK_REAL_VEC const PDstandardNth12gt22 = PDstandardNth12(>22[index]); - CCTK_REAL_VEC const PDstandardNth13gt22 = PDstandardNth13(>22[index]); - CCTK_REAL_VEC const PDstandardNth23gt22 = PDstandardNth23(>22[index]); - CCTK_REAL_VEC const PDstandardNth1gt23 = PDstandardNth1(>23[index]); - CCTK_REAL_VEC const PDstandardNth2gt23 = PDstandardNth2(>23[index]); - CCTK_REAL_VEC const PDstandardNth3gt23 = PDstandardNth3(>23[index]); - CCTK_REAL_VEC const PDstandardNth11gt23 = PDstandardNth11(>23[index]); - CCTK_REAL_VEC const PDstandardNth22gt23 = PDstandardNth22(>23[index]); - CCTK_REAL_VEC const PDstandardNth33gt23 = PDstandardNth33(>23[index]); - CCTK_REAL_VEC const PDstandardNth12gt23 = PDstandardNth12(>23[index]); - CCTK_REAL_VEC const PDstandardNth13gt23 = PDstandardNth13(>23[index]); - CCTK_REAL_VEC const PDstandardNth23gt23 = PDstandardNth23(>23[index]); - CCTK_REAL_VEC const PDstandardNth1gt33 = PDstandardNth1(>33[index]); - CCTK_REAL_VEC const PDstandardNth2gt33 = PDstandardNth2(>33[index]); - CCTK_REAL_VEC const PDstandardNth3gt33 = PDstandardNth3(>33[index]); - CCTK_REAL_VEC const PDstandardNth11gt33 = PDstandardNth11(>33[index]); - CCTK_REAL_VEC const PDstandardNth22gt33 = PDstandardNth22(>33[index]); - CCTK_REAL_VEC const PDstandardNth33gt33 = PDstandardNth33(>33[index]); - CCTK_REAL_VEC const PDstandardNth12gt33 = PDstandardNth12(>33[index]); - CCTK_REAL_VEC const PDstandardNth13gt33 = PDstandardNth13(>33[index]); - CCTK_REAL_VEC const PDstandardNth23gt33 = PDstandardNth23(>33[index]); - CCTK_REAL_VEC const PDstandardNth1phi = PDstandardNth1(&phi[index]); - CCTK_REAL_VEC const PDstandardNth2phi = PDstandardNth2(&phi[index]); - CCTK_REAL_VEC const PDstandardNth3phi = PDstandardNth3(&phi[index]); - CCTK_REAL_VEC const PDstandardNth11phi = PDstandardNth11(&phi[index]); - CCTK_REAL_VEC const PDstandardNth22phi = PDstandardNth22(&phi[index]); - CCTK_REAL_VEC const PDstandardNth33phi = PDstandardNth33(&phi[index]); - CCTK_REAL_VEC const PDstandardNth12phi = PDstandardNth12(&phi[index]); - CCTK_REAL_VEC const PDstandardNth13phi = PDstandardNth13(&phi[index]); - CCTK_REAL_VEC const PDstandardNth23phi = PDstandardNth23(&phi[index]); - CCTK_REAL_VEC const PDstandardNth1Xt1 = PDstandardNth1(&Xt1[index]); - CCTK_REAL_VEC const PDstandardNth2Xt1 = PDstandardNth2(&Xt1[index]); - CCTK_REAL_VEC const PDstandardNth3Xt1 = PDstandardNth3(&Xt1[index]); - CCTK_REAL_VEC const PDstandardNth1Xt2 = PDstandardNth1(&Xt2[index]); - CCTK_REAL_VEC const PDstandardNth2Xt2 = PDstandardNth2(&Xt2[index]); - CCTK_REAL_VEC const PDstandardNth3Xt2 = PDstandardNth3(&Xt2[index]); - CCTK_REAL_VEC const PDstandardNth1Xt3 = PDstandardNth1(&Xt3[index]); - CCTK_REAL_VEC const PDstandardNth2Xt3 = PDstandardNth2(&Xt3[index]); - CCTK_REAL_VEC const PDstandardNth3Xt3 = PDstandardNth3(&Xt3[index]); + CCTK_REAL_VEC PDstandardNth1gt11; + CCTK_REAL_VEC PDstandardNth2gt11; + CCTK_REAL_VEC PDstandardNth3gt11; + CCTK_REAL_VEC PDstandardNth11gt11; + CCTK_REAL_VEC PDstandardNth22gt11; + CCTK_REAL_VEC PDstandardNth33gt11; + CCTK_REAL_VEC PDstandardNth12gt11; + CCTK_REAL_VEC PDstandardNth13gt11; + CCTK_REAL_VEC PDstandardNth23gt11; + CCTK_REAL_VEC PDstandardNth1gt12; + CCTK_REAL_VEC PDstandardNth2gt12; + CCTK_REAL_VEC PDstandardNth3gt12; + CCTK_REAL_VEC PDstandardNth11gt12; + CCTK_REAL_VEC PDstandardNth22gt12; + CCTK_REAL_VEC PDstandardNth33gt12; + CCTK_REAL_VEC PDstandardNth12gt12; + CCTK_REAL_VEC PDstandardNth13gt12; + CCTK_REAL_VEC PDstandardNth23gt12; + CCTK_REAL_VEC PDstandardNth1gt13; + CCTK_REAL_VEC PDstandardNth2gt13; + CCTK_REAL_VEC PDstandardNth3gt13; + CCTK_REAL_VEC PDstandardNth11gt13; + CCTK_REAL_VEC PDstandardNth22gt13; + CCTK_REAL_VEC PDstandardNth33gt13; + CCTK_REAL_VEC PDstandardNth12gt13; + CCTK_REAL_VEC PDstandardNth13gt13; + CCTK_REAL_VEC PDstandardNth23gt13; + CCTK_REAL_VEC PDstandardNth1gt22; + CCTK_REAL_VEC PDstandardNth2gt22; + CCTK_REAL_VEC PDstandardNth3gt22; + CCTK_REAL_VEC PDstandardNth11gt22; + CCTK_REAL_VEC PDstandardNth22gt22; + CCTK_REAL_VEC PDstandardNth33gt22; + CCTK_REAL_VEC PDstandardNth12gt22; + CCTK_REAL_VEC PDstandardNth13gt22; + CCTK_REAL_VEC PDstandardNth23gt22; + CCTK_REAL_VEC PDstandardNth1gt23; + CCTK_REAL_VEC PDstandardNth2gt23; + CCTK_REAL_VEC PDstandardNth3gt23; + CCTK_REAL_VEC PDstandardNth11gt23; + CCTK_REAL_VEC PDstandardNth22gt23; + CCTK_REAL_VEC PDstandardNth33gt23; + CCTK_REAL_VEC PDstandardNth12gt23; + CCTK_REAL_VEC PDstandardNth13gt23; + CCTK_REAL_VEC PDstandardNth23gt23; + CCTK_REAL_VEC PDstandardNth1gt33; + CCTK_REAL_VEC PDstandardNth2gt33; + CCTK_REAL_VEC PDstandardNth3gt33; + CCTK_REAL_VEC PDstandardNth11gt33; + CCTK_REAL_VEC PDstandardNth22gt33; + CCTK_REAL_VEC PDstandardNth33gt33; + CCTK_REAL_VEC PDstandardNth12gt33; + CCTK_REAL_VEC PDstandardNth13gt33; + CCTK_REAL_VEC PDstandardNth23gt33; + CCTK_REAL_VEC PDstandardNth1phi; + CCTK_REAL_VEC PDstandardNth2phi; + CCTK_REAL_VEC PDstandardNth3phi; + CCTK_REAL_VEC PDstandardNth11phi; + CCTK_REAL_VEC PDstandardNth22phi; + CCTK_REAL_VEC PDstandardNth33phi; + CCTK_REAL_VEC PDstandardNth12phi; + CCTK_REAL_VEC PDstandardNth13phi; + CCTK_REAL_VEC PDstandardNth23phi; + CCTK_REAL_VEC PDstandardNth1Xt1; + CCTK_REAL_VEC PDstandardNth2Xt1; + CCTK_REAL_VEC PDstandardNth3Xt1; + CCTK_REAL_VEC PDstandardNth1Xt2; + CCTK_REAL_VEC PDstandardNth2Xt2; + CCTK_REAL_VEC PDstandardNth3Xt2; + CCTK_REAL_VEC PDstandardNth1Xt3; + CCTK_REAL_VEC PDstandardNth2Xt3; + CCTK_REAL_VEC PDstandardNth3Xt3; + + switch(fdOrder) + { + case 2: + PDstandardNth1gt11 = PDstandardNthfdOrder21(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder22(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder23(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder211(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder222(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder233(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder212(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder213(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder223(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder21(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder22(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder23(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder211(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder222(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder233(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder212(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder213(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder223(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder21(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder22(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder23(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder211(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder222(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder233(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder212(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder213(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder223(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder21(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder22(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder23(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder211(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder222(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder233(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder212(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder213(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder223(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder21(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder22(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder23(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder211(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder222(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder233(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder212(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder213(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder223(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder21(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder22(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder23(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder211(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder222(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder233(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder212(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder213(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder223(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder21(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder22(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder23(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder211(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder222(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder233(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder212(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder213(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder223(&phi[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder21(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder22(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder23(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder21(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder22(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder23(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder21(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder22(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder23(&Xt3[index]); + break; + + case 4: + PDstandardNth1gt11 = PDstandardNthfdOrder41(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder42(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder43(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder411(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder422(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder433(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder412(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder413(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder423(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder41(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder42(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder43(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder411(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder422(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder433(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder412(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder413(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder423(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder41(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder42(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder43(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder411(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder422(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder433(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder412(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder413(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder423(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder41(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder42(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder43(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder411(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder422(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder433(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder412(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder413(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder423(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder41(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder42(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder43(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder411(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder422(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder433(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder412(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder413(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder423(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder41(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder42(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder43(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder411(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder422(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder433(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder412(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder413(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder423(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder41(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder42(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder43(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder411(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder422(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder433(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder412(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder413(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder423(&phi[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder41(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder42(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder43(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder41(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder42(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder43(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder41(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder42(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder43(&Xt3[index]); + break; + + case 6: + PDstandardNth1gt11 = PDstandardNthfdOrder61(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder62(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder63(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder611(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder622(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder633(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder612(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder613(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder623(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder61(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder62(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder63(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder611(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder622(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder633(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder612(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder613(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder623(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder61(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder62(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder63(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder611(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder622(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder633(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder612(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder613(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder623(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder61(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder62(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder63(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder611(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder622(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder633(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder612(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder613(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder623(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder61(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder62(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder63(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder611(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder622(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder633(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder612(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder613(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder623(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder61(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder62(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder63(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder611(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder622(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder633(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder612(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder613(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder623(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder61(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder62(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder63(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder611(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder622(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder633(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder612(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder613(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder623(&phi[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder61(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder62(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder63(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder61(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder62(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder63(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder61(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder62(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder63(&Xt3[index]); + break; + + case 8: + PDstandardNth1gt11 = PDstandardNthfdOrder81(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder82(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder83(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder811(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder822(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder833(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder812(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder813(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder823(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder81(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder82(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder83(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder811(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder822(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder833(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder812(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder813(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder823(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder81(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder82(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder83(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder811(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder822(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder833(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder812(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder813(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder823(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder81(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder82(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder83(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder811(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder822(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder833(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder812(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder813(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder823(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder81(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder82(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder83(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder811(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder822(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder833(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder812(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder813(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder823(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder81(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder82(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder83(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder811(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder822(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder833(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder812(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder813(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder823(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder81(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder82(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder83(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder811(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder822(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder833(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder812(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder813(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder823(&phi[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder81(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder82(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder83(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder81(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder82(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder83(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder81(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder82(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder83(&Xt3[index]); + break; + } /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandardNth11gt11; + CCTK_REAL_VEC JacPDstandardNth11gt12; + CCTK_REAL_VEC JacPDstandardNth11gt13; + CCTK_REAL_VEC JacPDstandardNth11gt22; + CCTK_REAL_VEC JacPDstandardNth11gt23; + CCTK_REAL_VEC JacPDstandardNth11gt33; + CCTK_REAL_VEC JacPDstandardNth11phi; + CCTK_REAL_VEC JacPDstandardNth12gt11; + CCTK_REAL_VEC JacPDstandardNth12gt12; + CCTK_REAL_VEC JacPDstandardNth12gt13; + CCTK_REAL_VEC JacPDstandardNth12gt22; + CCTK_REAL_VEC JacPDstandardNth12gt23; + CCTK_REAL_VEC JacPDstandardNth12gt33; + CCTK_REAL_VEC JacPDstandardNth12phi; + CCTK_REAL_VEC JacPDstandardNth13gt11; + CCTK_REAL_VEC JacPDstandardNth13gt12; + CCTK_REAL_VEC JacPDstandardNth13gt13; + CCTK_REAL_VEC JacPDstandardNth13gt22; + CCTK_REAL_VEC JacPDstandardNth13gt23; + CCTK_REAL_VEC JacPDstandardNth13gt33; + CCTK_REAL_VEC JacPDstandardNth13phi; + CCTK_REAL_VEC JacPDstandardNth1gt11; + CCTK_REAL_VEC JacPDstandardNth1gt12; + CCTK_REAL_VEC JacPDstandardNth1gt13; + CCTK_REAL_VEC JacPDstandardNth1gt22; + CCTK_REAL_VEC JacPDstandardNth1gt23; + CCTK_REAL_VEC JacPDstandardNth1gt33; + CCTK_REAL_VEC JacPDstandardNth1phi; + CCTK_REAL_VEC JacPDstandardNth1Xt1; + CCTK_REAL_VEC JacPDstandardNth1Xt2; + CCTK_REAL_VEC JacPDstandardNth1Xt3; + CCTK_REAL_VEC JacPDstandardNth21gt11; + CCTK_REAL_VEC JacPDstandardNth21gt12; + CCTK_REAL_VEC JacPDstandardNth21gt13; + CCTK_REAL_VEC JacPDstandardNth21gt22; + CCTK_REAL_VEC JacPDstandardNth21gt23; + CCTK_REAL_VEC JacPDstandardNth21gt33; + CCTK_REAL_VEC JacPDstandardNth22gt11; + CCTK_REAL_VEC JacPDstandardNth22gt12; + CCTK_REAL_VEC JacPDstandardNth22gt13; + CCTK_REAL_VEC JacPDstandardNth22gt22; + CCTK_REAL_VEC JacPDstandardNth22gt23; + CCTK_REAL_VEC JacPDstandardNth22gt33; + CCTK_REAL_VEC JacPDstandardNth22phi; + CCTK_REAL_VEC JacPDstandardNth23gt11; + CCTK_REAL_VEC JacPDstandardNth23gt12; + CCTK_REAL_VEC JacPDstandardNth23gt13; + CCTK_REAL_VEC JacPDstandardNth23gt22; + CCTK_REAL_VEC JacPDstandardNth23gt23; + CCTK_REAL_VEC JacPDstandardNth23gt33; + CCTK_REAL_VEC JacPDstandardNth23phi; + CCTK_REAL_VEC JacPDstandardNth2gt11; + CCTK_REAL_VEC JacPDstandardNth2gt12; + CCTK_REAL_VEC JacPDstandardNth2gt13; + CCTK_REAL_VEC JacPDstandardNth2gt22; + CCTK_REAL_VEC JacPDstandardNth2gt23; + CCTK_REAL_VEC JacPDstandardNth2gt33; + CCTK_REAL_VEC JacPDstandardNth2phi; + CCTK_REAL_VEC JacPDstandardNth2Xt1; + CCTK_REAL_VEC JacPDstandardNth2Xt2; + CCTK_REAL_VEC JacPDstandardNth2Xt3; + CCTK_REAL_VEC JacPDstandardNth31gt11; + CCTK_REAL_VEC JacPDstandardNth31gt12; + CCTK_REAL_VEC JacPDstandardNth31gt13; + CCTK_REAL_VEC JacPDstandardNth31gt22; + CCTK_REAL_VEC JacPDstandardNth31gt23; + CCTK_REAL_VEC JacPDstandardNth31gt33; + CCTK_REAL_VEC JacPDstandardNth32gt11; + CCTK_REAL_VEC JacPDstandardNth32gt12; + CCTK_REAL_VEC JacPDstandardNth32gt13; + CCTK_REAL_VEC JacPDstandardNth32gt22; + CCTK_REAL_VEC JacPDstandardNth32gt23; + CCTK_REAL_VEC JacPDstandardNth32gt33; + CCTK_REAL_VEC JacPDstandardNth33gt11; + CCTK_REAL_VEC JacPDstandardNth33gt12; + CCTK_REAL_VEC JacPDstandardNth33gt13; + CCTK_REAL_VEC JacPDstandardNth33gt22; + CCTK_REAL_VEC JacPDstandardNth33gt23; + CCTK_REAL_VEC JacPDstandardNth33gt33; + CCTK_REAL_VEC JacPDstandardNth33phi; + CCTK_REAL_VEC JacPDstandardNth3gt11; + CCTK_REAL_VEC JacPDstandardNth3gt12; + CCTK_REAL_VEC JacPDstandardNth3gt13; + CCTK_REAL_VEC JacPDstandardNth3gt22; + CCTK_REAL_VEC JacPDstandardNth3gt23; + CCTK_REAL_VEC JacPDstandardNth3gt33; + CCTK_REAL_VEC JacPDstandardNth3phi; + CCTK_REAL_VEC JacPDstandardNth3Xt1; + CCTK_REAL_VEC JacPDstandardNth3Xt2; + CCTK_REAL_VEC JacPDstandardNth3Xt3; + + if (use_jacobian) + { + JacPDstandardNth1gt11 = + kmadd(J11L,PDstandardNth1gt11,kmadd(J21L,PDstandardNth2gt11,kmul(J31L,PDstandardNth3gt11))); + + JacPDstandardNth1gt12 = + kmadd(J11L,PDstandardNth1gt12,kmadd(J21L,PDstandardNth2gt12,kmul(J31L,PDstandardNth3gt12))); + + JacPDstandardNth1gt13 = + kmadd(J11L,PDstandardNth1gt13,kmadd(J21L,PDstandardNth2gt13,kmul(J31L,PDstandardNth3gt13))); + + JacPDstandardNth1gt22 = + kmadd(J11L,PDstandardNth1gt22,kmadd(J21L,PDstandardNth2gt22,kmul(J31L,PDstandardNth3gt22))); + + JacPDstandardNth1gt23 = + kmadd(J11L,PDstandardNth1gt23,kmadd(J21L,PDstandardNth2gt23,kmul(J31L,PDstandardNth3gt23))); + + JacPDstandardNth1gt33 = + kmadd(J11L,PDstandardNth1gt33,kmadd(J21L,PDstandardNth2gt33,kmul(J31L,PDstandardNth3gt33))); + + JacPDstandardNth1phi = + kmadd(J11L,PDstandardNth1phi,kmadd(J21L,PDstandardNth2phi,kmul(J31L,PDstandardNth3phi))); + + JacPDstandardNth1Xt1 = + kmadd(J11L,PDstandardNth1Xt1,kmadd(J21L,PDstandardNth2Xt1,kmul(J31L,PDstandardNth3Xt1))); + + JacPDstandardNth1Xt2 = + kmadd(J11L,PDstandardNth1Xt2,kmadd(J21L,PDstandardNth2Xt2,kmul(J31L,PDstandardNth3Xt2))); + + JacPDstandardNth1Xt3 = + kmadd(J11L,PDstandardNth1Xt3,kmadd(J21L,PDstandardNth2Xt3,kmul(J31L,PDstandardNth3Xt3))); + + JacPDstandardNth2gt11 = + kmadd(J12L,PDstandardNth1gt11,kmadd(J22L,PDstandardNth2gt11,kmul(J32L,PDstandardNth3gt11))); + + JacPDstandardNth2gt12 = + kmadd(J12L,PDstandardNth1gt12,kmadd(J22L,PDstandardNth2gt12,kmul(J32L,PDstandardNth3gt12))); + + JacPDstandardNth2gt13 = + kmadd(J12L,PDstandardNth1gt13,kmadd(J22L,PDstandardNth2gt13,kmul(J32L,PDstandardNth3gt13))); + + JacPDstandardNth2gt22 = + kmadd(J12L,PDstandardNth1gt22,kmadd(J22L,PDstandardNth2gt22,kmul(J32L,PDstandardNth3gt22))); + + JacPDstandardNth2gt23 = + kmadd(J12L,PDstandardNth1gt23,kmadd(J22L,PDstandardNth2gt23,kmul(J32L,PDstandardNth3gt23))); + + JacPDstandardNth2gt33 = + kmadd(J12L,PDstandardNth1gt33,kmadd(J22L,PDstandardNth2gt33,kmul(J32L,PDstandardNth3gt33))); + + JacPDstandardNth2phi = + kmadd(J12L,PDstandardNth1phi,kmadd(J22L,PDstandardNth2phi,kmul(J32L,PDstandardNth3phi))); + + JacPDstandardNth2Xt1 = + kmadd(J12L,PDstandardNth1Xt1,kmadd(J22L,PDstandardNth2Xt1,kmul(J32L,PDstandardNth3Xt1))); + + JacPDstandardNth2Xt2 = + kmadd(J12L,PDstandardNth1Xt2,kmadd(J22L,PDstandardNth2Xt2,kmul(J32L,PDstandardNth3Xt2))); + + JacPDstandardNth2Xt3 = + kmadd(J12L,PDstandardNth1Xt3,kmadd(J22L,PDstandardNth2Xt3,kmul(J32L,PDstandardNth3Xt3))); + + JacPDstandardNth3gt11 = + kmadd(J13L,PDstandardNth1gt11,kmadd(J23L,PDstandardNth2gt11,kmul(J33L,PDstandardNth3gt11))); + + JacPDstandardNth3gt12 = + kmadd(J13L,PDstandardNth1gt12,kmadd(J23L,PDstandardNth2gt12,kmul(J33L,PDstandardNth3gt12))); + + JacPDstandardNth3gt13 = + kmadd(J13L,PDstandardNth1gt13,kmadd(J23L,PDstandardNth2gt13,kmul(J33L,PDstandardNth3gt13))); + + JacPDstandardNth3gt22 = + kmadd(J13L,PDstandardNth1gt22,kmadd(J23L,PDstandardNth2gt22,kmul(J33L,PDstandardNth3gt22))); + + JacPDstandardNth3gt23 = + kmadd(J13L,PDstandardNth1gt23,kmadd(J23L,PDstandardNth2gt23,kmul(J33L,PDstandardNth3gt23))); + + JacPDstandardNth3gt33 = + kmadd(J13L,PDstandardNth1gt33,kmadd(J23L,PDstandardNth2gt33,kmul(J33L,PDstandardNth3gt33))); + + JacPDstandardNth3phi = + kmadd(J13L,PDstandardNth1phi,kmadd(J23L,PDstandardNth2phi,kmul(J33L,PDstandardNth3phi))); + + JacPDstandardNth3Xt1 = + kmadd(J13L,PDstandardNth1Xt1,kmadd(J23L,PDstandardNth2Xt1,kmul(J33L,PDstandardNth3Xt1))); + + JacPDstandardNth3Xt2 = + kmadd(J13L,PDstandardNth1Xt2,kmadd(J23L,PDstandardNth2Xt2,kmul(J33L,PDstandardNth3Xt2))); + + JacPDstandardNth3Xt3 = + kmadd(J13L,PDstandardNth1Xt3,kmadd(J23L,PDstandardNth2Xt3,kmul(J33L,PDstandardNth3Xt3))); + + JacPDstandardNth11gt11 = + kmadd(dJ111L,PDstandardNth1gt11,kmadd(dJ211L,PDstandardNth2gt11,kmadd(dJ311L,PDstandardNth3gt11,kmadd(PDstandardNth11gt11,SQR(J11L),kmadd(PDstandardNth22gt11,SQR(J21L),kmadd(PDstandardNth33gt11,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11)),kmul(J21L,kmul(J31L,PDstandardNth23gt11))),ToReal(2)))))))); + + JacPDstandardNth11gt12 = + kmadd(dJ111L,PDstandardNth1gt12,kmadd(dJ211L,PDstandardNth2gt12,kmadd(dJ311L,PDstandardNth3gt12,kmadd(PDstandardNth11gt12,SQR(J11L),kmadd(PDstandardNth22gt12,SQR(J21L),kmadd(PDstandardNth33gt12,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12)),kmul(J21L,kmul(J31L,PDstandardNth23gt12))),ToReal(2)))))))); + + JacPDstandardNth11gt13 = + kmadd(dJ111L,PDstandardNth1gt13,kmadd(dJ211L,PDstandardNth2gt13,kmadd(dJ311L,PDstandardNth3gt13,kmadd(PDstandardNth11gt13,SQR(J11L),kmadd(PDstandardNth22gt13,SQR(J21L),kmadd(PDstandardNth33gt13,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13)),kmul(J21L,kmul(J31L,PDstandardNth23gt13))),ToReal(2)))))))); + + JacPDstandardNth11gt22 = + kmadd(dJ111L,PDstandardNth1gt22,kmadd(dJ211L,PDstandardNth2gt22,kmadd(dJ311L,PDstandardNth3gt22,kmadd(PDstandardNth11gt22,SQR(J11L),kmadd(PDstandardNth22gt22,SQR(J21L),kmadd(PDstandardNth33gt22,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22)),kmul(J21L,kmul(J31L,PDstandardNth23gt22))),ToReal(2)))))))); + + JacPDstandardNth11gt23 = + kmadd(dJ111L,PDstandardNth1gt23,kmadd(dJ211L,PDstandardNth2gt23,kmadd(dJ311L,PDstandardNth3gt23,kmadd(PDstandardNth11gt23,SQR(J11L),kmadd(PDstandardNth22gt23,SQR(J21L),kmadd(PDstandardNth33gt23,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23)),kmul(J21L,kmul(J31L,PDstandardNth23gt23))),ToReal(2)))))))); + + JacPDstandardNth11gt33 = + kmadd(dJ111L,PDstandardNth1gt33,kmadd(dJ211L,PDstandardNth2gt33,kmadd(dJ311L,PDstandardNth3gt33,kmadd(PDstandardNth11gt33,SQR(J11L),kmadd(PDstandardNth22gt33,SQR(J21L),kmadd(PDstandardNth33gt33,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33)),kmul(J21L,kmul(J31L,PDstandardNth23gt33))),ToReal(2)))))))); + + JacPDstandardNth11phi = + kmadd(dJ111L,PDstandardNth1phi,kmadd(dJ211L,PDstandardNth2phi,kmadd(dJ311L,PDstandardNth3phi,kmadd(PDstandardNth11phi,SQR(J11L),kmadd(PDstandardNth22phi,SQR(J21L),kmadd(PDstandardNth33phi,SQR(J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12phi,kmul(J31L,PDstandardNth13phi)),kmul(J21L,kmul(J31L,PDstandardNth23phi))),ToReal(2)))))))); + + JacPDstandardNth22gt11 = + kmadd(dJ122L,PDstandardNth1gt11,kmadd(dJ222L,PDstandardNth2gt11,kmadd(dJ322L,PDstandardNth3gt11,kmadd(PDstandardNth11gt11,SQR(J12L),kmadd(PDstandardNth22gt11,SQR(J22L),kmadd(PDstandardNth33gt11,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11)),kmul(J22L,kmul(J32L,PDstandardNth23gt11))),ToReal(2)))))))); + + JacPDstandardNth22gt12 = + kmadd(dJ122L,PDstandardNth1gt12,kmadd(dJ222L,PDstandardNth2gt12,kmadd(dJ322L,PDstandardNth3gt12,kmadd(PDstandardNth11gt12,SQR(J12L),kmadd(PDstandardNth22gt12,SQR(J22L),kmadd(PDstandardNth33gt12,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12)),kmul(J22L,kmul(J32L,PDstandardNth23gt12))),ToReal(2)))))))); + + JacPDstandardNth22gt13 = + kmadd(dJ122L,PDstandardNth1gt13,kmadd(dJ222L,PDstandardNth2gt13,kmadd(dJ322L,PDstandardNth3gt13,kmadd(PDstandardNth11gt13,SQR(J12L),kmadd(PDstandardNth22gt13,SQR(J22L),kmadd(PDstandardNth33gt13,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13)),kmul(J22L,kmul(J32L,PDstandardNth23gt13))),ToReal(2)))))))); + + JacPDstandardNth22gt22 = + kmadd(dJ122L,PDstandardNth1gt22,kmadd(dJ222L,PDstandardNth2gt22,kmadd(dJ322L,PDstandardNth3gt22,kmadd(PDstandardNth11gt22,SQR(J12L),kmadd(PDstandardNth22gt22,SQR(J22L),kmadd(PDstandardNth33gt22,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22)),kmul(J22L,kmul(J32L,PDstandardNth23gt22))),ToReal(2)))))))); + + JacPDstandardNth22gt23 = + kmadd(dJ122L,PDstandardNth1gt23,kmadd(dJ222L,PDstandardNth2gt23,kmadd(dJ322L,PDstandardNth3gt23,kmadd(PDstandardNth11gt23,SQR(J12L),kmadd(PDstandardNth22gt23,SQR(J22L),kmadd(PDstandardNth33gt23,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23)),kmul(J22L,kmul(J32L,PDstandardNth23gt23))),ToReal(2)))))))); + + JacPDstandardNth22gt33 = + kmadd(dJ122L,PDstandardNth1gt33,kmadd(dJ222L,PDstandardNth2gt33,kmadd(dJ322L,PDstandardNth3gt33,kmadd(PDstandardNth11gt33,SQR(J12L),kmadd(PDstandardNth22gt33,SQR(J22L),kmadd(PDstandardNth33gt33,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33)),kmul(J22L,kmul(J32L,PDstandardNth23gt33))),ToReal(2)))))))); + + JacPDstandardNth22phi = + kmadd(dJ122L,PDstandardNth1phi,kmadd(dJ222L,PDstandardNth2phi,kmadd(dJ322L,PDstandardNth3phi,kmadd(PDstandardNth11phi,SQR(J12L),kmadd(PDstandardNth22phi,SQR(J22L),kmadd(PDstandardNth33phi,SQR(J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12phi,kmul(J32L,PDstandardNth13phi)),kmul(J22L,kmul(J32L,PDstandardNth23phi))),ToReal(2)))))))); + + JacPDstandardNth33gt11 = + kmadd(dJ133L,PDstandardNth1gt11,kmadd(dJ233L,PDstandardNth2gt11,kmadd(dJ333L,PDstandardNth3gt11,kmadd(PDstandardNth11gt11,SQR(J13L),kmadd(PDstandardNth22gt11,SQR(J23L),kmadd(PDstandardNth33gt11,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmul(J23L,kmul(J33L,PDstandardNth23gt11))),ToReal(2)))))))); + + JacPDstandardNth33gt12 = + kmadd(dJ133L,PDstandardNth1gt12,kmadd(dJ233L,PDstandardNth2gt12,kmadd(dJ333L,PDstandardNth3gt12,kmadd(PDstandardNth11gt12,SQR(J13L),kmadd(PDstandardNth22gt12,SQR(J23L),kmadd(PDstandardNth33gt12,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmul(J23L,kmul(J33L,PDstandardNth23gt12))),ToReal(2)))))))); + + JacPDstandardNth33gt13 = + kmadd(dJ133L,PDstandardNth1gt13,kmadd(dJ233L,PDstandardNth2gt13,kmadd(dJ333L,PDstandardNth3gt13,kmadd(PDstandardNth11gt13,SQR(J13L),kmadd(PDstandardNth22gt13,SQR(J23L),kmadd(PDstandardNth33gt13,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmul(J23L,kmul(J33L,PDstandardNth23gt13))),ToReal(2)))))))); + + JacPDstandardNth33gt22 = + kmadd(dJ133L,PDstandardNth1gt22,kmadd(dJ233L,PDstandardNth2gt22,kmadd(dJ333L,PDstandardNth3gt22,kmadd(PDstandardNth11gt22,SQR(J13L),kmadd(PDstandardNth22gt22,SQR(J23L),kmadd(PDstandardNth33gt22,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmul(J23L,kmul(J33L,PDstandardNth23gt22))),ToReal(2)))))))); + + JacPDstandardNth33gt23 = + kmadd(dJ133L,PDstandardNth1gt23,kmadd(dJ233L,PDstandardNth2gt23,kmadd(dJ333L,PDstandardNth3gt23,kmadd(PDstandardNth11gt23,SQR(J13L),kmadd(PDstandardNth22gt23,SQR(J23L),kmadd(PDstandardNth33gt23,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmul(J23L,kmul(J33L,PDstandardNth23gt23))),ToReal(2)))))))); + + JacPDstandardNth33gt33 = + kmadd(dJ133L,PDstandardNth1gt33,kmadd(dJ233L,PDstandardNth2gt33,kmadd(dJ333L,PDstandardNth3gt33,kmadd(PDstandardNth11gt33,SQR(J13L),kmadd(PDstandardNth22gt33,SQR(J23L),kmadd(PDstandardNth33gt33,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmul(J23L,kmul(J33L,PDstandardNth23gt33))),ToReal(2)))))))); + + JacPDstandardNth33phi = + kmadd(dJ133L,PDstandardNth1phi,kmadd(dJ233L,PDstandardNth2phi,kmadd(dJ333L,PDstandardNth3phi,kmadd(PDstandardNth11phi,SQR(J13L),kmadd(PDstandardNth22phi,SQR(J23L),kmadd(PDstandardNth33phi,SQR(J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12phi,kmul(J33L,PDstandardNth13phi)),kmul(J23L,kmul(J33L,PDstandardNth23phi))),ToReal(2)))))))); + + JacPDstandardNth12gt11 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt11,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11)),kmadd(dJ112L,PDstandardNth1gt11,kmadd(J22L,kmadd(J21L,PDstandardNth22gt11,kmul(J31L,PDstandardNth23gt11)),kmadd(dJ212L,PDstandardNth2gt11,kmadd(J32L,kmadd(J21L,PDstandardNth23gt11,kmul(J31L,PDstandardNth33gt11)),kmul(dJ312L,PDstandardNth3gt11))))))); + + JacPDstandardNth12gt12 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt12,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12)),kmadd(dJ112L,PDstandardNth1gt12,kmadd(J22L,kmadd(J21L,PDstandardNth22gt12,kmul(J31L,PDstandardNth23gt12)),kmadd(dJ212L,PDstandardNth2gt12,kmadd(J32L,kmadd(J21L,PDstandardNth23gt12,kmul(J31L,PDstandardNth33gt12)),kmul(dJ312L,PDstandardNth3gt12))))))); + + JacPDstandardNth12gt13 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt13,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13)),kmadd(dJ112L,PDstandardNth1gt13,kmadd(J22L,kmadd(J21L,PDstandardNth22gt13,kmul(J31L,PDstandardNth23gt13)),kmadd(dJ212L,PDstandardNth2gt13,kmadd(J32L,kmadd(J21L,PDstandardNth23gt13,kmul(J31L,PDstandardNth33gt13)),kmul(dJ312L,PDstandardNth3gt13))))))); + + JacPDstandardNth12gt22 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt22,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22)),kmadd(dJ112L,PDstandardNth1gt22,kmadd(J22L,kmadd(J21L,PDstandardNth22gt22,kmul(J31L,PDstandardNth23gt22)),kmadd(dJ212L,PDstandardNth2gt22,kmadd(J32L,kmadd(J21L,PDstandardNth23gt22,kmul(J31L,PDstandardNth33gt22)),kmul(dJ312L,PDstandardNth3gt22))))))); + + JacPDstandardNth12gt23 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt23,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23)),kmadd(dJ112L,PDstandardNth1gt23,kmadd(J22L,kmadd(J21L,PDstandardNth22gt23,kmul(J31L,PDstandardNth23gt23)),kmadd(dJ212L,PDstandardNth2gt23,kmadd(J32L,kmadd(J21L,PDstandardNth23gt23,kmul(J31L,PDstandardNth33gt23)),kmul(dJ312L,PDstandardNth3gt23))))))); + + JacPDstandardNth12gt33 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt33,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33)),kmadd(dJ112L,PDstandardNth1gt33,kmadd(J22L,kmadd(J21L,PDstandardNth22gt33,kmul(J31L,PDstandardNth23gt33)),kmadd(dJ212L,PDstandardNth2gt33,kmadd(J32L,kmadd(J21L,PDstandardNth23gt33,kmul(J31L,PDstandardNth33gt33)),kmul(dJ312L,PDstandardNth3gt33))))))); + + JacPDstandardNth12phi = + kmadd(J12L,kmadd(J11L,PDstandardNth11phi,kmadd(J21L,PDstandardNth12phi,kmul(J31L,PDstandardNth13phi))),kmadd(J11L,kmadd(J22L,PDstandardNth12phi,kmul(J32L,PDstandardNth13phi)),kmadd(dJ112L,PDstandardNth1phi,kmadd(J22L,kmadd(J21L,PDstandardNth22phi,kmul(J31L,PDstandardNth23phi)),kmadd(dJ212L,PDstandardNth2phi,kmadd(J32L,kmadd(J21L,PDstandardNth23phi,kmul(J31L,PDstandardNth33phi)),kmul(dJ312L,PDstandardNth3phi))))))); + + JacPDstandardNth13gt11 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt11,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmadd(dJ113L,PDstandardNth1gt11,kmadd(J23L,kmadd(J21L,PDstandardNth22gt11,kmul(J31L,PDstandardNth23gt11)),kmadd(dJ213L,PDstandardNth2gt11,kmadd(J33L,kmadd(J21L,PDstandardNth23gt11,kmul(J31L,PDstandardNth33gt11)),kmul(dJ313L,PDstandardNth3gt11))))))); + + JacPDstandardNth13gt12 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt12,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmadd(dJ113L,PDstandardNth1gt12,kmadd(J23L,kmadd(J21L,PDstandardNth22gt12,kmul(J31L,PDstandardNth23gt12)),kmadd(dJ213L,PDstandardNth2gt12,kmadd(J33L,kmadd(J21L,PDstandardNth23gt12,kmul(J31L,PDstandardNth33gt12)),kmul(dJ313L,PDstandardNth3gt12))))))); + + JacPDstandardNth13gt13 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt13,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmadd(dJ113L,PDstandardNth1gt13,kmadd(J23L,kmadd(J21L,PDstandardNth22gt13,kmul(J31L,PDstandardNth23gt13)),kmadd(dJ213L,PDstandardNth2gt13,kmadd(J33L,kmadd(J21L,PDstandardNth23gt13,kmul(J31L,PDstandardNth33gt13)),kmul(dJ313L,PDstandardNth3gt13))))))); + + JacPDstandardNth13gt22 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt22,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmadd(dJ113L,PDstandardNth1gt22,kmadd(J23L,kmadd(J21L,PDstandardNth22gt22,kmul(J31L,PDstandardNth23gt22)),kmadd(dJ213L,PDstandardNth2gt22,kmadd(J33L,kmadd(J21L,PDstandardNth23gt22,kmul(J31L,PDstandardNth33gt22)),kmul(dJ313L,PDstandardNth3gt22))))))); + + JacPDstandardNth13gt23 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt23,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmadd(dJ113L,PDstandardNth1gt23,kmadd(J23L,kmadd(J21L,PDstandardNth22gt23,kmul(J31L,PDstandardNth23gt23)),kmadd(dJ213L,PDstandardNth2gt23,kmadd(J33L,kmadd(J21L,PDstandardNth23gt23,kmul(J31L,PDstandardNth33gt23)),kmul(dJ313L,PDstandardNth3gt23))))))); + + JacPDstandardNth13gt33 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt33,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmadd(dJ113L,PDstandardNth1gt33,kmadd(J23L,kmadd(J21L,PDstandardNth22gt33,kmul(J31L,PDstandardNth23gt33)),kmadd(dJ213L,PDstandardNth2gt33,kmadd(J33L,kmadd(J21L,PDstandardNth23gt33,kmul(J31L,PDstandardNth33gt33)),kmul(dJ313L,PDstandardNth3gt33))))))); + + JacPDstandardNth13phi = + kmadd(J13L,kmadd(J11L,PDstandardNth11phi,kmadd(J21L,PDstandardNth12phi,kmul(J31L,PDstandardNth13phi))),kmadd(J11L,kmadd(J23L,PDstandardNth12phi,kmul(J33L,PDstandardNth13phi)),kmadd(dJ113L,PDstandardNth1phi,kmadd(J23L,kmadd(J21L,PDstandardNth22phi,kmul(J31L,PDstandardNth23phi)),kmadd(dJ213L,PDstandardNth2phi,kmadd(J33L,kmadd(J21L,PDstandardNth23phi,kmul(J31L,PDstandardNth33phi)),kmul(dJ313L,PDstandardNth3phi))))))); + + JacPDstandardNth21gt11 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt11,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11)),kmadd(dJ112L,PDstandardNth1gt11,kmadd(J22L,kmadd(J21L,PDstandardNth22gt11,kmul(J31L,PDstandardNth23gt11)),kmadd(dJ212L,PDstandardNth2gt11,kmadd(J32L,kmadd(J21L,PDstandardNth23gt11,kmul(J31L,PDstandardNth33gt11)),kmul(dJ312L,PDstandardNth3gt11))))))); + + JacPDstandardNth21gt12 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt12,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12)),kmadd(dJ112L,PDstandardNth1gt12,kmadd(J22L,kmadd(J21L,PDstandardNth22gt12,kmul(J31L,PDstandardNth23gt12)),kmadd(dJ212L,PDstandardNth2gt12,kmadd(J32L,kmadd(J21L,PDstandardNth23gt12,kmul(J31L,PDstandardNth33gt12)),kmul(dJ312L,PDstandardNth3gt12))))))); + + JacPDstandardNth21gt13 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt13,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13)),kmadd(dJ112L,PDstandardNth1gt13,kmadd(J22L,kmadd(J21L,PDstandardNth22gt13,kmul(J31L,PDstandardNth23gt13)),kmadd(dJ212L,PDstandardNth2gt13,kmadd(J32L,kmadd(J21L,PDstandardNth23gt13,kmul(J31L,PDstandardNth33gt13)),kmul(dJ312L,PDstandardNth3gt13))))))); + + JacPDstandardNth21gt22 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt22,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22)),kmadd(dJ112L,PDstandardNth1gt22,kmadd(J22L,kmadd(J21L,PDstandardNth22gt22,kmul(J31L,PDstandardNth23gt22)),kmadd(dJ212L,PDstandardNth2gt22,kmadd(J32L,kmadd(J21L,PDstandardNth23gt22,kmul(J31L,PDstandardNth33gt22)),kmul(dJ312L,PDstandardNth3gt22))))))); + + JacPDstandardNth21gt23 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt23,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23)),kmadd(dJ112L,PDstandardNth1gt23,kmadd(J22L,kmadd(J21L,PDstandardNth22gt23,kmul(J31L,PDstandardNth23gt23)),kmadd(dJ212L,PDstandardNth2gt23,kmadd(J32L,kmadd(J21L,PDstandardNth23gt23,kmul(J31L,PDstandardNth33gt23)),kmul(dJ312L,PDstandardNth3gt23))))))); + + JacPDstandardNth21gt33 = + kmadd(J12L,kmadd(J11L,PDstandardNth11gt33,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33))),kmadd(J11L,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33)),kmadd(dJ112L,PDstandardNth1gt33,kmadd(J22L,kmadd(J21L,PDstandardNth22gt33,kmul(J31L,PDstandardNth23gt33)),kmadd(dJ212L,PDstandardNth2gt33,kmadd(J32L,kmadd(J21L,PDstandardNth23gt33,kmul(J31L,PDstandardNth33gt33)),kmul(dJ312L,PDstandardNth3gt33))))))); + + JacPDstandardNth23gt11 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt11,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmadd(dJ123L,PDstandardNth1gt11,kmadd(J23L,kmadd(J22L,PDstandardNth22gt11,kmul(J32L,PDstandardNth23gt11)),kmadd(dJ223L,PDstandardNth2gt11,kmadd(J33L,kmadd(J22L,PDstandardNth23gt11,kmul(J32L,PDstandardNth33gt11)),kmul(dJ323L,PDstandardNth3gt11))))))); + + JacPDstandardNth23gt12 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt12,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmadd(dJ123L,PDstandardNth1gt12,kmadd(J23L,kmadd(J22L,PDstandardNth22gt12,kmul(J32L,PDstandardNth23gt12)),kmadd(dJ223L,PDstandardNth2gt12,kmadd(J33L,kmadd(J22L,PDstandardNth23gt12,kmul(J32L,PDstandardNth33gt12)),kmul(dJ323L,PDstandardNth3gt12))))))); + + JacPDstandardNth23gt13 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt13,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmadd(dJ123L,PDstandardNth1gt13,kmadd(J23L,kmadd(J22L,PDstandardNth22gt13,kmul(J32L,PDstandardNth23gt13)),kmadd(dJ223L,PDstandardNth2gt13,kmadd(J33L,kmadd(J22L,PDstandardNth23gt13,kmul(J32L,PDstandardNth33gt13)),kmul(dJ323L,PDstandardNth3gt13))))))); + + JacPDstandardNth23gt22 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt22,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmadd(dJ123L,PDstandardNth1gt22,kmadd(J23L,kmadd(J22L,PDstandardNth22gt22,kmul(J32L,PDstandardNth23gt22)),kmadd(dJ223L,PDstandardNth2gt22,kmadd(J33L,kmadd(J22L,PDstandardNth23gt22,kmul(J32L,PDstandardNth33gt22)),kmul(dJ323L,PDstandardNth3gt22))))))); + + JacPDstandardNth23gt23 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt23,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmadd(dJ123L,PDstandardNth1gt23,kmadd(J23L,kmadd(J22L,PDstandardNth22gt23,kmul(J32L,PDstandardNth23gt23)),kmadd(dJ223L,PDstandardNth2gt23,kmadd(J33L,kmadd(J22L,PDstandardNth23gt23,kmul(J32L,PDstandardNth33gt23)),kmul(dJ323L,PDstandardNth3gt23))))))); + + JacPDstandardNth23gt33 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt33,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmadd(dJ123L,PDstandardNth1gt33,kmadd(J23L,kmadd(J22L,PDstandardNth22gt33,kmul(J32L,PDstandardNth23gt33)),kmadd(dJ223L,PDstandardNth2gt33,kmadd(J33L,kmadd(J22L,PDstandardNth23gt33,kmul(J32L,PDstandardNth33gt33)),kmul(dJ323L,PDstandardNth3gt33))))))); + + JacPDstandardNth23phi = + kmadd(J13L,kmadd(J12L,PDstandardNth11phi,kmadd(J22L,PDstandardNth12phi,kmul(J32L,PDstandardNth13phi))),kmadd(J12L,kmadd(J23L,PDstandardNth12phi,kmul(J33L,PDstandardNth13phi)),kmadd(dJ123L,PDstandardNth1phi,kmadd(J23L,kmadd(J22L,PDstandardNth22phi,kmul(J32L,PDstandardNth23phi)),kmadd(dJ223L,PDstandardNth2phi,kmadd(J33L,kmadd(J22L,PDstandardNth23phi,kmul(J32L,PDstandardNth33phi)),kmul(dJ323L,PDstandardNth3phi))))))); + + JacPDstandardNth31gt11 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt11,kmadd(J21L,PDstandardNth12gt11,kmul(J31L,PDstandardNth13gt11))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmadd(dJ113L,PDstandardNth1gt11,kmadd(J23L,kmadd(J21L,PDstandardNth22gt11,kmul(J31L,PDstandardNth23gt11)),kmadd(dJ213L,PDstandardNth2gt11,kmadd(J33L,kmadd(J21L,PDstandardNth23gt11,kmul(J31L,PDstandardNth33gt11)),kmul(dJ313L,PDstandardNth3gt11))))))); + + JacPDstandardNth31gt12 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt12,kmadd(J21L,PDstandardNth12gt12,kmul(J31L,PDstandardNth13gt12))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmadd(dJ113L,PDstandardNth1gt12,kmadd(J23L,kmadd(J21L,PDstandardNth22gt12,kmul(J31L,PDstandardNth23gt12)),kmadd(dJ213L,PDstandardNth2gt12,kmadd(J33L,kmadd(J21L,PDstandardNth23gt12,kmul(J31L,PDstandardNth33gt12)),kmul(dJ313L,PDstandardNth3gt12))))))); + + JacPDstandardNth31gt13 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt13,kmadd(J21L,PDstandardNth12gt13,kmul(J31L,PDstandardNth13gt13))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmadd(dJ113L,PDstandardNth1gt13,kmadd(J23L,kmadd(J21L,PDstandardNth22gt13,kmul(J31L,PDstandardNth23gt13)),kmadd(dJ213L,PDstandardNth2gt13,kmadd(J33L,kmadd(J21L,PDstandardNth23gt13,kmul(J31L,PDstandardNth33gt13)),kmul(dJ313L,PDstandardNth3gt13))))))); + + JacPDstandardNth31gt22 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt22,kmadd(J21L,PDstandardNth12gt22,kmul(J31L,PDstandardNth13gt22))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmadd(dJ113L,PDstandardNth1gt22,kmadd(J23L,kmadd(J21L,PDstandardNth22gt22,kmul(J31L,PDstandardNth23gt22)),kmadd(dJ213L,PDstandardNth2gt22,kmadd(J33L,kmadd(J21L,PDstandardNth23gt22,kmul(J31L,PDstandardNth33gt22)),kmul(dJ313L,PDstandardNth3gt22))))))); + + JacPDstandardNth31gt23 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt23,kmadd(J21L,PDstandardNth12gt23,kmul(J31L,PDstandardNth13gt23))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmadd(dJ113L,PDstandardNth1gt23,kmadd(J23L,kmadd(J21L,PDstandardNth22gt23,kmul(J31L,PDstandardNth23gt23)),kmadd(dJ213L,PDstandardNth2gt23,kmadd(J33L,kmadd(J21L,PDstandardNth23gt23,kmul(J31L,PDstandardNth33gt23)),kmul(dJ313L,PDstandardNth3gt23))))))); + + JacPDstandardNth31gt33 = + kmadd(J13L,kmadd(J11L,PDstandardNth11gt33,kmadd(J21L,PDstandardNth12gt33,kmul(J31L,PDstandardNth13gt33))),kmadd(J11L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmadd(dJ113L,PDstandardNth1gt33,kmadd(J23L,kmadd(J21L,PDstandardNth22gt33,kmul(J31L,PDstandardNth23gt33)),kmadd(dJ213L,PDstandardNth2gt33,kmadd(J33L,kmadd(J21L,PDstandardNth23gt33,kmul(J31L,PDstandardNth33gt33)),kmul(dJ313L,PDstandardNth3gt33))))))); + + JacPDstandardNth32gt11 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt11,kmadd(J22L,PDstandardNth12gt11,kmul(J32L,PDstandardNth13gt11))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt11,kmul(J33L,PDstandardNth13gt11)),kmadd(dJ123L,PDstandardNth1gt11,kmadd(J23L,kmadd(J22L,PDstandardNth22gt11,kmul(J32L,PDstandardNth23gt11)),kmadd(dJ223L,PDstandardNth2gt11,kmadd(J33L,kmadd(J22L,PDstandardNth23gt11,kmul(J32L,PDstandardNth33gt11)),kmul(dJ323L,PDstandardNth3gt11))))))); + + JacPDstandardNth32gt12 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt12,kmadd(J22L,PDstandardNth12gt12,kmul(J32L,PDstandardNth13gt12))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt12,kmul(J33L,PDstandardNth13gt12)),kmadd(dJ123L,PDstandardNth1gt12,kmadd(J23L,kmadd(J22L,PDstandardNth22gt12,kmul(J32L,PDstandardNth23gt12)),kmadd(dJ223L,PDstandardNth2gt12,kmadd(J33L,kmadd(J22L,PDstandardNth23gt12,kmul(J32L,PDstandardNth33gt12)),kmul(dJ323L,PDstandardNth3gt12))))))); + + JacPDstandardNth32gt13 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt13,kmadd(J22L,PDstandardNth12gt13,kmul(J32L,PDstandardNth13gt13))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt13,kmul(J33L,PDstandardNth13gt13)),kmadd(dJ123L,PDstandardNth1gt13,kmadd(J23L,kmadd(J22L,PDstandardNth22gt13,kmul(J32L,PDstandardNth23gt13)),kmadd(dJ223L,PDstandardNth2gt13,kmadd(J33L,kmadd(J22L,PDstandardNth23gt13,kmul(J32L,PDstandardNth33gt13)),kmul(dJ323L,PDstandardNth3gt13))))))); + + JacPDstandardNth32gt22 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt22,kmadd(J22L,PDstandardNth12gt22,kmul(J32L,PDstandardNth13gt22))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt22,kmul(J33L,PDstandardNth13gt22)),kmadd(dJ123L,PDstandardNth1gt22,kmadd(J23L,kmadd(J22L,PDstandardNth22gt22,kmul(J32L,PDstandardNth23gt22)),kmadd(dJ223L,PDstandardNth2gt22,kmadd(J33L,kmadd(J22L,PDstandardNth23gt22,kmul(J32L,PDstandardNth33gt22)),kmul(dJ323L,PDstandardNth3gt22))))))); + + JacPDstandardNth32gt23 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt23,kmadd(J22L,PDstandardNth12gt23,kmul(J32L,PDstandardNth13gt23))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt23,kmul(J33L,PDstandardNth13gt23)),kmadd(dJ123L,PDstandardNth1gt23,kmadd(J23L,kmadd(J22L,PDstandardNth22gt23,kmul(J32L,PDstandardNth23gt23)),kmadd(dJ223L,PDstandardNth2gt23,kmadd(J33L,kmadd(J22L,PDstandardNth23gt23,kmul(J32L,PDstandardNth33gt23)),kmul(dJ323L,PDstandardNth3gt23))))))); + + JacPDstandardNth32gt33 = + kmadd(J13L,kmadd(J12L,PDstandardNth11gt33,kmadd(J22L,PDstandardNth12gt33,kmul(J32L,PDstandardNth13gt33))),kmadd(J12L,kmadd(J23L,PDstandardNth12gt33,kmul(J33L,PDstandardNth13gt33)),kmadd(dJ123L,PDstandardNth1gt33,kmadd(J23L,kmadd(J22L,PDstandardNth22gt33,kmul(J32L,PDstandardNth23gt33)),kmadd(dJ223L,PDstandardNth2gt33,kmadd(J33L,kmadd(J22L,PDstandardNth23gt33,kmul(J32L,PDstandardNth33gt33)),kmul(dJ323L,PDstandardNth3gt33))))))); + } + else + { + JacPDstandardNth1gt11 = PDstandardNth1gt11; + + JacPDstandardNth1gt12 = PDstandardNth1gt12; + + JacPDstandardNth1gt13 = PDstandardNth1gt13; + + JacPDstandardNth1gt22 = PDstandardNth1gt22; + + JacPDstandardNth1gt23 = PDstandardNth1gt23; + + JacPDstandardNth1gt33 = PDstandardNth1gt33; + + JacPDstandardNth1phi = PDstandardNth1phi; + + JacPDstandardNth1Xt1 = PDstandardNth1Xt1; + + JacPDstandardNth1Xt2 = PDstandardNth1Xt2; + + JacPDstandardNth1Xt3 = PDstandardNth1Xt3; + + JacPDstandardNth2gt11 = PDstandardNth2gt11; + + JacPDstandardNth2gt12 = PDstandardNth2gt12; + + JacPDstandardNth2gt13 = PDstandardNth2gt13; + + JacPDstandardNth2gt22 = PDstandardNth2gt22; + + JacPDstandardNth2gt23 = PDstandardNth2gt23; + + JacPDstandardNth2gt33 = PDstandardNth2gt33; + + JacPDstandardNth2phi = PDstandardNth2phi; + + JacPDstandardNth2Xt1 = PDstandardNth2Xt1; + + JacPDstandardNth2Xt2 = PDstandardNth2Xt2; + + JacPDstandardNth2Xt3 = PDstandardNth2Xt3; + + JacPDstandardNth3gt11 = PDstandardNth3gt11; + + JacPDstandardNth3gt12 = PDstandardNth3gt12; + + JacPDstandardNth3gt13 = PDstandardNth3gt13; + + JacPDstandardNth3gt22 = PDstandardNth3gt22; + + JacPDstandardNth3gt23 = PDstandardNth3gt23; + + JacPDstandardNth3gt33 = PDstandardNth3gt33; + + JacPDstandardNth3phi = PDstandardNth3phi; + + JacPDstandardNth3Xt1 = PDstandardNth3Xt1; + + JacPDstandardNth3Xt2 = PDstandardNth3Xt2; + + JacPDstandardNth3Xt3 = PDstandardNth3Xt3; + + JacPDstandardNth11gt11 = PDstandardNth11gt11; + + JacPDstandardNth11gt12 = PDstandardNth11gt12; + + JacPDstandardNth11gt13 = PDstandardNth11gt13; + + JacPDstandardNth11gt22 = PDstandardNth11gt22; + + JacPDstandardNth11gt23 = PDstandardNth11gt23; + + JacPDstandardNth11gt33 = PDstandardNth11gt33; + + JacPDstandardNth11phi = PDstandardNth11phi; + + JacPDstandardNth22gt11 = PDstandardNth22gt11; + + JacPDstandardNth22gt12 = PDstandardNth22gt12; + + JacPDstandardNth22gt13 = PDstandardNth22gt13; + + JacPDstandardNth22gt22 = PDstandardNth22gt22; + + JacPDstandardNth22gt23 = PDstandardNth22gt23; + + JacPDstandardNth22gt33 = PDstandardNth22gt33; + + JacPDstandardNth22phi = PDstandardNth22phi; + + JacPDstandardNth33gt11 = PDstandardNth33gt11; + + JacPDstandardNth33gt12 = PDstandardNth33gt12; + + JacPDstandardNth33gt13 = PDstandardNth33gt13; + + JacPDstandardNth33gt22 = PDstandardNth33gt22; + + JacPDstandardNth33gt23 = PDstandardNth33gt23; + + JacPDstandardNth33gt33 = PDstandardNth33gt33; + + JacPDstandardNth33phi = PDstandardNth33phi; + + JacPDstandardNth12gt11 = PDstandardNth12gt11; + + JacPDstandardNth12gt12 = PDstandardNth12gt12; + + JacPDstandardNth12gt13 = PDstandardNth12gt13; + + JacPDstandardNth12gt22 = PDstandardNth12gt22; + + JacPDstandardNth12gt23 = PDstandardNth12gt23; + + JacPDstandardNth12gt33 = PDstandardNth12gt33; + + JacPDstandardNth12phi = PDstandardNth12phi; + + JacPDstandardNth13gt11 = PDstandardNth13gt11; + + JacPDstandardNth13gt12 = PDstandardNth13gt12; + + JacPDstandardNth13gt13 = PDstandardNth13gt13; + + JacPDstandardNth13gt22 = PDstandardNth13gt22; + + JacPDstandardNth13gt23 = PDstandardNth13gt23; + + JacPDstandardNth13gt33 = PDstandardNth13gt33; + + JacPDstandardNth13phi = PDstandardNth13phi; + + JacPDstandardNth21gt11 = PDstandardNth12gt11; + + JacPDstandardNth21gt12 = PDstandardNth12gt12; + + JacPDstandardNth21gt13 = PDstandardNth12gt13; + + JacPDstandardNth21gt22 = PDstandardNth12gt22; + + JacPDstandardNth21gt23 = PDstandardNth12gt23; + + JacPDstandardNth21gt33 = PDstandardNth12gt33; + + JacPDstandardNth23gt11 = PDstandardNth23gt11; + + JacPDstandardNth23gt12 = PDstandardNth23gt12; + + JacPDstandardNth23gt13 = PDstandardNth23gt13; + + JacPDstandardNth23gt22 = PDstandardNth23gt22; + + JacPDstandardNth23gt23 = PDstandardNth23gt23; + + JacPDstandardNth23gt33 = PDstandardNth23gt33; + + JacPDstandardNth23phi = PDstandardNth23phi; + + JacPDstandardNth31gt11 = PDstandardNth13gt11; + + JacPDstandardNth31gt12 = PDstandardNth13gt12; + + JacPDstandardNth31gt13 = PDstandardNth13gt13; + + JacPDstandardNth31gt22 = PDstandardNth13gt22; + + JacPDstandardNth31gt23 = PDstandardNth13gt23; + + JacPDstandardNth31gt33 = PDstandardNth13gt33; + + JacPDstandardNth32gt11 = PDstandardNth23gt11; + + JacPDstandardNth32gt12 = PDstandardNth23gt12; + + JacPDstandardNth32gt13 = PDstandardNth23gt13; + + JacPDstandardNth32gt22 = PDstandardNth23gt22; + + JacPDstandardNth32gt23 = PDstandardNth23gt23; + + JacPDstandardNth32gt33 = PDstandardNth23gt33; + } + CCTK_REAL_VEC detgt = ToReal(1); CCTK_REAL_VEC gtu11 = kmul(INV(detgt),kmsub(gt22L,gt33L,SQR(gt23L))); @@ -258,50 +1262,50 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC gtu33 = kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); - CCTK_REAL_VEC Gtl111 = kmul(PDstandardNth1gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl111 = kmul(JacPDstandardNth1gt11,ToReal(0.5)); - CCTK_REAL_VEC Gtl112 = kmul(PDstandardNth2gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl112 = kmul(JacPDstandardNth2gt11,ToReal(0.5)); - CCTK_REAL_VEC Gtl113 = kmul(PDstandardNth3gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl113 = kmul(JacPDstandardNth3gt11,ToReal(0.5)); CCTK_REAL_VEC Gtl122 = - kmadd(PDstandardNth1gt22,ToReal(-0.5),PDstandardNth2gt12); + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); CCTK_REAL_VEC Gtl123 = - kmul(kadd(PDstandardNth2gt13,ksub(PDstandardNth3gt12,PDstandardNth1gt23)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); CCTK_REAL_VEC Gtl133 = - kmadd(PDstandardNth1gt33,ToReal(-0.5),PDstandardNth3gt13); + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); CCTK_REAL_VEC Gtl211 = - kmadd(PDstandardNth2gt11,ToReal(-0.5),PDstandardNth1gt12); + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); - CCTK_REAL_VEC Gtl212 = kmul(PDstandardNth1gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl212 = kmul(JacPDstandardNth1gt22,ToReal(0.5)); CCTK_REAL_VEC Gtl213 = - kmul(kadd(PDstandardNth1gt23,ksub(PDstandardNth3gt12,PDstandardNth2gt13)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); - CCTK_REAL_VEC Gtl222 = kmul(PDstandardNth2gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl222 = kmul(JacPDstandardNth2gt22,ToReal(0.5)); - CCTK_REAL_VEC Gtl223 = kmul(PDstandardNth3gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl223 = kmul(JacPDstandardNth3gt22,ToReal(0.5)); CCTK_REAL_VEC Gtl233 = - kmadd(PDstandardNth2gt33,ToReal(-0.5),PDstandardNth3gt23); + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); CCTK_REAL_VEC Gtl311 = - kmadd(PDstandardNth3gt11,ToReal(-0.5),PDstandardNth1gt13); + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); CCTK_REAL_VEC Gtl312 = - kmul(kadd(PDstandardNth1gt23,ksub(PDstandardNth2gt13,PDstandardNth3gt12)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); - CCTK_REAL_VEC Gtl313 = kmul(PDstandardNth1gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl313 = kmul(JacPDstandardNth1gt33,ToReal(0.5)); CCTK_REAL_VEC Gtl322 = - kmadd(PDstandardNth3gt22,ToReal(-0.5),PDstandardNth2gt23); + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); - CCTK_REAL_VEC Gtl323 = kmul(PDstandardNth2gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl323 = kmul(JacPDstandardNth2gt33,ToReal(0.5)); - CCTK_REAL_VEC Gtl333 = kmul(PDstandardNth3gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl333 = kmul(JacPDstandardNth3gt33,ToReal(0.5)); CCTK_REAL_VEC Gtlu111 = kmadd(Gtl111,gtu11,kmadd(Gtl112,gtu12,kmul(Gtl113,gtu13))); @@ -448,52 +1452,52 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); CCTK_REAL_VEC Rt11 = - kmul(ToReal(0.5),kmadd(gtu12,kmul(PDstandardNth12gt11,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt11,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt11,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt11,knmsub(gtu22,PDstandardNth22gt11,knmsub(gtu33,PDstandardNth33gt11,kmadd(kmadd(Gt211,Gtlu211,kmadd(Gt212,Gtlu212,kmadd(Gt213,Gtlu213,kmadd(Gt311,Gtlu311,kmadd(Gt312,Gtlu312,kmadd(Gt313,Gtlu313,kmul(gt11L,PDstandardNth1Xt1))))))),ToReal(2),kmadd(gt12L,kmul(PDstandardNth1Xt2,ToReal(2)),kmadd(gt13L,kmul(PDstandardNth1Xt3,ToReal(2)),kmadd(Gtl111,kmul(Xtn1,ToReal(2)),kmadd(Gtl112,kmul(Xtn2,ToReal(2)),kmadd(Gtl113,kmul(Xtn3,ToReal(2)),kmadd(kmadd(Gt211,Gtlu121,kmadd(Gt212,Gtlu122,kmadd(Gt213,Gtlu123,kmadd(Gt311,Gtlu131,kmadd(Gt312,Gtlu132,kmul(Gt313,Gtlu133)))))),ToReal(4),kmul(kmadd(Gt111,Gtlu111,kmadd(Gt112,Gtlu112,kmul(Gt113,Gtlu113))),ToReal(6)))))))))))))))); + kmul(ToReal(0.5),knmsub(gtu11,JacPDstandardNth11gt11,knmsub(gtu22,JacPDstandardNth22gt11,knmsub(gtu33,JacPDstandardNth33gt11,knmsub(gtu12,kadd(JacPDstandardNth21gt11,JacPDstandardNth12gt11),knmsub(gtu13,kadd(JacPDstandardNth31gt11,JacPDstandardNth13gt11),knmsub(gtu23,kadd(JacPDstandardNth32gt11,JacPDstandardNth23gt11),kmadd(kmadd(Gt211,Gtlu211,kmadd(Gt212,Gtlu212,kmadd(Gt213,Gtlu213,kmadd(Gt311,Gtlu311,kmadd(Gt312,Gtlu312,kmadd(Gt313,Gtlu313,kmul(gt11L,JacPDstandardNth1Xt1))))))),ToReal(2),kmadd(gt12L,kmul(JacPDstandardNth1Xt2,ToReal(2)),kmadd(gt13L,kmul(JacPDstandardNth1Xt3,ToReal(2)),kmadd(Gtl111,kmul(Xtn1,ToReal(2)),kmadd(Gtl112,kmul(Xtn2,ToReal(2)),kmadd(Gtl113,kmul(Xtn3,ToReal(2)),kmadd(kmadd(Gt211,Gtlu121,kmadd(Gt212,Gtlu122,kmadd(Gt213,Gtlu123,kmadd(Gt311,Gtlu131,kmadd(Gt312,Gtlu132,kmul(Gt313,Gtlu133)))))),ToReal(4),kmul(kmadd(Gt111,Gtlu111,kmadd(Gt112,Gtlu112,kmul(Gt113,Gtlu113))),ToReal(6)))))))))))))))); CCTK_REAL_VEC Rt12 = - kmul(ToReal(0.5),kmadd(gt12L,PDstandardNth1Xt1,kmadd(gt22L,PDstandardNth1Xt2,kmadd(gt23L,PDstandardNth1Xt3,kmadd(gt11L,PDstandardNth2Xt1,kmadd(gt12L,PDstandardNth2Xt2,kmadd(gt13L,PDstandardNth2Xt3,kmadd(Gtl112,Xtn1,kmadd(Gtl211,Xtn1,kmadd(Gtl122,Xtn2,kmadd(Gtl212,Xtn2,kmadd(Gtl123,Xtn3,kmadd(Gtl213,Xtn3,kmadd(gtu12,kmul(PDstandardNth12gt12,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt12,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt12,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt12,knmsub(gtu22,PDstandardNth22gt12,knmsub(gtu33,PDstandardNth33gt12,kmadd(kmadd(Gt112,Gtlu111,kmadd(Gt122,Gtlu112,kmadd(Gt123,Gtlu113,kmadd(Gt111,Gtlu121,kmadd(Gt212,Gtlu121,kmadd(Gt112,Gtlu122,kmadd(Gt222,Gtlu122,kmadd(Gt113,Gtlu123,kmadd(Gt223,Gtlu123,kmadd(Gt312,Gtlu131,kmadd(Gt322,Gtlu132,kmadd(Gt323,Gtlu133,kmadd(Gt111,Gtlu211,kmadd(Gt112,Gtlu212,kmadd(Gt113,Gtlu213,kmadd(Gt311,Gtlu231,kmadd(Gt312,Gtlu232,kmadd(Gt313,Gtlu233,kmadd(Gt311,Gtlu321,kmadd(Gt312,Gtlu322,kmul(Gt313,Gtlu323))))))))))))))))))))),ToReal(2),kmul(kmadd(Gt211,Gtlu221,kmadd(Gt212,Gtlu222,kmul(Gt213,Gtlu223))),ToReal(4)))))))))))))))))))))); + kmul(ToReal(0.5),kmadd(gt12L,JacPDstandardNth1Xt1,kmadd(gt22L,JacPDstandardNth1Xt2,kmadd(gt23L,JacPDstandardNth1Xt3,kmadd(gt11L,JacPDstandardNth2Xt1,kmadd(gt12L,JacPDstandardNth2Xt2,kmadd(gt13L,JacPDstandardNth2Xt3,kmadd(Gtl112,Xtn1,kmadd(Gtl211,Xtn1,kmadd(Gtl122,Xtn2,kmadd(Gtl212,Xtn2,kmadd(Gtl123,Xtn3,kmadd(Gtl213,Xtn3,knmsub(gtu11,JacPDstandardNth11gt12,knmsub(gtu22,JacPDstandardNth22gt12,knmsub(gtu33,JacPDstandardNth33gt12,knmsub(gtu12,kadd(JacPDstandardNth21gt12,JacPDstandardNth12gt12),knmsub(gtu13,kadd(JacPDstandardNth31gt12,JacPDstandardNth13gt12),knmsub(gtu23,kadd(JacPDstandardNth32gt12,JacPDstandardNth23gt12),kmadd(kmadd(Gt122,Gtlu112,kmadd(Gt123,Gtlu113,kmadd(Gt111,Gtlu121,kmadd(Gt212,Gtlu121,kmadd(Gt222,Gtlu122,kmadd(Gt113,Gtlu123,kmadd(Gt223,Gtlu123,kmadd(Gt312,Gtlu131,kmadd(Gt322,Gtlu132,kmadd(Gt323,Gtlu133,kmadd(Gt111,Gtlu211,kmadd(Gt112,kadd(Gtlu111,kadd(Gtlu122,Gtlu212)),kmadd(Gt113,Gtlu213,kmadd(Gt311,Gtlu231,kmadd(Gt312,Gtlu232,kmadd(Gt313,Gtlu233,kmadd(Gt311,Gtlu321,kmadd(Gt312,Gtlu322,kmul(Gt313,Gtlu323))))))))))))))))))),ToReal(2),kmul(kmadd(Gt211,Gtlu221,kmadd(Gt212,Gtlu222,kmul(Gt213,Gtlu223))),ToReal(4)))))))))))))))))))))); CCTK_REAL_VEC Rt13 = - kmul(ToReal(0.5),kmadd(gt13L,PDstandardNth1Xt1,kmadd(gt23L,PDstandardNth1Xt2,kmadd(gt33L,PDstandardNth1Xt3,kmadd(gt11L,PDstandardNth3Xt1,kmadd(gt12L,PDstandardNth3Xt2,kmadd(gt13L,PDstandardNth3Xt3,kmadd(Gtl113,Xtn1,kmadd(Gtl311,Xtn1,kmadd(Gtl123,Xtn2,kmadd(Gtl312,Xtn2,kmadd(Gtl133,Xtn3,kmadd(Gtl313,Xtn3,kmadd(gtu12,kmul(PDstandardNth12gt13,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt13,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt13,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt13,knmsub(gtu22,PDstandardNth22gt13,knmsub(gtu33,PDstandardNth33gt13,kmadd(kmadd(Gt113,Gtlu111,kmadd(Gt123,Gtlu112,kmadd(Gt133,Gtlu113,kmadd(Gt213,Gtlu121,kmadd(Gt223,Gtlu122,kmadd(Gt233,Gtlu123,kmadd(Gt111,Gtlu131,kmadd(Gt313,Gtlu131,kmadd(Gt112,Gtlu132,kmadd(Gt323,Gtlu132,kmadd(Gt113,Gtlu133,kmadd(Gt333,Gtlu133,kmadd(Gt211,Gtlu231,kmadd(Gt212,Gtlu232,kmadd(Gt213,Gtlu233,kmadd(Gt111,Gtlu311,kmadd(Gt112,Gtlu312,kmadd(Gt113,Gtlu313,kmadd(Gt211,Gtlu321,kmadd(Gt212,Gtlu322,kmul(Gt213,Gtlu323))))))))))))))))))))),ToReal(2),kmul(kmadd(Gt311,Gtlu331,kmadd(Gt312,Gtlu332,kmul(Gt313,Gtlu333))),ToReal(4)))))))))))))))))))))); + kmul(ToReal(0.5),kmadd(gt13L,JacPDstandardNth1Xt1,kmadd(gt23L,JacPDstandardNth1Xt2,kmadd(gt33L,JacPDstandardNth1Xt3,kmadd(gt11L,JacPDstandardNth3Xt1,kmadd(gt12L,JacPDstandardNth3Xt2,kmadd(gt13L,JacPDstandardNth3Xt3,kmadd(Gtl113,Xtn1,kmadd(Gtl311,Xtn1,kmadd(Gtl123,Xtn2,kmadd(Gtl312,Xtn2,kmadd(Gtl133,Xtn3,kmadd(Gtl313,Xtn3,knmsub(gtu11,JacPDstandardNth11gt13,knmsub(gtu22,JacPDstandardNth22gt13,knmsub(gtu33,JacPDstandardNth33gt13,knmsub(gtu12,kadd(JacPDstandardNth21gt13,JacPDstandardNth12gt13),knmsub(gtu13,kadd(JacPDstandardNth31gt13,JacPDstandardNth13gt13),knmsub(gtu23,kadd(JacPDstandardNth32gt13,JacPDstandardNth23gt13),kmadd(kmadd(Gt123,Gtlu112,kmadd(Gt133,Gtlu113,kmadd(Gt213,Gtlu121,kmadd(Gt223,Gtlu122,kmadd(Gt233,Gtlu123,kmadd(Gt111,Gtlu131,kmadd(Gt313,Gtlu131,kmadd(Gt112,Gtlu132,kmadd(Gt323,Gtlu132,kmadd(Gt333,Gtlu133,kmadd(Gt211,Gtlu231,kmadd(Gt212,Gtlu232,kmadd(Gt213,Gtlu233,kmadd(Gt111,Gtlu311,kmadd(Gt112,Gtlu312,kmadd(Gt113,kadd(Gtlu111,kadd(Gtlu133,Gtlu313)),kmadd(Gt211,Gtlu321,kmadd(Gt212,Gtlu322,kmul(Gt213,Gtlu323))))))))))))))))))),ToReal(2),kmul(kmadd(Gt311,Gtlu331,kmadd(Gt312,Gtlu332,kmul(Gt313,Gtlu333))),ToReal(4)))))))))))))))))))))); CCTK_REAL_VEC Rt22 = - kmul(ToReal(0.5),kmadd(gtu12,kmul(PDstandardNth12gt22,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt22,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt22,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt22,knmsub(gtu22,PDstandardNth22gt22,knmsub(gtu33,PDstandardNth33gt22,kmadd(kmadd(Gt112,Gtlu121,kmadd(Gt122,Gtlu122,kmadd(Gt123,Gtlu123,kmadd(Gt312,Gtlu321,kmadd(Gt322,Gtlu322,kmadd(Gt323,Gtlu323,kmul(gt12L,PDstandardNth2Xt1))))))),ToReal(2),kmadd(gt22L,kmul(PDstandardNth2Xt2,ToReal(2)),kmadd(gt23L,kmul(PDstandardNth2Xt3,ToReal(2)),kmadd(Gtl212,kmul(Xtn1,ToReal(2)),kmadd(Gtl222,kmul(Xtn2,ToReal(2)),kmadd(Gtl223,kmul(Xtn3,ToReal(2)),kmadd(kmadd(Gt112,Gtlu211,kmadd(Gt122,Gtlu212,kmadd(Gt123,Gtlu213,kmadd(Gt312,Gtlu231,kmadd(Gt322,Gtlu232,kmul(Gt323,Gtlu233)))))),ToReal(4),kmul(kmadd(Gt212,Gtlu221,kmadd(Gt222,Gtlu222,kmul(Gt223,Gtlu223))),ToReal(6)))))))))))))))); + kmul(ToReal(0.5),knmsub(gtu11,JacPDstandardNth11gt22,knmsub(gtu22,JacPDstandardNth22gt22,knmsub(gtu33,JacPDstandardNth33gt22,knmsub(gtu12,kadd(JacPDstandardNth21gt22,JacPDstandardNth12gt22),knmsub(gtu13,kadd(JacPDstandardNth31gt22,JacPDstandardNth13gt22),knmsub(gtu23,kadd(JacPDstandardNth32gt22,JacPDstandardNth23gt22),kmadd(gt22L,kmul(JacPDstandardNth2Xt2,ToReal(2)),kmadd(gt23L,kmul(JacPDstandardNth2Xt3,ToReal(2)),kmadd(Gtl212,kmul(Xtn1,ToReal(2)),kmadd(Gtl222,kmul(Xtn2,ToReal(2)),kmadd(Gtl223,kmul(Xtn3,ToReal(2)),kmadd(ToReal(2),kmadd(Gt123,Gtlu123,kmadd(Gt312,Gtlu321,kmadd(Gt322,Gtlu322,kmadd(Gt323,Gtlu323,kmadd(gt12L,JacPDstandardNth2Xt1,kmadd(Gt112,kmadd(Gtlu211,ToReal(2),Gtlu121),kmul(Gt122,kmadd(Gtlu212,ToReal(2),Gtlu122)))))))),kmadd(kmadd(Gt123,Gtlu213,kmadd(Gt312,Gtlu231,kmadd(Gt322,Gtlu232,kmul(Gt323,Gtlu233)))),ToReal(4),kmul(kmadd(Gt212,Gtlu221,kmadd(Gt222,Gtlu222,kmul(Gt223,Gtlu223))),ToReal(6)))))))))))))))); CCTK_REAL_VEC Rt23 = - kmul(ToReal(0.5),kmadd(gt13L,PDstandardNth2Xt1,kmadd(gt23L,PDstandardNth2Xt2,kmadd(gt33L,PDstandardNth2Xt3,kmadd(gt12L,PDstandardNth3Xt1,kmadd(gt22L,PDstandardNth3Xt2,kmadd(gt23L,PDstandardNth3Xt3,kmadd(Gtl213,Xtn1,kmadd(Gtl312,Xtn1,kmadd(Gtl223,Xtn2,kmadd(Gtl322,Xtn2,kmadd(Gtl233,Xtn3,kmadd(Gtl323,Xtn3,kmadd(gtu12,kmul(PDstandardNth12gt23,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt23,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt23,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt23,knmsub(gtu22,PDstandardNth22gt23,knmsub(gtu33,PDstandardNth33gt23,kmadd(kmadd(Gt112,Gtlu131,kmadd(Gt122,Gtlu132,kmadd(Gt123,Gtlu133,kmadd(Gt113,Gtlu211,kmadd(Gt123,Gtlu212,kmadd(Gt133,Gtlu213,kmadd(Gt213,Gtlu221,kmadd(Gt223,Gtlu222,kmadd(Gt233,Gtlu223,kmadd(Gt212,Gtlu231,kmadd(Gt313,Gtlu231,kmadd(Gt222,Gtlu232,kmadd(Gt323,Gtlu232,kmadd(Gt223,Gtlu233,kmadd(Gt333,Gtlu233,kmadd(Gt112,Gtlu311,kmadd(Gt122,Gtlu312,kmadd(Gt123,Gtlu313,kmadd(Gt212,Gtlu321,kmadd(Gt222,Gtlu322,kmul(Gt223,Gtlu323))))))))))))))))))))),ToReal(2),kmul(kmadd(Gt312,Gtlu331,kmadd(Gt322,Gtlu332,kmul(Gt323,Gtlu333))),ToReal(4)))))))))))))))))))))); + kmul(ToReal(0.5),kmadd(gt13L,JacPDstandardNth2Xt1,kmadd(gt23L,JacPDstandardNth2Xt2,kmadd(gt33L,JacPDstandardNth2Xt3,kmadd(gt12L,JacPDstandardNth3Xt1,kmadd(gt22L,JacPDstandardNth3Xt2,kmadd(gt23L,JacPDstandardNth3Xt3,kmadd(Gtl213,Xtn1,kmadd(Gtl312,Xtn1,kmadd(Gtl223,Xtn2,kmadd(Gtl322,Xtn2,kmadd(Gtl233,Xtn3,kmadd(Gtl323,Xtn3,knmsub(gtu11,JacPDstandardNth11gt23,knmsub(gtu22,JacPDstandardNth22gt23,knmsub(gtu33,JacPDstandardNth33gt23,knmsub(gtu12,kadd(JacPDstandardNth21gt23,JacPDstandardNth12gt23),knmsub(gtu13,kadd(JacPDstandardNth31gt23,JacPDstandardNth13gt23),knmsub(gtu23,kadd(JacPDstandardNth32gt23,JacPDstandardNth23gt23),kmadd(kmadd(Gt123,Gtlu133,kmadd(Gt113,Gtlu211,kmadd(Gt123,Gtlu212,kmadd(Gt133,Gtlu213,kmadd(Gt213,Gtlu221,kmadd(Gt223,Gtlu222,kmadd(Gt233,Gtlu223,kmadd(Gt212,Gtlu231,kmadd(Gt313,Gtlu231,kmadd(Gt222,Gtlu232,kmadd(Gt323,Gtlu232,kmadd(Gt223,Gtlu233,kmadd(Gt333,Gtlu233,kmadd(Gt112,kadd(Gtlu131,Gtlu311),kmadd(Gt122,kadd(Gtlu132,Gtlu312),kmadd(Gt123,Gtlu313,kmadd(Gt212,Gtlu321,kmadd(Gt222,Gtlu322,kmul(Gt223,Gtlu323))))))))))))))))))),ToReal(2),kmul(kmadd(Gt312,Gtlu331,kmadd(Gt322,Gtlu332,kmul(Gt323,Gtlu333))),ToReal(4)))))))))))))))))))))); CCTK_REAL_VEC Rt33 = - kmul(ToReal(0.5),kmadd(gtu12,kmul(PDstandardNth12gt33,ToReal(-2)),kmadd(gtu13,kmul(PDstandardNth13gt33,ToReal(-2)),kmadd(gtu23,kmul(PDstandardNth23gt33,ToReal(-2)),knmsub(gtu11,PDstandardNth11gt33,knmsub(gtu22,PDstandardNth22gt33,knmsub(gtu33,PDstandardNth33gt33,kmadd(kmadd(Gt113,Gtlu131,kmadd(Gt123,Gtlu132,kmadd(Gt133,Gtlu133,kmadd(Gt213,Gtlu231,kmadd(Gt223,Gtlu232,kmadd(Gt233,Gtlu233,kmul(gt13L,PDstandardNth3Xt1))))))),ToReal(2),kmadd(gt23L,kmul(PDstandardNth3Xt2,ToReal(2)),kmadd(gt33L,kmul(PDstandardNth3Xt3,ToReal(2)),kmadd(Gtl313,kmul(Xtn1,ToReal(2)),kmadd(Gtl323,kmul(Xtn2,ToReal(2)),kmadd(Gtl333,kmul(Xtn3,ToReal(2)),kmadd(kmadd(Gt113,Gtlu311,kmadd(Gt123,Gtlu312,kmadd(Gt133,Gtlu313,kmadd(Gt213,Gtlu321,kmadd(Gt223,Gtlu322,kmul(Gt233,Gtlu323)))))),ToReal(4),kmul(kmadd(Gt313,Gtlu331,kmadd(Gt323,Gtlu332,kmul(Gt333,Gtlu333))),ToReal(6)))))))))))))))); + kmul(ToReal(0.5),knmsub(gtu11,JacPDstandardNth11gt33,knmsub(gtu22,JacPDstandardNth22gt33,knmsub(gtu33,JacPDstandardNth33gt33,knmsub(gtu12,kadd(JacPDstandardNth21gt33,JacPDstandardNth12gt33),knmsub(gtu13,kadd(JacPDstandardNth31gt33,JacPDstandardNth13gt33),knmsub(gtu23,kadd(JacPDstandardNth32gt33,JacPDstandardNth23gt33),kmadd(gt23L,kmul(JacPDstandardNth3Xt2,ToReal(2)),kmadd(gt33L,kmul(JacPDstandardNth3Xt3,ToReal(2)),kmadd(Gtl313,kmul(Xtn1,ToReal(2)),kmadd(Gtl323,kmul(Xtn2,ToReal(2)),kmadd(Gtl333,kmul(Xtn3,ToReal(2)),kmadd(ToReal(2),kmadd(Gt133,Gtlu133,kmadd(Gt213,Gtlu231,kmadd(Gt223,Gtlu232,kmadd(Gt233,Gtlu233,kmadd(gt13L,JacPDstandardNth3Xt1,kmadd(Gt113,kmadd(Gtlu311,ToReal(2),Gtlu131),kmul(Gt123,kmadd(Gtlu312,ToReal(2),Gtlu132)))))))),kmadd(kmadd(Gt133,Gtlu313,kmadd(Gt213,Gtlu321,kmadd(Gt223,Gtlu322,kmul(Gt233,Gtlu323)))),ToReal(4),kmul(kmadd(Gt313,Gtlu331,kmadd(Gt323,Gtlu332,kmul(Gt333,Gtlu333))),ToReal(6)))))))))))))))); CCTK_REAL_VEC fac1 = IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); - CCTK_REAL_VEC cdphi1 = kmul(fac1,PDstandardNth1phi); + CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); - CCTK_REAL_VEC cdphi2 = kmul(fac1,PDstandardNth2phi); + CCTK_REAL_VEC cdphi2 = kmul(fac1,JacPDstandardNth2phi); - CCTK_REAL_VEC cdphi3 = kmul(fac1,PDstandardNth3phi); + CCTK_REAL_VEC cdphi3 = kmul(fac1,JacPDstandardNth3phi); CCTK_REAL_VEC fac2 = IfThen(conformalMethod,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = - kmsub(fac2,SQR(PDstandardNth1phi),kmul(fac1,kmadd(Gt111,PDstandardNth1phi,kmadd(Gt211,PDstandardNth2phi,kmsub(Gt311,PDstandardNth3phi,PDstandardNth11phi))))); + kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); CCTK_REAL_VEC cdphi212 = - kmsub(fac2,kmul(PDstandardNth1phi,PDstandardNth2phi),kmul(fac1,kmadd(Gt112,PDstandardNth1phi,kmadd(Gt212,PDstandardNth2phi,kmsub(Gt312,PDstandardNth3phi,PDstandardNth12phi))))); + kmadd(fac2,kmul(JacPDstandardNth1phi,JacPDstandardNth2phi),kmul(fac1,ksub(JacPDstandardNth12phi,kmadd(Gt112,JacPDstandardNth1phi,kmadd(Gt312,JacPDstandardNth3phi,kmul(Gt212,JacPDstandardNth2phi)))))); CCTK_REAL_VEC cdphi213 = - kmsub(fac2,kmul(PDstandardNth1phi,PDstandardNth3phi),kmul(fac1,kmadd(Gt113,PDstandardNth1phi,kmadd(Gt213,PDstandardNth2phi,kmsub(Gt313,PDstandardNth3phi,PDstandardNth13phi))))); + kmadd(fac2,kmul(JacPDstandardNth1phi,JacPDstandardNth3phi),kmul(fac1,ksub(JacPDstandardNth13phi,kmadd(Gt113,JacPDstandardNth1phi,kmadd(Gt313,JacPDstandardNth3phi,kmul(Gt213,JacPDstandardNth2phi)))))); CCTK_REAL_VEC cdphi222 = - kmsub(fac2,SQR(PDstandardNth2phi),kmul(fac1,kmadd(Gt122,PDstandardNth1phi,kmadd(Gt222,PDstandardNth2phi,kmsub(Gt322,PDstandardNth3phi,PDstandardNth22phi))))); + kmsub(fac2,SQR(JacPDstandardNth2phi),kmul(fac1,kmadd(Gt122,JacPDstandardNth1phi,kmadd(Gt222,JacPDstandardNth2phi,kmsub(Gt322,JacPDstandardNth3phi,JacPDstandardNth22phi))))); CCTK_REAL_VEC cdphi223 = - kmsub(fac2,kmul(PDstandardNth2phi,PDstandardNth3phi),kmul(fac1,kmadd(Gt123,PDstandardNth1phi,kmadd(Gt223,PDstandardNth2phi,kmsub(Gt323,PDstandardNth3phi,PDstandardNth23phi))))); + kmsub(fac2,kmul(JacPDstandardNth2phi,JacPDstandardNth3phi),kmul(fac1,kmadd(Gt123,JacPDstandardNth1phi,kmadd(Gt223,JacPDstandardNth2phi,kmsub(Gt323,JacPDstandardNth3phi,JacPDstandardNth23phi))))); CCTK_REAL_VEC cdphi233 = - kmsub(fac2,SQR(PDstandardNth3phi),kmul(fac1,kmadd(Gt133,PDstandardNth1phi,kmadd(Gt233,PDstandardNth2phi,kmsub(Gt333,PDstandardNth3phi,PDstandardNth33phi))))); + kmsub(fac2,SQR(JacPDstandardNth3phi),kmul(fac1,kmadd(Gt133,JacPDstandardNth1phi,kmadd(Gt233,JacPDstandardNth2phi,kmsub(Gt333,JacPDstandardNth3phi,JacPDstandardNth33phi))))); CCTK_REAL_VEC Rphi11 = kmul(ToReal(-2),kadd(cdphi211,kmadd(SQR(cdphi1),kmul(kmadd(gt11L,gtu11,ToReal(-1)),ToReal(2)),kmul(gt11L,kmadd(cdphi211,gtu11,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu33,SQR(cdphi3))))),ToReal(2),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmul(kmadd(cdphi1,kmadd(cdphi2,gtu12,kmul(cdphi3,gtu13)),kmul(cdphi2,kmul(cdphi3,gtu23))),ToReal(4)))))))))); diff --git a/ML_BSSN/src/ML_BSSN_constraints2.cc b/ML_BSSN/src/ML_BSSN_constraints2.cc index 442917a..2c39faf 100644 --- a/ML_BSSN/src/ML_BSSN_constraints2.cc +++ b/ML_BSSN/src/ML_BSSN_constraints2.cc @@ -64,7 +64,24 @@ static void ML_BSSN_constraints2_Body(cGH const * restrict const cctkGH, int con const char *groups[] = {"ML_BSSN::ML_cons_detg","ML_BSSN::ML_cons_Gamma","ML_BSSN::ML_cons_traceA","ML_BSSN::ML_curv","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_mom","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_constraints2", 11, groups); - GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints2", 2, 2, 2); + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints2", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints2", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints2", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_constraints2", 4, 4, 4); + break; + } /* Include user-supplied include files */ @@ -92,24 +109,129 @@ static void ML_BSSN_constraints2_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -171,53 +293,509 @@ static void ML_BSSN_constraints2_Body(cGH const * restrict const cctkGH, int con eTzzL = ToReal(0.0); } + CCTK_REAL_VEC J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + /* Include user supplied include files */ /* Precompute derivatives */ - CCTK_REAL_VEC const PDstandardNth1At11 = PDstandardNth1(&At11[index]); - CCTK_REAL_VEC const PDstandardNth2At11 = PDstandardNth2(&At11[index]); - CCTK_REAL_VEC const PDstandardNth3At11 = PDstandardNth3(&At11[index]); - CCTK_REAL_VEC const PDstandardNth1At12 = PDstandardNth1(&At12[index]); - CCTK_REAL_VEC const PDstandardNth2At12 = PDstandardNth2(&At12[index]); - CCTK_REAL_VEC const PDstandardNth3At12 = PDstandardNth3(&At12[index]); - CCTK_REAL_VEC const PDstandardNth1At13 = PDstandardNth1(&At13[index]); - CCTK_REAL_VEC const PDstandardNth2At13 = PDstandardNth2(&At13[index]); - CCTK_REAL_VEC const PDstandardNth3At13 = PDstandardNth3(&At13[index]); - CCTK_REAL_VEC const PDstandardNth1At22 = PDstandardNth1(&At22[index]); - CCTK_REAL_VEC const PDstandardNth2At22 = PDstandardNth2(&At22[index]); - CCTK_REAL_VEC const PDstandardNth3At22 = PDstandardNth3(&At22[index]); - CCTK_REAL_VEC const PDstandardNth1At23 = PDstandardNth1(&At23[index]); - CCTK_REAL_VEC const PDstandardNth2At23 = PDstandardNth2(&At23[index]); - CCTK_REAL_VEC const PDstandardNth3At23 = PDstandardNth3(&At23[index]); - CCTK_REAL_VEC const PDstandardNth1At33 = PDstandardNth1(&At33[index]); - CCTK_REAL_VEC const PDstandardNth2At33 = PDstandardNth2(&At33[index]); - CCTK_REAL_VEC const PDstandardNth3At33 = PDstandardNth3(&At33[index]); - CCTK_REAL_VEC const PDstandardNth1gt11 = PDstandardNth1(>11[index]); - CCTK_REAL_VEC const PDstandardNth2gt11 = PDstandardNth2(>11[index]); - CCTK_REAL_VEC const PDstandardNth3gt11 = PDstandardNth3(>11[index]); - CCTK_REAL_VEC const PDstandardNth1gt12 = PDstandardNth1(>12[index]); - CCTK_REAL_VEC const PDstandardNth2gt12 = PDstandardNth2(>12[index]); - CCTK_REAL_VEC const PDstandardNth3gt12 = PDstandardNth3(>12[index]); - CCTK_REAL_VEC const PDstandardNth1gt13 = PDstandardNth1(>13[index]); - CCTK_REAL_VEC const PDstandardNth2gt13 = PDstandardNth2(>13[index]); - CCTK_REAL_VEC const PDstandardNth3gt13 = PDstandardNth3(>13[index]); - CCTK_REAL_VEC const PDstandardNth1gt22 = PDstandardNth1(>22[index]); - CCTK_REAL_VEC const PDstandardNth2gt22 = PDstandardNth2(>22[index]); - CCTK_REAL_VEC const PDstandardNth3gt22 = PDstandardNth3(>22[index]); - CCTK_REAL_VEC const PDstandardNth1gt23 = PDstandardNth1(>23[index]); - CCTK_REAL_VEC const PDstandardNth2gt23 = PDstandardNth2(>23[index]); - CCTK_REAL_VEC const PDstandardNth3gt23 = PDstandardNth3(>23[index]); - CCTK_REAL_VEC const PDstandardNth1gt33 = PDstandardNth1(>33[index]); - CCTK_REAL_VEC const PDstandardNth2gt33 = PDstandardNth2(>33[index]); - CCTK_REAL_VEC const PDstandardNth3gt33 = PDstandardNth3(>33[index]); - CCTK_REAL_VEC const PDstandardNth1phi = PDstandardNth1(&phi[index]); - CCTK_REAL_VEC const PDstandardNth2phi = PDstandardNth2(&phi[index]); - CCTK_REAL_VEC const PDstandardNth3phi = PDstandardNth3(&phi[index]); - CCTK_REAL_VEC const PDstandardNth1trK = PDstandardNth1(&trK[index]); - CCTK_REAL_VEC const PDstandardNth2trK = PDstandardNth2(&trK[index]); - CCTK_REAL_VEC const PDstandardNth3trK = PDstandardNth3(&trK[index]); + CCTK_REAL_VEC PDstandardNth1At11; + CCTK_REAL_VEC PDstandardNth2At11; + CCTK_REAL_VEC PDstandardNth3At11; + CCTK_REAL_VEC PDstandardNth1At12; + CCTK_REAL_VEC PDstandardNth2At12; + CCTK_REAL_VEC PDstandardNth3At12; + CCTK_REAL_VEC PDstandardNth1At13; + CCTK_REAL_VEC PDstandardNth2At13; + CCTK_REAL_VEC PDstandardNth3At13; + CCTK_REAL_VEC PDstandardNth1At22; + CCTK_REAL_VEC PDstandardNth2At22; + CCTK_REAL_VEC PDstandardNth3At22; + CCTK_REAL_VEC PDstandardNth1At23; + CCTK_REAL_VEC PDstandardNth2At23; + CCTK_REAL_VEC PDstandardNth3At23; + CCTK_REAL_VEC PDstandardNth1At33; + CCTK_REAL_VEC PDstandardNth2At33; + CCTK_REAL_VEC PDstandardNth3At33; + CCTK_REAL_VEC PDstandardNth1gt11; + CCTK_REAL_VEC PDstandardNth2gt11; + CCTK_REAL_VEC PDstandardNth3gt11; + CCTK_REAL_VEC PDstandardNth1gt12; + CCTK_REAL_VEC PDstandardNth2gt12; + CCTK_REAL_VEC PDstandardNth3gt12; + CCTK_REAL_VEC PDstandardNth1gt13; + CCTK_REAL_VEC PDstandardNth2gt13; + CCTK_REAL_VEC PDstandardNth3gt13; + CCTK_REAL_VEC PDstandardNth1gt22; + CCTK_REAL_VEC PDstandardNth2gt22; + CCTK_REAL_VEC PDstandardNth3gt22; + CCTK_REAL_VEC PDstandardNth1gt23; + CCTK_REAL_VEC PDstandardNth2gt23; + CCTK_REAL_VEC PDstandardNth3gt23; + CCTK_REAL_VEC PDstandardNth1gt33; + CCTK_REAL_VEC PDstandardNth2gt33; + CCTK_REAL_VEC PDstandardNth3gt33; + CCTK_REAL_VEC PDstandardNth1phi; + CCTK_REAL_VEC PDstandardNth2phi; + CCTK_REAL_VEC PDstandardNth3phi; + CCTK_REAL_VEC PDstandardNth1trK; + CCTK_REAL_VEC PDstandardNth2trK; + CCTK_REAL_VEC PDstandardNth3trK; + + switch(fdOrder) + { + case 2: + PDstandardNth1At11 = PDstandardNthfdOrder21(&At11[index]); + PDstandardNth2At11 = PDstandardNthfdOrder22(&At11[index]); + PDstandardNth3At11 = PDstandardNthfdOrder23(&At11[index]); + PDstandardNth1At12 = PDstandardNthfdOrder21(&At12[index]); + PDstandardNth2At12 = PDstandardNthfdOrder22(&At12[index]); + PDstandardNth3At12 = PDstandardNthfdOrder23(&At12[index]); + PDstandardNth1At13 = PDstandardNthfdOrder21(&At13[index]); + PDstandardNth2At13 = PDstandardNthfdOrder22(&At13[index]); + PDstandardNth3At13 = PDstandardNthfdOrder23(&At13[index]); + PDstandardNth1At22 = PDstandardNthfdOrder21(&At22[index]); + PDstandardNth2At22 = PDstandardNthfdOrder22(&At22[index]); + PDstandardNth3At22 = PDstandardNthfdOrder23(&At22[index]); + PDstandardNth1At23 = PDstandardNthfdOrder21(&At23[index]); + PDstandardNth2At23 = PDstandardNthfdOrder22(&At23[index]); + PDstandardNth3At23 = PDstandardNthfdOrder23(&At23[index]); + PDstandardNth1At33 = PDstandardNthfdOrder21(&At33[index]); + PDstandardNth2At33 = PDstandardNthfdOrder22(&At33[index]); + PDstandardNth3At33 = PDstandardNthfdOrder23(&At33[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder21(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder22(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder23(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder21(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder22(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder23(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder21(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder22(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder23(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder21(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder22(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder23(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder21(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder22(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder23(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder21(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder22(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder23(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder21(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder22(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder23(&phi[index]); + PDstandardNth1trK = PDstandardNthfdOrder21(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder22(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder23(&trK[index]); + break; + + case 4: + PDstandardNth1At11 = PDstandardNthfdOrder41(&At11[index]); + PDstandardNth2At11 = PDstandardNthfdOrder42(&At11[index]); + PDstandardNth3At11 = PDstandardNthfdOrder43(&At11[index]); + PDstandardNth1At12 = PDstandardNthfdOrder41(&At12[index]); + PDstandardNth2At12 = PDstandardNthfdOrder42(&At12[index]); + PDstandardNth3At12 = PDstandardNthfdOrder43(&At12[index]); + PDstandardNth1At13 = PDstandardNthfdOrder41(&At13[index]); + PDstandardNth2At13 = PDstandardNthfdOrder42(&At13[index]); + PDstandardNth3At13 = PDstandardNthfdOrder43(&At13[index]); + PDstandardNth1At22 = PDstandardNthfdOrder41(&At22[index]); + PDstandardNth2At22 = PDstandardNthfdOrder42(&At22[index]); + PDstandardNth3At22 = PDstandardNthfdOrder43(&At22[index]); + PDstandardNth1At23 = PDstandardNthfdOrder41(&At23[index]); + PDstandardNth2At23 = PDstandardNthfdOrder42(&At23[index]); + PDstandardNth3At23 = PDstandardNthfdOrder43(&At23[index]); + PDstandardNth1At33 = PDstandardNthfdOrder41(&At33[index]); + PDstandardNth2At33 = PDstandardNthfdOrder42(&At33[index]); + PDstandardNth3At33 = PDstandardNthfdOrder43(&At33[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder41(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder42(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder43(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder41(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder42(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder43(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder41(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder42(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder43(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder41(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder42(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder43(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder41(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder42(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder43(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder41(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder42(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder43(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder41(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder42(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder43(&phi[index]); + PDstandardNth1trK = PDstandardNthfdOrder41(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder42(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder43(&trK[index]); + break; + + case 6: + PDstandardNth1At11 = PDstandardNthfdOrder61(&At11[index]); + PDstandardNth2At11 = PDstandardNthfdOrder62(&At11[index]); + PDstandardNth3At11 = PDstandardNthfdOrder63(&At11[index]); + PDstandardNth1At12 = PDstandardNthfdOrder61(&At12[index]); + PDstandardNth2At12 = PDstandardNthfdOrder62(&At12[index]); + PDstandardNth3At12 = PDstandardNthfdOrder63(&At12[index]); + PDstandardNth1At13 = PDstandardNthfdOrder61(&At13[index]); + PDstandardNth2At13 = PDstandardNthfdOrder62(&At13[index]); + PDstandardNth3At13 = PDstandardNthfdOrder63(&At13[index]); + PDstandardNth1At22 = PDstandardNthfdOrder61(&At22[index]); + PDstandardNth2At22 = PDstandardNthfdOrder62(&At22[index]); + PDstandardNth3At22 = PDstandardNthfdOrder63(&At22[index]); + PDstandardNth1At23 = PDstandardNthfdOrder61(&At23[index]); + PDstandardNth2At23 = PDstandardNthfdOrder62(&At23[index]); + PDstandardNth3At23 = PDstandardNthfdOrder63(&At23[index]); + PDstandardNth1At33 = PDstandardNthfdOrder61(&At33[index]); + PDstandardNth2At33 = PDstandardNthfdOrder62(&At33[index]); + PDstandardNth3At33 = PDstandardNthfdOrder63(&At33[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder61(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder62(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder63(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder61(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder62(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder63(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder61(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder62(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder63(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder61(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder62(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder63(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder61(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder62(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder63(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder61(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder62(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder63(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder61(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder62(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder63(&phi[index]); + PDstandardNth1trK = PDstandardNthfdOrder61(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder62(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder63(&trK[index]); + break; + + case 8: + PDstandardNth1At11 = PDstandardNthfdOrder81(&At11[index]); + PDstandardNth2At11 = PDstandardNthfdOrder82(&At11[index]); + PDstandardNth3At11 = PDstandardNthfdOrder83(&At11[index]); + PDstandardNth1At12 = PDstandardNthfdOrder81(&At12[index]); + PDstandardNth2At12 = PDstandardNthfdOrder82(&At12[index]); + PDstandardNth3At12 = PDstandardNthfdOrder83(&At12[index]); + PDstandardNth1At13 = PDstandardNthfdOrder81(&At13[index]); + PDstandardNth2At13 = PDstandardNthfdOrder82(&At13[index]); + PDstandardNth3At13 = PDstandardNthfdOrder83(&At13[index]); + PDstandardNth1At22 = PDstandardNthfdOrder81(&At22[index]); + PDstandardNth2At22 = PDstandardNthfdOrder82(&At22[index]); + PDstandardNth3At22 = PDstandardNthfdOrder83(&At22[index]); + PDstandardNth1At23 = PDstandardNthfdOrder81(&At23[index]); + PDstandardNth2At23 = PDstandardNthfdOrder82(&At23[index]); + PDstandardNth3At23 = PDstandardNthfdOrder83(&At23[index]); + PDstandardNth1At33 = PDstandardNthfdOrder81(&At33[index]); + PDstandardNth2At33 = PDstandardNthfdOrder82(&At33[index]); + PDstandardNth3At33 = PDstandardNthfdOrder83(&At33[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder81(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder82(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder83(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder81(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder82(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder83(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder81(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder82(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder83(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder81(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder82(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder83(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder81(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder82(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder83(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder81(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder82(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder83(>33[index]); + PDstandardNth1phi = PDstandardNthfdOrder81(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder82(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder83(&phi[index]); + PDstandardNth1trK = PDstandardNthfdOrder81(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder82(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder83(&trK[index]); + break; + } /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandardNth1At11; + CCTK_REAL_VEC JacPDstandardNth1At12; + CCTK_REAL_VEC JacPDstandardNth1At13; + CCTK_REAL_VEC JacPDstandardNth1At22; + CCTK_REAL_VEC JacPDstandardNth1At23; + CCTK_REAL_VEC JacPDstandardNth1At33; + CCTK_REAL_VEC JacPDstandardNth1gt11; + CCTK_REAL_VEC JacPDstandardNth1gt12; + CCTK_REAL_VEC JacPDstandardNth1gt13; + CCTK_REAL_VEC JacPDstandardNth1gt22; + CCTK_REAL_VEC JacPDstandardNth1gt23; + CCTK_REAL_VEC JacPDstandardNth1gt33; + CCTK_REAL_VEC JacPDstandardNth1phi; + CCTK_REAL_VEC JacPDstandardNth1trK; + CCTK_REAL_VEC JacPDstandardNth2At11; + CCTK_REAL_VEC JacPDstandardNth2At12; + CCTK_REAL_VEC JacPDstandardNth2At13; + CCTK_REAL_VEC JacPDstandardNth2At22; + CCTK_REAL_VEC JacPDstandardNth2At23; + CCTK_REAL_VEC JacPDstandardNth2At33; + CCTK_REAL_VEC JacPDstandardNth2gt11; + CCTK_REAL_VEC JacPDstandardNth2gt12; + CCTK_REAL_VEC JacPDstandardNth2gt13; + CCTK_REAL_VEC JacPDstandardNth2gt22; + CCTK_REAL_VEC JacPDstandardNth2gt23; + CCTK_REAL_VEC JacPDstandardNth2gt33; + CCTK_REAL_VEC JacPDstandardNth2phi; + CCTK_REAL_VEC JacPDstandardNth2trK; + CCTK_REAL_VEC JacPDstandardNth3At11; + CCTK_REAL_VEC JacPDstandardNth3At12; + CCTK_REAL_VEC JacPDstandardNth3At13; + CCTK_REAL_VEC JacPDstandardNth3At22; + CCTK_REAL_VEC JacPDstandardNth3At23; + CCTK_REAL_VEC JacPDstandardNth3At33; + CCTK_REAL_VEC JacPDstandardNth3gt11; + CCTK_REAL_VEC JacPDstandardNth3gt12; + CCTK_REAL_VEC JacPDstandardNth3gt13; + CCTK_REAL_VEC JacPDstandardNth3gt22; + CCTK_REAL_VEC JacPDstandardNth3gt23; + CCTK_REAL_VEC JacPDstandardNth3gt33; + CCTK_REAL_VEC JacPDstandardNth3phi; + CCTK_REAL_VEC JacPDstandardNth3trK; + + if (use_jacobian) + { + JacPDstandardNth1At11 = + kmadd(J11L,PDstandardNth1At11,kmadd(J21L,PDstandardNth2At11,kmul(J31L,PDstandardNth3At11))); + + JacPDstandardNth1At12 = + kmadd(J11L,PDstandardNth1At12,kmadd(J21L,PDstandardNth2At12,kmul(J31L,PDstandardNth3At12))); + + JacPDstandardNth1At13 = + kmadd(J11L,PDstandardNth1At13,kmadd(J21L,PDstandardNth2At13,kmul(J31L,PDstandardNth3At13))); + + JacPDstandardNth1At22 = + kmadd(J11L,PDstandardNth1At22,kmadd(J21L,PDstandardNth2At22,kmul(J31L,PDstandardNth3At22))); + + JacPDstandardNth1At23 = + kmadd(J11L,PDstandardNth1At23,kmadd(J21L,PDstandardNth2At23,kmul(J31L,PDstandardNth3At23))); + + JacPDstandardNth1At33 = + kmadd(J11L,PDstandardNth1At33,kmadd(J21L,PDstandardNth2At33,kmul(J31L,PDstandardNth3At33))); + + JacPDstandardNth1gt11 = + kmadd(J11L,PDstandardNth1gt11,kmadd(J21L,PDstandardNth2gt11,kmul(J31L,PDstandardNth3gt11))); + + JacPDstandardNth1gt12 = + kmadd(J11L,PDstandardNth1gt12,kmadd(J21L,PDstandardNth2gt12,kmul(J31L,PDstandardNth3gt12))); + + JacPDstandardNth1gt13 = + kmadd(J11L,PDstandardNth1gt13,kmadd(J21L,PDstandardNth2gt13,kmul(J31L,PDstandardNth3gt13))); + + JacPDstandardNth1gt22 = + kmadd(J11L,PDstandardNth1gt22,kmadd(J21L,PDstandardNth2gt22,kmul(J31L,PDstandardNth3gt22))); + + JacPDstandardNth1gt23 = + kmadd(J11L,PDstandardNth1gt23,kmadd(J21L,PDstandardNth2gt23,kmul(J31L,PDstandardNth3gt23))); + + JacPDstandardNth1gt33 = + kmadd(J11L,PDstandardNth1gt33,kmadd(J21L,PDstandardNth2gt33,kmul(J31L,PDstandardNth3gt33))); + + JacPDstandardNth1phi = + kmadd(J11L,PDstandardNth1phi,kmadd(J21L,PDstandardNth2phi,kmul(J31L,PDstandardNth3phi))); + + JacPDstandardNth1trK = + kmadd(J11L,PDstandardNth1trK,kmadd(J21L,PDstandardNth2trK,kmul(J31L,PDstandardNth3trK))); + + JacPDstandardNth2At11 = + kmadd(J12L,PDstandardNth1At11,kmadd(J22L,PDstandardNth2At11,kmul(J32L,PDstandardNth3At11))); + + JacPDstandardNth2At12 = + kmadd(J12L,PDstandardNth1At12,kmadd(J22L,PDstandardNth2At12,kmul(J32L,PDstandardNth3At12))); + + JacPDstandardNth2At13 = + kmadd(J12L,PDstandardNth1At13,kmadd(J22L,PDstandardNth2At13,kmul(J32L,PDstandardNth3At13))); + + JacPDstandardNth2At22 = + kmadd(J12L,PDstandardNth1At22,kmadd(J22L,PDstandardNth2At22,kmul(J32L,PDstandardNth3At22))); + + JacPDstandardNth2At23 = + kmadd(J12L,PDstandardNth1At23,kmadd(J22L,PDstandardNth2At23,kmul(J32L,PDstandardNth3At23))); + + JacPDstandardNth2At33 = + kmadd(J12L,PDstandardNth1At33,kmadd(J22L,PDstandardNth2At33,kmul(J32L,PDstandardNth3At33))); + + JacPDstandardNth2gt11 = + kmadd(J12L,PDstandardNth1gt11,kmadd(J22L,PDstandardNth2gt11,kmul(J32L,PDstandardNth3gt11))); + + JacPDstandardNth2gt12 = + kmadd(J12L,PDstandardNth1gt12,kmadd(J22L,PDstandardNth2gt12,kmul(J32L,PDstandardNth3gt12))); + + JacPDstandardNth2gt13 = + kmadd(J12L,PDstandardNth1gt13,kmadd(J22L,PDstandardNth2gt13,kmul(J32L,PDstandardNth3gt13))); + + JacPDstandardNth2gt22 = + kmadd(J12L,PDstandardNth1gt22,kmadd(J22L,PDstandardNth2gt22,kmul(J32L,PDstandardNth3gt22))); + + JacPDstandardNth2gt23 = + kmadd(J12L,PDstandardNth1gt23,kmadd(J22L,PDstandardNth2gt23,kmul(J32L,PDstandardNth3gt23))); + + JacPDstandardNth2gt33 = + kmadd(J12L,PDstandardNth1gt33,kmadd(J22L,PDstandardNth2gt33,kmul(J32L,PDstandardNth3gt33))); + + JacPDstandardNth2phi = + kmadd(J12L,PDstandardNth1phi,kmadd(J22L,PDstandardNth2phi,kmul(J32L,PDstandardNth3phi))); + + JacPDstandardNth2trK = + kmadd(J12L,PDstandardNth1trK,kmadd(J22L,PDstandardNth2trK,kmul(J32L,PDstandardNth3trK))); + + JacPDstandardNth3At11 = + kmadd(J13L,PDstandardNth1At11,kmadd(J23L,PDstandardNth2At11,kmul(J33L,PDstandardNth3At11))); + + JacPDstandardNth3At12 = + kmadd(J13L,PDstandardNth1At12,kmadd(J23L,PDstandardNth2At12,kmul(J33L,PDstandardNth3At12))); + + JacPDstandardNth3At13 = + kmadd(J13L,PDstandardNth1At13,kmadd(J23L,PDstandardNth2At13,kmul(J33L,PDstandardNth3At13))); + + JacPDstandardNth3At22 = + kmadd(J13L,PDstandardNth1At22,kmadd(J23L,PDstandardNth2At22,kmul(J33L,PDstandardNth3At22))); + + JacPDstandardNth3At23 = + kmadd(J13L,PDstandardNth1At23,kmadd(J23L,PDstandardNth2At23,kmul(J33L,PDstandardNth3At23))); + + JacPDstandardNth3At33 = + kmadd(J13L,PDstandardNth1At33,kmadd(J23L,PDstandardNth2At33,kmul(J33L,PDstandardNth3At33))); + + JacPDstandardNth3gt11 = + kmadd(J13L,PDstandardNth1gt11,kmadd(J23L,PDstandardNth2gt11,kmul(J33L,PDstandardNth3gt11))); + + JacPDstandardNth3gt12 = + kmadd(J13L,PDstandardNth1gt12,kmadd(J23L,PDstandardNth2gt12,kmul(J33L,PDstandardNth3gt12))); + + JacPDstandardNth3gt13 = + kmadd(J13L,PDstandardNth1gt13,kmadd(J23L,PDstandardNth2gt13,kmul(J33L,PDstandardNth3gt13))); + + JacPDstandardNth3gt22 = + kmadd(J13L,PDstandardNth1gt22,kmadd(J23L,PDstandardNth2gt22,kmul(J33L,PDstandardNth3gt22))); + + JacPDstandardNth3gt23 = + kmadd(J13L,PDstandardNth1gt23,kmadd(J23L,PDstandardNth2gt23,kmul(J33L,PDstandardNth3gt23))); + + JacPDstandardNth3gt33 = + kmadd(J13L,PDstandardNth1gt33,kmadd(J23L,PDstandardNth2gt33,kmul(J33L,PDstandardNth3gt33))); + + JacPDstandardNth3phi = + kmadd(J13L,PDstandardNth1phi,kmadd(J23L,PDstandardNth2phi,kmul(J33L,PDstandardNth3phi))); + + JacPDstandardNth3trK = + kmadd(J13L,PDstandardNth1trK,kmadd(J23L,PDstandardNth2trK,kmul(J33L,PDstandardNth3trK))); + } + else + { + JacPDstandardNth1At11 = PDstandardNth1At11; + + JacPDstandardNth1At12 = PDstandardNth1At12; + + JacPDstandardNth1At13 = PDstandardNth1At13; + + JacPDstandardNth1At22 = PDstandardNth1At22; + + JacPDstandardNth1At23 = PDstandardNth1At23; + + JacPDstandardNth1At33 = PDstandardNth1At33; + + JacPDstandardNth1gt11 = PDstandardNth1gt11; + + JacPDstandardNth1gt12 = PDstandardNth1gt12; + + JacPDstandardNth1gt13 = PDstandardNth1gt13; + + JacPDstandardNth1gt22 = PDstandardNth1gt22; + + JacPDstandardNth1gt23 = PDstandardNth1gt23; + + JacPDstandardNth1gt33 = PDstandardNth1gt33; + + JacPDstandardNth1phi = PDstandardNth1phi; + + JacPDstandardNth1trK = PDstandardNth1trK; + + JacPDstandardNth2At11 = PDstandardNth2At11; + + JacPDstandardNth2At12 = PDstandardNth2At12; + + JacPDstandardNth2At13 = PDstandardNth2At13; + + JacPDstandardNth2At22 = PDstandardNth2At22; + + JacPDstandardNth2At23 = PDstandardNth2At23; + + JacPDstandardNth2At33 = PDstandardNth2At33; + + JacPDstandardNth2gt11 = PDstandardNth2gt11; + + JacPDstandardNth2gt12 = PDstandardNth2gt12; + + JacPDstandardNth2gt13 = PDstandardNth2gt13; + + JacPDstandardNth2gt22 = PDstandardNth2gt22; + + JacPDstandardNth2gt23 = PDstandardNth2gt23; + + JacPDstandardNth2gt33 = PDstandardNth2gt33; + + JacPDstandardNth2phi = PDstandardNth2phi; + + JacPDstandardNth2trK = PDstandardNth2trK; + + JacPDstandardNth3At11 = PDstandardNth3At11; + + JacPDstandardNth3At12 = PDstandardNth3At12; + + JacPDstandardNth3At13 = PDstandardNth3At13; + + JacPDstandardNth3At22 = PDstandardNth3At22; + + JacPDstandardNth3At23 = PDstandardNth3At23; + + JacPDstandardNth3At33 = PDstandardNth3At33; + + JacPDstandardNth3gt11 = PDstandardNth3gt11; + + JacPDstandardNth3gt12 = PDstandardNth3gt12; + + JacPDstandardNth3gt13 = PDstandardNth3gt13; + + JacPDstandardNth3gt22 = PDstandardNth3gt22; + + JacPDstandardNth3gt23 = PDstandardNth3gt23; + + JacPDstandardNth3gt33 = PDstandardNth3gt33; + + JacPDstandardNth3phi = PDstandardNth3phi; + + JacPDstandardNth3trK = PDstandardNth3trK; + } + CCTK_REAL_VEC detgt = ToReal(1); CCTK_REAL_VEC gtu11 = kmul(INV(detgt),kmsub(gt22L,gt33L,SQR(gt23L))); @@ -235,50 +813,50 @@ static void ML_BSSN_constraints2_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC gtu33 = kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); - CCTK_REAL_VEC Gtl111 = kmul(PDstandardNth1gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl111 = kmul(JacPDstandardNth1gt11,ToReal(0.5)); - CCTK_REAL_VEC Gtl112 = kmul(PDstandardNth2gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl112 = kmul(JacPDstandardNth2gt11,ToReal(0.5)); - CCTK_REAL_VEC Gtl113 = kmul(PDstandardNth3gt11,ToReal(0.5)); + CCTK_REAL_VEC Gtl113 = kmul(JacPDstandardNth3gt11,ToReal(0.5)); CCTK_REAL_VEC Gtl122 = - kmadd(PDstandardNth1gt22,ToReal(-0.5),PDstandardNth2gt12); + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); CCTK_REAL_VEC Gtl123 = - kmul(kadd(PDstandardNth2gt13,ksub(PDstandardNth3gt12,PDstandardNth1gt23)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); CCTK_REAL_VEC Gtl133 = - kmadd(PDstandardNth1gt33,ToReal(-0.5),PDstandardNth3gt13); + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); CCTK_REAL_VEC Gtl211 = - kmadd(PDstandardNth2gt11,ToReal(-0.5),PDstandardNth1gt12); + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); - CCTK_REAL_VEC Gtl212 = kmul(PDstandardNth1gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl212 = kmul(JacPDstandardNth1gt22,ToReal(0.5)); CCTK_REAL_VEC Gtl213 = - kmul(kadd(PDstandardNth1gt23,ksub(PDstandardNth3gt12,PDstandardNth2gt13)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); - CCTK_REAL_VEC Gtl222 = kmul(PDstandardNth2gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl222 = kmul(JacPDstandardNth2gt22,ToReal(0.5)); - CCTK_REAL_VEC Gtl223 = kmul(PDstandardNth3gt22,ToReal(0.5)); + CCTK_REAL_VEC Gtl223 = kmul(JacPDstandardNth3gt22,ToReal(0.5)); CCTK_REAL_VEC Gtl233 = - kmadd(PDstandardNth2gt33,ToReal(-0.5),PDstandardNth3gt23); + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); CCTK_REAL_VEC Gtl311 = - kmadd(PDstandardNth3gt11,ToReal(-0.5),PDstandardNth1gt13); + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); CCTK_REAL_VEC Gtl312 = - kmul(kadd(PDstandardNth1gt23,ksub(PDstandardNth2gt13,PDstandardNth3gt12)),ToReal(0.5)); + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); - CCTK_REAL_VEC Gtl313 = kmul(PDstandardNth1gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl313 = kmul(JacPDstandardNth1gt33,ToReal(0.5)); CCTK_REAL_VEC Gtl322 = - kmadd(PDstandardNth3gt22,ToReal(-0.5),PDstandardNth2gt23); + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); - CCTK_REAL_VEC Gtl323 = kmul(PDstandardNth2gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl323 = kmul(JacPDstandardNth2gt33,ToReal(0.5)); - CCTK_REAL_VEC Gtl333 = kmul(PDstandardNth3gt33,ToReal(0.5)); + CCTK_REAL_VEC Gtl333 = kmul(JacPDstandardNth3gt33,ToReal(0.5)); CCTK_REAL_VEC Gt111 = kmadd(Gtl111,gtu11,kmadd(Gtl211,gtu12,kmul(Gtl311,gtu13))); @@ -337,11 +915,11 @@ static void ML_BSSN_constraints2_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC fac1 = IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); - CCTK_REAL_VEC cdphi1 = kmul(fac1,PDstandardNth1phi); + CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); - CCTK_REAL_VEC cdphi2 = kmul(fac1,PDstandardNth2phi); + CCTK_REAL_VEC cdphi2 = kmul(fac1,JacPDstandardNth2phi); - CCTK_REAL_VEC cdphi3 = kmul(fac1,PDstandardNth3phi); + CCTK_REAL_VEC cdphi3 = kmul(fac1,JacPDstandardNth3phi); CCTK_REAL_VEC S1 = kmul(INV(alphaL),kmadd(beta1L,eTxxL,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))); @@ -353,13 +931,13 @@ static void ML_BSSN_constraints2_Body(cGH const * restrict const cctkGH, int con kmul(INV(alphaL),kmadd(beta1L,eTxzL,kmadd(beta2L,eTyzL,kmsub(beta3L,eTzzL,eTtzL)))); CCTK_REAL_VEC M1L = - kmadd(gtu11,PDstandardNth1At11,kmadd(gtu22,PDstandardNth2At12,kmadd(gtu33,PDstandardNth3At13,kmadd(S1,ToReal(-25.13274122871834590770114706623602307358),kmadd(kmadd(kmadd(At12L,Gt211,kmul(At13L,Gt311)),gtu11,kmul(At11L,kmul(Gt123,gtu23))),ToReal(-2.),kmadd(kmadd(kmadd(At22L,Gt212,kmadd(At12L,kadd(Gt112,Gt222),kmul(At23L,Gt312))),gtu22,kmadd(kmadd(At13L,Gt112,kmadd(At12L,Gt113,kmul(At23L,Gt212))),gtu23,kmul(kmadd(At13L,Gt113,kmadd(At23L,Gt213,kmul(At33L,Gt313))),gtu33))),ToReal(-1.),kmadd(gtu12,kadd(PDstandardNth1At12,kadd(PDstandardNth2At11,kmadd(kmadd(At11L,Gt112,kmadd(At12L,Gt212,kmul(At13L,Gt312))),ToReal(-3.),kmul(kmadd(At22L,Gt211,kmul(At23L,Gt311)),ToReal(-1.))))),kmadd(gtu13,kadd(PDstandardNth1At13,kadd(PDstandardNth3At11,kmadd(kmadd(At11L,Gt113,kmul(At13L,Gt313)),ToReal(-3.),kmul(kmadd(At23L,Gt211,kmul(At33L,Gt311)),ToReal(-1.))))),kmadd(gtu23,kadd(PDstandardNth2At13,kadd(PDstandardNth3At12,kmadd(kmadd(At12L,Gt223,kmul(At13L,Gt323)),ToReal(-2.),kmul(kmadd(At22L,Gt213,kmadd(At33L,Gt312,kmul(At23L,Gt313))),ToReal(-1.))))),kmadd(PDstandardNth1trK,ToReal(-0.6666666666666666666666666666666666666667),kmadd(At11L,kmadd(kmadd(Gt122,gtu22,kmul(Gt133,gtu33)),ToReal(-1.),kmadd(kmadd(cdphi2,gtu12,kmul(cdphi3,gtu13)),ToReal(6.),kmul(gtu11,kmadd(Gt111,ToReal(-2.),kmul(cdphi1,ToReal(6.)))))),kmadd(At12L,kmadd(Gt213,kmul(gtu13,ToReal(-3.)),kmadd(Gt233,kmul(gtu33,ToReal(-1.)),kmadd(kmadd(cdphi2,gtu22,kmul(cdphi3,gtu23)),ToReal(6.),kmul(gtu12,kmadd(Gt111,ToReal(-1.),kmul(cdphi1,ToReal(6.))))))),kmul(At13L,kmadd(kmadd(Gt322,gtu22,kmul(Gt333,gtu33)),ToReal(-1.),kmadd(kmadd(cdphi2,gtu23,kmul(cdphi3,gtu33)),ToReal(6.),kmul(gtu13,kmadd(Gt111,ToReal(-1.),kmul(cdphi1,ToReal(6.))))))))))))))))))); + kmadd(gtu11,JacPDstandardNth1At11,kmadd(gtu22,JacPDstandardNth2At12,kmadd(gtu23,kadd(JacPDstandardNth2At13,JacPDstandardNth3At12),kmadd(gtu33,JacPDstandardNth3At13,kmadd(S1,ToReal(-25.13274122871834590770114706623602307358),kmadd(kmadd(kmadd(At22L,Gt212,kmul(At23L,Gt312)),gtu22,kmadd(kmadd(At13L,Gt112,kmadd(At22L,Gt213,kmadd(At33L,Gt312,kmul(At23L,kadd(Gt212,Gt313))))),gtu23,kmul(kmadd(At13L,Gt113,kmadd(At23L,Gt213,kmul(At33L,Gt313))),gtu33))),ToReal(-1.),kmadd(gtu12,kadd(JacPDstandardNth1At12,kadd(JacPDstandardNth2At11,kmadd(At13L,kmul(Gt312,ToReal(-3.)),kmul(At22L,kmul(Gt211,ToReal(-1.)))))),kmadd(gtu13,kadd(JacPDstandardNth1At13,kadd(JacPDstandardNth3At11,kmadd(At13L,kmul(Gt313,ToReal(-3.)),kmul(At23L,kmul(Gt211,ToReal(-1.)))))),kmadd(Gt311,kmadd(At13L,kmul(gtu11,ToReal(-2.)),kmul(kmadd(At23L,gtu12,kmul(At33L,gtu13)),ToReal(-1.))),kmadd(JacPDstandardNth1trK,ToReal(-0.6666666666666666666666666666666666666667),kmadd(At13L,kmadd(kmadd(Gt322,gtu22,kmul(Gt333,gtu33)),ToReal(-1.),kmadd(cdphi3,kmul(gtu33,ToReal(6.)),kmadd(gtu13,kmadd(Gt111,ToReal(-1.),kmul(cdphi1,ToReal(6.))),kmul(gtu23,kmadd(Gt323,ToReal(-2.),kmul(cdphi2,ToReal(6.))))))),kmadd(At11L,kmadd(Gt123,kmul(gtu23,ToReal(-2.)),kmadd(kmadd(Gt122,gtu22,kmul(Gt133,gtu33)),ToReal(-1.),kmadd(gtu11,kmadd(Gt111,ToReal(-2.),kmul(cdphi1,ToReal(6.))),kmadd(gtu12,kmadd(Gt112,ToReal(-3.),kmul(cdphi2,ToReal(6.))),kmul(gtu13,kmadd(Gt113,ToReal(-3.),kmul(cdphi3,ToReal(6.)))))))),kmul(At12L,kmadd(Gt213,kmul(gtu13,ToReal(-3.)),kmadd(kmadd(Gt211,gtu11,kmul(Gt223,gtu23)),ToReal(-2.),kmadd(Gt233,kmul(gtu33,ToReal(-1.)),kmadd(gtu12,kmadd(Gt212,ToReal(-3.),kmadd(Gt111,ToReal(-1.),kmul(cdphi1,ToReal(6.)))),kmadd(gtu22,kmadd(kadd(Gt112,Gt222),ToReal(-1.),kmul(cdphi2,ToReal(6.))),kmul(gtu23,kmadd(Gt113,ToReal(-1.),kmul(cdphi3,ToReal(6.)))))))))))))))))))))); CCTK_REAL_VEC M2L = - kmadd(gtu11,PDstandardNth1At12,kmadd(gtu22,PDstandardNth2At22,kmadd(gtu33,PDstandardNth3At23,kmadd(S2,ToReal(-25.13274122871834590770114706623602307358),kmadd(kmadd(kmadd(At11L,Gt112,kmadd(At22L,Gt211,kmadd(At12L,Gt212,kmadd(At23L,Gt311,kmul(At13L,Gt312))))),gtu11,kmadd(Gt122,kmadd(At11L,gtu12,kmul(At13L,gtu23)),kmadd(kmadd(At23L,Gt223,kmul(At33L,Gt323)),gtu33,kmul(At13L,kmadd(Gt112,gtu13,kmul(Gt123,gtu33)))))),ToReal(-1.),kmadd(gtu23,kadd(PDstandardNth2At23,kadd(PDstandardNth3At22,kmadd(kmadd(At22L,Gt223,kmul(At23L,Gt323)),ToReal(-3.),kmul(kmadd(At23L,Gt222,kmul(At33L,Gt322)),ToReal(-1.))))),kmadd(PDstandardNth2trK,ToReal(-0.6666666666666666666666666666666666666667),kmadd(At23L,kmadd(Gt322,kmul(gtu22,ToReal(-2.)),kmadd(Gt333,kmul(gtu33,ToReal(-1.)),kmul(kmadd(cdphi2,gtu23,kmul(cdphi3,gtu33)),ToReal(6.)))),kmadd(gtu12,kadd(PDstandardNth1At22,kadd(PDstandardNth2At12,kmadd(At23L,kmul(Gt312,ToReal(-3.)),kmadd(At13L,kmul(Gt322,ToReal(-1.)),kmadd(At12L,kmadd(Gt112,ToReal(-3.),kmul(Gt222,ToReal(-1.))),kmul(At22L,kmadd(Gt212,ToReal(-3.),kmul(cdphi1,ToReal(6.))))))))),kmadd(At12L,kmadd(Gt123,kmul(gtu23,ToReal(-3.)),kmadd(Gt122,kmul(gtu22,ToReal(-2.)),kmadd(Gt133,kmul(gtu33,ToReal(-1.)),kmadd(kmadd(cdphi2,gtu12,kmul(cdphi3,gtu13)),ToReal(6.),kmul(gtu11,kmadd(Gt111,ToReal(-1.),kmul(cdphi1,ToReal(6.)))))))),kmadd(gtu13,kadd(PDstandardNth1At23,kadd(PDstandardNth3At12,kmadd(kmadd(At12L,Gt113,kmul(At22L,Gt213)),ToReal(-2.),kmadd(kmadd(At11L,Gt123,kmadd(At12L,Gt223,kmadd(At33L,Gt312,kmul(At13L,Gt323)))),ToReal(-1.),kmul(At23L,kmadd(Gt313,ToReal(-2.),kmadd(Gt212,ToReal(-1.),kmul(cdphi1,ToReal(6.))))))))),kmul(At22L,kmadd(Gt233,kmul(gtu33,ToReal(-1.)),kmadd(cdphi3,kmul(gtu23,ToReal(6.)),kmul(gtu22,kmadd(Gt222,ToReal(-2.),kmul(cdphi2,ToReal(6.)))))))))))))))))); + kmadd(gtu11,JacPDstandardNth1At12,kmadd(gtu12,kadd(JacPDstandardNth1At22,JacPDstandardNth2At12),kmadd(gtu22,JacPDstandardNth2At22,kmadd(gtu33,JacPDstandardNth3At23,kmadd(S2,ToReal(-25.13274122871834590770114706623602307358),kmadd(kmadd(kmadd(At22L,Gt211,kmadd(At23L,Gt311,kmul(At13L,Gt312))),gtu11,kmadd(kmadd(At23L,Gt212,kmul(At33L,Gt312)),gtu13,kmadd(At11L,kmadd(Gt112,gtu11,kmadd(Gt122,gtu12,kmul(Gt123,gtu13))),kmadd(kmadd(At23L,Gt223,kmul(At33L,Gt323)),gtu33,kmul(At13L,kmadd(Gt322,gtu12,kmadd(Gt112,gtu13,kmadd(Gt122,gtu23,kmul(Gt123,gtu33))))))))),ToReal(-1.),kmadd(gtu23,kadd(JacPDstandardNth2At23,kadd(JacPDstandardNth3At22,kmadd(kmadd(At22L,Gt223,kmul(At23L,Gt323)),ToReal(-3.),kmul(kmadd(At23L,Gt222,kmul(At33L,Gt322)),ToReal(-1.))))),kmadd(gtu13,kadd(JacPDstandardNth1At23,kadd(JacPDstandardNth3At12,kmadd(At23L,kmul(Gt313,ToReal(-2.)),kmul(At13L,kmul(Gt323,ToReal(-1.)))))),kmadd(JacPDstandardNth2trK,ToReal(-0.6666666666666666666666666666666666666667),kmadd(At23L,kmadd(Gt312,kmul(gtu12,ToReal(-3.)),kmadd(Gt322,kmul(gtu22,ToReal(-2.)),kmadd(Gt333,kmul(gtu33,ToReal(-1.)),kmul(kmadd(cdphi1,gtu13,kmadd(cdphi2,gtu23,kmul(cdphi3,gtu33))),ToReal(6.))))),kmadd(At22L,kmadd(kmadd(Gt213,gtu13,kmul(Gt222,gtu22)),ToReal(-2.),kmadd(Gt233,kmul(gtu33,ToReal(-1.)),kmadd(kmadd(cdphi2,gtu22,kmul(cdphi3,gtu23)),ToReal(6.),kmul(gtu12,kmadd(Gt212,ToReal(-3.),kmul(cdphi1,ToReal(6.))))))),kmul(At12L,kmadd(Gt123,kmul(gtu23,ToReal(-3.)),kmadd(Gt122,kmul(gtu22,ToReal(-2.)),kmadd(Gt133,kmul(gtu33,ToReal(-1.)),kmadd(gtu11,kmadd(kadd(Gt111,Gt212),ToReal(-1.),kmul(cdphi1,ToReal(6.))),kmadd(gtu12,kmadd(Gt112,ToReal(-3.),kmadd(Gt222,ToReal(-1.),kmul(cdphi2,ToReal(6.)))),kmul(gtu13,kmadd(Gt113,ToReal(-2.),kmadd(Gt223,ToReal(-1.),kmul(cdphi3,ToReal(6.)))))))))))))))))))))); CCTK_REAL_VEC M3L = - kmadd(gtu11,PDstandardNth1At13,kmadd(gtu22,PDstandardNth2At23,kmadd(S3,ToReal(-25.13274122871834590770114706623602307358),kmadd(kmadd(kmadd(At11L,Gt113,kmadd(At23L,Gt211,kmadd(At12L,Gt213,kmul(At33L,Gt311)))),gtu11,kmadd(kmadd(At22L,Gt223,kmadd(At33L,Gt322,kmul(At23L,Gt323))),gtu22,kmadd(At12L,kmadd(Gt113,gtu12,kmul(Gt123,gtu22)),kmul(Gt133,kmadd(At11L,gtu13,kmul(At12L,gtu23)))))),ToReal(-1.),kmadd(PDstandardNth3trK,ToReal(-0.6666666666666666666666666666666666666667),kmadd(gtu13,kadd(PDstandardNth1At33,kadd(PDstandardNth3At13,kmadd(kmadd(At13L,Gt113,kmul(At23L,Gt213)),ToReal(-3.),kmadd(kmadd(At12L,Gt233,kmul(At13L,Gt333)),ToReal(-1.),kmul(At33L,kmadd(Gt313,ToReal(-3.),kmul(cdphi1,ToReal(6.)))))))),kmadd(gtu12,kadd(PDstandardNth1At23,kadd(PDstandardNth2At13,kmadd(kmadd(At13L,Gt112,kmul(At33L,Gt312)),ToReal(-2.),kmadd(kmadd(At11L,Gt123,kmadd(At22L,Gt213,kmadd(At12L,Gt223,kmul(At13L,Gt323)))),ToReal(-1.),kmul(At23L,kmadd(Gt212,ToReal(-2.),kmadd(Gt313,ToReal(-1.),kmul(cdphi1,ToReal(6.))))))))),kmadd(At13L,kmadd(Gt123,kmul(gtu23,ToReal(-3.)),kmadd(Gt133,kmul(gtu33,ToReal(-2.)),kmadd(Gt122,kmul(gtu22,ToReal(-1.)),kmadd(kmadd(cdphi2,gtu12,kmul(cdphi3,gtu13)),ToReal(6.),kmul(gtu11,kmadd(kadd(Gt111,Gt313),ToReal(-1.),kmul(cdphi1,ToReal(6.)))))))),kmadd(gtu23,kadd(PDstandardNth2At33,kadd(PDstandardNth3At23,kmadd(At22L,kmul(Gt233,ToReal(-1.)),kmadd(At23L,kmadd(Gt223,ToReal(-3.),kmul(Gt333,ToReal(-1.))),kmul(At33L,kmadd(Gt323,ToReal(-3.),kmul(cdphi2,ToReal(6.)))))))),kmadd(At23L,kmadd(Gt233,kmul(gtu33,ToReal(-2.)),kmadd(cdphi3,kmul(gtu23,ToReal(6.)),kmul(gtu22,kmadd(Gt222,ToReal(-1.),kmul(cdphi2,ToReal(6.)))))),kmul(gtu33,kmadd(At33L,kmadd(Gt333,ToReal(-2.),kmul(cdphi3,ToReal(6.))),PDstandardNth3At33)))))))))))); + kmadd(gtu11,JacPDstandardNth1At13,kmadd(gtu22,JacPDstandardNth2At23,kmadd(gtu13,kadd(JacPDstandardNth1At33,JacPDstandardNth3At13),kmadd(gtu33,JacPDstandardNth3At33,kmadd(S3,ToReal(-25.13274122871834590770114706623602307358),kmadd(kmadd(kmadd(At23L,Gt211,kmadd(At12L,Gt213,kmul(At33L,Gt311))),gtu11,kmadd(kmadd(At22L,Gt213,kmul(At12L,kadd(Gt113,Gt223))),gtu12,kmadd(At11L,kmadd(Gt113,gtu11,kmadd(Gt123,gtu12,kmul(Gt133,gtu13))),kmadd(kmadd(At23L,Gt222,kmul(At22L,Gt223)),gtu22,kmul(At12L,kmadd(Gt233,gtu13,kmadd(Gt123,gtu22,kmul(Gt133,gtu23)))))))),ToReal(-1.),kmadd(gtu12,kadd(JacPDstandardNth1At23,kadd(JacPDstandardNth2At13,kmadd(At33L,kmul(Gt312,ToReal(-2.)),kmul(At23L,kmul(Gt313,ToReal(-1.)))))),kmadd(gtu23,kadd(JacPDstandardNth2At33,kadd(JacPDstandardNth3At23,kmadd(kmadd(At23L,Gt223,kmul(At33L,Gt323)),ToReal(-3.),kmul(kmadd(At22L,Gt233,kmul(At23L,Gt333)),ToReal(-1.))))),kmadd(JacPDstandardNth3trK,ToReal(-0.6666666666666666666666666666666666666667),kmadd(At33L,kmadd(Gt333,kmul(gtu33,ToReal(-2.)),kmadd(Gt322,kmul(gtu22,ToReal(-1.)),kmadd(kmadd(cdphi2,gtu23,kmul(cdphi3,gtu33)),ToReal(6.),kmul(gtu13,kmadd(Gt313,ToReal(-3.),kmul(cdphi1,ToReal(6.))))))),kmadd(At23L,kmadd(Gt213,kmul(gtu13,ToReal(-3.)),kmadd(Gt233,kmul(gtu33,ToReal(-2.)),kmadd(cdphi3,kmul(gtu23,ToReal(6.)),kmadd(gtu12,kmadd(Gt212,ToReal(-2.),kmul(cdphi1,ToReal(6.))),kmul(gtu22,kmadd(Gt323,ToReal(-1.),kmul(cdphi2,ToReal(6.)))))))),kmul(At13L,kmadd(Gt123,kmul(gtu23,ToReal(-3.)),kmadd(Gt133,kmul(gtu33,ToReal(-2.)),kmadd(Gt122,kmul(gtu22,ToReal(-1.)),kmadd(gtu11,kmadd(kadd(Gt111,Gt313),ToReal(-1.),kmul(cdphi1,ToReal(6.))),kmadd(gtu12,kmadd(Gt112,ToReal(-2.),kmadd(Gt323,ToReal(-1.),kmul(cdphi2,ToReal(6.)))),kmul(gtu13,kmadd(Gt113,ToReal(-3.),kmadd(Gt333,ToReal(-1.),kmul(cdphi3,ToReal(6.)))))))))))))))))))))); CCTK_REAL_VEC cSL = klog(detgt); diff --git a/ML_BSSN/src/ML_BSSN_convertFromADMBase.cc b/ML_BSSN/src/ML_BSSN_convertFromADMBase.cc index 74f09e9..685f1de 100644 --- a/ML_BSSN/src/ML_BSSN_convertFromADMBase.cc +++ b/ML_BSSN/src/ML_BSSN_convertFromADMBase.cc @@ -43,6 +43,20 @@ static void ML_BSSN_convertFromADMBase_Body(cGH const * restrict const cctkGH, i const char *groups[] = {"ADMBase::curv","ADMBase::lapse","ADMBase::metric","ADMBase::shift","ML_BSSN::ML_curv","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertFromADMBase", 10, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -70,24 +84,129 @@ static void ML_BSSN_convertFromADMBase_Body(cGH const * restrict const cctkGH, i CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -120,10 +239,26 @@ static void ML_BSSN_convertFromADMBase_Body(cGH const * restrict const cctkGH, i CCTK_REAL_VEC trKL = vec_load(trK[index]); + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC g11 = gxxL; diff --git a/ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.cc b/ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.cc index 4d543bd..ab6f76c 100644 --- a/ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.cc +++ b/ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.cc @@ -61,7 +61,24 @@ static void ML_BSSN_convertFromADMBaseGamma_Body(cGH const * restrict const cctk const char *groups[] = {"ADMBase::dtlapse","ADMBase::dtshift","grid::coordinates","Grid::coordinates","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtshift","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_metric","ML_BSSN::ML_shift"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertFromADMBaseGamma", 10, groups); - GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertFromADMBaseGamma", 3, 3, 3); + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertFromADMBaseGamma", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertFromADMBaseGamma", 3, 3, 3); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertFromADMBaseGamma", 4, 4, 4); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertFromADMBaseGamma", 5, 5, 5); + break; + } /* Include user-supplied include files */ @@ -89,24 +106,129 @@ static void ML_BSSN_convertFromADMBaseGamma_Body(cGH const * restrict const cctk CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -136,53 +258,509 @@ static void ML_BSSN_convertFromADMBaseGamma_Body(cGH const * restrict const cctk CCTK_REAL_VEC rL = vec_load(r[index]); + CCTK_REAL_VEC J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + /* Include user supplied include files */ /* Precompute derivatives */ - CCTK_REAL_VEC const PDupwindNthAnti1alpha = PDupwindNthAnti1(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm1alpha = PDupwindNthSymm1(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti2alpha = PDupwindNthAnti2(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm2alpha = PDupwindNthSymm2(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti3alpha = PDupwindNthAnti3(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm3alpha = PDupwindNthSymm3(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta1 = PDupwindNthAnti1(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta1 = PDupwindNthSymm1(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta1 = PDupwindNthAnti2(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta1 = PDupwindNthSymm2(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta1 = PDupwindNthAnti3(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta1 = PDupwindNthSymm3(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta2 = PDupwindNthAnti1(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta2 = PDupwindNthSymm1(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta2 = PDupwindNthAnti2(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta2 = PDupwindNthSymm2(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta2 = PDupwindNthAnti3(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta2 = PDupwindNthSymm3(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta3 = PDupwindNthAnti1(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta3 = PDupwindNthSymm1(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta3 = PDupwindNthAnti2(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta3 = PDupwindNthSymm2(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta3 = PDupwindNthAnti3(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta3 = PDupwindNthSymm3(&beta3[index]); - CCTK_REAL_VEC const PDstandardNth1gt11 = PDstandardNth1(>11[index]); - CCTK_REAL_VEC const PDstandardNth2gt11 = PDstandardNth2(>11[index]); - CCTK_REAL_VEC const PDstandardNth3gt11 = PDstandardNth3(>11[index]); - CCTK_REAL_VEC const PDstandardNth1gt12 = PDstandardNth1(>12[index]); - CCTK_REAL_VEC const PDstandardNth2gt12 = PDstandardNth2(>12[index]); - CCTK_REAL_VEC const PDstandardNth3gt12 = PDstandardNth3(>12[index]); - CCTK_REAL_VEC const PDstandardNth1gt13 = PDstandardNth1(>13[index]); - CCTK_REAL_VEC const PDstandardNth2gt13 = PDstandardNth2(>13[index]); - CCTK_REAL_VEC const PDstandardNth3gt13 = PDstandardNth3(>13[index]); - CCTK_REAL_VEC const PDstandardNth1gt22 = PDstandardNth1(>22[index]); - CCTK_REAL_VEC const PDstandardNth2gt22 = PDstandardNth2(>22[index]); - CCTK_REAL_VEC const PDstandardNth3gt22 = PDstandardNth3(>22[index]); - CCTK_REAL_VEC const PDstandardNth1gt23 = PDstandardNth1(>23[index]); - CCTK_REAL_VEC const PDstandardNth2gt23 = PDstandardNth2(>23[index]); - CCTK_REAL_VEC const PDstandardNth3gt23 = PDstandardNth3(>23[index]); - CCTK_REAL_VEC const PDstandardNth1gt33 = PDstandardNth1(>33[index]); - CCTK_REAL_VEC const PDstandardNth2gt33 = PDstandardNth2(>33[index]); - CCTK_REAL_VEC const PDstandardNth3gt33 = PDstandardNth3(>33[index]); + CCTK_REAL_VEC PDupwindNthAnti1alpha; + CCTK_REAL_VEC PDupwindNthSymm1alpha; + CCTK_REAL_VEC PDupwindNthAnti2alpha; + CCTK_REAL_VEC PDupwindNthSymm2alpha; + CCTK_REAL_VEC PDupwindNthAnti3alpha; + CCTK_REAL_VEC PDupwindNthSymm3alpha; + CCTK_REAL_VEC PDupwindNthAnti1beta1; + CCTK_REAL_VEC PDupwindNthSymm1beta1; + CCTK_REAL_VEC PDupwindNthAnti2beta1; + CCTK_REAL_VEC PDupwindNthSymm2beta1; + CCTK_REAL_VEC PDupwindNthAnti3beta1; + CCTK_REAL_VEC PDupwindNthSymm3beta1; + CCTK_REAL_VEC PDupwindNthAnti1beta2; + CCTK_REAL_VEC PDupwindNthSymm1beta2; + CCTK_REAL_VEC PDupwindNthAnti2beta2; + CCTK_REAL_VEC PDupwindNthSymm2beta2; + CCTK_REAL_VEC PDupwindNthAnti3beta2; + CCTK_REAL_VEC PDupwindNthSymm3beta2; + CCTK_REAL_VEC PDupwindNthAnti1beta3; + CCTK_REAL_VEC PDupwindNthSymm1beta3; + CCTK_REAL_VEC PDupwindNthAnti2beta3; + CCTK_REAL_VEC PDupwindNthSymm2beta3; + CCTK_REAL_VEC PDupwindNthAnti3beta3; + CCTK_REAL_VEC PDupwindNthSymm3beta3; + CCTK_REAL_VEC PDstandardNth1gt11; + CCTK_REAL_VEC PDstandardNth2gt11; + CCTK_REAL_VEC PDstandardNth3gt11; + CCTK_REAL_VEC PDstandardNth1gt12; + CCTK_REAL_VEC PDstandardNth2gt12; + CCTK_REAL_VEC PDstandardNth3gt12; + CCTK_REAL_VEC PDstandardNth1gt13; + CCTK_REAL_VEC PDstandardNth2gt13; + CCTK_REAL_VEC PDstandardNth3gt13; + CCTK_REAL_VEC PDstandardNth1gt22; + CCTK_REAL_VEC PDstandardNth2gt22; + CCTK_REAL_VEC PDstandardNth3gt22; + CCTK_REAL_VEC PDstandardNth1gt23; + CCTK_REAL_VEC PDstandardNth2gt23; + CCTK_REAL_VEC PDstandardNth3gt23; + CCTK_REAL_VEC PDstandardNth1gt33; + CCTK_REAL_VEC PDstandardNth2gt33; + CCTK_REAL_VEC PDstandardNth3gt33; + + switch(fdOrder) + { + case 2: + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder21(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder21(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder22(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder22(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder23(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder23(&alpha[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder21(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder21(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder22(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder22(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder23(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder23(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder21(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder21(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder22(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder22(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder23(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder23(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder21(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder21(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder22(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder22(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder23(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder23(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder21(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder22(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder23(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder21(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder22(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder23(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder21(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder22(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder23(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder21(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder22(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder23(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder21(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder22(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder23(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder21(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder22(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder23(>33[index]); + break; + + case 4: + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder41(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder41(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder42(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder42(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder43(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder43(&alpha[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder41(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder41(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder42(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder42(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder43(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder43(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder41(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder41(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder42(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder42(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder43(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder43(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder41(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder41(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder42(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder42(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder43(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder43(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder41(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder42(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder43(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder41(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder42(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder43(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder41(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder42(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder43(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder41(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder42(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder43(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder41(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder42(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder43(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder41(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder42(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder43(>33[index]); + break; + + case 6: + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder61(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder61(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder62(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder62(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder63(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder63(&alpha[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder61(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder61(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder62(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder62(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder63(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder63(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder61(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder61(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder62(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder62(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder63(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder63(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder61(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder61(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder62(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder62(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder63(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder63(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder61(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder62(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder63(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder61(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder62(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder63(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder61(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder62(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder63(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder61(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder62(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder63(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder61(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder62(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder63(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder61(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder62(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder63(>33[index]); + break; + + case 8: + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder81(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder81(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder82(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder82(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder83(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder83(&alpha[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder81(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder81(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder82(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder82(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder83(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder83(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder81(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder81(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder82(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder82(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder83(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder83(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder81(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder81(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder82(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder82(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder83(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder83(&beta3[index]); + PDstandardNth1gt11 = PDstandardNthfdOrder81(>11[index]); + PDstandardNth2gt11 = PDstandardNthfdOrder82(>11[index]); + PDstandardNth3gt11 = PDstandardNthfdOrder83(>11[index]); + PDstandardNth1gt12 = PDstandardNthfdOrder81(>12[index]); + PDstandardNth2gt12 = PDstandardNthfdOrder82(>12[index]); + PDstandardNth3gt12 = PDstandardNthfdOrder83(>12[index]); + PDstandardNth1gt13 = PDstandardNthfdOrder81(>13[index]); + PDstandardNth2gt13 = PDstandardNthfdOrder82(>13[index]); + PDstandardNth3gt13 = PDstandardNthfdOrder83(>13[index]); + PDstandardNth1gt22 = PDstandardNthfdOrder81(>22[index]); + PDstandardNth2gt22 = PDstandardNthfdOrder82(>22[index]); + PDstandardNth3gt22 = PDstandardNthfdOrder83(>22[index]); + PDstandardNth1gt23 = PDstandardNthfdOrder81(>23[index]); + PDstandardNth2gt23 = PDstandardNthfdOrder82(>23[index]); + PDstandardNth3gt23 = PDstandardNthfdOrder83(>23[index]); + PDstandardNth1gt33 = PDstandardNthfdOrder81(>33[index]); + PDstandardNth2gt33 = PDstandardNthfdOrder82(>33[index]); + PDstandardNth3gt33 = PDstandardNthfdOrder83(>33[index]); + break; + } /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDstandardNth1gt11; + CCTK_REAL_VEC JacPDstandardNth1gt12; + CCTK_REAL_VEC JacPDstandardNth1gt13; + CCTK_REAL_VEC JacPDstandardNth1gt22; + CCTK_REAL_VEC JacPDstandardNth1gt23; + CCTK_REAL_VEC JacPDstandardNth1gt33; + CCTK_REAL_VEC JacPDstandardNth2gt11; + CCTK_REAL_VEC JacPDstandardNth2gt12; + CCTK_REAL_VEC JacPDstandardNth2gt13; + CCTK_REAL_VEC JacPDstandardNth2gt22; + CCTK_REAL_VEC JacPDstandardNth2gt23; + CCTK_REAL_VEC JacPDstandardNth2gt33; + CCTK_REAL_VEC JacPDstandardNth3gt11; + CCTK_REAL_VEC JacPDstandardNth3gt12; + CCTK_REAL_VEC JacPDstandardNth3gt13; + CCTK_REAL_VEC JacPDstandardNth3gt22; + CCTK_REAL_VEC JacPDstandardNth3gt23; + CCTK_REAL_VEC JacPDstandardNth3gt33; + CCTK_REAL_VEC JacPDupwindNthAnti1alpha; + CCTK_REAL_VEC JacPDupwindNthAnti1beta1; + CCTK_REAL_VEC JacPDupwindNthAnti1beta2; + CCTK_REAL_VEC JacPDupwindNthAnti1beta3; + CCTK_REAL_VEC JacPDupwindNthAnti2alpha; + CCTK_REAL_VEC JacPDupwindNthAnti2beta1; + CCTK_REAL_VEC JacPDupwindNthAnti2beta2; + CCTK_REAL_VEC JacPDupwindNthAnti2beta3; + CCTK_REAL_VEC JacPDupwindNthAnti3alpha; + CCTK_REAL_VEC JacPDupwindNthAnti3beta1; + CCTK_REAL_VEC JacPDupwindNthAnti3beta2; + CCTK_REAL_VEC JacPDupwindNthAnti3beta3; + CCTK_REAL_VEC JacPDupwindNthSymm1alpha; + CCTK_REAL_VEC JacPDupwindNthSymm1beta1; + CCTK_REAL_VEC JacPDupwindNthSymm1beta2; + CCTK_REAL_VEC JacPDupwindNthSymm1beta3; + CCTK_REAL_VEC JacPDupwindNthSymm2alpha; + CCTK_REAL_VEC JacPDupwindNthSymm2beta1; + CCTK_REAL_VEC JacPDupwindNthSymm2beta2; + CCTK_REAL_VEC JacPDupwindNthSymm2beta3; + CCTK_REAL_VEC JacPDupwindNthSymm3alpha; + CCTK_REAL_VEC JacPDupwindNthSymm3beta1; + CCTK_REAL_VEC JacPDupwindNthSymm3beta2; + CCTK_REAL_VEC JacPDupwindNthSymm3beta3; + + if (use_jacobian) + { + JacPDstandardNth1gt11 = + kmadd(J11L,PDstandardNth1gt11,kmadd(J21L,PDstandardNth2gt11,kmul(J31L,PDstandardNth3gt11))); + + JacPDstandardNth1gt12 = + kmadd(J11L,PDstandardNth1gt12,kmadd(J21L,PDstandardNth2gt12,kmul(J31L,PDstandardNth3gt12))); + + JacPDstandardNth1gt13 = + kmadd(J11L,PDstandardNth1gt13,kmadd(J21L,PDstandardNth2gt13,kmul(J31L,PDstandardNth3gt13))); + + JacPDstandardNth1gt22 = + kmadd(J11L,PDstandardNth1gt22,kmadd(J21L,PDstandardNth2gt22,kmul(J31L,PDstandardNth3gt22))); + + JacPDstandardNth1gt23 = + kmadd(J11L,PDstandardNth1gt23,kmadd(J21L,PDstandardNth2gt23,kmul(J31L,PDstandardNth3gt23))); + + JacPDstandardNth1gt33 = + kmadd(J11L,PDstandardNth1gt33,kmadd(J21L,PDstandardNth2gt33,kmul(J31L,PDstandardNth3gt33))); + + JacPDstandardNth2gt11 = + kmadd(J12L,PDstandardNth1gt11,kmadd(J22L,PDstandardNth2gt11,kmul(J32L,PDstandardNth3gt11))); + + JacPDstandardNth2gt12 = + kmadd(J12L,PDstandardNth1gt12,kmadd(J22L,PDstandardNth2gt12,kmul(J32L,PDstandardNth3gt12))); + + JacPDstandardNth2gt13 = + kmadd(J12L,PDstandardNth1gt13,kmadd(J22L,PDstandardNth2gt13,kmul(J32L,PDstandardNth3gt13))); + + JacPDstandardNth2gt22 = + kmadd(J12L,PDstandardNth1gt22,kmadd(J22L,PDstandardNth2gt22,kmul(J32L,PDstandardNth3gt22))); + + JacPDstandardNth2gt23 = + kmadd(J12L,PDstandardNth1gt23,kmadd(J22L,PDstandardNth2gt23,kmul(J32L,PDstandardNth3gt23))); + + JacPDstandardNth2gt33 = + kmadd(J12L,PDstandardNth1gt33,kmadd(J22L,PDstandardNth2gt33,kmul(J32L,PDstandardNth3gt33))); + + JacPDstandardNth3gt11 = + kmadd(J13L,PDstandardNth1gt11,kmadd(J23L,PDstandardNth2gt11,kmul(J33L,PDstandardNth3gt11))); + + JacPDstandardNth3gt12 = + kmadd(J13L,PDstandardNth1gt12,kmadd(J23L,PDstandardNth2gt12,kmul(J33L,PDstandardNth3gt12))); + + JacPDstandardNth3gt13 = + kmadd(J13L,PDstandardNth1gt13,kmadd(J23L,PDstandardNth2gt13,kmul(J33L,PDstandardNth3gt13))); + + JacPDstandardNth3gt22 = + kmadd(J13L,PDstandardNth1gt22,kmadd(J23L,PDstandardNth2gt22,kmul(J33L,PDstandardNth3gt22))); + + JacPDstandardNth3gt23 = + kmadd(J13L,PDstandardNth1gt23,kmadd(J23L,PDstandardNth2gt23,kmul(J33L,PDstandardNth3gt23))); + + JacPDstandardNth3gt33 = + kmadd(J13L,PDstandardNth1gt33,kmadd(J23L,PDstandardNth2gt33,kmul(J33L,PDstandardNth3gt33))); + + JacPDupwindNthAnti1alpha = + kmadd(J11L,PDupwindNthAnti1alpha,kmadd(J21L,PDupwindNthAnti2alpha,kmul(J31L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti1beta1 = + kmadd(J11L,PDupwindNthAnti1beta1,kmadd(J21L,PDupwindNthAnti2beta1,kmul(J31L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti1beta2 = + kmadd(J11L,PDupwindNthAnti1beta2,kmadd(J21L,PDupwindNthAnti2beta2,kmul(J31L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti1beta3 = + kmadd(J11L,PDupwindNthAnti1beta3,kmadd(J21L,PDupwindNthAnti2beta3,kmul(J31L,PDupwindNthAnti3beta3))); + + JacPDupwindNthSymm1alpha = + kmadd(J11L,PDupwindNthSymm1alpha,kmadd(J21L,PDupwindNthSymm2alpha,kmul(J31L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm1beta1 = + kmadd(J11L,PDupwindNthSymm1beta1,kmadd(J21L,PDupwindNthSymm2beta1,kmul(J31L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm1beta2 = + kmadd(J11L,PDupwindNthSymm1beta2,kmadd(J21L,PDupwindNthSymm2beta2,kmul(J31L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm1beta3 = + kmadd(J11L,PDupwindNthSymm1beta3,kmadd(J21L,PDupwindNthSymm2beta3,kmul(J31L,PDupwindNthSymm3beta3))); + + JacPDupwindNthAnti2alpha = + kmadd(J12L,PDupwindNthAnti1alpha,kmadd(J22L,PDupwindNthAnti2alpha,kmul(J32L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti2beta1 = + kmadd(J12L,PDupwindNthAnti1beta1,kmadd(J22L,PDupwindNthAnti2beta1,kmul(J32L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti2beta2 = + kmadd(J12L,PDupwindNthAnti1beta2,kmadd(J22L,PDupwindNthAnti2beta2,kmul(J32L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti2beta3 = + kmadd(J12L,PDupwindNthAnti1beta3,kmadd(J22L,PDupwindNthAnti2beta3,kmul(J32L,PDupwindNthAnti3beta3))); + + JacPDupwindNthSymm2alpha = + kmadd(J12L,PDupwindNthSymm1alpha,kmadd(J22L,PDupwindNthSymm2alpha,kmul(J32L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm2beta1 = + kmadd(J12L,PDupwindNthSymm1beta1,kmadd(J22L,PDupwindNthSymm2beta1,kmul(J32L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm2beta2 = + kmadd(J12L,PDupwindNthSymm1beta2,kmadd(J22L,PDupwindNthSymm2beta2,kmul(J32L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm2beta3 = + kmadd(J12L,PDupwindNthSymm1beta3,kmadd(J22L,PDupwindNthSymm2beta3,kmul(J32L,PDupwindNthSymm3beta3))); + + JacPDupwindNthAnti3alpha = + kmadd(J13L,PDupwindNthAnti1alpha,kmadd(J23L,PDupwindNthAnti2alpha,kmul(J33L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti3beta1 = + kmadd(J13L,PDupwindNthAnti1beta1,kmadd(J23L,PDupwindNthAnti2beta1,kmul(J33L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti3beta2 = + kmadd(J13L,PDupwindNthAnti1beta2,kmadd(J23L,PDupwindNthAnti2beta2,kmul(J33L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti3beta3 = + kmadd(J13L,PDupwindNthAnti1beta3,kmadd(J23L,PDupwindNthAnti2beta3,kmul(J33L,PDupwindNthAnti3beta3))); + + JacPDupwindNthSymm3alpha = + kmadd(J13L,PDupwindNthSymm1alpha,kmadd(J23L,PDupwindNthSymm2alpha,kmul(J33L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm3beta1 = + kmadd(J13L,PDupwindNthSymm1beta1,kmadd(J23L,PDupwindNthSymm2beta1,kmul(J33L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm3beta2 = + kmadd(J13L,PDupwindNthSymm1beta2,kmadd(J23L,PDupwindNthSymm2beta2,kmul(J33L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm3beta3 = + kmadd(J13L,PDupwindNthSymm1beta3,kmadd(J23L,PDupwindNthSymm2beta3,kmul(J33L,PDupwindNthSymm3beta3))); + } + else + { + JacPDstandardNth1gt11 = PDstandardNth1gt11; + + JacPDstandardNth1gt12 = PDstandardNth1gt12; + + JacPDstandardNth1gt13 = PDstandardNth1gt13; + + JacPDstandardNth1gt22 = PDstandardNth1gt22; + + JacPDstandardNth1gt23 = PDstandardNth1gt23; + + JacPDstandardNth1gt33 = PDstandardNth1gt33; + + JacPDstandardNth2gt11 = PDstandardNth2gt11; + + JacPDstandardNth2gt12 = PDstandardNth2gt12; + + JacPDstandardNth2gt13 = PDstandardNth2gt13; + + JacPDstandardNth2gt22 = PDstandardNth2gt22; + + JacPDstandardNth2gt23 = PDstandardNth2gt23; + + JacPDstandardNth2gt33 = PDstandardNth2gt33; + + JacPDstandardNth3gt11 = PDstandardNth3gt11; + + JacPDstandardNth3gt12 = PDstandardNth3gt12; + + JacPDstandardNth3gt13 = PDstandardNth3gt13; + + JacPDstandardNth3gt22 = PDstandardNth3gt22; + + JacPDstandardNth3gt23 = PDstandardNth3gt23; + + JacPDstandardNth3gt33 = PDstandardNth3gt33; + + JacPDupwindNthAnti1alpha = PDupwindNthAnti1alpha; + + JacPDupwindNthAnti1beta1 = PDupwindNthAnti1beta1; + + JacPDupwindNthAnti1beta2 = PDupwindNthAnti1beta2; + + JacPDupwindNthAnti1beta3 = PDupwindNthAnti1beta3; + + JacPDupwindNthSymm1alpha = PDupwindNthSymm1alpha; + + JacPDupwindNthSymm1beta1 = PDupwindNthSymm1beta1; + + JacPDupwindNthSymm1beta2 = PDupwindNthSymm1beta2; + + JacPDupwindNthSymm1beta3 = PDupwindNthSymm1beta3; + + JacPDupwindNthAnti2alpha = PDupwindNthAnti2alpha; + + JacPDupwindNthAnti2beta1 = PDupwindNthAnti2beta1; + + JacPDupwindNthAnti2beta2 = PDupwindNthAnti2beta2; + + JacPDupwindNthAnti2beta3 = PDupwindNthAnti2beta3; + + JacPDupwindNthSymm2alpha = PDupwindNthSymm2alpha; + + JacPDupwindNthSymm2beta1 = PDupwindNthSymm2beta1; + + JacPDupwindNthSymm2beta2 = PDupwindNthSymm2beta2; + + JacPDupwindNthSymm2beta3 = PDupwindNthSymm2beta3; + + JacPDupwindNthAnti3alpha = PDupwindNthAnti3alpha; + + JacPDupwindNthAnti3beta1 = PDupwindNthAnti3beta1; + + JacPDupwindNthAnti3beta2 = PDupwindNthAnti3beta2; + + JacPDupwindNthAnti3beta3 = PDupwindNthAnti3beta3; + + JacPDupwindNthSymm3alpha = PDupwindNthSymm3alpha; + + JacPDupwindNthSymm3beta1 = PDupwindNthSymm3beta1; + + JacPDupwindNthSymm3beta2 = PDupwindNthSymm3beta2; + + JacPDupwindNthSymm3beta3 = PDupwindNthSymm3beta3; + } + ptrdiff_t dir1 = Sign(beta1L); ptrdiff_t dir2 = Sign(beta2L); @@ -207,58 +785,58 @@ static void ML_BSSN_convertFromADMBaseGamma_Body(cGH const * restrict const cctk CCTK_REAL_VEC gtu33 = kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); CCTK_REAL_VEC Gt111 = - kmul(ToReal(0.5),kmadd(gtu11,PDstandardNth1gt11,knmsub(gtu12,PDstandardNth2gt11,kmsub(kmadd(gtu12,PDstandardNth1gt12,kmul(gtu13,PDstandardNth1gt13)),ToReal(2),kmul(gtu13,PDstandardNth3gt11))))); + kmul(ToReal(0.5),kmadd(gtu11,JacPDstandardNth1gt11,knmsub(gtu12,JacPDstandardNth2gt11,kmsub(kmadd(gtu12,JacPDstandardNth1gt12,kmul(gtu13,JacPDstandardNth1gt13)),ToReal(2),kmul(gtu13,JacPDstandardNth3gt11))))); CCTK_REAL_VEC Gt211 = - kmul(ToReal(0.5),kmadd(gtu12,PDstandardNth1gt11,knmsub(gtu22,PDstandardNth2gt11,kmsub(kmadd(gtu22,PDstandardNth1gt12,kmul(gtu23,PDstandardNth1gt13)),ToReal(2),kmul(gtu23,PDstandardNth3gt11))))); + kmul(ToReal(0.5),kmadd(gtu12,JacPDstandardNth1gt11,knmsub(gtu22,JacPDstandardNth2gt11,kmsub(kmadd(gtu22,JacPDstandardNth1gt12,kmul(gtu23,JacPDstandardNth1gt13)),ToReal(2),kmul(gtu23,JacPDstandardNth3gt11))))); CCTK_REAL_VEC Gt311 = - kmul(ToReal(0.5),kmadd(gtu13,PDstandardNth1gt11,knmsub(gtu23,PDstandardNth2gt11,kmsub(kmadd(gtu23,PDstandardNth1gt12,kmul(gtu33,PDstandardNth1gt13)),ToReal(2),kmul(gtu33,PDstandardNth3gt11))))); + kmul(ToReal(0.5),kmadd(gtu13,JacPDstandardNth1gt11,knmsub(gtu23,JacPDstandardNth2gt11,kmsub(kmadd(gtu23,JacPDstandardNth1gt12,kmul(gtu33,JacPDstandardNth1gt13)),ToReal(2),kmul(gtu33,JacPDstandardNth3gt11))))); CCTK_REAL_VEC Gt112 = - kmul(kmadd(gtu12,PDstandardNth1gt22,kmadd(gtu11,PDstandardNth2gt11,kmul(gtu13,kadd(PDstandardNth1gt23,ksub(PDstandardNth2gt13,PDstandardNth3gt12))))),ToReal(0.5)); + kmul(kmadd(gtu12,JacPDstandardNth1gt22,kmadd(gtu11,JacPDstandardNth2gt11,kmul(gtu13,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12))))),ToReal(0.5)); CCTK_REAL_VEC Gt212 = - kmul(kmadd(gtu22,PDstandardNth1gt22,kmadd(gtu12,PDstandardNth2gt11,kmul(gtu23,kadd(PDstandardNth1gt23,ksub(PDstandardNth2gt13,PDstandardNth3gt12))))),ToReal(0.5)); + kmul(kmadd(gtu22,JacPDstandardNth1gt22,kmadd(gtu12,JacPDstandardNth2gt11,kmul(gtu23,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12))))),ToReal(0.5)); CCTK_REAL_VEC Gt312 = - kmul(kmadd(gtu23,PDstandardNth1gt22,kmadd(gtu13,PDstandardNth2gt11,kmul(gtu33,kadd(PDstandardNth1gt23,ksub(PDstandardNth2gt13,PDstandardNth3gt12))))),ToReal(0.5)); + kmul(kmadd(gtu23,JacPDstandardNth1gt22,kmadd(gtu13,JacPDstandardNth2gt11,kmul(gtu33,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12))))),ToReal(0.5)); CCTK_REAL_VEC Gt113 = - kmul(kmadd(gtu13,PDstandardNth1gt33,kmadd(gtu11,PDstandardNth3gt11,kmul(gtu12,kadd(PDstandardNth1gt23,ksub(PDstandardNth3gt12,PDstandardNth2gt13))))),ToReal(0.5)); + kmul(kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu11,JacPDstandardNth3gt11,kmul(gtu12,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13))))),ToReal(0.5)); CCTK_REAL_VEC Gt213 = - kmul(kmadd(gtu23,PDstandardNth1gt33,kmadd(gtu12,PDstandardNth3gt11,kmul(gtu22,kadd(PDstandardNth1gt23,ksub(PDstandardNth3gt12,PDstandardNth2gt13))))),ToReal(0.5)); + kmul(kmadd(gtu23,JacPDstandardNth1gt33,kmadd(gtu12,JacPDstandardNth3gt11,kmul(gtu22,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13))))),ToReal(0.5)); CCTK_REAL_VEC Gt313 = - kmul(kmadd(gtu33,PDstandardNth1gt33,kmadd(gtu13,PDstandardNth3gt11,kmul(gtu23,kadd(PDstandardNth1gt23,ksub(PDstandardNth3gt12,PDstandardNth2gt13))))),ToReal(0.5)); + kmul(kmadd(gtu33,JacPDstandardNth1gt33,kmadd(gtu13,JacPDstandardNth3gt11,kmul(gtu23,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13))))),ToReal(0.5)); CCTK_REAL_VEC Gt122 = - kmul(ToReal(0.5),kmadd(gtu12,PDstandardNth2gt22,kmadd(gtu11,kmsub(PDstandardNth2gt12,ToReal(2),PDstandardNth1gt22),kmul(gtu13,kmsub(PDstandardNth2gt23,ToReal(2),PDstandardNth3gt22))))); + kmul(ToReal(0.5),kmadd(gtu12,JacPDstandardNth2gt22,kmadd(gtu11,kmsub(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmul(gtu13,kmsub(JacPDstandardNth2gt23,ToReal(2),JacPDstandardNth3gt22))))); CCTK_REAL_VEC Gt222 = - kmul(ToReal(0.5),kmadd(gtu22,PDstandardNth2gt22,kmadd(gtu12,kmsub(PDstandardNth2gt12,ToReal(2),PDstandardNth1gt22),kmul(gtu23,kmsub(PDstandardNth2gt23,ToReal(2),PDstandardNth3gt22))))); + kmul(ToReal(0.5),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu12,kmsub(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmul(gtu23,kmsub(JacPDstandardNth2gt23,ToReal(2),JacPDstandardNth3gt22))))); CCTK_REAL_VEC Gt322 = - kmul(ToReal(0.5),kmadd(gtu23,PDstandardNth2gt22,kmadd(gtu13,kmsub(PDstandardNth2gt12,ToReal(2),PDstandardNth1gt22),kmul(gtu33,kmsub(PDstandardNth2gt23,ToReal(2),PDstandardNth3gt22))))); + kmul(ToReal(0.5),kmadd(gtu23,JacPDstandardNth2gt22,kmadd(gtu13,kmsub(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmul(gtu33,kmsub(JacPDstandardNth2gt23,ToReal(2),JacPDstandardNth3gt22))))); CCTK_REAL_VEC Gt123 = - kmul(kmadd(gtu13,PDstandardNth2gt33,kmadd(gtu12,PDstandardNth3gt22,kmul(gtu11,kadd(PDstandardNth2gt13,ksub(PDstandardNth3gt12,PDstandardNth1gt23))))),ToReal(0.5)); + kmul(kmadd(gtu13,JacPDstandardNth2gt33,kmadd(gtu12,JacPDstandardNth3gt22,kmul(gtu11,kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23))))),ToReal(0.5)); CCTK_REAL_VEC Gt223 = - kmul(kmadd(gtu23,PDstandardNth2gt33,kmadd(gtu22,PDstandardNth3gt22,kmul(gtu12,kadd(PDstandardNth2gt13,ksub(PDstandardNth3gt12,PDstandardNth1gt23))))),ToReal(0.5)); + kmul(kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu22,JacPDstandardNth3gt22,kmul(gtu12,kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23))))),ToReal(0.5)); CCTK_REAL_VEC Gt323 = - kmul(kmadd(gtu33,PDstandardNth2gt33,kmadd(gtu23,PDstandardNth3gt22,kmul(gtu13,kadd(PDstandardNth2gt13,ksub(PDstandardNth3gt12,PDstandardNth1gt23))))),ToReal(0.5)); + kmul(kmadd(gtu33,JacPDstandardNth2gt33,kmadd(gtu23,JacPDstandardNth3gt22,kmul(gtu13,kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23))))),ToReal(0.5)); CCTK_REAL_VEC Gt133 = - kmul(ToReal(0.5),kmadd(gtu13,PDstandardNth3gt33,kmadd(gtu11,kmsub(PDstandardNth3gt13,ToReal(2),PDstandardNth1gt33),kmul(gtu12,kmsub(PDstandardNth3gt23,ToReal(2),PDstandardNth2gt33))))); + kmul(ToReal(0.5),kmadd(gtu13,JacPDstandardNth3gt33,kmadd(gtu11,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu12,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33))))); CCTK_REAL_VEC Gt233 = - kmul(ToReal(0.5),kmadd(gtu23,PDstandardNth3gt33,kmadd(gtu12,kmsub(PDstandardNth3gt13,ToReal(2),PDstandardNth1gt33),kmul(gtu22,kmsub(PDstandardNth3gt23,ToReal(2),PDstandardNth2gt33))))); + kmul(ToReal(0.5),kmadd(gtu23,JacPDstandardNth3gt33,kmadd(gtu12,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu22,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33))))); CCTK_REAL_VEC Gt333 = - kmul(ToReal(0.5),kmadd(gtu33,PDstandardNth3gt33,kmadd(gtu13,kmsub(PDstandardNth3gt13,ToReal(2),PDstandardNth1gt33),kmul(gtu23,kmsub(PDstandardNth3gt23,ToReal(2),PDstandardNth2gt33))))); + kmul(ToReal(0.5),kmadd(gtu33,JacPDstandardNth3gt33,kmadd(gtu13,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu23,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33))))); CCTK_REAL_VEC Xt1L = kmadd(Gt111,gtu11,kmadd(Gt122,gtu22,kmadd(Gt133,gtu33,kmul(kmadd(Gt112,gtu12,kmadd(Gt113,gtu13,kmul(Gt123,gtu23))),ToReal(2))))); @@ -270,7 +848,7 @@ static void ML_BSSN_convertFromADMBaseGamma_Body(cGH const * restrict const cctk kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); CCTK_REAL_VEC AL = IfThen(LapseACoeff != - 0,kneg(kmul(INV(ToReal(harmonicF)),kmul(kpow(alphaL,-harmonicN),knmsub(kmadd(beta1L,PDupwindNthAnti1alpha,kmadd(beta2L,PDupwindNthAnti2alpha,kmadd(beta3L,PDupwindNthAnti3alpha,kmadd(PDupwindNthSymm1alpha,kfabs(beta1L),kmadd(PDupwindNthSymm2alpha,kfabs(beta2L),kmul(PDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),dtalpL)))),ToReal(0)); + 0,kneg(kmul(INV(ToReal(harmonicF)),kmul(kpow(alphaL,-harmonicN),knmsub(kmadd(beta1L,JacPDupwindNthAnti1alpha,kmadd(beta2L,JacPDupwindNthAnti2alpha,kmadd(beta3L,JacPDupwindNthAnti3alpha,kmadd(JacPDupwindNthSymm1alpha,kfabs(beta1L),kmadd(JacPDupwindNthSymm2alpha,kfabs(beta2L),kmul(JacPDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),dtalpL)))),ToReal(0)); CCTK_REAL_VEC theta = kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1)))); @@ -282,13 +860,13 @@ static void ML_BSSN_convertFromADMBaseGamma_Body(cGH const * restrict const cctk if (ShiftBCoeff*ShiftGammaCoeff != 0) { B1L = - kmul(INV(theta),kmul(INV(ToReal(ShiftGammaCoeff)),knmsub(kmadd(beta1L,PDupwindNthAnti1beta1,kmadd(beta2L,PDupwindNthAnti2beta1,kmadd(beta3L,PDupwindNthAnti3beta1,kmadd(PDupwindNthSymm1beta1,kfabs(beta1L),kmadd(PDupwindNthSymm2beta1,kfabs(beta2L),kmul(PDupwindNthSymm3beta1,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),dtbetaxL))); + kmul(INV(theta),kmul(INV(ToReal(ShiftGammaCoeff)),knmsub(kmadd(beta1L,JacPDupwindNthAnti1beta1,kmadd(beta2L,JacPDupwindNthAnti2beta1,kmadd(beta3L,JacPDupwindNthAnti3beta1,kmadd(JacPDupwindNthSymm1beta1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta1,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta1,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),dtbetaxL))); B2L = - kmul(INV(theta),kmul(INV(ToReal(ShiftGammaCoeff)),knmsub(kmadd(beta1L,PDupwindNthAnti1beta2,kmadd(beta2L,PDupwindNthAnti2beta2,kmadd(beta3L,PDupwindNthAnti3beta2,kmadd(PDupwindNthSymm1beta2,kfabs(beta1L),kmadd(PDupwindNthSymm2beta2,kfabs(beta2L),kmul(PDupwindNthSymm3beta2,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),dtbetayL))); + kmul(INV(theta),kmul(INV(ToReal(ShiftGammaCoeff)),knmsub(kmadd(beta1L,JacPDupwindNthAnti1beta2,kmadd(beta2L,JacPDupwindNthAnti2beta2,kmadd(beta3L,JacPDupwindNthAnti3beta2,kmadd(JacPDupwindNthSymm1beta2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta2,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta2,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),dtbetayL))); B3L = - kmul(INV(theta),kmul(INV(ToReal(ShiftGammaCoeff)),knmsub(kmadd(beta1L,PDupwindNthAnti1beta3,kmadd(beta2L,PDupwindNthAnti2beta3,kmadd(beta3L,PDupwindNthAnti3beta3,kmadd(PDupwindNthSymm1beta3,kfabs(beta1L),kmadd(PDupwindNthSymm2beta3,kfabs(beta2L),kmul(PDupwindNthSymm3beta3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),dtbetazL))); + kmul(INV(theta),kmul(INV(ToReal(ShiftGammaCoeff)),knmsub(kmadd(beta1L,JacPDupwindNthAnti1beta3,kmadd(beta2L,JacPDupwindNthAnti2beta3,kmadd(beta3L,JacPDupwindNthAnti3beta3,kmadd(JacPDupwindNthSymm1beta3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta3,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),dtbetazL))); } else { diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBase.cc b/ML_BSSN/src/ML_BSSN_convertToADMBase.cc index 5219ef7..2f2e247 100644 --- a/ML_BSSN/src/ML_BSSN_convertToADMBase.cc +++ b/ML_BSSN/src/ML_BSSN_convertToADMBase.cc @@ -43,6 +43,20 @@ static void ML_BSSN_convertToADMBase_Body(cGH const * restrict const cctkGH, int const char *groups[] = {"ADMBase::curv","ADMBase::lapse","ADMBase::metric","ADMBase::shift","ML_BSSN::ML_curv","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBase", 10, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -70,24 +84,129 @@ static void ML_BSSN_convertToADMBase_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -126,10 +245,26 @@ static void ML_BSSN_convertToADMBase_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC trKL = vec_load(trK[index]); + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC e4phi = IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.cc b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.cc index c310b24..80b6542 100644 --- a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.cc +++ b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.cc @@ -58,7 +58,24 @@ static void ML_BSSN_convertToADMBaseDtLapseShift_Body(cGH const * restrict const const char *groups[] = {"ADMBase::dtlapse","ADMBase::dtshift","grid::coordinates","Grid::coordinates","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtshift","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShift", 10, groups); - GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShift", 3, 3, 3); + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShift", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShift", 3, 3, 3); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShift", 4, 4, 4); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShift", 5, 5, 5); + break; + } /* Include user-supplied include files */ @@ -86,24 +103,129 @@ static void ML_BSSN_convertToADMBaseDtLapseShift_Body(cGH const * restrict const CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -131,35 +253,311 @@ static void ML_BSSN_convertToADMBaseDtLapseShift_Body(cGH const * restrict const CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + CCTK_REAL_VEC J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L; + + if (use_jacobian) + { + J11L = vec_load(J11[index]); + J12L = vec_load(J12[index]); + J13L = vec_load(J13[index]); + J21L = vec_load(J21[index]); + J22L = vec_load(J22[index]); + J23L = vec_load(J23[index]); + J31L = vec_load(J31[index]); + J32L = vec_load(J32[index]); + J33L = vec_load(J33[index]); + } + /* Include user supplied include files */ /* Precompute derivatives */ - CCTK_REAL_VEC const PDupwindNthAnti1alpha = PDupwindNthAnti1(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm1alpha = PDupwindNthSymm1(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti2alpha = PDupwindNthAnti2(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm2alpha = PDupwindNthSymm2(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti3alpha = PDupwindNthAnti3(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthSymm3alpha = PDupwindNthSymm3(&alpha[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta1 = PDupwindNthAnti1(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta1 = PDupwindNthSymm1(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta1 = PDupwindNthAnti2(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta1 = PDupwindNthSymm2(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta1 = PDupwindNthAnti3(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta1 = PDupwindNthSymm3(&beta1[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta2 = PDupwindNthAnti1(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta2 = PDupwindNthSymm1(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta2 = PDupwindNthAnti2(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta2 = PDupwindNthSymm2(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta2 = PDupwindNthAnti3(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta2 = PDupwindNthSymm3(&beta2[index]); - CCTK_REAL_VEC const PDupwindNthAnti1beta3 = PDupwindNthAnti1(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm1beta3 = PDupwindNthSymm1(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthAnti2beta3 = PDupwindNthAnti2(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm2beta3 = PDupwindNthSymm2(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthAnti3beta3 = PDupwindNthAnti3(&beta3[index]); - CCTK_REAL_VEC const PDupwindNthSymm3beta3 = PDupwindNthSymm3(&beta3[index]); + CCTK_REAL_VEC PDupwindNthAnti1alpha; + CCTK_REAL_VEC PDupwindNthSymm1alpha; + CCTK_REAL_VEC PDupwindNthAnti2alpha; + CCTK_REAL_VEC PDupwindNthSymm2alpha; + CCTK_REAL_VEC PDupwindNthAnti3alpha; + CCTK_REAL_VEC PDupwindNthSymm3alpha; + CCTK_REAL_VEC PDupwindNthAnti1beta1; + CCTK_REAL_VEC PDupwindNthSymm1beta1; + CCTK_REAL_VEC PDupwindNthAnti2beta1; + CCTK_REAL_VEC PDupwindNthSymm2beta1; + CCTK_REAL_VEC PDupwindNthAnti3beta1; + CCTK_REAL_VEC PDupwindNthSymm3beta1; + CCTK_REAL_VEC PDupwindNthAnti1beta2; + CCTK_REAL_VEC PDupwindNthSymm1beta2; + CCTK_REAL_VEC PDupwindNthAnti2beta2; + CCTK_REAL_VEC PDupwindNthSymm2beta2; + CCTK_REAL_VEC PDupwindNthAnti3beta2; + CCTK_REAL_VEC PDupwindNthSymm3beta2; + CCTK_REAL_VEC PDupwindNthAnti1beta3; + CCTK_REAL_VEC PDupwindNthSymm1beta3; + CCTK_REAL_VEC PDupwindNthAnti2beta3; + CCTK_REAL_VEC PDupwindNthSymm2beta3; + CCTK_REAL_VEC PDupwindNthAnti3beta3; + CCTK_REAL_VEC PDupwindNthSymm3beta3; + + switch(fdOrder) + { + case 2: + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder21(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder21(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder22(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder22(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder23(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder23(&alpha[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder21(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder21(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder22(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder22(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder23(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder23(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder21(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder21(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder22(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder22(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder23(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder23(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder21(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder21(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder22(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder22(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder23(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder23(&beta3[index]); + break; + + case 4: + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder41(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder41(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder42(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder42(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder43(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder43(&alpha[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder41(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder41(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder42(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder42(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder43(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder43(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder41(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder41(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder42(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder42(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder43(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder43(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder41(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder41(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder42(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder42(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder43(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder43(&beta3[index]); + break; + + case 6: + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder61(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder61(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder62(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder62(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder63(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder63(&alpha[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder61(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder61(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder62(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder62(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder63(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder63(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder61(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder61(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder62(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder62(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder63(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder63(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder61(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder61(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder62(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder62(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder63(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder63(&beta3[index]); + break; + + case 8: + PDupwindNthAnti1alpha = PDupwindNthAntifdOrder81(&alpha[index]); + PDupwindNthSymm1alpha = PDupwindNthSymmfdOrder81(&alpha[index]); + PDupwindNthAnti2alpha = PDupwindNthAntifdOrder82(&alpha[index]); + PDupwindNthSymm2alpha = PDupwindNthSymmfdOrder82(&alpha[index]); + PDupwindNthAnti3alpha = PDupwindNthAntifdOrder83(&alpha[index]); + PDupwindNthSymm3alpha = PDupwindNthSymmfdOrder83(&alpha[index]); + PDupwindNthAnti1beta1 = PDupwindNthAntifdOrder81(&beta1[index]); + PDupwindNthSymm1beta1 = PDupwindNthSymmfdOrder81(&beta1[index]); + PDupwindNthAnti2beta1 = PDupwindNthAntifdOrder82(&beta1[index]); + PDupwindNthSymm2beta1 = PDupwindNthSymmfdOrder82(&beta1[index]); + PDupwindNthAnti3beta1 = PDupwindNthAntifdOrder83(&beta1[index]); + PDupwindNthSymm3beta1 = PDupwindNthSymmfdOrder83(&beta1[index]); + PDupwindNthAnti1beta2 = PDupwindNthAntifdOrder81(&beta2[index]); + PDupwindNthSymm1beta2 = PDupwindNthSymmfdOrder81(&beta2[index]); + PDupwindNthAnti2beta2 = PDupwindNthAntifdOrder82(&beta2[index]); + PDupwindNthSymm2beta2 = PDupwindNthSymmfdOrder82(&beta2[index]); + PDupwindNthAnti3beta2 = PDupwindNthAntifdOrder83(&beta2[index]); + PDupwindNthSymm3beta2 = PDupwindNthSymmfdOrder83(&beta2[index]); + PDupwindNthAnti1beta3 = PDupwindNthAntifdOrder81(&beta3[index]); + PDupwindNthSymm1beta3 = PDupwindNthSymmfdOrder81(&beta3[index]); + PDupwindNthAnti2beta3 = PDupwindNthAntifdOrder82(&beta3[index]); + PDupwindNthSymm2beta3 = PDupwindNthSymmfdOrder82(&beta3[index]); + PDupwindNthAnti3beta3 = PDupwindNthAntifdOrder83(&beta3[index]); + PDupwindNthSymm3beta3 = PDupwindNthSymmfdOrder83(&beta3[index]); + break; + } /* Calculate temporaries and grid functions */ + CCTK_REAL_VEC JacPDupwindNthAnti1alpha; + CCTK_REAL_VEC JacPDupwindNthAnti1beta1; + CCTK_REAL_VEC JacPDupwindNthAnti1beta2; + CCTK_REAL_VEC JacPDupwindNthAnti1beta3; + CCTK_REAL_VEC JacPDupwindNthAnti2alpha; + CCTK_REAL_VEC JacPDupwindNthAnti2beta1; + CCTK_REAL_VEC JacPDupwindNthAnti2beta2; + CCTK_REAL_VEC JacPDupwindNthAnti2beta3; + CCTK_REAL_VEC JacPDupwindNthAnti3alpha; + CCTK_REAL_VEC JacPDupwindNthAnti3beta1; + CCTK_REAL_VEC JacPDupwindNthAnti3beta2; + CCTK_REAL_VEC JacPDupwindNthAnti3beta3; + CCTK_REAL_VEC JacPDupwindNthSymm1alpha; + CCTK_REAL_VEC JacPDupwindNthSymm1beta1; + CCTK_REAL_VEC JacPDupwindNthSymm1beta2; + CCTK_REAL_VEC JacPDupwindNthSymm1beta3; + CCTK_REAL_VEC JacPDupwindNthSymm2alpha; + CCTK_REAL_VEC JacPDupwindNthSymm2beta1; + CCTK_REAL_VEC JacPDupwindNthSymm2beta2; + CCTK_REAL_VEC JacPDupwindNthSymm2beta3; + CCTK_REAL_VEC JacPDupwindNthSymm3alpha; + CCTK_REAL_VEC JacPDupwindNthSymm3beta1; + CCTK_REAL_VEC JacPDupwindNthSymm3beta2; + CCTK_REAL_VEC JacPDupwindNthSymm3beta3; + + if (use_jacobian) + { + JacPDupwindNthAnti1alpha = + kmadd(J11L,PDupwindNthAnti1alpha,kmadd(J21L,PDupwindNthAnti2alpha,kmul(J31L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti1beta1 = + kmadd(J11L,PDupwindNthAnti1beta1,kmadd(J21L,PDupwindNthAnti2beta1,kmul(J31L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti1beta2 = + kmadd(J11L,PDupwindNthAnti1beta2,kmadd(J21L,PDupwindNthAnti2beta2,kmul(J31L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti1beta3 = + kmadd(J11L,PDupwindNthAnti1beta3,kmadd(J21L,PDupwindNthAnti2beta3,kmul(J31L,PDupwindNthAnti3beta3))); + + JacPDupwindNthSymm1alpha = + kmadd(J11L,PDupwindNthSymm1alpha,kmadd(J21L,PDupwindNthSymm2alpha,kmul(J31L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm1beta1 = + kmadd(J11L,PDupwindNthSymm1beta1,kmadd(J21L,PDupwindNthSymm2beta1,kmul(J31L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm1beta2 = + kmadd(J11L,PDupwindNthSymm1beta2,kmadd(J21L,PDupwindNthSymm2beta2,kmul(J31L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm1beta3 = + kmadd(J11L,PDupwindNthSymm1beta3,kmadd(J21L,PDupwindNthSymm2beta3,kmul(J31L,PDupwindNthSymm3beta3))); + + JacPDupwindNthAnti2alpha = + kmadd(J12L,PDupwindNthAnti1alpha,kmadd(J22L,PDupwindNthAnti2alpha,kmul(J32L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti2beta1 = + kmadd(J12L,PDupwindNthAnti1beta1,kmadd(J22L,PDupwindNthAnti2beta1,kmul(J32L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti2beta2 = + kmadd(J12L,PDupwindNthAnti1beta2,kmadd(J22L,PDupwindNthAnti2beta2,kmul(J32L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti2beta3 = + kmadd(J12L,PDupwindNthAnti1beta3,kmadd(J22L,PDupwindNthAnti2beta3,kmul(J32L,PDupwindNthAnti3beta3))); + + JacPDupwindNthSymm2alpha = + kmadd(J12L,PDupwindNthSymm1alpha,kmadd(J22L,PDupwindNthSymm2alpha,kmul(J32L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm2beta1 = + kmadd(J12L,PDupwindNthSymm1beta1,kmadd(J22L,PDupwindNthSymm2beta1,kmul(J32L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm2beta2 = + kmadd(J12L,PDupwindNthSymm1beta2,kmadd(J22L,PDupwindNthSymm2beta2,kmul(J32L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm2beta3 = + kmadd(J12L,PDupwindNthSymm1beta3,kmadd(J22L,PDupwindNthSymm2beta3,kmul(J32L,PDupwindNthSymm3beta3))); + + JacPDupwindNthAnti3alpha = + kmadd(J13L,PDupwindNthAnti1alpha,kmadd(J23L,PDupwindNthAnti2alpha,kmul(J33L,PDupwindNthAnti3alpha))); + + JacPDupwindNthAnti3beta1 = + kmadd(J13L,PDupwindNthAnti1beta1,kmadd(J23L,PDupwindNthAnti2beta1,kmul(J33L,PDupwindNthAnti3beta1))); + + JacPDupwindNthAnti3beta2 = + kmadd(J13L,PDupwindNthAnti1beta2,kmadd(J23L,PDupwindNthAnti2beta2,kmul(J33L,PDupwindNthAnti3beta2))); + + JacPDupwindNthAnti3beta3 = + kmadd(J13L,PDupwindNthAnti1beta3,kmadd(J23L,PDupwindNthAnti2beta3,kmul(J33L,PDupwindNthAnti3beta3))); + + JacPDupwindNthSymm3alpha = + kmadd(J13L,PDupwindNthSymm1alpha,kmadd(J23L,PDupwindNthSymm2alpha,kmul(J33L,PDupwindNthSymm3alpha))); + + JacPDupwindNthSymm3beta1 = + kmadd(J13L,PDupwindNthSymm1beta1,kmadd(J23L,PDupwindNthSymm2beta1,kmul(J33L,PDupwindNthSymm3beta1))); + + JacPDupwindNthSymm3beta2 = + kmadd(J13L,PDupwindNthSymm1beta2,kmadd(J23L,PDupwindNthSymm2beta2,kmul(J33L,PDupwindNthSymm3beta2))); + + JacPDupwindNthSymm3beta3 = + kmadd(J13L,PDupwindNthSymm1beta3,kmadd(J23L,PDupwindNthSymm2beta3,kmul(J33L,PDupwindNthSymm3beta3))); + } + else + { + JacPDupwindNthAnti1alpha = PDupwindNthAnti1alpha; + + JacPDupwindNthAnti1beta1 = PDupwindNthAnti1beta1; + + JacPDupwindNthAnti1beta2 = PDupwindNthAnti1beta2; + + JacPDupwindNthAnti1beta3 = PDupwindNthAnti1beta3; + + JacPDupwindNthSymm1alpha = PDupwindNthSymm1alpha; + + JacPDupwindNthSymm1beta1 = PDupwindNthSymm1beta1; + + JacPDupwindNthSymm1beta2 = PDupwindNthSymm1beta2; + + JacPDupwindNthSymm1beta3 = PDupwindNthSymm1beta3; + + JacPDupwindNthAnti2alpha = PDupwindNthAnti2alpha; + + JacPDupwindNthAnti2beta1 = PDupwindNthAnti2beta1; + + JacPDupwindNthAnti2beta2 = PDupwindNthAnti2beta2; + + JacPDupwindNthAnti2beta3 = PDupwindNthAnti2beta3; + + JacPDupwindNthSymm2alpha = PDupwindNthSymm2alpha; + + JacPDupwindNthSymm2beta1 = PDupwindNthSymm2beta1; + + JacPDupwindNthSymm2beta2 = PDupwindNthSymm2beta2; + + JacPDupwindNthSymm2beta3 = PDupwindNthSymm2beta3; + + JacPDupwindNthAnti3alpha = PDupwindNthAnti3alpha; + + JacPDupwindNthAnti3beta1 = PDupwindNthAnti3beta1; + + JacPDupwindNthAnti3beta2 = PDupwindNthAnti3beta2; + + JacPDupwindNthAnti3beta3 = PDupwindNthAnti3beta3; + + JacPDupwindNthSymm3alpha = PDupwindNthSymm3alpha; + + JacPDupwindNthSymm3beta1 = PDupwindNthSymm3beta1; + + JacPDupwindNthSymm3beta2 = PDupwindNthSymm3beta2; + + JacPDupwindNthSymm3beta3 = PDupwindNthSymm3beta3; + } + ptrdiff_t dir1 = Sign(beta1L); ptrdiff_t dir2 = Sign(beta2L); @@ -173,20 +571,20 @@ static void ML_BSSN_convertToADMBaseDtLapseShift_Body(cGH const * restrict const kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1)))); CCTK_REAL_VEC dtalpL = - kmsub(kmadd(beta1L,PDupwindNthAnti1alpha,kmadd(beta2L,PDupwindNthAnti2alpha,kmadd(beta3L,PDupwindNthAnti3alpha,kmadd(PDupwindNthSymm1alpha,kfabs(beta1L),kmadd(PDupwindNthSymm2alpha,kfabs(beta2L),kmul(PDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL)))); + kmsub(kmadd(beta1L,JacPDupwindNthAnti1alpha,kmadd(beta2L,JacPDupwindNthAnti2alpha,kmadd(beta3L,JacPDupwindNthAnti3alpha,kmadd(JacPDupwindNthSymm1alpha,kfabs(beta1L),kmadd(JacPDupwindNthSymm2alpha,kfabs(beta2L),kmul(JacPDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL)))); CCTK_REAL_VEC dtbetaxL = - kmadd(kmadd(beta1L,PDupwindNthAnti1beta1,kmadd(beta2L,PDupwindNthAnti2beta1,kmadd(beta3L,PDupwindNthAnti3beta1,kmadd(PDupwindNthSymm1beta1,kfabs(beta1L),kmadd(PDupwindNthSymm2beta1,kfabs(beta2L),kmul(PDupwindNthSymm3beta1,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(theta,kmul(kadd(Xt1L,kmadd(beta1L,kmul(eta,ToReal(BetaDriver*(-1 + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta1,kmadd(beta2L,JacPDupwindNthAnti2beta1,kmadd(beta3L,JacPDupwindNthAnti3beta1,kmadd(JacPDupwindNthSymm1beta1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta1,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta1,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(theta,kmul(kadd(Xt1L,kmadd(beta1L,kmul(eta,ToReal(BetaDriver*(-1 + ShiftBCoeff))),kmul(ksub(B1L,Xt1L),ToReal(ShiftBCoeff)))),ToReal(ShiftGammaCoeff)))); CCTK_REAL_VEC dtbetayL = - kmadd(kmadd(beta1L,PDupwindNthAnti1beta2,kmadd(beta2L,PDupwindNthAnti2beta2,kmadd(beta3L,PDupwindNthAnti3beta2,kmadd(PDupwindNthSymm1beta2,kfabs(beta1L),kmadd(PDupwindNthSymm2beta2,kfabs(beta2L),kmul(PDupwindNthSymm3beta2,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(theta,kmul(kadd(Xt2L,kmadd(beta2L,kmul(eta,ToReal(BetaDriver*(-1 + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta2,kmadd(beta2L,JacPDupwindNthAnti2beta2,kmadd(beta3L,JacPDupwindNthAnti3beta2,kmadd(JacPDupwindNthSymm1beta2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta2,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta2,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(theta,kmul(kadd(Xt2L,kmadd(beta2L,kmul(eta,ToReal(BetaDriver*(-1 + ShiftBCoeff))),kmul(ksub(B2L,Xt2L),ToReal(ShiftBCoeff)))),ToReal(ShiftGammaCoeff)))); CCTK_REAL_VEC dtbetazL = - kmadd(kmadd(beta1L,PDupwindNthAnti1beta3,kmadd(beta2L,PDupwindNthAnti2beta3,kmadd(beta3L,PDupwindNthAnti3beta3,kmadd(PDupwindNthSymm1beta3,kfabs(beta1L),kmadd(PDupwindNthSymm2beta3,kfabs(beta2L),kmul(PDupwindNthSymm3beta3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(theta,kmul(kadd(Xt3L,kmadd(beta3L,kmul(eta,ToReal(BetaDriver*(-1 + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta3,kmadd(beta2L,JacPDupwindNthAnti2beta3,kmadd(beta3L,JacPDupwindNthAnti3beta3,kmadd(JacPDupwindNthSymm1beta3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta3,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(theta,kmul(kadd(Xt3L,kmadd(beta3L,kmul(eta,ToReal(BetaDriver*(-1 + ShiftBCoeff))),kmul(ksub(B3L,Xt3L),ToReal(ShiftBCoeff)))),ToReal(ShiftGammaCoeff)))); diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc index 1356fbf..c6ae13c 100644 --- a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc +++ b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc @@ -58,6 +58,20 @@ static void ML_BSSN_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restri const char *groups[] = {"ADMBase::dtlapse","ADMBase::dtshift","grid::coordinates","Grid::coordinates","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtshift","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShiftBoundary", 10, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -85,24 +99,129 @@ static void ML_BSSN_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restri CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -130,10 +249,26 @@ static void ML_BSSN_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restri CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC eta = kfmin(ToReal(1),kmul(INV(rL),ToReal(SpatialBetaDriverRadius))); diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc b/ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc index 36bd7fa..12af7a3 100644 --- a/ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc +++ b/ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc @@ -43,6 +43,20 @@ static void ML_BSSN_convertToADMBaseFakeDtLapseShift_Body(cGH const * restrict c const char *groups[] = {"ADMBase::dtlapse","ADMBase::dtshift","grid::coordinates","Grid::coordinates","ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtshift","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseFakeDtLapseShift", 10, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -70,24 +84,129 @@ static void ML_BSSN_convertToADMBaseFakeDtLapseShift_Body(cGH const * restrict c CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -115,10 +234,26 @@ static void ML_BSSN_convertToADMBaseFakeDtLapseShift_Body(cGH const * restrict c CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC eta = kfmin(ToReal(1),kmul(INV(rL),ToReal(SpatialBetaDriverRadius))); diff --git a/ML_BSSN/src/ML_BSSN_enforce.cc b/ML_BSSN/src/ML_BSSN_enforce.cc index 997a439..b48a3ed 100644 --- a/ML_BSSN/src/ML_BSSN_enforce.cc +++ b/ML_BSSN/src/ML_BSSN_enforce.cc @@ -43,6 +43,20 @@ static void ML_BSSN_enforce_Body(cGH const * restrict const cctkGH, int const di const char *groups[] = {"ML_BSSN::ML_curv","ML_BSSN::ML_lapse","ML_BSSN::ML_metric"}; GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_enforce", 3, groups); + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } /* Include user-supplied include files */ @@ -70,24 +84,129 @@ static void ML_BSSN_enforce_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); /* Initialize predefined quantities */ + CCTK_REAL_VEC const p1o1024dx = kmul(INV(dx),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dy = kmul(INV(dy),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o1024dz = kmul(INV(dz),ToReal(0.0009765625)); + CCTK_REAL_VEC const p1o120dx = kmul(INV(dx),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dy = kmul(INV(dy),ToReal(0.00833333333333333333333333333333)); + CCTK_REAL_VEC const p1o120dz = kmul(INV(dz),ToReal(0.00833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dx = kmul(INV(dx),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dy = kmul(INV(dy),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o12dz = kmul(INV(dz),ToReal(0.0833333333333333333333333333333)); CCTK_REAL_VEC const p1o144dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); CCTK_REAL_VEC const p1o144dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.00694444444444444444444444444444))); + CCTK_REAL_VEC const p1o1680dx = kmul(INV(dx),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dy = kmul(INV(dy),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o1680dz = kmul(INV(dz),ToReal(0.000595238095238095238095238095238)); + CCTK_REAL_VEC const p1o16dx = kmul(INV(dx),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dy = kmul(INV(dy),ToReal(0.0625)); + CCTK_REAL_VEC const p1o16dz = kmul(INV(dz),ToReal(0.0625)); + CCTK_REAL_VEC const p1o180dx2 = kmul(INV(SQR(dx)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dy2 = kmul(INV(SQR(dy)),ToReal(0.00555555555555555555555555555556)); + CCTK_REAL_VEC const p1o180dz2 = kmul(INV(SQR(dz)),ToReal(0.00555555555555555555555555555556)); CCTK_REAL_VEC const p1o24dx = kmul(INV(dx),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dy = kmul(INV(dy),ToReal(0.0416666666666666666666666666667)); CCTK_REAL_VEC const p1o24dz = kmul(INV(dz),ToReal(0.0416666666666666666666666666667)); + CCTK_REAL_VEC const p1o256dx = kmul(INV(dx),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dy = kmul(INV(dy),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o256dz = kmul(INV(dz),ToReal(0.00390625)); + CCTK_REAL_VEC const p1o2dx = kmul(INV(dx),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dy = kmul(INV(dy),ToReal(0.5)); + CCTK_REAL_VEC const p1o2dz = kmul(INV(dz),ToReal(0.5)); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.000277777777777777777777777777778))); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o4dz = kmul(INV(dz),ToReal(0.25)); + CCTK_REAL_VEC const p1o5040dx2 = kmul(INV(SQR(dx)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dy2 = kmul(INV(SQR(dy)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o5040dz2 = kmul(INV(SQR(dz)),ToReal(0.000198412698412698412698412698413)); + CCTK_REAL_VEC const p1o560dx = kmul(INV(dx),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dy = kmul(INV(dy),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o560dz = kmul(INV(dz),ToReal(0.00178571428571428571428571428571)); + CCTK_REAL_VEC const p1o60dx = kmul(INV(dx),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dy = kmul(INV(dy),ToReal(0.0166666666666666666666666666667)); + CCTK_REAL_VEC const p1o60dz = kmul(INV(dz),ToReal(0.0166666666666666666666666666667)); CCTK_REAL_VEC const p1o64dx = kmul(INV(dx),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dy = kmul(INV(dy),ToReal(0.015625)); CCTK_REAL_VEC const p1o64dz = kmul(INV(dz),ToReal(0.015625)); + CCTK_REAL_VEC const p1o705600dxdy = kmul(INV(dx),kmul(INV(dy),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(dx),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(dy),kmul(INV(dz),ToReal(1.41723356009070294784580498866e-6))); + CCTK_REAL_VEC const p1o840dx = kmul(INV(dx),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dy = kmul(INV(dy),ToReal(0.00119047619047619047619047619048)); + CCTK_REAL_VEC const p1o840dz = kmul(INV(dz),ToReal(0.00119047619047619047619047619048)); CCTK_REAL_VEC const p1odx = INV(dx); + CCTK_REAL_VEC const p1odx2 = INV(SQR(dx)); CCTK_REAL_VEC const p1ody = INV(dy); + CCTK_REAL_VEC const p1ody2 = INV(SQR(dy)); CCTK_REAL_VEC const p1odz = INV(dz); + CCTK_REAL_VEC const p1odz2 = INV(SQR(dz)); + CCTK_REAL_VEC const pm1o120dx = kmul(INV(dx),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dy = kmul(INV(dy),ToReal(-0.00833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o120dz = kmul(INV(dz),ToReal(-0.00833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dx2 = kmul(INV(SQR(dx)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dy2 = kmul(INV(SQR(dy)),ToReal(-0.0833333333333333333333333333333)); CCTK_REAL_VEC const pm1o12dz2 = kmul(INV(SQR(dz)),ToReal(-0.0833333333333333333333333333333)); + CCTK_REAL_VEC const pm1o2dx = kmul(INV(dx),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dy = kmul(INV(dy),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o2dz = kmul(INV(dz),ToReal(-0.5)); + CCTK_REAL_VEC const pm1o4dx = kmul(INV(dx),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dy = kmul(INV(dy),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o4dz = kmul(INV(dz),ToReal(-0.25)); + CCTK_REAL_VEC const pm1o60dx = kmul(INV(dx),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dy = kmul(INV(dy),ToReal(-0.0166666666666666666666666666667)); + CCTK_REAL_VEC const pm1o60dz = kmul(INV(dz),ToReal(-0.0166666666666666666666666666667)); + + /* Jacobian variable pointers */ + bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) + && strlen(jacobian_group) > 0; + if (use_jacobian && strlen(jacobian_derivative_group) == 0) + { + CCTK_WARN (1, "GenericFD::jacobian_group and GenericFD::jacobian_derivative_group must both be set to valid group names"); + } + + CCTK_REAL const *restrict jacobian_ptrs[9]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, + 9, jacobian_ptrs); + + CCTK_REAL const *restrict const J11 = use_jacobian ? jacobian_ptrs[0] : 0; + CCTK_REAL const *restrict const J12 = use_jacobian ? jacobian_ptrs[1] : 0; + CCTK_REAL const *restrict const J13 = use_jacobian ? jacobian_ptrs[2] : 0; + CCTK_REAL const *restrict const J21 = use_jacobian ? jacobian_ptrs[3] : 0; + CCTK_REAL const *restrict const J22 = use_jacobian ? jacobian_ptrs[4] : 0; + CCTK_REAL const *restrict const J23 = use_jacobian ? jacobian_ptrs[5] : 0; + CCTK_REAL const *restrict const J31 = use_jacobian ? jacobian_ptrs[6] : 0; + CCTK_REAL const *restrict const J32 = use_jacobian ? jacobian_ptrs[7] : 0; + CCTK_REAL const *restrict const J33 = use_jacobian ? jacobian_ptrs[8] : 0; + + CCTK_REAL const *restrict jacobian_derivative_ptrs[18]; + if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, + 18, jacobian_derivative_ptrs); + + CCTK_REAL const *restrict const dJ111 = use_jacobian ? jacobian_derivative_ptrs[0] : 0; + CCTK_REAL const *restrict const dJ112 = use_jacobian ? jacobian_derivative_ptrs[1] : 0; + CCTK_REAL const *restrict const dJ113 = use_jacobian ? jacobian_derivative_ptrs[2] : 0; + CCTK_REAL const *restrict const dJ122 = use_jacobian ? jacobian_derivative_ptrs[3] : 0; + CCTK_REAL const *restrict const dJ123 = use_jacobian ? jacobian_derivative_ptrs[4] : 0; + CCTK_REAL const *restrict const dJ133 = use_jacobian ? jacobian_derivative_ptrs[5] : 0; + CCTK_REAL const *restrict const dJ211 = use_jacobian ? jacobian_derivative_ptrs[6] : 0; + CCTK_REAL const *restrict const dJ212 = use_jacobian ? jacobian_derivative_ptrs[7] : 0; + CCTK_REAL const *restrict const dJ213 = use_jacobian ? jacobian_derivative_ptrs[8] : 0; + CCTK_REAL const *restrict const dJ222 = use_jacobian ? jacobian_derivative_ptrs[9] : 0; + CCTK_REAL const *restrict const dJ223 = use_jacobian ? jacobian_derivative_ptrs[10] : 0; + CCTK_REAL const *restrict const dJ233 = use_jacobian ? jacobian_derivative_ptrs[11] : 0; + CCTK_REAL const *restrict const dJ311 = use_jacobian ? jacobian_derivative_ptrs[12] : 0; + CCTK_REAL const *restrict const dJ312 = use_jacobian ? jacobian_derivative_ptrs[13] : 0; + CCTK_REAL const *restrict const dJ313 = use_jacobian ? jacobian_derivative_ptrs[14] : 0; + CCTK_REAL const *restrict const dJ322 = use_jacobian ? jacobian_derivative_ptrs[15] : 0; + CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; + CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; /* Loop over the grid points */ #pragma omp parallel @@ -115,10 +234,26 @@ static void ML_BSSN_enforce_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + /* Include user supplied include files */ /* Precompute derivatives */ + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + /* Calculate temporaries and grid functions */ CCTK_REAL_VEC detgt = ToReal(1); -- cgit v1.2.3