diff options
author | Barry Wardell <barry.wardell@gmail.com> | 2012-05-02 11:05:27 +0100 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2012-05-02 11:05:27 +0100 |
commit | e962e21cc53e2f24e1dfffef2454f5136ae4ee08 (patch) | |
tree | e32f44d7f5971ec73fcda195107e1dfddd9150fc | |
parent | af04ce2e3d96d19b94dd4b416a6617b649c6da34 (diff) | |
parent | 4d9a82e9f305be8c823535e2b4f1be03cf86fbb3 (diff) |
Merge branch 'CCZ4'
325 files changed, 30032 insertions, 1222 deletions
diff --git a/ML_ADM/schedule.ccl b/ML_ADM/schedule.ccl index 1745ad3..c5c8a2b 100644 --- a/ML_ADM/schedule.ccl +++ b/ML_ADM/schedule.ccl @@ -121,12 +121,6 @@ schedule ML_ADM_Startup at STARTUP OPTIONS: meta } "create banner" -schedule ML_ADM_RegisterVars in MoL_Register -{ - LANG: C - OPTIONS: meta -} "Register Variables for MoL" - schedule ML_ADM_RegisterSymmetries in SymmetryRegister { LANG: C @@ -139,6 +133,10 @@ if (CCTK_EQUALS(my_initial_data, "Minkowski")) schedule ML_ADM_Minkowski IN ADMBase_InitialData { LANG: C + WRITES: ML_ADM::ML_curv + WRITES: ML_ADM::ML_lapse + WRITES: ML_ADM::ML_metric + WRITES: ML_ADM::ML_shift } "ML_ADM_Minkowski" } @@ -148,12 +146,28 @@ if (CCTK_EQUALS(my_initial_data, "ADMBase")) schedule ML_ADM_convertFromADMBase AT initial AFTER ADMBase_PostInitial { LANG: C + READS: ADMBase::curv + READS: ADMBase::lapse + READS: ADMBase::metric + READS: ADMBase::shift + WRITES: ML_ADM::ML_curv + WRITES: ML_ADM::ML_lapse + WRITES: ML_ADM::ML_metric + WRITES: ML_ADM::ML_shift } "ML_ADM_convertFromADMBase" } schedule ML_ADM_RHS IN MoL_CalcRHS { LANG: C + READS: ML_ADM::ML_curv + READS: ML_ADM::ML_lapse + READS: ML_ADM::ML_metric + READS: ML_ADM::ML_shift + WRITES: ML_ADM::ML_curvrhs + WRITES: ML_ADM::ML_lapserhs + WRITES: ML_ADM::ML_metricrhs + WRITES: ML_ADM::ML_shiftrhs } "ML_ADM_RHS" schedule ML_ADM_RHS AT analysis @@ -163,6 +177,14 @@ schedule ML_ADM_RHS AT analysis SYNC: ML_lapserhs SYNC: ML_metricrhs SYNC: ML_shiftrhs + READS: ML_ADM::ML_curv + READS: ML_ADM::ML_lapse + READS: ML_ADM::ML_metric + READS: ML_ADM::ML_shift + WRITES: ML_ADM::ML_curvrhs + WRITES: ML_ADM::ML_lapserhs + WRITES: ML_ADM::ML_metricrhs + WRITES: ML_ADM::ML_shiftrhs } "ML_ADM_RHS" @@ -171,12 +193,26 @@ if (CCTK_EQUALS(my_boundary_condition, "Minkowski")) schedule ML_ADM_boundary IN MoL_PostStep { LANG: C + WRITES: ML_ADM::ML_curv + WRITES: ML_ADM::ML_lapse + WRITES: ML_ADM::ML_metric + WRITES: ML_ADM::ML_shift } "ML_ADM_boundary" } schedule ML_ADM_convertToADMBase IN MoL_PostStep AFTER ML_ADM_ApplyBCs { LANG: C + READS: ML_ADM::ML_curv + READS: ML_ADM::ML_lapse + READS: ML_ADM::ML_metric + READS: ML_ADM::ML_shift + WRITES: ADMBase::curv + WRITES: ADMBase::dtlapse + WRITES: ADMBase::dtshift + WRITES: ADMBase::lapse + WRITES: ADMBase::metric + WRITES: ADMBase::shift } "ML_ADM_convertToADMBase" schedule ML_ADM_constraints AT analysis @@ -186,11 +222,17 @@ schedule ML_ADM_constraints AT analysis SYNC: ML_mom TRIGGERS: ML_Ham TRIGGERS: ML_mom + READS: ML_ADM::ML_curv + READS: ML_ADM::ML_metric + WRITES: ML_ADM::ML_Ham + WRITES: ML_ADM::ML_mom } "ML_ADM_constraints" schedule ML_ADM_constraints_boundary AT analysis AFTER ML_ADM_constraints { LANG: C + WRITES: ML_ADM::ML_Ham + WRITES: ML_ADM::ML_mom } "ML_ADM_constraints_boundary" schedule ML_ADM_SelectBoundConds in MoL_PostStep @@ -209,6 +251,12 @@ schedule ML_ADM_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" +schedule ML_ADM_RegisterVars in MoL_Register +{ + LANG: C + OPTIONS: meta +} "Register Variables for MoL" + schedule group ApplyBCs as ML_ADM_ApplyBCs in MoL_PostStep after ML_ADM_SelectBoundConds { # no language specified diff --git a/ML_ADM/src/ML_ADM_Minkowski.cc b/ML_ADM/src/ML_ADM_Minkowski.cc index f220dd2..b201596 100644 --- a/ML_ADM/src/ML_ADM_Minkowski.cc +++ b/ML_ADM/src/ML_ADM_Minkowski.cc @@ -29,8 +29,6 @@ static void ML_ADM_Minkowski_Body(cGH const * restrict const cctkGH, int const d DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -61,30 +59,30 @@ static void ML_ADM_Minkowski_Body(cGH const * restrict const cctkGH, int const d 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 p1o144dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,dz)),ToReal(0.00694444444444444444444444444444)); 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 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 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 p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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 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 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 p1o705600dxdy = kmul(INV(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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)); @@ -150,7 +148,7 @@ static void ML_ADM_Minkowski_Body(cGH const * restrict const cctkGH, int const d /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3VEC (ML_ADM_Minkowski, + LC_LOOP3VEC(ML_ADM_Minkowski, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], CCTK_REAL_VEC_SIZE) @@ -214,96 +212,26 @@ static void ML_ADM_Minkowski_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL_VEC beta3L = ToReal(0); - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count_lo = lc_imin-i; - ptrdiff_t const elt_count_hi = lc_imax-i; - vec_store_nta_partial_mid(alpha[index],alphaL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta1[index],beta1L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta2[index],beta2L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta3[index],beta3L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g11[index],g11L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g12[index],g12L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g13[index],g13L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g22[index],g22L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g23[index],g23L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g33[index],g33L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K11[index],K11L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K12[index],K12L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K13[index],K13L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K22[index],K22L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K23[index],K23L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K33[index],K33L,elt_count_lo,elt_count_hi); - break; - } - - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0)) - { - ptrdiff_t const elt_count = lc_imin-i; - vec_store_nta_partial_hi(alpha[index],alphaL,elt_count); - vec_store_nta_partial_hi(beta1[index],beta1L,elt_count); - vec_store_nta_partial_hi(beta2[index],beta2L,elt_count); - vec_store_nta_partial_hi(beta3[index],beta3L,elt_count); - vec_store_nta_partial_hi(g11[index],g11L,elt_count); - vec_store_nta_partial_hi(g12[index],g12L,elt_count); - vec_store_nta_partial_hi(g13[index],g13L,elt_count); - vec_store_nta_partial_hi(g22[index],g22L,elt_count); - vec_store_nta_partial_hi(g23[index],g23L,elt_count); - vec_store_nta_partial_hi(g33[index],g33L,elt_count); - vec_store_nta_partial_hi(K11[index],K11L,elt_count); - vec_store_nta_partial_hi(K12[index],K12L,elt_count); - vec_store_nta_partial_hi(K13[index],K13L,elt_count); - vec_store_nta_partial_hi(K22[index],K22L,elt_count); - vec_store_nta_partial_hi(K23[index],K23L,elt_count); - vec_store_nta_partial_hi(K33[index],K33L,elt_count); - continue; - } - - /* If necessary, store only partial vectors after the last iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count = lc_imax-i; - vec_store_nta_partial_lo(alpha[index],alphaL,elt_count); - vec_store_nta_partial_lo(beta1[index],beta1L,elt_count); - vec_store_nta_partial_lo(beta2[index],beta2L,elt_count); - vec_store_nta_partial_lo(beta3[index],beta3L,elt_count); - vec_store_nta_partial_lo(g11[index],g11L,elt_count); - vec_store_nta_partial_lo(g12[index],g12L,elt_count); - vec_store_nta_partial_lo(g13[index],g13L,elt_count); - vec_store_nta_partial_lo(g22[index],g22L,elt_count); - vec_store_nta_partial_lo(g23[index],g23L,elt_count); - vec_store_nta_partial_lo(g33[index],g33L,elt_count); - vec_store_nta_partial_lo(K11[index],K11L,elt_count); - vec_store_nta_partial_lo(K12[index],K12L,elt_count); - vec_store_nta_partial_lo(K13[index],K13L,elt_count); - vec_store_nta_partial_lo(K22[index],K22L,elt_count); - vec_store_nta_partial_lo(K23[index],K23L,elt_count); - vec_store_nta_partial_lo(K33[index],K33L,elt_count); - break; - } - vec_store_nta(alpha[index],alphaL); - vec_store_nta(beta1[index],beta1L); - vec_store_nta(beta2[index],beta2L); - vec_store_nta(beta3[index],beta3L); - vec_store_nta(g11[index],g11L); - vec_store_nta(g12[index],g12L); - vec_store_nta(g13[index],g13L); - vec_store_nta(g22[index],g22L); - vec_store_nta(g23[index],g23L); - vec_store_nta(g33[index],g33L); - vec_store_nta(K11[index],K11L); - vec_store_nta(K12[index],K12L); - vec_store_nta(K13[index],K13L); - vec_store_nta(K22[index],K22L); - vec_store_nta(K23[index],K23L); - vec_store_nta(K33[index],K33L); + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpha[index],alphaL); + vec_store_nta_partial(beta1[index],beta1L); + vec_store_nta_partial(beta2[index],beta2L); + vec_store_nta_partial(beta3[index],beta3L); + vec_store_nta_partial(g11[index],g11L); + vec_store_nta_partial(g12[index],g12L); + vec_store_nta_partial(g13[index],g13L); + vec_store_nta_partial(g22[index],g22L); + vec_store_nta_partial(g23[index],g23L); + vec_store_nta_partial(g33[index],g33L); + vec_store_nta_partial(K11[index],K11L); + vec_store_nta_partial(K12[index],K12L); + vec_store_nta_partial(K13[index],K13L); + vec_store_nta_partial(K22[index],K22L); + vec_store_nta_partial(K23[index],K23L); + vec_store_nta_partial(K33[index],K33L); } - LC_ENDLOOP3VEC (ML_ADM_Minkowski); + LC_ENDLOOP3VEC(ML_ADM_Minkowski); } extern "C" void ML_ADM_Minkowski(CCTK_ARGUMENTS) @@ -322,7 +250,11 @@ extern "C" void ML_ADM_Minkowski(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ML_ADM::ML_curv","ML_ADM::ML_lapse","ML_ADM::ML_metric","ML_ADM::ML_shift"}; + const char *const groups[] = { + "ML_ADM::ML_curv", + "ML_ADM::ML_lapse", + "ML_ADM::ML_metric", + "ML_ADM::ML_shift"}; GenericFD_AssertGroupStorage(cctkGH, "ML_ADM_Minkowski", 4, groups); switch(fdOrder) @@ -340,7 +272,7 @@ extern "C" void ML_ADM_Minkowski(CCTK_ARGUMENTS) break; } - GenericFD_LoopOverEverything(cctkGH, &ML_ADM_Minkowski_Body); + GenericFD_LoopOverEverything(cctkGH, ML_ADM_Minkowski_Body); if (verbose > 1) { diff --git a/ML_ADM/src/ML_ADM_RHS.cc b/ML_ADM/src/ML_ADM_RHS.cc index 4aa5793..b24ebe3 100644 --- a/ML_ADM/src/ML_ADM_RHS.cc +++ b/ML_ADM/src/ML_ADM_RHS.cc @@ -50,8 +50,6 @@ static void ML_ADM_RHS_Body(cGH const * restrict const cctkGH, int const dir, in DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -82,30 +80,30 @@ static void ML_ADM_RHS_Body(cGH const * restrict const cctkGH, int const dir, in 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 p1o144dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,dz)),ToReal(0.00694444444444444444444444444444)); 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 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 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 p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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 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 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 p1o705600dxdy = kmul(INV(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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)); @@ -171,7 +169,7 @@ static void ML_ADM_RHS_Body(cGH const * restrict const cctkGH, int const dir, in /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3VEC (ML_ADM_RHS, + LC_LOOP3VEC(ML_ADM_RHS, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], CCTK_REAL_VEC_SIZE) @@ -1473,96 +1471,26 @@ static void ML_ADM_RHS_Body(cGH const * restrict const cctkGH, int const dir, in CCTK_REAL_VEC beta3rhsL = ToReal(0); - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count_lo = lc_imin-i; - ptrdiff_t const elt_count_hi = lc_imax-i; - vec_store_nta_partial_mid(alpharhs[index],alpharhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta1rhs[index],beta1rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta2rhs[index],beta2rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta3rhs[index],beta3rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g11rhs[index],g11rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g12rhs[index],g12rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g13rhs[index],g13rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g22rhs[index],g22rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g23rhs[index],g23rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g33rhs[index],g33rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K11rhs[index],K11rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K12rhs[index],K12rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K13rhs[index],K13rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K22rhs[index],K22rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K23rhs[index],K23rhsL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K33rhs[index],K33rhsL,elt_count_lo,elt_count_hi); - break; - } - - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0)) - { - ptrdiff_t const elt_count = lc_imin-i; - vec_store_nta_partial_hi(alpharhs[index],alpharhsL,elt_count); - vec_store_nta_partial_hi(beta1rhs[index],beta1rhsL,elt_count); - vec_store_nta_partial_hi(beta2rhs[index],beta2rhsL,elt_count); - vec_store_nta_partial_hi(beta3rhs[index],beta3rhsL,elt_count); - vec_store_nta_partial_hi(g11rhs[index],g11rhsL,elt_count); - vec_store_nta_partial_hi(g12rhs[index],g12rhsL,elt_count); - vec_store_nta_partial_hi(g13rhs[index],g13rhsL,elt_count); - vec_store_nta_partial_hi(g22rhs[index],g22rhsL,elt_count); - vec_store_nta_partial_hi(g23rhs[index],g23rhsL,elt_count); - vec_store_nta_partial_hi(g33rhs[index],g33rhsL,elt_count); - vec_store_nta_partial_hi(K11rhs[index],K11rhsL,elt_count); - vec_store_nta_partial_hi(K12rhs[index],K12rhsL,elt_count); - vec_store_nta_partial_hi(K13rhs[index],K13rhsL,elt_count); - vec_store_nta_partial_hi(K22rhs[index],K22rhsL,elt_count); - vec_store_nta_partial_hi(K23rhs[index],K23rhsL,elt_count); - vec_store_nta_partial_hi(K33rhs[index],K33rhsL,elt_count); - continue; - } - - /* If necessary, store only partial vectors after the last iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count = lc_imax-i; - vec_store_nta_partial_lo(alpharhs[index],alpharhsL,elt_count); - vec_store_nta_partial_lo(beta1rhs[index],beta1rhsL,elt_count); - vec_store_nta_partial_lo(beta2rhs[index],beta2rhsL,elt_count); - vec_store_nta_partial_lo(beta3rhs[index],beta3rhsL,elt_count); - vec_store_nta_partial_lo(g11rhs[index],g11rhsL,elt_count); - vec_store_nta_partial_lo(g12rhs[index],g12rhsL,elt_count); - vec_store_nta_partial_lo(g13rhs[index],g13rhsL,elt_count); - vec_store_nta_partial_lo(g22rhs[index],g22rhsL,elt_count); - vec_store_nta_partial_lo(g23rhs[index],g23rhsL,elt_count); - vec_store_nta_partial_lo(g33rhs[index],g33rhsL,elt_count); - vec_store_nta_partial_lo(K11rhs[index],K11rhsL,elt_count); - vec_store_nta_partial_lo(K12rhs[index],K12rhsL,elt_count); - vec_store_nta_partial_lo(K13rhs[index],K13rhsL,elt_count); - vec_store_nta_partial_lo(K22rhs[index],K22rhsL,elt_count); - vec_store_nta_partial_lo(K23rhs[index],K23rhsL,elt_count); - vec_store_nta_partial_lo(K33rhs[index],K33rhsL,elt_count); - break; - } - vec_store_nta(alpharhs[index],alpharhsL); - vec_store_nta(beta1rhs[index],beta1rhsL); - vec_store_nta(beta2rhs[index],beta2rhsL); - vec_store_nta(beta3rhs[index],beta3rhsL); - vec_store_nta(g11rhs[index],g11rhsL); - vec_store_nta(g12rhs[index],g12rhsL); - vec_store_nta(g13rhs[index],g13rhsL); - vec_store_nta(g22rhs[index],g22rhsL); - vec_store_nta(g23rhs[index],g23rhsL); - vec_store_nta(g33rhs[index],g33rhsL); - vec_store_nta(K11rhs[index],K11rhsL); - vec_store_nta(K12rhs[index],K12rhsL); - vec_store_nta(K13rhs[index],K13rhsL); - vec_store_nta(K22rhs[index],K22rhsL); - vec_store_nta(K23rhs[index],K23rhsL); - vec_store_nta(K33rhs[index],K33rhsL); + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpharhs[index],alpharhsL); + vec_store_nta_partial(beta1rhs[index],beta1rhsL); + vec_store_nta_partial(beta2rhs[index],beta2rhsL); + vec_store_nta_partial(beta3rhs[index],beta3rhsL); + vec_store_nta_partial(g11rhs[index],g11rhsL); + vec_store_nta_partial(g12rhs[index],g12rhsL); + vec_store_nta_partial(g13rhs[index],g13rhsL); + vec_store_nta_partial(g22rhs[index],g22rhsL); + vec_store_nta_partial(g23rhs[index],g23rhsL); + vec_store_nta_partial(g33rhs[index],g33rhsL); + vec_store_nta_partial(K11rhs[index],K11rhsL); + vec_store_nta_partial(K12rhs[index],K12rhsL); + vec_store_nta_partial(K13rhs[index],K13rhsL); + vec_store_nta_partial(K22rhs[index],K22rhsL); + vec_store_nta_partial(K23rhs[index],K23rhsL); + vec_store_nta_partial(K33rhs[index],K33rhsL); } - LC_ENDLOOP3VEC (ML_ADM_RHS); + LC_ENDLOOP3VEC(ML_ADM_RHS); } extern "C" void ML_ADM_RHS(CCTK_ARGUMENTS) @@ -1581,7 +1509,15 @@ extern "C" void ML_ADM_RHS(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ML_ADM::ML_curv","ML_ADM::ML_curvrhs","ML_ADM::ML_lapse","ML_ADM::ML_lapserhs","ML_ADM::ML_metric","ML_ADM::ML_metricrhs","ML_ADM::ML_shift","ML_ADM::ML_shiftrhs"}; + const char *const groups[] = { + "ML_ADM::ML_curv", + "ML_ADM::ML_curvrhs", + "ML_ADM::ML_lapse", + "ML_ADM::ML_lapserhs", + "ML_ADM::ML_metric", + "ML_ADM::ML_metricrhs", + "ML_ADM::ML_shift", + "ML_ADM::ML_shiftrhs"}; GenericFD_AssertGroupStorage(cctkGH, "ML_ADM_RHS", 8, groups); switch(fdOrder) @@ -1603,7 +1539,7 @@ extern "C" void ML_ADM_RHS(CCTK_ARGUMENTS) break; } - GenericFD_LoopOverInterior(cctkGH, &ML_ADM_RHS_Body); + GenericFD_LoopOverInterior(cctkGH, ML_ADM_RHS_Body); if (verbose > 1) { diff --git a/ML_ADM/src/ML_ADM_boundary.cc b/ML_ADM/src/ML_ADM_boundary.cc index d4d81cf..6f0ef79 100644 --- a/ML_ADM/src/ML_ADM_boundary.cc +++ b/ML_ADM/src/ML_ADM_boundary.cc @@ -50,8 +50,6 @@ static void ML_ADM_boundary_Body(cGH const * restrict const cctkGH, int const di DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -82,30 +80,30 @@ static void ML_ADM_boundary_Body(cGH const * restrict const cctkGH, int const di 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 p1o144dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,dz)),ToReal(0.00694444444444444444444444444444)); 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 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 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 p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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 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 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 p1o705600dxdy = kmul(INV(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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)); @@ -171,7 +169,7 @@ static void ML_ADM_boundary_Body(cGH const * restrict const cctkGH, int const di /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3VEC (ML_ADM_boundary, + LC_LOOP3VEC(ML_ADM_boundary, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], CCTK_REAL_VEC_SIZE) @@ -235,96 +233,26 @@ static void ML_ADM_boundary_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC beta3L = ToReal(0); - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count_lo = lc_imin-i; - ptrdiff_t const elt_count_hi = lc_imax-i; - vec_store_nta_partial_mid(alpha[index],alphaL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta1[index],beta1L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta2[index],beta2L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta3[index],beta3L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g11[index],g11L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g12[index],g12L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g13[index],g13L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g22[index],g22L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g23[index],g23L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g33[index],g33L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K11[index],K11L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K12[index],K12L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K13[index],K13L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K22[index],K22L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K23[index],K23L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K33[index],K33L,elt_count_lo,elt_count_hi); - break; - } - - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0)) - { - ptrdiff_t const elt_count = lc_imin-i; - vec_store_nta_partial_hi(alpha[index],alphaL,elt_count); - vec_store_nta_partial_hi(beta1[index],beta1L,elt_count); - vec_store_nta_partial_hi(beta2[index],beta2L,elt_count); - vec_store_nta_partial_hi(beta3[index],beta3L,elt_count); - vec_store_nta_partial_hi(g11[index],g11L,elt_count); - vec_store_nta_partial_hi(g12[index],g12L,elt_count); - vec_store_nta_partial_hi(g13[index],g13L,elt_count); - vec_store_nta_partial_hi(g22[index],g22L,elt_count); - vec_store_nta_partial_hi(g23[index],g23L,elt_count); - vec_store_nta_partial_hi(g33[index],g33L,elt_count); - vec_store_nta_partial_hi(K11[index],K11L,elt_count); - vec_store_nta_partial_hi(K12[index],K12L,elt_count); - vec_store_nta_partial_hi(K13[index],K13L,elt_count); - vec_store_nta_partial_hi(K22[index],K22L,elt_count); - vec_store_nta_partial_hi(K23[index],K23L,elt_count); - vec_store_nta_partial_hi(K33[index],K33L,elt_count); - continue; - } - - /* If necessary, store only partial vectors after the last iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count = lc_imax-i; - vec_store_nta_partial_lo(alpha[index],alphaL,elt_count); - vec_store_nta_partial_lo(beta1[index],beta1L,elt_count); - vec_store_nta_partial_lo(beta2[index],beta2L,elt_count); - vec_store_nta_partial_lo(beta3[index],beta3L,elt_count); - vec_store_nta_partial_lo(g11[index],g11L,elt_count); - vec_store_nta_partial_lo(g12[index],g12L,elt_count); - vec_store_nta_partial_lo(g13[index],g13L,elt_count); - vec_store_nta_partial_lo(g22[index],g22L,elt_count); - vec_store_nta_partial_lo(g23[index],g23L,elt_count); - vec_store_nta_partial_lo(g33[index],g33L,elt_count); - vec_store_nta_partial_lo(K11[index],K11L,elt_count); - vec_store_nta_partial_lo(K12[index],K12L,elt_count); - vec_store_nta_partial_lo(K13[index],K13L,elt_count); - vec_store_nta_partial_lo(K22[index],K22L,elt_count); - vec_store_nta_partial_lo(K23[index],K23L,elt_count); - vec_store_nta_partial_lo(K33[index],K33L,elt_count); - break; - } - vec_store_nta(alpha[index],alphaL); - vec_store_nta(beta1[index],beta1L); - vec_store_nta(beta2[index],beta2L); - vec_store_nta(beta3[index],beta3L); - vec_store_nta(g11[index],g11L); - vec_store_nta(g12[index],g12L); - vec_store_nta(g13[index],g13L); - vec_store_nta(g22[index],g22L); - vec_store_nta(g23[index],g23L); - vec_store_nta(g33[index],g33L); - vec_store_nta(K11[index],K11L); - vec_store_nta(K12[index],K12L); - vec_store_nta(K13[index],K13L); - vec_store_nta(K22[index],K22L); - vec_store_nta(K23[index],K23L); - vec_store_nta(K33[index],K33L); + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpha[index],alphaL); + vec_store_nta_partial(beta1[index],beta1L); + vec_store_nta_partial(beta2[index],beta2L); + vec_store_nta_partial(beta3[index],beta3L); + vec_store_nta_partial(g11[index],g11L); + vec_store_nta_partial(g12[index],g12L); + vec_store_nta_partial(g13[index],g13L); + vec_store_nta_partial(g22[index],g22L); + vec_store_nta_partial(g23[index],g23L); + vec_store_nta_partial(g33[index],g33L); + vec_store_nta_partial(K11[index],K11L); + vec_store_nta_partial(K12[index],K12L); + vec_store_nta_partial(K13[index],K13L); + vec_store_nta_partial(K22[index],K22L); + vec_store_nta_partial(K23[index],K23L); + vec_store_nta_partial(K33[index],K33L); } - LC_ENDLOOP3VEC (ML_ADM_boundary); + LC_ENDLOOP3VEC(ML_ADM_boundary); } extern "C" void ML_ADM_boundary(CCTK_ARGUMENTS) @@ -343,7 +271,11 @@ extern "C" void ML_ADM_boundary(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ML_ADM::ML_curv","ML_ADM::ML_lapse","ML_ADM::ML_metric","ML_ADM::ML_shift"}; + const char *const groups[] = { + "ML_ADM::ML_curv", + "ML_ADM::ML_lapse", + "ML_ADM::ML_metric", + "ML_ADM::ML_shift"}; GenericFD_AssertGroupStorage(cctkGH, "ML_ADM_boundary", 4, groups); switch(fdOrder) @@ -361,7 +293,7 @@ extern "C" void ML_ADM_boundary(CCTK_ARGUMENTS) break; } - GenericFD_LoopOverBoundaryWithGhosts(cctkGH, &ML_ADM_boundary_Body); + GenericFD_LoopOverBoundaryWithGhosts(cctkGH, ML_ADM_boundary_Body); if (verbose > 1) { diff --git a/ML_ADM/src/ML_ADM_constraints.cc b/ML_ADM/src/ML_ADM_constraints.cc index 3175e41..ca349a9 100644 --- a/ML_ADM/src/ML_ADM_constraints.cc +++ b/ML_ADM/src/ML_ADM_constraints.cc @@ -44,8 +44,6 @@ static void ML_ADM_constraints_Body(cGH const * restrict const cctkGH, int const DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -76,30 +74,30 @@ static void ML_ADM_constraints_Body(cGH const * restrict const cctkGH, int const 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 p1o144dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,dz)),ToReal(0.00694444444444444444444444444444)); 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 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 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 p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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 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 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 p1o705600dxdy = kmul(INV(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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)); @@ -165,7 +163,7 @@ static void ML_ADM_constraints_Body(cGH const * restrict const cctkGH, int const /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3VEC (ML_ADM_constraints, + LC_LOOP3VEC(ML_ADM_constraints, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], CCTK_REAL_VEC_SIZE) @@ -1218,48 +1216,14 @@ static void ML_ADM_constraints_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC M3L = kmadd(gu11,kmadd(K11L,G113,kmadd(K12L,G213,kadd(JacPDstandardNth1K13,knmsub(K23L,G211,knmsub(K33L,G311,kmsub(K13L,ksub(G313,G111),JacPDstandardNth3K11)))))),kmadd(gu12,kmadd(K11L,G123,kmadd(K12L,G223,kadd(JacPDstandardNth1K23,knmsub(K23L,G212,knmsub(K33L,G312,kmsub(K13L,ksub(G323,G112),JacPDstandardNth3K12)))))),kmadd(gu13,kmadd(K11L,G133,kmadd(K12L,G233,kadd(JacPDstandardNth1K33,knmsub(K23L,G213,knmsub(K33L,G313,kmsub(K13L,ksub(G333,G113),JacPDstandardNth3K13)))))),kmadd(gu21,kmadd(K12L,G113,kmadd(K22L,G213,kadd(JacPDstandardNth2K13,knmsub(K13L,G112,knmsub(K33L,G312,kmsub(K23L,ksub(G313,G212),JacPDstandardNth3K12)))))),kmadd(gu22,kmadd(K12L,G123,kmadd(K22L,G223,kadd(JacPDstandardNth2K23,knmsub(K13L,G122,knmsub(K33L,G322,kmsub(K23L,ksub(G323,G222),JacPDstandardNth3K22)))))),kmul(gu23,kmadd(K12L,G133,kmadd(K22L,G233,kadd(JacPDstandardNth2K33,knmsub(K13L,G123,knmsub(K33L,G323,kmsub(K23L,ksub(G333,G223),JacPDstandardNth3K23)))))))))))); - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count_lo = lc_imin-i; - ptrdiff_t const elt_count_hi = lc_imax-i; - vec_store_nta_partial_mid(H[index],HL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(M1[index],M1L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(M2[index],M2L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(M3[index],M3L,elt_count_lo,elt_count_hi); - break; - } - - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0)) - { - ptrdiff_t const elt_count = lc_imin-i; - vec_store_nta_partial_hi(H[index],HL,elt_count); - vec_store_nta_partial_hi(M1[index],M1L,elt_count); - vec_store_nta_partial_hi(M2[index],M2L,elt_count); - vec_store_nta_partial_hi(M3[index],M3L,elt_count); - continue; - } - - /* If necessary, store only partial vectors after the last iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count = lc_imax-i; - vec_store_nta_partial_lo(H[index],HL,elt_count); - vec_store_nta_partial_lo(M1[index],M1L,elt_count); - vec_store_nta_partial_lo(M2[index],M2L,elt_count); - vec_store_nta_partial_lo(M3[index],M3L,elt_count); - break; - } - vec_store_nta(H[index],HL); - vec_store_nta(M1[index],M1L); - vec_store_nta(M2[index],M2L); - vec_store_nta(M3[index],M3L); + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(H[index],HL); + vec_store_nta_partial(M1[index],M1L); + vec_store_nta_partial(M2[index],M2L); + vec_store_nta_partial(M3[index],M3L); } - LC_ENDLOOP3VEC (ML_ADM_constraints); + LC_ENDLOOP3VEC(ML_ADM_constraints); } extern "C" void ML_ADM_constraints(CCTK_ARGUMENTS) @@ -1278,7 +1242,11 @@ extern "C" void ML_ADM_constraints(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ML_ADM::ML_curv","ML_ADM::ML_Ham","ML_ADM::ML_metric","ML_ADM::ML_mom"}; + const char *const groups[] = { + "ML_ADM::ML_curv", + "ML_ADM::ML_Ham", + "ML_ADM::ML_metric", + "ML_ADM::ML_mom"}; GenericFD_AssertGroupStorage(cctkGH, "ML_ADM_constraints", 4, groups); switch(fdOrder) @@ -1300,7 +1268,7 @@ extern "C" void ML_ADM_constraints(CCTK_ARGUMENTS) break; } - GenericFD_LoopOverInterior(cctkGH, &ML_ADM_constraints_Body); + GenericFD_LoopOverInterior(cctkGH, ML_ADM_constraints_Body); if (verbose > 1) { diff --git a/ML_ADM/src/ML_ADM_constraints_boundary.cc b/ML_ADM/src/ML_ADM_constraints_boundary.cc index 7211b66..0749b4e 100644 --- a/ML_ADM/src/ML_ADM_constraints_boundary.cc +++ b/ML_ADM/src/ML_ADM_constraints_boundary.cc @@ -44,8 +44,6 @@ static void ML_ADM_constraints_boundary_Body(cGH const * restrict const cctkGH, DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -76,30 +74,30 @@ static void ML_ADM_constraints_boundary_Body(cGH const * restrict const cctkGH, 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 p1o144dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,dz)),ToReal(0.00694444444444444444444444444444)); 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 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 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 p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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 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 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 p1o705600dxdy = kmul(INV(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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)); @@ -165,7 +163,7 @@ static void ML_ADM_constraints_boundary_Body(cGH const * restrict const cctkGH, /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3VEC (ML_ADM_constraints_boundary, + LC_LOOP3VEC(ML_ADM_constraints_boundary, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], CCTK_REAL_VEC_SIZE) @@ -205,48 +203,14 @@ static void ML_ADM_constraints_boundary_Body(cGH const * restrict const cctkGH, CCTK_REAL_VEC M3L = ToReal(0); - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count_lo = lc_imin-i; - ptrdiff_t const elt_count_hi = lc_imax-i; - vec_store_nta_partial_mid(H[index],HL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(M1[index],M1L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(M2[index],M2L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(M3[index],M3L,elt_count_lo,elt_count_hi); - break; - } - - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0)) - { - ptrdiff_t const elt_count = lc_imin-i; - vec_store_nta_partial_hi(H[index],HL,elt_count); - vec_store_nta_partial_hi(M1[index],M1L,elt_count); - vec_store_nta_partial_hi(M2[index],M2L,elt_count); - vec_store_nta_partial_hi(M3[index],M3L,elt_count); - continue; - } - - /* If necessary, store only partial vectors after the last iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count = lc_imax-i; - vec_store_nta_partial_lo(H[index],HL,elt_count); - vec_store_nta_partial_lo(M1[index],M1L,elt_count); - vec_store_nta_partial_lo(M2[index],M2L,elt_count); - vec_store_nta_partial_lo(M3[index],M3L,elt_count); - break; - } - vec_store_nta(H[index],HL); - vec_store_nta(M1[index],M1L); - vec_store_nta(M2[index],M2L); - vec_store_nta(M3[index],M3L); + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(H[index],HL); + vec_store_nta_partial(M1[index],M1L); + vec_store_nta_partial(M2[index],M2L); + vec_store_nta_partial(M3[index],M3L); } - LC_ENDLOOP3VEC (ML_ADM_constraints_boundary); + LC_ENDLOOP3VEC(ML_ADM_constraints_boundary); } extern "C" void ML_ADM_constraints_boundary(CCTK_ARGUMENTS) @@ -265,7 +229,9 @@ extern "C" void ML_ADM_constraints_boundary(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ML_ADM::ML_Ham","ML_ADM::ML_mom"}; + const char *const groups[] = { + "ML_ADM::ML_Ham", + "ML_ADM::ML_mom"}; GenericFD_AssertGroupStorage(cctkGH, "ML_ADM_constraints_boundary", 2, groups); switch(fdOrder) @@ -283,7 +249,7 @@ extern "C" void ML_ADM_constraints_boundary(CCTK_ARGUMENTS) break; } - GenericFD_LoopOverBoundaryWithGhosts(cctkGH, &ML_ADM_constraints_boundary_Body); + GenericFD_LoopOverBoundaryWithGhosts(cctkGH, ML_ADM_constraints_boundary_Body); if (verbose > 1) { diff --git a/ML_ADM/src/ML_ADM_convertFromADMBase.cc b/ML_ADM/src/ML_ADM_convertFromADMBase.cc index ccf06b3..7ba54c9 100644 --- a/ML_ADM/src/ML_ADM_convertFromADMBase.cc +++ b/ML_ADM/src/ML_ADM_convertFromADMBase.cc @@ -29,8 +29,6 @@ static void ML_ADM_convertFromADMBase_Body(cGH const * restrict const cctkGH, in DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -61,30 +59,30 @@ static void ML_ADM_convertFromADMBase_Body(cGH const * restrict const cctkGH, in 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 p1o144dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,dz)),ToReal(0.00694444444444444444444444444444)); 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 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 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 p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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 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 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 p1o705600dxdy = kmul(INV(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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)); @@ -150,7 +148,7 @@ static void ML_ADM_convertFromADMBase_Body(cGH const * restrict const cctkGH, in /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3VEC (ML_ADM_convertFromADMBase, + LC_LOOP3VEC(ML_ADM_convertFromADMBase, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], CCTK_REAL_VEC_SIZE) @@ -230,96 +228,26 @@ static void ML_ADM_convertFromADMBase_Body(cGH const * restrict const cctkGH, in CCTK_REAL_VEC beta3L = betazL; - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count_lo = lc_imin-i; - ptrdiff_t const elt_count_hi = lc_imax-i; - vec_store_nta_partial_mid(alpha[index],alphaL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta1[index],beta1L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta2[index],beta2L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(beta3[index],beta3L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g11[index],g11L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g12[index],g12L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g13[index],g13L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g22[index],g22L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g23[index],g23L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(g33[index],g33L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K11[index],K11L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K12[index],K12L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K13[index],K13L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K22[index],K22L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K23[index],K23L,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(K33[index],K33L,elt_count_lo,elt_count_hi); - break; - } - - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0)) - { - ptrdiff_t const elt_count = lc_imin-i; - vec_store_nta_partial_hi(alpha[index],alphaL,elt_count); - vec_store_nta_partial_hi(beta1[index],beta1L,elt_count); - vec_store_nta_partial_hi(beta2[index],beta2L,elt_count); - vec_store_nta_partial_hi(beta3[index],beta3L,elt_count); - vec_store_nta_partial_hi(g11[index],g11L,elt_count); - vec_store_nta_partial_hi(g12[index],g12L,elt_count); - vec_store_nta_partial_hi(g13[index],g13L,elt_count); - vec_store_nta_partial_hi(g22[index],g22L,elt_count); - vec_store_nta_partial_hi(g23[index],g23L,elt_count); - vec_store_nta_partial_hi(g33[index],g33L,elt_count); - vec_store_nta_partial_hi(K11[index],K11L,elt_count); - vec_store_nta_partial_hi(K12[index],K12L,elt_count); - vec_store_nta_partial_hi(K13[index],K13L,elt_count); - vec_store_nta_partial_hi(K22[index],K22L,elt_count); - vec_store_nta_partial_hi(K23[index],K23L,elt_count); - vec_store_nta_partial_hi(K33[index],K33L,elt_count); - continue; - } - - /* If necessary, store only partial vectors after the last iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count = lc_imax-i; - vec_store_nta_partial_lo(alpha[index],alphaL,elt_count); - vec_store_nta_partial_lo(beta1[index],beta1L,elt_count); - vec_store_nta_partial_lo(beta2[index],beta2L,elt_count); - vec_store_nta_partial_lo(beta3[index],beta3L,elt_count); - vec_store_nta_partial_lo(g11[index],g11L,elt_count); - vec_store_nta_partial_lo(g12[index],g12L,elt_count); - vec_store_nta_partial_lo(g13[index],g13L,elt_count); - vec_store_nta_partial_lo(g22[index],g22L,elt_count); - vec_store_nta_partial_lo(g23[index],g23L,elt_count); - vec_store_nta_partial_lo(g33[index],g33L,elt_count); - vec_store_nta_partial_lo(K11[index],K11L,elt_count); - vec_store_nta_partial_lo(K12[index],K12L,elt_count); - vec_store_nta_partial_lo(K13[index],K13L,elt_count); - vec_store_nta_partial_lo(K22[index],K22L,elt_count); - vec_store_nta_partial_lo(K23[index],K23L,elt_count); - vec_store_nta_partial_lo(K33[index],K33L,elt_count); - break; - } - vec_store_nta(alpha[index],alphaL); - vec_store_nta(beta1[index],beta1L); - vec_store_nta(beta2[index],beta2L); - vec_store_nta(beta3[index],beta3L); - vec_store_nta(g11[index],g11L); - vec_store_nta(g12[index],g12L); - vec_store_nta(g13[index],g13L); - vec_store_nta(g22[index],g22L); - vec_store_nta(g23[index],g23L); - vec_store_nta(g33[index],g33L); - vec_store_nta(K11[index],K11L); - vec_store_nta(K12[index],K12L); - vec_store_nta(K13[index],K13L); - vec_store_nta(K22[index],K22L); - vec_store_nta(K23[index],K23L); - vec_store_nta(K33[index],K33L); + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpha[index],alphaL); + vec_store_nta_partial(beta1[index],beta1L); + vec_store_nta_partial(beta2[index],beta2L); + vec_store_nta_partial(beta3[index],beta3L); + vec_store_nta_partial(g11[index],g11L); + vec_store_nta_partial(g12[index],g12L); + vec_store_nta_partial(g13[index],g13L); + vec_store_nta_partial(g22[index],g22L); + vec_store_nta_partial(g23[index],g23L); + vec_store_nta_partial(g33[index],g33L); + vec_store_nta_partial(K11[index],K11L); + vec_store_nta_partial(K12[index],K12L); + vec_store_nta_partial(K13[index],K13L); + vec_store_nta_partial(K22[index],K22L); + vec_store_nta_partial(K23[index],K23L); + vec_store_nta_partial(K33[index],K33L); } - LC_ENDLOOP3VEC (ML_ADM_convertFromADMBase); + LC_ENDLOOP3VEC(ML_ADM_convertFromADMBase); } extern "C" void ML_ADM_convertFromADMBase(CCTK_ARGUMENTS) @@ -338,7 +266,15 @@ extern "C" void ML_ADM_convertFromADMBase(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ADMBase::curv","ADMBase::lapse","ADMBase::metric","ADMBase::shift","ML_ADM::ML_curv","ML_ADM::ML_lapse","ML_ADM::ML_metric","ML_ADM::ML_shift"}; + const char *const groups[] = { + "ADMBase::curv", + "ADMBase::lapse", + "ADMBase::metric", + "ADMBase::shift", + "ML_ADM::ML_curv", + "ML_ADM::ML_lapse", + "ML_ADM::ML_metric", + "ML_ADM::ML_shift"}; GenericFD_AssertGroupStorage(cctkGH, "ML_ADM_convertFromADMBase", 8, groups); switch(fdOrder) @@ -356,7 +292,7 @@ extern "C" void ML_ADM_convertFromADMBase(CCTK_ARGUMENTS) break; } - GenericFD_LoopOverEverything(cctkGH, &ML_ADM_convertFromADMBase_Body); + GenericFD_LoopOverEverything(cctkGH, ML_ADM_convertFromADMBase_Body); if (verbose > 1) { diff --git a/ML_ADM/src/ML_ADM_convertToADMBase.cc b/ML_ADM/src/ML_ADM_convertToADMBase.cc index 83608cf..1a75640 100644 --- a/ML_ADM/src/ML_ADM_convertToADMBase.cc +++ b/ML_ADM/src/ML_ADM_convertToADMBase.cc @@ -29,8 +29,6 @@ static void ML_ADM_convertToADMBase_Body(cGH const * restrict const cctkGH, int DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -61,30 +59,30 @@ static void ML_ADM_convertToADMBase_Body(cGH const * restrict const cctkGH, int 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 p1o144dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,dz)),ToReal(0.00694444444444444444444444444444)); 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 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 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 p1o4dydz = kmul(INV(dy),kmul(INV(dz),ToReal(0.25))); + CCTK_REAL_VEC const p1o3600dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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 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 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 p1o705600dxdy = kmul(INV(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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)); @@ -150,7 +148,7 @@ static void ML_ADM_convertToADMBase_Body(cGH const * restrict const cctkGH, int /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3VEC (ML_ADM_convertToADMBase, + LC_LOOP3VEC(ML_ADM_convertToADMBase, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], CCTK_REAL_VEC_SIZE) @@ -238,112 +236,30 @@ static void ML_ADM_convertToADMBase_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC dtbetazL = ToReal(0); - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count_lo = lc_imin-i; - ptrdiff_t const elt_count_hi = lc_imax-i; - vec_store_nta_partial_mid(alp[index],alpL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(betax[index],betaxL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(betay[index],betayL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(betaz[index],betazL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(dtalp[index],dtalpL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(dtbetax[index],dtbetaxL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(dtbetay[index],dtbetayL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(dtbetaz[index],dtbetazL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(gxx[index],gxxL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(gxy[index],gxyL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(gxz[index],gxzL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(gyy[index],gyyL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(gyz[index],gyzL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(gzz[index],gzzL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(kxx[index],kxxL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(kxy[index],kxyL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(kxz[index],kxzL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(kyy[index],kyyL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(kyz[index],kyzL,elt_count_lo,elt_count_hi); - vec_store_nta_partial_mid(kzz[index],kzzL,elt_count_lo,elt_count_hi); - break; - } - - /* If necessary, store only partial vectors after the first iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0)) - { - ptrdiff_t const elt_count = lc_imin-i; - vec_store_nta_partial_hi(alp[index],alpL,elt_count); - vec_store_nta_partial_hi(betax[index],betaxL,elt_count); - vec_store_nta_partial_hi(betay[index],betayL,elt_count); - vec_store_nta_partial_hi(betaz[index],betazL,elt_count); - vec_store_nta_partial_hi(dtalp[index],dtalpL,elt_count); - vec_store_nta_partial_hi(dtbetax[index],dtbetaxL,elt_count); - vec_store_nta_partial_hi(dtbetay[index],dtbetayL,elt_count); - vec_store_nta_partial_hi(dtbetaz[index],dtbetazL,elt_count); - vec_store_nta_partial_hi(gxx[index],gxxL,elt_count); - vec_store_nta_partial_hi(gxy[index],gxyL,elt_count); - vec_store_nta_partial_hi(gxz[index],gxzL,elt_count); - vec_store_nta_partial_hi(gyy[index],gyyL,elt_count); - vec_store_nta_partial_hi(gyz[index],gyzL,elt_count); - vec_store_nta_partial_hi(gzz[index],gzzL,elt_count); - vec_store_nta_partial_hi(kxx[index],kxxL,elt_count); - vec_store_nta_partial_hi(kxy[index],kxyL,elt_count); - vec_store_nta_partial_hi(kxz[index],kxzL,elt_count); - vec_store_nta_partial_hi(kyy[index],kyyL,elt_count); - vec_store_nta_partial_hi(kyz[index],kyzL,elt_count); - vec_store_nta_partial_hi(kzz[index],kzzL,elt_count); - continue; - } - - /* If necessary, store only partial vectors after the last iteration */ - - if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0)) - { - ptrdiff_t const elt_count = lc_imax-i; - vec_store_nta_partial_lo(alp[index],alpL,elt_count); - vec_store_nta_partial_lo(betax[index],betaxL,elt_count); - vec_store_nta_partial_lo(betay[index],betayL,elt_count); - vec_store_nta_partial_lo(betaz[index],betazL,elt_count); - vec_store_nta_partial_lo(dtalp[index],dtalpL,elt_count); - vec_store_nta_partial_lo(dtbetax[index],dtbetaxL,elt_count); - vec_store_nta_partial_lo(dtbetay[index],dtbetayL,elt_count); - vec_store_nta_partial_lo(dtbetaz[index],dtbetazL,elt_count); - vec_store_nta_partial_lo(gxx[index],gxxL,elt_count); - vec_store_nta_partial_lo(gxy[index],gxyL,elt_count); - vec_store_nta_partial_lo(gxz[index],gxzL,elt_count); - vec_store_nta_partial_lo(gyy[index],gyyL,elt_count); - vec_store_nta_partial_lo(gyz[index],gyzL,elt_count); - vec_store_nta_partial_lo(gzz[index],gzzL,elt_count); - vec_store_nta_partial_lo(kxx[index],kxxL,elt_count); - vec_store_nta_partial_lo(kxy[index],kxyL,elt_count); - vec_store_nta_partial_lo(kxz[index],kxzL,elt_count); - vec_store_nta_partial_lo(kyy[index],kyyL,elt_count); - vec_store_nta_partial_lo(kyz[index],kyzL,elt_count); - vec_store_nta_partial_lo(kzz[index],kzzL,elt_count); - break; - } - vec_store_nta(alp[index],alpL); - vec_store_nta(betax[index],betaxL); - vec_store_nta(betay[index],betayL); - vec_store_nta(betaz[index],betazL); - vec_store_nta(dtalp[index],dtalpL); - vec_store_nta(dtbetax[index],dtbetaxL); - vec_store_nta(dtbetay[index],dtbetayL); - vec_store_nta(dtbetaz[index],dtbetazL); - vec_store_nta(gxx[index],gxxL); - vec_store_nta(gxy[index],gxyL); - vec_store_nta(gxz[index],gxzL); - vec_store_nta(gyy[index],gyyL); - vec_store_nta(gyz[index],gyzL); - vec_store_nta(gzz[index],gzzL); - vec_store_nta(kxx[index],kxxL); - vec_store_nta(kxy[index],kxyL); - vec_store_nta(kxz[index],kxzL); - vec_store_nta(kyy[index],kyyL); - vec_store_nta(kyz[index],kyzL); - vec_store_nta(kzz[index],kzzL); + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alp[index],alpL); + vec_store_nta_partial(betax[index],betaxL); + vec_store_nta_partial(betay[index],betayL); + vec_store_nta_partial(betaz[index],betazL); + vec_store_nta_partial(dtalp[index],dtalpL); + vec_store_nta_partial(dtbetax[index],dtbetaxL); + vec_store_nta_partial(dtbetay[index],dtbetayL); + vec_store_nta_partial(dtbetaz[index],dtbetazL); + vec_store_nta_partial(gxx[index],gxxL); + vec_store_nta_partial(gxy[index],gxyL); + vec_store_nta_partial(gxz[index],gxzL); + vec_store_nta_partial(gyy[index],gyyL); + vec_store_nta_partial(gyz[index],gyzL); + vec_store_nta_partial(gzz[index],gzzL); + vec_store_nta_partial(kxx[index],kxxL); + vec_store_nta_partial(kxy[index],kxyL); + vec_store_nta_partial(kxz[index],kxzL); + vec_store_nta_partial(kyy[index],kyyL); + vec_store_nta_partial(kyz[index],kyzL); + vec_store_nta_partial(kzz[index],kzzL); } - LC_ENDLOOP3VEC (ML_ADM_convertToADMBase); + LC_ENDLOOP3VEC(ML_ADM_convertToADMBase); } extern "C" void ML_ADM_convertToADMBase(CCTK_ARGUMENTS) @@ -362,7 +278,17 @@ extern "C" void ML_ADM_convertToADMBase(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ADMBase::curv","ADMBase::dtlapse","ADMBase::dtshift","ADMBase::lapse","ADMBase::metric","ADMBase::shift","ML_ADM::ML_curv","ML_ADM::ML_lapse","ML_ADM::ML_metric","ML_ADM::ML_shift"}; + const char *const groups[] = { + "ADMBase::curv", + "ADMBase::dtlapse", + "ADMBase::dtshift", + "ADMBase::lapse", + "ADMBase::metric", + "ADMBase::shift", + "ML_ADM::ML_curv", + "ML_ADM::ML_lapse", + "ML_ADM::ML_metric", + "ML_ADM::ML_shift"}; GenericFD_AssertGroupStorage(cctkGH, "ML_ADM_convertToADMBase", 10, groups); switch(fdOrder) @@ -380,7 +306,7 @@ extern "C" void ML_ADM_convertToADMBase(CCTK_ARGUMENTS) break; } - GenericFD_LoopOverEverything(cctkGH, &ML_ADM_convertToADMBase_Body); + GenericFD_LoopOverEverything(cctkGH, ML_ADM_convertToADMBase_Body); if (verbose > 1) { diff --git a/ML_ADM/src/make.code.defn b/ML_ADM/src/make.code.defn index 06aad41..3a79c47 100644 --- a/ML_ADM/src/make.code.defn +++ b/ML_ADM/src/make.code.defn @@ -1,3 +1,3 @@ # File produced by Kranc -SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc ML_ADM_Minkowski.cc ML_ADM_convertFromADMBase.cc ML_ADM_RHS.cc ML_ADM_boundary.cc ML_ADM_convertToADMBase.cc ML_ADM_constraints.cc ML_ADM_constraints_boundary.cc Boundaries.cc +SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc ML_ADM_Minkowski.cc ML_ADM_convertFromADMBase.cc ML_ADM_RHS.cc ML_ADM_boundary.cc ML_ADM_convertToADMBase.cc ML_ADM_constraints.cc ML_ADM_constraints_boundary.cc Boundaries.cc diff --git a/ML_BSSN/src/ML_BSSN_Minkowski.cc b/ML_BSSN/src/ML_BSSN_Minkowski.cc index f1033d0..1d7a336 100644 --- a/ML_BSSN/src/ML_BSSN_Minkowski.cc +++ b/ML_BSSN/src/ML_BSSN_Minkowski.cc @@ -222,7 +222,7 @@ static void ML_BSSN_Minkowski_Body(cGH const * restrict const cctkGH, int const } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN/src/ML_BSSN_RHS1.cc b/ML_BSSN/src/ML_BSSN_RHS1.cc index 3775bb7..44023b8 100644 --- a/ML_BSSN/src/ML_BSSN_RHS1.cc +++ b/ML_BSSN/src/ML_BSSN_RHS1.cc @@ -1213,8 +1213,13 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1267,11 +1272,6 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC Atu33 = kmadd(Atm31,gtu13,kmadd(Atm32,gtu23,kmul(Atm33,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - CCTK_REAL_VEC rho = kmul(INV(SQR(alphaL)),kadd(eTttL,kmadd(eTxxL,SQR(beta1L),kmadd(eTyyL,SQR(beta2L),kmadd(eTzzL,SQR(beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2)))))))); @@ -1287,8 +1287,8 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC trS = 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(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 phirhsL = kneg(kmul(IfThen(conformalMethod == + 1,kmul(phiL,ToReal(0.333333333333333333333333333333)),ToReal(-0.166666666666666666666666666667)),kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,knmsub(alphaL,trKL,JacPDstandardNth3beta3))))); CCTK_REAL_VEC gt11rhsL = 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)))))); diff --git a/ML_BSSN/src/ML_BSSN_RHS2.cc b/ML_BSSN/src/ML_BSSN_RHS2.cc index fa76e9b..4bbfc36 100644 --- a/ML_BSSN/src/ML_BSSN_RHS2.cc +++ b/ML_BSSN/src/ML_BSSN_RHS2.cc @@ -1626,6 +1626,35 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1644,8 +1673,8 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1653,8 +1682,8 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1719,35 +1748,6 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL_VEC Atm33 = kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); - - CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); - - CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); - - CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); - - CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); - - CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN/src/ML_BSSN_boundary.cc b/ML_BSSN/src/ML_BSSN_boundary.cc index 140da41..3777a51 100644 --- a/ML_BSSN/src/ML_BSSN_boundary.cc +++ b/ML_BSSN/src/ML_BSSN_boundary.cc @@ -258,7 +258,7 @@ static void ML_BSSN_boundary_Body(cGH const * restrict const cctkGH, int const d } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN/src/ML_BSSN_constraints1.cc b/ML_BSSN/src/ML_BSSN_constraints1.cc index 8f89811..ee512c8 100644 --- a/ML_BSSN/src/ML_BSSN_constraints1.cc +++ b/ML_BSSN/src/ML_BSSN_constraints1.cc @@ -1430,6 +1430,23 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1448,8 +1465,8 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1457,8 +1474,8 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1496,23 +1513,6 @@ static void ML_BSSN_constraints1_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC Rphi33 = kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN/src/ML_BSSN_constraints2.cc b/ML_BSSN/src/ML_BSSN_constraints2.cc index ecc059b..9925a78 100644 --- a/ML_BSSN/src/ML_BSSN_constraints2.cc +++ b/ML_BSSN/src/ML_BSSN_constraints2.cc @@ -891,8 +891,8 @@ static void ML_BSSN_constraints2_Body(cGH const * restrict const cctkGH, int con CCTK_REAL_VEC Gt333 = kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); diff --git a/ML_BSSN/src/ML_BSSN_convertFromADMBase.cc b/ML_BSSN/src/ML_BSSN_convertFromADMBase.cc index 96db9f9..c169cec 100644 --- a/ML_BSSN/src/ML_BSSN_convertFromADMBase.cc +++ b/ML_BSSN/src/ML_BSSN_convertFromADMBase.cc @@ -269,7 +269,7 @@ static void ML_BSSN_convertFromADMBase_Body(cGH const * restrict const cctkGH, i CCTK_REAL_VEC em4phi; - if (conformalMethod) + if (conformalMethod == 1) { phiL = kpow(detg,-0.166666666666666666666666666667); diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBase.cc b/ML_BSSN/src/ML_BSSN_convertToADMBase.cc index de1d9df..c302c6f 100644 --- a/ML_BSSN/src/ML_BSSN_convertToADMBase.cc +++ b/ML_BSSN/src/ML_BSSN_convertToADMBase.cc @@ -246,8 +246,8 @@ static void ML_BSSN_convertToADMBase_Body(cGH const * restrict const cctkGH, int } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); gxxL = kmul(gt11L,e4phi); diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_Minkowski.cc b/ML_BSSN_MP/src/ML_BSSN_MP_Minkowski.cc index ad586eb..07d77e6 100644 --- a/ML_BSSN_MP/src/ML_BSSN_MP_Minkowski.cc +++ b/ML_BSSN_MP/src/ML_BSSN_MP_Minkowski.cc @@ -222,7 +222,7 @@ static void ML_BSSN_MP_Minkowski_Body(cGH const * restrict const cctkGH, int con } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc b/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc index 36e1728..c162fc2 100644 --- a/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc +++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc @@ -1213,8 +1213,13 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1267,11 +1272,6 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Atu33 = kmadd(Atm31,gtu13,kmadd(Atm32,gtu23,kmul(Atm33,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - CCTK_REAL_VEC rho = kmul(INV(SQR(alphaL)),kadd(eTttL,kmadd(eTxxL,SQR(beta1L),kmadd(eTyyL,SQR(beta2L),kmadd(eTzzL,SQR(beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2)))))))); @@ -1287,8 +1287,8 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC trS = 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(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 phirhsL = kneg(kmul(IfThen(conformalMethod == + 1,kmul(phiL,ToReal(0.333333333333333333333333333333)),ToReal(-0.166666666666666666666666666667)),kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,knmsub(alphaL,trKL,JacPDstandardNth3beta3))))); CCTK_REAL_VEC gt11rhsL = 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)))))); diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc b/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc index ab1f104..a7b4d27 100644 --- a/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc +++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc @@ -1626,6 +1626,35 @@ static void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1644,8 +1673,8 @@ static void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1653,8 +1682,8 @@ static void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const di 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1719,35 +1748,6 @@ static void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Atm33 = kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); - - CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); - - CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); - - CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); - - CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); - - CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc b/ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc index f7985cc..4083b54 100644 --- a/ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc +++ b/ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc @@ -258,7 +258,7 @@ static void ML_BSSN_MP_boundary_Body(cGH const * restrict const cctkGH, int cons } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc b/ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc index a01cac9..af52b0d 100644 --- a/ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc +++ b/ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc @@ -1430,6 +1430,23 @@ static void ML_BSSN_MP_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1448,8 +1465,8 @@ static void ML_BSSN_MP_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1457,8 +1474,8 @@ static void ML_BSSN_MP_constraints1_Body(cGH const * restrict const cctkGH, int 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1496,23 +1513,6 @@ static void ML_BSSN_MP_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Rphi33 = kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_constraints2.cc b/ML_BSSN_MP/src/ML_BSSN_MP_constraints2.cc index 8288b08..0b6239b 100644 --- a/ML_BSSN_MP/src/ML_BSSN_MP_constraints2.cc +++ b/ML_BSSN_MP/src/ML_BSSN_MP_constraints2.cc @@ -891,8 +891,8 @@ static void ML_BSSN_MP_constraints2_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Gt333 = kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.cc b/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.cc index c158da7..2e4ac13 100644 --- a/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.cc +++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.cc @@ -269,7 +269,7 @@ static void ML_BSSN_MP_convertFromADMBase_Body(cGH const * restrict const cctkGH CCTK_REAL_VEC em4phi; - if (conformalMethod) + if (conformalMethod == 1) { phiL = kpow(detg,-0.166666666666666666666666666667); diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBase.cc b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBase.cc index a229cd8..1d4b546 100644 --- a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBase.cc +++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBase.cc @@ -246,8 +246,8 @@ static void ML_BSSN_MP_convertToADMBase_Body(cGH const * restrict const cctkGH, } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); gxxL = kmul(gt11L,e4phi); diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Minkowski.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Minkowski.cc index 5d55170..e69b6de 100644 --- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Minkowski.cc +++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Minkowski.cc @@ -222,7 +222,7 @@ static void ML_BSSN_MP_O8_Minkowski_Body(cGH const * restrict const cctkGH, int } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS1.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS1.cc index f235204..531eaeb 100644 --- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS1.cc +++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS1.cc @@ -1213,8 +1213,13 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1267,11 +1272,6 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC Atu33 = kmadd(Atm31,gtu13,kmadd(Atm32,gtu23,kmul(Atm33,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - CCTK_REAL_VEC rho = kmul(INV(SQR(alphaL)),kadd(eTttL,kmadd(eTxxL,SQR(beta1L),kmadd(eTyyL,SQR(beta2L),kmadd(eTzzL,SQR(beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2)))))))); @@ -1287,8 +1287,8 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC trS = 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(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 phirhsL = kneg(kmul(IfThen(conformalMethod == + 1,kmul(phiL,ToReal(0.333333333333333333333333333333)),ToReal(-0.166666666666666666666666666667)),kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,knmsub(alphaL,trKL,JacPDstandardNth3beta3))))); CCTK_REAL_VEC gt11rhsL = 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)))))); diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS2.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS2.cc index cdc4bad..869e111 100644 --- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS2.cc +++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS2.cc @@ -1626,6 +1626,35 @@ static void ML_BSSN_MP_O8_RHS2_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1644,8 +1673,8 @@ static void ML_BSSN_MP_O8_RHS2_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1653,8 +1682,8 @@ static void ML_BSSN_MP_O8_RHS2_Body(cGH const * restrict const cctkGH, int const 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1719,35 +1748,6 @@ static void ML_BSSN_MP_O8_RHS2_Body(cGH const * restrict const cctkGH, int const CCTK_REAL_VEC Atm33 = kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); - - CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); - - CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); - - CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); - - CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); - - CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_boundary.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_boundary.cc index f0f3b15..d0122f9 100644 --- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_boundary.cc +++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_boundary.cc @@ -258,7 +258,7 @@ static void ML_BSSN_MP_O8_boundary_Body(cGH const * restrict const cctkGH, int c } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints1.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints1.cc index 6130f29..6d42c2a 100644 --- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints1.cc +++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints1.cc @@ -1430,6 +1430,23 @@ static void ML_BSSN_MP_O8_constraints1_Body(cGH const * restrict const cctkGH, i CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1448,8 +1465,8 @@ static void ML_BSSN_MP_O8_constraints1_Body(cGH const * restrict const cctkGH, i CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1457,8 +1474,8 @@ static void ML_BSSN_MP_O8_constraints1_Body(cGH const * restrict const cctkGH, i 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1496,23 +1513,6 @@ static void ML_BSSN_MP_O8_constraints1_Body(cGH const * restrict const cctkGH, i CCTK_REAL_VEC Rphi33 = kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints2.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints2.cc index 216a96a..516aebf 100644 --- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints2.cc +++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints2.cc @@ -891,8 +891,8 @@ static void ML_BSSN_MP_O8_constraints2_Body(cGH const * restrict const cctkGH, i CCTK_REAL_VEC Gt333 = kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertFromADMBase.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertFromADMBase.cc index 2cf4397..cfa713a 100644 --- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertFromADMBase.cc +++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertFromADMBase.cc @@ -269,7 +269,7 @@ static void ML_BSSN_MP_O8_convertFromADMBase_Body(cGH const * restrict const cct CCTK_REAL_VEC em4phi; - if (conformalMethod) + if (conformalMethod == 1) { phiL = kpow(detg,-0.166666666666666666666666666667); diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBase.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBase.cc index f5b2043..7475347 100644 --- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBase.cc +++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBase.cc @@ -246,8 +246,8 @@ static void ML_BSSN_MP_O8_convertToADMBase_Body(cGH const * restrict const cctkG } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); gxxL = kmul(gt11L,e4phi); diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_Minkowski.cc b/ML_BSSN_O2/src/ML_BSSN_O2_Minkowski.cc index 3a9e014..695446f 100644 --- a/ML_BSSN_O2/src/ML_BSSN_O2_Minkowski.cc +++ b/ML_BSSN_O2/src/ML_BSSN_O2_Minkowski.cc @@ -222,7 +222,7 @@ static void ML_BSSN_O2_Minkowski_Body(cGH const * restrict const cctkGH, int con } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc b/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc index 89602bb..f36a81d 100644 --- a/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc +++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc @@ -1213,8 +1213,13 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1267,11 +1272,6 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Atu33 = kmadd(Atm31,gtu13,kmadd(Atm32,gtu23,kmul(Atm33,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - CCTK_REAL_VEC rho = kmul(INV(SQR(alphaL)),kadd(eTttL,kmadd(eTxxL,SQR(beta1L),kmadd(eTyyL,SQR(beta2L),kmadd(eTzzL,SQR(beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2)))))))); @@ -1287,8 +1287,8 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC trS = 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(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 phirhsL = kneg(kmul(IfThen(conformalMethod == + 1,kmul(phiL,ToReal(0.333333333333333333333333333333)),ToReal(-0.166666666666666666666666666667)),kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,knmsub(alphaL,trKL,JacPDstandardNth3beta3))))); CCTK_REAL_VEC gt11rhsL = 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)))))); diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc b/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc index d92ff3d..47c3722 100644 --- a/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc +++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc @@ -1626,6 +1626,35 @@ static void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1644,8 +1673,8 @@ static void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1653,8 +1682,8 @@ static void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const di 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1719,35 +1748,6 @@ static void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Atm33 = kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); - - CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); - - CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); - - CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); - - CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); - - CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc b/ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc index a985413..091b3a7 100644 --- a/ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc +++ b/ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc @@ -258,7 +258,7 @@ static void ML_BSSN_O2_boundary_Body(cGH const * restrict const cctkGH, int cons } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc b/ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc index 20233ae..2cb6c49 100644 --- a/ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc +++ b/ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc @@ -1430,6 +1430,23 @@ static void ML_BSSN_O2_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1448,8 +1465,8 @@ static void ML_BSSN_O2_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1457,8 +1474,8 @@ static void ML_BSSN_O2_constraints1_Body(cGH const * restrict const cctkGH, int 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1496,23 +1513,6 @@ static void ML_BSSN_O2_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Rphi33 = kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_constraints2.cc b/ML_BSSN_O2/src/ML_BSSN_O2_constraints2.cc index e180c4c..8c1baec 100644 --- a/ML_BSSN_O2/src/ML_BSSN_O2_constraints2.cc +++ b/ML_BSSN_O2/src/ML_BSSN_O2_constraints2.cc @@ -891,8 +891,8 @@ static void ML_BSSN_O2_constraints2_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Gt333 = kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.cc b/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.cc index a2b3d26..dc43551 100644 --- a/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.cc +++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.cc @@ -269,7 +269,7 @@ static void ML_BSSN_O2_convertFromADMBase_Body(cGH const * restrict const cctkGH CCTK_REAL_VEC em4phi; - if (conformalMethod) + if (conformalMethod == 1) { phiL = kpow(detg,-0.166666666666666666666666666667); diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBase.cc b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBase.cc index 7b47457..bbe8fc7 100644 --- a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBase.cc +++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBase.cc @@ -246,8 +246,8 @@ static void ML_BSSN_O2_convertToADMBase_Body(cGH const * restrict const cctkGH, } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); gxxL = kmul(gt11L,e4phi); diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_Minkowski.cc b/ML_BSSN_O8/src/ML_BSSN_O8_Minkowski.cc index e96858a..d86dee6 100644 --- a/ML_BSSN_O8/src/ML_BSSN_O8_Minkowski.cc +++ b/ML_BSSN_O8/src/ML_BSSN_O8_Minkowski.cc @@ -222,7 +222,7 @@ static void ML_BSSN_O8_Minkowski_Body(cGH const * restrict const cctkGH, int con } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc b/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc index 968fd06..0e99354 100644 --- a/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc +++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc @@ -1213,8 +1213,13 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1267,11 +1272,6 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Atu33 = kmadd(Atm31,gtu13,kmadd(Atm32,gtu23,kmul(Atm33,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - CCTK_REAL_VEC rho = kmul(INV(SQR(alphaL)),kadd(eTttL,kmadd(eTxxL,SQR(beta1L),kmadd(eTyyL,SQR(beta2L),kmadd(eTzzL,SQR(beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2)))))))); @@ -1287,8 +1287,8 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC trS = 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(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 phirhsL = kneg(kmul(IfThen(conformalMethod == + 1,kmul(phiL,ToReal(0.333333333333333333333333333333)),ToReal(-0.166666666666666666666666666667)),kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,knmsub(alphaL,trKL,JacPDstandardNth3beta3))))); CCTK_REAL_VEC gt11rhsL = 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)))))); diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc b/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc index b57d3e9..679510f 100644 --- a/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc +++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc @@ -1626,6 +1626,35 @@ static void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1644,8 +1673,8 @@ static void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1653,8 +1682,8 @@ static void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const di 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1719,35 +1748,6 @@ static void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const di CCTK_REAL_VEC Atm33 = kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); - - CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); - - CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); - - CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); - - CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); - - CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc b/ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc index ea2dfd5..c4cd116 100644 --- a/ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc +++ b/ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc @@ -258,7 +258,7 @@ static void ML_BSSN_O8_boundary_Body(cGH const * restrict const cctkGH, int cons } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc b/ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc index a4d0133..0096166 100644 --- a/ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc +++ b/ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc @@ -1430,6 +1430,23 @@ static void ML_BSSN_O8_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1448,8 +1465,8 @@ static void ML_BSSN_O8_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1457,8 +1474,8 @@ static void ML_BSSN_O8_constraints1_Body(cGH const * restrict const cctkGH, int 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1496,23 +1513,6 @@ static void ML_BSSN_O8_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Rphi33 = kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_constraints2.cc b/ML_BSSN_O8/src/ML_BSSN_O8_constraints2.cc index 3e84842..aa753c6 100644 --- a/ML_BSSN_O8/src/ML_BSSN_O8_constraints2.cc +++ b/ML_BSSN_O8/src/ML_BSSN_O8_constraints2.cc @@ -891,8 +891,8 @@ static void ML_BSSN_O8_constraints2_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Gt333 = kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.cc b/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.cc index 5203f5b..ae5d33f 100644 --- a/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.cc +++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.cc @@ -269,7 +269,7 @@ static void ML_BSSN_O8_convertFromADMBase_Body(cGH const * restrict const cctkGH CCTK_REAL_VEC em4phi; - if (conformalMethod) + if (conformalMethod == 1) { phiL = kpow(detg,-0.166666666666666666666666666667); diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBase.cc b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBase.cc index 98afb4e..031c91c 100644 --- a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBase.cc +++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBase.cc @@ -246,8 +246,8 @@ static void ML_BSSN_O8_convertToADMBase_Body(cGH const * restrict const cctkGH, } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); gxxL = kmul(gt11L,e4phi); diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_Minkowski.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_Minkowski.cc index a77438e..2d8ef13 100644 --- a/ML_BSSN_UPW/src/ML_BSSN_UPW_Minkowski.cc +++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_Minkowski.cc @@ -222,7 +222,7 @@ static void ML_BSSN_UPW_Minkowski_Body(cGH const * restrict const cctkGH, int co } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc index be7f83d..dd8b70e 100644 --- a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc +++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc @@ -1213,8 +1213,13 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1267,11 +1272,6 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL_VEC Atu33 = kmadd(Atm31,gtu13,kmadd(Atm32,gtu23,kmul(Atm33,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - CCTK_REAL_VEC rho = kmul(INV(SQR(alphaL)),kadd(eTttL,kmadd(eTxxL,SQR(beta1L),kmadd(eTyyL,SQR(beta2L),kmadd(eTzzL,SQR(beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2)))))))); @@ -1287,8 +1287,8 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL_VEC trS = 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(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 phirhsL = kneg(kmul(IfThen(conformalMethod == + 1,kmul(phiL,ToReal(0.333333333333333333333333333333)),ToReal(-0.166666666666666666666666666667)),kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,knmsub(alphaL,trKL,JacPDstandardNth3beta3))))); CCTK_REAL_VEC gt11rhsL = 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)))))); diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc index 4178637..50107ad 100644 --- a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc +++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc @@ -1626,6 +1626,35 @@ static void ML_BSSN_UPW_RHS2_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1644,8 +1673,8 @@ static void ML_BSSN_UPW_RHS2_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1653,8 +1682,8 @@ static void ML_BSSN_UPW_RHS2_Body(cGH const * restrict const cctkGH, int const d 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1719,35 +1748,6 @@ static void ML_BSSN_UPW_RHS2_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL_VEC Atm33 = kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); - - CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); - - CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); - - CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); - - CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); - - CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc index 4d6f0de..a1a7a68 100644 --- a/ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc +++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc @@ -258,7 +258,7 @@ static void ML_BSSN_UPW_boundary_Body(cGH const * restrict const cctkGH, int con } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC phiL = IfThen(conformalMethod,ToReal(1),ToReal(0)); + CCTK_REAL_VEC phiL = IfThen(conformalMethod == 1,ToReal(1),ToReal(0)); CCTK_REAL_VEC gt11L = ToReal(1); diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc index 929992f..e757d1f 100644 --- a/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc +++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc @@ -1430,6 +1430,23 @@ static void ML_BSSN_UPW_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Xtn3 = kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + CCTK_REAL_VEC Rt11 = 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)))))))))))))))); @@ -1448,8 +1465,8 @@ static void ML_BSSN_UPW_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Rt33 = 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 fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); @@ -1457,8 +1474,8 @@ static void ML_BSSN_UPW_constraints1_Body(cGH const * restrict const cctkGH, int 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 fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); CCTK_REAL_VEC cdphi211 = kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); @@ -1496,23 +1513,6 @@ static void ML_BSSN_UPW_constraints1_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Rphi33 = kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); - - CCTK_REAL_VEC em4phi = INV(e4phi); - - CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); - - CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); - - CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); - - CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); - - CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); - - CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); - CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints2.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints2.cc index e15db36..755f8b8 100644 --- a/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints2.cc +++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints2.cc @@ -891,8 +891,8 @@ static void ML_BSSN_UPW_constraints2_Body(cGH const * restrict const cctkGH, int CCTK_REAL_VEC Gt333 = kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); - CCTK_REAL_VEC fac1 = - IfThen(conformalMethod,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertFromADMBase.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertFromADMBase.cc index acfc692..92610ec 100644 --- a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertFromADMBase.cc +++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertFromADMBase.cc @@ -269,7 +269,7 @@ static void ML_BSSN_UPW_convertFromADMBase_Body(cGH const * restrict const cctkG CCTK_REAL_VEC em4phi; - if (conformalMethod) + if (conformalMethod == 1) { phiL = kpow(detg,-0.166666666666666666666666666667); diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBase.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBase.cc index af49a26..865d18a 100644 --- a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBase.cc +++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBase.cc @@ -246,8 +246,8 @@ static void ML_BSSN_UPW_convertToADMBase_Body(cGH const * restrict const cctkGH, } /* Calculate temporaries and grid functions */ - CCTK_REAL_VEC e4phi = - IfThen(conformalMethod,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); gxxL = kmul(gt11L,e4phi); diff --git a/ML_CCZ4/configuration.ccl b/ML_CCZ4/configuration.ccl new file mode 100644 index 0000000..bdbc1bd --- /dev/null +++ b/ML_CCZ4/configuration.ccl @@ -0,0 +1,5 @@ +# File produced by Kranc + +REQUIRES GenericFD +REQUIRES LoopControl +REQUIRES Vectors diff --git a/ML_CCZ4/interface.ccl b/ML_CCZ4/interface.ccl new file mode 100644 index 0000000..d0a09f2 --- /dev/null +++ b/ML_CCZ4/interface.ccl @@ -0,0 +1,215 @@ +# File produced by Kranc + +implements: ML_CCZ4 + +inherits: ADMBase TmunuBase Grid GenericFD Boundary + + + +USES INCLUDE: GenericFD.h +USES INCLUDE: Symmetry.h +USES INCLUDE: sbp_calc_coeffs.h +USES INCLUDE: Boundary.h +USES INCLUDE: loopcontrol.h +USES INCLUDE: vectors.h + +CCTK_INT FUNCTION MoLRegisterEvolved(CCTK_INT IN EvolvedIndex, CCTK_INT IN RHSIndex) +USES FUNCTION MoLRegisterEvolved + +SUBROUTINE Diff_coeff(CCTK_POINTER_TO_CONST IN cctkGH, CCTK_INT IN dir, CCTK_INT IN nsize, CCTK_INT OUT ARRAY imin, CCTK_INT OUT ARRAY imax, CCTK_REAL OUT ARRAY q, CCTK_INT IN table_handle) +USES FUNCTION Diff_coeff + +CCTK_INT FUNCTION MultiPatch_GetMap(CCTK_POINTER_TO_CONST IN cctkGH) +USES FUNCTION MultiPatch_GetMap + +CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT IN faces, CCTK_INT IN boundary_width, CCTK_INT IN table_handle, CCTK_STRING IN group_name, CCTK_STRING IN bc_name) +USES FUNCTION Boundary_SelectGroupForBC + +CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT IN faces, CCTK_INT IN boundary_width, CCTK_INT IN table_handle, CCTK_STRING IN var_name, CCTK_STRING IN bc_name) +USES FUNCTION Boundary_SelectVarForBC + +public: +CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2' +{ + cS +} "ML_cons_detg" + +public: +CCTK_REAL ML_cons_Gamma type=GF timelevels=1 tags='tensortypealias="U" tensorweight=0.66666666666666666667' +{ + cXt1, + cXt2, + cXt3 +} "ML_cons_Gamma" + +public: +CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=0' +{ + cA +} "ML_cons_traceA" + +public: +CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=0' +{ + H +} "ML_Ham" + +public: +CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=0' +{ + M1, + M2, + M3 +} "ML_mom" + +public: +CCTK_REAL ML_curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=-0.66666666666666666667' +{ + At11, + At12, + At13, + At22, + At23, + At33 +} "ML_curv" + +public: +CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0' +{ + A +} "ML_dtlapse" + +public: +CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0' +{ + B1, + B2, + B3 +} "ML_dtshift" + +public: +CCTK_REAL ML_Gamma type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0.66666666666666666667' +{ + Xt1, + Xt2, + Xt3 +} "ML_Gamma" + +public: +CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0' +{ + alpha +} "ML_lapse" + +public: +CCTK_REAL ML_log_confac type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0.16666666666666666667' +{ + phi +} "ML_log_confac" + +public: +CCTK_REAL ML_metric type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=-0.66666666666666666667' +{ + gt11, + gt12, + gt13, + gt22, + gt23, + gt33 +} "ML_metric" + +public: +CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0' +{ + beta1, + beta2, + beta3 +} "ML_shift" + +public: +CCTK_REAL ML_Theta type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0' +{ + Theta +} "ML_Theta" + +public: +CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0' +{ + trK +} "ML_trace_curv" + +public: +CCTK_REAL ML_curvrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=-0.66666666666666666667' +{ + At11rhs, + At12rhs, + At13rhs, + At22rhs, + At23rhs, + At33rhs +} "ML_curvrhs" + +public: +CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0' +{ + Arhs +} "ML_dtlapserhs" + +public: +CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0' +{ + B1rhs, + B2rhs, + B3rhs +} "ML_dtshiftrhs" + +public: +CCTK_REAL ML_Gammarhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0.66666666666666666667' +{ + Xt1rhs, + Xt2rhs, + Xt3rhs +} "ML_Gammarhs" + +public: +CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0' +{ + alpharhs +} "ML_lapserhs" + +public: +CCTK_REAL ML_log_confacrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0.16666666666666666667' +{ + phirhs +} "ML_log_confacrhs" + +public: +CCTK_REAL ML_metricrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=-0.66666666666666666667' +{ + gt11rhs, + gt12rhs, + gt13rhs, + gt22rhs, + gt23rhs, + gt33rhs +} "ML_metricrhs" + +public: +CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0' +{ + beta1rhs, + beta2rhs, + beta3rhs +} "ML_shiftrhs" + +public: +CCTK_REAL ML_Thetarhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0' +{ + Thetarhs +} "ML_Thetarhs" + +public: +CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=0' +{ + trKrhs +} "ML_trace_curvrhs" diff --git a/ML_CCZ4/param.ccl b/ML_CCZ4/param.ccl new file mode 100644 index 0000000..f3cd91b --- /dev/null +++ b/ML_CCZ4/param.ccl @@ -0,0 +1,1558 @@ +# File produced by Kranc + + +shares: ADMBase + + +EXTENDS CCTK_KEYWORD evolution_method "evolution_method" +{ + ML_CCZ4 :: "" +} + + +EXTENDS CCTK_KEYWORD lapse_evolution_method "lapse_evolution_method" +{ + ML_CCZ4 :: "" +} + + +EXTENDS CCTK_KEYWORD shift_evolution_method "shift_evolution_method" +{ + ML_CCZ4 :: "" +} + + +EXTENDS CCTK_KEYWORD dtlapse_evolution_method "dtlapse_evolution_method" +{ + ML_CCZ4 :: "" +} + + +EXTENDS CCTK_KEYWORD dtshift_evolution_method "dtshift_evolution_method" +{ + ML_CCZ4 :: "" +} + + + +shares: GenericFD + +USES CCTK_STRING jacobian_group +USES CCTK_STRING jacobian_derivative_group +USES CCTK_INT jacobian_identity_map + + +shares: MethodOfLines + +USES CCTK_INT MoL_Num_Evolved_Vars +USES CCTK_INT MoL_Num_ArrayEvolved_Vars + +restricted: +CCTK_INT verbose "verbose" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_REAL dampk1 "CCZ4 damping term 1 for Theta and Z" +{ + "*:*" :: "" +} 0 + +restricted: +CCTK_REAL dampk2 "CCZ4 damping term 2 for Theta and Z" +{ + "*:*" :: "" +} 0 + +restricted: +CCTK_REAL LapseACoeff "Whether to evolve A in time" +{ + "*:*" :: "" +} 0 + +restricted: +CCTK_REAL harmonicF "d/dt alpha = - f alpha^n K (harmonic=1, 1+log=2)" +{ + "*:*" :: "" +} 1 + +restricted: +CCTK_REAL AlphaDriver "AlphaDriver" +{ + "*:*" :: "" +} 0 + +restricted: +CCTK_REAL ShiftBCoeff "Whether to evolve B^i in time" +{ + "*:*" :: "" +} 1 + +restricted: +CCTK_REAL ShiftGammaCoeff "ShiftGammaCoeff" +{ + "*:*" :: "" +} 0 + +restricted: +CCTK_REAL BetaDriver "BetaDriver" +{ + "*:*" :: "" +} 0 + +restricted: +CCTK_REAL LapseAdvectionCoeff "Factor in front of the lapse advection terms in 1+log" +{ + "*:*" :: "" +} 1 + +restricted: +CCTK_REAL ShiftAdvectionCoeff "Factor in front of the shift advection terms in gamma driver" +{ + "*:*" :: "" +} 1 + +restricted: +CCTK_REAL MinimumLapse "Minimum value of the lapse function" +{ + "*:*" :: "" +} -1 + +restricted: +CCTK_REAL SpatialBetaDriverRadius "Radius at which the BetaDriver starts to be reduced" +{ + "*:*" :: "" +} 1000000000000 + +restricted: +CCTK_REAL SpatialShiftGammaCoeffRadius "Radius at which the ShiftGammaCoefficient starts to be reduced" +{ + "*:*" :: "" +} 1000000000000 + +restricted: +CCTK_REAL EpsDiss "Dissipation strength" +{ + "*:*" :: "" +} 0 + +restricted: +CCTK_INT GammaShift "Covariant shift term in Gamma" +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)" +{ + *:* :: "" +} 2 + +restricted: +CCTK_INT ShiftAlphaPower "ShiftAlphaPower" +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT conformalMethod "Treatment of conformal factor" +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT fdOrder "fdOrder" +{ + *:* :: "" +} 4 + +restricted: +CCTK_INT harmonicShift "Whether to use the harmonic shift" +{ + *:* :: "" +} 0 + +private: +KEYWORD my_initial_data "my_initial_data" +{ + "ADMBase" :: "ADMBase" + "Minkowski" :: "Minkowski" +} "ADMBase" + +restricted: +KEYWORD my_initial_boundary_condition "my_initial_boundary_condition" +{ + "none" :: "none" +} "none" + +restricted: +KEYWORD my_rhs_boundary_condition "my_rhs_boundary_condition" +{ + "none" :: "none" + "static" :: "static" + "radiative" :: "radiative" +} "none" + +private: +KEYWORD my_boundary_condition "my_boundary_condition" +{ + "none" :: "none" + "Minkowski" :: "Minkowski" +} "none" + +restricted: +KEYWORD calculate_ADMBase_variables_at "calculate_ADMBase_variables_at" +{ + "MoL_PostStep" :: "MoL_PostStep" + "CCTK_EVOL" :: "CCTK_EVOL" + "CCTK_ANALYSIS" :: "CCTK_ANALYSIS" +} "MoL_PostStep" + +restricted: +KEYWORD UseSpatialBetaDriver "UseSpatialBetaDriver" +{ + "no" :: "no" + "yes" :: "yes" +} "no" + +private: +KEYWORD dt_lapse_shift_method "Treatment of ADMBase dtlapse and dtshift" +{ + "correct" :: "correct" + "noLapseShiftAdvection" :: "noLapseShiftAdvection" +} "correct" + +private: +KEYWORD apply_dissipation "Whether to apply dissipation to the RHSs" +{ + "always" :: "always" + "never" :: "never" +} "always" + +restricted: +CCTK_INT ML_CCZ4_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars STEERABLE=RECOVER +{ + 26:26 :: "Number of evolved variables used by this thorn" +} 26 + +restricted: +CCTK_INT ML_CCZ4_MaxNumArrayEvolvedVars "Number of Array evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_ArrayEvolved_Vars STEERABLE=RECOVER +{ + 0:0 :: "Number of Array evolved variables used by this thorn" +} 0 + +restricted: +CCTK_INT timelevels "Number of active timelevels" STEERABLE=RECOVER +{ + 0:3 :: "" +} 3 + +restricted: +CCTK_INT rhs_timelevels "Number of active RHS timelevels" STEERABLE=RECOVER +{ + 0:3 :: "" +} 1 + +restricted: +CCTK_INT other_timelevels "Number of active timelevels for non-evolved grid functions" STEERABLE=RECOVER +{ + 0:3 :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_Minkowski_calc_every "ML_CCZ4_Minkowski_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_convertFromADMBase_calc_every "ML_CCZ4_convertFromADMBase_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_InitGamma_calc_every "ML_CCZ4_InitGamma_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_convertFromADMBaseGamma_calc_every "ML_CCZ4_convertFromADMBaseGamma_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_RHS1_calc_every "ML_CCZ4_RHS1_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_RHS2_calc_every "ML_CCZ4_RHS2_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_Dissipation_calc_every "ML_CCZ4_Dissipation_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_Advect_calc_every "ML_CCZ4_Advect_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_InitRHS_calc_every "ML_CCZ4_InitRHS_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_RHSStaticBoundary_calc_every "ML_CCZ4_RHSStaticBoundary_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_enforce_calc_every "ML_CCZ4_enforce_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_boundary_calc_every "ML_CCZ4_boundary_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_convertToADMBase_calc_every "ML_CCZ4_convertToADMBase_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_convertToADMBaseDtLapseShift_calc_every "ML_CCZ4_convertToADMBaseDtLapseShift_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_calc_every "ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_convertToADMBaseFakeDtLapseShift_calc_every "ML_CCZ4_convertToADMBaseFakeDtLapseShift_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_constraints1_calc_every "ML_CCZ4_constraints1_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_constraints2_calc_every "ML_CCZ4_constraints2_calc_every" STEERABLE=ALWAYS +{ + *:* :: "" +} 1 + +restricted: +CCTK_INT ML_CCZ4_Minkowski_calc_offset "ML_CCZ4_Minkowski_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_convertFromADMBase_calc_offset "ML_CCZ4_convertFromADMBase_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_InitGamma_calc_offset "ML_CCZ4_InitGamma_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_convertFromADMBaseGamma_calc_offset "ML_CCZ4_convertFromADMBaseGamma_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_RHS1_calc_offset "ML_CCZ4_RHS1_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_RHS2_calc_offset "ML_CCZ4_RHS2_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_Dissipation_calc_offset "ML_CCZ4_Dissipation_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_Advect_calc_offset "ML_CCZ4_Advect_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_InitRHS_calc_offset "ML_CCZ4_InitRHS_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_RHSStaticBoundary_calc_offset "ML_CCZ4_RHSStaticBoundary_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_enforce_calc_offset "ML_CCZ4_enforce_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_boundary_calc_offset "ML_CCZ4_boundary_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_convertToADMBase_calc_offset "ML_CCZ4_convertToADMBase_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_convertToADMBaseDtLapseShift_calc_offset "ML_CCZ4_convertToADMBaseDtLapseShift_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_calc_offset "ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_convertToADMBaseFakeDtLapseShift_calc_offset "ML_CCZ4_convertToADMBaseFakeDtLapseShift_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_constraints1_calc_offset "ML_CCZ4_constraints1_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +restricted: +CCTK_INT ML_CCZ4_constraints2_calc_offset "ML_CCZ4_constraints2_calc_offset" STEERABLE=ALWAYS +{ + *:* :: "" +} 0 + +private: +KEYWORD At11_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD At12_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD At13_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD At22_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD At23_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD At33_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD A_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD B1_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD B2_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD B3_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD Xt1_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD Xt2_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD Xt3_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD alpha_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD phi_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD gt11_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD gt12_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD gt13_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD gt22_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD gt23_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD gt33_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD beta1_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD beta2_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD beta3_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD Theta_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD trK_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "skip" + +private: +KEYWORD ML_curv_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_dtlapse_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_dtshift_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_Gamma_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_lapse_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_log_confac_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_metric_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_shift_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_Theta_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +KEYWORD ML_trace_curv_bound "Boundary condition to implement" STEERABLE=ALWAYS +{ + "flat" :: "Flat boundary condition" + "none" :: "No boundary condition" + "static" :: "Boundaries held fixed" + "radiative" :: "Radiation boundary condition" + "scalar" :: "Dirichlet boundary condition" + "newrad" :: "Improved radiative boundary condition" + "skip" :: "skip boundary condition code" +} "none" + +private: +CCTK_REAL At11_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL At12_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL At13_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL At22_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL At23_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL At33_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL A_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL B1_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL B2_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL B3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL Xt1_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL Xt2_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL Xt3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL alpha_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL phi_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL gt11_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL gt12_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL gt13_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL gt22_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL gt23_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL gt33_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL beta1_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL beta2_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL beta3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL Theta_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL trK_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_curv_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_dtlapse_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_dtshift_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_Gamma_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_lapse_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_log_confac_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_metric_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_shift_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_Theta_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL ML_trace_curv_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS +{ + "0:*" :: "outgoing characteristic speed > 0" +} 1. + +private: +CCTK_REAL At11_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL At12_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL At13_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL At22_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL At23_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL At33_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL A_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL B1_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL B2_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL B3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL Xt1_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL Xt2_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL Xt3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL alpha_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL phi_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL gt11_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL gt12_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL gt13_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL gt22_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL gt23_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL gt33_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL beta1_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL beta2_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL beta3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL Theta_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL trK_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_curv_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_dtlapse_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_dtshift_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_Gamma_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_lapse_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_log_confac_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_metric_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_shift_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_Theta_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL ML_trace_curv_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS +{ + "*:*" :: "value of limit value is unrestricted" +} 0. + +private: +CCTK_REAL At11_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL At12_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL At13_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL At22_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL At23_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL At33_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL A_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL B1_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL B2_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL B3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL Xt1_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL Xt2_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL Xt3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL alpha_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL phi_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL gt11_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL gt12_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL gt13_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL gt22_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL gt23_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL gt33_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL beta1_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL beta2_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL beta3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL Theta_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL trK_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_curv_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_dtlapse_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_dtshift_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_Gamma_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_lapse_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_log_confac_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_metric_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_shift_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_Theta_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + +private: +CCTK_REAL ML_trace_curv_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS +{ + "*:*" :: "unrestricted" +} 0. + diff --git a/ML_CCZ4/schedule.ccl b/ML_CCZ4/schedule.ccl new file mode 100644 index 0000000..ae25c0e --- /dev/null +++ b/ML_CCZ4/schedule.ccl @@ -0,0 +1,766 @@ +# File produced by Kranc + + +if (other_timelevels == 1) +{ + STORAGE: ML_cons_detg[1] +} + +if (other_timelevels == 1) +{ + STORAGE: ML_cons_Gamma[1] +} + +if (other_timelevels == 1) +{ + STORAGE: ML_cons_traceA[1] +} + +if (other_timelevels == 1) +{ + STORAGE: ML_Ham[1] +} + +if (other_timelevels == 1) +{ + STORAGE: ML_mom[1] +} + +if (timelevels == 1) +{ + STORAGE: ML_curv[1] +} +if (timelevels == 2) +{ + STORAGE: ML_curv[2] +} +if (timelevels == 3) +{ + STORAGE: ML_curv[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_dtlapse[1] +} +if (timelevels == 2) +{ + STORAGE: ML_dtlapse[2] +} +if (timelevels == 3) +{ + STORAGE: ML_dtlapse[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_dtshift[1] +} +if (timelevels == 2) +{ + STORAGE: ML_dtshift[2] +} +if (timelevels == 3) +{ + STORAGE: ML_dtshift[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_Gamma[1] +} +if (timelevels == 2) +{ + STORAGE: ML_Gamma[2] +} +if (timelevels == 3) +{ + STORAGE: ML_Gamma[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_lapse[1] +} +if (timelevels == 2) +{ + STORAGE: ML_lapse[2] +} +if (timelevels == 3) +{ + STORAGE: ML_lapse[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_log_confac[1] +} +if (timelevels == 2) +{ + STORAGE: ML_log_confac[2] +} +if (timelevels == 3) +{ + STORAGE: ML_log_confac[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_metric[1] +} +if (timelevels == 2) +{ + STORAGE: ML_metric[2] +} +if (timelevels == 3) +{ + STORAGE: ML_metric[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_shift[1] +} +if (timelevels == 2) +{ + STORAGE: ML_shift[2] +} +if (timelevels == 3) +{ + STORAGE: ML_shift[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_Theta[1] +} +if (timelevels == 2) +{ + STORAGE: ML_Theta[2] +} +if (timelevels == 3) +{ + STORAGE: ML_Theta[3] +} + +if (timelevels == 1) +{ + STORAGE: ML_trace_curv[1] +} +if (timelevels == 2) +{ + STORAGE: ML_trace_curv[2] +} +if (timelevels == 3) +{ + STORAGE: ML_trace_curv[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_curvrhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_curvrhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_curvrhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_dtlapserhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_dtlapserhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_dtlapserhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_dtshiftrhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_dtshiftrhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_dtshiftrhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_Gammarhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_Gammarhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_Gammarhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_lapserhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_lapserhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_lapserhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_log_confacrhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_log_confacrhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_log_confacrhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_metricrhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_metricrhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_metricrhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_shiftrhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_shiftrhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_shiftrhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_Thetarhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_Thetarhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_Thetarhs[3] +} + +if (rhs_timelevels == 1) +{ + STORAGE: ML_trace_curvrhs[1] +} +if (rhs_timelevels == 2) +{ + STORAGE: ML_trace_curvrhs[2] +} +if (rhs_timelevels == 3) +{ + STORAGE: ML_trace_curvrhs[3] +} + +schedule ML_CCZ4_Startup at STARTUP +{ + LANG: C + OPTIONS: meta +} "create banner" + +schedule ML_CCZ4_RegisterSymmetries in SymmetryRegister +{ + LANG: C + OPTIONS: meta +} "register symmetries" + + +if (CCTK_EQUALS(my_initial_data, "Minkowski")) +{ + schedule ML_CCZ4_Minkowski IN ADMBase_InitialData + { + LANG: C + WRITES: ML_CCZ4::ML_curv + WRITES: ML_CCZ4::ML_dtlapse + WRITES: ML_CCZ4::ML_dtshift + WRITES: ML_CCZ4::ML_Gamma + WRITES: ML_CCZ4::ML_lapse + WRITES: ML_CCZ4::ML_log_confac + WRITES: ML_CCZ4::ML_metric + WRITES: ML_CCZ4::ML_shift + WRITES: ML_CCZ4::ML_Theta + WRITES: ML_CCZ4::ML_trace_curv + } "ML_CCZ4_Minkowski" +} + + +if (CCTK_EQUALS(my_initial_data, "ADMBase")) +{ + schedule ML_CCZ4_convertFromADMBase AT initial AFTER ADMBase_PostInitial + { + LANG: C + READS: ADMBase::curv + READS: ADMBase::lapse + READS: ADMBase::metric + READS: ADMBase::shift + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_trace_curv + WRITES: ML_CCZ4::ML_curv + WRITES: ML_CCZ4::ML_lapse + WRITES: ML_CCZ4::ML_log_confac + WRITES: ML_CCZ4::ML_metric + WRITES: ML_CCZ4::ML_shift + WRITES: ML_CCZ4::ML_Theta + WRITES: ML_CCZ4::ML_trace_curv + } "ML_CCZ4_convertFromADMBase" +} + + +if (CCTK_EQUALS(my_initial_data, "ADMBase")) +{ + schedule ML_CCZ4_InitGamma AT initial BEFORE ML_CCZ4_convertFromADMBaseGamma + { + LANG: C + WRITES: ML_CCZ4::ML_dtlapse + WRITES: ML_CCZ4::ML_dtshift + WRITES: ML_CCZ4::ML_Gamma + } "ML_CCZ4_InitGamma" +} + + +if (CCTK_EQUALS(my_initial_data, "ADMBase")) +{ + schedule ML_CCZ4_convertFromADMBaseGamma AT initial AFTER ML_CCZ4_convertFromADMBase + { + LANG: C + SYNC: ML_dtlapse + SYNC: ML_dtshift + SYNC: ML_Gamma + READS: ADMBase::dtlapse + READS: ADMBase::dtshift + READS: grid::coordinates + READS: Grid::coordinates + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + WRITES: ML_CCZ4::ML_dtlapse + WRITES: ML_CCZ4::ML_dtshift + WRITES: ML_CCZ4::ML_Gamma + } "ML_CCZ4_convertFromADMBaseGamma" +} + +schedule ML_CCZ4_RHS1 IN ML_CCZ4_evolCalcGroup +{ + LANG: C + READS: grid::coordinates + READS: Grid::coordinates + READS: ML_CCZ4::ML_curv + READS: ML_CCZ4::ML_dtlapse + READS: ML_CCZ4::ML_dtshift + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_Theta + READS: ML_CCZ4::ML_trace_curv + READS: TmunuBase::stress_energy_scalar + READS: TmunuBase::stress_energy_tensor + READS: TmunuBase::stress_energy_vector + WRITES: ML_CCZ4::ML_dtlapserhs + WRITES: ML_CCZ4::ML_dtshiftrhs + WRITES: ML_CCZ4::ML_Gammarhs + WRITES: ML_CCZ4::ML_lapserhs + WRITES: ML_CCZ4::ML_log_confacrhs + WRITES: ML_CCZ4::ML_metricrhs + WRITES: ML_CCZ4::ML_shiftrhs + WRITES: ML_CCZ4::ML_Thetarhs + WRITES: ML_CCZ4::ML_trace_curvrhs +} "ML_CCZ4_RHS1" + +schedule ML_CCZ4_RHS2 IN ML_CCZ4_evolCalcGroup +{ + LANG: C + READS: grid::coordinates + READS: Grid::coordinates + READS: ML_CCZ4::ML_curv + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_Theta + READS: ML_CCZ4::ML_trace_curv + READS: TmunuBase::stress_energy_scalar + READS: TmunuBase::stress_energy_tensor + READS: TmunuBase::stress_energy_vector + WRITES: ML_CCZ4::ML_curvrhs +} "ML_CCZ4_RHS2" + + +if (CCTK_EQUALS(apply_dissipation, "always")) +{ + schedule ML_CCZ4_Dissipation IN ML_CCZ4_evolCalcGroup AFTER (ML_CCZ4_RHS1 ML_CCZ4_RHS2) + { + LANG: C + READS: ML_CCZ4::ML_curv + READS: ML_CCZ4::ML_curvrhs + READS: ML_CCZ4::ML_dtlapse + READS: ML_CCZ4::ML_dtlapserhs + READS: ML_CCZ4::ML_dtshift + READS: ML_CCZ4::ML_dtshiftrhs + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_Gammarhs + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_lapserhs + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_log_confacrhs + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_metricrhs + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_shiftrhs + READS: ML_CCZ4::ML_Theta + READS: ML_CCZ4::ML_Thetarhs + READS: ML_CCZ4::ML_trace_curv + READS: ML_CCZ4::ML_trace_curvrhs + WRITES: ML_CCZ4::ML_curvrhs + WRITES: ML_CCZ4::ML_dtlapserhs + WRITES: ML_CCZ4::ML_dtshiftrhs + WRITES: ML_CCZ4::ML_Gammarhs + WRITES: ML_CCZ4::ML_lapserhs + WRITES: ML_CCZ4::ML_log_confacrhs + WRITES: ML_CCZ4::ML_metricrhs + WRITES: ML_CCZ4::ML_shiftrhs + WRITES: ML_CCZ4::ML_Thetarhs + WRITES: ML_CCZ4::ML_trace_curvrhs + } "ML_CCZ4_Dissipation" +} + +schedule ML_CCZ4_Advect IN ML_CCZ4_evolCalcGroup AFTER (ML_CCZ4_RHS1 ML_CCZ4_RHS2) +{ + LANG: C + READS: ML_CCZ4::ML_curv + READS: ML_CCZ4::ML_curvrhs + READS: ML_CCZ4::ML_dtlapse + READS: ML_CCZ4::ML_dtlapserhs + READS: ML_CCZ4::ML_dtshift + READS: ML_CCZ4::ML_dtshiftrhs + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_Gammarhs + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_lapserhs + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_log_confacrhs + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_metricrhs + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_shiftrhs + READS: ML_CCZ4::ML_Theta + READS: ML_CCZ4::ML_Thetarhs + READS: ML_CCZ4::ML_trace_curv + READS: ML_CCZ4::ML_trace_curvrhs + WRITES: ML_CCZ4::ML_curvrhs + WRITES: ML_CCZ4::ML_dtlapserhs + WRITES: ML_CCZ4::ML_dtshiftrhs + WRITES: ML_CCZ4::ML_Gammarhs + WRITES: ML_CCZ4::ML_lapserhs + WRITES: ML_CCZ4::ML_log_confacrhs + WRITES: ML_CCZ4::ML_metricrhs + WRITES: ML_CCZ4::ML_shiftrhs + WRITES: ML_CCZ4::ML_Thetarhs + WRITES: ML_CCZ4::ML_trace_curvrhs +} "ML_CCZ4_Advect" + +schedule ML_CCZ4_InitRHS AT analysis BEFORE ML_CCZ4_evolCalcGroup +{ + LANG: C + WRITES: ML_CCZ4::ML_curvrhs + WRITES: ML_CCZ4::ML_dtlapserhs + WRITES: ML_CCZ4::ML_dtshiftrhs + WRITES: ML_CCZ4::ML_Gammarhs + WRITES: ML_CCZ4::ML_lapserhs + WRITES: ML_CCZ4::ML_log_confacrhs + WRITES: ML_CCZ4::ML_metricrhs + WRITES: ML_CCZ4::ML_shiftrhs + WRITES: ML_CCZ4::ML_Thetarhs + WRITES: ML_CCZ4::ML_trace_curvrhs +} "ML_CCZ4_InitRHS" + + +if (CCTK_EQUALS(my_rhs_boundary_condition, "static")) +{ + schedule ML_CCZ4_RHSStaticBoundary IN MoL_CalcRHS + { + LANG: C + WRITES: ML_CCZ4::ML_curvrhs + WRITES: ML_CCZ4::ML_dtlapserhs + WRITES: ML_CCZ4::ML_dtshiftrhs + WRITES: ML_CCZ4::ML_Gammarhs + WRITES: ML_CCZ4::ML_lapserhs + WRITES: ML_CCZ4::ML_log_confacrhs + WRITES: ML_CCZ4::ML_metricrhs + WRITES: ML_CCZ4::ML_shiftrhs + WRITES: ML_CCZ4::ML_Thetarhs + WRITES: ML_CCZ4::ML_trace_curvrhs + } "ML_CCZ4_RHSStaticBoundary" +} + +schedule ML_CCZ4_enforce IN MoL_PostStepModify +{ + LANG: C + READS: ML_CCZ4::ML_curv + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_metric + WRITES: ML_CCZ4::ML_curv + WRITES: ML_CCZ4::ML_lapse +} "ML_CCZ4_enforce" + + +if (CCTK_EQUALS(my_boundary_condition, "Minkowski")) +{ + schedule ML_CCZ4_boundary IN MoL_PostStep + { + LANG: C + WRITES: ML_CCZ4::ML_curv + WRITES: ML_CCZ4::ML_dtlapse + WRITES: ML_CCZ4::ML_dtshift + WRITES: ML_CCZ4::ML_Gamma + WRITES: ML_CCZ4::ML_lapse + WRITES: ML_CCZ4::ML_log_confac + WRITES: ML_CCZ4::ML_metric + WRITES: ML_CCZ4::ML_shift + WRITES: ML_CCZ4::ML_Theta + WRITES: ML_CCZ4::ML_trace_curv + } "ML_CCZ4_boundary" +} + +schedule ML_CCZ4_convertToADMBase IN ML_CCZ4_convertToADMBaseGroup +{ + LANG: C + READS: ADMBase::metric + READS: ML_CCZ4::ML_curv + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_trace_curv + WRITES: ADMBase::curv + WRITES: ADMBase::lapse + WRITES: ADMBase::metric + WRITES: ADMBase::shift +} "ML_CCZ4_convertToADMBase" + + +if (CCTK_EQUALS(dt_lapse_shift_method, "correct")) +{ + schedule ML_CCZ4_convertToADMBaseDtLapseShift IN ML_CCZ4_convertToADMBaseGroup + { + LANG: C + SYNC: ADMBase::dtlapse + SYNC: ADMBase::dtshift + READS: grid::coordinates + READS: Grid::coordinates + READS: ML_CCZ4::ML_dtlapse + READS: ML_CCZ4::ML_dtshift + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_Theta + READS: ML_CCZ4::ML_trace_curv + WRITES: ADMBase::dtlapse + WRITES: ADMBase::dtshift + } "ML_CCZ4_convertToADMBaseDtLapseShift" +} + + +if (CCTK_EQUALS(dt_lapse_shift_method, "correct")) +{ + schedule ML_CCZ4_convertToADMBaseDtLapseShiftBoundary IN ML_CCZ4_convertToADMBaseGroup + { + LANG: C + READS: grid::coordinates + READS: Grid::coordinates + READS: ML_CCZ4::ML_dtlapse + READS: ML_CCZ4::ML_dtshift + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_Theta + READS: ML_CCZ4::ML_trace_curv + WRITES: ADMBase::dtlapse + WRITES: ADMBase::dtshift + } "ML_CCZ4_convertToADMBaseDtLapseShiftBoundary" +} + + +if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection")) +{ + schedule ML_CCZ4_convertToADMBaseFakeDtLapseShift IN ML_CCZ4_convertToADMBaseGroup + { + LANG: C + READS: grid::coordinates + READS: Grid::coordinates + READS: ML_CCZ4::ML_dtlapse + READS: ML_CCZ4::ML_dtshift + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_Theta + READS: ML_CCZ4::ML_trace_curv + WRITES: ADMBase::dtlapse + WRITES: ADMBase::dtshift + } "ML_CCZ4_convertToADMBaseFakeDtLapseShift" +} + +schedule group ML_CCZ4_constraints1_group in MoL_PseudoEvolution after MoL_PostStep +{ + # no language specified +} "ML_CCZ4_constraints1" + +schedule ML_CCZ4_constraints1 in ML_CCZ4_constraints1_group +{ + LANG: C + READS: ML_CCZ4::ML_curv + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_trace_curv + READS: TmunuBase::stress_energy_scalar + READS: TmunuBase::stress_energy_tensor + READS: TmunuBase::stress_energy_vector + WRITES: ML_CCZ4::ML_Ham +} "ML_CCZ4_constraints1" + +schedule ML_CCZ4_constraints1_SelectBCs in ML_CCZ4_constraints1_bc_group +{ + LANG: C + OPTIONS: level + SYNC: ML_Ham +} "ML_CCZ4_constraints1_SelectBCs" + +schedule group ApplyBCs as ML_CCZ4_constraints1_ApplyBCs in ML_CCZ4_constraints1_bc_group after ML_CCZ4_constraints1_SelectBCs +{ + # no language specified +} "Apply BCs for groups set in ML_CCZ4_constraints1" + +schedule group ML_CCZ4_constraints1_bc_group in ML_CCZ4_constraints1_group after ML_CCZ4_constraints1 +{ + # no language specified +} "ML_CCZ4_constraints1" + +schedule group ML_CCZ4_constraints1_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep +{ + # no language specified +} "ML_CCZ4_constraints1" + +schedule group ML_CCZ4_constraints2_group in MoL_PseudoEvolution after MoL_PostStep +{ + # no language specified +} "ML_CCZ4_constraints2" + +schedule ML_CCZ4_constraints2 in ML_CCZ4_constraints2_group +{ + LANG: C + READS: ML_CCZ4::ML_curv + READS: ML_CCZ4::ML_Gamma + READS: ML_CCZ4::ML_lapse + READS: ML_CCZ4::ML_log_confac + READS: ML_CCZ4::ML_metric + READS: ML_CCZ4::ML_shift + READS: ML_CCZ4::ML_trace_curv + READS: TmunuBase::stress_energy_scalar + READS: TmunuBase::stress_energy_tensor + READS: TmunuBase::stress_energy_vector + WRITES: ML_CCZ4::ML_cons_detg + WRITES: ML_CCZ4::ML_cons_Gamma + WRITES: ML_CCZ4::ML_cons_traceA + WRITES: ML_CCZ4::ML_mom +} "ML_CCZ4_constraints2" + +schedule ML_CCZ4_constraints2_SelectBCs in ML_CCZ4_constraints2_bc_group +{ + LANG: C + OPTIONS: level + SYNC: ML_cons_detg + SYNC: ML_cons_Gamma + SYNC: ML_cons_traceA + SYNC: ML_mom +} "ML_CCZ4_constraints2_SelectBCs" + +schedule group ApplyBCs as ML_CCZ4_constraints2_ApplyBCs in ML_CCZ4_constraints2_bc_group after ML_CCZ4_constraints2_SelectBCs +{ + # no language specified +} "Apply BCs for groups set in ML_CCZ4_constraints2" + +schedule group ML_CCZ4_constraints2_bc_group in ML_CCZ4_constraints2_group after ML_CCZ4_constraints2 +{ + # no language specified +} "ML_CCZ4_constraints2" + +schedule group ML_CCZ4_constraints2_bc_group in MoL_PseudoEvolutionBoundaries after MoL_PostStep +{ + # no language specified +} "ML_CCZ4_constraints2" + +schedule ML_CCZ4_SelectBoundConds in MoL_PostStep +{ + LANG: C + OPTIONS: level + SYNC: ML_curv + SYNC: ML_dtlapse + SYNC: ML_dtshift + SYNC: ML_Gamma + SYNC: ML_lapse + SYNC: ML_log_confac + SYNC: ML_metric + SYNC: ML_shift + SYNC: ML_Theta + SYNC: ML_trace_curv +} "select boundary conditions" + +schedule ML_CCZ4_CheckBoundaries at BASEGRID +{ + LANG: C + OPTIONS: meta +} "check boundaries treatment" + +schedule ML_CCZ4_RegisterVars in MoL_Register +{ + LANG: C + OPTIONS: meta +} "Register Variables for MoL" + +schedule group ApplyBCs as ML_CCZ4_ApplyBCs in MoL_PostStep after ML_CCZ4_SelectBoundConds +{ + # no language specified +} "Apply boundary conditions controlled by thorn Boundary" diff --git a/ML_CCZ4/src/Boundaries.cc b/ML_CCZ4/src/Boundaries.cc new file mode 100644 index 0000000..09657a1 --- /dev/null +++ b/ML_CCZ4/src/Boundaries.cc @@ -0,0 +1,1913 @@ +/* File produced by Kranc */ + +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "cctk_Faces.h" +#include "util_Table.h" +#include "Symmetry.h" + + +/* the boundary treatment is split into 3 steps: */ +/* 1. excision */ +/* 2. symmetries */ +/* 3. "other" boundary conditions, e.g. radiative */ + +/* to simplify scheduling and testing, the 3 steps */ +/* are currently applied in separate functions */ + + +extern "C" void ML_CCZ4_CheckBoundaries(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + return; +} + +extern "C" void ML_CCZ4_SelectBoundConds(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + + if (CCTK_EQUALS(ML_curv_bound, "none" ) || + CCTK_EQUALS(ML_curv_bound, "static") || + CCTK_EQUALS(ML_curv_bound, "flat" ) || + CCTK_EQUALS(ML_curv_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_curv", ML_curv_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_curv_bound BC for ML_CCZ4::ML_curv!"); + } + + if (CCTK_EQUALS(ML_dtlapse_bound, "none" ) || + CCTK_EQUALS(ML_dtlapse_bound, "static") || + CCTK_EQUALS(ML_dtlapse_bound, "flat" ) || + CCTK_EQUALS(ML_dtlapse_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_dtlapse", ML_dtlapse_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_dtlapse_bound BC for ML_CCZ4::ML_dtlapse!"); + } + + if (CCTK_EQUALS(ML_dtshift_bound, "none" ) || + CCTK_EQUALS(ML_dtshift_bound, "static") || + CCTK_EQUALS(ML_dtshift_bound, "flat" ) || + CCTK_EQUALS(ML_dtshift_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_dtshift", ML_dtshift_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_dtshift_bound BC for ML_CCZ4::ML_dtshift!"); + } + + if (CCTK_EQUALS(ML_Gamma_bound, "none" ) || + CCTK_EQUALS(ML_Gamma_bound, "static") || + CCTK_EQUALS(ML_Gamma_bound, "flat" ) || + CCTK_EQUALS(ML_Gamma_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_Gamma", ML_Gamma_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_Gamma_bound BC for ML_CCZ4::ML_Gamma!"); + } + + if (CCTK_EQUALS(ML_lapse_bound, "none" ) || + CCTK_EQUALS(ML_lapse_bound, "static") || + CCTK_EQUALS(ML_lapse_bound, "flat" ) || + CCTK_EQUALS(ML_lapse_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_lapse", ML_lapse_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_lapse_bound BC for ML_CCZ4::ML_lapse!"); + } + + if (CCTK_EQUALS(ML_log_confac_bound, "none" ) || + CCTK_EQUALS(ML_log_confac_bound, "static") || + CCTK_EQUALS(ML_log_confac_bound, "flat" ) || + CCTK_EQUALS(ML_log_confac_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_log_confac", ML_log_confac_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_log_confac_bound BC for ML_CCZ4::ML_log_confac!"); + } + + if (CCTK_EQUALS(ML_metric_bound, "none" ) || + CCTK_EQUALS(ML_metric_bound, "static") || + CCTK_EQUALS(ML_metric_bound, "flat" ) || + CCTK_EQUALS(ML_metric_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_metric", ML_metric_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_metric_bound BC for ML_CCZ4::ML_metric!"); + } + + if (CCTK_EQUALS(ML_shift_bound, "none" ) || + CCTK_EQUALS(ML_shift_bound, "static") || + CCTK_EQUALS(ML_shift_bound, "flat" ) || + CCTK_EQUALS(ML_shift_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_shift", ML_shift_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_shift_bound BC for ML_CCZ4::ML_shift!"); + } + + if (CCTK_EQUALS(ML_Theta_bound, "none" ) || + CCTK_EQUALS(ML_Theta_bound, "static") || + CCTK_EQUALS(ML_Theta_bound, "flat" ) || + CCTK_EQUALS(ML_Theta_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_Theta", ML_Theta_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_Theta_bound BC for ML_CCZ4::ML_Theta!"); + } + + if (CCTK_EQUALS(ML_trace_curv_bound, "none" ) || + CCTK_EQUALS(ML_trace_curv_bound, "static") || + CCTK_EQUALS(ML_trace_curv_bound, "flat" ) || + CCTK_EQUALS(ML_trace_curv_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::ML_trace_curv", ML_trace_curv_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_trace_curv_bound BC for ML_CCZ4::ML_trace_curv!"); + } + + if (CCTK_EQUALS(At11_bound, "none" ) || + CCTK_EQUALS(At11_bound, "static") || + CCTK_EQUALS(At11_bound, "flat" ) || + CCTK_EQUALS(At11_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::At11", At11_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register At11_bound BC for ML_CCZ4::At11!"); + } + + if (CCTK_EQUALS(At12_bound, "none" ) || + CCTK_EQUALS(At12_bound, "static") || + CCTK_EQUALS(At12_bound, "flat" ) || + CCTK_EQUALS(At12_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::At12", At12_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register At12_bound BC for ML_CCZ4::At12!"); + } + + if (CCTK_EQUALS(At13_bound, "none" ) || + CCTK_EQUALS(At13_bound, "static") || + CCTK_EQUALS(At13_bound, "flat" ) || + CCTK_EQUALS(At13_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::At13", At13_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register At13_bound BC for ML_CCZ4::At13!"); + } + + if (CCTK_EQUALS(At22_bound, "none" ) || + CCTK_EQUALS(At22_bound, "static") || + CCTK_EQUALS(At22_bound, "flat" ) || + CCTK_EQUALS(At22_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::At22", At22_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register At22_bound BC for ML_CCZ4::At22!"); + } + + if (CCTK_EQUALS(At23_bound, "none" ) || + CCTK_EQUALS(At23_bound, "static") || + CCTK_EQUALS(At23_bound, "flat" ) || + CCTK_EQUALS(At23_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::At23", At23_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register At23_bound BC for ML_CCZ4::At23!"); + } + + if (CCTK_EQUALS(At33_bound, "none" ) || + CCTK_EQUALS(At33_bound, "static") || + CCTK_EQUALS(At33_bound, "flat" ) || + CCTK_EQUALS(At33_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::At33", At33_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register At33_bound BC for ML_CCZ4::At33!"); + } + + if (CCTK_EQUALS(A_bound, "none" ) || + CCTK_EQUALS(A_bound, "static") || + CCTK_EQUALS(A_bound, "flat" ) || + CCTK_EQUALS(A_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::A", A_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register A_bound BC for ML_CCZ4::A!"); + } + + if (CCTK_EQUALS(B1_bound, "none" ) || + CCTK_EQUALS(B1_bound, "static") || + CCTK_EQUALS(B1_bound, "flat" ) || + CCTK_EQUALS(B1_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::B1", B1_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register B1_bound BC for ML_CCZ4::B1!"); + } + + if (CCTK_EQUALS(B2_bound, "none" ) || + CCTK_EQUALS(B2_bound, "static") || + CCTK_EQUALS(B2_bound, "flat" ) || + CCTK_EQUALS(B2_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::B2", B2_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register B2_bound BC for ML_CCZ4::B2!"); + } + + if (CCTK_EQUALS(B3_bound, "none" ) || + CCTK_EQUALS(B3_bound, "static") || + CCTK_EQUALS(B3_bound, "flat" ) || + CCTK_EQUALS(B3_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::B3", B3_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register B3_bound BC for ML_CCZ4::B3!"); + } + + if (CCTK_EQUALS(Xt1_bound, "none" ) || + CCTK_EQUALS(Xt1_bound, "static") || + CCTK_EQUALS(Xt1_bound, "flat" ) || + CCTK_EQUALS(Xt1_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::Xt1", Xt1_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register Xt1_bound BC for ML_CCZ4::Xt1!"); + } + + if (CCTK_EQUALS(Xt2_bound, "none" ) || + CCTK_EQUALS(Xt2_bound, "static") || + CCTK_EQUALS(Xt2_bound, "flat" ) || + CCTK_EQUALS(Xt2_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::Xt2", Xt2_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register Xt2_bound BC for ML_CCZ4::Xt2!"); + } + + if (CCTK_EQUALS(Xt3_bound, "none" ) || + CCTK_EQUALS(Xt3_bound, "static") || + CCTK_EQUALS(Xt3_bound, "flat" ) || + CCTK_EQUALS(Xt3_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::Xt3", Xt3_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register Xt3_bound BC for ML_CCZ4::Xt3!"); + } + + if (CCTK_EQUALS(alpha_bound, "none" ) || + CCTK_EQUALS(alpha_bound, "static") || + CCTK_EQUALS(alpha_bound, "flat" ) || + CCTK_EQUALS(alpha_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::alpha", alpha_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register alpha_bound BC for ML_CCZ4::alpha!"); + } + + if (CCTK_EQUALS(phi_bound, "none" ) || + CCTK_EQUALS(phi_bound, "static") || + CCTK_EQUALS(phi_bound, "flat" ) || + CCTK_EQUALS(phi_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::phi", phi_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register phi_bound BC for ML_CCZ4::phi!"); + } + + if (CCTK_EQUALS(gt11_bound, "none" ) || + CCTK_EQUALS(gt11_bound, "static") || + CCTK_EQUALS(gt11_bound, "flat" ) || + CCTK_EQUALS(gt11_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::gt11", gt11_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register gt11_bound BC for ML_CCZ4::gt11!"); + } + + if (CCTK_EQUALS(gt12_bound, "none" ) || + CCTK_EQUALS(gt12_bound, "static") || + CCTK_EQUALS(gt12_bound, "flat" ) || + CCTK_EQUALS(gt12_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::gt12", gt12_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register gt12_bound BC for ML_CCZ4::gt12!"); + } + + if (CCTK_EQUALS(gt13_bound, "none" ) || + CCTK_EQUALS(gt13_bound, "static") || + CCTK_EQUALS(gt13_bound, "flat" ) || + CCTK_EQUALS(gt13_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::gt13", gt13_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register gt13_bound BC for ML_CCZ4::gt13!"); + } + + if (CCTK_EQUALS(gt22_bound, "none" ) || + CCTK_EQUALS(gt22_bound, "static") || + CCTK_EQUALS(gt22_bound, "flat" ) || + CCTK_EQUALS(gt22_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::gt22", gt22_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register gt22_bound BC for ML_CCZ4::gt22!"); + } + + if (CCTK_EQUALS(gt23_bound, "none" ) || + CCTK_EQUALS(gt23_bound, "static") || + CCTK_EQUALS(gt23_bound, "flat" ) || + CCTK_EQUALS(gt23_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::gt23", gt23_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register gt23_bound BC for ML_CCZ4::gt23!"); + } + + if (CCTK_EQUALS(gt33_bound, "none" ) || + CCTK_EQUALS(gt33_bound, "static") || + CCTK_EQUALS(gt33_bound, "flat" ) || + CCTK_EQUALS(gt33_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::gt33", gt33_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register gt33_bound BC for ML_CCZ4::gt33!"); + } + + if (CCTK_EQUALS(beta1_bound, "none" ) || + CCTK_EQUALS(beta1_bound, "static") || + CCTK_EQUALS(beta1_bound, "flat" ) || + CCTK_EQUALS(beta1_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::beta1", beta1_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register beta1_bound BC for ML_CCZ4::beta1!"); + } + + if (CCTK_EQUALS(beta2_bound, "none" ) || + CCTK_EQUALS(beta2_bound, "static") || + CCTK_EQUALS(beta2_bound, "flat" ) || + CCTK_EQUALS(beta2_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::beta2", beta2_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register beta2_bound BC for ML_CCZ4::beta2!"); + } + + if (CCTK_EQUALS(beta3_bound, "none" ) || + CCTK_EQUALS(beta3_bound, "static") || + CCTK_EQUALS(beta3_bound, "flat" ) || + CCTK_EQUALS(beta3_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::beta3", beta3_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register beta3_bound BC for ML_CCZ4::beta3!"); + } + + if (CCTK_EQUALS(Theta_bound, "none" ) || + CCTK_EQUALS(Theta_bound, "static") || + CCTK_EQUALS(Theta_bound, "flat" ) || + CCTK_EQUALS(Theta_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::Theta", Theta_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register Theta_bound BC for ML_CCZ4::Theta!"); + } + + if (CCTK_EQUALS(trK_bound, "none" ) || + CCTK_EQUALS(trK_bound, "static") || + CCTK_EQUALS(trK_bound, "flat" ) || + CCTK_EQUALS(trK_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_CCZ4::trK", trK_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register trK_bound BC for ML_CCZ4::trK!"); + } + + if (CCTK_EQUALS(ML_curv_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_curv_bound = -1; + if (handle_ML_curv_bound < 0) handle_ML_curv_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_curv_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_curv_bound , ML_curv_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_curv_bound ,ML_curv_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_curv_bound, + "ML_CCZ4::ML_curv", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_curv!"); + + } + + if (CCTK_EQUALS(ML_dtlapse_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_dtlapse_bound = -1; + if (handle_ML_dtlapse_bound < 0) handle_ML_dtlapse_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_dtlapse_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_dtlapse_bound , ML_dtlapse_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_dtlapse_bound ,ML_dtlapse_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_dtlapse_bound, + "ML_CCZ4::ML_dtlapse", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_dtlapse!"); + + } + + if (CCTK_EQUALS(ML_dtshift_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_dtshift_bound = -1; + if (handle_ML_dtshift_bound < 0) handle_ML_dtshift_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_dtshift_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_dtshift_bound , ML_dtshift_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_dtshift_bound ,ML_dtshift_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_dtshift_bound, + "ML_CCZ4::ML_dtshift", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_dtshift!"); + + } + + if (CCTK_EQUALS(ML_Gamma_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_Gamma_bound = -1; + if (handle_ML_Gamma_bound < 0) handle_ML_Gamma_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_Gamma_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_Gamma_bound , ML_Gamma_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_Gamma_bound ,ML_Gamma_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_Gamma_bound, + "ML_CCZ4::ML_Gamma", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_Gamma!"); + + } + + if (CCTK_EQUALS(ML_lapse_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_lapse_bound = -1; + if (handle_ML_lapse_bound < 0) handle_ML_lapse_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_lapse_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_lapse_bound , ML_lapse_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_lapse_bound ,ML_lapse_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_lapse_bound, + "ML_CCZ4::ML_lapse", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_lapse!"); + + } + + if (CCTK_EQUALS(ML_log_confac_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_log_confac_bound = -1; + if (handle_ML_log_confac_bound < 0) handle_ML_log_confac_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_log_confac_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_log_confac_bound , ML_log_confac_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_log_confac_bound ,ML_log_confac_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_log_confac_bound, + "ML_CCZ4::ML_log_confac", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_log_confac!"); + + } + + if (CCTK_EQUALS(ML_metric_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_metric_bound = -1; + if (handle_ML_metric_bound < 0) handle_ML_metric_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_metric_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_metric_bound , ML_metric_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_metric_bound ,ML_metric_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_metric_bound, + "ML_CCZ4::ML_metric", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_metric!"); + + } + + if (CCTK_EQUALS(ML_shift_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_shift_bound = -1; + if (handle_ML_shift_bound < 0) handle_ML_shift_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_shift_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_shift_bound , ML_shift_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_shift_bound ,ML_shift_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_shift_bound, + "ML_CCZ4::ML_shift", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_shift!"); + + } + + if (CCTK_EQUALS(ML_Theta_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_Theta_bound = -1; + if (handle_ML_Theta_bound < 0) handle_ML_Theta_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_Theta_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_Theta_bound , ML_Theta_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_Theta_bound ,ML_Theta_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_Theta_bound, + "ML_CCZ4::ML_Theta", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_Theta!"); + + } + + if (CCTK_EQUALS(ML_trace_curv_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_trace_curv_bound = -1; + if (handle_ML_trace_curv_bound < 0) handle_ML_trace_curv_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_trace_curv_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_trace_curv_bound , ML_trace_curv_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_trace_curv_bound ,ML_trace_curv_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_trace_curv_bound, + "ML_CCZ4::ML_trace_curv", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::ML_trace_curv!"); + + } + + if (CCTK_EQUALS(At11_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_At11_bound = -1; + if (handle_At11_bound < 0) handle_At11_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At11_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At11_bound , At11_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_At11_bound ,At11_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At11_bound, + "ML_CCZ4::At11", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::At11!"); + + } + + if (CCTK_EQUALS(At12_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_At12_bound = -1; + if (handle_At12_bound < 0) handle_At12_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At12_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At12_bound , At12_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_At12_bound ,At12_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At12_bound, + "ML_CCZ4::At12", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::At12!"); + + } + + if (CCTK_EQUALS(At13_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_At13_bound = -1; + if (handle_At13_bound < 0) handle_At13_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At13_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At13_bound , At13_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_At13_bound ,At13_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At13_bound, + "ML_CCZ4::At13", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::At13!"); + + } + + if (CCTK_EQUALS(At22_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_At22_bound = -1; + if (handle_At22_bound < 0) handle_At22_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At22_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At22_bound , At22_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_At22_bound ,At22_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At22_bound, + "ML_CCZ4::At22", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::At22!"); + + } + + if (CCTK_EQUALS(At23_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_At23_bound = -1; + if (handle_At23_bound < 0) handle_At23_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At23_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At23_bound , At23_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_At23_bound ,At23_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At23_bound, + "ML_CCZ4::At23", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::At23!"); + + } + + if (CCTK_EQUALS(At33_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_At33_bound = -1; + if (handle_At33_bound < 0) handle_At33_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At33_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At33_bound , At33_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_At33_bound ,At33_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At33_bound, + "ML_CCZ4::At33", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::At33!"); + + } + + if (CCTK_EQUALS(A_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_A_bound = -1; + if (handle_A_bound < 0) handle_A_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_A_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_A_bound , A_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_A_bound ,A_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_A_bound, + "ML_CCZ4::A", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::A!"); + + } + + if (CCTK_EQUALS(B1_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_B1_bound = -1; + if (handle_B1_bound < 0) handle_B1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B1_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_B1_bound , B1_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_B1_bound ,B1_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B1_bound, + "ML_CCZ4::B1", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::B1!"); + + } + + if (CCTK_EQUALS(B2_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_B2_bound = -1; + if (handle_B2_bound < 0) handle_B2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B2_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_B2_bound , B2_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_B2_bound ,B2_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B2_bound, + "ML_CCZ4::B2", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::B2!"); + + } + + if (CCTK_EQUALS(B3_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_B3_bound = -1; + if (handle_B3_bound < 0) handle_B3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B3_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_B3_bound , B3_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_B3_bound ,B3_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B3_bound, + "ML_CCZ4::B3", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::B3!"); + + } + + if (CCTK_EQUALS(Xt1_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_Xt1_bound = -1; + if (handle_Xt1_bound < 0) handle_Xt1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Xt1_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Xt1_bound , Xt1_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_Xt1_bound ,Xt1_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Xt1_bound, + "ML_CCZ4::Xt1", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::Xt1!"); + + } + + if (CCTK_EQUALS(Xt2_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_Xt2_bound = -1; + if (handle_Xt2_bound < 0) handle_Xt2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Xt2_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Xt2_bound , Xt2_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_Xt2_bound ,Xt2_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Xt2_bound, + "ML_CCZ4::Xt2", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::Xt2!"); + + } + + if (CCTK_EQUALS(Xt3_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_Xt3_bound = -1; + if (handle_Xt3_bound < 0) handle_Xt3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Xt3_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Xt3_bound , Xt3_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_Xt3_bound ,Xt3_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Xt3_bound, + "ML_CCZ4::Xt3", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::Xt3!"); + + } + + if (CCTK_EQUALS(alpha_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_alpha_bound = -1; + if (handle_alpha_bound < 0) handle_alpha_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_alpha_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_alpha_bound , alpha_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_alpha_bound ,alpha_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_alpha_bound, + "ML_CCZ4::alpha", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::alpha!"); + + } + + if (CCTK_EQUALS(phi_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_phi_bound = -1; + if (handle_phi_bound < 0) handle_phi_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_phi_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_phi_bound , phi_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_phi_bound ,phi_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_phi_bound, + "ML_CCZ4::phi", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::phi!"); + + } + + if (CCTK_EQUALS(gt11_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_gt11_bound = -1; + if (handle_gt11_bound < 0) handle_gt11_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt11_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt11_bound , gt11_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_gt11_bound ,gt11_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt11_bound, + "ML_CCZ4::gt11", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::gt11!"); + + } + + if (CCTK_EQUALS(gt12_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_gt12_bound = -1; + if (handle_gt12_bound < 0) handle_gt12_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt12_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt12_bound , gt12_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_gt12_bound ,gt12_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt12_bound, + "ML_CCZ4::gt12", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::gt12!"); + + } + + if (CCTK_EQUALS(gt13_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_gt13_bound = -1; + if (handle_gt13_bound < 0) handle_gt13_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt13_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt13_bound , gt13_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_gt13_bound ,gt13_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt13_bound, + "ML_CCZ4::gt13", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::gt13!"); + + } + + if (CCTK_EQUALS(gt22_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_gt22_bound = -1; + if (handle_gt22_bound < 0) handle_gt22_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt22_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt22_bound , gt22_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_gt22_bound ,gt22_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt22_bound, + "ML_CCZ4::gt22", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::gt22!"); + + } + + if (CCTK_EQUALS(gt23_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_gt23_bound = -1; + if (handle_gt23_bound < 0) handle_gt23_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt23_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt23_bound , gt23_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_gt23_bound ,gt23_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt23_bound, + "ML_CCZ4::gt23", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::gt23!"); + + } + + if (CCTK_EQUALS(gt33_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_gt33_bound = -1; + if (handle_gt33_bound < 0) handle_gt33_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt33_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt33_bound , gt33_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_gt33_bound ,gt33_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt33_bound, + "ML_CCZ4::gt33", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::gt33!"); + + } + + if (CCTK_EQUALS(beta1_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_beta1_bound = -1; + if (handle_beta1_bound < 0) handle_beta1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_beta1_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_beta1_bound , beta1_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_beta1_bound ,beta1_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_beta1_bound, + "ML_CCZ4::beta1", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::beta1!"); + + } + + if (CCTK_EQUALS(beta2_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_beta2_bound = -1; + if (handle_beta2_bound < 0) handle_beta2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_beta2_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_beta2_bound , beta2_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_beta2_bound ,beta2_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_beta2_bound, + "ML_CCZ4::beta2", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::beta2!"); + + } + + if (CCTK_EQUALS(beta3_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_beta3_bound = -1; + if (handle_beta3_bound < 0) handle_beta3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_beta3_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_beta3_bound , beta3_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_beta3_bound ,beta3_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_beta3_bound, + "ML_CCZ4::beta3", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::beta3!"); + + } + + if (CCTK_EQUALS(Theta_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_Theta_bound = -1; + if (handle_Theta_bound < 0) handle_Theta_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Theta_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Theta_bound , Theta_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_Theta_bound ,Theta_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Theta_bound, + "ML_CCZ4::Theta", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::Theta!"); + + } + + if (CCTK_EQUALS(trK_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_trK_bound = -1; + if (handle_trK_bound < 0) handle_trK_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_trK_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_trK_bound , trK_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_trK_bound ,trK_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_trK_bound, + "ML_CCZ4::trK", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_CCZ4::trK!"); + + } + + if (CCTK_EQUALS(ML_curv_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_curv_bound = -1; + if (handle_ML_curv_bound < 0) handle_ML_curv_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_curv_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_curv_bound ,ML_curv_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_curv_bound, + "ML_CCZ4::ML_curv", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_curv!"); + + } + + if (CCTK_EQUALS(ML_dtlapse_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_dtlapse_bound = -1; + if (handle_ML_dtlapse_bound < 0) handle_ML_dtlapse_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_dtlapse_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_dtlapse_bound ,ML_dtlapse_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_dtlapse_bound, + "ML_CCZ4::ML_dtlapse", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_dtlapse!"); + + } + + if (CCTK_EQUALS(ML_dtshift_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_dtshift_bound = -1; + if (handle_ML_dtshift_bound < 0) handle_ML_dtshift_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_dtshift_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_dtshift_bound ,ML_dtshift_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_dtshift_bound, + "ML_CCZ4::ML_dtshift", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_dtshift!"); + + } + + if (CCTK_EQUALS(ML_Gamma_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_Gamma_bound = -1; + if (handle_ML_Gamma_bound < 0) handle_ML_Gamma_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_Gamma_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_Gamma_bound ,ML_Gamma_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_Gamma_bound, + "ML_CCZ4::ML_Gamma", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_Gamma!"); + + } + + if (CCTK_EQUALS(ML_lapse_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_lapse_bound = -1; + if (handle_ML_lapse_bound < 0) handle_ML_lapse_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_lapse_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_lapse_bound ,ML_lapse_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_lapse_bound, + "ML_CCZ4::ML_lapse", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_lapse!"); + + } + + if (CCTK_EQUALS(ML_log_confac_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_log_confac_bound = -1; + if (handle_ML_log_confac_bound < 0) handle_ML_log_confac_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_log_confac_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_log_confac_bound ,ML_log_confac_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_log_confac_bound, + "ML_CCZ4::ML_log_confac", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_log_confac!"); + + } + + if (CCTK_EQUALS(ML_metric_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_metric_bound = -1; + if (handle_ML_metric_bound < 0) handle_ML_metric_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_metric_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_metric_bound ,ML_metric_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_metric_bound, + "ML_CCZ4::ML_metric", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_metric!"); + + } + + if (CCTK_EQUALS(ML_shift_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_shift_bound = -1; + if (handle_ML_shift_bound < 0) handle_ML_shift_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_shift_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_shift_bound ,ML_shift_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_shift_bound, + "ML_CCZ4::ML_shift", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_shift!"); + + } + + if (CCTK_EQUALS(ML_Theta_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_Theta_bound = -1; + if (handle_ML_Theta_bound < 0) handle_ML_Theta_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_Theta_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_Theta_bound ,ML_Theta_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_Theta_bound, + "ML_CCZ4::ML_Theta", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_Theta!"); + + } + + if (CCTK_EQUALS(ML_trace_curv_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_trace_curv_bound = -1; + if (handle_ML_trace_curv_bound < 0) handle_ML_trace_curv_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_trace_curv_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_trace_curv_bound ,ML_trace_curv_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_trace_curv_bound, + "ML_CCZ4::ML_trace_curv", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_CCZ4::ML_trace_curv!"); + + } + + if (CCTK_EQUALS(At11_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_At11_bound = -1; + if (handle_At11_bound < 0) handle_At11_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At11_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At11_bound ,At11_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At11_bound, + "ML_CCZ4::At11", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::At11!"); + + } + + if (CCTK_EQUALS(At12_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_At12_bound = -1; + if (handle_At12_bound < 0) handle_At12_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At12_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At12_bound ,At12_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At12_bound, + "ML_CCZ4::At12", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::At12!"); + + } + + if (CCTK_EQUALS(At13_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_At13_bound = -1; + if (handle_At13_bound < 0) handle_At13_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At13_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At13_bound ,At13_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At13_bound, + "ML_CCZ4::At13", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::At13!"); + + } + + if (CCTK_EQUALS(At22_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_At22_bound = -1; + if (handle_At22_bound < 0) handle_At22_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At22_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At22_bound ,At22_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At22_bound, + "ML_CCZ4::At22", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::At22!"); + + } + + if (CCTK_EQUALS(At23_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_At23_bound = -1; + if (handle_At23_bound < 0) handle_At23_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At23_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At23_bound ,At23_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At23_bound, + "ML_CCZ4::At23", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::At23!"); + + } + + if (CCTK_EQUALS(At33_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_At33_bound = -1; + if (handle_At33_bound < 0) handle_At33_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_At33_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_At33_bound ,At33_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_At33_bound, + "ML_CCZ4::At33", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::At33!"); + + } + + if (CCTK_EQUALS(A_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_A_bound = -1; + if (handle_A_bound < 0) handle_A_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_A_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_A_bound ,A_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_A_bound, + "ML_CCZ4::A", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::A!"); + + } + + if (CCTK_EQUALS(B1_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_B1_bound = -1; + if (handle_B1_bound < 0) handle_B1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B1_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_B1_bound ,B1_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B1_bound, + "ML_CCZ4::B1", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::B1!"); + + } + + if (CCTK_EQUALS(B2_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_B2_bound = -1; + if (handle_B2_bound < 0) handle_B2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B2_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_B2_bound ,B2_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B2_bound, + "ML_CCZ4::B2", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::B2!"); + + } + + if (CCTK_EQUALS(B3_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_B3_bound = -1; + if (handle_B3_bound < 0) handle_B3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B3_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_B3_bound ,B3_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B3_bound, + "ML_CCZ4::B3", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::B3!"); + + } + + if (CCTK_EQUALS(Xt1_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_Xt1_bound = -1; + if (handle_Xt1_bound < 0) handle_Xt1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Xt1_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Xt1_bound ,Xt1_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Xt1_bound, + "ML_CCZ4::Xt1", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::Xt1!"); + + } + + if (CCTK_EQUALS(Xt2_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_Xt2_bound = -1; + if (handle_Xt2_bound < 0) handle_Xt2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Xt2_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Xt2_bound ,Xt2_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Xt2_bound, + "ML_CCZ4::Xt2", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::Xt2!"); + + } + + if (CCTK_EQUALS(Xt3_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_Xt3_bound = -1; + if (handle_Xt3_bound < 0) handle_Xt3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Xt3_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Xt3_bound ,Xt3_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Xt3_bound, + "ML_CCZ4::Xt3", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::Xt3!"); + + } + + if (CCTK_EQUALS(alpha_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_alpha_bound = -1; + if (handle_alpha_bound < 0) handle_alpha_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_alpha_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_alpha_bound ,alpha_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_alpha_bound, + "ML_CCZ4::alpha", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::alpha!"); + + } + + if (CCTK_EQUALS(phi_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_phi_bound = -1; + if (handle_phi_bound < 0) handle_phi_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_phi_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_phi_bound ,phi_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_phi_bound, + "ML_CCZ4::phi", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::phi!"); + + } + + if (CCTK_EQUALS(gt11_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_gt11_bound = -1; + if (handle_gt11_bound < 0) handle_gt11_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt11_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt11_bound ,gt11_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt11_bound, + "ML_CCZ4::gt11", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::gt11!"); + + } + + if (CCTK_EQUALS(gt12_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_gt12_bound = -1; + if (handle_gt12_bound < 0) handle_gt12_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt12_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt12_bound ,gt12_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt12_bound, + "ML_CCZ4::gt12", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::gt12!"); + + } + + if (CCTK_EQUALS(gt13_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_gt13_bound = -1; + if (handle_gt13_bound < 0) handle_gt13_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt13_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt13_bound ,gt13_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt13_bound, + "ML_CCZ4::gt13", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::gt13!"); + + } + + if (CCTK_EQUALS(gt22_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_gt22_bound = -1; + if (handle_gt22_bound < 0) handle_gt22_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt22_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt22_bound ,gt22_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt22_bound, + "ML_CCZ4::gt22", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::gt22!"); + + } + + if (CCTK_EQUALS(gt23_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_gt23_bound = -1; + if (handle_gt23_bound < 0) handle_gt23_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt23_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt23_bound ,gt23_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt23_bound, + "ML_CCZ4::gt23", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::gt23!"); + + } + + if (CCTK_EQUALS(gt33_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_gt33_bound = -1; + if (handle_gt33_bound < 0) handle_gt33_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_gt33_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_gt33_bound ,gt33_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_gt33_bound, + "ML_CCZ4::gt33", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::gt33!"); + + } + + if (CCTK_EQUALS(beta1_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_beta1_bound = -1; + if (handle_beta1_bound < 0) handle_beta1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_beta1_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_beta1_bound ,beta1_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_beta1_bound, + "ML_CCZ4::beta1", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::beta1!"); + + } + + if (CCTK_EQUALS(beta2_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_beta2_bound = -1; + if (handle_beta2_bound < 0) handle_beta2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_beta2_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_beta2_bound ,beta2_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_beta2_bound, + "ML_CCZ4::beta2", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::beta2!"); + + } + + if (CCTK_EQUALS(beta3_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_beta3_bound = -1; + if (handle_beta3_bound < 0) handle_beta3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_beta3_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_beta3_bound ,beta3_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_beta3_bound, + "ML_CCZ4::beta3", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::beta3!"); + + } + + if (CCTK_EQUALS(Theta_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_Theta_bound = -1; + if (handle_Theta_bound < 0) handle_Theta_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Theta_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Theta_bound ,Theta_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Theta_bound, + "ML_CCZ4::Theta", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::Theta!"); + + } + + if (CCTK_EQUALS(trK_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_trK_bound = -1; + if (handle_trK_bound < 0) handle_trK_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_trK_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_trK_bound ,trK_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_trK_bound, + "ML_CCZ4::trK", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_CCZ4::trK!"); + + } + return; +} + + + +/* template for entries in parameter file: +#$bound$#ML_CCZ4::ML_curv_bound = "skip" +#$bound$#ML_CCZ4::ML_curv_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_curv_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_curv_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_dtlapse_bound = "skip" +#$bound$#ML_CCZ4::ML_dtlapse_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_dtlapse_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_dtlapse_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_dtshift_bound = "skip" +#$bound$#ML_CCZ4::ML_dtshift_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_dtshift_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_dtshift_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_Gamma_bound = "skip" +#$bound$#ML_CCZ4::ML_Gamma_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_Gamma_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_Gamma_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_lapse_bound = "skip" +#$bound$#ML_CCZ4::ML_lapse_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_lapse_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_lapse_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_log_confac_bound = "skip" +#$bound$#ML_CCZ4::ML_log_confac_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_log_confac_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_log_confac_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_metric_bound = "skip" +#$bound$#ML_CCZ4::ML_metric_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_metric_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_metric_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_shift_bound = "skip" +#$bound$#ML_CCZ4::ML_shift_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_shift_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_shift_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_Theta_bound = "skip" +#$bound$#ML_CCZ4::ML_Theta_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_Theta_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_Theta_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::ML_trace_curv_bound = "skip" +#$bound$#ML_CCZ4::ML_trace_curv_bound_speed = 1.0 +#$bound$#ML_CCZ4::ML_trace_curv_bound_limit = 0.0 +#$bound$#ML_CCZ4::ML_trace_curv_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::At11_bound = "skip" +#$bound$#ML_CCZ4::At11_bound_speed = 1.0 +#$bound$#ML_CCZ4::At11_bound_limit = 0.0 +#$bound$#ML_CCZ4::At11_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::At12_bound = "skip" +#$bound$#ML_CCZ4::At12_bound_speed = 1.0 +#$bound$#ML_CCZ4::At12_bound_limit = 0.0 +#$bound$#ML_CCZ4::At12_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::At13_bound = "skip" +#$bound$#ML_CCZ4::At13_bound_speed = 1.0 +#$bound$#ML_CCZ4::At13_bound_limit = 0.0 +#$bound$#ML_CCZ4::At13_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::At22_bound = "skip" +#$bound$#ML_CCZ4::At22_bound_speed = 1.0 +#$bound$#ML_CCZ4::At22_bound_limit = 0.0 +#$bound$#ML_CCZ4::At22_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::At23_bound = "skip" +#$bound$#ML_CCZ4::At23_bound_speed = 1.0 +#$bound$#ML_CCZ4::At23_bound_limit = 0.0 +#$bound$#ML_CCZ4::At23_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::At33_bound = "skip" +#$bound$#ML_CCZ4::At33_bound_speed = 1.0 +#$bound$#ML_CCZ4::At33_bound_limit = 0.0 +#$bound$#ML_CCZ4::At33_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::A_bound = "skip" +#$bound$#ML_CCZ4::A_bound_speed = 1.0 +#$bound$#ML_CCZ4::A_bound_limit = 0.0 +#$bound$#ML_CCZ4::A_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::B1_bound = "skip" +#$bound$#ML_CCZ4::B1_bound_speed = 1.0 +#$bound$#ML_CCZ4::B1_bound_limit = 0.0 +#$bound$#ML_CCZ4::B1_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::B2_bound = "skip" +#$bound$#ML_CCZ4::B2_bound_speed = 1.0 +#$bound$#ML_CCZ4::B2_bound_limit = 0.0 +#$bound$#ML_CCZ4::B2_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::B3_bound = "skip" +#$bound$#ML_CCZ4::B3_bound_speed = 1.0 +#$bound$#ML_CCZ4::B3_bound_limit = 0.0 +#$bound$#ML_CCZ4::B3_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::Xt1_bound = "skip" +#$bound$#ML_CCZ4::Xt1_bound_speed = 1.0 +#$bound$#ML_CCZ4::Xt1_bound_limit = 0.0 +#$bound$#ML_CCZ4::Xt1_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::Xt2_bound = "skip" +#$bound$#ML_CCZ4::Xt2_bound_speed = 1.0 +#$bound$#ML_CCZ4::Xt2_bound_limit = 0.0 +#$bound$#ML_CCZ4::Xt2_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::Xt3_bound = "skip" +#$bound$#ML_CCZ4::Xt3_bound_speed = 1.0 +#$bound$#ML_CCZ4::Xt3_bound_limit = 0.0 +#$bound$#ML_CCZ4::Xt3_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::alpha_bound = "skip" +#$bound$#ML_CCZ4::alpha_bound_speed = 1.0 +#$bound$#ML_CCZ4::alpha_bound_limit = 0.0 +#$bound$#ML_CCZ4::alpha_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::phi_bound = "skip" +#$bound$#ML_CCZ4::phi_bound_speed = 1.0 +#$bound$#ML_CCZ4::phi_bound_limit = 0.0 +#$bound$#ML_CCZ4::phi_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::gt11_bound = "skip" +#$bound$#ML_CCZ4::gt11_bound_speed = 1.0 +#$bound$#ML_CCZ4::gt11_bound_limit = 0.0 +#$bound$#ML_CCZ4::gt11_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::gt12_bound = "skip" +#$bound$#ML_CCZ4::gt12_bound_speed = 1.0 +#$bound$#ML_CCZ4::gt12_bound_limit = 0.0 +#$bound$#ML_CCZ4::gt12_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::gt13_bound = "skip" +#$bound$#ML_CCZ4::gt13_bound_speed = 1.0 +#$bound$#ML_CCZ4::gt13_bound_limit = 0.0 +#$bound$#ML_CCZ4::gt13_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::gt22_bound = "skip" +#$bound$#ML_CCZ4::gt22_bound_speed = 1.0 +#$bound$#ML_CCZ4::gt22_bound_limit = 0.0 +#$bound$#ML_CCZ4::gt22_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::gt23_bound = "skip" +#$bound$#ML_CCZ4::gt23_bound_speed = 1.0 +#$bound$#ML_CCZ4::gt23_bound_limit = 0.0 +#$bound$#ML_CCZ4::gt23_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::gt33_bound = "skip" +#$bound$#ML_CCZ4::gt33_bound_speed = 1.0 +#$bound$#ML_CCZ4::gt33_bound_limit = 0.0 +#$bound$#ML_CCZ4::gt33_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::beta1_bound = "skip" +#$bound$#ML_CCZ4::beta1_bound_speed = 1.0 +#$bound$#ML_CCZ4::beta1_bound_limit = 0.0 +#$bound$#ML_CCZ4::beta1_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::beta2_bound = "skip" +#$bound$#ML_CCZ4::beta2_bound_speed = 1.0 +#$bound$#ML_CCZ4::beta2_bound_limit = 0.0 +#$bound$#ML_CCZ4::beta2_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::beta3_bound = "skip" +#$bound$#ML_CCZ4::beta3_bound_speed = 1.0 +#$bound$#ML_CCZ4::beta3_bound_limit = 0.0 +#$bound$#ML_CCZ4::beta3_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::Theta_bound = "skip" +#$bound$#ML_CCZ4::Theta_bound_speed = 1.0 +#$bound$#ML_CCZ4::Theta_bound_limit = 0.0 +#$bound$#ML_CCZ4::Theta_bound_scalar = 0.0 + +#$bound$#ML_CCZ4::trK_bound = "skip" +#$bound$#ML_CCZ4::trK_bound_speed = 1.0 +#$bound$#ML_CCZ4::trK_bound_limit = 0.0 +#$bound$#ML_CCZ4::trK_bound_scalar = 0.0 + +*/ + diff --git a/ML_CCZ4/src/Differencing.h b/ML_CCZ4/src/Differencing.h new file mode 100644 index 0000000..96a0554 --- /dev/null +++ b/ML_CCZ4/src/Differencing.h @@ -0,0 +1,1146 @@ +#include <assert.h> +#include "vectors.h" + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder21(u) (kmul(p1o2dx,ksub(KRANC_GFOFFSET3D(u,1,0,0),KRANC_GFOFFSET3D(u,-1,0,0)))) +#else +# 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(KRANC_GFOFFSET3D(u,1,0,0),KRANC_GFOFFSET3D(u,-1,0,0))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder22(u) (kmul(p1o2dy,ksub(KRANC_GFOFFSET3D(u,0,1,0),KRANC_GFOFFSET3D(u,0,-1,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(KRANC_GFOFFSET3D(u,0,1,0),KRANC_GFOFFSET3D(u,0,-1,0))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder23(u) (kmul(p1o2dz,ksub(KRANC_GFOFFSET3D(u,0,0,1),KRANC_GFOFFSET3D(u,0,0,-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(KRANC_GFOFFSET3D(u,0,0,1),KRANC_GFOFFSET3D(u,0,0,-1))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder41(u) (kmul(p1o12dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,1,0,0),ToReal(8),KRANC_GFOFFSET3D(u,2,0,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(KRANC_GFOFFSET3D(u,-2,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,1,0,0),ToReal(8),KRANC_GFOFFSET3D(u,2,0,0))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder42(u) (kmul(p1o12dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,0,1,0),ToReal(8),KRANC_GFOFFSET3D(u,0,2,0)))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,-2,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,0,1,0),ToReal(8),KRANC_GFOFFSET3D(u,0,2,0))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder43(u) (kmul(p1o12dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,0,0,1),ToReal(8),KRANC_GFOFFSET3D(u,0,0,2)))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,0,-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,0,0,1),ToReal(8),KRANC_GFOFFSET3D(u,0,0,2))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder61(u) (kmul(p1o60dx,kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(9),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(45))),KRANC_GFOFFSET3D(u,-3,0,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(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(9),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(45))),KRANC_GFOFFSET3D(u,-3,0,0)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder62(u) (kmul(p1o60dy,kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(9),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(45))),KRANC_GFOFFSET3D(u,0,-3,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(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(9),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(45))),KRANC_GFOFFSET3D(u,0,-3,0)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder63(u) (kmul(p1o60dz,kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(9),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(45))),KRANC_GFOFFSET3D(u,0,0,-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(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(9),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(45))),KRANC_GFOFFSET3D(u,0,0,-3)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder81(u) (kmul(p1o840dx,kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,-4,0,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(168),kmul(KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,-4,0,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(168),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(672)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder82(u) (kmul(p1o840dy,kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,-4,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(168),kmul(KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,-4,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(168),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(672)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder83(u) (kmul(p1o840dz,kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,0,-4),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(168),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,0,-4),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(168),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(672)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder211(u) (kmul(p1odx2,kadd(KRANC_GFOFFSET3D(u,-1,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,1,0,0))))) +#else +# 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(KRANC_GFOFFSET3D(u,-1,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,1,0,0)))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder222(u) (kmul(p1ody2,kadd(KRANC_GFOFFSET3D(u,0,-1,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,-1,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,0,1,0)))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder233(u) (kmul(p1odz2,kadd(KRANC_GFOFFSET3D(u,0,0,-1),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,-1),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,0,0,1)))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder411(u) (kmul(pm1o12dx2,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder422(u) (kmul(pm1o12dy2,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder433(u) (kmul(pm1o12dz2,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder611(u) (kmul(p1o180dx2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(270)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder622(u) (kmul(p1o180dy2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(270)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder633(u) (kmul(p1o180dz2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(270)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder811(u) (kmul(p1o5040dx2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(8064))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder822(u) (kmul(p1o5040dy2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(8064))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder833(u) (kmul(p1o5040dz2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(8064))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder212(u) (kmul(p1o4dxdy,kadd(KRANC_GFOFFSET3D(u,-1,-1,0),ksub(KRANC_GFOFFSET3D(u,1,1,0),kadd(KRANC_GFOFFSET3D(u,1,-1,0),KRANC_GFOFFSET3D(u,-1,1,0)))))) +#else +# 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(KRANC_GFOFFSET3D(u,-1,-1,0),ksub(KRANC_GFOFFSET3D(u,1,1,0),kadd(KRANC_GFOFFSET3D(u,1,-1,0),KRANC_GFOFFSET3D(u,-1,1,0))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder213(u) (kmul(p1o4dxdz,kadd(KRANC_GFOFFSET3D(u,-1,0,-1),ksub(KRANC_GFOFFSET3D(u,1,0,1),kadd(KRANC_GFOFFSET3D(u,1,0,-1),KRANC_GFOFFSET3D(u,-1,0,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(KRANC_GFOFFSET3D(u,-1,0,-1),ksub(KRANC_GFOFFSET3D(u,1,0,1),kadd(KRANC_GFOFFSET3D(u,1,0,-1),KRANC_GFOFFSET3D(u,-1,0,1))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder221(u) (kmul(p1o4dxdy,kadd(KRANC_GFOFFSET3D(u,-1,-1,0),ksub(KRANC_GFOFFSET3D(u,1,1,0),kadd(KRANC_GFOFFSET3D(u,1,-1,0),KRANC_GFOFFSET3D(u,-1,1,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(KRANC_GFOFFSET3D(u,-1,-1,0),ksub(KRANC_GFOFFSET3D(u,1,1,0),kadd(KRANC_GFOFFSET3D(u,1,-1,0),KRANC_GFOFFSET3D(u,-1,1,0))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder223(u) (kmul(p1o4dydz,kadd(KRANC_GFOFFSET3D(u,0,-1,-1),ksub(KRANC_GFOFFSET3D(u,0,1,1),kadd(KRANC_GFOFFSET3D(u,0,1,-1),KRANC_GFOFFSET3D(u,0,-1,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(KRANC_GFOFFSET3D(u,0,-1,-1),ksub(KRANC_GFOFFSET3D(u,0,1,1),kadd(KRANC_GFOFFSET3D(u,0,1,-1),KRANC_GFOFFSET3D(u,0,-1,1))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder231(u) (kmul(p1o4dxdz,kadd(KRANC_GFOFFSET3D(u,-1,0,-1),ksub(KRANC_GFOFFSET3D(u,1,0,1),kadd(KRANC_GFOFFSET3D(u,1,0,-1),KRANC_GFOFFSET3D(u,-1,0,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(KRANC_GFOFFSET3D(u,-1,0,-1),ksub(KRANC_GFOFFSET3D(u,1,0,1),kadd(KRANC_GFOFFSET3D(u,1,0,-1),KRANC_GFOFFSET3D(u,-1,0,1))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder232(u) (kmul(p1o4dydz,kadd(KRANC_GFOFFSET3D(u,0,-1,-1),ksub(KRANC_GFOFFSET3D(u,0,1,1),kadd(KRANC_GFOFFSET3D(u,0,1,-1),KRANC_GFOFFSET3D(u,0,-1,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(KRANC_GFOFFSET3D(u,0,-1,-1),ksub(KRANC_GFOFFSET3D(u,0,1,1),kadd(KRANC_GFOFFSET3D(u,0,1,-1),KRANC_GFOFFSET3D(u,0,-1,1))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder412(u) (kmul(p1o144dxdy,kadd(KRANC_GFOFFSET3D(u,-2,-2,0),kadd(KRANC_GFOFFSET3D(u,2,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(64))),KRANC_GFOFFSET3D(u,2,-2,0)),KRANC_GFOFFSET3D(u,-2,2,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(KRANC_GFOFFSET3D(u,-2,-2,0),kadd(KRANC_GFOFFSET3D(u,2,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(64))),KRANC_GFOFFSET3D(u,2,-2,0)),KRANC_GFOFFSET3D(u,-2,2,0))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder413(u) (kmul(p1o144dxdz,kadd(KRANC_GFOFFSET3D(u,-2,0,-2),kadd(KRANC_GFOFFSET3D(u,2,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(64))),KRANC_GFOFFSET3D(u,2,0,-2)),KRANC_GFOFFSET3D(u,-2,0,2)))))))) +#else +# 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(KRANC_GFOFFSET3D(u,-2,0,-2),kadd(KRANC_GFOFFSET3D(u,2,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(64))),KRANC_GFOFFSET3D(u,2,0,-2)),KRANC_GFOFFSET3D(u,-2,0,2))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder421(u) (kmul(p1o144dxdy,kadd(KRANC_GFOFFSET3D(u,-2,-2,0),kadd(KRANC_GFOFFSET3D(u,2,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(64))),KRANC_GFOFFSET3D(u,2,-2,0)),KRANC_GFOFFSET3D(u,-2,2,0)))))))) +#else +# 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(KRANC_GFOFFSET3D(u,-2,-2,0),kadd(KRANC_GFOFFSET3D(u,2,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(64))),KRANC_GFOFFSET3D(u,2,-2,0)),KRANC_GFOFFSET3D(u,-2,2,0))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder423(u) (kmul(p1o144dydz,kadd(KRANC_GFOFFSET3D(u,0,-2,-2),kadd(KRANC_GFOFFSET3D(u,0,2,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(64))),KRANC_GFOFFSET3D(u,0,2,-2)),KRANC_GFOFFSET3D(u,0,-2,2)))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,-2,-2),kadd(KRANC_GFOFFSET3D(u,0,2,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(64))),KRANC_GFOFFSET3D(u,0,2,-2)),KRANC_GFOFFSET3D(u,0,-2,2))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder431(u) (kmul(p1o144dxdz,kadd(KRANC_GFOFFSET3D(u,-2,0,-2),kadd(KRANC_GFOFFSET3D(u,2,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(64))),KRANC_GFOFFSET3D(u,2,0,-2)),KRANC_GFOFFSET3D(u,-2,0,2)))))))) +#else +# 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(KRANC_GFOFFSET3D(u,-2,0,-2),kadd(KRANC_GFOFFSET3D(u,2,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(64))),KRANC_GFOFFSET3D(u,2,0,-2)),KRANC_GFOFFSET3D(u,-2,0,2))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder432(u) (kmul(p1o144dydz,kadd(KRANC_GFOFFSET3D(u,0,-2,-2),kadd(KRANC_GFOFFSET3D(u,0,2,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(64))),KRANC_GFOFFSET3D(u,0,2,-2)),KRANC_GFOFFSET3D(u,0,-2,2)))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,-2,-2),kadd(KRANC_GFOFFSET3D(u,0,2,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(64))),KRANC_GFOFFSET3D(u,0,2,-2)),KRANC_GFOFFSET3D(u,0,-2,2))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder612(u) (kmul(p1o3600dxdy,kadd(KRANC_GFOFFSET3D(u,-3,-3,0),kadd(KRANC_GFOFFSET3D(u,3,3,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,-3,0)),KRANC_GFOFFSET3D(u,-3,3,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(KRANC_GFOFFSET3D(u,-3,-3,0),kadd(KRANC_GFOFFSET3D(u,3,3,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,-3,0)),KRANC_GFOFFSET3D(u,-3,3,0)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder613(u) (kmul(p1o3600dxdz,kadd(KRANC_GFOFFSET3D(u,-3,0,-3),kadd(KRANC_GFOFFSET3D(u,3,0,3),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,0,-3)),KRANC_GFOFFSET3D(u,-3,0,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(KRANC_GFOFFSET3D(u,-3,0,-3),kadd(KRANC_GFOFFSET3D(u,3,0,3),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,0,-3)),KRANC_GFOFFSET3D(u,-3,0,3)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder621(u) (kmul(p1o3600dxdy,kadd(KRANC_GFOFFSET3D(u,-3,-3,0),kadd(KRANC_GFOFFSET3D(u,3,3,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,-3,0)),KRANC_GFOFFSET3D(u,-3,3,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(KRANC_GFOFFSET3D(u,-3,-3,0),kadd(KRANC_GFOFFSET3D(u,3,3,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,-3,0)),KRANC_GFOFFSET3D(u,-3,3,0)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder623(u) (kmul(p1o3600dydz,kadd(KRANC_GFOFFSET3D(u,0,-3,-3),kadd(KRANC_GFOFFSET3D(u,0,3,3),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,0,3,-3)),KRANC_GFOFFSET3D(u,0,-3,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(KRANC_GFOFFSET3D(u,0,-3,-3),kadd(KRANC_GFOFFSET3D(u,0,3,3),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,0,3,-3)),KRANC_GFOFFSET3D(u,0,-3,3)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder631(u) (kmul(p1o3600dxdz,kadd(KRANC_GFOFFSET3D(u,-3,0,-3),kadd(KRANC_GFOFFSET3D(u,3,0,3),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,0,-3)),KRANC_GFOFFSET3D(u,-3,0,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(KRANC_GFOFFSET3D(u,-3,0,-3),kadd(KRANC_GFOFFSET3D(u,3,0,3),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,0,-3)),KRANC_GFOFFSET3D(u,-3,0,3)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder632(u) (kmul(p1o3600dydz,kadd(KRANC_GFOFFSET3D(u,0,-3,-3),kadd(KRANC_GFOFFSET3D(u,0,3,3),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,0,3,-3)),KRANC_GFOFFSET3D(u,0,-3,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(KRANC_GFOFFSET3D(u,0,-3,-3),kadd(KRANC_GFOFFSET3D(u,0,3,3),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,0,3,-3)),KRANC_GFOFFSET3D(u,0,-3,3)))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder812(u) (kmul(p1o705600dxdy,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-4,0),kadd(KRANC_GFOFFSET3D(u,1,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-1,0),KRANC_GFOFFSET3D(u,4,1,0)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,3,0),KRANC_GFOFFSET3D(u,3,-3,0)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,4,0),kadd(KRANC_GFOFFSET3D(u,2,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,2,0),KRANC_GFOFFSET3D(u,4,-2,0)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-4,0),kadd(KRANC_GFOFFSET3D(u,3,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-3,0),KRANC_GFOFFSET3D(u,4,3,0)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,4,0),KRANC_GFOFFSET3D(u,4,-4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,-4,0),KRANC_GFOFFSET3D(u,4,4,0)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,4,0),kadd(KRANC_GFOFFSET3D(u,3,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,3,0),KRANC_GFOFFSET3D(u,4,-3,0)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-4,0),kadd(KRANC_GFOFFSET3D(u,2,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-2,0),KRANC_GFOFFSET3D(u,4,2,0)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-3,0),KRANC_GFOFFSET3D(u,3,3,0)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,4,0),kadd(KRANC_GFOFFSET3D(u,1,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,1,0),KRANC_GFOFFSET3D(u,4,-1,0)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,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(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-4,0),kadd(KRANC_GFOFFSET3D(u,1,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-1,0),KRANC_GFOFFSET3D(u,4,1,0)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,3,0),KRANC_GFOFFSET3D(u,3,-3,0)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,4,0),kadd(KRANC_GFOFFSET3D(u,2,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,2,0),KRANC_GFOFFSET3D(u,4,-2,0)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-4,0),kadd(KRANC_GFOFFSET3D(u,3,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-3,0),KRANC_GFOFFSET3D(u,4,3,0)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,4,0),KRANC_GFOFFSET3D(u,4,-4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,-4,0),KRANC_GFOFFSET3D(u,4,4,0)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,4,0),kadd(KRANC_GFOFFSET3D(u,3,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,3,0),KRANC_GFOFFSET3D(u,4,-3,0)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-4,0),kadd(KRANC_GFOFFSET3D(u,2,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-2,0),KRANC_GFOFFSET3D(u,4,2,0)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-3,0),KRANC_GFOFFSET3D(u,3,3,0)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,4,0),kadd(KRANC_GFOFFSET3D(u,1,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,1,0),KRANC_GFOFFSET3D(u,4,-1,0)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder813(u) (kmul(p1o705600dxdz,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-4),kadd(KRANC_GFOFFSET3D(u,1,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-1),KRANC_GFOFFSET3D(u,4,0,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,3),KRANC_GFOFFSET3D(u,3,0,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,4),kadd(KRANC_GFOFFSET3D(u,2,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,2),KRANC_GFOFFSET3D(u,4,0,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-4),kadd(KRANC_GFOFFSET3D(u,3,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-3),KRANC_GFOFFSET3D(u,4,0,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,4),KRANC_GFOFFSET3D(u,4,0,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,-4),KRANC_GFOFFSET3D(u,4,0,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,4),kadd(KRANC_GFOFFSET3D(u,3,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,3),KRANC_GFOFFSET3D(u,4,0,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-4),kadd(KRANC_GFOFFSET3D(u,2,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-2),KRANC_GFOFFSET3D(u,4,0,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-3),KRANC_GFOFFSET3D(u,3,0,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,4),kadd(KRANC_GFOFFSET3D(u,1,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,1),KRANC_GFOFFSET3D(u,4,0,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-4),kadd(KRANC_GFOFFSET3D(u,1,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-1),KRANC_GFOFFSET3D(u,4,0,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,3),KRANC_GFOFFSET3D(u,3,0,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,4),kadd(KRANC_GFOFFSET3D(u,2,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,2),KRANC_GFOFFSET3D(u,4,0,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-4),kadd(KRANC_GFOFFSET3D(u,3,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-3),KRANC_GFOFFSET3D(u,4,0,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,4),KRANC_GFOFFSET3D(u,4,0,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,-4),KRANC_GFOFFSET3D(u,4,0,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,4),kadd(KRANC_GFOFFSET3D(u,3,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,3),KRANC_GFOFFSET3D(u,4,0,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-4),kadd(KRANC_GFOFFSET3D(u,2,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-2),KRANC_GFOFFSET3D(u,4,0,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-3),KRANC_GFOFFSET3D(u,3,0,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,4),kadd(KRANC_GFOFFSET3D(u,1,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,1),KRANC_GFOFFSET3D(u,4,0,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder821(u) (kmul(p1o705600dxdy,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-4,0),kadd(KRANC_GFOFFSET3D(u,1,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-1,0),KRANC_GFOFFSET3D(u,4,1,0)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,3,0),KRANC_GFOFFSET3D(u,3,-3,0)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,4,0),kadd(KRANC_GFOFFSET3D(u,2,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,2,0),KRANC_GFOFFSET3D(u,4,-2,0)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-4,0),kadd(KRANC_GFOFFSET3D(u,3,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-3,0),KRANC_GFOFFSET3D(u,4,3,0)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,4,0),KRANC_GFOFFSET3D(u,4,-4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,-4,0),KRANC_GFOFFSET3D(u,4,4,0)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,4,0),kadd(KRANC_GFOFFSET3D(u,3,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,3,0),KRANC_GFOFFSET3D(u,4,-3,0)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-4,0),kadd(KRANC_GFOFFSET3D(u,2,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-2,0),KRANC_GFOFFSET3D(u,4,2,0)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-3,0),KRANC_GFOFFSET3D(u,3,3,0)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,4,0),kadd(KRANC_GFOFFSET3D(u,1,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,1,0),KRANC_GFOFFSET3D(u,4,-1,0)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,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(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-4,0),kadd(KRANC_GFOFFSET3D(u,1,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-1,0),KRANC_GFOFFSET3D(u,4,1,0)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,3,0),KRANC_GFOFFSET3D(u,3,-3,0)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,4,0),kadd(KRANC_GFOFFSET3D(u,2,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,2,0),KRANC_GFOFFSET3D(u,4,-2,0)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-4,0),kadd(KRANC_GFOFFSET3D(u,3,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-3,0),KRANC_GFOFFSET3D(u,4,3,0)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,4,0),KRANC_GFOFFSET3D(u,4,-4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,-4,0),KRANC_GFOFFSET3D(u,4,4,0)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,4,0),kadd(KRANC_GFOFFSET3D(u,3,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,3,0),KRANC_GFOFFSET3D(u,4,-3,0)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-4,0),kadd(KRANC_GFOFFSET3D(u,2,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-2,0),KRANC_GFOFFSET3D(u,4,2,0)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-3,0),KRANC_GFOFFSET3D(u,3,3,0)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,4,0),kadd(KRANC_GFOFFSET3D(u,1,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,1,0),KRANC_GFOFFSET3D(u,4,-1,0)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder823(u) (kmul(p1o705600dydz,kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-4),kadd(KRANC_GFOFFSET3D(u,0,1,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-1),KRANC_GFOFFSET3D(u,0,4,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,3),KRANC_GFOFFSET3D(u,0,3,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,4),kadd(KRANC_GFOFFSET3D(u,0,2,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,2),KRANC_GFOFFSET3D(u,0,4,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-4),kadd(KRANC_GFOFFSET3D(u,0,3,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-3),KRANC_GFOFFSET3D(u,0,4,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,4),KRANC_GFOFFSET3D(u,0,4,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,-4),KRANC_GFOFFSET3D(u,0,4,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,4),kadd(KRANC_GFOFFSET3D(u,0,3,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,3),KRANC_GFOFFSET3D(u,0,4,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-4),kadd(KRANC_GFOFFSET3D(u,0,2,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-2),KRANC_GFOFFSET3D(u,0,4,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-3),KRANC_GFOFFSET3D(u,0,3,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,4),kadd(KRANC_GFOFFSET3D(u,0,1,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,1),KRANC_GFOFFSET3D(u,0,4,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-4),kadd(KRANC_GFOFFSET3D(u,0,1,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-1),KRANC_GFOFFSET3D(u,0,4,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,3),KRANC_GFOFFSET3D(u,0,3,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,4),kadd(KRANC_GFOFFSET3D(u,0,2,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,2),KRANC_GFOFFSET3D(u,0,4,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-4),kadd(KRANC_GFOFFSET3D(u,0,3,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-3),KRANC_GFOFFSET3D(u,0,4,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,4),KRANC_GFOFFSET3D(u,0,4,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,-4),KRANC_GFOFFSET3D(u,0,4,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,4),kadd(KRANC_GFOFFSET3D(u,0,3,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,3),KRANC_GFOFFSET3D(u,0,4,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-4),kadd(KRANC_GFOFFSET3D(u,0,2,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-2),KRANC_GFOFFSET3D(u,0,4,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-3),KRANC_GFOFFSET3D(u,0,3,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,4),kadd(KRANC_GFOFFSET3D(u,0,1,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,1),KRANC_GFOFFSET3D(u,0,4,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder831(u) (kmul(p1o705600dxdz,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-4),kadd(KRANC_GFOFFSET3D(u,1,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-1),KRANC_GFOFFSET3D(u,4,0,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,3),KRANC_GFOFFSET3D(u,3,0,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,4),kadd(KRANC_GFOFFSET3D(u,2,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,2),KRANC_GFOFFSET3D(u,4,0,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-4),kadd(KRANC_GFOFFSET3D(u,3,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-3),KRANC_GFOFFSET3D(u,4,0,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,4),KRANC_GFOFFSET3D(u,4,0,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,-4),KRANC_GFOFFSET3D(u,4,0,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,4),kadd(KRANC_GFOFFSET3D(u,3,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,3),KRANC_GFOFFSET3D(u,4,0,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-4),kadd(KRANC_GFOFFSET3D(u,2,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-2),KRANC_GFOFFSET3D(u,4,0,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-3),KRANC_GFOFFSET3D(u,3,0,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,4),kadd(KRANC_GFOFFSET3D(u,1,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,1),KRANC_GFOFFSET3D(u,4,0,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-4),kadd(KRANC_GFOFFSET3D(u,1,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-1),KRANC_GFOFFSET3D(u,4,0,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,3),KRANC_GFOFFSET3D(u,3,0,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,4),kadd(KRANC_GFOFFSET3D(u,2,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,2),KRANC_GFOFFSET3D(u,4,0,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-4),kadd(KRANC_GFOFFSET3D(u,3,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-3),KRANC_GFOFFSET3D(u,4,0,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,4),KRANC_GFOFFSET3D(u,4,0,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,-4),KRANC_GFOFFSET3D(u,4,0,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,4),kadd(KRANC_GFOFFSET3D(u,3,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,3),KRANC_GFOFFSET3D(u,4,0,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-4),kadd(KRANC_GFOFFSET3D(u,2,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-2),KRANC_GFOFFSET3D(u,4,0,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-3),KRANC_GFOFFSET3D(u,3,0,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,4),kadd(KRANC_GFOFFSET3D(u,1,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,1),KRANC_GFOFFSET3D(u,4,0,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDstandardNthfdOrder832(u) (kmul(p1o705600dydz,kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-4),kadd(KRANC_GFOFFSET3D(u,0,1,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-1),KRANC_GFOFFSET3D(u,0,4,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,3),KRANC_GFOFFSET3D(u,0,3,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,4),kadd(KRANC_GFOFFSET3D(u,0,2,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,2),KRANC_GFOFFSET3D(u,0,4,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-4),kadd(KRANC_GFOFFSET3D(u,0,3,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-3),KRANC_GFOFFSET3D(u,0,4,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,4),KRANC_GFOFFSET3D(u,0,4,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,-4),KRANC_GFOFFSET3D(u,0,4,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,4),kadd(KRANC_GFOFFSET3D(u,0,3,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,3),KRANC_GFOFFSET3D(u,0,4,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-4),kadd(KRANC_GFOFFSET3D(u,0,2,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-2),KRANC_GFOFFSET3D(u,0,4,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-3),KRANC_GFOFFSET3D(u,0,3,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,4),kadd(KRANC_GFOFFSET3D(u,0,1,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,1),KRANC_GFOFFSET3D(u,0,4,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-4),kadd(KRANC_GFOFFSET3D(u,0,1,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-1),KRANC_GFOFFSET3D(u,0,4,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,3),KRANC_GFOFFSET3D(u,0,3,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,4),kadd(KRANC_GFOFFSET3D(u,0,2,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,2),KRANC_GFOFFSET3D(u,0,4,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-4),kadd(KRANC_GFOFFSET3D(u,0,3,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-3),KRANC_GFOFFSET3D(u,0,4,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,4),KRANC_GFOFFSET3D(u,0,4,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,-4),KRANC_GFOFFSET3D(u,0,4,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,4),kadd(KRANC_GFOFFSET3D(u,0,3,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,3),KRANC_GFOFFSET3D(u,0,4,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-4),kadd(KRANC_GFOFFSET3D(u,0,2,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-2),KRANC_GFOFFSET3D(u,0,4,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-3),KRANC_GFOFFSET3D(u,0,3,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,4),kadd(KRANC_GFOFFSET3D(u,0,1,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,1),KRANC_GFOFFSET3D(u,0,4,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(451584)))))))))))))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder21(u) (kmul(p1o16dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6))))))) +#else +# 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(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder22(u) (kmul(p1o16dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder23(u) (kmul(p1o16dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder41(u) (kmul(p1o64dx,kadd(KRANC_GFOFFSET3D(u,-3,0,0),kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,-3,0,0),kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(15))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder42(u) (kmul(p1o64dy,kadd(KRANC_GFOFFSET3D(u,0,-3,0),kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(15)))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,-3,0),kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(15))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder43(u) (kmul(p1o64dz,kadd(KRANC_GFOFFSET3D(u,0,0,-3),kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(15)))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,0,-3),kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(15))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder61(u) (kmul(p1o256dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,-4,0,0),kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder62(u) (kmul(p1o256dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,-4,0),kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder63(u) (kmul(p1o256dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,-4),kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder81(u) (kmul(p1o1024dx,kadd(KRANC_GFOFFSET3D(u,-5,0,0),kadd(KRANC_GFOFFSET3D(u,5,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,-5,0,0),kadd(KRANC_GFOFFSET3D(u,5,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder82(u) (kmul(p1o1024dy,kadd(KRANC_GFOFFSET3D(u,0,-5,0),kadd(KRANC_GFOFFSET3D(u,0,5,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,-5,0),kadd(KRANC_GFOFFSET3D(u,0,5,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDdissipationNthfdOrder83(u) (kmul(p1o1024dz,kadd(KRANC_GFOFFSET3D(u,0,0,-5),kadd(KRANC_GFOFFSET3D(u,0,0,5),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,-5),kadd(KRANC_GFOFFSET3D(u,0,0,5),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder21(u) (kmul(pm1o2dx,kmul(dir1,kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(KRANC_GFOFFSET3D(u,1,0,0),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(3))))))) +#else +# 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 PDupwindNthfdOrder41(u) (kmul(p1o12dx,kmul(dir1,kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-10),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-6),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-3),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(18))))))))) +#else +# 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 PDupwindNthfdOrder61(u) (kmul(pm1o60dx,kmul(dir1,kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(KRANC_GFOFFSET3D(u,1,0,0),ToReal(-80),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(-8),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(-2),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(24),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(30),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(35))))))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-378),kmadd(KRANC_GFOFFSET3D(u,5,0,0),ToReal(3),kmul(ToReal(-5),kadd(KRANC_GFOFFSET3D(u,-3,0,0),kmadd(KRANC_GFOFFSET3D(u,1,0,0),ToReal(-210),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(-28),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(-12),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,2,0,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(KRANC_GFOFFSET3D(u,-2,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,1,0,0),ToReal(4),KRANC_GFOFFSET3D(u,2,0,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(KRANC_GFOFFSET3D(u,-2,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,1,0,0),ToReal(4),KRANC_GFOFFSET3D(u,2,0,0))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder41(u) (kmul(p1o24dx,kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(6),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(21))),KRANC_GFOFFSET3D(u,-3,0,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(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(6),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(21))),KRANC_GFOFFSET3D(u,-3,0,0)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder61(u) (kmul(p1o120dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(32),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(104)))),KRANC_GFOFFSET3D(u,4,0,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(KRANC_GFOFFSET3D(u,-4,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(32),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(104)))),KRANC_GFOFFSET3D(u,4,0,0))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder81(u) (kmul(p1o1680dx,kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,-5,0,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,5,0,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,-4,0,0),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(480),kmul(KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,-5,0,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,5,0,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,-4,0,0),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(480),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(1470)))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder21(u) (kmul(pm1o4dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder41(u) (kmul(p1o24dx,kadd(KRANC_GFOFFSET3D(u,-3,0,0),kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,-3,0,0),kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(15))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder61(u) (kmul(pm1o120dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,-4,0,0),kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder81(u) (kmul(p1o560dx,kadd(KRANC_GFOFFSET3D(u,-5,0,0),kadd(KRANC_GFOFFSET3D(u,5,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,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(KRANC_GFOFFSET3D(u,-5,0,0),kadd(KRANC_GFOFFSET3D(u,5,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDonesided1(u) (kmul(p1odx,kmul(dir1,ksub(KRANC_GFOFFSET3D(u,1,0,0),KRANC_GFOFFSET3D(u,0,0,0))))) +#else +# define PDonesided1(u) (PDonesided1_impl(u,p1odx,cdj,cdk)) +static CCTK_REAL_VEC PDonesided1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDonesided1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odx, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder22(u) (kmul(pm1o2dy,kmul(dir2,kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(KRANC_GFOFFSET3D(u,0,1,0),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-10),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-6),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-3),kmul(KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,4,0),kmadd(KRANC_GFOFFSET3D(u,0,1,0),ToReal(-80),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(-8),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(-2),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(24),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(30),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-378),kmadd(KRANC_GFOFFSET3D(u,0,5,0),ToReal(3),kmul(ToReal(-5),kadd(KRANC_GFOFFSET3D(u,0,-3,0),kmadd(KRANC_GFOFFSET3D(u,0,1,0),ToReal(-210),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(-28),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(-12),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,2,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(KRANC_GFOFFSET3D(u,0,-2,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,0,1,0),ToReal(4),KRANC_GFOFFSET3D(u,0,2,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(KRANC_GFOFFSET3D(u,0,-2,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,0,1,0),ToReal(4),KRANC_GFOFFSET3D(u,0,2,0))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder42(u) (kmul(p1o24dy,kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(6),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(21))),KRANC_GFOFFSET3D(u,0,-3,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(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(6),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(21))),KRANC_GFOFFSET3D(u,0,-3,0)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder62(u) (kmul(p1o120dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(32),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(104)))),KRANC_GFOFFSET3D(u,0,4,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(KRANC_GFOFFSET3D(u,0,-4,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(32),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(104)))),KRANC_GFOFFSET3D(u,0,4,0))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder82(u) (kmul(p1o1680dy,kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,0,-5,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,5,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,-4,0),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(480),kmul(KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,0,-5,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,5,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,-4,0),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(480),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(1470)))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder22(u) (kmul(pm1o4dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder42(u) (kmul(p1o24dy,kadd(KRANC_GFOFFSET3D(u,0,-3,0),kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,-3,0),kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(15))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder62(u) (kmul(pm1o120dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,-4,0),kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder82(u) (kmul(p1o560dy,kadd(KRANC_GFOFFSET3D(u,0,-5,0),kadd(KRANC_GFOFFSET3D(u,0,5,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,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(KRANC_GFOFFSET3D(u,0,-5,0),kadd(KRANC_GFOFFSET3D(u,0,5,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDonesided2(u) (kmul(p1ody,kmul(dir2,ksub(KRANC_GFOFFSET3D(u,0,1,0),KRANC_GFOFFSET3D(u,0,0,0))))) +#else +# define PDonesided2(u) (PDonesided2_impl(u,p1ody,cdj,cdk)) +static CCTK_REAL_VEC PDonesided2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1ody, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; +static CCTK_REAL_VEC PDonesided2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1ody, ptrdiff_t const cdj, ptrdiff_t const cdk) +{ assert(0); return ToReal(1e30); /* ERROR */ } +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthfdOrder23(u) (kmul(pm1o2dz,kmul(dir3,kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(KRANC_GFOFFSET3D(u,0,0,1),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(3))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-10),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-6),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-3),kmul(KRANC_GFOFFSET3D(u,0,0,1),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 PDupwindNthfdOrder63(u) (kmul(pm1o60dz,kmul(dir3,kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(KRANC_GFOFFSET3D(u,0,0,1),ToReal(-80),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(-8),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(24),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(30),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(35))))))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-378),kmadd(KRANC_GFOFFSET3D(u,0,0,5),ToReal(3),kmul(ToReal(-5),kadd(KRANC_GFOFFSET3D(u,0,0,-3),kmadd(KRANC_GFOFFSET3D(u,0,0,1),ToReal(-210),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(-28),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(-12),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,2)),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(KRANC_GFOFFSET3D(u,0,0,-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,0,0,1),ToReal(4),KRANC_GFOFFSET3D(u,0,0,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(p1o4dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,0,0,1),ToReal(4),KRANC_GFOFFSET3D(u,0,0,2))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder43(u) (kmul(p1o24dz,kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(6),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(21))),KRANC_GFOFFSET3D(u,0,0,-3))))))) +#else +# 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(p1o24dz,kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(6),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(21))),KRANC_GFOFFSET3D(u,0,0,-3)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder63(u) (kmul(p1o120dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(32),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(104)))),KRANC_GFOFFSET3D(u,0,0,4)))))))) +#else +# 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(p1o120dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(32),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(104)))),KRANC_GFOFFSET3D(u,0,0,4))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthAntifdOrder83(u) (kmul(p1o1680dz,kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,0,0,-5),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,0,5),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,0,-4),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(480),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(1470))))))))))))) +#else +# 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(p1o1680dz,kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,0,0,-5),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,0,5),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,0,-4),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(480),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(1470)))))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder23(u) (kmul(pm1o4dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6))))))) +#else +# 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(pm1o4dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder43(u) (kmul(p1o24dz,kadd(KRANC_GFOFFSET3D(u,0,0,-3),kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(15)))))))) +#else +# 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(KRANC_GFOFFSET3D(u,0,0,-3),kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(15))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder63(u) (kmul(pm1o120dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,-4),kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDupwindNthSymmfdOrder83(u) (kmul(p1o560dz,kadd(KRANC_GFOFFSET3D(u,0,0,-5),kadd(KRANC_GFOFFSET3D(u,0,0,5),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,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(KRANC_GFOFFSET3D(u,0,0,-5),kadd(KRANC_GFOFFSET3D(u,0,0,5),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(210))))))))); +} +#endif + +#ifndef KRANC_DIFF_FUNCTIONS +# define PDonesided3(u) (kmul(p1odz,kmul(dir3,ksub(KRANC_GFOFFSET3D(u,0,0,1),KRANC_GFOFFSET3D(u,0,0,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_CCZ4/src/ML_CCZ4_Advect.cc b/ML_CCZ4/src/ML_CCZ4_Advect.cc new file mode 100644 index 0000000..e10a3b5 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_Advect.cc @@ -0,0 +1,2232 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_Advect_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_curvrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_curvrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtlapserhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtlapserhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtshiftrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtshiftrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Gammarhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Gammarhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_lapserhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_lapserhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_log_confacrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_log_confacrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_metricrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_metricrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_shiftrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_shiftrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Thetarhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Thetarhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_trace_curvrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_trace_curvrhs."); + return; +} + +static void ML_CCZ4_Advect_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_Advect, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC AL = vec_load(A[index]); + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC alpharhsL = vec_load(alpharhs[index]); + CCTK_REAL_VEC ArhsL = vec_load(Arhs[index]); + CCTK_REAL_VEC At11L = vec_load(At11[index]); + CCTK_REAL_VEC At11rhsL = vec_load(At11rhs[index]); + CCTK_REAL_VEC At12L = vec_load(At12[index]); + CCTK_REAL_VEC At12rhsL = vec_load(At12rhs[index]); + CCTK_REAL_VEC At13L = vec_load(At13[index]); + CCTK_REAL_VEC At13rhsL = vec_load(At13rhs[index]); + CCTK_REAL_VEC At22L = vec_load(At22[index]); + CCTK_REAL_VEC At22rhsL = vec_load(At22rhs[index]); + CCTK_REAL_VEC At23L = vec_load(At23[index]); + CCTK_REAL_VEC At23rhsL = vec_load(At23rhs[index]); + CCTK_REAL_VEC At33L = vec_load(At33[index]); + CCTK_REAL_VEC At33rhsL = vec_load(At33rhs[index]); + CCTK_REAL_VEC B1L = vec_load(B1[index]); + CCTK_REAL_VEC B1rhsL = vec_load(B1rhs[index]); + CCTK_REAL_VEC B2L = vec_load(B2[index]); + CCTK_REAL_VEC B2rhsL = vec_load(B2rhs[index]); + CCTK_REAL_VEC B3L = vec_load(B3[index]); + CCTK_REAL_VEC B3rhsL = vec_load(B3rhs[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta1rhsL = vec_load(beta1rhs[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta2rhsL = vec_load(beta2rhs[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC beta3rhsL = vec_load(beta3rhs[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt11rhsL = vec_load(gt11rhs[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt12rhsL = vec_load(gt12rhs[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt13rhsL = vec_load(gt13rhs[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt22rhsL = vec_load(gt22rhs[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt23rhsL = vec_load(gt23rhs[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + CCTK_REAL_VEC gt33rhsL = vec_load(gt33rhs[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + CCTK_REAL_VEC phirhsL = vec_load(phirhs[index]); + CCTK_REAL_VEC ThetaL = vec_load(Theta[index]); + CCTK_REAL_VEC ThetarhsL = vec_load(Thetarhs[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC trKrhsL = vec_load(trKrhs[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt1rhsL = vec_load(Xt1rhs[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + CCTK_REAL_VEC Xt2rhsL = vec_load(Xt2rhs[index]); + CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + 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 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 PDupwindNthAnti1Theta; + CCTK_REAL_VEC PDupwindNthSymm1Theta; + CCTK_REAL_VEC PDupwindNthAnti2Theta; + CCTK_REAL_VEC PDupwindNthSymm2Theta; + CCTK_REAL_VEC PDupwindNthAnti3Theta; + CCTK_REAL_VEC PDupwindNthSymm3Theta; + 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]); + PDupwindNthAnti1Theta = PDupwindNthAntifdOrder21(&Theta[index]); + PDupwindNthSymm1Theta = PDupwindNthSymmfdOrder21(&Theta[index]); + PDupwindNthAnti2Theta = PDupwindNthAntifdOrder22(&Theta[index]); + PDupwindNthSymm2Theta = PDupwindNthSymmfdOrder22(&Theta[index]); + PDupwindNthAnti3Theta = PDupwindNthAntifdOrder23(&Theta[index]); + PDupwindNthSymm3Theta = PDupwindNthSymmfdOrder23(&Theta[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]); + PDupwindNthAnti1Theta = PDupwindNthAntifdOrder41(&Theta[index]); + PDupwindNthSymm1Theta = PDupwindNthSymmfdOrder41(&Theta[index]); + PDupwindNthAnti2Theta = PDupwindNthAntifdOrder42(&Theta[index]); + PDupwindNthSymm2Theta = PDupwindNthSymmfdOrder42(&Theta[index]); + PDupwindNthAnti3Theta = PDupwindNthAntifdOrder43(&Theta[index]); + PDupwindNthSymm3Theta = PDupwindNthSymmfdOrder43(&Theta[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]); + PDupwindNthAnti1Theta = PDupwindNthAntifdOrder61(&Theta[index]); + PDupwindNthSymm1Theta = PDupwindNthSymmfdOrder61(&Theta[index]); + PDupwindNthAnti2Theta = PDupwindNthAntifdOrder62(&Theta[index]); + PDupwindNthSymm2Theta = PDupwindNthSymmfdOrder62(&Theta[index]); + PDupwindNthAnti3Theta = PDupwindNthAntifdOrder63(&Theta[index]); + PDupwindNthSymm3Theta = PDupwindNthSymmfdOrder63(&Theta[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]); + PDupwindNthAnti1Theta = PDupwindNthAntifdOrder81(&Theta[index]); + PDupwindNthSymm1Theta = PDupwindNthSymmfdOrder81(&Theta[index]); + PDupwindNthAnti2Theta = PDupwindNthAntifdOrder82(&Theta[index]); + PDupwindNthSymm2Theta = PDupwindNthSymmfdOrder82(&Theta[index]); + PDupwindNthAnti3Theta = PDupwindNthAntifdOrder83(&Theta[index]); + PDupwindNthSymm3Theta = PDupwindNthSymmfdOrder83(&Theta[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 */ + ptrdiff_t dir1 = Sign(beta1L); + + ptrdiff_t dir2 = Sign(beta2L); + + ptrdiff_t dir3 = Sign(beta3L); + + 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 JacPDupwindNthAnti1Theta; + 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 JacPDupwindNthAnti2Theta; + 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 JacPDupwindNthAnti3Theta; + 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 JacPDupwindNthSymm1Theta; + 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 JacPDupwindNthSymm2Theta; + 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 JacPDupwindNthSymm3Theta; + 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))); + + JacPDupwindNthAnti1Theta = + kmadd(J11L,PDupwindNthAnti1Theta,kmadd(J21L,PDupwindNthAnti2Theta,kmul(J31L,PDupwindNthAnti3Theta))); + + 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))); + + JacPDupwindNthSymm1Theta = + kmadd(J11L,PDupwindNthSymm1Theta,kmadd(J21L,PDupwindNthSymm2Theta,kmul(J31L,PDupwindNthSymm3Theta))); + + 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))); + + JacPDupwindNthAnti2Theta = + kmadd(J12L,PDupwindNthAnti1Theta,kmadd(J22L,PDupwindNthAnti2Theta,kmul(J32L,PDupwindNthAnti3Theta))); + + 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))); + + JacPDupwindNthSymm2Theta = + kmadd(J12L,PDupwindNthSymm1Theta,kmadd(J22L,PDupwindNthSymm2Theta,kmul(J32L,PDupwindNthSymm3Theta))); + + 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))); + + JacPDupwindNthAnti3Theta = + kmadd(J13L,PDupwindNthAnti1Theta,kmadd(J23L,PDupwindNthAnti2Theta,kmul(J33L,PDupwindNthAnti3Theta))); + + 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))); + + JacPDupwindNthSymm3Theta = + kmadd(J13L,PDupwindNthSymm1Theta,kmadd(J23L,PDupwindNthSymm2Theta,kmul(J33L,PDupwindNthSymm3Theta))); + + 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; + + JacPDupwindNthAnti1Theta = PDupwindNthAnti1Theta; + + 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; + + JacPDupwindNthSymm1Theta = PDupwindNthSymm1Theta; + + 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; + + JacPDupwindNthAnti2Theta = PDupwindNthAnti2Theta; + + 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; + + JacPDupwindNthSymm2Theta = PDupwindNthSymm2Theta; + + 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; + + JacPDupwindNthAnti3Theta = PDupwindNthAnti3Theta; + + 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; + + JacPDupwindNthSymm3Theta = PDupwindNthSymm3Theta; + + JacPDupwindNthSymm3trK = PDupwindNthSymm3trK; + + JacPDupwindNthSymm3Xt1 = PDupwindNthSymm3Xt1; + + JacPDupwindNthSymm3Xt2 = PDupwindNthSymm3Xt2; + + JacPDupwindNthSymm3Xt3 = PDupwindNthSymm3Xt3; + } + + phirhsL = + kadd(phirhsL,kmadd(beta1L,JacPDupwindNthAnti1phi,kmadd(beta2L,JacPDupwindNthAnti2phi,kmadd(beta3L,JacPDupwindNthAnti3phi,kmadd(JacPDupwindNthSymm1phi,kfabs(beta1L),kmadd(JacPDupwindNthSymm2phi,kfabs(beta2L),kmul(JacPDupwindNthSymm3phi,kfabs(beta3L)))))))); + + gt11rhsL = + 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,JacPDupwindNthAnti1gt12,kmadd(beta2L,JacPDupwindNthAnti2gt12,kmadd(beta3L,JacPDupwindNthAnti3gt12,kmadd(JacPDupwindNthSymm1gt12,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt12,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt12,kfabs(beta3L)))))))); + + gt13rhsL = + 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,JacPDupwindNthAnti1gt22,kmadd(beta2L,JacPDupwindNthAnti2gt22,kmadd(beta3L,JacPDupwindNthAnti3gt22,kmadd(JacPDupwindNthSymm1gt22,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt22,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt22,kfabs(beta3L)))))))); + + gt23rhsL = + 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,JacPDupwindNthAnti1gt33,kmadd(beta2L,JacPDupwindNthAnti2gt33,kmadd(beta3L,JacPDupwindNthAnti3gt33,kmadd(JacPDupwindNthSymm1gt33,kfabs(beta1L),kmadd(JacPDupwindNthSymm2gt33,kfabs(beta2L),kmul(JacPDupwindNthSymm3gt33,kfabs(beta3L)))))))); + + Xt1rhsL = + kadd(Xt1rhsL,kmadd(beta1L,JacPDupwindNthAnti1Xt1,kmadd(beta2L,JacPDupwindNthAnti2Xt1,kmadd(beta3L,JacPDupwindNthAnti3Xt1,kmadd(JacPDupwindNthSymm1Xt1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt1,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt1,kfabs(beta3L)))))))); + + Xt2rhsL = + kadd(Xt2rhsL,kmadd(beta1L,JacPDupwindNthAnti1Xt2,kmadd(beta2L,JacPDupwindNthAnti2Xt2,kmadd(beta3L,JacPDupwindNthAnti3Xt2,kmadd(JacPDupwindNthSymm1Xt2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt2,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt2,kfabs(beta3L)))))))); + + Xt3rhsL = + kadd(Xt3rhsL,kmadd(beta1L,JacPDupwindNthAnti1Xt3,kmadd(beta2L,JacPDupwindNthAnti2Xt3,kmadd(beta3L,JacPDupwindNthAnti3Xt3,kmadd(JacPDupwindNthSymm1Xt3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt3,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt3,kfabs(beta3L)))))))); + + ThetarhsL = + kadd(ThetarhsL,kmadd(beta1L,JacPDupwindNthAnti1Theta,kmadd(beta2L,JacPDupwindNthAnti2Theta,kmadd(beta3L,JacPDupwindNthAnti3Theta,kmadd(JacPDupwindNthSymm1Theta,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Theta,kfabs(beta2L),kmul(JacPDupwindNthSymm3Theta,kfabs(beta3L)))))))); + + trKrhsL = + kadd(trKrhsL,kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L)))))))); + + At11rhsL = + 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,JacPDupwindNthAnti1At12,kmadd(beta2L,JacPDupwindNthAnti2At12,kmadd(beta3L,JacPDupwindNthAnti3At12,kmadd(JacPDupwindNthSymm1At12,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At12,kfabs(beta2L),kmul(JacPDupwindNthSymm3At12,kfabs(beta3L)))))))); + + At13rhsL = + 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,JacPDupwindNthAnti1At22,kmadd(beta2L,JacPDupwindNthAnti2At22,kmadd(beta3L,JacPDupwindNthAnti3At22,kmadd(JacPDupwindNthSymm1At22,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At22,kfabs(beta2L),kmul(JacPDupwindNthSymm3At22,kfabs(beta3L)))))))); + + At23rhsL = + 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,JacPDupwindNthAnti1At33,kmadd(beta2L,JacPDupwindNthAnti2At33,kmadd(beta3L,JacPDupwindNthAnti3At33,kmadd(JacPDupwindNthSymm1At33,kfabs(beta1L),kmadd(JacPDupwindNthSymm2At33,kfabs(beta2L),kmul(JacPDupwindNthSymm3At33,kfabs(beta3L)))))))); + + 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(ToReal(LapseACoeff),kmsub(kmadd(beta1L,JacPDupwindNthAnti1A,kmadd(beta2L,JacPDupwindNthAnti2A,kmadd(beta3L,JacPDupwindNthAnti3A,kmadd(JacPDupwindNthSymm1A,kfabs(beta1L),kmadd(JacPDupwindNthSymm2A,kfabs(beta2L),kmul(JacPDupwindNthSymm3A,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),kmul(kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L))))))),kadd(ToReal(-1),ToReal(LapseAdvectionCoeff)))),ArhsL); + + 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,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,JacPDupwindNthAnti1beta3,kmadd(beta2L,JacPDupwindNthAnti2beta3,kmadd(beta3L,JacPDupwindNthAnti3beta3,kmadd(JacPDupwindNthSymm1beta3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta3,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),beta3rhsL); + + B1rhsL = + kmadd(kmsub(kmadd(beta1L,JacPDupwindNthAnti1B1,kmadd(beta2L,JacPDupwindNthAnti2B1,kmadd(beta3L,JacPDupwindNthAnti3B1,kmadd(JacPDupwindNthSymm1B1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2B1,kfabs(beta2L),kmul(JacPDupwindNthSymm3B1,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,JacPDupwindNthAnti1Xt1,kmadd(beta2L,JacPDupwindNthAnti2Xt1,kmadd(beta3L,JacPDupwindNthAnti3Xt1,kmadd(JacPDupwindNthSymm1Xt1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt1,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt1,kfabs(beta3L))))))),kadd(ToReal(-1),ToReal(ShiftAdvectionCoeff)))),ToReal(ShiftBCoeff),B1rhsL); + + B2rhsL = + kmadd(kmsub(kmadd(beta1L,JacPDupwindNthAnti1B2,kmadd(beta2L,JacPDupwindNthAnti2B2,kmadd(beta3L,JacPDupwindNthAnti3B2,kmadd(JacPDupwindNthSymm1B2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2B2,kfabs(beta2L),kmul(JacPDupwindNthSymm3B2,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,JacPDupwindNthAnti1Xt2,kmadd(beta2L,JacPDupwindNthAnti2Xt2,kmadd(beta3L,JacPDupwindNthAnti3Xt2,kmadd(JacPDupwindNthSymm1Xt2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt2,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt2,kfabs(beta3L))))))),kadd(ToReal(-1),ToReal(ShiftAdvectionCoeff)))),ToReal(ShiftBCoeff),B2rhsL); + + B3rhsL = + kmadd(kmsub(kmadd(beta1L,JacPDupwindNthAnti1B3,kmadd(beta2L,JacPDupwindNthAnti2B3,kmadd(beta3L,JacPDupwindNthAnti3B3,kmadd(JacPDupwindNthSymm1B3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2B3,kfabs(beta2L),kmul(JacPDupwindNthSymm3B3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),kmul(kmadd(beta1L,JacPDupwindNthAnti1Xt3,kmadd(beta2L,JacPDupwindNthAnti2Xt3,kmadd(beta3L,JacPDupwindNthAnti3Xt3,kmadd(JacPDupwindNthSymm1Xt3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Xt3,kfabs(beta2L),kmul(JacPDupwindNthSymm3Xt3,kfabs(beta3L))))))),kadd(ToReal(-1),ToReal(ShiftAdvectionCoeff)))),ToReal(ShiftBCoeff),B3rhsL); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpharhs[index],alpharhsL); + vec_store_nta_partial(Arhs[index],ArhsL); + vec_store_nta_partial(At11rhs[index],At11rhsL); + vec_store_nta_partial(At12rhs[index],At12rhsL); + vec_store_nta_partial(At13rhs[index],At13rhsL); + vec_store_nta_partial(At22rhs[index],At22rhsL); + vec_store_nta_partial(At23rhs[index],At23rhsL); + vec_store_nta_partial(At33rhs[index],At33rhsL); + vec_store_nta_partial(B1rhs[index],B1rhsL); + vec_store_nta_partial(B2rhs[index],B2rhsL); + vec_store_nta_partial(B3rhs[index],B3rhsL); + vec_store_nta_partial(beta1rhs[index],beta1rhsL); + vec_store_nta_partial(beta2rhs[index],beta2rhsL); + vec_store_nta_partial(beta3rhs[index],beta3rhsL); + vec_store_nta_partial(gt11rhs[index],gt11rhsL); + vec_store_nta_partial(gt12rhs[index],gt12rhsL); + vec_store_nta_partial(gt13rhs[index],gt13rhsL); + vec_store_nta_partial(gt22rhs[index],gt22rhsL); + vec_store_nta_partial(gt23rhs[index],gt23rhsL); + vec_store_nta_partial(gt33rhs[index],gt33rhsL); + vec_store_nta_partial(phirhs[index],phirhsL); + vec_store_nta_partial(Thetarhs[index],ThetarhsL); + vec_store_nta_partial(trKrhs[index],trKrhsL); + vec_store_nta_partial(Xt1rhs[index],Xt1rhsL); + vec_store_nta_partial(Xt2rhs[index],Xt2rhsL); + vec_store_nta_partial(Xt3rhs[index],Xt3rhsL); + } + LC_ENDLOOP3VEC(ML_CCZ4_Advect); +} + +extern "C" void ML_CCZ4_Advect(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_Advect_Body"); + } + + if (cctk_iteration % ML_CCZ4_Advect_calc_every != ML_CCZ4_Advect_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_curvrhs", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtlapserhs", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_dtshiftrhs", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_Gammarhs", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_lapserhs", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_log_confacrhs", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_metricrhs", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_shiftrhs", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_Thetarhs", + "ML_CCZ4::ML_trace_curv", + "ML_CCZ4::ML_trace_curvrhs"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_Advect", 20, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_Advect", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_Advect", 3, 3, 3); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_Advect", 4, 4, 4); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_Advect", 5, 5, 5); + break; + } + + GenericFD_LoopOverInterior(cctkGH, ML_CCZ4_Advect_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_Advect_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_Dissipation.cc b/ML_CCZ4/src/ML_CCZ4_Dissipation.cc new file mode 100644 index 0000000..4e8770d --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_Dissipation.cc @@ -0,0 +1,1374 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_Dissipation_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_curvrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_curvrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtlapserhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtlapserhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtshiftrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtshiftrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Gammarhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Gammarhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_lapserhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_lapserhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_log_confacrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_log_confacrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_metricrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_metricrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_shiftrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_shiftrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Thetarhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Thetarhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_trace_curvrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_trace_curvrhs."); + return; +} + +static void ML_CCZ4_Dissipation_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_Dissipation, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC AL = vec_load(A[index]); + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC alpharhsL = vec_load(alpharhs[index]); + CCTK_REAL_VEC ArhsL = vec_load(Arhs[index]); + CCTK_REAL_VEC At11L = vec_load(At11[index]); + CCTK_REAL_VEC At11rhsL = vec_load(At11rhs[index]); + CCTK_REAL_VEC At12L = vec_load(At12[index]); + CCTK_REAL_VEC At12rhsL = vec_load(At12rhs[index]); + CCTK_REAL_VEC At13L = vec_load(At13[index]); + CCTK_REAL_VEC At13rhsL = vec_load(At13rhs[index]); + CCTK_REAL_VEC At22L = vec_load(At22[index]); + CCTK_REAL_VEC At22rhsL = vec_load(At22rhs[index]); + CCTK_REAL_VEC At23L = vec_load(At23[index]); + CCTK_REAL_VEC At23rhsL = vec_load(At23rhs[index]); + CCTK_REAL_VEC At33L = vec_load(At33[index]); + CCTK_REAL_VEC At33rhsL = vec_load(At33rhs[index]); + CCTK_REAL_VEC B1L = vec_load(B1[index]); + CCTK_REAL_VEC B1rhsL = vec_load(B1rhs[index]); + CCTK_REAL_VEC B2L = vec_load(B2[index]); + CCTK_REAL_VEC B2rhsL = vec_load(B2rhs[index]); + CCTK_REAL_VEC B3L = vec_load(B3[index]); + CCTK_REAL_VEC B3rhsL = vec_load(B3rhs[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta1rhsL = vec_load(beta1rhs[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta2rhsL = vec_load(beta2rhs[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC beta3rhsL = vec_load(beta3rhs[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt11rhsL = vec_load(gt11rhs[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt12rhsL = vec_load(gt12rhs[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt13rhsL = vec_load(gt13rhs[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt22rhsL = vec_load(gt22rhs[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt23rhsL = vec_load(gt23rhs[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + CCTK_REAL_VEC gt33rhsL = vec_load(gt33rhs[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + CCTK_REAL_VEC phirhsL = vec_load(phirhs[index]); + CCTK_REAL_VEC ThetaL = vec_load(Theta[index]); + CCTK_REAL_VEC ThetarhsL = vec_load(Thetarhs[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC trKrhsL = vec_load(trKrhs[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt1rhsL = vec_load(Xt1rhs[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + CCTK_REAL_VEC Xt2rhsL = vec_load(Xt2rhs[index]); + CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + 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 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 PDdissipationNth1Theta; + CCTK_REAL_VEC PDdissipationNth2Theta; + CCTK_REAL_VEC PDdissipationNth3Theta; + 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]); + PDdissipationNth1Theta = PDdissipationNthfdOrder21(&Theta[index]); + PDdissipationNth2Theta = PDdissipationNthfdOrder22(&Theta[index]); + PDdissipationNth3Theta = PDdissipationNthfdOrder23(&Theta[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]); + PDdissipationNth1Theta = PDdissipationNthfdOrder41(&Theta[index]); + PDdissipationNth2Theta = PDdissipationNthfdOrder42(&Theta[index]); + PDdissipationNth3Theta = PDdissipationNthfdOrder43(&Theta[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]); + PDdissipationNth1Theta = PDdissipationNthfdOrder61(&Theta[index]); + PDdissipationNth2Theta = PDdissipationNthfdOrder62(&Theta[index]); + PDdissipationNth3Theta = PDdissipationNthfdOrder63(&Theta[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]); + PDdissipationNth1Theta = PDdissipationNthfdOrder81(&Theta[index]); + PDdissipationNth2Theta = PDdissipationNthfdOrder82(&Theta[index]); + PDdissipationNth3Theta = PDdissipationNthfdOrder83(&Theta[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 JacPDdissipationNth1Theta; + 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 JacPDdissipationNth2Theta; + 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 JacPDdissipationNth3Theta; + 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))); + + JacPDdissipationNth1Theta = + kmadd(J11L,PDdissipationNth1Theta,kmadd(J21L,PDdissipationNth2Theta,kmul(J31L,PDdissipationNth3Theta))); + + 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))); + + JacPDdissipationNth2Theta = + kmadd(J12L,PDdissipationNth1Theta,kmadd(J22L,PDdissipationNth2Theta,kmul(J32L,PDdissipationNth3Theta))); + + 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))); + + JacPDdissipationNth3Theta = + kmadd(J13L,PDdissipationNth1Theta,kmadd(J23L,PDdissipationNth2Theta,kmul(J33L,PDdissipationNth3Theta))); + + 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; + + JacPDdissipationNth1Theta = PDdissipationNth1Theta; + + 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; + + JacPDdissipationNth2Theta = PDdissipationNth2Theta; + + 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; + + JacPDdissipationNth3Theta = PDdissipationNth3Theta; + + JacPDdissipationNth3trK = PDdissipationNth3trK; + + JacPDdissipationNth3Xt1 = PDdissipationNth3Xt1; + + JacPDdissipationNth3Xt2 = PDdissipationNth3Xt2; + + JacPDdissipationNth3Xt3 = PDdissipationNth3Xt3; + } + + CCTK_REAL_VEC epsdiss1 = ToReal(EpsDiss); + + CCTK_REAL_VEC epsdiss2 = ToReal(EpsDiss); + + CCTK_REAL_VEC epsdiss3 = ToReal(EpsDiss); + + phirhsL = + kadd(phirhsL,kmadd(epsdiss1,JacPDdissipationNth1phi,kmadd(epsdiss2,JacPDdissipationNth2phi,kmul(epsdiss3,JacPDdissipationNth3phi)))); + + gt11rhsL = + kadd(gt11rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt11,kmadd(epsdiss2,JacPDdissipationNth2gt11,kmul(epsdiss3,JacPDdissipationNth3gt11)))); + + gt12rhsL = + kadd(gt12rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt12,kmadd(epsdiss2,JacPDdissipationNth2gt12,kmul(epsdiss3,JacPDdissipationNth3gt12)))); + + gt13rhsL = + kadd(gt13rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt13,kmadd(epsdiss2,JacPDdissipationNth2gt13,kmul(epsdiss3,JacPDdissipationNth3gt13)))); + + gt22rhsL = + kadd(gt22rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt22,kmadd(epsdiss2,JacPDdissipationNth2gt22,kmul(epsdiss3,JacPDdissipationNth3gt22)))); + + gt23rhsL = + kadd(gt23rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt23,kmadd(epsdiss2,JacPDdissipationNth2gt23,kmul(epsdiss3,JacPDdissipationNth3gt23)))); + + gt33rhsL = + kadd(gt33rhsL,kmadd(epsdiss1,JacPDdissipationNth1gt33,kmadd(epsdiss2,JacPDdissipationNth2gt33,kmul(epsdiss3,JacPDdissipationNth3gt33)))); + + Xt1rhsL = + kadd(Xt1rhsL,kmadd(epsdiss1,JacPDdissipationNth1Xt1,kmadd(epsdiss2,JacPDdissipationNth2Xt1,kmul(epsdiss3,JacPDdissipationNth3Xt1)))); + + Xt2rhsL = + kadd(Xt2rhsL,kmadd(epsdiss1,JacPDdissipationNth1Xt2,kmadd(epsdiss2,JacPDdissipationNth2Xt2,kmul(epsdiss3,JacPDdissipationNth3Xt2)))); + + Xt3rhsL = + kadd(Xt3rhsL,kmadd(epsdiss1,JacPDdissipationNth1Xt3,kmadd(epsdiss2,JacPDdissipationNth2Xt3,kmul(epsdiss3,JacPDdissipationNth3Xt3)))); + + ThetarhsL = + kadd(ThetarhsL,kmadd(epsdiss1,JacPDdissipationNth1Theta,kmadd(epsdiss2,JacPDdissipationNth2Theta,kmul(epsdiss3,JacPDdissipationNth3Theta)))); + + trKrhsL = + kadd(trKrhsL,kmadd(epsdiss1,JacPDdissipationNth1trK,kmadd(epsdiss2,JacPDdissipationNth2trK,kmul(epsdiss3,JacPDdissipationNth3trK)))); + + At11rhsL = + kadd(At11rhsL,kmadd(epsdiss1,JacPDdissipationNth1At11,kmadd(epsdiss2,JacPDdissipationNth2At11,kmul(epsdiss3,JacPDdissipationNth3At11)))); + + At12rhsL = + kadd(At12rhsL,kmadd(epsdiss1,JacPDdissipationNth1At12,kmadd(epsdiss2,JacPDdissipationNth2At12,kmul(epsdiss3,JacPDdissipationNth3At12)))); + + At13rhsL = + kadd(At13rhsL,kmadd(epsdiss1,JacPDdissipationNth1At13,kmadd(epsdiss2,JacPDdissipationNth2At13,kmul(epsdiss3,JacPDdissipationNth3At13)))); + + At22rhsL = + kadd(At22rhsL,kmadd(epsdiss1,JacPDdissipationNth1At22,kmadd(epsdiss2,JacPDdissipationNth2At22,kmul(epsdiss3,JacPDdissipationNth3At22)))); + + At23rhsL = + kadd(At23rhsL,kmadd(epsdiss1,JacPDdissipationNth1At23,kmadd(epsdiss2,JacPDdissipationNth2At23,kmul(epsdiss3,JacPDdissipationNth3At23)))); + + At33rhsL = + kadd(At33rhsL,kmadd(epsdiss1,JacPDdissipationNth1At33,kmadd(epsdiss2,JacPDdissipationNth2At33,kmul(epsdiss3,JacPDdissipationNth3At33)))); + + alpharhsL = + kadd(alpharhsL,kmadd(epsdiss1,JacPDdissipationNth1alpha,kmadd(epsdiss2,JacPDdissipationNth2alpha,kmul(epsdiss3,JacPDdissipationNth3alpha)))); + + ArhsL = + kadd(ArhsL,kmadd(epsdiss1,JacPDdissipationNth1A,kmadd(epsdiss2,JacPDdissipationNth2A,kmul(epsdiss3,JacPDdissipationNth3A)))); + + beta1rhsL = + kadd(beta1rhsL,kmadd(epsdiss1,JacPDdissipationNth1beta1,kmadd(epsdiss2,JacPDdissipationNth2beta1,kmul(epsdiss3,JacPDdissipationNth3beta1)))); + + beta2rhsL = + kadd(beta2rhsL,kmadd(epsdiss1,JacPDdissipationNth1beta2,kmadd(epsdiss2,JacPDdissipationNth2beta2,kmul(epsdiss3,JacPDdissipationNth3beta2)))); + + beta3rhsL = + kadd(beta3rhsL,kmadd(epsdiss1,JacPDdissipationNth1beta3,kmadd(epsdiss2,JacPDdissipationNth2beta3,kmul(epsdiss3,JacPDdissipationNth3beta3)))); + + B1rhsL = + kadd(B1rhsL,kmadd(epsdiss1,JacPDdissipationNth1B1,kmadd(epsdiss2,JacPDdissipationNth2B1,kmul(epsdiss3,JacPDdissipationNth3B1)))); + + B2rhsL = + kadd(B2rhsL,kmadd(epsdiss1,JacPDdissipationNth1B2,kmadd(epsdiss2,JacPDdissipationNth2B2,kmul(epsdiss3,JacPDdissipationNth3B2)))); + + B3rhsL = + kadd(B3rhsL,kmadd(epsdiss1,JacPDdissipationNth1B3,kmadd(epsdiss2,JacPDdissipationNth2B3,kmul(epsdiss3,JacPDdissipationNth3B3)))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpharhs[index],alpharhsL); + vec_store_nta_partial(Arhs[index],ArhsL); + vec_store_nta_partial(At11rhs[index],At11rhsL); + vec_store_nta_partial(At12rhs[index],At12rhsL); + vec_store_nta_partial(At13rhs[index],At13rhsL); + vec_store_nta_partial(At22rhs[index],At22rhsL); + vec_store_nta_partial(At23rhs[index],At23rhsL); + vec_store_nta_partial(At33rhs[index],At33rhsL); + vec_store_nta_partial(B1rhs[index],B1rhsL); + vec_store_nta_partial(B2rhs[index],B2rhsL); + vec_store_nta_partial(B3rhs[index],B3rhsL); + vec_store_nta_partial(beta1rhs[index],beta1rhsL); + vec_store_nta_partial(beta2rhs[index],beta2rhsL); + vec_store_nta_partial(beta3rhs[index],beta3rhsL); + vec_store_nta_partial(gt11rhs[index],gt11rhsL); + vec_store_nta_partial(gt12rhs[index],gt12rhsL); + vec_store_nta_partial(gt13rhs[index],gt13rhsL); + vec_store_nta_partial(gt22rhs[index],gt22rhsL); + vec_store_nta_partial(gt23rhs[index],gt23rhsL); + vec_store_nta_partial(gt33rhs[index],gt33rhsL); + vec_store_nta_partial(phirhs[index],phirhsL); + vec_store_nta_partial(Thetarhs[index],ThetarhsL); + vec_store_nta_partial(trKrhs[index],trKrhsL); + vec_store_nta_partial(Xt1rhs[index],Xt1rhsL); + vec_store_nta_partial(Xt2rhs[index],Xt2rhsL); + vec_store_nta_partial(Xt3rhs[index],Xt3rhsL); + } + LC_ENDLOOP3VEC(ML_CCZ4_Dissipation); +} + +extern "C" void ML_CCZ4_Dissipation(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_Dissipation_Body"); + } + + if (cctk_iteration % ML_CCZ4_Dissipation_calc_every != ML_CCZ4_Dissipation_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_curvrhs", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtlapserhs", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_dtshiftrhs", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_Gammarhs", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_lapserhs", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_log_confacrhs", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_metricrhs", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_shiftrhs", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_Thetarhs", + "ML_CCZ4::ML_trace_curv", + "ML_CCZ4::ML_trace_curvrhs"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_Dissipation", 20, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_Dissipation", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_Dissipation", 3, 3, 3); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_Dissipation", 4, 4, 4); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_Dissipation", 5, 5, 5); + break; + } + + GenericFD_LoopOverInterior(cctkGH, ML_CCZ4_Dissipation_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_Dissipation_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_InitGamma.cc b/ML_CCZ4/src/ML_CCZ4_InitGamma.cc new file mode 100644 index 0000000..ebd3b86 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_InitGamma.cc @@ -0,0 +1,295 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +static void ML_CCZ4_InitGamma_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_InitGamma, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + + + + /* 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); + + CCTK_REAL_VEC Xt2L = ToReal(0); + + CCTK_REAL_VEC Xt3L = ToReal(0); + + CCTK_REAL_VEC AL = ToReal(0); + + CCTK_REAL_VEC B1L = ToReal(0); + + CCTK_REAL_VEC B2L = ToReal(0); + + CCTK_REAL_VEC B3L = ToReal(0); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(A[index],AL); + vec_store_nta_partial(B1[index],B1L); + vec_store_nta_partial(B2[index],B2L); + vec_store_nta_partial(B3[index],B3L); + vec_store_nta_partial(Xt1[index],Xt1L); + vec_store_nta_partial(Xt2[index],Xt2L); + vec_store_nta_partial(Xt3[index],Xt3L); + } + LC_ENDLOOP3VEC(ML_CCZ4_InitGamma); +} + +extern "C" void ML_CCZ4_InitGamma(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_InitGamma_Body"); + } + + if (cctk_iteration % ML_CCZ4_InitGamma_calc_every != ML_CCZ4_InitGamma_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_Gamma"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_InitGamma", 3, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, ML_CCZ4_InitGamma_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_InitGamma_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_InitRHS.cc b/ML_CCZ4/src/ML_CCZ4_InitRHS.cc new file mode 100644 index 0000000..31496c5 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_InitRHS.cc @@ -0,0 +1,359 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +static void ML_CCZ4_InitRHS_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_InitRHS, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + + + + /* 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); + + CCTK_REAL_VEC gt11rhsL = ToReal(0); + + CCTK_REAL_VEC gt12rhsL = ToReal(0); + + CCTK_REAL_VEC gt13rhsL = ToReal(0); + + CCTK_REAL_VEC gt22rhsL = ToReal(0); + + CCTK_REAL_VEC gt23rhsL = ToReal(0); + + CCTK_REAL_VEC gt33rhsL = ToReal(0); + + CCTK_REAL_VEC trKrhsL = ToReal(0); + + CCTK_REAL_VEC At11rhsL = ToReal(0); + + CCTK_REAL_VEC At12rhsL = ToReal(0); + + CCTK_REAL_VEC At13rhsL = ToReal(0); + + CCTK_REAL_VEC At22rhsL = ToReal(0); + + CCTK_REAL_VEC At23rhsL = ToReal(0); + + CCTK_REAL_VEC At33rhsL = ToReal(0); + + CCTK_REAL_VEC Xt1rhsL = ToReal(0); + + CCTK_REAL_VEC Xt2rhsL = ToReal(0); + + CCTK_REAL_VEC Xt3rhsL = ToReal(0); + + CCTK_REAL_VEC alpharhsL = ToReal(0); + + CCTK_REAL_VEC ArhsL = ToReal(0); + + CCTK_REAL_VEC beta1rhsL = ToReal(0); + + CCTK_REAL_VEC beta2rhsL = ToReal(0); + + CCTK_REAL_VEC beta3rhsL = ToReal(0); + + CCTK_REAL_VEC B1rhsL = ToReal(0); + + CCTK_REAL_VEC B2rhsL = ToReal(0); + + CCTK_REAL_VEC B3rhsL = ToReal(0); + + CCTK_REAL_VEC ThetarhsL = ToReal(0); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpharhs[index],alpharhsL); + vec_store_nta_partial(Arhs[index],ArhsL); + vec_store_nta_partial(At11rhs[index],At11rhsL); + vec_store_nta_partial(At12rhs[index],At12rhsL); + vec_store_nta_partial(At13rhs[index],At13rhsL); + vec_store_nta_partial(At22rhs[index],At22rhsL); + vec_store_nta_partial(At23rhs[index],At23rhsL); + vec_store_nta_partial(At33rhs[index],At33rhsL); + vec_store_nta_partial(B1rhs[index],B1rhsL); + vec_store_nta_partial(B2rhs[index],B2rhsL); + vec_store_nta_partial(B3rhs[index],B3rhsL); + vec_store_nta_partial(beta1rhs[index],beta1rhsL); + vec_store_nta_partial(beta2rhs[index],beta2rhsL); + vec_store_nta_partial(beta3rhs[index],beta3rhsL); + vec_store_nta_partial(gt11rhs[index],gt11rhsL); + vec_store_nta_partial(gt12rhs[index],gt12rhsL); + vec_store_nta_partial(gt13rhs[index],gt13rhsL); + vec_store_nta_partial(gt22rhs[index],gt22rhsL); + vec_store_nta_partial(gt23rhs[index],gt23rhsL); + vec_store_nta_partial(gt33rhs[index],gt33rhsL); + vec_store_nta_partial(phirhs[index],phirhsL); + vec_store_nta_partial(Thetarhs[index],ThetarhsL); + vec_store_nta_partial(trKrhs[index],trKrhsL); + vec_store_nta_partial(Xt1rhs[index],Xt1rhsL); + vec_store_nta_partial(Xt2rhs[index],Xt2rhsL); + vec_store_nta_partial(Xt3rhs[index],Xt3rhsL); + } + LC_ENDLOOP3VEC(ML_CCZ4_InitRHS); +} + +extern "C" void ML_CCZ4_InitRHS(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_InitRHS_Body"); + } + + if (cctk_iteration % ML_CCZ4_InitRHS_calc_every != ML_CCZ4_InitRHS_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curvrhs", + "ML_CCZ4::ML_dtlapserhs", + "ML_CCZ4::ML_dtshiftrhs", + "ML_CCZ4::ML_Gammarhs", + "ML_CCZ4::ML_lapserhs", + "ML_CCZ4::ML_log_confacrhs", + "ML_CCZ4::ML_metricrhs", + "ML_CCZ4::ML_shiftrhs", + "ML_CCZ4::ML_Thetarhs", + "ML_CCZ4::ML_trace_curvrhs"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_InitRHS", 10, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, ML_CCZ4_InitRHS_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_InitRHS_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_Minkowski.cc b/ML_CCZ4/src/ML_CCZ4_Minkowski.cc new file mode 100644 index 0000000..77ae232 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_Minkowski.cc @@ -0,0 +1,359 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +static void ML_CCZ4_Minkowski_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_Minkowski, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + + + + /* 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 == 1,ToReal(1),ToReal(0)); + + CCTK_REAL_VEC gt11L = ToReal(1); + + CCTK_REAL_VEC gt12L = ToReal(0); + + CCTK_REAL_VEC gt13L = ToReal(0); + + CCTK_REAL_VEC gt22L = ToReal(1); + + CCTK_REAL_VEC gt23L = ToReal(0); + + CCTK_REAL_VEC gt33L = ToReal(1); + + CCTK_REAL_VEC trKL = ToReal(0); + + CCTK_REAL_VEC At11L = ToReal(0); + + CCTK_REAL_VEC At12L = ToReal(0); + + CCTK_REAL_VEC At13L = ToReal(0); + + CCTK_REAL_VEC At22L = ToReal(0); + + CCTK_REAL_VEC At23L = ToReal(0); + + CCTK_REAL_VEC At33L = ToReal(0); + + CCTK_REAL_VEC Xt1L = ToReal(0); + + CCTK_REAL_VEC Xt2L = ToReal(0); + + CCTK_REAL_VEC Xt3L = ToReal(0); + + CCTK_REAL_VEC alphaL = ToReal(1); + + CCTK_REAL_VEC AL = ToReal(0); + + CCTK_REAL_VEC beta1L = ToReal(0); + + CCTK_REAL_VEC beta2L = ToReal(0); + + CCTK_REAL_VEC beta3L = ToReal(0); + + CCTK_REAL_VEC B1L = ToReal(0); + + CCTK_REAL_VEC B2L = ToReal(0); + + CCTK_REAL_VEC B3L = ToReal(0); + + CCTK_REAL_VEC ThetaL = ToReal(0); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(A[index],AL); + vec_store_nta_partial(alpha[index],alphaL); + vec_store_nta_partial(At11[index],At11L); + vec_store_nta_partial(At12[index],At12L); + vec_store_nta_partial(At13[index],At13L); + vec_store_nta_partial(At22[index],At22L); + vec_store_nta_partial(At23[index],At23L); + vec_store_nta_partial(At33[index],At33L); + vec_store_nta_partial(B1[index],B1L); + vec_store_nta_partial(B2[index],B2L); + vec_store_nta_partial(B3[index],B3L); + vec_store_nta_partial(beta1[index],beta1L); + vec_store_nta_partial(beta2[index],beta2L); + vec_store_nta_partial(beta3[index],beta3L); + vec_store_nta_partial(gt11[index],gt11L); + vec_store_nta_partial(gt12[index],gt12L); + vec_store_nta_partial(gt13[index],gt13L); + vec_store_nta_partial(gt22[index],gt22L); + vec_store_nta_partial(gt23[index],gt23L); + vec_store_nta_partial(gt33[index],gt33L); + vec_store_nta_partial(phi[index],phiL); + vec_store_nta_partial(Theta[index],ThetaL); + vec_store_nta_partial(trK[index],trKL); + vec_store_nta_partial(Xt1[index],Xt1L); + vec_store_nta_partial(Xt2[index],Xt2L); + vec_store_nta_partial(Xt3[index],Xt3L); + } + LC_ENDLOOP3VEC(ML_CCZ4_Minkowski); +} + +extern "C" void ML_CCZ4_Minkowski(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_Minkowski_Body"); + } + + if (cctk_iteration % ML_CCZ4_Minkowski_calc_every != ML_CCZ4_Minkowski_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_Minkowski", 10, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, ML_CCZ4_Minkowski_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_Minkowski_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_RHS1.cc b/ML_CCZ4/src/ML_CCZ4_RHS1.cc new file mode 100644 index 0000000..7a5d675 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_RHS1.cc @@ -0,0 +1,2382 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_RHS1_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtlapserhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtlapserhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtshiftrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtshiftrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Gammarhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Gammarhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_lapserhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_lapserhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_log_confacrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_log_confacrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_metricrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_metricrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_shiftrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_shiftrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Thetarhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Thetarhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_trace_curvrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_trace_curvrhs."); + return; +} + +static void ML_CCZ4_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_RHS1, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC AL = vec_load(A[index]); + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC At11L = vec_load(At11[index]); + CCTK_REAL_VEC At12L = vec_load(At12[index]); + CCTK_REAL_VEC At13L = vec_load(At13[index]); + CCTK_REAL_VEC At22L = vec_load(At22[index]); + CCTK_REAL_VEC At23L = vec_load(At23[index]); + CCTK_REAL_VEC At33L = vec_load(At33[index]); + CCTK_REAL_VEC B1L = vec_load(B1[index]); + CCTK_REAL_VEC B2L = vec_load(B2[index]); + CCTK_REAL_VEC B3L = vec_load(B3[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + CCTK_REAL_VEC rL = vec_load(r[index]); + CCTK_REAL_VEC ThetaL = vec_load(Theta[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + + CCTK_REAL_VEC eTttL, eTtxL, eTtyL, eTtzL, eTxxL, eTxyL, eTxzL, eTyyL, eTyzL, eTzzL; + + if (*stress_energy_state) + { + eTttL = vec_load(eTtt[index]); + eTtxL = vec_load(eTtx[index]); + eTtyL = vec_load(eTty[index]); + eTtzL = vec_load(eTtz[index]); + eTxxL = vec_load(eTxx[index]); + eTxyL = vec_load(eTxy[index]); + eTxzL = vec_load(eTxz[index]); + eTyyL = vec_load(eTyy[index]); + eTyzL = vec_load(eTyz[index]); + eTzzL = vec_load(eTzz[index]); + } + else + { + eTttL = ToReal(0.0); + eTtxL = ToReal(0.0); + eTtyL = ToReal(0.0); + eTtzL = ToReal(0.0); + eTxxL = ToReal(0.0); + eTxyL = ToReal(0.0); + eTxzL = ToReal(0.0); + eTyyL = ToReal(0.0); + eTyzL = ToReal(0.0); + 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 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 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 PDstandardNth1Theta; + CCTK_REAL_VEC PDstandardNth2Theta; + CCTK_REAL_VEC PDstandardNth3Theta; + CCTK_REAL_VEC PDstandardNth1trK; + CCTK_REAL_VEC PDstandardNth2trK; + CCTK_REAL_VEC PDstandardNth3trK; + 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]); + 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]); + 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]); + PDstandardNth1Theta = PDstandardNthfdOrder21(&Theta[index]); + PDstandardNth2Theta = PDstandardNthfdOrder22(&Theta[index]); + PDstandardNth3Theta = PDstandardNthfdOrder23(&Theta[index]); + PDstandardNth1trK = PDstandardNthfdOrder21(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder22(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder23(&trK[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]); + 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]); + 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]); + PDstandardNth1Theta = PDstandardNthfdOrder41(&Theta[index]); + PDstandardNth2Theta = PDstandardNthfdOrder42(&Theta[index]); + PDstandardNth3Theta = PDstandardNthfdOrder43(&Theta[index]); + PDstandardNth1trK = PDstandardNthfdOrder41(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder42(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder43(&trK[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]); + 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]); + 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]); + PDstandardNth1Theta = PDstandardNthfdOrder61(&Theta[index]); + PDstandardNth2Theta = PDstandardNthfdOrder62(&Theta[index]); + PDstandardNth3Theta = PDstandardNthfdOrder63(&Theta[index]); + PDstandardNth1trK = PDstandardNthfdOrder61(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder62(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder63(&trK[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]); + 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]); + 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]); + PDstandardNth1Theta = PDstandardNthfdOrder81(&Theta[index]); + PDstandardNth2Theta = PDstandardNthfdOrder82(&Theta[index]); + PDstandardNth3Theta = PDstandardNthfdOrder83(&Theta[index]); + PDstandardNth1trK = PDstandardNthfdOrder81(&trK[index]); + PDstandardNth2trK = PDstandardNthfdOrder82(&trK[index]); + PDstandardNth3trK = PDstandardNthfdOrder83(&trK[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 */ + ptrdiff_t dir1 = Sign(beta1L); + + ptrdiff_t dir2 = Sign(beta2L); + + ptrdiff_t dir3 = Sign(beta3L); + + CCTK_REAL_VEC JacPDstandardNth11alpha; + CCTK_REAL_VEC JacPDstandardNth11beta1; + CCTK_REAL_VEC JacPDstandardNth11beta2; + CCTK_REAL_VEC JacPDstandardNth11beta3; + 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 JacPDstandardNth12beta1; + CCTK_REAL_VEC JacPDstandardNth12beta2; + CCTK_REAL_VEC JacPDstandardNth12beta3; + 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 JacPDstandardNth13beta1; + CCTK_REAL_VEC JacPDstandardNth13beta2; + CCTK_REAL_VEC JacPDstandardNth13beta3; + 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 JacPDstandardNth1Theta; + CCTK_REAL_VEC JacPDstandardNth1trK; + CCTK_REAL_VEC JacPDstandardNth1Xt1; + CCTK_REAL_VEC JacPDstandardNth1Xt2; + CCTK_REAL_VEC JacPDstandardNth1Xt3; + CCTK_REAL_VEC JacPDstandardNth21alpha; + CCTK_REAL_VEC JacPDstandardNth21beta1; + CCTK_REAL_VEC JacPDstandardNth21beta2; + CCTK_REAL_VEC JacPDstandardNth21beta3; + 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 JacPDstandardNth22beta1; + CCTK_REAL_VEC JacPDstandardNth22beta2; + CCTK_REAL_VEC JacPDstandardNth22beta3; + 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 JacPDstandardNth23beta1; + CCTK_REAL_VEC JacPDstandardNth23beta2; + CCTK_REAL_VEC JacPDstandardNth23beta3; + 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 JacPDstandardNth2Theta; + CCTK_REAL_VEC JacPDstandardNth2trK; + CCTK_REAL_VEC JacPDstandardNth2Xt1; + CCTK_REAL_VEC JacPDstandardNth2Xt2; + CCTK_REAL_VEC JacPDstandardNth2Xt3; + CCTK_REAL_VEC JacPDstandardNth31alpha; + CCTK_REAL_VEC JacPDstandardNth31beta1; + CCTK_REAL_VEC JacPDstandardNth31beta2; + CCTK_REAL_VEC JacPDstandardNth31beta3; + 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 JacPDstandardNth32alpha; + CCTK_REAL_VEC JacPDstandardNth32beta1; + CCTK_REAL_VEC JacPDstandardNth32beta2; + CCTK_REAL_VEC JacPDstandardNth32beta3; + 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 JacPDstandardNth33beta1; + CCTK_REAL_VEC JacPDstandardNth33beta2; + CCTK_REAL_VEC JacPDstandardNth33beta3; + 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 JacPDstandardNth3Theta; + CCTK_REAL_VEC JacPDstandardNth3trK; + 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))); + + JacPDstandardNth1Theta = + kmadd(J11L,PDstandardNth1Theta,kmadd(J21L,PDstandardNth2Theta,kmul(J31L,PDstandardNth3Theta))); + + JacPDstandardNth1trK = + kmadd(J11L,PDstandardNth1trK,kmadd(J21L,PDstandardNth2trK,kmul(J31L,PDstandardNth3trK))); + + 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))); + + JacPDstandardNth2Theta = + kmadd(J12L,PDstandardNth1Theta,kmadd(J22L,PDstandardNth2Theta,kmul(J32L,PDstandardNth3Theta))); + + JacPDstandardNth2trK = + kmadd(J12L,PDstandardNth1trK,kmadd(J22L,PDstandardNth2trK,kmul(J32L,PDstandardNth3trK))); + + 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))); + + JacPDstandardNth3Theta = + kmadd(J13L,PDstandardNth1Theta,kmadd(J23L,PDstandardNth2Theta,kmul(J33L,PDstandardNth3Theta))); + + JacPDstandardNth3trK = + kmadd(J13L,PDstandardNth1trK,kmadd(J23L,PDstandardNth2trK,kmul(J33L,PDstandardNth3trK))); + + 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)))))))); + + 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)))))))); + + 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)))))))); + + 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)))))))); + + 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)))))))); + + 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)))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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))))))); + + 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; + + JacPDstandardNth1Theta = PDstandardNth1Theta; + + JacPDstandardNth1trK = PDstandardNth1trK; + + 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; + + JacPDstandardNth2Theta = PDstandardNth2Theta; + + JacPDstandardNth2trK = PDstandardNth2trK; + + 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; + + JacPDstandardNth3Theta = PDstandardNth3Theta; + + JacPDstandardNth3trK = PDstandardNth3trK; + + JacPDstandardNth3Xt1 = PDstandardNth3Xt1; + + JacPDstandardNth3Xt2 = PDstandardNth3Xt2; + + JacPDstandardNth3Xt3 = PDstandardNth3Xt3; + + JacPDstandardNth11alpha = PDstandardNth11alpha; + + JacPDstandardNth11beta1 = PDstandardNth11beta1; + + JacPDstandardNth11beta2 = PDstandardNth11beta2; + + JacPDstandardNth11beta3 = PDstandardNth11beta3; + + JacPDstandardNth11gt11 = PDstandardNth11gt11; + + JacPDstandardNth11gt12 = PDstandardNth11gt12; + + JacPDstandardNth11gt13 = PDstandardNth11gt13; + + JacPDstandardNth11gt22 = PDstandardNth11gt22; + + JacPDstandardNth11gt23 = PDstandardNth11gt23; + + JacPDstandardNth11gt33 = PDstandardNth11gt33; + + JacPDstandardNth11phi = PDstandardNth11phi; + + JacPDstandardNth22alpha = PDstandardNth22alpha; + + JacPDstandardNth22beta1 = PDstandardNth22beta1; + + JacPDstandardNth22beta2 = PDstandardNth22beta2; + + JacPDstandardNth22beta3 = PDstandardNth22beta3; + + JacPDstandardNth22gt11 = PDstandardNth22gt11; + + JacPDstandardNth22gt12 = PDstandardNth22gt12; + + JacPDstandardNth22gt13 = PDstandardNth22gt13; + + JacPDstandardNth22gt22 = PDstandardNth22gt22; + + JacPDstandardNth22gt23 = PDstandardNth22gt23; + + JacPDstandardNth22gt33 = PDstandardNth22gt33; + + JacPDstandardNth22phi = PDstandardNth22phi; + + JacPDstandardNth33alpha = PDstandardNth33alpha; + + JacPDstandardNth33beta1 = PDstandardNth33beta1; + + JacPDstandardNth33beta2 = PDstandardNth33beta2; + + JacPDstandardNth33beta3 = PDstandardNth33beta3; + + JacPDstandardNth33gt11 = PDstandardNth33gt11; + + JacPDstandardNth33gt12 = PDstandardNth33gt12; + + JacPDstandardNth33gt13 = PDstandardNth33gt13; + + JacPDstandardNth33gt22 = PDstandardNth33gt22; + + JacPDstandardNth33gt23 = PDstandardNth33gt23; + + JacPDstandardNth33gt33 = PDstandardNth33gt33; + + JacPDstandardNth33phi = PDstandardNth33phi; + + JacPDstandardNth12alpha = PDstandardNth12alpha; + + JacPDstandardNth12beta1 = PDstandardNth12beta1; + + JacPDstandardNth12beta2 = PDstandardNth12beta2; + + JacPDstandardNth12beta3 = PDstandardNth12beta3; + + JacPDstandardNth12gt11 = PDstandardNth12gt11; + + JacPDstandardNth12gt12 = PDstandardNth12gt12; + + JacPDstandardNth12gt13 = PDstandardNth12gt13; + + JacPDstandardNth12gt22 = PDstandardNth12gt22; + + JacPDstandardNth12gt23 = PDstandardNth12gt23; + + JacPDstandardNth12gt33 = PDstandardNth12gt33; + + JacPDstandardNth12phi = PDstandardNth12phi; + + JacPDstandardNth13alpha = PDstandardNth13alpha; + + JacPDstandardNth13beta1 = PDstandardNth13beta1; + + JacPDstandardNth13beta2 = PDstandardNth13beta2; + + JacPDstandardNth13beta3 = PDstandardNth13beta3; + + JacPDstandardNth13gt11 = PDstandardNth13gt11; + + JacPDstandardNth13gt12 = PDstandardNth13gt12; + + JacPDstandardNth13gt13 = PDstandardNth13gt13; + + JacPDstandardNth13gt22 = PDstandardNth13gt22; + + JacPDstandardNth13gt23 = PDstandardNth13gt23; + + JacPDstandardNth13gt33 = PDstandardNth13gt33; + + JacPDstandardNth13phi = PDstandardNth13phi; + + JacPDstandardNth21alpha = PDstandardNth12alpha; + + JacPDstandardNth21beta1 = PDstandardNth12beta1; + + JacPDstandardNth21beta2 = PDstandardNth12beta2; + + JacPDstandardNth21beta3 = PDstandardNth12beta3; + + JacPDstandardNth21gt11 = PDstandardNth12gt11; + + JacPDstandardNth21gt12 = PDstandardNth12gt12; + + JacPDstandardNth21gt13 = PDstandardNth12gt13; + + JacPDstandardNth21gt22 = PDstandardNth12gt22; + + JacPDstandardNth21gt23 = PDstandardNth12gt23; + + JacPDstandardNth21gt33 = PDstandardNth12gt33; + + JacPDstandardNth23alpha = PDstandardNth23alpha; + + JacPDstandardNth23beta1 = PDstandardNth23beta1; + + JacPDstandardNth23beta2 = PDstandardNth23beta2; + + JacPDstandardNth23beta3 = PDstandardNth23beta3; + + JacPDstandardNth23gt11 = PDstandardNth23gt11; + + JacPDstandardNth23gt12 = PDstandardNth23gt12; + + JacPDstandardNth23gt13 = PDstandardNth23gt13; + + JacPDstandardNth23gt22 = PDstandardNth23gt22; + + JacPDstandardNth23gt23 = PDstandardNth23gt23; + + JacPDstandardNth23gt33 = PDstandardNth23gt33; + + JacPDstandardNth23phi = PDstandardNth23phi; + + JacPDstandardNth31alpha = PDstandardNth13alpha; + + JacPDstandardNth31beta1 = PDstandardNth13beta1; + + JacPDstandardNth31beta2 = PDstandardNth13beta2; + + JacPDstandardNth31beta3 = PDstandardNth13beta3; + + JacPDstandardNth31gt11 = PDstandardNth13gt11; + + JacPDstandardNth31gt12 = PDstandardNth13gt12; + + JacPDstandardNth31gt13 = PDstandardNth13gt13; + + JacPDstandardNth31gt22 = PDstandardNth13gt22; + + JacPDstandardNth31gt23 = PDstandardNth13gt23; + + JacPDstandardNth31gt33 = PDstandardNth13gt33; + + JacPDstandardNth32alpha = PDstandardNth23alpha; + + JacPDstandardNth32beta1 = PDstandardNth23beta1; + + JacPDstandardNth32beta2 = PDstandardNth23beta2; + + JacPDstandardNth32beta3 = PDstandardNth23beta3; + + 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))); + + CCTK_REAL_VEC gtu12 = + kmul(INV(detgt),kmsub(gt13L,gt23L,kmul(gt12L,gt33L))); + + CCTK_REAL_VEC gtu13 = + kmul(INV(detgt),kmsub(gt12L,gt23L,kmul(gt13L,gt22L))); + + CCTK_REAL_VEC gtu22 = + kmul(INV(detgt),kmsub(gt11L,gt33L,SQR(gt13L))); + + CCTK_REAL_VEC gtu23 = + kmul(INV(detgt),kmsub(gt12L,gt13L,kmul(gt11L,gt23L))); + + CCTK_REAL_VEC gtu33 = + kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); + + CCTK_REAL_VEC Gtl111 = kmul(JacPDstandardNth1gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl112 = kmul(JacPDstandardNth2gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl113 = kmul(JacPDstandardNth3gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl122 = + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); + + CCTK_REAL_VEC Gtl123 = + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl133 = + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); + + CCTK_REAL_VEC Gtl211 = + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); + + CCTK_REAL_VEC Gtl212 = kmul(JacPDstandardNth1gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl213 = + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl222 = kmul(JacPDstandardNth2gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl223 = kmul(JacPDstandardNth3gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl233 = + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); + + CCTK_REAL_VEC Gtl311 = + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); + + CCTK_REAL_VEC Gtl312 = + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl313 = kmul(JacPDstandardNth1gt33,ToReal(0.5)); + + CCTK_REAL_VEC Gtl322 = + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); + + CCTK_REAL_VEC Gtl323 = kmul(JacPDstandardNth2gt33,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))); + + CCTK_REAL_VEC Gtlu112 = + kmadd(Gtl111,gtu12,kmadd(Gtl112,gtu22,kmul(Gtl113,gtu23))); + + CCTK_REAL_VEC Gtlu113 = + kmadd(Gtl111,gtu13,kmadd(Gtl112,gtu23,kmul(Gtl113,gtu33))); + + CCTK_REAL_VEC Gtlu121 = + kmadd(Gtl112,gtu11,kmadd(Gtl122,gtu12,kmul(Gtl123,gtu13))); + + CCTK_REAL_VEC Gtlu122 = + kmadd(Gtl112,gtu12,kmadd(Gtl122,gtu22,kmul(Gtl123,gtu23))); + + CCTK_REAL_VEC Gtlu123 = + kmadd(Gtl112,gtu13,kmadd(Gtl122,gtu23,kmul(Gtl123,gtu33))); + + CCTK_REAL_VEC Gtlu131 = + kmadd(Gtl113,gtu11,kmadd(Gtl123,gtu12,kmul(Gtl133,gtu13))); + + CCTK_REAL_VEC Gtlu132 = + kmadd(Gtl113,gtu12,kmadd(Gtl123,gtu22,kmul(Gtl133,gtu23))); + + CCTK_REAL_VEC Gtlu133 = + kmadd(Gtl113,gtu13,kmadd(Gtl123,gtu23,kmul(Gtl133,gtu33))); + + CCTK_REAL_VEC Gtlu211 = + kmadd(Gtl211,gtu11,kmadd(Gtl212,gtu12,kmul(Gtl213,gtu13))); + + CCTK_REAL_VEC Gtlu212 = + kmadd(Gtl211,gtu12,kmadd(Gtl212,gtu22,kmul(Gtl213,gtu23))); + + CCTK_REAL_VEC Gtlu213 = + kmadd(Gtl211,gtu13,kmadd(Gtl212,gtu23,kmul(Gtl213,gtu33))); + + CCTK_REAL_VEC Gtlu221 = + kmadd(Gtl212,gtu11,kmadd(Gtl222,gtu12,kmul(Gtl223,gtu13))); + + CCTK_REAL_VEC Gtlu222 = + kmadd(Gtl212,gtu12,kmadd(Gtl222,gtu22,kmul(Gtl223,gtu23))); + + CCTK_REAL_VEC Gtlu223 = + kmadd(Gtl212,gtu13,kmadd(Gtl222,gtu23,kmul(Gtl223,gtu33))); + + CCTK_REAL_VEC Gtlu231 = + kmadd(Gtl213,gtu11,kmadd(Gtl223,gtu12,kmul(Gtl233,gtu13))); + + CCTK_REAL_VEC Gtlu232 = + kmadd(Gtl213,gtu12,kmadd(Gtl223,gtu22,kmul(Gtl233,gtu23))); + + CCTK_REAL_VEC Gtlu233 = + kmadd(Gtl213,gtu13,kmadd(Gtl223,gtu23,kmul(Gtl233,gtu33))); + + CCTK_REAL_VEC Gtlu311 = + kmadd(Gtl311,gtu11,kmadd(Gtl312,gtu12,kmul(Gtl313,gtu13))); + + CCTK_REAL_VEC Gtlu312 = + kmadd(Gtl311,gtu12,kmadd(Gtl312,gtu22,kmul(Gtl313,gtu23))); + + CCTK_REAL_VEC Gtlu313 = + kmadd(Gtl311,gtu13,kmadd(Gtl312,gtu23,kmul(Gtl313,gtu33))); + + CCTK_REAL_VEC Gtlu321 = + kmadd(Gtl312,gtu11,kmadd(Gtl322,gtu12,kmul(Gtl323,gtu13))); + + CCTK_REAL_VEC Gtlu322 = + kmadd(Gtl312,gtu12,kmadd(Gtl322,gtu22,kmul(Gtl323,gtu23))); + + CCTK_REAL_VEC Gtlu323 = + kmadd(Gtl312,gtu13,kmadd(Gtl322,gtu23,kmul(Gtl323,gtu33))); + + CCTK_REAL_VEC Gtlu331 = + kmadd(Gtl313,gtu11,kmadd(Gtl323,gtu12,kmul(Gtl333,gtu13))); + + CCTK_REAL_VEC Gtlu332 = + kmadd(Gtl313,gtu12,kmadd(Gtl323,gtu22,kmul(Gtl333,gtu23))); + + CCTK_REAL_VEC Gtlu333 = + kmadd(Gtl313,gtu13,kmadd(Gtl323,gtu23,kmul(Gtl333,gtu33))); + + CCTK_REAL_VEC Gt111 = + kmadd(Gtl111,gtu11,kmadd(Gtl211,gtu12,kmul(Gtl311,gtu13))); + + CCTK_REAL_VEC Gt211 = + kmadd(Gtl111,gtu12,kmadd(Gtl211,gtu22,kmul(Gtl311,gtu23))); + + CCTK_REAL_VEC Gt311 = + kmadd(Gtl111,gtu13,kmadd(Gtl211,gtu23,kmul(Gtl311,gtu33))); + + CCTK_REAL_VEC Gt112 = + kmadd(Gtl112,gtu11,kmadd(Gtl212,gtu12,kmul(Gtl312,gtu13))); + + CCTK_REAL_VEC Gt212 = + kmadd(Gtl112,gtu12,kmadd(Gtl212,gtu22,kmul(Gtl312,gtu23))); + + CCTK_REAL_VEC Gt312 = + kmadd(Gtl112,gtu13,kmadd(Gtl212,gtu23,kmul(Gtl312,gtu33))); + + CCTK_REAL_VEC Gt113 = + kmadd(Gtl113,gtu11,kmadd(Gtl213,gtu12,kmul(Gtl313,gtu13))); + + CCTK_REAL_VEC Gt213 = + kmadd(Gtl113,gtu12,kmadd(Gtl213,gtu22,kmul(Gtl313,gtu23))); + + CCTK_REAL_VEC Gt313 = + kmadd(Gtl113,gtu13,kmadd(Gtl213,gtu23,kmul(Gtl313,gtu33))); + + CCTK_REAL_VEC Gt122 = + kmadd(Gtl122,gtu11,kmadd(Gtl222,gtu12,kmul(Gtl322,gtu13))); + + CCTK_REAL_VEC Gt222 = + kmadd(Gtl122,gtu12,kmadd(Gtl222,gtu22,kmul(Gtl322,gtu23))); + + CCTK_REAL_VEC Gt322 = + kmadd(Gtl122,gtu13,kmadd(Gtl222,gtu23,kmul(Gtl322,gtu33))); + + CCTK_REAL_VEC Gt123 = + kmadd(Gtl123,gtu11,kmadd(Gtl223,gtu12,kmul(Gtl323,gtu13))); + + CCTK_REAL_VEC Gt223 = + kmadd(Gtl123,gtu12,kmadd(Gtl223,gtu22,kmul(Gtl323,gtu23))); + + CCTK_REAL_VEC Gt323 = + kmadd(Gtl123,gtu13,kmadd(Gtl223,gtu23,kmul(Gtl323,gtu33))); + + CCTK_REAL_VEC Gt133 = + kmadd(Gtl133,gtu11,kmadd(Gtl233,gtu12,kmul(Gtl333,gtu13))); + + CCTK_REAL_VEC Gt233 = + kmadd(Gtl133,gtu12,kmadd(Gtl233,gtu22,kmul(Gtl333,gtu23))); + + CCTK_REAL_VEC Gt333 = + kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); + + CCTK_REAL_VEC Xtn1 = + kmadd(Gt111,gtu11,kmadd(Gt122,gtu22,kmadd(Gt133,gtu33,kmul(kmadd(Gt112,gtu12,kmadd(Gt113,gtu13,kmul(Gt123,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC Xtn2 = + kmadd(Gt211,gtu11,kmadd(Gt222,gtu22,kmadd(Gt233,gtu33,kmul(kmadd(Gt212,gtu12,kmadd(Gt213,gtu13,kmul(Gt223,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC Xtn3 = + kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + + CCTK_REAL_VEC Z1 = + kneg(kmul(kmadd(gu11,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu13,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu12,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Z2 = + kneg(kmul(kmadd(gu12,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu23,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu22,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Z3 = + kneg(kmul(kmadd(gu13,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu33,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu23,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Rt11 = + 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,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,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),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,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),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 == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + + CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); + + CCTK_REAL_VEC cdphi2 = kmul(fac1,JacPDstandardNth2phi); + + CCTK_REAL_VEC cdphi3 = kmul(fac1,JacPDstandardNth3phi); + + CCTK_REAL_VEC fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); + + CCTK_REAL_VEC cdphi211 = + kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); + + CCTK_REAL_VEC cdphi212 = + kmadd(fac2,kmul(JacPDstandardNth1phi,JacPDstandardNth2phi),kmul(fac1,ksub(JacPDstandardNth12phi,kmadd(Gt112,JacPDstandardNth1phi,kmadd(Gt312,JacPDstandardNth3phi,kmul(Gt212,JacPDstandardNth2phi)))))); + + CCTK_REAL_VEC cdphi213 = + 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(JacPDstandardNth2phi),kmul(fac1,kmadd(Gt122,JacPDstandardNth1phi,kmadd(Gt222,JacPDstandardNth2phi,kmsub(Gt322,JacPDstandardNth3phi,JacPDstandardNth22phi))))); + + CCTK_REAL_VEC cdphi223 = + kmsub(fac2,kmul(JacPDstandardNth2phi,JacPDstandardNth3phi),kmul(fac1,kmadd(Gt123,JacPDstandardNth1phi,kmadd(Gt223,JacPDstandardNth2phi,kmsub(Gt323,JacPDstandardNth3phi,JacPDstandardNth23phi))))); + + CCTK_REAL_VEC cdphi233 = + 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)))))))))); + + CCTK_REAL_VEC Rphi12 = + kmul(ToReal(-2),kadd(cdphi212,kmadd(gt12L,kmadd(cdphi211,gtu11,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu11,SQR(cdphi1))))),ToReal(2),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi2,kmul(cdphi3,kmul(gtu23,ToReal(4)))))))),kmul(cdphi1,kmadd(gt12L,kmul(cdphi3,kmul(gtu13,ToReal(4))),kmul(cdphi2,kmadd(gt12L,kmul(gtu12,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi13 = + kmul(ToReal(-2),kadd(cdphi213,kmadd(gt13L,kmadd(cdphi211,gtu11,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu11,SQR(cdphi1))))),ToReal(2),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi2,kmul(cdphi3,kmul(gtu23,ToReal(4)))))))),kmul(cdphi1,kmadd(gt13L,kmul(cdphi2,kmul(gtu12,ToReal(4))),kmul(cdphi3,kmadd(gt13L,kmul(gtu13,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi22 = + kmul(ToReal(-2),kadd(cdphi222,kmadd(SQR(cdphi2),kmul(kmadd(gt22L,gtu22,ToReal(-1)),ToReal(2)),kmul(gt22L,kmadd(cdphi222,gtu22,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu33,SQR(cdphi3))))),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmul(kmadd(cdphi1,kmul(cdphi3,gtu13),kmul(cdphi2,kmadd(cdphi1,gtu12,kmul(cdphi3,gtu23)))),ToReal(4)))))))))); + + CCTK_REAL_VEC Rphi23 = + kmul(ToReal(-2),kadd(cdphi223,kmadd(gt23L,kmadd(cdphi222,gtu22,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu22,SQR(cdphi2))))),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi1,kmul(cdphi3,kmul(gtu13,ToReal(4)))))))),kmul(cdphi2,kmadd(gt23L,kmul(cdphi1,kmul(gtu12,ToReal(4))),kmul(cdphi3,kmadd(gt23L,kmul(gtu23,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi33 = + kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); + + CCTK_REAL_VEC Atm11 = + kmadd(At11L,gtu11,kmadd(At12L,gtu12,kmul(At13L,gtu13))); + + CCTK_REAL_VEC Atm21 = + kmadd(At11L,gtu12,kmadd(At12L,gtu22,kmul(At13L,gtu23))); + + CCTK_REAL_VEC Atm31 = + kmadd(At11L,gtu13,kmadd(At12L,gtu23,kmul(At13L,gtu33))); + + CCTK_REAL_VEC Atm12 = + kmadd(At12L,gtu11,kmadd(At22L,gtu12,kmul(At23L,gtu13))); + + CCTK_REAL_VEC Atm22 = + kmadd(At12L,gtu12,kmadd(At22L,gtu22,kmul(At23L,gtu23))); + + CCTK_REAL_VEC Atm32 = + kmadd(At12L,gtu13,kmadd(At22L,gtu23,kmul(At23L,gtu33))); + + CCTK_REAL_VEC Atm13 = + kmadd(At13L,gtu11,kmadd(At23L,gtu12,kmul(At33L,gtu13))); + + CCTK_REAL_VEC Atm23 = + kmadd(At13L,gtu12,kmadd(At23L,gtu22,kmul(At33L,gtu23))); + + CCTK_REAL_VEC Atm33 = + kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); + + CCTK_REAL_VEC Atu11 = + kmadd(Atm11,gtu11,kmadd(Atm12,gtu12,kmul(Atm13,gtu13))); + + CCTK_REAL_VEC Atu12 = + kmadd(Atm11,gtu12,kmadd(Atm12,gtu22,kmul(Atm13,gtu23))); + + CCTK_REAL_VEC Atu13 = + kmadd(Atm11,gtu13,kmadd(Atm12,gtu23,kmul(Atm13,gtu33))); + + CCTK_REAL_VEC Atu22 = + kmadd(Atm21,gtu12,kmadd(Atm22,gtu22,kmul(Atm23,gtu23))); + + CCTK_REAL_VEC Atu23 = + kmadd(Atm21,gtu13,kmadd(Atm22,gtu23,kmul(Atm23,gtu33))); + + CCTK_REAL_VEC Atu33 = + kmadd(Atm31,gtu13,kmadd(Atm32,gtu23,kmul(Atm33,gtu33))); + + CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); + + CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); + + CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13); + + CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22); + + CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23); + + CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33); + + R11 = + kadd(R11,kmadd(e4phi,kmadd(JacPDstandardNth1gt11,Z1,kmadd(JacPDstandardNth2gt11,Z2,kmul(JacPDstandardNth3gt11,Z3))),kmul(INV(phiL),kmadd(g11,kmul(kmadd(JacPDstandardNth2phi,Z2,kmul(JacPDstandardNth3phi,Z3)),ToReal(-2)),kmul(JacPDstandardNth1phi,kmadd(g11,kmul(Z1,ToReal(2)),kmul(kmadd(g12,Z2,kmul(g13,Z3)),ToReal(4)))))))); + + R12 = + kadd(R12,kmadd(e4phi,kmadd(JacPDstandardNth1gt12,Z1,kmadd(JacPDstandardNth2gt12,Z2,kmul(JacPDstandardNth3gt12,Z3))),kmul(INV(phiL),kmul(kmadd(g11,kmul(JacPDstandardNth2phi,Z1),kmadd(g22,kmul(JacPDstandardNth1phi,Z2),kmul(Z3,kmadd(g23,JacPDstandardNth1phi,kmsub(g13,JacPDstandardNth2phi,kmul(g12,JacPDstandardNth3phi)))))),ToReal(2))))); + + R13 = + kadd(R13,kmadd(e4phi,kmadd(JacPDstandardNth1gt13,Z1,kmadd(JacPDstandardNth2gt13,Z2,kmul(JacPDstandardNth3gt13,Z3))),kmul(INV(phiL),kmul(kmadd(JacPDstandardNth3phi,kmadd(g11,Z1,kmul(g12,Z2)),kmadd(g33,kmul(JacPDstandardNth1phi,Z3),kmul(Z2,kmsub(g23,JacPDstandardNth1phi,kmul(g13,JacPDstandardNth2phi))))),ToReal(2))))); + + R22 = + kadd(R22,kmadd(e4phi,kmadd(JacPDstandardNth1gt22,Z1,kmadd(JacPDstandardNth2gt22,Z2,kmul(JacPDstandardNth3gt22,Z3))),kmul(INV(phiL),kmadd(g22,kmul(ToReal(-2),kmadd(JacPDstandardNth1phi,Z1,kmsub(JacPDstandardNth3phi,Z3,kmul(JacPDstandardNth2phi,Z2)))),kmul(JacPDstandardNth2phi,kmul(kmadd(g12,Z1,kmul(g23,Z3)),ToReal(4))))))); + + R23 = + kadd(R23,kmadd(e4phi,kmadd(JacPDstandardNth1gt23,Z1,kmadd(JacPDstandardNth2gt23,Z2,kmul(JacPDstandardNth3gt23,Z3))),kmul(INV(phiL),kmul(kmadd(g22,kmul(JacPDstandardNth3phi,Z2),kmadd(g33,kmul(JacPDstandardNth2phi,Z3),kmul(Z1,kmadd(g13,JacPDstandardNth2phi,kmsub(g12,JacPDstandardNth3phi,kmul(g23,JacPDstandardNth1phi)))))),ToReal(2))))); + + R33 = + kadd(R33,kmadd(e4phi,kmadd(JacPDstandardNth1gt33,Z1,kmadd(JacPDstandardNth2gt33,Z2,kmul(JacPDstandardNth3gt33,Z3))),kmul(INV(phiL),kmadd(g33,kmul(ToReal(-2),kmadd(JacPDstandardNth1phi,Z1,kmsub(JacPDstandardNth2phi,Z2,kmul(JacPDstandardNth3phi,Z3)))),kmul(JacPDstandardNth3phi,kmul(kmadd(g13,Z1,kmul(g23,Z2)),ToReal(4))))))); + + CCTK_REAL_VEC rho = + kmul(INV(SQR(alphaL)),kadd(eTttL,kmadd(eTxxL,SQR(beta1L),kmadd(eTyyL,SQR(beta2L),kmadd(eTzzL,SQR(beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2)))))))); + + CCTK_REAL_VEC S1 = + kmul(INV(alphaL),kmadd(beta1L,eTxxL,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))); + + CCTK_REAL_VEC S2 = + kmul(INV(alphaL),kmadd(beta1L,eTxyL,kmadd(beta2L,eTyyL,kmsub(beta3L,eTyzL,eTtyL)))); + + CCTK_REAL_VEC S3 = + kmul(INV(alphaL),kmadd(beta1L,eTxzL,kmadd(beta2L,eTyzL,kmsub(beta3L,eTzzL,eTtzL)))); + + CCTK_REAL_VEC trS = + 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 = kneg(kmul(IfThen(conformalMethod == + 1,kmul(phiL,ToReal(0.333333333333333333333333333333)),ToReal(-0.166666666666666666666666666667)),kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,knmsub(alphaL,trKL,JacPDstandardNth3beta3))))); + + CCTK_REAL_VEC gt11rhsL = + kmul(ToReal(0.666666666666666666666666666667),kmadd(gt11L,ksub(kmsub(JacPDstandardNth1beta1,ToReal(2),JacPDstandardNth3beta3),JacPDstandardNth2beta2),kmadd(alphaL,kmadd(At11L,kmadd(gt11L,gtu11,ToReal(-3)),kmul(gt11L,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2)))))),kmul(kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3)),ToReal(3))))); + + CCTK_REAL_VEC gt12rhsL = + kmul(ToReal(0.333333333333333333333333333333),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmadd(alphaL,kmul(ToReal(2),kmadd(At12L,kmadd(gt12L,kmul(gtu12,ToReal(2)),ToReal(-3)),kmul(gt12L,kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At13L,gtu13,kmul(At23L,gtu23)),ToReal(2)))))))),kmul(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3))))); + + CCTK_REAL_VEC gt13rhsL = + kmul(ToReal(0.333333333333333333333333333333),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmadd(alphaL,kmul(ToReal(2),kmadd(At13L,kmadd(gt13L,kmul(gtu13,ToReal(2)),ToReal(-3)),kmul(gt13L,kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmul(At23L,gtu23)),ToReal(2)))))))),kmul(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3))))); + + CCTK_REAL_VEC gt22rhsL = + kmul(ToReal(0.666666666666666666666666666667),knmsub(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmadd(alphaL,kmadd(At22L,kmadd(gt22L,gtu22,ToReal(-3)),kmul(gt22L,kmadd(At11L,gtu11,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2)))))),kmul(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(3))))); + + CCTK_REAL_VEC gt23rhsL = + kmul(ToReal(0.333333333333333333333333333333),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmadd(alphaL,kmul(ToReal(2),kmadd(gt23L,kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmul(At13L,gtu13)),ToReal(2))))),kmul(At23L,kmadd(gt23L,kmul(gtu23,ToReal(2)),ToReal(-3))))),kmul(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3))))); + + CCTK_REAL_VEC gt33rhsL = + kmul(ToReal(0.666666666666666666666666666667),knmsub(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmadd(alphaL,kmadd(At33L,kmadd(gt33L,gtu33,ToReal(-3)),kmul(gt33L,kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2)))))),kmul(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(3))))); + + CCTK_REAL_VEC dotXt1 = + 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),kmadd(gtu33,JacPDstandardNth33beta1,IfThen(GammaShift,kmul(e4phi,kmul(ToReal(-0.666666666666666666666666666667),kmadd(Z1,kmadd(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(-2),JacPDstandardNth1beta1),kmul(kmadd(JacPDstandardNth2beta1,Z2,kmul(JacPDstandardNth3beta1,Z3)),ToReal(3))))),ToReal(0))))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kadd(JacPDstandardNth13beta3,kmadd(ThetaL,kmul(JacPDstandardNth1alpha,ToReal(-6)),kmul(JacPDstandardNth11beta1,ToReal(4))))),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kadd(JacPDstandardNth23beta3,kmadd(ThetaL,kmul(JacPDstandardNth2alpha,ToReal(-6)),kmul(JacPDstandardNth21beta1,ToReal(4))))),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kadd(JacPDstandardNth33beta3,kmadd(ThetaL,kmul(JacPDstandardNth3alpha,ToReal(-6)),kmul(JacPDstandardNth31beta1,ToReal(4))))),kmul(alphaL,kmul(ToReal(2),kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmadd(gtu13,JacPDstandardNth3trK,kmul(trKL,kmul(e4phi,Z1))))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmadd(gtu11,JacPDstandardNth1Theta,kmadd(gtu12,JacPDstandardNth2Theta,kmadd(gtu13,JacPDstandardNth3Theta,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111))))))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),kmadd(e4phi,kmul(Z1,kmul(ToReal(-3),ToReal(dampk1))),kmul(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),kmul(ToReal(-24),ToReal(Pi)))))))))))))))))); + + CCTK_REAL_VEC dotXt2 = + 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(gtu12,JacPDstandardNth21beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmadd(gtu33,JacPDstandardNth33beta2,IfThen(GammaShift,kmul(e4phi,kmul(ToReal(-0.666666666666666666666666666667),kmadd(Z2,kmadd(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(-2),JacPDstandardNth2beta2),kmul(kmadd(JacPDstandardNth1beta2,Z1,kmul(JacPDstandardNth3beta2,Z3)),ToReal(3))))),ToReal(0))))))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(ThetaL,kmul(JacPDstandardNth1alpha,ToReal(-6)),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kadd(JacPDstandardNth23beta3,kmadd(ThetaL,kmul(JacPDstandardNth2alpha,ToReal(-6)),kmul(JacPDstandardNth22beta2,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kadd(JacPDstandardNth33beta3,kmadd(ThetaL,kmul(JacPDstandardNth3alpha,ToReal(-6)),kmul(JacPDstandardNth32beta2,ToReal(4))))),kmul(alphaL,kmul(ToReal(2),kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmadd(gtu23,JacPDstandardNth3trK,kmul(trKL,kmul(e4phi,Z2))))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmadd(gtu12,JacPDstandardNth1Theta,kmadd(gtu22,JacPDstandardNth2Theta,kmadd(gtu23,JacPDstandardNth3Theta,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222))))))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),kmadd(e4phi,kmul(Z2,kmul(ToReal(-3),ToReal(dampk1))),kmul(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),kmul(ToReal(-24),ToReal(Pi)))))))))))))))))); + + CCTK_REAL_VEC dotXt3 = + 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),knmsub(JacPDstandardNth3beta3,Xtn3,kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmadd(gtu23,JacPDstandardNth32beta3,IfThen(GammaShift,kmul(e4phi,kmul(ToReal(-0.666666666666666666666666666667),kmadd(Z3,kmadd(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(-2),JacPDstandardNth3beta3),kmul(kmadd(JacPDstandardNth1beta3,Z1,kmul(JacPDstandardNth2beta3,Z2)),ToReal(3))))),ToReal(0)))))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(ThetaL,kmul(JacPDstandardNth1alpha,ToReal(-6)),kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4)))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kadd(JacPDstandardNth22beta2,kmadd(ThetaL,kmul(JacPDstandardNth2alpha,ToReal(-6)),kmul(JacPDstandardNth23beta3,ToReal(4))))),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kadd(JacPDstandardNth32beta2,kmadd(ThetaL,kmul(JacPDstandardNth3alpha,ToReal(-6)),kmul(JacPDstandardNth33beta3,ToReal(4))))),kmul(ToReal(2),kmadd(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmadd(gtu33,JacPDstandardNth3trK,kmul(trKL,kmul(e4phi,Z3))))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmadd(Atu22,Gt322,kmadd(gtu13,JacPDstandardNth1Theta,kmadd(gtu23,JacPDstandardNth2Theta,kmul(gtu33,JacPDstandardNth3Theta))))),ToReal(3),kmadd(kmadd(Atu12,Gt312,kmadd(Atu13,kmadd(cdphi1,ToReal(3),Gt313),kmul(Atu23,kmadd(cdphi2,ToReal(3),Gt323)))),ToReal(6),kmadd(Atu33,kmadd(Gt333,ToReal(3),kmul(cdphi3,ToReal(18))),kmadd(e4phi,kmul(Z3,kmul(ToReal(-3),ToReal(dampk1))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))))); + + CCTK_REAL_VEC Xt1rhsL = dotXt1; + + CCTK_REAL_VEC Xt2rhsL = dotXt2; + + CCTK_REAL_VEC Xt3rhsL = dotXt3; + + CCTK_REAL_VEC dotTheta = + knmsub(JacPDstandardNth1alpha,Z1,knmsub(JacPDstandardNth2alpha,Z2,kmsub(alphaL,kmsub(ToReal(0.5),kmadd(gu11,R11,kmadd(gu22,R22,kmadd(gu33,R33,kmadd(ThetaL,kmul(trKL,ToReal(-2)),kmadd(Atm12,kmul(Atm21,ToReal(-2)),kmadd(Atm13,kmul(Atm31,ToReal(-2)),kmadd(Atm23,kmul(Atm32,ToReal(-2)),ksub(ksub(ksub(kmadd(SQR(trKL),ToReal(0.666666666666666666666666666667),kmadd(gu12,kmul(R12,ToReal(2)),kmadd(gu13,kmul(R13,ToReal(2)),kmul(gu23,kmul(R23,ToReal(2)))))),SQR(Atm33)),SQR(Atm22)),SQR(Atm11))))))))),kmul(ThetaL,kmul(ToReal(dampk1),kadd(ToReal(2),ToReal(dampk2))))),kmul(JacPDstandardNth3alpha,Z3)))); + + CCTK_REAL_VEC ThetarhsL = dotTheta; + + CCTK_REAL_VEC dottrK = + kmadd(kmadd(JacPDstandardNth1alpha,Z1,dotTheta),ToReal(2),kmadd(JacPDstandardNth2alpha,kmul(Z2,ToReal(2)),kmadd(JacPDstandardNth3alpha,kmul(Z3,ToReal(2)),kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(Atm12,kmul(Atm21,ToReal(2)),kmadd(Atm13,kmul(Atm31,ToReal(2)),kmadd(Atm23,kmul(Atm32,ToReal(2)),kmsub(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)),kmul(ThetaL,kmul(ToReal(dampk1),kadd(ToReal(-1),ToReal(dampk2)))))))))))),kmul(em4phi,kmadd(gtu13,JacPDstandardNth13alpha,kmadd(gtu22,JacPDstandardNth22alpha,kmadd(gtu23,JacPDstandardNth23alpha,kmadd(gtu13,JacPDstandardNth31alpha,kmadd(gtu23,JacPDstandardNth32alpha,kmadd(gtu33,JacPDstandardNth33alpha,kmadd(cdphi3,kmul(gtu23,kmul(JacPDstandardNth2alpha,ToReal(2))),kmadd(cdphi2,kmul(gtu23,kmul(JacPDstandardNth3alpha,ToReal(2))),kmadd(cdphi3,kmul(gtu33,kmul(JacPDstandardNth3alpha,ToReal(2))),kmadd(JacPDstandardNth3alpha,kmsub(cdphi1,kmul(gtu13,ToReal(2)),Xtn3),kmadd(JacPDstandardNth1alpha,kmsub(cdphi3,kmul(gtu13,ToReal(2)),Xtn1),kmadd(JacPDstandardNth2alpha,kmsub(cdphi2,kmul(gtu22,ToReal(2)),Xtn2),kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmul(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2))))))))))))))))))))))))); + + CCTK_REAL_VEC trKrhsL = dottrK; + + CCTK_REAL_VEC alpharhsL = + kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kadd(trKL,kmadd(ThetaL,ToReal(-2),kmul(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver)))),ksub(ToReal(1),ToReal(LapseACoeff))))))); + + CCTK_REAL_VEC ArhsL = + kmul(kadd(dottrK,kmsub(dotTheta,ToReal(-2),kmul(AL,ToReal(AlphaDriver)))),ToReal(LapseACoeff)); + + CCTK_REAL_VEC eta = + kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius)); + + CCTK_REAL_VEC theta = + kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1)))); + + CCTK_REAL_VEC beta1rhsL; + CCTK_REAL_VEC beta2rhsL; + CCTK_REAL_VEC beta3rhsL; + + if (harmonicShift) + { + beta1rhsL = + kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmadd(JacPDstandardNth1gt11,SQR(gtu11),kmul(JacPDstandardNth1gt22,kmul(SQR(gtu12),ToReal(2)))),kmadd(gtu13,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,kmsub(kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu22,JacPDstandardNth2gt23,kmul(gtu23,JacPDstandardNth2gt33))),ToReal(2),kmul(gtu22,JacPDstandardNth3gt22))))),kmadd(gtu11,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu12,JacPDstandardNth2gt11,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,kmul(JacPDstandardNth1gt23,ToReal(-2)),knmsub(gtu22,JacPDstandardNth1gt22,kmadd(kmadd(gtu12,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt13,kmul(gtu22,JacPDstandardNth2gt12))),ToReal(2),kmadd(gtu23,kmul(JacPDstandardNth2gt13,ToReal(2)),kmadd(gtu23,kmul(JacPDstandardNth3gt12,ToReal(2)),kmul(gtu33,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33))))))))))),kmul(gtu12,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,kmul(JacPDstandardNth3gt22,ToReal(2)),kmadd(gtu33,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33),kmul(gtu13,kmul(JacPDstandardNth1gt23,ToReal(4))))))))))))))))); + + beta2rhsL = + kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmadd(JacPDstandardNth2gt22,SQR(gtu22),kmul(JacPDstandardNth2gt11,kmul(SQR(gtu12),ToReal(2)))),kmadd(gtu23,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,kmsub(kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmul(gtu23,JacPDstandardNth2gt33))),ToReal(2),kmul(gtu11,JacPDstandardNth3gt11))))),kmadd(gtu22,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu23,JacPDstandardNth3gt22,kmadd(kmadd(gtu23,JacPDstandardNth2gt23,kmul(gtu13,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)))),ToReal(2),kmadd(gtu11,kmsub(JacPDstandardNth1gt12,ToReal(2),JacPDstandardNth2gt11),kmul(gtu33,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33))))))),kmul(gtu12,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,kmul(JacPDstandardNth3gt11,ToReal(2)),kmadd(gtu22,kmadd(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmadd(gtu33,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu23,kmul(JacPDstandardNth2gt13,ToReal(4)))))))))))))))))); + + beta3rhsL = + kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmul(kmadd(JacPDstandardNth3gt11,SQR(gtu13),kmul(JacPDstandardNth3gt22,SQR(gtu23))),ToReal(2)),kmadd(gtu23,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu33,JacPDstandardNth2gt33,kmsub(kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu12,JacPDstandardNth1gt22,kmul(gtu33,JacPDstandardNth3gt23))),ToReal(2),kmul(gtu11,JacPDstandardNth2gt11)))))),kmadd(gtu33,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,knmsub(gtu22,JacPDstandardNth3gt22,kmadd(kmadd(gtu22,JacPDstandardNth2gt23,kmul(gtu12,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)))),ToReal(2),kmul(gtu11,kmsub(JacPDstandardNth1gt13,ToReal(2),JacPDstandardNth3gt11))))))),kmul(gtu13,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu12,kmul(JacPDstandardNth2gt11,ToReal(2)),kmadd(gtu22,kmsub(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmadd(gtu33,kmadd(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu23,kmul(JacPDstandardNth3gt12,ToReal(4)))))))))))))))))); + } + else + { + beta1rhsL = + kmul(theta,kmul(kadd(Xt1L,kmadd(ksub(B1L,Xt1L),ToReal(ShiftBCoeff),kmul(beta1L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + + beta2rhsL = + kmul(theta,kmul(kadd(Xt2L,kmadd(ksub(B2L,Xt2L),ToReal(ShiftBCoeff),kmul(beta2L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + + beta3rhsL = + kmul(theta,kmul(kadd(Xt3L,kmadd(ksub(B3L,Xt3L),ToReal(ShiftBCoeff),kmul(beta3L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + } + + CCTK_REAL_VEC B1rhsL = + kmul(knmsub(B1L,kmul(eta,ToReal(BetaDriver)),dotXt1),ToReal(ShiftBCoeff)); + + CCTK_REAL_VEC B2rhsL = + kmul(knmsub(B2L,kmul(eta,ToReal(BetaDriver)),dotXt2),ToReal(ShiftBCoeff)); + + CCTK_REAL_VEC B3rhsL = + kmul(knmsub(B3L,kmul(eta,ToReal(BetaDriver)),dotXt3),ToReal(ShiftBCoeff)); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpharhs[index],alpharhsL); + vec_store_nta_partial(Arhs[index],ArhsL); + vec_store_nta_partial(B1rhs[index],B1rhsL); + vec_store_nta_partial(B2rhs[index],B2rhsL); + vec_store_nta_partial(B3rhs[index],B3rhsL); + vec_store_nta_partial(beta1rhs[index],beta1rhsL); + vec_store_nta_partial(beta2rhs[index],beta2rhsL); + vec_store_nta_partial(beta3rhs[index],beta3rhsL); + vec_store_nta_partial(gt11rhs[index],gt11rhsL); + vec_store_nta_partial(gt12rhs[index],gt12rhsL); + vec_store_nta_partial(gt13rhs[index],gt13rhsL); + vec_store_nta_partial(gt22rhs[index],gt22rhsL); + vec_store_nta_partial(gt23rhs[index],gt23rhsL); + vec_store_nta_partial(gt33rhs[index],gt33rhsL); + vec_store_nta_partial(phirhs[index],phirhsL); + vec_store_nta_partial(Thetarhs[index],ThetarhsL); + vec_store_nta_partial(trKrhs[index],trKrhsL); + vec_store_nta_partial(Xt1rhs[index],Xt1rhsL); + vec_store_nta_partial(Xt2rhs[index],Xt2rhsL); + vec_store_nta_partial(Xt3rhs[index],Xt3rhsL); + } + LC_ENDLOOP3VEC(ML_CCZ4_RHS1); +} + +extern "C" void ML_CCZ4_RHS1(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_RHS1_Body"); + } + + if (cctk_iteration % ML_CCZ4_RHS1_calc_every != ML_CCZ4_RHS1_calc_offset) + { + return; + } + + const char *const groups[] = { + "grid::coordinates", + "Grid::coordinates", + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtlapserhs", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_dtshiftrhs", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_Gammarhs", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_lapserhs", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_log_confacrhs", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_metricrhs", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_shiftrhs", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_Thetarhs", + "ML_CCZ4::ML_trace_curv", + "ML_CCZ4::ML_trace_curvrhs"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_RHS1", 21, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_RHS1", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_RHS1", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_RHS1", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_RHS1", 4, 4, 4); + break; + } + + GenericFD_LoopOverInterior(cctkGH, ML_CCZ4_RHS1_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_RHS1_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_RHS2.cc b/ML_CCZ4/src/ML_CCZ4_RHS2.cc new file mode 100644 index 0000000..d5b3821 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_RHS2.cc @@ -0,0 +1,1898 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_RHS2_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_curvrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_curvrhs."); + return; +} + +static void ML_CCZ4_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_RHS2, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC At11L = vec_load(At11[index]); + CCTK_REAL_VEC At12L = vec_load(At12[index]); + CCTK_REAL_VEC At13L = vec_load(At13[index]); + CCTK_REAL_VEC At22L = vec_load(At22[index]); + CCTK_REAL_VEC At23L = vec_load(At23[index]); + CCTK_REAL_VEC At33L = vec_load(At33[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + CCTK_REAL_VEC ThetaL = vec_load(Theta[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + + CCTK_REAL_VEC eTxxL, eTxyL, eTxzL, eTyyL, eTyzL, eTzzL; + + if (*stress_energy_state) + { + eTxxL = vec_load(eTxx[index]); + eTxyL = vec_load(eTxy[index]); + eTxzL = vec_load(eTxz[index]); + eTyyL = vec_load(eTyy[index]); + eTyzL = vec_load(eTyz[index]); + eTzzL = vec_load(eTzz[index]); + } + else + { + eTxxL = ToReal(0.0); + eTxyL = ToReal(0.0); + eTxzL = ToReal(0.0); + eTyyL = ToReal(0.0); + eTyzL = ToReal(0.0); + 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 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 */ + ptrdiff_t dir1 = Sign(beta1L); + + ptrdiff_t dir2 = Sign(beta2L); + + ptrdiff_t dir3 = Sign(beta3L); + + 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; + } + + CCTK_REAL_VEC detgt = ToReal(1); + + CCTK_REAL_VEC gtu11 = + kmul(INV(detgt),kmsub(gt22L,gt33L,SQR(gt23L))); + + CCTK_REAL_VEC gtu12 = + kmul(INV(detgt),kmsub(gt13L,gt23L,kmul(gt12L,gt33L))); + + CCTK_REAL_VEC gtu13 = + kmul(INV(detgt),kmsub(gt12L,gt23L,kmul(gt13L,gt22L))); + + CCTK_REAL_VEC gtu22 = + kmul(INV(detgt),kmsub(gt11L,gt33L,SQR(gt13L))); + + CCTK_REAL_VEC gtu23 = + kmul(INV(detgt),kmsub(gt12L,gt13L,kmul(gt11L,gt23L))); + + CCTK_REAL_VEC gtu33 = + kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); + + CCTK_REAL_VEC Gtl111 = kmul(JacPDstandardNth1gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl112 = kmul(JacPDstandardNth2gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl113 = kmul(JacPDstandardNth3gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl122 = + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); + + CCTK_REAL_VEC Gtl123 = + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl133 = + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); + + CCTK_REAL_VEC Gtl211 = + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); + + CCTK_REAL_VEC Gtl212 = kmul(JacPDstandardNth1gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl213 = + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl222 = kmul(JacPDstandardNth2gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl223 = kmul(JacPDstandardNth3gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl233 = + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); + + CCTK_REAL_VEC Gtl311 = + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); + + CCTK_REAL_VEC Gtl312 = + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl313 = kmul(JacPDstandardNth1gt33,ToReal(0.5)); + + CCTK_REAL_VEC Gtl322 = + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); + + CCTK_REAL_VEC Gtl323 = kmul(JacPDstandardNth2gt33,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))); + + CCTK_REAL_VEC Gtlu112 = + kmadd(Gtl111,gtu12,kmadd(Gtl112,gtu22,kmul(Gtl113,gtu23))); + + CCTK_REAL_VEC Gtlu113 = + kmadd(Gtl111,gtu13,kmadd(Gtl112,gtu23,kmul(Gtl113,gtu33))); + + CCTK_REAL_VEC Gtlu121 = + kmadd(Gtl112,gtu11,kmadd(Gtl122,gtu12,kmul(Gtl123,gtu13))); + + CCTK_REAL_VEC Gtlu122 = + kmadd(Gtl112,gtu12,kmadd(Gtl122,gtu22,kmul(Gtl123,gtu23))); + + CCTK_REAL_VEC Gtlu123 = + kmadd(Gtl112,gtu13,kmadd(Gtl122,gtu23,kmul(Gtl123,gtu33))); + + CCTK_REAL_VEC Gtlu131 = + kmadd(Gtl113,gtu11,kmadd(Gtl123,gtu12,kmul(Gtl133,gtu13))); + + CCTK_REAL_VEC Gtlu132 = + kmadd(Gtl113,gtu12,kmadd(Gtl123,gtu22,kmul(Gtl133,gtu23))); + + CCTK_REAL_VEC Gtlu133 = + kmadd(Gtl113,gtu13,kmadd(Gtl123,gtu23,kmul(Gtl133,gtu33))); + + CCTK_REAL_VEC Gtlu211 = + kmadd(Gtl211,gtu11,kmadd(Gtl212,gtu12,kmul(Gtl213,gtu13))); + + CCTK_REAL_VEC Gtlu212 = + kmadd(Gtl211,gtu12,kmadd(Gtl212,gtu22,kmul(Gtl213,gtu23))); + + CCTK_REAL_VEC Gtlu213 = + kmadd(Gtl211,gtu13,kmadd(Gtl212,gtu23,kmul(Gtl213,gtu33))); + + CCTK_REAL_VEC Gtlu221 = + kmadd(Gtl212,gtu11,kmadd(Gtl222,gtu12,kmul(Gtl223,gtu13))); + + CCTK_REAL_VEC Gtlu222 = + kmadd(Gtl212,gtu12,kmadd(Gtl222,gtu22,kmul(Gtl223,gtu23))); + + CCTK_REAL_VEC Gtlu223 = + kmadd(Gtl212,gtu13,kmadd(Gtl222,gtu23,kmul(Gtl223,gtu33))); + + CCTK_REAL_VEC Gtlu231 = + kmadd(Gtl213,gtu11,kmadd(Gtl223,gtu12,kmul(Gtl233,gtu13))); + + CCTK_REAL_VEC Gtlu232 = + kmadd(Gtl213,gtu12,kmadd(Gtl223,gtu22,kmul(Gtl233,gtu23))); + + CCTK_REAL_VEC Gtlu233 = + kmadd(Gtl213,gtu13,kmadd(Gtl223,gtu23,kmul(Gtl233,gtu33))); + + CCTK_REAL_VEC Gtlu311 = + kmadd(Gtl311,gtu11,kmadd(Gtl312,gtu12,kmul(Gtl313,gtu13))); + + CCTK_REAL_VEC Gtlu312 = + kmadd(Gtl311,gtu12,kmadd(Gtl312,gtu22,kmul(Gtl313,gtu23))); + + CCTK_REAL_VEC Gtlu313 = + kmadd(Gtl311,gtu13,kmadd(Gtl312,gtu23,kmul(Gtl313,gtu33))); + + CCTK_REAL_VEC Gtlu321 = + kmadd(Gtl312,gtu11,kmadd(Gtl322,gtu12,kmul(Gtl323,gtu13))); + + CCTK_REAL_VEC Gtlu322 = + kmadd(Gtl312,gtu12,kmadd(Gtl322,gtu22,kmul(Gtl323,gtu23))); + + CCTK_REAL_VEC Gtlu323 = + kmadd(Gtl312,gtu13,kmadd(Gtl322,gtu23,kmul(Gtl323,gtu33))); + + CCTK_REAL_VEC Gtlu331 = + kmadd(Gtl313,gtu11,kmadd(Gtl323,gtu12,kmul(Gtl333,gtu13))); + + CCTK_REAL_VEC Gtlu332 = + kmadd(Gtl313,gtu12,kmadd(Gtl323,gtu22,kmul(Gtl333,gtu23))); + + CCTK_REAL_VEC Gtlu333 = + kmadd(Gtl313,gtu13,kmadd(Gtl323,gtu23,kmul(Gtl333,gtu33))); + + CCTK_REAL_VEC Gt111 = + kmadd(Gtl111,gtu11,kmadd(Gtl211,gtu12,kmul(Gtl311,gtu13))); + + CCTK_REAL_VEC Gt211 = + kmadd(Gtl111,gtu12,kmadd(Gtl211,gtu22,kmul(Gtl311,gtu23))); + + CCTK_REAL_VEC Gt311 = + kmadd(Gtl111,gtu13,kmadd(Gtl211,gtu23,kmul(Gtl311,gtu33))); + + CCTK_REAL_VEC Gt112 = + kmadd(Gtl112,gtu11,kmadd(Gtl212,gtu12,kmul(Gtl312,gtu13))); + + CCTK_REAL_VEC Gt212 = + kmadd(Gtl112,gtu12,kmadd(Gtl212,gtu22,kmul(Gtl312,gtu23))); + + CCTK_REAL_VEC Gt312 = + kmadd(Gtl112,gtu13,kmadd(Gtl212,gtu23,kmul(Gtl312,gtu33))); + + CCTK_REAL_VEC Gt113 = + kmadd(Gtl113,gtu11,kmadd(Gtl213,gtu12,kmul(Gtl313,gtu13))); + + CCTK_REAL_VEC Gt213 = + kmadd(Gtl113,gtu12,kmadd(Gtl213,gtu22,kmul(Gtl313,gtu23))); + + CCTK_REAL_VEC Gt313 = + kmadd(Gtl113,gtu13,kmadd(Gtl213,gtu23,kmul(Gtl313,gtu33))); + + CCTK_REAL_VEC Gt122 = + kmadd(Gtl122,gtu11,kmadd(Gtl222,gtu12,kmul(Gtl322,gtu13))); + + CCTK_REAL_VEC Gt222 = + kmadd(Gtl122,gtu12,kmadd(Gtl222,gtu22,kmul(Gtl322,gtu23))); + + CCTK_REAL_VEC Gt322 = + kmadd(Gtl122,gtu13,kmadd(Gtl222,gtu23,kmul(Gtl322,gtu33))); + + CCTK_REAL_VEC Gt123 = + kmadd(Gtl123,gtu11,kmadd(Gtl223,gtu12,kmul(Gtl323,gtu13))); + + CCTK_REAL_VEC Gt223 = + kmadd(Gtl123,gtu12,kmadd(Gtl223,gtu22,kmul(Gtl323,gtu23))); + + CCTK_REAL_VEC Gt323 = + kmadd(Gtl123,gtu13,kmadd(Gtl223,gtu23,kmul(Gtl323,gtu33))); + + CCTK_REAL_VEC Gt133 = + kmadd(Gtl133,gtu11,kmadd(Gtl233,gtu12,kmul(Gtl333,gtu13))); + + CCTK_REAL_VEC Gt233 = + kmadd(Gtl133,gtu12,kmadd(Gtl233,gtu22,kmul(Gtl333,gtu23))); + + CCTK_REAL_VEC Gt333 = + kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); + + CCTK_REAL_VEC Xtn1 = + kmadd(Gt111,gtu11,kmadd(Gt122,gtu22,kmadd(Gt133,gtu33,kmul(kmadd(Gt112,gtu12,kmadd(Gt113,gtu13,kmul(Gt123,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC Xtn2 = + kmadd(Gt211,gtu11,kmadd(Gt222,gtu22,kmadd(Gt233,gtu33,kmul(kmadd(Gt212,gtu12,kmadd(Gt213,gtu13,kmul(Gt223,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC Xtn3 = + kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + + CCTK_REAL_VEC Z1 = + kneg(kmul(kmadd(gu11,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu13,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu12,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Z2 = + kneg(kmul(kmadd(gu12,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu23,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu22,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Z3 = + kneg(kmul(kmadd(gu13,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu33,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu23,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Rt11 = + 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,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,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),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,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),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 == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + + CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); + + CCTK_REAL_VEC cdphi2 = kmul(fac1,JacPDstandardNth2phi); + + CCTK_REAL_VEC cdphi3 = kmul(fac1,JacPDstandardNth3phi); + + CCTK_REAL_VEC fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); + + CCTK_REAL_VEC cdphi211 = + kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); + + CCTK_REAL_VEC cdphi212 = + kmadd(fac2,kmul(JacPDstandardNth1phi,JacPDstandardNth2phi),kmul(fac1,ksub(JacPDstandardNth12phi,kmadd(Gt112,JacPDstandardNth1phi,kmadd(Gt312,JacPDstandardNth3phi,kmul(Gt212,JacPDstandardNth2phi)))))); + + CCTK_REAL_VEC cdphi213 = + 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(JacPDstandardNth2phi),kmul(fac1,kmadd(Gt122,JacPDstandardNth1phi,kmadd(Gt222,JacPDstandardNth2phi,kmsub(Gt322,JacPDstandardNth3phi,JacPDstandardNth22phi))))); + + CCTK_REAL_VEC cdphi223 = + kmsub(fac2,kmul(JacPDstandardNth2phi,JacPDstandardNth3phi),kmul(fac1,kmadd(Gt123,JacPDstandardNth1phi,kmadd(Gt223,JacPDstandardNth2phi,kmsub(Gt323,JacPDstandardNth3phi,JacPDstandardNth23phi))))); + + CCTK_REAL_VEC cdphi233 = + 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)))))))))); + + CCTK_REAL_VEC Rphi12 = + kmul(ToReal(-2),kadd(cdphi212,kmadd(gt12L,kmadd(cdphi211,gtu11,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu11,SQR(cdphi1))))),ToReal(2),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi2,kmul(cdphi3,kmul(gtu23,ToReal(4)))))))),kmul(cdphi1,kmadd(gt12L,kmul(cdphi3,kmul(gtu13,ToReal(4))),kmul(cdphi2,kmadd(gt12L,kmul(gtu12,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi13 = + kmul(ToReal(-2),kadd(cdphi213,kmadd(gt13L,kmadd(cdphi211,gtu11,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu11,SQR(cdphi1))))),ToReal(2),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi2,kmul(cdphi3,kmul(gtu23,ToReal(4)))))))),kmul(cdphi1,kmadd(gt13L,kmul(cdphi2,kmul(gtu12,ToReal(4))),kmul(cdphi3,kmadd(gt13L,kmul(gtu13,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi22 = + kmul(ToReal(-2),kadd(cdphi222,kmadd(SQR(cdphi2),kmul(kmadd(gt22L,gtu22,ToReal(-1)),ToReal(2)),kmul(gt22L,kmadd(cdphi222,gtu22,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu33,SQR(cdphi3))))),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmul(kmadd(cdphi1,kmul(cdphi3,gtu13),kmul(cdphi2,kmadd(cdphi1,gtu12,kmul(cdphi3,gtu23)))),ToReal(4)))))))))); + + CCTK_REAL_VEC Rphi23 = + kmul(ToReal(-2),kadd(cdphi223,kmadd(gt23L,kmadd(cdphi222,gtu22,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu22,SQR(cdphi2))))),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi1,kmul(cdphi3,kmul(gtu13,ToReal(4)))))))),kmul(cdphi2,kmadd(gt23L,kmul(cdphi1,kmul(gtu12,ToReal(4))),kmul(cdphi3,kmadd(gt23L,kmul(gtu23,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi33 = + kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); + + CCTK_REAL_VEC Atm11 = + kmadd(At11L,gtu11,kmadd(At12L,gtu12,kmul(At13L,gtu13))); + + CCTK_REAL_VEC Atm21 = + kmadd(At11L,gtu12,kmadd(At12L,gtu22,kmul(At13L,gtu23))); + + CCTK_REAL_VEC Atm31 = + kmadd(At11L,gtu13,kmadd(At12L,gtu23,kmul(At13L,gtu33))); + + CCTK_REAL_VEC Atm12 = + kmadd(At12L,gtu11,kmadd(At22L,gtu12,kmul(At23L,gtu13))); + + CCTK_REAL_VEC Atm22 = + kmadd(At12L,gtu12,kmadd(At22L,gtu22,kmul(At23L,gtu23))); + + CCTK_REAL_VEC Atm32 = + kmadd(At12L,gtu13,kmadd(At22L,gtu23,kmul(At23L,gtu33))); + + CCTK_REAL_VEC Atm13 = + kmadd(At13L,gtu11,kmadd(At23L,gtu12,kmul(At33L,gtu13))); + + CCTK_REAL_VEC Atm23 = + kmadd(At13L,gtu12,kmadd(At23L,gtu22,kmul(At33L,gtu23))); + + CCTK_REAL_VEC Atm33 = + kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); + + CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); + + CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); + + CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13); + + CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22); + + CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23); + + CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33); + + R11 = + kadd(R11,kmadd(e4phi,kmadd(JacPDstandardNth1gt11,Z1,kmadd(JacPDstandardNth2gt11,Z2,kmul(JacPDstandardNth3gt11,Z3))),kmul(INV(phiL),kmadd(g11,kmul(kmadd(JacPDstandardNth2phi,Z2,kmul(JacPDstandardNth3phi,Z3)),ToReal(-2)),kmul(JacPDstandardNth1phi,kmadd(g11,kmul(Z1,ToReal(2)),kmul(kmadd(g12,Z2,kmul(g13,Z3)),ToReal(4)))))))); + + R12 = + kadd(R12,kmadd(e4phi,kmadd(JacPDstandardNth1gt12,Z1,kmadd(JacPDstandardNth2gt12,Z2,kmul(JacPDstandardNth3gt12,Z3))),kmul(INV(phiL),kmul(kmadd(g11,kmul(JacPDstandardNth2phi,Z1),kmadd(g22,kmul(JacPDstandardNth1phi,Z2),kmul(Z3,kmadd(g23,JacPDstandardNth1phi,kmsub(g13,JacPDstandardNth2phi,kmul(g12,JacPDstandardNth3phi)))))),ToReal(2))))); + + R13 = + kadd(R13,kmadd(e4phi,kmadd(JacPDstandardNth1gt13,Z1,kmadd(JacPDstandardNth2gt13,Z2,kmul(JacPDstandardNth3gt13,Z3))),kmul(INV(phiL),kmul(kmadd(JacPDstandardNth3phi,kmadd(g11,Z1,kmul(g12,Z2)),kmadd(g33,kmul(JacPDstandardNth1phi,Z3),kmul(Z2,kmsub(g23,JacPDstandardNth1phi,kmul(g13,JacPDstandardNth2phi))))),ToReal(2))))); + + R22 = + kadd(R22,kmadd(e4phi,kmadd(JacPDstandardNth1gt22,Z1,kmadd(JacPDstandardNth2gt22,Z2,kmul(JacPDstandardNth3gt22,Z3))),kmul(INV(phiL),kmadd(g22,kmul(ToReal(-2),kmadd(JacPDstandardNth1phi,Z1,kmsub(JacPDstandardNth3phi,Z3,kmul(JacPDstandardNth2phi,Z2)))),kmul(JacPDstandardNth2phi,kmul(kmadd(g12,Z1,kmul(g23,Z3)),ToReal(4))))))); + + R23 = + kadd(R23,kmadd(e4phi,kmadd(JacPDstandardNth1gt23,Z1,kmadd(JacPDstandardNth2gt23,Z2,kmul(JacPDstandardNth3gt23,Z3))),kmul(INV(phiL),kmul(kmadd(g22,kmul(JacPDstandardNth3phi,Z2),kmadd(g33,kmul(JacPDstandardNth2phi,Z3),kmul(Z1,kmadd(g13,JacPDstandardNth2phi,kmsub(g12,JacPDstandardNth3phi,kmul(g23,JacPDstandardNth1phi)))))),ToReal(2))))); + + R33 = + kadd(R33,kmadd(e4phi,kmadd(JacPDstandardNth1gt33,Z1,kmadd(JacPDstandardNth2gt33,Z2,kmul(JacPDstandardNth3gt33,Z3))),kmul(INV(phiL),kmadd(g33,kmul(ToReal(-2),kmadd(JacPDstandardNth1phi,Z1,kmsub(JacPDstandardNth2phi,Z2,kmul(JacPDstandardNth3phi,Z3)))),kmul(JacPDstandardNth3phi,kmul(kmadd(g13,Z1,kmul(g23,Z2)),ToReal(4))))))); + + CCTK_REAL_VEC trS = + 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,JacPDstandardNth2alpha,kmadd(Gt311,JacPDstandardNth3alpha,kmadd(alphaL,R11,kmsub(JacPDstandardNth1alpha,kmadd(cdphi1,ToReal(4),Gt111),JacPDstandardNth11alpha)))); + + CCTK_REAL_VEC Ats12 = + 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,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,JacPDstandardNth1alpha,kmadd(Gt322,JacPDstandardNth3alpha,kmadd(alphaL,R22,kmsub(JacPDstandardNth2alpha,kmadd(cdphi2,ToReal(4),Gt222),JacPDstandardNth22alpha)))); + + CCTK_REAL_VEC Ats23 = + 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,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 = + kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats11,ToReal(3),kmul(g11,trAts)),kmadd(At11L,kmadd(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(-2),kmul(JacPDstandardNth1beta1,ToReal(4))),kmsub(kmadd(At12L,JacPDstandardNth1beta2,kmul(At13L,JacPDstandardNth1beta3)),ToReal(6),kmul(alphaL,kmadd(kmadd(At12L,Atm21,kmul(At13L,Atm31)),ToReal(6),kmadd(At11L,kmadd(trKL,ToReal(-3),kmul(kadd(ThetaL,Atm11),ToReal(6))),kmul(em4phi,kmul(kmadd(g11,kmul(trS,ToReal(-8)),kmul(eTxxL,ToReal(24))),ToReal(Pi)))))))))); + + CCTK_REAL_VEC At12rhsL = + kmadd(ToReal(0.333333333333333333333333333333),kmadd(At12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmsub(kmadd(Ats12,em4phi,kmadd(At22L,JacPDstandardNth1beta2,kmadd(At23L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth2beta1,kmul(At13L,JacPDstandardNth2beta3))))),ToReal(3),kmul(em4phi,kmul(g12,trAts)))),kmul(alphaL,kmadd(kmadd(At11L,Atm12,kmul(At13L,Atm32)),ToReal(-2),kmadd(At12L,kmadd(kadd(ThetaL,Atm22),ToReal(-2),trKL),kmul(em4phi,kmadd(g12,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxyL,kmul(ToReal(-8),ToReal(Pi))))))))); + + CCTK_REAL_VEC At13rhsL = + kmadd(ToReal(0.333333333333333333333333333333),kmadd(At13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmsub(kmadd(Ats13,em4phi,kmadd(At23L,JacPDstandardNth1beta2,kmadd(At33L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth3beta1,kmul(At12L,JacPDstandardNth3beta2))))),ToReal(3),kmul(em4phi,kmul(g13,trAts)))),kmul(alphaL,kmadd(kmadd(At11L,Atm13,kmul(At12L,Atm23)),ToReal(-2),kmadd(At13L,kmadd(kadd(ThetaL,Atm33),ToReal(-2),trKL),kmul(em4phi,kmadd(g13,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxzL,kmul(ToReal(-8),ToReal(Pi))))))))); + + CCTK_REAL_VEC At22rhsL = + kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats22,ToReal(3),kmul(g22,trAts)),kmadd(At22L,kmadd(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(-2),kmul(JacPDstandardNth2beta2,ToReal(4))),kmsub(kmadd(At12L,JacPDstandardNth2beta1,kmul(At23L,JacPDstandardNth2beta3)),ToReal(6),kmul(alphaL,kmadd(kmadd(At12L,Atm12,kmul(At23L,Atm32)),ToReal(6),kmadd(At22L,kmadd(trKL,ToReal(-3),kmul(kadd(ThetaL,Atm22),ToReal(6))),kmul(em4phi,kmul(kmadd(g22,kmul(trS,ToReal(-8)),kmul(eTyyL,ToReal(24))),ToReal(Pi)))))))))); + + CCTK_REAL_VEC At23rhsL = + kmadd(ToReal(0.333333333333333333333333333333),kmadd(At23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmsub(kmadd(Ats23,em4phi,kmadd(At13L,JacPDstandardNth2beta1,kmadd(At33L,JacPDstandardNth2beta3,kmadd(At12L,JacPDstandardNth3beta1,kmul(At22L,JacPDstandardNth3beta2))))),ToReal(3),kmul(em4phi,kmul(g23,trAts)))),kmul(alphaL,kmadd(kmadd(At12L,Atm13,kmul(At22L,Atm23)),ToReal(-2),kmadd(At23L,kmadd(kadd(ThetaL,Atm33),ToReal(-2),trKL),kmul(em4phi,kmadd(g23,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTyzL,kmul(ToReal(-8),ToReal(Pi))))))))); + + CCTK_REAL_VEC At33rhsL = + kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats33,ToReal(3),kmul(g33,trAts)),kmadd(At33L,kmadd(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(-2),kmul(JacPDstandardNth3beta3,ToReal(4))),kmsub(kmadd(At13L,JacPDstandardNth3beta1,kmul(At23L,JacPDstandardNth3beta2)),ToReal(6),kmul(alphaL,kmadd(kmadd(At13L,Atm13,kmul(At23L,Atm23)),ToReal(6),kmadd(At33L,kmadd(trKL,ToReal(-3),kmul(kadd(ThetaL,Atm33),ToReal(6))),kmul(em4phi,kmul(kmadd(g33,kmul(trS,ToReal(-8)),kmul(eTzzL,ToReal(24))),ToReal(Pi)))))))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(At11rhs[index],At11rhsL); + vec_store_nta_partial(At12rhs[index],At12rhsL); + vec_store_nta_partial(At13rhs[index],At13rhsL); + vec_store_nta_partial(At22rhs[index],At22rhsL); + vec_store_nta_partial(At23rhs[index],At23rhsL); + vec_store_nta_partial(At33rhs[index],At33rhsL); + } + LC_ENDLOOP3VEC(ML_CCZ4_RHS2); +} + +extern "C" void ML_CCZ4_RHS2(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_RHS2_Body"); + } + + if (cctk_iteration % ML_CCZ4_RHS2_calc_every != ML_CCZ4_RHS2_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_curvrhs", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_RHS2", 9, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_RHS2", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_RHS2", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_RHS2", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_RHS2", 4, 4, 4); + break; + } + + GenericFD_LoopOverInterior(cctkGH, ML_CCZ4_RHS2_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_RHS2_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_RHSStaticBoundary.cc b/ML_CCZ4/src/ML_CCZ4_RHSStaticBoundary.cc new file mode 100644 index 0000000..83b35c7 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_RHSStaticBoundary.cc @@ -0,0 +1,398 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_curvrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_curvrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtlapserhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtlapserhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtshiftrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtshiftrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Gammarhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Gammarhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_lapserhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_lapserhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_log_confacrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_log_confacrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_metricrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_metricrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_shiftrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_shiftrhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Thetarhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Thetarhs."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_trace_curvrhs","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_trace_curvrhs."); + return; +} + +static void ML_CCZ4_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_RHSStaticBoundary, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + + + + /* 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); + + CCTK_REAL_VEC gt11rhsL = ToReal(0); + + CCTK_REAL_VEC gt12rhsL = ToReal(0); + + CCTK_REAL_VEC gt13rhsL = ToReal(0); + + CCTK_REAL_VEC gt22rhsL = ToReal(0); + + CCTK_REAL_VEC gt23rhsL = ToReal(0); + + CCTK_REAL_VEC gt33rhsL = ToReal(0); + + CCTK_REAL_VEC trKrhsL = ToReal(0); + + CCTK_REAL_VEC At11rhsL = ToReal(0); + + CCTK_REAL_VEC At12rhsL = ToReal(0); + + CCTK_REAL_VEC At13rhsL = ToReal(0); + + CCTK_REAL_VEC At22rhsL = ToReal(0); + + CCTK_REAL_VEC At23rhsL = ToReal(0); + + CCTK_REAL_VEC At33rhsL = ToReal(0); + + CCTK_REAL_VEC Xt1rhsL = ToReal(0); + + CCTK_REAL_VEC Xt2rhsL = ToReal(0); + + CCTK_REAL_VEC Xt3rhsL = ToReal(0); + + CCTK_REAL_VEC alpharhsL = ToReal(0); + + CCTK_REAL_VEC ArhsL = ToReal(0); + + CCTK_REAL_VEC beta1rhsL = ToReal(0); + + CCTK_REAL_VEC beta2rhsL = ToReal(0); + + CCTK_REAL_VEC beta3rhsL = ToReal(0); + + CCTK_REAL_VEC B1rhsL = ToReal(0); + + CCTK_REAL_VEC B2rhsL = ToReal(0); + + CCTK_REAL_VEC B3rhsL = ToReal(0); + + CCTK_REAL_VEC ThetarhsL = ToReal(0); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpharhs[index],alpharhsL); + vec_store_nta_partial(Arhs[index],ArhsL); + vec_store_nta_partial(At11rhs[index],At11rhsL); + vec_store_nta_partial(At12rhs[index],At12rhsL); + vec_store_nta_partial(At13rhs[index],At13rhsL); + vec_store_nta_partial(At22rhs[index],At22rhsL); + vec_store_nta_partial(At23rhs[index],At23rhsL); + vec_store_nta_partial(At33rhs[index],At33rhsL); + vec_store_nta_partial(B1rhs[index],B1rhsL); + vec_store_nta_partial(B2rhs[index],B2rhsL); + vec_store_nta_partial(B3rhs[index],B3rhsL); + vec_store_nta_partial(beta1rhs[index],beta1rhsL); + vec_store_nta_partial(beta2rhs[index],beta2rhsL); + vec_store_nta_partial(beta3rhs[index],beta3rhsL); + vec_store_nta_partial(gt11rhs[index],gt11rhsL); + vec_store_nta_partial(gt12rhs[index],gt12rhsL); + vec_store_nta_partial(gt13rhs[index],gt13rhsL); + vec_store_nta_partial(gt22rhs[index],gt22rhsL); + vec_store_nta_partial(gt23rhs[index],gt23rhsL); + vec_store_nta_partial(gt33rhs[index],gt33rhsL); + vec_store_nta_partial(phirhs[index],phirhsL); + vec_store_nta_partial(Thetarhs[index],ThetarhsL); + vec_store_nta_partial(trKrhs[index],trKrhsL); + vec_store_nta_partial(Xt1rhs[index],Xt1rhsL); + vec_store_nta_partial(Xt2rhs[index],Xt2rhsL); + vec_store_nta_partial(Xt3rhs[index],Xt3rhsL); + } + LC_ENDLOOP3VEC(ML_CCZ4_RHSStaticBoundary); +} + +extern "C" void ML_CCZ4_RHSStaticBoundary(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_RHSStaticBoundary_Body"); + } + + if (cctk_iteration % ML_CCZ4_RHSStaticBoundary_calc_every != ML_CCZ4_RHSStaticBoundary_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curvrhs", + "ML_CCZ4::ML_dtlapserhs", + "ML_CCZ4::ML_dtshiftrhs", + "ML_CCZ4::ML_Gammarhs", + "ML_CCZ4::ML_lapserhs", + "ML_CCZ4::ML_log_confacrhs", + "ML_CCZ4::ML_metricrhs", + "ML_CCZ4::ML_shiftrhs", + "ML_CCZ4::ML_Thetarhs", + "ML_CCZ4::ML_trace_curvrhs"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_RHSStaticBoundary", 10, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverBoundary(cctkGH, ML_CCZ4_RHSStaticBoundary_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_RHSStaticBoundary_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_boundary.cc b/ML_CCZ4/src/ML_CCZ4_boundary.cc new file mode 100644 index 0000000..e5aeddd --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_boundary.cc @@ -0,0 +1,398 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_boundary_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_curv","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_curv."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtlapse","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtlapse."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtshift","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtshift."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Gamma","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Gamma."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_lapse","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_lapse."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_log_confac","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_log_confac."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_metric","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_metric."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_shift","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_shift."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Theta","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Theta."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_trace_curv","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_trace_curv."); + return; +} + +static void ML_CCZ4_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_boundary, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + + + + /* 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 == 1,ToReal(1),ToReal(0)); + + CCTK_REAL_VEC gt11L = ToReal(1); + + CCTK_REAL_VEC gt12L = ToReal(0); + + CCTK_REAL_VEC gt13L = ToReal(0); + + CCTK_REAL_VEC gt22L = ToReal(1); + + CCTK_REAL_VEC gt23L = ToReal(0); + + CCTK_REAL_VEC gt33L = ToReal(1); + + CCTK_REAL_VEC trKL = ToReal(0); + + CCTK_REAL_VEC At11L = ToReal(0); + + CCTK_REAL_VEC At12L = ToReal(0); + + CCTK_REAL_VEC At13L = ToReal(0); + + CCTK_REAL_VEC At22L = ToReal(0); + + CCTK_REAL_VEC At23L = ToReal(0); + + CCTK_REAL_VEC At33L = ToReal(0); + + CCTK_REAL_VEC Xt1L = ToReal(0); + + CCTK_REAL_VEC Xt2L = ToReal(0); + + CCTK_REAL_VEC Xt3L = ToReal(0); + + CCTK_REAL_VEC alphaL = ToReal(1); + + CCTK_REAL_VEC AL = ToReal(0); + + CCTK_REAL_VEC beta1L = ToReal(0); + + CCTK_REAL_VEC beta2L = ToReal(0); + + CCTK_REAL_VEC beta3L = ToReal(0); + + CCTK_REAL_VEC B1L = ToReal(0); + + CCTK_REAL_VEC B2L = ToReal(0); + + CCTK_REAL_VEC B3L = ToReal(0); + + CCTK_REAL_VEC ThetaL = ToReal(0); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(A[index],AL); + vec_store_nta_partial(alpha[index],alphaL); + vec_store_nta_partial(At11[index],At11L); + vec_store_nta_partial(At12[index],At12L); + vec_store_nta_partial(At13[index],At13L); + vec_store_nta_partial(At22[index],At22L); + vec_store_nta_partial(At23[index],At23L); + vec_store_nta_partial(At33[index],At33L); + vec_store_nta_partial(B1[index],B1L); + vec_store_nta_partial(B2[index],B2L); + vec_store_nta_partial(B3[index],B3L); + vec_store_nta_partial(beta1[index],beta1L); + vec_store_nta_partial(beta2[index],beta2L); + vec_store_nta_partial(beta3[index],beta3L); + vec_store_nta_partial(gt11[index],gt11L); + vec_store_nta_partial(gt12[index],gt12L); + vec_store_nta_partial(gt13[index],gt13L); + vec_store_nta_partial(gt22[index],gt22L); + vec_store_nta_partial(gt23[index],gt23L); + vec_store_nta_partial(gt33[index],gt33L); + vec_store_nta_partial(phi[index],phiL); + vec_store_nta_partial(Theta[index],ThetaL); + vec_store_nta_partial(trK[index],trKL); + vec_store_nta_partial(Xt1[index],Xt1L); + vec_store_nta_partial(Xt2[index],Xt2L); + vec_store_nta_partial(Xt3[index],Xt3L); + } + LC_ENDLOOP3VEC(ML_CCZ4_boundary); +} + +extern "C" void ML_CCZ4_boundary(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_boundary_Body"); + } + + if (cctk_iteration % ML_CCZ4_boundary_calc_every != ML_CCZ4_boundary_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_boundary", 10, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverBoundaryWithGhosts(cctkGH, ML_CCZ4_boundary_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_boundary_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_constraints1.cc b/ML_CCZ4/src/ML_CCZ4_constraints1.cc new file mode 100644 index 0000000..0877287 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_constraints1.cc @@ -0,0 +1,1662 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_constraints1_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Ham","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Ham."); + return; +} + +static void ML_CCZ4_constraints1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_constraints1, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC At11L = vec_load(At11[index]); + CCTK_REAL_VEC At12L = vec_load(At12[index]); + CCTK_REAL_VEC At13L = vec_load(At13[index]); + CCTK_REAL_VEC At22L = vec_load(At22[index]); + CCTK_REAL_VEC At23L = vec_load(At23[index]); + CCTK_REAL_VEC At33L = vec_load(At33[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + + CCTK_REAL_VEC eTttL, eTtxL, eTtyL, eTtzL, eTxxL, eTxyL, eTxzL, eTyyL, eTyzL, eTzzL; + + if (*stress_energy_state) + { + eTttL = vec_load(eTtt[index]); + eTtxL = vec_load(eTtx[index]); + eTtyL = vec_load(eTty[index]); + eTtzL = vec_load(eTtz[index]); + eTxxL = vec_load(eTxx[index]); + eTxyL = vec_load(eTxy[index]); + eTxzL = vec_load(eTxz[index]); + eTyyL = vec_load(eTyy[index]); + eTyzL = vec_load(eTyz[index]); + eTzzL = vec_load(eTzz[index]); + } + else + { + eTttL = ToReal(0.0); + eTtxL = ToReal(0.0); + eTtyL = ToReal(0.0); + eTtzL = ToReal(0.0); + eTxxL = ToReal(0.0); + eTxyL = ToReal(0.0); + eTxzL = ToReal(0.0); + eTyyL = ToReal(0.0); + eTyzL = ToReal(0.0); + 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 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))); + + CCTK_REAL_VEC gtu12 = + kmul(INV(detgt),kmsub(gt13L,gt23L,kmul(gt12L,gt33L))); + + CCTK_REAL_VEC gtu13 = + kmul(INV(detgt),kmsub(gt12L,gt23L,kmul(gt13L,gt22L))); + + CCTK_REAL_VEC gtu22 = + kmul(INV(detgt),kmsub(gt11L,gt33L,SQR(gt13L))); + + CCTK_REAL_VEC gtu23 = + kmul(INV(detgt),kmsub(gt12L,gt13L,kmul(gt11L,gt23L))); + + CCTK_REAL_VEC gtu33 = + kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); + + CCTK_REAL_VEC Gtl111 = kmul(JacPDstandardNth1gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl112 = kmul(JacPDstandardNth2gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl113 = kmul(JacPDstandardNth3gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl122 = + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); + + CCTK_REAL_VEC Gtl123 = + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl133 = + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); + + CCTK_REAL_VEC Gtl211 = + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); + + CCTK_REAL_VEC Gtl212 = kmul(JacPDstandardNth1gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl213 = + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl222 = kmul(JacPDstandardNth2gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl223 = kmul(JacPDstandardNth3gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl233 = + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); + + CCTK_REAL_VEC Gtl311 = + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); + + CCTK_REAL_VEC Gtl312 = + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl313 = kmul(JacPDstandardNth1gt33,ToReal(0.5)); + + CCTK_REAL_VEC Gtl322 = + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); + + CCTK_REAL_VEC Gtl323 = kmul(JacPDstandardNth2gt33,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))); + + CCTK_REAL_VEC Gtlu112 = + kmadd(Gtl111,gtu12,kmadd(Gtl112,gtu22,kmul(Gtl113,gtu23))); + + CCTK_REAL_VEC Gtlu113 = + kmadd(Gtl111,gtu13,kmadd(Gtl112,gtu23,kmul(Gtl113,gtu33))); + + CCTK_REAL_VEC Gtlu121 = + kmadd(Gtl112,gtu11,kmadd(Gtl122,gtu12,kmul(Gtl123,gtu13))); + + CCTK_REAL_VEC Gtlu122 = + kmadd(Gtl112,gtu12,kmadd(Gtl122,gtu22,kmul(Gtl123,gtu23))); + + CCTK_REAL_VEC Gtlu123 = + kmadd(Gtl112,gtu13,kmadd(Gtl122,gtu23,kmul(Gtl123,gtu33))); + + CCTK_REAL_VEC Gtlu131 = + kmadd(Gtl113,gtu11,kmadd(Gtl123,gtu12,kmul(Gtl133,gtu13))); + + CCTK_REAL_VEC Gtlu132 = + kmadd(Gtl113,gtu12,kmadd(Gtl123,gtu22,kmul(Gtl133,gtu23))); + + CCTK_REAL_VEC Gtlu133 = + kmadd(Gtl113,gtu13,kmadd(Gtl123,gtu23,kmul(Gtl133,gtu33))); + + CCTK_REAL_VEC Gtlu211 = + kmadd(Gtl211,gtu11,kmadd(Gtl212,gtu12,kmul(Gtl213,gtu13))); + + CCTK_REAL_VEC Gtlu212 = + kmadd(Gtl211,gtu12,kmadd(Gtl212,gtu22,kmul(Gtl213,gtu23))); + + CCTK_REAL_VEC Gtlu213 = + kmadd(Gtl211,gtu13,kmadd(Gtl212,gtu23,kmul(Gtl213,gtu33))); + + CCTK_REAL_VEC Gtlu221 = + kmadd(Gtl212,gtu11,kmadd(Gtl222,gtu12,kmul(Gtl223,gtu13))); + + CCTK_REAL_VEC Gtlu222 = + kmadd(Gtl212,gtu12,kmadd(Gtl222,gtu22,kmul(Gtl223,gtu23))); + + CCTK_REAL_VEC Gtlu223 = + kmadd(Gtl212,gtu13,kmadd(Gtl222,gtu23,kmul(Gtl223,gtu33))); + + CCTK_REAL_VEC Gtlu231 = + kmadd(Gtl213,gtu11,kmadd(Gtl223,gtu12,kmul(Gtl233,gtu13))); + + CCTK_REAL_VEC Gtlu232 = + kmadd(Gtl213,gtu12,kmadd(Gtl223,gtu22,kmul(Gtl233,gtu23))); + + CCTK_REAL_VEC Gtlu233 = + kmadd(Gtl213,gtu13,kmadd(Gtl223,gtu23,kmul(Gtl233,gtu33))); + + CCTK_REAL_VEC Gtlu311 = + kmadd(Gtl311,gtu11,kmadd(Gtl312,gtu12,kmul(Gtl313,gtu13))); + + CCTK_REAL_VEC Gtlu312 = + kmadd(Gtl311,gtu12,kmadd(Gtl312,gtu22,kmul(Gtl313,gtu23))); + + CCTK_REAL_VEC Gtlu313 = + kmadd(Gtl311,gtu13,kmadd(Gtl312,gtu23,kmul(Gtl313,gtu33))); + + CCTK_REAL_VEC Gtlu321 = + kmadd(Gtl312,gtu11,kmadd(Gtl322,gtu12,kmul(Gtl323,gtu13))); + + CCTK_REAL_VEC Gtlu322 = + kmadd(Gtl312,gtu12,kmadd(Gtl322,gtu22,kmul(Gtl323,gtu23))); + + CCTK_REAL_VEC Gtlu323 = + kmadd(Gtl312,gtu13,kmadd(Gtl322,gtu23,kmul(Gtl323,gtu33))); + + CCTK_REAL_VEC Gtlu331 = + kmadd(Gtl313,gtu11,kmadd(Gtl323,gtu12,kmul(Gtl333,gtu13))); + + CCTK_REAL_VEC Gtlu332 = + kmadd(Gtl313,gtu12,kmadd(Gtl323,gtu22,kmul(Gtl333,gtu23))); + + CCTK_REAL_VEC Gtlu333 = + kmadd(Gtl313,gtu13,kmadd(Gtl323,gtu23,kmul(Gtl333,gtu33))); + + CCTK_REAL_VEC Gt111 = + kmadd(Gtl111,gtu11,kmadd(Gtl211,gtu12,kmul(Gtl311,gtu13))); + + CCTK_REAL_VEC Gt211 = + kmadd(Gtl111,gtu12,kmadd(Gtl211,gtu22,kmul(Gtl311,gtu23))); + + CCTK_REAL_VEC Gt311 = + kmadd(Gtl111,gtu13,kmadd(Gtl211,gtu23,kmul(Gtl311,gtu33))); + + CCTK_REAL_VEC Gt112 = + kmadd(Gtl112,gtu11,kmadd(Gtl212,gtu12,kmul(Gtl312,gtu13))); + + CCTK_REAL_VEC Gt212 = + kmadd(Gtl112,gtu12,kmadd(Gtl212,gtu22,kmul(Gtl312,gtu23))); + + CCTK_REAL_VEC Gt312 = + kmadd(Gtl112,gtu13,kmadd(Gtl212,gtu23,kmul(Gtl312,gtu33))); + + CCTK_REAL_VEC Gt113 = + kmadd(Gtl113,gtu11,kmadd(Gtl213,gtu12,kmul(Gtl313,gtu13))); + + CCTK_REAL_VEC Gt213 = + kmadd(Gtl113,gtu12,kmadd(Gtl213,gtu22,kmul(Gtl313,gtu23))); + + CCTK_REAL_VEC Gt313 = + kmadd(Gtl113,gtu13,kmadd(Gtl213,gtu23,kmul(Gtl313,gtu33))); + + CCTK_REAL_VEC Gt122 = + kmadd(Gtl122,gtu11,kmadd(Gtl222,gtu12,kmul(Gtl322,gtu13))); + + CCTK_REAL_VEC Gt222 = + kmadd(Gtl122,gtu12,kmadd(Gtl222,gtu22,kmul(Gtl322,gtu23))); + + CCTK_REAL_VEC Gt322 = + kmadd(Gtl122,gtu13,kmadd(Gtl222,gtu23,kmul(Gtl322,gtu33))); + + CCTK_REAL_VEC Gt123 = + kmadd(Gtl123,gtu11,kmadd(Gtl223,gtu12,kmul(Gtl323,gtu13))); + + CCTK_REAL_VEC Gt223 = + kmadd(Gtl123,gtu12,kmadd(Gtl223,gtu22,kmul(Gtl323,gtu23))); + + CCTK_REAL_VEC Gt323 = + kmadd(Gtl123,gtu13,kmadd(Gtl223,gtu23,kmul(Gtl323,gtu33))); + + CCTK_REAL_VEC Gt133 = + kmadd(Gtl133,gtu11,kmadd(Gtl233,gtu12,kmul(Gtl333,gtu13))); + + CCTK_REAL_VEC Gt233 = + kmadd(Gtl133,gtu12,kmadd(Gtl233,gtu22,kmul(Gtl333,gtu23))); + + CCTK_REAL_VEC Gt333 = + kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); + + CCTK_REAL_VEC Xtn1 = + kmadd(Gt111,gtu11,kmadd(Gt122,gtu22,kmadd(Gt133,gtu33,kmul(kmadd(Gt112,gtu12,kmadd(Gt113,gtu13,kmul(Gt123,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC Xtn2 = + kmadd(Gt211,gtu11,kmadd(Gt222,gtu22,kmadd(Gt233,gtu33,kmul(kmadd(Gt212,gtu12,kmadd(Gt213,gtu13,kmul(Gt223,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC Xtn3 = + kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC e4phi = IfThen(conformalMethod == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + CCTK_REAL_VEC em4phi = INV(e4phi); + + CCTK_REAL_VEC g11 = kmul(gt11L,e4phi); + + CCTK_REAL_VEC g12 = kmul(gt12L,e4phi); + + CCTK_REAL_VEC g13 = kmul(gt13L,e4phi); + + CCTK_REAL_VEC g22 = kmul(gt22L,e4phi); + + CCTK_REAL_VEC g23 = kmul(gt23L,e4phi); + + CCTK_REAL_VEC g33 = kmul(gt33L,e4phi); + + CCTK_REAL_VEC gu11 = kmul(em4phi,gtu11); + + CCTK_REAL_VEC gu12 = kmul(em4phi,gtu12); + + CCTK_REAL_VEC gu13 = kmul(em4phi,gtu13); + + CCTK_REAL_VEC gu22 = kmul(em4phi,gtu22); + + CCTK_REAL_VEC gu23 = kmul(em4phi,gtu23); + + CCTK_REAL_VEC gu33 = kmul(em4phi,gtu33); + + CCTK_REAL_VEC Z1 = + kneg(kmul(kmadd(gu11,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu13,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu12,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Z2 = + kneg(kmul(kmadd(gu12,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu23,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu22,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Z3 = + kneg(kmul(kmadd(gu13,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,JacPDstandardNth1gt13,kmadd(gtu12,kadd(JacPDstandardNth1gt12,JacPDstandardNth2gt11),kmadd(gtu22,JacPDstandardNth2gt12,kmadd(gtu23,JacPDstandardNth2gt13,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,JacPDstandardNth3gt12,kmsub(gtu33,JacPDstandardNth3gt13,kmadd(gt11L,Xt1L,kmadd(gt13L,Xt3L,kmul(gt12L,Xt2L))))))))))),kmadd(gu33,kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu12,kadd(JacPDstandardNth1gt23,JacPDstandardNth2gt13),kmadd(gtu22,JacPDstandardNth2gt23,kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu13,JacPDstandardNth3gt13,kmadd(gtu23,JacPDstandardNth3gt23,kmsub(gtu33,JacPDstandardNth3gt33,kmadd(gt13L,Xt1L,kmadd(gt33L,Xt3L,kmul(gt23L,Xt2L))))))))))),kmul(gu23,kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt23,kmadd(gtu12,kadd(JacPDstandardNth1gt22,JacPDstandardNth2gt12),kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,JacPDstandardNth2gt23,kmadd(gtu13,JacPDstandardNth3gt12,kmadd(gtu23,JacPDstandardNth3gt22,kmsub(gtu33,JacPDstandardNth3gt23,kmadd(gt12L,Xt1L,kmadd(gt23L,Xt3L,kmul(gt22L,Xt2L)))))))))))))),ToReal(0.5))); + + CCTK_REAL_VEC Rt11 = + 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,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,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),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,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),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 == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + + CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); + + CCTK_REAL_VEC cdphi2 = kmul(fac1,JacPDstandardNth2phi); + + CCTK_REAL_VEC cdphi3 = kmul(fac1,JacPDstandardNth3phi); + + CCTK_REAL_VEC fac2 = IfThen(conformalMethod == + 1,kmul(INV(SQR(phiL)),ToReal(0.5)),ToReal(0)); + + CCTK_REAL_VEC cdphi211 = + kmadd(fac2,SQR(JacPDstandardNth1phi),kmul(fac1,ksub(JacPDstandardNth11phi,kmadd(Gt111,JacPDstandardNth1phi,kmadd(Gt311,JacPDstandardNth3phi,kmul(Gt211,JacPDstandardNth2phi)))))); + + CCTK_REAL_VEC cdphi212 = + kmadd(fac2,kmul(JacPDstandardNth1phi,JacPDstandardNth2phi),kmul(fac1,ksub(JacPDstandardNth12phi,kmadd(Gt112,JacPDstandardNth1phi,kmadd(Gt312,JacPDstandardNth3phi,kmul(Gt212,JacPDstandardNth2phi)))))); + + CCTK_REAL_VEC cdphi213 = + 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(JacPDstandardNth2phi),kmul(fac1,kmadd(Gt122,JacPDstandardNth1phi,kmadd(Gt222,JacPDstandardNth2phi,kmsub(Gt322,JacPDstandardNth3phi,JacPDstandardNth22phi))))); + + CCTK_REAL_VEC cdphi223 = + kmsub(fac2,kmul(JacPDstandardNth2phi,JacPDstandardNth3phi),kmul(fac1,kmadd(Gt123,JacPDstandardNth1phi,kmadd(Gt223,JacPDstandardNth2phi,kmsub(Gt323,JacPDstandardNth3phi,JacPDstandardNth23phi))))); + + CCTK_REAL_VEC cdphi233 = + 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)))))))))); + + CCTK_REAL_VEC Rphi12 = + kmul(ToReal(-2),kadd(cdphi212,kmadd(gt12L,kmadd(cdphi211,gtu11,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu11,SQR(cdphi1))))),ToReal(2),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi2,kmul(cdphi3,kmul(gtu23,ToReal(4)))))))),kmul(cdphi1,kmadd(gt12L,kmul(cdphi3,kmul(gtu13,ToReal(4))),kmul(cdphi2,kmadd(gt12L,kmul(gtu12,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi13 = + kmul(ToReal(-2),kadd(cdphi213,kmadd(gt13L,kmadd(cdphi211,gtu11,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu11,SQR(cdphi1))))),ToReal(2),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi2,kmul(cdphi3,kmul(gtu23,ToReal(4)))))))),kmul(cdphi1,kmadd(gt13L,kmul(cdphi2,kmul(gtu12,ToReal(4))),kmul(cdphi3,kmadd(gt13L,kmul(gtu13,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi22 = + kmul(ToReal(-2),kadd(cdphi222,kmadd(SQR(cdphi2),kmul(kmadd(gt22L,gtu22,ToReal(-1)),ToReal(2)),kmul(gt22L,kmadd(cdphi222,gtu22,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu33,SQR(cdphi3))))),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmul(kmadd(cdphi1,kmul(cdphi3,gtu13),kmul(cdphi2,kmadd(cdphi1,gtu12,kmul(cdphi3,gtu23)))),ToReal(4)))))))))); + + CCTK_REAL_VEC Rphi23 = + kmul(ToReal(-2),kadd(cdphi223,kmadd(gt23L,kmadd(cdphi222,gtu22,kmadd(kmadd(cdphi212,gtu12,kmadd(cdphi213,gtu13,kmadd(cdphi223,gtu23,kmul(gtu22,SQR(cdphi2))))),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu33,kmadd(SQR(cdphi3),ToReal(2),cdphi233),kmul(cdphi1,kmul(cdphi3,kmul(gtu13,ToReal(4)))))))),kmul(cdphi2,kmadd(gt23L,kmul(cdphi1,kmul(gtu12,ToReal(4))),kmul(cdphi3,kmadd(gt23L,kmul(gtu23,ToReal(4)),ToReal(-2)))))))); + + CCTK_REAL_VEC Rphi33 = + kmul(ToReal(-2),kadd(cdphi233,kmadd(SQR(cdphi3),kmul(kmadd(gt33L,gtu33,ToReal(-1)),ToReal(2)),kmul(gt33L,kmadd(cdphi233,gtu33,kmadd(kmadd(cdphi213,gtu13,kmul(cdphi223,gtu23)),ToReal(2),kmadd(gtu11,kmadd(SQR(cdphi1),ToReal(2),cdphi211),kmadd(gtu22,kmadd(SQR(cdphi2),ToReal(2),cdphi222),kmadd(cdphi3,kmul(kmadd(cdphi1,gtu13,kmul(cdphi2,gtu23)),ToReal(4)),kmul(gtu12,kmadd(cdphi212,ToReal(2),kmul(cdphi1,kmul(cdphi2,ToReal(4)))))))))))))); + + CCTK_REAL_VEC R11 = kadd(Rphi11,Rt11); + + CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12); + + CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13); + + CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22); + + CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23); + + CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33); + + R11 = + kmadd(e4phi,kmadd(JacPDstandardNth1gt11,Z1,kmadd(JacPDstandardNth2gt11,Z2,kmul(JacPDstandardNth3gt11,Z3))),kmul(INV(phiL),kmadd(g11,kmul(kmadd(JacPDstandardNth2phi,Z2,kmul(JacPDstandardNth3phi,Z3)),ToReal(-2)),kmul(JacPDstandardNth1phi,kmadd(g11,kmul(Z1,ToReal(2)),kmul(kmadd(g12,Z2,kmul(g13,Z3)),ToReal(4))))))); + + R12 = + kmadd(e4phi,kmadd(JacPDstandardNth1gt12,Z1,kmadd(JacPDstandardNth2gt12,Z2,kmul(JacPDstandardNth3gt12,Z3))),kmul(INV(phiL),kmul(kmadd(JacPDstandardNth2phi,kmadd(g11,Z1,kmul(g13,Z3)),kmsub(JacPDstandardNth1phi,kmadd(g22,Z2,kmul(g23,Z3)),kmul(g12,kmul(JacPDstandardNth3phi,Z3)))),ToReal(2)))); + + R13 = + kmadd(e4phi,kmadd(JacPDstandardNth1gt13,Z1,kmadd(JacPDstandardNth2gt13,Z2,kmul(JacPDstandardNth3gt13,Z3))),kmul(INV(phiL),kmul(kmadd(JacPDstandardNth3phi,kmadd(g11,Z1,kmul(g12,Z2)),kmadd(g33,kmul(JacPDstandardNth1phi,Z3),kmul(Z2,kmsub(g23,JacPDstandardNth1phi,kmul(g13,JacPDstandardNth2phi))))),ToReal(2)))); + + R22 = + kmadd(e4phi,kmadd(JacPDstandardNth1gt22,Z1,kmadd(JacPDstandardNth2gt22,Z2,kmul(JacPDstandardNth3gt22,Z3))),kmul(INV(phiL),kmadd(g22,kmul(ToReal(-2),kmadd(JacPDstandardNth1phi,Z1,kmsub(JacPDstandardNth3phi,Z3,kmul(JacPDstandardNth2phi,Z2)))),kmul(JacPDstandardNth2phi,kmul(kmadd(g12,Z1,kmul(g23,Z3)),ToReal(4)))))); + + R23 = + kmadd(e4phi,kmadd(JacPDstandardNth1gt23,Z1,kmadd(JacPDstandardNth2gt23,Z2,kmul(JacPDstandardNth3gt23,Z3))),kmul(INV(phiL),kmul(kmadd(g22,kmul(JacPDstandardNth3phi,Z2),kmadd(g33,kmul(JacPDstandardNth2phi,Z3),kmul(Z1,kmadd(g13,JacPDstandardNth2phi,kmsub(g12,JacPDstandardNth3phi,kmul(g23,JacPDstandardNth1phi)))))),ToReal(2)))); + + R33 = + kmadd(e4phi,kmadd(JacPDstandardNth1gt33,Z1,kmadd(JacPDstandardNth2gt33,Z2,kmul(JacPDstandardNth3gt33,Z3))),kmul(INV(phiL),kmadd(g33,kmul(ToReal(-2),kmadd(JacPDstandardNth1phi,Z1,kmsub(JacPDstandardNth2phi,Z2,kmul(JacPDstandardNth3phi,Z3)))),kmul(JacPDstandardNth3phi,kmul(kmadd(g13,Z1,kmul(g23,Z2)),ToReal(4)))))); + + CCTK_REAL_VEC trR = + kmadd(gu11,R11,kmadd(gu22,R22,kmadd(gu33,R33,kmul(kmadd(gu12,R12,kmadd(gu13,R13,kmul(gu23,R23))),ToReal(2))))); + + CCTK_REAL_VEC Atm11 = + kmadd(At11L,gtu11,kmadd(At12L,gtu12,kmul(At13L,gtu13))); + + CCTK_REAL_VEC Atm21 = + kmadd(At11L,gtu12,kmadd(At12L,gtu22,kmul(At13L,gtu23))); + + CCTK_REAL_VEC Atm31 = + kmadd(At11L,gtu13,kmadd(At12L,gtu23,kmul(At13L,gtu33))); + + CCTK_REAL_VEC Atm12 = + kmadd(At12L,gtu11,kmadd(At22L,gtu12,kmul(At23L,gtu13))); + + CCTK_REAL_VEC Atm22 = + kmadd(At12L,gtu12,kmadd(At22L,gtu22,kmul(At23L,gtu23))); + + CCTK_REAL_VEC Atm32 = + kmadd(At12L,gtu13,kmadd(At22L,gtu23,kmul(At23L,gtu33))); + + CCTK_REAL_VEC Atm13 = + kmadd(At13L,gtu11,kmadd(At23L,gtu12,kmul(At33L,gtu13))); + + CCTK_REAL_VEC Atm23 = + kmadd(At13L,gtu12,kmadd(At23L,gtu22,kmul(At33L,gtu23))); + + CCTK_REAL_VEC Atm33 = + kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); + + CCTK_REAL_VEC rho = + kmul(INV(SQR(alphaL)),kadd(eTttL,kmadd(eTxxL,SQR(beta1L),kmadd(eTyyL,SQR(beta2L),kmadd(eTzzL,SQR(beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2)))))))); + + CCTK_REAL_VEC HL = + kadd(trR,kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(-2),ksub(ksub(ksub(kmadd(SQR(trKL),ToReal(0.666666666666666666666666666667),kmul(rho,kmul(ToReal(-16),ToReal(Pi)))),SQR(Atm33)),SQR(Atm22)),SQR(Atm11)))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(H[index],HL); + } + LC_ENDLOOP3VEC(ML_CCZ4_constraints1); +} + +extern "C" void ML_CCZ4_constraints1(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_constraints1_Body"); + } + + if (cctk_iteration % ML_CCZ4_constraints1_calc_every != ML_CCZ4_constraints1_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_Ham", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_constraints1", 8, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_constraints1", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_constraints1", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_constraints1", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_constraints1", 4, 4, 4); + break; + } + + GenericFD_LoopOverInterior(cctkGH, ML_CCZ4_constraints1_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_constraints1_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_constraints2.cc b/ML_CCZ4/src/ML_CCZ4_constraints2.cc new file mode 100644 index 0000000..e5d87da --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_constraints2.cc @@ -0,0 +1,1004 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_constraints2_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_cons_detg","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_cons_detg."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_cons_Gamma","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_cons_Gamma."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_cons_traceA","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_cons_traceA."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_mom","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_mom."); + return; +} + +static void ML_CCZ4_constraints2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_constraints2, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC At11L = vec_load(At11[index]); + CCTK_REAL_VEC At12L = vec_load(At12[index]); + CCTK_REAL_VEC At13L = vec_load(At13[index]); + CCTK_REAL_VEC At22L = vec_load(At22[index]); + CCTK_REAL_VEC At23L = vec_load(At23[index]); + CCTK_REAL_VEC At33L = vec_load(At33[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + CCTK_REAL_VEC Xt3L = vec_load(Xt3[index]); + + CCTK_REAL_VEC eTtxL, eTtyL, eTtzL, eTxxL, eTxyL, eTxzL, eTyyL, eTyzL, eTzzL; + + if (*stress_energy_state) + { + eTtxL = vec_load(eTtx[index]); + eTtyL = vec_load(eTty[index]); + eTtzL = vec_load(eTtz[index]); + eTxxL = vec_load(eTxx[index]); + eTxyL = vec_load(eTxy[index]); + eTxzL = vec_load(eTxz[index]); + eTyyL = vec_load(eTyy[index]); + eTyzL = vec_load(eTyz[index]); + eTzzL = vec_load(eTzz[index]); + } + else + { + eTtxL = ToReal(0.0); + eTtyL = ToReal(0.0); + eTtzL = ToReal(0.0); + eTxxL = ToReal(0.0); + eTxyL = ToReal(0.0); + eTxzL = ToReal(0.0); + eTyyL = ToReal(0.0); + eTyzL = ToReal(0.0); + 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 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))); + + CCTK_REAL_VEC gtu12 = + kmul(INV(detgt),kmsub(gt13L,gt23L,kmul(gt12L,gt33L))); + + CCTK_REAL_VEC gtu13 = + kmul(INV(detgt),kmsub(gt12L,gt23L,kmul(gt13L,gt22L))); + + CCTK_REAL_VEC gtu22 = + kmul(INV(detgt),kmsub(gt11L,gt33L,SQR(gt13L))); + + CCTK_REAL_VEC gtu23 = + kmul(INV(detgt),kmsub(gt12L,gt13L,kmul(gt11L,gt23L))); + + CCTK_REAL_VEC gtu33 = + kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); + + CCTK_REAL_VEC Gtl111 = kmul(JacPDstandardNth1gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl112 = kmul(JacPDstandardNth2gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl113 = kmul(JacPDstandardNth3gt11,ToReal(0.5)); + + CCTK_REAL_VEC Gtl122 = + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); + + CCTK_REAL_VEC Gtl123 = + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl133 = + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); + + CCTK_REAL_VEC Gtl211 = + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); + + CCTK_REAL_VEC Gtl212 = kmul(JacPDstandardNth1gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl213 = + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl222 = kmul(JacPDstandardNth2gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl223 = kmul(JacPDstandardNth3gt22,ToReal(0.5)); + + CCTK_REAL_VEC Gtl233 = + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); + + CCTK_REAL_VEC Gtl311 = + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); + + CCTK_REAL_VEC Gtl312 = + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); + + CCTK_REAL_VEC Gtl313 = kmul(JacPDstandardNth1gt33,ToReal(0.5)); + + CCTK_REAL_VEC Gtl322 = + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); + + CCTK_REAL_VEC Gtl323 = kmul(JacPDstandardNth2gt33,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))); + + CCTK_REAL_VEC Gt211 = + kmadd(Gtl111,gtu12,kmadd(Gtl211,gtu22,kmul(Gtl311,gtu23))); + + CCTK_REAL_VEC Gt311 = + kmadd(Gtl111,gtu13,kmadd(Gtl211,gtu23,kmul(Gtl311,gtu33))); + + CCTK_REAL_VEC Gt112 = + kmadd(Gtl112,gtu11,kmadd(Gtl212,gtu12,kmul(Gtl312,gtu13))); + + CCTK_REAL_VEC Gt212 = + kmadd(Gtl112,gtu12,kmadd(Gtl212,gtu22,kmul(Gtl312,gtu23))); + + CCTK_REAL_VEC Gt312 = + kmadd(Gtl112,gtu13,kmadd(Gtl212,gtu23,kmul(Gtl312,gtu33))); + + CCTK_REAL_VEC Gt113 = + kmadd(Gtl113,gtu11,kmadd(Gtl213,gtu12,kmul(Gtl313,gtu13))); + + CCTK_REAL_VEC Gt213 = + kmadd(Gtl113,gtu12,kmadd(Gtl213,gtu22,kmul(Gtl313,gtu23))); + + CCTK_REAL_VEC Gt313 = + kmadd(Gtl113,gtu13,kmadd(Gtl213,gtu23,kmul(Gtl313,gtu33))); + + CCTK_REAL_VEC Gt122 = + kmadd(Gtl122,gtu11,kmadd(Gtl222,gtu12,kmul(Gtl322,gtu13))); + + CCTK_REAL_VEC Gt222 = + kmadd(Gtl122,gtu12,kmadd(Gtl222,gtu22,kmul(Gtl322,gtu23))); + + CCTK_REAL_VEC Gt322 = + kmadd(Gtl122,gtu13,kmadd(Gtl222,gtu23,kmul(Gtl322,gtu33))); + + CCTK_REAL_VEC Gt123 = + kmadd(Gtl123,gtu11,kmadd(Gtl223,gtu12,kmul(Gtl323,gtu13))); + + CCTK_REAL_VEC Gt223 = + kmadd(Gtl123,gtu12,kmadd(Gtl223,gtu22,kmul(Gtl323,gtu23))); + + CCTK_REAL_VEC Gt323 = + kmadd(Gtl123,gtu13,kmadd(Gtl223,gtu23,kmul(Gtl323,gtu33))); + + CCTK_REAL_VEC Gt133 = + kmadd(Gtl133,gtu11,kmadd(Gtl233,gtu12,kmul(Gtl333,gtu13))); + + CCTK_REAL_VEC Gt233 = + kmadd(Gtl133,gtu12,kmadd(Gtl233,gtu22,kmul(Gtl333,gtu23))); + + CCTK_REAL_VEC Gt333 = + kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); + + CCTK_REAL_VEC fac1 = IfThen(conformalMethod == + 1,kmul(INV(phiL),ToReal(-0.5)),ToReal(1)); + + CCTK_REAL_VEC cdphi1 = kmul(fac1,JacPDstandardNth1phi); + + CCTK_REAL_VEC cdphi2 = kmul(fac1,JacPDstandardNth2phi); + + CCTK_REAL_VEC cdphi3 = kmul(fac1,JacPDstandardNth3phi); + + CCTK_REAL_VEC S1 = + kmul(INV(alphaL),kmadd(beta1L,eTxxL,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))); + + CCTK_REAL_VEC S2 = + kmul(INV(alphaL),kmadd(beta1L,eTxyL,kmadd(beta2L,eTyyL,kmsub(beta3L,eTyzL,eTtyL)))); + + CCTK_REAL_VEC S3 = + kmul(INV(alphaL),kmadd(beta1L,eTxzL,kmadd(beta2L,eTyzL,kmsub(beta3L,eTzzL,eTtzL)))); + + CCTK_REAL_VEC M1L = + kmadd(gtu11,JacPDstandardNth1At11,kmadd(gtu12,JacPDstandardNth2At11,kmadd(gtu22,JacPDstandardNth2At12,kmadd(gtu23,JacPDstandardNth2At13,kmadd(gtu13,JacPDstandardNth3At11,kmadd(gtu23,JacPDstandardNth3At12,kmadd(gtu33,JacPDstandardNth3At13,kmadd(gtu12,kadd(JacPDstandardNth1At12,kmsub(At13L,kmul(Gt312,ToReal(-3)),kmul(At22L,Gt211))),kmadd(gtu13,kadd(JacPDstandardNth1At13,kmsub(At13L,kmul(Gt313,ToReal(-3)),kmul(At23L,Gt211))),knmsub(gtu22,kmadd(At23L,Gt312,kmul(At22L,Gt212)),kmadd(Gt311,kmsub(At13L,kmul(gtu11,ToReal(-2)),kmadd(At33L,gtu13,kmul(At23L,gtu12))),kmadd(At13L,kmsub(Gt323,kmul(gtu23,ToReal(-2)),kmul(Gt113,gtu33)),kmadd(JacPDstandardNth1trK,ToReal(-0.666666666666666666666666666667),knmsub(At12L,kmadd(Gt111,gtu12,kmadd(Gt112,gtu22,kmadd(Gt222,gtu22,kmadd(Gt113,gtu23,kmadd(Gt233,gtu33,kmadd(cdphi1,kmul(gtu12,ToReal(-6)),kmadd(cdphi2,kmul(gtu22,ToReal(-6)),kmadd(cdphi3,kmul(gtu23,ToReal(-6)),kmadd(Gt211,kmul(gtu11,ToReal(2)),kmadd(Gt223,kmul(gtu23,ToReal(2)),kmadd(Gt212,kmul(gtu12,ToReal(3)),kmul(Gt213,kmul(gtu13,ToReal(3)))))))))))))),kmadd(gtu23,knmsub(At22L,Gt213,knmsub(At33L,Gt312,kmsub(At13L,kmul(cdphi2,ToReal(6)),kmul(At23L,kadd(Gt313,Gt212))))),kmadd(gtu33,knmsub(At23L,Gt213,kmsub(At13L,kmul(cdphi3,ToReal(6)),kmul(At33L,Gt313))),kmadd(At11L,kmadd(Gt112,kmul(gtu12,ToReal(-3)),kmadd(Gt113,kmul(gtu13,ToReal(-3)),kmadd(Gt111,kmul(gtu11,ToReal(-2)),kmadd(Gt123,kmul(gtu23,ToReal(-2)),knmsub(Gt122,gtu22,knmsub(Gt133,gtu33,kmadd(cdphi1,kmul(gtu11,ToReal(6)),kmadd(cdphi2,kmul(gtu12,ToReal(6)),kmul(cdphi3,kmul(gtu13,ToReal(6))))))))))),kmadd(At13L,knmsub(Gt322,gtu22,knmsub(Gt112,gtu23,kmsub(gtu13,kmsub(cdphi1,ToReal(6),Gt111),kmul(Gt333,gtu33)))),kmul(S1,kmul(ToReal(-8),ToReal(Pi))))))))))))))))))))); + + CCTK_REAL_VEC M2L = + kmadd(gtu11,JacPDstandardNth1At12,kmadd(gtu12,JacPDstandardNth1At22,kmadd(gtu13,JacPDstandardNth1At23,kmadd(gtu12,JacPDstandardNth2At12,kmadd(gtu22,JacPDstandardNth2At22,kmadd(gtu23,JacPDstandardNth2At23,kmadd(gtu13,JacPDstandardNth3At12,kmadd(gtu23,JacPDstandardNth3At22,kmadd(gtu33,JacPDstandardNth3At23,kmadd(At22L,kmul(Gt222,kmul(gtu22,ToReal(-2))),knmsub(At11L,kmadd(Gt112,gtu11,kmadd(Gt122,gtu12,kmul(Gt123,gtu13))),knmsub(gtu11,kmadd(At22L,Gt211,kmadd(At13L,Gt312,kmul(At23L,Gt311))),kmadd(Gt212,kmsub(At22L,kmul(gtu12,ToReal(-3)),kmul(At23L,gtu13)),kmadd(Gt312,kmsub(At23L,kmul(gtu12,ToReal(-3)),kmul(At33L,gtu13)),kmadd(Gt322,kmsub(At23L,kmul(gtu22,ToReal(-2)),kmul(At33L,gtu23)),kmadd(Gt223,kmsub(At22L,kmul(gtu23,ToReal(-3)),kmul(At23L,gtu33)),kmadd(Gt323,kmsub(At23L,kmul(gtu23,ToReal(-3)),kmul(At33L,gtu33)),kmadd(At22L,kmsub(Gt213,kmul(gtu13,ToReal(-2)),kmul(Gt233,gtu33)),kmadd(At23L,kmsub(Gt313,kmul(gtu13,ToReal(-2)),kmadd(Gt333,gtu33,kmul(Gt222,gtu23))),kmadd(JacPDstandardNth2trK,ToReal(-0.666666666666666666666666666667),kmadd(At22L,kmul(cdphi2,kmul(gtu22,ToReal(6))),kmadd(At22L,kmul(cdphi3,kmul(gtu23,ToReal(6))),kmadd(gtu12,kmsub(At22L,kmul(cdphi1,ToReal(6)),kmul(At13L,Gt322)),kmadd(gtu13,kmsub(At23L,kmul(cdphi1,ToReal(6)),kmul(At13L,kadd(Gt323,Gt112))),kmadd(gtu23,kmsub(At23L,kmul(cdphi2,ToReal(6)),kmul(At13L,Gt122)),kmadd(gtu33,kmsub(At23L,kmul(cdphi3,ToReal(6)),kmul(At13L,Gt123)),kmadd(At12L,kmadd(Gt112,kmul(gtu12,ToReal(-3)),kmadd(Gt123,kmul(gtu23,ToReal(-3)),kmadd(Gt113,kmul(gtu13,ToReal(-2)),kmadd(Gt122,kmul(gtu22,ToReal(-2)),knmsub(Gt133,gtu33,kmadd(gtu11,ksub(kmsub(cdphi1,ToReal(6),Gt212),Gt111),kmadd(gtu12,kmsub(cdphi2,ToReal(6),Gt222),kmul(gtu13,kmsub(cdphi3,ToReal(6),Gt223))))))))),kmul(S2,kmul(ToReal(-8),ToReal(Pi)))))))))))))))))))))))))))))); + + CCTK_REAL_VEC M3L = + kmadd(gtu11,JacPDstandardNth1At13,kmadd(gtu12,JacPDstandardNth1At23,kmadd(gtu13,JacPDstandardNth1At33,kmadd(gtu12,JacPDstandardNth2At13,kmadd(gtu22,JacPDstandardNth2At23,kmadd(gtu23,JacPDstandardNth2At33,kmadd(gtu13,JacPDstandardNth3At13,kmadd(gtu23,JacPDstandardNth3At23,kmadd(gtu33,JacPDstandardNth3At33,kmadd(At33L,kmul(Gt313,kmul(gtu13,ToReal(-3))),kmadd(At23L,kmul(Gt223,kmul(gtu23,ToReal(-3))),kmadd(At33L,kmul(Gt323,kmul(gtu23,ToReal(-3))),kmadd(At23L,kmul(Gt233,kmul(gtu33,ToReal(-2))),kmadd(At33L,kmul(Gt333,kmul(gtu33,ToReal(-2))),knmsub(At11L,kmadd(Gt113,gtu11,kmadd(Gt123,gtu12,kmul(Gt133,gtu13))),kmadd(gtu12,kmsub(At23L,kmul(Gt212,ToReal(-2)),kmul(At12L,Gt223)),knmsub(gtu11,kmadd(At23L,Gt211,kmadd(At33L,Gt311,kmul(At12L,Gt213))),kmadd(At33L,kmsub(Gt312,kmul(gtu12,ToReal(-2)),kmul(Gt322,gtu22)),kmadd(At23L,kmsub(Gt213,kmul(gtu13,ToReal(-3)),kmadd(Gt333,gtu23,kmul(Gt222,gtu22))),kmadd(JacPDstandardNth3trK,ToReal(-0.666666666666666666666666666667),kmadd(At33L,kmul(cdphi3,kmul(gtu33,ToReal(6))),kmadd(gtu13,kmsub(At33L,kmul(cdphi1,ToReal(6)),kmul(At12L,Gt233)),kmadd(gtu23,kmsub(At33L,kmul(cdphi2,ToReal(6)),kmul(At12L,Gt133)),kmadd(gtu23,kmsub(At23L,kmul(cdphi3,ToReal(6)),kmul(At22L,Gt233)),kmadd(gtu12,knmsub(At12L,Gt113,kmsub(At23L,kmsub(cdphi1,ToReal(6),Gt313),kmul(At22L,Gt213))),kmadd(gtu22,knmsub(At12L,Gt123,kmsub(At23L,kmsub(cdphi2,ToReal(6),Gt323),kmul(At22L,Gt223))),kmadd(At13L,kmadd(Gt113,kmul(gtu13,ToReal(-3)),kmadd(Gt123,kmul(gtu23,ToReal(-3)),kmadd(Gt112,kmul(gtu12,ToReal(-2)),kmadd(Gt133,kmul(gtu33,ToReal(-2)),knmsub(Gt122,gtu22,kmadd(gtu11,ksub(kmsub(cdphi1,ToReal(6),Gt313),Gt111),kmadd(gtu12,kmsub(cdphi2,ToReal(6),Gt323),kmul(gtu13,kmsub(cdphi3,ToReal(6),Gt333))))))))),kmul(S3,kmul(ToReal(-8),ToReal(Pi)))))))))))))))))))))))))))))); + + CCTK_REAL_VEC cSL = klog(detgt); + + CCTK_REAL_VEC cXt1L = + kmadd(Gt111,gtu11,kmadd(Gt122,gtu22,kmadd(Gt133,gtu33,kmsub(kmadd(Gt112,gtu12,kmadd(Gt113,gtu13,kmul(Gt123,gtu23))),ToReal(2),Xt1L)))); + + CCTK_REAL_VEC cXt2L = + kmadd(Gt211,gtu11,kmadd(Gt222,gtu22,kmadd(Gt233,gtu33,kmsub(kmadd(Gt212,gtu12,kmadd(Gt213,gtu13,kmul(Gt223,gtu23))),ToReal(2),Xt2L)))); + + CCTK_REAL_VEC cXt3L = + kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmsub(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2),Xt3L)))); + + CCTK_REAL_VEC cAL = + kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(cA[index],cAL); + vec_store_nta_partial(cS[index],cSL); + vec_store_nta_partial(cXt1[index],cXt1L); + vec_store_nta_partial(cXt2[index],cXt2L); + vec_store_nta_partial(cXt3[index],cXt3L); + vec_store_nta_partial(M1[index],M1L); + vec_store_nta_partial(M2[index],M2L); + vec_store_nta_partial(M3[index],M3L); + } + LC_ENDLOOP3VEC(ML_CCZ4_constraints2); +} + +extern "C" void ML_CCZ4_constraints2(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_constraints2_Body"); + } + + if (cctk_iteration % ML_CCZ4_constraints2_calc_every != ML_CCZ4_constraints2_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_cons_detg", + "ML_CCZ4::ML_cons_Gamma", + "ML_CCZ4::ML_cons_traceA", + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_mom", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_constraints2", 11, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_constraints2", 1, 1, 1); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_constraints2", 2, 2, 2); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_constraints2", 3, 3, 3); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_constraints2", 4, 4, 4); + break; + } + + GenericFD_LoopOverInterior(cctkGH, ML_CCZ4_constraints2_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_constraints2_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_convertFromADMBase.cc b/ML_CCZ4/src/ML_CCZ4_convertFromADMBase.cc new file mode 100644 index 0000000..d519cae --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_convertFromADMBase.cc @@ -0,0 +1,404 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +static void ML_CCZ4_convertFromADMBase_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_convertFromADMBase, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC alpL = vec_load(alp[index]); + CCTK_REAL_VEC betaxL = vec_load(betax[index]); + CCTK_REAL_VEC betayL = vec_load(betay[index]); + CCTK_REAL_VEC betazL = vec_load(betaz[index]); + CCTK_REAL_VEC gxxL = vec_load(gxx[index]); + CCTK_REAL_VEC gxyL = vec_load(gxy[index]); + CCTK_REAL_VEC gxzL = vec_load(gxz[index]); + CCTK_REAL_VEC gyyL = vec_load(gyy[index]); + CCTK_REAL_VEC gyzL = vec_load(gyz[index]); + CCTK_REAL_VEC gzzL = vec_load(gzz[index]); + CCTK_REAL_VEC kxxL = vec_load(kxx[index]); + CCTK_REAL_VEC kxyL = vec_load(kxy[index]); + CCTK_REAL_VEC kxzL = vec_load(kxz[index]); + CCTK_REAL_VEC kyyL = vec_load(kyy[index]); + CCTK_REAL_VEC kyzL = vec_load(kyz[index]); + CCTK_REAL_VEC kzzL = vec_load(kzz[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + 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; + + CCTK_REAL_VEC g12 = gxyL; + + CCTK_REAL_VEC g13 = gxzL; + + CCTK_REAL_VEC g22 = gyyL; + + CCTK_REAL_VEC g23 = gyzL; + + CCTK_REAL_VEC g33 = gzzL; + + CCTK_REAL_VEC detg = + knmsub(g22,SQR(g13),knmsub(g11,SQR(g23),kmadd(g33,kmsub(g11,g22,SQR(g12)),kmul(g12,kmul(g13,kmul(g23,ToReal(2))))))); + + CCTK_REAL_VEC gu11 = kmul(INV(detg),kmsub(g22,g33,SQR(g23))); + + CCTK_REAL_VEC gu12 = kmul(INV(detg),kmsub(g13,g23,kmul(g12,g33))); + + CCTK_REAL_VEC gu13 = kmul(INV(detg),kmsub(g12,g23,kmul(g13,g22))); + + CCTK_REAL_VEC gu22 = kmul(INV(detg),kmsub(g11,g33,SQR(g13))); + + CCTK_REAL_VEC gu23 = kmul(INV(detg),kmsub(g12,g13,kmul(g11,g23))); + + CCTK_REAL_VEC gu33 = kmul(INV(detg),kmsub(g11,g22,SQR(g12))); + + CCTK_REAL_VEC em4phi; + + if (conformalMethod == 1) + { + phiL = kpow(detg,-0.166666666666666666666666666667); + + em4phi = SQR(phiL); + } + else + { + phiL = kmul(klog(detg),ToReal(0.0833333333333333333333333333333)); + + em4phi = kexp(kmul(phiL,ToReal(-4))); + } + + CCTK_REAL_VEC gt11L = kmul(em4phi,g11); + + CCTK_REAL_VEC gt12L = kmul(em4phi,g12); + + CCTK_REAL_VEC gt13L = kmul(em4phi,g13); + + CCTK_REAL_VEC gt22L = kmul(em4phi,g22); + + CCTK_REAL_VEC gt23L = kmul(em4phi,g23); + + CCTK_REAL_VEC gt33L = kmul(em4phi,g33); + + trKL = + kmadd(kxxL,gu11,kmadd(kyyL,gu22,kmadd(kzzL,gu33,kmul(kmadd(kxyL,gu12,kmadd(kxzL,gu13,kmul(kyzL,gu23))),ToReal(2))))); + + CCTK_REAL_VEC At11L = + kmul(em4phi,kmadd(trKL,kmul(g11,ToReal(-0.333333333333333333333333333333)),kxxL)); + + CCTK_REAL_VEC At12L = + kmul(em4phi,kmadd(trKL,kmul(g12,ToReal(-0.333333333333333333333333333333)),kxyL)); + + CCTK_REAL_VEC At13L = + kmul(em4phi,kmadd(trKL,kmul(g13,ToReal(-0.333333333333333333333333333333)),kxzL)); + + CCTK_REAL_VEC At22L = + kmul(em4phi,kmadd(trKL,kmul(g22,ToReal(-0.333333333333333333333333333333)),kyyL)); + + CCTK_REAL_VEC At23L = + kmul(em4phi,kmadd(trKL,kmul(g23,ToReal(-0.333333333333333333333333333333)),kyzL)); + + CCTK_REAL_VEC At33L = + kmul(em4phi,kmadd(trKL,kmul(g33,ToReal(-0.333333333333333333333333333333)),kzzL)); + + CCTK_REAL_VEC alphaL = alpL; + + CCTK_REAL_VEC beta1L = betaxL; + + CCTK_REAL_VEC beta2L = betayL; + + CCTK_REAL_VEC beta3L = betazL; + + CCTK_REAL_VEC ThetaL = ToReal(0); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpha[index],alphaL); + vec_store_nta_partial(At11[index],At11L); + vec_store_nta_partial(At12[index],At12L); + vec_store_nta_partial(At13[index],At13L); + vec_store_nta_partial(At22[index],At22L); + vec_store_nta_partial(At23[index],At23L); + vec_store_nta_partial(At33[index],At33L); + vec_store_nta_partial(beta1[index],beta1L); + vec_store_nta_partial(beta2[index],beta2L); + vec_store_nta_partial(beta3[index],beta3L); + vec_store_nta_partial(gt11[index],gt11L); + vec_store_nta_partial(gt12[index],gt12L); + vec_store_nta_partial(gt13[index],gt13L); + vec_store_nta_partial(gt22[index],gt22L); + vec_store_nta_partial(gt23[index],gt23L); + vec_store_nta_partial(gt33[index],gt33L); + vec_store_nta_partial(phi[index],phiL); + vec_store_nta_partial(Theta[index],ThetaL); + vec_store_nta_partial(trK[index],trKL); + } + LC_ENDLOOP3VEC(ML_CCZ4_convertFromADMBase); +} + +extern "C" void ML_CCZ4_convertFromADMBase(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_convertFromADMBase_Body"); + } + + if (cctk_iteration % ML_CCZ4_convertFromADMBase_calc_every != ML_CCZ4_convertFromADMBase_calc_offset) + { + return; + } + + const char *const groups[] = { + "ADMBase::curv", + "ADMBase::lapse", + "ADMBase::metric", + "ADMBase::shift", + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_convertFromADMBase", 11, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, ML_CCZ4_convertFromADMBase_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_convertFromADMBase_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_convertFromADMBaseGamma.cc b/ML_CCZ4/src/ML_CCZ4_convertFromADMBaseGamma.cc new file mode 100644 index 0000000..0f759e0 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_convertFromADMBaseGamma.cc @@ -0,0 +1,926 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_convertFromADMBaseGamma_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtlapse","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtlapse."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_dtshift","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_dtshift."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_CCZ4::ML_Gamma","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ML_CCZ4::ML_Gamma."); + return; +} + +static void ML_CCZ4_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_convertFromADMBaseGamma, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC dtalpL = vec_load(dtalp[index]); + CCTK_REAL_VEC dtbetaxL = vec_load(dtbetax[index]); + CCTK_REAL_VEC dtbetayL = vec_load(dtbetay[index]); + CCTK_REAL_VEC dtbetazL = vec_load(dtbetaz[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + 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 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 */ + ptrdiff_t dir1 = Sign(beta1L); + + ptrdiff_t dir2 = Sign(beta2L); + + ptrdiff_t dir3 = Sign(beta3L); + + 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; + } + + CCTK_REAL_VEC detgt = ToReal(1); + + CCTK_REAL_VEC gtu11 = + kmul(INV(detgt),kmsub(gt22L,gt33L,SQR(gt23L))); + + CCTK_REAL_VEC gtu12 = + kmul(INV(detgt),kmsub(gt13L,gt23L,kmul(gt12L,gt33L))); + + CCTK_REAL_VEC gtu13 = + kmul(INV(detgt),kmsub(gt12L,gt23L,kmul(gt13L,gt22L))); + + CCTK_REAL_VEC gtu22 = + kmul(INV(detgt),kmsub(gt11L,gt33L,SQR(gt13L))); + + CCTK_REAL_VEC gtu23 = + kmul(INV(detgt),kmsub(gt12L,gt13L,kmul(gt11L,gt23L))); + + CCTK_REAL_VEC gtu33 = + kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); + + CCTK_REAL_VEC Gt111 = + 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,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,JacPDstandardNth1gt11,knmsub(gtu23,JacPDstandardNth2gt11,kmsub(kmadd(gtu23,JacPDstandardNth1gt12,kmul(gtu33,JacPDstandardNth1gt13)),ToReal(2),kmul(gtu33,JacPDstandardNth3gt11))))); + + CCTK_REAL_VEC Gt112 = + kmul(kmadd(gtu12,JacPDstandardNth1gt22,kmadd(gtu11,JacPDstandardNth2gt11,kmul(gtu13,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12))))),ToReal(0.5)); + + CCTK_REAL_VEC Gt212 = + kmul(kmadd(gtu22,JacPDstandardNth1gt22,kmadd(gtu12,JacPDstandardNth2gt11,kmul(gtu23,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12))))),ToReal(0.5)); + + CCTK_REAL_VEC Gt312 = + kmul(kmadd(gtu23,JacPDstandardNth1gt22,kmadd(gtu13,JacPDstandardNth2gt11,kmul(gtu33,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12))))),ToReal(0.5)); + + CCTK_REAL_VEC Gt113 = + kmul(kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu11,JacPDstandardNth3gt11,kmul(gtu12,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13))))),ToReal(0.5)); + + CCTK_REAL_VEC Gt213 = + kmul(kmadd(gtu23,JacPDstandardNth1gt33,kmadd(gtu12,JacPDstandardNth3gt11,kmul(gtu22,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13))))),ToReal(0.5)); + + CCTK_REAL_VEC Gt313 = + 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,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,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,JacPDstandardNth2gt22,kmadd(gtu13,kmsub(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmul(gtu33,kmsub(JacPDstandardNth2gt23,ToReal(2),JacPDstandardNth3gt22))))); + + CCTK_REAL_VEC Gt123 = + kmul(kmadd(gtu13,JacPDstandardNth2gt33,kmadd(gtu12,JacPDstandardNth3gt22,kmul(gtu11,kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23))))),ToReal(0.5)); + + CCTK_REAL_VEC Gt223 = + kmul(kmadd(gtu23,JacPDstandardNth2gt33,kmadd(gtu22,JacPDstandardNth3gt22,kmul(gtu12,kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23))))),ToReal(0.5)); + + CCTK_REAL_VEC Gt323 = + 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,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,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,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))))); + + CCTK_REAL_VEC Xt2L = + kmadd(Gt211,gtu11,kmadd(Gt222,gtu22,kmadd(Gt233,gtu33,kmul(kmadd(Gt212,gtu12,kmadd(Gt213,gtu13,kmul(Gt223,gtu23))),ToReal(2))))); + + CCTK_REAL_VEC Xt3L = + 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,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)))); + + CCTK_REAL_VEC B1L; + CCTK_REAL_VEC B2L; + CCTK_REAL_VEC B3L; + + if (ShiftBCoeff*ShiftGammaCoeff != 0) + { + B1L = + kmul(INV(kmul(theta,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(kmul(theta,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(kmul(theta,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 + { + B1L = ToReal(0); + + B2L = ToReal(0); + + B3L = ToReal(0); + } + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(A[index],AL); + vec_store_nta_partial(B1[index],B1L); + vec_store_nta_partial(B2[index],B2L); + vec_store_nta_partial(B3[index],B3L); + vec_store_nta_partial(Xt1[index],Xt1L); + vec_store_nta_partial(Xt2[index],Xt2L); + vec_store_nta_partial(Xt3[index],Xt3L); + } + LC_ENDLOOP3VEC(ML_CCZ4_convertFromADMBaseGamma); +} + +extern "C" void ML_CCZ4_convertFromADMBaseGamma(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_convertFromADMBaseGamma_Body"); + } + + if (cctk_iteration % ML_CCZ4_convertFromADMBaseGamma_calc_every != ML_CCZ4_convertFromADMBaseGamma_calc_offset) + { + return; + } + + const char *const groups[] = { + "ADMBase::dtlapse", + "ADMBase::dtshift", + "grid::coordinates", + "Grid::coordinates", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_shift"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_convertFromADMBaseGamma", 10, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_convertFromADMBaseGamma", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_convertFromADMBaseGamma", 3, 3, 3); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_convertFromADMBaseGamma", 4, 4, 4); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_convertFromADMBaseGamma", 5, 5, 5); + break; + } + + GenericFD_LoopOverInterior(cctkGH, ML_CCZ4_convertFromADMBaseGamma_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_convertFromADMBaseGamma_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_convertToADMBase.cc b/ML_CCZ4/src/ML_CCZ4_convertToADMBase.cc new file mode 100644 index 0000000..8df699f --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_convertToADMBase.cc @@ -0,0 +1,362 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +static void ML_CCZ4_convertToADMBase_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_convertToADMBase, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC At11L = vec_load(At11[index]); + CCTK_REAL_VEC At12L = vec_load(At12[index]); + CCTK_REAL_VEC At13L = vec_load(At13[index]); + CCTK_REAL_VEC At22L = vec_load(At22[index]); + CCTK_REAL_VEC At23L = vec_load(At23[index]); + CCTK_REAL_VEC At33L = vec_load(At33[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + CCTK_REAL_VEC gxxL = vec_load(gxx[index]); + CCTK_REAL_VEC gxyL = vec_load(gxy[index]); + CCTK_REAL_VEC gxzL = vec_load(gxz[index]); + CCTK_REAL_VEC gyyL = vec_load(gyy[index]); + CCTK_REAL_VEC gyzL = vec_load(gyz[index]); + CCTK_REAL_VEC gzzL = vec_load(gzz[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + 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 == + 1,INV(SQR(phiL)),kexp(kmul(phiL,ToReal(4)))); + + gxxL = kmul(gt11L,e4phi); + + gxyL = kmul(gt12L,e4phi); + + gxzL = kmul(gt13L,e4phi); + + gyyL = kmul(gt22L,e4phi); + + gyzL = kmul(gt23L,e4phi); + + gzzL = kmul(gt33L,e4phi); + + CCTK_REAL_VEC kxxL = + kmadd(At11L,e4phi,kmul(gxxL,kmul(trKL,ToReal(0.333333333333333333333333333333)))); + + CCTK_REAL_VEC kxyL = + kmadd(At12L,e4phi,kmul(gxyL,kmul(trKL,ToReal(0.333333333333333333333333333333)))); + + CCTK_REAL_VEC kxzL = + kmadd(At13L,e4phi,kmul(gxzL,kmul(trKL,ToReal(0.333333333333333333333333333333)))); + + CCTK_REAL_VEC kyyL = + kmadd(At22L,e4phi,kmul(gyyL,kmul(trKL,ToReal(0.333333333333333333333333333333)))); + + CCTK_REAL_VEC kyzL = + kmadd(At23L,e4phi,kmul(gyzL,kmul(trKL,ToReal(0.333333333333333333333333333333)))); + + CCTK_REAL_VEC kzzL = + kmadd(At33L,e4phi,kmul(gzzL,kmul(trKL,ToReal(0.333333333333333333333333333333)))); + + CCTK_REAL_VEC alpL = alphaL; + + CCTK_REAL_VEC betaxL = beta1L; + + CCTK_REAL_VEC betayL = beta2L; + + CCTK_REAL_VEC betazL = beta3L; + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alp[index],alpL); + vec_store_nta_partial(betax[index],betaxL); + vec_store_nta_partial(betay[index],betayL); + vec_store_nta_partial(betaz[index],betazL); + vec_store_nta_partial(gxx[index],gxxL); + vec_store_nta_partial(gxy[index],gxyL); + vec_store_nta_partial(gxz[index],gxzL); + vec_store_nta_partial(gyy[index],gyyL); + vec_store_nta_partial(gyz[index],gyzL); + vec_store_nta_partial(gzz[index],gzzL); + vec_store_nta_partial(kxx[index],kxxL); + vec_store_nta_partial(kxy[index],kxyL); + vec_store_nta_partial(kxz[index],kxzL); + vec_store_nta_partial(kyy[index],kyyL); + vec_store_nta_partial(kyz[index],kyzL); + vec_store_nta_partial(kzz[index],kzzL); + } + LC_ENDLOOP3VEC(ML_CCZ4_convertToADMBase); +} + +extern "C" void ML_CCZ4_convertToADMBase(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_convertToADMBase_Body"); + } + + if (cctk_iteration % ML_CCZ4_convertToADMBase_calc_every != ML_CCZ4_convertToADMBase_calc_offset) + { + return; + } + + const char *const groups[] = { + "ADMBase::curv", + "ADMBase::lapse", + "ADMBase::metric", + "ADMBase::shift", + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_convertToADMBase", 10, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, ML_CCZ4_convertToADMBase_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_convertToADMBase_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_convertToADMBaseDtLapseShift.cc b/ML_CCZ4/src/ML_CCZ4_convertToADMBaseDtLapseShift.cc new file mode 100644 index 0000000..3a49506 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_convertToADMBaseDtLapseShift.cc @@ -0,0 +1,920 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_convertToADMBaseDtLapseShift_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift."); + return; +} + +static void ML_CCZ4_convertToADMBaseDtLapseShift_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_convertToADMBaseDtLapseShift, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC AL = vec_load(A[index]); + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC B1L = vec_load(B1[index]); + CCTK_REAL_VEC B2L = vec_load(B2[index]); + CCTK_REAL_VEC B3L = vec_load(B3[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + CCTK_REAL_VEC gt33L = vec_load(gt33[index]); + CCTK_REAL_VEC phiL = vec_load(phi[index]); + CCTK_REAL_VEC rL = vec_load(r[index]); + CCTK_REAL_VEC ThetaL = vec_load(Theta[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + 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 PDstandardNth1alpha; + CCTK_REAL_VEC PDstandardNth2alpha; + CCTK_REAL_VEC PDstandardNth3alpha; + 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; + CCTK_REAL_VEC PDstandardNth1phi; + CCTK_REAL_VEC PDstandardNth2phi; + CCTK_REAL_VEC PDstandardNth3phi; + + switch(fdOrder) + { + case 2: + PDstandardNth1alpha = PDstandardNthfdOrder21(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder22(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder23(&alpha[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]); + 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]); + PDstandardNth1phi = PDstandardNthfdOrder21(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder22(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder23(&phi[index]); + break; + + case 4: + PDstandardNth1alpha = PDstandardNthfdOrder41(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder42(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder43(&alpha[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]); + 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]); + PDstandardNth1phi = PDstandardNthfdOrder41(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder42(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder43(&phi[index]); + break; + + case 6: + PDstandardNth1alpha = PDstandardNthfdOrder61(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder62(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder63(&alpha[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]); + 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]); + PDstandardNth1phi = PDstandardNthfdOrder61(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder62(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder63(&phi[index]); + break; + + case 8: + PDstandardNth1alpha = PDstandardNthfdOrder81(&alpha[index]); + PDstandardNth2alpha = PDstandardNthfdOrder82(&alpha[index]); + PDstandardNth3alpha = PDstandardNthfdOrder83(&alpha[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]); + 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]); + PDstandardNth1phi = PDstandardNthfdOrder81(&phi[index]); + PDstandardNth2phi = PDstandardNthfdOrder82(&phi[index]); + PDstandardNth3phi = PDstandardNthfdOrder83(&phi[index]); + break; + } + + /* Calculate temporaries and grid functions */ + ptrdiff_t dir1 = Sign(beta1L); + + ptrdiff_t dir2 = Sign(beta2L); + + ptrdiff_t dir3 = Sign(beta3L); + + CCTK_REAL_VEC JacPDstandardNth1alpha; + 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 JacPDstandardNth2alpha; + 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 JacPDstandardNth3alpha; + 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 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) + { + JacPDstandardNth1alpha = + kmadd(J11L,PDstandardNth1alpha,kmadd(J21L,PDstandardNth2alpha,kmul(J31L,PDstandardNth3alpha))); + + 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))); + + JacPDstandardNth2alpha = + kmadd(J12L,PDstandardNth1alpha,kmadd(J22L,PDstandardNth2alpha,kmul(J32L,PDstandardNth3alpha))); + + 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))); + + JacPDstandardNth3alpha = + kmadd(J13L,PDstandardNth1alpha,kmadd(J23L,PDstandardNth2alpha,kmul(J33L,PDstandardNth3alpha))); + + 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))); + + 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 + { + JacPDstandardNth1alpha = PDstandardNth1alpha; + + JacPDstandardNth1gt11 = PDstandardNth1gt11; + + JacPDstandardNth1gt12 = PDstandardNth1gt12; + + JacPDstandardNth1gt13 = PDstandardNth1gt13; + + JacPDstandardNth1gt22 = PDstandardNth1gt22; + + JacPDstandardNth1gt23 = PDstandardNth1gt23; + + JacPDstandardNth1gt33 = PDstandardNth1gt33; + + JacPDstandardNth1phi = PDstandardNth1phi; + + JacPDstandardNth2alpha = PDstandardNth2alpha; + + JacPDstandardNth2gt11 = PDstandardNth2gt11; + + JacPDstandardNth2gt12 = PDstandardNth2gt12; + + JacPDstandardNth2gt13 = PDstandardNth2gt13; + + JacPDstandardNth2gt22 = PDstandardNth2gt22; + + JacPDstandardNth2gt23 = PDstandardNth2gt23; + + JacPDstandardNth2gt33 = PDstandardNth2gt33; + + JacPDstandardNth2phi = PDstandardNth2phi; + + JacPDstandardNth3alpha = PDstandardNth3alpha; + + JacPDstandardNth3gt11 = PDstandardNth3gt11; + + JacPDstandardNth3gt12 = PDstandardNth3gt12; + + JacPDstandardNth3gt13 = PDstandardNth3gt13; + + JacPDstandardNth3gt22 = PDstandardNth3gt22; + + JacPDstandardNth3gt23 = PDstandardNth3gt23; + + JacPDstandardNth3gt33 = PDstandardNth3gt33; + + JacPDstandardNth3phi = PDstandardNth3phi; + + 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; + } + + CCTK_REAL_VEC detgt = ToReal(1); + + CCTK_REAL_VEC gtu11 = + kmul(INV(detgt),kmsub(gt22L,gt33L,SQR(gt23L))); + + CCTK_REAL_VEC gtu12 = + kmul(INV(detgt),kmsub(gt13L,gt23L,kmul(gt12L,gt33L))); + + CCTK_REAL_VEC gtu13 = + kmul(INV(detgt),kmsub(gt12L,gt23L,kmul(gt13L,gt22L))); + + CCTK_REAL_VEC gtu22 = + kmul(INV(detgt),kmsub(gt11L,gt33L,SQR(gt13L))); + + CCTK_REAL_VEC gtu23 = + kmul(INV(detgt),kmsub(gt12L,gt13L,kmul(gt11L,gt23L))); + + CCTK_REAL_VEC gtu33 = + kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); + + CCTK_REAL_VEC eta = + kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius)); + + CCTK_REAL_VEC theta = + kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1)))); + + CCTK_REAL_VEC dtalpL = + 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(AL,ToReal(LapseACoeff),kmul(kmsub(ThetaL,ToReal(2),trKL),kadd(ToReal(-1),ToReal(LapseACoeff))))))); + + CCTK_REAL_VEC dtbetaxL = + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta1,kmadd(beta2L,JacPDupwindNthAnti2beta1,kmadd(beta3L,JacPDupwindNthAnti3beta1,kmadd(JacPDupwindNthSymm1beta1,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta1,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta1,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),IfThen(harmonicShift,kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmadd(JacPDstandardNth1gt11,SQR(gtu11),kmul(JacPDstandardNth1gt22,kmul(SQR(gtu12),ToReal(2)))),kmadd(gtu13,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,kmsub(kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu22,JacPDstandardNth2gt23,kmul(gtu23,JacPDstandardNth2gt33))),ToReal(2),kmul(gtu22,JacPDstandardNth3gt22))))),kmadd(gtu11,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu12,JacPDstandardNth2gt11,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,kmul(JacPDstandardNth1gt23,ToReal(-2)),knmsub(gtu22,JacPDstandardNth1gt22,kmadd(kmadd(gtu12,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt13,kmul(gtu22,JacPDstandardNth2gt12))),ToReal(2),kmadd(gtu23,kmul(JacPDstandardNth2gt13,ToReal(2)),kmadd(gtu23,kmul(JacPDstandardNth3gt12,ToReal(2)),kmul(gtu33,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33))))))))))),kmul(gtu12,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,kmul(JacPDstandardNth3gt22,ToReal(2)),kmadd(gtu33,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33),kmul(gtu13,kmul(JacPDstandardNth1gt23,ToReal(4))))))))))))))))),kmul(theta,kmul(kadd(Xt1L,kmadd(ksub(B1L,Xt1L),ToReal(ShiftBCoeff),kmul(beta1L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))))); + + CCTK_REAL_VEC dtbetayL = + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta2,kmadd(beta2L,JacPDupwindNthAnti2beta2,kmadd(beta3L,JacPDupwindNthAnti3beta2,kmadd(JacPDupwindNthSymm1beta2,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta2,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta2,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),IfThen(harmonicShift,kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmadd(JacPDstandardNth2gt22,SQR(gtu22),kmul(JacPDstandardNth2gt11,kmul(SQR(gtu12),ToReal(2)))),kmadd(gtu23,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,kmsub(kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmul(gtu23,JacPDstandardNth2gt33))),ToReal(2),kmul(gtu11,JacPDstandardNth3gt11))))),kmadd(gtu22,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu23,JacPDstandardNth3gt22,kmadd(kmadd(gtu23,JacPDstandardNth2gt23,kmul(gtu13,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)))),ToReal(2),kmadd(gtu11,kmsub(JacPDstandardNth1gt12,ToReal(2),JacPDstandardNth2gt11),kmul(gtu33,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33))))))),kmul(gtu12,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,kmul(JacPDstandardNth3gt11,ToReal(2)),kmadd(gtu22,kmadd(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmadd(gtu33,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu23,kmul(JacPDstandardNth2gt13,ToReal(4)))))))))))))))))),kmul(theta,kmul(kadd(Xt2L,kmadd(ksub(B2L,Xt2L),ToReal(ShiftBCoeff),kmul(beta2L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))))); + + CCTK_REAL_VEC dtbetazL = + kmadd(kmadd(beta1L,JacPDupwindNthAnti1beta3,kmadd(beta2L,JacPDupwindNthAnti2beta3,kmadd(beta3L,JacPDupwindNthAnti3beta3,kmadd(JacPDupwindNthSymm1beta3,kfabs(beta1L),kmadd(JacPDupwindNthSymm2beta3,kfabs(beta2L),kmul(JacPDupwindNthSymm3beta3,kfabs(beta3L))))))),ToReal(ShiftAdvectionCoeff),IfThen(harmonicShift,kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmul(kmadd(JacPDstandardNth3gt11,SQR(gtu13),kmul(JacPDstandardNth3gt22,SQR(gtu23))),ToReal(2)),kmadd(gtu23,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu33,JacPDstandardNth2gt33,kmsub(kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu12,JacPDstandardNth1gt22,kmul(gtu33,JacPDstandardNth3gt23))),ToReal(2),kmul(gtu11,JacPDstandardNth2gt11)))))),kmadd(gtu33,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,knmsub(gtu22,JacPDstandardNth3gt22,kmadd(kmadd(gtu22,JacPDstandardNth2gt23,kmul(gtu12,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)))),ToReal(2),kmul(gtu11,kmsub(JacPDstandardNth1gt13,ToReal(2),JacPDstandardNth3gt11))))))),kmul(gtu13,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu12,kmul(JacPDstandardNth2gt11,ToReal(2)),kmadd(gtu22,kmsub(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmadd(gtu33,kmadd(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu23,kmul(JacPDstandardNth3gt12,ToReal(4)))))))))))))))))),kmul(theta,kmul(kadd(Xt3L,kmadd(ksub(B3L,Xt3L),ToReal(ShiftBCoeff),kmul(beta3L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))))); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(dtalp[index],dtalpL); + vec_store_nta_partial(dtbetax[index],dtbetaxL); + vec_store_nta_partial(dtbetay[index],dtbetayL); + vec_store_nta_partial(dtbetaz[index],dtbetazL); + } + LC_ENDLOOP3VEC(ML_CCZ4_convertToADMBaseDtLapseShift); +} + +extern "C" void ML_CCZ4_convertToADMBaseDtLapseShift(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_convertToADMBaseDtLapseShift_Body"); + } + + if (cctk_iteration % ML_CCZ4_convertToADMBaseDtLapseShift_calc_every != ML_CCZ4_convertToADMBaseDtLapseShift_calc_offset) + { + return; + } + + const char *const groups[] = { + "ADMBase::dtlapse", + "ADMBase::dtshift", + "grid::coordinates", + "Grid::coordinates", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_log_confac", + "ML_CCZ4::ML_metric", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_convertToADMBaseDtLapseShift", 13, groups); + + switch(fdOrder) + { + case 2: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_convertToADMBaseDtLapseShift", 2, 2, 2); + break; + + case 4: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_convertToADMBaseDtLapseShift", 3, 3, 3); + break; + + case 6: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_convertToADMBaseDtLapseShift", 4, 4, 4); + break; + + case 8: + GenericFD_EnsureStencilFits(cctkGH, "ML_CCZ4_convertToADMBaseDtLapseShift", 5, 5, 5); + break; + } + + GenericFD_LoopOverInterior(cctkGH, ML_CCZ4_convertToADMBaseDtLapseShift_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_convertToADMBaseDtLapseShift_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_convertToADMBaseDtLapseShiftBoundary.cc b/ML_CCZ4/src/ML_CCZ4_convertToADMBaseDtLapseShiftBoundary.cc new file mode 100644 index 0000000..0d06a21 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_convertToADMBaseDtLapseShiftBoundary.cc @@ -0,0 +1,348 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +extern "C" void ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_SelectBCs(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse."); + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat"); + if (ierr < 0) + CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift."); + return; +} + +static void ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_convertToADMBaseDtLapseShiftBoundary, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC AL = vec_load(A[index]); + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC B1L = vec_load(B1[index]); + CCTK_REAL_VEC B2L = vec_load(B2[index]); + CCTK_REAL_VEC B3L = vec_load(B3[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC rL = vec_load(r[index]); + CCTK_REAL_VEC ThetaL = vec_load(Theta[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + 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 = + kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius)); + + CCTK_REAL_VEC theta = + kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1)))); + + CCTK_REAL_VEC dtalpL = + kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmsub(ThetaL,ToReal(2),trKL),kadd(ToReal(-1),ToReal(LapseACoeff))))))); + + CCTK_REAL_VEC dtbetaxL; + CCTK_REAL_VEC dtbetayL; + CCTK_REAL_VEC dtbetazL; + + if (harmonicShift) + { + dtbetaxL = ToReal(0); + + dtbetayL = ToReal(0); + + dtbetazL = ToReal(0); + } + else + { + dtbetaxL = + kmul(theta,kmul(kadd(Xt1L,kmadd(ksub(B1L,Xt1L),ToReal(ShiftBCoeff),kmul(beta1L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + + dtbetayL = + kmul(theta,kmul(kadd(Xt2L,kmadd(ksub(B2L,Xt2L),ToReal(ShiftBCoeff),kmul(beta2L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + + dtbetazL = + kmul(theta,kmul(kadd(Xt3L,kmadd(ksub(B3L,Xt3L),ToReal(ShiftBCoeff),kmul(beta3L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + } + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(dtalp[index],dtalpL); + vec_store_nta_partial(dtbetax[index],dtbetaxL); + vec_store_nta_partial(dtbetay[index],dtbetayL); + vec_store_nta_partial(dtbetaz[index],dtbetazL); + } + LC_ENDLOOP3VEC(ML_CCZ4_convertToADMBaseDtLapseShiftBoundary); +} + +extern "C" void ML_CCZ4_convertToADMBaseDtLapseShiftBoundary(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_Body"); + } + + if (cctk_iteration % ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_calc_every != ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_calc_offset) + { + return; + } + + const char *const groups[] = { + "ADMBase::dtlapse", + "ADMBase::dtshift", + "grid::coordinates", + "Grid::coordinates", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_convertToADMBaseDtLapseShiftBoundary", 11, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverBoundaryWithGhosts(cctkGH, ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_convertToADMBaseDtLapseShiftBoundary_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_convertToADMBaseFakeDtLapseShift.cc b/ML_CCZ4/src/ML_CCZ4_convertToADMBaseFakeDtLapseShift.cc new file mode 100644 index 0000000..8cc59d0 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_convertToADMBaseFakeDtLapseShift.cc @@ -0,0 +1,333 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +static void ML_CCZ4_convertToADMBaseFakeDtLapseShift_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_convertToADMBaseFakeDtLapseShift, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC AL = vec_load(A[index]); + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC B1L = vec_load(B1[index]); + CCTK_REAL_VEC B2L = vec_load(B2[index]); + CCTK_REAL_VEC B3L = vec_load(B3[index]); + CCTK_REAL_VEC beta1L = vec_load(beta1[index]); + CCTK_REAL_VEC beta2L = vec_load(beta2[index]); + CCTK_REAL_VEC beta3L = vec_load(beta3[index]); + CCTK_REAL_VEC rL = vec_load(r[index]); + CCTK_REAL_VEC ThetaL = vec_load(Theta[index]); + CCTK_REAL_VEC trKL = vec_load(trK[index]); + CCTK_REAL_VEC Xt1L = vec_load(Xt1[index]); + CCTK_REAL_VEC Xt2L = vec_load(Xt2[index]); + 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 = + kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius)); + + CCTK_REAL_VEC theta = + kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1)))); + + CCTK_REAL_VEC dtalpL = + kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmsub(ThetaL,ToReal(2),trKL),kadd(ToReal(-1),ToReal(LapseACoeff))))))); + + CCTK_REAL_VEC dtbetaxL; + CCTK_REAL_VEC dtbetayL; + CCTK_REAL_VEC dtbetazL; + + if (harmonicShift) + { + dtbetaxL = ToReal(0); + + dtbetayL = ToReal(0); + + dtbetazL = ToReal(0); + } + else + { + dtbetaxL = + kmul(theta,kmul(kadd(Xt1L,kmadd(ksub(B1L,Xt1L),ToReal(ShiftBCoeff),kmul(beta1L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + + dtbetayL = + kmul(theta,kmul(kadd(Xt2L,kmadd(ksub(B2L,Xt2L),ToReal(ShiftBCoeff),kmul(beta2L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + + dtbetazL = + kmul(theta,kmul(kadd(Xt3L,kmadd(ksub(B3L,Xt3L),ToReal(ShiftBCoeff),kmul(beta3L,kmul(eta,kmul(ToReal(BetaDriver),kadd(ToReal(-1),ToReal(ShiftBCoeff))))))),ToReal(ShiftGammaCoeff))); + } + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(dtalp[index],dtalpL); + vec_store_nta_partial(dtbetax[index],dtbetaxL); + vec_store_nta_partial(dtbetay[index],dtbetayL); + vec_store_nta_partial(dtbetaz[index],dtbetazL); + } + LC_ENDLOOP3VEC(ML_CCZ4_convertToADMBaseFakeDtLapseShift); +} + +extern "C" void ML_CCZ4_convertToADMBaseFakeDtLapseShift(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_convertToADMBaseFakeDtLapseShift_Body"); + } + + if (cctk_iteration % ML_CCZ4_convertToADMBaseFakeDtLapseShift_calc_every != ML_CCZ4_convertToADMBaseFakeDtLapseShift_calc_offset) + { + return; + } + + const char *const groups[] = { + "ADMBase::dtlapse", + "ADMBase::dtshift", + "grid::coordinates", + "Grid::coordinates", + "ML_CCZ4::ML_dtlapse", + "ML_CCZ4::ML_dtshift", + "ML_CCZ4::ML_Gamma", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_shift", + "ML_CCZ4::ML_Theta", + "ML_CCZ4::ML_trace_curv"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_convertToADMBaseFakeDtLapseShift", 11, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, ML_CCZ4_convertToADMBaseFakeDtLapseShift_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_convertToADMBaseFakeDtLapseShift_Body"); + } +} diff --git a/ML_CCZ4/src/ML_CCZ4_enforce.cc b/ML_CCZ4/src/ML_CCZ4_enforce.cc new file mode 100644 index 0000000..15f88d2 --- /dev/null +++ b/ML_CCZ4/src/ML_CCZ4_enforce.cc @@ -0,0 +1,337 @@ +/* File produced by Kranc */ + +#define KRANC_C + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "GenericFD.h" +#include "Differencing.h" +#include "cctk_Loop.h" +#include "loopcontrol.h" +#include "vectors.h" + +/* Define macros used in calculations */ +#define INITVALUE (42) +#define QAD(x) (SQR(SQR(x))) +#define INV(x) (kdiv(ToReal(1.0),x)) +#define SQR(x) (kmul(x,x)) +#define CUB(x) (kmul(x,SQR(x))) + +static void ML_CCZ4_enforce_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* Include user-supplied include files */ + + /* Initialise finite differencing variables */ + ptrdiff_t const di = 1; + ptrdiff_t const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); + ptrdiff_t const cdi = sizeof(CCTK_REAL) * di; + ptrdiff_t const cdj = sizeof(CCTK_REAL) * dj; + ptrdiff_t const cdk = sizeof(CCTK_REAL) * dk; + CCTK_REAL_VEC const dx = ToReal(CCTK_DELTA_SPACE(0)); + CCTK_REAL_VEC const dy = ToReal(CCTK_DELTA_SPACE(1)); + CCTK_REAL_VEC const dz = ToReal(CCTK_DELTA_SPACE(2)); + CCTK_REAL_VEC const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL_VEC const t = ToReal(cctk_time); + CCTK_REAL_VEC const dxi = INV(dx); + CCTK_REAL_VEC const dyi = INV(dy); + CCTK_REAL_VEC const dzi = INV(dz); + CCTK_REAL_VEC const khalf = ToReal(0.5); + CCTK_REAL_VEC const kthird = ToReal(1.0/3.0); + CCTK_REAL_VEC const ktwothird = ToReal(2.0/3.0); + CCTK_REAL_VEC const kfourthird = ToReal(4.0/3.0); + CCTK_REAL_VEC const keightthird = ToReal(8.0/3.0); + CCTK_REAL_VEC const hdxi = kmul(ToReal(0.5), dxi); + CCTK_REAL_VEC const hdyi = kmul(ToReal(0.5), dyi); + CCTK_REAL_VEC const hdzi = kmul(ToReal(0.5), dzi); + + /* Initialize predefined quantities */ + CCTK_REAL_VEC const 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(kmul(dx,dy)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.00694444444444444444444444444444)); + CCTK_REAL_VEC const p1o144dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o3600dydz = kmul(INV(kmul(dy,dz)),ToReal(0.000277777777777777777777777777778)); + CCTK_REAL_VEC const p1o4dx = kmul(INV(dx),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdy = kmul(INV(kmul(dx,dy)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dxdz = kmul(INV(kmul(dx,dz)),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dy = kmul(INV(dy),ToReal(0.25)); + CCTK_REAL_VEC const p1o4dydz = kmul(INV(kmul(dy,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(kmul(dx,dy)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dxdz = kmul(INV(kmul(dx,dz)),ToReal(1.41723356009070294784580498866e-6)); + CCTK_REAL_VEC const p1o705600dydz = kmul(INV(kmul(dy,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; + + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + + /* Loop over the grid points */ + #pragma omp parallel + LC_LOOP3VEC(ML_CCZ4_enforce, + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + CCTK_REAL_VEC_SIZE) + { + ptrdiff_t const index = di*i + dj*j + dk*k; + + /* Assign local copies of grid functions */ + + CCTK_REAL_VEC alphaL = vec_load(alpha[index]); + CCTK_REAL_VEC At11L = vec_load(At11[index]); + CCTK_REAL_VEC At12L = vec_load(At12[index]); + CCTK_REAL_VEC At13L = vec_load(At13[index]); + CCTK_REAL_VEC At22L = vec_load(At22[index]); + CCTK_REAL_VEC At23L = vec_load(At23[index]); + CCTK_REAL_VEC At33L = vec_load(At33[index]); + CCTK_REAL_VEC gt11L = vec_load(gt11[index]); + CCTK_REAL_VEC gt12L = vec_load(gt12[index]); + CCTK_REAL_VEC gt13L = vec_load(gt13[index]); + CCTK_REAL_VEC gt22L = vec_load(gt22[index]); + CCTK_REAL_VEC gt23L = vec_load(gt23[index]); + 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); + + CCTK_REAL_VEC gtu11 = + kmul(INV(detgt),kmsub(gt22L,gt33L,SQR(gt23L))); + + CCTK_REAL_VEC gtu12 = + kmul(INV(detgt),kmsub(gt13L,gt23L,kmul(gt12L,gt33L))); + + CCTK_REAL_VEC gtu13 = + kmul(INV(detgt),kmsub(gt12L,gt23L,kmul(gt13L,gt22L))); + + CCTK_REAL_VEC gtu22 = + kmul(INV(detgt),kmsub(gt11L,gt33L,SQR(gt13L))); + + CCTK_REAL_VEC gtu23 = + kmul(INV(detgt),kmsub(gt12L,gt13L,kmul(gt11L,gt23L))); + + CCTK_REAL_VEC gtu33 = + kmul(INV(detgt),kmsub(gt11L,gt22L,SQR(gt12L))); + + CCTK_REAL_VEC trAt = + kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))); + + At11L = + kmadd(gt11L,kmul(trAt,ToReal(-0.333333333333333333333333333333)),At11L); + + At12L = + kmadd(gt12L,kmul(trAt,ToReal(-0.333333333333333333333333333333)),At12L); + + At13L = + kmadd(gt13L,kmul(trAt,ToReal(-0.333333333333333333333333333333)),At13L); + + At22L = + kmadd(gt22L,kmul(trAt,ToReal(-0.333333333333333333333333333333)),At22L); + + At23L = + kmadd(gt23L,kmul(trAt,ToReal(-0.333333333333333333333333333333)),At23L); + + At33L = + kmadd(gt33L,kmul(trAt,ToReal(-0.333333333333333333333333333333)),At33L); + + alphaL = kfmax(alphaL,ToReal(MinimumLapse)); + + /* Copy local copies back to grid functions */ + vec_store_partial_prepare(i,lc_imin,lc_imax); + vec_store_nta_partial(alpha[index],alphaL); + vec_store_nta_partial(At11[index],At11L); + vec_store_nta_partial(At12[index],At12L); + vec_store_nta_partial(At13[index],At13L); + vec_store_nta_partial(At22[index],At22L); + vec_store_nta_partial(At23[index],At23L); + vec_store_nta_partial(At33[index],At33L); + } + LC_ENDLOOP3VEC(ML_CCZ4_enforce); +} + +extern "C" void ML_CCZ4_enforce(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_CCZ4_enforce_Body"); + } + + if (cctk_iteration % ML_CCZ4_enforce_calc_every != ML_CCZ4_enforce_calc_offset) + { + return; + } + + const char *const groups[] = { + "ML_CCZ4::ML_curv", + "ML_CCZ4::ML_lapse", + "ML_CCZ4::ML_metric"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_CCZ4_enforce", 3, groups); + + switch(fdOrder) + { + case 2: + break; + + case 4: + break; + + case 6: + break; + + case 8: + break; + } + + GenericFD_LoopOverEverything(cctkGH, ML_CCZ4_enforce_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_CCZ4_enforce_Body"); + } +} diff --git a/ML_CCZ4/src/RegisterMoL.cc b/ML_CCZ4/src/RegisterMoL.cc new file mode 100644 index 0000000..27e74a3 --- /dev/null +++ b/ML_CCZ4/src/RegisterMoL.cc @@ -0,0 +1,44 @@ +/* File produced by Kranc */ + +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" + +extern "C" void ML_CCZ4_RegisterVars(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0; + + /* Register all the evolved grid functions with MoL */ + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::At11"), CCTK_VarIndex("ML_CCZ4::At11rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::At12"), CCTK_VarIndex("ML_CCZ4::At12rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::At13"), CCTK_VarIndex("ML_CCZ4::At13rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::At22"), CCTK_VarIndex("ML_CCZ4::At22rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::At23"), CCTK_VarIndex("ML_CCZ4::At23rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::At33"), CCTK_VarIndex("ML_CCZ4::At33rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::A"), CCTK_VarIndex("ML_CCZ4::Arhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::B1"), CCTK_VarIndex("ML_CCZ4::B1rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::B2"), CCTK_VarIndex("ML_CCZ4::B2rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::B3"), CCTK_VarIndex("ML_CCZ4::B3rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::Xt1"), CCTK_VarIndex("ML_CCZ4::Xt1rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::Xt2"), CCTK_VarIndex("ML_CCZ4::Xt2rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::Xt3"), CCTK_VarIndex("ML_CCZ4::Xt3rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::alpha"), CCTK_VarIndex("ML_CCZ4::alpharhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::phi"), CCTK_VarIndex("ML_CCZ4::phirhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::gt11"), CCTK_VarIndex("ML_CCZ4::gt11rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::gt12"), CCTK_VarIndex("ML_CCZ4::gt12rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::gt13"), CCTK_VarIndex("ML_CCZ4::gt13rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::gt22"), CCTK_VarIndex("ML_CCZ4::gt22rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::gt23"), CCTK_VarIndex("ML_CCZ4::gt23rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::gt33"), CCTK_VarIndex("ML_CCZ4::gt33rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::beta1"), CCTK_VarIndex("ML_CCZ4::beta1rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::beta2"), CCTK_VarIndex("ML_CCZ4::beta2rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::beta3"), CCTK_VarIndex("ML_CCZ4::beta3rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::Theta"), CCTK_VarIndex("ML_CCZ4::Thetarhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_CCZ4::trK"), CCTK_VarIndex("ML_CCZ4::trKrhs")); + + /* Register all the evolved Array functions with MoL */ + return; +} diff --git a/ML_CCZ4/src/RegisterSymmetries.cc b/ML_CCZ4/src/RegisterSymmetries.cc new file mode 100644 index 0000000..eef4c88 --- /dev/null +++ b/ML_CCZ4/src/RegisterSymmetries.cc @@ -0,0 +1,194 @@ +/* File produced by Kranc */ + +#include "cctk.h" +#include "cctk_Arguments.h" +#include "cctk_Parameters.h" +#include "Symmetry.h" + +extern "C" void ML_CCZ4_RegisterSymmetries(CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + + /* array holding symmetry definitions */ + CCTK_INT sym[3]; + + + /* Register symmetries of grid functions */ + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::At11"); + + sym[0] = -1; + sym[1] = -1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::At12"); + + sym[0] = -1; + sym[1] = 1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::At13"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::At22"); + + sym[0] = 1; + sym[1] = -1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::At23"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::At33"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::A"); + + sym[0] = -1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::B1"); + + sym[0] = 1; + sym[1] = -1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::B2"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::B3"); + + sym[0] = -1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::Xt1"); + + sym[0] = 1; + sym[1] = -1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::Xt2"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::Xt3"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::alpha"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::phi"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::gt11"); + + sym[0] = -1; + sym[1] = -1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::gt12"); + + sym[0] = -1; + sym[1] = 1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::gt13"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::gt22"); + + sym[0] = 1; + sym[1] = -1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::gt23"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::gt33"); + + sym[0] = -1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::beta1"); + + sym[0] = 1; + sym[1] = -1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::beta2"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::beta3"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::Theta"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::trK"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::cS"); + + sym[0] = -1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::cXt1"); + + sym[0] = 1; + sym[1] = -1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::cXt2"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::cXt3"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::cA"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::H"); + + sym[0] = -1; + sym[1] = 1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::M1"); + + sym[0] = 1; + sym[1] = -1; + sym[2] = 1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::M2"); + + sym[0] = 1; + sym[1] = 1; + sym[2] = -1; + SetCartSymVN(cctkGH, sym, "ML_CCZ4::M3"); + +} diff --git a/ML_CCZ4/src/Startup.cc b/ML_CCZ4/src/Startup.cc new file mode 100644 index 0000000..094d242 --- /dev/null +++ b/ML_CCZ4/src/Startup.cc @@ -0,0 +1,10 @@ +/* File produced by Kranc */ + +#include "cctk.h" + +extern "C" int ML_CCZ4_Startup(void) +{ + const char * banner = "ML_CCZ4"; + CCTK_RegisterBanner(banner); + return 0; +} diff --git a/ML_CCZ4/src/make.code.defn b/ML_CCZ4/src/make.code.defn new file mode 100644 index 0000000..8bb1a0f --- /dev/null +++ b/ML_CCZ4/src/make.code.defn @@ -0,0 +1,3 @@ +# File produced by Kranc + +SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc ML_CCZ4_Minkowski.cc ML_CCZ4_convertFromADMBase.cc ML_CCZ4_InitGamma.cc ML_CCZ4_convertFromADMBaseGamma.cc ML_CCZ4_RHS1.cc ML_CCZ4_RHS2.cc ML_CCZ4_Dissipation.cc ML_CCZ4_Advect.cc ML_CCZ4_InitRHS.cc ML_CCZ4_RHSStaticBoundary.cc ML_CCZ4_enforce.cc ML_CCZ4_boundary.cc ML_CCZ4_convertToADMBase.cc ML_CCZ4_convertToADMBaseDtLapseShift.cc ML_CCZ4_convertToADMBaseDtLapseShiftBoundary.cc ML_CCZ4_convertToADMBaseFakeDtLapseShift.cc ML_CCZ4_constraints1.cc ML_CCZ4_constraints2.cc Boundaries.cc diff --git a/ML_CCZ4_Helper/configuration.ccl b/ML_CCZ4_Helper/configuration.ccl new file mode 100644 index 0000000..edaa5b7 --- /dev/null +++ b/ML_CCZ4_Helper/configuration.ccl @@ -0,0 +1 @@ +REQUIRES THORNS: CartGrid3D CoordGauge diff --git a/ML_CCZ4_Helper/interface.ccl b/ML_CCZ4_Helper/interface.ccl new file mode 100644 index 0000000..9b2864f --- /dev/null +++ b/ML_CCZ4_Helper/interface.ccl @@ -0,0 +1,38 @@ +IMPLEMENTS: ML_CCZ4_Helper + +INHERITS: ADMBase CoordGauge ML_CCZ4 + +USES INCLUDE: Slicing.h +USES INCLUDE: Symmetry.h + + + +CCTK_INT FUNCTION MoLRegisterConstrainedGroup \ + (CCTK_INT IN ConstrainedIndex) +USES FUNCTION MoLRegisterConstrainedGroup + +CCTK_INT FUNCTION \ + Boundary_SelectGroupForBC \ + (CCTK_POINTER_TO_CONST IN cctkGH, \ + CCTK_INT IN faces, \ + CCTK_INT IN boundary_width, \ + CCTK_INT IN table_handle, \ + CCTK_STRING IN group_name, \ + CCTK_STRING IN bc_name) +USES FUNCTION Boundary_SelectGroupForBC + +CCTK_INT FUNCTION \ + ExtrapolateGammas \ + (CCTK_POINTER_TO_CONST IN cctkGH, \ + CCTK_REAL ARRAY INOUT var) +USES FUNCTION ExtrapolateGammas + +CCTK_INT FUNCTION \ + NewRad_Apply \ + (CCTK_POINTER_TO_CONST IN cctkGH, \ + CCTK_REAL ARRAY IN var, \ + CCTK_REAL ARRAY INOUT rhs, \ + CCTK_REAL IN var0, \ + CCTK_REAL IN v0, \ + CCTK_INT IN radpower) +USES FUNCTION NewRad_Apply diff --git a/ML_CCZ4_Helper/param.ccl b/ML_CCZ4_Helper/param.ccl new file mode 100644 index 0000000..8ede1a2 --- /dev/null +++ b/ML_CCZ4_Helper/param.ccl @@ -0,0 +1,39 @@ +SHARES: Boundary + +USES CCTK_INT radpower + +SHARES: MethodofLines + +USES CCTK_INT MoL_Num_Constrained_Vars + +SHARES: ADMBase + +USES KEYWORD evolution_method + +SHARES: GenericFD + +USES CCTK_INT boundary_width + +SHARES: ML_CCZ4 + +USES CCTK_INT timelevels +USES CCTK_INT rhs_timelevels +USES KEYWORD calculate_ADMBase_variables_at + +USES CCTK_REAL harmonicF + +EXTENDS KEYWORD my_initial_boundary_condition +{ + "extrapolate-gammas" :: "extrapolate-gammas" +} +EXTENDS KEYWORD my_rhs_boundary_condition +{ + "NewRad" :: "NewRad" +} + +PRIVATE: + +CCTK_INT ML_CCZ4_MaxNumConstrainedVars "Number of constrained variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Constrained_Vars +{ + 20:20 :: "Number of constrained variables used by this thorn" +} 20 diff --git a/ML_CCZ4_Helper/schedule.ccl b/ML_CCZ4_Helper/schedule.ccl new file mode 100644 index 0000000..7e95150 --- /dev/null +++ b/ML_CCZ4_Helper/schedule.ccl @@ -0,0 +1,161 @@ +if (CCTK_EQUALS (evolution_method, "ML_CCZ4")) { + + if (timelevels == 1) { + STORAGE: ADMBase::metric[1] + STORAGE: ADMBase::curv[1] + STORAGE: ADMBase::lapse[1] + STORAGE: ADMBase::shift[1] + STORAGE: ADMBase::dtlapse[1] + STORAGE: ADMBase::dtshift[1] + } else if (timelevels == 2) { + STORAGE: ADMBase::metric[2] + STORAGE: ADMBase::curv[2] + STORAGE: ADMBase::lapse[2] + STORAGE: ADMBase::shift[2] + STORAGE: ADMBase::dtlapse[2] + STORAGE: ADMBase::dtshift[2] + } else if (timelevels == 3) { + STORAGE: ADMBase::metric[3] + STORAGE: ADMBase::curv[3] + STORAGE: ADMBase::lapse[3] + STORAGE: ADMBase::shift[3] + STORAGE: ADMBase::dtlapse[3] + STORAGE: ADMBase::dtshift[3] + } else if (timelevels == 4) { + #STORAGE: ADMBase::metric[4] + #STORAGE: ADMBase::curv[4] + #STORAGE: ADMBase::lapse[4] + #STORAGE: ADMBase::shift[4] + #STORAGE: ADMBase::dtlapse[4] + #STORAGE: ADMBase::dtshift[4] + STORAGE: ADMBase::metric[3] + STORAGE: ADMBase::curv[3] + STORAGE: ADMBase::lapse[3] + STORAGE: ADMBase::shift[3] + STORAGE: ADMBase::dtlapse[3] + STORAGE: ADMBase::dtshift[3] + } + + SCHEDULE ML_CCZ4_RegisterSlicing AT startup + { + LANG: C + OPTIONS: meta + } "Register slicing" + + SCHEDULE ML_CCZ4_SetGroupTags AT startup BEFORE Driver_Startup + { + LANG: C + OPTIONS: meta + } "Set checkpointing and prolongation group tags" + + SCHEDULE ML_CCZ4_RegisterConstrained IN MoL_Register + { + LANG: C + OPTIONS: meta + } "Register ADMBase variables as constrained" + + + + # Why would any of these two be necessary? + #SCHEDULE GROUP ML_CCZ4_evolCalcGroup AT postinitial AFTER MoL_PostStep + #{ + #} "Calculate BSSN RHS" + #SCHEDULE GROUP MoL_CalcRHS AT postinitial AFTER MoL_PostStep + #{ + #} "Evaluate RHS" + + SCHEDULE GROUP ML_CCZ4_evolCalcGroup IN MoL_CalcRHS + { + } "Calculate BSSN RHS" + + SCHEDULE GROUP ML_CCZ4_evolCalcGroup AT analysis + { + TRIGGERS: ML_CCZ4::ML_log_confacrhs + TRIGGERS: ML_CCZ4::ML_metricrhs + TRIGGERS: ML_CCZ4::ML_Gammarhs + TRIGGERS: ML_CCZ4::ML_trace_curvrhs + TRIGGERS: ML_CCZ4::ML_curvrhs + TRIGGERS: ML_CCZ4::ML_lapserhs + TRIGGERS: ML_CCZ4::ML_dtlapserhs + TRIGGERS: ML_CCZ4::ML_shiftrhs + TRIGGERS: ML_CCZ4::ML_dtshiftrhs + } "Calculate BSSN RHS" + + + + if (CCTK_EQUALS (my_initial_boundary_condition, "extrapolate-gammas")) + { + SCHEDULE ML_CCZ4_ExtrapolateGammas AT initial AFTER ML_CCZ4_convertFromADMBaseGamma + { + LANG: C + # We don't need to synchronise here because extrapolation is now filling + # ghost zones + #SYNC: ML_Gamma + #SYNC: ML_dtlapse + #SYNC: ML_dtshift + } "Extrapolate Gammas and time derivatives of lapse and shift" + } + + if (CCTK_EQUALS (my_rhs_boundary_condition, "NewRad")) + { + SCHEDULE ML_CCZ4_NewRad IN ML_CCZ4_evolCalcGroup AFTER ML_CCZ4_RHS + { + LANG: C + #SYNC: ML_curvrhs + #SYNC: ML_dtlapserhs + #SYNC: ML_dtshiftrhs + #SYNC: ML_Gammarhs + #SYNC: ML_lapserhs + #SYNC: ML_log_confacrhs + #SYNC: ML_metricrhs + #SYNC: ML_shiftrhs + #SYNC: ML_trace_curvrhs + } "Apply NewRad boundary conditions to RHS" + } + + + + SCHEDULE GROUP ML_CCZ4_convertToADMBaseGroup IN ML_CCZ4_convertToADMBaseGroupWrapper + { + #SYNC: ADMBase::metric + #SYNC: ADMBase::curv + #SYNC: ADMBase::lapse + #SYNC: ADMBase::shift + #SYNC: ADMBase::dtlapse + #SYNC: ADMBase::dtshift + } "Calculate ADM variables" + + if (CCTK_EQUALS (calculate_ADMBase_variables_at, "MoL_PostStep")) + { + SCHEDULE GROUP ML_CCZ4_convertToADMBaseGroupWrapper IN MoL_PostStep AFTER (ML_CCZ4_ApplyBCs ML_CCZ4_enforce) BEFORE (ADMBase_SetADMVars Whisky_PostStep) + { + } "Calculate ADM variables" + } + else if (CCTK_EQUALS (calculate_ADMBase_variables_at, "CCTK_EVOL")) + { + SCHEDULE GROUP ML_CCZ4_convertToADMBaseGroupWrapper IN MoL_PseudoEvolution BEFORE (ADMBase_SetADMVars Whisky_PostStep) + { + } "Calculate ADM variables" + } + else if (CCTK_EQUALS (calculate_ADMBase_variables_at, "CCTK_ANALYSIS")) + { + SCHEDULE GROUP ML_CCZ4_convertToADMBaseGroupWrapper AT post_recover_variables + { + } "Calculate ADM variables" + + SCHEDULE GROUP ML_CCZ4_convertToADMBaseGroupWrapper AT analysis BEFORE (ADMBase_SetADMVars Whisky_PostStep) + { + } "Calculate ADM variables" + } + + SCHEDULE ML_CCZ4_SelectBCsADMBase IN ML_CCZ4_convertToADMBaseGroupWrapper AFTER ML_CCZ4_convertToADMBaseGroup + { + LANG: C + OPTIONS: level + } "Select boundary conditions for ADMBase variables" + + SCHEDULE GROUP ApplyBCs AS ML_CCZ4_ApplyBCsADMBase IN ML_CCZ4_convertToADMBaseGroupWrapper AFTER ML_CCZ4_SelectBCsADMBase + { + } "Apply boundary conditions to ADMBase variables" + +} diff --git a/ML_CCZ4_Helper/src/ExtrapolateGammas.c b/ML_CCZ4_Helper/src/ExtrapolateGammas.c new file mode 100644 index 0000000..efa08dd --- /dev/null +++ b/ML_CCZ4_Helper/src/ExtrapolateGammas.c @@ -0,0 +1,29 @@ +#include <cctk.h> +#include <cctk_Arguments.h> + +static void +extrap (cGH const * restrict cctkGH, + CCTK_REAL * restrict var); + +void +ML_CCZ4_ExtrapolateGammas (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + + extrap (cctkGH, Xt1); + extrap (cctkGH, Xt2); + extrap (cctkGH, Xt3); + + extrap (cctkGH, A); + + extrap (cctkGH, B1); + extrap (cctkGH, B2); + extrap (cctkGH, B3); +} + +static void +extrap (cGH const * restrict const cctkGH, + CCTK_REAL * restrict const var) +{ + ExtrapolateGammas (cctkGH, var); +} diff --git a/ML_CCZ4_Helper/src/NewRad.c b/ML_CCZ4_Helper/src/NewRad.c new file mode 100644 index 0000000..756e5bf --- /dev/null +++ b/ML_CCZ4_Helper/src/NewRad.c @@ -0,0 +1,69 @@ +#include <math.h> + +#include <cctk.h> +#include <cctk_Arguments.h> +#include <cctk_Parameters.h> + +static void +newrad (cGH const * restrict cctkGH, + CCTK_REAL const * restrict var, + CCTK_REAL * restrict rhs, + CCTK_REAL var0, + CCTK_REAL v0); + +void +ML_CCZ4_NewRad (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_REAL const v0 = sqrt (harmonicF); + + newrad (cctkGH, phi , phirhs , 0.0, v0 ); + + newrad (cctkGH, gt11 , gt11rhs , 1.0, 1.0); + newrad (cctkGH, gt12 , gt12rhs , 0.0, 1.0); + newrad (cctkGH, gt13 , gt13rhs , 0.0, 1.0); + newrad (cctkGH, gt22 , gt22rhs , 1.0, 1.0); + newrad (cctkGH, gt23 , gt23rhs , 0.0, 1.0); + newrad (cctkGH, gt33 , gt33rhs , 1.0, 1.0); + + newrad (cctkGH, Xt1 , Xt1rhs , 0.0, 1.0); + newrad (cctkGH, Xt2 , Xt2rhs , 0.0, 1.0); + newrad (cctkGH, Xt3 , Xt3rhs , 0.0, 1.0); + + newrad (cctkGH, trK , trKrhs , 0.0, v0 ); + + newrad (cctkGH, At11 , At11rhs , 0.0, 1.0); + newrad (cctkGH, At12 , At12rhs , 0.0, 1.0); + newrad (cctkGH, At13 , At13rhs , 0.0, 1.0); + newrad (cctkGH, At22 , At22rhs , 0.0, 1.0); + newrad (cctkGH, At23 , At23rhs , 0.0, 1.0); + newrad (cctkGH, At33 , At33rhs , 0.0, 1.0); + + newrad (cctkGH, alpha, alpharhs, 1.0, v0 ); + + newrad (cctkGH, A , Arhs , 0.0, v0 ); + + newrad (cctkGH, beta1, beta1rhs, 0.0, 1.0); + newrad (cctkGH, beta2, beta2rhs, 0.0, 1.0); + newrad (cctkGH, beta3, beta3rhs, 0.0, 1.0); + + newrad (cctkGH, B1 , B1rhs , 0.0, 1.0); + newrad (cctkGH, B2 , B2rhs , 0.0, 1.0); + newrad (cctkGH, B3 , B3rhs , 0.0, 1.0); + + newrad (cctkGH, Theta, Thetarhs, 0.0, 1.0); +} + +static void +newrad (cGH const * restrict const cctkGH, + CCTK_REAL const * restrict const var, + CCTK_REAL * restrict const rhs, + CCTK_REAL const var0, + CCTK_REAL const v0) +{ + DECLARE_CCTK_PARAMETERS; + + NewRad_Apply (cctkGH, var, rhs, var0, v0, radpower); +} diff --git a/ML_CCZ4_Helper/src/RegisterConstrained.c b/ML_CCZ4_Helper/src/RegisterConstrained.c new file mode 100644 index 0000000..ab906a3 --- /dev/null +++ b/ML_CCZ4_Helper/src/RegisterConstrained.c @@ -0,0 +1,32 @@ +#include <assert.h> +#include <stdlib.h> +#include <string.h> + +#include <cctk.h> +#include <cctk_Arguments.h> + +static void +register_constrained (char const * restrict const gn); + +void +ML_CCZ4_RegisterConstrained (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + + register_constrained ("ADMBase::metric"); + register_constrained ("ADMBase::curv"); + register_constrained ("ADMBase::lapse"); + register_constrained ("ADMBase::shift"); + register_constrained ("ADMBase::dtlapse"); + register_constrained ("ADMBase::dtshift"); +} + +static void +register_constrained (char const * restrict const gn) +{ + assert (gn); + + int const gi = CCTK_GroupIndex (gn); + int const ierr = MoLRegisterConstrainedGroup (gi); + assert (! ierr); +} diff --git a/ML_CCZ4_Helper/src/RegisterSlicing.c b/ML_CCZ4_Helper/src/RegisterSlicing.c new file mode 100644 index 0000000..437e185 --- /dev/null +++ b/ML_CCZ4_Helper/src/RegisterSlicing.c @@ -0,0 +1,9 @@ +#include <cctk.h> +#include <Slicing.h> + +int +ML_CCZ4_RegisterSlicing (void) +{ + Einstein_RegisterSlicing ("ML_CCZ4"); + return 0; +} diff --git a/ML_CCZ4_Helper/src/SelectBCsADMBase.c b/ML_CCZ4_Helper/src/SelectBCsADMBase.c new file mode 100644 index 0000000..10c01f9 --- /dev/null +++ b/ML_CCZ4_Helper/src/SelectBCsADMBase.c @@ -0,0 +1,31 @@ +#include <assert.h> + +#include <cctk.h> +#include <cctk_Arguments.h> +#include <cctk_Parameters.h> + +static void +select_bcs (cGH const * restrict cctkGH, char const * restrict gn); + +void +ML_CCZ4_SelectBCsADMBase (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + + select_bcs (cctkGH, "ADMBase::metric"); + select_bcs (cctkGH, "ADMBase::curv"); + select_bcs (cctkGH, "ADMBase::lapse"); + select_bcs (cctkGH, "ADMBase::shift"); + select_bcs (cctkGH, "ADMBase::dtlapse"); + select_bcs (cctkGH, "ADMBase::dtshift"); +} + +static void +select_bcs (cGH const * restrict const cctkGH, char const * restrict const gn) +{ + DECLARE_CCTK_PARAMETERS; + + int const ierr = Boundary_SelectGroupForBC + (cctkGH, CCTK_ALL_FACES, boundary_width, -1, gn, "none"); + assert (! ierr); +} diff --git a/ML_CCZ4_Helper/src/SetGroupTags.c b/ML_CCZ4_Helper/src/SetGroupTags.c new file mode 100644 index 0000000..00878ee --- /dev/null +++ b/ML_CCZ4_Helper/src/SetGroupTags.c @@ -0,0 +1,77 @@ +#include <cctk.h> +#include <cctk_Parameters.h> +#include <util_Table.h> + +#include <assert.h> + +static void +set_group_tags (int const checkpoint, + int const persistent, + int const prolongate, + char const * restrict const gn); + +int +ML_CCZ4_SetGroupTags (void) +{ + DECLARE_CCTK_PARAMETERS; + + int const checkpoint = timelevels > 1; + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::metric"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::curv"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::lapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::shift"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtlapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtshift"); + + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_cons_detg"); + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_cons_Gamma"); + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_cons_traceA"); + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_Ham"); + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_mom"); + + int const rhs_checkpoint = rhs_timelevels > 1; + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_log_confacrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_metricrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_Gammarhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_trace_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_lapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_dtlapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_shiftrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_dtshiftrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_Thetarhs"); + + return 0; +} + +static void +set_group_tags (int const checkpoint, + int const persistent, + int const prolongate, + char const * restrict const gn) +{ + assert (gn); + + int const gi = CCTK_GroupIndex (gn); + assert (gi >= 0); + + int const table = CCTK_GroupTagsTableI (gi); + assert (table >= 0); + + if (! checkpoint) { + int const ierr = Util_TableSetString (table, "no", "Checkpoint"); + assert (! ierr); + } + + if (! persistent) { + int const ierr = Util_TableSetString (table, "no", "Persistent"); + assert (! ierr); + } + + if (! prolongate) { + int const iret = Util_TableDeleteKey (table, "ProlongationParameter"); + assert (iret == 0 || iret == UTIL_ERROR_TABLE_NO_SUCH_KEY); + int const ierr = Util_TableSetString (table, "none", "Prolongation"); + assert (! ierr); + } +} diff --git a/ML_CCZ4_Helper/src/make.code.defn b/ML_CCZ4_Helper/src/make.code.defn new file mode 100644 index 0000000..a3ac433 --- /dev/null +++ b/ML_CCZ4_Helper/src/make.code.defn @@ -0,0 +1,2 @@ +# -*-Makefile-*- +SRCS = ExtrapolateGammas.c NewRad.c RegisterConstrained.c RegisterSlicing.c SelectBCsADMBase.c SetGroupTags.c diff --git a/ML_CCZ4_Test/interface.ccl b/ML_CCZ4_Test/interface.ccl new file mode 100644 index 0000000..08b297f --- /dev/null +++ b/ML_CCZ4_Test/interface.ccl @@ -0,0 +1 @@ +implements: ML_BSSN_Test diff --git a/ML_CCZ4_Test/param.ccl b/ML_CCZ4_Test/param.ccl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ML_CCZ4_Test/param.ccl diff --git a/ML_CCZ4_Test/schedule.ccl b/ML_CCZ4_Test/schedule.ccl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ML_CCZ4_Test/schedule.ccl diff --git a/ML_CCZ4_Test/src/make.code.defn b/ML_CCZ4_Test/src/make.code.defn new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ML_CCZ4_Test/src/make.code.defn diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d.par b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d.par new file mode 100644 index 0000000..9028533 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d.par @@ -0,0 +1,145 @@ + +ActiveThorns = "CoordBase SymBase Boundary NanChecker CartGrid3d Time MoL CarpetIOBasic CarpetIOScalar IOUtil Carpet CarpetLib CarpetReduce CarpetInterp CarpetSlab CarpetIOASCII ADMBase StaticConformal SpaceMask Slab Periodic Exact GenericFD CoordGauge ADMCoupling LoopControl ML_CCZ4 ML_CCZ4_Helper GenericFD TMuNuBase SphericalSurface ADMMacros TimerReport" + +ADMBase::evolution_method = "ML_CCZ4" +ADMBase::lapse_evolution_method = "ML_CCZ4" +ADMBase::shift_evolution_method = "ML_CCZ4" +ADMBase::dtlapse_evolution_method = "ML_CCZ4" +ADMBase::dtshift_evolution_method = "ML_CCZ4" + +# We use the BBH gauge to ensure it is regression-tested. +ML_CCZ4::harmonicN = 1 # 1+log +ML_CCZ4::harmonicF = 2.0 # 1+log +ML_CCZ4::ShiftGammaCoeff = 1.0 +ML_CCZ4::BetaDriver = 2.0 +ML_CCZ4::LapseAdvectionCoeff = 1.0 +ML_CCZ4::ShiftAdvectionCoeff = 1.0 +ML_CCZ4::GammaShift = 1.0 +ML_CCZ4::dampk1 = 1.0 + +ML_CCZ4::MinimumLapse = 1.0e-8 +ML_CCZ4::conformalMethod = 1 # 1 for W, 0 for phi +ML_CCZ4::my_rhs_boundary_condition = "static" + +ML_CCZ4::EpsDiss = 0.1 + +Boundary::radpower = 2 + +############################################################# +# Grid +############################################################# + +CoordBase::domainsize = minmax + +CoordBase::boundary_size_x_lower = 3 +CoordBase::boundary_size_y_lower = 3 +CoordBase::boundary_size_z_lower = 3 +CoordBase::boundary_shiftout_x_lower = 1 +CoordBase::boundary_shiftout_y_lower = 1 +CoordBase::boundary_shiftout_z_lower = 1 + +CoordBase::boundary_size_x_upper = 3 +CoordBase::boundary_size_y_upper = 3 +CoordBase::boundary_size_z_upper = 3 +CoordBase::boundary_shiftout_x_upper = 0 +CoordBase::boundary_shiftout_y_upper = 0 +CoordBase::boundary_shiftout_z_upper = 0 + +CartGrid3D::type = "coordbase" +CartGrid3D::domain = "full" +CartGrid3D::avoid_origin = "no" + +Periodic::periodic = "yes" + +CoordBase::xmin = 0 +CoordBase::ymin = 0 +CoordBase::zmin = 0 + +CoordBase::xmax = 1 +CoordBase::ymax = 1 +CoordBase::zmax = 1 + +CoordBase::dx = 0.1 +CoordBase::dy = 0.1 +CoordBase::dz = 0.1 + +############################################################# +# Carpet +############################################################# + +Carpet::ghost_size = 3 +Carpet::domain_from_coordbase = "yes" +Carpet::init_3_timelevels = "no" +Carpet::poison_new_timelevels = yes + +############################################################# +# Timers +############################################################# + +# Do not commit these as testsuite output as they will change on +# different machines. They are useful for performance monitoring in +# automated build and test systems. +TimerReport::output_all_timers_readable = yes +TimerReport::n_top_timers = 40 +TimerReport::output_schedule_timers = no + +############################################################# +# Time integration +############################################################# + +Cactus::terminate = "iteration" +Cactus::cctk_itlast = 8 +# Use 0.5 for RK4 and 0.25 for ICN +Time::dtfac = 0.5 + +MethodOfLines::ode_method = "RK4" +MethodOfLines::MoL_Intermediate_Steps = 4 + +#MethodOfLines::ode_method = "generic" +#MethodOfLines::generic_type = "RK" +#MethodOfLines::MoL_Intermediate_Steps = 1 + +MethodOfLines::MoL_Num_Scratch_Levels = 1 +MethodOfLines::MoL_NaN_Check = "no" +MethodOfLines::initial_data_is_crap = "no" + +############################################################# +# Initial data +############################################################# + +ADMBase::initial_data = "exact" +ADMBase::initial_lapse = "exact" +ADMBase::initial_shift = "exact" +ADMBase::initial_dtlapse = "exact" +ADMBase::initial_dtshift = "exact" + +Exact::exact_model = "Minkowski/shifted gauge wave" +Exact::Minkowski_gauge_wave__what_fn = "sin" +Exact::Minkowski_gauge_wave__amplitude = 0.1 +Exact::Minkowski_gauge_wave__omega = 1 +Exact::Minkowski_gauge_wave__lambda = 0.577350269189626 + +Exact::rotation_euler_psi = -1.9216757376671543544 +Exact::rotation_euler_theta = 0.66214523564555227398 +Exact::rotation_euler_phi = 1.2199169159226388841 + +Exact::exact_order = 4 +Exact::exact_eps = 1e-2 # This is large to ensure regression tests are insensitive to roundoff + +############################################################# +# Output +############################################################# + +IO::out_dir = $parfile +IO::out_fileinfo = "none" +IO::parfile_write = "no" +CarpetIOBasic::outInfo_every = 1 +CarpetIOBasic::outInfo_vars = "ADMBase::alp" + +IOASCII::out1D_every = 8 +IOASCII::out_precision = 19 +IOASCII::out1D_x = "yes" +IOASCII::out1D_y = "no" +IOASCII::out1D_z = "no" +IOASCII::out1D_d = "no" +IOASCII::out1D_vars = "ADMBase::gxx ADMBase::kxx ML_CCZ4::ML_cons_detg ML_CCZ4::ML_cons_Gamma ML_CCZ4::ML_cons_traceA ML_CCZ4::ML_curv ML_CCZ4::ML_dtlapse ML_CCZ4::ML_dtshift ML_CCZ4::ML_Gamma ML_CCZ4::ML_lapse ML_CCZ4::ML_log_confac ML_CCZ4::ML_metric ML_CCZ4::ML_shift ML_CCZ4::ML_trace_curv ML_CCZ4::ML_Theta" diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/A.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/A.x.asc new file mode 100644 index 0000000..4014b07 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/A.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At11.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At11.x.asc new file mode 100644 index 0000000..0c63110 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At11.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.004268336421319260041 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.004268336421318102113 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.006425507527048178111 +0 0 0 0 0 3 3 3 0 0 0 0 1.62832710278356286e-15 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.005178451796062633929 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.003008516424827497107 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.003008516424827675784 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.005178451796062817809 +0 0 0 0 0 8 3 3 0 0.5 0 0 -2.884946289831959165e-15 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.006425507527046082565 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.004268336421319260041 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.004268336421318102113 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.006425507527048178111 +0 0 0 0 0 13 3 3 0 1 0 0 1.62832710278356286e-15 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.005178451796062633929 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.003008516424827497107 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.002222171016184940756 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.009982638058223873914 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.0220821126043325433 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.01882351527460260354 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.006012377901254812272 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.0006191395102141921802 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.006647728121377407574 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.02194742834188746425 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.02866372164198962083 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.01065106008485865868 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.002222171016184940756 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.009982638058223873914 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.0220821126043325433 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.01882351527460260354 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.006012377901254812272 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.0006191395102141921802 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At12.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At12.x.asc new file mode 100644 index 0000000..212b09d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At12.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.06305158118906070697 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.06305158118905931919 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.1575503876315908769 +0 0 0 0 0 3 3 3 0 0 0 0 0.1813805949244508275 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.1373300779859493725 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.05045863700046659961 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.05045863700046622491 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.1373300779859512599 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.1813805949244477467 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.1575503876315910434 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.06305158118906070697 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.06305158118905931919 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.1575503876315908769 +0 0 0 0 0 13 3 3 0 1 0 0 0.1813805949244508275 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.1373300779859493725 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.05045863700046659961 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.04887373793918897702 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.08416661046294075799 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.1628215839948528587 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.1719077601987810955 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.11223599739224982 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.02175386228453273299 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.05559295622511341295 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.1259931811143147895 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.1854335815206167304 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.1644510565218194886 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.04887373793918897702 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.08416661046294075799 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.1628215839948528587 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.1719077601987810955 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.11223599739224982 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.02175386228453273299 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At13.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At13.x.asc new file mode 100644 index 0000000..158b785 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At13.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.063051581189060249 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.06305158118905951348 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.1575503876315908491 +0 0 0 0 0 3 3 3 0 0 0 0 0.1813805949244508831 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.1373300779859494003 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.0504586370004666343 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.05045863700046620409 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.1373300779859512877 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.1813805949244477744 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.1575503876315910712 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.063051581189060249 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.06305158118905951348 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.1575503876315908491 +0 0 0 0 0 13 3 3 0 1 0 0 0.1813805949244508831 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.1373300779859494003 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.0504586370004666343 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.04887373793918757536 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.08416661046294376947 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.1628215839948519705 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.1719077601987814841 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.1122359973922514853 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.02175386228453189338 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.05559295622511292723 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.1259931811143150671 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.1854335815206188953 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.1644510565218213205 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.04887373793918757536 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.08416661046294376947 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.1628215839948519705 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.1719077601987814841 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.1122359973922514853 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.02175386228453189338 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At22.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At22.x.asc new file mode 100644 index 0000000..356913d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At22.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.004268336421318786461 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.0042683364213229949 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.006425507527044411159 +0 0 0 0 0 3 3 3 0 0 0 0 -2.090920029710711353e-15 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.005178451796062851636 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.003008516424827362232 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.003008516424827217817 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.005178451796061292987 +0 0 0 0 0 8 3 3 0 0.5 0 0 1.417167930590521443e-15 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.006425507527047243095 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.004268336421318786461 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.0042683364213229949 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.006425507527044411159 +0 0 0 0 0 13 3 3 0 1 0 0 -2.090920029710711353e-15 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.005178451796062851636 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.003008516424827362232 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.002222171016191636789 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.009982638058234917164 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.02208211260432214884 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.01882351527460244742 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.006012377901247856898 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.0006191395102204596277 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.006647728121379109338 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.02194742834188589259 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.02866372164198386155 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.01065106008486724556 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.002222171016191636789 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.009982638058234917164 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.02208211260432214884 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.01882351527460244742 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.006012377901247856898 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.0006191395102204596277 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At23.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At23.x.asc new file mode 100644 index 0000000..5cba3bc --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At23.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.06305158118906060982 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.06305158118905883347 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.1575503876315908214 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1813805949244508831 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.1373300779859494836 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.05045863700046648859 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.0504586370004660098 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.1373300779859505938 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.1813805949244481353 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.1575503876315904883 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.06305158118906060982 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.06305158118905883347 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.1575503876315908214 +0 0 0 0 0 13 3 3 0 1 0 0 -0.1813805949244508831 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.1373300779859494836 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.05045863700046648859 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.04887373793918800557 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.08416661046294370008 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.1628215839948544408 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.171907760198782511 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.1122359973922497922 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -0.02175386228453122031 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.0555929562251098186 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.1259931811143115143 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.1854335815206170079 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.1644510565218241238 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.04887373793918800557 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.08416661046294370008 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.1628215839948544408 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.171907760198782511 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.1122359973922497922 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -0.02175386228453122031 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At33.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At33.x.asc new file mode 100644 index 0000000..10ab45c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/At33.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.004268336421323083371 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.00426833642131976658 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.006425507527048234489 +0 0 0 0 0 3 3 3 0 0 0 0 4.625929269271485914e-16 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.005178451796051549913 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.003008516424835124253 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.003008516424835013664 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.005178451796053150195 +0 0 0 0 0 8 3 3 0 0.5 0 0 1.528190233053037097e-15 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.006425507527047385342 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.004268336421323083371 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.00426833642131976658 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.006425507527048234489 +0 0 0 0 0 13 3 3 0 1 0 0 4.625929269271485914e-16 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.005178451796051549913 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.003008516424835124253 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.002222171016199682436 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.009982638058230177899 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.02208211260431991799 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.01882351527460386295 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.006012377901254206854 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.0006191395102208465794 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.006647728121377751917 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.02194742834188101108 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.02866372164198211989 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.0106510600848650841 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.002222171016199682436 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.009982638058230177899 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.02208211260431991799 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.01882351527460386295 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.006012377901254206854 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.0006191395102208465794 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B1.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B1.x.asc new file mode 100644 index 0000000..8eb2993 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B1.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.261533743509176686 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.2631960600575807829 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.6098815089448363924 +0 0 0 0 0 3 3 3 0 0 0 0 0.6283155970682403613 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.4281815728329479431 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.1479927352531239526 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.1477785858613959169 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.4283473856400248359 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.6283155970682403613 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.6101741936052138549 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.261533743509176686 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.2631960600575807829 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.6098815089448363924 +0 0 0 0 0 13 3 3 0 1 0 0 0.6283155970682403613 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.4281815728329479431 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.1479927352531239526 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.9723953674019965021 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.7289130783533870339 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.3400576471164251102 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.09789964395248995643 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.5693631900354440001 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -1.009473067426440274 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -1.082385548783288964 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.5483319210379221653 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.2770634697823551873 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.8658266462659740537 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.9723953674019965021 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.7289130783533870339 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.3400576471164251102 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.09789964395248995643 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.5693631900354440001 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -1.009473067426440274 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B2.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B2.x.asc new file mode 100644 index 0000000..7c8191d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B2.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.261533743509176686 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.2631960600575807829 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.6098815089448363924 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6283155970682403613 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.4281815728329479431 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1479927352531239526 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1477785858613959169 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.4283473856400248359 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.6283155970682403613 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.6101741936052138549 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.261533743509176686 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.2631960600575807829 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.6098815089448363924 +0 0 0 0 0 13 3 3 0 1 0 0 -0.6283155970682403613 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.4281815728329479431 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1479927352531239526 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.9723953674020048288 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.7289130783533860347 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.3400576471164168946 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.0978996439524813522 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.5693631900354382269 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 1.009473067426432502 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 1.08238554878327542 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.548331921037915837 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.2770634697823622927 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.8658266462659844898 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.9723953674020048288 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.7289130783533860347 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.3400576471164168946 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.0978996439524813522 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.5693631900354382269 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 1.009473067426432502 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B3.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B3.x.asc new file mode 100644 index 0000000..b472fd5 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/B3.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.2615337435091760754 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.2631960600575809495 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.6098815089448366145 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6283155970682405833 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.4281815728329480542 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1479927352531242857 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1477785858613956116 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.4283473856400249469 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.6283155970682404723 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.6101741936052137438 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.2615337435091760754 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.2631960600575809495 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.6098815089448366145 +0 0 0 0 0 13 3 3 0 1 0 0 -0.6283155970682405833 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.4281815728329480542 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1479927352531242857 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.9723953674020062721 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.7289130783533778191 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.3400576471164161729 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.09789964395247230389 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.5693631900354408915 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 1.009473067426440718 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 1.082385548783286744 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.5483319210379224984 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.2770634697823689541 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.8658266462659871543 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.9723953674020062721 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.7289130783533778191 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.3400576471164161729 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.09789964395247230389 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.5693631900354408915 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 1.009473067426440718 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Theta.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Theta.x.asc new file mode 100644 index 0000000..b83adca --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Theta.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.01026874944439704583 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.006146998634393356295 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.007621164422260719162 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.007218600508167378332 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.008592949443868290113 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.01675215518851411178 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.01774003032690215156 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.03243038461519604648 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.006373039265432495909 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.02676490303355243128 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.01026874944439704583 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.006146998634393356295 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.007621164422260719162 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.007218600508167378332 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.008592949443868290113 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.01675215518851411178 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt1.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt1.x.asc new file mode 100644 index 0000000..ae0821f --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt1.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.1511973670841813833 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.1511973670841793016 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.3718616479575347911 +0 0 0 0 0 3 3 3 0 0 0 0 0.4170539798141705279 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.3075250631768484677 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.1111590284029087966 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.1111590284029082554 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.3075250631768488008 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.4170539798141684185 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.3718616479575358458 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.1511973670841813833 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.1511973670841793016 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.3718616479575347911 +0 0 0 0 0 13 3 3 0 1 0 0 0.4170539798141705279 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.3075250631768484677 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.1111590284029087966 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.9929793950116826418 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.4457618031461417218 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.08153725863349570169 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.4085290182789532709 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.6757401491608735489 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -0.9346227287756014857 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.8555502336040403666 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.2137551508383944143 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.6390253368745013596 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 1.13170378350831502 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.9929793950116826418 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.4457618031461417218 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.08153725863349570169 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.4085290182789532709 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.6757401491608735489 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -0.9346227287756014857 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt2.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt2.x.asc new file mode 100644 index 0000000..b4b9cf5 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt2.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.1511973670841813278 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.1511973670841806894 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.3718616479575345135 +0 0 0 0 0 3 3 3 0 0 0 0 -0.417053979814168807 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.3075250631768485787 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1111590284029089076 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1111590284029082554 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.3075250631768485232 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.417053979814168474 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.3718616479575356237 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.1511973670841813278 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1511973670841806894 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.3718616479575345135 +0 0 0 0 0 13 3 3 0 1 0 0 -0.417053979814168807 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.3075250631768485787 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1111590284029089076 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.9929793950116904133 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.4457618031461407782 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.08153725863350419489 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.4085290182789457214 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.6757401491608673316 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.9346227287755936031 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.8555502336040265998 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.2137551508383866983 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.6390253368745077989 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -1.13170378350832479 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.9929793950116904133 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.4457618031461407782 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.08153725863350419489 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.4085290182789457214 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.6757401491608673316 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.9346227287755936031 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt3.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt3.x.asc new file mode 100644 index 0000000..8efb3f6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/Xt3.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.1511973670841814665 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.1511973670841791351 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.3718616479575344025 +0 0 0 0 0 3 3 3 0 0 0 0 -0.4170539798141703614 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.3075250631768485232 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1111590284029074643 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1111590284029082693 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.3075250631768481346 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.417053979814168585 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.3718616479575356792 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.1511973670841814665 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1511973670841791351 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.3718616479575344025 +0 0 0 0 0 13 3 3 0 1 0 0 -0.4170539798141703614 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.3075250631768485232 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1111590284029074643 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.9929793950116916346 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.4457618031461308417 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.08153725863350524961 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.4085290182789350633 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.6757401491608699962 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.9346227287756038171 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.8555502336040381461 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.2137551508383933041 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.6390253368745160145 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -1.131703783508328787 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.9929793950116916346 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.4457618031461308417 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.08153725863350524961 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.4085290182789350633 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.6757401491608699962 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.9346227287756038171 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/alpha.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/alpha.x.asc new file mode 100644 index 0000000..c092343 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/alpha.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.05123802613049433 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.05123802613049433 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.030751762999378984 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.971845969673347021 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.9555908659126353122 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.9555908659126353122 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.97184596967334691 +0 0 0 0 0 8 3 3 0 0.5 0 0 1 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.030751762999378762 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.05123802613049433 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.05123802613049433 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.030751762999378984 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.971845969673347021 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.9555908659126353122 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 1.052652412178646246 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 1.047269543969207684 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 1.02052535918932441 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.9873822139863915881 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.9627443419304942962 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.9536416149661693931 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.9599689419224836096 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.9785943367522877967 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 1.005594793765888895 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 1.03458556566145421 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 1.052652412178646246 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 1.047269543969207684 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 1.02052535918932441 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.9873822139863915881 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.9627443419304942962 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.9536416149661693931 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta1.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta1.x.asc new file mode 100644 index 0000000..28f957d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta1.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.06068031441309687524 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.06068031441309696544 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.0360550606560913478 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.03205183761762388922 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.05014061747197683105 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.05014061747197684493 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.03205183761762393779 +0 0 0 0 0 8 3 3 0 0.5 0 0 -8.398900904684191565e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.03605506065609112576 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.06068031441309687524 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.06068031441309696544 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.0360550606560913478 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.03205183761762388922 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.05014061747197683105 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.003387524249141231347 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.04196647570336492494 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.06120346994373934701 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.05970039829375977519 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.03976154833146313544 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -0.002925204554348588559 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.04236785368525254614 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.07379104123768567836 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.07337740056148615853 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.04206348227224530195 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.003387524249141231347 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.04196647570336492494 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.06120346994373934701 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.05970039829375977519 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.03976154833146313544 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -0.002925204554348588559 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta2.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta2.x.asc new file mode 100644 index 0000000..90bad87 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta2.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.06068031441309687524 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.06068031441309696544 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.0360550606560913478 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.03205183761762388922 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.05014061747197683105 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.05014061747197684493 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.03205183761762393779 +0 0 0 0 0 8 3 3 0 0.5 0 0 8.398900904684191565e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.03605506065609112576 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.06068031441309687524 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.06068031441309696544 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.0360550606560913478 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.03205183761762388922 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.05014061747197683105 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.003387524249141522781 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.04196647570336543148 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.06120346994373945804 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.05970039829375967805 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.03976154833146304524 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.002925204554348588559 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.04236785368525282369 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.07379104123768591428 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.07337740056148595036 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.0420634822722450244 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.003387524249141522781 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.04196647570336543148 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.06120346994373945804 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.05970039829375967805 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.03976154833146304524 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.002925204554348588559 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta3.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta3.x.asc new file mode 100644 index 0000000..fb10ff3 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/beta3.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.06068031441309688911 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.06068031441309697238 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.0360550606560913478 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.03205183761762389616 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.05014061747197683799 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.05014061747197685881 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.03205183761762394473 +0 0 0 0 0 8 3 3 0 0.5 0 0 8.398900904684192798e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.0360550606560911327 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.06068031441309688911 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.06068031441309697238 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.0360550606560913478 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.03205183761762389616 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.05014061747197683799 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.003387524249141293797 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.04196647570336537597 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.06120346994373945804 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.0597003982937595809 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.03976154833146310075 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.002925204554349074282 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.04236785368525246287 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.07379104123768583101 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.07337740056148625567 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.04206348227224557257 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.003387524249141293797 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.04196647570336537597 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.06120346994373945804 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.0597003982937595809 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.03976154833146310075 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.002925204554349074282 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cA.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cA.x.asc new file mode 100644 index 0000000..b09a51d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cA.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -8.673617379884035472e-19 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -1.734723475976807094e-18 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 8.673617379884035472e-19 +0 0 0 0 0 3 3 3 0 0 0 0 1.972152263052529514e-31 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 8.673617379884035472e-19 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.301042606982605321e-18 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -4.336808689942017736e-19 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -8.673617379884035472e-19 +0 0 0 0 0 8 3 3 0 0.5 0 0 3.944304526105059027e-31 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.734723475976807094e-18 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -8.673617379884035472e-19 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -1.734723475976807094e-18 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 8.673617379884035472e-19 +0 0 0 0 0 13 3 3 0 1 0 0 1.972152263052529514e-31 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 8.673617379884035472e-19 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.301042606982605321e-18 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 4.982990626156355574e-08 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -1.190458048180853545e-07 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -2.601277027808324149e-08 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -1.734948820719672824e-08 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -3.048918067669048604e-08 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -7.198199099929178391e-09 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -9.301470390785104847e-08 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 1.100028669542840731e-08 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -7.382714641013254919e-08 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -8.166419225401344573e-08 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 4.982990626156355574e-08 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -1.190458048180853545e-07 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -2.601277027808324149e-08 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -1.734948820719672824e-08 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -3.048918067669048604e-08 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -7.198199099929178391e-09 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cS.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cS.x.asc new file mode 100644 index 0000000..4014b07 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cS.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt1.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt1.x.asc new file mode 100644 index 0000000..d9937a6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt1.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -8.066464163292152989e-17 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -1.322726650432315409e-16 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 2.784231178942775387e-16 +0 0 0 0 0 3 3 3 0 0 0 0 3.354250471127029343e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 6.158268339717665185e-17 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -1.940721888749052937e-16 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -6.002143226879752547e-16 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -3.222248856626919178e-16 +0 0 0 0 0 8 3 3 0 0.5 0 0 -4.174855990426995511e-16 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 2.602085213965210642e-18 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -8.066464163292152989e-17 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -1.322726650432315409e-16 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 2.784231178942775387e-16 +0 0 0 0 0 13 3 3 0 1 0 0 3.354250471127029343e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 6.158268339717665185e-17 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -1.940721888749052937e-16 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.0397614953376748681 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.01811801489483534644 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.01980991780630323926 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.005922896843701817154 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.01158544486338861437 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.005036027183185773186 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.0003438348711606552255 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.01329340422364685449 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.01133733906781632036 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.001897947706963529907 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.0397614953376748681 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.01811801489483534644 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.01980991780630323926 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.005922896843701817154 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.01158544486338861437 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.005036027183185773186 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt2.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt2.x.asc new file mode 100644 index 0000000..ce5cf52 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt2.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.11022302462515654e-16 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -8.049116928532384918e-16 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -5.551115123125782702e-17 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 6.869504964868156094e-16 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 3.261280134836397337e-16 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -2.775557561562891351e-17 +0 0 0 0 0 8 3 3 0 0.5 0 0 -7.494005416219806648e-16 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 2.775557561562891351e-17 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.11022302462515654e-16 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -8.049116928532384918e-16 +0 0 0 0 0 13 3 3 0 1 0 0 -2.775557561562891351e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -5.551115123125782702e-17 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 6.869504964868156094e-16 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.03976149533767420197 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.01811801489484177186 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.01980991780629907245 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.005922896843697428304 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.01158544486338580759 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -0.005036027183182301137 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.0003438348711661820545 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.01329340422364738705 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.011337339067821528 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.001897947706974045801 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.03976149533767420197 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.01811801489484177186 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.01980991780629907245 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.005922896843697428304 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.01158544486338580759 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -0.005036027183182301137 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt3.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt3.x.asc new file mode 100644 index 0000000..4d093a3 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/cXt3.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 6.938893903907228378e-17 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.526556658859590243e-16 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -1.137978600240785454e-15 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -2.775557561562891351e-17 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 4.787836793695987581e-16 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -1.186550857568136053e-15 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.942890293094023946e-16 +0 0 0 0 0 8 3 3 0 0.5 0 0 4.163336342344337027e-16 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -2.775557561562891351e-17 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 6.938893903907228378e-17 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.526556658859590243e-16 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -1.137978600240785454e-15 +0 0 0 0 0 13 3 3 0 1 0 0 -2.775557561562891351e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -2.775557561562891351e-17 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 4.787836793695987581e-16 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.0397614953376813629 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.01811801489483705341 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.01980991780630420029 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.00592289684369287639 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.01158544486338575208 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -0.005036027183185243228 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.0003438348711604088948 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.0132934042236457356 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.01133733906781841938 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.001897947706976044202 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.0397614953376813629 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.01811801489483705341 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.01980991780630420029 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.00592289684369287639 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.01158544486338575208 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -0.005036027183185243228 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt11.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt11.x.asc new file mode 100644 index 0000000..164a9b2 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt11.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.001097695519928665 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.000405024681067401 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.000364803038667816 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.000926567406855705 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.000926567406855705 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.000364803038668038 +0 0 0 0 0 8 3 3 0 0.5 0 0 1 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.000405024681067179 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.001097695519928665 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.000405024681067401 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 1.000364803038667816 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.000926567406855705 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 1.000416525608256668 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 1.003880382340599731 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 1.005228259448056383 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 1.003233814302351368 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 1.000709960643116903 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 1.000169434255847589 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 1.003281743977509688 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 1.006850398232920663 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 1.005505229960597324 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 1.00096969944896208 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 1.000416525608256668 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 1.003880382340599731 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 1.005228259448056383 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 1.003233814302351368 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 1.000709960643116903 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 1.000169434255847589 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt12.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt12.x.asc new file mode 100644 index 0000000..6b6198c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt12.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.03277573545166539287 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.03277573545166539287 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.01999248696063090497 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.01922334923201163281 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.03075622745750388604 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.03075622745750388604 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.01922334923201168833 +0 0 0 0 0 8 3 3 0 0.5 0 0 -8.326672684688671588e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.01999248696063078354 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.03277573545166539287 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.03277573545166539287 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.01999248696063090497 +0 0 0 0 0 13 3 3 0 1 0 0 -2.775557561562891351e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.01922334923201163281 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.03075622745750388604 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.02327215403346585831 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.06328573056723811596 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.07312385407106053448 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.05810721682659377579 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.02754118173192332888 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.01403332850362783157 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.05660111134317387382 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.08066832606474082235 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.07213835097634918592 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.03139821061251318185 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.02327215403346585831 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.06328573056723811596 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.07312385407106053448 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.05810721682659377579 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.02754118173192332888 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.01403332850362783157 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt13.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt13.x.asc new file mode 100644 index 0000000..7b80b7c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt13.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.03277573545166547614 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.03277573545166547614 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.0199924869606309917 +0 0 0 0 0 3 3 3 0 0 0 0 5.551115123125782702e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.01922334923201155302 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.03075622745750380277 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.03075622745750380277 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.01922334923201160506 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.01999248696063087027 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.03277573545166547614 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.03277573545166547614 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.0199924869606309917 +0 0 0 0 0 13 3 3 0 1 0 0 5.551115123125782702e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.01922334923201155302 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.03075622745750380277 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 -0.02327215403346633016 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.06328573056723793555 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.07312385407105988222 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.05810721682659360232 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.02754118173192372787 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.01403332850362752626 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.05660111134317406811 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.0806683260647413497 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.07213835097634932469 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.03139821061251277245 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 -0.02327215403346633016 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.06328573056723793555 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.07312385407105988222 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.05810721682659360232 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.02754118173192372787 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.01403332850362752626 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt22.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt22.x.asc new file mode 100644 index 0000000..0a606bc --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt22.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.001097695519928665 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.000405024681067623 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.000364803038667816 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.000926567406855705 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.000926567406855705 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.000364803038668038 +0 0 0 0 0 8 3 3 0 0.5 0 0 1 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.000405024681067179 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.001097695519928665 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.000405024681067623 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 1.000364803038667816 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.000926567406855705 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 1.000416525608257778 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 1.003880382340599953 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 1.005228259448056161 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 1.00323381430235048 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 1.000709960643116903 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 1.000169434255847367 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 1.003281743977509688 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 1.006850398232920885 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 1.005505229960596214 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 1.000969699448962746 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 1.000416525608257778 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 1.003880382340599953 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 1.005228259448056161 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 1.00323381430235048 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 1.000709960643116903 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 1.000169434255847367 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt23.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt23.x.asc new file mode 100644 index 0000000..f27e238 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt23.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.03277573545166539287 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.03277573545166539287 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.01999248696063090497 +0 0 0 0 0 3 3 3 0 0 0 0 2.775557561562891351e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.01922334923201163281 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.03075622745750388604 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.03075622745750388604 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.01922334923201168833 +0 0 0 0 0 8 3 3 0 0.5 0 0 8.326672684688671588e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.01999248696063078354 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.03277573545166539287 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.03277573545166539287 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.01999248696063090497 +0 0 0 0 0 13 3 3 0 1 0 0 2.775557561562891351e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.01922334923201163281 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.03075622745750388604 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.02327215403346632322 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.06328573056723811596 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.07312385407106035407 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.05810721682659355375 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.02754118173192338787 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -0.01403332850362779688 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 -0.05660111134317348525 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 -0.08066832606474040601 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 -0.07213835097634890836 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 -0.03139821061251305695 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.02327215403346632322 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.06328573056723811596 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.07312385407106035407 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.05810721682659355375 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.02754118173192338787 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -0.01403332850362779688 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt33.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt33.x.asc new file mode 100644 index 0000000..83d318f --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gt33.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.001097695519928665 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.000405024681067401 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.000364803038668038 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.000926567406855705 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.000926567406855705 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.000364803038668038 +0 0 0 0 0 8 3 3 0 0.5 0 0 1 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.000405024681067179 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.001097695519928665 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.000405024681067401 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 1.000364803038668038 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.000926567406855705 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 1.000416525608256668 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 1.003880382340600175 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 1.005228259448055717 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 1.003233814302349369 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 1.000709960643115792 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 1.000169434255847589 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 1.003281743977510354 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 1.006850398232920885 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 1.005505229960595548 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 1.000969699448961192 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 1.000416525608256668 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 1.003880382340600175 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 1.005228259448055717 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 1.003233814302349369 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 1.000709960643115792 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 1.000169434255847589 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gxx.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gxx.x.asc new file mode 100644 index 0000000..6efe5c7 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/gxx.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.968298116123494923 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.968298116123494923 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.9804071582569174881 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.019592841743082401 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.031701883876505299 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.031701883876505299 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.019592841743082623 +0 0 0 0 0 8 3 3 0 0.5 0 0 1.000000000000000222 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.9804071582569177101 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.968298116123494923 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.968298116123494923 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.9804071582569174881 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 1.019592841743082401 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.031701883876505299 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 1.023193145953921857 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 1.068393052046706204 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 1.079836765826430955 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 1.061703592630796944 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 1.027961788398015885 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 0.986279063751585916 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.9470870436872945719 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.9258860743340653343 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.9321049702742328913 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.9680794870041943279 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 1.023193145953921857 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 1.068393052046706204 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 1.079836765826430955 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 1.061703592630796944 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 1.027961788398015885 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 0.986279063751585916 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/kxx.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/kxx.x.asc new file mode 100644 index 0000000..af58c1c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/kxx.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.05892153831746786696 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.0589215383174686233 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.1512524600532927366 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1813805949244461646 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.1426086965759302549 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.05356058938639061962 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.05356058938638950245 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.1426086965759379155 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.1813805949244440552 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.1512524600532958452 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.05892153831746786696 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.0589215383174686233 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.1512524600532927366 +0 0 0 0 0 13 3 3 0 1 0 0 -0.1813805949244461646 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.1426086965759302549 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.05356058938639061962 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.06910202839635219696 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.08907958273457161624 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.2000818839855364184 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.2059776394727745874 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.1160290203660148955 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -0.008731208735987237152 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.0499201079401754913 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.09575868731973095904 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.1512185964586307829 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.1605120023718065447 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.06910202839635219696 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.08907958273457161624 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.2000818839855364184 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.2059776394727745874 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.1160290203660148955 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -0.008731208735987237152 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/phi.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/phi.x.asc new file mode 100644 index 0000000..6732d31 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/phi.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.016795668249818041 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.016795668249818041 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.010147272253753226 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.9905258471169019474 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.9849722533905976851 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.9849722533905976851 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.9905258471169019474 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.999999999999999889 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.010147272253753004 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.016795668249818041 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.016795668249818041 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.010147272253753226 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.9905258471169019474 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.9849722533905976851 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.9888071939518700004 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 0.9693384863115995786 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 0.9648355335678293621 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 0.9720742465937129984 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 0.9866556919759048583 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 1.007017184972836432 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 1.029239646980635969 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 1.042806421839191033 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 1.038627351009956845 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 1.016845466318951896 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.9888071939518700004 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 0.9693384863115995786 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 0.9648355335678293621 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 0.9720742465937129984 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 0.9866556919759048583 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 1.007017184972836432 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/trK.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/trK.x.asc new file mode 100644 index 0000000..557b4cc --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d/trK.x.asc @@ -0,0 +1,40 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.1953428212594253421 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.1953428212594242042 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.4820941641502610731 +0 0 0 0 0 3 3 3 0 0 0 0 -0.5441417847733434066 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.4040751484217592893 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1467271837380128285 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.146727183738009026 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.4040751484217811607 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.544141784773340742 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.4820941641502641817 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.1953428212594253421 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1953428212594242042 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.4820941641502610731 +0 0 0 0 0 13 3 3 0 1 0 0 -0.5441417847733434066 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.4040751484217592893 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1467271837380128285 + +# + +8 0 0 0 0 0 3 3 0.4000000000000000222 -0.3000000000000000444 0 0 0.1959432542289286372 +8 0 0 0 0 1 3 3 0.4000000000000000222 -0.2000000000000000111 0 0 -0.2202993380383910793 +8 0 0 0 0 2 3 3 0.4000000000000000222 -0.1000000000000000056 0 0 -0.4899652401669922219 +8 0 0 0 0 3 3 3 0.4000000000000000222 0 0 0 -0.5257316629880188774 +8 0 0 0 0 4 3 3 0.4000000000000000222 0.1000000000000000056 0 0 -0.3205943401621000333 +8 0 0 0 0 5 3 3 0.4000000000000000222 0.2000000000000000111 0 0 -0.02841513107977053365 +8 0 0 0 0 6 3 3 0.4000000000000000222 0.3000000000000000444 0 0 0.1780052571350426716 +8 0 0 0 0 7 3 3 0.4000000000000000222 0.4000000000000000222 0 0 0.3756658088880814872 +8 0 0 0 0 8 3 3 0.4000000000000000222 0.5 0 0 0.5722206779221203909 +8 0 0 0 0 9 3 3 0.4000000000000000222 0.6000000000000000888 0 0 0.5293359331311475735 +8 0 0 0 0 10 3 3 0.4000000000000000222 0.7000000000000000666 0 0 0.1959432542289286372 +8 0 0 0 0 11 3 3 0.4000000000000000222 0.8000000000000000444 0 0 -0.2202993380383910793 +8 0 0 0 0 12 3 3 0.4000000000000000222 0.9000000000000000222 0 0 -0.4899652401669922219 +8 0 0 0 0 13 3 3 0.4000000000000000222 1 0 0 -0.5257316629880188774 +8 0 0 0 0 14 3 3 0.4000000000000000222 1.100000000000000089 0 0 -0.3205943401621000333 +8 0 0 0 0 15 3 3 0.4000000000000000222 1.200000000000000178 0 0 -0.02841513107977053365 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs.par b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs.par new file mode 100644 index 0000000..31add0c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs.par @@ -0,0 +1,147 @@ + +ActiveThorns = "CoordBase SymBase Boundary NanChecker CartGrid3d Time MoL CarpetIOBasic CarpetIOScalar IOUtil Carpet CarpetLib CarpetReduce CarpetInterp CarpetSlab CarpetIOASCII ADMBase StaticConformal SpaceMask Slab Periodic Exact GenericFD CoordGauge ADMCoupling LoopControl ML_CCZ4 ML_CCZ4_Helper GenericFD TMuNuBase SphericalSurface ADMMacros TimerReport" + +ADMBase::evolution_method = "ML_CCZ4" +ADMBase::lapse_evolution_method = "ML_CCZ4" +ADMBase::shift_evolution_method = "ML_CCZ4" +ADMBase::dtlapse_evolution_method = "ML_CCZ4" +ADMBase::dtshift_evolution_method = "ML_CCZ4" + +# We use the BBH gauge to ensure it is regression-tested. Also, there +# is no harmonic shift in McLachlan +ML_CCZ4::harmonicN = 1 # 1+log +ML_CCZ4::harmonicF = 2.0 # 1+log +ML_CCZ4::ShiftGammaCoeff = 1.0 +ML_CCZ4::BetaDriver = 2.0 +ML_CCZ4::LapseAdvectionCoeff = 1.0 +ML_CCZ4::ShiftAdvectionCoeff = 1.0 +ML_CCZ4::GammaShift = 1.0 +ML_CCZ4::dampk1 = 1.0 + +ML_CCZ4::MinimumLapse = 1.0e-8 +ML_CCZ4::conformalMethod = 1 # 1 for W, 0 for phi +ML_CCZ4::my_rhs_boundary_condition = "static" + +ML_CCZ4::EpsDiss = 0.1 + +Boundary::radpower = 2 + +############################################################# +# Grid +############################################################# + +CoordBase::domainsize = minmax + +CoordBase::boundary_size_x_lower = 3 +CoordBase::boundary_size_y_lower = 3 +CoordBase::boundary_size_z_lower = 3 +CoordBase::boundary_shiftout_x_lower = 1 +CoordBase::boundary_shiftout_y_lower = 1 +CoordBase::boundary_shiftout_z_lower = 1 + +CoordBase::boundary_size_x_upper = 3 +CoordBase::boundary_size_y_upper = 3 +CoordBase::boundary_size_z_upper = 3 +CoordBase::boundary_shiftout_x_upper = 0 +CoordBase::boundary_shiftout_y_upper = 0 +CoordBase::boundary_shiftout_z_upper = 0 + +CartGrid3D::type = "coordbase" +CartGrid3D::domain = "full" +CartGrid3D::avoid_origin = "no" + +Periodic::periodic = "yes" + +CoordBase::xmin = 0 +CoordBase::ymin = 0 +CoordBase::zmin = 0 + +CoordBase::xmax = 1 +CoordBase::ymax = 1 +CoordBase::zmax = 1 + +CoordBase::dx = 0.1 +CoordBase::dy = 0.1 +CoordBase::dz = 0.1 + +############################################################# +# Carpet +############################################################# + +Carpet::ghost_size = 3 +Carpet::domain_from_coordbase = "yes" +Carpet::init_3_timelevels = "no" + +############################################################# +# Timers +############################################################# + +# Do not commit these as testsuite output as they will change on +# different machines. They are useful for performance monitoring in +# automated build and test systems. +TimerReport::output_all_timers_readable = yes +TimerReport::n_top_timers = 40 +TimerReport::output_schedule_timers = no + +############################################################# +# Time integration +############################################################# + +Cactus::terminate = "iteration" +Cactus::cctk_itlast = 0 +# Use 0.5 for RK4 and 0.25 for ICN +Time::dtfac = 0.5 + +MethodOfLines::ode_method = "RK4" +MethodOfLines::MoL_Intermediate_Steps = 4 + +#MethodOfLines::ode_method = "generic" +#MethodOfLines::generic_type = "RK" +#MethodOfLines::MoL_Intermediate_Steps = 1 + +MethodOfLines::MoL_Num_Scratch_Levels = 1 +MethodOfLines::MoL_NaN_Check = "no" +MethodOfLines::initial_data_is_crap = "no" + +############################################################# +# Initial data +############################################################# + +ADMBase::initial_data = "exact" +ADMBase::initial_lapse = "exact" +ADMBase::initial_shift = "exact" +ADMBase::initial_dtlapse = "exact" +ADMBase::initial_dtshift = "exact" + +Exact::exact_model = "Minkowski/shifted gauge wave" +Exact::Minkowski_gauge_wave__what_fn = "sin" +Exact::Minkowski_gauge_wave__amplitude = 0.1 +Exact::Minkowski_gauge_wave__omega = 1 +Exact::Minkowski_gauge_wave__lambda = 0.577350269189626 + +Exact::rotation_euler_psi = -1.9216757376671543544 +Exact::rotation_euler_theta = 0.66214523564555227398 +Exact::rotation_euler_phi = 1.2199169159226388841 + +Exact::exact_order = 4 +Exact::exact_eps = 1e-2 # This is large to ensure regression tests are insensitive to roundoff + +############################################################# +# Output +############################################################# + +IO::out_dir = $parfile +IO::out_fileinfo = "none" +IO::parfile_write = "no" +CarpetIOBasic::outInfo_every = 1 +CarpetIOBasic::outInfo_vars = "ADMBase::alp" + +IOASCII::out1D_every = 1 +IOASCII::out_precision = 19 +IOASCII::out1D_d = no +IOASCII::out1D_x = yes +IOASCII::out1D_y = yes +IOASCII::out1D_z = yes +IOASCII::out1D_vars = "ADMBase::gxx ADMBase::kxx ML_CCZ4::ML_cons_detg ML_CCZ4::ML_cons_Gamma ML_CCZ4::ML_cons_traceA ML_CCZ4::ML_curv ML_CCZ4::ML_dtlapse ML_CCZ4::ML_dtshift ML_CCZ4::ML_Gamma ML_CCZ4::ML_lapse ML_CCZ4::ML_log_confac ML_CCZ4::ML_metric ML_CCZ4::ML_shift ML_CCZ4::ML_trace_curv ML_CCZ4::ML_Theta ML_CCZ4::ML_curvrhs ML_CCZ4::ML_dtlapserhs ML_CCZ4::ML_dtshiftrhs ML_CCZ4::ML_Gammarhs ML_CCZ4::ML_lapserhs ML_CCZ4::ML_log_confacrhs ML_CCZ4::ML_metricrhs ML_CCZ4::ML_shiftrhs ML_CCZ4::ML_trace_curvrhs ML_CCZ4::ML_Thetarhs" + +Carpet::poison_new_timelevels = yes diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.x.asc new file mode 100644 index 0000000..477e3b6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.y.asc new file mode 100644 index 0000000..9926d9d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0 +0 0 0 0 0 3 8 3 0 0 0.5 0 0 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.z.asc new file mode 100644 index 0000000..c0a5c6a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/A.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.x.asc new file mode 100644 index 0000000..477e3b6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.y.asc new file mode 100644 index 0000000..9926d9d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0 +0 0 0 0 0 3 8 3 0 0 0.5 0 0 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.z.asc new file mode 100644 index 0000000..c0a5c6a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Arhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.x.asc new file mode 100644 index 0000000..ee48a38 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.004268336421319260041 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.004268336421318102113 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.006425507527048178111 +0 0 0 0 0 3 3 3 0 0 0 0 1.62832710278356286e-15 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.005178451796062633929 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.003008516424827497107 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.003008516424827675784 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.005178451796062817809 +0 0 0 0 0 8 3 3 0 0.5 0 0 -2.884946289831959165e-15 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.006425507527046082565 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.004268336421319260041 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.004268336421318102113 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.006425507527048178111 +0 0 0 0 0 13 3 3 0 1 0 0 1.62832710278356286e-15 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.005178451796062633929 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.003008516424827497107 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.y.asc new file mode 100644 index 0000000..718c2cd --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.003008516424827910839 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.003008516424827197434 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.005178451796063042456 +0 0 0 0 0 3 3 3 0 0 0 0 1.62832710278356286e-15 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.006425507527044504834 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.004268336421317569553 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.004268336421317625064 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.006425507527048673374 +0 0 0 0 0 3 8 3 0 0 0.5 0 -9.91582437817545295e-16 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.005178451796058797588 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.003008516424827910839 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.003008516424827197434 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.005178451796063042456 +0 0 0 0 0 3 13 3 0 0 1 0 1.62832710278356286e-15 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.006425507527044504834 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.004268336421317569553 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.z.asc new file mode 100644 index 0000000..7a83f43 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.003008516424827586012 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.00300851642482750925 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.005178451796062960057 +0 0 0 0 0 3 3 3 0 0 0 0 1.62832710278356286e-15 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.006425507527044685245 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.00426833642131761986 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.004268336421317540062 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.006425507527048104385 +0 0 0 0 0 3 3 8 0 0 0 0.5 -8.157971255852288756e-16 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.005178451796058269364 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.003008516424827586012 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.00426833642131761986 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.004268336421317540062 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.006425507527048104385 +0 0 0 1 0 3 3 8 0 0 0 0.5 -8.157971255852288756e-16 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.005178451796058269364 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.003008516424827586012 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.00300851642482750925 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.005178451796062960057 +0 0 0 1 0 3 3 13 0 0 0 1 1.62832710278356286e-15 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.006425507527044685245 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.00426833642131761986 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.x.asc new file mode 100644 index 0000000..d283dd7 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476417988445 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.0309558665679778959 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.09241829636818871263 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.09307036330646109579 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.02899382069529065145 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.1303588323928048243 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.0542434625924902436 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.1151589679900298924 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1199782882554565333 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.05107353390648736169 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.y.asc new file mode 100644 index 0000000..ea7c9be --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476417988445 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.05107353390648777802 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.1199782882554577268 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.1151589679899906182 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.05424346259253626928 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.1303588323927964976 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.02899382069531345266 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.09307036330648812972 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.0924182963682043529 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.03095586656800380573 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.z.asc new file mode 100644 index 0000000..ffbd699 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At11rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476417988445 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.05107353390650093417 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.1199782882554502883 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.1151589679900315577 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.0542434625924743466 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.1303588323927979131 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.02899382069533699979 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.09307036330648654765 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.09241829636820605987 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.0309558665679862087 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.x.asc new file mode 100644 index 0000000..7f8d740 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.06305158118906070697 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.06305158118905931919 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.1575503876315908769 +0 0 0 0 0 3 3 3 0 0 0 0 0.1813805949244508275 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.1373300779859493725 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.05045863700046659961 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.05045863700046622491 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.1373300779859512599 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.1813805949244477467 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.1575503876315910434 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.06305158118906070697 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.06305158118905931919 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.1575503876315908769 +0 0 0 0 0 13 3 3 0 1 0 0 0.1813805949244508275 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.1373300779859493725 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.05045863700046659961 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.y.asc new file mode 100644 index 0000000..d391d00 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 -0.05045863700047144296 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.05045863700046668981 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.1373300779859519538 +0 0 0 0 0 3 3 3 0 0 0 0 0.1813805949244508275 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.1575503876315920149 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.06305158118905880571 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.06305158118905655751 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.1575503876315918761 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.1813805949244499116 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.1373300779859500664 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.05045863700047144296 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.05045863700046668981 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.1373300779859519538 +0 0 0 0 0 3 13 3 0 0 1 0 0.1813805949244508275 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.1575503876315920149 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.06305158118905880571 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.z.asc new file mode 100644 index 0000000..d7e6447 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 -0.05045863700047131112 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.05045863700046598899 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.137330077985950566 +0 0 0 0 0 3 3 3 0 0 0 0 0.1813805949244508275 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.157550387631591654 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.06305158118905931919 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.06305158118905729303 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.1575503876315925422 +0 0 0 0 0 3 3 8 0 0 0 0.5 -0.1813805949244500226 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 -0.1373300779859505938 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 -0.05045863700047131112 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.06305158118905931919 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.06305158118905729303 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.1575503876315925422 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.1813805949244500226 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.1373300779859505938 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.05045863700047131112 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.05045863700046598899 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.137330077985950566 +0 0 0 1 0 3 3 13 0 0 0 1 0.1813805949244508275 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.157550387631591654 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.06305158118905931919 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.x.asc new file mode 100644 index 0000000..5750675 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1640780247673136183 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.197633859732739392 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.717928796884366838 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.716665552506672965 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.195172086599050498 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.163982066162862955 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -1.095209771305901469 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -1.966658005094116035 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -1.974164206232071672 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -1.102066545068808967 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.y.asc new file mode 100644 index 0000000..71f2233 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1640780247673136183 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -1.102066545068810743 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -1.974164206232061014 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -1.96665800509411115 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -1.095209771305872604 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.1639820661628834386 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 1.195172086599058936 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 1.716665552506687398 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 1.71792879688438016 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 1.197633859732734951 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.z.asc new file mode 100644 index 0000000..8429f45 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At12rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1640780247673136183 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -1.10206654506880608 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -1.974164206232075003 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -1.966658005094131356 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -1.095209771305871271 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.1639820661628539344 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 1.195172086599058714 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 1.716665552506689396 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 1.717928796884377718 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 1.197633859732710304 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.x.asc new file mode 100644 index 0000000..deefba3 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.063051581189060249 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.06305158118905951348 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.1575503876315908491 +0 0 0 0 0 3 3 3 0 0 0 0 0.1813805949244508831 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.1373300779859494003 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.0504586370004666343 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.05045863700046620409 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.1373300779859512877 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.1813805949244477744 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.1575503876315910712 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.063051581189060249 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.06305158118905951348 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.1575503876315908491 +0 0 0 0 0 13 3 3 0 1 0 0 0.1813805949244508831 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.1373300779859494003 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.0504586370004666343 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.y.asc new file mode 100644 index 0000000..5e6c270 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 -0.05045863700047124173 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.05045863700046625266 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.1373300779859519816 +0 0 0 0 0 3 3 3 0 0 0 0 0.1813805949244508831 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.1575503876315919594 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.06305158118905877795 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.06305158118905634934 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.1575503876315911544 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.1813805949244502724 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.1373300779859497056 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.05045863700047124173 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.05045863700046625266 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.1373300779859519816 +0 0 0 0 0 3 13 3 0 0 1 0 0.1813805949244508831 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.1575503876315919594 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.06305158118905877795 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.z.asc new file mode 100644 index 0000000..d21ac1c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 -0.05045863700047148459 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.05045863700046603756 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.137330077985950344 +0 0 0 0 0 3 3 3 0 0 0 0 0.1813805949244508831 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.1575503876315917928 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.06305158118905927755 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.06305158118905729303 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.1575503876315925422 +0 0 0 0 0 3 3 8 0 0 0 0.5 -0.1813805949244498283 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 -0.1373300779859520648 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 -0.05045863700047148459 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.06305158118905927755 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.06305158118905729303 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.1575503876315925422 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.1813805949244498283 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.1373300779859520648 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.05045863700047148459 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.05045863700046603756 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.137330077985950344 +0 0 0 1 0 3 3 13 0 0 0 1 0.1813805949244508831 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.1575503876315917928 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.06305158118905927755 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.x.asc new file mode 100644 index 0000000..f6b2232 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1640780247673127301 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.197633859732741612 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.71792879688436595 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.716665552506651427 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.195172086599062933 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.1639820661628648146 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -1.095209771305893476 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -1.966658005094109152 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -1.974164206232054131 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -1.102066545068837167 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.y.asc new file mode 100644 index 0000000..2cdf24d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1640780247673127301 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -1.102066545068818293 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -1.974164206232062568 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -1.966658005094106709 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -1.095209771305882374 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.1639820661628814402 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 1.195172086599075811 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 1.71666555250668984 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 1.717928796884374387 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 1.197633859732722739 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.z.asc new file mode 100644 index 0000000..8eb921b --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At13rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1640780247673127301 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -1.102066545068820957 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -1.974164206232042584 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -1.966658005094123807 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -1.095209771305871715 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.1639820661628741683 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 1.195172086599057382 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 1.716665552506670522 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 1.717928796884380382 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 1.197633859732734507 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.x.asc new file mode 100644 index 0000000..2fd10aa --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.004268336421318786461 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.0042683364213229949 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.006425507527044411159 +0 0 0 0 0 3 3 3 0 0 0 0 -2.090920029710711353e-15 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.005178451796062851636 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.003008516424827362232 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.003008516424827217817 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.005178451796061292987 +0 0 0 0 0 8 3 3 0 0.5 0 0 1.417167930590521443e-15 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.006425507527047243095 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.004268336421318786461 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.0042683364213229949 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.006425507527044411159 +0 0 0 0 0 13 3 3 0 1 0 0 -2.090920029710711353e-15 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.005178451796062851636 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.003008516424827362232 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.y.asc new file mode 100644 index 0000000..157901b --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.003008516424827924283 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.003008516424828126812 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.005178451796062824748 +0 0 0 0 0 3 3 3 0 0 0 0 -2.090920029710711353e-15 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.006425507527048243163 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.004268336421321644418 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.004268336421321090174 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.0064255075270475406 +0 0 0 0 0 3 8 3 0 0 0.5 0 1.756219548129717143e-15 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.005178451796059886994 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.003008516424827924283 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.003008516424828126812 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.005178451796062824748 +0 0 0 0 0 3 13 3 0 0 1 0 -2.090920029710711353e-15 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.006425507527048243163 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.004268336421321644418 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.z.asc new file mode 100644 index 0000000..b50c321 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.003008516424827491469 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.003008516424827307589 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.005178451796062633061 +0 0 0 0 0 3 3 3 0 0 0 0 -2.090920029710711353e-15 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.006425507527048310817 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.004268336421321694725 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.004268336421321420639 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.006425507527048500769 +0 0 0 0 0 3 3 8 0 0 0 0.5 2.542627523905869758e-15 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.005178451796058377785 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.003008516424827491469 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.004268336421321694725 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.004268336421321420639 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.006425507527048500769 +0 0 0 1 0 3 3 8 0 0 0 0.5 2.542627523905869758e-15 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.005178451796058377785 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.003008516424827491469 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.003008516424827307589 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.005178451796062633061 +0 0 0 1 0 3 3 13 0 0 0 1 -2.090920029710711353e-15 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.006425507527048310817 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.004268336421321694725 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.x.asc new file mode 100644 index 0000000..9db54b5 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476418024805 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.03095586656797455483 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.0924182963682214087 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.09307036330644882782 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.02899382069532239342 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.1303588323927993287 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.05424346259249259589 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.1151589679900048291 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1199782882554063235 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.05107353390652463743 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.y.asc new file mode 100644 index 0000000..5d2aa2e --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476418024805 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.05107353390649211483 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.1199782882554328023 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.1151589679900262425 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.05424346259248058466 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.1303588323927935833 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.02899382069529851322 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.09307036330647913691 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.09241829636820428351 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.03095586656800607475 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.z.asc new file mode 100644 index 0000000..e0423b9 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At22rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476418024805 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.0510735339064524313 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.1199782882554209229 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.1151589679900030944 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.05424346259251083824 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.1303588323927944992 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.02899382069529283373 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.09307036330647888711 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.09241829636821115301 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.03095586656800623088 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.x.asc new file mode 100644 index 0000000..eb9ba0d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.06305158118906060982 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.06305158118905883347 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.1575503876315908214 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1813805949244508831 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.1373300779859494836 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.05045863700046648859 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.0504586370004660098 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.1373300779859505938 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.1813805949244481353 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.1575503876315904883 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.06305158118906060982 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.06305158118905883347 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.1575503876315908214 +0 0 0 0 0 13 3 3 0 1 0 0 -0.1813805949244508831 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.1373300779859494836 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.05045863700046648859 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.y.asc new file mode 100644 index 0000000..0cd10a7 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.05045863700047117234 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.05045863700046684247 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.1373300779859518428 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1813805949244508831 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.1575503876315919594 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.06305158118905872244 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.0630515811890567518 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.1575503876315918761 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.1813805949244499116 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.137330077985950233 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.05045863700047117234 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.05045863700046684247 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.1373300779859518428 +0 0 0 0 0 3 13 3 0 0 1 0 -0.1813805949244508831 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.1575503876315919594 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.06305158118905872244 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.z.asc new file mode 100644 index 0000000..dfa03ab --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.0504586370004715401 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.05045863700046582939 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.137330077985950455 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1813805949244508831 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.1575503876315918206 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.06305158118905927755 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.06305158118905744569 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.1575503876315924867 +0 0 0 0 0 3 3 8 0 0 0 0.5 0.1813805949244496896 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.1373300779859522314 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.0504586370004715401 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.06305158118905927755 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.06305158118905744569 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.1575503876315924867 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.1813805949244496896 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.1373300779859522314 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.0504586370004715401 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.05045863700046582939 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.137330077985950455 +0 0 0 1 0 3 3 13 0 0 0 1 -0.1813805949244508831 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.1575503876315918206 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.06305158118905927755 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.x.asc new file mode 100644 index 0000000..339026b --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1640780247673317704 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -1.197633859732750494 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -1.717928796884381271 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -1.716665552506672743 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -1.19517208659904961 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.1639820661628783316 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.095209771305900803 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.966658005094150008 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.974164206232112306 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.102066545068814962 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.y.asc new file mode 100644 index 0000000..b482203 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1640780247673317704 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 1.102066545068816961 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 1.97416420623210076 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 1.966658005094119144 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 1.09520977130590258 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.1639820661628513809 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -1.195172086599072259 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -1.716665552506679626 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -1.717928796884391485 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -1.197633859732729622 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.z.asc new file mode 100644 index 0000000..9b2dfee --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At23rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1640780247673317704 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 1.102066545068809411 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 1.974164206232107199 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 1.966658005094129136 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 1.095209771305874824 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.1639820661628633436 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -1.195172086599071593 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -1.716665552506682957 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -1.717928796884373943 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -1.197633859732724959 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.x.asc new file mode 100644 index 0000000..d548c47 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.004268336421323083371 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.00426833642131976658 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.006425507527048234489 +0 0 0 0 0 3 3 3 0 0 0 0 4.625929269271485914e-16 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.005178451796051549913 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.003008516424835124253 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.003008516424835013664 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.005178451796053150195 +0 0 0 0 0 8 3 3 0 0.5 0 0 1.528190233053037097e-15 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.006425507527047385342 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.004268336421323083371 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.00426833642131976658 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.006425507527048234489 +0 0 0 0 0 13 3 3 0 1 0 0 4.625929269271485914e-16 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.005178451796051549913 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.003008516424835124253 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.y.asc new file mode 100644 index 0000000..7f04c2f --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.003008516424834979403 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.00300851642483466325 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.005178451796051496137 +0 0 0 0 0 3 3 3 0 0 0 0 4.625929269271485914e-16 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.00642550752704821454 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.004268336421321557682 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.004268336421321606254 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.006425507527044707796 +0 0 0 0 0 3 8 3 0 0 0.5 0 -8.250489841237718139e-16 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.005178451796058416816 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.003008516424834979403 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.00300851642483466325 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.005178451796051496137 +0 0 0 0 0 3 13 3 0 0 1 0 4.625929269271485914e-16 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.00642550752704821454 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.004268336421321557682 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.z.asc new file mode 100644 index 0000000..aa4a15d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.003008516424835765233 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.003008516424835055731 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.005178451796051603689 +0 0 0 0 0 3 3 3 0 0 0 0 4.625929269271485914e-16 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.006425507527047942188 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.004268336421321565488 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.004268336421321521253 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.006425507527044422434 +0 0 0 0 0 3 3 8 0 0 0 0.5 -1.78724227213224075e-15 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.005178451796060638129 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.003008516424835765233 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.004268336421321565488 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.004268336421321521253 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.006425507527044422434 +0 0 0 1 0 3 3 8 0 0 0 0.5 -1.78724227213224075e-15 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.005178451796060638129 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.003008516424835765233 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.003008516424835055731 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.005178451796051603689 +0 0 0 1 0 3 3 13 0 0 0 1 4.625929269271485914e-16 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.006425507527047942188 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.004268336421321565488 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.x.asc new file mode 100644 index 0000000..3a6e890 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476418074765 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.03095586656802034806 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.09241829636823845062 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.0930703633065669278 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.02899382069533376627 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.1303588323927889481 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.05424346259249124974 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.1151589679900136276 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1199782882554694119 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.05107353390643231544 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.y.asc new file mode 100644 index 0000000..06334f1 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476418074765 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.05107353390646442864 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.1199782882554401575 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.1151589679900307528 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.05424346259245523688 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.1303588323928028536 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.02899382069533373851 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.09307036330651012601 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.09241829636824162864 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.03095586656796600264 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.z.asc new file mode 100644 index 0000000..859e78f --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/At33rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1312857476418074765 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.05107353390649190666 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.1199782882554585872 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.1151589679900156399 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.05424346259248891133 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.1303588323928010773 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.02899382069531615536 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.09307036330651176359 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.09241829636823219174 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.03095586656798535521 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.x.asc new file mode 100644 index 0000000..4e47ffd --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.261533743509176686 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.2631960600575807829 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.6098815089448363924 +0 0 0 0 0 3 3 3 0 0 0 0 0.6283155970682403613 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.4281815728329479431 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.1479927352531239526 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.1477785858613959169 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.4283473856400248359 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.6283155970682403613 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.6101741936052138549 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.261533743509176686 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.2631960600575807829 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.6098815089448363924 +0 0 0 0 0 13 3 3 0 1 0 0 0.6283155970682403613 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.4281815728329479431 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.1479927352531239526 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.y.asc new file mode 100644 index 0000000..a1219e6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 -0.1477785858613976933 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.1479927352531235918 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.428181572832947277 +0 0 0 0 0 3 3 3 0 0 0 0 0.6283155970682403613 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.6098815089448375026 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.2631960600575816711 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.2615337435091759088 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.6101741936052124116 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.6283155970682409164 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.4283473856400268343 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.1477785858613976933 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.1479927352531235918 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.428181572832947277 +0 0 0 0 0 3 13 3 0 0 1 0 0.6283155970682403613 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.6098815089448375026 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.2631960600575816711 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.z.asc new file mode 100644 index 0000000..99a8f2b --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 -0.147778585861397721 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.1479927352531244522 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.4281815728329484427 +0 0 0 0 0 3 3 3 0 0 0 0 0.6283155970682403613 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.6098815089448363924 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.2631960600575822262 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.261533743509176464 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.6101741936052117454 +0 0 0 0 0 3 3 8 0 0 0 0.5 -0.6283155970682410274 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 -0.4283473856400252799 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 -0.147778585861397721 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.2631960600575822262 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.261533743509176464 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.6101741936052117454 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.6283155970682410274 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.4283473856400252799 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.147778585861397721 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.1479927352531244522 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.4281815728329484427 +0 0 0 1 0 3 3 13 0 0 0 1 0.6283155970682403613 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.6098815089448363924 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.2631960600575822262 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.x.asc new file mode 100644 index 0000000..e2cf5ca --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.5167747652716112583 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 2.111260102827940965 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 3.608362565846253922 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 4.194557643362228916 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 3.801245606206421268 +0 0 0 0 0 8 3 3 0 0.5 0 0 1.984084321824042929 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -1.113033306189567195 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -4.029674089309144946 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -5.165151526498789281 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -3.607571465488409679 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.y.asc new file mode 100644 index 0000000..6288922 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.5167747652716112583 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -3.607571465488292883 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -5.165151526498719114 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -4.029674089309077445 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -1.113033306189512572 +0 0 0 0 0 3 8 3 0 0 0.5 0 1.984084321823773589 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 3.801245606206206773 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 4.194557643362332833 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 3.608362565846042092 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 2.111260102828000029 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.z.asc new file mode 100644 index 0000000..caa70f2 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B1rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.5167747652716112583 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -3.60757146548837504 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -5.165151526498791057 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -4.029674089309119189 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -1.113033306189529448 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 1.984084321823967434 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 3.801245606206437255 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 4.194557643362333721 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 3.608362565846204184 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 2.111260102827813956 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.x.asc new file mode 100644 index 0000000..90c9765 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.261533743509176686 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.2631960600575807829 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.6098815089448363924 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6283155970682403613 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.4281815728329479431 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1479927352531239526 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1477785858613959169 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.4283473856400248359 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.6283155970682403613 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.6101741936052138549 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.261533743509176686 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.2631960600575807829 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.6098815089448363924 +0 0 0 0 0 13 3 3 0 1 0 0 -0.6283155970682403613 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.4281815728329479431 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1479927352531239526 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.y.asc new file mode 100644 index 0000000..768991b --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.1477785858613976933 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.1479927352531235918 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.428181572832947277 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6283155970682403613 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.6098815089448375026 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.2631960600575816711 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.2615337435091759088 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.6101741936052124116 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.6283155970682409164 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.4283473856400268343 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.1477785858613976933 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.1479927352531235918 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.428181572832947277 +0 0 0 0 0 3 13 3 0 0 1 0 -0.6283155970682403613 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.6098815089448375026 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.2631960600575816711 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.z.asc new file mode 100644 index 0000000..0274971 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.147778585861397721 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.1479927352531244522 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.4281815728329484427 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6283155970682403613 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.6098815089448363924 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.2631960600575822262 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.261533743509176464 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.6101741936052117454 +0 0 0 0 0 3 3 8 0 0 0 0.5 0.6283155970682410274 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.4283473856400252799 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.147778585861397721 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.2631960600575822262 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.261533743509176464 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.6101741936052117454 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.6283155970682410274 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.4283473856400252799 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.147778585861397721 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.1479927352531244522 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.4281815728329484427 +0 0 0 1 0 3 3 13 0 0 0 1 -0.6283155970682403613 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.6098815089448363924 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.2631960600575822262 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.x.asc new file mode 100644 index 0000000..90c6ae5 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.5167747652715126705 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -2.111260102827952512 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -3.608362565846237047 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -4.194557643362335497 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -3.801245606206440808 +0 0 0 0 0 8 3 3 0 0.5 0 0 -1.984084321824045594 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.113033306189519678 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 4.029674089309073892 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 5.165151526498786616 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 3.607571465488383478 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.y.asc new file mode 100644 index 0000000..bafe87c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.5167747652715126705 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 3.607571465488317308 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 5.16515152649874576 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 4.029674089309224883 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 1.113033306189334937 +0 0 0 0 0 3 8 3 0 0 0.5 0 -1.984084321823895714 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -3.801245606206220096 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -4.194557643362433197 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -3.608362565846053638 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -2.1112601028279121 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.z.asc new file mode 100644 index 0000000..8709bb3 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B2rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.5167747652715126705 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 3.607571465488220941 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 5.165151526498933165 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 4.029674089309198237 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 1.113033306189343374 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -1.984084321823984531 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -3.801245606206290706 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -4.194557643362516686 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -3.608362565846107373 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -2.111260102827923202 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.x.asc new file mode 100644 index 0000000..253f1c8 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.2615337435091760754 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.2631960600575809495 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.6098815089448366145 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6283155970682405833 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.4281815728329480542 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1479927352531242857 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1477785858613956116 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.4283473856400249469 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.6283155970682404723 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.6101741936052137438 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.2615337435091760754 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.2631960600575809495 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.6098815089448366145 +0 0 0 0 0 13 3 3 0 1 0 0 -0.6283155970682405833 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.4281815728329480542 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1479927352531242857 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.y.asc new file mode 100644 index 0000000..789d94a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.1477785858613973602 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.1479927352531234253 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.428181572832947388 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6283155970682405833 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.6098815089448370586 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.2631960600575817266 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.2615337435091757978 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.6101741936052124116 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.6283155970682410274 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.4283473856400265012 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.1477785858613973602 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.1479927352531234253 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.428181572832947388 +0 0 0 0 0 3 13 3 0 0 1 0 -0.6283155970682405833 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.6098815089448370586 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.2631960600575817266 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.z.asc new file mode 100644 index 0000000..30964f6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.1477785858613973602 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.1479927352531238971 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.4281815728329484427 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6283155970682405833 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.6098815089448366145 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.2631960600575822817 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.261533743509176797 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.6101741936052116344 +0 0 0 0 0 3 3 8 0 0 0 0.5 0.6283155970682412494 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.4283473856400253355 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.1477785858613973602 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.2631960600575822817 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.261533743509176797 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.6101741936052116344 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.6283155970682412494 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.4283473856400253355 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.1477785858613973602 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.1479927352531238971 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.4281815728329484427 +0 0 0 1 0 3 3 13 0 0 0 1 -0.6283155970682405833 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.6098815089448366145 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.2631960600575822817 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.x.asc new file mode 100644 index 0000000..572ab4a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.516774765271689418 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -2.111260102827998697 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -3.608362565846162884 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -4.194557643362403887 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -3.80124560620644214 +0 0 0 0 0 8 3 3 0 0.5 0 0 -1.984084321823939678 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.113033306189529226 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 4.029674089309173368 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 5.165151526498835466 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 3.60757146548822405 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.y.asc new file mode 100644 index 0000000..121b188 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.516774765271689418 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 3.607571465488287998 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 5.165151526498837242 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 4.029674089309189355 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 1.11303330618934937 +0 0 0 0 0 3 8 3 0 0 0.5 0 -1.984084321823924357 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -3.801245606206213434 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -4.194557643362522015 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -3.608362565846334746 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -2.111260102827900997 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.z.asc new file mode 100644 index 0000000..767ad10 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/B3rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.516774765271689418 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 3.607571465488324414 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 5.165151526498734214 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 4.029674089309185803 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 1.11303330618937113 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -1.984084321823877284 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -3.801245606206260952 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -4.194557643362346155 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -3.608362565846219283 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -2.11126010282795562 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.x.asc new file mode 100644 index 0000000..477e3b6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.y.asc new file mode 100644 index 0000000..9926d9d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0 +0 0 0 0 0 3 8 3 0 0 0.5 0 0 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.z.asc new file mode 100644 index 0000000..c0a5c6a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Theta.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.x.asc new file mode 100644 index 0000000..3d321c2 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.05500903003092403459 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.01906378881481039789 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.005663059630210893688 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.005663059630226696152 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.0190637888148563403 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.05500903003109807593 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.0210075111148952838 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.09965827115870991293 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.0996582711587111203 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.02100751111509069693 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.y.asc new file mode 100644 index 0000000..3833002 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.05500903003092403459 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.02100751111508279353 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.09965827115871864206 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.09965827115872018249 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.02100751111508316823 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.05500903003093582377 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.0190637888147938972 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.005663059630335620306 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.005663059630332046776 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.01906378881484016574 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.z.asc new file mode 100644 index 0000000..0a931c6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Thetarhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.05500903003092403459 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.02100751111495806692 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.09965827115871764286 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.09965827115872272213 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.02100751111496049553 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.05500903003093256943 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.01906378881477906531 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.005663059630342455117 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.005663059630287129581 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.01906378881489505239 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.x.asc new file mode 100644 index 0000000..043a3df --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.1511973670841813833 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.1511973670841793016 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.3718616479575347911 +0 0 0 0 0 3 3 3 0 0 0 0 0.4170539798141705279 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.3075250631768484677 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.1111590284029087966 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.1111590284029082554 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.3075250631768488008 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.4170539798141684185 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.3718616479575358458 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.1511973670841813833 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.1511973670841793016 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.3718616479575347911 +0 0 0 0 0 13 3 3 0 1 0 0 0.4170539798141705279 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.3075250631768484677 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.1111590284029087966 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.y.asc new file mode 100644 index 0000000..1333623 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 -0.1111590284029087689 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.1111590284029063264 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.3075250631768480791 +0 0 0 0 0 3 3 3 0 0 0 0 0.4170539798141705279 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.3718616479575355127 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.1511973670841792461 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.1511973670841788853 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.3718616479575350131 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.4170539798141702503 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.3075250631768479681 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.1111590284029087689 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.1111590284029063264 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.3075250631768480791 +0 0 0 0 0 3 13 3 0 0 1 0 0.4170539798141705279 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.3718616479575355127 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.1511973670841792461 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.z.asc new file mode 100644 index 0000000..bbdd778 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 -0.1111590284029087689 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.1111590284029077558 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.3075250631768483567 +0 0 0 0 0 3 3 3 0 0 0 0 0.4170539798141705279 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.3718616479575355127 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.151197367084178802 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.1511973670841788853 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.3718616479575350686 +0 0 0 0 0 3 3 8 0 0 0 0.5 -0.4170539798141702503 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 -0.3075250631768479681 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 -0.1111590284029087689 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.151197367084178802 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.1511973670841788853 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.3718616479575350686 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.4170539798141702503 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.3075250631768479681 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.1111590284029087689 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.1111590284029077558 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.3075250631768483567 +0 0 0 1 0 3 3 13 0 0 0 1 0.4170539798141705279 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.3718616479575355127 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.151197367084178802 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.x.asc new file mode 100644 index 0000000..da0c2b7 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.7344675437830997522 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 2.869640787754425659 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 3.793188606187775314 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 3.789326475536360039 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 2.861680567185337587 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.7336041905058517942 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -2.396400053833666277 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -4.961145808296708815 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -4.983163255540013381 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -2.415612171188087132 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.y.asc new file mode 100644 index 0000000..965505d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.7344675437830997522 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -2.41561217118796856 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -4.983163255539942327 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -4.961145808296649307 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -2.396400053833609878 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.7336041905055826762 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 2.861680567185118207 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 3.789326475536455519 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 3.793188606187568368 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 2.869640787754483391 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.z.asc new file mode 100644 index 0000000..3dc1ca3 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt1rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.7344675437830997522 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -2.415612171188053825 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -4.983163255540009828 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -4.961145808296691939 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -2.39640005383362098 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.7336041905057754109 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 2.861680567185354018 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 3.789326475536457295 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 3.793188606187729572 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 2.869640787754300426 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.x.asc new file mode 100644 index 0000000..c9f6e46 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.1511973670841813278 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.1511973670841806894 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.3718616479575345135 +0 0 0 0 0 3 3 3 0 0 0 0 -0.417053979814168807 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.3075250631768485787 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1111590284029089076 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1111590284029082554 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.3075250631768485232 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.417053979814168474 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.3718616479575356237 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.1511973670841813278 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1511973670841806894 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.3718616479575345135 +0 0 0 0 0 13 3 3 0 1 0 0 -0.417053979814168807 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.3075250631768485787 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1111590284029089076 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.y.asc new file mode 100644 index 0000000..dade4b8 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.1111590284029086162 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.1111590284029064235 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.3075250631768485787 +0 0 0 0 0 3 3 3 0 0 0 0 -0.417053979814168807 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.3718616479575356237 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.1511973670841808004 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.1511973670841806616 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.3718616479575347356 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.4170539798141684185 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.3075250631768480236 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.1111590284029086162 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.1111590284029064235 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.3075250631768485787 +0 0 0 0 0 3 13 3 0 0 1 0 -0.417053979814168807 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.3718616479575356237 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.1511973670841808004 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.z.asc new file mode 100644 index 0000000..40c8d39 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.1111590284029087827 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.1111590284029073672 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.3075250631768484122 +0 0 0 0 0 3 3 3 0 0 0 0 -0.417053979814168807 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.3718616479575356237 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.1511973670841803563 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.1511973670841806061 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.3718616479575351241 +0 0 0 0 0 3 3 8 0 0 0 0.5 0.4170539798141684185 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.3075250631768476905 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.1111590284029087827 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.1511973670841803563 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.1511973670841806061 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.3718616479575351241 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.4170539798141684185 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.3075250631768476905 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.1111590284029087827 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.1111590284029073672 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.3075250631768484122 +0 0 0 1 0 3 3 13 0 0 0 1 -0.417053979814168807 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.3718616479575356237 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.1511973670841803563 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.x.asc new file mode 100644 index 0000000..d9a8494 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7344675437831997833 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -2.869640787754434097 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -3.793188606187759326 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -3.789326475536467065 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -2.861680567185357127 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.7336041905058550139 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 2.396400053833622756 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 4.961145808296633319 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 4.983163255540013381 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 2.415612171188062707 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.y.asc new file mode 100644 index 0000000..8d08097 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7344675437831997833 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 2.415612171187994317 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 4.983163255539971637 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 4.961145808296788751 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 2.396400053833437127 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.7336041905057038015 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -2.861680567185132418 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -3.78932647553655455 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -3.793188606187582579 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -2.869640787754391464 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.z.asc new file mode 100644 index 0000000..916b3b6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt2rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7344675437831997833 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 2.415612171187903279 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 4.983163255540152825 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 4.961145808296762993 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 2.396400053833439792 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.7336041905057913981 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -2.861680567185207469 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -3.789326475536639816 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -3.793188606187636758 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -2.869640787754407452 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.x.asc new file mode 100644 index 0000000..b3d53e8 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.1511973670841814665 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.1511973670841791351 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.3718616479575344025 +0 0 0 0 0 3 3 3 0 0 0 0 -0.4170539798141703614 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.3075250631768485232 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1111590284029074643 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1111590284029082693 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.3075250631768481346 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.417053979814168585 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.3718616479575356792 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.1511973670841814665 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1511973670841791351 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.3718616479575344025 +0 0 0 0 0 13 3 3 0 1 0 0 -0.4170539798141703614 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.3075250631768485232 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1111590284029074643 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.y.asc new file mode 100644 index 0000000..a1b460c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.1111590284029072284 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.1111590284029083942 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.3075250631768481346 +0 0 0 0 0 3 3 3 0 0 0 0 -0.4170539798141703614 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.3718616479575356792 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.1511973670841795514 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.151197367084178913 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.3718616479575347356 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.4170539798141714716 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.3075250631768492449 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.1111590284029072284 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.1111590284029083942 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.3075250631768481346 +0 0 0 0 0 3 13 3 0 0 1 0 -0.4170539798141703614 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.3718616479575356792 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.1511973670841795514 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.z.asc new file mode 100644 index 0000000..f30da97 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.1111590284029072284 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.1111590284029086717 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.3075250631768486897 +0 0 0 0 0 3 3 3 0 0 0 0 -0.4170539798141703614 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.3718616479575357348 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.151197367084178802 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.1511973670841788575 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.3718616479575351796 +0 0 0 0 0 3 3 8 0 0 0 0.5 0.4170539798141714716 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.3075250631768489118 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.1111590284029072284 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.151197367084178802 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.1511973670841788575 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.3718616479575351796 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.4170539798141714716 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.3075250631768489118 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.1111590284029072284 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.1111590284029086717 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.3075250631768486897 +0 0 0 1 0 3 3 13 0 0 0 1 -0.4170539798141703614 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.3718616479575357348 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.151197367084178802 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.x.asc new file mode 100644 index 0000000..5f8125e --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7344675437830222586 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -2.869640787754485167 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -3.793188606187688272 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -3.789326475536535899 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -2.861680567185356683 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.7336041905057489876 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 2.396400053833629418 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 4.961145808296732795 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 4.983163255540061343 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 2.415612171187899282 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.y.asc new file mode 100644 index 0000000..89f1ce5 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7344675437830222586 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 2.415612171187965895 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 4.983163255540059566 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 4.961145808296759441 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 2.396400053833449117 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.7336041905057337775 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -2.861680567185130197 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -3.789326475536646033 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -3.793188606187856582 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -2.869640787754383915 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.z.asc new file mode 100644 index 0000000..7a96d6c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/Xt3rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7344675437830222586 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 2.415612171188002755 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 4.983163255539952985 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 4.961145808296759441 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 2.396400053833463328 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.7336041905056853718 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -2.861680567185179491 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -3.789326475536468841 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -3.793188606187741563 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -2.869640787754442535 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.x.asc new file mode 100644 index 0000000..14035a2 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.05123802613049433 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.05123802613049433 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.030751762999378984 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.971845969673347021 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.9555908659126353122 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.9555908659126353122 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.97184596967334691 +0 0 0 0 0 8 3 3 0 0.5 0 0 1 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.030751762999378762 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.05123802613049433 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.05123802613049433 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.030751762999378984 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.971845969673347021 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.9555908659126353122 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.y.asc new file mode 100644 index 0000000..9f8bad9 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.9555908659126355342 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.9555908659126353122 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.97184596967334691 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 1.030751762999378762 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 1.05123802613049433 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 1.05123802613049433 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 1.030751762999378984 +0 0 0 0 0 3 8 3 0 0 0.5 0 1.000000000000000222 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.971845969673347021 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.9555908659126355342 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.9555908659126353122 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.97184596967334691 +0 0 0 0 0 3 13 3 0 0 1 0 1 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 1.030751762999378762 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 1.05123802613049433 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.z.asc new file mode 100644 index 0000000..51fb7cd --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpha.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.9555908659126355342 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.9555908659126353122 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.97184596967334691 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 1.030751762999378762 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 1.05123802613049433 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 1.05123802613049433 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 1.030751762999378762 +0 0 0 0 0 3 3 8 0 0 0 0.5 1.000000000000000222 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.971845969673347021 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.9555908659126355342 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 1.05123802613049433 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 1.05123802613049433 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 1.030751762999378762 +0 0 0 1 0 3 3 8 0 0 0 0.5 1.000000000000000222 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.971845969673347021 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.9555908659126355342 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.9555908659126353122 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.97184596967334691 +0 0 0 1 0 3 3 13 0 0 0 1 1 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 1.030751762999378762 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 1.05123802613049433 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.x.asc new file mode 100644 index 0000000..72139b2 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 1.088509578759588647 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.8080461302139263502 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.2930925669601651129 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.2932215826043919615 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.8077032713780902817 +0 0 0 0 0 8 3 3 0 0.5 0 0 -1.08805756033377965 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.9632997441417340267 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.3908616450695627242 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.3890015468542239452 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.9635523664339373795 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.y.asc new file mode 100644 index 0000000..850907c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 1.088509578759588647 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.9635523664339584737 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.3890015468542131205 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.3908616450695444056 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.9632997441417366913 +0 0 0 0 0 3 8 3 0 0 0.5 0 -1.088057560333822282 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.8077032713780736284 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.293221582604396791 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.2930925669601445183 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.8080461302139687607 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.z.asc new file mode 100644 index 0000000..3254a37 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/alpharhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 1.088509578759588647 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.9635523664339572525 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.3890015468542165067 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.3908616450695501232 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.9632997441417412432 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -1.088057560333821394 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.8077032713780708528 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.2932215826044000107 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.2930925669601612826 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.808046130213930569 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.x.asc new file mode 100644 index 0000000..c295d04 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.06068031441309687524 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.06068031441309696544 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.0360550606560913478 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.03205183761762388922 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.05014061747197683105 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.05014061747197684493 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.03205183761762393779 +0 0 0 0 0 8 3 3 0 0.5 0 0 -8.398900904684191565e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.03605506065609112576 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.06068031441309687524 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.06068031441309696544 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.0360550606560913478 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.03205183761762388922 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.05014061747197683105 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.y.asc new file mode 100644 index 0000000..bfa298e --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 -0.05014061747197681024 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.05014061747197687269 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.03205183761762398637 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.03605506065609122984 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.06068031441309690299 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.06068031441309693075 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.03605506065609129923 +0 0 0 0 0 3 8 3 0 0 0.5 0 8.398900904684195263e-17 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.03205183761762380595 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.05014061747197681024 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.05014061747197687269 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.03205183761762398637 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.03605506065609122984 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.06068031441309690299 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.z.asc new file mode 100644 index 0000000..019b336 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 -0.05014061747197681024 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.05014061747197685187 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.0320518376176239031 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.03605506065609123678 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.06068031441309690299 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.06068031441309692381 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.03605506065609127148 +0 0 0 0 0 3 3 8 0 0 0 0.5 5.834950656172775855e-17 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 -0.03205183761762385453 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 -0.05014061747197681024 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.06068031441309690299 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.06068031441309692381 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.03605506065609127148 +0 0 0 1 0 3 3 8 0 0 0 0.5 5.834950656172775855e-17 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.03205183761762385453 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.05014061747197681024 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.05014061747197685187 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.0320518376176239031 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.03605506065609123678 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.06068031441309690299 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.x.asc new file mode 100644 index 0000000..d60dbd4 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.6286601217965877009 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.4535426456985975352 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.1618204095557999045 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.1619805711691723604 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.4533486480770094751 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.6279710723398931327 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.573636280444789648 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.2376316116062230366 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.2366043118770069786 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.573940694709090149 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.y.asc new file mode 100644 index 0000000..05a2164 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.6286601217965877009 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.5739406947090913702 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.2366043118770077003 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.237631611606222426 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.5736362804447880936 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.6279710723398934658 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.453348648077011529 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.1619805711691742478 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.1618204095557993771 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.4535426456985970911 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.z.asc new file mode 100644 index 0000000..135ec3d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta1rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.6286601217965877009 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.57394069470909026 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.2366043118770083109 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.2376316116062229811 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.5736362804447874275 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.6279710723398935768 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.4533486480770099192 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.1619805711691742478 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.1618204095558003486 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.4535426456985981458 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.x.asc new file mode 100644 index 0000000..291f9f6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.06068031441309687524 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.06068031441309696544 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.0360550606560913478 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.03205183761762388922 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.05014061747197683105 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.05014061747197684493 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.03205183761762393779 +0 0 0 0 0 8 3 3 0 0.5 0 0 8.398900904684191565e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.03605506065609112576 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.06068031441309687524 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.06068031441309696544 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.0360550606560913478 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.03205183761762388922 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.05014061747197683105 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.y.asc new file mode 100644 index 0000000..f622cc8 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.05014061747197681024 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.05014061747197687269 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.03205183761762398637 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.03605506065609122984 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.06068031441309690299 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.06068031441309693075 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.03605506065609129923 +0 0 0 0 0 3 8 3 0 0 0.5 0 -8.398900904684195263e-17 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.03205183761762380595 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.05014061747197681024 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.05014061747197687269 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.03205183761762398637 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.03605506065609122984 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.06068031441309690299 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.z.asc new file mode 100644 index 0000000..fec0c1d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.05014061747197681024 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.05014061747197685187 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.0320518376176239031 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.03605506065609123678 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.06068031441309690299 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.06068031441309692381 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.03605506065609127148 +0 0 0 0 0 3 3 8 0 0 0 0.5 -5.834950656172775855e-17 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.03205183761762385453 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.05014061747197681024 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.06068031441309690299 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.06068031441309692381 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.03605506065609127148 +0 0 0 1 0 3 3 8 0 0 0 0.5 -5.834950656172775855e-17 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.03205183761762385453 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.05014061747197681024 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.05014061747197685187 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.0320518376176239031 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.03605506065609123678 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.06068031441309690299 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.x.asc new file mode 100644 index 0000000..53b2eaf --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6286601217965877009 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.4535426456985975352 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1618204095557999045 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1619805711691723604 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.4533486480770094751 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.6279710723398931327 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.573636280444789648 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.2376316116062230366 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.2366043118770069786 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.573940694709090149 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.y.asc new file mode 100644 index 0000000..f93c4b2 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6286601217965877009 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.5739406947090913702 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.2366043118770077003 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.237631611606222426 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.5736362804447880936 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.6279710723398934658 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.453348648077011529 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.1619805711691742478 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.1618204095557993771 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.4535426456985970911 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.z.asc new file mode 100644 index 0000000..778cd3b --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta2rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6286601217965877009 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.57394069470909026 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.2366043118770083109 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.2376316116062229811 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.5736362804447874275 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.6279710723398935768 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.4533486480770099192 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.1619805711691742478 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.1618204095558003486 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.4535426456985981458 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.x.asc new file mode 100644 index 0000000..13ea5ba --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.06068031441309688911 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.06068031441309697238 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.0360550606560913478 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.03205183761762389616 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.05014061747197683799 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.05014061747197685881 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.03205183761762394473 +0 0 0 0 0 8 3 3 0 0.5 0 0 8.398900904684192798e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.0360550606560911327 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.06068031441309688911 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.06068031441309697238 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.0360550606560913478 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.03205183761762389616 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.05014061747197683799 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.y.asc new file mode 100644 index 0000000..102b849 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.05014061747197682412 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.05014061747197687963 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.03205183761762398637 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.03605506065609123678 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.06068031441309690993 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.06068031441309694463 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.03605506065609130617 +0 0 0 0 0 3 8 3 0 0 0.5 0 -8.398900904684196496e-17 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.03205183761762381289 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.05014061747197682412 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.05014061747197687963 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.03205183761762398637 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.03605506065609123678 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.06068031441309690993 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.z.asc new file mode 100644 index 0000000..ffe46f3 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.05014061747197682412 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.05014061747197686575 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.03205183761762391004 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.03605506065609123678 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.06068031441309690993 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.06068031441309693075 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.03605506065609127841 +0 0 0 0 0 3 3 8 0 0 0 0.5 -5.834950656172777088e-17 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.03205183761762386146 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.05014061747197682412 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.06068031441309690993 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.06068031441309693075 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.03605506065609127841 +0 0 0 1 0 3 3 8 0 0 0 0.5 -5.834950656172777088e-17 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.03205183761762386146 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.05014061747197682412 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.05014061747197686575 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.03205183761762391004 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.03605506065609123678 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.06068031441309690993 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.x.asc new file mode 100644 index 0000000..6b1d6cd --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6286601217965879229 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.4535426456985976462 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.161820409555800182 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1619805711691720551 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.4533486480770095861 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.6279710723398932437 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.5736362804447895369 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.237631611606222426 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.2366043118770071729 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.573940694709090371 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.y.asc new file mode 100644 index 0000000..6c0019a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6286601217965879229 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.5739406947090909261 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.2366043118770077558 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.2376316116062222872 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.5736362804447880936 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.6279710723398935768 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.4533486480770111959 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.1619805711691738592 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.1618204095557992384 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.4535426456985972021 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.z.asc new file mode 100644 index 0000000..62d24f8 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/beta3rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.6286601217965879229 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.573940694709090482 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.2366043118770083387 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.2376316116062232864 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.5736362804447873165 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.6279710723398937988 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.4533486480770100302 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.161980571169173887 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.1618204095557997935 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.4535426456985982013 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.x.asc new file mode 100644 index 0000000..b19f98f --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -8.673617379884035472e-19 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -1.734723475976807094e-18 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 8.673617379884035472e-19 +0 0 0 0 0 3 3 3 0 0 0 0 1.972152263052529514e-31 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 8.673617379884035472e-19 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.301042606982605321e-18 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -4.336808689942017736e-19 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -8.673617379884035472e-19 +0 0 0 0 0 8 3 3 0 0.5 0 0 3.944304526105059027e-31 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.734723475976807094e-18 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -8.673617379884035472e-19 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -1.734723475976807094e-18 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 8.673617379884035472e-19 +0 0 0 0 0 13 3 3 0 1 0 0 1.972152263052529514e-31 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 8.673617379884035472e-19 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.301042606982605321e-18 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.y.asc new file mode 100644 index 0000000..c3b10c9 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 4.336808689942017736e-19 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 4.336808689942017736e-19 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -8.673617379884035472e-19 +0 0 0 0 0 3 3 3 0 0 0 0 1.972152263052529514e-31 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -8.673617379884035472e-19 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 8.673617379884035472e-19 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -1.734723475976807094e-18 +0 0 0 0 0 3 8 3 0 0 0.5 0 0 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 4.336808689942017736e-19 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 4.336808689942017736e-19 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -8.673617379884035472e-19 +0 0 0 0 0 3 13 3 0 0 1 0 1.972152263052529514e-31 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -8.673617379884035472e-19 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.z.asc new file mode 100644 index 0000000..348dc44 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cA.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 4.336808689942017736e-19 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -8.673617379884035472e-19 +0 0 0 0 0 3 3 3 0 0 0 0 1.972152263052529514e-31 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 8.673617379884035472e-19 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 8.673617379884035472e-19 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 8.673617379884035472e-19 +0 0 0 0 0 3 3 8 0 0 0 0.5 9.860761315262647568e-32 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 8.673617379884035472e-19 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 8.673617379884035472e-19 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 8.673617379884035472e-19 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 8.673617379884035472e-19 +0 0 0 1 0 3 3 8 0 0 0 0.5 9.860761315262647568e-32 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 8.673617379884035472e-19 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 4.336808689942017736e-19 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -8.673617379884035472e-19 +0 0 0 1 0 3 3 13 0 0 0 1 1.972152263052529514e-31 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 8.673617379884035472e-19 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.x.asc new file mode 100644 index 0000000..477e3b6 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.y.asc new file mode 100644 index 0000000..9926d9d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0 +0 0 0 0 0 3 8 3 0 0 0.5 0 0 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.z.asc new file mode 100644 index 0000000..c0a5c6a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cS.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.x.asc new file mode 100644 index 0000000..645b22d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -8.066464163292152989e-17 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -1.322726650432315409e-16 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 2.784231178942775387e-16 +0 0 0 0 0 3 3 3 0 0 0 0 3.354250471127029343e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 6.158268339717665185e-17 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -1.940721888749052937e-16 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -6.002143226879752547e-16 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -3.222248856626919178e-16 +0 0 0 0 0 8 3 3 0 0.5 0 0 -4.174855990426995511e-16 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 2.602085213965210642e-18 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -8.066464163292152989e-17 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -1.322726650432315409e-16 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 2.784231178942775387e-16 +0 0 0 0 0 13 3 3 0 1 0 0 3.354250471127029343e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 6.158268339717665185e-17 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -1.940721888749052937e-16 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.y.asc new file mode 100644 index 0000000..46a179c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 -2.402592014227877826e-16 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 1.257674520083185143e-17 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 2.927345865710861972e-16 +0 0 0 0 0 3 3 3 0 0 0 0 3.354250471127029343e-17 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -1.084202172485504434e-16 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -1.257674520083185143e-16 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 6.613633252161577047e-16 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -1.734723475976807094e-18 +0 0 0 0 0 3 8 3 0 0 0.5 0 5.431852884152377214e-17 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -6.028164079019404653e-16 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -2.402592014227877826e-16 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 1.257674520083185143e-17 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 2.927345865710861972e-16 +0 0 0 0 0 3 13 3 0 0 1 0 3.354250471127029343e-17 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -1.084202172485504434e-16 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -1.257674520083185143e-16 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.z.asc new file mode 100644 index 0000000..5d01935 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt1.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 -2.602085213965210642e-16 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 8.456776945386934585e-18 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 3.638582490861352881e-16 +0 0 0 0 0 3 3 3 0 0 0 0 3.354250471127029343e-17 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 2.246466901389965187e-16 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 2.48932818802671818e-16 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 6.613633252161577047e-16 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 6.591949208711866959e-17 +0 0 0 0 0 3 3 8 0 0 0 0.5 -7.228375883960858062e-16 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 -6.982261990806648555e-16 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 -2.602085213965210642e-16 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 2.48932818802671818e-16 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 6.613633252161577047e-16 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 6.591949208711866959e-17 +0 0 0 1 0 3 3 8 0 0 0 0.5 -7.228375883960858062e-16 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -6.982261990806648555e-16 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -2.602085213965210642e-16 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 8.456776945386934585e-18 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 3.638582490861352881e-16 +0 0 0 1 0 3 3 13 0 0 0 1 3.354250471127029343e-17 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 2.246466901389965187e-16 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 2.48932818802671818e-16 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.x.asc new file mode 100644 index 0000000..601563c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.11022302462515654e-16 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -8.049116928532384918e-16 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -5.551115123125782702e-17 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 6.869504964868156094e-16 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 3.261280134836397337e-16 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -2.775557561562891351e-17 +0 0 0 0 0 8 3 3 0 0.5 0 0 -7.494005416219806648e-16 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 2.775557561562891351e-17 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.11022302462515654e-16 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -8.049116928532384918e-16 +0 0 0 0 0 13 3 3 0 1 0 0 -2.775557561562891351e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -5.551115123125782702e-17 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 6.869504964868156094e-16 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.y.asc new file mode 100644 index 0000000..c2a3dba --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 2.844946500601963635e-16 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 6.938893903907228378e-18 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 2.775557561562891351e-17 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 3.191891195797325054e-16 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 3.053113317719180486e-16 +0 0 0 0 0 3 8 3 0 0 0.5 0 3.053113317719180486e-16 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 1.665334536937734811e-16 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 2.844946500601963635e-16 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 6.938893903907228378e-18 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 2.775557561562891351e-17 +0 0 0 0 0 3 13 3 0 0 1 0 -2.775557561562891351e-17 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.z.asc new file mode 100644 index 0000000..e778844 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt2.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 2.775557561562891351e-17 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -1.804112415015879378e-16 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -7.771561172376095783e-16 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 6.80011602582908381e-16 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 2.359223927328457648e-16 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 3.053113317719180486e-16 +0 0 0 0 0 3 3 8 0 0 0 0.5 1.0269562977782698e-15 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 2.220446049250313081e-16 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 2.775557561562891351e-17 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 6.80011602582908381e-16 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 2.359223927328457648e-16 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 3.053113317719180486e-16 +0 0 0 1 0 3 3 8 0 0 0 0.5 1.0269562977782698e-15 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 2.220446049250313081e-16 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 2.775557561562891351e-17 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -1.804112415015879378e-16 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -7.771561172376095783e-16 +0 0 0 1 0 3 3 13 0 0 0 1 -2.775557561562891351e-17 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 6.80011602582908381e-16 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.x.asc new file mode 100644 index 0000000..e9b4b64 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 6.938893903907228378e-17 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.526556658859590243e-16 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -1.137978600240785454e-15 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -2.775557561562891351e-17 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 4.787836793695987581e-16 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -1.186550857568136053e-15 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.942890293094023946e-16 +0 0 0 0 0 8 3 3 0 0.5 0 0 4.163336342344337027e-16 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -2.775557561562891351e-17 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 6.938893903907228378e-17 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.526556658859590243e-16 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -1.137978600240785454e-15 +0 0 0 0 0 13 3 3 0 1 0 0 -2.775557561562891351e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -2.775557561562891351e-17 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 4.787836793695987581e-16 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.y.asc new file mode 100644 index 0000000..0187b37 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 1.568190022283033613e-15 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -8.326672684688674053e-17 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -5.551115123125782702e-16 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -2.775557561562891351e-17 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -5.551115123125782702e-17 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 4.579669976578770729e-16 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 3.885780586188047891e-16 +0 0 0 0 0 3 8 3 0 0 0.5 0 3.053113317719180486e-16 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 3.885780586188047891e-16 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 1.568190022283033613e-15 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -8.326672684688674053e-17 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -5.551115123125782702e-16 +0 0 0 0 0 3 13 3 0 0 1 0 -2.775557561562891351e-17 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -2.775557561562891351e-17 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -5.551115123125782702e-17 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.z.asc new file mode 100644 index 0000000..cfa4be9 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/cXt3.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 2.5673907444456745e-16 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -2.983724378680108202e-16 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -3.330669073875469621e-16 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -2.775557561562891351e-16 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -4.302114220422481594e-16 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 4.440892098500626162e-16 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 3.608224830031758756e-16 +0 0 0 0 0 3 3 8 0 0 0 0.5 1.082467449009527627e-15 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 2.220446049250313081e-16 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 2.5673907444456745e-16 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -4.302114220422481594e-16 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 4.440892098500626162e-16 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 3.608224830031758756e-16 +0 0 0 1 0 3 3 8 0 0 0 0.5 1.082467449009527627e-15 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 2.220446049250313081e-16 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 2.5673907444456745e-16 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -2.983724378680108202e-16 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -3.330669073875469621e-16 +0 0 0 1 0 3 3 13 0 0 0 1 -2.775557561562891351e-17 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -2.775557561562891351e-16 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -4.302114220422481594e-16 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.x.asc new file mode 100644 index 0000000..a9f914c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.001097695519928665 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.000405024681067401 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.000364803038667816 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.000926567406855705 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.000926567406855705 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.000364803038668038 +0 0 0 0 0 8 3 3 0 0.5 0 0 1 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.000405024681067179 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.001097695519928665 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.000405024681067401 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 1.000364803038667816 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.000926567406855705 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.y.asc new file mode 100644 index 0000000..5ba758a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 1.000926567406855705 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 1.000926567406855705 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 1.000364803038668038 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 1.000405024681067401 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 1.001097695519928665 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 1.001097695519928665 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 1.000405024681067401 +0 0 0 0 0 3 8 3 0 0 0.5 0 1 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 1.000364803038667816 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 1.000926567406855705 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 1.000926567406855705 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 1.000364803038668038 +0 0 0 0 0 3 13 3 0 0 1 0 1 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 1.000405024681067401 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 1.001097695519928665 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.z.asc new file mode 100644 index 0000000..7b6658d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 1.000926567406855705 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 1.000926567406855705 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 1.000364803038668038 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 1.000405024681067401 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 1.001097695519928665 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 1.001097695519928665 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 1.000405024681067401 +0 0 0 0 0 3 3 8 0 0 0 0.5 1 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 1.000364803038667816 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 1.000926567406855705 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 1.001097695519928665 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 1.001097695519928665 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 1.000405024681067401 +0 0 0 1 0 3 3 8 0 0 0 0.5 1 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 1.000364803038667816 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 1.000926567406855705 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 1.000926567406855705 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 1.000364803038668038 +0 0 0 1 0 3 3 13 0 0 0 1 1 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 1.000405024681067401 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 1.001097695519928665 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.x.asc new file mode 100644 index 0000000..7f346a8 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197017580071e-05 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.01073295520242198084 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.006480301310938721762 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.006273341278161287393 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.01074606509098257993 +0 0 0 0 0 8 3 3 0 0.5 0 0 6.684849197887257936e-05 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.01202269985594927107 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.007899891194979309639 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.007537003883591321222 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.01219215966660935034 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.y.asc new file mode 100644 index 0000000..81dcd99 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197017580071e-05 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.01219215966661663618 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.007537003883592723746 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.007899891194982211831 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.01202269985594377373 +0 0 0 0 0 3 8 3 0 0 0.5 0 6.684849197622048532e-05 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.01074606509099132814 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.006273341278160595239 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.006480301310939185801 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.01073295520242187155 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.z.asc new file mode 100644 index 0000000..f9f6892 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt11rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197017580071e-05 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.01219215966661670557 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.007537003883592666501 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.007899891194982378365 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.01202269985594464109 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 6.684849197542478934e-05 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.01074606509099184162 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.00627334127816141663 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.006480301310938778141 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.01073295520242216299 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.x.asc new file mode 100644 index 0000000..d355746 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.03277573545166539287 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.03277573545166539287 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.01999248696063090497 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.01922334923201163281 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.03075622745750388604 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.03075622745750388604 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.01922334923201168833 +0 0 0 0 0 8 3 3 0 0.5 0 0 -8.326672684688671588e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.01999248696063078354 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.03277573545166539287 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.03277573545166539287 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.01999248696063090497 +0 0 0 0 0 13 3 3 0 1 0 0 -2.775557561562891351e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.01922334923201163281 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.03075622745750388604 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.y.asc new file mode 100644 index 0000000..4da79b0 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 -0.03075622745750383746 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.03075622745750388604 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.01922334923201168833 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.01999248696063090497 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.03277573545166539287 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.03277573545166539287 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.01999248696063090497 +0 0 0 0 0 3 8 3 0 0 0.5 0 2.775557561562891351e-17 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.01922334923201163281 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.03075622745750383746 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.03075622745750388604 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.01922334923201168833 +0 0 0 0 0 3 13 3 0 0 1 0 -2.775557561562891351e-17 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.01999248696063090497 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.03277573545166539287 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.z.asc new file mode 100644 index 0000000..28675ef --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 -0.03075622745750383746 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.03075622745750388604 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.01922334923201168833 +0 0 0 0 0 3 3 3 0 0 0 0 -2.775557561562891351e-17 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.01999248696063090497 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.03277573545166539287 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.03277573545166539287 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.01999248696063090497 +0 0 0 0 0 3 3 8 0 0 0 0.5 2.775557561562891351e-17 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 -0.01922334923201163281 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 -0.03075622745750383746 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.03277573545166539287 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.03277573545166539287 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.01999248696063090497 +0 0 0 1 0 3 3 8 0 0 0 0.5 2.775557561562891351e-17 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.01922334923201163281 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.03075622745750383746 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.03075622745750388604 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.01922334923201168833 +0 0 0 1 0 3 3 13 0 0 0 1 -2.775557561562891351e-17 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.01999248696063090497 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.03277573545166539287 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.x.asc new file mode 100644 index 0000000..0aeda9a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.3606967117714822146 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.2841066062350856569 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.1065643930692912328 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.106397113168555324 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.2838877958099043086 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.3605617562128795028 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.297686685148574437 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.1148506575755901815 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.1140726660024747735 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.297633033121474766 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.y.asc new file mode 100644 index 0000000..4254f00 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.3606967117714822146 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.2976330331214721014 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.1140726660024771744 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.1148506575755975784 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.2976866851485719945 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.3605617562128751175 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.2838877958099075283 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.1063971131685463589 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.1065643930692896785 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.284106606235081216 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.z.asc new file mode 100644 index 0000000..bd6f59d --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt12rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.3606967117714822146 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.2976330331214736558 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.114072666002476536 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.1148506575755961351 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.2976866851485714949 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.3605617562128761722 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.2838877958099064736 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.1063971131685468585 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.1065643930692917046 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.2841066062350843802 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.x.asc new file mode 100644 index 0000000..f665e4a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.03277573545166547614 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.03277573545166547614 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.0199924869606309917 +0 0 0 0 0 3 3 3 0 0 0 0 5.551115123125782702e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.01922334923201155302 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.03075622745750380277 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.03075622745750380277 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.01922334923201160506 +0 0 0 0 0 8 3 3 0 0.5 0 0 0 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.01999248696063087027 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.03277573545166547614 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.03277573545166547614 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.0199924869606309917 +0 0 0 0 0 13 3 3 0 1 0 0 5.551115123125782702e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.01922334923201155302 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.03075622745750380277 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.y.asc new file mode 100644 index 0000000..31acd63 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 -0.03075622745750375767 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.03075622745750380277 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.01922334923201160506 +0 0 0 0 0 3 3 3 0 0 0 0 5.551115123125782702e-17 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.0199924869606309917 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.03277573545166547614 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.03277573545166547614 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.0199924869606309917 +0 0 0 0 0 3 8 3 0 0 0.5 0 1.11022302462515654e-16 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.01922334923201155302 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.03075622745750375767 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.03075622745750380277 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.01922334923201160506 +0 0 0 0 0 3 13 3 0 0 1 0 5.551115123125782702e-17 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.0199924869606309917 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.03277573545166547614 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.z.asc new file mode 100644 index 0000000..645b392 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 -0.03075622745750375767 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.03075622745750380277 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.01922334923201160506 +0 0 0 0 0 3 3 3 0 0 0 0 5.551115123125782702e-17 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.0199924869606309917 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.03277573545166547614 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.03277573545166547614 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.0199924869606309917 +0 0 0 0 0 3 3 8 0 0 0 0.5 1.11022302462515654e-16 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 -0.01922334923201155302 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 -0.03075622745750375767 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.03277573545166547614 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.03277573545166547614 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.0199924869606309917 +0 0 0 1 0 3 3 8 0 0 0 0.5 1.11022302462515654e-16 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.01922334923201155302 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.03075622745750375767 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.03075622745750380277 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.01922334923201160506 +0 0 0 1 0 3 3 13 0 0 0 1 5.551115123125782702e-17 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.0199924869606309917 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.03277573545166547614 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.x.asc new file mode 100644 index 0000000..578cb52 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.3606967117714815485 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.2841066062350855459 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.1065643930692912883 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.1063971131685549909 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.2838877958099040311 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.3605617562128792808 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.2976866851485743815 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.114850657575591597 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.1140726660024741351 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.2976330331214744329 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.y.asc new file mode 100644 index 0000000..8c1d596 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.3606967117714815485 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.297633033121472268 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.1140726660024778405 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.1148506575755980225 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.2976866851485737153 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.3605617562128750064 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.283887795809908583 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.1063971131685470112 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.1065643930692906499 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.2841066062350807719 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.z.asc new file mode 100644 index 0000000..2de7b15 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt13rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.3606967117714815485 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.297633033121472601 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.1140726660024760641 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.1148506575755962045 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.2976866851485711618 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.3605617562128756726 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.2838877958099033094 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.1063971131685457483 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.1065643930692919683 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.2841066062350844357 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.x.asc new file mode 100644 index 0000000..f78fd15 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.001097695519928665 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.000405024681067623 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.000364803038667816 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.000926567406855705 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.000926567406855705 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.000364803038668038 +0 0 0 0 0 8 3 3 0 0.5 0 0 1 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.000405024681067179 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.001097695519928665 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.000405024681067623 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 1.000364803038667816 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.000926567406855705 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.y.asc new file mode 100644 index 0000000..6d6c3a7 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 1.000926567406855705 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 1.000926567406855705 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 1.000364803038668038 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 1.000405024681067623 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 1.001097695519928665 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 1.001097695519928665 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 1.000405024681067623 +0 0 0 0 0 3 8 3 0 0 0.5 0 1 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 1.000364803038667816 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 1.000926567406855705 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 1.000926567406855705 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 1.000364803038668038 +0 0 0 0 0 3 13 3 0 0 1 0 1 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 1.000405024681067623 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 1.001097695519928665 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.z.asc new file mode 100644 index 0000000..6121d90 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 1.000926567406855705 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 1.000926567406855705 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 1.000364803038668038 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 1.000405024681067623 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 1.001097695519928665 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 1.001097695519928665 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 1.000405024681067623 +0 0 0 0 0 3 3 8 0 0 0 0.5 1 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 1.000364803038667816 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 1.000926567406855705 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 1.001097695519928665 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 1.001097695519928665 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 1.000405024681067623 +0 0 0 1 0 3 3 8 0 0 0 0.5 1 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 1.000364803038667816 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 1.000926567406855705 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 1.000926567406855705 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 1.000364803038668038 +0 0 0 1 0 3 3 13 0 0 0 1 1 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 1.000405024681067623 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 1.001097695519928665 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.x.asc new file mode 100644 index 0000000..7e07b4c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197788713445e-05 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.01073295520242237115 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.006480301310938816305 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.006273341278163370796 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.01074606509098670164 +0 0 0 0 0 8 3 3 0 0.5 0 0 6.684849197177188183e-05 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.01202269985594636367 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.007899891194981524881 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.007537003883580787982 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.01219215966661705425 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.y.asc new file mode 100644 index 0000000..ee5d552 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197788713445e-05 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.01219215966660951514 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.007537003883584593097 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.007899891194976929598 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.01202269985594732471 +0 0 0 0 0 3 8 3 0 0 0.5 0 6.68484919694528547e-05 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.01074606509098893596 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.006273341278161388875 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.006480301310936508255 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.01073295520242298351 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.z.asc new file mode 100644 index 0000000..e89659f --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt22rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197788713445e-05 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.012192159666608424 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.007537003883583340627 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.007899891194976336323 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.01202269985594504008 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 6.68484919696563459e-05 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.01074606509099262398 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.006273341278163101914 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.006480301310937814502 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.01073295520242314657 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.x.asc new file mode 100644 index 0000000..4cb8d37 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 -0.03277573545166539287 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.03277573545166539287 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.01999248696063090497 +0 0 0 0 0 3 3 3 0 0 0 0 2.775557561562891351e-17 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.01922334923201163281 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.03075622745750388604 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.03075622745750388604 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.01922334923201168833 +0 0 0 0 0 8 3 3 0 0.5 0 0 8.326672684688671588e-17 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.01999248696063078354 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.03277573545166539287 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.03277573545166539287 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.01999248696063090497 +0 0 0 0 0 13 3 3 0 1 0 0 2.775557561562891351e-17 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.01922334923201163281 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.03075622745750388604 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.y.asc new file mode 100644 index 0000000..9a1efd3 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.03075622745750383746 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.03075622745750388604 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.01922334923201168833 +0 0 0 0 0 3 3 3 0 0 0 0 2.775557561562891351e-17 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.01999248696063090497 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.03277573545166539287 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.03277573545166539287 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.01999248696063090497 +0 0 0 0 0 3 8 3 0 0 0.5 0 -2.775557561562891351e-17 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.01922334923201163281 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.03075622745750383746 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.03075622745750388604 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.01922334923201168833 +0 0 0 0 0 3 13 3 0 0 1 0 2.775557561562891351e-17 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.01999248696063090497 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.03277573545166539287 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.z.asc new file mode 100644 index 0000000..150cb7a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.03075622745750383746 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.03075622745750388604 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.01922334923201168833 +0 0 0 0 0 3 3 3 0 0 0 0 2.775557561562891351e-17 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.01999248696063090497 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.03277573545166539287 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.03277573545166539287 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.01999248696063090497 +0 0 0 0 0 3 3 8 0 0 0 0.5 -2.775557561562891351e-17 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.01922334923201163281 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.03075622745750383746 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.03277573545166539287 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 -0.03277573545166539287 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 -0.01999248696063090497 +0 0 0 1 0 3 3 8 0 0 0 0.5 -2.775557561562891351e-17 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.01922334923201163281 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.03075622745750383746 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.03075622745750388604 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.01922334923201168833 +0 0 0 1 0 3 3 13 0 0 0 1 2.775557561562891351e-17 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.01999248696063090497 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.03277573545166539287 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.x.asc new file mode 100644 index 0000000..b505e31 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.360696711771481382 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.2841066062350856569 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1065643930692915242 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.1063971131685558791 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.2838877958099058074 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.3605617562128792808 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.2976866851485758247 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.114850657575590348 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1140726660024759392 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.2976330331214744884 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.y.asc new file mode 100644 index 0000000..fffda2b --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.360696711771481382 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.2976330331214718239 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.1140726660024781181 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.1148506575755964682 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.2976866851485718279 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.360561756212875284 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.2838877958099073062 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.1063971131685475802 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.1065643930692890401 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.2841066062350810495 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.z.asc new file mode 100644 index 0000000..fd25bfd --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt23rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.360696711771481382 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.2976330331214728231 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.1140726660024769246 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.1148506575755952469 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.2976866851485707732 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.3605617562128763942 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.283887795809903476 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.1063971131685464144 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.1065643930692917324 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.2841066062350843802 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.x.asc new file mode 100644 index 0000000..e4c472c --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.001097695519928665 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.000405024681067401 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.000364803038668038 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.000926567406855705 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.000926567406855705 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.000364803038668038 +0 0 0 0 0 8 3 3 0 0.5 0 0 1 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.000405024681067179 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.001097695519928665 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.001097695519928665 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.000405024681067401 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 1.000364803038668038 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.000926567406855705 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.y.asc new file mode 100644 index 0000000..984dda4 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 1.000926567406855927 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 1.000926567406855705 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 1.000364803038668038 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 1.000405024681067401 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 1.001097695519928665 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 1.001097695519928665 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 1.000405024681067401 +0 0 0 0 0 3 8 3 0 0 0.5 0 1 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 1.000364803038668038 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 1.000926567406855927 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 1.000926567406855705 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 1.000364803038668038 +0 0 0 0 0 3 13 3 0 0 1 0 1 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 1.000405024681067401 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 1.001097695519928665 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.z.asc new file mode 100644 index 0000000..10eae1b --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 1.000926567406855927 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 1.000926567406855705 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 1.000364803038668038 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 1.000405024681067401 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 1.001097695519928665 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 1.001097695519928665 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 1.000405024681067401 +0 0 0 0 0 3 3 8 0 0 0 0.5 1 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 1.000364803038668038 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 1.000926567406855927 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 1.001097695519928665 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 1.001097695519928665 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 1.000405024681067401 +0 0 0 1 0 3 3 8 0 0 0 0.5 1 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 1.000364803038668038 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 1.000926567406855927 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 1.000926567406855705 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 1.000364803038668038 +0 0 0 1 0 3 3 13 0 0 0 1 1 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 1.000405024681067401 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 1.001097695519928665 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.x.asc new file mode 100644 index 0000000..c138416 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197362443098e-05 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.01073295520244416969 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.006480301310923265376 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.006273341278147616905 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.01074606509100196026 +0 0 0 0 0 8 3 3 0 0.5 0 0 6.684849197115999878e-05 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.01202269985594603754 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.007899891194971498179 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.007537003883587648813 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.01219215966660970943 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.y.asc new file mode 100644 index 0000000..1576320 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197362443098e-05 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.01219215966660946483 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.007537003883583056132 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.007899891194975363143 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.01202269985595257745 +0 0 0 0 0 3 8 3 0 0 0.5 0 6.684849197577639611e-05 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.01074606509099247306 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.006273341278148207578 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.006480301310923189916 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.01073295520244387999 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.z.asc new file mode 100644 index 0000000..54d7680 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gt33rhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 6.684849197362443098e-05 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.01219215966661056812 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.007537003883584124722 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.007899891194975481104 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.01202269985595382992 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 6.684849197637194836e-05 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.01074606509098787431 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.006273341278145712178 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.006480301310923293132 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.01073295520244380713 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.x.asc new file mode 100644 index 0000000..523d6ff --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.968298116123494923 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0.968298116123494923 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0.9804071582569174881 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 1.019592841743082401 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 1.031701883876505299 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 1.031701883876505299 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 1.019592841743082623 +0 0 0 0 0 8 3 3 0 0.5 0 0 1.000000000000000222 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.9804071582569177101 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.968298116123494923 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.968298116123494923 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.9804071582569174881 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 1.019592841743082401 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 1.031701883876505299 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.y.asc new file mode 100644 index 0000000..5a9adfa --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 1.031701883876505077 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 1.031701883876505299 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 1.019592841743082623 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.9804071582569174881 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.968298116123494923 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.968298116123494923 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.9804071582569174881 +0 0 0 0 0 3 8 3 0 0 0.5 0 1 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 1.019592841743082401 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 1.031701883876505077 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 1.031701883876505299 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 1.019592841743082623 +0 0 0 0 0 3 13 3 0 0 1 0 1 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0.9804071582569174881 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0.968298116123494923 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.z.asc new file mode 100644 index 0000000..04dd7a7 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/gxx.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 1.031701883876505077 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 1.031701883876505299 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 1.019592841743082623 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.9804071582569174881 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.968298116123494923 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.968298116123494923 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.9804071582569174881 +0 0 0 0 0 3 3 8 0 0 0 0.5 1 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 1.019592841743082401 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 1.031701883876505077 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0.968298116123494923 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.968298116123494923 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.9804071582569174881 +0 0 0 1 0 3 3 8 0 0 0 0.5 1 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 1.019592841743082401 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 1.031701883876505077 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 1.031701883876505299 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 1.019592841743082623 +0 0 0 1 0 3 3 13 0 0 0 1 1 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0.9804071582569174881 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0.968298116123494923 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.x.asc new file mode 100644 index 0000000..85f53b3 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.05892153831746786696 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.0589215383174686233 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.1512524600532927366 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1813805949244461646 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.1426086965759302549 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.05356058938639061962 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.05356058938638950245 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.1426086965759379155 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.1813805949244440552 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.1512524600532958452 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.05892153831746786696 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.0589215383174686233 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.1512524600532927366 +0 0 0 0 0 13 3 3 0 1 0 0 -0.1813805949244461646 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.1426086965759302549 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.05356058938639061962 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.y.asc new file mode 100644 index 0000000..e7b1aa4 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.0535605893863904739 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.05356058938638663669 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.142608696575938082 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1813805949244461646 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.151252460053299731 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.05892153831746754777 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.05892153831746672898 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.1512524600532936803 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.181380594924452937 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.1426086965759309211 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.0535605893863904739 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.05356058938638663669 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.142608696575938082 +0 0 0 0 0 3 13 3 0 0 1 0 -0.1813805949244461646 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.151252460053299731 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.05892153831746754777 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.z.asc new file mode 100644 index 0000000..6936e53 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/kxx.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.053560589386390689 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.05356058938639000899 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.1426086965759312819 +0 0 0 0 0 3 3 3 0 0 0 0 -0.1813805949244461646 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.1512524600532993424 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.05892153831746801962 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.05892153831746758941 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.151252460053295068 +0 0 0 0 0 3 3 8 0 0 0 0.5 0.1813805949244529925 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.1426086965759298386 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.053560589386390689 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.05892153831746801962 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.05892153831746758941 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.151252460053295068 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.1813805949244529925 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.1426086965759298386 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.053560589386390689 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.05356058938639000899 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.1426086965759312819 +0 0 0 1 0 3 3 13 0 0 0 1 -0.1813805949244461646 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.1512524600532993424 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.05892153831746801962 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.x.asc new file mode 100644 index 0000000..a7e037e --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 1.016795668249818041 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 1.016795668249818041 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 1.010147272253753226 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.9905258471169019474 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.9849722533905976851 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.9849722533905976851 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.9905258471169019474 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.999999999999999889 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 1.010147272253753004 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 1.016795668249818041 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 1.016795668249818041 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 1.010147272253753226 +0 0 0 0 0 13 3 3 0 1 0 0 1 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0.9905258471169019474 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0.9849722533905976851 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.y.asc new file mode 100644 index 0000000..350d571 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.9849722533905977961 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0.9849722533905976851 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0.9905258471169019474 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 1.010147272253753226 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 1.016795668249818041 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 1.016795668249818041 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 1.010147272253753226 +0 0 0 0 0 3 8 3 0 0 0.5 0 1 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.9905258471169019474 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.9849722533905977961 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.9849722533905976851 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.9905258471169019474 +0 0 0 0 0 3 13 3 0 0 1 0 1 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 1.010147272253753226 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 1.016795668249818041 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.z.asc new file mode 100644 index 0000000..19935b5 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phi.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.9849722533905977961 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0.9849722533905976851 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0.9905258471169019474 +0 0 0 0 0 3 3 3 0 0 0 0 1 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 1.010147272253753226 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 1.016795668249818041 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 1.016795668249818041 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 1.010147272253753226 +0 0 0 0 0 3 3 8 0 0 0 0.5 1 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.9905258471169019474 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.9849722533905977961 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 1.016795668249818041 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 1.016795668249818041 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 1.010147272253753226 +0 0 0 1 0 3 3 8 0 0 0 0.5 1 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.9905258471169019474 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.9849722533905977961 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.9849722533905976851 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.9905258471169019474 +0 0 0 1 0 3 3 13 0 0 0 1 1 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 1.010147272253753226 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 1.016795668249818041 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.x.asc new file mode 100644 index 0000000..6162121 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1803735474191114629 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 0.1379980207156958627 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 0.05082128763500962099 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -0.05081720591503635642 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -0.1378813092508292815 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.180255686573072893 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 -0.1533151815805421925 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 -0.06034539606363258785 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 0.05982331147911297553 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 0.1533482835858647753 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.y.asc new file mode 100644 index 0000000..540dffd --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1803735474191114629 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 0.153348283585861167 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 0.05982331147911567476 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 -0.06034539606363485686 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 -0.1533151815805418594 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.1802556865730661484 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -0.1378813092508325844 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -0.0508172059150367797 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 0.05082128763501234103 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 0.1379980207156889238 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.z.asc new file mode 100644 index 0000000..4683cba --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/phirhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 0.1803735474191114629 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 0.1533482835858615834 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 0.05982331147911503638 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 -0.06034539606363406583 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 -0.1533151815805412765 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.180255686573066537 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -0.1378813092508329452 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -0.05081720591503614132 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 0.05082128763500994711 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 0.1379980207156955574 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.x.asc new file mode 100644 index 0000000..399ac80 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0.1953428212594253421 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 -0.1953428212594242042 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 -0.4820941641502610731 +0 0 0 0 0 3 3 3 0 0 0 0 -0.5441417847733434066 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -0.4040751484217592893 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -0.1467271837380128285 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 0.146727183738009026 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 0.4040751484217811607 +0 0 0 0 0 8 3 3 0 0.5 0 0 0.544141784773340742 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 0.4820941641502641817 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 0.1953428212594253421 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 -0.1953428212594242042 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 -0.4820941641502610731 +0 0 0 0 0 13 3 3 0 1 0 0 -0.5441417847733434066 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 -0.4040751484217592893 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 -0.1467271837380128285 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.y.asc new file mode 100644 index 0000000..412338e --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0.146727183738011191 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 -0.1467271837380021426 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 -0.4040751484217809386 +0 0 0 0 0 3 3 3 0 0 0 0 -0.5441417847733434066 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 -0.4820941641502713981 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 -0.1953428212594192914 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 0.1953428212594169322 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 0.4820941641502654584 +0 0 0 0 0 3 8 3 0 0 0.5 0 0.5441417847733618363 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 0.4040751484217726675 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 0.146727183738011191 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -0.1467271837380021426 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -0.4040751484217809386 +0 0 0 0 0 3 13 3 0 0 1 0 -0.5441417847733434066 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 -0.4820941641502713981 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 -0.1953428212594192914 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.z.asc new file mode 100644 index 0000000..f38885e --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trK.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0.1467271837380128008 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 -0.1467271837380109967 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 -0.4040751484217611766 +0 0 0 0 0 3 3 3 0 0 0 0 -0.5441417847733434066 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 -0.4820941641502707875 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 -0.195342821259420929 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 0.1953428212594193469 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 0.4820941641502679564 +0 0 0 0 0 3 3 8 0 0 0 0.5 0.5441417847733613922 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0.4040751484217711686 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0.1467271837380128008 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 -0.195342821259420929 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0.1953428212594193469 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0.4820941641502679564 +0 0 0 1 0 3 3 8 0 0 0 0.5 0.5441417847733613922 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 0.4040751484217711686 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 0.1467271837380128008 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -0.1467271837380109967 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -0.4040751484217611766 +0 0 0 1 0 3 3 13 0 0 0 1 -0.5441417847733434066 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 -0.4820941641502707875 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 -0.195342821259420929 + + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.x.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.x.asc new file mode 100644 index 0000000..1b1a6c4 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.x.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 0 3 3 0 -0.3000000000000000444 0 0 0 +0 0 0 0 0 1 3 3 0 -0.2000000000000000111 0 0 0 +0 0 0 0 0 2 3 3 0 -0.1000000000000000056 0 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7568371511643994243 +0 0 0 0 0 4 3 3 0 0.1000000000000000056 0 0 -3.663942027173537674 +0 0 0 0 0 5 3 3 0 0.2000000000000000111 0 0 -4.998247353042589936 +0 0 0 0 0 6 3 3 0 0.3000000000000000444 0 0 -4.993157984218573375 +0 0 0 0 0 7 3 3 0 0.4000000000000000222 0 0 -3.653405384625103558 +0 0 0 0 0 8 3 3 0 0.5 0 0 -0.7554108425892037681 +0 0 0 0 0 9 3 3 0 0.6000000000000000888 0 0 3.181497761558605308 +0 0 0 0 0 10 3 3 0 0.7000000000000000666 0 0 6.167563390845148596 +0 0 0 0 0 11 3 3 0 0.8000000000000000444 0 0 6.196511523206931216 +0 0 0 0 0 12 3 3 0 0.9000000000000000222 0 0 3.206759352693532072 +0 0 0 0 0 13 3 3 0 1 0 0 0 +0 0 0 0 0 14 3 3 0 1.100000000000000089 0 0 0 +0 0 0 0 0 15 3 3 0 1.200000000000000178 0 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.y.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.y.asc new file mode 100644 index 0000000..9dfda8a --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.y.asc @@ -0,0 +1,21 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 0 3 0 0 -0.3000000000000000444 0 0 +0 0 0 0 0 3 1 3 0 0 -0.2000000000000000111 0 0 +0 0 0 0 0 3 2 3 0 0 -0.1000000000000000056 0 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7568371511643994243 +0 0 0 0 0 3 4 3 0 0 0.1000000000000000056 0 3.206759352693439702 +0 0 0 0 0 3 5 3 0 0 0.2000000000000000111 0 6.196511523206994276 +0 0 0 0 0 3 6 3 0 0 0.3000000000000000444 0 6.16756339084501537 +0 0 0 0 0 3 7 3 0 0 0.4000000000000000222 0 3.181497761559038739 +0 0 0 0 0 3 8 3 0 0 0.5 0 -0.7554108425893699685 +0 0 0 0 0 3 9 3 0 0 0.6000000000000000888 0 -3.653405384625258545 +0 0 0 0 0 3 10 3 0 0 0.7000000000000000666 0 -4.993157984218600909 +0 0 0 0 0 3 11 3 0 0 0.8000000000000000444 0 -4.998247353042854613 +0 0 0 0 0 3 12 3 0 0 0.9000000000000000222 0 -3.663942027173523464 +0 0 0 0 0 3 13 3 0 0 1 0 0 +0 0 0 0 0 3 14 3 0 0 1.100000000000000089 0 0 +0 0 0 0 0 3 15 3 0 0 1.200000000000000178 0 0 + +# + diff --git a/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.z.asc b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.z.asc new file mode 100644 index 0000000..ce21929 --- /dev/null +++ b/ML_CCZ4_Test/test/ML_CCZ4_sgw3d_rhs/trKrhs.z.asc @@ -0,0 +1,27 @@ +# 1D ASCII output created by CarpetIOASCII +# +0 0 0 0 0 3 3 0 0 0 0 -0.3000000000000000444 0 +0 0 0 0 0 3 3 1 0 0 0 -0.2000000000000000111 0 +0 0 0 0 0 3 3 2 0 0 0 -0.1000000000000000056 0 +0 0 0 0 0 3 3 3 0 0 0 0 -0.7568371511643994243 +0 0 0 0 0 3 3 4 0 0 0 0.1000000000000000056 3.206759352693170584 +0 0 0 0 0 3 3 5 0 0 0 0.2000000000000000111 6.196511523207024474 +0 0 0 0 0 3 3 6 0 0 0 0.3000000000000000444 6.167563390845131721 +0 0 0 0 0 3 3 7 0 0 0 0.4000000000000000222 3.18149776155861197 +0 0 0 0 0 3 3 8 0 0 0 0.5 0 +0 0 0 0 0 3 3 9 0 0 0 0.6000000000000000888 0 +0 0 0 0 0 3 3 10 0 0 0 0.7000000000000000666 0 + +0 0 0 1 0 3 3 5 0 0 0 0.2000000000000000111 0 +0 0 0 1 0 3 3 6 0 0 0 0.3000000000000000444 0 +0 0 0 1 0 3 3 7 0 0 0 0.4000000000000000222 0 +0 0 0 1 0 3 3 8 0 0 0 0.5 -0.7554108425893716339 +0 0 0 1 0 3 3 9 0 0 0 0.6000000000000000888 -3.65340538462526121 +0 0 0 1 0 3 3 10 0 0 0 0.7000000000000000666 -4.993157984218628442 +0 0 0 1 0 3 3 11 0 0 0 0.8000000000000000444 -4.998247353042727603 +0 0 0 1 0 3 3 12 0 0 0 0.9000000000000000222 -3.663942027173496374 +0 0 0 1 0 3 3 13 0 0 0 1 0 +0 0 0 1 0 3 3 14 0 0 0 1.100000000000000089 0 +0 0 0 1 0 3 3 15 0 0 0 1.200000000000000178 0 + + diff --git a/ML_CCZ4_Test/test/test.ccl b/ML_CCZ4_Test/test/test.ccl new file mode 100644 index 0000000..95b367d --- /dev/null +++ b/ML_CCZ4_Test/test/test.ccl @@ -0,0 +1 @@ +NPROCS 2 diff --git a/ML_WaveToyFO/configuration.ccl b/ML_WaveToyFO/configuration.ccl index 8e2c3c5..0a66ec2 100644 --- a/ML_WaveToyFO/configuration.ccl +++ b/ML_WaveToyFO/configuration.ccl @@ -1,4 +1,6 @@ # File produced by Kranc REQUIRES GenericFD -REQUIRES LoopControl +OPTIONAL LoopControl +{ +} diff --git a/ML_WaveToyFO/param.ccl b/ML_WaveToyFO/param.ccl index 854aee9..5bfa8b8 100644 --- a/ML_WaveToyFO/param.ccl +++ b/ML_WaveToyFO/param.ccl @@ -41,6 +41,12 @@ CCTK_INT rhs_timelevels "Number of active RHS timelevels" STEERABLE=RECOVER } 1 restricted: +CCTK_INT other_timelevels "Number of active timelevels for non-evolved grid functions" STEERABLE=RECOVER +{ + 0:2 :: "" +} 1 + +restricted: CCTK_INT WTFO_Gaussian_calc_every "WTFO_Gaussian_calc_every" STEERABLE=ALWAYS { *:* :: "" diff --git a/ML_WaveToyFO/schedule.ccl b/ML_WaveToyFO/schedule.ccl index e8c9a3f..f294545 100644 --- a/ML_WaveToyFO/schedule.ccl +++ b/ML_WaveToyFO/schedule.ccl @@ -1,7 +1,10 @@ # File produced by Kranc -STORAGE: WT_w[1] +if (other_timelevels == 1) +{ + STORAGE: WT_w[1] +} if (timelevels == 1) { @@ -63,12 +66,6 @@ schedule ML_WaveToyFO_Startup at STARTUP OPTIONS: meta } "create banner" -schedule ML_WaveToyFO_RegisterVars in MoL_Register -{ - LANG: C - OPTIONS: meta -} "Register Variables for MoL" - schedule ML_WaveToyFO_RegisterSymmetries in SymmetryRegister { LANG: C @@ -78,11 +75,19 @@ schedule ML_WaveToyFO_RegisterSymmetries in SymmetryRegister schedule WTFO_Gaussian AT initial { LANG: C + WRITES: ML_WaveToyFO::WT_rho + WRITES: ML_WaveToyFO::WT_u + WRITES: ML_WaveToyFO::WT_v } "WTFO_Gaussian" schedule WTFO_RHS IN MoL_CalcRHS { LANG: C + READS: ML_WaveToyFO::WT_rho + READS: ML_WaveToyFO::WT_v + WRITES: ML_WaveToyFO::WT_rhorhs + WRITES: ML_WaveToyFO::WT_urhs + WRITES: ML_WaveToyFO::WT_vrhs } "WTFO_RHS" schedule WTFO_RHS AT analysis @@ -91,12 +96,19 @@ schedule WTFO_RHS AT analysis SYNC: WT_rhorhs SYNC: WT_urhs SYNC: WT_vrhs + READS: ML_WaveToyFO::WT_rho + READS: ML_WaveToyFO::WT_v + WRITES: ML_WaveToyFO::WT_rhorhs + WRITES: ML_WaveToyFO::WT_urhs + WRITES: ML_WaveToyFO::WT_vrhs } "WTFO_RHS" schedule WTFO_constraints AT analysis { LANG: C SYNC: WT_w + READS: ML_WaveToyFO::WT_v + WRITES: ML_WaveToyFO::WT_w } "WTFO_constraints" schedule ML_WaveToyFO_SelectBoundConds in MoL_PostStep @@ -114,6 +126,12 @@ schedule ML_WaveToyFO_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" +schedule ML_WaveToyFO_RegisterVars in MoL_Register +{ + LANG: C + OPTIONS: meta +} "Register Variables for MoL" + schedule group ApplyBCs as ML_WaveToyFO_ApplyBCs in MoL_PostStep after ML_WaveToyFO_SelectBoundConds { # no language specified diff --git a/ML_WaveToyFO/src/WTFO_Gaussian.cc b/ML_WaveToyFO/src/WTFO_Gaussian.cc index 0320d22..560f59b 100644 --- a/ML_WaveToyFO/src/WTFO_Gaussian.cc +++ b/ML_WaveToyFO/src/WTFO_Gaussian.cc @@ -12,6 +12,7 @@ #include "cctk_Parameters.h" #include "GenericFD.h" #include "Differencing.h" +#include "cctk_Loop.h" #include "loopcontrol.h" /* Define macros used in calculations */ @@ -27,8 +28,6 @@ static void WTFO_Gaussian_Body(cGH const * restrict const cctkGH, int const dir, DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -59,9 +58,9 @@ static void WTFO_Gaussian_Body(cGH const * restrict const cctkGH, int const dir, CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx); CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy); CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz); - CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy); - CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz); - CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz); + CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy); + CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz); + CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz); CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx)); CCTK_REAL const pm1o12dy2 = -0.0833333333333333333333333333333*INV(SQR(dy)); CCTK_REAL const pm1o12dz2 = -0.0833333333333333333333333333333*INV(SQR(dz)); @@ -76,7 +75,7 @@ static void WTFO_Gaussian_Body(cGH const * restrict const cctkGH, int const dir, /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3 (WTFO_Gaussian, + CCTK_LOOP3(WTFO_Gaussian, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2]) { @@ -108,7 +107,7 @@ static void WTFO_Gaussian_Body(cGH const * restrict const cctkGH, int const dir, v2[index] = v2L; v3[index] = v3L; } - LC_ENDLOOP3 (WTFO_Gaussian); + CCTK_ENDLOOP3(WTFO_Gaussian); } extern "C" void WTFO_Gaussian(CCTK_ARGUMENTS) @@ -127,11 +126,14 @@ extern "C" void WTFO_Gaussian(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ML_WaveToyFO::WT_rho","ML_WaveToyFO::WT_u","ML_WaveToyFO::WT_v"}; + const char *const groups[] = { + "ML_WaveToyFO::WT_rho", + "ML_WaveToyFO::WT_u", + "ML_WaveToyFO::WT_v"}; GenericFD_AssertGroupStorage(cctkGH, "WTFO_Gaussian", 3, groups); - GenericFD_LoopOverEverything(cctkGH, &WTFO_Gaussian_Body); + GenericFD_LoopOverEverything(cctkGH, WTFO_Gaussian_Body); if (verbose > 1) { diff --git a/ML_WaveToyFO/src/WTFO_RHS.cc b/ML_WaveToyFO/src/WTFO_RHS.cc index fb9af18..d197632 100644 --- a/ML_WaveToyFO/src/WTFO_RHS.cc +++ b/ML_WaveToyFO/src/WTFO_RHS.cc @@ -12,6 +12,7 @@ #include "cctk_Parameters.h" #include "GenericFD.h" #include "Differencing.h" +#include "cctk_Loop.h" #include "loopcontrol.h" /* Define macros used in calculations */ @@ -45,8 +46,6 @@ static void WTFO_RHS_Body(cGH const * restrict const cctkGH, int const dir, int DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -77,9 +76,9 @@ static void WTFO_RHS_Body(cGH const * restrict const cctkGH, int const dir, int CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx); CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy); CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz); - CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy); - CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz); - CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz); + CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy); + CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz); + CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz); CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx)); CCTK_REAL const pm1o12dy2 = -0.0833333333333333333333333333333*INV(SQR(dy)); CCTK_REAL const pm1o12dz2 = -0.0833333333333333333333333333333*INV(SQR(dz)); @@ -94,7 +93,7 @@ static void WTFO_RHS_Body(cGH const * restrict const cctkGH, int const dir, int /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3 (WTFO_RHS, + CCTK_LOOP3(WTFO_RHS, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2]) { @@ -137,7 +136,7 @@ static void WTFO_RHS_Body(cGH const * restrict const cctkGH, int const dir, int v2rhs[index] = v2rhsL; v3rhs[index] = v3rhsL; } - LC_ENDLOOP3 (WTFO_RHS); + CCTK_ENDLOOP3(WTFO_RHS); } extern "C" void WTFO_RHS(CCTK_ARGUMENTS) @@ -156,12 +155,17 @@ extern "C" void WTFO_RHS(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ML_WaveToyFO::WT_rho","ML_WaveToyFO::WT_rhorhs","ML_WaveToyFO::WT_urhs","ML_WaveToyFO::WT_v","ML_WaveToyFO::WT_vrhs"}; + const char *const groups[] = { + "ML_WaveToyFO::WT_rho", + "ML_WaveToyFO::WT_rhorhs", + "ML_WaveToyFO::WT_urhs", + "ML_WaveToyFO::WT_v", + "ML_WaveToyFO::WT_vrhs"}; GenericFD_AssertGroupStorage(cctkGH, "WTFO_RHS", 5, groups); GenericFD_EnsureStencilFits(cctkGH, "WTFO_RHS", 2, 2, 2); - GenericFD_LoopOverInterior(cctkGH, &WTFO_RHS_Body); + GenericFD_LoopOverInterior(cctkGH, WTFO_RHS_Body); if (verbose > 1) { diff --git a/ML_WaveToyFO/src/WTFO_constraints.cc b/ML_WaveToyFO/src/WTFO_constraints.cc index 3c89dcd..fe58e77 100644 --- a/ML_WaveToyFO/src/WTFO_constraints.cc +++ b/ML_WaveToyFO/src/WTFO_constraints.cc @@ -12,6 +12,7 @@ #include "cctk_Parameters.h" #include "GenericFD.h" #include "Differencing.h" +#include "cctk_Loop.h" #include "loopcontrol.h" /* Define macros used in calculations */ @@ -39,8 +40,6 @@ static void WTFO_constraints_Body(cGH const * restrict const cctkGH, int const d DECLARE_CCTK_PARAMETERS; - /* Declare finite differencing variables */ - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -71,9 +70,9 @@ static void WTFO_constraints_Body(cGH const * restrict const cctkGH, int const d CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx); CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy); CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz); - CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy); - CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz); - CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz); + CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy); + CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz); + CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz); CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx)); CCTK_REAL const pm1o12dy2 = -0.0833333333333333333333333333333*INV(SQR(dy)); CCTK_REAL const pm1o12dz2 = -0.0833333333333333333333333333333*INV(SQR(dz)); @@ -88,7 +87,7 @@ static void WTFO_constraints_Body(cGH const * restrict const cctkGH, int const d /* Loop over the grid points */ #pragma omp parallel - LC_LOOP3 (WTFO_constraints, + CCTK_LOOP3(WTFO_constraints, i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], cctk_lsh[0],cctk_lsh[1],cctk_lsh[2]) { @@ -123,7 +122,7 @@ static void WTFO_constraints_Body(cGH const * restrict const cctkGH, int const d w2[index] = w2L; w3[index] = w3L; } - LC_ENDLOOP3 (WTFO_constraints); + CCTK_ENDLOOP3(WTFO_constraints); } extern "C" void WTFO_constraints(CCTK_ARGUMENTS) @@ -142,12 +141,14 @@ extern "C" void WTFO_constraints(CCTK_ARGUMENTS) return; } - const char *groups[] = {"ML_WaveToyFO::WT_v","ML_WaveToyFO::WT_w"}; + const char *const groups[] = { + "ML_WaveToyFO::WT_v", + "ML_WaveToyFO::WT_w"}; GenericFD_AssertGroupStorage(cctkGH, "WTFO_constraints", 2, groups); GenericFD_EnsureStencilFits(cctkGH, "WTFO_constraints", 2, 2, 2); - GenericFD_LoopOverInterior(cctkGH, &WTFO_constraints_Body); + GenericFD_LoopOverInterior(cctkGH, WTFO_constraints_Body); if (verbose > 1) { diff --git a/ML_WaveToyFO/src/make.code.defn b/ML_WaveToyFO/src/make.code.defn index d60b8d6..1b30d1c 100644 --- a/ML_WaveToyFO/src/make.code.defn +++ b/ML_WaveToyFO/src/make.code.defn @@ -1,3 +1,3 @@ # File produced by Kranc -SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc WTFO_Gaussian.cc WTFO_RHS.cc WTFO_constraints.cc Boundaries.cc +SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc WTFO_Gaussian.cc WTFO_RHS.cc WTFO_constraints.cc Boundaries.cc @@ -13,13 +13,14 @@ McLachlan_ADM.out: McLachlan_ADM.m done McLachlan_BSSN.out: McLachlan_BSSN.m - rm -rf ML_BSSN* + rm -rf ML_BSSN* ML_CCZ4* ./runmath.sh $^ for thorn in ML_BSSN*; do \ ./copy-if-changed.sh $$thorn ../$$thorn && \ ./create-helper-thorn.sh $$thorn && \ ./copy-if-changed.sh $${thorn}_Helper ../$${thorn}_Helper; \ done + ./copy-if-changed.sh ML_CCZ4 ../ML_CCZ4 McLachlan_ADMConstraints.out: McLachlan_ADMConstraints.m rm -rf ML_ADMConstraints* diff --git a/m/McLachlan_BSSN.m b/m/McLachlan_BSSN.m index 2d4eeb3..fa8e79c 100644 --- a/m/McLachlan_BSSN.m +++ b/m/McLachlan_BSSN.m @@ -6,8 +6,8 @@ SetSourceLanguage["C"]; (* Options *) (******************************************************************************) -createCode[derivOrder_, useJacobian_, splitUpwindDerivs_, evolutionTimelevels_, addMatter_] := -Module[{}, +createCode[derivOrder_, useJacobian_, splitUpwindDerivs_, evolutionTimelevels_, addMatter_, formulation_] := +Module[{prefix, suffix, thorn}, prefix = "ML_"; suffix = @@ -19,9 +19,10 @@ suffix = (* <> If [addMatter==1, "_M", ""] *) ; -BSSN = prefix <> "BSSN" <> suffix; - +thorn = prefix <> formulation <> suffix; +SetAttributes[IfCCZ4, HoldAll]; +IfCCZ4[expr_, else_:Sequence[]] := If[formulation === "CCZ4", expr, Unevaluated[else]]; (******************************************************************************) (* Derivatives *) @@ -103,7 +104,8 @@ Map [DefineTensor, xx, rr, th, ph, admg, admK, admalpha, admdtalpha, admbeta, admdtbeta, H, M, g, detg, gu, G, R, trR, Km, trK, cdphi, cdphi2, - phi, gt, At, Xt, Xtn, alpha, A, beta, B, Atm, Atu, trA, Ats, trAts, + phi, gt, At, Xt, Xtn, Theta, Z, + alpha, A, beta, B, Atm, Atu, trA, Ats, trAts, dottrK, dotXt, cXt, cS, cA, e4phi, em4phi, ddetg, detgt, gtu, ddetgt, dgtu, ddgtu, Gtl, Gtlu, Gt, @@ -159,6 +161,11 @@ T11=eTxx; T12=eTxy; T22=eTyy; T13=eTxz; T23=eTyz; T33=eTzz; (* Expressions *) (******************************************************************************) +(* enum constants for conformalMethod; these must be consistent + with the definition of the Cactus parameter conformalMethod *) +CMphi = 0; +CMW = 1; + detgExpr = Det [MatrixOfComponents [g [la,lb]]]; ddetgExpr[la_] = Sum [D[Det[MatrixOfComponents[g[la, lb]]], X] PD[X, la], @@ -187,7 +194,8 @@ evolvedGroups = SetGroupName [CreateGroupFromTensor [alpha ], prefix <> "lapse" ], SetGroupName [CreateGroupFromTensor [A ], prefix <> "dtlapse" ], SetGroupName [CreateGroupFromTensor [beta[ua] ], prefix <> "shift" ], - SetGroupName [CreateGroupFromTensor [B[ua] ], prefix <> "dtshift" ]}; + SetGroupName [CreateGroupFromTensor [B[ua] ], prefix <> "dtshift" ], + IfCCZ4[SetGroupName[CreateGroupFromTensor[Theta], prefix <> "Theta"]]}; evaluatedGroups = {SetGroupName [CreateGroupFromTensor [H ], prefix <> "Ham"], SetGroupName [CreateGroupFromTensor [M[la] ], prefix <> "mom"], @@ -223,12 +231,12 @@ groups = Join [declaredGroups, extraGroups]; initialCalc = { - Name -> BSSN <> "_Minkowski", + Name -> thorn <> "_Minkowski", Schedule -> {"IN ADMBase_InitialData"}, ConditionalOnKeyword -> {"my_initial_data", "Minkowski"}, Equations -> { - phi -> IfThen [conformalMethod, 1, 0], + phi -> IfThen[conformalMethod==CMW, 1, 0], gt[la,lb] -> KD[la,lb], trK -> 0, At[la,lb] -> 0, @@ -236,7 +244,8 @@ initialCalc = alpha -> 1, A -> 0, beta[ua] -> 0, - B[ua] -> 0 + B[ua] -> 0, + IfCCZ4[Theta -> 0] } }; @@ -273,7 +282,7 @@ Module[ convertFromADMBaseCalc = { - Name -> BSSN <> "_convertFromADMBase", + Name -> thorn <> "_convertFromADMBase", Schedule -> {"AT initial AFTER ADMBase_PostInitial"}, ConditionalOnKeyword -> {"my_initial_data", "ADMBase"}, Shorthands -> {g[la,lb], detg, gu[ua,ub], em4phi}, @@ -283,8 +292,8 @@ convertFromADMBaseCalc = detg -> detgExpr, gu[ua,ub] -> 1/detg detgExpr MatrixInverse [g[ua,ub]], - phi -> IfThen [conformalMethod, detg^(-1/6), Log[detg]/12], - em4phi -> IfThen [conformalMethod, phi^2, Exp[-4 phi]], + phi -> IfThen[conformalMethod==CMW, detg^(-1/6), Log[detg]/12], + em4phi -> IfThen[conformalMethod==CMW, phi^2, Exp[-4 phi]], gt[la,lb] -> em4phi g[la,lb], trK -> gu[ua,ub] admK[la,lb], @@ -292,14 +301,16 @@ convertFromADMBaseCalc = alpha -> admalpha, - beta[ua] -> admbeta[ua] + beta[ua] -> admbeta[ua], + + IfCCZ4[Theta -> 0] } }; convertFromADMBaseGammaCalc = { - Name -> BSSN <> "_convertFromADMBaseGamma", - Schedule -> {"AT initial AFTER " <> BSSN <> "_convertFromADMBase"}, + Name -> thorn <> "_convertFromADMBaseGamma", + Schedule -> {"AT initial AFTER " <> thorn <> "_convertFromADMBase"}, ConditionalOnKeyword -> {"my_initial_data", "ADMBase"}, (* Where -> InteriorNoSync, @@ -355,8 +366,8 @@ convertFromADMBaseGammaCalc = initialised. *) initGammaCalc = { - Name -> BSSN <> "_InitGamma", - Schedule -> {"AT initial BEFORE " <> BSSN <> "_convertFromADMBaseGamma"}, + Name -> thorn <> "_InitGamma", + Schedule -> {"AT initial BEFORE " <> thorn <> "_convertFromADMBaseGamma"}, ConditionalOnKeyword -> {"my_initial_data", "ADMBase"}, Where -> Everywhere, Equations -> @@ -375,13 +386,13 @@ initGammaCalc = convertToADMBaseCalc = { - Name -> BSSN <> "_convertToADMBase", - Schedule -> {"IN " <> BSSN <> "_convertToADMBaseGroup"}, + Name -> thorn <> "_convertToADMBase", + Schedule -> {"IN " <> thorn <> "_convertToADMBaseGroup"}, Where -> Everywhere, Shorthands -> {e4phi}, Equations -> { - e4phi -> IfThen [conformalMethod, 1/phi^2, Exp[4 phi]], + e4phi -> IfThen[conformalMethod==CMW, 1/phi^2, Exp[4 phi]], admg[la,lb] -> e4phi gt[la,lb], admK[la,lb] -> e4phi At[la,lb] + (1/3) admg[la,lb] trK, admalpha -> alpha, @@ -391,8 +402,8 @@ convertToADMBaseCalc = convertToADMBaseDtLapseShiftCalc = { - Name -> BSSN <> "_convertToADMBaseDtLapseShift", - Schedule -> {"IN " <> BSSN <> "_convertToADMBaseGroup"}, + Name -> thorn <> "_convertToADMBaseDtLapseShift", + Schedule -> {"IN " <> thorn <> "_convertToADMBaseGroup"}, ConditionalOnKeyword -> {"dt_lapse_shift_method", "correct"}, Where -> Interior, Shorthands -> {dir[ua], detgt, gtu[ua,ub], eta, theta}, @@ -415,7 +426,8 @@ convertToADMBaseDtLapseShiftCalc = *) admdtalpha -> - harmonicF alpha^harmonicN (+ LapseACoeff A - + (1 - LapseACoeff) trK) + + ((1 - LapseACoeff) + (trK - IfCCZ4[2 Theta, 0]))) + LapseAdvectionCoeff Upwind[beta[ua], alpha, la], admdtbeta[ua] -> IfThen[harmonicShift, - 1/2 gtu[ua,uj] phi alpha @@ -434,8 +446,8 @@ convertToADMBaseDtLapseShiftCalc = convertToADMBaseDtLapseShiftBoundaryCalc = { - Name -> BSSN <> "_convertToADMBaseDtLapseShiftBoundary", - Schedule -> {"IN " <> BSSN <> "_convertToADMBaseGroup"}, + Name -> thorn <> "_convertToADMBaseDtLapseShiftBoundary", + Schedule -> {"IN " <> thorn <> "_convertToADMBaseGroup"}, ConditionalOnKeyword -> {"dt_lapse_shift_method", "correct"}, Where -> BoundaryWithGhosts, Shorthands -> {detgt, gtu[ua,ub], eta, theta}, @@ -455,7 +467,8 @@ convertToADMBaseDtLapseShiftBoundaryCalc = *) admdtalpha -> - harmonicF alpha^harmonicN (+ LapseACoeff A - + (1 - LapseACoeff) trK), + + ((1 - LapseACoeff) + (trK - IfCCZ4[2 Theta, 0]))), admdtbeta[ua] -> IfThen[harmonicShift, 0, (* else *) @@ -468,8 +481,8 @@ convertToADMBaseDtLapseShiftBoundaryCalc = convertToADMBaseFakeDtLapseShiftCalc = { - Name -> BSSN <> "_convertToADMBaseFakeDtLapseShift", - Schedule -> {"IN " <> BSSN <> "_convertToADMBaseGroup"}, + Name -> thorn <> "_convertToADMBaseFakeDtLapseShift", + Schedule -> {"IN " <> thorn <> "_convertToADMBaseGroup"}, ConditionalOnKeyword -> {"dt_lapse_shift_method", "noLapseShiftAdvection"}, Where -> Everywhere, Shorthands -> {detgt, gtu[ua,ub], eta, theta}, @@ -491,7 +504,8 @@ convertToADMBaseFakeDtLapseShiftCalc = *) admdtalpha -> - harmonicF alpha^harmonicN (+ LapseACoeff A - + (1 - LapseACoeff) trK), + + ((1 - LapseACoeff) + (trK - IfCCZ4[2 Theta, 0]))), admdtbeta[ua] -> IfThen[harmonicShift, 0, (* else *) @@ -508,8 +522,8 @@ convertToADMBaseFakeDtLapseShiftCalc = evolCalc = { - Name -> BSSN <> "_RHS", - Schedule -> {"IN " <> BSSN <> "_evolCalcGroup"}, + Name -> thorn <> "_RHS", + Schedule -> {"IN " <> thorn <> "_evolCalcGroup"}, (* Where -> Interior, *) @@ -524,7 +538,8 @@ evolCalc = Atm[ua,lb], Atu[ua,ub], e4phi, em4phi, cdphi[la], cdphi2[la,lb], g[la,lb], detg, gu[ua,ub], Ats[la,lb], trAts, eta, theta, - rho, S[la], trS, fac1, fac2, dottrK, dotXt[ua], epsdiss[ua]}, + rho, S[la], trS, fac1, fac2, dottrK, dotXt[ua], + epsdiss[ua], IfCCZ4[Z[ua]], IfCCZ4[dotTheta]}, Equations -> { dir[ua] -> Sign[beta[ua]], @@ -542,7 +557,20 @@ evolCalc = used instead of Xt where no derivatives of Xt are taken *) Xtn[ui] -> gtu[uj,uk] Gt[ui,lj,lk], + e4phi -> IfThen[conformalMethod==CMW, 1/phi^2, Exp[4 phi]], + em4phi -> 1 / e4phi, + g[la,lb] -> e4phi gt[la,lb], + detg -> detgExpr, + gu[ua,ub] -> em4phi gtu[ua,ub], + + (* The Z quantities *) + (* gr-qc:1106.2254 (2011), eqn. (23) *) + IfCCZ4[ + Z[ud] -> (1/2) gu[ua,ud] (- PD[gt[la,lb],lc] gtu[ub,uc] + gt[la,lc] Xt[uc]) + ], + (* PRD 62, 044034 (2000), eqn. (18) *) + (* Adding Z term by changing Xtn to Xt *) Rt[li,lj] -> - (1/2) gtu[ul,um] PD[gt[li,lj],ll,lm] + (1/2) gt[lk,li] PD[Xt[uk],lj] + (1/2) gt[lk,lj] PD[Xt[uk],li] @@ -552,9 +580,9 @@ evolCalc = + Gt[uk,lj,ll] Gtlu[li,lk,ul] + Gt[uk,li,ll] Gtlu[lk,lj,ul]), - fac1 -> IfThen [conformalMethod, -1/(2 phi), 1], + fac1 -> IfThen[conformalMethod==CMW, -1/(2 phi), 1], cdphi[la] -> fac1 CDt[phi,la], - fac2 -> IfThen [conformalMethod, 1/(2 phi^2), 0], + fac2 -> IfThen[conformalMethod==CMW, 1/(2 phi^2), 0], cdphi2[la,lb] -> fac1 CDt[phi,la,lb] + fac2 CDt[phi,la] CDt[phi,lb], (* PRD 62, 044034 (2000), eqn. (15) *) @@ -566,14 +594,12 @@ evolCalc = Atm[ua,lb] -> gtu[ua,uc] At[lc,lb], Atu[ua,ub] -> Atm[ua,lc] gtu[ub,uc], - e4phi -> IfThen [conformalMethod, 1/phi^2, Exp[4 phi]], - em4phi -> 1 / e4phi, - g[la,lb] -> e4phi gt[la,lb], - detg -> detgExpr, - (* gu[ua,ub] -> 1/detg detgExpr MatrixInverse [g[ua,ub]], *) - gu[ua,ub] -> em4phi gtu[ua,ub], - R[la,lb] -> Rt[la,lb] + Rphi[la,lb], + IfCCZ4[ + R[la,lb] -> R[la,lb] + (2/phi) (+ g[la,lc] Z[uc] PD[phi,lb] + + g[lb,lc] Z[uc] PD[phi,la] - g[la,lb] Z[uc] PD[phi,lc]) + + e4phi Z[uc] PD[gt[la,lb],lc] + ], (* Matter terms *) @@ -591,15 +617,20 @@ evolCalc = (* PRD 62, 044034 (2000), eqn. (10) *) (* PRD 67 084023 (2003), eqn. (16) and (23) *) - dot[phi] -> IfThen [conformalMethod, 1/3 phi, -1/6] alpha trK - + IfThen [conformalMethod, -1/3 phi, 1/6] PD[beta[ua],la], + dot[phi] -> IfThen[conformalMethod==CMW, 1/3 phi, -1/6] + (alpha trK - PD[beta[ua],la]), (* PRD 62, 044034 (2000), eqn. (9) *) - dot[gt[la,lb]] -> - 2 alpha At[la,lb] + (* gr-qc:1106.2254 (2011), eqn. (14) *) + (* removing trA from Aij ensures that detg = 1 *) + dot[gt[la,lb]] -> - 2 alpha (At[la,lb] - IfCCZ4[(1/3) At[lc,ld] gtu[uc,ud] gt[la,lb], 0]) + gt[la,lc] PD[beta[uc],lb] + gt[lb,lc] PD[beta[uc],la] - (2/3) gt[la,lb] PD[beta[uc],lc], (* PRD 62, 044034 (2000), eqn. (20) *) (* PRD 67 084023 (2003), eqn (26) *) + (* gr-qc:1106.2254 (2011), eqn. (19) *) + (* Adding Z terms by changing Xtn to Xt, + also adding extra Z and Theta terms *) dotXt[ui] -> - 2 Atu[ui,uj] PD[alpha,lj] + 2 alpha (+ Gt[ui,lj,lk] Atu[uk,uj] - (2/3) gtu[ui,uj] PD[trK,lj] @@ -608,27 +639,59 @@ evolCalc = + (1/3) gtu[ui,uj] PD[beta[ul],lj,ll] - Xtn[uj] PD[beta[ui],lj] + (2/3) Xtn[ui] PD[beta[uj],lj] + + IfCCZ4[ + + IfThen[GammaShift, + 2 e4phi (- Z[uj] PD[beta[ui],lj] + + (2/3) Z[ui] PD[beta[uj],lj]), + 0] + - (4/3) alpha e4phi Z[ui] trK + + 2 gtu[ui,uj] (+ alpha PD[Theta,lj] + - Theta PD[alpha,lj]) + - 2 alpha e4phi dampk1 Z[ui], + 0] (* Equation (4.28) in Baumgarte & Shapiro (Phys. Rept. 376 (2003) 41-131) *) + addMatter (- 16 Pi alpha gtu[ui,uj] S[lj]), dot[Xt[ui]] -> dotXt[ui], + (* gr-qc:1106.2254 (2011), eqn. (18) *) + IfCCZ4[ + dotTheta -> + - PD[alpha,la] Z[ua] - dampk1 (2 + dampk2) alpha Theta + + (1/2) alpha (gu[ua,ub] R[la,lb] - Atm[ua,lb] Atm[ub,la] + (2/3) trK^2 - 2 trK Theta) + ], + + IfCCZ4[ + dot[Theta] -> dotTheta + ], + (* PRD 62, 044034 (2000), eqn. (11) *) + (* gr-qc:1106.2254 (2011), eqn. (17) *) + (* Adding the RHS of Theta to K, because K_Z4 = K_BSSN + 2 Theta *) + (* Also adding the Z term, as it has to cancel with the one in Theta *) dottrK -> - em4phi ( gtu[ua,ub] ( PD[alpha,la,lb] + 2 cdphi[la] PD[alpha,lb] ) - Xtn[ua] PD[alpha,la] ) + alpha (Atm[ua,lb] Atm[ub,la] + (1/3) trK^2) + + IfCCZ4[ + + 2 dotTheta + 2 PD[alpha,la] Z[ua] + + dampk1 (1 - dampk2) alpha Theta, + 0] (* Equation (4.21) in Baumgarte & Shapiro (Phys. Rept. 376 (2003) 41-131) *) + addMatter (4 Pi alpha (rho + trS)), dot[trK] -> dottrK, (* PRD 62, 044034 (2000), eqn. (12) *) (* TODO: Should we use the Hamiltonian constraint to make Rij tracefree? *) + (* gr-qc:1106.2254 (2011), eqn. (15) *) + (* Adding Z terms in the Ricci and Theta terms *) Ats[la,lb] -> - CDt[alpha,la,lb] + + 2 (PD[alpha,la] cdphi[lb] + PD[alpha,lb] cdphi[la] ) + alpha R[la,lb], trAts -> gu[ua,ub] Ats[la,lb], dot[At[la,lb]] -> + em4phi (+ Ats[la,lb] - (1/3) g[la,lb] trAts ) - + alpha (trK At[la,lb] - 2 At[la,lc] Atm[uc,lb]) + + alpha (+ ((trK - IfCCZ4[2 Theta, 0]) + At[la,lb]) + - 2 At[la,lc] Atm[uc,lb]) + At[la,lc] PD[beta[uc],lb] + At[lb,lc] PD[beta[uc],la] - (2/3) At[la,lb] PD[beta[uc],lc] (* Equation (4.23) in Baumgarte & Shapiro (Phys. Rept. 376 (2003) 41-131) *) @@ -648,9 +711,13 @@ evolCalc = *) dot[alpha] -> - harmonicF alpha^harmonicN (+ LapseACoeff A - + (1 - LapseACoeff) (trK + AlphaDriver (alpha - 1))), + + ((1 - LapseACoeff) + (+ trK - IfCCZ4[2 Theta, 0] + + AlphaDriver (alpha - 1)))), - dot[A] -> + LapseACoeff (dottrK - AlphaDriver A), + dot[A] -> + (LapseACoeff + (+ dottrK - IfCCZ4[2 dotTheta, 0] + - AlphaDriver A)), eta -> etaExpr, theta -> thetaExpr, @@ -676,9 +743,9 @@ evolCalc = advectCalc = { - Name -> BSSN <> "_Advect", - Schedule -> {"IN " <> BSSN <> "_evolCalcGroup " <> - "AFTER (" <> BSSN <> "_RHS1 " <> BSSN <> "_RHS2)"}, + Name -> thorn <> "_Advect", + Schedule -> {"IN " <> thorn <> "_evolCalcGroup " <> + "AFTER (" <> thorn <> "_RHS1 " <> thorn <> "_RHS2)"}, (* Where -> Interior, *) @@ -697,6 +764,10 @@ advectCalc = dot[Xt[ui]] -> dot[Xt[ui]] + Upwind[beta[uj], Xt[ui], lj], + IfCCZ4[ + dot[Theta] -> dot[Theta] + Upwind[beta[ua], Theta, la] + ], + dot[trK] -> dot[trK] + Upwind[beta[ua], trK, la], dot[At[la,lb]] -> dot[At[la,lb]] + Upwind[beta[uc], At[la,lb], lc], @@ -725,14 +796,15 @@ evolCalc1 = PartialCalculation[evolCalc, "1", ConditionalOnKeyword -> {"RHS_calculation", "split"} }, { - dot[trK], dot[phi], dot[gt[la,lb]], dot[Xt[ui]], + dot[trK], dot[alpha], dot[A], dot[beta[ua]], - dot[B[ua]] + dot[B[ua]], + IfCCZ4[dot[Theta]] }]; evolCalc2 = PartialCalculation[evolCalc, "2", @@ -745,9 +817,9 @@ evolCalc2 = PartialCalculation[evolCalc, "2", dissCalc = { - Name -> BSSN <> "_Dissipation", - Schedule -> {"IN " <> BSSN <> "_evolCalcGroup " <> - "AFTER (" <> BSSN <> "_RHS1 " <> BSSN <> "_RHS2)"}, + Name -> thorn <> "_Dissipation", + Schedule -> {"IN " <> thorn <> "_evolCalcGroup " <> + "AFTER (" <> thorn <> "_RHS1 " <> thorn <> "_RHS2)"}, ConditionalOnKeyword -> {"apply_dissipation", "always"}, Where -> InteriorNoSync, Shorthands -> {epsdiss[ua]}, @@ -756,16 +828,17 @@ dissCalc = epsdiss[ua] -> EpsDiss, Sequence@@Table[ dot[var] -> dot[var] + epsdiss[ux] PDdiss[var,lx], - {var, {phi, gt[la,lb], Xt[ui], trK, At[la,lb], alpha, A, beta[ua], B[ua]}}] + {var, {phi, gt[la,lb], Xt[ui], IfCCZ4[Theta], trK, At[la,lb], + alpha, A, beta[ua], B[ua]}}] } }; dissCalcs = Table[ { - Name -> BSSN <> "_Dissipation_" <> ToString[var /. {Tensor[n_,__] -> n}], - Schedule -> {"IN " <> BSSN <> "_evolCalcGroup " <> - "AFTER (" <> BSSN <> "_RHS1 " <> BSSN <> "_RHS2)"}, + Name -> thorn <> "_Dissipation_" <> ToString[var /. {Tensor[n_,__] -> n}], + Schedule -> {"IN " <> thorn <> "_evolCalcGroup " <> + "AFTER (" <> thorn <> "_RHS1 " <> thorn <> "_RHS2)"}, ConditionalOnKeyword -> {"apply_dissipation", "always"}, Where -> InteriorNoSync, Shorthands -> {epsdiss[ua]}, @@ -775,12 +848,13 @@ Table[ dot[var] -> dot[var] + epsdiss[ux] PDdiss[var,lx] } }, - {var, {phi, gt[la,lb], Xt[ui], trK, At[la,lb], alpha, A, beta[ua], B[ua]}} + {var, {phi, gt[la,lb], Xt[ui], IfCCZ4[Theta], trK, At[la,lb], + alpha, A, beta[ua], B[ua]}} ]; RHSStaticBoundaryCalc = { - Name -> BSSN <> "_RHSStaticBoundary", + Name -> thorn <> "_RHSStaticBoundary", Schedule -> {"IN MoL_CalcRHS"}, ConditionalOnKeyword -> {"my_rhs_boundary_condition", "static"}, Where -> Boundary, @@ -794,7 +868,8 @@ RHSStaticBoundaryCalc = dot[alpha] -> 0, dot[A] -> 0, dot[beta[ua]] -> 0, - dot[B[ua]] -> 0 + dot[B[ua]] -> 0, + IfCCZ4[dot[Theta] -> 0] } }; @@ -803,8 +878,8 @@ RHSStaticBoundaryCalc = them to be zero *) initRHSCalc = { - Name -> BSSN <> "_InitRHS", - Schedule -> {"AT analysis BEFORE " <> BSSN <> "_evolCalcGroup"}, + Name -> thorn <> "_InitRHS", + Schedule -> {"AT analysis BEFORE " <> thorn <> "_evolCalcGroup"}, Where -> Everywhere, Equations -> { @@ -816,13 +891,14 @@ initRHSCalc = dot[alpha] -> 0, dot[A] -> 0, dot[beta[ua]] -> 0, - dot[B[ua]] -> 0 + dot[B[ua]] -> 0, + IfCCZ4[dot[Theta] -> 0] } }; RHSRadiativeBoundaryCalc = { - Name -> BSSN <> "_RHSRadiativeBoundary", + Name -> thorn <> "_RHSRadiativeBoundary", Schedule -> {"IN MoL_CalcRHS"}, ConditionalOnKeyword -> {"my_rhs_boundary_condition", "radiative"}, Where -> Boundary, @@ -836,7 +912,7 @@ RHSRadiativeBoundaryCalc = detgt -> 1 (* detgtExpr *), gtu[ua,ub] -> 1/detgt detgtExpr MatrixInverse [gt[ua,ub]], - em4phi -> IfThen [conformalMethod, phi^2, Exp[-4 phi]], + em4phi -> IfThen[conformalMethod==CMW, phi^2, Exp[-4 phi]], gu[ua,ub] -> em4phi gtu[ua,ub], nn[la] -> Euc[la,lb] normal[ub], @@ -855,13 +931,16 @@ RHSRadiativeBoundaryCalc = dot[alpha] -> - vg su[uc] PDo[alpha ,lc], dot[A] -> - vg su[uc] PDo[A ,lc], dot[beta[ua]] -> - su[uc] PDo[beta[ua] ,lc], - dot[B[ua]] -> - su[uc] PDo[B[ua] ,lc] + dot[B[ua]] -> - su[uc] PDo[B[ua] ,lc], + IfCCZ4[ + dot[Theta] -> - vg su[uc] PDo[Theta ,lc] + ] } }; enforceCalc = { - Name -> BSSN <> "_enforce", + Name -> thorn <> "_enforce", Schedule -> {"IN MoL_PostStepModify"}, Shorthands -> {detgt, gtu[ua,ub], trAt}, Equations -> @@ -892,13 +971,13 @@ enforceCalc = boundaryCalc = { - Name -> BSSN <> "_boundary", + Name -> thorn <> "_boundary", Schedule -> {"IN MoL_PostStep"}, ConditionalOnKeyword -> {"my_boundary_condition", "Minkowski"}, Where -> BoundaryWithGhosts, Equations -> { - phi -> IfThen [conformalMethod, 1, 0], + phi -> IfThen[conformalMethod==CMW, 1, 0], gt[la,lb] -> KD[la,lb], trK -> 0, At[la,lb] -> 0, @@ -906,7 +985,8 @@ boundaryCalc = alpha -> 1, A -> 0, beta[ua] -> 0, - B[ua] -> 0 + B[ua] -> 0, + IfCCZ4[Theta -> 0] } }; @@ -916,11 +996,11 @@ boundaryCalc = constraintsCalc = { - Name -> BSSN <> "_constraints", + Name -> thorn <> "_constraints", Schedule -> Automatic, After -> "MoL_PostStep", Where -> Interior, - Shorthands -> {detgt, ddetgt[la], gtu[ua,ub], + Shorthands -> {detgt, ddetgt[la], gtu[ua,ub], Z[ua], Gt[ua,lb,lc], Gtl[la,lb,lc], Gtlu[la,lb,uc], Xtn[ua], e4phi, em4phi, g[la,lb], detg, gu[ua,ub], ddetg[la], G[ua,lb,lc], @@ -943,6 +1023,17 @@ constraintsCalc = used instead of Xt where no derivatives of Xt are taken *) Xtn[ui] -> gtu[uj,uk] Gt[ui,lj,lk], + e4phi -> IfThen[conformalMethod==CMW, 1/phi^2, Exp[4 phi]], + em4phi -> 1 / e4phi, + g[la,lb] -> e4phi gt[la,lb], + detg -> e4phi^3, + gu[ua,ub] -> em4phi gtu[ua,ub], + + (* The Z quantities *) + IfCCZ4[ + Z[ud] -> (1/2) gu[ua,ud] (- PD[gt[la,lb],lc] gtu[ub,uc] + gt[la,lc] Xt[uc]) + ], + (* PRD 62, 044034 (2000), eqn. (18) *) Rt[li,lj] -> - (1/2) gtu[ul,um] PD[gt[li,lj],ll,lm] + (1/2) gt[lk,li] PD[Xt[uk],lj] @@ -975,9 +1066,9 @@ constraintsCalc = - PD[gt[la,lb],l1,l2] + PD[gt[l2,lb],l1,la]), *) - fac1 -> IfThen [conformalMethod, -1/(2 phi), 1], + fac1 -> IfThen[conformalMethod==CMW, -1/(2 phi), 1], cdphi[la] -> fac1 CDt[phi,la], - fac2 -> IfThen [conformalMethod, 1/(2 phi^2), 0], + fac2 -> IfThen[conformalMethod==CMW, 1/(2 phi^2), 0], cdphi2[la,lb] -> fac1 CDt[phi,la,lb] + fac2 CDt[phi,la] CDt[phi,lb], (* PRD 62, 044034 (2000), eqn. (15) *) @@ -986,13 +1077,6 @@ constraintsCalc = + 4 cdphi[li] cdphi[lj] - 4 gt[li,lj] gtu[ul,un] cdphi[ln] cdphi[ll], - e4phi -> IfThen [conformalMethod, 1/phi^2, Exp[4 phi]], - em4phi -> 1 / e4phi, - g[la,lb] -> e4phi gt[la,lb], - (* detg -> detgExpr, *) - (* gu[ua,ub] -> 1/detg detgExpr MatrixInverse [g[ua,ub]], *) - detg -> e4phi^3, - gu[ua,ub] -> em4phi gtu[ua,ub], (* ddetg[la] -> PD[e4phi detg,la], *) ddetg[la] -> e4phi ddetgt[la] + 4 detgt e4phi PD[phi,la], (* TODO: check this equation, maybe simplify it by omitting ddetg *) @@ -1000,7 +1084,14 @@ constraintsCalc = + 1/(2 detg) (+ KD[ua,lb] ddetg[lc] + KD[ua,lc] ddetg[lb] - (1/3) g[lb,lc] gu[ua,ud] ddetg[ld]), - R[la,lb] -> Rt[la,lb] + Rphi[la,lb], + R[la,lb] -> + Rt[la,lb] + Rphi[la,lb], + + IfCCZ4[ + R[la,lb] -> + (2/phi) (+ g[la,lc] Z[uc] PD[phi,lb] + + g[lb,lc] Z[uc] PD[phi,la] - g[la,lb] Z[uc] PD[phi,lc]) + + e4phi Z[uc] PD[gt[la,lb],lc] + ], + trR -> gu[ua,ub] R[la,lb], (* K[la,lb] -> e4phi At[la,lb] + (1/3) g[la,lb] trK, *) @@ -1076,23 +1167,23 @@ extendedKeywordParameters = { { Name -> "ADMBase::evolution_method", - AllowedValues -> {BSSN} + AllowedValues -> {thorn} }, { Name -> "ADMBase::lapse_evolution_method", - AllowedValues -> {BSSN} + AllowedValues -> {thorn} }, { Name -> "ADMBase::shift_evolution_method", - AllowedValues -> {BSSN} + AllowedValues -> {thorn} }, { Name -> "ADMBase::dtlapse_evolution_method", - AllowedValues -> {BSSN} + AllowedValues -> {thorn} }, { Name -> "ADMBase::dtshift_evolution_method", - AllowedValues -> {BSSN} + AllowedValues -> {thorn} } }; @@ -1162,6 +1253,11 @@ keywordParameters = intParameters = { + IfCCZ4[{ + Name -> GammaShift, + Description -> "Covariant shift term in Gamma", + Default -> 0 + }], { Name -> harmonicN, Description -> "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)", @@ -1194,6 +1290,16 @@ intParameters = realParameters = { + IfCCZ4[{ + Name -> dampk1, + Description -> "CCZ4 damping term 1 for Theta and Z", + Default -> 0 + }], + IfCCZ4[{ + Name -> dampk2, + Description -> "CCZ4 damping term 2 for Theta and Z", + Default -> 0 + }], { Name -> LapseACoeff, Description -> "Whether to evolve A in time", @@ -1287,7 +1393,7 @@ Join[ {} (*dissCalcs*) ]; -CreateKrancThornTT [groups, ".", BSSN, +CreateKrancThornTT [groups, ".", thorn, Calculations -> calculations, DeclaredGroups -> declaredGroupNames, PartialDerivatives -> derivatives, @@ -1320,9 +1426,11 @@ CreateKrancThornTT [groups, ".", BSSN, (* matter: 0 or 1 (matter seems cheap; it should be always enabled) *) -createCode[2, False, True , 3, 1]; -createCode[4, False, True , 3, 1]; -createCode[4, False, False, 3, 1]; -createCode[4, True , True , 3, 1]; -createCode[8, False, True , 3, 1]; -createCode[8, True , True , 3, 1]; +createCode[2, False, True , 3, 1, "BSSN"]; +createCode[4, False, True , 3, 1, "BSSN"]; +createCode[4, False, False, 3, 1, "BSSN"]; +createCode[4, True , True , 3, 1, "BSSN"]; +createCode[8, False, True , 3, 1, "BSSN"]; +createCode[8, True , True , 3, 1, "BSSN"]; + +createCode[4, False, True , 3, 1, "CCZ4"]; diff --git a/par/CCZ4/bbh_ccz4.par b/par/CCZ4/bbh_ccz4.par new file mode 100644 index 0000000..e009fd5 --- /dev/null +++ b/par/CCZ4/bbh_ccz4.par @@ -0,0 +1,493 @@ +################################################################################ + Cactus::cctk_run_title = "CCZ4 Binary Black Hole" +################################################################################ + +ActiveThorns = " + ADMBase + ADMCoupling + ADMMacros + AEILocalInterp + AHFinderDirect + BLAS + Boundary + Carpet + CarpetInterp + CarpetIOASCII + CarpetIOBasic + CarpetIOHDF5 + CarpetIOScalar + CarpetLib + CarpetMask + CarpetReduce + CarpetRegrid2 + CarpetSlab + CarpetTracker + CartGrid3D + CoordBase + CoordGauge + Dissipation + Formaline + Fortran + GenericFD + GSL + HDF5 + InitBase + IOUtil + LAPACK + LocalInterp + LoopControl + ML_ADMConstraints + ML_BSSN + ML_BSSN_Helper + MoL + Multipole + NaNChecker + NewRad + PunctureTracker + QuasiLocalMeasures + ReflectionSymmetry + RotatingSymmetry180 + Slab + SpaceMask + SphericalSurface + StaticConformal + SummationByParts + SymBase + SystemStatistics + TerminationTrigger + Time + TimerReport + TmunuBase + TwoPunctures + Vectors + WeylScal4 +" + +################################################################################ +# Grid structure +################################################################################ + +CartGrid3D::type = "coordbase" +Carpet::domain_from_coordbase = "yes" +CoordBase::domainsize = "minmax" + +CoordBase::xmin = 0.00 +CoordBase::ymin = -120.00 +CoordBase::zmin = 0.00 +CoordBase::xmax = +120.00 +CoordBase::ymax = +120.00 +CoordBase::zmax = +120.00 +CoordBase::dx = 2.00 +CoordBase::dy = 2.00 +CoordBase::dz = 2.00 + +Driver::ghost_size = 3 + +CoordBase::boundary_size_x_lower = 3 +CoordBase::boundary_size_y_lower = 3 +CoordBase::boundary_size_z_lower = 3 +CoordBase::boundary_size_x_upper = 3 +CoordBase::boundary_size_y_upper = 3 +CoordBase::boundary_size_z_upper = 3 + +CoordBase::boundary_shiftout_x_lower = 1 +CoordBase::boundary_shiftout_z_lower = 1 + +CarpetRegrid2::symmetry_rotating180 = yes + +ReflectionSymmetry::reflection_z = yes +ReflectionSymmetry::avoid_origin_z = no + +Time::dtfac = 0.25 + +################################################################################ +# Mesh refinement +################################################################################ + +Carpet::max_refinement_levels = 7 +CarpetRegrid2::num_centres = 2 +CarpetRegrid2::num_levels_1 = 7 +CarpetRegrid2::position_x_1 = 3 +CarpetRegrid2::radius_1 [1] = 24.0 +CarpetRegrid2::radius_1 [2] = 12.0 +CarpetRegrid2::radius_1 [3] = 6.0 +CarpetRegrid2::radius_1 [4] = 3.0 +CarpetRegrid2::radius_1 [5] = 1.5 +CarpetRegrid2::radius_1 [6] = 0.6 +CarpetRegrid2::num_levels_2 = 7 +CarpetRegrid2::position_x_2 = -3 +CarpetRegrid2::radius_2 [1] = 24.0 +CarpetRegrid2::radius_2 [2] = 12.0 +CarpetRegrid2::radius_2 [3] = 6.0 +CarpetRegrid2::radius_2 [4] = 3.0 +CarpetRegrid2::radius_2 [5] = 1.5 +CarpetRegrid2::radius_2 [6] = 0.6 + +Carpet::use_buffer_zones = yes +Carpet::prolongation_order_space = 5 +Carpet::prolongation_order_time = 2 + +CarpetRegrid2::regrid_every = 64 +CarpetRegrid2::verbose = yes +Carpet::grid_coordinates_filename = "carpet-grid.asc" + +Carpet::time_refinement_factors = "[1,1,2,4,8,16,32,64,128,256]" + +############################################################################### +# Initial Data +############################################################################### + +ADMBase::initial_data = "twopunctures" +ADMBase::initial_lapse = "twopunctures-averaged" +ADMBase::initial_shift = "zero" +ADMBase::initial_dtlapse = "zero" +ADMBase::initial_dtshift = "zero" + +TwoPunctures::target_M_plus = 0.5 +TwoPunctures::target_M_minus = 0.5 + +TwoPunctures::par_m_plus = 0.476534633024028 +TwoPunctures::par_m_minus = 0.476534633024028 + +TwoPunctures::par_b = 3 +TwoPunctures::center_offset[0] = 0 + +TwoPunctures::par_P_plus[0] = -0.0058677669328272 +TwoPunctures::par_P_plus[1] = 0.138357448824906 +TwoPunctures::par_P_plus[2] = 0. + +TwoPunctures::par_P_minus[0] = 0.0058677669328272 +TwoPunctures::par_P_minus[1] = -0.138357448824906 +TwoPunctures::par_P_minus[2] = 0. + +TwoPunctures::par_S_plus[0] = 0. +TwoPunctures::par_S_plus[1] = 0. +TwoPunctures::par_S_plus[2] = 0. + +TwoPunctures::par_S_minus[0] = 0. +TwoPunctures::par_S_minus[1] = 0. +TwoPunctures::par_S_minus[2] = 0. + +TwoPunctures::give_bare_mass = yes +TwoPunctures::TP_epsilon = 1.0e-6 + +Carpet::init_fill_timelevels = yes +InitBase::initial_data_setup_method = "init_single_level" + +############################################################################### +# Evolution +############################################################################### + +ADMBase::evolution_method = "ML_BSSN" +ADMBase::lapse_evolution_method = "ML_BSSN" +ADMBase::shift_evolution_method = "ML_BSSN" +ADMBase::dtlapse_evolution_method = "ML_BSSN" +ADMBase::dtshift_evolution_method = "ML_BSSN" + +ML_BSSN::GammaShift = 1.0 +ML_BSSN::dampk1 = 1.0 +ML_BSSN::harmonicN = 1 # 1+log +ML_BSSN::harmonicF = 2.0 # 1+log +ML_BSSN::ShiftGammaCoeff = 0.75 +ML_BSSN::BetaDriver = 1.0 +ML_BSSN::LapseAdvectionCoeff = 1.0 +ML_BSSN::ShiftAdvectionCoeff = 1.0 + +ML_BSSN::MinimumLapse = 1.0e-8 +ML_BSSN::conformalMethod = 1 # 1 for W +ML_BSSN::formulation = 1 # 1 for CCZ4 +ML_BSSN::apply_dissipation = never +ML_BSSN::dt_lapse_shift_method = "noLapseShiftAdvection" + +################################################################################ +# Boundary conditions +################################################################################ + +ML_BSSN::my_initial_boundary_condition = "extrapolate-gammas" +ML_BSSN::my_rhs_boundary_condition = "NewRad" +Boundary::radpower = 2 + +ML_BSSN::ML_log_confac_bound = "none" +ML_BSSN::ML_metric_bound = "none" +ML_BSSN::ML_Gamma_bound = "none" +ML_BSSN::ML_trace_curv_bound = "none" +ML_BSSN::ML_curv_bound = "none" +ML_BSSN::ML_lapse_bound = "none" +ML_BSSN::ML_dtlapse_bound = "none" +ML_BSSN::ML_shift_bound = "none" +ML_BSSN::ML_dtshift_bound = "none" +ML_BSSN::ML_Theta_bound = "none" + +################################################################################ +# BH tracking +################################################################################ + +CarpetTracker::surface [0] = 0 +CarpetTracker::surface [1] = 1 +PunctureTracker::track [0] = yes +PunctureTracker::initial_x [0] = 3 +PunctureTracker::which_surface_to_store_info[0] = 0 +PunctureTracker::track [1] = yes +PunctureTracker::initial_x [1] = -3 +PunctureTracker::which_surface_to_store_info[1] = 1 + +############################################################################### +# Spatial finite differencing +############################################################################### + +SummationByParts::order = 4 +ML_BSSN::fdOrder = 4 + +Dissipation::order = 5 +Dissipation::vars = " + ML_BSSN::ML_log_confac + ML_BSSN::ML_metric + ML_BSSN::ML_trace_curv + ML_BSSN::ML_curv + ML_BSSN::ML_Gamma + ML_BSSN::ML_lapse + ML_BSSN::ML_shift + ML_BSSN::ML_dtlapse + ML_BSSN::ML_dtshift + ML_BSSN::ML_Theta +" + +############################################################################### +# Time Integration +############################################################################### + +MoL::ODE_Method = "RK4" +MoL::MoL_Intermediate_Steps = 4 +MoL::MoL_Num_Scratch_Levels = 1 + +################################################################################ +# Psi4 mode decomposition by Multipole +################################################################################ + +WeylScal4::fd_order = "4th" + +Multipole::nradii = 4 +Multipole::radius[0] = 30 +Multipole::radius[1] = 50 +Multipole::radius[2] = 80 +Multipole::radius[3] = 100 +Multipole::ntheta = 120 +Multipole::nphi = 240 +Multipole::variables = " + WeylScal4::Psi4r{sw=-2 cmplx='WeylScal4::Psi4i' name='psi4'} +" + +Multipole::out_every = 32 +Multipole::l_max = 8 +Multipole::output_hdf5 = yes +Multipole::output_ascii = no + +################################################################################ +# Apparent Horizons +################################################################################ + + +AHFinderDirect::N_horizons = 3 +AHFinderDirect::find_every = 128 +AHFinderDirect::output_h_every = 0 +AHFinderDirect::max_Newton_iterations__initial = 50 +AHFinderDirect::max_Newton_iterations__subsequent = 50 +AHFinderDirect::max_allowable_Theta_growth_iterations = 10 +AHFinderDirect::max_allowable_Theta_nonshrink_iterations = 10 +AHFinderDirect::geometry_interpolator_name = "Lagrange polynomial interpolation" +AHFinderDirect::geometry_interpolator_pars = "order=4" +AHFinderDirect::surface_interpolator_name = "Lagrange polynomial interpolation" +AHFinderDirect::surface_interpolator_pars = "order=4" +AHFinderDirect::verbose_level = "physics details" +AHFinderDirect::move_origins = yes + +AHFinderDirect::origin_x [1] = 3 +AHFinderDirect::initial_guess__coord_sphere__x_center[1] = 3 +AHFinderDirect::initial_guess__coord_sphere__radius [1] = 0.25 +AHFinderDirect::which_surface_to_store_info [1] = 2 +AHFinderDirect::set_mask_for_individual_horizon [1] = no +AHFinderDirect::reset_horizon_after_not_finding [1] = no +AHFinderDirect::track_origin_from_grid_scalar [1] = yes +AHFinderDirect::track_origin_source_x [1] = "PunctureTracker::pt_loc_x[0]" +AHFinderDirect::track_origin_source_y [1] = "PunctureTracker::pt_loc_y[0]" +AHFinderDirect::track_origin_source_z [1] = "PunctureTracker::pt_loc_z[0]" +AHFinderDirect::max_allowable_horizon_radius [1] = 3 + +AHFinderDirect::origin_x [2] = -3 +AHFinderDirect::initial_guess__coord_sphere__x_center[2] = -3 +AHFinderDirect::initial_guess__coord_sphere__radius [2] = 0.25 +AHFinderDirect::which_surface_to_store_info [2] = 3 +AHFinderDirect::set_mask_for_individual_horizon [2] = no +AHFinderDirect::reset_horizon_after_not_finding [2] = no +AHFinderDirect::track_origin_from_grid_scalar [2] = yes +AHFinderDirect::track_origin_source_x [2] = "PunctureTracker::pt_loc_x[1]" +AHFinderDirect::track_origin_source_y [2] = "PunctureTracker::pt_loc_y[1]" +AHFinderDirect::track_origin_source_z [2] = "PunctureTracker::pt_loc_z[1]" +AHFinderDirect::max_allowable_horizon_radius [2] = 3 + +AHFinderDirect::origin_x [3] = 0 +AHFinderDirect::find_after_individual [3] = 0 +AHFinderDirect::initial_guess__coord_sphere__x_center[3] = 0 +AHFinderDirect::initial_guess__coord_sphere__radius [3] = 1.0 +AHFinderDirect::which_surface_to_store_info [3] = 4 +AHFinderDirect::set_mask_for_individual_horizon [3] = no +AHFinderDirect::max_allowable_horizon_radius [3] = 6 + +################################################################################ +# Spherical surfaces +################################################################################ + +SphericalSurface::nsurfaces = 5 +SphericalSurface::maxntheta = 66 +SphericalSurface::maxnphi = 124 +SphericalSurface::verbose = no + +# Surfaces 0 and 1 are used by PunctureTracker + +# Horizon 1 +SphericalSurface::ntheta [2] = 41 +SphericalSurface::nphi [2] = 80 +SphericalSurface::nghoststheta [2] = 2 +SphericalSurface::nghostsphi [2] = 2 + +# Horizon 2 +SphericalSurface::ntheta [3] = 41 +SphericalSurface::nphi [3] = 80 +SphericalSurface::nghoststheta [3] = 2 +SphericalSurface::nghostsphi [3] = 2 + +# Common horizon +SphericalSurface::ntheta [4] = 41 +SphericalSurface::nphi [4] = 80 +SphericalSurface::nghoststheta [4] = 2 +SphericalSurface::nghostsphi [4] = 2 + +################################################################################ +# Isolated Horizons +################################################################################ + +QuasiLocalMeasures::verbose = yes +QuasiLocalMeasures::veryverbose = no +QuasiLocalMeasures::interpolator = "Lagrange polynomial interpolation" +QuasiLocalMeasures::interpolator_options = "order=4" +QuasiLocalMeasures::spatial_order = 4 +QuasiLocalMeasures::num_surfaces = 3 +QuasiLocalMeasures::surface_index [0] = 2 +QuasiLocalMeasures::surface_index [1] = 3 +QuasiLocalMeasures::surface_index [2] = 4 + +################################################################################ +# Correctness Checking +################################################################################ + +Carpet::poison_new_timelevels = yes +Carpet::poison_value = 100 +CarpetLib::poison_new_memory = yes +CarpetLib::poison_value = 200 +Carpet::check_for_poison = no + +NaNChecker::check_every = 128 +NanChecker::check_after = 0 +NaNChecker::report_max = 10 +NaNChecker::verbose = "all" +NaNChecker::action_if_found = "terminate" +NaNChecker::out_NaNmask = yes +NaNChecker::check_vars = " + ML_BSSN::ML_log_confac +" + +################################################################################ +# Timers +################################################################################ + +Cactus::cctk_timer_output = full +TimerReport::out_every = 256 +TimerReport::n_top_timers = 40 +TimerReport::output_all_timers_together = yes +TimerReport::output_schedule_timers = no + +################################################################################ +# Output +################################################################################ + +IO::out_dir = $parfile +IOScalar::one_file_per_group = yes +IOASCII::one_file_per_group = yes + +IOBasic::outInfo_every = 1 +IOBasic::outInfo_reductions = "minimum maximum" +IOBasic::outInfo_vars = " + Carpet::physical_time_per_hour + ML_BSSN::ML_log_confac + SystemStatistics::maxrss_mb +" + +IOScalar::outScalar_every = 128 +IOScalar::outScalar_reductions = "minimum maximum average" +IOScalar::outScalar_vars = "SystemStatistics::process_memory_mb" + +IOASCII::out0D_every = 32 +IOASCII::out0D_vars = " + Carpet::timing + PunctureTracker::pt_loc + QuasiLocalMeasures::qlm_scalars{out_every = 128} +" + +IOHDF5::out1D_every = 256 +IOHDF5::out1D_d = no +IOHDF5::out1D_x = yes +IOHDF5::out1D_y = no +IOHDF5::out1D_z = no +IOHDF5::out1D_vars = " + ML_BSSN::ML_log_confac +" + +IOHDF5::out2D_every = 1024 +IOHDF5::out2D_xy = yes +IOHDF5::out2D_xz = no +IOHDF5::out2D_yz = no +IOHDF5::out2D_vars = " + ML_BSSN::ML_log_confac +" + +IOHDF5::out_every = 8192 +IOHDF5::out_vars = " + ML_BSSN::ML_log_confac +" + +Carpet::verbose = no +Carpet::veryverbose = no +Carpet::schedule_barriers = no +Carpet::storage_verbose = no +Carpet::timers_verbose = no +CarpetLib::output_bboxes = no + +Cactus::cctk_full_warnings = yes +Cactus::highlight_warning_messages = no + +############################################################################### +# Checkpointing and recovery +############################################################################### + +CarpetIOHDF5::checkpoint = yes +IO::checkpoint_ID = no +IO::recover = "autoprobe" +IO::checkpoint_every_walltime_hours = 3 +IO::out_proc_every = 2 +IO::checkpoint_keep = 1 +IO::checkpoint_on_terminate = yes +IO::checkpoint_dir = "../checkpoints" +IO::recover_dir = "../checkpoints" +IO::abort_on_io_errors = yes +CarpetIOHDF5::open_one_input_file_at_a_time = yes +CarpetIOHDF5::compression_level = 9 + +################################################################################ +# Run termination +################################################################################ + +TerminationTrigger::max_walltime = @WALLTIME_HOURS@ # hours +TerminationTrigger::on_remaining_walltime = 30 # minutes +TerminationTrigger::output_remtime_every_minutes = 30 +Cactus::terminate = "time" +Cactus::cctk_final_time = 300.0 diff --git a/par/CCZ4/gw1d_ccz4.par b/par/CCZ4/gw1d_ccz4.par new file mode 100644 index 0000000..e74f951 --- /dev/null +++ b/par/CCZ4/gw1d_ccz4.par @@ -0,0 +1,283 @@ +Cactus::cctk_run_title = "CCZ4 1D Gauge Wave" + +ActiveThorns = " + ADMBase + ADMCoupling + ADMMacros + Boundary + Carpet + CarpetInterp + CarpetInterp2 + CarpetIOASCII + CarpetIOBasic + CarpetIOHDF5 + CarpetIOScalar + CarpetLib + CarpetReduce + CarpetRegrid + CarpetSlab + CartGrid3d + CoordBase + CoordGauge + Dissipation + Exact + GenericFD + IOUtil + LoopControl + ML_BSSN + ML_BSSN_Helper + MoL + NanChecker + Periodic + Slab + SpaceMask + SphericalSurface + StaticConformal + SummationByParts + SymBase + Time + TimerReport + TMuNuBase +" + + +############################################################# +# Evolution +############################################################# + +ADMBase::evolution_method = "ML_BSSN" +ADMBase::lapse_evolution_method = "ML_BSSN" +ADMBase::shift_evolution_method = "ML_BSSN" +ADMBase::dtlapse_evolution_method = "ML_BSSN" +ADMBase::dtshift_evolution_method = "ML_BSSN" + +ML_BSSN::GammaShift = 0.0 +ML_BSSN::dampk1 = 1.0 +ML_BSSN::harmonicN = 2 +ML_BSSN::harmonicF = 1.0 +ML_BSSN::ShiftGammaCoeff = 0.0 # beta to zero +ML_BSSN::ShiftBCoeff = 0.0 # B to zero +ML_BSSN::BetaDriver = 0.0 # damp in beta +ML_BSSN::LapseACoeff = 0.0 # A to zero +ML_BSSN::LapseAdvectionCoeff = 0.0 # no advection terms +ML_BSSN::ShiftAdvectionCoeff = 0.0 # no advection terms + +ML_BSSN::MinimumLapse = 1.0e-8 +ML_BSSN::conformalMethod = 1 # 1 for W, 0 for phi +ML_BSSN::formulation = 1 # 1 for CCZ4 + +############################################################# +# Boundary conditions +############################################################# + +Boundary::radpower = 2 + +ML_BSSN::ML_log_confac_bound = "none" +ML_BSSN::ML_metric_bound = "none" +ML_BSSN::ML_Gamma_bound = "none" +ML_BSSN::ML_trace_curv_bound = "none" +ML_BSSN::ML_curv_bound = "none" +ML_BSSN::ML_lapse_bound = "none" +ML_BSSN::ML_dtlapse_bound = "none" +ML_BSSN::ML_shift_bound = "none" +ML_BSSN::ML_dtshift_bound = "none" +ML_BSSN::ML_Theta_bound = "none" + +############################################################# +# Spatial derivatives +############################################################# + +SummationByParts::order = 4 +SummationByParts::sbp_upwind_deriv = no # Drop order instead, only for + # advection derivatives +SummationByParts::sbp_1st_deriv = no +SummationByParts::sbp_2nd_deriv = no +SummationByParts::onesided_interpatch_boundaries = no +SummationByParts::onesided_outer_boundaries = no +SummationByParts::use_dissipation = yes +SummationByParts::scale_with_h = no +SummationByParts::dissipation_type = "Kreiss-Oliger" +SummationByParts::epsdis = 0.1 +SummationByParts::vars = " + ML_BSSN::ML_log_confac + ML_BSSN::ML_metric + ML_BSSN::ML_trace_curv + ML_BSSN::ML_curv + ML_BSSN::ML_Gamma + ML_BSSN::ML_lapse + ML_BSSN::ML_shift + ML_BSSN::ML_dtlapse + ML_BSSN::ML_dtshift + ML_BSSN::ML_Theta +" + +############################################################# +# Grid +############################################################# + +CoordBase::domainsize = minmax + +CoordBase::boundary_size_x_lower = 3 +CoordBase::boundary_size_y_lower = 3 +CoordBase::boundary_size_z_lower = 3 +CoordBase::boundary_shiftout_x_lower = 1 +CoordBase::boundary_shiftout_y_lower = 1 +CoordBase::boundary_shiftout_z_lower = 1 + +CoordBase::boundary_size_x_upper = 3 +CoordBase::boundary_size_y_upper = 3 +CoordBase::boundary_size_z_upper = 3 +CoordBase::boundary_shiftout_x_upper = 0 +CoordBase::boundary_shiftout_y_upper = 0 +CoordBase::boundary_shiftout_z_upper = 0 + +CartGrid3D::type = "coordbase" +CartGrid3D::domain = "full" +CartGrid3D::avoid_origin = "no" + +Periodic::periodic = "yes" + +CoordBase::xmin = -0.5 +CoordBase::ymin = -0.5 +CoordBase::zmin = -0.5 + +CoordBase::xmax = 0.5 +CoordBase::ymax = 0.5 +CoordBase::zmax = 0.5 + +CoordBase::dx = 0.005 +CoordBase::dy = 0.1 +CoordBase::dz = 0.1 + +############################################################# +# CarpetRegrid +############################################################# + +CarpetRegrid::refinement_levels = 1 +CarpetRegrid::refined_regions = "manual-coordinate-list" +CarpetRegrid::smart_outer_boundaries = yes +CarpetRegrid::keep_same_grid_structure = "yes" + +############################################################# +# Carpet +############################################################# + +Carpet::ghost_size = 3 +Carpet::domain_from_coordbase = "yes" +Carpet::max_refinement_levels = 1 +Carpet::init_3_timelevels = "no" +Carpet::prolongation_order_space = 3 +Carpet::prolongation_order_time = 2 +Carpet::use_buffer_zones = yes +Carpet::num_integrator_substeps = 4 + +############################################################# +# CarpetLib +############################################################# + +############################################################# +# Time integration +############################################################# + +Cactus::terminate = "time" +Cactus::cctk_final_time = 1000 +# Use 0.5 for RK4 and 0.25 for ICN +Time::dtfac = 0.5 +MethodOfLines::ode_method = "RK4" +MethodOfLines::MoL_Intermediate_Steps = 4 +MethodOfLines::MoL_Num_Scratch_Levels = 1 + +MethodOfLines::MoL_NaN_Check = "yes" +MethodOfLines::initial_data_is_crap = "no" + +############################################################# +# Initial data +############################################################# + +ADMBase::initial_data = "exact" +ADMBase::initial_lapse = "exact" +ADMBase::initial_shift = "exact" + +Exact::exact_model = "Minkowski/gauge wave" +Exact::Minkowski_gauge_wave__what_fn = "sin" +Exact::Minkowski_gauge_wave__amplitude = 0.1 +Exact::Minkowski_gauge_wave__omega = 1 +Exact::Minkowski_gauge_wave__lambda = 1 +Exact::Minkowski_gauge_wave__diagonal = "no" + +################################################################################ +# Constraints +################################################################################ + +################################################################################ +# Timers +################################################################################ + +Cactus::cctk_timer_output = full +TimerReport::out_every = 4000 +TimerReport::n_top_timers = 40 +TimerReport::out_filename = "TimerReport" +TimerReport::output_all_timers = yes + +############################################################# +# Output +############################################################# + +IO::out_dir = $parfile +IO::out_fileinfo = "none" + +CarpetIOScalar::outScalar_every = 100 +CarpetIOScalar::outScalar_reductions = "norm_inf norm2" +CarpetIOScalar::outScalar_vars = " + ADMBase::alp + ADMBase::shift + ADMBase::metric + ADMBase::curv + ML_BSSN::ML_log_confac + ML_BSSN::ML_metric + ML_BSSN::ML_trace_curv + ML_BSSN::ML_curv + ML_BSSN::ML_Gamma + ML_BSSN::ML_lapse + ML_BSSN::ML_dtlapse + ML_BSSN::ML_dtshift + ML_BSSN::ML_shift + ML_BSSN::ML_Theta + ML_BSSN::ML_Ham + ML_BSSN::ML_mom + ML_BSSN::ML_cons_detg + ML_BSSN::ML_cons_traceA + ML_BSSN::ML_cons_Gamma +" + +CarpetIOBasic::outInfo_every = 1 +CarpetIOBasic::outInfo_vars = " + ADMBase::alp +" + +IOASCII::out1D_every = 4000 +IOASCII::out1D_x = "yes" +IOASCII::out1D_y = "yes" +IOASCII::out1D_z = "yes" +IOASCII::out1D_d = "no" +IOASCII::out1D_vars = " + ADMBase::alp + ADMBase::metric + ADMBase::curv + ML_BSSN::ML_log_confac + ML_BSSN::ML_metric + ML_BSSN::ML_trace_curv + ML_BSSN::ML_curv + ML_BSSN::ML_Gamma + ML_BSSN::ML_lapse + ML_BSSN::ML_dtlapse + ML_BSSN::ML_Theta + ML_BSSN::ML_Ham + ML_BSSN::ML_mom + ML_BSSN::ML_cons_detg + ML_BSSN::ML_cons_traceA + ML_BSSN::ML_cons_Gamma +" + +CarpetIOASCII::out_precision = 19 + diff --git a/par/CCZ4/rbst_ccz4.par b/par/CCZ4/rbst_ccz4.par new file mode 100644 index 0000000..3801ba4 --- /dev/null +++ b/par/CCZ4/rbst_ccz4.par @@ -0,0 +1,230 @@ +Cactus::cctk_run_title = "CCZ4 Robust Stability Test" + +ActiveThorns = " + ADMBase + ADMCoupling + ADMMacros + Boundary + Carpet + CarpetInterp + CarpetIOASCII + CarpetIOBasic + CarpetIOHDF5 + CarpetIOScalar + CarpetLib + CarpetReduce + CarpetRegrid + CarpetSlab + CartGrid3d + CoordBase + CoordGauge + Exact + GenericFD + IOUtil + LoopControl + ML_BSSN + ML_BSSN_Helper + MoL + NanChecker + Noise + Periodic + Slab + SpaceMask + SphericalSurface + StaticConformal + SymBase + Time + TimerReport + TMuNuBase +" + +ADMBase::evolution_method = "ML_BSSN" +ADMBase::lapse_evolution_method = "ML_BSSN" +ADMBase::shift_evolution_method = "ML_BSSN" +ADMBase::dtlapse_evolution_method = "ML_BSSN" +ADMBase::dtshift_evolution_method = "ML_BSSN" + +ML_BSSN::GammaShift = 0.0 +ML_BSSN::dampk1 = 0.0 +ML_BSSN::harmonicN = 2 +ML_BSSN::harmonicF = 1.0 +ML_BSSN::ShiftGammaCoeff = 0.0 +ML_BSSN::ShiftBCoeff = 0.0 # B to zero +ML_BSSN::BetaDriver = 0.0 +ML_BSSN::LapseACoeff = 0.0 # A to zero +ML_BSSN::LapseAdvectionCoeff = 0.0 +ML_BSSN::ShiftAdvectionCoeff = 0.0 + +ML_BSSN::conformalMethod = 1 # 1 for W +ML_BSSN::formulation = 1 # 1 for CCZ4 + +Boundary::radpower = 2 + +ML_BSSN::ML_log_confac_bound = "none" +ML_BSSN::ML_metric_bound = "none" +ML_BSSN::ML_Gamma_bound = "none" +ML_BSSN::ML_trace_curv_bound = "none" +ML_BSSN::ML_curv_bound = "none" +ML_BSSN::ML_lapse_bound = "none" +ML_BSSN::ML_dtlapse_bound = "none" +ML_BSSN::ML_shift_bound = "none" +ML_BSSN::ML_dtshift_bound = "none" +ML_BSSN::ML_Theta_bound = "none" + +############################################################# +# Grid +############################################################# + +CoordBase::domainsize = minmax + +CoordBase::boundary_size_x_lower = 5 +CoordBase::boundary_size_y_lower = 5 +CoordBase::boundary_size_z_lower = 5 +CoordBase::boundary_shiftout_x_lower = 1 +CoordBase::boundary_shiftout_y_lower = 1 +CoordBase::boundary_shiftout_z_lower = 1 + +CoordBase::boundary_size_x_upper = 5 +CoordBase::boundary_size_y_upper = 5 +CoordBase::boundary_size_z_upper = 5 +CoordBase::boundary_shiftout_x_upper = 0 +CoordBase::boundary_shiftout_y_upper = 0 +CoordBase::boundary_shiftout_z_upper = 0 + +CartGrid3D::type = "coordbase" +CartGrid3D::domain = "full" +CartGrid3D::avoid_origin = "no" + +Periodic::periodic = "yes" + +CoordBase::xmin = -0.5 +CoordBase::ymin = -0.5 +CoordBase::zmin = -0.5 + +CoordBase::xmax = 0.5 +CoordBase::ymax = 0.5 +CoordBase::zmax = 0.5 + +CoordBase::dx = 0.02 +CoordBase::dy = 0.02 +CoordBase::dz = 0.02 + +############################################################# +# CarpetRegrid +############################################################# + +CarpetRegrid::refinement_levels = 1 +CarpetRegrid::refined_regions = "manual-coordinate-list" +CarpetRegrid::smart_outer_boundaries = yes +CarpetRegrid::keep_same_grid_structure = "yes" + +############################################################# +# Carpet +############################################################# + +Carpet::ghost_size = 5 +Carpet::domain_from_coordbase = "yes" +Carpet::max_refinement_levels = 1 +Carpet::init_3_timelevels = "no" +Carpet::prolongation_order_space = 3 +Carpet::prolongation_order_time = 2 +Carpet::use_buffer_zones = yes +Carpet::num_integrator_substeps = 4 + +############################################################# +# CarpetLib +############################################################# + +############################################################# +# Time integration +############################################################# + +Cactus::terminate = "time" +Cactus::cctk_final_time = 1000 +# Use 0.5 for RK4 and 0.25 for ICN +Time::dtfac = 0.5 +MethodOfLines::ode_method = "RK4" +MethodOfLines::MoL_Intermediate_Steps = 4 +MethodOfLines::MoL_Num_Scratch_Levels = 1 + +MethodOfLines::MoL_NaN_Check = "yes" +MethodOfLines::initial_data_is_crap = "no" + +############################################################# +# Initial data +############################################################# + +ADMBase::initial_data = "exact" +ADMBase::initial_lapse = "exact" +ADMBase::initial_shift = "exact" + +Exact::exact_model = "Minkowski" + +Noise::apply_id_noise = yes +Noise::id_vars = " + ML_BSSN::ML_log_confac + ML_BSSN::ML_metric + ML_BSSN::ML_trace_curv + ML_BSSN::ML_curv + ML_BSSN::ML_Gamma + ML_BSSN::ML_lapse + ML_BSSN::ML_Theta +" +Noise::Amplitude = 1e-10 + +############################################################# +# Output +############################################################# + +IO::out_dir = $parfile +IO::out_fileinfo = "none" + +CarpetIOScalar::outScalar_every = 100 +CarpetIOScalar::outScalar_reductions = "norm_inf norm2" +CarpetIOScalar::outScalar_vars = " + ADMBase::alp + ADMBase::shift + ADMBase::metric + ADMBase::curv + ML_BSSN::ML_log_confac + ML_BSSN::ML_metric + ML_BSSN::ML_trace_curv + ML_BSSN::ML_curv + ML_BSSN::ML_Gamma + ML_BSSN::ML_lapse + ML_BSSN::ML_dtlapse + ML_BSSN::ML_dtshift + ML_BSSN::ML_shift + ML_BSSN::ML_Theta + ML_BSSN::ML_Ham + ML_BSSN::ML_mom + ML_BSSN::ML_cons_detg + ML_BSSN::ML_cons_traceA + ML_BSSN::ML_cons_Gamma +" + +CarpetIOBasic::outInfo_every = 100 +CarpetIOBasic::outInfo_vars = "ADMBase::alp" + +IOASCII::out1D_every = 1000 +IOASCII::out1D_x = "yes" +IOASCII::out1D_y = "yes" +IOASCII::out1D_z = "yes" +IOASCII::out1D_d = "no" +IOASCII::out1D_vars = " + ADMBase::metric + ADMBase::curv + ADMBase::alp + ADMBase::shift + ML_BSSN::ML_log_confac + ML_BSSN::ML_metric + ML_BSSN::ML_trace_curv + ML_BSSN::ML_curv + ML_BSSN::ML_Gamma + ML_BSSN::ML_lapse + ML_BSSN::ML_dtlapse + ML_BSSN::ML_Theta +" + +CarpetIOASCII::out_precision = 19 + |