diff options
author | Barry Wardell <barry.wardell@gmail.com> | 2012-04-27 12:33:29 +0100 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2012-04-27 12:33:29 +0100 |
commit | f87a82b998a429bcc88c928a06e175b633a916cc (patch) | |
tree | ffdd463b2a492151c0de29503589c9159acdf442 /ML_BSSN_MP_O8 | |
parent | e574bf527f6e15bc0df239404df428caae93d797 (diff) |
Regenerate thorns.
Diffstat (limited to 'ML_BSSN_MP_O8')
21 files changed, 1551 insertions, 124 deletions
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(>11[index]); PDstandardNth2gt11 = PDstandardNthfdOrder22(>11[index]); PDstandardNth3gt11 = PDstandardNthfdOrder23(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder211(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder222(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder233(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder212(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder213(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder223(>11[index]); PDstandardNth1gt12 = PDstandardNthfdOrder21(>12[index]); PDstandardNth2gt12 = PDstandardNthfdOrder22(>12[index]); PDstandardNth3gt12 = PDstandardNthfdOrder23(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder211(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder222(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder233(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder212(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder213(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder223(>12[index]); PDstandardNth1gt13 = PDstandardNthfdOrder21(>13[index]); PDstandardNth2gt13 = PDstandardNthfdOrder22(>13[index]); PDstandardNth3gt13 = PDstandardNthfdOrder23(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder211(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder222(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder233(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder212(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder213(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder223(>13[index]); PDstandardNth1gt22 = PDstandardNthfdOrder21(>22[index]); PDstandardNth2gt22 = PDstandardNthfdOrder22(>22[index]); PDstandardNth3gt22 = PDstandardNthfdOrder23(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder211(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder222(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder233(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder212(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder213(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder223(>22[index]); PDstandardNth1gt23 = PDstandardNthfdOrder21(>23[index]); PDstandardNth2gt23 = PDstandardNthfdOrder22(>23[index]); PDstandardNth3gt23 = PDstandardNthfdOrder23(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder211(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder222(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder233(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder212(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder213(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder223(>23[index]); PDstandardNth1gt33 = PDstandardNthfdOrder21(>33[index]); PDstandardNth2gt33 = PDstandardNthfdOrder22(>33[index]); PDstandardNth3gt33 = PDstandardNthfdOrder23(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder211(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder222(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder233(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder212(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder213(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder223(>33[index]); PDstandardNth1phi = PDstandardNthfdOrder21(&phi[index]); PDstandardNth2phi = PDstandardNthfdOrder22(&phi[index]); PDstandardNth3phi = PDstandardNthfdOrder23(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder211(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder222(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder233(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder212(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder213(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder223(&phi[index]); + PDstandardNth1Theta = PDstandardNthfdOrder21(&Theta[index]); + PDstandardNth2Theta = PDstandardNthfdOrder22(&Theta[index]); + PDstandardNth3Theta = PDstandardNthfdOrder23(&Theta[index]); PDstandardNth1trK = PDstandardNthfdOrder21(&trK[index]); PDstandardNth2trK = PDstandardNthfdOrder22(&trK[index]); PDstandardNth3trK = PDstandardNthfdOrder23(&trK[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder21(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder22(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder23(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder21(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder22(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder23(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder21(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder22(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder23(&Xt3[index]); break; case 4: @@ -490,27 +602,81 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const PDstandardNth1gt11 = PDstandardNthfdOrder41(>11[index]); PDstandardNth2gt11 = PDstandardNthfdOrder42(>11[index]); PDstandardNth3gt11 = PDstandardNthfdOrder43(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder411(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder422(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder433(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder412(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder413(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder423(>11[index]); PDstandardNth1gt12 = PDstandardNthfdOrder41(>12[index]); PDstandardNth2gt12 = PDstandardNthfdOrder42(>12[index]); PDstandardNth3gt12 = PDstandardNthfdOrder43(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder411(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder422(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder433(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder412(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder413(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder423(>12[index]); PDstandardNth1gt13 = PDstandardNthfdOrder41(>13[index]); PDstandardNth2gt13 = PDstandardNthfdOrder42(>13[index]); PDstandardNth3gt13 = PDstandardNthfdOrder43(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder411(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder422(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder433(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder412(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder413(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder423(>13[index]); PDstandardNth1gt22 = PDstandardNthfdOrder41(>22[index]); PDstandardNth2gt22 = PDstandardNthfdOrder42(>22[index]); PDstandardNth3gt22 = PDstandardNthfdOrder43(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder411(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder422(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder433(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder412(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder413(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder423(>22[index]); PDstandardNth1gt23 = PDstandardNthfdOrder41(>23[index]); PDstandardNth2gt23 = PDstandardNthfdOrder42(>23[index]); PDstandardNth3gt23 = PDstandardNthfdOrder43(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder411(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder422(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder433(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder412(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder413(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder423(>23[index]); PDstandardNth1gt33 = PDstandardNthfdOrder41(>33[index]); PDstandardNth2gt33 = PDstandardNthfdOrder42(>33[index]); PDstandardNth3gt33 = PDstandardNthfdOrder43(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder411(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder422(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder433(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder412(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder413(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder423(>33[index]); PDstandardNth1phi = PDstandardNthfdOrder41(&phi[index]); PDstandardNth2phi = PDstandardNthfdOrder42(&phi[index]); PDstandardNth3phi = PDstandardNthfdOrder43(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder411(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder422(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder433(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder412(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder413(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder423(&phi[index]); + PDstandardNth1Theta = PDstandardNthfdOrder41(&Theta[index]); + PDstandardNth2Theta = PDstandardNthfdOrder42(&Theta[index]); + PDstandardNth3Theta = PDstandardNthfdOrder43(&Theta[index]); PDstandardNth1trK = PDstandardNthfdOrder41(&trK[index]); PDstandardNth2trK = PDstandardNthfdOrder42(&trK[index]); PDstandardNth3trK = PDstandardNthfdOrder43(&trK[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder41(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder42(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder43(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder41(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder42(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder43(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder41(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder42(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder43(&Xt3[index]); break; case 6: @@ -553,27 +719,81 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const PDstandardNth1gt11 = PDstandardNthfdOrder61(>11[index]); PDstandardNth2gt11 = PDstandardNthfdOrder62(>11[index]); PDstandardNth3gt11 = PDstandardNthfdOrder63(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder611(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder622(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder633(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder612(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder613(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder623(>11[index]); PDstandardNth1gt12 = PDstandardNthfdOrder61(>12[index]); PDstandardNth2gt12 = PDstandardNthfdOrder62(>12[index]); PDstandardNth3gt12 = PDstandardNthfdOrder63(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder611(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder622(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder633(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder612(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder613(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder623(>12[index]); PDstandardNth1gt13 = PDstandardNthfdOrder61(>13[index]); PDstandardNth2gt13 = PDstandardNthfdOrder62(>13[index]); PDstandardNth3gt13 = PDstandardNthfdOrder63(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder611(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder622(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder633(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder612(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder613(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder623(>13[index]); PDstandardNth1gt22 = PDstandardNthfdOrder61(>22[index]); PDstandardNth2gt22 = PDstandardNthfdOrder62(>22[index]); PDstandardNth3gt22 = PDstandardNthfdOrder63(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder611(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder622(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder633(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder612(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder613(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder623(>22[index]); PDstandardNth1gt23 = PDstandardNthfdOrder61(>23[index]); PDstandardNth2gt23 = PDstandardNthfdOrder62(>23[index]); PDstandardNth3gt23 = PDstandardNthfdOrder63(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder611(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder622(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder633(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder612(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder613(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder623(>23[index]); PDstandardNth1gt33 = PDstandardNthfdOrder61(>33[index]); PDstandardNth2gt33 = PDstandardNthfdOrder62(>33[index]); PDstandardNth3gt33 = PDstandardNthfdOrder63(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder611(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder622(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder633(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder612(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder613(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder623(>33[index]); PDstandardNth1phi = PDstandardNthfdOrder61(&phi[index]); PDstandardNth2phi = PDstandardNthfdOrder62(&phi[index]); PDstandardNth3phi = PDstandardNthfdOrder63(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder611(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder622(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder633(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder612(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder613(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder623(&phi[index]); + PDstandardNth1Theta = PDstandardNthfdOrder61(&Theta[index]); + PDstandardNth2Theta = PDstandardNthfdOrder62(&Theta[index]); + PDstandardNth3Theta = PDstandardNthfdOrder63(&Theta[index]); PDstandardNth1trK = PDstandardNthfdOrder61(&trK[index]); PDstandardNth2trK = PDstandardNthfdOrder62(&trK[index]); PDstandardNth3trK = PDstandardNthfdOrder63(&trK[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder61(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder62(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder63(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder61(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder62(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder63(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder61(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder62(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder63(&Xt3[index]); break; case 8: @@ -616,27 +836,81 @@ static void ML_BSSN_MP_O8_RHS1_Body(cGH const * restrict const cctkGH, int const PDstandardNth1gt11 = PDstandardNthfdOrder81(>11[index]); PDstandardNth2gt11 = PDstandardNthfdOrder82(>11[index]); PDstandardNth3gt11 = PDstandardNthfdOrder83(>11[index]); + PDstandardNth11gt11 = PDstandardNthfdOrder811(>11[index]); + PDstandardNth22gt11 = PDstandardNthfdOrder822(>11[index]); + PDstandardNth33gt11 = PDstandardNthfdOrder833(>11[index]); + PDstandardNth12gt11 = PDstandardNthfdOrder812(>11[index]); + PDstandardNth13gt11 = PDstandardNthfdOrder813(>11[index]); + PDstandardNth23gt11 = PDstandardNthfdOrder823(>11[index]); PDstandardNth1gt12 = PDstandardNthfdOrder81(>12[index]); PDstandardNth2gt12 = PDstandardNthfdOrder82(>12[index]); PDstandardNth3gt12 = PDstandardNthfdOrder83(>12[index]); + PDstandardNth11gt12 = PDstandardNthfdOrder811(>12[index]); + PDstandardNth22gt12 = PDstandardNthfdOrder822(>12[index]); + PDstandardNth33gt12 = PDstandardNthfdOrder833(>12[index]); + PDstandardNth12gt12 = PDstandardNthfdOrder812(>12[index]); + PDstandardNth13gt12 = PDstandardNthfdOrder813(>12[index]); + PDstandardNth23gt12 = PDstandardNthfdOrder823(>12[index]); PDstandardNth1gt13 = PDstandardNthfdOrder81(>13[index]); PDstandardNth2gt13 = PDstandardNthfdOrder82(>13[index]); PDstandardNth3gt13 = PDstandardNthfdOrder83(>13[index]); + PDstandardNth11gt13 = PDstandardNthfdOrder811(>13[index]); + PDstandardNth22gt13 = PDstandardNthfdOrder822(>13[index]); + PDstandardNth33gt13 = PDstandardNthfdOrder833(>13[index]); + PDstandardNth12gt13 = PDstandardNthfdOrder812(>13[index]); + PDstandardNth13gt13 = PDstandardNthfdOrder813(>13[index]); + PDstandardNth23gt13 = PDstandardNthfdOrder823(>13[index]); PDstandardNth1gt22 = PDstandardNthfdOrder81(>22[index]); PDstandardNth2gt22 = PDstandardNthfdOrder82(>22[index]); PDstandardNth3gt22 = PDstandardNthfdOrder83(>22[index]); + PDstandardNth11gt22 = PDstandardNthfdOrder811(>22[index]); + PDstandardNth22gt22 = PDstandardNthfdOrder822(>22[index]); + PDstandardNth33gt22 = PDstandardNthfdOrder833(>22[index]); + PDstandardNth12gt22 = PDstandardNthfdOrder812(>22[index]); + PDstandardNth13gt22 = PDstandardNthfdOrder813(>22[index]); + PDstandardNth23gt22 = PDstandardNthfdOrder823(>22[index]); PDstandardNth1gt23 = PDstandardNthfdOrder81(>23[index]); PDstandardNth2gt23 = PDstandardNthfdOrder82(>23[index]); PDstandardNth3gt23 = PDstandardNthfdOrder83(>23[index]); + PDstandardNth11gt23 = PDstandardNthfdOrder811(>23[index]); + PDstandardNth22gt23 = PDstandardNthfdOrder822(>23[index]); + PDstandardNth33gt23 = PDstandardNthfdOrder833(>23[index]); + PDstandardNth12gt23 = PDstandardNthfdOrder812(>23[index]); + PDstandardNth13gt23 = PDstandardNthfdOrder813(>23[index]); + PDstandardNth23gt23 = PDstandardNthfdOrder823(>23[index]); PDstandardNth1gt33 = PDstandardNthfdOrder81(>33[index]); PDstandardNth2gt33 = PDstandardNthfdOrder82(>33[index]); PDstandardNth3gt33 = PDstandardNthfdOrder83(>33[index]); + PDstandardNth11gt33 = PDstandardNthfdOrder811(>33[index]); + PDstandardNth22gt33 = PDstandardNthfdOrder822(>33[index]); + PDstandardNth33gt33 = PDstandardNthfdOrder833(>33[index]); + PDstandardNth12gt33 = PDstandardNthfdOrder812(>33[index]); + PDstandardNth13gt33 = PDstandardNthfdOrder813(>33[index]); + PDstandardNth23gt33 = PDstandardNthfdOrder823(>33[index]); PDstandardNth1phi = PDstandardNthfdOrder81(&phi[index]); PDstandardNth2phi = PDstandardNthfdOrder82(&phi[index]); PDstandardNth3phi = PDstandardNthfdOrder83(&phi[index]); + PDstandardNth11phi = PDstandardNthfdOrder811(&phi[index]); + PDstandardNth22phi = PDstandardNthfdOrder822(&phi[index]); + PDstandardNth33phi = PDstandardNthfdOrder833(&phi[index]); + PDstandardNth12phi = PDstandardNthfdOrder812(&phi[index]); + PDstandardNth13phi = PDstandardNthfdOrder813(&phi[index]); + PDstandardNth23phi = PDstandardNthfdOrder823(&phi[index]); + PDstandardNth1Theta = PDstandardNthfdOrder81(&Theta[index]); + PDstandardNth2Theta = PDstandardNthfdOrder82(&Theta[index]); + PDstandardNth3Theta = PDstandardNthfdOrder83(&Theta[index]); PDstandardNth1trK = PDstandardNthfdOrder81(&trK[index]); PDstandardNth2trK = PDstandardNthfdOrder82(&trK[index]); PDstandardNth3trK = PDstandardNthfdOrder83(&trK[index]); + PDstandardNth1Xt1 = PDstandardNthfdOrder81(&Xt1[index]); + PDstandardNth2Xt1 = PDstandardNthfdOrder82(&Xt1[index]); + PDstandardNth3Xt1 = PDstandardNthfdOrder83(&Xt1[index]); + PDstandardNth1Xt2 = PDstandardNthfdOrder81(&Xt2[index]); + PDstandardNth2Xt2 = PDstandardNthfdOrder82(&Xt2[index]); + PDstandardNth3Xt2 = PDstandardNthfdOrder83(&Xt2[index]); + PDstandardNth1Xt3 = PDstandardNthfdOrder81(&Xt3[index]); + PDstandardNth2Xt3 = PDstandardNthfdOrder82(&Xt3[index]); + PDstandardNth3Xt3 = PDstandardNthfdOrder83(&Xt3[index]); break; } @@ -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; |