aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Wardell <barry.wardell@gmail.com>2012-04-27 12:33:29 +0100
committerBarry Wardell <barry.wardell@gmail.com>2012-04-27 12:33:29 +0100
commitf87a82b998a429bcc88c928a06e175b633a916cc (patch)
treeffdd463b2a492151c0de29503589c9159acdf442
parente574bf527f6e15bc0df239404df428caae93d797 (diff)
Regenerate thorns.
-rw-r--r--ML_ADM/schedule.ccl60
-rw-r--r--ML_ADM/src/ML_ADM_Minkowski.cc144
-rw-r--r--ML_ADM/src/ML_ADM_RHS.cc148
-rw-r--r--ML_ADM/src/ML_ADM_boundary.cc144
-rw-r--r--ML_ADM/src/ML_ADM_constraints.cc84
-rw-r--r--ML_ADM/src/ML_ADM_constraints_boundary.cc82
-rw-r--r--ML_ADM/src/ML_ADM_convertFromADMBase.cc148
-rw-r--r--ML_ADM/src/ML_ADM_convertToADMBase.cc170
-rw-r--r--ML_ADM/src/make.code.defn2
-rw-r--r--ML_BSSN/interface.ccl12
-rw-r--r--ML_BSSN/param.ccl96
-rw-r--r--ML_BSSN/schedule.ccl44
-rw-r--r--ML_BSSN/src/Boundaries.cc104
-rw-r--r--ML_BSSN/src/ML_BSSN_Advect.cc79
-rw-r--r--ML_BSSN/src/ML_BSSN_Dissipation.cc46
-rw-r--r--ML_BSSN/src/ML_BSSN_InitRHS.cc6
-rw-r--r--ML_BSSN/src/ML_BSSN_Minkowski.cc8
-rw-r--r--ML_BSSN/src/ML_BSSN_RHS1.cc982
-rw-r--r--ML_BSSN/src/ML_BSSN_RHS2.cc136
-rw-r--r--ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc9
-rw-r--r--ML_BSSN/src/ML_BSSN_boundary.cc11
-rw-r--r--ML_BSSN/src/ML_BSSN_constraints1.cc96
-rw-r--r--ML_BSSN/src/ML_BSSN_constraints2.cc4
-rw-r--r--ML_BSSN/src/ML_BSSN_convertFromADMBase.cc8
-rw-r--r--ML_BSSN/src/ML_BSSN_convertToADMBase.cc4
-rw-r--r--ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.cc8
-rw-r--r--ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc8
-rw-r--r--ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc8
-rw-r--r--ML_BSSN/src/RegisterMoL.cc1
-rw-r--r--ML_BSSN/src/RegisterSymmetries.cc5
-rw-r--r--ML_BSSN_MP/interface.ccl12
-rw-r--r--ML_BSSN_MP/param.ccl96
-rw-r--r--ML_BSSN_MP/schedule.ccl44
-rw-r--r--ML_BSSN_MP/src/Boundaries.cc104
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_Advect.cc79
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_Dissipation.cc46
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_InitRHS.cc6
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_Minkowski.cc8
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc982
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc136
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.cc9
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc11
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc96
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_constraints2.cc4
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.cc8
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBase.cc4
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.cc8
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.cc8
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseFakeDtLapseShift.cc8
-rw-r--r--ML_BSSN_MP/src/RegisterMoL.cc1
-rw-r--r--ML_BSSN_MP/src/RegisterSymmetries.cc5
-rw-r--r--ML_BSSN_MP_O8/interface.ccl12
-rw-r--r--ML_BSSN_MP_O8/param.ccl96
-rw-r--r--ML_BSSN_MP_O8/schedule.ccl44
-rw-r--r--ML_BSSN_MP_O8/src/Boundaries.cc104
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Advect.cc79
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Dissipation.cc46
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitRHS.cc6
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Minkowski.cc8
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS1.cc982
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHS2.cc136
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHSStaticBoundary.cc9
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_boundary.cc11
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints1.cc96
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_constraints2.cc4
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertFromADMBase.cc8
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBase.cc4
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShift.cc8
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary.cc8
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift.cc8
-rw-r--r--ML_BSSN_MP_O8/src/RegisterMoL.cc1
-rw-r--r--ML_BSSN_MP_O8/src/RegisterSymmetries.cc5
-rw-r--r--ML_BSSN_O2/interface.ccl12
-rw-r--r--ML_BSSN_O2/param.ccl96
-rw-r--r--ML_BSSN_O2/schedule.ccl44
-rw-r--r--ML_BSSN_O2/src/Boundaries.cc104
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_Advect.cc79
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_Dissipation.cc46
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_InitRHS.cc6
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_Minkowski.cc8
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc982
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc136
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.cc9
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc11
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc96
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_constraints2.cc4
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.cc8
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBase.cc4
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.cc8
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.cc8
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseFakeDtLapseShift.cc8
-rw-r--r--ML_BSSN_O2/src/RegisterMoL.cc1
-rw-r--r--ML_BSSN_O2/src/RegisterSymmetries.cc5
-rw-r--r--ML_BSSN_O8/interface.ccl12
-rw-r--r--ML_BSSN_O8/param.ccl96
-rw-r--r--ML_BSSN_O8/schedule.ccl44
-rw-r--r--ML_BSSN_O8/src/Boundaries.cc104
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_Advect.cc79
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_Dissipation.cc46
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_InitRHS.cc6
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_Minkowski.cc8
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc982
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc136
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.cc9
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc11
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc96
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_constraints2.cc4
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.cc8
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBase.cc4
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.cc8
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.cc8
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseFakeDtLapseShift.cc8
-rw-r--r--ML_BSSN_O8/src/RegisterMoL.cc1
-rw-r--r--ML_BSSN_O8/src/RegisterSymmetries.cc5
-rw-r--r--ML_BSSN_UPW/interface.ccl12
-rw-r--r--ML_BSSN_UPW/param.ccl96
-rw-r--r--ML_BSSN_UPW/schedule.ccl44
-rw-r--r--ML_BSSN_UPW/src/Boundaries.cc104
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_Advect.cc46
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_Dissipation.cc46
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_InitRHS.cc6
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_Minkowski.cc8
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc982
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc136
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_RHSStaticBoundary.cc9
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc11
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc96
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_constraints2.cc4
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_convertFromADMBase.cc8
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBase.cc4
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShift.cc8
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary.cc8
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift.cc8
-rw-r--r--ML_BSSN_UPW/src/RegisterMoL.cc1
-rw-r--r--ML_BSSN_UPW/src/RegisterSymmetries.cc5
-rw-r--r--ML_WaveToyFO/configuration.ccl4
-rw-r--r--ML_WaveToyFO/param.ccl6
-rw-r--r--ML_WaveToyFO/schedule.ccl32
-rw-r--r--ML_WaveToyFO/src/WTFO_Gaussian.cc20
-rw-r--r--ML_WaveToyFO/src/WTFO_RHS.cc22
-rw-r--r--ML_WaveToyFO/src/WTFO_constraints.cc19
-rw-r--r--ML_WaveToyFO/src/make.code.defn2
142 files changed, 9655 insertions, 1449 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/interface.ccl b/ML_BSSN/interface.ccl
index cf4a371..48564b5 100644
--- a/ML_BSSN/interface.ccl
+++ b/ML_BSSN/interface.ccl
@@ -127,6 +127,12 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "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
@@ -197,6 +203,12 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "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
diff --git a/ML_BSSN/param.ccl b/ML_BSSN/param.ccl
index ab31945..0d6331c 100644
--- a/ML_BSSN/param.ccl
+++ b/ML_BSSN/param.ccl
@@ -54,6 +54,18 @@ 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"
{
"*:*" :: ""
@@ -126,28 +138,28 @@ CCTK_REAL EpsDiss "Dissipation strength"
} 0
restricted:
-CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
+CCTK_INT conformalMethod "Treatment of conformal factor"
{
*:* :: ""
-} 2
+} 0
restricted:
-CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
+CCTK_INT GammaShift "Covariant shift term in Gamma"
{
*:* :: ""
} 0
restricted:
-CCTK_INT conformalMethod "Treatment of conformal factor"
+CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
{
*:* :: ""
-} 0
+} 2
restricted:
-CCTK_INT fdOrder "fdOrder"
+CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
{
*:* :: ""
-} 4
+} 0
restricted:
CCTK_INT harmonicShift "Whether to use the harmonic shift"
@@ -155,6 +167,12 @@ CCTK_INT harmonicShift "Whether to use the harmonic shift"
*:* :: ""
} 0
+restricted:
+CCTK_INT fdOrder "fdOrder"
+{
+ *:* :: ""
+} 4
+
private:
KEYWORD my_initial_data "my_initial_data"
{
@@ -215,8 +233,8 @@ KEYWORD apply_dissipation "Whether to apply dissipation to the RHSs"
restricted:
CCTK_INT ML_BSSN_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars STEERABLE=RECOVER
{
- 25:25 :: "Number of evolved variables used by this thorn"
-} 25
+ 26:26 :: "Number of evolved variables used by this thorn"
+} 26
restricted:
CCTK_INT ML_BSSN_MaxNumArrayEvolvedVars "Number of Array evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_ArrayEvolved_Vars STEERABLE=RECOVER
@@ -747,6 +765,18 @@ KEYWORD beta3_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -855,6 +885,18 @@ KEYWORD ML_shift_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -1011,6 +1053,12 @@ CCTK_REAL beta3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS
} 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"
@@ -1065,6 +1113,12 @@ CCTK_REAL ML_shift_bound_speed "characteristic speed at boundary" STEERABLE=ALWA
} 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"
@@ -1215,6 +1269,12 @@ CCTK_REAL beta3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1269,6 +1329,12 @@ CCTK_REAL ML_shift_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1419,6 +1485,12 @@ CCTK_REAL beta3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
@@ -1473,6 +1545,12 @@ CCTK_REAL ML_shift_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
diff --git a/ML_BSSN/schedule.ccl b/ML_BSSN/schedule.ccl
index 3e657c9..1765c2a 100644
--- a/ML_BSSN/schedule.ccl
+++ b/ML_BSSN/schedule.ccl
@@ -132,6 +132,19 @@ if (timelevels == 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)
@@ -249,6 +262,19 @@ if (rhs_timelevels == 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)
@@ -286,6 +312,7 @@ if (CCTK_EQUALS(my_initial_data, "Minkowski"))
WRITES: ML_BSSN::ML_log_confac
WRITES: ML_BSSN::ML_metric
WRITES: ML_BSSN::ML_shift
+ WRITES: ML_BSSN::ML_Theta
WRITES: ML_BSSN::ML_trace_curv
} "ML_BSSN_Minkowski"
}
@@ -307,6 +334,7 @@ if (CCTK_EQUALS(my_initial_data, "ADMBase"))
WRITES: ML_BSSN::ML_log_confac
WRITES: ML_BSSN::ML_metric
WRITES: ML_BSSN::ML_shift
+ WRITES: ML_BSSN::ML_Theta
WRITES: ML_BSSN::ML_trace_curv
} "ML_BSSN_convertFromADMBase"
}
@@ -358,6 +386,7 @@ schedule ML_BSSN_RHS1 IN ML_BSSN_evolCalcGroup
READS: ML_BSSN::ML_log_confac
READS: ML_BSSN::ML_metric
READS: ML_BSSN::ML_shift
+ READS: ML_BSSN::ML_Theta
READS: ML_BSSN::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -369,6 +398,7 @@ schedule ML_BSSN_RHS1 IN ML_BSSN_evolCalcGroup
WRITES: ML_BSSN::ML_log_confacrhs
WRITES: ML_BSSN::ML_metricrhs
WRITES: ML_BSSN::ML_shiftrhs
+ WRITES: ML_BSSN::ML_Thetarhs
WRITES: ML_BSSN::ML_trace_curvrhs
} "ML_BSSN_RHS1"
@@ -383,6 +413,7 @@ schedule ML_BSSN_RHS2 IN ML_BSSN_evolCalcGroup
READS: ML_BSSN::ML_log_confac
READS: ML_BSSN::ML_metric
READS: ML_BSSN::ML_shift
+ READS: ML_BSSN::ML_Theta
READS: ML_BSSN::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -412,6 +443,8 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
READS: ML_BSSN::ML_metricrhs
READS: ML_BSSN::ML_shift
READS: ML_BSSN::ML_shiftrhs
+ READS: ML_BSSN::ML_Theta
+ READS: ML_BSSN::ML_Thetarhs
READS: ML_BSSN::ML_trace_curv
READS: ML_BSSN::ML_trace_curvrhs
WRITES: ML_BSSN::ML_curvrhs
@@ -422,6 +455,7 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
WRITES: ML_BSSN::ML_log_confacrhs
WRITES: ML_BSSN::ML_metricrhs
WRITES: ML_BSSN::ML_shiftrhs
+ WRITES: ML_BSSN::ML_Thetarhs
WRITES: ML_BSSN::ML_trace_curvrhs
} "ML_BSSN_Dissipation"
}
@@ -445,6 +479,8 @@ schedule ML_BSSN_Advect IN ML_BSSN_evolCalcGroup AFTER (ML_BSSN_RHS1 ML_BSSN_RHS
READS: ML_BSSN::ML_metricrhs
READS: ML_BSSN::ML_shift
READS: ML_BSSN::ML_shiftrhs
+ READS: ML_BSSN::ML_Theta
+ READS: ML_BSSN::ML_Thetarhs
READS: ML_BSSN::ML_trace_curv
READS: ML_BSSN::ML_trace_curvrhs
WRITES: ML_BSSN::ML_curvrhs
@@ -455,6 +491,7 @@ schedule ML_BSSN_Advect IN ML_BSSN_evolCalcGroup AFTER (ML_BSSN_RHS1 ML_BSSN_RHS
WRITES: ML_BSSN::ML_log_confacrhs
WRITES: ML_BSSN::ML_metricrhs
WRITES: ML_BSSN::ML_shiftrhs
+ WRITES: ML_BSSN::ML_Thetarhs
WRITES: ML_BSSN::ML_trace_curvrhs
} "ML_BSSN_Advect"
@@ -469,6 +506,7 @@ schedule ML_BSSN_InitRHS AT analysis BEFORE ML_BSSN_evolCalcGroup
WRITES: ML_BSSN::ML_log_confacrhs
WRITES: ML_BSSN::ML_metricrhs
WRITES: ML_BSSN::ML_shiftrhs
+ WRITES: ML_BSSN::ML_Thetarhs
WRITES: ML_BSSN::ML_trace_curvrhs
} "ML_BSSN_InitRHS"
@@ -486,6 +524,7 @@ if (CCTK_EQUALS(my_rhs_boundary_condition, "static"))
WRITES: ML_BSSN::ML_log_confacrhs
WRITES: ML_BSSN::ML_metricrhs
WRITES: ML_BSSN::ML_shiftrhs
+ WRITES: ML_BSSN::ML_Thetarhs
WRITES: ML_BSSN::ML_trace_curvrhs
} "ML_BSSN_RHSStaticBoundary"
}
@@ -514,6 +553,7 @@ if (CCTK_EQUALS(my_boundary_condition, "Minkowski"))
WRITES: ML_BSSN::ML_log_confac
WRITES: ML_BSSN::ML_metric
WRITES: ML_BSSN::ML_shift
+ WRITES: ML_BSSN::ML_Theta
WRITES: ML_BSSN::ML_trace_curv
} "ML_BSSN_boundary"
}
@@ -551,6 +591,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN::ML_log_confac
READS: ML_BSSN::ML_metric
READS: ML_BSSN::ML_shift
+ READS: ML_BSSN::ML_Theta
READS: ML_BSSN::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -571,6 +612,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN::ML_lapse
READS: ML_BSSN::ML_metric
READS: ML_BSSN::ML_shift
+ READS: ML_BSSN::ML_Theta
READS: ML_BSSN::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -591,6 +633,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection"))
READS: ML_BSSN::ML_lapse
READS: ML_BSSN::ML_metric
READS: ML_BSSN::ML_shift
+ READS: ML_BSSN::ML_Theta
READS: ML_BSSN::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -701,6 +744,7 @@ schedule ML_BSSN_SelectBoundConds in MoL_PostStep
SYNC: ML_log_confac
SYNC: ML_metric
SYNC: ML_shift
+ SYNC: ML_Theta
SYNC: ML_trace_curv
} "select boundary conditions"
diff --git a/ML_BSSN/src/Boundaries.cc b/ML_BSSN/src/Boundaries.cc
index a7c5010..c96e437 100644
--- a/ML_BSSN/src/Boundaries.cc
+++ b/ML_BSSN/src/Boundaries.cc
@@ -120,6 +120,17 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register ML_shift_bound BC for ML_BSSN::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_BSSN::ML_Theta", ML_Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register ML_Theta_bound BC for ML_BSSN::ML_Theta!");
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "none" ) ||
CCTK_EQUALS(ML_trace_curv_bound, "static") ||
CCTK_EQUALS(ML_trace_curv_bound, "flat" ) ||
@@ -395,6 +406,17 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register beta3_bound BC for ML_BSSN::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_BSSN::Theta", Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Theta_bound BC for ML_BSSN::Theta!");
+ }
+
if (CCTK_EQUALS(trK_bound, "none" ) ||
CCTK_EQUALS(trK_bound, "static") ||
CCTK_EQUALS(trK_bound, "flat" ) ||
@@ -558,6 +580,25 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN::ML_Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1033,6 +1074,25 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN::Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1188,6 +1248,23 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN::ML_Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Scalar BC for ML_BSSN::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1613,6 +1690,23 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN::Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Error in registering Scalar BC for ML_BSSN::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1675,6 +1769,11 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN::ML_shift_bound_limit = 0.0
#$bound$#ML_BSSN::ML_shift_bound_scalar = 0.0
+#$bound$#ML_BSSN::ML_Theta_bound = "skip"
+#$bound$#ML_BSSN::ML_Theta_bound_speed = 1.0
+#$bound$#ML_BSSN::ML_Theta_bound_limit = 0.0
+#$bound$#ML_BSSN::ML_Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN::ML_trace_curv_bound = "skip"
#$bound$#ML_BSSN::ML_trace_curv_bound_speed = 1.0
#$bound$#ML_BSSN::ML_trace_curv_bound_limit = 0.0
@@ -1800,6 +1899,11 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN::beta3_bound_limit = 0.0
#$bound$#ML_BSSN::beta3_bound_scalar = 0.0
+#$bound$#ML_BSSN::Theta_bound = "skip"
+#$bound$#ML_BSSN::Theta_bound_speed = 1.0
+#$bound$#ML_BSSN::Theta_bound_limit = 0.0
+#$bound$#ML_BSSN::Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN::trK_bound = "skip"
#$bound$#ML_BSSN::trK_bound_speed = 1.0
#$bound$#ML_BSSN::trK_bound_limit = 0.0
diff --git a/ML_BSSN/src/ML_BSSN_Advect.cc b/ML_BSSN/src/ML_BSSN_Advect.cc
index 2543f21..15053d6 100644
--- a/ML_BSSN/src/ML_BSSN_Advect.cc
+++ b/ML_BSSN/src/ML_BSSN_Advect.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_Advect_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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]);
@@ -431,6 +436,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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;
@@ -585,6 +596,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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]);
@@ -738,6 +755,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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]);
@@ -891,6 +914,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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]);
@@ -1044,6 +1073,12 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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]);
@@ -1099,6 +1134,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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;
@@ -1124,6 +1160,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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;
@@ -1149,6 +1186,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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;
@@ -1174,6 +1212,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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;
@@ -1199,6 +1238,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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;
@@ -1224,6 +1264,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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;
@@ -1294,6 +1335,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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)));
@@ -1369,6 +1413,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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)));
@@ -1444,6 +1491,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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)));
@@ -1519,6 +1569,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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)));
@@ -1594,6 +1647,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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)));
@@ -1669,6 +1725,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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)));
@@ -1725,6 +1784,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti1phi = PDupwindNthAnti1phi;
+ JacPDupwindNthAnti1Theta = PDupwindNthAnti1Theta;
+
JacPDupwindNthAnti1trK = PDupwindNthAnti1trK;
JacPDupwindNthAnti1Xt1 = PDupwindNthAnti1Xt1;
@@ -1775,6 +1836,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm1phi = PDupwindNthSymm1phi;
+ JacPDupwindNthSymm1Theta = PDupwindNthSymm1Theta;
+
JacPDupwindNthSymm1trK = PDupwindNthSymm1trK;
JacPDupwindNthSymm1Xt1 = PDupwindNthSymm1Xt1;
@@ -1825,6 +1888,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti2phi = PDupwindNthAnti2phi;
+ JacPDupwindNthAnti2Theta = PDupwindNthAnti2Theta;
+
JacPDupwindNthAnti2trK = PDupwindNthAnti2trK;
JacPDupwindNthAnti2Xt1 = PDupwindNthAnti2Xt1;
@@ -1875,6 +1940,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm2phi = PDupwindNthSymm2phi;
+ JacPDupwindNthSymm2Theta = PDupwindNthSymm2Theta;
+
JacPDupwindNthSymm2trK = PDupwindNthSymm2trK;
JacPDupwindNthSymm2Xt1 = PDupwindNthSymm2Xt1;
@@ -1925,6 +1992,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthAnti3phi = PDupwindNthAnti3phi;
+ JacPDupwindNthAnti3Theta = PDupwindNthAnti3Theta;
+
JacPDupwindNthAnti3trK = PDupwindNthAnti3trK;
JacPDupwindNthAnti3Xt1 = PDupwindNthAnti3Xt1;
@@ -1975,6 +2044,8 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
JacPDupwindNthSymm3phi = PDupwindNthSymm3phi;
+ JacPDupwindNthSymm3Theta = PDupwindNthSymm3Theta;
+
JacPDupwindNthSymm3trK = PDupwindNthSymm3trK;
JacPDupwindNthSymm3Xt1 = PDupwindNthSymm3Xt1;
@@ -2014,6 +2085,9 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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,IfThen(conformalMethod ==
+ 2,kmadd(beta1L,JacPDupwindNthAnti1Theta,kmadd(beta2L,JacPDupwindNthAnti2Theta,kmadd(beta3L,JacPDupwindNthAnti3Theta,kmadd(JacPDupwindNthSymm1Theta,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Theta,kfabs(beta2L),kmul(JacPDupwindNthSymm3Theta,kfabs(beta3L))))))),ToReal(0)));
+
trKrhsL =
kadd(trKrhsL,kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L))))))));
@@ -2082,6 +2156,7 @@ static void ML_BSSN_Advect_Body(cGH const * restrict const cctkGH, int const dir
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);
@@ -2123,9 +2198,11 @@ extern "C" void ML_BSSN_Advect(CCTK_ARGUMENTS)
"ML_BSSN::ML_metricrhs",
"ML_BSSN::ML_shift",
"ML_BSSN::ML_shiftrhs",
+ "ML_BSSN::ML_Theta",
+ "ML_BSSN::ML_Thetarhs",
"ML_BSSN::ML_trace_curv",
"ML_BSSN::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Advect", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Advect", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_Dissipation.cc b/ML_BSSN/src/ML_BSSN_Dissipation.cc
index 98378a0..40ff98c 100644
--- a/ML_BSSN/src/ML_BSSN_Dissipation.cc
+++ b/ML_BSSN/src/ML_BSSN_Dissipation.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_Dissipation_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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]);
@@ -368,6 +373,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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;
@@ -447,6 +455,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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]);
@@ -525,6 +536,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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]);
@@ -603,6 +617,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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]);
@@ -681,6 +698,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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]);
@@ -718,6 +738,7 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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;
@@ -743,6 +764,7 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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;
@@ -768,6 +790,7 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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;
@@ -838,6 +861,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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)));
@@ -913,6 +939,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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)));
@@ -988,6 +1017,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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)));
@@ -1044,6 +1076,8 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
JacPDdissipationNth1phi = PDdissipationNth1phi;
+ JacPDdissipationNth1Theta = PDdissipationNth1Theta;
+
JacPDdissipationNth1trK = PDdissipationNth1trK;
JacPDdissipationNth1Xt1 = PDdissipationNth1Xt1;
@@ -1094,6 +1128,8 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
JacPDdissipationNth2phi = PDdissipationNth2phi;
+ JacPDdissipationNth2Theta = PDdissipationNth2Theta;
+
JacPDdissipationNth2trK = PDdissipationNth2trK;
JacPDdissipationNth2Xt1 = PDdissipationNth2Xt1;
@@ -1144,6 +1180,8 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
JacPDdissipationNth3phi = PDdissipationNth3phi;
+ JacPDdissipationNth3Theta = PDdissipationNth3Theta;
+
JacPDdissipationNth3trK = PDdissipationNth3trK;
JacPDdissipationNth3Xt1 = PDdissipationNth3Xt1;
@@ -1189,6 +1227,9 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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))));
@@ -1257,6 +1298,7 @@ static void ML_BSSN_Dissipation_Body(cGH const * restrict const cctkGH, int cons
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);
@@ -1298,9 +1340,11 @@ extern "C" void ML_BSSN_Dissipation(CCTK_ARGUMENTS)
"ML_BSSN::ML_metricrhs",
"ML_BSSN::ML_shift",
"ML_BSSN::ML_shiftrhs",
+ "ML_BSSN::ML_Theta",
+ "ML_BSSN::ML_Thetarhs",
"ML_BSSN::ML_trace_curv",
"ML_BSSN::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Dissipation", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Dissipation", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_InitRHS.cc b/ML_BSSN/src/ML_BSSN_InitRHS.cc
index 0f36ec8..88a2399 100644
--- a/ML_BSSN/src/ML_BSSN_InitRHS.cc
+++ b/ML_BSSN/src/ML_BSSN_InitRHS.cc
@@ -256,6 +256,8 @@ static void ML_BSSN_InitRHS_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_InitRHS_Body(cGH const * restrict const cctkGH, int const di
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_InitRHS(CCTK_ARGUMENTS)
"ML_BSSN::ML_log_confacrhs",
"ML_BSSN::ML_metricrhs",
"ML_BSSN::ML_shiftrhs",
+ "ML_BSSN::ML_Thetarhs",
"ML_BSSN::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_InitRHS", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_InitRHS", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_Minkowski.cc b/ML_BSSN/src/ML_BSSN_Minkowski.cc
index f1033d0..1aacb7f 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);
@@ -256,6 +256,8 @@ static void ML_BSSN_Minkowski_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_Minkowski_Body(cGH const * restrict const cctkGH, int const
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_Minkowski(CCTK_ARGUMENTS)
"ML_BSSN::ML_log_confac",
"ML_BSSN::ML_metric",
"ML_BSSN::ML_shift",
+ "ML_BSSN::ML_Theta",
"ML_BSSN::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Minkowski", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_Minkowski", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_RHS1.cc b/ML_BSSN/src/ML_BSSN_RHS1.cc
index 3775bb7..1868422 100644
--- a/ML_BSSN/src/ML_BSSN_RHS1.cc
+++ b/ML_BSSN/src/ML_BSSN_RHS1.cc
@@ -50,6 +50,9 @@ extern "C" void ML_BSSN_RHS1_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curvrhs.");
@@ -254,6 +257,7 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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]);
@@ -363,27 +367,81 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)
{
@@ -427,27 +485,81 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
PDstandardNth1gt11 = PDstandardNthfdOrder21(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder22(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder23(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder211(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder222(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder233(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder212(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder213(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder223(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder21(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder22(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder23(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder211(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder222(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder233(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder212(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder213(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder223(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder21(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder22(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder23(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder211(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder222(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder233(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder212(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder213(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder223(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder21(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder22(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder23(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder211(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder222(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder233(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder212(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder213(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder223(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder21(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder22(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder23(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder211(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder222(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder233(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder212(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder213(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder223(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder21(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder22(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder23(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder211(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder222(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder233(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder212(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder213(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder223(&gt33[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:
@@ -490,27 +602,81 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
PDstandardNth1gt11 = PDstandardNthfdOrder41(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder42(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder43(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder411(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder422(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder433(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder412(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder413(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder423(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder41(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder42(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder43(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder411(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder422(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder433(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder412(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder413(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder423(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder41(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder42(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder43(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder411(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder422(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder433(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder412(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder413(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder423(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder41(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder42(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder43(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder411(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder422(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder433(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder412(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder413(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder423(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder41(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder42(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder43(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder411(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder422(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder433(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder412(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder413(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder423(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder41(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder42(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder43(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder411(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder422(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder433(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder412(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder413(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder423(&gt33[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:
@@ -553,27 +719,81 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
PDstandardNth1gt11 = PDstandardNthfdOrder61(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder62(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder63(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder611(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder622(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder633(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder612(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder613(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder623(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder61(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder62(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder63(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder611(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder622(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder633(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder612(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder613(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder623(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder61(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder62(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder63(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder611(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder622(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder633(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder612(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder613(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder623(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder61(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder62(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder63(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder611(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder622(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder633(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder612(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder613(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder623(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder61(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder62(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder63(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder611(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder622(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder633(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder612(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder613(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder623(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder61(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder62(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder63(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder611(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder622(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder633(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder612(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder613(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder623(&gt33[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:
@@ -616,27 +836,81 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
PDstandardNth1gt11 = PDstandardNthfdOrder81(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder82(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder83(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder811(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder822(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder833(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder812(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder813(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder823(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder81(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder82(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder83(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder811(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder822(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder833(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder812(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder813(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder823(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder81(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder82(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder83(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder811(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder822(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder833(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder812(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder813(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder823(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder81(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder82(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder83(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder811(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder822(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder833(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder812(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder813(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder823(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder81(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder82(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder83(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder811(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder822(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder833(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder812(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder813(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder823(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder81(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder82(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder83(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder811(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder822(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder833(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder812(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder813(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder823(&gt33[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;
}
@@ -651,14 +925,35 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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;
@@ -670,19 +965,43 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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;
@@ -694,19 +1013,42 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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;
@@ -718,7 +1060,11 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)
{
@@ -755,9 +1101,21 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)));
@@ -791,9 +1149,21 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)));
@@ -827,9 +1197,21 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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))))))));
@@ -842,6 +1224,27 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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))))))));
@@ -854,6 +1257,27 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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))))))));
@@ -866,6 +1290,27 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)))))));
@@ -878,6 +1323,27 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)))))));
@@ -890,6 +1356,27 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)))))));
@@ -902,6 +1389,24 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)))))));
@@ -914,6 +1419,27 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)))))));
@@ -926,6 +1452,24 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)))))));
@@ -937,6 +1481,24 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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
{
@@ -962,8 +1524,16 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth1phi = PDstandardNth1phi;
+ JacPDstandardNth1Theta = PDstandardNth1Theta;
+
JacPDstandardNth1trK = PDstandardNth1trK;
+ JacPDstandardNth1Xt1 = PDstandardNth1Xt1;
+
+ JacPDstandardNth1Xt2 = PDstandardNth1Xt2;
+
+ JacPDstandardNth1Xt3 = PDstandardNth1Xt3;
+
JacPDstandardNth2alpha = PDstandardNth2alpha;
JacPDstandardNth2beta1 = PDstandardNth2beta1;
@@ -986,8 +1556,16 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth2phi = PDstandardNth2phi;
+ JacPDstandardNth2Theta = PDstandardNth2Theta;
+
JacPDstandardNth2trK = PDstandardNth2trK;
+ JacPDstandardNth2Xt1 = PDstandardNth2Xt1;
+
+ JacPDstandardNth2Xt2 = PDstandardNth2Xt2;
+
+ JacPDstandardNth2Xt3 = PDstandardNth2Xt3;
+
JacPDstandardNth3alpha = PDstandardNth3alpha;
JacPDstandardNth3beta1 = PDstandardNth3beta1;
@@ -1010,8 +1588,16 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth3phi = PDstandardNth3phi;
+ JacPDstandardNth3Theta = PDstandardNth3Theta;
+
JacPDstandardNth3trK = PDstandardNth3trK;
+ JacPDstandardNth3Xt1 = PDstandardNth3Xt1;
+
+ JacPDstandardNth3Xt2 = PDstandardNth3Xt2;
+
+ JacPDstandardNth3Xt3 = PDstandardNth3Xt3;
+
JacPDstandardNth11alpha = PDstandardNth11alpha;
JacPDstandardNth11beta1 = PDstandardNth11beta1;
@@ -1020,6 +1606,20 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth11beta3 = PDstandardNth11beta3;
+ JacPDstandardNth11gt11 = PDstandardNth11gt11;
+
+ JacPDstandardNth11gt12 = PDstandardNth11gt12;
+
+ JacPDstandardNth11gt13 = PDstandardNth11gt13;
+
+ JacPDstandardNth11gt22 = PDstandardNth11gt22;
+
+ JacPDstandardNth11gt23 = PDstandardNth11gt23;
+
+ JacPDstandardNth11gt33 = PDstandardNth11gt33;
+
+ JacPDstandardNth11phi = PDstandardNth11phi;
+
JacPDstandardNth22alpha = PDstandardNth22alpha;
JacPDstandardNth22beta1 = PDstandardNth22beta1;
@@ -1028,6 +1628,20 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth22beta3 = PDstandardNth22beta3;
+ JacPDstandardNth22gt11 = PDstandardNth22gt11;
+
+ JacPDstandardNth22gt12 = PDstandardNth22gt12;
+
+ JacPDstandardNth22gt13 = PDstandardNth22gt13;
+
+ JacPDstandardNth22gt22 = PDstandardNth22gt22;
+
+ JacPDstandardNth22gt23 = PDstandardNth22gt23;
+
+ JacPDstandardNth22gt33 = PDstandardNth22gt33;
+
+ JacPDstandardNth22phi = PDstandardNth22phi;
+
JacPDstandardNth33alpha = PDstandardNth33alpha;
JacPDstandardNth33beta1 = PDstandardNth33beta1;
@@ -1036,6 +1650,20 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth33beta3 = PDstandardNth33beta3;
+ JacPDstandardNth33gt11 = PDstandardNth33gt11;
+
+ JacPDstandardNth33gt12 = PDstandardNth33gt12;
+
+ JacPDstandardNth33gt13 = PDstandardNth33gt13;
+
+ JacPDstandardNth33gt22 = PDstandardNth33gt22;
+
+ JacPDstandardNth33gt23 = PDstandardNth33gt23;
+
+ JacPDstandardNth33gt33 = PDstandardNth33gt33;
+
+ JacPDstandardNth33phi = PDstandardNth33phi;
+
JacPDstandardNth12alpha = PDstandardNth12alpha;
JacPDstandardNth12beta1 = PDstandardNth12beta1;
@@ -1044,6 +1672,20 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth12beta3 = PDstandardNth12beta3;
+ JacPDstandardNth12gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth12gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth12gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth12gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth12gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth12gt33 = PDstandardNth12gt33;
+
+ JacPDstandardNth12phi = PDstandardNth12phi;
+
JacPDstandardNth13alpha = PDstandardNth13alpha;
JacPDstandardNth13beta1 = PDstandardNth13beta1;
@@ -1052,6 +1694,20 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth13beta3 = PDstandardNth13beta3;
+ JacPDstandardNth13gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth13gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth13gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth13gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth13gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth13gt33 = PDstandardNth13gt33;
+
+ JacPDstandardNth13phi = PDstandardNth13phi;
+
JacPDstandardNth21alpha = PDstandardNth12alpha;
JacPDstandardNth21beta1 = PDstandardNth12beta1;
@@ -1060,6 +1716,18 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth21beta3 = PDstandardNth12beta3;
+ JacPDstandardNth21gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth21gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth21gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth21gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth21gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth21gt33 = PDstandardNth12gt33;
+
JacPDstandardNth23alpha = PDstandardNth23alpha;
JacPDstandardNth23beta1 = PDstandardNth23beta1;
@@ -1068,6 +1736,20 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth23beta3 = PDstandardNth23beta3;
+ JacPDstandardNth23gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth23gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth23gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth23gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth23gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth23gt33 = PDstandardNth23gt33;
+
+ JacPDstandardNth23phi = PDstandardNth23phi;
+
JacPDstandardNth31alpha = PDstandardNth13alpha;
JacPDstandardNth31beta1 = PDstandardNth13beta1;
@@ -1076,6 +1758,18 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth31beta3 = PDstandardNth13beta3;
+ JacPDstandardNth31gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth31gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth31gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth31gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth31gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth31gt33 = PDstandardNth13gt33;
+
JacPDstandardNth32alpha = PDstandardNth23alpha;
JacPDstandardNth32beta1 = PDstandardNth23beta1;
@@ -1083,6 +1777,18 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
JacPDstandardNth32beta2 = PDstandardNth23beta2;
JacPDstandardNth32beta3 = PDstandardNth23beta3;
+
+ JacPDstandardNth32gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth32gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth32gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth32gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth32gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth32gt33 = PDstandardNth23gt33;
}
CCTK_REAL_VEC detgt = ToReal(1);
@@ -1150,6 +1856,87 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)));
@@ -1213,8 +2000,79 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
+ 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);
@@ -1222,6 +2080,45 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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)));
@@ -1267,10 +2164,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC em4phi = INV(e4phi);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
+
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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,35 +2197,53 @@ 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))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3)),ToReal(-3),kmadd(gt11L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt11L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At11L,ToReal(3)))))));
CCTK_REAL_VEC gt12rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At12L,ToReal(-6)),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmadd(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3),kmul(alphaL,kmadd(At12L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt12L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt13rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At13L,ToReal(-6)),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At13L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt13L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt22rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmul(At22L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt22L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At22L,ToReal(3)))))));
CCTK_REAL_VEC gt23rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At23L,ToReal(-6)),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At23L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt23L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt33rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmul(At33L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt33L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At33L,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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmul(gtu33,JacPDstandardNth33beta1))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmadd(gtu33,JacPDstandardNth33beta1,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1Theta,kmadd(gtu12,JacPDstandardNth2Theta,kmul(gtu13,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z1,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmul(gtu33,JacPDstandardNth33beta2)))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(JacPDstandardNth21beta2,ToReal(3),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu12,JacPDstandardNth21beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmadd(gtu33,JacPDstandardNth33beta2,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1Theta,kmadd(gtu22,JacPDstandardNth2Theta,kmul(gtu23,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z2,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kmadd(JacPDstandardNth12beta2,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),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),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmul(gtu23,JacPDstandardNth32beta3)))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,JacPDstandardNth1alpha,kmadd(Atu23,JacPDstandardNth2alpha,kmul(Atu33,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta3,Xtn1,kmul(JacPDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmadd(gtu23,JacPDstandardNth32beta3,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1Theta,kmadd(gtu23,JacPDstandardNth2Theta,kmul(gtu33,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z3,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0)))))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
CCTK_REAL_VEC Xt1rhsL = dotXt1;
@@ -1323,16 +2251,23 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL_VEC Xt3rhsL = dotXt3;
- CCTK_REAL_VEC dottrK =
- kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha))))))))))));
+ CCTK_REAL_VEC dotTheta = IfThen(conformalMethod ==
+ 2,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)))),ToReal(0));
+
+ CCTK_REAL_VEC ThetarhsL = dotTheta;
+
+ CCTK_REAL_VEC dottrK = kadd(IfThen(conformalMethod ==
+ 2,kmsub(kadd(dotTheta,kmadd(JacPDstandardNth1alpha,Z1,kmadd(JacPDstandardNth2alpha,Z2,kmul(JacPDstandardNth3alpha,Z3)))),ToReal(2),kmul(alphaL,kmul(ThetaL,kmul(ToReal(dampk1),kadd(ToReal(-1),ToReal(dampk2)))))),ToReal(0)),kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha)))))))))))));
CCTK_REAL_VEC trKrhsL = dottrK;
CCTK_REAL_VEC alpharhsL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmadd(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),trKL),ksub(ToReal(1),ToReal(LapseACoeff)))))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kadd(trKL,kmsub(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)))),ksub(ToReal(1),ToReal(LapseACoeff)))))));
- CCTK_REAL_VEC ArhsL =
- kmul(knmsub(AL,ToReal(AlphaDriver),dottrK),ToReal(LapseACoeff));
+ CCTK_REAL_VEC ArhsL = kneg(kmul(kadd(IfThen(conformalMethod ==
+ 2,kmul(dotTheta,ToReal(2)),ToReal(0)),kmsub(AL,ToReal(AlphaDriver),dottrK)),ToReal(LapseACoeff)));
CCTK_REAL_VEC eta =
kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius));
@@ -1393,6 +2328,7 @@ static void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir,
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);
@@ -1435,9 +2371,11 @@ extern "C" void ML_BSSN_RHS1(CCTK_ARGUMENTS)
"ML_BSSN::ML_metricrhs",
"ML_BSSN::ML_shift",
"ML_BSSN::ML_shiftrhs",
+ "ML_BSSN::ML_Theta",
+ "ML_BSSN::ML_Thetarhs",
"ML_BSSN::ML_trace_curv",
"ML_BSSN::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHS1", 19, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHS1", 21, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_RHS2.cc b/ML_BSSN/src/ML_BSSN_RHS2.cc
index fa76e9b..cb6b548 100644
--- a/ML_BSSN/src/ML_BSSN_RHS2.cc
+++ b/ML_BSSN/src/ML_BSSN_RHS2.cc
@@ -228,6 +228,7 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir,
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]);
@@ -1626,6 +1627,59 @@ 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 Z1;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1698,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 +1707,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,46 +1773,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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))))));
@@ -1785,22 +1816,34 @@ static void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir,
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(Atm11,ToReal(6))),kmul(em4phi,kmul(kmadd(g11,kmul(trS,ToReal(-8)),kmul(eTxxL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats11,ToReal(3),kmul(g11,trAts)),kmadd(At11L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm22,ToReal(-2),trKL),kmul(em4phi,kmadd(g12,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxyL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At22L,JacPDstandardNth1beta2,kmadd(At23L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth2beta1,kmadd(At13L,JacPDstandardNth2beta3,kmadd(At12L,kmadd(JacPDstandardNth3beta3,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats12,kmadd(g12,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g12,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxyL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm12,kmul(At13L,Atm32)),ToReal(2),kmul(At12L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm22,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g13,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At23L,JacPDstandardNth1beta2,kmadd(At33L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth3beta1,kmadd(At12L,JacPDstandardNth3beta2,kmadd(At13L,kmadd(JacPDstandardNth2beta2,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats13,kmadd(g13,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g13,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm13,kmul(At12L,Atm23)),ToReal(2),kmul(At13L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm22,ToReal(6))),kmul(em4phi,kmul(kmadd(g22,kmul(trS,ToReal(-8)),kmul(eTyyL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats22,ToReal(3),kmul(g22,trAts)),kmadd(At22L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g23,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTyzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At13L,JacPDstandardNth2beta1,kmadd(At33L,JacPDstandardNth2beta3,kmadd(At12L,JacPDstandardNth3beta1,kmadd(At22L,JacPDstandardNth3beta2,kmadd(At23L,kmadd(JacPDstandardNth1beta1,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats23,kmadd(g23,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g23,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTyzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At12L,Atm13,kmul(At22L,Atm23)),ToReal(2),kmul(At23L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(6))),kmul(em4phi,kmul(kmadd(g33,kmul(trS,ToReal(-8)),kmul(eTzzL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats33,ToReal(3),kmul(g33,trAts)),kmadd(At33L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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);
@@ -1838,8 +1881,9 @@ extern "C" void ML_BSSN_RHS2(CCTK_ARGUMENTS)
"ML_BSSN::ML_log_confac",
"ML_BSSN::ML_metric",
"ML_BSSN::ML_shift",
+ "ML_BSSN::ML_Theta",
"ML_BSSN::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHS2", 8, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHS2", 9, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc b/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc
index ba11ca7..72a6512 100644
--- a/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc
+++ b/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curvrhs.");
@@ -292,6 +295,8 @@ static void ML_BSSN_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, in
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, in
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_RHSStaticBoundary(CCTK_ARGUMENTS)
"ML_BSSN::ML_log_confacrhs",
"ML_BSSN::ML_metricrhs",
"ML_BSSN::ML_shiftrhs",
+ "ML_BSSN::ML_Thetarhs",
"ML_BSSN::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHSStaticBoundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_RHSStaticBoundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_boundary.cc b/ML_BSSN/src/ML_BSSN_boundary.cc
index 140da41..4f29d77 100644
--- a/ML_BSSN/src/ML_BSSN_boundary.cc
+++ b/ML_BSSN/src/ML_BSSN_boundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_boundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shift","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Theta","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Theta.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curv","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curv.");
@@ -258,7 +261,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);
@@ -292,6 +295,8 @@ static void ML_BSSN_boundary_Body(cGH const * restrict const cctkGH, int const d
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_boundary_Body(cGH const * restrict const cctkGH, int const d
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_boundary(CCTK_ARGUMENTS)
"ML_BSSN::ML_log_confac",
"ML_BSSN::ML_metric",
"ML_BSSN::ML_shift",
+ "ML_BSSN::ML_Theta",
"ML_BSSN::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_boundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_boundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_constraints1.cc b/ML_BSSN/src/ML_BSSN_constraints1.cc
index 8f89811..67a2e63 100644
--- a/ML_BSSN/src/ML_BSSN_constraints1.cc
+++ b/ML_BSSN/src/ML_BSSN_constraints1.cc
@@ -1430,6 +1430,59 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1501,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 +1510,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,34 +1549,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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)))));
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..68424a2 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);
@@ -315,6 +315,8 @@ static void ML_BSSN_convertFromADMBase_Body(cGH const * restrict const cctkGH, i
CCTK_REAL_VEC At33L =
kmul(em4phi,kmadd(trKL,kmul(g33,ToReal(-0.333333333333333333333333333333)),kzzL));
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = alpL;
CCTK_REAL_VEC beta1L = betaxL;
@@ -342,6 +344,7 @@ static void ML_BSSN_convertFromADMBase_Body(cGH const * restrict const cctkGH, i
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_BSSN_convertFromADMBase);
@@ -373,8 +376,9 @@ extern "C" void ML_BSSN_convertFromADMBase(CCTK_ARGUMENTS)
"ML_BSSN::ML_log_confac",
"ML_BSSN::ML_metric",
"ML_BSSN::ML_shift",
+ "ML_BSSN::ML_Theta",
"ML_BSSN::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertFromADMBase", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertFromADMBase", 11, groups);
switch(fdOrder)
{
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/src/ML_BSSN_convertToADMBaseDtLapseShift.cc b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.cc
index 8af669c..829dd12 100644
--- a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.cc
+++ b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.cc
@@ -230,6 +230,7 @@ static void ML_BSSN_convertToADMBaseDtLapseShift_Body(cGH const * restrict const
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]);
@@ -838,7 +839,9 @@ static void ML_BSSN_convertToADMBaseDtLapseShift_Body(cGH const * restrict const
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kmsub(kmadd(beta1L,JacPDupwindNthAnti1alpha,kmadd(beta2L,JacPDupwindNthAnti2alpha,kmadd(beta3L,JacPDupwindNthAnti3alpha,kmadd(JacPDupwindNthSymm1alpha,kfabs(beta1L),kmadd(JacPDupwindNthSymm2alpha,kfabs(beta2L),kmul(JacPDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ 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),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),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)))));
@@ -887,8 +890,9 @@ extern "C" void ML_BSSN_convertToADMBaseDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN::ML_log_confac",
"ML_BSSN::ML_metric",
"ML_BSSN::ML_shift",
+ "ML_BSSN::ML_Theta",
"ML_BSSN::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShift", 12, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShift", 13, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc
index 67e687d..a357e2c 100644
--- a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc
+++ b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.cc
@@ -223,6 +223,7 @@ static void ML_BSSN_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restri
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]);
@@ -257,7 +258,9 @@ static void ML_BSSN_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restri
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -319,8 +322,9 @@ extern "C" void ML_BSSN_convertToADMBaseDtLapseShiftBoundary(CCTK_ARGUMENTS)
"ML_BSSN::ML_Gamma",
"ML_BSSN::ML_lapse",
"ML_BSSN::ML_shift",
+ "ML_BSSN::ML_Theta",
"ML_BSSN::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShiftBoundary", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseDtLapseShiftBoundary", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc b/ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc
index 5944c01..a8e97d0 100644
--- a/ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc
+++ b/ML_BSSN/src/ML_BSSN_convertToADMBaseFakeDtLapseShift.cc
@@ -208,6 +208,7 @@ static void ML_BSSN_convertToADMBaseFakeDtLapseShift_Body(cGH const * restrict c
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]);
@@ -242,7 +243,9 @@ static void ML_BSSN_convertToADMBaseFakeDtLapseShift_Body(cGH const * restrict c
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -304,8 +307,9 @@ extern "C" void ML_BSSN_convertToADMBaseFakeDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN::ML_Gamma",
"ML_BSSN::ML_lapse",
"ML_BSSN::ML_shift",
+ "ML_BSSN::ML_Theta",
"ML_BSSN::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseFakeDtLapseShift", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_convertToADMBaseFakeDtLapseShift", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN/src/RegisterMoL.cc b/ML_BSSN/src/RegisterMoL.cc
index 30ae282..10d164d 100644
--- a/ML_BSSN/src/RegisterMoL.cc
+++ b/ML_BSSN/src/RegisterMoL.cc
@@ -36,6 +36,7 @@ extern "C" void ML_BSSN_RegisterVars(CCTK_ARGUMENTS)
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::beta1"), CCTK_VarIndex("ML_BSSN::beta1rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::beta2"), CCTK_VarIndex("ML_BSSN::beta2rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::beta3"), CCTK_VarIndex("ML_BSSN::beta3rhs"));
+ ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::Theta"), CCTK_VarIndex("ML_BSSN::Thetarhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::trK"), CCTK_VarIndex("ML_BSSN::trKrhs"));
/* Register all the evolved Array functions with MoL */
diff --git a/ML_BSSN/src/RegisterSymmetries.cc b/ML_BSSN/src/RegisterSymmetries.cc
index 6cdcc39..245a7b3 100644
--- a/ML_BSSN/src/RegisterSymmetries.cc
+++ b/ML_BSSN/src/RegisterSymmetries.cc
@@ -139,6 +139,11 @@ extern "C" void ML_BSSN_RegisterSymmetries(CCTK_ARGUMENTS)
sym[0] = 1;
sym[1] = 1;
sym[2] = 1;
+ SetCartSymVN(cctkGH, sym, "ML_BSSN::Theta");
+
+ sym[0] = 1;
+ sym[1] = 1;
+ sym[2] = 1;
SetCartSymVN(cctkGH, sym, "ML_BSSN::trK");
sym[0] = 1;
diff --git a/ML_BSSN_MP/interface.ccl b/ML_BSSN_MP/interface.ccl
index d6f77d4..d9a4ec0 100644
--- a/ML_BSSN_MP/interface.ccl
+++ b/ML_BSSN_MP/interface.ccl
@@ -127,6 +127,12 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "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
@@ -197,6 +203,12 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "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
diff --git a/ML_BSSN_MP/param.ccl b/ML_BSSN_MP/param.ccl
index 7b3a3d0..6490f0a 100644
--- a/ML_BSSN_MP/param.ccl
+++ b/ML_BSSN_MP/param.ccl
@@ -54,6 +54,18 @@ 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"
{
"*:*" :: ""
@@ -126,28 +138,28 @@ CCTK_REAL EpsDiss "Dissipation strength"
} 0
restricted:
-CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
+CCTK_INT conformalMethod "Treatment of conformal factor"
{
*:* :: ""
-} 2
+} 0
restricted:
-CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
+CCTK_INT GammaShift "Covariant shift term in Gamma"
{
*:* :: ""
} 0
restricted:
-CCTK_INT conformalMethod "Treatment of conformal factor"
+CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
{
*:* :: ""
-} 0
+} 2
restricted:
-CCTK_INT fdOrder "fdOrder"
+CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
{
*:* :: ""
-} 4
+} 0
restricted:
CCTK_INT harmonicShift "Whether to use the harmonic shift"
@@ -155,6 +167,12 @@ CCTK_INT harmonicShift "Whether to use the harmonic shift"
*:* :: ""
} 0
+restricted:
+CCTK_INT fdOrder "fdOrder"
+{
+ *:* :: ""
+} 4
+
private:
KEYWORD my_initial_data "my_initial_data"
{
@@ -215,8 +233,8 @@ KEYWORD apply_dissipation "Whether to apply dissipation to the RHSs"
restricted:
CCTK_INT ML_BSSN_MP_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars STEERABLE=RECOVER
{
- 25:25 :: "Number of evolved variables used by this thorn"
-} 25
+ 26:26 :: "Number of evolved variables used by this thorn"
+} 26
restricted:
CCTK_INT ML_BSSN_MP_MaxNumArrayEvolvedVars "Number of Array evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_ArrayEvolved_Vars STEERABLE=RECOVER
@@ -747,6 +765,18 @@ KEYWORD beta3_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -855,6 +885,18 @@ KEYWORD ML_shift_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -1011,6 +1053,12 @@ CCTK_REAL beta3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS
} 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"
@@ -1065,6 +1113,12 @@ CCTK_REAL ML_shift_bound_speed "characteristic speed at boundary" STEERABLE=ALWA
} 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"
@@ -1215,6 +1269,12 @@ CCTK_REAL beta3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1269,6 +1329,12 @@ CCTK_REAL ML_shift_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1419,6 +1485,12 @@ CCTK_REAL beta3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
@@ -1473,6 +1545,12 @@ CCTK_REAL ML_shift_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
diff --git a/ML_BSSN_MP/schedule.ccl b/ML_BSSN_MP/schedule.ccl
index 76a405a..08fd088 100644
--- a/ML_BSSN_MP/schedule.ccl
+++ b/ML_BSSN_MP/schedule.ccl
@@ -132,6 +132,19 @@ if (timelevels == 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)
@@ -249,6 +262,19 @@ if (rhs_timelevels == 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)
@@ -286,6 +312,7 @@ if (CCTK_EQUALS(my_initial_data, "Minkowski"))
WRITES: ML_BSSN_MP::ML_log_confac
WRITES: ML_BSSN_MP::ML_metric
WRITES: ML_BSSN_MP::ML_shift
+ WRITES: ML_BSSN_MP::ML_Theta
WRITES: ML_BSSN_MP::ML_trace_curv
} "ML_BSSN_MP_Minkowski"
}
@@ -307,6 +334,7 @@ if (CCTK_EQUALS(my_initial_data, "ADMBase"))
WRITES: ML_BSSN_MP::ML_log_confac
WRITES: ML_BSSN_MP::ML_metric
WRITES: ML_BSSN_MP::ML_shift
+ WRITES: ML_BSSN_MP::ML_Theta
WRITES: ML_BSSN_MP::ML_trace_curv
} "ML_BSSN_MP_convertFromADMBase"
}
@@ -358,6 +386,7 @@ schedule ML_BSSN_MP_RHS1 IN ML_BSSN_MP_evolCalcGroup
READS: ML_BSSN_MP::ML_log_confac
READS: ML_BSSN_MP::ML_metric
READS: ML_BSSN_MP::ML_shift
+ READS: ML_BSSN_MP::ML_Theta
READS: ML_BSSN_MP::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -369,6 +398,7 @@ schedule ML_BSSN_MP_RHS1 IN ML_BSSN_MP_evolCalcGroup
WRITES: ML_BSSN_MP::ML_log_confacrhs
WRITES: ML_BSSN_MP::ML_metricrhs
WRITES: ML_BSSN_MP::ML_shiftrhs
+ WRITES: ML_BSSN_MP::ML_Thetarhs
WRITES: ML_BSSN_MP::ML_trace_curvrhs
} "ML_BSSN_MP_RHS1"
@@ -383,6 +413,7 @@ schedule ML_BSSN_MP_RHS2 IN ML_BSSN_MP_evolCalcGroup
READS: ML_BSSN_MP::ML_log_confac
READS: ML_BSSN_MP::ML_metric
READS: ML_BSSN_MP::ML_shift
+ READS: ML_BSSN_MP::ML_Theta
READS: ML_BSSN_MP::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -412,6 +443,8 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
READS: ML_BSSN_MP::ML_metricrhs
READS: ML_BSSN_MP::ML_shift
READS: ML_BSSN_MP::ML_shiftrhs
+ READS: ML_BSSN_MP::ML_Theta
+ READS: ML_BSSN_MP::ML_Thetarhs
READS: ML_BSSN_MP::ML_trace_curv
READS: ML_BSSN_MP::ML_trace_curvrhs
WRITES: ML_BSSN_MP::ML_curvrhs
@@ -422,6 +455,7 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
WRITES: ML_BSSN_MP::ML_log_confacrhs
WRITES: ML_BSSN_MP::ML_metricrhs
WRITES: ML_BSSN_MP::ML_shiftrhs
+ WRITES: ML_BSSN_MP::ML_Thetarhs
WRITES: ML_BSSN_MP::ML_trace_curvrhs
} "ML_BSSN_MP_Dissipation"
}
@@ -445,6 +479,8 @@ schedule ML_BSSN_MP_Advect IN ML_BSSN_MP_evolCalcGroup AFTER (ML_BSSN_MP_RHS1 ML
READS: ML_BSSN_MP::ML_metricrhs
READS: ML_BSSN_MP::ML_shift
READS: ML_BSSN_MP::ML_shiftrhs
+ READS: ML_BSSN_MP::ML_Theta
+ READS: ML_BSSN_MP::ML_Thetarhs
READS: ML_BSSN_MP::ML_trace_curv
READS: ML_BSSN_MP::ML_trace_curvrhs
WRITES: ML_BSSN_MP::ML_curvrhs
@@ -455,6 +491,7 @@ schedule ML_BSSN_MP_Advect IN ML_BSSN_MP_evolCalcGroup AFTER (ML_BSSN_MP_RHS1 ML
WRITES: ML_BSSN_MP::ML_log_confacrhs
WRITES: ML_BSSN_MP::ML_metricrhs
WRITES: ML_BSSN_MP::ML_shiftrhs
+ WRITES: ML_BSSN_MP::ML_Thetarhs
WRITES: ML_BSSN_MP::ML_trace_curvrhs
} "ML_BSSN_MP_Advect"
@@ -469,6 +506,7 @@ schedule ML_BSSN_MP_InitRHS AT analysis BEFORE ML_BSSN_MP_evolCalcGroup
WRITES: ML_BSSN_MP::ML_log_confacrhs
WRITES: ML_BSSN_MP::ML_metricrhs
WRITES: ML_BSSN_MP::ML_shiftrhs
+ WRITES: ML_BSSN_MP::ML_Thetarhs
WRITES: ML_BSSN_MP::ML_trace_curvrhs
} "ML_BSSN_MP_InitRHS"
@@ -486,6 +524,7 @@ if (CCTK_EQUALS(my_rhs_boundary_condition, "static"))
WRITES: ML_BSSN_MP::ML_log_confacrhs
WRITES: ML_BSSN_MP::ML_metricrhs
WRITES: ML_BSSN_MP::ML_shiftrhs
+ WRITES: ML_BSSN_MP::ML_Thetarhs
WRITES: ML_BSSN_MP::ML_trace_curvrhs
} "ML_BSSN_MP_RHSStaticBoundary"
}
@@ -514,6 +553,7 @@ if (CCTK_EQUALS(my_boundary_condition, "Minkowski"))
WRITES: ML_BSSN_MP::ML_log_confac
WRITES: ML_BSSN_MP::ML_metric
WRITES: ML_BSSN_MP::ML_shift
+ WRITES: ML_BSSN_MP::ML_Theta
WRITES: ML_BSSN_MP::ML_trace_curv
} "ML_BSSN_MP_boundary"
}
@@ -551,6 +591,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_MP::ML_log_confac
READS: ML_BSSN_MP::ML_metric
READS: ML_BSSN_MP::ML_shift
+ READS: ML_BSSN_MP::ML_Theta
READS: ML_BSSN_MP::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -571,6 +612,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_MP::ML_lapse
READS: ML_BSSN_MP::ML_metric
READS: ML_BSSN_MP::ML_shift
+ READS: ML_BSSN_MP::ML_Theta
READS: ML_BSSN_MP::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -591,6 +633,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection"))
READS: ML_BSSN_MP::ML_lapse
READS: ML_BSSN_MP::ML_metric
READS: ML_BSSN_MP::ML_shift
+ READS: ML_BSSN_MP::ML_Theta
READS: ML_BSSN_MP::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -701,6 +744,7 @@ schedule ML_BSSN_MP_SelectBoundConds in MoL_PostStep
SYNC: ML_log_confac
SYNC: ML_metric
SYNC: ML_shift
+ SYNC: ML_Theta
SYNC: ML_trace_curv
} "select boundary conditions"
diff --git a/ML_BSSN_MP/src/Boundaries.cc b/ML_BSSN_MP/src/Boundaries.cc
index 5328301..dd25879 100644
--- a/ML_BSSN_MP/src/Boundaries.cc
+++ b/ML_BSSN_MP/src/Boundaries.cc
@@ -120,6 +120,17 @@ extern "C" void ML_BSSN_MP_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register ML_shift_bound BC for ML_BSSN_MP::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_BSSN_MP::ML_Theta", ML_Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register ML_Theta_bound BC for ML_BSSN_MP::ML_Theta!");
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "none" ) ||
CCTK_EQUALS(ML_trace_curv_bound, "static") ||
CCTK_EQUALS(ML_trace_curv_bound, "flat" ) ||
@@ -395,6 +406,17 @@ extern "C" void ML_BSSN_MP_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register beta3_bound BC for ML_BSSN_MP::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_BSSN_MP::Theta", Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Theta_bound BC for ML_BSSN_MP::Theta!");
+ }
+
if (CCTK_EQUALS(trK_bound, "none" ) ||
CCTK_EQUALS(trK_bound, "static") ||
CCTK_EQUALS(trK_bound, "flat" ) ||
@@ -558,6 +580,25 @@ extern "C" void ML_BSSN_MP_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_MP::ML_Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_MP::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1033,6 +1074,25 @@ extern "C" void ML_BSSN_MP_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_MP::Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_MP::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1188,6 +1248,23 @@ extern "C" void ML_BSSN_MP_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_MP::ML_Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Scalar BC for ML_BSSN_MP::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1613,6 +1690,23 @@ extern "C" void ML_BSSN_MP_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_MP::Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Error in registering Scalar BC for ML_BSSN_MP::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1675,6 +1769,11 @@ extern "C" void ML_BSSN_MP_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_MP::ML_shift_bound_limit = 0.0
#$bound$#ML_BSSN_MP::ML_shift_bound_scalar = 0.0
+#$bound$#ML_BSSN_MP::ML_Theta_bound = "skip"
+#$bound$#ML_BSSN_MP::ML_Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_MP::ML_Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_MP::ML_Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_MP::ML_trace_curv_bound = "skip"
#$bound$#ML_BSSN_MP::ML_trace_curv_bound_speed = 1.0
#$bound$#ML_BSSN_MP::ML_trace_curv_bound_limit = 0.0
@@ -1800,6 +1899,11 @@ extern "C" void ML_BSSN_MP_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_MP::beta3_bound_limit = 0.0
#$bound$#ML_BSSN_MP::beta3_bound_scalar = 0.0
+#$bound$#ML_BSSN_MP::Theta_bound = "skip"
+#$bound$#ML_BSSN_MP::Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_MP::Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_MP::Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_MP::trK_bound = "skip"
#$bound$#ML_BSSN_MP::trK_bound_speed = 1.0
#$bound$#ML_BSSN_MP::trK_bound_limit = 0.0
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_Advect.cc b/ML_BSSN_MP/src/ML_BSSN_MP_Advect.cc
index bb81808..2da982a 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_Advect.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_Advect.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_MP_Advect_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -431,6 +436,12 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -585,6 +596,12 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -738,6 +755,12 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -891,6 +914,12 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -1044,6 +1073,12 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -1099,6 +1134,7 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1124,6 +1160,7 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1149,6 +1186,7 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1174,6 +1212,7 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1199,6 +1238,7 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1224,6 +1264,7 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1294,6 +1335,9 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1369,6 +1413,9 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1444,6 +1491,9 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1519,6 +1569,9 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1594,6 +1647,9 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1669,6 +1725,9 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1725,6 +1784,8 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti1phi = PDupwindNthAnti1phi;
+ JacPDupwindNthAnti1Theta = PDupwindNthAnti1Theta;
+
JacPDupwindNthAnti1trK = PDupwindNthAnti1trK;
JacPDupwindNthAnti1Xt1 = PDupwindNthAnti1Xt1;
@@ -1775,6 +1836,8 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm1phi = PDupwindNthSymm1phi;
+ JacPDupwindNthSymm1Theta = PDupwindNthSymm1Theta;
+
JacPDupwindNthSymm1trK = PDupwindNthSymm1trK;
JacPDupwindNthSymm1Xt1 = PDupwindNthSymm1Xt1;
@@ -1825,6 +1888,8 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti2phi = PDupwindNthAnti2phi;
+ JacPDupwindNthAnti2Theta = PDupwindNthAnti2Theta;
+
JacPDupwindNthAnti2trK = PDupwindNthAnti2trK;
JacPDupwindNthAnti2Xt1 = PDupwindNthAnti2Xt1;
@@ -1875,6 +1940,8 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm2phi = PDupwindNthSymm2phi;
+ JacPDupwindNthSymm2Theta = PDupwindNthSymm2Theta;
+
JacPDupwindNthSymm2trK = PDupwindNthSymm2trK;
JacPDupwindNthSymm2Xt1 = PDupwindNthSymm2Xt1;
@@ -1925,6 +1992,8 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti3phi = PDupwindNthAnti3phi;
+ JacPDupwindNthAnti3Theta = PDupwindNthAnti3Theta;
+
JacPDupwindNthAnti3trK = PDupwindNthAnti3trK;
JacPDupwindNthAnti3Xt1 = PDupwindNthAnti3Xt1;
@@ -1975,6 +2044,8 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm3phi = PDupwindNthSymm3phi;
+ JacPDupwindNthSymm3Theta = PDupwindNthSymm3Theta;
+
JacPDupwindNthSymm3trK = PDupwindNthSymm3trK;
JacPDupwindNthSymm3Xt1 = PDupwindNthSymm3Xt1;
@@ -2014,6 +2085,9 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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,IfThen(conformalMethod ==
+ 2,kmadd(beta1L,JacPDupwindNthAnti1Theta,kmadd(beta2L,JacPDupwindNthAnti2Theta,kmadd(beta3L,JacPDupwindNthAnti3Theta,kmadd(JacPDupwindNthSymm1Theta,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Theta,kfabs(beta2L),kmul(JacPDupwindNthSymm3Theta,kfabs(beta3L))))))),ToReal(0)));
+
trKrhsL =
kadd(trKrhsL,kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L))))))));
@@ -2082,6 +2156,7 @@ static void ML_BSSN_MP_Advect_Body(cGH const * restrict const cctkGH, int const
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);
@@ -2123,9 +2198,11 @@ extern "C" void ML_BSSN_MP_Advect(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_metricrhs",
"ML_BSSN_MP::ML_shift",
"ML_BSSN_MP::ML_shiftrhs",
+ "ML_BSSN_MP::ML_Theta",
+ "ML_BSSN_MP::ML_Thetarhs",
"ML_BSSN_MP::ML_trace_curv",
"ML_BSSN_MP::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_Advect", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_Advect", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_Dissipation.cc b/ML_BSSN_MP/src/ML_BSSN_MP_Dissipation.cc
index 9e85cf5..1fddcbf 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_Dissipation.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_Dissipation.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_MP_Dissipation_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -368,6 +373,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -447,6 +455,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -525,6 +536,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -603,6 +617,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -681,6 +698,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -718,6 +738,7 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -743,6 +764,7 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -768,6 +790,7 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -838,6 +861,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -913,6 +939,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -988,6 +1017,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -1044,6 +1076,8 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth1phi = PDdissipationNth1phi;
+ JacPDdissipationNth1Theta = PDdissipationNth1Theta;
+
JacPDdissipationNth1trK = PDdissipationNth1trK;
JacPDdissipationNth1Xt1 = PDdissipationNth1Xt1;
@@ -1094,6 +1128,8 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth2phi = PDdissipationNth2phi;
+ JacPDdissipationNth2Theta = PDdissipationNth2Theta;
+
JacPDdissipationNth2trK = PDdissipationNth2trK;
JacPDdissipationNth2Xt1 = PDdissipationNth2Xt1;
@@ -1144,6 +1180,8 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth3phi = PDdissipationNth3phi;
+ JacPDdissipationNth3Theta = PDdissipationNth3Theta;
+
JacPDdissipationNth3trK = PDdissipationNth3trK;
JacPDdissipationNth3Xt1 = PDdissipationNth3Xt1;
@@ -1189,6 +1227,9 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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))));
@@ -1257,6 +1298,7 @@ static void ML_BSSN_MP_Dissipation_Body(cGH const * restrict const cctkGH, int c
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);
@@ -1298,9 +1340,11 @@ extern "C" void ML_BSSN_MP_Dissipation(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_metricrhs",
"ML_BSSN_MP::ML_shift",
"ML_BSSN_MP::ML_shiftrhs",
+ "ML_BSSN_MP::ML_Theta",
+ "ML_BSSN_MP::ML_Thetarhs",
"ML_BSSN_MP::ML_trace_curv",
"ML_BSSN_MP::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_Dissipation", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_Dissipation", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_InitRHS.cc b/ML_BSSN_MP/src/ML_BSSN_MP_InitRHS.cc
index 8f86b3a..945b695 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_InitRHS.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_InitRHS.cc
@@ -256,6 +256,8 @@ static void ML_BSSN_MP_InitRHS_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_MP_InitRHS_Body(cGH const * restrict const cctkGH, int const
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_MP_InitRHS(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_log_confacrhs",
"ML_BSSN_MP::ML_metricrhs",
"ML_BSSN_MP::ML_shiftrhs",
+ "ML_BSSN_MP::ML_Thetarhs",
"ML_BSSN_MP::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_InitRHS", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_InitRHS", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_Minkowski.cc b/ML_BSSN_MP/src/ML_BSSN_MP_Minkowski.cc
index ad586eb..ff0f25b 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);
@@ -256,6 +256,8 @@ static void ML_BSSN_MP_Minkowski_Body(cGH const * restrict const cctkGH, int con
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_MP_Minkowski_Body(cGH const * restrict const cctkGH, int con
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_MP_Minkowski(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_log_confac",
"ML_BSSN_MP::ML_metric",
"ML_BSSN_MP::ML_shift",
+ "ML_BSSN_MP::ML_Theta",
"ML_BSSN_MP::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_Minkowski", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_Minkowski", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc b/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc
index 36e1728..25f95e4 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.cc
@@ -50,6 +50,9 @@ extern "C" void ML_BSSN_MP_RHS1_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curvrhs.");
@@ -254,6 +257,7 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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]);
@@ -363,27 +367,81 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)
{
@@ -427,27 +485,81 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder21(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder22(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder23(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder211(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder222(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder233(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder212(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder213(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder223(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder21(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder22(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder23(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder211(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder222(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder233(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder212(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder213(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder223(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder21(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder22(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder23(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder211(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder222(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder233(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder212(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder213(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder223(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder21(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder22(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder23(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder211(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder222(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder233(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder212(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder213(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder223(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder21(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder22(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder23(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder211(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder222(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder233(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder212(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder213(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder223(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder21(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder22(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder23(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder211(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder222(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder233(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder212(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder213(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder223(&gt33[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:
@@ -490,27 +602,81 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder41(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder42(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder43(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder411(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder422(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder433(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder412(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder413(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder423(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder41(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder42(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder43(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder411(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder422(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder433(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder412(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder413(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder423(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder41(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder42(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder43(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder411(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder422(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder433(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder412(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder413(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder423(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder41(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder42(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder43(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder411(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder422(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder433(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder412(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder413(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder423(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder41(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder42(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder43(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder411(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder422(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder433(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder412(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder413(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder423(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder41(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder42(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder43(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder411(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder422(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder433(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder412(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder413(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder423(&gt33[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:
@@ -553,27 +719,81 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder61(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder62(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder63(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder611(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder622(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder633(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder612(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder613(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder623(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder61(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder62(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder63(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder611(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder622(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder633(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder612(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder613(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder623(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder61(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder62(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder63(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder611(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder622(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder633(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder612(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder613(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder623(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder61(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder62(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder63(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder611(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder622(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder633(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder612(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder613(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder623(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder61(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder62(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder63(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder611(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder622(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder633(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder612(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder613(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder623(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder61(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder62(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder63(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder611(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder622(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder633(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder612(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder613(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder623(&gt33[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:
@@ -616,27 +836,81 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder81(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder82(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder83(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder811(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder822(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder833(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder812(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder813(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder823(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder81(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder82(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder83(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder811(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder822(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder833(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder812(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder813(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder823(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder81(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder82(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder83(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder811(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder822(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder833(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder812(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder813(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder823(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder81(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder82(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder83(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder811(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder822(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder833(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder812(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder813(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder823(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder81(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder82(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder83(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder811(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder822(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder833(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder812(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder813(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder823(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder81(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder82(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder83(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder811(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder822(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder833(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder812(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder813(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder823(&gt33[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;
}
@@ -651,14 +925,35 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -670,19 +965,43 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -694,19 +1013,42 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -718,7 +1060,11 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)
{
@@ -755,9 +1101,21 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -791,9 +1149,21 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -827,9 +1197,21 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -842,6 +1224,27 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -854,6 +1257,27 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -866,6 +1290,27 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -878,6 +1323,27 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -890,6 +1356,27 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -902,6 +1389,24 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -914,6 +1419,27 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -926,6 +1452,24 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -937,6 +1481,24 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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
{
@@ -962,8 +1524,16 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth1phi = PDstandardNth1phi;
+ JacPDstandardNth1Theta = PDstandardNth1Theta;
+
JacPDstandardNth1trK = PDstandardNth1trK;
+ JacPDstandardNth1Xt1 = PDstandardNth1Xt1;
+
+ JacPDstandardNth1Xt2 = PDstandardNth1Xt2;
+
+ JacPDstandardNth1Xt3 = PDstandardNth1Xt3;
+
JacPDstandardNth2alpha = PDstandardNth2alpha;
JacPDstandardNth2beta1 = PDstandardNth2beta1;
@@ -986,8 +1556,16 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth2phi = PDstandardNth2phi;
+ JacPDstandardNth2Theta = PDstandardNth2Theta;
+
JacPDstandardNth2trK = PDstandardNth2trK;
+ JacPDstandardNth2Xt1 = PDstandardNth2Xt1;
+
+ JacPDstandardNth2Xt2 = PDstandardNth2Xt2;
+
+ JacPDstandardNth2Xt3 = PDstandardNth2Xt3;
+
JacPDstandardNth3alpha = PDstandardNth3alpha;
JacPDstandardNth3beta1 = PDstandardNth3beta1;
@@ -1010,8 +1588,16 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth3phi = PDstandardNth3phi;
+ JacPDstandardNth3Theta = PDstandardNth3Theta;
+
JacPDstandardNth3trK = PDstandardNth3trK;
+ JacPDstandardNth3Xt1 = PDstandardNth3Xt1;
+
+ JacPDstandardNth3Xt2 = PDstandardNth3Xt2;
+
+ JacPDstandardNth3Xt3 = PDstandardNth3Xt3;
+
JacPDstandardNth11alpha = PDstandardNth11alpha;
JacPDstandardNth11beta1 = PDstandardNth11beta1;
@@ -1020,6 +1606,20 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth11beta3 = PDstandardNth11beta3;
+ JacPDstandardNth11gt11 = PDstandardNth11gt11;
+
+ JacPDstandardNth11gt12 = PDstandardNth11gt12;
+
+ JacPDstandardNth11gt13 = PDstandardNth11gt13;
+
+ JacPDstandardNth11gt22 = PDstandardNth11gt22;
+
+ JacPDstandardNth11gt23 = PDstandardNth11gt23;
+
+ JacPDstandardNth11gt33 = PDstandardNth11gt33;
+
+ JacPDstandardNth11phi = PDstandardNth11phi;
+
JacPDstandardNth22alpha = PDstandardNth22alpha;
JacPDstandardNth22beta1 = PDstandardNth22beta1;
@@ -1028,6 +1628,20 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth22beta3 = PDstandardNth22beta3;
+ JacPDstandardNth22gt11 = PDstandardNth22gt11;
+
+ JacPDstandardNth22gt12 = PDstandardNth22gt12;
+
+ JacPDstandardNth22gt13 = PDstandardNth22gt13;
+
+ JacPDstandardNth22gt22 = PDstandardNth22gt22;
+
+ JacPDstandardNth22gt23 = PDstandardNth22gt23;
+
+ JacPDstandardNth22gt33 = PDstandardNth22gt33;
+
+ JacPDstandardNth22phi = PDstandardNth22phi;
+
JacPDstandardNth33alpha = PDstandardNth33alpha;
JacPDstandardNth33beta1 = PDstandardNth33beta1;
@@ -1036,6 +1650,20 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth33beta3 = PDstandardNth33beta3;
+ JacPDstandardNth33gt11 = PDstandardNth33gt11;
+
+ JacPDstandardNth33gt12 = PDstandardNth33gt12;
+
+ JacPDstandardNth33gt13 = PDstandardNth33gt13;
+
+ JacPDstandardNth33gt22 = PDstandardNth33gt22;
+
+ JacPDstandardNth33gt23 = PDstandardNth33gt23;
+
+ JacPDstandardNth33gt33 = PDstandardNth33gt33;
+
+ JacPDstandardNth33phi = PDstandardNth33phi;
+
JacPDstandardNth12alpha = PDstandardNth12alpha;
JacPDstandardNth12beta1 = PDstandardNth12beta1;
@@ -1044,6 +1672,20 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth12beta3 = PDstandardNth12beta3;
+ JacPDstandardNth12gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth12gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth12gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth12gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth12gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth12gt33 = PDstandardNth12gt33;
+
+ JacPDstandardNth12phi = PDstandardNth12phi;
+
JacPDstandardNth13alpha = PDstandardNth13alpha;
JacPDstandardNth13beta1 = PDstandardNth13beta1;
@@ -1052,6 +1694,20 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth13beta3 = PDstandardNth13beta3;
+ JacPDstandardNth13gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth13gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth13gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth13gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth13gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth13gt33 = PDstandardNth13gt33;
+
+ JacPDstandardNth13phi = PDstandardNth13phi;
+
JacPDstandardNth21alpha = PDstandardNth12alpha;
JacPDstandardNth21beta1 = PDstandardNth12beta1;
@@ -1060,6 +1716,18 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth21beta3 = PDstandardNth12beta3;
+ JacPDstandardNth21gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth21gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth21gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth21gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth21gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth21gt33 = PDstandardNth12gt33;
+
JacPDstandardNth23alpha = PDstandardNth23alpha;
JacPDstandardNth23beta1 = PDstandardNth23beta1;
@@ -1068,6 +1736,20 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth23beta3 = PDstandardNth23beta3;
+ JacPDstandardNth23gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth23gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth23gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth23gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth23gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth23gt33 = PDstandardNth23gt33;
+
+ JacPDstandardNth23phi = PDstandardNth23phi;
+
JacPDstandardNth31alpha = PDstandardNth13alpha;
JacPDstandardNth31beta1 = PDstandardNth13beta1;
@@ -1076,6 +1758,18 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth31beta3 = PDstandardNth13beta3;
+ JacPDstandardNth31gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth31gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth31gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth31gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth31gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth31gt33 = PDstandardNth13gt33;
+
JacPDstandardNth32alpha = PDstandardNth23alpha;
JacPDstandardNth32beta1 = PDstandardNth23beta1;
@@ -1083,6 +1777,18 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth32beta2 = PDstandardNth23beta2;
JacPDstandardNth32beta3 = PDstandardNth23beta3;
+
+ JacPDstandardNth32gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth32gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth32gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth32gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth32gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth32gt33 = PDstandardNth23gt33;
}
CCTK_REAL_VEC detgt = ToReal(1);
@@ -1150,6 +1856,87 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -1213,8 +2000,79 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
+ 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);
@@ -1222,6 +2080,45 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -1267,10 +2164,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC em4phi = INV(e4phi);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
+
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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,35 +2197,53 @@ 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))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3)),ToReal(-3),kmadd(gt11L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt11L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At11L,ToReal(3)))))));
CCTK_REAL_VEC gt12rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At12L,ToReal(-6)),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmadd(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3),kmul(alphaL,kmadd(At12L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt12L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt13rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At13L,ToReal(-6)),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At13L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt13L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt22rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmul(At22L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt22L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At22L,ToReal(3)))))));
CCTK_REAL_VEC gt23rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At23L,ToReal(-6)),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At23L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt23L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt33rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmul(At33L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt33L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At33L,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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmul(gtu33,JacPDstandardNth33beta1))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmadd(gtu33,JacPDstandardNth33beta1,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1Theta,kmadd(gtu12,JacPDstandardNth2Theta,kmul(gtu13,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z1,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmul(gtu33,JacPDstandardNth33beta2)))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(JacPDstandardNth21beta2,ToReal(3),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu12,JacPDstandardNth21beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmadd(gtu33,JacPDstandardNth33beta2,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1Theta,kmadd(gtu22,JacPDstandardNth2Theta,kmul(gtu23,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z2,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kmadd(JacPDstandardNth12beta2,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),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),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmul(gtu23,JacPDstandardNth32beta3)))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,JacPDstandardNth1alpha,kmadd(Atu23,JacPDstandardNth2alpha,kmul(Atu33,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta3,Xtn1,kmul(JacPDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmadd(gtu23,JacPDstandardNth32beta3,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1Theta,kmadd(gtu23,JacPDstandardNth2Theta,kmul(gtu33,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z3,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0)))))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
CCTK_REAL_VEC Xt1rhsL = dotXt1;
@@ -1323,16 +2251,23 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL_VEC Xt3rhsL = dotXt3;
- CCTK_REAL_VEC dottrK =
- kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha))))))))))));
+ CCTK_REAL_VEC dotTheta = IfThen(conformalMethod ==
+ 2,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)))),ToReal(0));
+
+ CCTK_REAL_VEC ThetarhsL = dotTheta;
+
+ CCTK_REAL_VEC dottrK = kadd(IfThen(conformalMethod ==
+ 2,kmsub(kadd(dotTheta,kmadd(JacPDstandardNth1alpha,Z1,kmadd(JacPDstandardNth2alpha,Z2,kmul(JacPDstandardNth3alpha,Z3)))),ToReal(2),kmul(alphaL,kmul(ThetaL,kmul(ToReal(dampk1),kadd(ToReal(-1),ToReal(dampk2)))))),ToReal(0)),kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha)))))))))))));
CCTK_REAL_VEC trKrhsL = dottrK;
CCTK_REAL_VEC alpharhsL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmadd(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),trKL),ksub(ToReal(1),ToReal(LapseACoeff)))))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kadd(trKL,kmsub(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)))),ksub(ToReal(1),ToReal(LapseACoeff)))))));
- CCTK_REAL_VEC ArhsL =
- kmul(knmsub(AL,ToReal(AlphaDriver),dottrK),ToReal(LapseACoeff));
+ CCTK_REAL_VEC ArhsL = kneg(kmul(kadd(IfThen(conformalMethod ==
+ 2,kmul(dotTheta,ToReal(2)),ToReal(0)),kmsub(AL,ToReal(AlphaDriver),dottrK)),ToReal(LapseACoeff)));
CCTK_REAL_VEC eta =
kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius));
@@ -1393,6 +2328,7 @@ static void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const di
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);
@@ -1435,9 +2371,11 @@ extern "C" void ML_BSSN_MP_RHS1(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_metricrhs",
"ML_BSSN_MP::ML_shift",
"ML_BSSN_MP::ML_shiftrhs",
+ "ML_BSSN_MP::ML_Theta",
+ "ML_BSSN_MP::ML_Thetarhs",
"ML_BSSN_MP::ML_trace_curv",
"ML_BSSN_MP::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_RHS1", 19, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_RHS1", 21, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc b/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc
index ab1f104..4b8427e 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.cc
@@ -228,6 +228,7 @@ static void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const di
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]);
@@ -1626,6 +1627,59 @@ 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 Z1;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1698,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 +1707,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,46 +1773,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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))))));
@@ -1785,22 +1816,34 @@ static void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const di
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(Atm11,ToReal(6))),kmul(em4phi,kmul(kmadd(g11,kmul(trS,ToReal(-8)),kmul(eTxxL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats11,ToReal(3),kmul(g11,trAts)),kmadd(At11L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm22,ToReal(-2),trKL),kmul(em4phi,kmadd(g12,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxyL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At22L,JacPDstandardNth1beta2,kmadd(At23L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth2beta1,kmadd(At13L,JacPDstandardNth2beta3,kmadd(At12L,kmadd(JacPDstandardNth3beta3,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats12,kmadd(g12,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g12,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxyL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm12,kmul(At13L,Atm32)),ToReal(2),kmul(At12L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm22,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g13,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At23L,JacPDstandardNth1beta2,kmadd(At33L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth3beta1,kmadd(At12L,JacPDstandardNth3beta2,kmadd(At13L,kmadd(JacPDstandardNth2beta2,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats13,kmadd(g13,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g13,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm13,kmul(At12L,Atm23)),ToReal(2),kmul(At13L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm22,ToReal(6))),kmul(em4phi,kmul(kmadd(g22,kmul(trS,ToReal(-8)),kmul(eTyyL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats22,ToReal(3),kmul(g22,trAts)),kmadd(At22L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g23,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTyzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At13L,JacPDstandardNth2beta1,kmadd(At33L,JacPDstandardNth2beta3,kmadd(At12L,JacPDstandardNth3beta1,kmadd(At22L,JacPDstandardNth3beta2,kmadd(At23L,kmadd(JacPDstandardNth1beta1,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats23,kmadd(g23,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g23,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTyzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At12L,Atm13,kmul(At22L,Atm23)),ToReal(2),kmul(At23L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(6))),kmul(em4phi,kmul(kmadd(g33,kmul(trS,ToReal(-8)),kmul(eTzzL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats33,ToReal(3),kmul(g33,trAts)),kmadd(At33L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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);
@@ -1838,8 +1881,9 @@ extern "C" void ML_BSSN_MP_RHS2(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_log_confac",
"ML_BSSN_MP::ML_metric",
"ML_BSSN_MP::ML_shift",
+ "ML_BSSN_MP::ML_Theta",
"ML_BSSN_MP::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_RHS2", 8, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_RHS2", 9, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.cc b/ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.cc
index 2d72cf2..89f7492 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_MP_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curvrhs.");
@@ -292,6 +295,8 @@ static void ML_BSSN_MP_RHSStaticBoundary_Body(cGH const * restrict const cctkGH,
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_MP_RHSStaticBoundary_Body(cGH const * restrict const cctkGH,
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_MP_RHSStaticBoundary(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_log_confacrhs",
"ML_BSSN_MP::ML_metricrhs",
"ML_BSSN_MP::ML_shiftrhs",
+ "ML_BSSN_MP::ML_Thetarhs",
"ML_BSSN_MP::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_RHSStaticBoundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_RHSStaticBoundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc b/ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc
index f7985cc..299a0d0 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_boundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_MP_boundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shift","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Theta","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Theta.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curv","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curv.");
@@ -258,7 +261,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);
@@ -292,6 +295,8 @@ static void ML_BSSN_MP_boundary_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_MP_boundary_Body(cGH const * restrict const cctkGH, int cons
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_MP_boundary(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_log_confac",
"ML_BSSN_MP::ML_metric",
"ML_BSSN_MP::ML_shift",
+ "ML_BSSN_MP::ML_Theta",
"ML_BSSN_MP::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_boundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_boundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc b/ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc
index a01cac9..c89e356 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_constraints1.cc
@@ -1430,6 +1430,59 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1501,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 +1510,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,34 +1549,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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)))));
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..d5203de 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);
@@ -315,6 +315,8 @@ static void ML_BSSN_MP_convertFromADMBase_Body(cGH const * restrict const cctkGH
CCTK_REAL_VEC At33L =
kmul(em4phi,kmadd(trKL,kmul(g33,ToReal(-0.333333333333333333333333333333)),kzzL));
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = alpL;
CCTK_REAL_VEC beta1L = betaxL;
@@ -342,6 +344,7 @@ static void ML_BSSN_MP_convertFromADMBase_Body(cGH const * restrict const cctkGH
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_BSSN_MP_convertFromADMBase);
@@ -373,8 +376,9 @@ extern "C" void ML_BSSN_MP_convertFromADMBase(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_log_confac",
"ML_BSSN_MP::ML_metric",
"ML_BSSN_MP::ML_shift",
+ "ML_BSSN_MP::ML_Theta",
"ML_BSSN_MP::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_convertFromADMBase", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_convertFromADMBase", 11, groups);
switch(fdOrder)
{
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/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.cc b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.cc
index 74d185d..d13b26c 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.cc
@@ -230,6 +230,7 @@ static void ML_BSSN_MP_convertToADMBaseDtLapseShift_Body(cGH const * restrict co
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]);
@@ -838,7 +839,9 @@ static void ML_BSSN_MP_convertToADMBaseDtLapseShift_Body(cGH const * restrict co
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(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kmsub(kmadd(beta1L,JacPDupwindNthAnti1alpha,kmadd(beta2L,JacPDupwindNthAnti2alpha,kmadd(beta3L,JacPDupwindNthAnti3alpha,kmadd(JacPDupwindNthSymm1alpha,kfabs(beta1L),kmadd(JacPDupwindNthSymm2alpha,kfabs(beta2L),kmul(JacPDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),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)))));
@@ -887,8 +890,9 @@ extern "C" void ML_BSSN_MP_convertToADMBaseDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_log_confac",
"ML_BSSN_MP::ML_metric",
"ML_BSSN_MP::ML_shift",
+ "ML_BSSN_MP::ML_Theta",
"ML_BSSN_MP::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_convertToADMBaseDtLapseShift", 12, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_convertToADMBaseDtLapseShift", 13, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.cc b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.cc
index 5f6ec46..ab40120 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.cc
@@ -223,6 +223,7 @@ static void ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * res
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]);
@@ -257,7 +258,9 @@ static void ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * res
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -319,8 +322,9 @@ extern "C" void ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_Gamma",
"ML_BSSN_MP::ML_lapse",
"ML_BSSN_MP::ML_shift",
+ "ML_BSSN_MP::ML_Theta",
"ML_BSSN_MP::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseFakeDtLapseShift.cc b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseFakeDtLapseShift.cc
index ff7cd82..dfeb188 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseFakeDtLapseShift.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseFakeDtLapseShift.cc
@@ -208,6 +208,7 @@ static void ML_BSSN_MP_convertToADMBaseFakeDtLapseShift_Body(cGH const * restric
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]);
@@ -242,7 +243,9 @@ static void ML_BSSN_MP_convertToADMBaseFakeDtLapseShift_Body(cGH const * restric
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -304,8 +307,9 @@ extern "C" void ML_BSSN_MP_convertToADMBaseFakeDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_MP::ML_Gamma",
"ML_BSSN_MP::ML_lapse",
"ML_BSSN_MP::ML_shift",
+ "ML_BSSN_MP::ML_Theta",
"ML_BSSN_MP::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_convertToADMBaseFakeDtLapseShift", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_convertToADMBaseFakeDtLapseShift", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP/src/RegisterMoL.cc b/ML_BSSN_MP/src/RegisterMoL.cc
index 984d576..aed9356 100644
--- a/ML_BSSN_MP/src/RegisterMoL.cc
+++ b/ML_BSSN_MP/src/RegisterMoL.cc
@@ -36,6 +36,7 @@ extern "C" void ML_BSSN_MP_RegisterVars(CCTK_ARGUMENTS)
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP::beta1"), CCTK_VarIndex("ML_BSSN_MP::beta1rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP::beta2"), CCTK_VarIndex("ML_BSSN_MP::beta2rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP::beta3"), CCTK_VarIndex("ML_BSSN_MP::beta3rhs"));
+ ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP::Theta"), CCTK_VarIndex("ML_BSSN_MP::Thetarhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP::trK"), CCTK_VarIndex("ML_BSSN_MP::trKrhs"));
/* Register all the evolved Array functions with MoL */
diff --git a/ML_BSSN_MP/src/RegisterSymmetries.cc b/ML_BSSN_MP/src/RegisterSymmetries.cc
index 4f9ee29..d285335 100644
--- a/ML_BSSN_MP/src/RegisterSymmetries.cc
+++ b/ML_BSSN_MP/src/RegisterSymmetries.cc
@@ -139,6 +139,11 @@ extern "C" void ML_BSSN_MP_RegisterSymmetries(CCTK_ARGUMENTS)
sym[0] = 1;
sym[1] = 1;
sym[2] = 1;
+ SetCartSymVN(cctkGH, sym, "ML_BSSN_MP::Theta");
+
+ sym[0] = 1;
+ sym[1] = 1;
+ sym[2] = 1;
SetCartSymVN(cctkGH, sym, "ML_BSSN_MP::trK");
sym[0] = 1;
diff --git a/ML_BSSN_MP_O8/interface.ccl b/ML_BSSN_MP_O8/interface.ccl
index f7d56ff..5d233a5 100644
--- a/ML_BSSN_MP_O8/interface.ccl
+++ b/ML_BSSN_MP_O8/interface.ccl
@@ -127,6 +127,12 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "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
@@ -197,6 +203,12 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "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
diff --git a/ML_BSSN_MP_O8/param.ccl b/ML_BSSN_MP_O8/param.ccl
index 6fc3795..35a9f70 100644
--- a/ML_BSSN_MP_O8/param.ccl
+++ b/ML_BSSN_MP_O8/param.ccl
@@ -54,6 +54,18 @@ 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"
{
"*:*" :: ""
@@ -126,28 +138,28 @@ CCTK_REAL EpsDiss "Dissipation strength"
} 0
restricted:
-CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
+CCTK_INT conformalMethod "Treatment of conformal factor"
{
*:* :: ""
-} 2
+} 0
restricted:
-CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
+CCTK_INT GammaShift "Covariant shift term in Gamma"
{
*:* :: ""
} 0
restricted:
-CCTK_INT conformalMethod "Treatment of conformal factor"
+CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
{
*:* :: ""
-} 0
+} 2
restricted:
-CCTK_INT fdOrder "fdOrder"
+CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
{
*:* :: ""
-} 8
+} 0
restricted:
CCTK_INT harmonicShift "Whether to use the harmonic shift"
@@ -155,6 +167,12 @@ CCTK_INT harmonicShift "Whether to use the harmonic shift"
*:* :: ""
} 0
+restricted:
+CCTK_INT fdOrder "fdOrder"
+{
+ *:* :: ""
+} 8
+
private:
KEYWORD my_initial_data "my_initial_data"
{
@@ -215,8 +233,8 @@ KEYWORD apply_dissipation "Whether to apply dissipation to the RHSs"
restricted:
CCTK_INT ML_BSSN_MP_O8_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars STEERABLE=RECOVER
{
- 25:25 :: "Number of evolved variables used by this thorn"
-} 25
+ 26:26 :: "Number of evolved variables used by this thorn"
+} 26
restricted:
CCTK_INT ML_BSSN_MP_O8_MaxNumArrayEvolvedVars "Number of Array evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_ArrayEvolved_Vars STEERABLE=RECOVER
@@ -747,6 +765,18 @@ KEYWORD beta3_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -855,6 +885,18 @@ KEYWORD ML_shift_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -1011,6 +1053,12 @@ CCTK_REAL beta3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS
} 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"
@@ -1065,6 +1113,12 @@ CCTK_REAL ML_shift_bound_speed "characteristic speed at boundary" STEERABLE=ALWA
} 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"
@@ -1215,6 +1269,12 @@ CCTK_REAL beta3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1269,6 +1329,12 @@ CCTK_REAL ML_shift_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1419,6 +1485,12 @@ CCTK_REAL beta3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
@@ -1473,6 +1545,12 @@ CCTK_REAL ML_shift_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
diff --git a/ML_BSSN_MP_O8/schedule.ccl b/ML_BSSN_MP_O8/schedule.ccl
index 61acdbe..f9f2c2d 100644
--- a/ML_BSSN_MP_O8/schedule.ccl
+++ b/ML_BSSN_MP_O8/schedule.ccl
@@ -132,6 +132,19 @@ if (timelevels == 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)
@@ -249,6 +262,19 @@ if (rhs_timelevels == 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)
@@ -286,6 +312,7 @@ if (CCTK_EQUALS(my_initial_data, "Minkowski"))
WRITES: ML_BSSN_MP_O8::ML_log_confac
WRITES: ML_BSSN_MP_O8::ML_metric
WRITES: ML_BSSN_MP_O8::ML_shift
+ WRITES: ML_BSSN_MP_O8::ML_Theta
WRITES: ML_BSSN_MP_O8::ML_trace_curv
} "ML_BSSN_MP_O8_Minkowski"
}
@@ -307,6 +334,7 @@ if (CCTK_EQUALS(my_initial_data, "ADMBase"))
WRITES: ML_BSSN_MP_O8::ML_log_confac
WRITES: ML_BSSN_MP_O8::ML_metric
WRITES: ML_BSSN_MP_O8::ML_shift
+ WRITES: ML_BSSN_MP_O8::ML_Theta
WRITES: ML_BSSN_MP_O8::ML_trace_curv
} "ML_BSSN_MP_O8_convertFromADMBase"
}
@@ -358,6 +386,7 @@ schedule ML_BSSN_MP_O8_RHS1 IN ML_BSSN_MP_O8_evolCalcGroup
READS: ML_BSSN_MP_O8::ML_log_confac
READS: ML_BSSN_MP_O8::ML_metric
READS: ML_BSSN_MP_O8::ML_shift
+ READS: ML_BSSN_MP_O8::ML_Theta
READS: ML_BSSN_MP_O8::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -369,6 +398,7 @@ schedule ML_BSSN_MP_O8_RHS1 IN ML_BSSN_MP_O8_evolCalcGroup
WRITES: ML_BSSN_MP_O8::ML_log_confacrhs
WRITES: ML_BSSN_MP_O8::ML_metricrhs
WRITES: ML_BSSN_MP_O8::ML_shiftrhs
+ WRITES: ML_BSSN_MP_O8::ML_Thetarhs
WRITES: ML_BSSN_MP_O8::ML_trace_curvrhs
} "ML_BSSN_MP_O8_RHS1"
@@ -383,6 +413,7 @@ schedule ML_BSSN_MP_O8_RHS2 IN ML_BSSN_MP_O8_evolCalcGroup
READS: ML_BSSN_MP_O8::ML_log_confac
READS: ML_BSSN_MP_O8::ML_metric
READS: ML_BSSN_MP_O8::ML_shift
+ READS: ML_BSSN_MP_O8::ML_Theta
READS: ML_BSSN_MP_O8::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -412,6 +443,8 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
READS: ML_BSSN_MP_O8::ML_metricrhs
READS: ML_BSSN_MP_O8::ML_shift
READS: ML_BSSN_MP_O8::ML_shiftrhs
+ READS: ML_BSSN_MP_O8::ML_Theta
+ READS: ML_BSSN_MP_O8::ML_Thetarhs
READS: ML_BSSN_MP_O8::ML_trace_curv
READS: ML_BSSN_MP_O8::ML_trace_curvrhs
WRITES: ML_BSSN_MP_O8::ML_curvrhs
@@ -422,6 +455,7 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
WRITES: ML_BSSN_MP_O8::ML_log_confacrhs
WRITES: ML_BSSN_MP_O8::ML_metricrhs
WRITES: ML_BSSN_MP_O8::ML_shiftrhs
+ WRITES: ML_BSSN_MP_O8::ML_Thetarhs
WRITES: ML_BSSN_MP_O8::ML_trace_curvrhs
} "ML_BSSN_MP_O8_Dissipation"
}
@@ -445,6 +479,8 @@ schedule ML_BSSN_MP_O8_Advect IN ML_BSSN_MP_O8_evolCalcGroup AFTER (ML_BSSN_MP_O
READS: ML_BSSN_MP_O8::ML_metricrhs
READS: ML_BSSN_MP_O8::ML_shift
READS: ML_BSSN_MP_O8::ML_shiftrhs
+ READS: ML_BSSN_MP_O8::ML_Theta
+ READS: ML_BSSN_MP_O8::ML_Thetarhs
READS: ML_BSSN_MP_O8::ML_trace_curv
READS: ML_BSSN_MP_O8::ML_trace_curvrhs
WRITES: ML_BSSN_MP_O8::ML_curvrhs
@@ -455,6 +491,7 @@ schedule ML_BSSN_MP_O8_Advect IN ML_BSSN_MP_O8_evolCalcGroup AFTER (ML_BSSN_MP_O
WRITES: ML_BSSN_MP_O8::ML_log_confacrhs
WRITES: ML_BSSN_MP_O8::ML_metricrhs
WRITES: ML_BSSN_MP_O8::ML_shiftrhs
+ WRITES: ML_BSSN_MP_O8::ML_Thetarhs
WRITES: ML_BSSN_MP_O8::ML_trace_curvrhs
} "ML_BSSN_MP_O8_Advect"
@@ -469,6 +506,7 @@ schedule ML_BSSN_MP_O8_InitRHS AT analysis BEFORE ML_BSSN_MP_O8_evolCalcGroup
WRITES: ML_BSSN_MP_O8::ML_log_confacrhs
WRITES: ML_BSSN_MP_O8::ML_metricrhs
WRITES: ML_BSSN_MP_O8::ML_shiftrhs
+ WRITES: ML_BSSN_MP_O8::ML_Thetarhs
WRITES: ML_BSSN_MP_O8::ML_trace_curvrhs
} "ML_BSSN_MP_O8_InitRHS"
@@ -486,6 +524,7 @@ if (CCTK_EQUALS(my_rhs_boundary_condition, "static"))
WRITES: ML_BSSN_MP_O8::ML_log_confacrhs
WRITES: ML_BSSN_MP_O8::ML_metricrhs
WRITES: ML_BSSN_MP_O8::ML_shiftrhs
+ WRITES: ML_BSSN_MP_O8::ML_Thetarhs
WRITES: ML_BSSN_MP_O8::ML_trace_curvrhs
} "ML_BSSN_MP_O8_RHSStaticBoundary"
}
@@ -514,6 +553,7 @@ if (CCTK_EQUALS(my_boundary_condition, "Minkowski"))
WRITES: ML_BSSN_MP_O8::ML_log_confac
WRITES: ML_BSSN_MP_O8::ML_metric
WRITES: ML_BSSN_MP_O8::ML_shift
+ WRITES: ML_BSSN_MP_O8::ML_Theta
WRITES: ML_BSSN_MP_O8::ML_trace_curv
} "ML_BSSN_MP_O8_boundary"
}
@@ -551,6 +591,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_MP_O8::ML_log_confac
READS: ML_BSSN_MP_O8::ML_metric
READS: ML_BSSN_MP_O8::ML_shift
+ READS: ML_BSSN_MP_O8::ML_Theta
READS: ML_BSSN_MP_O8::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -571,6 +612,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_MP_O8::ML_lapse
READS: ML_BSSN_MP_O8::ML_metric
READS: ML_BSSN_MP_O8::ML_shift
+ READS: ML_BSSN_MP_O8::ML_Theta
READS: ML_BSSN_MP_O8::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -591,6 +633,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection"))
READS: ML_BSSN_MP_O8::ML_lapse
READS: ML_BSSN_MP_O8::ML_metric
READS: ML_BSSN_MP_O8::ML_shift
+ READS: ML_BSSN_MP_O8::ML_Theta
READS: ML_BSSN_MP_O8::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -701,6 +744,7 @@ schedule ML_BSSN_MP_O8_SelectBoundConds in MoL_PostStep
SYNC: ML_log_confac
SYNC: ML_metric
SYNC: ML_shift
+ SYNC: ML_Theta
SYNC: ML_trace_curv
} "select boundary conditions"
diff --git a/ML_BSSN_MP_O8/src/Boundaries.cc b/ML_BSSN_MP_O8/src/Boundaries.cc
index 34dc391..b05c641 100644
--- a/ML_BSSN_MP_O8/src/Boundaries.cc
+++ b/ML_BSSN_MP_O8/src/Boundaries.cc
@@ -120,6 +120,17 @@ extern "C" void ML_BSSN_MP_O8_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register ML_shift_bound BC for ML_BSSN_MP_O8::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_BSSN_MP_O8::ML_Theta", ML_Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register ML_Theta_bound BC for ML_BSSN_MP_O8::ML_Theta!");
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "none" ) ||
CCTK_EQUALS(ML_trace_curv_bound, "static") ||
CCTK_EQUALS(ML_trace_curv_bound, "flat" ) ||
@@ -395,6 +406,17 @@ extern "C" void ML_BSSN_MP_O8_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register beta3_bound BC for ML_BSSN_MP_O8::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_BSSN_MP_O8::Theta", Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Theta_bound BC for ML_BSSN_MP_O8::Theta!");
+ }
+
if (CCTK_EQUALS(trK_bound, "none" ) ||
CCTK_EQUALS(trK_bound, "static") ||
CCTK_EQUALS(trK_bound, "flat" ) ||
@@ -558,6 +580,25 @@ extern "C" void ML_BSSN_MP_O8_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_MP_O8::ML_Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_MP_O8::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1033,6 +1074,25 @@ extern "C" void ML_BSSN_MP_O8_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_MP_O8::Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_MP_O8::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1188,6 +1248,23 @@ extern "C" void ML_BSSN_MP_O8_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_MP_O8::ML_Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Scalar BC for ML_BSSN_MP_O8::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1613,6 +1690,23 @@ extern "C" void ML_BSSN_MP_O8_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_MP_O8::Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Error in registering Scalar BC for ML_BSSN_MP_O8::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1675,6 +1769,11 @@ extern "C" void ML_BSSN_MP_O8_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_MP_O8::ML_shift_bound_limit = 0.0
#$bound$#ML_BSSN_MP_O8::ML_shift_bound_scalar = 0.0
+#$bound$#ML_BSSN_MP_O8::ML_Theta_bound = "skip"
+#$bound$#ML_BSSN_MP_O8::ML_Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_MP_O8::ML_Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_MP_O8::ML_Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_MP_O8::ML_trace_curv_bound = "skip"
#$bound$#ML_BSSN_MP_O8::ML_trace_curv_bound_speed = 1.0
#$bound$#ML_BSSN_MP_O8::ML_trace_curv_bound_limit = 0.0
@@ -1800,6 +1899,11 @@ extern "C" void ML_BSSN_MP_O8_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_MP_O8::beta3_bound_limit = 0.0
#$bound$#ML_BSSN_MP_O8::beta3_bound_scalar = 0.0
+#$bound$#ML_BSSN_MP_O8::Theta_bound = "skip"
+#$bound$#ML_BSSN_MP_O8::Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_MP_O8::Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_MP_O8::Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_MP_O8::trK_bound = "skip"
#$bound$#ML_BSSN_MP_O8::trK_bound_speed = 1.0
#$bound$#ML_BSSN_MP_O8::trK_bound_limit = 0.0
diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Advect.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Advect.cc
index 68b8762..8a90bb1 100644
--- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Advect.cc
+++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Advect.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_MP_O8_Advect_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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]);
@@ -431,6 +436,12 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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;
@@ -585,6 +596,12 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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]);
@@ -738,6 +755,12 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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]);
@@ -891,6 +914,12 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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]);
@@ -1044,6 +1073,12 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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]);
@@ -1099,6 +1134,7 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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;
@@ -1124,6 +1160,7 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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;
@@ -1149,6 +1186,7 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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;
@@ -1174,6 +1212,7 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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;
@@ -1199,6 +1238,7 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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;
@@ -1224,6 +1264,7 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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;
@@ -1294,6 +1335,9 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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)));
@@ -1369,6 +1413,9 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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)));
@@ -1444,6 +1491,9 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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)));
@@ -1519,6 +1569,9 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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)));
@@ -1594,6 +1647,9 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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)));
@@ -1669,6 +1725,9 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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)));
@@ -1725,6 +1784,8 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
JacPDupwindNthAnti1phi = PDupwindNthAnti1phi;
+ JacPDupwindNthAnti1Theta = PDupwindNthAnti1Theta;
+
JacPDupwindNthAnti1trK = PDupwindNthAnti1trK;
JacPDupwindNthAnti1Xt1 = PDupwindNthAnti1Xt1;
@@ -1775,6 +1836,8 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
JacPDupwindNthSymm1phi = PDupwindNthSymm1phi;
+ JacPDupwindNthSymm1Theta = PDupwindNthSymm1Theta;
+
JacPDupwindNthSymm1trK = PDupwindNthSymm1trK;
JacPDupwindNthSymm1Xt1 = PDupwindNthSymm1Xt1;
@@ -1825,6 +1888,8 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
JacPDupwindNthAnti2phi = PDupwindNthAnti2phi;
+ JacPDupwindNthAnti2Theta = PDupwindNthAnti2Theta;
+
JacPDupwindNthAnti2trK = PDupwindNthAnti2trK;
JacPDupwindNthAnti2Xt1 = PDupwindNthAnti2Xt1;
@@ -1875,6 +1940,8 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
JacPDupwindNthSymm2phi = PDupwindNthSymm2phi;
+ JacPDupwindNthSymm2Theta = PDupwindNthSymm2Theta;
+
JacPDupwindNthSymm2trK = PDupwindNthSymm2trK;
JacPDupwindNthSymm2Xt1 = PDupwindNthSymm2Xt1;
@@ -1925,6 +1992,8 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
JacPDupwindNthAnti3phi = PDupwindNthAnti3phi;
+ JacPDupwindNthAnti3Theta = PDupwindNthAnti3Theta;
+
JacPDupwindNthAnti3trK = PDupwindNthAnti3trK;
JacPDupwindNthAnti3Xt1 = PDupwindNthAnti3Xt1;
@@ -1975,6 +2044,8 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
JacPDupwindNthSymm3phi = PDupwindNthSymm3phi;
+ JacPDupwindNthSymm3Theta = PDupwindNthSymm3Theta;
+
JacPDupwindNthSymm3trK = PDupwindNthSymm3trK;
JacPDupwindNthSymm3Xt1 = PDupwindNthSymm3Xt1;
@@ -2014,6 +2085,9 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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,IfThen(conformalMethod ==
+ 2,kmadd(beta1L,JacPDupwindNthAnti1Theta,kmadd(beta2L,JacPDupwindNthAnti2Theta,kmadd(beta3L,JacPDupwindNthAnti3Theta,kmadd(JacPDupwindNthSymm1Theta,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Theta,kfabs(beta2L),kmul(JacPDupwindNthSymm3Theta,kfabs(beta3L))))))),ToReal(0)));
+
trKrhsL =
kadd(trKrhsL,kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L))))))));
@@ -2082,6 +2156,7 @@ static void ML_BSSN_MP_O8_Advect_Body(cGH const * restrict const cctkGH, int con
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);
@@ -2123,9 +2198,11 @@ extern "C" void ML_BSSN_MP_O8_Advect(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_metricrhs",
"ML_BSSN_MP_O8::ML_shift",
"ML_BSSN_MP_O8::ML_shiftrhs",
+ "ML_BSSN_MP_O8::ML_Theta",
+ "ML_BSSN_MP_O8::ML_Thetarhs",
"ML_BSSN_MP_O8::ML_trace_curv",
"ML_BSSN_MP_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_Advect", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_Advect", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Dissipation.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Dissipation.cc
index e881266..82aa4fa 100644
--- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Dissipation.cc
+++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_Dissipation.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_MP_O8_Dissipation_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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]);
@@ -368,6 +373,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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;
@@ -447,6 +455,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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]);
@@ -525,6 +536,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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]);
@@ -603,6 +617,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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]);
@@ -681,6 +698,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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]);
@@ -718,6 +738,7 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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;
@@ -743,6 +764,7 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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;
@@ -768,6 +790,7 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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;
@@ -838,6 +861,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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)));
@@ -913,6 +939,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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)));
@@ -988,6 +1017,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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)));
@@ -1044,6 +1076,8 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
JacPDdissipationNth1phi = PDdissipationNth1phi;
+ JacPDdissipationNth1Theta = PDdissipationNth1Theta;
+
JacPDdissipationNth1trK = PDdissipationNth1trK;
JacPDdissipationNth1Xt1 = PDdissipationNth1Xt1;
@@ -1094,6 +1128,8 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
JacPDdissipationNth2phi = PDdissipationNth2phi;
+ JacPDdissipationNth2Theta = PDdissipationNth2Theta;
+
JacPDdissipationNth2trK = PDdissipationNth2trK;
JacPDdissipationNth2Xt1 = PDdissipationNth2Xt1;
@@ -1144,6 +1180,8 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
JacPDdissipationNth3phi = PDdissipationNth3phi;
+ JacPDdissipationNth3Theta = PDdissipationNth3Theta;
+
JacPDdissipationNth3trK = PDdissipationNth3trK;
JacPDdissipationNth3Xt1 = PDdissipationNth3Xt1;
@@ -1189,6 +1227,9 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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))));
@@ -1257,6 +1298,7 @@ static void ML_BSSN_MP_O8_Dissipation_Body(cGH const * restrict const cctkGH, in
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);
@@ -1298,9 +1340,11 @@ extern "C" void ML_BSSN_MP_O8_Dissipation(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_metricrhs",
"ML_BSSN_MP_O8::ML_shift",
"ML_BSSN_MP_O8::ML_shiftrhs",
+ "ML_BSSN_MP_O8::ML_Theta",
+ "ML_BSSN_MP_O8::ML_Thetarhs",
"ML_BSSN_MP_O8::ML_trace_curv",
"ML_BSSN_MP_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_Dissipation", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_Dissipation", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitRHS.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitRHS.cc
index 078f49b..3e5e1ec 100644
--- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitRHS.cc
+++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitRHS.cc
@@ -256,6 +256,8 @@ static void ML_BSSN_MP_O8_InitRHS_Body(cGH const * restrict const cctkGH, int co
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_MP_O8_InitRHS_Body(cGH const * restrict const cctkGH, int co
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_MP_O8_InitRHS(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_log_confacrhs",
"ML_BSSN_MP_O8::ML_metricrhs",
"ML_BSSN_MP_O8::ML_shiftrhs",
+ "ML_BSSN_MP_O8::ML_Thetarhs",
"ML_BSSN_MP_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_InitRHS", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_InitRHS", 10, groups);
switch(fdOrder)
{
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..855989b 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);
@@ -256,6 +256,8 @@ static void ML_BSSN_MP_O8_Minkowski_Body(cGH const * restrict const cctkGH, int
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_MP_O8_Minkowski_Body(cGH const * restrict const cctkGH, int
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_MP_O8_Minkowski(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_log_confac",
"ML_BSSN_MP_O8::ML_metric",
"ML_BSSN_MP_O8::ML_shift",
+ "ML_BSSN_MP_O8::ML_Theta",
"ML_BSSN_MP_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_Minkowski", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_Minkowski", 10, groups);
switch(fdOrder)
{
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..c520cce 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
@@ -50,6 +50,9 @@ extern "C" void ML_BSSN_MP_O8_RHS1_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_trace_curvrhs.");
@@ -254,6 +257,7 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -363,27 +367,81 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)
{
@@ -427,27 +485,81 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
PDstandardNth1gt11 = PDstandardNthfdOrder21(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder22(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder23(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder211(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder222(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder233(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder212(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder213(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder223(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder21(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder22(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder23(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder211(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder222(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder233(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder212(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder213(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder223(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder21(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder22(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder23(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder211(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder222(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder233(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder212(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder213(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder223(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder21(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder22(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder23(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder211(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder222(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder233(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder212(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder213(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder223(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder21(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder22(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder23(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder211(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder222(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder233(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder212(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder213(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder223(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder21(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder22(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder23(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder211(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder222(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder233(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder212(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder213(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder223(&gt33[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:
@@ -490,27 +602,81 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
PDstandardNth1gt11 = PDstandardNthfdOrder41(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder42(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder43(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder411(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder422(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder433(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder412(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder413(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder423(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder41(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder42(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder43(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder411(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder422(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder433(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder412(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder413(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder423(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder41(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder42(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder43(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder411(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder422(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder433(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder412(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder413(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder423(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder41(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder42(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder43(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder411(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder422(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder433(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder412(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder413(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder423(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder41(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder42(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder43(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder411(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder422(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder433(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder412(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder413(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder423(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder41(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder42(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder43(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder411(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder422(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder433(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder412(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder413(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder423(&gt33[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:
@@ -553,27 +719,81 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
PDstandardNth1gt11 = PDstandardNthfdOrder61(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder62(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder63(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder611(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder622(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder633(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder612(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder613(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder623(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder61(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder62(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder63(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder611(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder622(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder633(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder612(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder613(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder623(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder61(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder62(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder63(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder611(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder622(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder633(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder612(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder613(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder623(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder61(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder62(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder63(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder611(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder622(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder633(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder612(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder613(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder623(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder61(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder62(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder63(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder611(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder622(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder633(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder612(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder613(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder623(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder61(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder62(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder63(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder611(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder622(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder633(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder612(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder613(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder623(&gt33[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:
@@ -616,27 +836,81 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
PDstandardNth1gt11 = PDstandardNthfdOrder81(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder82(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder83(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder811(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder822(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder833(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder812(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder813(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder823(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder81(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder82(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder83(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder811(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder822(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder833(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder812(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder813(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder823(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder81(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder82(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder83(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder811(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder822(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder833(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder812(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder813(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder823(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder81(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder82(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder83(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder811(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder822(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder833(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder812(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder813(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder823(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder81(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder82(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder83(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder811(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder822(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder833(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder812(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder813(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder823(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder81(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder82(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder83(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder811(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder822(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder833(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder812(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder813(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder823(&gt33[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;
}
@@ -651,14 +925,35 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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;
@@ -670,19 +965,43 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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;
@@ -694,19 +1013,42 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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;
@@ -718,7 +1060,11 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)
{
@@ -755,9 +1101,21 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -791,9 +1149,21 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -827,9 +1197,21 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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))))))));
@@ -842,6 +1224,27 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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))))))));
@@ -854,6 +1257,27 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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))))))));
@@ -866,6 +1290,27 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)))))));
@@ -878,6 +1323,27 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)))))));
@@ -890,6 +1356,27 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)))))));
@@ -902,6 +1389,24 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)))))));
@@ -914,6 +1419,27 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)))))));
@@ -926,6 +1452,24 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)))))));
@@ -937,6 +1481,24 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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
{
@@ -962,8 +1524,16 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth1phi = PDstandardNth1phi;
+ JacPDstandardNth1Theta = PDstandardNth1Theta;
+
JacPDstandardNth1trK = PDstandardNth1trK;
+ JacPDstandardNth1Xt1 = PDstandardNth1Xt1;
+
+ JacPDstandardNth1Xt2 = PDstandardNth1Xt2;
+
+ JacPDstandardNth1Xt3 = PDstandardNth1Xt3;
+
JacPDstandardNth2alpha = PDstandardNth2alpha;
JacPDstandardNth2beta1 = PDstandardNth2beta1;
@@ -986,8 +1556,16 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth2phi = PDstandardNth2phi;
+ JacPDstandardNth2Theta = PDstandardNth2Theta;
+
JacPDstandardNth2trK = PDstandardNth2trK;
+ JacPDstandardNth2Xt1 = PDstandardNth2Xt1;
+
+ JacPDstandardNth2Xt2 = PDstandardNth2Xt2;
+
+ JacPDstandardNth2Xt3 = PDstandardNth2Xt3;
+
JacPDstandardNth3alpha = PDstandardNth3alpha;
JacPDstandardNth3beta1 = PDstandardNth3beta1;
@@ -1010,8 +1588,16 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth3phi = PDstandardNth3phi;
+ JacPDstandardNth3Theta = PDstandardNth3Theta;
+
JacPDstandardNth3trK = PDstandardNth3trK;
+ JacPDstandardNth3Xt1 = PDstandardNth3Xt1;
+
+ JacPDstandardNth3Xt2 = PDstandardNth3Xt2;
+
+ JacPDstandardNth3Xt3 = PDstandardNth3Xt3;
+
JacPDstandardNth11alpha = PDstandardNth11alpha;
JacPDstandardNth11beta1 = PDstandardNth11beta1;
@@ -1020,6 +1606,20 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth11beta3 = PDstandardNth11beta3;
+ JacPDstandardNth11gt11 = PDstandardNth11gt11;
+
+ JacPDstandardNth11gt12 = PDstandardNth11gt12;
+
+ JacPDstandardNth11gt13 = PDstandardNth11gt13;
+
+ JacPDstandardNth11gt22 = PDstandardNth11gt22;
+
+ JacPDstandardNth11gt23 = PDstandardNth11gt23;
+
+ JacPDstandardNth11gt33 = PDstandardNth11gt33;
+
+ JacPDstandardNth11phi = PDstandardNth11phi;
+
JacPDstandardNth22alpha = PDstandardNth22alpha;
JacPDstandardNth22beta1 = PDstandardNth22beta1;
@@ -1028,6 +1628,20 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth22beta3 = PDstandardNth22beta3;
+ JacPDstandardNth22gt11 = PDstandardNth22gt11;
+
+ JacPDstandardNth22gt12 = PDstandardNth22gt12;
+
+ JacPDstandardNth22gt13 = PDstandardNth22gt13;
+
+ JacPDstandardNth22gt22 = PDstandardNth22gt22;
+
+ JacPDstandardNth22gt23 = PDstandardNth22gt23;
+
+ JacPDstandardNth22gt33 = PDstandardNth22gt33;
+
+ JacPDstandardNth22phi = PDstandardNth22phi;
+
JacPDstandardNth33alpha = PDstandardNth33alpha;
JacPDstandardNth33beta1 = PDstandardNth33beta1;
@@ -1036,6 +1650,20 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth33beta3 = PDstandardNth33beta3;
+ JacPDstandardNth33gt11 = PDstandardNth33gt11;
+
+ JacPDstandardNth33gt12 = PDstandardNth33gt12;
+
+ JacPDstandardNth33gt13 = PDstandardNth33gt13;
+
+ JacPDstandardNth33gt22 = PDstandardNth33gt22;
+
+ JacPDstandardNth33gt23 = PDstandardNth33gt23;
+
+ JacPDstandardNth33gt33 = PDstandardNth33gt33;
+
+ JacPDstandardNth33phi = PDstandardNth33phi;
+
JacPDstandardNth12alpha = PDstandardNth12alpha;
JacPDstandardNth12beta1 = PDstandardNth12beta1;
@@ -1044,6 +1672,20 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth12beta3 = PDstandardNth12beta3;
+ JacPDstandardNth12gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth12gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth12gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth12gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth12gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth12gt33 = PDstandardNth12gt33;
+
+ JacPDstandardNth12phi = PDstandardNth12phi;
+
JacPDstandardNth13alpha = PDstandardNth13alpha;
JacPDstandardNth13beta1 = PDstandardNth13beta1;
@@ -1052,6 +1694,20 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth13beta3 = PDstandardNth13beta3;
+ JacPDstandardNth13gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth13gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth13gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth13gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth13gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth13gt33 = PDstandardNth13gt33;
+
+ JacPDstandardNth13phi = PDstandardNth13phi;
+
JacPDstandardNth21alpha = PDstandardNth12alpha;
JacPDstandardNth21beta1 = PDstandardNth12beta1;
@@ -1060,6 +1716,18 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth21beta3 = PDstandardNth12beta3;
+ JacPDstandardNth21gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth21gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth21gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth21gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth21gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth21gt33 = PDstandardNth12gt33;
+
JacPDstandardNth23alpha = PDstandardNth23alpha;
JacPDstandardNth23beta1 = PDstandardNth23beta1;
@@ -1068,6 +1736,20 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth23beta3 = PDstandardNth23beta3;
+ JacPDstandardNth23gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth23gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth23gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth23gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth23gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth23gt33 = PDstandardNth23gt33;
+
+ JacPDstandardNth23phi = PDstandardNth23phi;
+
JacPDstandardNth31alpha = PDstandardNth13alpha;
JacPDstandardNth31beta1 = PDstandardNth13beta1;
@@ -1076,6 +1758,18 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth31beta3 = PDstandardNth13beta3;
+ JacPDstandardNth31gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth31gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth31gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth31gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth31gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth31gt33 = PDstandardNth13gt33;
+
JacPDstandardNth32alpha = PDstandardNth23alpha;
JacPDstandardNth32beta1 = PDstandardNth23beta1;
@@ -1083,6 +1777,18 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
JacPDstandardNth32beta2 = PDstandardNth23beta2;
JacPDstandardNth32beta3 = PDstandardNth23beta3;
+
+ JacPDstandardNth32gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth32gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth32gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth32gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth32gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth32gt33 = PDstandardNth23gt33;
}
CCTK_REAL_VEC detgt = ToReal(1);
@@ -1150,6 +1856,87 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1213,8 +2000,79 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
+ 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);
@@ -1222,6 +2080,45 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1267,10 +2164,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC em4phi = INV(e4phi);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
+
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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,35 +2197,53 @@ 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))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3)),ToReal(-3),kmadd(gt11L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt11L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At11L,ToReal(3)))))));
CCTK_REAL_VEC gt12rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At12L,ToReal(-6)),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmadd(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3),kmul(alphaL,kmadd(At12L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt12L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt13rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At13L,ToReal(-6)),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At13L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt13L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt22rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmul(At22L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt22L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At22L,ToReal(3)))))));
CCTK_REAL_VEC gt23rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At23L,ToReal(-6)),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At23L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt23L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt33rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmul(At33L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt33L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At33L,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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmul(gtu33,JacPDstandardNth33beta1))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmadd(gtu33,JacPDstandardNth33beta1,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1Theta,kmadd(gtu12,JacPDstandardNth2Theta,kmul(gtu13,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z1,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmul(gtu33,JacPDstandardNth33beta2)))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(JacPDstandardNth21beta2,ToReal(3),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu12,JacPDstandardNth21beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmadd(gtu33,JacPDstandardNth33beta2,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1Theta,kmadd(gtu22,JacPDstandardNth2Theta,kmul(gtu23,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z2,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kmadd(JacPDstandardNth12beta2,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),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),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmul(gtu23,JacPDstandardNth32beta3)))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,JacPDstandardNth1alpha,kmadd(Atu23,JacPDstandardNth2alpha,kmul(Atu33,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta3,Xtn1,kmul(JacPDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmadd(gtu23,JacPDstandardNth32beta3,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1Theta,kmadd(gtu23,JacPDstandardNth2Theta,kmul(gtu33,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z3,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0)))))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
CCTK_REAL_VEC Xt1rhsL = dotXt1;
@@ -1323,16 +2251,23 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC Xt3rhsL = dotXt3;
- CCTK_REAL_VEC dottrK =
- kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha))))))))))));
+ CCTK_REAL_VEC dotTheta = IfThen(conformalMethod ==
+ 2,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)))),ToReal(0));
+
+ CCTK_REAL_VEC ThetarhsL = dotTheta;
+
+ CCTK_REAL_VEC dottrK = kadd(IfThen(conformalMethod ==
+ 2,kmsub(kadd(dotTheta,kmadd(JacPDstandardNth1alpha,Z1,kmadd(JacPDstandardNth2alpha,Z2,kmul(JacPDstandardNth3alpha,Z3)))),ToReal(2),kmul(alphaL,kmul(ThetaL,kmul(ToReal(dampk1),kadd(ToReal(-1),ToReal(dampk2)))))),ToReal(0)),kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha)))))))))))));
CCTK_REAL_VEC trKrhsL = dottrK;
CCTK_REAL_VEC alpharhsL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmadd(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),trKL),ksub(ToReal(1),ToReal(LapseACoeff)))))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kadd(trKL,kmsub(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)))),ksub(ToReal(1),ToReal(LapseACoeff)))))));
- CCTK_REAL_VEC ArhsL =
- kmul(knmsub(AL,ToReal(AlphaDriver),dottrK),ToReal(LapseACoeff));
+ CCTK_REAL_VEC ArhsL = kneg(kmul(kadd(IfThen(conformalMethod ==
+ 2,kmul(dotTheta,ToReal(2)),ToReal(0)),kmsub(AL,ToReal(AlphaDriver),dottrK)),ToReal(LapseACoeff)));
CCTK_REAL_VEC eta =
kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius));
@@ -1393,6 +2328,7 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const
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);
@@ -1435,9 +2371,11 @@ extern "C" void ML_BSSN_MP_O8_RHS1(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_metricrhs",
"ML_BSSN_MP_O8::ML_shift",
"ML_BSSN_MP_O8::ML_shiftrhs",
+ "ML_BSSN_MP_O8::ML_Theta",
+ "ML_BSSN_MP_O8::ML_Thetarhs",
"ML_BSSN_MP_O8::ML_trace_curv",
"ML_BSSN_MP_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_RHS1", 19, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_RHS1", 21, groups);
switch(fdOrder)
{
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..1622f64 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
@@ -228,6 +228,7 @@ static void ML_BSSN_MP_O8_RHS2_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -1626,6 +1627,59 @@ 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 Z1;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1698,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 +1707,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,46 +1773,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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))))));
@@ -1785,22 +1816,34 @@ static void ML_BSSN_MP_O8_RHS2_Body(cGH const * restrict const cctkGH, int const
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(Atm11,ToReal(6))),kmul(em4phi,kmul(kmadd(g11,kmul(trS,ToReal(-8)),kmul(eTxxL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats11,ToReal(3),kmul(g11,trAts)),kmadd(At11L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm22,ToReal(-2),trKL),kmul(em4phi,kmadd(g12,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxyL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At22L,JacPDstandardNth1beta2,kmadd(At23L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth2beta1,kmadd(At13L,JacPDstandardNth2beta3,kmadd(At12L,kmadd(JacPDstandardNth3beta3,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats12,kmadd(g12,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g12,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxyL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm12,kmul(At13L,Atm32)),ToReal(2),kmul(At12L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm22,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g13,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At23L,JacPDstandardNth1beta2,kmadd(At33L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth3beta1,kmadd(At12L,JacPDstandardNth3beta2,kmadd(At13L,kmadd(JacPDstandardNth2beta2,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats13,kmadd(g13,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g13,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm13,kmul(At12L,Atm23)),ToReal(2),kmul(At13L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm22,ToReal(6))),kmul(em4phi,kmul(kmadd(g22,kmul(trS,ToReal(-8)),kmul(eTyyL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats22,ToReal(3),kmul(g22,trAts)),kmadd(At22L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g23,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTyzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At13L,JacPDstandardNth2beta1,kmadd(At33L,JacPDstandardNth2beta3,kmadd(At12L,JacPDstandardNth3beta1,kmadd(At22L,JacPDstandardNth3beta2,kmadd(At23L,kmadd(JacPDstandardNth1beta1,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats23,kmadd(g23,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g23,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTyzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At12L,Atm13,kmul(At22L,Atm23)),ToReal(2),kmul(At23L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(6))),kmul(em4phi,kmul(kmadd(g33,kmul(trS,ToReal(-8)),kmul(eTzzL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats33,ToReal(3),kmul(g33,trAts)),kmadd(At33L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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);
@@ -1838,8 +1881,9 @@ extern "C" void ML_BSSN_MP_O8_RHS2(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_log_confac",
"ML_BSSN_MP_O8::ML_metric",
"ML_BSSN_MP_O8::ML_shift",
+ "ML_BSSN_MP_O8::ML_Theta",
"ML_BSSN_MP_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_RHS2", 8, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_RHS2", 9, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHSStaticBoundary.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHSStaticBoundary.cc
index 56504f3..f2cbf73 100644
--- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHSStaticBoundary.cc
+++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_RHSStaticBoundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_MP_O8_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_trace_curvrhs.");
@@ -292,6 +295,8 @@ static void ML_BSSN_MP_O8_RHSStaticBoundary_Body(cGH const * restrict const cctk
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_MP_O8_RHSStaticBoundary_Body(cGH const * restrict const cctk
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_MP_O8_RHSStaticBoundary(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_log_confacrhs",
"ML_BSSN_MP_O8::ML_metricrhs",
"ML_BSSN_MP_O8::ML_shiftrhs",
+ "ML_BSSN_MP_O8::ML_Thetarhs",
"ML_BSSN_MP_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_RHSStaticBoundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_RHSStaticBoundary", 10, groups);
switch(fdOrder)
{
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..227c252 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
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_MP_O8_boundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_shift","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_Theta","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_Theta.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP_O8::ML_trace_curv","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP_O8::ML_trace_curv.");
@@ -258,7 +261,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);
@@ -292,6 +295,8 @@ static void ML_BSSN_MP_O8_boundary_Body(cGH const * restrict const cctkGH, int c
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_MP_O8_boundary_Body(cGH const * restrict const cctkGH, int c
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_MP_O8_boundary(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_log_confac",
"ML_BSSN_MP_O8::ML_metric",
"ML_BSSN_MP_O8::ML_shift",
+ "ML_BSSN_MP_O8::ML_Theta",
"ML_BSSN_MP_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_boundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_boundary", 10, groups);
switch(fdOrder)
{
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..a86f572 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,59 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1501,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 +1510,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,34 +1549,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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)))));
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..edb0595 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);
@@ -315,6 +315,8 @@ static void ML_BSSN_MP_O8_convertFromADMBase_Body(cGH const * restrict const cct
CCTK_REAL_VEC At33L =
kmul(em4phi,kmadd(trKL,kmul(g33,ToReal(-0.333333333333333333333333333333)),kzzL));
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = alpL;
CCTK_REAL_VEC beta1L = betaxL;
@@ -342,6 +344,7 @@ static void ML_BSSN_MP_O8_convertFromADMBase_Body(cGH const * restrict const cct
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_BSSN_MP_O8_convertFromADMBase);
@@ -373,8 +376,9 @@ extern "C" void ML_BSSN_MP_O8_convertFromADMBase(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_log_confac",
"ML_BSSN_MP_O8::ML_metric",
"ML_BSSN_MP_O8::ML_shift",
+ "ML_BSSN_MP_O8::ML_Theta",
"ML_BSSN_MP_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_convertFromADMBase", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_convertFromADMBase", 11, groups);
switch(fdOrder)
{
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_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShift.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShift.cc
index ceecbd6..946f286 100644
--- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShift.cc
+++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShift.cc
@@ -230,6 +230,7 @@ static void ML_BSSN_MP_O8_convertToADMBaseDtLapseShift_Body(cGH const * restrict
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]);
@@ -838,7 +839,9 @@ static void ML_BSSN_MP_O8_convertToADMBaseDtLapseShift_Body(cGH const * restrict
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(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kmsub(kmadd(beta1L,JacPDupwindNthAnti1alpha,kmadd(beta2L,JacPDupwindNthAnti2alpha,kmadd(beta3L,JacPDupwindNthAnti3alpha,kmadd(JacPDupwindNthSymm1alpha,kfabs(beta1L),kmadd(JacPDupwindNthSymm2alpha,kfabs(beta2L),kmul(JacPDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),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)))));
@@ -887,8 +890,9 @@ extern "C" void ML_BSSN_MP_O8_convertToADMBaseDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_log_confac",
"ML_BSSN_MP_O8::ML_metric",
"ML_BSSN_MP_O8::ML_shift",
+ "ML_BSSN_MP_O8::ML_Theta",
"ML_BSSN_MP_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_convertToADMBaseDtLapseShift", 12, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_convertToADMBaseDtLapseShift", 13, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary.cc
index 2d6b9cf..e1db887 100644
--- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary.cc
+++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary.cc
@@ -223,6 +223,7 @@ static void ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary_Body(cGH const *
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]);
@@ -257,7 +258,9 @@ static void ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary_Body(cGH const *
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -319,8 +322,9 @@ extern "C" void ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary(CCTK_ARGUMENT
"ML_BSSN_MP_O8::ML_Gamma",
"ML_BSSN_MP_O8::ML_lapse",
"ML_BSSN_MP_O8::ML_shift",
+ "ML_BSSN_MP_O8::ML_Theta",
"ML_BSSN_MP_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_convertToADMBaseDtLapseShiftBoundary", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift.cc
index e299e55..256fc6e 100644
--- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift.cc
+++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift.cc
@@ -208,6 +208,7 @@ static void ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift_Body(cGH const * rest
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]);
@@ -242,7 +243,9 @@ static void ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift_Body(cGH const * rest
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -304,8 +307,9 @@ extern "C" void ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_MP_O8::ML_Gamma",
"ML_BSSN_MP_O8::ML_lapse",
"ML_BSSN_MP_O8::ML_shift",
+ "ML_BSSN_MP_O8::ML_Theta",
"ML_BSSN_MP_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_convertToADMBaseFakeDtLapseShift", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_MP_O8/src/RegisterMoL.cc b/ML_BSSN_MP_O8/src/RegisterMoL.cc
index df47d57..3de6284 100644
--- a/ML_BSSN_MP_O8/src/RegisterMoL.cc
+++ b/ML_BSSN_MP_O8/src/RegisterMoL.cc
@@ -36,6 +36,7 @@ extern "C" void ML_BSSN_MP_O8_RegisterVars(CCTK_ARGUMENTS)
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP_O8::beta1"), CCTK_VarIndex("ML_BSSN_MP_O8::beta1rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP_O8::beta2"), CCTK_VarIndex("ML_BSSN_MP_O8::beta2rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP_O8::beta3"), CCTK_VarIndex("ML_BSSN_MP_O8::beta3rhs"));
+ ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP_O8::Theta"), CCTK_VarIndex("ML_BSSN_MP_O8::Thetarhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_MP_O8::trK"), CCTK_VarIndex("ML_BSSN_MP_O8::trKrhs"));
/* Register all the evolved Array functions with MoL */
diff --git a/ML_BSSN_MP_O8/src/RegisterSymmetries.cc b/ML_BSSN_MP_O8/src/RegisterSymmetries.cc
index 9fc5aa8..204bef1 100644
--- a/ML_BSSN_MP_O8/src/RegisterSymmetries.cc
+++ b/ML_BSSN_MP_O8/src/RegisterSymmetries.cc
@@ -139,6 +139,11 @@ extern "C" void ML_BSSN_MP_O8_RegisterSymmetries(CCTK_ARGUMENTS)
sym[0] = 1;
sym[1] = 1;
sym[2] = 1;
+ SetCartSymVN(cctkGH, sym, "ML_BSSN_MP_O8::Theta");
+
+ sym[0] = 1;
+ sym[1] = 1;
+ sym[2] = 1;
SetCartSymVN(cctkGH, sym, "ML_BSSN_MP_O8::trK");
sym[0] = 1;
diff --git a/ML_BSSN_O2/interface.ccl b/ML_BSSN_O2/interface.ccl
index 6b5a8f2..618f6ad 100644
--- a/ML_BSSN_O2/interface.ccl
+++ b/ML_BSSN_O2/interface.ccl
@@ -127,6 +127,12 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "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
@@ -197,6 +203,12 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "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
diff --git a/ML_BSSN_O2/param.ccl b/ML_BSSN_O2/param.ccl
index 3fdf2b9..a465b42 100644
--- a/ML_BSSN_O2/param.ccl
+++ b/ML_BSSN_O2/param.ccl
@@ -54,6 +54,18 @@ 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"
{
"*:*" :: ""
@@ -126,28 +138,28 @@ CCTK_REAL EpsDiss "Dissipation strength"
} 0
restricted:
-CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
+CCTK_INT conformalMethod "Treatment of conformal factor"
{
*:* :: ""
-} 2
+} 0
restricted:
-CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
+CCTK_INT GammaShift "Covariant shift term in Gamma"
{
*:* :: ""
} 0
restricted:
-CCTK_INT conformalMethod "Treatment of conformal factor"
+CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
{
*:* :: ""
-} 0
+} 2
restricted:
-CCTK_INT fdOrder "fdOrder"
+CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
{
*:* :: ""
-} 2
+} 0
restricted:
CCTK_INT harmonicShift "Whether to use the harmonic shift"
@@ -155,6 +167,12 @@ CCTK_INT harmonicShift "Whether to use the harmonic shift"
*:* :: ""
} 0
+restricted:
+CCTK_INT fdOrder "fdOrder"
+{
+ *:* :: ""
+} 2
+
private:
KEYWORD my_initial_data "my_initial_data"
{
@@ -215,8 +233,8 @@ KEYWORD apply_dissipation "Whether to apply dissipation to the RHSs"
restricted:
CCTK_INT ML_BSSN_O2_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars STEERABLE=RECOVER
{
- 25:25 :: "Number of evolved variables used by this thorn"
-} 25
+ 26:26 :: "Number of evolved variables used by this thorn"
+} 26
restricted:
CCTK_INT ML_BSSN_O2_MaxNumArrayEvolvedVars "Number of Array evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_ArrayEvolved_Vars STEERABLE=RECOVER
@@ -747,6 +765,18 @@ KEYWORD beta3_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -855,6 +885,18 @@ KEYWORD ML_shift_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -1011,6 +1053,12 @@ CCTK_REAL beta3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS
} 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"
@@ -1065,6 +1113,12 @@ CCTK_REAL ML_shift_bound_speed "characteristic speed at boundary" STEERABLE=ALWA
} 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"
@@ -1215,6 +1269,12 @@ CCTK_REAL beta3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1269,6 +1329,12 @@ CCTK_REAL ML_shift_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1419,6 +1485,12 @@ CCTK_REAL beta3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
@@ -1473,6 +1545,12 @@ CCTK_REAL ML_shift_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
diff --git a/ML_BSSN_O2/schedule.ccl b/ML_BSSN_O2/schedule.ccl
index b607ca6..7ae050b 100644
--- a/ML_BSSN_O2/schedule.ccl
+++ b/ML_BSSN_O2/schedule.ccl
@@ -132,6 +132,19 @@ if (timelevels == 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)
@@ -249,6 +262,19 @@ if (rhs_timelevels == 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)
@@ -286,6 +312,7 @@ if (CCTK_EQUALS(my_initial_data, "Minkowski"))
WRITES: ML_BSSN_O2::ML_log_confac
WRITES: ML_BSSN_O2::ML_metric
WRITES: ML_BSSN_O2::ML_shift
+ WRITES: ML_BSSN_O2::ML_Theta
WRITES: ML_BSSN_O2::ML_trace_curv
} "ML_BSSN_O2_Minkowski"
}
@@ -307,6 +334,7 @@ if (CCTK_EQUALS(my_initial_data, "ADMBase"))
WRITES: ML_BSSN_O2::ML_log_confac
WRITES: ML_BSSN_O2::ML_metric
WRITES: ML_BSSN_O2::ML_shift
+ WRITES: ML_BSSN_O2::ML_Theta
WRITES: ML_BSSN_O2::ML_trace_curv
} "ML_BSSN_O2_convertFromADMBase"
}
@@ -358,6 +386,7 @@ schedule ML_BSSN_O2_RHS1 IN ML_BSSN_O2_evolCalcGroup
READS: ML_BSSN_O2::ML_log_confac
READS: ML_BSSN_O2::ML_metric
READS: ML_BSSN_O2::ML_shift
+ READS: ML_BSSN_O2::ML_Theta
READS: ML_BSSN_O2::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -369,6 +398,7 @@ schedule ML_BSSN_O2_RHS1 IN ML_BSSN_O2_evolCalcGroup
WRITES: ML_BSSN_O2::ML_log_confacrhs
WRITES: ML_BSSN_O2::ML_metricrhs
WRITES: ML_BSSN_O2::ML_shiftrhs
+ WRITES: ML_BSSN_O2::ML_Thetarhs
WRITES: ML_BSSN_O2::ML_trace_curvrhs
} "ML_BSSN_O2_RHS1"
@@ -383,6 +413,7 @@ schedule ML_BSSN_O2_RHS2 IN ML_BSSN_O2_evolCalcGroup
READS: ML_BSSN_O2::ML_log_confac
READS: ML_BSSN_O2::ML_metric
READS: ML_BSSN_O2::ML_shift
+ READS: ML_BSSN_O2::ML_Theta
READS: ML_BSSN_O2::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -412,6 +443,8 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
READS: ML_BSSN_O2::ML_metricrhs
READS: ML_BSSN_O2::ML_shift
READS: ML_BSSN_O2::ML_shiftrhs
+ READS: ML_BSSN_O2::ML_Theta
+ READS: ML_BSSN_O2::ML_Thetarhs
READS: ML_BSSN_O2::ML_trace_curv
READS: ML_BSSN_O2::ML_trace_curvrhs
WRITES: ML_BSSN_O2::ML_curvrhs
@@ -422,6 +455,7 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
WRITES: ML_BSSN_O2::ML_log_confacrhs
WRITES: ML_BSSN_O2::ML_metricrhs
WRITES: ML_BSSN_O2::ML_shiftrhs
+ WRITES: ML_BSSN_O2::ML_Thetarhs
WRITES: ML_BSSN_O2::ML_trace_curvrhs
} "ML_BSSN_O2_Dissipation"
}
@@ -445,6 +479,8 @@ schedule ML_BSSN_O2_Advect IN ML_BSSN_O2_evolCalcGroup AFTER (ML_BSSN_O2_RHS1 ML
READS: ML_BSSN_O2::ML_metricrhs
READS: ML_BSSN_O2::ML_shift
READS: ML_BSSN_O2::ML_shiftrhs
+ READS: ML_BSSN_O2::ML_Theta
+ READS: ML_BSSN_O2::ML_Thetarhs
READS: ML_BSSN_O2::ML_trace_curv
READS: ML_BSSN_O2::ML_trace_curvrhs
WRITES: ML_BSSN_O2::ML_curvrhs
@@ -455,6 +491,7 @@ schedule ML_BSSN_O2_Advect IN ML_BSSN_O2_evolCalcGroup AFTER (ML_BSSN_O2_RHS1 ML
WRITES: ML_BSSN_O2::ML_log_confacrhs
WRITES: ML_BSSN_O2::ML_metricrhs
WRITES: ML_BSSN_O2::ML_shiftrhs
+ WRITES: ML_BSSN_O2::ML_Thetarhs
WRITES: ML_BSSN_O2::ML_trace_curvrhs
} "ML_BSSN_O2_Advect"
@@ -469,6 +506,7 @@ schedule ML_BSSN_O2_InitRHS AT analysis BEFORE ML_BSSN_O2_evolCalcGroup
WRITES: ML_BSSN_O2::ML_log_confacrhs
WRITES: ML_BSSN_O2::ML_metricrhs
WRITES: ML_BSSN_O2::ML_shiftrhs
+ WRITES: ML_BSSN_O2::ML_Thetarhs
WRITES: ML_BSSN_O2::ML_trace_curvrhs
} "ML_BSSN_O2_InitRHS"
@@ -486,6 +524,7 @@ if (CCTK_EQUALS(my_rhs_boundary_condition, "static"))
WRITES: ML_BSSN_O2::ML_log_confacrhs
WRITES: ML_BSSN_O2::ML_metricrhs
WRITES: ML_BSSN_O2::ML_shiftrhs
+ WRITES: ML_BSSN_O2::ML_Thetarhs
WRITES: ML_BSSN_O2::ML_trace_curvrhs
} "ML_BSSN_O2_RHSStaticBoundary"
}
@@ -514,6 +553,7 @@ if (CCTK_EQUALS(my_boundary_condition, "Minkowski"))
WRITES: ML_BSSN_O2::ML_log_confac
WRITES: ML_BSSN_O2::ML_metric
WRITES: ML_BSSN_O2::ML_shift
+ WRITES: ML_BSSN_O2::ML_Theta
WRITES: ML_BSSN_O2::ML_trace_curv
} "ML_BSSN_O2_boundary"
}
@@ -551,6 +591,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_O2::ML_log_confac
READS: ML_BSSN_O2::ML_metric
READS: ML_BSSN_O2::ML_shift
+ READS: ML_BSSN_O2::ML_Theta
READS: ML_BSSN_O2::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -571,6 +612,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_O2::ML_lapse
READS: ML_BSSN_O2::ML_metric
READS: ML_BSSN_O2::ML_shift
+ READS: ML_BSSN_O2::ML_Theta
READS: ML_BSSN_O2::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -591,6 +633,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection"))
READS: ML_BSSN_O2::ML_lapse
READS: ML_BSSN_O2::ML_metric
READS: ML_BSSN_O2::ML_shift
+ READS: ML_BSSN_O2::ML_Theta
READS: ML_BSSN_O2::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -701,6 +744,7 @@ schedule ML_BSSN_O2_SelectBoundConds in MoL_PostStep
SYNC: ML_log_confac
SYNC: ML_metric
SYNC: ML_shift
+ SYNC: ML_Theta
SYNC: ML_trace_curv
} "select boundary conditions"
diff --git a/ML_BSSN_O2/src/Boundaries.cc b/ML_BSSN_O2/src/Boundaries.cc
index e711921..2a6334b 100644
--- a/ML_BSSN_O2/src/Boundaries.cc
+++ b/ML_BSSN_O2/src/Boundaries.cc
@@ -120,6 +120,17 @@ extern "C" void ML_BSSN_O2_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register ML_shift_bound BC for ML_BSSN_O2::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_BSSN_O2::ML_Theta", ML_Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register ML_Theta_bound BC for ML_BSSN_O2::ML_Theta!");
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "none" ) ||
CCTK_EQUALS(ML_trace_curv_bound, "static") ||
CCTK_EQUALS(ML_trace_curv_bound, "flat" ) ||
@@ -395,6 +406,17 @@ extern "C" void ML_BSSN_O2_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register beta3_bound BC for ML_BSSN_O2::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_BSSN_O2::Theta", Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Theta_bound BC for ML_BSSN_O2::Theta!");
+ }
+
if (CCTK_EQUALS(trK_bound, "none" ) ||
CCTK_EQUALS(trK_bound, "static") ||
CCTK_EQUALS(trK_bound, "flat" ) ||
@@ -558,6 +580,25 @@ extern "C" void ML_BSSN_O2_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_O2::ML_Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_O2::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1033,6 +1074,25 @@ extern "C" void ML_BSSN_O2_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_O2::Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_O2::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1188,6 +1248,23 @@ extern "C" void ML_BSSN_O2_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_O2::ML_Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Scalar BC for ML_BSSN_O2::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1613,6 +1690,23 @@ extern "C" void ML_BSSN_O2_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_O2::Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Error in registering Scalar BC for ML_BSSN_O2::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1675,6 +1769,11 @@ extern "C" void ML_BSSN_O2_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_O2::ML_shift_bound_limit = 0.0
#$bound$#ML_BSSN_O2::ML_shift_bound_scalar = 0.0
+#$bound$#ML_BSSN_O2::ML_Theta_bound = "skip"
+#$bound$#ML_BSSN_O2::ML_Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_O2::ML_Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_O2::ML_Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_O2::ML_trace_curv_bound = "skip"
#$bound$#ML_BSSN_O2::ML_trace_curv_bound_speed = 1.0
#$bound$#ML_BSSN_O2::ML_trace_curv_bound_limit = 0.0
@@ -1800,6 +1899,11 @@ extern "C" void ML_BSSN_O2_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_O2::beta3_bound_limit = 0.0
#$bound$#ML_BSSN_O2::beta3_bound_scalar = 0.0
+#$bound$#ML_BSSN_O2::Theta_bound = "skip"
+#$bound$#ML_BSSN_O2::Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_O2::Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_O2::Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_O2::trK_bound = "skip"
#$bound$#ML_BSSN_O2::trK_bound_speed = 1.0
#$bound$#ML_BSSN_O2::trK_bound_limit = 0.0
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_Advect.cc b/ML_BSSN_O2/src/ML_BSSN_O2_Advect.cc
index e0c80a1..a654997 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_Advect.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_Advect.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_O2_Advect_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -431,6 +436,12 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -585,6 +596,12 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -738,6 +755,12 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -891,6 +914,12 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -1044,6 +1073,12 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -1099,6 +1134,7 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1124,6 +1160,7 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1149,6 +1186,7 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1174,6 +1212,7 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1199,6 +1238,7 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1224,6 +1264,7 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1294,6 +1335,9 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1369,6 +1413,9 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1444,6 +1491,9 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1519,6 +1569,9 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1594,6 +1647,9 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1669,6 +1725,9 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1725,6 +1784,8 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti1phi = PDupwindNthAnti1phi;
+ JacPDupwindNthAnti1Theta = PDupwindNthAnti1Theta;
+
JacPDupwindNthAnti1trK = PDupwindNthAnti1trK;
JacPDupwindNthAnti1Xt1 = PDupwindNthAnti1Xt1;
@@ -1775,6 +1836,8 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm1phi = PDupwindNthSymm1phi;
+ JacPDupwindNthSymm1Theta = PDupwindNthSymm1Theta;
+
JacPDupwindNthSymm1trK = PDupwindNthSymm1trK;
JacPDupwindNthSymm1Xt1 = PDupwindNthSymm1Xt1;
@@ -1825,6 +1888,8 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti2phi = PDupwindNthAnti2phi;
+ JacPDupwindNthAnti2Theta = PDupwindNthAnti2Theta;
+
JacPDupwindNthAnti2trK = PDupwindNthAnti2trK;
JacPDupwindNthAnti2Xt1 = PDupwindNthAnti2Xt1;
@@ -1875,6 +1940,8 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm2phi = PDupwindNthSymm2phi;
+ JacPDupwindNthSymm2Theta = PDupwindNthSymm2Theta;
+
JacPDupwindNthSymm2trK = PDupwindNthSymm2trK;
JacPDupwindNthSymm2Xt1 = PDupwindNthSymm2Xt1;
@@ -1925,6 +1992,8 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti3phi = PDupwindNthAnti3phi;
+ JacPDupwindNthAnti3Theta = PDupwindNthAnti3Theta;
+
JacPDupwindNthAnti3trK = PDupwindNthAnti3trK;
JacPDupwindNthAnti3Xt1 = PDupwindNthAnti3Xt1;
@@ -1975,6 +2044,8 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm3phi = PDupwindNthSymm3phi;
+ JacPDupwindNthSymm3Theta = PDupwindNthSymm3Theta;
+
JacPDupwindNthSymm3trK = PDupwindNthSymm3trK;
JacPDupwindNthSymm3Xt1 = PDupwindNthSymm3Xt1;
@@ -2014,6 +2085,9 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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,IfThen(conformalMethod ==
+ 2,kmadd(beta1L,JacPDupwindNthAnti1Theta,kmadd(beta2L,JacPDupwindNthAnti2Theta,kmadd(beta3L,JacPDupwindNthAnti3Theta,kmadd(JacPDupwindNthSymm1Theta,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Theta,kfabs(beta2L),kmul(JacPDupwindNthSymm3Theta,kfabs(beta3L))))))),ToReal(0)));
+
trKrhsL =
kadd(trKrhsL,kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L))))))));
@@ -2082,6 +2156,7 @@ static void ML_BSSN_O2_Advect_Body(cGH const * restrict const cctkGH, int const
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);
@@ -2123,9 +2198,11 @@ extern "C" void ML_BSSN_O2_Advect(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_metricrhs",
"ML_BSSN_O2::ML_shift",
"ML_BSSN_O2::ML_shiftrhs",
+ "ML_BSSN_O2::ML_Theta",
+ "ML_BSSN_O2::ML_Thetarhs",
"ML_BSSN_O2::ML_trace_curv",
"ML_BSSN_O2::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_Advect", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_Advect", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_Dissipation.cc b/ML_BSSN_O2/src/ML_BSSN_O2_Dissipation.cc
index 255a4d1..9fe0ea4 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_Dissipation.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_Dissipation.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_O2_Dissipation_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -368,6 +373,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -447,6 +455,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -525,6 +536,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -603,6 +617,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -681,6 +698,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -718,6 +738,7 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -743,6 +764,7 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -768,6 +790,7 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -838,6 +861,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -913,6 +939,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -988,6 +1017,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -1044,6 +1076,8 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth1phi = PDdissipationNth1phi;
+ JacPDdissipationNth1Theta = PDdissipationNth1Theta;
+
JacPDdissipationNth1trK = PDdissipationNth1trK;
JacPDdissipationNth1Xt1 = PDdissipationNth1Xt1;
@@ -1094,6 +1128,8 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth2phi = PDdissipationNth2phi;
+ JacPDdissipationNth2Theta = PDdissipationNth2Theta;
+
JacPDdissipationNth2trK = PDdissipationNth2trK;
JacPDdissipationNth2Xt1 = PDdissipationNth2Xt1;
@@ -1144,6 +1180,8 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth3phi = PDdissipationNth3phi;
+ JacPDdissipationNth3Theta = PDdissipationNth3Theta;
+
JacPDdissipationNth3trK = PDdissipationNth3trK;
JacPDdissipationNth3Xt1 = PDdissipationNth3Xt1;
@@ -1189,6 +1227,9 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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))));
@@ -1257,6 +1298,7 @@ static void ML_BSSN_O2_Dissipation_Body(cGH const * restrict const cctkGH, int c
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);
@@ -1298,9 +1340,11 @@ extern "C" void ML_BSSN_O2_Dissipation(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_metricrhs",
"ML_BSSN_O2::ML_shift",
"ML_BSSN_O2::ML_shiftrhs",
+ "ML_BSSN_O2::ML_Theta",
+ "ML_BSSN_O2::ML_Thetarhs",
"ML_BSSN_O2::ML_trace_curv",
"ML_BSSN_O2::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_Dissipation", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_Dissipation", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_InitRHS.cc b/ML_BSSN_O2/src/ML_BSSN_O2_InitRHS.cc
index 9e86ac6..fef5c39 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_InitRHS.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_InitRHS.cc
@@ -256,6 +256,8 @@ static void ML_BSSN_O2_InitRHS_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_O2_InitRHS_Body(cGH const * restrict const cctkGH, int const
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_O2_InitRHS(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_log_confacrhs",
"ML_BSSN_O2::ML_metricrhs",
"ML_BSSN_O2::ML_shiftrhs",
+ "ML_BSSN_O2::ML_Thetarhs",
"ML_BSSN_O2::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_InitRHS", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_InitRHS", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_Minkowski.cc b/ML_BSSN_O2/src/ML_BSSN_O2_Minkowski.cc
index 3a9e014..d058d02 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);
@@ -256,6 +256,8 @@ static void ML_BSSN_O2_Minkowski_Body(cGH const * restrict const cctkGH, int con
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_O2_Minkowski_Body(cGH const * restrict const cctkGH, int con
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_O2_Minkowski(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_log_confac",
"ML_BSSN_O2::ML_metric",
"ML_BSSN_O2::ML_shift",
+ "ML_BSSN_O2::ML_Theta",
"ML_BSSN_O2::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_Minkowski", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_Minkowski", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc b/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc
index 89602bb..79a66a4 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.cc
@@ -50,6 +50,9 @@ extern "C" void ML_BSSN_O2_RHS1_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curvrhs.");
@@ -254,6 +257,7 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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]);
@@ -363,27 +367,81 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)
{
@@ -427,27 +485,81 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder21(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder22(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder23(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder211(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder222(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder233(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder212(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder213(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder223(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder21(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder22(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder23(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder211(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder222(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder233(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder212(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder213(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder223(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder21(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder22(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder23(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder211(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder222(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder233(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder212(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder213(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder223(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder21(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder22(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder23(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder211(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder222(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder233(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder212(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder213(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder223(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder21(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder22(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder23(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder211(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder222(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder233(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder212(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder213(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder223(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder21(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder22(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder23(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder211(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder222(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder233(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder212(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder213(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder223(&gt33[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:
@@ -490,27 +602,81 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder41(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder42(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder43(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder411(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder422(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder433(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder412(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder413(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder423(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder41(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder42(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder43(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder411(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder422(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder433(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder412(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder413(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder423(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder41(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder42(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder43(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder411(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder422(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder433(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder412(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder413(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder423(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder41(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder42(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder43(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder411(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder422(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder433(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder412(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder413(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder423(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder41(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder42(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder43(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder411(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder422(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder433(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder412(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder413(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder423(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder41(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder42(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder43(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder411(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder422(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder433(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder412(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder413(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder423(&gt33[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:
@@ -553,27 +719,81 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder61(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder62(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder63(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder611(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder622(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder633(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder612(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder613(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder623(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder61(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder62(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder63(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder611(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder622(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder633(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder612(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder613(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder623(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder61(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder62(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder63(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder611(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder622(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder633(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder612(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder613(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder623(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder61(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder62(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder63(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder611(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder622(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder633(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder612(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder613(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder623(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder61(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder62(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder63(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder611(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder622(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder633(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder612(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder613(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder623(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder61(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder62(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder63(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder611(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder622(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder633(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder612(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder613(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder623(&gt33[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:
@@ -616,27 +836,81 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder81(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder82(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder83(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder811(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder822(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder833(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder812(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder813(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder823(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder81(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder82(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder83(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder811(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder822(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder833(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder812(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder813(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder823(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder81(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder82(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder83(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder811(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder822(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder833(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder812(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder813(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder823(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder81(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder82(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder83(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder811(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder822(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder833(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder812(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder813(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder823(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder81(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder82(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder83(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder811(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder822(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder833(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder812(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder813(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder823(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder81(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder82(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder83(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder811(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder822(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder833(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder812(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder813(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder823(&gt33[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;
}
@@ -651,14 +925,35 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -670,19 +965,43 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -694,19 +1013,42 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -718,7 +1060,11 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)
{
@@ -755,9 +1101,21 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -791,9 +1149,21 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -827,9 +1197,21 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -842,6 +1224,27 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -854,6 +1257,27 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -866,6 +1290,27 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -878,6 +1323,27 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -890,6 +1356,27 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -902,6 +1389,24 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -914,6 +1419,27 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -926,6 +1452,24 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -937,6 +1481,24 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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
{
@@ -962,8 +1524,16 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth1phi = PDstandardNth1phi;
+ JacPDstandardNth1Theta = PDstandardNth1Theta;
+
JacPDstandardNth1trK = PDstandardNth1trK;
+ JacPDstandardNth1Xt1 = PDstandardNth1Xt1;
+
+ JacPDstandardNth1Xt2 = PDstandardNth1Xt2;
+
+ JacPDstandardNth1Xt3 = PDstandardNth1Xt3;
+
JacPDstandardNth2alpha = PDstandardNth2alpha;
JacPDstandardNth2beta1 = PDstandardNth2beta1;
@@ -986,8 +1556,16 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth2phi = PDstandardNth2phi;
+ JacPDstandardNth2Theta = PDstandardNth2Theta;
+
JacPDstandardNth2trK = PDstandardNth2trK;
+ JacPDstandardNth2Xt1 = PDstandardNth2Xt1;
+
+ JacPDstandardNth2Xt2 = PDstandardNth2Xt2;
+
+ JacPDstandardNth2Xt3 = PDstandardNth2Xt3;
+
JacPDstandardNth3alpha = PDstandardNth3alpha;
JacPDstandardNth3beta1 = PDstandardNth3beta1;
@@ -1010,8 +1588,16 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth3phi = PDstandardNth3phi;
+ JacPDstandardNth3Theta = PDstandardNth3Theta;
+
JacPDstandardNth3trK = PDstandardNth3trK;
+ JacPDstandardNth3Xt1 = PDstandardNth3Xt1;
+
+ JacPDstandardNth3Xt2 = PDstandardNth3Xt2;
+
+ JacPDstandardNth3Xt3 = PDstandardNth3Xt3;
+
JacPDstandardNth11alpha = PDstandardNth11alpha;
JacPDstandardNth11beta1 = PDstandardNth11beta1;
@@ -1020,6 +1606,20 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth11beta3 = PDstandardNth11beta3;
+ JacPDstandardNth11gt11 = PDstandardNth11gt11;
+
+ JacPDstandardNth11gt12 = PDstandardNth11gt12;
+
+ JacPDstandardNth11gt13 = PDstandardNth11gt13;
+
+ JacPDstandardNth11gt22 = PDstandardNth11gt22;
+
+ JacPDstandardNth11gt23 = PDstandardNth11gt23;
+
+ JacPDstandardNth11gt33 = PDstandardNth11gt33;
+
+ JacPDstandardNth11phi = PDstandardNth11phi;
+
JacPDstandardNth22alpha = PDstandardNth22alpha;
JacPDstandardNth22beta1 = PDstandardNth22beta1;
@@ -1028,6 +1628,20 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth22beta3 = PDstandardNth22beta3;
+ JacPDstandardNth22gt11 = PDstandardNth22gt11;
+
+ JacPDstandardNth22gt12 = PDstandardNth22gt12;
+
+ JacPDstandardNth22gt13 = PDstandardNth22gt13;
+
+ JacPDstandardNth22gt22 = PDstandardNth22gt22;
+
+ JacPDstandardNth22gt23 = PDstandardNth22gt23;
+
+ JacPDstandardNth22gt33 = PDstandardNth22gt33;
+
+ JacPDstandardNth22phi = PDstandardNth22phi;
+
JacPDstandardNth33alpha = PDstandardNth33alpha;
JacPDstandardNth33beta1 = PDstandardNth33beta1;
@@ -1036,6 +1650,20 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth33beta3 = PDstandardNth33beta3;
+ JacPDstandardNth33gt11 = PDstandardNth33gt11;
+
+ JacPDstandardNth33gt12 = PDstandardNth33gt12;
+
+ JacPDstandardNth33gt13 = PDstandardNth33gt13;
+
+ JacPDstandardNth33gt22 = PDstandardNth33gt22;
+
+ JacPDstandardNth33gt23 = PDstandardNth33gt23;
+
+ JacPDstandardNth33gt33 = PDstandardNth33gt33;
+
+ JacPDstandardNth33phi = PDstandardNth33phi;
+
JacPDstandardNth12alpha = PDstandardNth12alpha;
JacPDstandardNth12beta1 = PDstandardNth12beta1;
@@ -1044,6 +1672,20 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth12beta3 = PDstandardNth12beta3;
+ JacPDstandardNth12gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth12gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth12gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth12gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth12gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth12gt33 = PDstandardNth12gt33;
+
+ JacPDstandardNth12phi = PDstandardNth12phi;
+
JacPDstandardNth13alpha = PDstandardNth13alpha;
JacPDstandardNth13beta1 = PDstandardNth13beta1;
@@ -1052,6 +1694,20 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth13beta3 = PDstandardNth13beta3;
+ JacPDstandardNth13gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth13gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth13gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth13gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth13gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth13gt33 = PDstandardNth13gt33;
+
+ JacPDstandardNth13phi = PDstandardNth13phi;
+
JacPDstandardNth21alpha = PDstandardNth12alpha;
JacPDstandardNth21beta1 = PDstandardNth12beta1;
@@ -1060,6 +1716,18 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth21beta3 = PDstandardNth12beta3;
+ JacPDstandardNth21gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth21gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth21gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth21gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth21gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth21gt33 = PDstandardNth12gt33;
+
JacPDstandardNth23alpha = PDstandardNth23alpha;
JacPDstandardNth23beta1 = PDstandardNth23beta1;
@@ -1068,6 +1736,20 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth23beta3 = PDstandardNth23beta3;
+ JacPDstandardNth23gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth23gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth23gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth23gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth23gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth23gt33 = PDstandardNth23gt33;
+
+ JacPDstandardNth23phi = PDstandardNth23phi;
+
JacPDstandardNth31alpha = PDstandardNth13alpha;
JacPDstandardNth31beta1 = PDstandardNth13beta1;
@@ -1076,6 +1758,18 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth31beta3 = PDstandardNth13beta3;
+ JacPDstandardNth31gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth31gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth31gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth31gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth31gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth31gt33 = PDstandardNth13gt33;
+
JacPDstandardNth32alpha = PDstandardNth23alpha;
JacPDstandardNth32beta1 = PDstandardNth23beta1;
@@ -1083,6 +1777,18 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth32beta2 = PDstandardNth23beta2;
JacPDstandardNth32beta3 = PDstandardNth23beta3;
+
+ JacPDstandardNth32gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth32gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth32gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth32gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth32gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth32gt33 = PDstandardNth23gt33;
}
CCTK_REAL_VEC detgt = ToReal(1);
@@ -1150,6 +1856,87 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -1213,8 +2000,79 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
+ 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);
@@ -1222,6 +2080,45 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -1267,10 +2164,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC em4phi = INV(e4phi);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
+
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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,35 +2197,53 @@ 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))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3)),ToReal(-3),kmadd(gt11L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt11L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At11L,ToReal(3)))))));
CCTK_REAL_VEC gt12rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At12L,ToReal(-6)),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmadd(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3),kmul(alphaL,kmadd(At12L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt12L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt13rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At13L,ToReal(-6)),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At13L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt13L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt22rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmul(At22L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt22L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At22L,ToReal(3)))))));
CCTK_REAL_VEC gt23rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At23L,ToReal(-6)),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At23L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt23L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt33rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmul(At33L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt33L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At33L,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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmul(gtu33,JacPDstandardNth33beta1))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmadd(gtu33,JacPDstandardNth33beta1,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1Theta,kmadd(gtu12,JacPDstandardNth2Theta,kmul(gtu13,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z1,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmul(gtu33,JacPDstandardNth33beta2)))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(JacPDstandardNth21beta2,ToReal(3),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu12,JacPDstandardNth21beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmadd(gtu33,JacPDstandardNth33beta2,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1Theta,kmadd(gtu22,JacPDstandardNth2Theta,kmul(gtu23,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z2,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kmadd(JacPDstandardNth12beta2,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),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),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmul(gtu23,JacPDstandardNth32beta3)))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,JacPDstandardNth1alpha,kmadd(Atu23,JacPDstandardNth2alpha,kmul(Atu33,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta3,Xtn1,kmul(JacPDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmadd(gtu23,JacPDstandardNth32beta3,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1Theta,kmadd(gtu23,JacPDstandardNth2Theta,kmul(gtu33,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z3,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0)))))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
CCTK_REAL_VEC Xt1rhsL = dotXt1;
@@ -1323,16 +2251,23 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL_VEC Xt3rhsL = dotXt3;
- CCTK_REAL_VEC dottrK =
- kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha))))))))))));
+ CCTK_REAL_VEC dotTheta = IfThen(conformalMethod ==
+ 2,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)))),ToReal(0));
+
+ CCTK_REAL_VEC ThetarhsL = dotTheta;
+
+ CCTK_REAL_VEC dottrK = kadd(IfThen(conformalMethod ==
+ 2,kmsub(kadd(dotTheta,kmadd(JacPDstandardNth1alpha,Z1,kmadd(JacPDstandardNth2alpha,Z2,kmul(JacPDstandardNth3alpha,Z3)))),ToReal(2),kmul(alphaL,kmul(ThetaL,kmul(ToReal(dampk1),kadd(ToReal(-1),ToReal(dampk2)))))),ToReal(0)),kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha)))))))))))));
CCTK_REAL_VEC trKrhsL = dottrK;
CCTK_REAL_VEC alpharhsL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmadd(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),trKL),ksub(ToReal(1),ToReal(LapseACoeff)))))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kadd(trKL,kmsub(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)))),ksub(ToReal(1),ToReal(LapseACoeff)))))));
- CCTK_REAL_VEC ArhsL =
- kmul(knmsub(AL,ToReal(AlphaDriver),dottrK),ToReal(LapseACoeff));
+ CCTK_REAL_VEC ArhsL = kneg(kmul(kadd(IfThen(conformalMethod ==
+ 2,kmul(dotTheta,ToReal(2)),ToReal(0)),kmsub(AL,ToReal(AlphaDriver),dottrK)),ToReal(LapseACoeff)));
CCTK_REAL_VEC eta =
kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius));
@@ -1393,6 +2328,7 @@ static void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const di
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);
@@ -1435,9 +2371,11 @@ extern "C" void ML_BSSN_O2_RHS1(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_metricrhs",
"ML_BSSN_O2::ML_shift",
"ML_BSSN_O2::ML_shiftrhs",
+ "ML_BSSN_O2::ML_Theta",
+ "ML_BSSN_O2::ML_Thetarhs",
"ML_BSSN_O2::ML_trace_curv",
"ML_BSSN_O2::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_RHS1", 19, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_RHS1", 21, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc b/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc
index d92ff3d..6f01350 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.cc
@@ -228,6 +228,7 @@ static void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const di
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]);
@@ -1626,6 +1627,59 @@ 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 Z1;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1698,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 +1707,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,46 +1773,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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))))));
@@ -1785,22 +1816,34 @@ static void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const di
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(Atm11,ToReal(6))),kmul(em4phi,kmul(kmadd(g11,kmul(trS,ToReal(-8)),kmul(eTxxL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats11,ToReal(3),kmul(g11,trAts)),kmadd(At11L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm22,ToReal(-2),trKL),kmul(em4phi,kmadd(g12,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxyL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At22L,JacPDstandardNth1beta2,kmadd(At23L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth2beta1,kmadd(At13L,JacPDstandardNth2beta3,kmadd(At12L,kmadd(JacPDstandardNth3beta3,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats12,kmadd(g12,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g12,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxyL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm12,kmul(At13L,Atm32)),ToReal(2),kmul(At12L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm22,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g13,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At23L,JacPDstandardNth1beta2,kmadd(At33L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth3beta1,kmadd(At12L,JacPDstandardNth3beta2,kmadd(At13L,kmadd(JacPDstandardNth2beta2,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats13,kmadd(g13,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g13,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm13,kmul(At12L,Atm23)),ToReal(2),kmul(At13L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm22,ToReal(6))),kmul(em4phi,kmul(kmadd(g22,kmul(trS,ToReal(-8)),kmul(eTyyL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats22,ToReal(3),kmul(g22,trAts)),kmadd(At22L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g23,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTyzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At13L,JacPDstandardNth2beta1,kmadd(At33L,JacPDstandardNth2beta3,kmadd(At12L,JacPDstandardNth3beta1,kmadd(At22L,JacPDstandardNth3beta2,kmadd(At23L,kmadd(JacPDstandardNth1beta1,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats23,kmadd(g23,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g23,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTyzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At12L,Atm13,kmul(At22L,Atm23)),ToReal(2),kmul(At23L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(6))),kmul(em4phi,kmul(kmadd(g33,kmul(trS,ToReal(-8)),kmul(eTzzL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats33,ToReal(3),kmul(g33,trAts)),kmadd(At33L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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);
@@ -1838,8 +1881,9 @@ extern "C" void ML_BSSN_O2_RHS2(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_log_confac",
"ML_BSSN_O2::ML_metric",
"ML_BSSN_O2::ML_shift",
+ "ML_BSSN_O2::ML_Theta",
"ML_BSSN_O2::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_RHS2", 8, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_RHS2", 9, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.cc b/ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.cc
index 49724d8..f6d970e 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_O2_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curvrhs.");
@@ -292,6 +295,8 @@ static void ML_BSSN_O2_RHSStaticBoundary_Body(cGH const * restrict const cctkGH,
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_O2_RHSStaticBoundary_Body(cGH const * restrict const cctkGH,
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_O2_RHSStaticBoundary(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_log_confacrhs",
"ML_BSSN_O2::ML_metricrhs",
"ML_BSSN_O2::ML_shiftrhs",
+ "ML_BSSN_O2::ML_Thetarhs",
"ML_BSSN_O2::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_RHSStaticBoundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_RHSStaticBoundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc b/ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc
index a985413..01dbf5a 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_boundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_O2_boundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shift","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Theta","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Theta.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curv","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curv.");
@@ -258,7 +261,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);
@@ -292,6 +295,8 @@ static void ML_BSSN_O2_boundary_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_O2_boundary_Body(cGH const * restrict const cctkGH, int cons
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_O2_boundary(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_log_confac",
"ML_BSSN_O2::ML_metric",
"ML_BSSN_O2::ML_shift",
+ "ML_BSSN_O2::ML_Theta",
"ML_BSSN_O2::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_boundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_boundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc b/ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc
index 20233ae..e1ffc44 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_constraints1.cc
@@ -1430,6 +1430,59 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1501,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 +1510,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,34 +1549,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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)))));
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..99514ca 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);
@@ -315,6 +315,8 @@ static void ML_BSSN_O2_convertFromADMBase_Body(cGH const * restrict const cctkGH
CCTK_REAL_VEC At33L =
kmul(em4phi,kmadd(trKL,kmul(g33,ToReal(-0.333333333333333333333333333333)),kzzL));
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = alpL;
CCTK_REAL_VEC beta1L = betaxL;
@@ -342,6 +344,7 @@ static void ML_BSSN_O2_convertFromADMBase_Body(cGH const * restrict const cctkGH
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_BSSN_O2_convertFromADMBase);
@@ -373,8 +376,9 @@ extern "C" void ML_BSSN_O2_convertFromADMBase(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_log_confac",
"ML_BSSN_O2::ML_metric",
"ML_BSSN_O2::ML_shift",
+ "ML_BSSN_O2::ML_Theta",
"ML_BSSN_O2::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_convertFromADMBase", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_convertFromADMBase", 11, groups);
switch(fdOrder)
{
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_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.cc b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.cc
index 1882fa9..4db3707 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.cc
@@ -230,6 +230,7 @@ static void ML_BSSN_O2_convertToADMBaseDtLapseShift_Body(cGH const * restrict co
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]);
@@ -838,7 +839,9 @@ static void ML_BSSN_O2_convertToADMBaseDtLapseShift_Body(cGH const * restrict co
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(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kmsub(kmadd(beta1L,JacPDupwindNthAnti1alpha,kmadd(beta2L,JacPDupwindNthAnti2alpha,kmadd(beta3L,JacPDupwindNthAnti3alpha,kmadd(JacPDupwindNthSymm1alpha,kfabs(beta1L),kmadd(JacPDupwindNthSymm2alpha,kfabs(beta2L),kmul(JacPDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),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)))));
@@ -887,8 +890,9 @@ extern "C" void ML_BSSN_O2_convertToADMBaseDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_log_confac",
"ML_BSSN_O2::ML_metric",
"ML_BSSN_O2::ML_shift",
+ "ML_BSSN_O2::ML_Theta",
"ML_BSSN_O2::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_convertToADMBaseDtLapseShift", 12, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_convertToADMBaseDtLapseShift", 13, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.cc b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.cc
index ccbdae5..8a40989 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.cc
@@ -223,6 +223,7 @@ static void ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * res
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]);
@@ -257,7 +258,9 @@ static void ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * res
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -319,8 +322,9 @@ extern "C" void ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_Gamma",
"ML_BSSN_O2::ML_lapse",
"ML_BSSN_O2::ML_shift",
+ "ML_BSSN_O2::ML_Theta",
"ML_BSSN_O2::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseFakeDtLapseShift.cc b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseFakeDtLapseShift.cc
index 572ec21..65656e9 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseFakeDtLapseShift.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseFakeDtLapseShift.cc
@@ -208,6 +208,7 @@ static void ML_BSSN_O2_convertToADMBaseFakeDtLapseShift_Body(cGH const * restric
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]);
@@ -242,7 +243,9 @@ static void ML_BSSN_O2_convertToADMBaseFakeDtLapseShift_Body(cGH const * restric
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -304,8 +307,9 @@ extern "C" void ML_BSSN_O2_convertToADMBaseFakeDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_O2::ML_Gamma",
"ML_BSSN_O2::ML_lapse",
"ML_BSSN_O2::ML_shift",
+ "ML_BSSN_O2::ML_Theta",
"ML_BSSN_O2::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_convertToADMBaseFakeDtLapseShift", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_convertToADMBaseFakeDtLapseShift", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O2/src/RegisterMoL.cc b/ML_BSSN_O2/src/RegisterMoL.cc
index 9270c92..7c97821 100644
--- a/ML_BSSN_O2/src/RegisterMoL.cc
+++ b/ML_BSSN_O2/src/RegisterMoL.cc
@@ -36,6 +36,7 @@ extern "C" void ML_BSSN_O2_RegisterVars(CCTK_ARGUMENTS)
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O2::beta1"), CCTK_VarIndex("ML_BSSN_O2::beta1rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O2::beta2"), CCTK_VarIndex("ML_BSSN_O2::beta2rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O2::beta3"), CCTK_VarIndex("ML_BSSN_O2::beta3rhs"));
+ ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O2::Theta"), CCTK_VarIndex("ML_BSSN_O2::Thetarhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O2::trK"), CCTK_VarIndex("ML_BSSN_O2::trKrhs"));
/* Register all the evolved Array functions with MoL */
diff --git a/ML_BSSN_O2/src/RegisterSymmetries.cc b/ML_BSSN_O2/src/RegisterSymmetries.cc
index 610032d..d606427 100644
--- a/ML_BSSN_O2/src/RegisterSymmetries.cc
+++ b/ML_BSSN_O2/src/RegisterSymmetries.cc
@@ -139,6 +139,11 @@ extern "C" void ML_BSSN_O2_RegisterSymmetries(CCTK_ARGUMENTS)
sym[0] = 1;
sym[1] = 1;
sym[2] = 1;
+ SetCartSymVN(cctkGH, sym, "ML_BSSN_O2::Theta");
+
+ sym[0] = 1;
+ sym[1] = 1;
+ sym[2] = 1;
SetCartSymVN(cctkGH, sym, "ML_BSSN_O2::trK");
sym[0] = 1;
diff --git a/ML_BSSN_O8/interface.ccl b/ML_BSSN_O8/interface.ccl
index 645ec98..e0dade8 100644
--- a/ML_BSSN_O8/interface.ccl
+++ b/ML_BSSN_O8/interface.ccl
@@ -127,6 +127,12 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "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
@@ -197,6 +203,12 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "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
diff --git a/ML_BSSN_O8/param.ccl b/ML_BSSN_O8/param.ccl
index 2073d46..7a47cec 100644
--- a/ML_BSSN_O8/param.ccl
+++ b/ML_BSSN_O8/param.ccl
@@ -54,6 +54,18 @@ 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"
{
"*:*" :: ""
@@ -126,28 +138,28 @@ CCTK_REAL EpsDiss "Dissipation strength"
} 0
restricted:
-CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
+CCTK_INT conformalMethod "Treatment of conformal factor"
{
*:* :: ""
-} 2
+} 0
restricted:
-CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
+CCTK_INT GammaShift "Covariant shift term in Gamma"
{
*:* :: ""
} 0
restricted:
-CCTK_INT conformalMethod "Treatment of conformal factor"
+CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
{
*:* :: ""
-} 0
+} 2
restricted:
-CCTK_INT fdOrder "fdOrder"
+CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
{
*:* :: ""
-} 8
+} 0
restricted:
CCTK_INT harmonicShift "Whether to use the harmonic shift"
@@ -155,6 +167,12 @@ CCTK_INT harmonicShift "Whether to use the harmonic shift"
*:* :: ""
} 0
+restricted:
+CCTK_INT fdOrder "fdOrder"
+{
+ *:* :: ""
+} 8
+
private:
KEYWORD my_initial_data "my_initial_data"
{
@@ -215,8 +233,8 @@ KEYWORD apply_dissipation "Whether to apply dissipation to the RHSs"
restricted:
CCTK_INT ML_BSSN_O8_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars STEERABLE=RECOVER
{
- 25:25 :: "Number of evolved variables used by this thorn"
-} 25
+ 26:26 :: "Number of evolved variables used by this thorn"
+} 26
restricted:
CCTK_INT ML_BSSN_O8_MaxNumArrayEvolvedVars "Number of Array evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_ArrayEvolved_Vars STEERABLE=RECOVER
@@ -747,6 +765,18 @@ KEYWORD beta3_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -855,6 +885,18 @@ KEYWORD ML_shift_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -1011,6 +1053,12 @@ CCTK_REAL beta3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS
} 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"
@@ -1065,6 +1113,12 @@ CCTK_REAL ML_shift_bound_speed "characteristic speed at boundary" STEERABLE=ALWA
} 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"
@@ -1215,6 +1269,12 @@ CCTK_REAL beta3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1269,6 +1329,12 @@ CCTK_REAL ML_shift_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1419,6 +1485,12 @@ CCTK_REAL beta3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
@@ -1473,6 +1545,12 @@ CCTK_REAL ML_shift_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
diff --git a/ML_BSSN_O8/schedule.ccl b/ML_BSSN_O8/schedule.ccl
index d734ed8..d275273 100644
--- a/ML_BSSN_O8/schedule.ccl
+++ b/ML_BSSN_O8/schedule.ccl
@@ -132,6 +132,19 @@ if (timelevels == 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)
@@ -249,6 +262,19 @@ if (rhs_timelevels == 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)
@@ -286,6 +312,7 @@ if (CCTK_EQUALS(my_initial_data, "Minkowski"))
WRITES: ML_BSSN_O8::ML_log_confac
WRITES: ML_BSSN_O8::ML_metric
WRITES: ML_BSSN_O8::ML_shift
+ WRITES: ML_BSSN_O8::ML_Theta
WRITES: ML_BSSN_O8::ML_trace_curv
} "ML_BSSN_O8_Minkowski"
}
@@ -307,6 +334,7 @@ if (CCTK_EQUALS(my_initial_data, "ADMBase"))
WRITES: ML_BSSN_O8::ML_log_confac
WRITES: ML_BSSN_O8::ML_metric
WRITES: ML_BSSN_O8::ML_shift
+ WRITES: ML_BSSN_O8::ML_Theta
WRITES: ML_BSSN_O8::ML_trace_curv
} "ML_BSSN_O8_convertFromADMBase"
}
@@ -358,6 +386,7 @@ schedule ML_BSSN_O8_RHS1 IN ML_BSSN_O8_evolCalcGroup
READS: ML_BSSN_O8::ML_log_confac
READS: ML_BSSN_O8::ML_metric
READS: ML_BSSN_O8::ML_shift
+ READS: ML_BSSN_O8::ML_Theta
READS: ML_BSSN_O8::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -369,6 +398,7 @@ schedule ML_BSSN_O8_RHS1 IN ML_BSSN_O8_evolCalcGroup
WRITES: ML_BSSN_O8::ML_log_confacrhs
WRITES: ML_BSSN_O8::ML_metricrhs
WRITES: ML_BSSN_O8::ML_shiftrhs
+ WRITES: ML_BSSN_O8::ML_Thetarhs
WRITES: ML_BSSN_O8::ML_trace_curvrhs
} "ML_BSSN_O8_RHS1"
@@ -383,6 +413,7 @@ schedule ML_BSSN_O8_RHS2 IN ML_BSSN_O8_evolCalcGroup
READS: ML_BSSN_O8::ML_log_confac
READS: ML_BSSN_O8::ML_metric
READS: ML_BSSN_O8::ML_shift
+ READS: ML_BSSN_O8::ML_Theta
READS: ML_BSSN_O8::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -412,6 +443,8 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
READS: ML_BSSN_O8::ML_metricrhs
READS: ML_BSSN_O8::ML_shift
READS: ML_BSSN_O8::ML_shiftrhs
+ READS: ML_BSSN_O8::ML_Theta
+ READS: ML_BSSN_O8::ML_Thetarhs
READS: ML_BSSN_O8::ML_trace_curv
READS: ML_BSSN_O8::ML_trace_curvrhs
WRITES: ML_BSSN_O8::ML_curvrhs
@@ -422,6 +455,7 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
WRITES: ML_BSSN_O8::ML_log_confacrhs
WRITES: ML_BSSN_O8::ML_metricrhs
WRITES: ML_BSSN_O8::ML_shiftrhs
+ WRITES: ML_BSSN_O8::ML_Thetarhs
WRITES: ML_BSSN_O8::ML_trace_curvrhs
} "ML_BSSN_O8_Dissipation"
}
@@ -445,6 +479,8 @@ schedule ML_BSSN_O8_Advect IN ML_BSSN_O8_evolCalcGroup AFTER (ML_BSSN_O8_RHS1 ML
READS: ML_BSSN_O8::ML_metricrhs
READS: ML_BSSN_O8::ML_shift
READS: ML_BSSN_O8::ML_shiftrhs
+ READS: ML_BSSN_O8::ML_Theta
+ READS: ML_BSSN_O8::ML_Thetarhs
READS: ML_BSSN_O8::ML_trace_curv
READS: ML_BSSN_O8::ML_trace_curvrhs
WRITES: ML_BSSN_O8::ML_curvrhs
@@ -455,6 +491,7 @@ schedule ML_BSSN_O8_Advect IN ML_BSSN_O8_evolCalcGroup AFTER (ML_BSSN_O8_RHS1 ML
WRITES: ML_BSSN_O8::ML_log_confacrhs
WRITES: ML_BSSN_O8::ML_metricrhs
WRITES: ML_BSSN_O8::ML_shiftrhs
+ WRITES: ML_BSSN_O8::ML_Thetarhs
WRITES: ML_BSSN_O8::ML_trace_curvrhs
} "ML_BSSN_O8_Advect"
@@ -469,6 +506,7 @@ schedule ML_BSSN_O8_InitRHS AT analysis BEFORE ML_BSSN_O8_evolCalcGroup
WRITES: ML_BSSN_O8::ML_log_confacrhs
WRITES: ML_BSSN_O8::ML_metricrhs
WRITES: ML_BSSN_O8::ML_shiftrhs
+ WRITES: ML_BSSN_O8::ML_Thetarhs
WRITES: ML_BSSN_O8::ML_trace_curvrhs
} "ML_BSSN_O8_InitRHS"
@@ -486,6 +524,7 @@ if (CCTK_EQUALS(my_rhs_boundary_condition, "static"))
WRITES: ML_BSSN_O8::ML_log_confacrhs
WRITES: ML_BSSN_O8::ML_metricrhs
WRITES: ML_BSSN_O8::ML_shiftrhs
+ WRITES: ML_BSSN_O8::ML_Thetarhs
WRITES: ML_BSSN_O8::ML_trace_curvrhs
} "ML_BSSN_O8_RHSStaticBoundary"
}
@@ -514,6 +553,7 @@ if (CCTK_EQUALS(my_boundary_condition, "Minkowski"))
WRITES: ML_BSSN_O8::ML_log_confac
WRITES: ML_BSSN_O8::ML_metric
WRITES: ML_BSSN_O8::ML_shift
+ WRITES: ML_BSSN_O8::ML_Theta
WRITES: ML_BSSN_O8::ML_trace_curv
} "ML_BSSN_O8_boundary"
}
@@ -551,6 +591,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_O8::ML_log_confac
READS: ML_BSSN_O8::ML_metric
READS: ML_BSSN_O8::ML_shift
+ READS: ML_BSSN_O8::ML_Theta
READS: ML_BSSN_O8::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -571,6 +612,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_O8::ML_lapse
READS: ML_BSSN_O8::ML_metric
READS: ML_BSSN_O8::ML_shift
+ READS: ML_BSSN_O8::ML_Theta
READS: ML_BSSN_O8::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -591,6 +633,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection"))
READS: ML_BSSN_O8::ML_lapse
READS: ML_BSSN_O8::ML_metric
READS: ML_BSSN_O8::ML_shift
+ READS: ML_BSSN_O8::ML_Theta
READS: ML_BSSN_O8::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -701,6 +744,7 @@ schedule ML_BSSN_O8_SelectBoundConds in MoL_PostStep
SYNC: ML_log_confac
SYNC: ML_metric
SYNC: ML_shift
+ SYNC: ML_Theta
SYNC: ML_trace_curv
} "select boundary conditions"
diff --git a/ML_BSSN_O8/src/Boundaries.cc b/ML_BSSN_O8/src/Boundaries.cc
index b3a2177..1714cb5 100644
--- a/ML_BSSN_O8/src/Boundaries.cc
+++ b/ML_BSSN_O8/src/Boundaries.cc
@@ -120,6 +120,17 @@ extern "C" void ML_BSSN_O8_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register ML_shift_bound BC for ML_BSSN_O8::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_BSSN_O8::ML_Theta", ML_Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register ML_Theta_bound BC for ML_BSSN_O8::ML_Theta!");
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "none" ) ||
CCTK_EQUALS(ML_trace_curv_bound, "static") ||
CCTK_EQUALS(ML_trace_curv_bound, "flat" ) ||
@@ -395,6 +406,17 @@ extern "C" void ML_BSSN_O8_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register beta3_bound BC for ML_BSSN_O8::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_BSSN_O8::Theta", Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Theta_bound BC for ML_BSSN_O8::Theta!");
+ }
+
if (CCTK_EQUALS(trK_bound, "none" ) ||
CCTK_EQUALS(trK_bound, "static") ||
CCTK_EQUALS(trK_bound, "flat" ) ||
@@ -558,6 +580,25 @@ extern "C" void ML_BSSN_O8_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_O8::ML_Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_O8::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1033,6 +1074,25 @@ extern "C" void ML_BSSN_O8_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_O8::Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_O8::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1188,6 +1248,23 @@ extern "C" void ML_BSSN_O8_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_O8::ML_Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Scalar BC for ML_BSSN_O8::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1613,6 +1690,23 @@ extern "C" void ML_BSSN_O8_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_O8::Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Error in registering Scalar BC for ML_BSSN_O8::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1675,6 +1769,11 @@ extern "C" void ML_BSSN_O8_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_O8::ML_shift_bound_limit = 0.0
#$bound$#ML_BSSN_O8::ML_shift_bound_scalar = 0.0
+#$bound$#ML_BSSN_O8::ML_Theta_bound = "skip"
+#$bound$#ML_BSSN_O8::ML_Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_O8::ML_Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_O8::ML_Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_O8::ML_trace_curv_bound = "skip"
#$bound$#ML_BSSN_O8::ML_trace_curv_bound_speed = 1.0
#$bound$#ML_BSSN_O8::ML_trace_curv_bound_limit = 0.0
@@ -1800,6 +1899,11 @@ extern "C" void ML_BSSN_O8_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_O8::beta3_bound_limit = 0.0
#$bound$#ML_BSSN_O8::beta3_bound_scalar = 0.0
+#$bound$#ML_BSSN_O8::Theta_bound = "skip"
+#$bound$#ML_BSSN_O8::Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_O8::Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_O8::Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_O8::trK_bound = "skip"
#$bound$#ML_BSSN_O8::trK_bound_speed = 1.0
#$bound$#ML_BSSN_O8::trK_bound_limit = 0.0
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_Advect.cc b/ML_BSSN_O8/src/ML_BSSN_O8_Advect.cc
index 0ecbeec..aec60b7 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_Advect.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_Advect.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_O8_Advect_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -431,6 +436,12 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -585,6 +596,12 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -738,6 +755,12 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -891,6 +914,12 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -1044,6 +1073,12 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -1099,6 +1134,7 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1124,6 +1160,7 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1149,6 +1186,7 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1174,6 +1212,7 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1199,6 +1238,7 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1224,6 +1264,7 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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;
@@ -1294,6 +1335,9 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1369,6 +1413,9 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1444,6 +1491,9 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1519,6 +1569,9 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1594,6 +1647,9 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1669,6 +1725,9 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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)));
@@ -1725,6 +1784,8 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti1phi = PDupwindNthAnti1phi;
+ JacPDupwindNthAnti1Theta = PDupwindNthAnti1Theta;
+
JacPDupwindNthAnti1trK = PDupwindNthAnti1trK;
JacPDupwindNthAnti1Xt1 = PDupwindNthAnti1Xt1;
@@ -1775,6 +1836,8 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm1phi = PDupwindNthSymm1phi;
+ JacPDupwindNthSymm1Theta = PDupwindNthSymm1Theta;
+
JacPDupwindNthSymm1trK = PDupwindNthSymm1trK;
JacPDupwindNthSymm1Xt1 = PDupwindNthSymm1Xt1;
@@ -1825,6 +1888,8 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti2phi = PDupwindNthAnti2phi;
+ JacPDupwindNthAnti2Theta = PDupwindNthAnti2Theta;
+
JacPDupwindNthAnti2trK = PDupwindNthAnti2trK;
JacPDupwindNthAnti2Xt1 = PDupwindNthAnti2Xt1;
@@ -1875,6 +1940,8 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm2phi = PDupwindNthSymm2phi;
+ JacPDupwindNthSymm2Theta = PDupwindNthSymm2Theta;
+
JacPDupwindNthSymm2trK = PDupwindNthSymm2trK;
JacPDupwindNthSymm2Xt1 = PDupwindNthSymm2Xt1;
@@ -1925,6 +1992,8 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthAnti3phi = PDupwindNthAnti3phi;
+ JacPDupwindNthAnti3Theta = PDupwindNthAnti3Theta;
+
JacPDupwindNthAnti3trK = PDupwindNthAnti3trK;
JacPDupwindNthAnti3Xt1 = PDupwindNthAnti3Xt1;
@@ -1975,6 +2044,8 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNthSymm3phi = PDupwindNthSymm3phi;
+ JacPDupwindNthSymm3Theta = PDupwindNthSymm3Theta;
+
JacPDupwindNthSymm3trK = PDupwindNthSymm3trK;
JacPDupwindNthSymm3Xt1 = PDupwindNthSymm3Xt1;
@@ -2014,6 +2085,9 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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,IfThen(conformalMethod ==
+ 2,kmadd(beta1L,JacPDupwindNthAnti1Theta,kmadd(beta2L,JacPDupwindNthAnti2Theta,kmadd(beta3L,JacPDupwindNthAnti3Theta,kmadd(JacPDupwindNthSymm1Theta,kfabs(beta1L),kmadd(JacPDupwindNthSymm2Theta,kfabs(beta2L),kmul(JacPDupwindNthSymm3Theta,kfabs(beta3L))))))),ToReal(0)));
+
trKrhsL =
kadd(trKrhsL,kmadd(beta1L,JacPDupwindNthAnti1trK,kmadd(beta2L,JacPDupwindNthAnti2trK,kmadd(beta3L,JacPDupwindNthAnti3trK,kmadd(JacPDupwindNthSymm1trK,kfabs(beta1L),kmadd(JacPDupwindNthSymm2trK,kfabs(beta2L),kmul(JacPDupwindNthSymm3trK,kfabs(beta3L))))))));
@@ -2082,6 +2156,7 @@ static void ML_BSSN_O8_Advect_Body(cGH const * restrict const cctkGH, int const
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);
@@ -2123,9 +2198,11 @@ extern "C" void ML_BSSN_O8_Advect(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_metricrhs",
"ML_BSSN_O8::ML_shift",
"ML_BSSN_O8::ML_shiftrhs",
+ "ML_BSSN_O8::ML_Theta",
+ "ML_BSSN_O8::ML_Thetarhs",
"ML_BSSN_O8::ML_trace_curv",
"ML_BSSN_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_Advect", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_Advect", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_Dissipation.cc b/ML_BSSN_O8/src/ML_BSSN_O8_Dissipation.cc
index 7965398..d4ced16 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_Dissipation.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_Dissipation.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_O8_Dissipation_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -368,6 +373,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -447,6 +455,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -525,6 +536,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -603,6 +617,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -681,6 +698,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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]);
@@ -718,6 +738,7 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -743,6 +764,7 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -768,6 +790,7 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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;
@@ -838,6 +861,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -913,6 +939,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -988,6 +1017,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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)));
@@ -1044,6 +1076,8 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth1phi = PDdissipationNth1phi;
+ JacPDdissipationNth1Theta = PDdissipationNth1Theta;
+
JacPDdissipationNth1trK = PDdissipationNth1trK;
JacPDdissipationNth1Xt1 = PDdissipationNth1Xt1;
@@ -1094,6 +1128,8 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth2phi = PDdissipationNth2phi;
+ JacPDdissipationNth2Theta = PDdissipationNth2Theta;
+
JacPDdissipationNth2trK = PDdissipationNth2trK;
JacPDdissipationNth2Xt1 = PDdissipationNth2Xt1;
@@ -1144,6 +1180,8 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
JacPDdissipationNth3phi = PDdissipationNth3phi;
+ JacPDdissipationNth3Theta = PDdissipationNth3Theta;
+
JacPDdissipationNth3trK = PDdissipationNth3trK;
JacPDdissipationNth3Xt1 = PDdissipationNth3Xt1;
@@ -1189,6 +1227,9 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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))));
@@ -1257,6 +1298,7 @@ static void ML_BSSN_O8_Dissipation_Body(cGH const * restrict const cctkGH, int c
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);
@@ -1298,9 +1340,11 @@ extern "C" void ML_BSSN_O8_Dissipation(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_metricrhs",
"ML_BSSN_O8::ML_shift",
"ML_BSSN_O8::ML_shiftrhs",
+ "ML_BSSN_O8::ML_Theta",
+ "ML_BSSN_O8::ML_Thetarhs",
"ML_BSSN_O8::ML_trace_curv",
"ML_BSSN_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_Dissipation", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_Dissipation", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_InitRHS.cc b/ML_BSSN_O8/src/ML_BSSN_O8_InitRHS.cc
index 7b85d13..7a135bd 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_InitRHS.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_InitRHS.cc
@@ -256,6 +256,8 @@ static void ML_BSSN_O8_InitRHS_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_O8_InitRHS_Body(cGH const * restrict const cctkGH, int const
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_O8_InitRHS(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_log_confacrhs",
"ML_BSSN_O8::ML_metricrhs",
"ML_BSSN_O8::ML_shiftrhs",
+ "ML_BSSN_O8::ML_Thetarhs",
"ML_BSSN_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_InitRHS", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_InitRHS", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_Minkowski.cc b/ML_BSSN_O8/src/ML_BSSN_O8_Minkowski.cc
index e96858a..b8cb49c 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);
@@ -256,6 +256,8 @@ static void ML_BSSN_O8_Minkowski_Body(cGH const * restrict const cctkGH, int con
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_O8_Minkowski_Body(cGH const * restrict const cctkGH, int con
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_O8_Minkowski(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_log_confac",
"ML_BSSN_O8::ML_metric",
"ML_BSSN_O8::ML_shift",
+ "ML_BSSN_O8::ML_Theta",
"ML_BSSN_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_Minkowski", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_Minkowski", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc b/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc
index 968fd06..9d321c6 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.cc
@@ -50,6 +50,9 @@ extern "C" void ML_BSSN_O8_RHS1_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curvrhs.");
@@ -254,6 +257,7 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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]);
@@ -363,27 +367,81 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)
{
@@ -427,27 +485,81 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder21(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder22(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder23(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder211(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder222(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder233(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder212(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder213(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder223(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder21(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder22(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder23(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder211(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder222(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder233(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder212(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder213(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder223(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder21(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder22(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder23(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder211(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder222(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder233(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder212(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder213(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder223(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder21(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder22(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder23(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder211(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder222(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder233(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder212(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder213(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder223(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder21(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder22(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder23(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder211(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder222(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder233(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder212(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder213(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder223(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder21(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder22(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder23(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder211(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder222(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder233(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder212(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder213(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder223(&gt33[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:
@@ -490,27 +602,81 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder41(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder42(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder43(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder411(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder422(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder433(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder412(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder413(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder423(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder41(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder42(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder43(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder411(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder422(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder433(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder412(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder413(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder423(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder41(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder42(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder43(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder411(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder422(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder433(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder412(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder413(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder423(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder41(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder42(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder43(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder411(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder422(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder433(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder412(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder413(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder423(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder41(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder42(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder43(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder411(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder422(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder433(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder412(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder413(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder423(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder41(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder42(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder43(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder411(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder422(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder433(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder412(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder413(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder423(&gt33[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:
@@ -553,27 +719,81 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder61(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder62(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder63(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder611(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder622(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder633(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder612(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder613(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder623(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder61(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder62(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder63(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder611(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder622(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder633(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder612(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder613(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder623(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder61(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder62(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder63(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder611(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder622(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder633(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder612(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder613(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder623(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder61(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder62(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder63(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder611(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder622(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder633(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder612(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder613(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder623(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder61(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder62(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder63(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder611(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder622(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder633(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder612(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder613(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder623(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder61(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder62(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder63(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder611(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder622(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder633(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder612(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder613(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder623(&gt33[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:
@@ -616,27 +836,81 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
PDstandardNth1gt11 = PDstandardNthfdOrder81(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder82(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder83(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder811(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder822(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder833(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder812(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder813(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder823(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder81(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder82(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder83(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder811(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder822(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder833(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder812(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder813(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder823(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder81(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder82(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder83(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder811(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder822(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder833(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder812(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder813(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder823(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder81(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder82(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder83(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder811(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder822(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder833(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder812(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder813(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder823(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder81(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder82(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder83(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder811(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder822(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder833(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder812(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder813(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder823(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder81(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder82(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder83(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder811(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder822(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder833(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder812(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder813(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder823(&gt33[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;
}
@@ -651,14 +925,35 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -670,19 +965,43 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -694,19 +1013,42 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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;
@@ -718,7 +1060,11 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)
{
@@ -755,9 +1101,21 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -791,9 +1149,21 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -827,9 +1197,21 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -842,6 +1224,27 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -854,6 +1257,27 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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))))))));
@@ -866,6 +1290,27 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -878,6 +1323,27 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -890,6 +1356,27 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -902,6 +1389,24 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -914,6 +1419,27 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -926,6 +1452,24 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)))))));
@@ -937,6 +1481,24 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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
{
@@ -962,8 +1524,16 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth1phi = PDstandardNth1phi;
+ JacPDstandardNth1Theta = PDstandardNth1Theta;
+
JacPDstandardNth1trK = PDstandardNth1trK;
+ JacPDstandardNth1Xt1 = PDstandardNth1Xt1;
+
+ JacPDstandardNth1Xt2 = PDstandardNth1Xt2;
+
+ JacPDstandardNth1Xt3 = PDstandardNth1Xt3;
+
JacPDstandardNth2alpha = PDstandardNth2alpha;
JacPDstandardNth2beta1 = PDstandardNth2beta1;
@@ -986,8 +1556,16 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth2phi = PDstandardNth2phi;
+ JacPDstandardNth2Theta = PDstandardNth2Theta;
+
JacPDstandardNth2trK = PDstandardNth2trK;
+ JacPDstandardNth2Xt1 = PDstandardNth2Xt1;
+
+ JacPDstandardNth2Xt2 = PDstandardNth2Xt2;
+
+ JacPDstandardNth2Xt3 = PDstandardNth2Xt3;
+
JacPDstandardNth3alpha = PDstandardNth3alpha;
JacPDstandardNth3beta1 = PDstandardNth3beta1;
@@ -1010,8 +1588,16 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth3phi = PDstandardNth3phi;
+ JacPDstandardNth3Theta = PDstandardNth3Theta;
+
JacPDstandardNth3trK = PDstandardNth3trK;
+ JacPDstandardNth3Xt1 = PDstandardNth3Xt1;
+
+ JacPDstandardNth3Xt2 = PDstandardNth3Xt2;
+
+ JacPDstandardNth3Xt3 = PDstandardNth3Xt3;
+
JacPDstandardNth11alpha = PDstandardNth11alpha;
JacPDstandardNth11beta1 = PDstandardNth11beta1;
@@ -1020,6 +1606,20 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth11beta3 = PDstandardNth11beta3;
+ JacPDstandardNth11gt11 = PDstandardNth11gt11;
+
+ JacPDstandardNth11gt12 = PDstandardNth11gt12;
+
+ JacPDstandardNth11gt13 = PDstandardNth11gt13;
+
+ JacPDstandardNth11gt22 = PDstandardNth11gt22;
+
+ JacPDstandardNth11gt23 = PDstandardNth11gt23;
+
+ JacPDstandardNth11gt33 = PDstandardNth11gt33;
+
+ JacPDstandardNth11phi = PDstandardNth11phi;
+
JacPDstandardNth22alpha = PDstandardNth22alpha;
JacPDstandardNth22beta1 = PDstandardNth22beta1;
@@ -1028,6 +1628,20 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth22beta3 = PDstandardNth22beta3;
+ JacPDstandardNth22gt11 = PDstandardNth22gt11;
+
+ JacPDstandardNth22gt12 = PDstandardNth22gt12;
+
+ JacPDstandardNth22gt13 = PDstandardNth22gt13;
+
+ JacPDstandardNth22gt22 = PDstandardNth22gt22;
+
+ JacPDstandardNth22gt23 = PDstandardNth22gt23;
+
+ JacPDstandardNth22gt33 = PDstandardNth22gt33;
+
+ JacPDstandardNth22phi = PDstandardNth22phi;
+
JacPDstandardNth33alpha = PDstandardNth33alpha;
JacPDstandardNth33beta1 = PDstandardNth33beta1;
@@ -1036,6 +1650,20 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth33beta3 = PDstandardNth33beta3;
+ JacPDstandardNth33gt11 = PDstandardNth33gt11;
+
+ JacPDstandardNth33gt12 = PDstandardNth33gt12;
+
+ JacPDstandardNth33gt13 = PDstandardNth33gt13;
+
+ JacPDstandardNth33gt22 = PDstandardNth33gt22;
+
+ JacPDstandardNth33gt23 = PDstandardNth33gt23;
+
+ JacPDstandardNth33gt33 = PDstandardNth33gt33;
+
+ JacPDstandardNth33phi = PDstandardNth33phi;
+
JacPDstandardNth12alpha = PDstandardNth12alpha;
JacPDstandardNth12beta1 = PDstandardNth12beta1;
@@ -1044,6 +1672,20 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth12beta3 = PDstandardNth12beta3;
+ JacPDstandardNth12gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth12gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth12gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth12gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth12gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth12gt33 = PDstandardNth12gt33;
+
+ JacPDstandardNth12phi = PDstandardNth12phi;
+
JacPDstandardNth13alpha = PDstandardNth13alpha;
JacPDstandardNth13beta1 = PDstandardNth13beta1;
@@ -1052,6 +1694,20 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth13beta3 = PDstandardNth13beta3;
+ JacPDstandardNth13gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth13gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth13gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth13gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth13gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth13gt33 = PDstandardNth13gt33;
+
+ JacPDstandardNth13phi = PDstandardNth13phi;
+
JacPDstandardNth21alpha = PDstandardNth12alpha;
JacPDstandardNth21beta1 = PDstandardNth12beta1;
@@ -1060,6 +1716,18 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth21beta3 = PDstandardNth12beta3;
+ JacPDstandardNth21gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth21gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth21gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth21gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth21gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth21gt33 = PDstandardNth12gt33;
+
JacPDstandardNth23alpha = PDstandardNth23alpha;
JacPDstandardNth23beta1 = PDstandardNth23beta1;
@@ -1068,6 +1736,20 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth23beta3 = PDstandardNth23beta3;
+ JacPDstandardNth23gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth23gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth23gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth23gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth23gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth23gt33 = PDstandardNth23gt33;
+
+ JacPDstandardNth23phi = PDstandardNth23phi;
+
JacPDstandardNth31alpha = PDstandardNth13alpha;
JacPDstandardNth31beta1 = PDstandardNth13beta1;
@@ -1076,6 +1758,18 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth31beta3 = PDstandardNth13beta3;
+ JacPDstandardNth31gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth31gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth31gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth31gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth31gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth31gt33 = PDstandardNth13gt33;
+
JacPDstandardNth32alpha = PDstandardNth23alpha;
JacPDstandardNth32beta1 = PDstandardNth23beta1;
@@ -1083,6 +1777,18 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
JacPDstandardNth32beta2 = PDstandardNth23beta2;
JacPDstandardNth32beta3 = PDstandardNth23beta3;
+
+ JacPDstandardNth32gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth32gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth32gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth32gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth32gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth32gt33 = PDstandardNth23gt33;
}
CCTK_REAL_VEC detgt = ToReal(1);
@@ -1150,6 +1856,87 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -1213,8 +2000,79 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
+ 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);
@@ -1222,6 +2080,45 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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)));
@@ -1267,10 +2164,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC em4phi = INV(e4phi);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
+
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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,35 +2197,53 @@ 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))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3)),ToReal(-3),kmadd(gt11L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt11L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At11L,ToReal(3)))))));
CCTK_REAL_VEC gt12rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At12L,ToReal(-6)),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmadd(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3),kmul(alphaL,kmadd(At12L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt12L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt13rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At13L,ToReal(-6)),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At13L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt13L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt22rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmul(At22L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt22L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At22L,ToReal(3)))))));
CCTK_REAL_VEC gt23rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At23L,ToReal(-6)),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At23L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt23L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt33rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmul(At33L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt33L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At33L,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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmul(gtu33,JacPDstandardNth33beta1))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmadd(gtu33,JacPDstandardNth33beta1,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1Theta,kmadd(gtu12,JacPDstandardNth2Theta,kmul(gtu13,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z1,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmul(gtu33,JacPDstandardNth33beta2)))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(JacPDstandardNth21beta2,ToReal(3),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu12,JacPDstandardNth21beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmadd(gtu33,JacPDstandardNth33beta2,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1Theta,kmadd(gtu22,JacPDstandardNth2Theta,kmul(gtu23,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z2,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kmadd(JacPDstandardNth12beta2,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),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),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmul(gtu23,JacPDstandardNth32beta3)))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,JacPDstandardNth1alpha,kmadd(Atu23,JacPDstandardNth2alpha,kmul(Atu33,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta3,Xtn1,kmul(JacPDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmadd(gtu23,JacPDstandardNth32beta3,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1Theta,kmadd(gtu23,JacPDstandardNth2Theta,kmul(gtu33,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z3,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0)))))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
CCTK_REAL_VEC Xt1rhsL = dotXt1;
@@ -1323,16 +2251,23 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL_VEC Xt3rhsL = dotXt3;
- CCTK_REAL_VEC dottrK =
- kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha))))))))))));
+ CCTK_REAL_VEC dotTheta = IfThen(conformalMethod ==
+ 2,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)))),ToReal(0));
+
+ CCTK_REAL_VEC ThetarhsL = dotTheta;
+
+ CCTK_REAL_VEC dottrK = kadd(IfThen(conformalMethod ==
+ 2,kmsub(kadd(dotTheta,kmadd(JacPDstandardNth1alpha,Z1,kmadd(JacPDstandardNth2alpha,Z2,kmul(JacPDstandardNth3alpha,Z3)))),ToReal(2),kmul(alphaL,kmul(ThetaL,kmul(ToReal(dampk1),kadd(ToReal(-1),ToReal(dampk2)))))),ToReal(0)),kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha)))))))))))));
CCTK_REAL_VEC trKrhsL = dottrK;
CCTK_REAL_VEC alpharhsL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmadd(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),trKL),ksub(ToReal(1),ToReal(LapseACoeff)))))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kadd(trKL,kmsub(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)))),ksub(ToReal(1),ToReal(LapseACoeff)))))));
- CCTK_REAL_VEC ArhsL =
- kmul(knmsub(AL,ToReal(AlphaDriver),dottrK),ToReal(LapseACoeff));
+ CCTK_REAL_VEC ArhsL = kneg(kmul(kadd(IfThen(conformalMethod ==
+ 2,kmul(dotTheta,ToReal(2)),ToReal(0)),kmsub(AL,ToReal(AlphaDriver),dottrK)),ToReal(LapseACoeff)));
CCTK_REAL_VEC eta =
kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius));
@@ -1393,6 +2328,7 @@ static void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const di
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);
@@ -1435,9 +2371,11 @@ extern "C" void ML_BSSN_O8_RHS1(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_metricrhs",
"ML_BSSN_O8::ML_shift",
"ML_BSSN_O8::ML_shiftrhs",
+ "ML_BSSN_O8::ML_Theta",
+ "ML_BSSN_O8::ML_Thetarhs",
"ML_BSSN_O8::ML_trace_curv",
"ML_BSSN_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_RHS1", 19, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_RHS1", 21, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc b/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc
index b57d3e9..18523df 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.cc
@@ -228,6 +228,7 @@ static void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const di
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]);
@@ -1626,6 +1627,59 @@ 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 Z1;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1698,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 +1707,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,46 +1773,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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))))));
@@ -1785,22 +1816,34 @@ static void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const di
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(Atm11,ToReal(6))),kmul(em4phi,kmul(kmadd(g11,kmul(trS,ToReal(-8)),kmul(eTxxL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats11,ToReal(3),kmul(g11,trAts)),kmadd(At11L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm22,ToReal(-2),trKL),kmul(em4phi,kmadd(g12,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxyL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At22L,JacPDstandardNth1beta2,kmadd(At23L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth2beta1,kmadd(At13L,JacPDstandardNth2beta3,kmadd(At12L,kmadd(JacPDstandardNth3beta3,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats12,kmadd(g12,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g12,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxyL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm12,kmul(At13L,Atm32)),ToReal(2),kmul(At12L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm22,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g13,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At23L,JacPDstandardNth1beta2,kmadd(At33L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth3beta1,kmadd(At12L,JacPDstandardNth3beta2,kmadd(At13L,kmadd(JacPDstandardNth2beta2,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats13,kmadd(g13,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g13,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm13,kmul(At12L,Atm23)),ToReal(2),kmul(At13L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm22,ToReal(6))),kmul(em4phi,kmul(kmadd(g22,kmul(trS,ToReal(-8)),kmul(eTyyL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats22,ToReal(3),kmul(g22,trAts)),kmadd(At22L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g23,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTyzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At13L,JacPDstandardNth2beta1,kmadd(At33L,JacPDstandardNth2beta3,kmadd(At12L,JacPDstandardNth3beta1,kmadd(At22L,JacPDstandardNth3beta2,kmadd(At23L,kmadd(JacPDstandardNth1beta1,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats23,kmadd(g23,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g23,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTyzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At12L,Atm13,kmul(At22L,Atm23)),ToReal(2),kmul(At23L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(6))),kmul(em4phi,kmul(kmadd(g33,kmul(trS,ToReal(-8)),kmul(eTzzL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats33,ToReal(3),kmul(g33,trAts)),kmadd(At33L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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);
@@ -1838,8 +1881,9 @@ extern "C" void ML_BSSN_O8_RHS2(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_log_confac",
"ML_BSSN_O8::ML_metric",
"ML_BSSN_O8::ML_shift",
+ "ML_BSSN_O8::ML_Theta",
"ML_BSSN_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_RHS2", 8, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_RHS2", 9, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.cc b/ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.cc
index 387b7c4..9085dd6 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_O8_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curvrhs.");
@@ -292,6 +295,8 @@ static void ML_BSSN_O8_RHSStaticBoundary_Body(cGH const * restrict const cctkGH,
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_O8_RHSStaticBoundary_Body(cGH const * restrict const cctkGH,
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_O8_RHSStaticBoundary(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_log_confacrhs",
"ML_BSSN_O8::ML_metricrhs",
"ML_BSSN_O8::ML_shiftrhs",
+ "ML_BSSN_O8::ML_Thetarhs",
"ML_BSSN_O8::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_RHSStaticBoundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_RHSStaticBoundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc b/ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc
index ea2dfd5..4c4ba4d 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_boundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_O8_boundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shift","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Theta","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Theta.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curv","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curv.");
@@ -258,7 +261,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);
@@ -292,6 +295,8 @@ static void ML_BSSN_O8_boundary_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_O8_boundary_Body(cGH const * restrict const cctkGH, int cons
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_O8_boundary(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_log_confac",
"ML_BSSN_O8::ML_metric",
"ML_BSSN_O8::ML_shift",
+ "ML_BSSN_O8::ML_Theta",
"ML_BSSN_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_boundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_boundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc b/ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc
index a4d0133..5007e29 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_constraints1.cc
@@ -1430,6 +1430,59 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1501,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 +1510,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,34 +1549,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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)))));
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..677f542 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);
@@ -315,6 +315,8 @@ static void ML_BSSN_O8_convertFromADMBase_Body(cGH const * restrict const cctkGH
CCTK_REAL_VEC At33L =
kmul(em4phi,kmadd(trKL,kmul(g33,ToReal(-0.333333333333333333333333333333)),kzzL));
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = alpL;
CCTK_REAL_VEC beta1L = betaxL;
@@ -342,6 +344,7 @@ static void ML_BSSN_O8_convertFromADMBase_Body(cGH const * restrict const cctkGH
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_BSSN_O8_convertFromADMBase);
@@ -373,8 +376,9 @@ extern "C" void ML_BSSN_O8_convertFromADMBase(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_log_confac",
"ML_BSSN_O8::ML_metric",
"ML_BSSN_O8::ML_shift",
+ "ML_BSSN_O8::ML_Theta",
"ML_BSSN_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_convertFromADMBase", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_convertFromADMBase", 11, groups);
switch(fdOrder)
{
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_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.cc b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.cc
index 3d8e868..2f40772 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.cc
@@ -230,6 +230,7 @@ static void ML_BSSN_O8_convertToADMBaseDtLapseShift_Body(cGH const * restrict co
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]);
@@ -838,7 +839,9 @@ static void ML_BSSN_O8_convertToADMBaseDtLapseShift_Body(cGH const * restrict co
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(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kmsub(kmadd(beta1L,JacPDupwindNthAnti1alpha,kmadd(beta2L,JacPDupwindNthAnti2alpha,kmadd(beta3L,JacPDupwindNthAnti3alpha,kmadd(JacPDupwindNthSymm1alpha,kfabs(beta1L),kmadd(JacPDupwindNthSymm2alpha,kfabs(beta2L),kmul(JacPDupwindNthSymm3alpha,kfabs(beta3L))))))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),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)))));
@@ -887,8 +890,9 @@ extern "C" void ML_BSSN_O8_convertToADMBaseDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_log_confac",
"ML_BSSN_O8::ML_metric",
"ML_BSSN_O8::ML_shift",
+ "ML_BSSN_O8::ML_Theta",
"ML_BSSN_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_convertToADMBaseDtLapseShift", 12, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_convertToADMBaseDtLapseShift", 13, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.cc b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.cc
index 54fba2b..d4e1ed6 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.cc
@@ -223,6 +223,7 @@ static void ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * res
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]);
@@ -257,7 +258,9 @@ static void ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * res
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -319,8 +322,9 @@ extern "C" void ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_Gamma",
"ML_BSSN_O8::ML_lapse",
"ML_BSSN_O8::ML_shift",
+ "ML_BSSN_O8::ML_Theta",
"ML_BSSN_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseFakeDtLapseShift.cc b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseFakeDtLapseShift.cc
index c6f5687..e484b6d 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseFakeDtLapseShift.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseFakeDtLapseShift.cc
@@ -208,6 +208,7 @@ static void ML_BSSN_O8_convertToADMBaseFakeDtLapseShift_Body(cGH const * restric
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]);
@@ -242,7 +243,9 @@ static void ML_BSSN_O8_convertToADMBaseFakeDtLapseShift_Body(cGH const * restric
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -304,8 +307,9 @@ extern "C" void ML_BSSN_O8_convertToADMBaseFakeDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_O8::ML_Gamma",
"ML_BSSN_O8::ML_lapse",
"ML_BSSN_O8::ML_shift",
+ "ML_BSSN_O8::ML_Theta",
"ML_BSSN_O8::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_convertToADMBaseFakeDtLapseShift", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_convertToADMBaseFakeDtLapseShift", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_O8/src/RegisterMoL.cc b/ML_BSSN_O8/src/RegisterMoL.cc
index 7e136f8..7aac2a9 100644
--- a/ML_BSSN_O8/src/RegisterMoL.cc
+++ b/ML_BSSN_O8/src/RegisterMoL.cc
@@ -36,6 +36,7 @@ extern "C" void ML_BSSN_O8_RegisterVars(CCTK_ARGUMENTS)
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O8::beta1"), CCTK_VarIndex("ML_BSSN_O8::beta1rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O8::beta2"), CCTK_VarIndex("ML_BSSN_O8::beta2rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O8::beta3"), CCTK_VarIndex("ML_BSSN_O8::beta3rhs"));
+ ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O8::Theta"), CCTK_VarIndex("ML_BSSN_O8::Thetarhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_O8::trK"), CCTK_VarIndex("ML_BSSN_O8::trKrhs"));
/* Register all the evolved Array functions with MoL */
diff --git a/ML_BSSN_O8/src/RegisterSymmetries.cc b/ML_BSSN_O8/src/RegisterSymmetries.cc
index 5bf0014..e53ef0f 100644
--- a/ML_BSSN_O8/src/RegisterSymmetries.cc
+++ b/ML_BSSN_O8/src/RegisterSymmetries.cc
@@ -139,6 +139,11 @@ extern "C" void ML_BSSN_O8_RegisterSymmetries(CCTK_ARGUMENTS)
sym[0] = 1;
sym[1] = 1;
sym[2] = 1;
+ SetCartSymVN(cctkGH, sym, "ML_BSSN_O8::Theta");
+
+ sym[0] = 1;
+ sym[1] = 1;
+ sym[2] = 1;
SetCartSymVN(cctkGH, sym, "ML_BSSN_O8::trK");
sym[0] = 1;
diff --git a/ML_BSSN_UPW/interface.ccl b/ML_BSSN_UPW/interface.ccl
index 4a464fb..94c3a06 100644
--- a/ML_BSSN_UPW/interface.ccl
+++ b/ML_BSSN_UPW/interface.ccl
@@ -127,6 +127,12 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "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
@@ -197,6 +203,12 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "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
diff --git a/ML_BSSN_UPW/param.ccl b/ML_BSSN_UPW/param.ccl
index 6df5b1f..15e0b18 100644
--- a/ML_BSSN_UPW/param.ccl
+++ b/ML_BSSN_UPW/param.ccl
@@ -54,6 +54,18 @@ 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"
{
"*:*" :: ""
@@ -126,28 +138,28 @@ CCTK_REAL EpsDiss "Dissipation strength"
} 0
restricted:
-CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
+CCTK_INT conformalMethod "Treatment of conformal factor"
{
*:* :: ""
-} 2
+} 0
restricted:
-CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
+CCTK_INT GammaShift "Covariant shift term in Gamma"
{
*:* :: ""
} 0
restricted:
-CCTK_INT conformalMethod "Treatment of conformal factor"
+CCTK_INT harmonicN "d/dt alpha = - f alpha^n K (harmonic=2, 1+log=1)"
{
*:* :: ""
-} 0
+} 2
restricted:
-CCTK_INT fdOrder "fdOrder"
+CCTK_INT ShiftAlphaPower "ShiftAlphaPower"
{
*:* :: ""
-} 4
+} 0
restricted:
CCTK_INT harmonicShift "Whether to use the harmonic shift"
@@ -155,6 +167,12 @@ CCTK_INT harmonicShift "Whether to use the harmonic shift"
*:* :: ""
} 0
+restricted:
+CCTK_INT fdOrder "fdOrder"
+{
+ *:* :: ""
+} 4
+
private:
KEYWORD my_initial_data "my_initial_data"
{
@@ -215,8 +233,8 @@ KEYWORD apply_dissipation "Whether to apply dissipation to the RHSs"
restricted:
CCTK_INT ML_BSSN_UPW_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars STEERABLE=RECOVER
{
- 25:25 :: "Number of evolved variables used by this thorn"
-} 25
+ 26:26 :: "Number of evolved variables used by this thorn"
+} 26
restricted:
CCTK_INT ML_BSSN_UPW_MaxNumArrayEvolvedVars "Number of Array evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_ArrayEvolved_Vars STEERABLE=RECOVER
@@ -747,6 +765,18 @@ KEYWORD beta3_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -855,6 +885,18 @@ KEYWORD ML_shift_bound "Boundary condition to implement" STEERABLE=ALWAYS
} "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"
@@ -1011,6 +1053,12 @@ CCTK_REAL beta3_bound_speed "characteristic speed at boundary" STEERABLE=ALWAYS
} 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"
@@ -1065,6 +1113,12 @@ CCTK_REAL ML_shift_bound_speed "characteristic speed at boundary" STEERABLE=ALWA
} 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"
@@ -1215,6 +1269,12 @@ CCTK_REAL beta3_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1269,6 +1329,12 @@ CCTK_REAL ML_shift_bound_limit "limit value for r -> infinity" STEERABLE=ALWAYS
} 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"
@@ -1419,6 +1485,12 @@ CCTK_REAL beta3_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
@@ -1473,6 +1545,12 @@ CCTK_REAL ML_shift_bound_scalar "Dirichlet boundary value" STEERABLE=ALWAYS
} 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"
diff --git a/ML_BSSN_UPW/schedule.ccl b/ML_BSSN_UPW/schedule.ccl
index 6b69c93..d324510 100644
--- a/ML_BSSN_UPW/schedule.ccl
+++ b/ML_BSSN_UPW/schedule.ccl
@@ -132,6 +132,19 @@ if (timelevels == 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)
@@ -249,6 +262,19 @@ if (rhs_timelevels == 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)
@@ -286,6 +312,7 @@ if (CCTK_EQUALS(my_initial_data, "Minkowski"))
WRITES: ML_BSSN_UPW::ML_log_confac
WRITES: ML_BSSN_UPW::ML_metric
WRITES: ML_BSSN_UPW::ML_shift
+ WRITES: ML_BSSN_UPW::ML_Theta
WRITES: ML_BSSN_UPW::ML_trace_curv
} "ML_BSSN_UPW_Minkowski"
}
@@ -307,6 +334,7 @@ if (CCTK_EQUALS(my_initial_data, "ADMBase"))
WRITES: ML_BSSN_UPW::ML_log_confac
WRITES: ML_BSSN_UPW::ML_metric
WRITES: ML_BSSN_UPW::ML_shift
+ WRITES: ML_BSSN_UPW::ML_Theta
WRITES: ML_BSSN_UPW::ML_trace_curv
} "ML_BSSN_UPW_convertFromADMBase"
}
@@ -358,6 +386,7 @@ schedule ML_BSSN_UPW_RHS1 IN ML_BSSN_UPW_evolCalcGroup
READS: ML_BSSN_UPW::ML_log_confac
READS: ML_BSSN_UPW::ML_metric
READS: ML_BSSN_UPW::ML_shift
+ READS: ML_BSSN_UPW::ML_Theta
READS: ML_BSSN_UPW::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -369,6 +398,7 @@ schedule ML_BSSN_UPW_RHS1 IN ML_BSSN_UPW_evolCalcGroup
WRITES: ML_BSSN_UPW::ML_log_confacrhs
WRITES: ML_BSSN_UPW::ML_metricrhs
WRITES: ML_BSSN_UPW::ML_shiftrhs
+ WRITES: ML_BSSN_UPW::ML_Thetarhs
WRITES: ML_BSSN_UPW::ML_trace_curvrhs
} "ML_BSSN_UPW_RHS1"
@@ -383,6 +413,7 @@ schedule ML_BSSN_UPW_RHS2 IN ML_BSSN_UPW_evolCalcGroup
READS: ML_BSSN_UPW::ML_log_confac
READS: ML_BSSN_UPW::ML_metric
READS: ML_BSSN_UPW::ML_shift
+ READS: ML_BSSN_UPW::ML_Theta
READS: ML_BSSN_UPW::ML_trace_curv
READS: TmunuBase::stress_energy_scalar
READS: TmunuBase::stress_energy_tensor
@@ -412,6 +443,8 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
READS: ML_BSSN_UPW::ML_metricrhs
READS: ML_BSSN_UPW::ML_shift
READS: ML_BSSN_UPW::ML_shiftrhs
+ READS: ML_BSSN_UPW::ML_Theta
+ READS: ML_BSSN_UPW::ML_Thetarhs
READS: ML_BSSN_UPW::ML_trace_curv
READS: ML_BSSN_UPW::ML_trace_curvrhs
WRITES: ML_BSSN_UPW::ML_curvrhs
@@ -422,6 +455,7 @@ if (CCTK_EQUALS(apply_dissipation, "always"))
WRITES: ML_BSSN_UPW::ML_log_confacrhs
WRITES: ML_BSSN_UPW::ML_metricrhs
WRITES: ML_BSSN_UPW::ML_shiftrhs
+ WRITES: ML_BSSN_UPW::ML_Thetarhs
WRITES: ML_BSSN_UPW::ML_trace_curvrhs
} "ML_BSSN_UPW_Dissipation"
}
@@ -445,6 +479,8 @@ schedule ML_BSSN_UPW_Advect IN ML_BSSN_UPW_evolCalcGroup AFTER (ML_BSSN_UPW_RHS1
READS: ML_BSSN_UPW::ML_metricrhs
READS: ML_BSSN_UPW::ML_shift
READS: ML_BSSN_UPW::ML_shiftrhs
+ READS: ML_BSSN_UPW::ML_Theta
+ READS: ML_BSSN_UPW::ML_Thetarhs
READS: ML_BSSN_UPW::ML_trace_curv
READS: ML_BSSN_UPW::ML_trace_curvrhs
WRITES: ML_BSSN_UPW::ML_curvrhs
@@ -455,6 +491,7 @@ schedule ML_BSSN_UPW_Advect IN ML_BSSN_UPW_evolCalcGroup AFTER (ML_BSSN_UPW_RHS1
WRITES: ML_BSSN_UPW::ML_log_confacrhs
WRITES: ML_BSSN_UPW::ML_metricrhs
WRITES: ML_BSSN_UPW::ML_shiftrhs
+ WRITES: ML_BSSN_UPW::ML_Thetarhs
WRITES: ML_BSSN_UPW::ML_trace_curvrhs
} "ML_BSSN_UPW_Advect"
@@ -469,6 +506,7 @@ schedule ML_BSSN_UPW_InitRHS AT analysis BEFORE ML_BSSN_UPW_evolCalcGroup
WRITES: ML_BSSN_UPW::ML_log_confacrhs
WRITES: ML_BSSN_UPW::ML_metricrhs
WRITES: ML_BSSN_UPW::ML_shiftrhs
+ WRITES: ML_BSSN_UPW::ML_Thetarhs
WRITES: ML_BSSN_UPW::ML_trace_curvrhs
} "ML_BSSN_UPW_InitRHS"
@@ -486,6 +524,7 @@ if (CCTK_EQUALS(my_rhs_boundary_condition, "static"))
WRITES: ML_BSSN_UPW::ML_log_confacrhs
WRITES: ML_BSSN_UPW::ML_metricrhs
WRITES: ML_BSSN_UPW::ML_shiftrhs
+ WRITES: ML_BSSN_UPW::ML_Thetarhs
WRITES: ML_BSSN_UPW::ML_trace_curvrhs
} "ML_BSSN_UPW_RHSStaticBoundary"
}
@@ -514,6 +553,7 @@ if (CCTK_EQUALS(my_boundary_condition, "Minkowski"))
WRITES: ML_BSSN_UPW::ML_log_confac
WRITES: ML_BSSN_UPW::ML_metric
WRITES: ML_BSSN_UPW::ML_shift
+ WRITES: ML_BSSN_UPW::ML_Theta
WRITES: ML_BSSN_UPW::ML_trace_curv
} "ML_BSSN_UPW_boundary"
}
@@ -551,6 +591,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_UPW::ML_log_confac
READS: ML_BSSN_UPW::ML_metric
READS: ML_BSSN_UPW::ML_shift
+ READS: ML_BSSN_UPW::ML_Theta
READS: ML_BSSN_UPW::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -571,6 +612,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "correct"))
READS: ML_BSSN_UPW::ML_lapse
READS: ML_BSSN_UPW::ML_metric
READS: ML_BSSN_UPW::ML_shift
+ READS: ML_BSSN_UPW::ML_Theta
READS: ML_BSSN_UPW::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -591,6 +633,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection"))
READS: ML_BSSN_UPW::ML_lapse
READS: ML_BSSN_UPW::ML_metric
READS: ML_BSSN_UPW::ML_shift
+ READS: ML_BSSN_UPW::ML_Theta
READS: ML_BSSN_UPW::ML_trace_curv
WRITES: ADMBase::dtlapse
WRITES: ADMBase::dtshift
@@ -701,6 +744,7 @@ schedule ML_BSSN_UPW_SelectBoundConds in MoL_PostStep
SYNC: ML_log_confac
SYNC: ML_metric
SYNC: ML_shift
+ SYNC: ML_Theta
SYNC: ML_trace_curv
} "select boundary conditions"
diff --git a/ML_BSSN_UPW/src/Boundaries.cc b/ML_BSSN_UPW/src/Boundaries.cc
index e2ceb2c..506d116 100644
--- a/ML_BSSN_UPW/src/Boundaries.cc
+++ b/ML_BSSN_UPW/src/Boundaries.cc
@@ -120,6 +120,17 @@ extern "C" void ML_BSSN_UPW_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register ML_shift_bound BC for ML_BSSN_UPW::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_BSSN_UPW::ML_Theta", ML_Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register ML_Theta_bound BC for ML_BSSN_UPW::ML_Theta!");
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "none" ) ||
CCTK_EQUALS(ML_trace_curv_bound, "static") ||
CCTK_EQUALS(ML_trace_curv_bound, "flat" ) ||
@@ -395,6 +406,17 @@ extern "C" void ML_BSSN_UPW_SelectBoundConds(CCTK_ARGUMENTS)
CCTK_WARN(0, "Failed to register beta3_bound BC for ML_BSSN_UPW::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_BSSN_UPW::Theta", Theta_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Theta_bound BC for ML_BSSN_UPW::Theta!");
+ }
+
if (CCTK_EQUALS(trK_bound, "none" ) ||
CCTK_EQUALS(trK_bound, "static") ||
CCTK_EQUALS(trK_bound, "flat" ) ||
@@ -558,6 +580,25 @@ extern "C" void ML_BSSN_UPW_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_UPW::ML_Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_UPW::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1033,6 +1074,25 @@ extern "C" void ML_BSSN_UPW_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_UPW::Theta", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN_UPW::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "radiative"))
{
/* select radiation boundary condition */
@@ -1188,6 +1248,23 @@ extern "C" void ML_BSSN_UPW_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_UPW::ML_Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Scalar BC for ML_BSSN_UPW::ML_Theta!");
+
+ }
+
if (CCTK_EQUALS(ML_trace_curv_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1613,6 +1690,23 @@ extern "C" void ML_BSSN_UPW_SelectBoundConds(CCTK_ARGUMENTS)
}
+ 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_BSSN_UPW::Theta", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Error in registering Scalar BC for ML_BSSN_UPW::Theta!");
+
+ }
+
if (CCTK_EQUALS(trK_bound, "scalar"))
{
/* select scalar boundary condition */
@@ -1675,6 +1769,11 @@ extern "C" void ML_BSSN_UPW_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_UPW::ML_shift_bound_limit = 0.0
#$bound$#ML_BSSN_UPW::ML_shift_bound_scalar = 0.0
+#$bound$#ML_BSSN_UPW::ML_Theta_bound = "skip"
+#$bound$#ML_BSSN_UPW::ML_Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_UPW::ML_Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_UPW::ML_Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_UPW::ML_trace_curv_bound = "skip"
#$bound$#ML_BSSN_UPW::ML_trace_curv_bound_speed = 1.0
#$bound$#ML_BSSN_UPW::ML_trace_curv_bound_limit = 0.0
@@ -1800,6 +1899,11 @@ extern "C" void ML_BSSN_UPW_SelectBoundConds(CCTK_ARGUMENTS)
#$bound$#ML_BSSN_UPW::beta3_bound_limit = 0.0
#$bound$#ML_BSSN_UPW::beta3_bound_scalar = 0.0
+#$bound$#ML_BSSN_UPW::Theta_bound = "skip"
+#$bound$#ML_BSSN_UPW::Theta_bound_speed = 1.0
+#$bound$#ML_BSSN_UPW::Theta_bound_limit = 0.0
+#$bound$#ML_BSSN_UPW::Theta_bound_scalar = 0.0
+
#$bound$#ML_BSSN_UPW::trK_bound = "skip"
#$bound$#ML_BSSN_UPW::trK_bound_speed = 1.0
#$bound$#ML_BSSN_UPW::trK_bound_limit = 0.0
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_Advect.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_Advect.cc
index 1fc6d96..17fd8c1 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_Advect.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_Advect.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_UPW_Advect_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
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]);
@@ -368,6 +373,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC PDupwindNth1phi;
CCTK_REAL_VEC PDupwindNth2phi;
CCTK_REAL_VEC PDupwindNth3phi;
+ CCTK_REAL_VEC PDupwindNth1Theta;
+ CCTK_REAL_VEC PDupwindNth2Theta;
+ CCTK_REAL_VEC PDupwindNth3Theta;
CCTK_REAL_VEC PDupwindNth1trK;
CCTK_REAL_VEC PDupwindNth2trK;
CCTK_REAL_VEC PDupwindNth3trK;
@@ -447,6 +455,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
PDupwindNth1phi = PDupwindNthfdOrder21(&phi[index]);
PDupwindNth2phi = PDupwindNthfdOrder22(&phi[index]);
PDupwindNth3phi = PDupwindNthfdOrder23(&phi[index]);
+ PDupwindNth1Theta = PDupwindNthfdOrder21(&Theta[index]);
+ PDupwindNth2Theta = PDupwindNthfdOrder22(&Theta[index]);
+ PDupwindNth3Theta = PDupwindNthfdOrder23(&Theta[index]);
PDupwindNth1trK = PDupwindNthfdOrder21(&trK[index]);
PDupwindNth2trK = PDupwindNthfdOrder22(&trK[index]);
PDupwindNth3trK = PDupwindNthfdOrder23(&trK[index]);
@@ -525,6 +536,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
PDupwindNth1phi = PDupwindNthfdOrder41(&phi[index]);
PDupwindNth2phi = PDupwindNthfdOrder42(&phi[index]);
PDupwindNth3phi = PDupwindNthfdOrder43(&phi[index]);
+ PDupwindNth1Theta = PDupwindNthfdOrder41(&Theta[index]);
+ PDupwindNth2Theta = PDupwindNthfdOrder42(&Theta[index]);
+ PDupwindNth3Theta = PDupwindNthfdOrder43(&Theta[index]);
PDupwindNth1trK = PDupwindNthfdOrder41(&trK[index]);
PDupwindNth2trK = PDupwindNthfdOrder42(&trK[index]);
PDupwindNth3trK = PDupwindNthfdOrder43(&trK[index]);
@@ -603,6 +617,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
PDupwindNth1phi = PDupwindNthfdOrder61(&phi[index]);
PDupwindNth2phi = PDupwindNthfdOrder62(&phi[index]);
PDupwindNth3phi = PDupwindNthfdOrder63(&phi[index]);
+ PDupwindNth1Theta = PDupwindNthfdOrder61(&Theta[index]);
+ PDupwindNth2Theta = PDupwindNthfdOrder62(&Theta[index]);
+ PDupwindNth3Theta = PDupwindNthfdOrder63(&Theta[index]);
PDupwindNth1trK = PDupwindNthfdOrder61(&trK[index]);
PDupwindNth2trK = PDupwindNthfdOrder62(&trK[index]);
PDupwindNth3trK = PDupwindNthfdOrder63(&trK[index]);
@@ -681,6 +698,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
PDupwindNth1phi = PDupwindNthfdOrder81(&phi[index]);
PDupwindNth2phi = PDupwindNthfdOrder82(&phi[index]);
PDupwindNth3phi = PDupwindNthfdOrder83(&phi[index]);
+ PDupwindNth1Theta = PDupwindNthfdOrder81(&Theta[index]);
+ PDupwindNth2Theta = PDupwindNthfdOrder82(&Theta[index]);
+ PDupwindNth3Theta = PDupwindNthfdOrder83(&Theta[index]);
PDupwindNth1trK = PDupwindNthfdOrder81(&trK[index]);
PDupwindNth2trK = PDupwindNthfdOrder82(&trK[index]);
PDupwindNth3trK = PDupwindNthfdOrder83(&trK[index]);
@@ -724,6 +744,7 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC JacPDupwindNth1gt23;
CCTK_REAL_VEC JacPDupwindNth1gt33;
CCTK_REAL_VEC JacPDupwindNth1phi;
+ CCTK_REAL_VEC JacPDupwindNth1Theta;
CCTK_REAL_VEC JacPDupwindNth1trK;
CCTK_REAL_VEC JacPDupwindNth1Xt1;
CCTK_REAL_VEC JacPDupwindNth1Xt2;
@@ -749,6 +770,7 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC JacPDupwindNth2gt23;
CCTK_REAL_VEC JacPDupwindNth2gt33;
CCTK_REAL_VEC JacPDupwindNth2phi;
+ CCTK_REAL_VEC JacPDupwindNth2Theta;
CCTK_REAL_VEC JacPDupwindNth2trK;
CCTK_REAL_VEC JacPDupwindNth2Xt1;
CCTK_REAL_VEC JacPDupwindNth2Xt2;
@@ -774,6 +796,7 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC JacPDupwindNth3gt23;
CCTK_REAL_VEC JacPDupwindNth3gt33;
CCTK_REAL_VEC JacPDupwindNth3phi;
+ CCTK_REAL_VEC JacPDupwindNth3Theta;
CCTK_REAL_VEC JacPDupwindNth3trK;
CCTK_REAL_VEC JacPDupwindNth3Xt1;
CCTK_REAL_VEC JacPDupwindNth3Xt2;
@@ -844,6 +867,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNth1phi =
kmadd(J11L,PDupwindNth1phi,kmadd(J21L,PDupwindNth2phi,kmul(J31L,PDupwindNth3phi)));
+ JacPDupwindNth1Theta =
+ kmadd(J11L,PDupwindNth1Theta,kmadd(J21L,PDupwindNth2Theta,kmul(J31L,PDupwindNth3Theta)));
+
JacPDupwindNth1trK =
kmadd(J11L,PDupwindNth1trK,kmadd(J21L,PDupwindNth2trK,kmul(J31L,PDupwindNth3trK)));
@@ -919,6 +945,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNth2phi =
kmadd(J12L,PDupwindNth1phi,kmadd(J22L,PDupwindNth2phi,kmul(J32L,PDupwindNth3phi)));
+ JacPDupwindNth2Theta =
+ kmadd(J12L,PDupwindNth1Theta,kmadd(J22L,PDupwindNth2Theta,kmul(J32L,PDupwindNth3Theta)));
+
JacPDupwindNth2trK =
kmadd(J12L,PDupwindNth1trK,kmadd(J22L,PDupwindNth2trK,kmul(J32L,PDupwindNth3trK)));
@@ -994,6 +1023,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNth3phi =
kmadd(J13L,PDupwindNth1phi,kmadd(J23L,PDupwindNth2phi,kmul(J33L,PDupwindNth3phi)));
+ JacPDupwindNth3Theta =
+ kmadd(J13L,PDupwindNth1Theta,kmadd(J23L,PDupwindNth2Theta,kmul(J33L,PDupwindNth3Theta)));
+
JacPDupwindNth3trK =
kmadd(J13L,PDupwindNth1trK,kmadd(J23L,PDupwindNth2trK,kmul(J33L,PDupwindNth3trK)));
@@ -1050,6 +1082,8 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNth1phi = PDupwindNth1phi;
+ JacPDupwindNth1Theta = PDupwindNth1Theta;
+
JacPDupwindNth1trK = PDupwindNth1trK;
JacPDupwindNth1Xt1 = PDupwindNth1Xt1;
@@ -1100,6 +1134,8 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNth2phi = PDupwindNth2phi;
+ JacPDupwindNth2Theta = PDupwindNth2Theta;
+
JacPDupwindNth2trK = PDupwindNth2trK;
JacPDupwindNth2Xt1 = PDupwindNth2Xt1;
@@ -1150,6 +1186,8 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
JacPDupwindNth3phi = PDupwindNth3phi;
+ JacPDupwindNth3Theta = PDupwindNth3Theta;
+
JacPDupwindNth3trK = PDupwindNth3trK;
JacPDupwindNth3Xt1 = PDupwindNth3Xt1;
@@ -1189,6 +1227,9 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
Xt3rhsL =
kadd(Xt3rhsL,kmadd(beta1L,JacPDupwindNth1Xt3,kmadd(beta2L,JacPDupwindNth2Xt3,kmul(beta3L,JacPDupwindNth3Xt3))));
+ ThetarhsL = kadd(ThetarhsL,IfThen(conformalMethod ==
+ 2,kmadd(beta1L,JacPDupwindNth1Theta,kmadd(beta2L,JacPDupwindNth2Theta,kmul(beta3L,JacPDupwindNth3Theta))),ToReal(0)));
+
trKrhsL =
kadd(trKrhsL,kmadd(beta1L,JacPDupwindNth1trK,kmadd(beta2L,JacPDupwindNth2trK,kmul(beta3L,JacPDupwindNth3trK))));
@@ -1257,6 +1298,7 @@ static void ML_BSSN_UPW_Advect_Body(cGH const * restrict const cctkGH, int const
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);
@@ -1298,9 +1340,11 @@ extern "C" void ML_BSSN_UPW_Advect(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_metricrhs",
"ML_BSSN_UPW::ML_shift",
"ML_BSSN_UPW::ML_shiftrhs",
+ "ML_BSSN_UPW::ML_Theta",
+ "ML_BSSN_UPW::ML_Thetarhs",
"ML_BSSN_UPW::ML_trace_curv",
"ML_BSSN_UPW::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_Advect", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_Advect", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_Dissipation.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_Dissipation.cc
index f0b0b60..de4da17 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_Dissipation.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_Dissipation.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_UPW_Dissipation_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_trace_curvrhs.");
@@ -277,6 +280,8 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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]);
@@ -368,6 +373,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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;
@@ -447,6 +455,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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]);
@@ -525,6 +536,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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]);
@@ -603,6 +617,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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]);
@@ -681,6 +698,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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]);
@@ -718,6 +738,7 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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;
@@ -743,6 +764,7 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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;
@@ -768,6 +790,7 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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;
@@ -838,6 +861,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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)));
@@ -913,6 +939,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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)));
@@ -988,6 +1017,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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)));
@@ -1044,6 +1076,8 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
JacPDdissipationNth1phi = PDdissipationNth1phi;
+ JacPDdissipationNth1Theta = PDdissipationNth1Theta;
+
JacPDdissipationNth1trK = PDdissipationNth1trK;
JacPDdissipationNth1Xt1 = PDdissipationNth1Xt1;
@@ -1094,6 +1128,8 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
JacPDdissipationNth2phi = PDdissipationNth2phi;
+ JacPDdissipationNth2Theta = PDdissipationNth2Theta;
+
JacPDdissipationNth2trK = PDdissipationNth2trK;
JacPDdissipationNth2Xt1 = PDdissipationNth2Xt1;
@@ -1144,6 +1180,8 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
JacPDdissipationNth3phi = PDdissipationNth3phi;
+ JacPDdissipationNth3Theta = PDdissipationNth3Theta;
+
JacPDdissipationNth3trK = PDdissipationNth3trK;
JacPDdissipationNth3Xt1 = PDdissipationNth3Xt1;
@@ -1189,6 +1227,9 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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))));
@@ -1257,6 +1298,7 @@ static void ML_BSSN_UPW_Dissipation_Body(cGH const * restrict const cctkGH, int
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);
@@ -1298,9 +1340,11 @@ extern "C" void ML_BSSN_UPW_Dissipation(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_metricrhs",
"ML_BSSN_UPW::ML_shift",
"ML_BSSN_UPW::ML_shiftrhs",
+ "ML_BSSN_UPW::ML_Theta",
+ "ML_BSSN_UPW::ML_Thetarhs",
"ML_BSSN_UPW::ML_trace_curv",
"ML_BSSN_UPW::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_Dissipation", 18, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_Dissipation", 20, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_InitRHS.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_InitRHS.cc
index dc02a4a..b0ac998 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_InitRHS.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_InitRHS.cc
@@ -256,6 +256,8 @@ static void ML_BSSN_UPW_InitRHS_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_UPW_InitRHS_Body(cGH const * restrict const cctkGH, int cons
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_UPW_InitRHS(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_log_confacrhs",
"ML_BSSN_UPW::ML_metricrhs",
"ML_BSSN_UPW::ML_shiftrhs",
+ "ML_BSSN_UPW::ML_Thetarhs",
"ML_BSSN_UPW::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_InitRHS", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_InitRHS", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_Minkowski.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_Minkowski.cc
index a77438e..23324a9 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);
@@ -256,6 +256,8 @@ static void ML_BSSN_UPW_Minkowski_Body(cGH const * restrict const cctkGH, int co
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -295,6 +297,7 @@ static void ML_BSSN_UPW_Minkowski_Body(cGH const * restrict const cctkGH, int co
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);
@@ -328,8 +331,9 @@ extern "C" void ML_BSSN_UPW_Minkowski(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_log_confac",
"ML_BSSN_UPW::ML_metric",
"ML_BSSN_UPW::ML_shift",
+ "ML_BSSN_UPW::ML_Theta",
"ML_BSSN_UPW::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_Minkowski", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_Minkowski", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc
index be7f83d..6621d82 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS1.cc
@@ -50,6 +50,9 @@ extern "C" void ML_BSSN_UPW_RHS1_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_trace_curvrhs.");
@@ -254,6 +257,7 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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]);
@@ -363,27 +367,81 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)
{
@@ -427,27 +485,81 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
PDstandardNth1gt11 = PDstandardNthfdOrder21(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder22(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder23(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder211(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder222(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder233(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder212(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder213(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder223(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder21(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder22(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder23(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder211(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder222(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder233(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder212(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder213(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder223(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder21(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder22(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder23(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder211(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder222(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder233(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder212(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder213(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder223(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder21(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder22(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder23(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder211(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder222(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder233(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder212(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder213(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder223(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder21(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder22(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder23(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder211(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder222(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder233(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder212(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder213(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder223(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder21(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder22(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder23(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder211(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder222(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder233(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder212(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder213(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder223(&gt33[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:
@@ -490,27 +602,81 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
PDstandardNth1gt11 = PDstandardNthfdOrder41(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder42(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder43(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder411(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder422(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder433(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder412(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder413(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder423(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder41(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder42(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder43(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder411(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder422(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder433(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder412(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder413(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder423(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder41(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder42(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder43(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder411(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder422(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder433(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder412(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder413(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder423(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder41(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder42(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder43(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder411(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder422(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder433(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder412(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder413(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder423(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder41(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder42(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder43(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder411(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder422(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder433(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder412(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder413(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder423(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder41(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder42(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder43(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder411(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder422(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder433(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder412(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder413(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder423(&gt33[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:
@@ -553,27 +719,81 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
PDstandardNth1gt11 = PDstandardNthfdOrder61(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder62(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder63(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder611(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder622(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder633(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder612(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder613(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder623(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder61(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder62(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder63(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder611(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder622(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder633(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder612(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder613(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder623(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder61(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder62(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder63(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder611(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder622(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder633(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder612(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder613(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder623(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder61(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder62(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder63(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder611(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder622(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder633(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder612(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder613(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder623(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder61(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder62(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder63(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder611(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder622(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder633(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder612(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder613(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder623(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder61(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder62(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder63(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder611(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder622(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder633(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder612(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder613(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder623(&gt33[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:
@@ -616,27 +836,81 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
PDstandardNth1gt11 = PDstandardNthfdOrder81(&gt11[index]);
PDstandardNth2gt11 = PDstandardNthfdOrder82(&gt11[index]);
PDstandardNth3gt11 = PDstandardNthfdOrder83(&gt11[index]);
+ PDstandardNth11gt11 = PDstandardNthfdOrder811(&gt11[index]);
+ PDstandardNth22gt11 = PDstandardNthfdOrder822(&gt11[index]);
+ PDstandardNth33gt11 = PDstandardNthfdOrder833(&gt11[index]);
+ PDstandardNth12gt11 = PDstandardNthfdOrder812(&gt11[index]);
+ PDstandardNth13gt11 = PDstandardNthfdOrder813(&gt11[index]);
+ PDstandardNth23gt11 = PDstandardNthfdOrder823(&gt11[index]);
PDstandardNth1gt12 = PDstandardNthfdOrder81(&gt12[index]);
PDstandardNth2gt12 = PDstandardNthfdOrder82(&gt12[index]);
PDstandardNth3gt12 = PDstandardNthfdOrder83(&gt12[index]);
+ PDstandardNth11gt12 = PDstandardNthfdOrder811(&gt12[index]);
+ PDstandardNth22gt12 = PDstandardNthfdOrder822(&gt12[index]);
+ PDstandardNth33gt12 = PDstandardNthfdOrder833(&gt12[index]);
+ PDstandardNth12gt12 = PDstandardNthfdOrder812(&gt12[index]);
+ PDstandardNth13gt12 = PDstandardNthfdOrder813(&gt12[index]);
+ PDstandardNth23gt12 = PDstandardNthfdOrder823(&gt12[index]);
PDstandardNth1gt13 = PDstandardNthfdOrder81(&gt13[index]);
PDstandardNth2gt13 = PDstandardNthfdOrder82(&gt13[index]);
PDstandardNth3gt13 = PDstandardNthfdOrder83(&gt13[index]);
+ PDstandardNth11gt13 = PDstandardNthfdOrder811(&gt13[index]);
+ PDstandardNth22gt13 = PDstandardNthfdOrder822(&gt13[index]);
+ PDstandardNth33gt13 = PDstandardNthfdOrder833(&gt13[index]);
+ PDstandardNth12gt13 = PDstandardNthfdOrder812(&gt13[index]);
+ PDstandardNth13gt13 = PDstandardNthfdOrder813(&gt13[index]);
+ PDstandardNth23gt13 = PDstandardNthfdOrder823(&gt13[index]);
PDstandardNth1gt22 = PDstandardNthfdOrder81(&gt22[index]);
PDstandardNth2gt22 = PDstandardNthfdOrder82(&gt22[index]);
PDstandardNth3gt22 = PDstandardNthfdOrder83(&gt22[index]);
+ PDstandardNth11gt22 = PDstandardNthfdOrder811(&gt22[index]);
+ PDstandardNth22gt22 = PDstandardNthfdOrder822(&gt22[index]);
+ PDstandardNth33gt22 = PDstandardNthfdOrder833(&gt22[index]);
+ PDstandardNth12gt22 = PDstandardNthfdOrder812(&gt22[index]);
+ PDstandardNth13gt22 = PDstandardNthfdOrder813(&gt22[index]);
+ PDstandardNth23gt22 = PDstandardNthfdOrder823(&gt22[index]);
PDstandardNth1gt23 = PDstandardNthfdOrder81(&gt23[index]);
PDstandardNth2gt23 = PDstandardNthfdOrder82(&gt23[index]);
PDstandardNth3gt23 = PDstandardNthfdOrder83(&gt23[index]);
+ PDstandardNth11gt23 = PDstandardNthfdOrder811(&gt23[index]);
+ PDstandardNth22gt23 = PDstandardNthfdOrder822(&gt23[index]);
+ PDstandardNth33gt23 = PDstandardNthfdOrder833(&gt23[index]);
+ PDstandardNth12gt23 = PDstandardNthfdOrder812(&gt23[index]);
+ PDstandardNth13gt23 = PDstandardNthfdOrder813(&gt23[index]);
+ PDstandardNth23gt23 = PDstandardNthfdOrder823(&gt23[index]);
PDstandardNth1gt33 = PDstandardNthfdOrder81(&gt33[index]);
PDstandardNth2gt33 = PDstandardNthfdOrder82(&gt33[index]);
PDstandardNth3gt33 = PDstandardNthfdOrder83(&gt33[index]);
+ PDstandardNth11gt33 = PDstandardNthfdOrder811(&gt33[index]);
+ PDstandardNth22gt33 = PDstandardNthfdOrder822(&gt33[index]);
+ PDstandardNth33gt33 = PDstandardNthfdOrder833(&gt33[index]);
+ PDstandardNth12gt33 = PDstandardNthfdOrder812(&gt33[index]);
+ PDstandardNth13gt33 = PDstandardNthfdOrder813(&gt33[index]);
+ PDstandardNth23gt33 = PDstandardNthfdOrder823(&gt33[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;
}
@@ -651,14 +925,35 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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;
@@ -670,19 +965,43 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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;
@@ -694,19 +1013,42 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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;
@@ -718,7 +1060,11 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)
{
@@ -755,9 +1101,21 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)));
@@ -791,9 +1149,21 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)));
@@ -827,9 +1197,21 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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))))))));
@@ -842,6 +1224,27 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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))))))));
@@ -854,6 +1257,27 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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))))))));
@@ -866,6 +1290,27 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)))))));
@@ -878,6 +1323,27 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)))))));
@@ -890,6 +1356,27 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)))))));
@@ -902,6 +1389,24 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)))))));
@@ -914,6 +1419,27 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)))))));
@@ -926,6 +1452,24 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)))))));
@@ -937,6 +1481,24 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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
{
@@ -962,8 +1524,16 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth1phi = PDstandardNth1phi;
+ JacPDstandardNth1Theta = PDstandardNth1Theta;
+
JacPDstandardNth1trK = PDstandardNth1trK;
+ JacPDstandardNth1Xt1 = PDstandardNth1Xt1;
+
+ JacPDstandardNth1Xt2 = PDstandardNth1Xt2;
+
+ JacPDstandardNth1Xt3 = PDstandardNth1Xt3;
+
JacPDstandardNth2alpha = PDstandardNth2alpha;
JacPDstandardNth2beta1 = PDstandardNth2beta1;
@@ -986,8 +1556,16 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth2phi = PDstandardNth2phi;
+ JacPDstandardNth2Theta = PDstandardNth2Theta;
+
JacPDstandardNth2trK = PDstandardNth2trK;
+ JacPDstandardNth2Xt1 = PDstandardNth2Xt1;
+
+ JacPDstandardNth2Xt2 = PDstandardNth2Xt2;
+
+ JacPDstandardNth2Xt3 = PDstandardNth2Xt3;
+
JacPDstandardNth3alpha = PDstandardNth3alpha;
JacPDstandardNth3beta1 = PDstandardNth3beta1;
@@ -1010,8 +1588,16 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth3phi = PDstandardNth3phi;
+ JacPDstandardNth3Theta = PDstandardNth3Theta;
+
JacPDstandardNth3trK = PDstandardNth3trK;
+ JacPDstandardNth3Xt1 = PDstandardNth3Xt1;
+
+ JacPDstandardNth3Xt2 = PDstandardNth3Xt2;
+
+ JacPDstandardNth3Xt3 = PDstandardNth3Xt3;
+
JacPDstandardNth11alpha = PDstandardNth11alpha;
JacPDstandardNth11beta1 = PDstandardNth11beta1;
@@ -1020,6 +1606,20 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth11beta3 = PDstandardNth11beta3;
+ JacPDstandardNth11gt11 = PDstandardNth11gt11;
+
+ JacPDstandardNth11gt12 = PDstandardNth11gt12;
+
+ JacPDstandardNth11gt13 = PDstandardNth11gt13;
+
+ JacPDstandardNth11gt22 = PDstandardNth11gt22;
+
+ JacPDstandardNth11gt23 = PDstandardNth11gt23;
+
+ JacPDstandardNth11gt33 = PDstandardNth11gt33;
+
+ JacPDstandardNth11phi = PDstandardNth11phi;
+
JacPDstandardNth22alpha = PDstandardNth22alpha;
JacPDstandardNth22beta1 = PDstandardNth22beta1;
@@ -1028,6 +1628,20 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth22beta3 = PDstandardNth22beta3;
+ JacPDstandardNth22gt11 = PDstandardNth22gt11;
+
+ JacPDstandardNth22gt12 = PDstandardNth22gt12;
+
+ JacPDstandardNth22gt13 = PDstandardNth22gt13;
+
+ JacPDstandardNth22gt22 = PDstandardNth22gt22;
+
+ JacPDstandardNth22gt23 = PDstandardNth22gt23;
+
+ JacPDstandardNth22gt33 = PDstandardNth22gt33;
+
+ JacPDstandardNth22phi = PDstandardNth22phi;
+
JacPDstandardNth33alpha = PDstandardNth33alpha;
JacPDstandardNth33beta1 = PDstandardNth33beta1;
@@ -1036,6 +1650,20 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth33beta3 = PDstandardNth33beta3;
+ JacPDstandardNth33gt11 = PDstandardNth33gt11;
+
+ JacPDstandardNth33gt12 = PDstandardNth33gt12;
+
+ JacPDstandardNth33gt13 = PDstandardNth33gt13;
+
+ JacPDstandardNth33gt22 = PDstandardNth33gt22;
+
+ JacPDstandardNth33gt23 = PDstandardNth33gt23;
+
+ JacPDstandardNth33gt33 = PDstandardNth33gt33;
+
+ JacPDstandardNth33phi = PDstandardNth33phi;
+
JacPDstandardNth12alpha = PDstandardNth12alpha;
JacPDstandardNth12beta1 = PDstandardNth12beta1;
@@ -1044,6 +1672,20 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth12beta3 = PDstandardNth12beta3;
+ JacPDstandardNth12gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth12gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth12gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth12gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth12gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth12gt33 = PDstandardNth12gt33;
+
+ JacPDstandardNth12phi = PDstandardNth12phi;
+
JacPDstandardNth13alpha = PDstandardNth13alpha;
JacPDstandardNth13beta1 = PDstandardNth13beta1;
@@ -1052,6 +1694,20 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth13beta3 = PDstandardNth13beta3;
+ JacPDstandardNth13gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth13gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth13gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth13gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth13gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth13gt33 = PDstandardNth13gt33;
+
+ JacPDstandardNth13phi = PDstandardNth13phi;
+
JacPDstandardNth21alpha = PDstandardNth12alpha;
JacPDstandardNth21beta1 = PDstandardNth12beta1;
@@ -1060,6 +1716,18 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth21beta3 = PDstandardNth12beta3;
+ JacPDstandardNth21gt11 = PDstandardNth12gt11;
+
+ JacPDstandardNth21gt12 = PDstandardNth12gt12;
+
+ JacPDstandardNth21gt13 = PDstandardNth12gt13;
+
+ JacPDstandardNth21gt22 = PDstandardNth12gt22;
+
+ JacPDstandardNth21gt23 = PDstandardNth12gt23;
+
+ JacPDstandardNth21gt33 = PDstandardNth12gt33;
+
JacPDstandardNth23alpha = PDstandardNth23alpha;
JacPDstandardNth23beta1 = PDstandardNth23beta1;
@@ -1068,6 +1736,20 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth23beta3 = PDstandardNth23beta3;
+ JacPDstandardNth23gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth23gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth23gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth23gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth23gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth23gt33 = PDstandardNth23gt33;
+
+ JacPDstandardNth23phi = PDstandardNth23phi;
+
JacPDstandardNth31alpha = PDstandardNth13alpha;
JacPDstandardNth31beta1 = PDstandardNth13beta1;
@@ -1076,6 +1758,18 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth31beta3 = PDstandardNth13beta3;
+ JacPDstandardNth31gt11 = PDstandardNth13gt11;
+
+ JacPDstandardNth31gt12 = PDstandardNth13gt12;
+
+ JacPDstandardNth31gt13 = PDstandardNth13gt13;
+
+ JacPDstandardNth31gt22 = PDstandardNth13gt22;
+
+ JacPDstandardNth31gt23 = PDstandardNth13gt23;
+
+ JacPDstandardNth31gt33 = PDstandardNth13gt33;
+
JacPDstandardNth32alpha = PDstandardNth23alpha;
JacPDstandardNth32beta1 = PDstandardNth23beta1;
@@ -1083,6 +1777,18 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
JacPDstandardNth32beta2 = PDstandardNth23beta2;
JacPDstandardNth32beta3 = PDstandardNth23beta3;
+
+ JacPDstandardNth32gt11 = PDstandardNth23gt11;
+
+ JacPDstandardNth32gt12 = PDstandardNth23gt12;
+
+ JacPDstandardNth32gt13 = PDstandardNth23gt13;
+
+ JacPDstandardNth32gt22 = PDstandardNth23gt22;
+
+ JacPDstandardNth32gt23 = PDstandardNth23gt23;
+
+ JacPDstandardNth32gt33 = PDstandardNth23gt33;
}
CCTK_REAL_VEC detgt = ToReal(1);
@@ -1150,6 +1856,87 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)));
@@ -1213,8 +2000,79 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
+ 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);
@@ -1222,6 +2080,45 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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)));
@@ -1267,10 +2164,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC em4phi = INV(e4phi);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
+
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
+
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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,35 +2197,53 @@ 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))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3)),ToReal(-3),kmadd(gt11L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt11L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At11L,ToReal(3)))))));
CCTK_REAL_VEC gt12rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At12L,ToReal(-6)),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt12L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmadd(kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmul(gt13L,JacPDstandardNth2beta3)))),ToReal(3),kmul(alphaL,kmadd(At12L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt12L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt13rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At13L,ToReal(-6)),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt13L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmul(gt12L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At13L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt13L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt22rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmul(At22L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt12L,JacPDstandardNth2beta1,kmul(gt23L,JacPDstandardNth2beta3)),ToReal(-3),kmadd(gt22L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth2beta2,ToReal(-2),JacPDstandardNth3beta3)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt22L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At22L,ToReal(3)))))));
CCTK_REAL_VEC gt23rhsL =
- kmul(ToReal(0.333333333333333333333333333333),kmadd(alphaL,kmul(At23L,ToReal(-6)),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmul(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3)))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(gt23L,kadd(JacPDstandardNth2beta2,kmadd(JacPDstandardNth1beta1,ToReal(-2),JacPDstandardNth3beta3)),kmadd(kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmul(gt22L,JacPDstandardNth3beta2)))),ToReal(3),kmul(alphaL,kmadd(At23L,ToReal(-6),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(gt23L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(6)))))));
CCTK_REAL_VEC gt33rhsL =
- kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmul(At33L,ToReal(3))))));
+ kmul(ToReal(-0.666666666666666666666666666667),kmadd(kmadd(gt13L,JacPDstandardNth3beta1,kmul(gt23L,JacPDstandardNth3beta2)),ToReal(-3),kmadd(gt33L,kadd(JacPDstandardNth1beta1,kmadd(JacPDstandardNth3beta3,ToReal(-2),JacPDstandardNth2beta2)),kmul(alphaL,kmadd(IfThen(conformalMethod
+ ==
+ 2,kmul(gt33L,kmul(ToReal(0.333333333333333333333333333333),kmadd(At11L,gtu11,kmadd(At22L,gtu22,kmadd(At33L,gtu33,kmul(kmadd(At12L,gtu12,kmadd(At13L,gtu13,kmul(At23L,gtu23))),ToReal(2))))))),ToReal(0)),ToReal(-3),kmul(At33L,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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmul(gtu33,JacPDstandardNth33beta1))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmadd(gtu33,JacPDstandardNth33beta1,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1Theta,kmadd(gtu12,JacPDstandardNth2Theta,kmul(gtu13,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z1,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmul(gtu33,JacPDstandardNth33beta2)))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(JacPDstandardNth21beta2,ToReal(3),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ 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(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu12,JacPDstandardNth21beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmadd(gtu33,JacPDstandardNth33beta2,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1Theta,kmadd(gtu22,JacPDstandardNth2Theta,kmul(gtu23,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z2,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0))))))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kmadd(JacPDstandardNth12beta2,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),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),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmul(gtu23,JacPDstandardNth32beta3)))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,JacPDstandardNth1alpha,kmadd(Atu23,JacPDstandardNth2alpha,kmul(Atu33,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta3,Xtn1,kmul(JacPDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmadd(gtu23,JacPDstandardNth32beta3,IfThen(conformalMethod
+ ==
+ 2,kadd(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)),kmadd(ThetaL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1Theta,kmadd(gtu23,JacPDstandardNth2Theta,kmul(gtu33,JacPDstandardNth3Theta))),ToReal(2),kmul(e4phi,kmul(Z3,kmadd(trKL,ToReal(-1.33333333333333333333333333333),kmul(ToReal(-2),ToReal(dampk1))))))))),ToReal(0)))))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),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))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),kmul(ToReal(-24),ToReal(Pi))))))))))))))))));
CCTK_REAL_VEC Xt1rhsL = dotXt1;
@@ -1323,16 +2251,23 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
CCTK_REAL_VEC Xt3rhsL = dotXt3;
- CCTK_REAL_VEC dottrK =
- kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha))))))))))));
+ CCTK_REAL_VEC dotTheta = IfThen(conformalMethod ==
+ 2,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)))),ToReal(0));
+
+ CCTK_REAL_VEC ThetarhsL = dotTheta;
+
+ CCTK_REAL_VEC dottrK = kadd(IfThen(conformalMethod ==
+ 2,kmsub(kadd(dotTheta,kmadd(JacPDstandardNth1alpha,Z1,kmadd(JacPDstandardNth2alpha,Z2,kmul(JacPDstandardNth3alpha,Z3)))),ToReal(2),kmul(alphaL,kmul(ThetaL,kmul(ToReal(dampk1),kadd(ToReal(-1),ToReal(dampk2)))))),ToReal(0)),kmsub(alphaL,kadd(SQR(Atm11),kadd(SQR(Atm22),kadd(SQR(Atm33),kmadd(SQR(trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),kmul(ToReal(4),ToReal(Pi)))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha)))))))))))));
CCTK_REAL_VEC trKrhsL = dottrK;
CCTK_REAL_VEC alpharhsL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmadd(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),trKL),ksub(ToReal(1),ToReal(LapseACoeff)))))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kadd(trKL,kmsub(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)))),ksub(ToReal(1),ToReal(LapseACoeff)))))));
- CCTK_REAL_VEC ArhsL =
- kmul(knmsub(AL,ToReal(AlphaDriver),dottrK),ToReal(LapseACoeff));
+ CCTK_REAL_VEC ArhsL = kneg(kmul(kadd(IfThen(conformalMethod ==
+ 2,kmul(dotTheta,ToReal(2)),ToReal(0)),kmsub(AL,ToReal(AlphaDriver),dottrK)),ToReal(LapseACoeff)));
CCTK_REAL_VEC eta =
kmul(INV(kfmax(rL,ToReal(SpatialBetaDriverRadius))),ToReal(SpatialBetaDriverRadius));
@@ -1393,6 +2328,7 @@ static void ML_BSSN_UPW_RHS1_Body(cGH const * restrict const cctkGH, int const d
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);
@@ -1435,9 +2371,11 @@ extern "C" void ML_BSSN_UPW_RHS1(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_metricrhs",
"ML_BSSN_UPW::ML_shift",
"ML_BSSN_UPW::ML_shiftrhs",
+ "ML_BSSN_UPW::ML_Theta",
+ "ML_BSSN_UPW::ML_Thetarhs",
"ML_BSSN_UPW::ML_trace_curv",
"ML_BSSN_UPW::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_RHS1", 19, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_RHS1", 21, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc
index 4178637..5981b53 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHS2.cc
@@ -228,6 +228,7 @@ static void ML_BSSN_UPW_RHS2_Body(cGH const * restrict const cctkGH, int const d
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]);
@@ -1626,6 +1627,59 @@ 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 Z1;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1698,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 +1707,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,46 +1773,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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))))));
@@ -1785,22 +1816,34 @@ static void ML_BSSN_UPW_RHS2_Body(cGH const * restrict const cctkGH, int const d
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(Atm11,ToReal(6))),kmul(em4phi,kmul(kmadd(g11,kmul(trS,ToReal(-8)),kmul(eTxxL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats11,ToReal(3),kmul(g11,trAts)),kmadd(At11L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm22,ToReal(-2),trKL),kmul(em4phi,kmadd(g12,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxyL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At22L,JacPDstandardNth1beta2,kmadd(At23L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth2beta1,kmadd(At13L,JacPDstandardNth2beta3,kmadd(At12L,kmadd(JacPDstandardNth3beta3,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth2beta2),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats12,kmadd(g12,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g12,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxyL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm12,kmul(At13L,Atm32)),ToReal(2),kmul(At12L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm22,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g13,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTxzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At23L,JacPDstandardNth1beta2,kmadd(At33L,JacPDstandardNth1beta3,kmadd(At11L,JacPDstandardNth3beta1,kmadd(At12L,JacPDstandardNth3beta2,kmadd(At13L,kmadd(JacPDstandardNth2beta2,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth1beta1,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats13,kmadd(g13,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g13,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTxzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At11L,Atm13,kmul(At12L,Atm23)),ToReal(2),kmul(At13L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm22,ToReal(6))),kmul(em4phi,kmul(kmadd(g22,kmul(trS,ToReal(-8)),kmul(eTyyL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats22,ToReal(3),kmul(g22,trAts)),kmadd(At22L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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(Atm33,ToReal(-2),trKL),kmul(em4phi,kmadd(g23,kmul(trS,ToReal(8.37758040957278196923371568875)),kmul(eTyzL,kmul(ToReal(-8),ToReal(Pi)))))))));
+ kmadd(At13L,JacPDstandardNth2beta1,kmadd(At33L,JacPDstandardNth2beta3,kmadd(At12L,JacPDstandardNth3beta1,kmadd(At22L,JacPDstandardNth3beta2,kmadd(At23L,kmadd(JacPDstandardNth1beta1,ToReal(-0.666666666666666666666666666667),kmul(kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3),ToReal(0.333333333333333333333333333333))),kmsub(em4phi,kadd(Ats23,kmadd(g23,kmul(trAts,ToReal(-0.333333333333333333333333333333)),kmul(alphaL,kmul(ToReal(-8),kmul(kmadd(g23,kmul(trS,ToReal(-0.333333333333333333333333333333)),eTyzL),ToReal(Pi)))))),kmul(alphaL,kmadd(kmadd(At12L,Atm13,kmul(At22L,Atm23)),ToReal(2),kmul(At23L,kadd(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kmsub(Atm33,ToReal(2),trKL)))))))))));
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(Atm33,ToReal(6))),kmul(em4phi,kmul(kmadd(g33,kmul(trS,ToReal(-8)),kmul(eTzzL,ToReal(24))),ToReal(Pi))))))))));
+ kmul(ToReal(0.333333333333333333333333333333),kmadd(em4phi,kmsub(Ats33,ToReal(3),kmul(g33,trAts)),kmadd(At33L,kmadd(alphaL,kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),ToReal(-3)),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(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);
@@ -1838,8 +1881,9 @@ extern "C" void ML_BSSN_UPW_RHS2(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_log_confac",
"ML_BSSN_UPW::ML_metric",
"ML_BSSN_UPW::ML_shift",
+ "ML_BSSN_UPW::ML_Theta",
"ML_BSSN_UPW::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_RHS2", 8, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_RHS2", 9, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHSStaticBoundary.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHSStaticBoundary.cc
index 1e24ff9..4f76254 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_RHSStaticBoundary.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_RHSStaticBoundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_UPW_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_shiftrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_Thetarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_Thetarhs.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_trace_curvrhs","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_trace_curvrhs.");
@@ -292,6 +295,8 @@ static void ML_BSSN_UPW_RHSStaticBoundary_Body(cGH const * restrict const cctkGH
CCTK_REAL_VEC Xt3rhsL = ToReal(0);
+ CCTK_REAL_VEC ThetarhsL = ToReal(0);
+
CCTK_REAL_VEC alpharhsL = ToReal(0);
CCTK_REAL_VEC ArhsL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_UPW_RHSStaticBoundary_Body(cGH const * restrict const cctkGH
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_UPW_RHSStaticBoundary(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_log_confacrhs",
"ML_BSSN_UPW::ML_metricrhs",
"ML_BSSN_UPW::ML_shiftrhs",
+ "ML_BSSN_UPW::ML_Thetarhs",
"ML_BSSN_UPW::ML_trace_curvrhs"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_RHSStaticBoundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_RHSStaticBoundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc
index 4d6f0de..06bb446 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_boundary.cc
@@ -53,6 +53,9 @@ extern "C" void ML_BSSN_UPW_boundary_SelectBCs(CCTK_ARGUMENTS)
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_shift","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_Theta","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_Theta.");
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_UPW::ML_trace_curv","flat");
if (ierr < 0)
CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_UPW::ML_trace_curv.");
@@ -258,7 +261,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);
@@ -292,6 +295,8 @@ static void ML_BSSN_UPW_boundary_Body(cGH const * restrict const cctkGH, int con
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = ToReal(1);
CCTK_REAL_VEC AL = ToReal(0);
@@ -331,6 +336,7 @@ static void ML_BSSN_UPW_boundary_Body(cGH const * restrict const cctkGH, int con
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);
@@ -364,8 +370,9 @@ extern "C" void ML_BSSN_UPW_boundary(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_log_confac",
"ML_BSSN_UPW::ML_metric",
"ML_BSSN_UPW::ML_shift",
+ "ML_BSSN_UPW::ML_Theta",
"ML_BSSN_UPW::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_boundary", 9, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_boundary", 10, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc
index 929992f..216ae1e 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_constraints1.cc
@@ -1430,6 +1430,59 @@ 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 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;
+ CCTK_REAL_VEC Z2;
+ CCTK_REAL_VEC Z3;
+
+ if (conformalMethod == 2)
+ {
+ 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)));
+
+ 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)));
+
+ 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)));
+ }
+ else
+ {
+ Z1 = ToReal(0);
+
+ Z2 = ToReal(0);
+
+ Z3 = ToReal(0);
+ }
+
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 +1501,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 +1510,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,34 +1549,23 @@ 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 R11 = kadd(Rphi11,kadd(Rt11,IfThen(conformalMethod ==
+ 2,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))))))),ToReal(0))));
- CCTK_REAL_VEC R12 = kadd(Rphi12,Rt12);
+ CCTK_REAL_VEC R12 = kadd(Rphi12,kadd(Rt12,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R13 = kadd(Rphi13,Rt13);
+ CCTK_REAL_VEC R13 = kadd(Rphi13,kadd(Rt13,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R22 = kadd(Rphi22,Rt22);
+ CCTK_REAL_VEC R22 = kadd(Rphi22,kadd(Rt22,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
- CCTK_REAL_VEC R23 = kadd(Rphi23,Rt23);
+ CCTK_REAL_VEC R23 = kadd(Rphi23,kadd(Rt23,IfThen(conformalMethod ==
+ 2,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)))),ToReal(0))));
- CCTK_REAL_VEC R33 = kadd(Rphi33,Rt33);
+ CCTK_REAL_VEC R33 = kadd(Rphi33,kadd(Rt33,IfThen(conformalMethod ==
+ 2,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)))))),ToReal(0))));
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)))));
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..4210e54 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);
@@ -315,6 +315,8 @@ static void ML_BSSN_UPW_convertFromADMBase_Body(cGH const * restrict const cctkG
CCTK_REAL_VEC At33L =
kmul(em4phi,kmadd(trKL,kmul(g33,ToReal(-0.333333333333333333333333333333)),kzzL));
+ CCTK_REAL_VEC ThetaL = ToReal(0);
+
CCTK_REAL_VEC alphaL = alpL;
CCTK_REAL_VEC beta1L = betaxL;
@@ -342,6 +344,7 @@ static void ML_BSSN_UPW_convertFromADMBase_Body(cGH const * restrict const cctkG
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_BSSN_UPW_convertFromADMBase);
@@ -373,8 +376,9 @@ extern "C" void ML_BSSN_UPW_convertFromADMBase(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_log_confac",
"ML_BSSN_UPW::ML_metric",
"ML_BSSN_UPW::ML_shift",
+ "ML_BSSN_UPW::ML_Theta",
"ML_BSSN_UPW::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_convertFromADMBase", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_convertFromADMBase", 11, groups);
switch(fdOrder)
{
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_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShift.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShift.cc
index 4671a53..a040c01 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShift.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShift.cc
@@ -230,6 +230,7 @@ static void ML_BSSN_UPW_convertToADMBaseDtLapseShift_Body(cGH const * restrict c
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]);
@@ -706,7 +707,9 @@ static void ML_BSSN_UPW_convertToADMBaseDtLapseShift_Body(cGH const * restrict c
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kmsub(kmadd(beta1L,JacPDupwindNth1alpha,kmadd(beta2L,JacPDupwindNth2alpha,kmul(beta3L,JacPDupwindNth3alpha))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kmsub(kmadd(beta1L,JacPDupwindNth1alpha,kmadd(beta2L,JacPDupwindNth2alpha,kmul(beta3L,JacPDupwindNth3alpha))),ToReal(LapseAdvectionCoeff),kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL =
kmadd(kmadd(beta1L,JacPDupwindNth1beta1,kmadd(beta2L,JacPDupwindNth2beta1,kmul(beta3L,JacPDupwindNth3beta1))),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)))));
@@ -755,8 +758,9 @@ extern "C" void ML_BSSN_UPW_convertToADMBaseDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_log_confac",
"ML_BSSN_UPW::ML_metric",
"ML_BSSN_UPW::ML_shift",
+ "ML_BSSN_UPW::ML_Theta",
"ML_BSSN_UPW::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_convertToADMBaseDtLapseShift", 12, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_convertToADMBaseDtLapseShift", 13, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary.cc
index 723f9b0..9a56020 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary.cc
@@ -223,6 +223,7 @@ static void ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * re
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]);
@@ -257,7 +258,9 @@ static void ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * re
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -319,8 +322,9 @@ extern "C" void ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_Gamma",
"ML_BSSN_UPW::ML_lapse",
"ML_BSSN_UPW::ML_shift",
+ "ML_BSSN_UPW::ML_Theta",
"ML_BSSN_UPW::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_convertToADMBaseDtLapseShiftBoundary", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift.cc
index d33767f..287d955 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift.cc
@@ -208,6 +208,7 @@ static void ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift_Body(cGH const * restri
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]);
@@ -242,7 +243,9 @@ static void ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift_Body(cGH const * restri
kfmin(ToReal(1),kexp(knmsub(rL,INV(ToReal(SpatialShiftGammaCoeffRadius)),ToReal(1))));
CCTK_REAL_VEC dtalpL =
- kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(ksub(AL,trKL),ToReal(LapseACoeff),trKL))));
+ kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kadd(trKL,kmadd(ksub(AL,trKL),ToReal(LapseACoeff),kmul(IfThen(conformalMethod
+ ==
+ 2,kmul(ThetaL,ToReal(2)),ToReal(0)),kadd(ToReal(-1),ToReal(LapseACoeff))))))));
CCTK_REAL_VEC dtbetaxL;
CCTK_REAL_VEC dtbetayL;
@@ -304,8 +307,9 @@ extern "C" void ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift(CCTK_ARGUMENTS)
"ML_BSSN_UPW::ML_Gamma",
"ML_BSSN_UPW::ML_lapse",
"ML_BSSN_UPW::ML_shift",
+ "ML_BSSN_UPW::ML_Theta",
"ML_BSSN_UPW::ML_trace_curv"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift", 10, groups);
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_convertToADMBaseFakeDtLapseShift", 11, groups);
switch(fdOrder)
{
diff --git a/ML_BSSN_UPW/src/RegisterMoL.cc b/ML_BSSN_UPW/src/RegisterMoL.cc
index 7fdd505..5a06184 100644
--- a/ML_BSSN_UPW/src/RegisterMoL.cc
+++ b/ML_BSSN_UPW/src/RegisterMoL.cc
@@ -36,6 +36,7 @@ extern "C" void ML_BSSN_UPW_RegisterVars(CCTK_ARGUMENTS)
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_UPW::beta1"), CCTK_VarIndex("ML_BSSN_UPW::beta1rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_UPW::beta2"), CCTK_VarIndex("ML_BSSN_UPW::beta2rhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_UPW::beta3"), CCTK_VarIndex("ML_BSSN_UPW::beta3rhs"));
+ ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_UPW::Theta"), CCTK_VarIndex("ML_BSSN_UPW::Thetarhs"));
ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN_UPW::trK"), CCTK_VarIndex("ML_BSSN_UPW::trKrhs"));
/* Register all the evolved Array functions with MoL */
diff --git a/ML_BSSN_UPW/src/RegisterSymmetries.cc b/ML_BSSN_UPW/src/RegisterSymmetries.cc
index e63fc15..356b49e 100644
--- a/ML_BSSN_UPW/src/RegisterSymmetries.cc
+++ b/ML_BSSN_UPW/src/RegisterSymmetries.cc
@@ -139,6 +139,11 @@ extern "C" void ML_BSSN_UPW_RegisterSymmetries(CCTK_ARGUMENTS)
sym[0] = 1;
sym[1] = 1;
sym[2] = 1;
+ SetCartSymVN(cctkGH, sym, "ML_BSSN_UPW::Theta");
+
+ sym[0] = 1;
+ sym[1] = 1;
+ sym[2] = 1;
SetCartSymVN(cctkGH, sym, "ML_BSSN_UPW::trK");
sym[0] = 1;
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