aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2010-10-11 20:32:55 -0500
committerErik Schnetter <schnetter@cct.lsu.edu>2010-10-11 20:32:55 -0500
commit8e1f20f46f07170786de75fae15ffee82149dfcf (patch)
tree0992b207543c7499241e61b121413f7e7e529ced
parent15d57eb888fdcd68b873b02b0468e5508a02c581 (diff)
Regenerate code
-rw-r--r--ML_ADM/interface.ccl20
-rw-r--r--ML_ADM/schedule.ccl2
-rw-r--r--ML_ADM/src/ML_ADM_RHS.c21
-rw-r--r--ML_ADM/src/ML_ADM_boundary.c21
-rw-r--r--ML_ADM/src/ML_ADM_constraints.c15
-rw-r--r--ML_ADM/src/ML_ADM_constraints_boundary.c15
-rw-r--r--ML_ADMConstraints/interface.ccl4
-rw-r--r--ML_ADMConstraints/schedule.ccl2
-rw-r--r--ML_ADMConstraints/src/Boundaries.c4
-rw-r--r--ML_ADMConstraints/src/ML_ADMConstraints.c15
-rw-r--r--ML_ADMConstraints_MP/interface.ccl4
-rw-r--r--ML_ADMConstraints_MP/schedule.ccl2
-rw-r--r--ML_ADMConstraints_MP/src/Boundaries.c4
-rw-r--r--ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.c15
-rw-r--r--ML_ADMConstraints_O2/interface.ccl4
-rw-r--r--ML_ADMConstraints_O2/schedule.ccl2
-rw-r--r--ML_ADMConstraints_O2/src/Boundaries.c4
-rw-r--r--ML_ADMConstraints_O2/src/ML_ADMConstraints_O2.c15
-rw-r--r--ML_ADMQuantities/interface.ccl4
-rw-r--r--ML_ADMQuantities/schedule.ccl2
-rw-r--r--ML_ADMQuantities/src/Boundaries.c4
-rw-r--r--ML_ADMQuantities/src/ML_ADMQuantities.c15
-rw-r--r--ML_ADMQuantities_MP/interface.ccl4
-rw-r--r--ML_ADMQuantities_MP/schedule.ccl2
-rw-r--r--ML_ADMQuantities_MP/src/Boundaries.c4
-rw-r--r--ML_ADMQuantities_MP/src/ML_ADMQuantities_MP.c15
-rw-r--r--ML_ADMQuantities_O2/interface.ccl4
-rw-r--r--ML_ADMQuantities_O2/schedule.ccl2
-rw-r--r--ML_ADMQuantities_O2/src/Boundaries.c4
-rw-r--r--ML_ADMQuantities_O2/src/ML_ADMQuantities_O2.c15
-rw-r--r--ML_BSSN/interface.ccl28
-rw-r--r--ML_BSSN/schedule.ccl2
-rw-r--r--ML_BSSN/src/ML_BSSN_RHS1.c193
-rw-r--r--ML_BSSN/src/ML_BSSN_RHS2.c218
-rw-r--r--ML_BSSN/src/ML_BSSN_RHSRadiativeBoundary.c54
-rw-r--r--ML_BSSN/src/ML_BSSN_RHSStaticBoundary.c36
-rw-r--r--ML_BSSN/src/ML_BSSN_boundary.c36
-rw-r--r--ML_BSSN/src/ML_BSSN_constraints.c571
-rw-r--r--ML_BSSN/src/ML_BSSN_constraints_boundary.c24
-rw-r--r--ML_BSSN/src/ML_BSSN_convertFromADMBase.c8
-rw-r--r--ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.c112
-rw-r--r--ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.c15
-rw-r--r--ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.c15
-rw-r--r--ML_BSSN/src/ML_BSSN_enforce.c10
-rw-r--r--ML_BSSN_Helper/schedule.ccl4
-rw-r--r--ML_BSSN_MP/interface.ccl28
-rw-r--r--ML_BSSN_MP/schedule.ccl2
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_RHS1.c273
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_RHS2.c228
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_RHSRadiativeBoundary.c54
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.c36
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_boundary.c36
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_constraints.c449
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_constraints_boundary.c24
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.c8
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBaseGamma.c140
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.c15
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.c15
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_enforce.c10
-rw-r--r--ML_BSSN_MP_Helper/schedule.ccl4
-rw-r--r--ML_BSSN_O2/interface.ccl28
-rw-r--r--ML_BSSN_O2/schedule.ccl2
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_RHS1.c193
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_RHS2.c218
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_RHSRadiativeBoundary.c54
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.c36
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_boundary.c36
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_constraints.c571
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_constraints_boundary.c24
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.c8
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBaseGamma.c112
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.c15
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.c15
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_enforce.c10
-rw-r--r--ML_BSSN_O2_Helper/schedule.ccl4
-rw-r--r--ML_BSSN_O8/interface.ccl28
-rw-r--r--ML_BSSN_O8/schedule.ccl2
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_RHS1.c193
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_RHS2.c218
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_RHSRadiativeBoundary.c54
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.c36
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_boundary.c36
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_constraints.c571
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_constraints_boundary.c24
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.c8
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBaseGamma.c112
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.c15
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.c15
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_enforce.c10
-rw-r--r--ML_BSSN_O8_Helper/schedule.ccl4
-rw-r--r--ML_WaveToy/interface.ccl8
-rw-r--r--ML_WaveToy/schedule.ccl2
-rw-r--r--ML_WaveToy/src/WT_RHS.c15
-rw-r--r--ML_WaveToyFO/interface.ccl15
-rw-r--r--ML_WaveToyFO/src/Differencing.h24
-rw-r--r--ML_WaveToyFO/src/WTFO_Gaussian.c117
-rw-r--r--ML_WaveToyFO/src/WTFO_RHS.c152
-rw-r--r--ML_WaveToyFO/src/WTFO_constraints.c138
-rw-r--r--ML_WaveToyFO/src/make.code.defn2
-rw-r--r--ML_hydro/interface.ccl29
-rw-r--r--ML_hydro/schedule.ccl2
-rw-r--r--ML_hydro/src/Differencing.h24
-rw-r--r--ML_hydro/src/hydro_RHS.c185
-rw-r--r--ML_hydro/src/hydro_RHS.cc169
-rw-r--r--ML_hydro/src/hydro_con2prim.c (renamed from ML_hydro/src/hydro_con2prim.cc)42
-rw-r--r--ML_hydro/src/hydro_prim2con.c (renamed from ML_hydro/src/hydro_prim2con.cc)40
-rw-r--r--ML_hydro/src/hydro_soundWave.c (renamed from ML_hydro/src/hydro_soundWave.cc)28
-rw-r--r--ML_hydro/src/hydro_vacuum.c (renamed from ML_hydro/src/hydro_vacuum.cc)26
-rw-r--r--ML_hydro/src/make.code.defn2
-rw-r--r--m/PARSER/McLachlan_BSSN.kranc200
-rw-r--r--m/PARSER/McLachlan_BSSN.m275
-rw-r--r--m/cse.m36
-rw-r--r--m/grhydro.m154
-rw-r--r--m/psi.m318
114 files changed, 4548 insertions, 2999 deletions
diff --git a/ML_ADM/interface.ccl b/ML_ADM/interface.ccl
index f712b9e..7d17f44 100644
--- a/ML_ADM/interface.ccl
+++ b/ML_ADM/interface.ccl
@@ -25,13 +25,13 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
H
} "ML_Ham"
public:
-CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1'
{
M1,
M2,
@@ -39,7 +39,7 @@ CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1.0
} "ML_mom"
public:
-CCTK_REAL ML_curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=1'
{
K11,
K12,
@@ -50,13 +50,13 @@ CCTK_REAL ML_curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweig
} "ML_curv"
public:
-CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpha
} "ML_lapse"
public:
-CCTK_REAL ML_metric type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_metric type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=1'
{
g11,
g12,
@@ -67,7 +67,7 @@ CCTK_REAL ML_metric type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorwe
} "ML_metric"
public:
-CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1,
beta2,
@@ -75,7 +75,7 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1
} "ML_shift"
public:
-CCTK_REAL ML_curvrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_curvrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=1'
{
K11rhs,
K12rhs,
@@ -86,13 +86,13 @@ CCTK_REAL ML_curvrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorw
} "ML_curvrhs"
public:
-CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpharhs
} "ML_lapserhs"
public:
-CCTK_REAL ML_metricrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_metricrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight=1'
{
g11rhs,
g12rhs,
@@ -103,7 +103,7 @@ CCTK_REAL ML_metricrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tenso
} "ML_metricrhs"
public:
-CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1rhs,
beta2rhs,
diff --git a/ML_ADM/schedule.ccl b/ML_ADM/schedule.ccl
index 6e7faee..93e7205 100644
--- a/ML_ADM/schedule.ccl
+++ b/ML_ADM/schedule.ccl
@@ -203,7 +203,7 @@ schedule ML_ADM_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_ADM_ApplyBCs in MoL_PostStep after ML_ADM_SelectBoundConds
+schedule group ApplyBCs as ML_ADM_ApplyBCs in MoL_PostStep after ML_ADM_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_ADM/src/ML_ADM_RHS.c b/ML_ADM/src/ML_ADM_RHS.c
index 7bf7801..f23b5d6 100644
--- a/ML_ADM/src/ML_ADM_RHS.c
+++ b/ML_ADM/src/ML_ADM_RHS.c
@@ -20,6 +20,27 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADM_RHS_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_shiftrhs.");
+ return;
+}
+
void ML_ADM_RHS_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADM/src/ML_ADM_boundary.c b/ML_ADM/src/ML_ADM_boundary.c
index 88c13b6..2cbdbf5 100644
--- a/ML_ADM/src/ML_ADM_boundary.c
+++ b/ML_ADM/src/ML_ADM_boundary.c
@@ -20,6 +20,27 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADM_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_curv.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_lapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_lapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_metric","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_metric.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_shift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_shift.");
+ return;
+}
+
void ML_ADM_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADM/src/ML_ADM_constraints.c b/ML_ADM/src/ML_ADM_constraints.c
index cae9b5e..1346268 100644
--- a/ML_ADM/src/ML_ADM_constraints.c
+++ b/ML_ADM/src/ML_ADM_constraints.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADM_constraints_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_mom.");
+ return;
+}
+
void ML_ADM_constraints_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADM/src/ML_ADM_constraints_boundary.c b/ML_ADM/src/ML_ADM_constraints_boundary.c
index 82b8dcc..fc5cfd4 100644
--- a/ML_ADM/src/ML_ADM_constraints_boundary.c
+++ b/ML_ADM/src/ML_ADM_constraints_boundary.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADM_constraints_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADM::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADM::ML_mom.");
+ return;
+}
+
void ML_ADM_constraints_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADMConstraints/interface.ccl b/ML_ADMConstraints/interface.ccl
index b7f5927..65d3dc1 100644
--- a/ML_ADMConstraints/interface.ccl
+++ b/ML_ADMConstraints/interface.ccl
@@ -25,13 +25,13 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_Ham type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Ham type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
H
} "ML_Ham"
public:
-CCTK_REAL ML_mom type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_mom type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1'
{
M1,
M2,
diff --git a/ML_ADMConstraints/schedule.ccl b/ML_ADMConstraints/schedule.ccl
index 13b9b86..fb68f01 100644
--- a/ML_ADMConstraints/schedule.ccl
+++ b/ML_ADMConstraints/schedule.ccl
@@ -42,7 +42,7 @@ schedule ML_ADMConstraints_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_ADMConstraints_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_SelectBoundConds
+schedule group ApplyBCs as ML_ADMConstraints_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_ADMConstraints/src/Boundaries.c b/ML_ADMConstraints/src/Boundaries.c
index 91bac44..2066272 100644
--- a/ML_ADMConstraints/src/Boundaries.c
+++ b/ML_ADMConstraints/src/Boundaries.c
@@ -31,10 +31,10 @@ void ML_ADMConstraints_SelectBoundConds(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
CCTK_INT ierr = 0;
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMConstraints::ML_Ham", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMConstraints::ML_Ham", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMConstraints::ML_Ham");
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMConstraints::ML_mom", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMConstraints::ML_mom", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMConstraints::ML_mom");
}
diff --git a/ML_ADMConstraints/src/ML_ADMConstraints.c b/ML_ADMConstraints/src/ML_ADMConstraints.c
index ac8fd0a..1944f30 100644
--- a/ML_ADMConstraints/src/ML_ADMConstraints.c
+++ b/ML_ADMConstraints/src/ML_ADMConstraints.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADMConstraints_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMConstraints::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMConstraints::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMConstraints::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMConstraints::ML_mom.");
+ return;
+}
+
void ML_ADMConstraints_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADMConstraints_MP/interface.ccl b/ML_ADMConstraints_MP/interface.ccl
index 384ca39..3ef38b3 100644
--- a/ML_ADMConstraints_MP/interface.ccl
+++ b/ML_ADMConstraints_MP/interface.ccl
@@ -25,13 +25,13 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_Ham type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Ham type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
H
} "ML_Ham"
public:
-CCTK_REAL ML_mom type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_mom type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1'
{
M1,
M2,
diff --git a/ML_ADMConstraints_MP/schedule.ccl b/ML_ADMConstraints_MP/schedule.ccl
index 36d7a2a..138e963 100644
--- a/ML_ADMConstraints_MP/schedule.ccl
+++ b/ML_ADMConstraints_MP/schedule.ccl
@@ -42,7 +42,7 @@ schedule ML_ADMConstraints_MP_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_ADMConstraints_MP_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_MP_SelectBoundConds
+schedule group ApplyBCs as ML_ADMConstraints_MP_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_MP_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_ADMConstraints_MP/src/Boundaries.c b/ML_ADMConstraints_MP/src/Boundaries.c
index 6edf1cd..727e80a 100644
--- a/ML_ADMConstraints_MP/src/Boundaries.c
+++ b/ML_ADMConstraints_MP/src/Boundaries.c
@@ -31,10 +31,10 @@ void ML_ADMConstraints_MP_SelectBoundConds(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
CCTK_INT ierr = 0;
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMConstraints_MP::ML_Ham", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMConstraints_MP::ML_Ham", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMConstraints_MP::ML_Ham");
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMConstraints_MP::ML_mom", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMConstraints_MP::ML_mom", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMConstraints_MP::ML_mom");
}
diff --git a/ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.c b/ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.c
index d236cd4..db79008 100644
--- a/ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.c
+++ b/ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADMConstraints_MP_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMConstraints_MP::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMConstraints_MP::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMConstraints_MP::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMConstraints_MP::ML_mom.");
+ return;
+}
+
void ML_ADMConstraints_MP_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADMConstraints_O2/interface.ccl b/ML_ADMConstraints_O2/interface.ccl
index 1631077..5034db8 100644
--- a/ML_ADMConstraints_O2/interface.ccl
+++ b/ML_ADMConstraints_O2/interface.ccl
@@ -25,13 +25,13 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_Ham type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Ham type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
H
} "ML_Ham"
public:
-CCTK_REAL ML_mom type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_mom type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1'
{
M1,
M2,
diff --git a/ML_ADMConstraints_O2/schedule.ccl b/ML_ADMConstraints_O2/schedule.ccl
index 9a496dd..bfd2b57 100644
--- a/ML_ADMConstraints_O2/schedule.ccl
+++ b/ML_ADMConstraints_O2/schedule.ccl
@@ -42,7 +42,7 @@ schedule ML_ADMConstraints_O2_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_ADMConstraints_O2_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_O2_SelectBoundConds
+schedule group ApplyBCs as ML_ADMConstraints_O2_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_O2_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_ADMConstraints_O2/src/Boundaries.c b/ML_ADMConstraints_O2/src/Boundaries.c
index 7acefcc..68a5ee2 100644
--- a/ML_ADMConstraints_O2/src/Boundaries.c
+++ b/ML_ADMConstraints_O2/src/Boundaries.c
@@ -31,10 +31,10 @@ void ML_ADMConstraints_O2_SelectBoundConds(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
CCTK_INT ierr = 0;
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMConstraints_O2::ML_Ham", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMConstraints_O2::ML_Ham", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMConstraints_O2::ML_Ham");
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMConstraints_O2::ML_mom", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMConstraints_O2::ML_mom", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMConstraints_O2::ML_mom");
}
diff --git a/ML_ADMConstraints_O2/src/ML_ADMConstraints_O2.c b/ML_ADMConstraints_O2/src/ML_ADMConstraints_O2.c
index c6f5982..8933df1 100644
--- a/ML_ADMConstraints_O2/src/ML_ADMConstraints_O2.c
+++ b/ML_ADMConstraints_O2/src/ML_ADMConstraints_O2.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADMConstraints_O2_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMConstraints_O2::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMConstraints_O2::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMConstraints_O2::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMConstraints_O2::ML_mom.");
+ return;
+}
+
void ML_ADMConstraints_O2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADMQuantities/interface.ccl b/ML_ADMQuantities/interface.ccl
index 6310390..905b0e8 100644
--- a/ML_ADMQuantities/interface.ccl
+++ b/ML_ADMQuantities/interface.ccl
@@ -25,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1'
{
Jadm1,
Jadm2,
@@ -33,7 +33,7 @@ CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.
} "ML_Jadm"
public:
-CCTK_REAL ML_Madm type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Madm type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
Madm
} "ML_Madm"
diff --git a/ML_ADMQuantities/schedule.ccl b/ML_ADMQuantities/schedule.ccl
index b0c416a..585ae5d 100644
--- a/ML_ADMQuantities/schedule.ccl
+++ b/ML_ADMQuantities/schedule.ccl
@@ -42,7 +42,7 @@ schedule ML_ADMQuantities_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_ADMQuantities_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_SelectBoundConds
+schedule group ApplyBCs as ML_ADMQuantities_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_ADMQuantities/src/Boundaries.c b/ML_ADMQuantities/src/Boundaries.c
index ca87ac2..1516a7e 100644
--- a/ML_ADMQuantities/src/Boundaries.c
+++ b/ML_ADMQuantities/src/Boundaries.c
@@ -31,10 +31,10 @@ void ML_ADMQuantities_SelectBoundConds(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
CCTK_INT ierr = 0;
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMQuantities::ML_Jadm", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMQuantities::ML_Jadm", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMQuantities::ML_Jadm");
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMQuantities::ML_Madm", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMQuantities::ML_Madm", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMQuantities::ML_Madm");
}
diff --git a/ML_ADMQuantities/src/ML_ADMQuantities.c b/ML_ADMQuantities/src/ML_ADMQuantities.c
index d8344e5..3512c4b 100644
--- a/ML_ADMQuantities/src/ML_ADMQuantities.c
+++ b/ML_ADMQuantities/src/ML_ADMQuantities.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADMQuantities_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMQuantities::ML_Jadm","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMQuantities::ML_Jadm.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMQuantities::ML_Madm","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMQuantities::ML_Madm.");
+ return;
+}
+
void ML_ADMQuantities_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADMQuantities_MP/interface.ccl b/ML_ADMQuantities_MP/interface.ccl
index 8cae4a1..5b1c472 100644
--- a/ML_ADMQuantities_MP/interface.ccl
+++ b/ML_ADMQuantities_MP/interface.ccl
@@ -25,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1'
{
Jadm1,
Jadm2,
@@ -33,7 +33,7 @@ CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.
} "ML_Jadm"
public:
-CCTK_REAL ML_Madm type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Madm type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
Madm
} "ML_Madm"
diff --git a/ML_ADMQuantities_MP/schedule.ccl b/ML_ADMQuantities_MP/schedule.ccl
index 35aedea..f3ae09b 100644
--- a/ML_ADMQuantities_MP/schedule.ccl
+++ b/ML_ADMQuantities_MP/schedule.ccl
@@ -42,7 +42,7 @@ schedule ML_ADMQuantities_MP_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_ADMQuantities_MP_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_MP_SelectBoundConds
+schedule group ApplyBCs as ML_ADMQuantities_MP_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_MP_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_ADMQuantities_MP/src/Boundaries.c b/ML_ADMQuantities_MP/src/Boundaries.c
index b46b917..a90fdb0 100644
--- a/ML_ADMQuantities_MP/src/Boundaries.c
+++ b/ML_ADMQuantities_MP/src/Boundaries.c
@@ -31,10 +31,10 @@ void ML_ADMQuantities_MP_SelectBoundConds(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
CCTK_INT ierr = 0;
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMQuantities_MP::ML_Jadm", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMQuantities_MP::ML_Jadm", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMQuantities_MP::ML_Jadm");
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMQuantities_MP::ML_Madm", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMQuantities_MP::ML_Madm", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMQuantities_MP::ML_Madm");
}
diff --git a/ML_ADMQuantities_MP/src/ML_ADMQuantities_MP.c b/ML_ADMQuantities_MP/src/ML_ADMQuantities_MP.c
index cab780b..b92a41f 100644
--- a/ML_ADMQuantities_MP/src/ML_ADMQuantities_MP.c
+++ b/ML_ADMQuantities_MP/src/ML_ADMQuantities_MP.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADMQuantities_MP_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMQuantities_MP::ML_Jadm","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMQuantities_MP::ML_Jadm.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMQuantities_MP::ML_Madm","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMQuantities_MP::ML_Madm.");
+ return;
+}
+
void ML_ADMQuantities_MP_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_ADMQuantities_O2/interface.ccl b/ML_ADMQuantities_O2/interface.ccl
index f87218f..135a9a5 100644
--- a/ML_ADMQuantities_O2/interface.ccl
+++ b/ML_ADMQuantities_O2/interface.ccl
@@ -25,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1'
{
Jadm1,
Jadm2,
@@ -33,7 +33,7 @@ CCTK_REAL ML_Jadm type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.
} "ML_Jadm"
public:
-CCTK_REAL ML_Madm type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Madm type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
Madm
} "ML_Madm"
diff --git a/ML_ADMQuantities_O2/schedule.ccl b/ML_ADMQuantities_O2/schedule.ccl
index c48d48c..5fc101c 100644
--- a/ML_ADMQuantities_O2/schedule.ccl
+++ b/ML_ADMQuantities_O2/schedule.ccl
@@ -42,7 +42,7 @@ schedule ML_ADMQuantities_O2_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_ADMQuantities_O2_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_O2_SelectBoundConds
+schedule group ApplyBCs as ML_ADMQuantities_O2_ApplyBCs in MoL_PseudoEvolution after ML_ADMQuantities_O2_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_ADMQuantities_O2/src/Boundaries.c b/ML_ADMQuantities_O2/src/Boundaries.c
index eb94663..d6af075 100644
--- a/ML_ADMQuantities_O2/src/Boundaries.c
+++ b/ML_ADMQuantities_O2/src/Boundaries.c
@@ -31,10 +31,10 @@ void ML_ADMQuantities_O2_SelectBoundConds(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
CCTK_INT ierr = 0;
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMQuantities_O2::ML_Jadm", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMQuantities_O2::ML_Jadm", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMQuantities_O2::ML_Jadm");
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, 1, -1, "ML_ADMQuantities_O2::ML_Madm", "scalar");
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, -1, "ML_ADMQuantities_O2::ML_Madm", "scalar");
if (ierr<0) CCTK_WARN (CCTK_WARN_ABORT, "Failed to select boundary condition for ML_ADMQuantities_O2::ML_Madm");
}
diff --git a/ML_ADMQuantities_O2/src/ML_ADMQuantities_O2.c b/ML_ADMQuantities_O2/src/ML_ADMQuantities_O2.c
index 9dfac8d..0560715 100644
--- a/ML_ADMQuantities_O2/src/ML_ADMQuantities_O2.c
+++ b/ML_ADMQuantities_O2/src/ML_ADMQuantities_O2.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_ADMQuantities_O2_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMQuantities_O2::ML_Jadm","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMQuantities_O2::ML_Jadm.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_ADMQuantities_O2::ML_Madm","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_ADMQuantities_O2::ML_Madm.");
+ return;
+}
+
void ML_ADMQuantities_O2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN/interface.ccl b/ML_BSSN/interface.ccl
index 0474dc3..767b6f0 100644
--- a/ML_BSSN/interface.ccl
+++ b/ML_BSSN/interface.ccl
@@ -25,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2.0000000000000000000'
+CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2'
{
cS
} "ML_cons_detg"
@@ -39,19 +39,19 @@ CCTK_REAL ML_cons_Gamma type=GF timelevels=1 tags='tensortypealias="U" tensorwei
} "ML_cons_Gamma"
public:
-CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
cA
} "ML_cons_traceA"
public:
-CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
H
} "ML_Ham"
public:
-CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1'
{
M1,
M2,
@@ -70,13 +70,13 @@ CCTK_REAL ML_curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweig
} "ML_curv"
public:
-CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
A
} "ML_dtlapse"
public:
-CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
B1,
B2,
@@ -92,7 +92,7 @@ CCTK_REAL ML_Gamma type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "ML_Gamma"
public:
-CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpha
} "ML_lapse"
@@ -115,7 +115,7 @@ CCTK_REAL ML_metric type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorwe
} "ML_metric"
public:
-CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1,
beta2,
@@ -123,7 +123,7 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1
} "ML_shift"
public:
-CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
trK
} "ML_trace_curv"
@@ -140,13 +140,13 @@ CCTK_REAL ML_curvrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorw
} "ML_curvrhs"
public:
-CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
Arhs
} "ML_dtlapserhs"
public:
-CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
B1rhs,
B2rhs,
@@ -162,7 +162,7 @@ CCTK_REAL ML_Gammarhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "ML_Gammarhs"
public:
-CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpharhs
} "ML_lapserhs"
@@ -185,7 +185,7 @@ CCTK_REAL ML_metricrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tenso
} "ML_metricrhs"
public:
-CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1rhs,
beta2rhs,
@@ -193,7 +193,7 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "ML_shiftrhs"
public:
-CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
trKrhs
} "ML_trace_curvrhs"
diff --git a/ML_BSSN/schedule.ccl b/ML_BSSN/schedule.ccl
index a7da3b0..516fd9a 100644
--- a/ML_BSSN/schedule.ccl
+++ b/ML_BSSN/schedule.ccl
@@ -405,7 +405,7 @@ schedule ML_BSSN_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_BSSN_ApplyBCs in MoL_PostStep after ML_BSSN_SelectBoundConds
+schedule group ApplyBCs as ML_BSSN_ApplyBCs in MoL_PostStep after ML_BSSN_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_BSSN/src/ML_BSSN_RHS1.c b/ML_BSSN/src/ML_BSSN_RHS1.c
index 15e1179..22daf60 100644
--- a/ML_BSSN/src/ML_BSSN_RHS1.c
+++ b/ML_BSSN/src/ML_BSSN_RHS1.c
@@ -20,6 +20,39 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_RHS1_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -610,13 +643,13 @@ void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int con
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -659,50 +692,50 @@ void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int con
CCTK_REAL Gtl333 = khalf*PDstandardNth3gt33;
- CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu21 + Gtl311*gtu31;
+ CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu12 + Gtl311*gtu13;
- CCTK_REAL Gt211 = Gtl111*gtu21 + Gtl211*gtu22 + Gtl311*gtu32;
+ CCTK_REAL Gt211 = Gtl111*gtu12 + Gtl211*gtu22 + Gtl311*gtu23;
- CCTK_REAL Gt311 = Gtl111*gtu31 + Gtl211*gtu32 + Gtl311*gtu33;
+ CCTK_REAL Gt311 = Gtl111*gtu13 + Gtl211*gtu23 + Gtl311*gtu33;
- CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu21 + Gtl312*gtu31;
+ CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu12 + Gtl312*gtu13;
- CCTK_REAL Gt212 = Gtl112*gtu21 + Gtl212*gtu22 + Gtl312*gtu32;
+ CCTK_REAL Gt212 = Gtl112*gtu12 + Gtl212*gtu22 + Gtl312*gtu23;
- CCTK_REAL Gt312 = Gtl112*gtu31 + Gtl212*gtu32 + Gtl312*gtu33;
+ CCTK_REAL Gt312 = Gtl112*gtu13 + Gtl212*gtu23 + Gtl312*gtu33;
- CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gt213 = Gtl113*gtu21 + Gtl213*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gt213 = Gtl113*gtu12 + Gtl213*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gt313 = Gtl113*gtu31 + Gtl213*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gt313 = Gtl113*gtu13 + Gtl213*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu21 + Gtl322*gtu31;
+ CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu12 + Gtl322*gtu13;
- CCTK_REAL Gt222 = Gtl122*gtu21 + Gtl222*gtu22 + Gtl322*gtu32;
+ CCTK_REAL Gt222 = Gtl122*gtu12 + Gtl222*gtu22 + Gtl322*gtu23;
- CCTK_REAL Gt322 = Gtl122*gtu31 + Gtl222*gtu32 + Gtl322*gtu33;
+ CCTK_REAL Gt322 = Gtl122*gtu13 + Gtl222*gtu23 + Gtl322*gtu33;
- CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gt223 = Gtl123*gtu21 + Gtl223*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gt223 = Gtl123*gtu12 + Gtl223*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gt323 = Gtl123*gtu31 + Gtl223*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gt323 = Gtl123*gtu13 + Gtl223*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gt233 = Gtl133*gtu21 + Gtl233*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gt233 = Gtl133*gtu12 + Gtl233*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gt333 = Gtl133*gtu31 + Gtl233*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gt333 = Gtl133*gtu13 + Gtl233*gtu23 + Gtl333*gtu33;
- CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL fac1 = IfThen(conformalMethod,-(khalf*INV(phiL)),1);
@@ -712,35 +745,35 @@ void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int con
CCTK_REAL cdphi3 = fac1*PDstandardNth3phi;
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
- CCTK_REAL Atu11 = Atm11*gtu11 + Atm12*gtu21 + Atm13*gtu31;
+ CCTK_REAL Atu11 = Atm11*gtu11 + Atm12*gtu12 + Atm13*gtu13;
- CCTK_REAL Atu21 = Atm11*gtu21 + Atm12*gtu22 + Atm13*gtu32;
+ CCTK_REAL Atu12 = Atm11*gtu12 + Atm12*gtu22 + Atm13*gtu23;
- CCTK_REAL Atu31 = Atm11*gtu31 + Atm12*gtu32 + Atm13*gtu33;
+ CCTK_REAL Atu13 = Atm11*gtu13 + Atm12*gtu23 + Atm13*gtu33;
- CCTK_REAL Atu22 = Atm21*gtu21 + Atm22*gtu22 + Atm23*gtu32;
+ CCTK_REAL Atu22 = Atm21*gtu12 + Atm22*gtu22 + Atm23*gtu23;
- CCTK_REAL Atu32 = Atm21*gtu31 + Atm22*gtu32 + Atm23*gtu33;
+ CCTK_REAL Atu23 = Atm21*gtu13 + Atm22*gtu23 + Atm23*gtu33;
- CCTK_REAL Atu33 = Atm31*gtu31 + Atm32*gtu32 + Atm33*gtu33;
+ CCTK_REAL Atu33 = Atm31*gtu13 + Atm32*gtu23 + Atm33*gtu33;
CCTK_REAL e4phi = IfThen(conformalMethod,pow(phiL,-2),exp(4*phiL));
@@ -760,8 +793,8 @@ void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int con
CCTK_REAL S3 = (-eTtzL + beta1L*eTxzL + beta2L*eTyzL +
beta3L*eTzzL)*INV(alphaL);
- CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu21 +
- eTxzL*gtu31 + eTyzL*gtu32) + eTzzL*gtu33);
+ CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu12 +
+ eTxzL*gtu13 + eTyzL*gtu23) + eTzzL*gtu33);
CCTK_REAL phirhsL = epsdiss1*PDdissipationNth1phi +
epsdiss2*PDdissipationNth2phi + epsdiss3*PDdissipationNth3phi +
@@ -829,19 +862,19 @@ void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int con
beta3L*PDupwindNthAnti3gt33 + PDupwindNthSymm1gt33*Abs(beta1L) +
PDupwindNthSymm2gt33*Abs(beta2L) + PDupwindNthSymm3gt33*Abs(beta3L);
- CCTK_REAL dotXt1 = kthird*(7*(gtu21*PDstandardNth12beta1 +
- gtu31*PDstandardNth13beta1) + gtu11*(4*PDstandardNth11beta1 +
+ CCTK_REAL dotXt1 = kthird*(7*(gtu12*PDstandardNth12beta1 +
+ gtu13*PDstandardNth13beta1) + gtu11*(4*PDstandardNth11beta1 +
PDstandardNth12beta2 + PDstandardNth13beta3) +
- gtu21*(PDstandardNth22beta2 + PDstandardNth23beta3) +
- gtu31*(PDstandardNth23beta2 + PDstandardNth33beta3) -
- 6*(Atu11*PDstandardNth1alpha + Atu21*PDstandardNth2alpha +
- Atu31*PDstandardNth3alpha) + 6*(gtu32*PDstandardNth23beta1 +
- alphaL*(6*(Atu11*cdphi1 + Atu21*cdphi2 + Atu31*cdphi3) + Atu11*Gt111 +
- Atu22*Gt122 + 2*(Atu21*Gt112 + Atu31*Gt113 + Atu32*Gt123) + Atu33*Gt133
- - ktwothird*(gtu11*PDstandardNth1trK + gtu21*PDstandardNth2trK +
- gtu31*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu11*S1 + gtu21*S2 +
- gtu31*S3) + (-3*PDstandardNth1beta1 + 2*(PDstandardNth1beta1 +
+ gtu12*(PDstandardNth22beta2 + PDstandardNth23beta3) +
+ gtu13*(PDstandardNth23beta2 + PDstandardNth33beta3) -
+ 6*(Atu11*PDstandardNth1alpha + Atu12*PDstandardNth2alpha +
+ Atu13*PDstandardNth3alpha) + 6*(gtu23*PDstandardNth23beta1 +
+ alphaL*(6*(Atu11*cdphi1 + Atu12*cdphi2 + Atu13*cdphi3) + Atu11*Gt111 +
+ Atu22*Gt122 + 2*(Atu12*Gt112 + Atu13*Gt113 + Atu23*Gt123) + Atu33*Gt133
+ - ktwothird*(gtu11*PDstandardNth1trK + gtu12*PDstandardNth2trK +
+ gtu13*PDstandardNth3trK))) -
+ 150.7964473723100754462068823974161384415*alphaL*(gtu11*S1 + gtu12*S2 +
+ gtu13*S3) + (-3*PDstandardNth1beta1 + 2*(PDstandardNth1beta1 +
PDstandardNth2beta2 + PDstandardNth3beta3))*Xtn1 -
3*(PDstandardNth2beta1*Xtn2 + PDstandardNth3beta1*Xtn3) +
3*(epsdiss1*PDdissipationNth1Xt1 + epsdiss2*PDdissipationNth2Xt1 +
@@ -851,19 +884,19 @@ void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int con
PDupwindNthSymm1Xt1*Abs(beta1L) + PDupwindNthSymm2Xt1*Abs(beta2L) +
PDupwindNthSymm3Xt1*Abs(beta3L)));
- CCTK_REAL dotXt2 = kthird*(gtu21*(PDstandardNth11beta1 +
+ CCTK_REAL dotXt2 = kthird*(gtu12*(PDstandardNth11beta1 +
7*PDstandardNth12beta2 + PDstandardNth13beta3) +
gtu22*(PDstandardNth12beta1 + 4*PDstandardNth22beta2 +
- PDstandardNth23beta3) + gtu32*(PDstandardNth13beta1 +
+ PDstandardNth23beta3) + gtu23*(PDstandardNth13beta1 +
7*PDstandardNth23beta2 + PDstandardNth33beta3) -
- 6*(Atu21*PDstandardNth1alpha + Atu22*PDstandardNth2alpha +
- Atu32*PDstandardNth3alpha) + 6*(gtu31*PDstandardNth13beta2 +
- alphaL*(6*(Atu21*cdphi1 + Atu22*cdphi2 + Atu32*cdphi3) + Atu11*Gt211 +
- Atu22*Gt222 + 2*(Atu21*Gt212 + Atu31*Gt213 + Atu32*Gt223) + Atu33*Gt233
- - ktwothird*(gtu21*PDstandardNth1trK + gtu22*PDstandardNth2trK +
- gtu32*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu21*S1 + gtu22*S2 +
- gtu32*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
+ 6*(Atu12*PDstandardNth1alpha + Atu22*PDstandardNth2alpha +
+ Atu23*PDstandardNth3alpha) + 6*(gtu13*PDstandardNth13beta2 +
+ alphaL*(6*(Atu12*cdphi1 + Atu22*cdphi2 + Atu23*cdphi3) + Atu11*Gt211 +
+ Atu22*Gt222 + 2*(Atu12*Gt212 + Atu13*Gt213 + Atu23*Gt223) + Atu33*Gt233
+ - ktwothird*(gtu12*PDstandardNth1trK + gtu22*PDstandardNth2trK +
+ gtu23*PDstandardNth3trK))) -
+ 150.7964473723100754462068823974161384415*alphaL*(gtu12*S1 + gtu22*S2 +
+ gtu23*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
PDstandardNth3beta3)*Xtn2 - 3*(PDstandardNth1beta2*Xtn1 +
PDstandardNth2beta2*Xtn2 + PDstandardNth3beta2*Xtn3) +
3*(epsdiss1*PDdissipationNth1Xt2 + epsdiss2*PDdissipationNth2Xt2 +
@@ -873,18 +906,18 @@ void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int con
PDupwindNthSymm1Xt2*Abs(beta1L) + PDupwindNthSymm2Xt2*Abs(beta2L) +
PDupwindNthSymm3Xt2*Abs(beta3L)));
- CCTK_REAL dotXt3 = kthird*(gtu31*(PDstandardNth11beta1 +
+ CCTK_REAL dotXt3 = kthird*(gtu13*(PDstandardNth11beta1 +
PDstandardNth12beta2 + 7*PDstandardNth13beta3) +
- gtu32*(PDstandardNth12beta1 + PDstandardNth22beta2 +
+ gtu23*(PDstandardNth12beta1 + PDstandardNth22beta2 +
7*PDstandardNth23beta3) + gtu33*(PDstandardNth13beta1 +
PDstandardNth23beta2 + 4*PDstandardNth33beta3) -
- 6*(Atu31*PDstandardNth1alpha + Atu32*PDstandardNth2alpha +
- Atu33*PDstandardNth3alpha) + 6*(gtu21*PDstandardNth12beta3 +
- alphaL*(6*(Atu31*cdphi1 + Atu32*cdphi2 + Atu33*cdphi3) + Atu11*Gt311 +
- Atu22*Gt322 + 2*(Atu21*Gt312 + Atu31*Gt313 + Atu32*Gt323) + Atu33*Gt333
- - ktwothird*(gtu31*PDstandardNth1trK + gtu32*PDstandardNth2trK +
+ 6*(Atu13*PDstandardNth1alpha + Atu23*PDstandardNth2alpha +
+ Atu33*PDstandardNth3alpha) + 6*(gtu12*PDstandardNth12beta3 +
+ alphaL*(6*(Atu13*cdphi1 + Atu23*cdphi2 + Atu33*cdphi3) + Atu11*Gt311 +
+ Atu22*Gt322 + 2*(Atu12*Gt312 + Atu13*Gt313 + Atu23*Gt323) + Atu33*Gt333
+ - ktwothird*(gtu13*PDstandardNth1trK + gtu23*PDstandardNth2trK +
gtu33*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu31*S1 + gtu32*S2 +
+ 150.7964473723100754462068823974161384415*alphaL*(gtu13*S1 + gtu23*S2 +
gtu33*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
PDstandardNth3beta3)*Xtn3 - 3*(PDstandardNth1beta3*Xtn1 +
PDstandardNth2beta3*Xtn2 + PDstandardNth3beta3*Xtn3) +
@@ -906,12 +939,12 @@ void ML_BSSN_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int con
beta1L*PDupwindNthAnti1trK + beta2L*PDupwindNthAnti2trK +
beta3L*PDupwindNthAnti3trK - em4phi*(gtu11*PDstandardNth11alpha +
gtu22*PDstandardNth22alpha + gtu33*(PDstandardNth33alpha +
- 2*cdphi3*PDstandardNth3alpha) + 2*(gtu21*PDstandardNth12alpha +
- gtu31*(PDstandardNth13alpha + cdphi1*PDstandardNth3alpha) +
- gtu32*(PDstandardNth23alpha + cdphi2*PDstandardNth3alpha)) +
- PDstandardNth1alpha*(2*(cdphi1*gtu11 + cdphi2*gtu21 + cdphi3*gtu31) -
- Xtn1) + PDstandardNth2alpha*(2*(cdphi1*gtu21 + cdphi2*gtu22 +
- cdphi3*gtu32) - Xtn2) - PDstandardNth3alpha*Xtn3) +
+ 2*cdphi3*PDstandardNth3alpha) + 2*(gtu12*PDstandardNth12alpha +
+ gtu13*(PDstandardNth13alpha + cdphi1*PDstandardNth3alpha) +
+ gtu23*(PDstandardNth23alpha + cdphi2*PDstandardNth3alpha)) +
+ PDstandardNth1alpha*(2*(cdphi1*gtu11 + cdphi2*gtu12 + cdphi3*gtu13) -
+ Xtn1) + PDstandardNth2alpha*(2*(cdphi1*gtu12 + cdphi2*gtu22 +
+ cdphi3*gtu23) - Xtn2) - PDstandardNth3alpha*Xtn3) +
PDupwindNthSymm1trK*Abs(beta1L) + PDupwindNthSymm2trK*Abs(beta2L) +
PDupwindNthSymm3trK*Abs(beta3L) + alphaL*(2*(Atm12*Atm21 + Atm13*Atm31
+ Atm23*Atm32) + 12.56637061435917295385057353311801153679*(rho + trS)
diff --git a/ML_BSSN/src/ML_BSSN_RHS2.c b/ML_BSSN/src/ML_BSSN_RHS2.c
index 13bd8fc..672e384 100644
--- a/ML_BSSN/src/ML_BSSN_RHS2.c
+++ b/ML_BSSN/src/ML_BSSN_RHS2.c
@@ -20,6 +20,18 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_RHS2_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_curvrhs.");
+ return;
+}
+
void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -427,13 +439,13 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -476,104 +488,104 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
CCTK_REAL Gtl333 = khalf*PDstandardNth3gt33;
- CCTK_REAL Gtlu111 = Gtl111*gtu11 + Gtl112*gtu21 + Gtl113*gtu31;
+ CCTK_REAL Gtlu111 = Gtl111*gtu11 + Gtl112*gtu12 + Gtl113*gtu13;
- CCTK_REAL Gtlu112 = Gtl111*gtu21 + Gtl112*gtu22 + Gtl113*gtu32;
+ CCTK_REAL Gtlu112 = Gtl111*gtu12 + Gtl112*gtu22 + Gtl113*gtu23;
- CCTK_REAL Gtlu113 = Gtl111*gtu31 + Gtl112*gtu32 + Gtl113*gtu33;
+ CCTK_REAL Gtlu113 = Gtl111*gtu13 + Gtl112*gtu23 + Gtl113*gtu33;
- CCTK_REAL Gtlu121 = Gtl112*gtu11 + Gtl122*gtu21 + Gtl123*gtu31;
+ CCTK_REAL Gtlu121 = Gtl112*gtu11 + Gtl122*gtu12 + Gtl123*gtu13;
- CCTK_REAL Gtlu122 = Gtl112*gtu21 + Gtl122*gtu22 + Gtl123*gtu32;
+ CCTK_REAL Gtlu122 = Gtl112*gtu12 + Gtl122*gtu22 + Gtl123*gtu23;
- CCTK_REAL Gtlu123 = Gtl112*gtu31 + Gtl122*gtu32 + Gtl123*gtu33;
+ CCTK_REAL Gtlu123 = Gtl112*gtu13 + Gtl122*gtu23 + Gtl123*gtu33;
- CCTK_REAL Gtlu131 = Gtl113*gtu11 + Gtl123*gtu21 + Gtl133*gtu31;
+ CCTK_REAL Gtlu131 = Gtl113*gtu11 + Gtl123*gtu12 + Gtl133*gtu13;
- CCTK_REAL Gtlu132 = Gtl113*gtu21 + Gtl123*gtu22 + Gtl133*gtu32;
+ CCTK_REAL Gtlu132 = Gtl113*gtu12 + Gtl123*gtu22 + Gtl133*gtu23;
- CCTK_REAL Gtlu133 = Gtl113*gtu31 + Gtl123*gtu32 + Gtl133*gtu33;
+ CCTK_REAL Gtlu133 = Gtl113*gtu13 + Gtl123*gtu23 + Gtl133*gtu33;
- CCTK_REAL Gtlu211 = Gtl211*gtu11 + Gtl212*gtu21 + Gtl213*gtu31;
+ CCTK_REAL Gtlu211 = Gtl211*gtu11 + Gtl212*gtu12 + Gtl213*gtu13;
- CCTK_REAL Gtlu212 = Gtl211*gtu21 + Gtl212*gtu22 + Gtl213*gtu32;
+ CCTK_REAL Gtlu212 = Gtl211*gtu12 + Gtl212*gtu22 + Gtl213*gtu23;
- CCTK_REAL Gtlu213 = Gtl211*gtu31 + Gtl212*gtu32 + Gtl213*gtu33;
+ CCTK_REAL Gtlu213 = Gtl211*gtu13 + Gtl212*gtu23 + Gtl213*gtu33;
- CCTK_REAL Gtlu221 = Gtl212*gtu11 + Gtl222*gtu21 + Gtl223*gtu31;
+ CCTK_REAL Gtlu221 = Gtl212*gtu11 + Gtl222*gtu12 + Gtl223*gtu13;
- CCTK_REAL Gtlu222 = Gtl212*gtu21 + Gtl222*gtu22 + Gtl223*gtu32;
+ CCTK_REAL Gtlu222 = Gtl212*gtu12 + Gtl222*gtu22 + Gtl223*gtu23;
- CCTK_REAL Gtlu223 = Gtl212*gtu31 + Gtl222*gtu32 + Gtl223*gtu33;
+ CCTK_REAL Gtlu223 = Gtl212*gtu13 + Gtl222*gtu23 + Gtl223*gtu33;
- CCTK_REAL Gtlu231 = Gtl213*gtu11 + Gtl223*gtu21 + Gtl233*gtu31;
+ CCTK_REAL Gtlu231 = Gtl213*gtu11 + Gtl223*gtu12 + Gtl233*gtu13;
- CCTK_REAL Gtlu232 = Gtl213*gtu21 + Gtl223*gtu22 + Gtl233*gtu32;
+ CCTK_REAL Gtlu232 = Gtl213*gtu12 + Gtl223*gtu22 + Gtl233*gtu23;
- CCTK_REAL Gtlu233 = Gtl213*gtu31 + Gtl223*gtu32 + Gtl233*gtu33;
+ CCTK_REAL Gtlu233 = Gtl213*gtu13 + Gtl223*gtu23 + Gtl233*gtu33;
- CCTK_REAL Gtlu311 = Gtl311*gtu11 + Gtl312*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gtlu311 = Gtl311*gtu11 + Gtl312*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gtlu312 = Gtl311*gtu21 + Gtl312*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gtlu312 = Gtl311*gtu12 + Gtl312*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gtlu313 = Gtl311*gtu31 + Gtl312*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gtlu313 = Gtl311*gtu13 + Gtl312*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gtlu321 = Gtl312*gtu11 + Gtl322*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gtlu321 = Gtl312*gtu11 + Gtl322*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gtlu322 = Gtl312*gtu21 + Gtl322*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gtlu322 = Gtl312*gtu12 + Gtl322*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gtlu323 = Gtl312*gtu31 + Gtl322*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gtlu323 = Gtl312*gtu13 + Gtl322*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gtlu331 = Gtl313*gtu11 + Gtl323*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gtlu331 = Gtl313*gtu11 + Gtl323*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gtlu332 = Gtl313*gtu21 + Gtl323*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gtlu332 = Gtl313*gtu12 + Gtl323*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gtlu333 = Gtl313*gtu31 + Gtl323*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gtlu333 = Gtl313*gtu13 + Gtl323*gtu23 + Gtl333*gtu33;
- CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu21 + Gtl311*gtu31;
+ CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu12 + Gtl311*gtu13;
- CCTK_REAL Gt211 = Gtl111*gtu21 + Gtl211*gtu22 + Gtl311*gtu32;
+ CCTK_REAL Gt211 = Gtl111*gtu12 + Gtl211*gtu22 + Gtl311*gtu23;
- CCTK_REAL Gt311 = Gtl111*gtu31 + Gtl211*gtu32 + Gtl311*gtu33;
+ CCTK_REAL Gt311 = Gtl111*gtu13 + Gtl211*gtu23 + Gtl311*gtu33;
- CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu21 + Gtl312*gtu31;
+ CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu12 + Gtl312*gtu13;
- CCTK_REAL Gt212 = Gtl112*gtu21 + Gtl212*gtu22 + Gtl312*gtu32;
+ CCTK_REAL Gt212 = Gtl112*gtu12 + Gtl212*gtu22 + Gtl312*gtu23;
- CCTK_REAL Gt312 = Gtl112*gtu31 + Gtl212*gtu32 + Gtl312*gtu33;
+ CCTK_REAL Gt312 = Gtl112*gtu13 + Gtl212*gtu23 + Gtl312*gtu33;
- CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gt213 = Gtl113*gtu21 + Gtl213*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gt213 = Gtl113*gtu12 + Gtl213*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gt313 = Gtl113*gtu31 + Gtl213*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gt313 = Gtl113*gtu13 + Gtl213*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu21 + Gtl322*gtu31;
+ CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu12 + Gtl322*gtu13;
- CCTK_REAL Gt222 = Gtl122*gtu21 + Gtl222*gtu22 + Gtl322*gtu32;
+ CCTK_REAL Gt222 = Gtl122*gtu12 + Gtl222*gtu22 + Gtl322*gtu23;
- CCTK_REAL Gt322 = Gtl122*gtu31 + Gtl222*gtu32 + Gtl322*gtu33;
+ CCTK_REAL Gt322 = Gtl122*gtu13 + Gtl222*gtu23 + Gtl322*gtu33;
- CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gt223 = Gtl123*gtu21 + Gtl223*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gt223 = Gtl123*gtu12 + Gtl223*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gt323 = Gtl123*gtu31 + Gtl223*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gt323 = Gtl123*gtu13 + Gtl223*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gt233 = Gtl133*gtu21 + Gtl233*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gt233 = Gtl133*gtu12 + Gtl233*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gt333 = Gtl133*gtu31 + Gtl233*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gt333 = Gtl133*gtu13 + Gtl233*gtu23 + Gtl333*gtu33;
- CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL Rt11 = 3*(Gt111*Gtlu111 + Gt112*Gtlu112 + Gt113*Gtlu113) +
2*(Gt211*Gtlu121 + Gt212*Gtlu122 + Gt213*Gtlu123 + Gt311*Gtlu131 +
@@ -581,8 +593,8 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
Gt213*Gtlu213 + Gt311*Gtlu311 + Gt312*Gtlu312 + Gt313*Gtlu313 +
gt11L*PDstandardNth1Xt1 + gt12L*PDstandardNth1Xt2 +
gt13L*PDstandardNth1Xt3 + khalf*(-(gtu11*PDstandardNth11gt11) -
- 2*gtu21*PDstandardNth12gt11 - 2*gtu31*PDstandardNth13gt11 -
- gtu22*PDstandardNth22gt11 - 2*gtu32*PDstandardNth23gt11 -
+ 2*gtu12*PDstandardNth12gt11 - 2*gtu13*PDstandardNth13gt11 -
+ gtu22*PDstandardNth22gt11 - 2*gtu23*PDstandardNth23gt11 -
gtu33*PDstandardNth33gt11) + Gtl111*Xtn1 + Gtl112*Xtn2 + Gtl113*Xtn3;
CCTK_REAL Rt12 = khalf*(4*(Gt211*Gtlu221 + Gt212*Gtlu222 +
@@ -592,10 +604,10 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
Gt323*Gtlu133 + Gt111*Gtlu211 + Gt112*Gtlu212 + Gt113*Gtlu213 +
Gt311*Gtlu231 + Gt312*Gtlu232 + Gt313*Gtlu233 + Gt311*Gtlu321 +
Gt312*Gtlu322 + Gt313*Gtlu323) - gtu11*PDstandardNth11gt12 -
- 2*gtu21*PDstandardNth12gt12 - 2*gtu31*PDstandardNth13gt12 +
+ 2*gtu12*PDstandardNth12gt12 - 2*gtu13*PDstandardNth13gt12 +
gt12L*PDstandardNth1Xt1 + gt22L*PDstandardNth1Xt2 +
gt23L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt12 -
- 2*gtu32*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
+ 2*gtu23*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
gt12L*PDstandardNth2Xt2 + gt13L*PDstandardNth2Xt3 -
gtu33*PDstandardNth33gt12 + Gtl112*Xtn1 + Gtl211*Xtn1 + Gtl122*Xtn2 +
Gtl212*Xtn2 + Gtl123*Xtn3 + Gtl213*Xtn3);
@@ -607,10 +619,10 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
Gt213*Gtlu233 + Gt111*Gtlu311 + Gt112*Gtlu312 + Gt113*Gtlu313 +
Gt211*Gtlu321 + Gt212*Gtlu322 + Gt213*Gtlu323) + 4*(Gt311*Gtlu331 +
Gt312*Gtlu332 + Gt313*Gtlu333) - gtu11*PDstandardNth11gt13 -
- 2*gtu21*PDstandardNth12gt13 - 2*gtu31*PDstandardNth13gt13 +
+ 2*gtu12*PDstandardNth12gt13 - 2*gtu13*PDstandardNth13gt13 +
gt13L*PDstandardNth1Xt1 + gt23L*PDstandardNth1Xt2 +
gt33L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt13 -
- 2*gtu32*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
+ 2*gtu23*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
gt11L*PDstandardNth3Xt1 + gt12L*PDstandardNth3Xt2 +
gt13L*PDstandardNth3Xt3 + Gtl113*Xtn1 + Gtl311*Xtn1 + Gtl123*Xtn2 +
Gtl312*Xtn2 + Gtl133*Xtn3 + Gtl313*Xtn3);
@@ -621,8 +633,8 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
Gt323*Gtlu233) + Gt312*Gtlu321 + Gt322*Gtlu322 + Gt323*Gtlu323 +
gt12L*PDstandardNth2Xt1 + gt22L*PDstandardNth2Xt2 +
gt23L*PDstandardNth2Xt3 + khalf*(-(gtu11*PDstandardNth11gt22) -
- 2*gtu21*PDstandardNth12gt22 - 2*gtu31*PDstandardNth13gt22 -
- gtu22*PDstandardNth22gt22 - 2*gtu32*PDstandardNth23gt22 -
+ 2*gtu12*PDstandardNth12gt22 - 2*gtu13*PDstandardNth13gt22 -
+ gtu22*PDstandardNth22gt22 - 2*gtu23*PDstandardNth23gt22 -
gtu33*PDstandardNth33gt22) + Gtl212*Xtn1 + Gtl222*Xtn2 + Gtl223*Xtn3;
CCTK_REAL Rt23 = khalf*(2*(Gt112*Gtlu131 + Gt122*Gtlu132 +
@@ -632,8 +644,8 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
Gt333*Gtlu233 + Gt112*Gtlu311 + Gt122*Gtlu312 + Gt123*Gtlu313 +
Gt212*Gtlu321 + Gt222*Gtlu322 + Gt223*Gtlu323) + 4*(Gt312*Gtlu331 +
Gt322*Gtlu332 + Gt323*Gtlu333) - gtu11*PDstandardNth11gt23 -
- 2*gtu21*PDstandardNth12gt23 - 2*gtu31*PDstandardNth13gt23 -
- gtu22*PDstandardNth22gt23 - 2*gtu32*PDstandardNth23gt23 +
+ 2*gtu12*PDstandardNth12gt23 - 2*gtu13*PDstandardNth13gt23 -
+ gtu22*PDstandardNth22gt23 - 2*gtu23*PDstandardNth23gt23 +
gt13L*PDstandardNth2Xt1 + gt23L*PDstandardNth2Xt2 +
gt33L*PDstandardNth2Xt3 - gtu33*PDstandardNth33gt23 +
gt12L*PDstandardNth3Xt1 + gt22L*PDstandardNth3Xt2 +
@@ -644,9 +656,9 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
2*Gtlu312) + Gt133*(Gtlu133 + 2*Gtlu313) + Gt213*(Gtlu231 + 2*Gtlu321)
+ Gt223*(Gtlu232 + 2*Gtlu322) + Gt233*(Gtlu233 + 2*Gtlu323) +
3*(Gt313*Gtlu331 + Gt323*Gtlu332 + Gt333*Gtlu333) +
- khalf*(-(gtu11*PDstandardNth11gt33) - 2*gtu21*PDstandardNth12gt33 -
- 2*gtu31*PDstandardNth13gt33 - gtu22*PDstandardNth22gt33 -
- 2*gtu32*PDstandardNth23gt33 - gtu33*PDstandardNth33gt33) +
+ khalf*(-(gtu11*PDstandardNth11gt33) - 2*gtu12*PDstandardNth12gt33 -
+ 2*gtu13*PDstandardNth13gt33 - gtu22*PDstandardNth22gt33 -
+ 2*gtu23*PDstandardNth23gt33 - gtu33*PDstandardNth33gt33) +
gt13L*PDstandardNth3Xt1 + gt23L*PDstandardNth3Xt2 +
gt33L*PDstandardNth3Xt3 + Gtl313*Xtn1 + Gtl323*Xtn2 + Gtl333*Xtn3;
@@ -685,58 +697,58 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
Gt333*PDstandardNth3phi)) + fac2*SQR(PDstandardNth3phi);
CCTK_REAL Rphi11 = -2*(cdphi211 + 2*(-1 + gt11L*gtu11)*SQR(cdphi1) +
- gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu21 + cdphi3*gtu31) +
- cdphi2*cdphi3*gtu32) + cdphi233*gtu33 + gtu22*(cdphi222 +
- 2*SQR(cdphi2)) + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu12 + cdphi3*gtu13) +
+ cdphi2*cdphi3*gtu23) + cdphi233*gtu33 + gtu22*(cdphi222 +
+ 2*SQR(cdphi2)) + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu21)
- + 4*cdphi3*gt12L*gtu31) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu32
- + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu12)
+ + 4*cdphi3*gt12L*gtu13) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu23
+ + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2)) + gtu33*(cdphi233
+ 2*SQR(cdphi3))));
- CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu21 +
- cdphi3*(-2 + 4*gt13L*gtu31)) + gt13L*(cdphi211*gtu11 +
- 4*cdphi2*cdphi3*gtu32 + 2*(cdphi212*gtu21 + cdphi213*gtu31 +
- cdphi223*gtu32 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu12 +
+ cdphi3*(-2 + 4*gt13L*gtu13)) + gt13L*(cdphi211*gtu11 +
+ 4*cdphi2*cdphi3*gtu23 + 2*(cdphi212*gtu12 + cdphi213*gtu13 +
+ cdphi223*gtu23 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ gtu33*(cdphi233 + 2*SQR(cdphi3))));
CCTK_REAL Rphi22 = -2*(cdphi222 + 2*(-1 + gt22L*gtu22)*SQR(cdphi2) +
- gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu31 + cdphi2*(cdphi1*gtu21 +
- cdphi3*gtu32)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu13 + cdphi2*(cdphi1*gtu12 +
+ cdphi3*gtu23)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
+ 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu21 +
- cdphi3*(-2 + 4*gt23L*gtu32)) + gt23L*(cdphi222*gtu22 +
- 4*cdphi1*cdphi3*gtu31 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
- gtu22*SQR(cdphi2)) + gtu33*(cdphi233 + 2*SQR(cdphi3))));
+ CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu12 +
+ cdphi3*(-2 + 4*gt23L*gtu23)) + gt23L*(4*cdphi1*cdphi3*gtu13 +
+ cdphi222*gtu22 + gtu11*(cdphi211 + 2*SQR(cdphi1)) + 2*(cdphi212*gtu12 +
+ cdphi213*gtu13 + cdphi223*gtu23 + gtu22*SQR(cdphi2)) + gtu33*(cdphi233
+ + 2*SQR(cdphi3))));
CCTK_REAL Rphi33 = -2*(cdphi233 + gt33L*((4*cdphi1*cdphi2 +
- 2*cdphi212)*gtu21 + 4*cdphi3*(cdphi1*gtu31 + cdphi2*gtu32) +
- 2*(cdphi213*gtu31 + cdphi223*gtu32) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*cdphi212)*gtu12 + 4*cdphi3*(cdphi1*gtu13 + cdphi2*gtu23) +
+ 2*(cdphi213*gtu13 + cdphi223*gtu23) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))) + 2*(-1 +
gt33L*gtu33)*SQR(cdphi3));
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
CCTK_REAL e4phi = IfThen(conformalMethod,pow(phiL,-2),exp(4*phiL));
@@ -756,13 +768,13 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -778,8 +790,8 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
CCTK_REAL R33 = Rphi33 + Rt33;
- CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu21 +
- eTxzL*gtu31 + eTyzL*gtu32) + eTzzL*gtu33);
+ CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu12 +
+ eTxzL*gtu13 + eTyzL*gtu23) + eTzzL*gtu33);
CCTK_REAL Ats11 = -PDstandardNth11alpha + (4*cdphi1 +
Gt111)*PDstandardNth1alpha + Gt211*PDstandardNth2alpha +
@@ -805,8 +817,8 @@ void ML_BSSN_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int con
Gt233*PDstandardNth2alpha - PDstandardNth33alpha + (4*cdphi3 +
Gt333)*PDstandardNth3alpha + alphaL*R33;
- CCTK_REAL trAts = Ats11*gu11 + Ats22*gu22 + 2*(Ats12*gu21 + Ats13*gu31
- + Ats23*gu32) + Ats33*gu33;
+ CCTK_REAL trAts = Ats11*gu11 + Ats22*gu22 + 2*(Ats12*gu12 + Ats13*gu13
+ + Ats23*gu23) + Ats33*gu33;
CCTK_REAL At11rhsL = -2.*alphaL*(At11L*Atm11 + At12L*Atm21 +
At13L*Atm31) + epsdiss1*PDdissipationNth1At11 +
diff --git a/ML_BSSN/src/ML_BSSN_RHSRadiativeBoundary.c b/ML_BSSN/src/ML_BSSN_RHSRadiativeBoundary.c
index 59674b7..5572dae 100644
--- a/ML_BSSN/src/ML_BSSN_RHSRadiativeBoundary.c
+++ b/ML_BSSN/src/ML_BSSN_RHSRadiativeBoundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_RHSRadiativeBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -131,13 +167,13 @@ void ML_BSSN_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int co
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -145,13 +181,13 @@ void ML_BSSN_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int co
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -161,11 +197,11 @@ void ML_BSSN_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int co
CCTK_REAL nn3 = normal[2];
- CCTK_REAL nu1 = gu11*nn1 + gu21*nn2 + gu31*nn3;
+ CCTK_REAL nu1 = gu11*nn1 + gu12*nn2 + gu13*nn3;
- CCTK_REAL nu2 = gu21*nn1 + gu22*nn2 + gu32*nn3;
+ CCTK_REAL nu2 = gu12*nn1 + gu22*nn2 + gu23*nn3;
- CCTK_REAL nu3 = gu31*nn1 + gu32*nn2 + gu33*nn3;
+ CCTK_REAL nu3 = gu13*nn1 + gu23*nn2 + gu33*nn3;
CCTK_REAL nlen2 = nn1*nu1 + nn2*nu2 + nn3*nu3;
diff --git a/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.c b/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.c
index 1829b1f..a322308 100644
--- a/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.c
+++ b/ML_BSSN/src/ML_BSSN_RHSStaticBoundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN/src/ML_BSSN_boundary.c b/ML_BSSN/src/ML_BSSN_boundary.c
index 9bc7fea..eac45fc 100644
--- a/ML_BSSN/src/ML_BSSN_boundary.c
+++ b/ML_BSSN/src/ML_BSSN_boundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_curv.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtshift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_lapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_lapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_log_confac","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_log_confac.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_metric","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_metric.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_shift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_trace_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_trace_curv.");
+ return;
+}
+
void ML_BSSN_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN/src/ML_BSSN_constraints.c b/ML_BSSN/src/ML_BSSN_constraints.c
index f87c46b..eb5642a 100644
--- a/ML_BSSN/src/ML_BSSN_constraints.c
+++ b/ML_BSSN/src/ML_BSSN_constraints.c
@@ -20,6 +20,30 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_constraints_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_cons_detg","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_cons_detg.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_cons_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_cons_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_cons_traceA","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_cons_traceA.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_mom.");
+ return;
+}
+
void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -317,151 +341,151 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
CCTK_REAL Gt111 = khalf*(gtu11*PDstandardNth1gt11 +
- 2*(gtu21*PDstandardNth1gt12 + gtu31*PDstandardNth1gt13) -
- gtu21*PDstandardNth2gt11 - gtu31*PDstandardNth3gt11);
+ 2*(gtu12*PDstandardNth1gt12 + gtu13*PDstandardNth1gt13) -
+ gtu12*PDstandardNth2gt11 - gtu13*PDstandardNth3gt11);
- CCTK_REAL Gt211 = khalf*(gtu21*PDstandardNth1gt11 +
- 2*(gtu22*PDstandardNth1gt12 + gtu32*PDstandardNth1gt13) -
- gtu22*PDstandardNth2gt11 - gtu32*PDstandardNth3gt11);
+ CCTK_REAL Gt211 = khalf*(gtu12*PDstandardNth1gt11 +
+ 2*(gtu22*PDstandardNth1gt12 + gtu23*PDstandardNth1gt13) -
+ gtu22*PDstandardNth2gt11 - gtu23*PDstandardNth3gt11);
- CCTK_REAL Gt311 = khalf*(gtu31*PDstandardNth1gt11 +
- 2*(gtu32*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
- gtu32*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
+ CCTK_REAL Gt311 = khalf*(gtu13*PDstandardNth1gt11 +
+ 2*(gtu23*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
+ gtu23*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
- CCTK_REAL Gt112 = khalf*(gtu21*PDstandardNth1gt22 +
- gtu11*PDstandardNth2gt11 + gtu31*(PDstandardNth1gt23 +
+ CCTK_REAL Gt112 = khalf*(gtu12*PDstandardNth1gt22 +
+ gtu11*PDstandardNth2gt11 + gtu13*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
CCTK_REAL Gt212 = khalf*(gtu22*PDstandardNth1gt22 +
- gtu21*PDstandardNth2gt11 + gtu32*(PDstandardNth1gt23 +
+ gtu12*PDstandardNth2gt11 + gtu23*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt312 = khalf*(gtu32*PDstandardNth1gt22 +
- gtu31*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
+ CCTK_REAL Gt312 = khalf*(gtu23*PDstandardNth1gt22 +
+ gtu13*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt113 = khalf*(gtu31*PDstandardNth1gt33 +
- gtu11*PDstandardNth3gt11 + gtu21*(PDstandardNth1gt23 -
+ CCTK_REAL Gt113 = khalf*(gtu13*PDstandardNth1gt33 +
+ gtu11*PDstandardNth3gt11 + gtu12*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
- CCTK_REAL Gt213 = khalf*(gtu32*PDstandardNth1gt33 +
- gtu21*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
+ CCTK_REAL Gt213 = khalf*(gtu23*PDstandardNth1gt33 +
+ gtu12*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt313 = khalf*(gtu33*PDstandardNth1gt33 +
- gtu31*PDstandardNth3gt11 + gtu32*(PDstandardNth1gt23 -
+ gtu13*PDstandardNth3gt11 + gtu23*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt122 = khalf*(gtu11*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu21*PDstandardNth2gt22 +
- gtu31*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ 2*PDstandardNth2gt12) + gtu12*PDstandardNth2gt22 +
+ gtu13*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt222 = khalf*(gtu21*(-PDstandardNth1gt22 +
+ CCTK_REAL Gt222 = khalf*(gtu12*(-PDstandardNth1gt22 +
2*PDstandardNth2gt12) + gtu22*PDstandardNth2gt22 +
- gtu32*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ gtu23*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt322 = khalf*(gtu31*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu32*PDstandardNth2gt22 +
+ CCTK_REAL Gt322 = khalf*(gtu13*(-PDstandardNth1gt22 +
+ 2*PDstandardNth2gt12) + gtu23*PDstandardNth2gt22 +
gtu33*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt123 = khalf*(gtu31*PDstandardNth2gt33 +
+ CCTK_REAL Gt123 = khalf*(gtu13*PDstandardNth2gt33 +
gtu11*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu21*PDstandardNth3gt22);
+ gtu12*PDstandardNth3gt22);
- CCTK_REAL Gt223 = khalf*(gtu32*PDstandardNth2gt33 +
- gtu21*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ CCTK_REAL Gt223 = khalf*(gtu23*PDstandardNth2gt33 +
+ gtu12*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
gtu22*PDstandardNth3gt22);
CCTK_REAL Gt323 = khalf*(gtu33*PDstandardNth2gt33 +
- gtu31*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu32*PDstandardNth3gt22);
+ gtu13*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ gtu23*PDstandardNth3gt22);
CCTK_REAL Gt133 = khalf*(-(gtu11*PDstandardNth1gt33) -
- gtu21*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
- 2*gtu21*PDstandardNth3gt23 + gtu31*PDstandardNth3gt33);
+ gtu12*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
+ 2*gtu12*PDstandardNth3gt23 + gtu13*PDstandardNth3gt33);
- CCTK_REAL Gt233 = khalf*(-(gtu21*PDstandardNth1gt33) -
- gtu22*PDstandardNth2gt33 + 2*gtu21*PDstandardNth3gt13 +
- 2*gtu22*PDstandardNth3gt23 + gtu32*PDstandardNth3gt33);
+ CCTK_REAL Gt233 = khalf*(-(gtu12*PDstandardNth1gt33) -
+ gtu22*PDstandardNth2gt33 + 2*gtu12*PDstandardNth3gt13 +
+ 2*gtu22*PDstandardNth3gt23 + gtu23*PDstandardNth3gt33);
- CCTK_REAL Gt333 = khalf*(-(gtu31*PDstandardNth1gt33) -
- gtu32*PDstandardNth2gt33 + 2*gtu31*PDstandardNth3gt13 +
- 2*gtu32*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
+ CCTK_REAL Gt333 = khalf*(-(gtu13*PDstandardNth1gt33) -
+ gtu23*PDstandardNth2gt33 + 2*gtu13*PDstandardNth3gt13 +
+ 2*gtu23*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
CCTK_REAL Rt11 = -(gtu11*khalf*PDstandardNth11gt11) +
- gtu21*(2*Gt211*Gt212*gt22L + 4*Gt112*gt13L*Gt311 + 2*Gt113*gt11L*Gt312
+ gtu12*(2*Gt211*Gt212*gt22L + 4*Gt112*gt13L*Gt311 + 2*Gt113*gt11L*Gt312
+ 2*gt13L*Gt312*Gt313 + 2*gt13L*Gt211*Gt322 + 2*gt13L*Gt311*Gt323 +
- 2*Gt311*Gt312*gt33L - PDstandardNth12gt11) - gtu31*PDstandardNth13gt11
- + gt11L*PDstandardNth1Xt1 + gt12L*(4*Gt111*Gt212*gtu21 +
- 2*Gt211*Gt222*gtu21 + 2*Gt212*Gt222*gtu22 + 4*Gt113*Gt211*gtu31 +
- 4*Gt113*Gt212*gtu32 + 4*Gt113*Gt213*gtu33 + PDstandardNth1Xt2) +
- gt13L*(4*Gt111*Gt312*gtu21 + 2*Gt212*Gt312*gtu21 + 4*Gt112*Gt312*gtu22
- + 4*Gt113*Gt311*gtu31 + 4*Gt113*Gt312*gtu32 + 4*Gt113*Gt313*gtu33 +
+ 2*Gt311*Gt312*gt33L - PDstandardNth12gt11) - gtu13*PDstandardNth13gt11
+ + gt11L*PDstandardNth1Xt1 + gt12L*(4*Gt111*Gt212*gtu12 +
+ 2*Gt211*Gt222*gtu12 + 4*Gt113*Gt211*gtu13 + 4*Gt112*Gt212*gtu22 +
+ 4*Gt113*Gt212*gtu23 + 4*Gt113*Gt213*gtu33 + PDstandardNth1Xt2) +
+ gt13L*(4*Gt111*Gt312*gtu12 + 2*Gt212*Gt312*gtu12 + 4*Gt113*Gt311*gtu13
+ + 2*Gt212*Gt322*gtu22 + 4*Gt113*Gt312*gtu23 + 4*Gt113*Gt313*gtu33 +
PDstandardNth1Xt3) - gtu22*khalf*PDstandardNth22gt11 -
- gtu32*PDstandardNth23gt11 - gtu33*khalf*PDstandardNth33gt11 +
- Gt111*(6*Gt113*gt11L*gtu31 + 4*gt12L*Gt213*gtu31 + gt11L*Xt1L) +
- Gt211*(2*Gt112*gt11L*gtu11 + 4*Gt111*gt12L*gtu11 + 2*gt11L*Gt122*gtu21
- + 2*gt11L*Gt123*gtu31 + gt12L*Xt1L) + Gt311*(4*Gt111*gt13L*gtu11 +
- 2*gt12L*Gt213*gtu11 + 2*gt13L*Gt313*gtu11 + 2*gt11L*Gt123*gtu21 +
- 2*gt11L*Gt133*gtu31 + gt13L*Xt1L) + gt12L*Gt212*Xt2L + gt13L*Gt312*Xt2L
- + Gt112*(6*Gt111*gt11L*gtu21 + 4*gt12L*Gt211*gtu21 +
- 4*gt12L*Gt212*gtu22 + 2*gt11L*Gt213*gtu31 + 6*Gt113*gt11L*gtu32 +
- gt11L*Xt2L) + Gt113*gt11L*Xt3L + Gt213*(2*gt11L*Gt122*gtu32 +
- 4*Gt112*gt12L*gtu32 + 2*gt11L*Gt123*gtu33 + gt12L*Xt3L) +
- Gt313*(4*Gt111*gt13L*gtu31 + 2*gt12L*Gt213*gtu31 + 2*gt11L*Gt123*gtu32
- + 4*Gt112*gt13L*gtu32 + 2*gt12L*Gt223*gtu32 + 2*gt11L*Gt133*gtu33 +
+ gtu23*PDstandardNth23gt11 - gtu33*khalf*PDstandardNth33gt11 +
+ Gt111*(6*Gt113*gt11L*gtu13 + 4*gt12L*Gt213*gtu13 + gt11L*Xt1L) +
+ Gt211*(2*Gt112*gt11L*gtu11 + 4*Gt111*gt12L*gtu11 + 2*gt11L*Gt122*gtu12
+ + 2*gt11L*Gt123*gtu13 + gt12L*Xt1L) + Gt311*(4*Gt111*gt13L*gtu11 +
+ 2*gt12L*Gt213*gtu11 + 2*gt13L*Gt313*gtu11 + 2*gt11L*Gt123*gtu12 +
+ 2*gt11L*Gt133*gtu13 + gt13L*Xt1L) + gt12L*Gt212*Xt2L + gt13L*Gt312*Xt2L
+ + Gt112*(6*Gt111*gt11L*gtu12 + 4*gt12L*Gt211*gtu12 +
+ 2*gt11L*Gt213*gtu13 + 4*gt13L*Gt312*gtu22 + 6*Gt113*gt11L*gtu23 +
+ gt11L*Xt2L) + Gt113*gt11L*Xt3L + Gt213*(2*gt11L*Gt122*gtu23 +
+ 4*Gt112*gt12L*gtu23 + 2*gt11L*Gt123*gtu33 + gt12L*Xt3L) +
+ Gt313*(4*Gt111*gt13L*gtu13 + 2*gt12L*Gt213*gtu13 + 2*gt11L*Gt123*gtu23
+ + 4*Gt112*gt13L*gtu23 + 2*gt12L*Gt223*gtu23 + 2*gt11L*Gt133*gtu33 +
gt13L*Xt3L) + 3*gt11L*gtu11*SQR(Gt111) + 3*gt11L*gtu22*SQR(Gt112) +
3*gt11L*gtu33*SQR(Gt113) + gt22L*gtu11*SQR(Gt211) +
gt22L*gtu22*SQR(Gt212) + 2*(gt12L*Gt211*Gt212*gtu11 +
Gt113*gt11L*Gt311*gtu11 + Gt211*gt23L*Gt311*gtu11 +
- gt13L*Gt211*Gt312*gtu11 + Gt112*gt11L*Gt212*gtu21 +
- gt12L*Gt223*Gt311*gtu21 + Gt212*gt23L*Gt311*gtu21 +
- gt12L*Gt213*Gt312*gtu21 + Gt211*gt23L*Gt312*gtu21 +
- gt11L*Gt122*Gt212*gtu22 + gt11L*Gt123*Gt312*gtu22 +
+ gt13L*Gt211*Gt312*gtu11 + Gt112*gt11L*Gt212*gtu12 +
+ gt12L*Gt223*Gt311*gtu12 + Gt212*gt23L*Gt311*gtu12 +
+ gt12L*Gt213*Gt312*gtu12 + Gt211*gt23L*Gt312*gtu12 +
+ gt12L*Gt212*Gt213*gtu13 + gt12L*Gt211*Gt223*gtu13 +
+ Gt211*Gt213*gt22L*gtu13 + gt12L*Gt233*Gt311*gtu13 +
+ Gt213*gt23L*Gt311*gtu13 + gt13L*Gt213*Gt312*gtu13 +
+ Gt113*gt11L*Gt313*gtu13 + Gt211*gt23L*Gt313*gtu13 +
+ gt13L*Gt211*Gt323*gtu13 + gt13L*Gt311*Gt333*gtu13 +
+ Gt311*Gt313*gt33L*gtu13 + gt11L*Gt122*Gt212*gtu22 +
+ gt12L*Gt212*Gt222*gtu22 + gt11L*Gt123*Gt312*gtu22 +
gt12L*Gt223*Gt312*gtu22 + Gt212*gt23L*Gt312*gtu22 +
- gt13L*Gt212*Gt322*gtu22 + gt13L*Gt312*Gt323*gtu22 +
- gt12L*Gt212*Gt213*gtu31 + gt12L*Gt211*Gt223*gtu31 +
- Gt211*Gt213*gt22L*gtu31 + gt12L*Gt233*Gt311*gtu31 +
- Gt213*gt23L*Gt311*gtu31 + gt13L*Gt213*Gt312*gtu31 +
- Gt113*gt11L*Gt313*gtu31 + Gt211*gt23L*Gt313*gtu31 +
- gt13L*Gt211*Gt323*gtu31 + gt13L*Gt311*Gt333*gtu31 +
- Gt311*Gt313*gt33L*gtu31 + gt11L*Gt123*Gt212*gtu32 +
- gt12L*Gt213*Gt222*gtu32 + gt12L*Gt212*Gt223*gtu32 +
- Gt212*Gt213*gt22L*gtu32 + gt11L*Gt133*Gt312*gtu32 +
- gt12L*Gt233*Gt312*gtu32 + Gt213*gt23L*Gt312*gtu32 +
- Gt212*gt23L*Gt313*gtu32 + gt13L*Gt213*Gt322*gtu32 +
- gt13L*Gt212*Gt323*gtu32 + gt13L*Gt313*Gt323*gtu32 +
- gt13L*Gt312*Gt333*gtu32 + Gt312*Gt313*gt33L*gtu32 +
+ gt13L*Gt312*Gt323*gtu22 + gt11L*Gt123*Gt212*gtu23 +
+ gt12L*Gt213*Gt222*gtu23 + gt12L*Gt212*Gt223*gtu23 +
+ Gt212*Gt213*gt22L*gtu23 + gt11L*Gt133*Gt312*gtu23 +
+ gt12L*Gt233*Gt312*gtu23 + Gt213*gt23L*Gt312*gtu23 +
+ Gt212*gt23L*Gt313*gtu23 + gt13L*Gt213*Gt322*gtu23 +
+ gt13L*Gt212*Gt323*gtu23 + gt13L*Gt313*Gt323*gtu23 +
+ gt13L*Gt312*Gt333*gtu23 + Gt312*Gt313*gt33L*gtu23 +
gt12L*Gt213*Gt223*gtu33 + gt12L*Gt233*Gt313*gtu33 +
Gt213*gt23L*Gt313*gtu33 + gt13L*Gt213*Gt323*gtu33 +
- gt13L*Gt313*Gt333*gtu33 + gt12L*gtu21*SQR(Gt212)) +
+ gt13L*Gt313*Gt333*gtu33 + gt12L*gtu12*SQR(Gt212)) +
gt22L*gtu33*SQR(Gt213) + gt33L*gtu11*SQR(Gt311) +
- gt33L*gtu22*SQR(Gt312) + 2*gt13L*gtu31*SQR(Gt313) +
+ gt33L*gtu22*SQR(Gt312) + 2*gt13L*gtu13*SQR(Gt313) +
gt33L*gtu33*SQR(Gt313);
CCTK_REAL Rt12 = khalf*(-(gtu11*PDstandardNth11gt12) -
- 2*gtu21*PDstandardNth12gt12 - 2*gtu31*PDstandardNth13gt12 +
+ 2*gtu12*PDstandardNth12gt12 - 2*gtu13*PDstandardNth13gt12 +
gt12L*PDstandardNth1Xt1 + gt22L*PDstandardNth1Xt2 +
gt23L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt12 -
- 2*gtu32*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
+ 2*gtu23*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
gt12L*PDstandardNth2Xt2 + gt13L*PDstandardNth2Xt3 -
gtu33*PDstandardNth33gt12 + (Gt111*gt12L + Gt211*gt22L +
gt23L*Gt311)*Xt1L + (Gt112*gt11L + gt12L*Gt212 + gt13L*Gt312)*Xt1L +
(Gt112*gt12L + Gt212*gt22L + gt23L*Gt312)*Xt2L + (gt11L*Gt122 +
gt12L*Gt222 + gt13L*Gt322)*Xt2L + (Gt113*gt12L + Gt213*gt22L +
gt23L*Gt313)*Xt3L + (gt11L*Gt123 + gt12L*Gt223 + gt13L*Gt323)*Xt3L +
- 2*gtu21*(Gt112*gt11L*Gt222 + Gt112*Gt211*gt22L + Gt211*Gt222*gt22L +
+ 2*gtu12*(Gt112*gt11L*Gt222 + Gt112*Gt211*gt22L + Gt211*Gt222*gt22L +
2*Gt122*gt13L*Gt311 + Gt112*gt23L*Gt311 + Gt222*gt23L*Gt311 +
gt13L*Gt222*Gt312 + Gt213*gt22L*Gt312 + Gt212*gt23L*Gt312 +
gt23L*Gt312*Gt313 + Gt113*gt11L*Gt322 + Gt211*gt23L*Gt322 +
@@ -475,14 +499,14 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt123*Gt212 + Gt133*Gt312) + 2*Gt112*gt13L*Gt313 + Gt212*gt23L*Gt313 +
Gt111*(Gt113*gt12L + Gt213*gt22L + gt23L*Gt313) + gt13L*Gt212*Gt323 +
Gt211*gt23L*Gt323 + gt23L*Gt311*Gt333 + gt13L*Gt312*Gt333 +
- Gt312*Gt313*gt33L)*gtu31 + (Gt123*gt12L*Gt212 + 2*Gt122*gt12L*Gt213 +
+ Gt312*Gt313*gt33L)*gtu13 + (Gt123*gt12L*Gt212 + 2*Gt122*gt12L*Gt213 +
Gt113*gt12L*Gt222 + gt12L*Gt222*Gt223 + Gt213*Gt222*gt22L +
Gt212*Gt223*gt22L + gt12L*Gt133*Gt312 + gt22L*Gt233*Gt312 +
2*Gt122*gt13L*Gt313 + Gt222*gt23L*Gt313 + Gt112*(Gt113*gt12L +
Gt213*gt22L + gt23L*Gt313) + Gt113*gt13L*Gt322 + gt12L*Gt233*Gt322 +
Gt213*gt23L*Gt322 + gt11L*(2*Gt113*Gt122 + Gt123*Gt222 + Gt133*Gt322) +
gt13L*Gt222*Gt323 + Gt212*gt23L*Gt323 + gt23L*Gt312*Gt333 +
- gt13L*Gt322*Gt333 + Gt313*Gt322*gt33L)*gtu32 +
+ gt13L*Gt322*Gt333 + Gt313*Gt322*gt33L)*gtu23 +
gtu11*(3*Gt112*gt12L*Gt211 + 2*Gt211*Gt212*gt22L + Gt113*gt12L*Gt311 +
2*Gt112*gt13L*Gt311 + Gt213*gt22L*Gt311 + Gt212*gt23L*Gt311 +
gt13L*Gt212*Gt312 + gt12L*Gt213*Gt312 + 2*Gt211*gt23L*Gt312 +
@@ -501,21 +525,21 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
2*Gt213*gt23L*Gt323 + Gt113*(2*gt11L*Gt123 + gt12L*Gt223 + Gt213*gt22L
+ gt23L*Gt313 + gt13L*Gt323) + gt23L*Gt313*Gt333 + gt13L*Gt323*Gt333 +
Gt313*Gt323*gt33L + gt12L*SQR(Gt113) + gt12L*(3*Gt123*Gt213 +
- Gt133*Gt313 + Gt233*Gt323 + SQR(Gt223))) + 2*gtu21*(Gt122*gt12L*Gt211 +
+ Gt133*Gt313 + Gt233*Gt323 + SQR(Gt223))) + 2*gtu12*(Gt122*gt12L*Gt211 +
3*Gt112*gt12L*Gt212 + gt12L*Gt212*Gt222 + Gt211*Gt222*gt22L +
Gt123*gt12L*Gt311 + Gt223*gt22L*Gt311 + 3*Gt112*gt13L*Gt312 +
gt12L*Gt223*Gt312 + 2*Gt212*gt23L*Gt312 + Gt111*(Gt112*gt12L +
Gt212*gt22L + gt23L*Gt312) + gt13L*Gt212*Gt322 + Gt211*gt23L*Gt322 +
gt23L*Gt311*Gt323 + gt13L*Gt312*Gt323 + gt11L*(Gt122*Gt212 +
Gt123*Gt312 + 2*SQR(Gt112)) + gt22L*SQR(Gt212) + gt33L*SQR(Gt312)) +
- 2*gtu31*(Gt112*gt11L*Gt223 + Gt113*Gt211*gt22L + Gt212*Gt213*gt22L +
+ 2*gtu13*(Gt112*gt11L*Gt223 + Gt113*Gt211*gt22L + Gt212*Gt213*gt22L +
Gt211*Gt223*gt22L + 2*Gt123*gt13L*Gt311 + Gt113*gt23L*Gt311 +
Gt223*gt23L*Gt311 + gt13L*Gt223*Gt312 + Gt213*gt23L*Gt312 +
Gt213*gt22L*Gt313 + Gt113*gt11L*Gt323 + Gt211*gt23L*Gt323 +
gt13L*Gt313*Gt323 + Gt111*(2*gt11L*Gt123 + Gt113*gt12L + gt12L*Gt223 +
gt13L*Gt323) + gt12L*(2*Gt123*Gt211 + Gt112*Gt213 + Gt212*Gt223 +
Gt113*Gt313 + Gt213*Gt323) + Gt311*Gt323*gt33L + gt23L*SQR(Gt313)) +
- 2*gtu32*(gt11L*Gt122*Gt223 + Gt113*Gt212*gt22L + Gt213*Gt222*gt22L +
+ 2*gtu23*(gt11L*Gt122*Gt223 + Gt113*Gt212*gt22L + Gt213*Gt222*gt22L +
Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312 + Gt113*gt23L*Gt312 +
Gt223*gt23L*Gt312 + Gt223*gt22L*Gt313 + gt13L*Gt223*Gt322 +
Gt213*gt23L*Gt322 + gt11L*Gt123*Gt323 + Gt212*gt23L*Gt323 +
@@ -524,10 +548,10 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt223*(Gt222 + Gt323)) + Gt312*Gt323*gt33L + gt13L*SQR(Gt323)));
CCTK_REAL Rt13 = khalf*(-(gtu11*PDstandardNth11gt13) -
- 2*gtu21*PDstandardNth12gt13 - 2*gtu31*PDstandardNth13gt13 +
+ 2*gtu12*PDstandardNth12gt13 - 2*gtu13*PDstandardNth13gt13 +
gt13L*PDstandardNth1Xt1 + gt23L*PDstandardNth1Xt2 +
gt33L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt13 -
- 2*gtu32*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
+ 2*gtu23*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
gt11L*PDstandardNth3Xt1 + gt12L*PDstandardNth3Xt2 +
gt13L*PDstandardNth3Xt3 + (Gt113*gt11L + gt12L*Gt213 +
gt13L*Gt313)*Xt1L + (Gt111*gt13L + Gt211*gt23L + Gt311*gt33L)*Xt1L +
@@ -541,22 +565,22 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt212*gt23L*Gt313 + gt11L*(2*Gt112*Gt113 + Gt122*Gt213 + Gt123*Gt313) +
gt13L*Gt213*Gt322 + gt13L*Gt313*Gt323 + Gt312*Gt313*gt33L +
Gt211*Gt322*gt33L + Gt311*Gt323*gt33L + Gt111*(Gt112*gt13L +
- Gt212*gt23L + Gt312*gt33L))*gtu21 + (Gt122*gt13L*Gt213 +
+ Gt212*gt23L + Gt312*gt33L))*gtu12 + (Gt122*gt13L*Gt213 +
gt11L*Gt122*Gt233 + Gt212*gt22L*Gt233 + Gt113*Gt212*gt23L +
Gt213*Gt222*gt23L + 2*Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 +
Gt123*gt13L*Gt313 + Gt223*gt23L*Gt313 + gt13L*Gt233*Gt322 +
gt11L*Gt123*Gt333 + Gt212*gt23L*Gt333 + gt13L*Gt323*Gt333 +
Gt112*(2*gt11L*Gt133 + Gt113*gt13L + gt12L*Gt233 + gt13L*Gt333) +
gt12L*(2*Gt133*Gt212 + Gt222*Gt233 + Gt223*Gt333) + Gt113*Gt312*gt33L +
- Gt213*Gt322*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu32 +
- gtu21*(2*Gt123*gt12L*Gt211 + Gt112*gt13L*Gt212 + gt12L*Gt212*Gt223 +
+ Gt213*Gt322*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu23 +
+ gtu12*(2*Gt123*gt12L*Gt211 + Gt112*gt13L*Gt212 + gt12L*Gt212*Gt223 +
Gt211*Gt223*gt22L + Gt112*Gt211*gt23L + 2*Gt123*gt13L*Gt311 +
Gt223*gt23L*Gt311 + Gt113*gt13L*Gt312 + gt13L*Gt223*Gt312 +
Gt213*gt23L*Gt312 + gt12L*Gt213*Gt323 + Gt211*gt23L*Gt323 +
gt13L*Gt313*Gt323 + gt11L*(2*Gt111*Gt123 + Gt112*Gt223 + Gt113*Gt323) +
Gt111*(Gt112*gt13L + gt12L*Gt223 + gt13L*Gt323) + Gt112*Gt311*gt33L +
Gt212*Gt312*gt33L + Gt312*Gt313*gt33L + Gt311*Gt323*gt33L +
- gt23L*SQR(Gt212))) + 2*gtu32*(Gt123*gt13L*Gt212 + 2*Gt123*gt12L*Gt213 +
+ gt23L*SQR(Gt212))) + 2*gtu23*(Gt123*gt13L*Gt212 + 2*Gt123*gt12L*Gt213 +
Gt113*gt12L*Gt223 + Gt213*Gt223*gt22L + Gt212*Gt223*gt23L +
Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 + 2*Gt123*gt13L*Gt313 +
Gt223*gt23L*Gt313 + Gt113*gt13L*Gt323 + gt13L*Gt223*Gt323 +
@@ -570,14 +594,14 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt211*gt23L*Gt313 + gt11L*(2*Gt111*Gt113 + Gt112*Gt213 + Gt113*Gt313) +
Gt211*Gt312*gt33L + 2*Gt311*Gt313*gt33L + Gt111*(gt12L*Gt213 +
Gt211*gt23L + gt13L*Gt313 + Gt311*gt33L) + gt13L*SQR(Gt111) +
- gt13L*SQR(Gt313)) + 2*gtu31*(Gt112*gt13L*Gt213 + Gt112*gt11L*Gt233 +
+ gt13L*SQR(Gt313)) + 2*gtu13*(Gt112*gt13L*Gt213 + Gt112*gt11L*Gt233 +
Gt211*gt22L*Gt233 + Gt113*Gt211*gt23L + Gt212*Gt213*gt23L +
2*Gt133*gt13L*Gt311 + Gt233*gt23L*Gt311 + gt13L*Gt233*Gt312 +
Gt113*gt13L*Gt313 + Gt213*gt23L*Gt313 + Gt113*gt11L*Gt333 +
Gt211*gt23L*Gt333 + gt13L*Gt313*Gt333 + Gt111*(2*gt11L*Gt133 +
Gt113*gt13L + gt12L*Gt233 + gt13L*Gt333) + gt12L*(2*Gt133*Gt211 +
Gt212*Gt233 + Gt213*Gt333) + Gt113*Gt311*gt33L + Gt213*Gt312*gt33L +
- Gt311*Gt333*gt33L + gt33L*SQR(Gt313)) + 2*gtu31*(Gt123*gt13L*Gt211 +
+ Gt311*Gt333*gt33L + gt33L*SQR(Gt313)) + 2*gtu13*(Gt123*gt13L*Gt211 +
3*Gt113*gt12L*Gt213 + gt12L*Gt213*Gt223 + Gt211*Gt223*gt23L +
Gt133*gt13L*Gt311 + Gt233*gt23L*Gt311 + 3*Gt113*gt13L*Gt313 +
gt12L*Gt233*Gt313 + 2*Gt213*gt23L*Gt313 + gt13L*Gt213*Gt323 +
@@ -598,58 +622,58 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt113*(2*gt11L*Gt133 + gt12L*Gt233 + Gt213*gt23L + gt13L*Gt333 +
Gt313*gt33L) + gt13L*SQR(Gt113) + gt13L*SQR(Gt333)));
- CCTK_REAL Rt22 = 4*(Gt122*gt12L*Gt212*gtu21 + Gt112*gt12L*Gt222*gtu21
- + Gt122*gt12L*Gt222*gtu22 + Gt123*gt12L*Gt212*gtu31 +
- Gt123*gt12L*Gt222*gtu32 + Gt123*gt12L*Gt223*gtu33) -
- gtu11*khalf*PDstandardNth11gt22 + gtu21*(6*Gt212*Gt222*gt22L +
+ CCTK_REAL Rt22 = 4*(Gt122*gt12L*Gt212*gtu12 + Gt112*gt12L*Gt222*gtu12
+ + Gt123*gt12L*Gt212*gtu13 + Gt122*gt12L*Gt222*gtu22 +
+ Gt123*gt12L*Gt222*gtu23 + Gt123*gt12L*Gt223*gtu33) -
+ gtu11*khalf*PDstandardNth11gt22 + gtu12*(6*Gt212*Gt222*gt22L +
2*Gt122*gt23L*Gt311 + 2*Gt122*gt13L*Gt312 + 4*Gt222*gt23L*Gt312 +
2*Gt113*gt12L*Gt322 + 2*gt23L*Gt312*Gt323 + 2*Gt312*Gt322*gt33L -
- PDstandardNth12gt22) + gtu31*(6*Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312
+ PDstandardNth12gt22) + gtu13*(6*Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312
+ 2*Gt112*gt23L*Gt313 + 2*Gt113*gt12L*Gt323 + 2*gt23L*Gt312*Gt333 +
2*Gt312*Gt323*gt33L - PDstandardNth13gt22) -
- gtu22*khalf*PDstandardNth22gt22 + gtu32*(4*Gt122*gt12L*Gt223 +
+ gtu22*khalf*PDstandardNth22gt22 + gtu23*(4*Gt122*gt12L*Gt223 +
2*Gt123*Gt212*gt22L + 2*gt12L*Gt133*Gt322 + 4*Gt223*gt23L*Gt322 +
2*Gt123*gt12L*Gt323 + 4*Gt222*gt23L*Gt323 + 2*gt23L*Gt322*Gt333 +
- 2*Gt322*Gt323*gt33L - PDstandardNth23gt22) + gt12L*(2*Gt111*Gt123*gtu31
- + 4*Gt112*Gt223*gtu31 + 2*Gt113*Gt122*gtu32 + 2*Gt113*Gt123*gtu33 +
- PDstandardNth2Xt1) + gt22L*(2*Gt122*Gt213*gtu32 + 6*Gt222*Gt223*gtu32 +
- 2*Gt123*Gt213*gtu33 + PDstandardNth2Xt2) + gt23L*(4*Gt212*Gt322*gtu21 +
- 2*Gt313*Gt322*gtu21 + 4*Gt222*Gt322*gtu22 + 2*Gt123*Gt311*gtu31 +
- 4*Gt212*Gt323*gtu31 + 2*Gt313*Gt323*gtu31 + 2*Gt122*Gt313*gtu32 +
- 2*Gt123*Gt313*gtu33 + 4*Gt223*Gt323*gtu33 + 2*Gt323*Gt333*gtu33 +
- PDstandardNth2Xt3) - gtu33*khalf*PDstandardNth33gt22 + Gt212*gt22L*Xt1L
- + Gt112*(2*Gt111*gt12L*gtu11 + 4*gt12L*Gt212*gtu11 +
- 2*gt11L*Gt122*gtu21 + 2*Gt122*gt12L*gtu22 + 2*gt11L*Gt123*gtu31 +
- 2*Gt123*gt12L*gtu32 + gt12L*Xt1L) + Gt312*(2*Gt213*gt22L*gtu11 +
- 4*Gt212*gt23L*gtu11 + 2*gt23L*Gt313*gtu11 + 2*Gt123*gt12L*gtu21 +
- 2*Gt122*gt23L*gtu22 + 2*gt12L*Gt133*gtu31 + 2*gt22L*Gt233*gtu31 +
- 4*Gt223*gt23L*gtu31 + 2*Gt123*gt23L*gtu32 + gt23L*Xt1L) +
- Gt122*gt12L*Xt2L + Gt222*gt22L*Xt2L + gt23L*Gt322*Xt2L +
- Gt123*gt12L*Xt3L + Gt223*gt22L*Xt3L + gt23L*Gt323*Xt3L +
- gt11L*gtu11*SQR(Gt112) + 2*(Gt112*Gt211*gt22L*gtu11 +
- Gt112*gt23L*Gt311*gtu11 + Gt113*gt12L*Gt312*gtu11 +
- Gt112*gt13L*Gt312*gtu11 + Gt111*Gt122*gt12L*gtu21 +
- Gt122*Gt211*gt22L*gtu21 + Gt112*Gt212*gt22L*gtu21 +
- Gt223*gt22L*Gt312*gtu21 + Gt112*gt23L*Gt312*gtu21 +
- Gt112*gt13L*Gt322*gtu21 + Gt213*gt22L*Gt322*gtu21 +
- Gt122*Gt212*gt22L*gtu22 + Gt123*gt12L*Gt322*gtu22 +
+ 2*Gt322*Gt323*gt33L - PDstandardNth23gt22) + gt12L*(2*Gt111*Gt123*gtu13
+ + 4*Gt112*Gt223*gtu13 + 2*Gt123*Gt322*gtu22 + 2*Gt113*Gt122*gtu23 +
+ 2*Gt113*Gt123*gtu33 + PDstandardNth2Xt1) + gt22L*(2*Gt122*Gt213*gtu23 +
+ 6*Gt222*Gt223*gtu23 + 2*Gt123*Gt213*gtu33 + PDstandardNth2Xt2) +
+ gt23L*(4*Gt212*Gt322*gtu12 + 2*Gt313*Gt322*gtu12 + 2*Gt123*Gt311*gtu13
+ + 4*Gt212*Gt323*gtu13 + 2*Gt313*Gt323*gtu13 + 4*Gt222*Gt322*gtu22 +
+ 2*Gt122*Gt313*gtu23 + 2*Gt123*Gt313*gtu33 + 4*Gt223*Gt323*gtu33 +
+ 2*Gt323*Gt333*gtu33 + PDstandardNth2Xt3) -
+ gtu33*khalf*PDstandardNth33gt22 + Gt212*gt22L*Xt1L +
+ Gt112*(2*Gt111*gt12L*gtu11 + 4*gt12L*Gt212*gtu11 + 2*gt11L*Gt122*gtu12
+ + 2*gt11L*Gt123*gtu13 + 2*Gt122*gt12L*gtu22 + 2*Gt123*gt12L*gtu23 +
+ gt12L*Xt1L) + Gt312*(2*Gt213*gt22L*gtu11 + 4*Gt212*gt23L*gtu11 +
+ 2*gt23L*Gt313*gtu11 + 2*Gt123*gt12L*gtu12 + 2*gt12L*Gt133*gtu13 +
+ 2*gt22L*Gt233*gtu13 + 4*Gt223*gt23L*gtu13 + 2*Gt122*gt23L*gtu22 +
+ 2*Gt123*gt23L*gtu23 + gt23L*Xt1L) + Gt122*gt12L*Xt2L + Gt222*gt22L*Xt2L
+ + gt23L*Gt322*Xt2L + Gt123*gt12L*Xt3L + Gt223*gt22L*Xt3L +
+ gt23L*Gt323*Xt3L + gt11L*gtu11*SQR(Gt112) + 2*(Gt112*Gt211*gt22L*gtu11
+ + Gt112*gt23L*Gt311*gtu11 + Gt113*gt12L*Gt312*gtu11 +
+ Gt112*gt13L*Gt312*gtu11 + Gt111*Gt122*gt12L*gtu12 +
+ Gt122*Gt211*gt22L*gtu12 + Gt112*Gt212*gt22L*gtu12 +
+ Gt223*gt22L*Gt312*gtu12 + Gt112*gt23L*Gt312*gtu12 +
+ Gt112*gt13L*Gt322*gtu12 + Gt213*gt22L*Gt322*gtu12 +
+ Gt112*Gt113*gt12L*gtu13 + Gt123*Gt211*gt22L*gtu13 +
+ Gt112*Gt213*gt22L*gtu13 + Gt112*gt13L*Gt323*gtu13 +
+ Gt213*gt22L*Gt323*gtu13 + Gt122*Gt212*gt22L*gtu22 +
Gt122*gt13L*Gt322*gtu22 + Gt223*gt22L*Gt322*gtu22 +
- gt23L*Gt322*Gt323*gtu22 + Gt112*Gt113*gt12L*gtu31 +
- Gt123*Gt211*gt22L*gtu31 + Gt112*Gt213*gt22L*gtu31 +
- Gt112*gt13L*Gt323*gtu31 + Gt213*gt22L*Gt323*gtu31 +
- gt11L*Gt122*Gt123*gtu32 + Gt123*gt13L*Gt322*gtu32 +
- gt22L*Gt233*Gt322*gtu32 + Gt122*gt13L*Gt323*gtu32 +
- Gt223*gt22L*Gt323*gtu32 + gt12L*Gt133*Gt323*gtu33 +
- Gt123*gt13L*Gt323*gtu33 + gt22L*Gt233*Gt323*gtu33 +
- gt12L*gtu21*SQR(Gt112)) + gt11L*gtu22*SQR(Gt122) +
- gt11L*gtu33*SQR(Gt123) + 3*gt22L*gtu11*SQR(Gt212) +
- 3*gt22L*gtu22*SQR(Gt222) + 3*gt22L*gtu33*SQR(Gt223) +
- gt33L*gtu11*SQR(Gt312) + gt33L*gtu22*SQR(Gt322) +
- 2*gt23L*gtu32*SQR(Gt323) + gt33L*gtu33*SQR(Gt323);
+ gt23L*Gt322*Gt323*gtu22 + gt11L*Gt122*Gt123*gtu23 +
+ Gt123*gt13L*Gt322*gtu23 + gt22L*Gt233*Gt322*gtu23 +
+ Gt122*gt13L*Gt323*gtu23 + Gt223*gt22L*Gt323*gtu23 +
+ gt12L*Gt133*Gt323*gtu33 + Gt123*gt13L*Gt323*gtu33 +
+ gt22L*Gt233*Gt323*gtu33 + gt12L*gtu12*SQR(Gt112)) +
+ gt11L*gtu22*SQR(Gt122) + gt11L*gtu33*SQR(Gt123) +
+ 3*gt22L*gtu11*SQR(Gt212) + 3*gt22L*gtu22*SQR(Gt222) +
+ 3*gt22L*gtu33*SQR(Gt223) + gt33L*gtu11*SQR(Gt312) +
+ gt33L*gtu22*SQR(Gt322) + 2*gt23L*gtu23*SQR(Gt323) +
+ gt33L*gtu33*SQR(Gt323);
CCTK_REAL Rt23 = khalf*(-(gtu11*PDstandardNth11gt23) -
- 2*gtu21*PDstandardNth12gt23 - 2*gtu31*PDstandardNth13gt23 -
- gtu22*PDstandardNth22gt23 - 2*gtu32*PDstandardNth23gt23 +
+ 2*gtu12*PDstandardNth12gt23 - 2*gtu13*PDstandardNth13gt23 -
+ gtu22*PDstandardNth22gt23 - 2*gtu23*PDstandardNth23gt23 +
gt13L*PDstandardNth2Xt1 + gt23L*PDstandardNth2Xt2 +
gt33L*PDstandardNth2Xt3 - gtu33*PDstandardNth33gt23 +
gt12L*PDstandardNth3Xt1 + gt22L*PDstandardNth3Xt2 +
@@ -665,7 +689,7 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
2*Gt223*gt23L*Gt312 + Gt113*gt13L*Gt322 + Gt213*gt23L*Gt322 +
Gt113*gt12L*Gt323 + Gt112*gt13L*Gt323 + Gt213*gt22L*Gt323 +
Gt212*gt23L*Gt323 + gt23L*Gt313*Gt323 + Gt122*Gt311*gt33L +
- Gt222*Gt312*gt33L + Gt313*Gt322*gt33L + Gt312*Gt323*gt33L)*gtu21 +
+ Gt222*Gt312*gt33L + Gt313*Gt322*gt33L + Gt312*Gt323*gt33L)*gtu12 +
(Gt112*gt11L*Gt133 + Gt111*gt12L*Gt133 + Gt111*Gt123*gt13L +
gt12L*Gt133*Gt212 + Gt112*gt13L*Gt223 + Gt133*Gt211*gt22L +
2*Gt112*gt12L*Gt233 + 2*Gt212*gt22L*Gt233 + Gt123*Gt211*gt23L +
@@ -673,8 +697,8 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
2*Gt233*gt23L*Gt312 + Gt113*gt13L*Gt323 + Gt213*gt23L*Gt323 +
Gt113*gt12L*Gt333 + Gt112*gt13L*Gt333 + Gt213*gt22L*Gt333 +
Gt212*gt23L*Gt333 + gt23L*Gt313*Gt333 + Gt123*Gt311*gt33L +
- Gt223*Gt312*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu31 +
- gtu21*(Gt113*gt11L*Gt122 + Gt122*gt13L*Gt212 + 2*Gt122*gt12L*Gt213 +
+ Gt223*Gt312*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu13 +
+ gtu12*(Gt113*gt11L*Gt122 + Gt122*gt13L*Gt212 + 2*Gt122*gt12L*Gt213 +
Gt113*gt12L*Gt222 + Gt113*Gt212*gt22L + 2*Gt213*Gt222*gt22L +
Gt212*Gt222*gt23L + Gt123*gt13L*Gt312 + Gt113*gt23L*Gt312 +
Gt223*gt23L*Gt312 + Gt123*gt12L*Gt313 + Gt122*gt13L*Gt313 +
@@ -682,7 +706,7 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
2*Gt213*gt23L*Gt322 + gt23L*Gt313*Gt323 + Gt212*Gt322*gt33L +
Gt313*Gt322*gt33L + Gt312*Gt323*gt33L + Gt112*(Gt113*gt12L +
Gt212*gt23L + Gt312*gt33L) + gt13L*SQR(Gt112))) +
- 2*gtu31*(2*Gt213*Gt223*gt22L + Gt112*Gt213*gt23L + Gt212*Gt223*gt23L +
+ 2*gtu13*(2*Gt213*Gt223*gt22L + Gt112*Gt213*gt23L + Gt212*Gt223*gt23L +
Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 + gt12L*Gt133*Gt313 +
gt22L*Gt233*Gt313 + Gt223*gt23L*Gt313 + Gt123*(2*gt12L*Gt213 +
gt13L*(Gt212 + Gt313)) + 2*Gt213*gt23L*Gt323 + Gt113*(gt11L*Gt123 +
@@ -703,7 +727,7 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt123*gt12L*Gt323 + Gt122*gt13L*Gt323 + Gt223*gt22L*Gt323 +
Gt222*gt23L*Gt323 + Gt122*Gt312*gt33L + Gt222*Gt322*gt33L +
2*Gt322*Gt323*gt33L + gt23L*SQR(Gt222) + gt23L*SQR(Gt323)) +
- 2*gtu32*(gt11L*Gt122*Gt133 + Gt112*gt12L*Gt133 + Gt112*Gt123*gt13L +
+ 2*gtu23*(gt11L*Gt122*Gt133 + Gt112*gt12L*Gt133 + Gt112*Gt123*gt13L +
gt12L*Gt133*Gt222 + Gt122*gt13L*Gt223 + Gt133*Gt212*gt22L +
2*Gt122*gt12L*Gt233 + 2*Gt222*gt22L*Gt233 + Gt123*Gt212*gt23L +
Gt222*Gt223*gt23L + Gt133*gt23L*Gt312 + Gt133*gt13L*Gt322 +
@@ -711,7 +735,7 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt123*gt12L*Gt333 + Gt122*gt13L*Gt333 + Gt223*gt22L*Gt333 +
Gt222*gt23L*Gt333 + gt23L*Gt323*Gt333 + Gt123*Gt312*gt33L +
Gt223*Gt322*gt33L + Gt322*Gt333*gt33L + gt33L*SQR(Gt323)) +
- 2*gtu32*(Gt113*Gt123*gt12L + Gt113*Gt122*gt13L + Gt123*gt13L*Gt222 +
+ 2*gtu23*(Gt113*Gt123*gt12L + Gt113*Gt122*gt13L + Gt123*gt13L*Gt222 +
3*Gt123*gt12L*Gt223 + Gt123*Gt213*gt22L + Gt122*Gt213*gt23L +
Gt222*Gt223*gt23L + Gt123*gt23L*Gt313 + Gt133*gt13L*Gt322 +
Gt233*gt23L*Gt322 + gt12L*Gt133*Gt323 + 2*Gt123*gt13L*Gt323 +
@@ -726,57 +750,56 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt223*gt23L*Gt333 + Gt123*Gt313*gt33L + Gt223*Gt323*gt33L +
2*Gt323*Gt333*gt33L + gt23L*SQR(Gt223) + gt23L*SQR(Gt333)));
- CCTK_REAL Rt33 = 4*(Gt123*gt13L*Gt323*gtu22 + Gt223*gt23L*Gt323*gtu22
- + Gt133*gt13L*Gt313*gtu31 + Gt233*gt23L*Gt313*gtu31 +
- Gt113*gt13L*Gt333*gtu31 + Gt133*gt13L*Gt323*gtu32 +
- Gt233*gt23L*Gt323*gtu32 + Gt123*gt13L*Gt333*gtu32 +
- Gt133*gt13L*Gt333*gtu33) + gtu21*(2*Gt212*Gt223*gt23L +
+ CCTK_REAL Rt33 = 4*(Gt133*gt13L*Gt313*gtu13 + Gt233*gt23L*Gt313*gtu13
+ + Gt113*gt13L*Gt333*gtu13 + Gt213*gt23L*Gt333*gtu13 +
+ Gt123*gt13L*Gt323*gtu22 + Gt133*gt13L*Gt323*gtu23 +
+ Gt123*gt13L*Gt333*gtu23 + Gt223*gt23L*Gt333*gtu23 +
+ Gt133*gt13L*Gt333*gtu33) + gtu12*(2*Gt212*Gt223*gt23L +
4*Gt123*gt13L*Gt313 + 4*Gt223*gt23L*Gt313 + 4*Gt113*gt13L*Gt323 +
- 4*Gt213*gt23L*Gt323 + 2*Gt123*Gt311*gt33L - PDstandardNth12gt33) +
- gtu31*(4*Gt213*gt23L*Gt333 + 2*Gt233*Gt312*gt33L + 6*Gt313*Gt333*gt33L
- - PDstandardNth13gt33) - gtu22*khalf*PDstandardNth22gt33 +
- gtu32*(4*Gt223*gt23L*Gt333 + 2*Gt123*Gt313*gt33L + 6*Gt323*Gt333*gt33L
- - PDstandardNth23gt33) - gtu33*khalf*PDstandardNth33gt33 +
+ 4*Gt213*gt23L*Gt323 + 2*Gt123*Gt311*gt33L - PDstandardNth12gt33) -
+ gtu13*PDstandardNth13gt33 - gtu22*khalf*PDstandardNth22gt33 -
+ gtu23*PDstandardNth23gt33 - gtu33*khalf*PDstandardNth33gt33 +
gt13L*PDstandardNth3Xt1 + gt23L*PDstandardNth3Xt2 +
- gt33L*(2*Gt213*Gt322*gtu21 + 6*Gt313*Gt323*gtu21 + 2*Gt123*Gt312*gtu22
- + 2*Gt133*Gt311*gtu31 + 2*Gt133*Gt312*gtu32 + 2*Gt133*Gt313*gtu33 +
- PDstandardNth3Xt3) + Gt113*gt13L*Xt1L + Gt213*gt23L*Xt1L +
- Gt313*gt33L*Xt1L + Gt123*gt13L*Xt2L + Gt223*gt23L*Xt2L +
- Gt323*gt33L*Xt2L + Gt133*gt13L*Xt3L + Gt333*gt33L*Xt3L +
- Gt233*(4*gt23L*Gt333*gtu33 + 2*Gt323*gt33L*gtu33 + gt23L*Xt3L) +
- gtu11*(2*Gt212*Gt213*gt23L + 4*Gt113*gt13L*Gt313 + 4*Gt213*gt23L*Gt313
- + 2*Gt113*Gt311*gt33L + 2*Gt213*Gt312*gt33L - khalf*PDstandardNth11gt33
- + gt11L*SQR(Gt113)) + 2*(Gt111*Gt113*gt13L*gtu11 +
- Gt113*gt12L*Gt213*gtu11 + Gt112*gt13L*Gt213*gtu11 +
- Gt113*Gt211*gt23L*gtu11 + Gt113*gt11L*Gt123*gtu21 +
- Gt112*Gt113*gt13L*gtu21 + Gt111*Gt123*gt13L*gtu21 +
- Gt123*gt12L*Gt213*gtu21 + Gt122*gt13L*Gt213*gtu21 +
- Gt113*gt12L*Gt223*gtu21 + Gt112*gt13L*Gt223*gtu21 +
- Gt213*Gt223*gt22L*gtu21 + Gt123*Gt211*gt23L*gtu21 +
- Gt113*Gt212*gt23L*gtu21 + Gt213*Gt222*gt23L*gtu21 +
- Gt113*Gt312*gt33L*gtu21 + Gt223*Gt312*gt33L*gtu21 +
+ gt33L*(2*Gt213*Gt322*gtu12 + 6*Gt313*Gt323*gtu12 + 2*Gt133*Gt311*gtu13
+ + 2*Gt213*Gt323*gtu13 + 6*Gt313*Gt333*gtu13 + 2*Gt123*Gt312*gtu22 +
+ 2*Gt133*Gt312*gtu23 + 2*Gt133*Gt313*gtu33 + PDstandardNth3Xt3) +
+ Gt113*gt13L*Xt1L + Gt213*gt23L*Xt1L + Gt313*gt33L*Xt1L +
+ Gt123*gt13L*Xt2L + Gt223*(4*gt23L*Gt323*gtu22 + 2*Gt322*gt33L*gtu22 +
+ 2*gt12L*Gt133*gtu23 + 2*Gt233*gt23L*gtu33 + gt23L*Xt2L) +
+ Gt323*(2*Gt223*gt33L*gtu23 + 6*Gt333*gt33L*gtu23 + 2*Gt233*gt33L*gtu33
+ + gt33L*Xt2L) + Gt133*gt13L*Xt3L + Gt333*gt33L*Xt3L +
+ Gt233*(2*Gt222*gt23L*gtu23 + 4*gt23L*Gt323*gtu23 + 2*gt12L*Gt133*gtu33
+ + 4*gt23L*Gt333*gtu33 + gt23L*Xt3L) + gtu11*(2*Gt212*Gt213*gt23L +
+ 4*Gt113*gt13L*Gt313 + 4*Gt213*gt23L*Gt313 + 2*Gt113*Gt311*gt33L +
+ 2*Gt213*Gt312*gt33L - khalf*PDstandardNth11gt33 + gt11L*SQR(Gt113)) +
+ 2*(Gt111*Gt113*gt13L*gtu11 + Gt113*gt12L*Gt213*gtu11 +
+ Gt112*gt13L*Gt213*gtu11 + Gt113*Gt211*gt23L*gtu11 +
+ Gt113*gt11L*Gt123*gtu12 + Gt112*Gt113*gt13L*gtu12 +
+ Gt111*Gt123*gt13L*gtu12 + Gt123*gt12L*Gt213*gtu12 +
+ Gt122*gt13L*Gt213*gtu12 + Gt113*gt12L*Gt223*gtu12 +
+ Gt112*gt13L*Gt223*gtu12 + Gt213*Gt223*gt22L*gtu12 +
+ Gt123*Gt211*gt23L*gtu12 + Gt113*Gt212*gt23L*gtu12 +
+ Gt213*Gt222*gt23L*gtu12 + Gt113*Gt312*gt33L*gtu12 +
+ Gt223*Gt312*gt33L*gtu12 + Gt113*gt11L*Gt133*gtu13 +
+ Gt111*Gt133*gt13L*gtu13 + gt12L*Gt133*Gt213*gtu13 +
+ Gt123*gt13L*Gt213*gtu13 + Gt113*gt12L*Gt233*gtu13 +
+ Gt112*gt13L*Gt233*gtu13 + Gt213*gt22L*Gt233*gtu13 +
+ Gt133*Gt211*gt23L*gtu13 + Gt113*Gt213*gt23L*gtu13 +
+ Gt213*Gt223*gt23L*gtu13 + Gt212*Gt233*gt23L*gtu13 +
+ Gt233*Gt312*gt33L*gtu13 + Gt113*Gt313*gt33L*gtu13 +
Gt112*Gt123*gt13L*gtu22 + Gt123*gt12L*Gt223*gtu22 +
Gt122*gt13L*Gt223*gtu22 + Gt123*Gt212*gt23L*gtu22 +
- Gt222*Gt223*gt23L*gtu22 + Gt223*Gt322*gt33L*gtu22 +
- Gt113*gt11L*Gt133*gtu31 + Gt111*Gt133*gt13L*gtu31 +
- gt12L*Gt133*Gt213*gtu31 + Gt123*gt13L*Gt213*gtu31 +
- Gt113*gt12L*Gt233*gtu31 + Gt112*gt13L*Gt233*gtu31 +
- Gt213*gt22L*Gt233*gtu31 + Gt133*Gt211*gt23L*gtu31 +
- Gt113*Gt213*gt23L*gtu31 + Gt213*Gt223*gt23L*gtu31 +
- Gt212*Gt233*gt23L*gtu31 + Gt113*Gt313*gt33L*gtu31 +
- Gt213*Gt323*gt33L*gtu31 + gt11L*Gt123*Gt133*gtu32 +
- Gt113*Gt123*gt13L*gtu32 + Gt112*Gt133*gt13L*gtu32 +
- gt12L*Gt133*Gt223*gtu32 + Gt123*gt13L*Gt223*gtu32 +
- Gt123*gt12L*Gt233*gtu32 + Gt122*gt13L*Gt233*gtu32 +
- Gt223*gt22L*Gt233*gtu32 + Gt133*Gt212*gt23L*gtu32 +
- Gt123*Gt213*gt23L*gtu32 + Gt222*Gt233*gt23L*gtu32 +
- Gt233*Gt322*gt33L*gtu32 + Gt223*Gt323*gt33L*gtu32 +
- Gt113*Gt133*gt13L*gtu33 + gt12L*Gt133*Gt233*gtu33 +
- Gt123*gt13L*Gt233*gtu33 + Gt133*Gt213*gt23L*gtu33 +
- Gt223*Gt233*gt23L*gtu33 + gt13L*gtu31*SQR(Gt113)) +
+ Gt222*Gt223*gt23L*gtu22 + gt11L*Gt123*Gt133*gtu23 +
+ Gt113*Gt123*gt13L*gtu23 + Gt112*Gt133*gt13L*gtu23 +
+ Gt123*gt13L*Gt223*gtu23 + Gt123*gt12L*Gt233*gtu23 +
+ Gt122*gt13L*Gt233*gtu23 + Gt223*gt22L*Gt233*gtu23 +
+ Gt133*Gt212*gt23L*gtu23 + Gt123*Gt213*gt23L*gtu23 +
+ Gt123*Gt313*gt33L*gtu23 + Gt233*Gt322*gt33L*gtu23 +
+ Gt113*Gt133*gt13L*gtu33 + Gt123*gt13L*Gt233*gtu33 +
+ Gt133*Gt213*gt23L*gtu33 + gt13L*gtu13*SQR(Gt113)) +
gt11L*gtu22*SQR(Gt123) + gt11L*gtu33*SQR(Gt133) +
gt22L*gtu11*SQR(Gt213) + gt22L*gtu22*SQR(Gt223) +
- 2*gt23L*gtu32*SQR(Gt223) + gt22L*gtu33*SQR(Gt233) +
+ 2*gt23L*gtu23*SQR(Gt223) + gt22L*gtu33*SQR(Gt233) +
3*gt33L*gtu11*SQR(Gt313) + 3*gt33L*gtu22*SQR(Gt323) +
3*gt33L*gtu33*SQR(Gt333);
@@ -815,38 +838,38 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
Gt333*PDstandardNth3phi)) + fac2*SQR(PDstandardNth3phi);
CCTK_REAL Rphi11 = -2*(cdphi211 + 2*(-1 + gt11L*gtu11)*SQR(cdphi1) +
- gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu21 + cdphi3*gtu31) +
- cdphi2*cdphi3*gtu32) + cdphi233*gtu33 + gtu22*(cdphi222 +
- 2*SQR(cdphi2)) + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu12 + cdphi3*gtu13) +
+ cdphi2*cdphi3*gtu23) + cdphi233*gtu33 + gtu22*(cdphi222 +
+ 2*SQR(cdphi2)) + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu21)
- + 4*cdphi3*gt12L*gtu31) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu32
- + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu12)
+ + 4*cdphi3*gt12L*gtu13) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu23
+ + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2)) + gtu33*(cdphi233
+ 2*SQR(cdphi3))));
- CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu21 +
- cdphi3*(-2 + 4*gt13L*gtu31)) + gt13L*(cdphi211*gtu11 +
- 4*cdphi2*cdphi3*gtu32 + 2*(cdphi212*gtu21 + cdphi213*gtu31 +
- cdphi223*gtu32 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu12 +
+ cdphi3*(-2 + 4*gt13L*gtu13)) + gt13L*(cdphi211*gtu11 +
+ 4*cdphi2*cdphi3*gtu23 + 2*(cdphi212*gtu12 + cdphi213*gtu13 +
+ cdphi223*gtu23 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ gtu33*(cdphi233 + 2*SQR(cdphi3))));
CCTK_REAL Rphi22 = -2*(cdphi222 + 2*(-1 + gt22L*gtu22)*SQR(cdphi2) +
- gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu31 + cdphi2*(cdphi1*gtu21 +
- cdphi3*gtu32)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu13 + cdphi2*(cdphi1*gtu12 +
+ cdphi3*gtu23)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
+ 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu21 +
- cdphi3*(-2 + 4*gt23L*gtu32)) + gt23L*(cdphi222*gtu22 +
- 4*cdphi1*cdphi3*gtu31 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
- gtu22*SQR(cdphi2)) + gtu33*(cdphi233 + 2*SQR(cdphi3))));
+ CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu12 +
+ cdphi3*(-2 + 4*gt23L*gtu23)) + gt23L*(4*cdphi1*cdphi3*gtu13 +
+ cdphi222*gtu22 + gtu11*(cdphi211 + 2*SQR(cdphi1)) + 2*(cdphi212*gtu12 +
+ cdphi213*gtu13 + cdphi223*gtu23 + gtu22*SQR(cdphi2)) + gtu33*(cdphi233
+ + 2*SQR(cdphi3))));
CCTK_REAL Rphi33 = -2*(cdphi233 + gt33L*((4*cdphi1*cdphi2 +
- 2*cdphi212)*gtu21 + 4*cdphi3*(cdphi1*gtu31 + cdphi2*gtu32) +
- 2*(cdphi213*gtu31 + cdphi223*gtu32) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*cdphi212)*gtu12 + 4*cdphi3*(cdphi1*gtu13 + cdphi2*gtu23) +
+ 2*(cdphi213*gtu13 + cdphi223*gtu23) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))) + 2*(-1 +
gt33L*gtu33)*SQR(cdphi3));
@@ -856,13 +879,13 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -878,26 +901,26 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL R33 = Rphi33 + Rt33;
- CCTK_REAL trR = gu11*R11 + gu22*R22 + 2*(gu21*R12 + gu31*R13 +
- gu32*R23) + gu33*R33;
+ CCTK_REAL trR = gu11*R11 + gu22*R22 + 2*(gu12*R12 + gu13*R13 +
+ gu23*R23) + gu33*R33;
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
CCTK_REAL rho = pow(alphaL,-2)*(eTttL - 2*(beta2L*eTtyL +
beta3L*eTtzL) + 2*(beta1L*(-eTtxL + beta2L*eTxyL + beta3L*eTxzL) +
@@ -919,73 +942,73 @@ void ML_BSSN_constraints_Body(cGH const * restrict const cctkGH, int const dir,
0.6666666666666666666666666666666666666667*SQR(trKL);
CCTK_REAL M1L = -2.*((At12L*Gt211 + At13L*Gt311)*gtu11 +
- At11L*Gt123*gtu32) + At12L*((6.*cdphi1 - 1.*Gt111)*gtu21 -
- 3.*Gt213*gtu31 + 6.*(cdphi2*gtu22 + cdphi3*gtu32) - 1.*Gt233*gtu33) -
- 1.*((At22L*Gt212 + At12L*(Gt112 + Gt222) + At23L*Gt312 +
- At13L*Gt322)*gtu22 + At13L*(Gt111*gtu31 + Gt112*gtu32 + Gt113*gtu33)) +
- At11L*((6.*cdphi1 - 2.*Gt111)*gtu11 + 6.*(cdphi2*gtu21 + cdphi3*gtu31)
- - 1.*(Gt122*gtu22 + Gt133*gtu33)) + gtu11*PDstandardNth1At11 -
+ At11L*Gt123*gtu23) + At12L*((6.*cdphi1 - 1.*Gt111)*gtu12 -
+ 3.*Gt213*gtu13 + 6.*(cdphi2*gtu22 + cdphi3*gtu23) - 1.*Gt233*gtu33) -
+ 1.*((At22L*Gt212 + At12L*(Gt112 + Gt222) + At23L*Gt312)*gtu22 +
+ (At13L*Gt112 + At12L*Gt113 + At23L*Gt212)*gtu23 + (At13L*Gt113 +
+ At23L*Gt213 + At33L*Gt313)*gtu33) + At11L*((6.*cdphi1 - 2.*Gt111)*gtu11
+ + 6.*(cdphi2*gtu12 + cdphi3*gtu13) - 1.*(Gt122*gtu22 + Gt133*gtu33)) +
+ At13L*((6.*cdphi1 - 1.*Gt111)*gtu13 + 6.*(cdphi2*gtu23 + cdphi3*gtu33)
+ - 1.*(Gt322*gtu22 + Gt333*gtu33)) + gtu11*PDstandardNth1At11 -
0.6666666666666666666666666666666666666667*PDstandardNth1trK +
- gtu21*(-1.*(At22L*Gt211 + At23L*Gt311) - 3.*(At11L*Gt112 + At12L*Gt212
+ gtu12*(-1.*(At22L*Gt211 + At23L*Gt311) - 3.*(At11L*Gt112 + At12L*Gt212
+ At13L*Gt312) + PDstandardNth1At12 + PDstandardNth2At11) +
- gtu22*PDstandardNth2At12 + gtu31*(-3.*At11L*Gt113 - 1.*(At23L*Gt211 +
- At33L*Gt311) + At13L*(6.*cdphi1 - 3.*Gt313) + PDstandardNth1At13 +
- PDstandardNth3At11) + gtu32*(-2.*At12L*Gt223 - 1.*(At12L*Gt113 +
- At22L*Gt213 + At33L*Gt312 + At23L*(Gt212 + Gt313)) + At13L*(6.*cdphi2 -
- 2.*Gt323) + PDstandardNth2At13 + PDstandardNth3At12) +
- gtu33*(-1.*(At23L*Gt213 + At33L*Gt313) + At13L*(6.*cdphi3 - 1.*Gt333) +
- PDstandardNth3At13) - 25.13274122871834590770114706623602307358*S1;
-
- CCTK_REAL M2L = At12L*((6.*cdphi1 - 1.*Gt111)*gtu11 - 2.*Gt122*gtu22 +
- 6.*(cdphi2*gtu21 + cdphi3*gtu31) - 3.*Gt123*gtu32 - 1.*Gt133*gtu33) +
- At22L*((6.*cdphi2 - 2.*Gt222)*gtu22 - 2.*Gt213*gtu31 + 6.*cdphi3*gtu32
- - 1.*Gt233*gtu33) + At23L*(-2.*Gt322*gtu22 - 1.*Gt333*gtu33 +
- 6.*(cdphi1*gtu31 + cdphi2*gtu32 + cdphi3*gtu33)) - 1.*((At11L*Gt112 +
- At22L*Gt211 + At12L*Gt212 + At23L*Gt311 + At13L*Gt312)*gtu11 +
- Gt122*(At11L*gtu21 + At13L*gtu32) + (At23L*Gt223 + At33L*Gt323)*gtu33 +
- At13L*(Gt112*gtu31 + Gt123*gtu33)) + gtu11*PDstandardNth1At12 +
- gtu21*(At22L*(6.*cdphi1 - 3.*Gt212) + At12L*(-3.*Gt112 - 1.*Gt222) -
- 3.*At23L*Gt312 - 1.*At13L*Gt322 + PDstandardNth1At22 +
- PDstandardNth2At12) + gtu22*PDstandardNth2At22 -
+ gtu22*PDstandardNth2At12 + gtu13*(-1.*(At23L*Gt211 + At33L*Gt311) -
+ 3.*(At11L*Gt113 + At13L*Gt313) + PDstandardNth1At13 +
+ PDstandardNth3At11) + gtu23*(-1.*(At22L*Gt213 + At33L*Gt312 +
+ At23L*Gt313) - 2.*(At12L*Gt223 + At13L*Gt323) + PDstandardNth2At13 +
+ PDstandardNth3At12) + gtu33*PDstandardNth3At13 -
+ 25.13274122871834590770114706623602307358*S1;
+
+ CCTK_REAL M2L = At12L*((6.*cdphi1 - 1.*Gt111)*gtu11 + 6.*(cdphi2*gtu12
+ + cdphi3*gtu13) - 2.*Gt122*gtu22 - 3.*Gt123*gtu23 - 1.*Gt133*gtu33) +
+ At22L*((6.*cdphi2 - 2.*Gt222)*gtu22 + 6.*cdphi3*gtu23 - 1.*Gt233*gtu33)
+ + At23L*(-2.*Gt322*gtu22 - 1.*Gt333*gtu33 + 6.*(cdphi2*gtu23 +
+ cdphi3*gtu33)) - 1.*((At11L*Gt112 + At22L*Gt211 + At12L*Gt212 +
+ At23L*Gt311 + At13L*Gt312)*gtu11 + Gt122*(At11L*gtu12 + At13L*gtu23) +
+ (At23L*Gt223 + At33L*Gt323)*gtu33 + At13L*(Gt112*gtu13 + Gt123*gtu33))
+ + gtu11*PDstandardNth1At12 + gtu12*(At22L*(6.*cdphi1 - 3.*Gt212) +
+ At12L*(-3.*Gt112 - 1.*Gt222) - 3.*At23L*Gt312 - 1.*At13L*Gt322 +
+ PDstandardNth1At22 + PDstandardNth2At12) + gtu22*PDstandardNth2At22 -
0.6666666666666666666666666666666666666667*PDstandardNth2trK +
- gtu31*(At12L*(-2.*Gt113 - 1.*Gt223) - 2.*At23L*Gt313 - 1.*(At11L*Gt123
- + At23L*Gt212 + At33L*Gt312 + At13L*Gt323) + PDstandardNth1At23 +
- PDstandardNth3At12) + gtu32*(-1.*(At23L*Gt222 + At33L*Gt322) -
- 3.*(At22L*Gt223 + At23L*Gt323) + PDstandardNth2At23 +
+ gtu13*(-2.*(At12L*Gt113 + At22L*Gt213) + At23L*(6.*cdphi1 - 1.*Gt212 -
+ 2.*Gt313) - 1.*(At11L*Gt123 + At12L*Gt223 + At33L*Gt312 + At13L*Gt323)
+ + PDstandardNth1At23 + PDstandardNth3At12) + gtu23*(-1.*(At23L*Gt222 +
+ At33L*Gt322) - 3.*(At22L*Gt223 + At23L*Gt323) + PDstandardNth2At23 +
PDstandardNth3At22) + gtu33*PDstandardNth3At23 -
25.13274122871834590770114706623602307358*S2;
CCTK_REAL M3L = -1.*((At11L*Gt113 + At23L*Gt211 + At12L*Gt213 +
At33L*Gt311)*gtu11 + (At22L*Gt223 + At33L*Gt322 + At23L*Gt323)*gtu22 +
- At11L*Gt133*gtu31 + At12L*(Gt113*gtu21 + Gt123*gtu22 + Gt133*gtu32)) +
- At13L*((6.*cdphi1 - 1.*(Gt111 + Gt313))*gtu11 - 1.*Gt122*gtu22 +
- 6.*(cdphi2*gtu21 + cdphi3*gtu31) - 3.*Gt123*gtu32 - 2.*Gt133*gtu33) +
- At23L*((6.*cdphi2 - 1.*Gt222)*gtu22 - 3.*Gt213*gtu31 + 6.*cdphi3*gtu32
- - 2.*Gt233*gtu33) + gtu11*PDstandardNth1At13 + gtu21*(-2.*(At13L*Gt112
- + At33L*Gt312) + At23L*(6.*cdphi1 - 2.*Gt212 - 1.*Gt313) -
- 1.*(At11L*Gt123 + At22L*Gt213 + At12L*Gt223 + At13L*Gt323) +
- PDstandardNth1At23 + PDstandardNth2At13) + gtu22*PDstandardNth2At23 +
- gtu31*(-1.*At12L*Gt233 + At33L*(6.*cdphi1 - 3.*Gt313) +
- At13L*(-3.*Gt113 - 1.*Gt333) + PDstandardNth1At33 + PDstandardNth3At13)
- + gtu32*(-1.*At22L*Gt233 + At33L*(6.*cdphi2 - 3.*Gt323) +
- At23L*(-3.*Gt223 - 1.*Gt333) + PDstandardNth2At33 + PDstandardNth3At23)
- + gtu33*(At33L*(6.*cdphi3 - 2.*Gt333) + PDstandardNth3At33) -
+ At12L*(Gt113*gtu12 + Gt123*gtu22) + Gt133*(At11L*gtu13 + At12L*gtu23))
+ + At13L*((6.*cdphi1 - 1.*(Gt111 + Gt313))*gtu11 + 6.*(cdphi2*gtu12 +
+ cdphi3*gtu13) - 1.*Gt122*gtu22 - 3.*Gt123*gtu23 - 2.*Gt133*gtu33) +
+ At23L*((6.*cdphi2 - 1.*Gt222)*gtu22 + 6.*cdphi3*gtu23 - 2.*Gt233*gtu33)
+ + gtu11*PDstandardNth1At13 + gtu12*(-2.*(At13L*Gt112 + At33L*Gt312) +
+ At23L*(6.*cdphi1 - 2.*Gt212 - 1.*Gt313) - 1.*(At11L*Gt123 + At22L*Gt213
+ + At12L*Gt223 + At13L*Gt323) + PDstandardNth1At23 + PDstandardNth2At13)
+ + gtu22*PDstandardNth2At23 + gtu13*(-3.*(At13L*Gt113 + At23L*Gt213) +
+ At33L*(6.*cdphi1 - 3.*Gt313) - 1.*(At12L*Gt233 + At13L*Gt333) +
+ PDstandardNth1At33 + PDstandardNth3At13) + gtu23*(-1.*At22L*Gt233 +
+ At33L*(6.*cdphi2 - 3.*Gt323) + At23L*(-3.*Gt223 - 1.*Gt333) +
+ PDstandardNth2At33 + PDstandardNth3At23) + gtu33*(At33L*(6.*cdphi3 -
+ 2.*Gt333) + PDstandardNth3At33) -
0.6666666666666666666666666666666666666667*PDstandardNth3trK -
25.13274122871834590770114706623602307358*S3;
CCTK_REAL cSL = Log(detgt);
- CCTK_REAL cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33 - Xt1L;
+ CCTK_REAL cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33 - Xt1L;
- CCTK_REAL cXt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33 - Xt2L;
+ CCTK_REAL cXt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33 - Xt2L;
- CCTK_REAL cXt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33 - Xt3L;
+ CCTK_REAL cXt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33 - Xt3L;
- CCTK_REAL cAL = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu21 +
- At13L*gtu31 + At23L*gtu32) + At33L*gtu33;
+ CCTK_REAL cAL = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu12 +
+ At13L*gtu13 + At23L*gtu23) + At33L*gtu33;
/* Copy local copies back to grid functions */
diff --git a/ML_BSSN/src/ML_BSSN_constraints_boundary.c b/ML_BSSN/src/ML_BSSN_constraints_boundary.c
index 8fa0869..798a19c 100644
--- a/ML_BSSN/src/ML_BSSN_constraints_boundary.c
+++ b/ML_BSSN/src/ML_BSSN_constraints_boundary.c
@@ -20,6 +20,30 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_constraints_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_cons_detg","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_cons_detg.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_cons_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_cons_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_cons_traceA","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_cons_traceA.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_mom.");
+ return;
+}
+
void ML_BSSN_constraints_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN/src/ML_BSSN_convertFromADMBase.c b/ML_BSSN/src/ML_BSSN_convertFromADMBase.c
index 89ef563..b0f0b93 100644
--- a/ML_BSSN/src/ML_BSSN_convertFromADMBase.c
+++ b/ML_BSSN/src/ML_BSSN_convertFromADMBase.c
@@ -131,13 +131,13 @@ void ML_BSSN_convertFromADMBase_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL gu11 = INV(detg)*(g22*g33 - SQR(g23));
- CCTK_REAL gu21 = (g13*g23 - g12*g33)*INV(detg);
+ CCTK_REAL gu12 = (g13*g23 - g12*g33)*INV(detg);
- CCTK_REAL gu31 = (-(g13*g22) + g12*g23)*INV(detg);
+ CCTK_REAL gu13 = (-(g13*g22) + g12*g23)*INV(detg);
CCTK_REAL gu22 = INV(detg)*(g11*g33 - SQR(g13));
- CCTK_REAL gu32 = (g12*g13 - g11*g23)*INV(detg);
+ CCTK_REAL gu23 = (g12*g13 - g11*g23)*INV(detg);
CCTK_REAL gu33 = INV(detg)*(g11*g22 - SQR(g12));
@@ -158,7 +158,7 @@ void ML_BSSN_convertFromADMBase_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL gt33L = em4phi*g33;
- trKL = gu11*kxxL + gu22*kyyL + 2*(gu21*kxyL + gu31*kxzL + gu32*kyzL) +
+ trKL = gu11*kxxL + gu22*kyyL + 2*(gu12*kxyL + gu13*kxzL + gu23*kyzL) +
gu33*kzzL;
CCTK_REAL At11L = em4phi*(kxxL - g11*kthird*trKL);
diff --git a/ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.c b/ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.c
index 7b4b9bd..6d6832c 100644
--- a/ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.c
+++ b/ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.c
@@ -20,6 +20,24 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_convertFromADMBaseGamma_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_dtshift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN::ML_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN::ML_Gamma.");
+ return;
+}
+
void ML_BSSN_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -205,96 +223,96 @@ void ML_BSSN_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
CCTK_REAL Gt111 = khalf*(gtu11*PDstandardNth1gt11 +
- 2*(gtu21*PDstandardNth1gt12 + gtu31*PDstandardNth1gt13) -
- gtu21*PDstandardNth2gt11 - gtu31*PDstandardNth3gt11);
+ 2*(gtu12*PDstandardNth1gt12 + gtu13*PDstandardNth1gt13) -
+ gtu12*PDstandardNth2gt11 - gtu13*PDstandardNth3gt11);
- CCTK_REAL Gt211 = khalf*(gtu21*PDstandardNth1gt11 +
- 2*(gtu22*PDstandardNth1gt12 + gtu32*PDstandardNth1gt13) -
- gtu22*PDstandardNth2gt11 - gtu32*PDstandardNth3gt11);
+ CCTK_REAL Gt211 = khalf*(gtu12*PDstandardNth1gt11 +
+ 2*(gtu22*PDstandardNth1gt12 + gtu23*PDstandardNth1gt13) -
+ gtu22*PDstandardNth2gt11 - gtu23*PDstandardNth3gt11);
- CCTK_REAL Gt311 = khalf*(gtu31*PDstandardNth1gt11 +
- 2*(gtu32*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
- gtu32*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
+ CCTK_REAL Gt311 = khalf*(gtu13*PDstandardNth1gt11 +
+ 2*(gtu23*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
+ gtu23*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
- CCTK_REAL Gt112 = khalf*(gtu21*PDstandardNth1gt22 +
- gtu11*PDstandardNth2gt11 + gtu31*(PDstandardNth1gt23 +
+ CCTK_REAL Gt112 = khalf*(gtu12*PDstandardNth1gt22 +
+ gtu11*PDstandardNth2gt11 + gtu13*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
CCTK_REAL Gt212 = khalf*(gtu22*PDstandardNth1gt22 +
- gtu21*PDstandardNth2gt11 + gtu32*(PDstandardNth1gt23 +
+ gtu12*PDstandardNth2gt11 + gtu23*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt312 = khalf*(gtu32*PDstandardNth1gt22 +
- gtu31*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
+ CCTK_REAL Gt312 = khalf*(gtu23*PDstandardNth1gt22 +
+ gtu13*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt113 = khalf*(gtu31*PDstandardNth1gt33 +
- gtu11*PDstandardNth3gt11 + gtu21*(PDstandardNth1gt23 -
+ CCTK_REAL Gt113 = khalf*(gtu13*PDstandardNth1gt33 +
+ gtu11*PDstandardNth3gt11 + gtu12*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
- CCTK_REAL Gt213 = khalf*(gtu32*PDstandardNth1gt33 +
- gtu21*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
+ CCTK_REAL Gt213 = khalf*(gtu23*PDstandardNth1gt33 +
+ gtu12*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt313 = khalf*(gtu33*PDstandardNth1gt33 +
- gtu31*PDstandardNth3gt11 + gtu32*(PDstandardNth1gt23 -
+ gtu13*PDstandardNth3gt11 + gtu23*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt122 = khalf*(gtu11*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu21*PDstandardNth2gt22 +
- gtu31*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ 2*PDstandardNth2gt12) + gtu12*PDstandardNth2gt22 +
+ gtu13*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt222 = khalf*(gtu21*(-PDstandardNth1gt22 +
+ CCTK_REAL Gt222 = khalf*(gtu12*(-PDstandardNth1gt22 +
2*PDstandardNth2gt12) + gtu22*PDstandardNth2gt22 +
- gtu32*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ gtu23*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt322 = khalf*(gtu31*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu32*PDstandardNth2gt22 +
+ CCTK_REAL Gt322 = khalf*(gtu13*(-PDstandardNth1gt22 +
+ 2*PDstandardNth2gt12) + gtu23*PDstandardNth2gt22 +
gtu33*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt123 = khalf*(gtu31*PDstandardNth2gt33 +
+ CCTK_REAL Gt123 = khalf*(gtu13*PDstandardNth2gt33 +
gtu11*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu21*PDstandardNth3gt22);
+ gtu12*PDstandardNth3gt22);
- CCTK_REAL Gt223 = khalf*(gtu32*PDstandardNth2gt33 +
- gtu21*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ CCTK_REAL Gt223 = khalf*(gtu23*PDstandardNth2gt33 +
+ gtu12*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
gtu22*PDstandardNth3gt22);
CCTK_REAL Gt323 = khalf*(gtu33*PDstandardNth2gt33 +
- gtu31*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu32*PDstandardNth3gt22);
+ gtu13*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ gtu23*PDstandardNth3gt22);
CCTK_REAL Gt133 = khalf*(-(gtu11*PDstandardNth1gt33) -
- gtu21*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
- 2*gtu21*PDstandardNth3gt23 + gtu31*PDstandardNth3gt33);
+ gtu12*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
+ 2*gtu12*PDstandardNth3gt23 + gtu13*PDstandardNth3gt33);
- CCTK_REAL Gt233 = khalf*(-(gtu21*PDstandardNth1gt33) -
- gtu22*PDstandardNth2gt33 + 2*gtu21*PDstandardNth3gt13 +
- 2*gtu22*PDstandardNth3gt23 + gtu32*PDstandardNth3gt33);
+ CCTK_REAL Gt233 = khalf*(-(gtu12*PDstandardNth1gt33) -
+ gtu22*PDstandardNth2gt33 + 2*gtu12*PDstandardNth3gt13 +
+ 2*gtu22*PDstandardNth3gt23 + gtu23*PDstandardNth3gt33);
- CCTK_REAL Gt333 = khalf*(-(gtu31*PDstandardNth1gt33) -
- gtu32*PDstandardNth2gt33 + 2*gtu31*PDstandardNth3gt13 +
- 2*gtu32*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
+ CCTK_REAL Gt333 = khalf*(-(gtu13*PDstandardNth1gt33) -
+ gtu23*PDstandardNth2gt33 + 2*gtu13*PDstandardNth3gt13 +
+ 2*gtu23*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
- CCTK_REAL Xt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL AL = 12*IfThen(LapseACoeff !=
0,-(dtalpL*INV(harmonicF)*pow(alphaL,-harmonicN)),0) +
diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.c b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.c
index 908d19e..b8fe647 100644
--- a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.c
+++ b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_convertToADMBaseDtLapseShift_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift.");
+ return;
+}
+
void ML_BSSN_convertToADMBaseDtLapseShift_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.c b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.c
index 748ae40..72c6ff2 100644
--- a/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.c
+++ b/ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_convertToADMBaseDtLapseShiftBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift.");
+ return;
+}
+
void ML_BSSN_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN/src/ML_BSSN_enforce.c b/ML_BSSN/src/ML_BSSN_enforce.c
index e200af5..d8b0d21 100644
--- a/ML_BSSN/src/ML_BSSN_enforce.c
+++ b/ML_BSSN/src/ML_BSSN_enforce.c
@@ -113,18 +113,18 @@ void ML_BSSN_enforce_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
- CCTK_REAL trAt = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu21 +
- At13L*gtu31 + At23L*gtu32) + At33L*gtu33;
+ CCTK_REAL trAt = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu12 +
+ At13L*gtu13 + At23L*gtu23) + At33L*gtu33;
At11L = At11L - gt11L*kthird*trAt;
diff --git a/ML_BSSN_Helper/schedule.ccl b/ML_BSSN_Helper/schedule.ccl
index d4609f9..dbef569 100644
--- a/ML_BSSN_Helper/schedule.ccl
+++ b/ML_BSSN_Helper/schedule.ccl
@@ -132,7 +132,7 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN")) {
}
else if (CCTK_EQUALS (calculate_ADMBase_variables_at, "CCTK_EVOL"))
{
- SCHEDULE GROUP ML_BSSN_convertToADMBaseGroupWrapper AT evol AFTER MoL_Evolution BEFORE (ADMBase_SetADMVars Whisky_PostStep)
+ SCHEDULE GROUP ML_BSSN_convertToADMBaseGroupWrapper IN MoL_PseudoEvolution BEFORE (ADMBase_SetADMVars Whisky_PostStep)
{
} "Calculate ADM variables"
}
@@ -143,7 +143,7 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN")) {
} "Calculate ADM variables"
}
- SCHEDULE GROUP ML_BSSN_convertToADMBaseGroupWrapper AT CCTK_POST_RECOVER_VARIABLES
+ SCHEDULE GROUP ML_BSSN_convertToADMBaseGroupWrapper AT post_recover_variables
{
} "Calculate ADM variables"
diff --git a/ML_BSSN_MP/interface.ccl b/ML_BSSN_MP/interface.ccl
index 827935d..72c0c57 100644
--- a/ML_BSSN_MP/interface.ccl
+++ b/ML_BSSN_MP/interface.ccl
@@ -25,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2.0000000000000000000'
+CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2'
{
cS
} "ML_cons_detg"
@@ -39,19 +39,19 @@ CCTK_REAL ML_cons_Gamma type=GF timelevels=1 tags='tensortypealias="U" tensorwei
} "ML_cons_Gamma"
public:
-CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
cA
} "ML_cons_traceA"
public:
-CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
H
} "ML_Ham"
public:
-CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1'
{
M1,
M2,
@@ -70,13 +70,13 @@ CCTK_REAL ML_curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweig
} "ML_curv"
public:
-CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
A
} "ML_dtlapse"
public:
-CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
B1,
B2,
@@ -92,7 +92,7 @@ CCTK_REAL ML_Gamma type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "ML_Gamma"
public:
-CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpha
} "ML_lapse"
@@ -115,7 +115,7 @@ CCTK_REAL ML_metric type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorwe
} "ML_metric"
public:
-CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1,
beta2,
@@ -123,7 +123,7 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1
} "ML_shift"
public:
-CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
trK
} "ML_trace_curv"
@@ -140,13 +140,13 @@ CCTK_REAL ML_curvrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorw
} "ML_curvrhs"
public:
-CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
Arhs
} "ML_dtlapserhs"
public:
-CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
B1rhs,
B2rhs,
@@ -162,7 +162,7 @@ CCTK_REAL ML_Gammarhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "ML_Gammarhs"
public:
-CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpharhs
} "ML_lapserhs"
@@ -185,7 +185,7 @@ CCTK_REAL ML_metricrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tenso
} "ML_metricrhs"
public:
-CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1rhs,
beta2rhs,
@@ -193,7 +193,7 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "ML_shiftrhs"
public:
-CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
trKrhs
} "ML_trace_curvrhs"
diff --git a/ML_BSSN_MP/schedule.ccl b/ML_BSSN_MP/schedule.ccl
index c153a18..4faaa53 100644
--- a/ML_BSSN_MP/schedule.ccl
+++ b/ML_BSSN_MP/schedule.ccl
@@ -405,7 +405,7 @@ schedule ML_BSSN_MP_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_BSSN_MP_ApplyBCs in MoL_PostStep after ML_BSSN_MP_SelectBoundConds
+schedule group ApplyBCs as ML_BSSN_MP_ApplyBCs in MoL_PostStep after ML_BSSN_MP_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.c b/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.c
index 98e1c02..d78a874 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHS1.c
@@ -20,6 +20,39 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_RHS1_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -637,13 +670,13 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -722,50 +755,50 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL Gtl333 = khalf*(J13L*PDstandardNth1gt33 +
J23L*PDstandardNth2gt33 + J33L*PDstandardNth3gt33);
- CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu21 + Gtl311*gtu31;
+ CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu12 + Gtl311*gtu13;
- CCTK_REAL Gt211 = Gtl111*gtu21 + Gtl211*gtu22 + Gtl311*gtu32;
+ CCTK_REAL Gt211 = Gtl111*gtu12 + Gtl211*gtu22 + Gtl311*gtu23;
- CCTK_REAL Gt311 = Gtl111*gtu31 + Gtl211*gtu32 + Gtl311*gtu33;
+ CCTK_REAL Gt311 = Gtl111*gtu13 + Gtl211*gtu23 + Gtl311*gtu33;
- CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu21 + Gtl312*gtu31;
+ CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu12 + Gtl312*gtu13;
- CCTK_REAL Gt212 = Gtl112*gtu21 + Gtl212*gtu22 + Gtl312*gtu32;
+ CCTK_REAL Gt212 = Gtl112*gtu12 + Gtl212*gtu22 + Gtl312*gtu23;
- CCTK_REAL Gt312 = Gtl112*gtu31 + Gtl212*gtu32 + Gtl312*gtu33;
+ CCTK_REAL Gt312 = Gtl112*gtu13 + Gtl212*gtu23 + Gtl312*gtu33;
- CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gt213 = Gtl113*gtu21 + Gtl213*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gt213 = Gtl113*gtu12 + Gtl213*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gt313 = Gtl113*gtu31 + Gtl213*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gt313 = Gtl113*gtu13 + Gtl213*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu21 + Gtl322*gtu31;
+ CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu12 + Gtl322*gtu13;
- CCTK_REAL Gt222 = Gtl122*gtu21 + Gtl222*gtu22 + Gtl322*gtu32;
+ CCTK_REAL Gt222 = Gtl122*gtu12 + Gtl222*gtu22 + Gtl322*gtu23;
- CCTK_REAL Gt322 = Gtl122*gtu31 + Gtl222*gtu32 + Gtl322*gtu33;
+ CCTK_REAL Gt322 = Gtl122*gtu13 + Gtl222*gtu23 + Gtl322*gtu33;
- CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gt223 = Gtl123*gtu21 + Gtl223*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gt223 = Gtl123*gtu12 + Gtl223*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gt323 = Gtl123*gtu31 + Gtl223*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gt323 = Gtl123*gtu13 + Gtl223*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gt233 = Gtl133*gtu21 + Gtl233*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gt233 = Gtl133*gtu12 + Gtl233*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gt333 = Gtl133*gtu31 + Gtl233*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gt333 = Gtl133*gtu13 + Gtl233*gtu23 + Gtl333*gtu33;
- CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL fac1 = IfThen(conformalMethod,-(khalf*INV(phiL)),1);
@@ -778,35 +811,35 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL cdphi3 = fac1*(J13L*PDstandardNth1phi +
J23L*PDstandardNth2phi + J33L*PDstandardNth3phi);
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
- CCTK_REAL Atu11 = Atm11*gtu11 + Atm12*gtu21 + Atm13*gtu31;
+ CCTK_REAL Atu11 = Atm11*gtu11 + Atm12*gtu12 + Atm13*gtu13;
- CCTK_REAL Atu21 = Atm11*gtu21 + Atm12*gtu22 + Atm13*gtu32;
+ CCTK_REAL Atu12 = Atm11*gtu12 + Atm12*gtu22 + Atm13*gtu23;
- CCTK_REAL Atu31 = Atm11*gtu31 + Atm12*gtu32 + Atm13*gtu33;
+ CCTK_REAL Atu13 = Atm11*gtu13 + Atm12*gtu23 + Atm13*gtu33;
- CCTK_REAL Atu22 = Atm21*gtu21 + Atm22*gtu22 + Atm23*gtu32;
+ CCTK_REAL Atu22 = Atm21*gtu12 + Atm22*gtu22 + Atm23*gtu23;
- CCTK_REAL Atu32 = Atm21*gtu31 + Atm22*gtu32 + Atm23*gtu33;
+ CCTK_REAL Atu23 = Atm21*gtu13 + Atm22*gtu23 + Atm23*gtu33;
- CCTK_REAL Atu33 = Atm31*gtu31 + Atm32*gtu32 + Atm33*gtu33;
+ CCTK_REAL Atu33 = Atm31*gtu13 + Atm32*gtu23 + Atm33*gtu33;
CCTK_REAL e4phi = IfThen(conformalMethod,pow(phiL,-2),exp(4*phiL));
@@ -826,8 +859,8 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL S3 = (-eTtzL + beta1L*eTxzL + beta2L*eTyzL +
beta3L*eTzzL)*INV(alphaL);
- CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu21 +
- eTxzL*gtu31 + eTyzL*gtu32) + eTzzL*gtu33);
+ CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu12 +
+ eTxzL*gtu13 + eTyzL*gtu23) + eTzzL*gtu33);
CCTK_REAL phirhsL = (epsdiss1*J11L + epsdiss2*J12L +
epsdiss3*J13L)*PDdissipationNth1phi + (epsdiss1*J21L + epsdiss2*J22L +
@@ -994,39 +1027,39 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL dotXt1 = (epsdiss1*J11L + epsdiss2*J12L +
epsdiss3*J13L)*PDdissipationNth1Xt1 + (epsdiss1*J21L + epsdiss2*J22L +
epsdiss3*J23L)*PDdissipationNth2Xt1 + (epsdiss1*J31L + epsdiss2*J32L +
- epsdiss3*J33L)*PDdissipationNth3Xt1 - 2*((Atu11*J11L + Atu21*J12L +
- Atu31*J13L)*PDstandardNth1alpha + (Atu11*J21L + Atu21*J22L +
- Atu31*J23L)*PDstandardNth2alpha + (Atu11*J31L + Atu21*J32L +
- Atu31*J33L)*PDstandardNth3alpha) +
- 2*(gtu21*(J11L*J12L*PDstandardNth11beta1 +
+ epsdiss3*J33L)*PDdissipationNth3Xt1 - 2*((Atu11*J11L + Atu12*J12L +
+ Atu13*J13L)*PDstandardNth1alpha + (Atu11*J21L + Atu12*J22L +
+ Atu13*J23L)*PDstandardNth2alpha + (Atu11*J31L + Atu12*J32L +
+ Atu13*J33L)*PDstandardNth3alpha) +
+ 2*(gtu12*(J11L*J12L*PDstandardNth11beta1 +
J12L*J21L*PDstandardNth12beta1 + J11L*J22L*PDstandardNth12beta1 +
J12L*J31L*PDstandardNth13beta1 + J11L*J32L*PDstandardNth13beta1 +
dJ112L*PDstandardNth1beta1 + J21L*J22L*PDstandardNth22beta1 +
J22L*J31L*PDstandardNth23beta1 + J21L*J32L*PDstandardNth23beta1 +
dJ212L*PDstandardNth2beta1 + J31L*J32L*PDstandardNth33beta1 +
- dJ312L*PDstandardNth3beta1) + gtu31*(J11L*J13L*PDstandardNth11beta1 +
+ dJ312L*PDstandardNth3beta1) + gtu13*(J11L*J13L*PDstandardNth11beta1 +
J13L*J21L*PDstandardNth12beta1 + J11L*J23L*PDstandardNth12beta1 +
J13L*J31L*PDstandardNth13beta1 + J11L*J33L*PDstandardNth13beta1 +
dJ113L*PDstandardNth1beta1 + J21L*J23L*PDstandardNth22beta1 +
J23L*J31L*PDstandardNth23beta1 + J21L*J33L*PDstandardNth23beta1 +
dJ213L*PDstandardNth2beta1 + J31L*J33L*PDstandardNth33beta1 +
- dJ313L*PDstandardNth3beta1) + gtu32*(J12L*J13L*PDstandardNth11beta1 +
+ dJ313L*PDstandardNth3beta1) + gtu23*(J12L*J13L*PDstandardNth11beta1 +
J13L*J22L*PDstandardNth12beta1 + J12L*J23L*PDstandardNth12beta1 +
J13L*J32L*PDstandardNth13beta1 + J12L*J33L*PDstandardNth13beta1 +
dJ123L*PDstandardNth1beta1 + J22L*J23L*PDstandardNth22beta1 +
J23L*J32L*PDstandardNth23beta1 + J22L*J33L*PDstandardNth23beta1 +
dJ223L*PDstandardNth2beta1 + J32L*J33L*PDstandardNth33beta1 +
- dJ323L*PDstandardNth3beta1) + alphaL*(6*(Atu11*cdphi1 + Atu21*cdphi2 +
- Atu31*cdphi3) + Atu11*Gt111 + 2*Atu21*Gt112 + 2*Atu31*Gt113 +
- Atu22*Gt122 + 2*Atu32*Gt123 + Atu33*Gt133 - ktwothird*((gtu11*J11L +
- gtu21*J12L + gtu31*J13L)*PDstandardNth1trK + (gtu11*J21L + gtu21*J22L +
- gtu31*J23L)*PDstandardNth2trK + (gtu11*J31L + gtu21*J32L +
- gtu31*J33L)*PDstandardNth3trK))) + (beta1L*J11L + beta2L*J12L +
+ dJ323L*PDstandardNth3beta1) + alphaL*(6*(Atu11*cdphi1 + Atu12*cdphi2 +
+ Atu13*cdphi3) + Atu11*Gt111 + 2*Atu12*Gt112 + 2*Atu13*Gt113 +
+ Atu22*Gt122 + 2*Atu23*Gt123 + Atu33*Gt133 - ktwothird*((gtu11*J11L +
+ gtu12*J12L + gtu13*J13L)*PDstandardNth1trK + (gtu11*J21L + gtu12*J22L +
+ gtu13*J23L)*PDstandardNth2trK + (gtu11*J31L + gtu12*J32L +
+ gtu13*J33L)*PDstandardNth3trK))) + (beta1L*J11L + beta2L*J12L +
beta3L*J13L)*PDupwindNthAnti1Xt1 + (beta1L*J21L + beta2L*J22L +
beta3L*J23L)*PDupwindNthAnti2Xt1 + (beta1L*J31L + beta2L*J32L +
beta3L*J33L)*PDupwindNthAnti3Xt1 -
- 50.26548245743669181540229413247204614715*alphaL*(gtu11*S1 + gtu21*S2 +
- gtu31*S3) + ktwothird*(J11L*PDstandardNth1beta1 +
+ 50.26548245743669181540229413247204614715*alphaL*(gtu11*S1 + gtu12*S2 +
+ gtu13*S3) + ktwothird*(J11L*PDstandardNth1beta1 +
J12L*PDstandardNth1beta2 + J13L*PDstandardNth1beta3 +
J21L*PDstandardNth2beta1 + J22L*PDstandardNth2beta2 +
J23L*PDstandardNth2beta3 + J31L*PDstandardNth3beta1 +
@@ -1071,7 +1104,7 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
dJ311L*PDstandardNth3beta1 + dJ312L*PDstandardNth3beta2 +
dJ313L*PDstandardNth3beta3 + PDstandardNth11beta1*SQR(J11L) +
PDstandardNth22beta1*SQR(J21L) + PDstandardNth33beta1*SQR(J31L)) +
- gtu21*(J11L*J12L*PDstandardNth11beta1 + J12L*J13L*PDstandardNth11beta3
+ gtu12*(J11L*J12L*PDstandardNth11beta1 + J12L*J13L*PDstandardNth11beta3
+ J12L*J21L*PDstandardNth12beta1 + J11L*J22L*PDstandardNth12beta1 +
2*J12L*J22L*PDstandardNth12beta2 + J13L*J22L*PDstandardNth12beta3 +
J12L*J23L*PDstandardNth12beta3 + J12L*J31L*PDstandardNth13beta1 +
@@ -1087,7 +1120,7 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
J32L*J33L*PDstandardNth33beta3 + dJ312L*PDstandardNth3beta1 +
dJ322L*PDstandardNth3beta2 + dJ323L*PDstandardNth3beta3 +
PDstandardNth11beta2*SQR(J12L) + PDstandardNth22beta2*SQR(J22L) +
- PDstandardNth33beta2*SQR(J32L)) + gtu31*(J11L*J13L*PDstandardNth11beta1
+ PDstandardNth33beta2*SQR(J32L)) + gtu13*(J11L*J13L*PDstandardNth11beta1
+ J12L*J13L*PDstandardNth11beta2 + J13L*J21L*PDstandardNth12beta1 +
J11L*J23L*PDstandardNth12beta1 + J13L*J22L*PDstandardNth12beta2 +
J12L*J23L*PDstandardNth12beta2 + 2*J13L*J23L*PDstandardNth12beta3 +
@@ -1108,39 +1141,39 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL dotXt2 = (epsdiss1*J11L + epsdiss2*J12L +
epsdiss3*J13L)*PDdissipationNth1Xt2 + (epsdiss1*J21L + epsdiss2*J22L +
epsdiss3*J23L)*PDdissipationNth2Xt2 + (epsdiss1*J31L + epsdiss2*J32L +
- epsdiss3*J33L)*PDdissipationNth3Xt2 - 2*((Atu21*J11L + Atu22*J12L +
- Atu32*J13L)*PDstandardNth1alpha + (Atu21*J21L + Atu22*J22L +
- Atu32*J23L)*PDstandardNth2alpha + (Atu21*J31L + Atu22*J32L +
- Atu32*J33L)*PDstandardNth3alpha) +
- 2*(gtu21*(J11L*J12L*PDstandardNth11beta2 +
+ epsdiss3*J33L)*PDdissipationNth3Xt2 - 2*((Atu12*J11L + Atu22*J12L +
+ Atu23*J13L)*PDstandardNth1alpha + (Atu12*J21L + Atu22*J22L +
+ Atu23*J23L)*PDstandardNth2alpha + (Atu12*J31L + Atu22*J32L +
+ Atu23*J33L)*PDstandardNth3alpha) +
+ 2*(gtu12*(J11L*J12L*PDstandardNth11beta2 +
J12L*J21L*PDstandardNth12beta2 + J11L*J22L*PDstandardNth12beta2 +
J12L*J31L*PDstandardNth13beta2 + J11L*J32L*PDstandardNth13beta2 +
dJ112L*PDstandardNth1beta2 + J21L*J22L*PDstandardNth22beta2 +
J22L*J31L*PDstandardNth23beta2 + J21L*J32L*PDstandardNth23beta2 +
dJ212L*PDstandardNth2beta2 + J31L*J32L*PDstandardNth33beta2 +
- dJ312L*PDstandardNth3beta2) + gtu31*(J11L*J13L*PDstandardNth11beta2 +
+ dJ312L*PDstandardNth3beta2) + gtu13*(J11L*J13L*PDstandardNth11beta2 +
J13L*J21L*PDstandardNth12beta2 + J11L*J23L*PDstandardNth12beta2 +
J13L*J31L*PDstandardNth13beta2 + J11L*J33L*PDstandardNth13beta2 +
dJ113L*PDstandardNth1beta2 + J21L*J23L*PDstandardNth22beta2 +
J23L*J31L*PDstandardNth23beta2 + J21L*J33L*PDstandardNth23beta2 +
dJ213L*PDstandardNth2beta2 + J31L*J33L*PDstandardNth33beta2 +
- dJ313L*PDstandardNth3beta2) + gtu32*(J12L*J13L*PDstandardNth11beta2 +
+ dJ313L*PDstandardNth3beta2) + gtu23*(J12L*J13L*PDstandardNth11beta2 +
J13L*J22L*PDstandardNth12beta2 + J12L*J23L*PDstandardNth12beta2 +
J13L*J32L*PDstandardNth13beta2 + J12L*J33L*PDstandardNth13beta2 +
dJ123L*PDstandardNth1beta2 + J22L*J23L*PDstandardNth22beta2 +
J23L*J32L*PDstandardNth23beta2 + J22L*J33L*PDstandardNth23beta2 +
dJ223L*PDstandardNth2beta2 + J32L*J33L*PDstandardNth33beta2 +
- dJ323L*PDstandardNth3beta2) + alphaL*(6*(Atu21*cdphi1 + Atu22*cdphi2 +
- Atu32*cdphi3) + Atu11*Gt211 + 2*Atu21*Gt212 + 2*Atu31*Gt213 +
- Atu22*Gt222 + 2*Atu32*Gt223 + Atu33*Gt233 - ktwothird*((gtu21*J11L +
- gtu22*J12L + gtu32*J13L)*PDstandardNth1trK + (gtu21*J21L + gtu22*J22L +
- gtu32*J23L)*PDstandardNth2trK + (gtu21*J31L + gtu22*J32L +
- gtu32*J33L)*PDstandardNth3trK))) + (beta1L*J11L + beta2L*J12L +
+ dJ323L*PDstandardNth3beta2) + alphaL*(6*(Atu12*cdphi1 + Atu22*cdphi2 +
+ Atu23*cdphi3) + Atu11*Gt211 + 2*Atu12*Gt212 + 2*Atu13*Gt213 +
+ Atu22*Gt222 + 2*Atu23*Gt223 + Atu33*Gt233 - ktwothird*((gtu12*J11L +
+ gtu22*J12L + gtu23*J13L)*PDstandardNth1trK + (gtu12*J21L + gtu22*J22L +
+ gtu23*J23L)*PDstandardNth2trK + (gtu12*J31L + gtu22*J32L +
+ gtu23*J33L)*PDstandardNth3trK))) + (beta1L*J11L + beta2L*J12L +
beta3L*J13L)*PDupwindNthAnti1Xt2 + (beta1L*J21L + beta2L*J22L +
beta3L*J23L)*PDupwindNthAnti2Xt2 + (beta1L*J31L + beta2L*J32L +
beta3L*J33L)*PDupwindNthAnti3Xt2 -
- 50.26548245743669181540229413247204614715*alphaL*(gtu21*S1 + gtu22*S2 +
- gtu32*S3) + ktwothird*(J11L*PDstandardNth1beta1 +
+ 50.26548245743669181540229413247204614715*alphaL*(gtu12*S1 + gtu22*S2 +
+ gtu23*S3) + ktwothird*(J11L*PDstandardNth1beta1 +
J12L*PDstandardNth1beta2 + J13L*PDstandardNth1beta3 +
J21L*PDstandardNth2beta1 + J22L*PDstandardNth2beta2 +
J23L*PDstandardNth2beta3 + J31L*PDstandardNth3beta1 +
@@ -1168,7 +1201,7 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
2*J23L*J33L*PDstandardNth23beta2 + dJ233L*PDstandardNth2beta2 +
dJ333L*PDstandardNth3beta2 + PDstandardNth11beta2*SQR(J13L) +
PDstandardNth22beta2*SQR(J23L) + PDstandardNth33beta2*SQR(J33L)) +
- kthird*(gtu21*(J11L*J12L*PDstandardNth11beta2 +
+ kthird*(gtu12*(J11L*J12L*PDstandardNth11beta2 +
J11L*J13L*PDstandardNth11beta3 + 2*J11L*J21L*PDstandardNth12beta1 +
J12L*J21L*PDstandardNth12beta2 + J11L*J22L*PDstandardNth12beta2 +
J13L*J21L*PDstandardNth12beta3 + J11L*J23L*PDstandardNth12beta3 +
@@ -1201,7 +1234,7 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
J32L*J33L*PDstandardNth33beta3 + dJ312L*PDstandardNth3beta1 +
dJ322L*PDstandardNth3beta2 + dJ323L*PDstandardNth3beta3 +
PDstandardNth11beta2*SQR(J12L) + PDstandardNth22beta2*SQR(J22L) +
- PDstandardNth33beta2*SQR(J32L)) + gtu32*(J11L*J13L*PDstandardNth11beta1
+ PDstandardNth33beta2*SQR(J32L)) + gtu23*(J11L*J13L*PDstandardNth11beta1
+ J12L*J13L*PDstandardNth11beta2 + J13L*J21L*PDstandardNth12beta1 +
J11L*J23L*PDstandardNth12beta1 + J13L*J22L*PDstandardNth12beta2 +
J12L*J23L*PDstandardNth12beta2 + 2*J13L*J23L*PDstandardNth12beta3 +
@@ -1222,38 +1255,38 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL dotXt3 = (epsdiss1*J11L + epsdiss2*J12L +
epsdiss3*J13L)*PDdissipationNth1Xt3 + (epsdiss1*J21L + epsdiss2*J22L +
epsdiss3*J23L)*PDdissipationNth2Xt3 + (epsdiss1*J31L + epsdiss2*J32L +
- epsdiss3*J33L)*PDdissipationNth3Xt3 - 2*((Atu31*J11L + Atu32*J12L +
- Atu33*J13L)*PDstandardNth1alpha + (Atu31*J21L + Atu32*J22L +
- Atu33*J23L)*PDstandardNth2alpha + (Atu31*J31L + Atu32*J32L +
+ epsdiss3*J33L)*PDdissipationNth3Xt3 - 2*((Atu13*J11L + Atu23*J12L +
+ Atu33*J13L)*PDstandardNth1alpha + (Atu13*J21L + Atu23*J22L +
+ Atu33*J23L)*PDstandardNth2alpha + (Atu13*J31L + Atu23*J32L +
Atu33*J33L)*PDstandardNth3alpha) +
- 2*(gtu21*(J11L*J12L*PDstandardNth11beta3 +
+ 2*(gtu12*(J11L*J12L*PDstandardNth11beta3 +
J12L*J21L*PDstandardNth12beta3 + J11L*J22L*PDstandardNth12beta3 +
J12L*J31L*PDstandardNth13beta3 + J11L*J32L*PDstandardNth13beta3 +
dJ112L*PDstandardNth1beta3 + J21L*J22L*PDstandardNth22beta3 +
J22L*J31L*PDstandardNth23beta3 + J21L*J32L*PDstandardNth23beta3 +
dJ212L*PDstandardNth2beta3 + J31L*J32L*PDstandardNth33beta3 +
- dJ312L*PDstandardNth3beta3) + gtu31*(J11L*J13L*PDstandardNth11beta3 +
+ dJ312L*PDstandardNth3beta3) + gtu13*(J11L*J13L*PDstandardNth11beta3 +
J13L*J21L*PDstandardNth12beta3 + J11L*J23L*PDstandardNth12beta3 +
J13L*J31L*PDstandardNth13beta3 + J11L*J33L*PDstandardNth13beta3 +
dJ113L*PDstandardNth1beta3 + J21L*J23L*PDstandardNth22beta3 +
J23L*J31L*PDstandardNth23beta3 + J21L*J33L*PDstandardNth23beta3 +
dJ213L*PDstandardNth2beta3 + J31L*J33L*PDstandardNth33beta3 +
- dJ313L*PDstandardNth3beta3) + gtu32*(J12L*J13L*PDstandardNth11beta3 +
+ dJ313L*PDstandardNth3beta3) + gtu23*(J12L*J13L*PDstandardNth11beta3 +
J13L*J22L*PDstandardNth12beta3 + J12L*J23L*PDstandardNth12beta3 +
J13L*J32L*PDstandardNth13beta3 + J12L*J33L*PDstandardNth13beta3 +
dJ123L*PDstandardNth1beta3 + J22L*J23L*PDstandardNth22beta3 +
J23L*J32L*PDstandardNth23beta3 + J22L*J33L*PDstandardNth23beta3 +
dJ223L*PDstandardNth2beta3 + J32L*J33L*PDstandardNth33beta3 +
- dJ323L*PDstandardNth3beta3) + alphaL*(6*(Atu31*cdphi1 + Atu32*cdphi2 +
- Atu33*cdphi3) + Atu11*Gt311 + 2*Atu21*Gt312 + 2*Atu31*Gt313 +
- Atu22*Gt322 + 2*Atu32*Gt323 + Atu33*Gt333 - ktwothird*((gtu31*J11L +
- gtu32*J12L + gtu33*J13L)*PDstandardNth1trK + (gtu31*J21L + gtu32*J22L +
- gtu33*J23L)*PDstandardNth2trK + (gtu31*J31L + gtu32*J32L +
+ dJ323L*PDstandardNth3beta3) + alphaL*(6*(Atu13*cdphi1 + Atu23*cdphi2 +
+ Atu33*cdphi3) + Atu11*Gt311 + 2*Atu12*Gt312 + 2*Atu13*Gt313 +
+ Atu22*Gt322 + 2*Atu23*Gt323 + Atu33*Gt333 - ktwothird*((gtu13*J11L +
+ gtu23*J12L + gtu33*J13L)*PDstandardNth1trK + (gtu13*J21L + gtu23*J22L +
+ gtu33*J23L)*PDstandardNth2trK + (gtu13*J31L + gtu23*J32L +
gtu33*J33L)*PDstandardNth3trK))) + (beta1L*J11L + beta2L*J12L +
beta3L*J13L)*PDupwindNthAnti1Xt3 + (beta1L*J21L + beta2L*J22L +
beta3L*J23L)*PDupwindNthAnti2Xt3 + (beta1L*J31L + beta2L*J32L +
beta3L*J33L)*PDupwindNthAnti3Xt3 -
- 50.26548245743669181540229413247204614715*alphaL*(gtu31*S1 + gtu32*S2 +
+ 50.26548245743669181540229413247204614715*alphaL*(gtu13*S1 + gtu23*S2 +
gtu33*S3) + ktwothird*(J11L*PDstandardNth1beta1 +
J12L*PDstandardNth1beta2 + J13L*PDstandardNth1beta3 +
J21L*PDstandardNth2beta1 + J22L*PDstandardNth2beta2 +
@@ -1282,7 +1315,7 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
2*J23L*J33L*PDstandardNth23beta3 + dJ233L*PDstandardNth2beta3 +
dJ333L*PDstandardNth3beta3 + PDstandardNth11beta3*SQR(J13L) +
PDstandardNth22beta3*SQR(J23L) + PDstandardNth33beta3*SQR(J33L)) +
- kthird*(gtu31*(J11L*J12L*PDstandardNth11beta2 +
+ kthird*(gtu13*(J11L*J12L*PDstandardNth11beta2 +
J11L*J13L*PDstandardNth11beta3 + 2*J11L*J21L*PDstandardNth12beta1 +
J12L*J21L*PDstandardNth12beta2 + J11L*J22L*PDstandardNth12beta2 +
J13L*J21L*PDstandardNth12beta3 + J11L*J23L*PDstandardNth12beta3 +
@@ -1299,7 +1332,7 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
dJ311L*PDstandardNth3beta1 + dJ312L*PDstandardNth3beta2 +
dJ313L*PDstandardNth3beta3 + PDstandardNth11beta1*SQR(J11L) +
PDstandardNth22beta1*SQR(J21L) + PDstandardNth33beta1*SQR(J31L)) +
- gtu32*(J11L*J12L*PDstandardNth11beta1 + J12L*J13L*PDstandardNth11beta3
+ gtu23*(J11L*J12L*PDstandardNth11beta1 + J12L*J13L*PDstandardNth11beta3
+ J12L*J21L*PDstandardNth12beta1 + J11L*J22L*PDstandardNth12beta1 +
2*J12L*J22L*PDstandardNth12beta2 + J13L*J22L*PDstandardNth12beta3 +
J12L*J23L*PDstandardNth12beta3 + J12L*J31L*PDstandardNth13beta1 +
@@ -1350,39 +1383,39 @@ void ML_BSSN_MP_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
(J12L*PDupwindNthSymm1trK + J22L*PDupwindNthSymm2trK +
J32L*PDupwindNthSymm3trK)*Abs(beta2L) + (J13L*PDupwindNthSymm1trK +
J23L*PDupwindNthSymm2trK + J33L*PDupwindNthSymm3trK)*Abs(beta3L) -
- em4phi*(2*((gtu21*J11L*J22L + gtu31*(J13L*J21L +
- J11L*J23L))*PDstandardNth12alpha + (gtu21*J11L*J32L + gtu31*(J13L*J31L
- + J11L*J33L))*PDstandardNth13alpha + J11L*((gtu21*J12L +
- gtu31*J13L)*PDstandardNth11alpha + gtu11*(J21L*PDstandardNth12alpha +
- J31L*PDstandardNth13alpha)) + J12L*(gtu32*J13L*PDstandardNth11alpha +
- gtu21*(J21L*PDstandardNth12alpha + J31L*PDstandardNth13alpha)) +
- (gtu11*J21L*J31L + (gtu22*J22L + gtu32*J23L)*J32L + (gtu32*J22L +
+ em4phi*(2*((gtu12*J11L*J22L + gtu13*(J13L*J21L +
+ J11L*J23L))*PDstandardNth12alpha + (gtu12*J11L*J32L + gtu13*(J13L*J31L
+ + J11L*J33L))*PDstandardNth13alpha + J11L*((gtu12*J12L +
+ gtu13*J13L)*PDstandardNth11alpha + gtu11*(J21L*PDstandardNth12alpha +
+ J31L*PDstandardNth13alpha)) + J12L*(gtu23*J13L*PDstandardNth11alpha +
+ gtu12*(J21L*PDstandardNth12alpha + J31L*PDstandardNth13alpha)) +
+ (gtu11*J21L*J31L + (gtu22*J22L + gtu23*J23L)*J32L + (gtu23*J22L +
gtu33*J23L)*J33L)*PDstandardNth23alpha + J22L*((gtu22*J12L +
- gtu32*J13L)*PDstandardNth12alpha + (gtu21*J21L +
- gtu32*J23L)*PDstandardNth22alpha + gtu21*J31L*PDstandardNth23alpha) +
- J23L*((gtu32*J12L + gtu33*J13L)*PDstandardNth12alpha +
- gtu31*(J21L*PDstandardNth22alpha + J31L*PDstandardNth23alpha)) +
- (gtu21*(dJ312L + cdphi2*J31L) + cdphi3*(gtu31*J31L +
- gtu32*J32L))*PDstandardNth3alpha + J32L*((gtu22*J12L +
- gtu32*J13L)*PDstandardNth13alpha + gtu32*J33L*PDstandardNth33alpha +
- gtu21*(J21L*PDstandardNth23alpha + J31L*PDstandardNth33alpha) +
- cdphi2*gtu22*PDstandardNth3alpha) + J33L*((gtu32*J12L +
- gtu33*J13L)*PDstandardNth13alpha + gtu31*(J21L*PDstandardNth23alpha +
- J31L*PDstandardNth33alpha) + (cdphi2*gtu32 +
+ gtu23*J13L)*PDstandardNth12alpha + (gtu12*J21L +
+ gtu23*J23L)*PDstandardNth22alpha + gtu12*J31L*PDstandardNth23alpha) +
+ J23L*((gtu23*J12L + gtu33*J13L)*PDstandardNth12alpha +
+ gtu13*(J21L*PDstandardNth22alpha + J31L*PDstandardNth23alpha)) +
+ (gtu12*(dJ312L + cdphi2*J31L) + cdphi3*(gtu13*J31L +
+ gtu23*J32L))*PDstandardNth3alpha + J32L*((gtu22*J12L +
+ gtu23*J13L)*PDstandardNth13alpha + gtu23*J33L*PDstandardNth33alpha +
+ gtu12*(J21L*PDstandardNth23alpha + J31L*PDstandardNth33alpha) +
+ cdphi2*gtu22*PDstandardNth3alpha) + J33L*((gtu23*J12L +
+ gtu33*J13L)*PDstandardNth13alpha + gtu13*(J21L*PDstandardNth23alpha +
+ J31L*PDstandardNth33alpha) + (cdphi2*gtu23 +
cdphi3*gtu33)*PDstandardNth3alpha)) +
PDstandardNth1alpha*(gtu11*(dJ111L + 2*cdphi1*J11L) + gtu22*(dJ122L +
- 2*cdphi2*J12L) + gtu33*(dJ133L + 2*cdphi3*J13L) + 2*(dJ112L*gtu21 +
- dJ113L*gtu31 + dJ123L*gtu32 + cdphi2*gtu21*J11L + cdphi3*gtu31*J11L +
- cdphi1*gtu21*J12L + cdphi3*gtu32*J12L + cdphi1*gtu31*J13L +
- cdphi2*gtu32*J13L) - J11L*Xtn1 - J12L*Xtn2 - J13L*Xtn3) +
+ 2*cdphi2*J12L) + gtu33*(dJ133L + 2*cdphi3*J13L) + 2*(dJ112L*gtu12 +
+ dJ113L*gtu13 + dJ123L*gtu23 + cdphi2*gtu12*J11L + cdphi3*gtu13*J11L +
+ cdphi1*gtu12*J12L + cdphi3*gtu23*J12L + cdphi1*gtu13*J13L +
+ cdphi2*gtu23*J13L) - J11L*Xtn1 - J12L*Xtn2 - J13L*Xtn3) +
PDstandardNth2alpha*(gtu11*(dJ211L + 2*cdphi1*J21L) + gtu22*(dJ222L +
- 2*cdphi2*J22L) + gtu33*(dJ233L + 2*cdphi3*J23L) + 2*(dJ212L*gtu21 +
- dJ213L*gtu31 + dJ223L*gtu32 + cdphi2*gtu21*J21L + cdphi3*gtu31*J21L +
- cdphi1*gtu21*J22L + cdphi3*gtu32*J22L + cdphi1*gtu31*J23L +
- cdphi2*gtu32*J23L) - J21L*Xtn1 - J22L*Xtn2 - J23L*Xtn3) +
+ 2*cdphi2*J22L) + gtu33*(dJ233L + 2*cdphi3*J23L) + 2*(dJ212L*gtu12 +
+ dJ213L*gtu13 + dJ223L*gtu23 + cdphi2*gtu12*J21L + cdphi3*gtu13*J21L +
+ cdphi1*gtu12*J22L + cdphi3*gtu23*J22L + cdphi1*gtu13*J23L +
+ cdphi2*gtu23*J23L) - J21L*Xtn1 - J22L*Xtn2 - J23L*Xtn3) +
PDstandardNth3alpha*(dJ322L*gtu22 + dJ333L*gtu33 + gtu11*(dJ311L +
- 2*cdphi1*J31L) + 2*(dJ313L*gtu31 + dJ323L*gtu32 + cdphi1*gtu21*J32L +
- cdphi1*gtu31*J33L) - J31L*Xtn1 - J32L*Xtn2 - J33L*Xtn3) +
+ 2*cdphi1*J31L) + 2*(dJ313L*gtu13 + dJ323L*gtu23 + cdphi1*gtu12*J32L +
+ cdphi1*gtu13*J33L) - J31L*Xtn1 - J32L*Xtn2 - J33L*Xtn3) +
PDstandardNth11alpha*(gtu11*SQR(J11L) + gtu22*SQR(J12L) +
gtu33*SQR(J13L)) + PDstandardNth22alpha*(gtu11*SQR(J21L) +
gtu22*SQR(J22L) + gtu33*SQR(J23L)) +
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.c b/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.c
index edda1f0..ddb1b62 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHS2.c
@@ -20,6 +20,18 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_RHS2_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_curvrhs.");
+ return;
+}
+
void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -454,13 +466,13 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -539,104 +551,104 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL Gtl333 = khalf*(J13L*PDstandardNth1gt33 +
J23L*PDstandardNth2gt33 + J33L*PDstandardNth3gt33);
- CCTK_REAL Gtlu111 = Gtl111*gtu11 + Gtl112*gtu21 + Gtl113*gtu31;
+ CCTK_REAL Gtlu111 = Gtl111*gtu11 + Gtl112*gtu12 + Gtl113*gtu13;
- CCTK_REAL Gtlu112 = Gtl111*gtu21 + Gtl112*gtu22 + Gtl113*gtu32;
+ CCTK_REAL Gtlu112 = Gtl111*gtu12 + Gtl112*gtu22 + Gtl113*gtu23;
- CCTK_REAL Gtlu113 = Gtl111*gtu31 + Gtl112*gtu32 + Gtl113*gtu33;
+ CCTK_REAL Gtlu113 = Gtl111*gtu13 + Gtl112*gtu23 + Gtl113*gtu33;
- CCTK_REAL Gtlu121 = Gtl112*gtu11 + Gtl122*gtu21 + Gtl123*gtu31;
+ CCTK_REAL Gtlu121 = Gtl112*gtu11 + Gtl122*gtu12 + Gtl123*gtu13;
- CCTK_REAL Gtlu122 = Gtl112*gtu21 + Gtl122*gtu22 + Gtl123*gtu32;
+ CCTK_REAL Gtlu122 = Gtl112*gtu12 + Gtl122*gtu22 + Gtl123*gtu23;
- CCTK_REAL Gtlu123 = Gtl112*gtu31 + Gtl122*gtu32 + Gtl123*gtu33;
+ CCTK_REAL Gtlu123 = Gtl112*gtu13 + Gtl122*gtu23 + Gtl123*gtu33;
- CCTK_REAL Gtlu131 = Gtl113*gtu11 + Gtl123*gtu21 + Gtl133*gtu31;
+ CCTK_REAL Gtlu131 = Gtl113*gtu11 + Gtl123*gtu12 + Gtl133*gtu13;
- CCTK_REAL Gtlu132 = Gtl113*gtu21 + Gtl123*gtu22 + Gtl133*gtu32;
+ CCTK_REAL Gtlu132 = Gtl113*gtu12 + Gtl123*gtu22 + Gtl133*gtu23;
- CCTK_REAL Gtlu133 = Gtl113*gtu31 + Gtl123*gtu32 + Gtl133*gtu33;
+ CCTK_REAL Gtlu133 = Gtl113*gtu13 + Gtl123*gtu23 + Gtl133*gtu33;
- CCTK_REAL Gtlu211 = Gtl211*gtu11 + Gtl212*gtu21 + Gtl213*gtu31;
+ CCTK_REAL Gtlu211 = Gtl211*gtu11 + Gtl212*gtu12 + Gtl213*gtu13;
- CCTK_REAL Gtlu212 = Gtl211*gtu21 + Gtl212*gtu22 + Gtl213*gtu32;
+ CCTK_REAL Gtlu212 = Gtl211*gtu12 + Gtl212*gtu22 + Gtl213*gtu23;
- CCTK_REAL Gtlu213 = Gtl211*gtu31 + Gtl212*gtu32 + Gtl213*gtu33;
+ CCTK_REAL Gtlu213 = Gtl211*gtu13 + Gtl212*gtu23 + Gtl213*gtu33;
- CCTK_REAL Gtlu221 = Gtl212*gtu11 + Gtl222*gtu21 + Gtl223*gtu31;
+ CCTK_REAL Gtlu221 = Gtl212*gtu11 + Gtl222*gtu12 + Gtl223*gtu13;
- CCTK_REAL Gtlu222 = Gtl212*gtu21 + Gtl222*gtu22 + Gtl223*gtu32;
+ CCTK_REAL Gtlu222 = Gtl212*gtu12 + Gtl222*gtu22 + Gtl223*gtu23;
- CCTK_REAL Gtlu223 = Gtl212*gtu31 + Gtl222*gtu32 + Gtl223*gtu33;
+ CCTK_REAL Gtlu223 = Gtl212*gtu13 + Gtl222*gtu23 + Gtl223*gtu33;
- CCTK_REAL Gtlu231 = Gtl213*gtu11 + Gtl223*gtu21 + Gtl233*gtu31;
+ CCTK_REAL Gtlu231 = Gtl213*gtu11 + Gtl223*gtu12 + Gtl233*gtu13;
- CCTK_REAL Gtlu232 = Gtl213*gtu21 + Gtl223*gtu22 + Gtl233*gtu32;
+ CCTK_REAL Gtlu232 = Gtl213*gtu12 + Gtl223*gtu22 + Gtl233*gtu23;
- CCTK_REAL Gtlu233 = Gtl213*gtu31 + Gtl223*gtu32 + Gtl233*gtu33;
+ CCTK_REAL Gtlu233 = Gtl213*gtu13 + Gtl223*gtu23 + Gtl233*gtu33;
- CCTK_REAL Gtlu311 = Gtl311*gtu11 + Gtl312*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gtlu311 = Gtl311*gtu11 + Gtl312*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gtlu312 = Gtl311*gtu21 + Gtl312*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gtlu312 = Gtl311*gtu12 + Gtl312*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gtlu313 = Gtl311*gtu31 + Gtl312*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gtlu313 = Gtl311*gtu13 + Gtl312*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gtlu321 = Gtl312*gtu11 + Gtl322*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gtlu321 = Gtl312*gtu11 + Gtl322*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gtlu322 = Gtl312*gtu21 + Gtl322*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gtlu322 = Gtl312*gtu12 + Gtl322*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gtlu323 = Gtl312*gtu31 + Gtl322*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gtlu323 = Gtl312*gtu13 + Gtl322*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gtlu331 = Gtl313*gtu11 + Gtl323*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gtlu331 = Gtl313*gtu11 + Gtl323*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gtlu332 = Gtl313*gtu21 + Gtl323*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gtlu332 = Gtl313*gtu12 + Gtl323*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gtlu333 = Gtl313*gtu31 + Gtl323*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gtlu333 = Gtl313*gtu13 + Gtl323*gtu23 + Gtl333*gtu33;
- CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu21 + Gtl311*gtu31;
+ CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu12 + Gtl311*gtu13;
- CCTK_REAL Gt211 = Gtl111*gtu21 + Gtl211*gtu22 + Gtl311*gtu32;
+ CCTK_REAL Gt211 = Gtl111*gtu12 + Gtl211*gtu22 + Gtl311*gtu23;
- CCTK_REAL Gt311 = Gtl111*gtu31 + Gtl211*gtu32 + Gtl311*gtu33;
+ CCTK_REAL Gt311 = Gtl111*gtu13 + Gtl211*gtu23 + Gtl311*gtu33;
- CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu21 + Gtl312*gtu31;
+ CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu12 + Gtl312*gtu13;
- CCTK_REAL Gt212 = Gtl112*gtu21 + Gtl212*gtu22 + Gtl312*gtu32;
+ CCTK_REAL Gt212 = Gtl112*gtu12 + Gtl212*gtu22 + Gtl312*gtu23;
- CCTK_REAL Gt312 = Gtl112*gtu31 + Gtl212*gtu32 + Gtl312*gtu33;
+ CCTK_REAL Gt312 = Gtl112*gtu13 + Gtl212*gtu23 + Gtl312*gtu33;
- CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gt213 = Gtl113*gtu21 + Gtl213*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gt213 = Gtl113*gtu12 + Gtl213*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gt313 = Gtl113*gtu31 + Gtl213*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gt313 = Gtl113*gtu13 + Gtl213*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu21 + Gtl322*gtu31;
+ CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu12 + Gtl322*gtu13;
- CCTK_REAL Gt222 = Gtl122*gtu21 + Gtl222*gtu22 + Gtl322*gtu32;
+ CCTK_REAL Gt222 = Gtl122*gtu12 + Gtl222*gtu22 + Gtl322*gtu23;
- CCTK_REAL Gt322 = Gtl122*gtu31 + Gtl222*gtu32 + Gtl322*gtu33;
+ CCTK_REAL Gt322 = Gtl122*gtu13 + Gtl222*gtu23 + Gtl322*gtu33;
- CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gt223 = Gtl123*gtu21 + Gtl223*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gt223 = Gtl123*gtu12 + Gtl223*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gt323 = Gtl123*gtu31 + Gtl223*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gt323 = Gtl123*gtu13 + Gtl223*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gt233 = Gtl133*gtu21 + Gtl233*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gt233 = Gtl133*gtu12 + Gtl233*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gt333 = Gtl133*gtu31 + Gtl233*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gt333 = Gtl133*gtu13 + Gtl233*gtu23 + Gtl333*gtu33;
- CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL Rt11 = 3*(Gt111*Gtlu111 + Gt112*Gtlu112 + Gt113*Gtlu113) +
2*(Gt211*Gtlu121 + Gt212*Gtlu122 + Gt213*Gtlu123 + Gt311*Gtlu131 +
@@ -647,19 +659,19 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
gt12L*PDstandardNth2Xt2 + gt13L*PDstandardNth2Xt3) +
J31L*(gt11L*PDstandardNth3Xt1 + gt12L*PDstandardNth3Xt2 +
gt13L*PDstandardNth3Xt3) + Gtl111*Xtn1 + Gtl112*Xtn2 + Gtl113*Xtn3 +
- khalf*(-2*(gtu21*(J11L*J12L*PDstandardNth11gt11 +
+ khalf*(-2*(gtu12*(J11L*J12L*PDstandardNth11gt11 +
J12L*J21L*PDstandardNth12gt11 + J11L*J22L*PDstandardNth12gt11 +
J12L*J31L*PDstandardNth13gt11 + J11L*J32L*PDstandardNth13gt11 +
dJ112L*PDstandardNth1gt11 + J21L*J22L*PDstandardNth22gt11 +
J22L*J31L*PDstandardNth23gt11 + J21L*J32L*PDstandardNth23gt11 +
dJ212L*PDstandardNth2gt11 + J31L*J32L*PDstandardNth33gt11 +
- dJ312L*PDstandardNth3gt11) + gtu31*(J11L*J13L*PDstandardNth11gt11 +
+ dJ312L*PDstandardNth3gt11) + gtu13*(J11L*J13L*PDstandardNth11gt11 +
J13L*J21L*PDstandardNth12gt11 + J11L*J23L*PDstandardNth12gt11 +
J13L*J31L*PDstandardNth13gt11 + J11L*J33L*PDstandardNth13gt11 +
dJ113L*PDstandardNth1gt11 + J21L*J23L*PDstandardNth22gt11 +
J23L*J31L*PDstandardNth23gt11 + J21L*J33L*PDstandardNth23gt11 +
dJ213L*PDstandardNth2gt11 + J31L*J33L*PDstandardNth33gt11 +
- dJ313L*PDstandardNth3gt11) + gtu32*(J12L*J13L*PDstandardNth11gt11 +
+ dJ313L*PDstandardNth3gt11) + gtu23*(J12L*J13L*PDstandardNth11gt11 +
J13L*J22L*PDstandardNth12gt11 + J12L*J23L*PDstandardNth12gt11 +
J13L*J32L*PDstandardNth13gt11 + J12L*J33L*PDstandardNth13gt11 +
dJ123L*PDstandardNth1gt11 + J22L*J23L*PDstandardNth22gt11 +
@@ -692,19 +704,19 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
gt13L*J12L)*PDstandardNth1Xt3 + (gt12L*J21L +
gt11L*J22L)*PDstandardNth2Xt1 + (gt22L*J21L +
gt12L*J22L)*PDstandardNth2Xt2 + (gt23L*J21L +
- gt13L*J22L)*PDstandardNth2Xt3 - 2*(gtu21*(J11L*J12L*PDstandardNth11gt12
+ gt13L*J22L)*PDstandardNth2Xt3 - 2*(gtu12*(J11L*J12L*PDstandardNth11gt12
+ J12L*J21L*PDstandardNth12gt12 + J11L*J22L*PDstandardNth12gt12 +
J12L*J31L*PDstandardNth13gt12 + J11L*J32L*PDstandardNth13gt12 +
dJ112L*PDstandardNth1gt12 + J21L*J22L*PDstandardNth22gt12 +
J22L*J31L*PDstandardNth23gt12 + J21L*J32L*PDstandardNth23gt12 +
dJ212L*PDstandardNth2gt12 + J31L*J32L*PDstandardNth33gt12 +
- dJ312L*PDstandardNth3gt12) + gtu31*(J11L*J13L*PDstandardNth11gt12 +
+ dJ312L*PDstandardNth3gt12) + gtu13*(J11L*J13L*PDstandardNth11gt12 +
J13L*J21L*PDstandardNth12gt12 + J11L*J23L*PDstandardNth12gt12 +
J13L*J31L*PDstandardNth13gt12 + J11L*J33L*PDstandardNth13gt12 +
dJ113L*PDstandardNth1gt12 + J21L*J23L*PDstandardNth22gt12 +
J23L*J31L*PDstandardNth23gt12 + J21L*J33L*PDstandardNth23gt12 +
dJ213L*PDstandardNth2gt12 + J31L*J33L*PDstandardNth33gt12 +
- dJ313L*PDstandardNth3gt12) + gtu32*(J12L*J13L*PDstandardNth11gt12 +
+ dJ313L*PDstandardNth3gt12) + gtu23*(J12L*J13L*PDstandardNth11gt12 +
J13L*J22L*PDstandardNth12gt12 + J12L*J23L*PDstandardNth12gt12 +
J13L*J32L*PDstandardNth13gt12 + J12L*J33L*PDstandardNth13gt12 +
dJ123L*PDstandardNth1gt12 + J22L*J23L*PDstandardNth22gt12 +
@@ -742,19 +754,19 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
gt13L*J13L)*PDstandardNth1Xt3 + (gt13L*J21L +
gt11L*J23L)*PDstandardNth2Xt1 + (gt23L*J21L +
gt12L*J23L)*PDstandardNth2Xt2 + (gt33L*J21L +
- gt13L*J23L)*PDstandardNth2Xt3 - 2*(gtu21*(J11L*J12L*PDstandardNth11gt13
+ gt13L*J23L)*PDstandardNth2Xt3 - 2*(gtu12*(J11L*J12L*PDstandardNth11gt13
+ J12L*J21L*PDstandardNth12gt13 + J11L*J22L*PDstandardNth12gt13 +
J12L*J31L*PDstandardNth13gt13 + J11L*J32L*PDstandardNth13gt13 +
dJ112L*PDstandardNth1gt13 + J21L*J22L*PDstandardNth22gt13 +
J22L*J31L*PDstandardNth23gt13 + J21L*J32L*PDstandardNth23gt13 +
dJ212L*PDstandardNth2gt13 + J31L*J32L*PDstandardNth33gt13 +
- dJ312L*PDstandardNth3gt13) + gtu31*(J11L*J13L*PDstandardNth11gt13 +
+ dJ312L*PDstandardNth3gt13) + gtu13*(J11L*J13L*PDstandardNth11gt13 +
J13L*J21L*PDstandardNth12gt13 + J11L*J23L*PDstandardNth12gt13 +
J13L*J31L*PDstandardNth13gt13 + J11L*J33L*PDstandardNth13gt13 +
dJ113L*PDstandardNth1gt13 + J21L*J23L*PDstandardNth22gt13 +
J23L*J31L*PDstandardNth23gt13 + J21L*J33L*PDstandardNth23gt13 +
dJ213L*PDstandardNth2gt13 + J31L*J33L*PDstandardNth33gt13 +
- dJ313L*PDstandardNth3gt13) + gtu32*(J12L*J13L*PDstandardNth11gt13 +
+ dJ313L*PDstandardNth3gt13) + gtu23*(J12L*J13L*PDstandardNth11gt13 +
J13L*J22L*PDstandardNth12gt13 + J12L*J23L*PDstandardNth12gt13 +
J13L*J32L*PDstandardNth13gt13 + J12L*J33L*PDstandardNth13gt13 +
dJ123L*PDstandardNth1gt13 + J22L*J23L*PDstandardNth22gt13 +
@@ -790,19 +802,19 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
gt22L*PDstandardNth2Xt2 + gt23L*PDstandardNth2Xt3) +
J32L*(gt12L*PDstandardNth3Xt1 + gt22L*PDstandardNth3Xt2 +
gt23L*PDstandardNth3Xt3) + Gtl212*Xtn1 + Gtl222*Xtn2 + Gtl223*Xtn3 +
- khalf*(-2*(gtu21*(J11L*J12L*PDstandardNth11gt22 +
+ khalf*(-2*(gtu12*(J11L*J12L*PDstandardNth11gt22 +
J12L*J21L*PDstandardNth12gt22 + J11L*J22L*PDstandardNth12gt22 +
J12L*J31L*PDstandardNth13gt22 + J11L*J32L*PDstandardNth13gt22 +
dJ112L*PDstandardNth1gt22 + J21L*J22L*PDstandardNth22gt22 +
J22L*J31L*PDstandardNth23gt22 + J21L*J32L*PDstandardNth23gt22 +
dJ212L*PDstandardNth2gt22 + J31L*J32L*PDstandardNth33gt22 +
- dJ312L*PDstandardNth3gt22) + gtu31*(J11L*J13L*PDstandardNth11gt22 +
+ dJ312L*PDstandardNth3gt22) + gtu13*(J11L*J13L*PDstandardNth11gt22 +
J13L*J21L*PDstandardNth12gt22 + J11L*J23L*PDstandardNth12gt22 +
J13L*J31L*PDstandardNth13gt22 + J11L*J33L*PDstandardNth13gt22 +
dJ113L*PDstandardNth1gt22 + J21L*J23L*PDstandardNth22gt22 +
J23L*J31L*PDstandardNth23gt22 + J21L*J33L*PDstandardNth23gt22 +
dJ213L*PDstandardNth2gt22 + J31L*J33L*PDstandardNth33gt22 +
- dJ313L*PDstandardNth3gt22) + gtu32*(J12L*J13L*PDstandardNth11gt22 +
+ dJ313L*PDstandardNth3gt22) + gtu23*(J12L*J13L*PDstandardNth11gt22 +
J13L*J22L*PDstandardNth12gt22 + J12L*J23L*PDstandardNth12gt22 +
J13L*J32L*PDstandardNth13gt22 + J12L*J33L*PDstandardNth13gt22 +
dJ123L*PDstandardNth1gt22 + J22L*J23L*PDstandardNth22gt22 +
@@ -834,19 +846,19 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
gt23L*J13L)*PDstandardNth1Xt3 + (gt13L*J22L +
gt12L*J23L)*PDstandardNth2Xt1 + (gt23L*J22L +
gt22L*J23L)*PDstandardNth2Xt2 + (gt33L*J22L +
- gt23L*J23L)*PDstandardNth2Xt3 - 2*(gtu21*(J11L*J12L*PDstandardNth11gt23
+ gt23L*J23L)*PDstandardNth2Xt3 - 2*(gtu12*(J11L*J12L*PDstandardNth11gt23
+ J12L*J21L*PDstandardNth12gt23 + J11L*J22L*PDstandardNth12gt23 +
J12L*J31L*PDstandardNth13gt23 + J11L*J32L*PDstandardNth13gt23 +
dJ112L*PDstandardNth1gt23 + J21L*J22L*PDstandardNth22gt23 +
J22L*J31L*PDstandardNth23gt23 + J21L*J32L*PDstandardNth23gt23 +
dJ212L*PDstandardNth2gt23 + J31L*J32L*PDstandardNth33gt23 +
- dJ312L*PDstandardNth3gt23) + gtu31*(J11L*J13L*PDstandardNth11gt23 +
+ dJ312L*PDstandardNth3gt23) + gtu13*(J11L*J13L*PDstandardNth11gt23 +
J13L*J21L*PDstandardNth12gt23 + J11L*J23L*PDstandardNth12gt23 +
J13L*J31L*PDstandardNth13gt23 + J11L*J33L*PDstandardNth13gt23 +
dJ113L*PDstandardNth1gt23 + J21L*J23L*PDstandardNth22gt23 +
J23L*J31L*PDstandardNth23gt23 + J21L*J33L*PDstandardNth23gt23 +
dJ213L*PDstandardNth2gt23 + J31L*J33L*PDstandardNth33gt23 +
- dJ313L*PDstandardNth3gt23) + gtu32*(J12L*J13L*PDstandardNth11gt23 +
+ dJ313L*PDstandardNth3gt23) + gtu23*(J12L*J13L*PDstandardNth11gt23 +
J13L*J22L*PDstandardNth12gt23 + J12L*J23L*PDstandardNth12gt23 +
J13L*J32L*PDstandardNth13gt23 + J12L*J33L*PDstandardNth13gt23 +
dJ123L*PDstandardNth1gt23 + J22L*J23L*PDstandardNth22gt23 +
@@ -882,19 +894,19 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
gt23L*PDstandardNth2Xt2 + gt33L*PDstandardNth2Xt3) +
J33L*(gt13L*PDstandardNth3Xt1 + gt23L*PDstandardNth3Xt2 +
gt33L*PDstandardNth3Xt3) + Gtl313*Xtn1 + Gtl323*Xtn2 + Gtl333*Xtn3 +
- khalf*(-2*(gtu21*(J11L*J12L*PDstandardNth11gt33 +
+ khalf*(-2*(gtu12*(J11L*J12L*PDstandardNth11gt33 +
J12L*J21L*PDstandardNth12gt33 + J11L*J22L*PDstandardNth12gt33 +
J12L*J31L*PDstandardNth13gt33 + J11L*J32L*PDstandardNth13gt33 +
dJ112L*PDstandardNth1gt33 + J21L*J22L*PDstandardNth22gt33 +
J22L*J31L*PDstandardNth23gt33 + J21L*J32L*PDstandardNth23gt33 +
dJ212L*PDstandardNth2gt33 + J31L*J32L*PDstandardNth33gt33 +
- dJ312L*PDstandardNth3gt33) + gtu31*(J11L*J13L*PDstandardNth11gt33 +
+ dJ312L*PDstandardNth3gt33) + gtu13*(J11L*J13L*PDstandardNth11gt33 +
J13L*J21L*PDstandardNth12gt33 + J11L*J23L*PDstandardNth12gt33 +
J13L*J31L*PDstandardNth13gt33 + J11L*J33L*PDstandardNth13gt33 +
dJ113L*PDstandardNth1gt33 + J21L*J23L*PDstandardNth22gt33 +
J23L*J31L*PDstandardNth23gt33 + J21L*J33L*PDstandardNth23gt33 +
dJ213L*PDstandardNth2gt33 + J31L*J33L*PDstandardNth33gt33 +
- dJ313L*PDstandardNth3gt33) + gtu32*(J12L*J13L*PDstandardNth11gt33 +
+ dJ313L*PDstandardNth3gt33) + gtu23*(J12L*J13L*PDstandardNth11gt33 +
J13L*J22L*PDstandardNth12gt33 + J12L*J23L*PDstandardNth12gt33 +
J13L*J32L*PDstandardNth13gt33 + J12L*J33L*PDstandardNth13gt33 +
dJ123L*PDstandardNth1gt33 + J22L*J23L*PDstandardNth22gt33 +
@@ -996,58 +1008,58 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
J23L*PDstandardNth2phi + J33L*PDstandardNth3phi);
CCTK_REAL Rphi11 = -2*(cdphi211 + 2*(-1 + gt11L*gtu11)*SQR(cdphi1) +
- gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu21 + cdphi3*gtu31) +
- cdphi2*cdphi3*gtu32) + cdphi233*gtu33 + gtu22*(cdphi222 +
- 2*SQR(cdphi2)) + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu12 + cdphi3*gtu13) +
+ cdphi2*cdphi3*gtu23) + cdphi233*gtu33 + gtu22*(cdphi222 +
+ 2*SQR(cdphi2)) + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu21)
- + 4*cdphi3*gt12L*gtu31) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu32
- + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu12)
+ + 4*cdphi3*gt12L*gtu13) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu23
+ + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2)) + gtu33*(cdphi233
+ 2*SQR(cdphi3))));
- CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu21 +
- cdphi3*(-2 + 4*gt13L*gtu31)) + gt13L*(cdphi211*gtu11 +
- 4*cdphi2*cdphi3*gtu32 + 2*(cdphi212*gtu21 + cdphi213*gtu31 +
- cdphi223*gtu32 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu12 +
+ cdphi3*(-2 + 4*gt13L*gtu13)) + gt13L*(cdphi211*gtu11 +
+ 4*cdphi2*cdphi3*gtu23 + 2*(cdphi212*gtu12 + cdphi213*gtu13 +
+ cdphi223*gtu23 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ gtu33*(cdphi233 + 2*SQR(cdphi3))));
CCTK_REAL Rphi22 = -2*(cdphi222 + 2*(-1 + gt22L*gtu22)*SQR(cdphi2) +
- gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu31 + cdphi2*(cdphi1*gtu21 +
- cdphi3*gtu32)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu13 + cdphi2*(cdphi1*gtu12 +
+ cdphi3*gtu23)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
+ 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu21 +
- cdphi3*(-2 + 4*gt23L*gtu32)) + gt23L*(cdphi222*gtu22 +
- 4*cdphi1*cdphi3*gtu31 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
- gtu22*SQR(cdphi2)) + gtu33*(cdphi233 + 2*SQR(cdphi3))));
+ CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu12 +
+ cdphi3*(-2 + 4*gt23L*gtu23)) + gt23L*(4*cdphi1*cdphi3*gtu13 +
+ cdphi222*gtu22 + gtu11*(cdphi211 + 2*SQR(cdphi1)) + 2*(cdphi212*gtu12 +
+ cdphi213*gtu13 + cdphi223*gtu23 + gtu22*SQR(cdphi2)) + gtu33*(cdphi233
+ + 2*SQR(cdphi3))));
CCTK_REAL Rphi33 = -2*(cdphi233 + gt33L*((4*cdphi1*cdphi2 +
- 2*cdphi212)*gtu21 + 4*cdphi3*(cdphi1*gtu31 + cdphi2*gtu32) +
- 2*(cdphi213*gtu31 + cdphi223*gtu32) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*cdphi212)*gtu12 + 4*cdphi3*(cdphi1*gtu13 + cdphi2*gtu23) +
+ 2*(cdphi213*gtu13 + cdphi223*gtu23) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))) + 2*(-1 +
gt33L*gtu33)*SQR(cdphi3));
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
CCTK_REAL e4phi = IfThen(conformalMethod,pow(phiL,-2),exp(4*phiL));
@@ -1067,13 +1079,13 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -1089,8 +1101,8 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL R33 = Rphi33 + Rt33;
- CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu21 +
- eTxzL*gtu31 + eTyzL*gtu32) + eTzzL*gtu33);
+ CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu12 +
+ eTxzL*gtu13 + eTyzL*gtu23) + eTzzL*gtu33);
CCTK_REAL Ats11 = (-dJ111L + 4*cdphi1*J11L + Gt111*J11L + Gt211*J12L +
Gt311*J13L)*PDstandardNth1alpha - 2*(J11L*J21L*PDstandardNth12alpha +
@@ -1158,8 +1170,8 @@ void ML_BSSN_MP_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
PDstandardNth11alpha*SQR(J13L) - PDstandardNth22alpha*SQR(J23L) -
PDstandardNth33alpha*SQR(J33L);
- CCTK_REAL trAts = Ats11*gu11 + Ats22*gu22 + 2*(Ats12*gu21 + Ats13*gu31
- + Ats23*gu32) + Ats33*gu33;
+ CCTK_REAL trAts = Ats11*gu11 + Ats22*gu22 + 2*(Ats12*gu12 + Ats13*gu13
+ + Ats23*gu23) + Ats33*gu33;
CCTK_REAL At11rhsL = (epsdiss1*J11L + epsdiss2*J12L +
epsdiss3*J13L)*PDdissipationNth1At11 + (epsdiss1*J21L + epsdiss2*J22L +
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHSRadiativeBoundary.c b/ML_BSSN_MP/src/ML_BSSN_MP_RHSRadiativeBoundary.c
index 12791d7..07ffc36 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_RHSRadiativeBoundary.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHSRadiativeBoundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_RHSRadiativeBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_MP_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -140,13 +176,13 @@ void ML_BSSN_MP_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -154,13 +190,13 @@ void ML_BSSN_MP_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -170,11 +206,11 @@ void ML_BSSN_MP_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL nn3 = normal[2];
- CCTK_REAL nu1 = gu11*nn1 + gu21*nn2 + gu31*nn3;
+ CCTK_REAL nu1 = gu11*nn1 + gu12*nn2 + gu13*nn3;
- CCTK_REAL nu2 = gu21*nn1 + gu22*nn2 + gu32*nn3;
+ CCTK_REAL nu2 = gu12*nn1 + gu22*nn2 + gu23*nn3;
- CCTK_REAL nu3 = gu31*nn1 + gu32*nn2 + gu33*nn3;
+ CCTK_REAL nu3 = gu13*nn1 + gu23*nn2 + gu33*nn3;
CCTK_REAL nlen2 = nn1*nu1 + nn2*nu2 + nn3*nu3;
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.c b/ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.c
index c34d81e..a505bfd 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_RHSStaticBoundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_MP_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_boundary.c b/ML_BSSN_MP/src/ML_BSSN_MP_boundary.c
index 0b11243..f484db3 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_boundary.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_boundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_curv.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtshift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_lapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_lapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_log_confac","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_log_confac.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_metric","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_metric.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_shift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_trace_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_trace_curv.");
+ return;
+}
+
void ML_BSSN_MP_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_constraints.c b/ML_BSSN_MP/src/ML_BSSN_MP_constraints.c
index 23561db..03e95e8 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_constraints.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_constraints.c
@@ -20,6 +20,30 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_constraints_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_cons_detg","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_cons_detg.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_cons_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_cons_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_cons_traceA","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_cons_traceA.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_mom.");
+ return;
+}
+
void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -344,61 +368,61 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
- CCTK_REAL Gt111 = khalf*((gtu11*J11L - gtu21*J12L -
- gtu31*J13L)*PDstandardNth1gt11 + (gtu11*J21L - gtu21*J22L -
- gtu31*J23L)*PDstandardNth2gt11 + (gtu11*J31L - gtu21*J32L -
- gtu31*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu21*PDstandardNth1gt12 +
- gtu31*PDstandardNth1gt13) + J21L*(gtu21*PDstandardNth2gt12 +
- gtu31*PDstandardNth2gt13) + J31L*(gtu21*PDstandardNth3gt12 +
- gtu31*PDstandardNth3gt13)));
-
- CCTK_REAL Gt211 = khalf*((gtu21*J11L - gtu22*J12L -
- gtu32*J13L)*PDstandardNth1gt11 + (gtu21*J21L - gtu22*J22L -
- gtu32*J23L)*PDstandardNth2gt11 + (gtu21*J31L - gtu22*J32L -
- gtu32*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu22*PDstandardNth1gt12 +
- gtu32*PDstandardNth1gt13) + J21L*(gtu22*PDstandardNth2gt12 +
- gtu32*PDstandardNth2gt13) + J31L*(gtu22*PDstandardNth3gt12 +
- gtu32*PDstandardNth3gt13)));
-
- CCTK_REAL Gt311 = khalf*((gtu31*J11L - gtu32*J12L -
- gtu33*J13L)*PDstandardNth1gt11 + (gtu31*J21L - gtu32*J22L -
- gtu33*J23L)*PDstandardNth2gt11 + (gtu31*J31L - gtu32*J32L -
- gtu33*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu32*PDstandardNth1gt12 +
- gtu33*PDstandardNth1gt13) + J21L*(gtu32*PDstandardNth2gt12 +
- gtu33*PDstandardNth2gt13) + J31L*(gtu32*PDstandardNth3gt12 +
+ CCTK_REAL Gt111 = khalf*((gtu11*J11L - gtu12*J12L -
+ gtu13*J13L)*PDstandardNth1gt11 + (gtu11*J21L - gtu12*J22L -
+ gtu13*J23L)*PDstandardNth2gt11 + (gtu11*J31L - gtu12*J32L -
+ gtu13*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu12*PDstandardNth1gt12 +
+ gtu13*PDstandardNth1gt13) + J21L*(gtu12*PDstandardNth2gt12 +
+ gtu13*PDstandardNth2gt13) + J31L*(gtu12*PDstandardNth3gt12 +
+ gtu13*PDstandardNth3gt13)));
+
+ CCTK_REAL Gt211 = khalf*((gtu12*J11L - gtu22*J12L -
+ gtu23*J13L)*PDstandardNth1gt11 + (gtu12*J21L - gtu22*J22L -
+ gtu23*J23L)*PDstandardNth2gt11 + (gtu12*J31L - gtu22*J32L -
+ gtu23*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu22*PDstandardNth1gt12 +
+ gtu23*PDstandardNth1gt13) + J21L*(gtu22*PDstandardNth2gt12 +
+ gtu23*PDstandardNth2gt13) + J31L*(gtu22*PDstandardNth3gt12 +
+ gtu23*PDstandardNth3gt13)));
+
+ CCTK_REAL Gt311 = khalf*((gtu13*J11L - gtu23*J12L -
+ gtu33*J13L)*PDstandardNth1gt11 + (gtu13*J21L - gtu23*J22L -
+ gtu33*J23L)*PDstandardNth2gt11 + (gtu13*J31L - gtu23*J32L -
+ gtu33*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu23*PDstandardNth1gt12 +
+ gtu33*PDstandardNth1gt13) + J21L*(gtu23*PDstandardNth2gt12 +
+ gtu33*PDstandardNth2gt13) + J31L*(gtu23*PDstandardNth3gt12 +
gtu33*PDstandardNth3gt13)));
CCTK_REAL Gt112 = khalf*(gtu11*(J12L*PDstandardNth1gt11 +
J22L*PDstandardNth2gt11 + J32L*PDstandardNth3gt11) +
- gtu21*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
- J31L*PDstandardNth3gt22) + gtu31*(-(J13L*PDstandardNth1gt12) +
+ gtu12*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
+ J31L*PDstandardNth3gt22) + gtu13*(-(J13L*PDstandardNth1gt12) +
J12L*PDstandardNth1gt13 + J11L*PDstandardNth1gt23 -
J23L*PDstandardNth2gt12 + J22L*PDstandardNth2gt13 +
J21L*PDstandardNth2gt23 - J33L*PDstandardNth3gt12 +
J32L*PDstandardNth3gt13 + J31L*PDstandardNth3gt23));
- CCTK_REAL Gt212 = khalf*(gtu21*(J12L*PDstandardNth1gt11 +
+ CCTK_REAL Gt212 = khalf*(gtu12*(J12L*PDstandardNth1gt11 +
J22L*PDstandardNth2gt11 + J32L*PDstandardNth3gt11) +
gtu22*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
- J31L*PDstandardNth3gt22) + gtu32*(-(J13L*PDstandardNth1gt12) +
+ J31L*PDstandardNth3gt22) + gtu23*(-(J13L*PDstandardNth1gt12) +
J12L*PDstandardNth1gt13 + J11L*PDstandardNth1gt23 -
J23L*PDstandardNth2gt12 + J22L*PDstandardNth2gt13 +
J21L*PDstandardNth2gt23 - J33L*PDstandardNth3gt12 +
J32L*PDstandardNth3gt13 + J31L*PDstandardNth3gt23));
- CCTK_REAL Gt312 = khalf*(gtu31*(J12L*PDstandardNth1gt11 +
+ CCTK_REAL Gt312 = khalf*(gtu13*(J12L*PDstandardNth1gt11 +
J22L*PDstandardNth2gt11 + J32L*PDstandardNth3gt11) +
- gtu32*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
+ gtu23*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
J31L*PDstandardNth3gt22) + gtu33*(-(J13L*PDstandardNth1gt12) +
J12L*PDstandardNth1gt13 + J11L*PDstandardNth1gt23 -
J23L*PDstandardNth2gt12 + J22L*PDstandardNth2gt13 +
@@ -407,25 +431,25 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL Gt113 = khalf*(gtu11*(J13L*PDstandardNth1gt11 +
J23L*PDstandardNth2gt11 + J33L*PDstandardNth3gt11) +
- gtu21*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
+ gtu12*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 -
J22L*PDstandardNth2gt13 + J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 - J32L*PDstandardNth3gt13 +
- J31L*PDstandardNth3gt23) + gtu31*(J11L*PDstandardNth1gt33 +
+ J31L*PDstandardNth3gt23) + gtu13*(J11L*PDstandardNth1gt33 +
J21L*PDstandardNth2gt33 + J31L*PDstandardNth3gt33));
- CCTK_REAL Gt213 = khalf*(gtu21*(J13L*PDstandardNth1gt11 +
+ CCTK_REAL Gt213 = khalf*(gtu12*(J13L*PDstandardNth1gt11 +
J23L*PDstandardNth2gt11 + J33L*PDstandardNth3gt11) +
gtu22*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 -
J22L*PDstandardNth2gt13 + J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 - J32L*PDstandardNth3gt13 +
- J31L*PDstandardNth3gt23) + gtu32*(J11L*PDstandardNth1gt33 +
+ J31L*PDstandardNth3gt23) + gtu23*(J11L*PDstandardNth1gt33 +
J21L*PDstandardNth2gt33 + J31L*PDstandardNth3gt33));
- CCTK_REAL Gt313 = khalf*(gtu31*(J13L*PDstandardNth1gt11 +
+ CCTK_REAL Gt313 = khalf*(gtu13*(J13L*PDstandardNth1gt11 +
J23L*PDstandardNth2gt11 + J33L*PDstandardNth3gt11) +
- gtu32*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
+ gtu23*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 -
J22L*PDstandardNth2gt13 + J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 - J32L*PDstandardNth3gt13 +
@@ -435,51 +459,51 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL Gt122 = khalf*(gtu11*(-(J11L*PDstandardNth1gt22) +
2*(J12L*PDstandardNth1gt12 + J22L*PDstandardNth2gt12) -
J21L*PDstandardNth2gt22 + 2*J32L*PDstandardNth3gt12 -
- J31L*PDstandardNth3gt22) + gtu21*(J12L*PDstandardNth1gt22 +
+ J31L*PDstandardNth3gt22) + gtu12*(J12L*PDstandardNth1gt22 +
J22L*PDstandardNth2gt22 + J32L*PDstandardNth3gt22) -
- gtu31*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
+ gtu13*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
J33L*PDstandardNth3gt22 - 2*(J12L*PDstandardNth1gt23 +
J22L*PDstandardNth2gt23 + J32L*PDstandardNth3gt23)));
- CCTK_REAL Gt222 = khalf*(gtu21*(-(J11L*PDstandardNth1gt22) +
+ CCTK_REAL Gt222 = khalf*(gtu12*(-(J11L*PDstandardNth1gt22) +
2*(J12L*PDstandardNth1gt12 + J22L*PDstandardNth2gt12) -
J21L*PDstandardNth2gt22 + 2*J32L*PDstandardNth3gt12 -
J31L*PDstandardNth3gt22) + gtu22*(J12L*PDstandardNth1gt22 +
J22L*PDstandardNth2gt22 + J32L*PDstandardNth3gt22) -
- gtu32*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
+ gtu23*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
J33L*PDstandardNth3gt22 - 2*(J12L*PDstandardNth1gt23 +
J22L*PDstandardNth2gt23 + J32L*PDstandardNth3gt23)));
- CCTK_REAL Gt322 = khalf*(gtu31*(-(J11L*PDstandardNth1gt22) +
+ CCTK_REAL Gt322 = khalf*(gtu13*(-(J11L*PDstandardNth1gt22) +
2*(J12L*PDstandardNth1gt12 + J22L*PDstandardNth2gt12) -
J21L*PDstandardNth2gt22 + 2*J32L*PDstandardNth3gt12 -
- J31L*PDstandardNth3gt22) + gtu32*(J12L*PDstandardNth1gt22 +
+ J31L*PDstandardNth3gt22) + gtu23*(J12L*PDstandardNth1gt22 +
J22L*PDstandardNth2gt22 + J32L*PDstandardNth3gt22) -
gtu33*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
J33L*PDstandardNth3gt22 - 2*(J12L*PDstandardNth1gt23 +
J22L*PDstandardNth2gt23 + J32L*PDstandardNth3gt23)));
- CCTK_REAL Gt123 = khalf*(gtu21*(J13L*PDstandardNth1gt22 +
+ CCTK_REAL Gt123 = khalf*(gtu12*(J13L*PDstandardNth1gt22 +
J23L*PDstandardNth2gt22 + J33L*PDstandardNth3gt22) +
gtu11*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 +
J22L*PDstandardNth2gt13 - J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 + J32L*PDstandardNth3gt13 -
- J31L*PDstandardNth3gt23) + gtu31*(J12L*PDstandardNth1gt33 +
+ J31L*PDstandardNth3gt23) + gtu13*(J12L*PDstandardNth1gt33 +
J22L*PDstandardNth2gt33 + J32L*PDstandardNth3gt33));
CCTK_REAL Gt223 = khalf*(gtu22*(J13L*PDstandardNth1gt22 +
J23L*PDstandardNth2gt22 + J33L*PDstandardNth3gt22) +
- gtu21*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
+ gtu12*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 +
J22L*PDstandardNth2gt13 - J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 + J32L*PDstandardNth3gt13 -
- J31L*PDstandardNth3gt23) + gtu32*(J12L*PDstandardNth1gt33 +
+ J31L*PDstandardNth3gt23) + gtu23*(J12L*PDstandardNth1gt33 +
J22L*PDstandardNth2gt33 + J32L*PDstandardNth3gt33));
- CCTK_REAL Gt323 = khalf*(gtu32*(J13L*PDstandardNth1gt22 +
+ CCTK_REAL Gt323 = khalf*(gtu23*(J13L*PDstandardNth1gt22 +
J23L*PDstandardNth2gt22 + J33L*PDstandardNth3gt22) +
- gtu31*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
+ gtu13*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 +
J22L*PDstandardNth2gt13 - J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 + J32L*PDstandardNth3gt13 -
@@ -489,25 +513,25 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL Gt133 = khalf*(gtu11*(-(J11L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt13 + J23L*PDstandardNth2gt13) -
J21L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt13 -
- J31L*PDstandardNth3gt33) + gtu21*(-(J12L*PDstandardNth1gt33) +
+ J31L*PDstandardNth3gt33) + gtu12*(-(J12L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt23 + J23L*PDstandardNth2gt23) -
J22L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt23 -
- J32L*PDstandardNth3gt33) + gtu31*(J13L*PDstandardNth1gt33 +
+ J32L*PDstandardNth3gt33) + gtu13*(J13L*PDstandardNth1gt33 +
J23L*PDstandardNth2gt33 + J33L*PDstandardNth3gt33));
- CCTK_REAL Gt233 = khalf*(gtu21*(-(J11L*PDstandardNth1gt33) +
+ CCTK_REAL Gt233 = khalf*(gtu12*(-(J11L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt13 + J23L*PDstandardNth2gt13) -
J21L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt13 -
J31L*PDstandardNth3gt33) + gtu22*(-(J12L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt23 + J23L*PDstandardNth2gt23) -
J22L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt23 -
- J32L*PDstandardNth3gt33) + gtu32*(J13L*PDstandardNth1gt33 +
+ J32L*PDstandardNth3gt33) + gtu23*(J13L*PDstandardNth1gt33 +
J23L*PDstandardNth2gt33 + J33L*PDstandardNth3gt33));
- CCTK_REAL Gt333 = khalf*(gtu31*(-(J11L*PDstandardNth1gt33) +
+ CCTK_REAL Gt333 = khalf*(gtu13*(-(J11L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt13 + J23L*PDstandardNth2gt13) -
J21L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt13 -
- J31L*PDstandardNth3gt33) + gtu32*(-(J12L*PDstandardNth1gt33) +
+ J31L*PDstandardNth3gt33) + gtu23*(-(J12L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt23 + J23L*PDstandardNth2gt23) -
J22L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt23 -
J32L*PDstandardNth3gt33) + gtu33*(J13L*PDstandardNth1gt33 +
@@ -519,14 +543,14 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
+ Gt133*Gt312 + Gt123*(Gt212 + Gt313))) + gt13L*(2*Gt213*Gt322 +
Gt313*(4*Gt112 + 2*Gt323)) + 2*(Gt213*(Gt212*gt22L + gt23L*Gt312) +
Gt212*(gt23L*Gt313 + gt13L*Gt323) + Gt312*(gt13L*Gt333 +
- Gt313*gt33L)))*gtu32 + J11L*(gt11L*PDstandardNth1Xt1 +
+ Gt313*gt33L)))*gtu23 + J11L*(gt11L*PDstandardNth1Xt1 +
gt12L*PDstandardNth1Xt2 + gt13L*PDstandardNth1Xt3) +
J21L*(gt11L*PDstandardNth2Xt1 + gt12L*PDstandardNth2Xt2 +
gt13L*PDstandardNth2Xt3) + J31L*(gt11L*PDstandardNth3Xt1 +
gt12L*PDstandardNth3Xt2 + gt13L*PDstandardNth3Xt3) + (Gt111*gt11L +
gt12L*Gt211 + gt13L*Gt311)*Xt1L + (Gt112*gt11L + gt12L*Gt212 +
gt13L*Gt312)*Xt2L + (Gt113*gt11L + gt12L*Gt213 + gt13L*Gt313)*Xt3L +
- gtu21*(Gt112*(gt13L*Gt311 + 3*(gt12L*Gt211 + gt13L*Gt311)) +
+ gtu12*(Gt112*(gt13L*Gt311 + 3*(gt12L*Gt211 + gt13L*Gt311)) +
gt11L*(Gt112*(6*Gt111 + 2*Gt212) + 2*(Gt122*Gt211 + Gt123*Gt311 +
Gt113*Gt312)) + 2*(Gt212*(Gt211*gt22L + gt23L*Gt311 + gt13L*Gt312) +
gt13L*(Gt211*Gt322 + Gt311*Gt323)) + Gt312*(gt13L*(4*Gt111 + 2*Gt313) +
@@ -542,26 +566,26 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
gtu33*(4*Gt113*(gt12L*Gt213 + gt13L*Gt313) + 2*(gt12L*(Gt213*Gt223 +
Gt233*Gt313) + Gt213*(gt23L*Gt313 + gt13L*Gt323) + gt13L*Gt313*Gt333) +
gt11L*(2*(Gt123*Gt213 + Gt133*Gt313) + 3*SQR(Gt113)) + gt22L*SQR(Gt213)
- + gt33L*SQR(Gt313)) + gtu31*(Gt113*(gt13L*Gt311 + 3*(gt12L*Gt211 +
+ + gt33L*SQR(Gt313)) + gtu13*(Gt113*(gt13L*Gt311 + 3*(gt12L*Gt211 +
gt13L*Gt311)) + gt11L*(2*(Gt123*Gt211 + Gt112*Gt213 + Gt133*Gt311) +
Gt113*(6*Gt111 + 2*Gt313)) + gt12L*(Gt211*(Gt113 + 2*Gt223) +
2*Gt233*Gt311 + Gt213*(4*Gt111 + 2*(Gt212 + Gt313))) +
2*(Gt213*(Gt211*gt22L + gt23L*Gt311 + gt13L*Gt312) + gt13L*Gt311*Gt333
+ Gt313*(Gt211*gt23L + Gt311*gt33L)) + gt13L*(4*Gt111*Gt313 +
2*(Gt211*Gt323 + SQR(Gt313)))) +
- khalf*(-2*(gtu21*(J11L*J12L*PDstandardNth11gt11 +
+ khalf*(-2*(gtu12*(J11L*J12L*PDstandardNth11gt11 +
J12L*J21L*PDstandardNth12gt11 + J11L*J22L*PDstandardNth12gt11 +
J12L*J31L*PDstandardNth13gt11 + J11L*J32L*PDstandardNth13gt11 +
dJ112L*PDstandardNth1gt11 + J21L*J22L*PDstandardNth22gt11 +
J22L*J31L*PDstandardNth23gt11 + J21L*J32L*PDstandardNth23gt11 +
dJ212L*PDstandardNth2gt11 + J31L*J32L*PDstandardNth33gt11 +
- dJ312L*PDstandardNth3gt11) + gtu31*(J11L*J13L*PDstandardNth11gt11 +
+ dJ312L*PDstandardNth3gt11) + gtu13*(J11L*J13L*PDstandardNth11gt11 +
J13L*J21L*PDstandardNth12gt11 + J11L*J23L*PDstandardNth12gt11 +
J13L*J31L*PDstandardNth13gt11 + J11L*J33L*PDstandardNth13gt11 +
dJ113L*PDstandardNth1gt11 + J21L*J23L*PDstandardNth22gt11 +
J23L*J31L*PDstandardNth23gt11 + J21L*J33L*PDstandardNth23gt11 +
dJ213L*PDstandardNth2gt11 + J31L*J33L*PDstandardNth33gt11 +
- dJ313L*PDstandardNth3gt11) + gtu32*(J12L*J13L*PDstandardNth11gt11 +
+ dJ313L*PDstandardNth3gt11) + gtu23*(J12L*J13L*PDstandardNth11gt11 +
J13L*J22L*PDstandardNth12gt11 + J12L*J23L*PDstandardNth12gt11 +
J13L*J32L*PDstandardNth13gt11 + J12L*J33L*PDstandardNth13gt11 +
dJ123L*PDstandardNth1gt11 + J22L*J23L*PDstandardNth22gt11 +
@@ -588,19 +612,19 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
gt13L*J12L)*PDstandardNth1Xt3 + (gt12L*J21L +
gt11L*J22L)*PDstandardNth2Xt1 + (gt22L*J21L +
gt12L*J22L)*PDstandardNth2Xt2 + (gt23L*J21L +
- gt13L*J22L)*PDstandardNth2Xt3 - 2*(gtu21*(J11L*J12L*PDstandardNth11gt12
+ gt13L*J22L)*PDstandardNth2Xt3 - 2*(gtu12*(J11L*J12L*PDstandardNth11gt12
+ J12L*J21L*PDstandardNth12gt12 + J11L*J22L*PDstandardNth12gt12 +
J12L*J31L*PDstandardNth13gt12 + J11L*J32L*PDstandardNth13gt12 +
dJ112L*PDstandardNth1gt12 + J21L*J22L*PDstandardNth22gt12 +
J22L*J31L*PDstandardNth23gt12 + J21L*J32L*PDstandardNth23gt12 +
dJ212L*PDstandardNth2gt12 + J31L*J32L*PDstandardNth33gt12 +
- dJ312L*PDstandardNth3gt12) + gtu31*(J11L*J13L*PDstandardNth11gt12 +
+ dJ312L*PDstandardNth3gt12) + gtu13*(J11L*J13L*PDstandardNth11gt12 +
J13L*J21L*PDstandardNth12gt12 + J11L*J23L*PDstandardNth12gt12 +
J13L*J31L*PDstandardNth13gt12 + J11L*J33L*PDstandardNth13gt12 +
dJ113L*PDstandardNth1gt12 + J21L*J23L*PDstandardNth22gt12 +
J23L*J31L*PDstandardNth23gt12 + J21L*J33L*PDstandardNth23gt12 +
dJ213L*PDstandardNth2gt12 + J31L*J33L*PDstandardNth33gt12 +
- dJ313L*PDstandardNth3gt12) + gtu32*(J12L*J13L*PDstandardNth11gt12 +
+ dJ313L*PDstandardNth3gt12) + gtu23*(J12L*J13L*PDstandardNth11gt12 +
J13L*J22L*PDstandardNth12gt12 + J12L*J23L*PDstandardNth12gt12 +
J13L*J32L*PDstandardNth13gt12 + J12L*J33L*PDstandardNth13gt12 +
dJ123L*PDstandardNth1gt12 + J22L*J23L*PDstandardNth22gt12 +
@@ -620,7 +644,7 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt213*gt23L*Gt312 + gt11L*(2*Gt112*Gt113 + Gt123*Gt212 + Gt133*Gt312) +
2*Gt112*gt13L*Gt313 + Gt212*gt23L*Gt313 + Gt111*(Gt113*gt12L +
Gt213*gt22L + gt23L*Gt313) + gt13L*Gt212*Gt323 + Gt211*gt23L*Gt323 +
- gt23L*Gt311*Gt333 + gt13L*Gt312*Gt333 + Gt312*Gt313*gt33L)*gtu31 +
+ gt23L*Gt311*Gt333 + gt13L*Gt312*Gt333 + Gt312*Gt313*gt33L)*gtu13 +
(Gt123*gt12L*Gt212 + 2*Gt122*gt12L*Gt213 + Gt113*gt12L*Gt222 +
gt12L*Gt222*Gt223 + Gt213*Gt222*gt22L + Gt212*Gt223*gt22L +
gt12L*Gt133*Gt312 + gt22L*Gt233*Gt312 + 2*Gt122*gt13L*Gt313 +
@@ -628,14 +652,14 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt113*gt13L*Gt322 + gt12L*Gt233*Gt322 + Gt213*gt23L*Gt322 +
gt11L*(2*Gt113*Gt122 + Gt123*Gt222 + Gt133*Gt322) + gt13L*Gt222*Gt323 +
Gt212*gt23L*Gt323 + gt23L*Gt312*Gt333 + gt13L*Gt322*Gt333 +
- Gt313*Gt322*gt33L)*gtu32 + gtu11*(3*Gt112*gt12L*Gt211 +
+ Gt313*Gt322*gt33L)*gtu23 + gtu11*(3*Gt112*gt12L*Gt211 +
2*Gt211*Gt212*gt22L + Gt113*gt12L*Gt311 + 2*Gt112*gt13L*Gt311 +
Gt213*gt22L*Gt311 + Gt212*gt23L*Gt311 + gt13L*Gt212*Gt312 +
gt12L*Gt213*Gt312 + 2*Gt211*gt23L*Gt312 + gt11L*(2*Gt111*Gt112 +
Gt112*Gt212 + Gt113*Gt312) + Gt111*(gt12L*Gt212 + Gt211*gt22L +
gt23L*Gt311 + gt13L*Gt312) + gt23L*Gt311*Gt313 + gt13L*Gt312*Gt313 +
Gt311*Gt312*gt33L + gt12L*SQR(Gt111) + gt12L*SQR(Gt212)) +
- gtu21*(Gt112*gt11L*Gt222 + Gt112*Gt211*gt22L + Gt211*Gt222*gt22L +
+ gtu12*(Gt112*gt11L*Gt222 + Gt112*Gt211*gt22L + Gt211*Gt222*gt22L +
2*Gt122*gt13L*Gt311 + Gt112*gt23L*Gt311 + Gt222*gt23L*Gt311 +
gt13L*Gt222*Gt312 + Gt213*gt22L*Gt312 + Gt212*gt23L*Gt312 +
gt23L*Gt312*Gt313 + Gt113*gt11L*Gt322 + Gt211*gt23L*Gt322 +
@@ -654,21 +678,21 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt113*(2*gt11L*Gt123 + gt12L*Gt223 + Gt213*gt22L + gt23L*Gt313 +
gt13L*Gt323) + gt23L*Gt313*Gt333 + gt13L*Gt323*Gt333 +
Gt313*Gt323*gt33L + gt12L*SQR(Gt113) + gt12L*(3*Gt123*Gt213 +
- Gt133*Gt313 + Gt233*Gt323 + SQR(Gt223))) + gtu21*(Gt122*gt12L*Gt211 +
+ Gt133*Gt313 + Gt233*Gt323 + SQR(Gt223))) + gtu12*(Gt122*gt12L*Gt211 +
3*Gt112*gt12L*Gt212 + gt12L*Gt212*Gt222 + Gt211*Gt222*gt22L +
Gt123*gt12L*Gt311 + Gt223*gt22L*Gt311 + 3*Gt112*gt13L*Gt312 +
gt12L*Gt223*Gt312 + 2*Gt212*gt23L*Gt312 + Gt111*(Gt112*gt12L +
Gt212*gt22L + gt23L*Gt312) + gt13L*Gt212*Gt322 + Gt211*gt23L*Gt322 +
gt23L*Gt311*Gt323 + gt13L*Gt312*Gt323 + gt11L*(Gt122*Gt212 +
Gt123*Gt312 + 2*SQR(Gt112)) + gt22L*SQR(Gt212) + gt33L*SQR(Gt312)) +
- gtu31*(Gt112*gt11L*Gt223 + Gt113*Gt211*gt22L + Gt212*Gt213*gt22L +
+ gtu13*(Gt112*gt11L*Gt223 + Gt113*Gt211*gt22L + Gt212*Gt213*gt22L +
Gt211*Gt223*gt22L + 2*Gt123*gt13L*Gt311 + Gt113*gt23L*Gt311 +
Gt223*gt23L*Gt311 + gt13L*Gt223*Gt312 + Gt213*gt23L*Gt312 +
Gt213*gt22L*Gt313 + Gt113*gt11L*Gt323 + Gt211*gt23L*Gt323 +
gt13L*Gt313*Gt323 + Gt111*(2*gt11L*Gt123 + Gt113*gt12L + gt12L*Gt223 +
gt13L*Gt323) + gt12L*(2*Gt123*Gt211 + Gt112*Gt213 + Gt212*Gt223 +
Gt113*Gt313 + Gt213*Gt323) + Gt311*Gt323*gt33L + gt23L*SQR(Gt313)) +
- gtu32*(gt11L*Gt122*Gt223 + Gt113*Gt212*gt22L + Gt213*Gt222*gt22L +
+ gtu23*(gt11L*Gt122*Gt223 + Gt113*Gt212*gt22L + Gt213*Gt222*gt22L +
Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312 + Gt113*gt23L*Gt312 +
Gt223*gt23L*Gt312 + Gt223*gt22L*Gt313 + gt13L*Gt223*Gt322 +
Gt213*gt23L*Gt322 + gt11L*Gt123*Gt323 + Gt212*gt23L*Gt323 +
@@ -696,19 +720,19 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
gt13L*J13L)*PDstandardNth1Xt3 + (gt13L*J21L +
gt11L*J23L)*PDstandardNth2Xt1 + (gt23L*J21L +
gt12L*J23L)*PDstandardNth2Xt2 + (gt33L*J21L +
- gt13L*J23L)*PDstandardNth2Xt3 - 2*(gtu21*(J11L*J12L*PDstandardNth11gt13
+ gt13L*J23L)*PDstandardNth2Xt3 - 2*(gtu12*(J11L*J12L*PDstandardNth11gt13
+ J12L*J21L*PDstandardNth12gt13 + J11L*J22L*PDstandardNth12gt13 +
J12L*J31L*PDstandardNth13gt13 + J11L*J32L*PDstandardNth13gt13 +
dJ112L*PDstandardNth1gt13 + J21L*J22L*PDstandardNth22gt13 +
J22L*J31L*PDstandardNth23gt13 + J21L*J32L*PDstandardNth23gt13 +
dJ212L*PDstandardNth2gt13 + J31L*J32L*PDstandardNth33gt13 +
- dJ312L*PDstandardNth3gt13) + gtu31*(J11L*J13L*PDstandardNth11gt13 +
+ dJ312L*PDstandardNth3gt13) + gtu13*(J11L*J13L*PDstandardNth11gt13 +
J13L*J21L*PDstandardNth12gt13 + J11L*J23L*PDstandardNth12gt13 +
J13L*J31L*PDstandardNth13gt13 + J11L*J33L*PDstandardNth13gt13 +
dJ113L*PDstandardNth1gt13 + J21L*J23L*PDstandardNth22gt13 +
J23L*J31L*PDstandardNth23gt13 + J21L*J33L*PDstandardNth23gt13 +
dJ213L*PDstandardNth2gt13 + J31L*J33L*PDstandardNth33gt13 +
- dJ313L*PDstandardNth3gt13) + gtu32*(J12L*J13L*PDstandardNth11gt13 +
+ dJ313L*PDstandardNth3gt13) + gtu23*(J12L*J13L*PDstandardNth11gt13 +
J13L*J22L*PDstandardNth12gt13 + J12L*J23L*PDstandardNth12gt13 +
J13L*J32L*PDstandardNth13gt13 + J12L*J33L*PDstandardNth13gt13 +
dJ123L*PDstandardNth1gt13 + J22L*J23L*PDstandardNth22gt13 +
@@ -729,22 +753,22 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
gt11L*(2*Gt112*Gt113 + Gt122*Gt213 + Gt123*Gt313) + gt13L*Gt213*Gt322 +
gt13L*Gt313*Gt323 + Gt312*Gt313*gt33L + Gt211*Gt322*gt33L +
Gt311*Gt323*gt33L + Gt111*(Gt112*gt13L + Gt212*gt23L +
- Gt312*gt33L))*gtu21 + (Gt122*gt13L*Gt213 + gt11L*Gt122*Gt233 +
+ Gt312*gt33L))*gtu12 + (Gt122*gt13L*Gt213 + gt11L*Gt122*Gt233 +
Gt212*gt22L*Gt233 + Gt113*Gt212*gt23L + Gt213*Gt222*gt23L +
2*Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 + Gt123*gt13L*Gt313 +
Gt223*gt23L*Gt313 + gt13L*Gt233*Gt322 + gt11L*Gt123*Gt333 +
Gt212*gt23L*Gt333 + gt13L*Gt323*Gt333 + Gt112*(2*gt11L*Gt133 +
Gt113*gt13L + gt12L*Gt233 + gt13L*Gt333) + gt12L*(2*Gt133*Gt212 +
Gt222*Gt233 + Gt223*Gt333) + Gt113*Gt312*gt33L + Gt213*Gt322*gt33L +
- Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu32 +
- gtu21*(2*Gt123*gt12L*Gt211 + Gt112*gt13L*Gt212 + gt12L*Gt212*Gt223 +
+ Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu23 +
+ gtu12*(2*Gt123*gt12L*Gt211 + Gt112*gt13L*Gt212 + gt12L*Gt212*Gt223 +
Gt211*Gt223*gt22L + Gt112*Gt211*gt23L + 2*Gt123*gt13L*Gt311 +
Gt223*gt23L*Gt311 + Gt113*gt13L*Gt312 + gt13L*Gt223*Gt312 +
Gt213*gt23L*Gt312 + gt12L*Gt213*Gt323 + Gt211*gt23L*Gt323 +
gt13L*Gt313*Gt323 + gt11L*(2*Gt111*Gt123 + Gt112*Gt223 + Gt113*Gt323) +
Gt111*(Gt112*gt13L + gt12L*Gt223 + gt13L*Gt323) + Gt112*Gt311*gt33L +
Gt212*Gt312*gt33L + Gt312*Gt313*gt33L + Gt311*Gt323*gt33L +
- gt23L*SQR(Gt212)) + gtu32*(Gt123*gt13L*Gt212 + 2*Gt123*gt12L*Gt213 +
+ gt23L*SQR(Gt212)) + gtu23*(Gt123*gt13L*Gt212 + 2*Gt123*gt12L*Gt213 +
Gt113*gt12L*Gt223 + Gt213*Gt223*gt22L + Gt212*Gt223*gt23L +
Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 + 2*Gt123*gt13L*Gt313 +
Gt223*gt23L*Gt313 + Gt113*gt13L*Gt323 + gt13L*Gt223*Gt323 +
@@ -758,14 +782,14 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt211*gt23L*Gt313 + gt11L*(2*Gt111*Gt113 + Gt112*Gt213 + Gt113*Gt313) +
Gt211*Gt312*gt33L + 2*Gt311*Gt313*gt33L + Gt111*(gt12L*Gt213 +
Gt211*gt23L + gt13L*Gt313 + Gt311*gt33L) + gt13L*SQR(Gt111) +
- gt13L*SQR(Gt313)) + gtu31*(Gt112*gt13L*Gt213 + Gt112*gt11L*Gt233 +
+ gt13L*SQR(Gt313)) + gtu13*(Gt112*gt13L*Gt213 + Gt112*gt11L*Gt233 +
Gt211*gt22L*Gt233 + Gt113*Gt211*gt23L + Gt212*Gt213*gt23L +
2*Gt133*gt13L*Gt311 + Gt233*gt23L*Gt311 + gt13L*Gt233*Gt312 +
Gt113*gt13L*Gt313 + Gt213*gt23L*Gt313 + Gt113*gt11L*Gt333 +
Gt211*gt23L*Gt333 + gt13L*Gt313*Gt333 + Gt111*(2*gt11L*Gt133 +
Gt113*gt13L + gt12L*Gt233 + gt13L*Gt333) + gt12L*(2*Gt133*Gt211 +
Gt212*Gt233 + Gt213*Gt333) + Gt113*Gt311*gt33L + Gt213*Gt312*gt33L +
- Gt311*Gt333*gt33L + gt33L*SQR(Gt313)) + gtu31*(Gt123*gt13L*Gt211 +
+ Gt311*Gt333*gt33L + gt33L*SQR(Gt313)) + gtu13*(Gt123*gt13L*Gt211 +
3*Gt113*gt12L*Gt213 + gt12L*Gt213*Gt223 + Gt211*Gt223*gt23L +
Gt133*gt13L*Gt311 + Gt233*gt23L*Gt311 + 3*Gt113*gt13L*Gt313 +
gt12L*Gt233*Gt313 + 2*Gt213*gt23L*Gt313 + gt13L*Gt213*Gt323 +
@@ -807,14 +831,14 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
gt12L*(2*Gt113 + Gt223) + 2*(Gt213*gt22L + gt23L*Gt313) + gt13L*Gt323)
+ 2*(Gt113*gt12L*Gt323 + Gt312*(gt12L*Gt133 + gt22L*Gt233 +
gt23L*Gt333)) + Gt323*(Gt112*gt13L + 4*Gt212*gt23L + 2*(Gt213*gt22L +
- gt23L*Gt313 + Gt312*gt33L)))*gtu31 + J12L*(gt12L*PDstandardNth1Xt1 +
+ gt23L*Gt313 + Gt312*gt33L)))*gtu13 + J12L*(gt12L*PDstandardNth1Xt1 +
gt22L*PDstandardNth1Xt2 + gt23L*PDstandardNth1Xt3) +
J22L*(gt12L*PDstandardNth2Xt1 + gt22L*PDstandardNth2Xt2 +
gt23L*PDstandardNth2Xt3) + J32L*(gt12L*PDstandardNth3Xt1 +
gt22L*PDstandardNth3Xt2 + gt23L*PDstandardNth3Xt3) + (Gt112*gt12L +
Gt212*gt22L + gt23L*Gt312)*Xt1L + (Gt122*gt12L + Gt222*gt22L +
gt23L*Gt322)*Xt2L + (Gt123*gt12L + Gt223*gt22L + gt23L*Gt323)*Xt3L +
- gtu21*(Gt222*(3*Gt112*gt12L + 6*Gt212*gt22L + 4*gt23L*Gt312) +
+ gtu12*(Gt222*(3*Gt112*gt12L + 6*Gt212*gt22L + 4*gt23L*Gt312) +
Gt122*(Gt112*gt11L + gt12L*(2*Gt111 + 4*Gt212) + 2*(Gt211*gt22L +
gt23L*Gt311 + gt13L*Gt312)) + Gt112*(gt11L*Gt122 + gt12L*Gt222 +
2*(Gt212*gt22L + gt23L*Gt312) + gt13L*Gt322) + Gt322*(Gt112*gt13L +
@@ -830,25 +854,25 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
gtu33*(Gt123*(gt12L*(2*Gt113 + 4*Gt223) + 2*(Gt213*gt22L + gt23L*Gt313
+ gt13L*Gt323)) + Gt323*(2*(gt12L*Gt133 + gt22L*Gt233) + gt23L*(4*Gt223
+ 2*Gt333)) + gt11L*SQR(Gt123) + 3*gt22L*SQR(Gt223) + gt33L*SQR(Gt323))
- + gtu32*(gt22L*(2*(Gt122*Gt213 + Gt233*Gt322) + Gt223*(6*Gt222 +
+ + gtu23*(gt22L*(2*(Gt122*Gt213 + Gt233*Gt322) + Gt223*(6*Gt222 +
2*Gt323)) + 4*(gt12L*(Gt123*Gt222 + Gt122*Gt223) + gt23L*(Gt223*Gt322 +
Gt222*Gt323)) + 2*(Gt123*(Gt112*gt12L + Gt212*gt22L + gt23L*Gt312 +
gt13L*Gt322) + gt12L*(Gt133*Gt322 + Gt123*Gt323) + Gt122*(gt11L*Gt123 +
Gt113*gt12L + gt23L*Gt313 + gt13L*Gt323) + Gt322*(gt23L*Gt333 +
Gt323*gt33L) + gt23L*SQR(Gt323))) +
- khalf*(-2*(gtu21*(J11L*J12L*PDstandardNth11gt22 +
+ khalf*(-2*(gtu12*(J11L*J12L*PDstandardNth11gt22 +
J12L*J21L*PDstandardNth12gt22 + J11L*J22L*PDstandardNth12gt22 +
J12L*J31L*PDstandardNth13gt22 + J11L*J32L*PDstandardNth13gt22 +
dJ112L*PDstandardNth1gt22 + J21L*J22L*PDstandardNth22gt22 +
J22L*J31L*PDstandardNth23gt22 + J21L*J32L*PDstandardNth23gt22 +
dJ212L*PDstandardNth2gt22 + J31L*J32L*PDstandardNth33gt22 +
- dJ312L*PDstandardNth3gt22) + gtu31*(J11L*J13L*PDstandardNth11gt22 +
+ dJ312L*PDstandardNth3gt22) + gtu13*(J11L*J13L*PDstandardNth11gt22 +
J13L*J21L*PDstandardNth12gt22 + J11L*J23L*PDstandardNth12gt22 +
J13L*J31L*PDstandardNth13gt22 + J11L*J33L*PDstandardNth13gt22 +
dJ113L*PDstandardNth1gt22 + J21L*J23L*PDstandardNth22gt22 +
J23L*J31L*PDstandardNth23gt22 + J21L*J33L*PDstandardNth23gt22 +
dJ213L*PDstandardNth2gt22 + J31L*J33L*PDstandardNth33gt22 +
- dJ313L*PDstandardNth3gt22) + gtu32*(J12L*J13L*PDstandardNth11gt22 +
+ dJ313L*PDstandardNth3gt22) + gtu23*(J12L*J13L*PDstandardNth11gt22 +
J13L*J22L*PDstandardNth12gt22 + J12L*J23L*PDstandardNth12gt22 +
J13L*J32L*PDstandardNth13gt22 + J12L*J33L*PDstandardNth13gt22 +
dJ123L*PDstandardNth1gt22 + J22L*J23L*PDstandardNth22gt22 +
@@ -875,19 +899,19 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
gt23L*J13L)*PDstandardNth1Xt3 + (gt13L*J22L +
gt12L*J23L)*PDstandardNth2Xt1 + (gt23L*J22L +
gt22L*J23L)*PDstandardNth2Xt2 + (gt33L*J22L +
- gt23L*J23L)*PDstandardNth2Xt3 - 2*(gtu21*(J11L*J12L*PDstandardNth11gt23
+ gt23L*J23L)*PDstandardNth2Xt3 - 2*(gtu12*(J11L*J12L*PDstandardNth11gt23
+ J12L*J21L*PDstandardNth12gt23 + J11L*J22L*PDstandardNth12gt23 +
J12L*J31L*PDstandardNth13gt23 + J11L*J32L*PDstandardNth13gt23 +
dJ112L*PDstandardNth1gt23 + J21L*J22L*PDstandardNth22gt23 +
J22L*J31L*PDstandardNth23gt23 + J21L*J32L*PDstandardNth23gt23 +
dJ212L*PDstandardNth2gt23 + J31L*J32L*PDstandardNth33gt23 +
- dJ312L*PDstandardNth3gt23) + gtu31*(J11L*J13L*PDstandardNth11gt23 +
+ dJ312L*PDstandardNth3gt23) + gtu13*(J11L*J13L*PDstandardNth11gt23 +
J13L*J21L*PDstandardNth12gt23 + J11L*J23L*PDstandardNth12gt23 +
J13L*J31L*PDstandardNth13gt23 + J11L*J33L*PDstandardNth13gt23 +
dJ113L*PDstandardNth1gt23 + J21L*J23L*PDstandardNth22gt23 +
J23L*J31L*PDstandardNth23gt23 + J21L*J33L*PDstandardNth23gt23 +
dJ213L*PDstandardNth2gt23 + J31L*J33L*PDstandardNth33gt23 +
- dJ313L*PDstandardNth3gt23) + gtu32*(J12L*J13L*PDstandardNth11gt23 +
+ dJ313L*PDstandardNth3gt23) + gtu23*(J12L*J13L*PDstandardNth11gt23 +
J13L*J22L*PDstandardNth12gt23 + J12L*J23L*PDstandardNth12gt23 +
J13L*J32L*PDstandardNth13gt23 + J12L*J33L*PDstandardNth13gt23 +
dJ123L*PDstandardNth1gt23 + J22L*J23L*PDstandardNth22gt23 +
@@ -908,7 +932,7 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt113*gt13L*Gt322 + Gt213*gt23L*Gt322 + Gt113*gt12L*Gt323 +
Gt112*gt13L*Gt323 + Gt213*gt22L*Gt323 + Gt212*gt23L*Gt323 +
gt23L*Gt313*Gt323 + Gt122*Gt311*gt33L + Gt222*Gt312*gt33L +
- Gt313*Gt322*gt33L + Gt312*Gt323*gt33L)*gtu21 + (Gt112*gt11L*Gt133 +
+ Gt313*Gt322*gt33L + Gt312*Gt323*gt33L)*gtu12 + (Gt112*gt11L*Gt133 +
Gt111*gt12L*Gt133 + Gt111*Gt123*gt13L + gt12L*Gt133*Gt212 +
Gt112*gt13L*Gt223 + Gt133*Gt211*gt22L + 2*Gt112*gt12L*Gt233 +
2*Gt212*gt22L*Gt233 + Gt123*Gt211*gt23L + Gt212*Gt223*gt23L +
@@ -916,7 +940,7 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt113*gt13L*Gt323 + Gt213*gt23L*Gt323 + Gt113*gt12L*Gt333 +
Gt112*gt13L*Gt333 + Gt213*gt22L*Gt333 + Gt212*gt23L*Gt333 +
gt23L*Gt313*Gt333 + Gt123*Gt311*gt33L + Gt223*Gt312*gt33L +
- Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu31 + gtu21*(Gt113*gt11L*Gt122
+ Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu13 + gtu12*(Gt113*gt11L*Gt122
+ Gt122*gt13L*Gt212 + 2*Gt122*gt12L*Gt213 + Gt113*gt12L*Gt222 +
Gt113*Gt212*gt22L + 2*Gt213*Gt222*gt22L + Gt212*Gt222*gt23L +
Gt123*gt13L*Gt312 + Gt113*gt23L*Gt312 + Gt223*gt23L*Gt312 +
@@ -924,7 +948,7 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt222*gt23L*Gt313 + Gt113*gt13L*Gt322 + 2*Gt213*gt23L*Gt322 +
gt23L*Gt313*Gt323 + Gt212*Gt322*gt33L + Gt313*Gt322*gt33L +
Gt312*Gt323*gt33L + Gt112*(Gt113*gt12L + Gt212*gt23L + Gt312*gt33L) +
- gt13L*SQR(Gt112)) + gtu31*(2*Gt213*Gt223*gt22L + Gt112*Gt213*gt23L +
+ gt13L*SQR(Gt112)) + gtu13*(2*Gt213*Gt223*gt22L + Gt112*Gt213*gt23L +
Gt212*Gt223*gt23L + Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 +
gt12L*Gt133*Gt313 + gt22L*Gt233*Gt313 + Gt223*gt23L*Gt313 +
Gt123*(2*gt12L*Gt213 + gt13L*(Gt212 + Gt313)) + 2*Gt213*gt23L*Gt323 +
@@ -945,7 +969,7 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
3*Gt223*gt23L*Gt322 + Gt123*gt12L*Gt323 + Gt122*gt13L*Gt323 +
Gt223*gt22L*Gt323 + Gt222*gt23L*Gt323 + Gt122*Gt312*gt33L +
Gt222*Gt322*gt33L + 2*Gt322*Gt323*gt33L + gt23L*SQR(Gt222) +
- gt23L*SQR(Gt323)) + gtu32*(gt11L*Gt122*Gt133 + Gt112*gt12L*Gt133 +
+ gt23L*SQR(Gt323)) + gtu23*(gt11L*Gt122*Gt133 + Gt112*gt12L*Gt133 +
Gt112*Gt123*gt13L + gt12L*Gt133*Gt222 + Gt122*gt13L*Gt223 +
Gt133*Gt212*gt22L + 2*Gt122*gt12L*Gt233 + 2*Gt222*gt22L*Gt233 +
Gt123*Gt212*gt23L + Gt222*Gt223*gt23L + Gt133*gt23L*Gt312 +
@@ -953,7 +977,7 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt223*gt23L*Gt323 + Gt123*gt12L*Gt333 + Gt122*gt13L*Gt333 +
Gt223*gt22L*Gt333 + Gt222*gt23L*Gt333 + gt23L*Gt323*Gt333 +
Gt123*Gt312*gt33L + Gt223*Gt322*gt33L + Gt322*Gt333*gt33L +
- gt33L*SQR(Gt323)) + gtu32*(Gt113*Gt123*gt12L + Gt113*Gt122*gt13L +
+ gt33L*SQR(Gt323)) + gtu23*(Gt113*Gt123*gt12L + Gt113*Gt122*gt13L +
Gt123*gt13L*Gt222 + 3*Gt123*gt12L*Gt223 + Gt123*Gt213*gt22L +
Gt122*Gt213*gt23L + Gt222*Gt223*gt23L + Gt123*gt23L*Gt313 +
Gt133*gt13L*Gt322 + Gt233*gt23L*Gt322 + gt12L*Gt133*Gt323 +
@@ -988,7 +1012,7 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
2*(gt13L*(Gt122*Gt213 + Gt112*Gt223) + Gt213*(Gt223*gt22L +
Gt222*gt23L) + Gt123*(Gt111*gt13L + gt12L*Gt213 + Gt211*gt23L +
Gt311*gt33L) + Gt223*(Gt212*gt23L + Gt312*gt33L) + Gt113*(gt11L*Gt123 +
- Gt112*gt13L + gt12L*Gt223 + Gt212*gt23L + Gt312*gt33L)))*gtu21 +
+ Gt112*gt13L + gt12L*Gt223 + Gt212*gt23L + Gt312*gt33L)))*gtu12 +
J13L*(gt13L*PDstandardNth1Xt1 + gt23L*PDstandardNth1Xt2 +
gt33L*PDstandardNth1Xt3) + J23L*(gt13L*PDstandardNth2Xt1 +
gt23L*PDstandardNth2Xt2 + gt33L*PDstandardNth2Xt3) +
@@ -996,13 +1020,13 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
gt33L*PDstandardNth3Xt3) + (Gt113*gt13L + Gt213*gt23L +
Gt313*gt33L)*Xt1L + (Gt123*gt13L + Gt223*gt23L + Gt323*gt33L)*Xt2L +
(Gt133*gt13L + Gt233*gt23L + Gt333*gt33L)*Xt3L +
- gtu31*(Gt133*(Gt113*gt11L + 2*(Gt111*gt13L + gt12L*Gt213 + Gt211*gt23L)
+ gtu13*(Gt133*(Gt113*gt11L + 2*(Gt111*gt13L + gt12L*Gt213 + Gt211*gt23L)
+ 4*gt13L*Gt313) + Gt333*(3*Gt113*gt13L + 4*Gt213*gt23L +
6*Gt313*gt33L) + Gt233*(Gt113*gt12L + 4*gt23L*Gt313 + 2*(Gt213*gt22L +
Gt212*gt23L + Gt312*gt33L)) + Gt113*(gt11L*Gt133 + gt12L*Gt233 +
gt13L*Gt333 + 2*(Gt213*gt23L + Gt313*gt33L)) + 2*(Gt133*Gt311*gt33L +
Gt213*(Gt223*gt23L + Gt323*gt33L) + gt13L*(Gt123*Gt213 + Gt112*Gt233 +
- SQR(Gt113)))) + gtu32*(4*((Gt133*gt13L + Gt233*gt23L)*Gt323 +
+ SQR(Gt113)))) + gtu23*(4*((Gt133*gt13L + Gt233*gt23L)*Gt323 +
(Gt123*gt13L + Gt223*gt23L)*Gt333) + Gt323*(2*Gt223 + 6*Gt333)*gt33L +
2*(Gt133*(Gt112*gt13L + gt12L*Gt223 + Gt212*gt23L + Gt312*gt33L) +
Gt123*(gt11L*Gt133 + gt13L*(Gt113 + Gt223) + gt12L*Gt233 + Gt213*gt23L
@@ -1018,19 +1042,19 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
2*(Gt133*(Gt113*gt13L + gt12L*Gt233 + Gt213*gt23L + Gt313*gt33L) +
Gt233*(Gt123*gt13L + Gt223*gt23L + Gt323*gt33L)) + gt11L*SQR(Gt133) +
gt22L*SQR(Gt233) + 3*gt33L*SQR(Gt333)) +
- khalf*(-2*(gtu21*(J11L*J12L*PDstandardNth11gt33 +
+ khalf*(-2*(gtu12*(J11L*J12L*PDstandardNth11gt33 +
J12L*J21L*PDstandardNth12gt33 + J11L*J22L*PDstandardNth12gt33 +
J12L*J31L*PDstandardNth13gt33 + J11L*J32L*PDstandardNth13gt33 +
dJ112L*PDstandardNth1gt33 + J21L*J22L*PDstandardNth22gt33 +
J22L*J31L*PDstandardNth23gt33 + J21L*J32L*PDstandardNth23gt33 +
dJ212L*PDstandardNth2gt33 + J31L*J32L*PDstandardNth33gt33 +
- dJ312L*PDstandardNth3gt33) + gtu31*(J11L*J13L*PDstandardNth11gt33 +
+ dJ312L*PDstandardNth3gt33) + gtu13*(J11L*J13L*PDstandardNth11gt33 +
J13L*J21L*PDstandardNth12gt33 + J11L*J23L*PDstandardNth12gt33 +
J13L*J31L*PDstandardNth13gt33 + J11L*J33L*PDstandardNth13gt33 +
dJ113L*PDstandardNth1gt33 + J21L*J23L*PDstandardNth22gt33 +
J23L*J31L*PDstandardNth23gt33 + J21L*J33L*PDstandardNth23gt33 +
dJ213L*PDstandardNth2gt33 + J31L*J33L*PDstandardNth33gt33 +
- dJ313L*PDstandardNth3gt33) + gtu32*(J12L*J13L*PDstandardNth11gt33 +
+ dJ313L*PDstandardNth3gt33) + gtu23*(J12L*J13L*PDstandardNth11gt33 +
J13L*J22L*PDstandardNth12gt33 + J12L*J23L*PDstandardNth12gt33 +
J13L*J32L*PDstandardNth13gt33 + J12L*J33L*PDstandardNth13gt33 +
dJ123L*PDstandardNth1gt33 + J22L*J23L*PDstandardNth22gt33 +
@@ -1132,38 +1156,38 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
J23L*PDstandardNth2phi + J33L*PDstandardNth3phi);
CCTK_REAL Rphi11 = -2*(cdphi211 + 2*(-1 + gt11L*gtu11)*SQR(cdphi1) +
- gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu21 + cdphi3*gtu31) +
- cdphi2*cdphi3*gtu32) + cdphi233*gtu33 + gtu22*(cdphi222 +
- 2*SQR(cdphi2)) + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu12 + cdphi3*gtu13) +
+ cdphi2*cdphi3*gtu23) + cdphi233*gtu33 + gtu22*(cdphi222 +
+ 2*SQR(cdphi2)) + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu21)
- + 4*cdphi3*gt12L*gtu31) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu32
- + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu12)
+ + 4*cdphi3*gt12L*gtu13) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu23
+ + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2)) + gtu33*(cdphi233
+ 2*SQR(cdphi3))));
- CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu21 +
- cdphi3*(-2 + 4*gt13L*gtu31)) + gt13L*(cdphi211*gtu11 +
- 4*cdphi2*cdphi3*gtu32 + 2*(cdphi212*gtu21 + cdphi213*gtu31 +
- cdphi223*gtu32 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu12 +
+ cdphi3*(-2 + 4*gt13L*gtu13)) + gt13L*(cdphi211*gtu11 +
+ 4*cdphi2*cdphi3*gtu23 + 2*(cdphi212*gtu12 + cdphi213*gtu13 +
+ cdphi223*gtu23 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ gtu33*(cdphi233 + 2*SQR(cdphi3))));
CCTK_REAL Rphi22 = -2*(cdphi222 + 2*(-1 + gt22L*gtu22)*SQR(cdphi2) +
- gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu31 + cdphi2*(cdphi1*gtu21 +
- cdphi3*gtu32)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu13 + cdphi2*(cdphi1*gtu12 +
+ cdphi3*gtu23)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
+ 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu21 +
- cdphi3*(-2 + 4*gt23L*gtu32)) + gt23L*(cdphi222*gtu22 +
- 4*cdphi1*cdphi3*gtu31 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
- gtu22*SQR(cdphi2)) + gtu33*(cdphi233 + 2*SQR(cdphi3))));
+ CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu12 +
+ cdphi3*(-2 + 4*gt23L*gtu23)) + gt23L*(4*cdphi1*cdphi3*gtu13 +
+ cdphi222*gtu22 + gtu11*(cdphi211 + 2*SQR(cdphi1)) + 2*(cdphi212*gtu12 +
+ cdphi213*gtu13 + cdphi223*gtu23 + gtu22*SQR(cdphi2)) + gtu33*(cdphi233
+ + 2*SQR(cdphi3))));
CCTK_REAL Rphi33 = -2*(cdphi233 + gt33L*((4*cdphi1*cdphi2 +
- 2*cdphi212)*gtu21 + 4*cdphi3*(cdphi1*gtu31 + cdphi2*gtu32) +
- 2*(cdphi213*gtu31 + cdphi223*gtu32) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*cdphi212)*gtu12 + 4*cdphi3*(cdphi1*gtu13 + cdphi2*gtu23) +
+ 2*(cdphi213*gtu13 + cdphi223*gtu23) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))) + 2*(-1 +
gt33L*gtu33)*SQR(cdphi3));
@@ -1173,13 +1197,13 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -1195,26 +1219,26 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL R33 = Rphi33 + Rt33;
- CCTK_REAL trR = gu11*R11 + gu22*R22 + 2*(gu21*R12 + gu31*R13 +
- gu32*R23) + gu33*R33;
+ CCTK_REAL trR = gu11*R11 + gu22*R22 + 2*(gu12*R12 + gu13*R13 +
+ gu23*R23) + gu33*R33;
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
CCTK_REAL rho = pow(alphaL,-2)*(eTttL - 2*(beta2L*eTtyL +
beta3L*eTtzL) + 2*(beta1L*(-eTtxL + beta2L*eTxyL + beta3L*eTxzL) +
@@ -1236,113 +1260,112 @@ void ML_BSSN_MP_constraints_Body(cGH const * restrict const cctkGH, int const di
0.6666666666666666666666666666666666666667*SQR(trKL);
CCTK_REAL M1L = -(At12L*Gt112*gtu22) - At22L*Gt212*gtu22 -
- At12L*Gt222*gtu22 - At23L*Gt312*gtu22 - At13L*Gt322*gtu22 +
- At12L*(6*cdphi1*gtu21 - Gt111*gtu21 + 6*cdphi2*gtu22) +
- At11L*(6*cdphi1*gtu11 - 2*Gt111*gtu11 + 6*cdphi2*gtu21 - Gt122*gtu22) +
- 6*At13L*cdphi1*gtu31 + 6*At11L*cdphi3*gtu31 - At13L*Gt111*gtu31 -
- 3*At11L*Gt113*gtu31 - At23L*Gt211*gtu31 - 3*At12L*Gt213*gtu31 -
- At33L*Gt311*gtu31 - 3*At13L*Gt313*gtu31 + 6*At13L*cdphi2*gtu32 +
- 6*At12L*cdphi3*gtu32 - At13L*Gt112*gtu32 - At12L*Gt113*gtu32 -
- At23L*Gt212*gtu32 - At22L*Gt213*gtu32 - 2*At12L*Gt223*gtu32 -
- At33L*Gt312*gtu32 - At23L*Gt313*gtu32 - 2*At13L*Gt323*gtu32 -
- 2*(At12L*Gt211*gtu11 + At13L*Gt311*gtu11 + At11L*Gt123*gtu32) +
- 6*At13L*cdphi3*gtu33 - At13L*Gt113*gtu33 - At11L*Gt133*gtu33 -
- At23L*Gt213*gtu33 - At12L*Gt233*gtu33 - At33L*Gt313*gtu33 -
- At13L*Gt333*gtu33 + (gtu11*J11L + gtu21*J12L +
- gtu31*J13L)*PDstandardNth1At11 + gtu22*J12L*PDstandardNth1At12 +
- gtu32*J13L*PDstandardNth1At12 + gtu21*(-3*At11L*Gt112 - At22L*Gt211 -
+ At12L*Gt222*gtu22 - At23L*Gt312*gtu22 + At12L*(6*cdphi1*gtu12 -
+ Gt111*gtu12 - 3*Gt213*gtu13 + 6*cdphi2*gtu22) + At11L*(6*cdphi1*gtu11 -
+ 2*Gt111*gtu11 + 6*cdphi2*gtu12 + 6*cdphi3*gtu13 - Gt122*gtu22) +
+ At13L*(6*cdphi1*gtu13 - Gt111*gtu13 - Gt322*gtu22) +
+ 6*At13L*cdphi2*gtu23 + 6*At12L*cdphi3*gtu23 - At13L*Gt112*gtu23 -
+ At12L*Gt113*gtu23 - At23L*Gt212*gtu23 - At22L*Gt213*gtu23 -
+ 2*At12L*Gt223*gtu23 - At33L*Gt312*gtu23 - At23L*Gt313*gtu23 -
+ 2*At13L*Gt323*gtu23 - 2*(At12L*Gt211*gtu11 + At13L*Gt311*gtu11 +
+ At11L*Gt123*gtu23) + 6*At13L*cdphi3*gtu33 - At13L*Gt113*gtu33 -
+ At11L*Gt133*gtu33 - At23L*Gt213*gtu33 - At12L*Gt233*gtu33 -
+ At33L*Gt313*gtu33 - At13L*Gt333*gtu33 + (gtu11*J11L + gtu12*J12L +
+ gtu13*J13L)*PDstandardNth1At11 + gtu22*J12L*PDstandardNth1At12 +
+ gtu23*J13L*PDstandardNth1At12 + gtu12*(-3*At11L*Gt112 - At22L*Gt211 -
3*At12L*Gt212 - At23L*Gt311 - 3*At13L*Gt312 + J11L*PDstandardNth1At12)
- + gtu31*J11L*PDstandardNth1At13 + gtu32*J12L*PDstandardNth1At13 +
- gtu33*J13L*PDstandardNth1At13 - J11L*ktwothird*PDstandardNth1trK +
- (gtu11*J21L + gtu21*J22L + gtu31*J23L)*PDstandardNth2At11 +
- gtu21*J21L*PDstandardNth2At12 + gtu22*J22L*PDstandardNth2At12 +
- gtu32*J23L*PDstandardNth2At12 + gtu31*J21L*PDstandardNth2At13 +
- gtu32*J22L*PDstandardNth2At13 + gtu33*J23L*PDstandardNth2At13 -
+ + gtu23*J12L*PDstandardNth1At13 + gtu33*J13L*PDstandardNth1At13 +
+ gtu13*(-3*At11L*Gt113 - At23L*Gt211 - At33L*Gt311 - 3*At13L*Gt313 +
+ J11L*PDstandardNth1At13) - J11L*ktwothird*PDstandardNth1trK +
+ (gtu11*J21L + gtu12*J22L + gtu13*J23L)*PDstandardNth2At11 +
+ gtu12*J21L*PDstandardNth2At12 + gtu22*J22L*PDstandardNth2At12 +
+ gtu23*J23L*PDstandardNth2At12 + gtu13*J21L*PDstandardNth2At13 +
+ gtu23*J22L*PDstandardNth2At13 + gtu33*J23L*PDstandardNth2At13 -
J21L*ktwothird*PDstandardNth2trK + gtu11*J31L*PDstandardNth3At11 +
- gtu21*J32L*PDstandardNth3At11 + gtu31*J33L*PDstandardNth3At11 +
- gtu21*J31L*PDstandardNth3At12 + gtu22*J32L*PDstandardNth3At12 +
- gtu32*J33L*PDstandardNth3At12 + gtu31*J31L*PDstandardNth3At13 +
- gtu32*J32L*PDstandardNth3At13 + gtu33*J33L*PDstandardNth3At13 -
+ gtu12*J32L*PDstandardNth3At11 + gtu13*J33L*PDstandardNth3At11 +
+ gtu12*J31L*PDstandardNth3At12 + gtu22*J32L*PDstandardNth3At12 +
+ gtu23*J33L*PDstandardNth3At12 + gtu13*J31L*PDstandardNth3At13 +
+ gtu23*J32L*PDstandardNth3At13 + gtu33*J33L*PDstandardNth3At13 -
J31L*ktwothird*PDstandardNth3trK -
25.13274122871834590770114706623602307358*S1;
CCTK_REAL M2L = -(At11L*Gt112*gtu11) - At22L*Gt211*gtu11 -
At12L*Gt212*gtu11 - At23L*Gt311*gtu11 - At13L*Gt312*gtu11 +
- At12L*(6*cdphi1*gtu11 - Gt111*gtu11) + 6*At22L*cdphi1*gtu21 +
- 6*At12L*cdphi2*gtu21 - 3*At12L*Gt112*gtu21 - At11L*Gt122*gtu21 -
- 3*At22L*Gt212*gtu21 - At12L*Gt222*gtu21 - 3*At23L*Gt312*gtu21 -
- At13L*Gt322*gtu21 + 6*At22L*cdphi2*gtu22 - 2*At12L*Gt122*gtu22 -
- 2*At22L*Gt222*gtu22 - 2*At23L*Gt322*gtu22 + 6*At23L*cdphi1*gtu31 +
- 6*At12L*cdphi3*gtu31 - At13L*Gt112*gtu31 - 2*At12L*Gt113*gtu31 -
- At11L*Gt123*gtu31 - At23L*Gt212*gtu31 - 2*At22L*Gt213*gtu31 -
- At12L*Gt223*gtu31 - At33L*Gt312*gtu31 - 2*At23L*Gt313*gtu31 -
- At13L*Gt323*gtu31 + 6*At23L*cdphi2*gtu32 + 6*At22L*cdphi3*gtu32 -
- At13L*Gt122*gtu32 - 3*At12L*Gt123*gtu32 - At23L*Gt222*gtu32 -
- 3*At22L*Gt223*gtu32 - At33L*Gt322*gtu32 - 3*At23L*Gt323*gtu32 +
+ At12L*(6*cdphi1*gtu11 - Gt111*gtu11) + 6*At22L*cdphi1*gtu12 +
+ 6*At12L*cdphi2*gtu12 - 3*At12L*Gt112*gtu12 - At11L*Gt122*gtu12 -
+ 3*At22L*Gt212*gtu12 - At12L*Gt222*gtu12 - 3*At23L*Gt312*gtu12 -
+ At13L*Gt322*gtu12 + 6*At23L*cdphi1*gtu13 + 6*At12L*cdphi3*gtu13 -
+ At13L*Gt112*gtu13 - 2*At12L*Gt113*gtu13 - At11L*Gt123*gtu13 -
+ At23L*Gt212*gtu13 - 2*At22L*Gt213*gtu13 - At12L*Gt223*gtu13 -
+ At33L*Gt312*gtu13 - 2*At23L*Gt313*gtu13 - At13L*Gt323*gtu13 +
+ 6*At22L*cdphi2*gtu22 - 2*At12L*Gt122*gtu22 - 2*At22L*Gt222*gtu22 -
+ 2*At23L*Gt322*gtu22 + 6*At23L*cdphi2*gtu23 + 6*At22L*cdphi3*gtu23 -
+ At13L*Gt122*gtu23 - 3*At12L*Gt123*gtu23 - At23L*Gt222*gtu23 -
+ 3*At22L*Gt223*gtu23 - At33L*Gt322*gtu23 - 3*At23L*Gt323*gtu23 +
6*At23L*cdphi3*gtu33 - At13L*Gt123*gtu33 - At12L*Gt133*gtu33 -
At23L*Gt223*gtu33 - At22L*Gt233*gtu33 - At33L*Gt323*gtu33 -
- At23L*Gt333*gtu33 + (gtu11*J11L + gtu21*J12L +
- gtu31*J13L)*PDstandardNth1At12 + gtu21*J11L*PDstandardNth1At22 +
- gtu22*J12L*PDstandardNth1At22 + gtu32*J13L*PDstandardNth1At22 +
- gtu31*J11L*PDstandardNth1At23 + gtu32*J12L*PDstandardNth1At23 +
+ At23L*Gt333*gtu33 + (gtu11*J11L + gtu12*J12L +
+ gtu13*J13L)*PDstandardNth1At12 + gtu12*J11L*PDstandardNth1At22 +
+ gtu22*J12L*PDstandardNth1At22 + gtu23*J13L*PDstandardNth1At22 +
+ gtu13*J11L*PDstandardNth1At23 + gtu23*J12L*PDstandardNth1At23 +
gtu33*J13L*PDstandardNth1At23 - J12L*ktwothird*PDstandardNth1trK +
- (gtu11*J21L + gtu21*J22L + gtu31*J23L)*PDstandardNth2At12 +
- gtu21*J21L*PDstandardNth2At22 + gtu22*J22L*PDstandardNth2At22 +
- gtu32*J23L*PDstandardNth2At22 + gtu31*J21L*PDstandardNth2At23 +
- gtu32*J22L*PDstandardNth2At23 + gtu33*J23L*PDstandardNth2At23 -
+ (gtu11*J21L + gtu12*J22L + gtu13*J23L)*PDstandardNth2At12 +
+ gtu12*J21L*PDstandardNth2At22 + gtu22*J22L*PDstandardNth2At22 +
+ gtu23*J23L*PDstandardNth2At22 + gtu13*J21L*PDstandardNth2At23 +
+ gtu23*J22L*PDstandardNth2At23 + gtu33*J23L*PDstandardNth2At23 -
J22L*ktwothird*PDstandardNth2trK + gtu11*J31L*PDstandardNth3At12 +
- gtu21*J32L*PDstandardNth3At12 + gtu31*J33L*PDstandardNth3At12 +
- gtu21*J31L*PDstandardNth3At22 + gtu22*J32L*PDstandardNth3At22 +
- gtu32*J33L*PDstandardNth3At22 + gtu31*J31L*PDstandardNth3At23 +
- gtu32*J32L*PDstandardNth3At23 + gtu33*J33L*PDstandardNth3At23 -
+ gtu12*J32L*PDstandardNth3At12 + gtu13*J33L*PDstandardNth3At12 +
+ gtu12*J31L*PDstandardNth3At22 + gtu22*J32L*PDstandardNth3At22 +
+ gtu23*J33L*PDstandardNth3At22 + gtu13*J31L*PDstandardNth3At23 +
+ gtu23*J32L*PDstandardNth3At23 + gtu33*J33L*PDstandardNth3At23 -
J32L*ktwothird*PDstandardNth3trK -
25.13274122871834590770114706623602307358*S2;
CCTK_REAL M3L = -(At11L*Gt113*gtu11) - At23L*Gt211*gtu11 -
At12L*Gt213*gtu11 - At33L*Gt311*gtu11 - At13L*Gt313*gtu11 +
- At13L*(6*cdphi1*gtu11 - Gt111*gtu11) + 6*At23L*cdphi1*gtu21 +
- 6*At13L*cdphi2*gtu21 - 2*At13L*Gt112*gtu21 - At12L*Gt113*gtu21 -
- At11L*Gt123*gtu21 - 2*At23L*Gt212*gtu21 - At22L*Gt213*gtu21 -
- At12L*Gt223*gtu21 - 2*At33L*Gt312*gtu21 - At23L*Gt313*gtu21 -
- At13L*Gt323*gtu21 + 6*At23L*cdphi2*gtu22 - At13L*Gt122*gtu22 -
- At12L*Gt123*gtu22 - At23L*Gt222*gtu22 - At22L*Gt223*gtu22 -
- At33L*Gt322*gtu22 - At23L*Gt323*gtu22 + 6*At33L*cdphi1*gtu31 +
- 6*At13L*cdphi3*gtu31 - 3*At13L*Gt113*gtu31 - At11L*Gt133*gtu31 -
- 3*At23L*Gt213*gtu31 - At12L*Gt233*gtu31 - 3*At33L*Gt313*gtu31 -
- At13L*Gt333*gtu31 + 6*At33L*cdphi2*gtu32 + 6*At23L*cdphi3*gtu32 -
- 3*At13L*Gt123*gtu32 - At12L*Gt133*gtu32 - 3*At23L*Gt223*gtu32 -
- At22L*Gt233*gtu32 - 3*At33L*Gt323*gtu32 - At23L*Gt333*gtu32 +
+ At13L*(6*cdphi1*gtu11 - Gt111*gtu11) + 6*At23L*cdphi1*gtu12 +
+ 6*At13L*cdphi2*gtu12 - 2*At13L*Gt112*gtu12 - At12L*Gt113*gtu12 -
+ At11L*Gt123*gtu12 - 2*At23L*Gt212*gtu12 - At22L*Gt213*gtu12 -
+ At12L*Gt223*gtu12 - 2*At33L*Gt312*gtu12 - At23L*Gt313*gtu12 -
+ At13L*Gt323*gtu12 + 6*At33L*cdphi1*gtu13 + 6*At13L*cdphi3*gtu13 -
+ 3*At13L*Gt113*gtu13 - At11L*Gt133*gtu13 - 3*At23L*Gt213*gtu13 -
+ At12L*Gt233*gtu13 - 3*At33L*Gt313*gtu13 - At13L*Gt333*gtu13 +
+ 6*At23L*cdphi2*gtu22 - At13L*Gt122*gtu22 - At12L*Gt123*gtu22 -
+ At23L*Gt222*gtu22 - At22L*Gt223*gtu22 - At33L*Gt322*gtu22 -
+ At23L*Gt323*gtu22 + 6*At33L*cdphi2*gtu23 + 6*At23L*cdphi3*gtu23 -
+ 3*At13L*Gt123*gtu23 - At12L*Gt133*gtu23 - 3*At23L*Gt223*gtu23 -
+ At22L*Gt233*gtu23 - 3*At33L*Gt323*gtu23 - At23L*Gt333*gtu23 +
6*At33L*cdphi3*gtu33 - 2*At13L*Gt133*gtu33 - 2*At23L*Gt233*gtu33 -
- 2*At33L*Gt333*gtu33 + (gtu11*J11L + gtu21*J12L +
- gtu31*J13L)*PDstandardNth1At13 + gtu21*J11L*PDstandardNth1At23 +
- gtu22*J12L*PDstandardNth1At23 + gtu32*J13L*PDstandardNth1At23 +
- gtu31*J11L*PDstandardNth1At33 + gtu32*J12L*PDstandardNth1At33 +
+ 2*At33L*Gt333*gtu33 + (gtu11*J11L + gtu12*J12L +
+ gtu13*J13L)*PDstandardNth1At13 + gtu12*J11L*PDstandardNth1At23 +
+ gtu22*J12L*PDstandardNth1At23 + gtu23*J13L*PDstandardNth1At23 +
+ gtu13*J11L*PDstandardNth1At33 + gtu23*J12L*PDstandardNth1At33 +
gtu33*J13L*PDstandardNth1At33 - J13L*ktwothird*PDstandardNth1trK +
- (gtu11*J21L + gtu21*J22L + gtu31*J23L)*PDstandardNth2At13 +
- gtu21*J21L*PDstandardNth2At23 + gtu22*J22L*PDstandardNth2At23 +
- gtu32*J23L*PDstandardNth2At23 + gtu31*J21L*PDstandardNth2At33 +
- gtu32*J22L*PDstandardNth2At33 + gtu33*J23L*PDstandardNth2At33 -
+ (gtu11*J21L + gtu12*J22L + gtu13*J23L)*PDstandardNth2At13 +
+ gtu12*J21L*PDstandardNth2At23 + gtu22*J22L*PDstandardNth2At23 +
+ gtu23*J23L*PDstandardNth2At23 + gtu13*J21L*PDstandardNth2At33 +
+ gtu23*J22L*PDstandardNth2At33 + gtu33*J23L*PDstandardNth2At33 -
J23L*ktwothird*PDstandardNth2trK + gtu11*J31L*PDstandardNth3At13 +
- gtu21*J32L*PDstandardNth3At13 + gtu31*J33L*PDstandardNth3At13 +
- gtu21*J31L*PDstandardNth3At23 + gtu22*J32L*PDstandardNth3At23 +
- gtu32*J33L*PDstandardNth3At23 + gtu31*J31L*PDstandardNth3At33 +
- gtu32*J32L*PDstandardNth3At33 + gtu33*J33L*PDstandardNth3At33 -
+ gtu12*J32L*PDstandardNth3At13 + gtu13*J33L*PDstandardNth3At13 +
+ gtu12*J31L*PDstandardNth3At23 + gtu22*J32L*PDstandardNth3At23 +
+ gtu23*J33L*PDstandardNth3At23 + gtu13*J31L*PDstandardNth3At33 +
+ gtu23*J32L*PDstandardNth3At33 + gtu33*J33L*PDstandardNth3At33 -
J33L*ktwothird*PDstandardNth3trK -
25.13274122871834590770114706623602307358*S3;
CCTK_REAL cSL = Log(detgt);
- CCTK_REAL cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33 - Xt1L;
+ CCTK_REAL cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33 - Xt1L;
- CCTK_REAL cXt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33 - Xt2L;
+ CCTK_REAL cXt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33 - Xt2L;
- CCTK_REAL cXt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33 - Xt3L;
+ CCTK_REAL cXt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33 - Xt3L;
- CCTK_REAL cAL = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu21 +
- At13L*gtu31 + At23L*gtu32) + At33L*gtu33;
+ CCTK_REAL cAL = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu12 +
+ At13L*gtu13 + At23L*gtu23) + At33L*gtu33;
/* Copy local copies back to grid functions */
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_constraints_boundary.c b/ML_BSSN_MP/src/ML_BSSN_MP_constraints_boundary.c
index 8fdd948..2019be4 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_constraints_boundary.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_constraints_boundary.c
@@ -20,6 +20,30 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_constraints_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_cons_detg","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_cons_detg.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_cons_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_cons_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_cons_traceA","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_cons_traceA.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_mom.");
+ return;
+}
+
void ML_BSSN_MP_constraints_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.c b/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.c
index c968fd2..40f2691 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.c
@@ -131,13 +131,13 @@ void ML_BSSN_MP_convertFromADMBase_Body(cGH const * restrict const cctkGH, int c
CCTK_REAL gu11 = INV(detg)*(g22*g33 - SQR(g23));
- CCTK_REAL gu21 = (g13*g23 - g12*g33)*INV(detg);
+ CCTK_REAL gu12 = (g13*g23 - g12*g33)*INV(detg);
- CCTK_REAL gu31 = (-(g13*g22) + g12*g23)*INV(detg);
+ CCTK_REAL gu13 = (-(g13*g22) + g12*g23)*INV(detg);
CCTK_REAL gu22 = INV(detg)*(g11*g33 - SQR(g13));
- CCTK_REAL gu32 = (g12*g13 - g11*g23)*INV(detg);
+ CCTK_REAL gu23 = (g12*g13 - g11*g23)*INV(detg);
CCTK_REAL gu33 = INV(detg)*(g11*g22 - SQR(g12));
@@ -158,7 +158,7 @@ void ML_BSSN_MP_convertFromADMBase_Body(cGH const * restrict const cctkGH, int c
CCTK_REAL gt33L = em4phi*g33;
- trKL = gu11*kxxL + gu22*kyyL + 2*(gu21*kxyL + gu31*kxzL + gu32*kyzL) +
+ trKL = gu11*kxxL + gu22*kyyL + 2*(gu12*kxyL + gu13*kxzL + gu23*kyzL) +
gu33*kzzL;
CCTK_REAL At11L = em4phi*(kxxL - g11*kthird*trKL);
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBaseGamma.c b/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBaseGamma.c
index e49a100..b4afaba 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBaseGamma.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBaseGamma.c
@@ -20,6 +20,24 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_convertFromADMBaseGamma_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_dtshift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_MP::ML_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_MP::ML_Gamma.");
+ return;
+}
+
void ML_BSSN_MP_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -214,61 +232,61 @@ void ML_BSSN_MP_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH,
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
- CCTK_REAL Gt111 = khalf*((gtu11*J11L - gtu21*J12L -
- gtu31*J13L)*PDstandardNth1gt11 + (gtu11*J21L - gtu21*J22L -
- gtu31*J23L)*PDstandardNth2gt11 + (gtu11*J31L - gtu21*J32L -
- gtu31*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu21*PDstandardNth1gt12 +
- gtu31*PDstandardNth1gt13) + J21L*(gtu21*PDstandardNth2gt12 +
- gtu31*PDstandardNth2gt13) + J31L*(gtu21*PDstandardNth3gt12 +
- gtu31*PDstandardNth3gt13)));
-
- CCTK_REAL Gt211 = khalf*((gtu21*J11L - gtu22*J12L -
- gtu32*J13L)*PDstandardNth1gt11 + (gtu21*J21L - gtu22*J22L -
- gtu32*J23L)*PDstandardNth2gt11 + (gtu21*J31L - gtu22*J32L -
- gtu32*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu22*PDstandardNth1gt12 +
- gtu32*PDstandardNth1gt13) + J21L*(gtu22*PDstandardNth2gt12 +
- gtu32*PDstandardNth2gt13) + J31L*(gtu22*PDstandardNth3gt12 +
- gtu32*PDstandardNth3gt13)));
-
- CCTK_REAL Gt311 = khalf*((gtu31*J11L - gtu32*J12L -
- gtu33*J13L)*PDstandardNth1gt11 + (gtu31*J21L - gtu32*J22L -
- gtu33*J23L)*PDstandardNth2gt11 + (gtu31*J31L - gtu32*J32L -
- gtu33*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu32*PDstandardNth1gt12 +
- gtu33*PDstandardNth1gt13) + J21L*(gtu32*PDstandardNth2gt12 +
- gtu33*PDstandardNth2gt13) + J31L*(gtu32*PDstandardNth3gt12 +
+ CCTK_REAL Gt111 = khalf*((gtu11*J11L - gtu12*J12L -
+ gtu13*J13L)*PDstandardNth1gt11 + (gtu11*J21L - gtu12*J22L -
+ gtu13*J23L)*PDstandardNth2gt11 + (gtu11*J31L - gtu12*J32L -
+ gtu13*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu12*PDstandardNth1gt12 +
+ gtu13*PDstandardNth1gt13) + J21L*(gtu12*PDstandardNth2gt12 +
+ gtu13*PDstandardNth2gt13) + J31L*(gtu12*PDstandardNth3gt12 +
+ gtu13*PDstandardNth3gt13)));
+
+ CCTK_REAL Gt211 = khalf*((gtu12*J11L - gtu22*J12L -
+ gtu23*J13L)*PDstandardNth1gt11 + (gtu12*J21L - gtu22*J22L -
+ gtu23*J23L)*PDstandardNth2gt11 + (gtu12*J31L - gtu22*J32L -
+ gtu23*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu22*PDstandardNth1gt12 +
+ gtu23*PDstandardNth1gt13) + J21L*(gtu22*PDstandardNth2gt12 +
+ gtu23*PDstandardNth2gt13) + J31L*(gtu22*PDstandardNth3gt12 +
+ gtu23*PDstandardNth3gt13)));
+
+ CCTK_REAL Gt311 = khalf*((gtu13*J11L - gtu23*J12L -
+ gtu33*J13L)*PDstandardNth1gt11 + (gtu13*J21L - gtu23*J22L -
+ gtu33*J23L)*PDstandardNth2gt11 + (gtu13*J31L - gtu23*J32L -
+ gtu33*J33L)*PDstandardNth3gt11 + 2*(J11L*(gtu23*PDstandardNth1gt12 +
+ gtu33*PDstandardNth1gt13) + J21L*(gtu23*PDstandardNth2gt12 +
+ gtu33*PDstandardNth2gt13) + J31L*(gtu23*PDstandardNth3gt12 +
gtu33*PDstandardNth3gt13)));
CCTK_REAL Gt112 = khalf*(gtu11*(J12L*PDstandardNth1gt11 +
J22L*PDstandardNth2gt11 + J32L*PDstandardNth3gt11) +
- gtu21*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
- J31L*PDstandardNth3gt22) + gtu31*(-(J13L*PDstandardNth1gt12) +
+ gtu12*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
+ J31L*PDstandardNth3gt22) + gtu13*(-(J13L*PDstandardNth1gt12) +
J12L*PDstandardNth1gt13 + J11L*PDstandardNth1gt23 -
J23L*PDstandardNth2gt12 + J22L*PDstandardNth2gt13 +
J21L*PDstandardNth2gt23 - J33L*PDstandardNth3gt12 +
J32L*PDstandardNth3gt13 + J31L*PDstandardNth3gt23));
- CCTK_REAL Gt212 = khalf*(gtu21*(J12L*PDstandardNth1gt11 +
+ CCTK_REAL Gt212 = khalf*(gtu12*(J12L*PDstandardNth1gt11 +
J22L*PDstandardNth2gt11 + J32L*PDstandardNth3gt11) +
gtu22*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
- J31L*PDstandardNth3gt22) + gtu32*(-(J13L*PDstandardNth1gt12) +
+ J31L*PDstandardNth3gt22) + gtu23*(-(J13L*PDstandardNth1gt12) +
J12L*PDstandardNth1gt13 + J11L*PDstandardNth1gt23 -
J23L*PDstandardNth2gt12 + J22L*PDstandardNth2gt13 +
J21L*PDstandardNth2gt23 - J33L*PDstandardNth3gt12 +
J32L*PDstandardNth3gt13 + J31L*PDstandardNth3gt23));
- CCTK_REAL Gt312 = khalf*(gtu31*(J12L*PDstandardNth1gt11 +
+ CCTK_REAL Gt312 = khalf*(gtu13*(J12L*PDstandardNth1gt11 +
J22L*PDstandardNth2gt11 + J32L*PDstandardNth3gt11) +
- gtu32*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
+ gtu23*(J11L*PDstandardNth1gt22 + J21L*PDstandardNth2gt22 +
J31L*PDstandardNth3gt22) + gtu33*(-(J13L*PDstandardNth1gt12) +
J12L*PDstandardNth1gt13 + J11L*PDstandardNth1gt23 -
J23L*PDstandardNth2gt12 + J22L*PDstandardNth2gt13 +
@@ -277,25 +295,25 @@ void ML_BSSN_MP_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH,
CCTK_REAL Gt113 = khalf*(gtu11*(J13L*PDstandardNth1gt11 +
J23L*PDstandardNth2gt11 + J33L*PDstandardNth3gt11) +
- gtu21*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
+ gtu12*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 -
J22L*PDstandardNth2gt13 + J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 - J32L*PDstandardNth3gt13 +
- J31L*PDstandardNth3gt23) + gtu31*(J11L*PDstandardNth1gt33 +
+ J31L*PDstandardNth3gt23) + gtu13*(J11L*PDstandardNth1gt33 +
J21L*PDstandardNth2gt33 + J31L*PDstandardNth3gt33));
- CCTK_REAL Gt213 = khalf*(gtu21*(J13L*PDstandardNth1gt11 +
+ CCTK_REAL Gt213 = khalf*(gtu12*(J13L*PDstandardNth1gt11 +
J23L*PDstandardNth2gt11 + J33L*PDstandardNth3gt11) +
gtu22*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 -
J22L*PDstandardNth2gt13 + J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 - J32L*PDstandardNth3gt13 +
- J31L*PDstandardNth3gt23) + gtu32*(J11L*PDstandardNth1gt33 +
+ J31L*PDstandardNth3gt23) + gtu23*(J11L*PDstandardNth1gt33 +
J21L*PDstandardNth2gt33 + J31L*PDstandardNth3gt33));
- CCTK_REAL Gt313 = khalf*(gtu31*(J13L*PDstandardNth1gt11 +
+ CCTK_REAL Gt313 = khalf*(gtu13*(J13L*PDstandardNth1gt11 +
J23L*PDstandardNth2gt11 + J33L*PDstandardNth3gt11) +
- gtu32*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
+ gtu23*(J13L*PDstandardNth1gt12 - J12L*PDstandardNth1gt13 +
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 -
J22L*PDstandardNth2gt13 + J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 - J32L*PDstandardNth3gt13 +
@@ -305,51 +323,51 @@ void ML_BSSN_MP_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH,
CCTK_REAL Gt122 = khalf*(gtu11*(-(J11L*PDstandardNth1gt22) +
2*(J12L*PDstandardNth1gt12 + J22L*PDstandardNth2gt12) -
J21L*PDstandardNth2gt22 + 2*J32L*PDstandardNth3gt12 -
- J31L*PDstandardNth3gt22) + gtu21*(J12L*PDstandardNth1gt22 +
+ J31L*PDstandardNth3gt22) + gtu12*(J12L*PDstandardNth1gt22 +
J22L*PDstandardNth2gt22 + J32L*PDstandardNth3gt22) -
- gtu31*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
+ gtu13*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
J33L*PDstandardNth3gt22 - 2*(J12L*PDstandardNth1gt23 +
J22L*PDstandardNth2gt23 + J32L*PDstandardNth3gt23)));
- CCTK_REAL Gt222 = khalf*(gtu21*(-(J11L*PDstandardNth1gt22) +
+ CCTK_REAL Gt222 = khalf*(gtu12*(-(J11L*PDstandardNth1gt22) +
2*(J12L*PDstandardNth1gt12 + J22L*PDstandardNth2gt12) -
J21L*PDstandardNth2gt22 + 2*J32L*PDstandardNth3gt12 -
J31L*PDstandardNth3gt22) + gtu22*(J12L*PDstandardNth1gt22 +
J22L*PDstandardNth2gt22 + J32L*PDstandardNth3gt22) -
- gtu32*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
+ gtu23*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
J33L*PDstandardNth3gt22 - 2*(J12L*PDstandardNth1gt23 +
J22L*PDstandardNth2gt23 + J32L*PDstandardNth3gt23)));
- CCTK_REAL Gt322 = khalf*(gtu31*(-(J11L*PDstandardNth1gt22) +
+ CCTK_REAL Gt322 = khalf*(gtu13*(-(J11L*PDstandardNth1gt22) +
2*(J12L*PDstandardNth1gt12 + J22L*PDstandardNth2gt12) -
J21L*PDstandardNth2gt22 + 2*J32L*PDstandardNth3gt12 -
- J31L*PDstandardNth3gt22) + gtu32*(J12L*PDstandardNth1gt22 +
+ J31L*PDstandardNth3gt22) + gtu23*(J12L*PDstandardNth1gt22 +
J22L*PDstandardNth2gt22 + J32L*PDstandardNth3gt22) -
gtu33*(J13L*PDstandardNth1gt22 + J23L*PDstandardNth2gt22 +
J33L*PDstandardNth3gt22 - 2*(J12L*PDstandardNth1gt23 +
J22L*PDstandardNth2gt23 + J32L*PDstandardNth3gt23)));
- CCTK_REAL Gt123 = khalf*(gtu21*(J13L*PDstandardNth1gt22 +
+ CCTK_REAL Gt123 = khalf*(gtu12*(J13L*PDstandardNth1gt22 +
J23L*PDstandardNth2gt22 + J33L*PDstandardNth3gt22) +
gtu11*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 +
J22L*PDstandardNth2gt13 - J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 + J32L*PDstandardNth3gt13 -
- J31L*PDstandardNth3gt23) + gtu31*(J12L*PDstandardNth1gt33 +
+ J31L*PDstandardNth3gt23) + gtu13*(J12L*PDstandardNth1gt33 +
J22L*PDstandardNth2gt33 + J32L*PDstandardNth3gt33));
CCTK_REAL Gt223 = khalf*(gtu22*(J13L*PDstandardNth1gt22 +
J23L*PDstandardNth2gt22 + J33L*PDstandardNth3gt22) +
- gtu21*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
+ gtu12*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 +
J22L*PDstandardNth2gt13 - J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 + J32L*PDstandardNth3gt13 -
- J31L*PDstandardNth3gt23) + gtu32*(J12L*PDstandardNth1gt33 +
+ J31L*PDstandardNth3gt23) + gtu23*(J12L*PDstandardNth1gt33 +
J22L*PDstandardNth2gt33 + J32L*PDstandardNth3gt33));
- CCTK_REAL Gt323 = khalf*(gtu32*(J13L*PDstandardNth1gt22 +
+ CCTK_REAL Gt323 = khalf*(gtu23*(J13L*PDstandardNth1gt22 +
J23L*PDstandardNth2gt22 + J33L*PDstandardNth3gt22) +
- gtu31*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
+ gtu13*(J13L*PDstandardNth1gt12 + J12L*PDstandardNth1gt13 -
J11L*PDstandardNth1gt23 + J23L*PDstandardNth2gt12 +
J22L*PDstandardNth2gt13 - J21L*PDstandardNth2gt23 +
J33L*PDstandardNth3gt12 + J32L*PDstandardNth3gt13 -
@@ -359,38 +377,38 @@ void ML_BSSN_MP_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH,
CCTK_REAL Gt133 = khalf*(gtu11*(-(J11L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt13 + J23L*PDstandardNth2gt13) -
J21L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt13 -
- J31L*PDstandardNth3gt33) + gtu21*(-(J12L*PDstandardNth1gt33) +
+ J31L*PDstandardNth3gt33) + gtu12*(-(J12L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt23 + J23L*PDstandardNth2gt23) -
J22L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt23 -
- J32L*PDstandardNth3gt33) + gtu31*(J13L*PDstandardNth1gt33 +
+ J32L*PDstandardNth3gt33) + gtu13*(J13L*PDstandardNth1gt33 +
J23L*PDstandardNth2gt33 + J33L*PDstandardNth3gt33));
- CCTK_REAL Gt233 = khalf*(gtu21*(-(J11L*PDstandardNth1gt33) +
+ CCTK_REAL Gt233 = khalf*(gtu12*(-(J11L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt13 + J23L*PDstandardNth2gt13) -
J21L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt13 -
J31L*PDstandardNth3gt33) + gtu22*(-(J12L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt23 + J23L*PDstandardNth2gt23) -
J22L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt23 -
- J32L*PDstandardNth3gt33) + gtu32*(J13L*PDstandardNth1gt33 +
+ J32L*PDstandardNth3gt33) + gtu23*(J13L*PDstandardNth1gt33 +
J23L*PDstandardNth2gt33 + J33L*PDstandardNth3gt33));
- CCTK_REAL Gt333 = khalf*(gtu31*(-(J11L*PDstandardNth1gt33) +
+ CCTK_REAL Gt333 = khalf*(gtu13*(-(J11L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt13 + J23L*PDstandardNth2gt13) -
J21L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt13 -
- J31L*PDstandardNth3gt33) + gtu32*(-(J12L*PDstandardNth1gt33) +
+ J31L*PDstandardNth3gt33) + gtu23*(-(J12L*PDstandardNth1gt33) +
2*(J13L*PDstandardNth1gt23 + J23L*PDstandardNth2gt23) -
J22L*PDstandardNth2gt33 + 2*J33L*PDstandardNth3gt23 -
J32L*PDstandardNth3gt33) + gtu33*(J13L*PDstandardNth1gt33 +
J23L*PDstandardNth2gt33 + J33L*PDstandardNth3gt33));
- CCTK_REAL Xt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL AL = IfThen(LapseACoeff != 0,(-dtalpL +
J11L*LapseAdvectionCoeff*(beta1L*PDupwindNthAnti1alpha +
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.c b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.c
index 55fac38..6798639 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShift.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_convertToADMBaseDtLapseShift_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift.");
+ return;
+}
+
void ML_BSSN_MP_convertToADMBaseDtLapseShift_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.c b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.c
index f5d40ce..44523f0 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift.");
+ return;
+}
+
void ML_BSSN_MP_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_enforce.c b/ML_BSSN_MP/src/ML_BSSN_MP_enforce.c
index 5f3be5f..a79f095 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_enforce.c
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_enforce.c
@@ -113,18 +113,18 @@ void ML_BSSN_MP_enforce_Body(cGH const * restrict const cctkGH, int const dir, i
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
- CCTK_REAL trAt = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu21 +
- At13L*gtu31 + At23L*gtu32) + At33L*gtu33;
+ CCTK_REAL trAt = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu12 +
+ At13L*gtu13 + At23L*gtu23) + At33L*gtu33;
At11L = At11L - gt11L*kthird*trAt;
diff --git a/ML_BSSN_MP_Helper/schedule.ccl b/ML_BSSN_MP_Helper/schedule.ccl
index b302567..38dca48 100644
--- a/ML_BSSN_MP_Helper/schedule.ccl
+++ b/ML_BSSN_MP_Helper/schedule.ccl
@@ -132,7 +132,7 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN_MP")) {
}
else if (CCTK_EQUALS (calculate_ADMBase_variables_at, "CCTK_EVOL"))
{
- SCHEDULE GROUP ML_BSSN_MP_convertToADMBaseGroupWrapper AT evol AFTER MoL_Evolution BEFORE (ADMBase_SetADMVars Whisky_PostStep)
+ SCHEDULE GROUP ML_BSSN_MP_convertToADMBaseGroupWrapper IN MoL_PseudoEvolution BEFORE (ADMBase_SetADMVars Whisky_PostStep)
{
} "Calculate ADM variables"
}
@@ -143,7 +143,7 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN_MP")) {
} "Calculate ADM variables"
}
- SCHEDULE GROUP ML_BSSN_MP_convertToADMBaseGroupWrapper AT CCTK_POST_RECOVER_VARIABLES
+ SCHEDULE GROUP ML_BSSN_MP_convertToADMBaseGroupWrapper AT post_recover_variables
{
} "Calculate ADM variables"
diff --git a/ML_BSSN_O2/interface.ccl b/ML_BSSN_O2/interface.ccl
index f074947..27cebe2 100644
--- a/ML_BSSN_O2/interface.ccl
+++ b/ML_BSSN_O2/interface.ccl
@@ -25,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2.0000000000000000000'
+CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2'
{
cS
} "ML_cons_detg"
@@ -39,19 +39,19 @@ CCTK_REAL ML_cons_Gamma type=GF timelevels=1 tags='tensortypealias="U" tensorwei
} "ML_cons_Gamma"
public:
-CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
cA
} "ML_cons_traceA"
public:
-CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
H
} "ML_Ham"
public:
-CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1'
{
M1,
M2,
@@ -70,13 +70,13 @@ CCTK_REAL ML_curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweig
} "ML_curv"
public:
-CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
A
} "ML_dtlapse"
public:
-CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
B1,
B2,
@@ -92,7 +92,7 @@ CCTK_REAL ML_Gamma type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "ML_Gamma"
public:
-CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpha
} "ML_lapse"
@@ -115,7 +115,7 @@ CCTK_REAL ML_metric type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorwe
} "ML_metric"
public:
-CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1,
beta2,
@@ -123,7 +123,7 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1
} "ML_shift"
public:
-CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
trK
} "ML_trace_curv"
@@ -140,13 +140,13 @@ CCTK_REAL ML_curvrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorw
} "ML_curvrhs"
public:
-CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
Arhs
} "ML_dtlapserhs"
public:
-CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
B1rhs,
B2rhs,
@@ -162,7 +162,7 @@ CCTK_REAL ML_Gammarhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "ML_Gammarhs"
public:
-CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpharhs
} "ML_lapserhs"
@@ -185,7 +185,7 @@ CCTK_REAL ML_metricrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tenso
} "ML_metricrhs"
public:
-CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1rhs,
beta2rhs,
@@ -193,7 +193,7 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "ML_shiftrhs"
public:
-CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
trKrhs
} "ML_trace_curvrhs"
diff --git a/ML_BSSN_O2/schedule.ccl b/ML_BSSN_O2/schedule.ccl
index 716f052..95f1699 100644
--- a/ML_BSSN_O2/schedule.ccl
+++ b/ML_BSSN_O2/schedule.ccl
@@ -405,7 +405,7 @@ schedule ML_BSSN_O2_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_BSSN_O2_ApplyBCs in MoL_PostStep after ML_BSSN_O2_SelectBoundConds
+schedule group ApplyBCs as ML_BSSN_O2_ApplyBCs in MoL_PostStep after ML_BSSN_O2_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.c b/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.c
index 5c2048c..f94e894 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHS1.c
@@ -20,6 +20,39 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_RHS1_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -616,13 +649,13 @@ void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -665,50 +698,50 @@ void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL Gtl333 = khalf*PDstandardNth3gt33;
- CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu21 + Gtl311*gtu31;
+ CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu12 + Gtl311*gtu13;
- CCTK_REAL Gt211 = Gtl111*gtu21 + Gtl211*gtu22 + Gtl311*gtu32;
+ CCTK_REAL Gt211 = Gtl111*gtu12 + Gtl211*gtu22 + Gtl311*gtu23;
- CCTK_REAL Gt311 = Gtl111*gtu31 + Gtl211*gtu32 + Gtl311*gtu33;
+ CCTK_REAL Gt311 = Gtl111*gtu13 + Gtl211*gtu23 + Gtl311*gtu33;
- CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu21 + Gtl312*gtu31;
+ CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu12 + Gtl312*gtu13;
- CCTK_REAL Gt212 = Gtl112*gtu21 + Gtl212*gtu22 + Gtl312*gtu32;
+ CCTK_REAL Gt212 = Gtl112*gtu12 + Gtl212*gtu22 + Gtl312*gtu23;
- CCTK_REAL Gt312 = Gtl112*gtu31 + Gtl212*gtu32 + Gtl312*gtu33;
+ CCTK_REAL Gt312 = Gtl112*gtu13 + Gtl212*gtu23 + Gtl312*gtu33;
- CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gt213 = Gtl113*gtu21 + Gtl213*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gt213 = Gtl113*gtu12 + Gtl213*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gt313 = Gtl113*gtu31 + Gtl213*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gt313 = Gtl113*gtu13 + Gtl213*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu21 + Gtl322*gtu31;
+ CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu12 + Gtl322*gtu13;
- CCTK_REAL Gt222 = Gtl122*gtu21 + Gtl222*gtu22 + Gtl322*gtu32;
+ CCTK_REAL Gt222 = Gtl122*gtu12 + Gtl222*gtu22 + Gtl322*gtu23;
- CCTK_REAL Gt322 = Gtl122*gtu31 + Gtl222*gtu32 + Gtl322*gtu33;
+ CCTK_REAL Gt322 = Gtl122*gtu13 + Gtl222*gtu23 + Gtl322*gtu33;
- CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gt223 = Gtl123*gtu21 + Gtl223*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gt223 = Gtl123*gtu12 + Gtl223*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gt323 = Gtl123*gtu31 + Gtl223*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gt323 = Gtl123*gtu13 + Gtl223*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gt233 = Gtl133*gtu21 + Gtl233*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gt233 = Gtl133*gtu12 + Gtl233*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gt333 = Gtl133*gtu31 + Gtl233*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gt333 = Gtl133*gtu13 + Gtl233*gtu23 + Gtl333*gtu33;
- CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL fac1 = IfThen(conformalMethod,-(khalf*INV(phiL)),1);
@@ -718,35 +751,35 @@ void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL cdphi3 = fac1*PDstandardNth3phi;
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
- CCTK_REAL Atu11 = Atm11*gtu11 + Atm12*gtu21 + Atm13*gtu31;
+ CCTK_REAL Atu11 = Atm11*gtu11 + Atm12*gtu12 + Atm13*gtu13;
- CCTK_REAL Atu21 = Atm11*gtu21 + Atm12*gtu22 + Atm13*gtu32;
+ CCTK_REAL Atu12 = Atm11*gtu12 + Atm12*gtu22 + Atm13*gtu23;
- CCTK_REAL Atu31 = Atm11*gtu31 + Atm12*gtu32 + Atm13*gtu33;
+ CCTK_REAL Atu13 = Atm11*gtu13 + Atm12*gtu23 + Atm13*gtu33;
- CCTK_REAL Atu22 = Atm21*gtu21 + Atm22*gtu22 + Atm23*gtu32;
+ CCTK_REAL Atu22 = Atm21*gtu12 + Atm22*gtu22 + Atm23*gtu23;
- CCTK_REAL Atu32 = Atm21*gtu31 + Atm22*gtu32 + Atm23*gtu33;
+ CCTK_REAL Atu23 = Atm21*gtu13 + Atm22*gtu23 + Atm23*gtu33;
- CCTK_REAL Atu33 = Atm31*gtu31 + Atm32*gtu32 + Atm33*gtu33;
+ CCTK_REAL Atu33 = Atm31*gtu13 + Atm32*gtu23 + Atm33*gtu33;
CCTK_REAL e4phi = IfThen(conformalMethod,pow(phiL,-2),exp(4*phiL));
@@ -766,8 +799,8 @@ void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL S3 = (-eTtzL + beta1L*eTxzL + beta2L*eTyzL +
beta3L*eTzzL)*INV(alphaL);
- CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu21 +
- eTxzL*gtu31 + eTyzL*gtu32) + eTzzL*gtu33);
+ CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu12 +
+ eTxzL*gtu13 + eTyzL*gtu23) + eTzzL*gtu33);
CCTK_REAL phirhsL = epsdiss1*PDdissipationNth1phi +
epsdiss2*PDdissipationNth2phi + epsdiss3*PDdissipationNth3phi +
@@ -835,19 +868,19 @@ void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
beta3L*PDupwindNthAnti3gt33 + PDupwindNthSymm1gt33*Abs(beta1L) +
PDupwindNthSymm2gt33*Abs(beta2L) + PDupwindNthSymm3gt33*Abs(beta3L);
- CCTK_REAL dotXt1 = kthird*(7*(gtu21*PDstandardNth12beta1 +
- gtu31*PDstandardNth13beta1) + gtu11*(4*PDstandardNth11beta1 +
+ CCTK_REAL dotXt1 = kthird*(7*(gtu12*PDstandardNth12beta1 +
+ gtu13*PDstandardNth13beta1) + gtu11*(4*PDstandardNth11beta1 +
PDstandardNth12beta2 + PDstandardNth13beta3) +
- gtu21*(PDstandardNth22beta2 + PDstandardNth23beta3) +
- gtu31*(PDstandardNth23beta2 + PDstandardNth33beta3) -
- 6*(Atu11*PDstandardNth1alpha + Atu21*PDstandardNth2alpha +
- Atu31*PDstandardNth3alpha) + 6*(gtu32*PDstandardNth23beta1 +
- alphaL*(6*(Atu11*cdphi1 + Atu21*cdphi2 + Atu31*cdphi3) + Atu11*Gt111 +
- Atu22*Gt122 + 2*(Atu21*Gt112 + Atu31*Gt113 + Atu32*Gt123) + Atu33*Gt133
- - ktwothird*(gtu11*PDstandardNth1trK + gtu21*PDstandardNth2trK +
- gtu31*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu11*S1 + gtu21*S2 +
- gtu31*S3) + (-3*PDstandardNth1beta1 + 2*(PDstandardNth1beta1 +
+ gtu12*(PDstandardNth22beta2 + PDstandardNth23beta3) +
+ gtu13*(PDstandardNth23beta2 + PDstandardNth33beta3) -
+ 6*(Atu11*PDstandardNth1alpha + Atu12*PDstandardNth2alpha +
+ Atu13*PDstandardNth3alpha) + 6*(gtu23*PDstandardNth23beta1 +
+ alphaL*(6*(Atu11*cdphi1 + Atu12*cdphi2 + Atu13*cdphi3) + Atu11*Gt111 +
+ Atu22*Gt122 + 2*(Atu12*Gt112 + Atu13*Gt113 + Atu23*Gt123) + Atu33*Gt133
+ - ktwothird*(gtu11*PDstandardNth1trK + gtu12*PDstandardNth2trK +
+ gtu13*PDstandardNth3trK))) -
+ 150.7964473723100754462068823974161384415*alphaL*(gtu11*S1 + gtu12*S2 +
+ gtu13*S3) + (-3*PDstandardNth1beta1 + 2*(PDstandardNth1beta1 +
PDstandardNth2beta2 + PDstandardNth3beta3))*Xtn1 -
3*(PDstandardNth2beta1*Xtn2 + PDstandardNth3beta1*Xtn3) +
3*(epsdiss1*PDdissipationNth1Xt1 + epsdiss2*PDdissipationNth2Xt1 +
@@ -857,19 +890,19 @@ void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
PDupwindNthSymm1Xt1*Abs(beta1L) + PDupwindNthSymm2Xt1*Abs(beta2L) +
PDupwindNthSymm3Xt1*Abs(beta3L)));
- CCTK_REAL dotXt2 = kthird*(gtu21*(PDstandardNth11beta1 +
+ CCTK_REAL dotXt2 = kthird*(gtu12*(PDstandardNth11beta1 +
7*PDstandardNth12beta2 + PDstandardNth13beta3) +
gtu22*(PDstandardNth12beta1 + 4*PDstandardNth22beta2 +
- PDstandardNth23beta3) + gtu32*(PDstandardNth13beta1 +
+ PDstandardNth23beta3) + gtu23*(PDstandardNth13beta1 +
7*PDstandardNth23beta2 + PDstandardNth33beta3) -
- 6*(Atu21*PDstandardNth1alpha + Atu22*PDstandardNth2alpha +
- Atu32*PDstandardNth3alpha) + 6*(gtu31*PDstandardNth13beta2 +
- alphaL*(6*(Atu21*cdphi1 + Atu22*cdphi2 + Atu32*cdphi3) + Atu11*Gt211 +
- Atu22*Gt222 + 2*(Atu21*Gt212 + Atu31*Gt213 + Atu32*Gt223) + Atu33*Gt233
- - ktwothird*(gtu21*PDstandardNth1trK + gtu22*PDstandardNth2trK +
- gtu32*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu21*S1 + gtu22*S2 +
- gtu32*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
+ 6*(Atu12*PDstandardNth1alpha + Atu22*PDstandardNth2alpha +
+ Atu23*PDstandardNth3alpha) + 6*(gtu13*PDstandardNth13beta2 +
+ alphaL*(6*(Atu12*cdphi1 + Atu22*cdphi2 + Atu23*cdphi3) + Atu11*Gt211 +
+ Atu22*Gt222 + 2*(Atu12*Gt212 + Atu13*Gt213 + Atu23*Gt223) + Atu33*Gt233
+ - ktwothird*(gtu12*PDstandardNth1trK + gtu22*PDstandardNth2trK +
+ gtu23*PDstandardNth3trK))) -
+ 150.7964473723100754462068823974161384415*alphaL*(gtu12*S1 + gtu22*S2 +
+ gtu23*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
PDstandardNth3beta3)*Xtn2 - 3*(PDstandardNth1beta2*Xtn1 +
PDstandardNth2beta2*Xtn2 + PDstandardNth3beta2*Xtn3) +
3*(epsdiss1*PDdissipationNth1Xt2 + epsdiss2*PDdissipationNth2Xt2 +
@@ -879,18 +912,18 @@ void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
PDupwindNthSymm1Xt2*Abs(beta1L) + PDupwindNthSymm2Xt2*Abs(beta2L) +
PDupwindNthSymm3Xt2*Abs(beta3L)));
- CCTK_REAL dotXt3 = kthird*(gtu31*(PDstandardNth11beta1 +
+ CCTK_REAL dotXt3 = kthird*(gtu13*(PDstandardNth11beta1 +
PDstandardNth12beta2 + 7*PDstandardNth13beta3) +
- gtu32*(PDstandardNth12beta1 + PDstandardNth22beta2 +
+ gtu23*(PDstandardNth12beta1 + PDstandardNth22beta2 +
7*PDstandardNth23beta3) + gtu33*(PDstandardNth13beta1 +
PDstandardNth23beta2 + 4*PDstandardNth33beta3) -
- 6*(Atu31*PDstandardNth1alpha + Atu32*PDstandardNth2alpha +
- Atu33*PDstandardNth3alpha) + 6*(gtu21*PDstandardNth12beta3 +
- alphaL*(6*(Atu31*cdphi1 + Atu32*cdphi2 + Atu33*cdphi3) + Atu11*Gt311 +
- Atu22*Gt322 + 2*(Atu21*Gt312 + Atu31*Gt313 + Atu32*Gt323) + Atu33*Gt333
- - ktwothird*(gtu31*PDstandardNth1trK + gtu32*PDstandardNth2trK +
+ 6*(Atu13*PDstandardNth1alpha + Atu23*PDstandardNth2alpha +
+ Atu33*PDstandardNth3alpha) + 6*(gtu12*PDstandardNth12beta3 +
+ alphaL*(6*(Atu13*cdphi1 + Atu23*cdphi2 + Atu33*cdphi3) + Atu11*Gt311 +
+ Atu22*Gt322 + 2*(Atu12*Gt312 + Atu13*Gt313 + Atu23*Gt323) + Atu33*Gt333
+ - ktwothird*(gtu13*PDstandardNth1trK + gtu23*PDstandardNth2trK +
gtu33*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu31*S1 + gtu32*S2 +
+ 150.7964473723100754462068823974161384415*alphaL*(gtu13*S1 + gtu23*S2 +
gtu33*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
PDstandardNth3beta3)*Xtn3 - 3*(PDstandardNth1beta3*Xtn1 +
PDstandardNth2beta3*Xtn2 + PDstandardNth3beta3*Xtn3) +
@@ -912,12 +945,12 @@ void ML_BSSN_O2_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
beta1L*PDupwindNthAnti1trK + beta2L*PDupwindNthAnti2trK +
beta3L*PDupwindNthAnti3trK - em4phi*(gtu11*PDstandardNth11alpha +
gtu22*PDstandardNth22alpha + gtu33*(PDstandardNth33alpha +
- 2*cdphi3*PDstandardNth3alpha) + 2*(gtu21*PDstandardNth12alpha +
- gtu31*(PDstandardNth13alpha + cdphi1*PDstandardNth3alpha) +
- gtu32*(PDstandardNth23alpha + cdphi2*PDstandardNth3alpha)) +
- PDstandardNth1alpha*(2*(cdphi1*gtu11 + cdphi2*gtu21 + cdphi3*gtu31) -
- Xtn1) + PDstandardNth2alpha*(2*(cdphi1*gtu21 + cdphi2*gtu22 +
- cdphi3*gtu32) - Xtn2) - PDstandardNth3alpha*Xtn3) +
+ 2*cdphi3*PDstandardNth3alpha) + 2*(gtu12*PDstandardNth12alpha +
+ gtu13*(PDstandardNth13alpha + cdphi1*PDstandardNth3alpha) +
+ gtu23*(PDstandardNth23alpha + cdphi2*PDstandardNth3alpha)) +
+ PDstandardNth1alpha*(2*(cdphi1*gtu11 + cdphi2*gtu12 + cdphi3*gtu13) -
+ Xtn1) + PDstandardNth2alpha*(2*(cdphi1*gtu12 + cdphi2*gtu22 +
+ cdphi3*gtu23) - Xtn2) - PDstandardNth3alpha*Xtn3) +
PDupwindNthSymm1trK*Abs(beta1L) + PDupwindNthSymm2trK*Abs(beta2L) +
PDupwindNthSymm3trK*Abs(beta3L) + alphaL*(2*(Atm12*Atm21 + Atm13*Atm31
+ Atm23*Atm32) + 12.56637061435917295385057353311801153679*(rho + trS)
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.c b/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.c
index 294e810..b55f768 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHS2.c
@@ -20,6 +20,18 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_RHS2_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_curvrhs.");
+ return;
+}
+
void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -433,13 +445,13 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -482,104 +494,104 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL Gtl333 = khalf*PDstandardNth3gt33;
- CCTK_REAL Gtlu111 = Gtl111*gtu11 + Gtl112*gtu21 + Gtl113*gtu31;
+ CCTK_REAL Gtlu111 = Gtl111*gtu11 + Gtl112*gtu12 + Gtl113*gtu13;
- CCTK_REAL Gtlu112 = Gtl111*gtu21 + Gtl112*gtu22 + Gtl113*gtu32;
+ CCTK_REAL Gtlu112 = Gtl111*gtu12 + Gtl112*gtu22 + Gtl113*gtu23;
- CCTK_REAL Gtlu113 = Gtl111*gtu31 + Gtl112*gtu32 + Gtl113*gtu33;
+ CCTK_REAL Gtlu113 = Gtl111*gtu13 + Gtl112*gtu23 + Gtl113*gtu33;
- CCTK_REAL Gtlu121 = Gtl112*gtu11 + Gtl122*gtu21 + Gtl123*gtu31;
+ CCTK_REAL Gtlu121 = Gtl112*gtu11 + Gtl122*gtu12 + Gtl123*gtu13;
- CCTK_REAL Gtlu122 = Gtl112*gtu21 + Gtl122*gtu22 + Gtl123*gtu32;
+ CCTK_REAL Gtlu122 = Gtl112*gtu12 + Gtl122*gtu22 + Gtl123*gtu23;
- CCTK_REAL Gtlu123 = Gtl112*gtu31 + Gtl122*gtu32 + Gtl123*gtu33;
+ CCTK_REAL Gtlu123 = Gtl112*gtu13 + Gtl122*gtu23 + Gtl123*gtu33;
- CCTK_REAL Gtlu131 = Gtl113*gtu11 + Gtl123*gtu21 + Gtl133*gtu31;
+ CCTK_REAL Gtlu131 = Gtl113*gtu11 + Gtl123*gtu12 + Gtl133*gtu13;
- CCTK_REAL Gtlu132 = Gtl113*gtu21 + Gtl123*gtu22 + Gtl133*gtu32;
+ CCTK_REAL Gtlu132 = Gtl113*gtu12 + Gtl123*gtu22 + Gtl133*gtu23;
- CCTK_REAL Gtlu133 = Gtl113*gtu31 + Gtl123*gtu32 + Gtl133*gtu33;
+ CCTK_REAL Gtlu133 = Gtl113*gtu13 + Gtl123*gtu23 + Gtl133*gtu33;
- CCTK_REAL Gtlu211 = Gtl211*gtu11 + Gtl212*gtu21 + Gtl213*gtu31;
+ CCTK_REAL Gtlu211 = Gtl211*gtu11 + Gtl212*gtu12 + Gtl213*gtu13;
- CCTK_REAL Gtlu212 = Gtl211*gtu21 + Gtl212*gtu22 + Gtl213*gtu32;
+ CCTK_REAL Gtlu212 = Gtl211*gtu12 + Gtl212*gtu22 + Gtl213*gtu23;
- CCTK_REAL Gtlu213 = Gtl211*gtu31 + Gtl212*gtu32 + Gtl213*gtu33;
+ CCTK_REAL Gtlu213 = Gtl211*gtu13 + Gtl212*gtu23 + Gtl213*gtu33;
- CCTK_REAL Gtlu221 = Gtl212*gtu11 + Gtl222*gtu21 + Gtl223*gtu31;
+ CCTK_REAL Gtlu221 = Gtl212*gtu11 + Gtl222*gtu12 + Gtl223*gtu13;
- CCTK_REAL Gtlu222 = Gtl212*gtu21 + Gtl222*gtu22 + Gtl223*gtu32;
+ CCTK_REAL Gtlu222 = Gtl212*gtu12 + Gtl222*gtu22 + Gtl223*gtu23;
- CCTK_REAL Gtlu223 = Gtl212*gtu31 + Gtl222*gtu32 + Gtl223*gtu33;
+ CCTK_REAL Gtlu223 = Gtl212*gtu13 + Gtl222*gtu23 + Gtl223*gtu33;
- CCTK_REAL Gtlu231 = Gtl213*gtu11 + Gtl223*gtu21 + Gtl233*gtu31;
+ CCTK_REAL Gtlu231 = Gtl213*gtu11 + Gtl223*gtu12 + Gtl233*gtu13;
- CCTK_REAL Gtlu232 = Gtl213*gtu21 + Gtl223*gtu22 + Gtl233*gtu32;
+ CCTK_REAL Gtlu232 = Gtl213*gtu12 + Gtl223*gtu22 + Gtl233*gtu23;
- CCTK_REAL Gtlu233 = Gtl213*gtu31 + Gtl223*gtu32 + Gtl233*gtu33;
+ CCTK_REAL Gtlu233 = Gtl213*gtu13 + Gtl223*gtu23 + Gtl233*gtu33;
- CCTK_REAL Gtlu311 = Gtl311*gtu11 + Gtl312*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gtlu311 = Gtl311*gtu11 + Gtl312*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gtlu312 = Gtl311*gtu21 + Gtl312*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gtlu312 = Gtl311*gtu12 + Gtl312*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gtlu313 = Gtl311*gtu31 + Gtl312*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gtlu313 = Gtl311*gtu13 + Gtl312*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gtlu321 = Gtl312*gtu11 + Gtl322*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gtlu321 = Gtl312*gtu11 + Gtl322*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gtlu322 = Gtl312*gtu21 + Gtl322*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gtlu322 = Gtl312*gtu12 + Gtl322*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gtlu323 = Gtl312*gtu31 + Gtl322*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gtlu323 = Gtl312*gtu13 + Gtl322*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gtlu331 = Gtl313*gtu11 + Gtl323*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gtlu331 = Gtl313*gtu11 + Gtl323*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gtlu332 = Gtl313*gtu21 + Gtl323*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gtlu332 = Gtl313*gtu12 + Gtl323*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gtlu333 = Gtl313*gtu31 + Gtl323*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gtlu333 = Gtl313*gtu13 + Gtl323*gtu23 + Gtl333*gtu33;
- CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu21 + Gtl311*gtu31;
+ CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu12 + Gtl311*gtu13;
- CCTK_REAL Gt211 = Gtl111*gtu21 + Gtl211*gtu22 + Gtl311*gtu32;
+ CCTK_REAL Gt211 = Gtl111*gtu12 + Gtl211*gtu22 + Gtl311*gtu23;
- CCTK_REAL Gt311 = Gtl111*gtu31 + Gtl211*gtu32 + Gtl311*gtu33;
+ CCTK_REAL Gt311 = Gtl111*gtu13 + Gtl211*gtu23 + Gtl311*gtu33;
- CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu21 + Gtl312*gtu31;
+ CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu12 + Gtl312*gtu13;
- CCTK_REAL Gt212 = Gtl112*gtu21 + Gtl212*gtu22 + Gtl312*gtu32;
+ CCTK_REAL Gt212 = Gtl112*gtu12 + Gtl212*gtu22 + Gtl312*gtu23;
- CCTK_REAL Gt312 = Gtl112*gtu31 + Gtl212*gtu32 + Gtl312*gtu33;
+ CCTK_REAL Gt312 = Gtl112*gtu13 + Gtl212*gtu23 + Gtl312*gtu33;
- CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gt213 = Gtl113*gtu21 + Gtl213*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gt213 = Gtl113*gtu12 + Gtl213*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gt313 = Gtl113*gtu31 + Gtl213*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gt313 = Gtl113*gtu13 + Gtl213*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu21 + Gtl322*gtu31;
+ CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu12 + Gtl322*gtu13;
- CCTK_REAL Gt222 = Gtl122*gtu21 + Gtl222*gtu22 + Gtl322*gtu32;
+ CCTK_REAL Gt222 = Gtl122*gtu12 + Gtl222*gtu22 + Gtl322*gtu23;
- CCTK_REAL Gt322 = Gtl122*gtu31 + Gtl222*gtu32 + Gtl322*gtu33;
+ CCTK_REAL Gt322 = Gtl122*gtu13 + Gtl222*gtu23 + Gtl322*gtu33;
- CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gt223 = Gtl123*gtu21 + Gtl223*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gt223 = Gtl123*gtu12 + Gtl223*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gt323 = Gtl123*gtu31 + Gtl223*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gt323 = Gtl123*gtu13 + Gtl223*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gt233 = Gtl133*gtu21 + Gtl233*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gt233 = Gtl133*gtu12 + Gtl233*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gt333 = Gtl133*gtu31 + Gtl233*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gt333 = Gtl133*gtu13 + Gtl233*gtu23 + Gtl333*gtu33;
- CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL Rt11 = 3*(Gt111*Gtlu111 + Gt112*Gtlu112 + Gt113*Gtlu113) +
2*(Gt211*Gtlu121 + Gt212*Gtlu122 + Gt213*Gtlu123 + Gt311*Gtlu131 +
@@ -587,8 +599,8 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt213*Gtlu213 + Gt311*Gtlu311 + Gt312*Gtlu312 + Gt313*Gtlu313 +
gt11L*PDstandardNth1Xt1 + gt12L*PDstandardNth1Xt2 +
gt13L*PDstandardNth1Xt3 + khalf*(-(gtu11*PDstandardNth11gt11) -
- 2*gtu21*PDstandardNth12gt11 - 2*gtu31*PDstandardNth13gt11 -
- gtu22*PDstandardNth22gt11 - 2*gtu32*PDstandardNth23gt11 -
+ 2*gtu12*PDstandardNth12gt11 - 2*gtu13*PDstandardNth13gt11 -
+ gtu22*PDstandardNth22gt11 - 2*gtu23*PDstandardNth23gt11 -
gtu33*PDstandardNth33gt11) + Gtl111*Xtn1 + Gtl112*Xtn2 + Gtl113*Xtn3;
CCTK_REAL Rt12 = khalf*(4*(Gt211*Gtlu221 + Gt212*Gtlu222 +
@@ -598,10 +610,10 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt323*Gtlu133 + Gt111*Gtlu211 + Gt112*Gtlu212 + Gt113*Gtlu213 +
Gt311*Gtlu231 + Gt312*Gtlu232 + Gt313*Gtlu233 + Gt311*Gtlu321 +
Gt312*Gtlu322 + Gt313*Gtlu323) - gtu11*PDstandardNth11gt12 -
- 2*gtu21*PDstandardNth12gt12 - 2*gtu31*PDstandardNth13gt12 +
+ 2*gtu12*PDstandardNth12gt12 - 2*gtu13*PDstandardNth13gt12 +
gt12L*PDstandardNth1Xt1 + gt22L*PDstandardNth1Xt2 +
gt23L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt12 -
- 2*gtu32*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
+ 2*gtu23*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
gt12L*PDstandardNth2Xt2 + gt13L*PDstandardNth2Xt3 -
gtu33*PDstandardNth33gt12 + Gtl112*Xtn1 + Gtl211*Xtn1 + Gtl122*Xtn2 +
Gtl212*Xtn2 + Gtl123*Xtn3 + Gtl213*Xtn3);
@@ -613,10 +625,10 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt213*Gtlu233 + Gt111*Gtlu311 + Gt112*Gtlu312 + Gt113*Gtlu313 +
Gt211*Gtlu321 + Gt212*Gtlu322 + Gt213*Gtlu323) + 4*(Gt311*Gtlu331 +
Gt312*Gtlu332 + Gt313*Gtlu333) - gtu11*PDstandardNth11gt13 -
- 2*gtu21*PDstandardNth12gt13 - 2*gtu31*PDstandardNth13gt13 +
+ 2*gtu12*PDstandardNth12gt13 - 2*gtu13*PDstandardNth13gt13 +
gt13L*PDstandardNth1Xt1 + gt23L*PDstandardNth1Xt2 +
gt33L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt13 -
- 2*gtu32*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
+ 2*gtu23*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
gt11L*PDstandardNth3Xt1 + gt12L*PDstandardNth3Xt2 +
gt13L*PDstandardNth3Xt3 + Gtl113*Xtn1 + Gtl311*Xtn1 + Gtl123*Xtn2 +
Gtl312*Xtn2 + Gtl133*Xtn3 + Gtl313*Xtn3);
@@ -627,8 +639,8 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt323*Gtlu233) + Gt312*Gtlu321 + Gt322*Gtlu322 + Gt323*Gtlu323 +
gt12L*PDstandardNth2Xt1 + gt22L*PDstandardNth2Xt2 +
gt23L*PDstandardNth2Xt3 + khalf*(-(gtu11*PDstandardNth11gt22) -
- 2*gtu21*PDstandardNth12gt22 - 2*gtu31*PDstandardNth13gt22 -
- gtu22*PDstandardNth22gt22 - 2*gtu32*PDstandardNth23gt22 -
+ 2*gtu12*PDstandardNth12gt22 - 2*gtu13*PDstandardNth13gt22 -
+ gtu22*PDstandardNth22gt22 - 2*gtu23*PDstandardNth23gt22 -
gtu33*PDstandardNth33gt22) + Gtl212*Xtn1 + Gtl222*Xtn2 + Gtl223*Xtn3;
CCTK_REAL Rt23 = khalf*(2*(Gt112*Gtlu131 + Gt122*Gtlu132 +
@@ -638,8 +650,8 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt333*Gtlu233 + Gt112*Gtlu311 + Gt122*Gtlu312 + Gt123*Gtlu313 +
Gt212*Gtlu321 + Gt222*Gtlu322 + Gt223*Gtlu323) + 4*(Gt312*Gtlu331 +
Gt322*Gtlu332 + Gt323*Gtlu333) - gtu11*PDstandardNth11gt23 -
- 2*gtu21*PDstandardNth12gt23 - 2*gtu31*PDstandardNth13gt23 -
- gtu22*PDstandardNth22gt23 - 2*gtu32*PDstandardNth23gt23 +
+ 2*gtu12*PDstandardNth12gt23 - 2*gtu13*PDstandardNth13gt23 -
+ gtu22*PDstandardNth22gt23 - 2*gtu23*PDstandardNth23gt23 +
gt13L*PDstandardNth2Xt1 + gt23L*PDstandardNth2Xt2 +
gt33L*PDstandardNth2Xt3 - gtu33*PDstandardNth33gt23 +
gt12L*PDstandardNth3Xt1 + gt22L*PDstandardNth3Xt2 +
@@ -650,9 +662,9 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
2*Gtlu312) + Gt133*(Gtlu133 + 2*Gtlu313) + Gt213*(Gtlu231 + 2*Gtlu321)
+ Gt223*(Gtlu232 + 2*Gtlu322) + Gt233*(Gtlu233 + 2*Gtlu323) +
3*(Gt313*Gtlu331 + Gt323*Gtlu332 + Gt333*Gtlu333) +
- khalf*(-(gtu11*PDstandardNth11gt33) - 2*gtu21*PDstandardNth12gt33 -
- 2*gtu31*PDstandardNth13gt33 - gtu22*PDstandardNth22gt33 -
- 2*gtu32*PDstandardNth23gt33 - gtu33*PDstandardNth33gt33) +
+ khalf*(-(gtu11*PDstandardNth11gt33) - 2*gtu12*PDstandardNth12gt33 -
+ 2*gtu13*PDstandardNth13gt33 - gtu22*PDstandardNth22gt33 -
+ 2*gtu23*PDstandardNth23gt33 - gtu33*PDstandardNth33gt33) +
gt13L*PDstandardNth3Xt1 + gt23L*PDstandardNth3Xt2 +
gt33L*PDstandardNth3Xt3 + Gtl313*Xtn1 + Gtl323*Xtn2 + Gtl333*Xtn3;
@@ -691,58 +703,58 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt333*PDstandardNth3phi)) + fac2*SQR(PDstandardNth3phi);
CCTK_REAL Rphi11 = -2*(cdphi211 + 2*(-1 + gt11L*gtu11)*SQR(cdphi1) +
- gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu21 + cdphi3*gtu31) +
- cdphi2*cdphi3*gtu32) + cdphi233*gtu33 + gtu22*(cdphi222 +
- 2*SQR(cdphi2)) + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu12 + cdphi3*gtu13) +
+ cdphi2*cdphi3*gtu23) + cdphi233*gtu33 + gtu22*(cdphi222 +
+ 2*SQR(cdphi2)) + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu21)
- + 4*cdphi3*gt12L*gtu31) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu32
- + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu12)
+ + 4*cdphi3*gt12L*gtu13) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu23
+ + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2)) + gtu33*(cdphi233
+ 2*SQR(cdphi3))));
- CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu21 +
- cdphi3*(-2 + 4*gt13L*gtu31)) + gt13L*(cdphi211*gtu11 +
- 4*cdphi2*cdphi3*gtu32 + 2*(cdphi212*gtu21 + cdphi213*gtu31 +
- cdphi223*gtu32 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu12 +
+ cdphi3*(-2 + 4*gt13L*gtu13)) + gt13L*(cdphi211*gtu11 +
+ 4*cdphi2*cdphi3*gtu23 + 2*(cdphi212*gtu12 + cdphi213*gtu13 +
+ cdphi223*gtu23 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ gtu33*(cdphi233 + 2*SQR(cdphi3))));
CCTK_REAL Rphi22 = -2*(cdphi222 + 2*(-1 + gt22L*gtu22)*SQR(cdphi2) +
- gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu31 + cdphi2*(cdphi1*gtu21 +
- cdphi3*gtu32)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu13 + cdphi2*(cdphi1*gtu12 +
+ cdphi3*gtu23)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
+ 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu21 +
- cdphi3*(-2 + 4*gt23L*gtu32)) + gt23L*(cdphi222*gtu22 +
- 4*cdphi1*cdphi3*gtu31 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
- gtu22*SQR(cdphi2)) + gtu33*(cdphi233 + 2*SQR(cdphi3))));
+ CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu12 +
+ cdphi3*(-2 + 4*gt23L*gtu23)) + gt23L*(4*cdphi1*cdphi3*gtu13 +
+ cdphi222*gtu22 + gtu11*(cdphi211 + 2*SQR(cdphi1)) + 2*(cdphi212*gtu12 +
+ cdphi213*gtu13 + cdphi223*gtu23 + gtu22*SQR(cdphi2)) + gtu33*(cdphi233
+ + 2*SQR(cdphi3))));
CCTK_REAL Rphi33 = -2*(cdphi233 + gt33L*((4*cdphi1*cdphi2 +
- 2*cdphi212)*gtu21 + 4*cdphi3*(cdphi1*gtu31 + cdphi2*gtu32) +
- 2*(cdphi213*gtu31 + cdphi223*gtu32) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*cdphi212)*gtu12 + 4*cdphi3*(cdphi1*gtu13 + cdphi2*gtu23) +
+ 2*(cdphi213*gtu13 + cdphi223*gtu23) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))) + 2*(-1 +
gt33L*gtu33)*SQR(cdphi3));
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
CCTK_REAL e4phi = IfThen(conformalMethod,pow(phiL,-2),exp(4*phiL));
@@ -762,13 +774,13 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -784,8 +796,8 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL R33 = Rphi33 + Rt33;
- CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu21 +
- eTxzL*gtu31 + eTyzL*gtu32) + eTzzL*gtu33);
+ CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu12 +
+ eTxzL*gtu13 + eTyzL*gtu23) + eTzzL*gtu33);
CCTK_REAL Ats11 = -PDstandardNth11alpha + (4*cdphi1 +
Gt111)*PDstandardNth1alpha + Gt211*PDstandardNth2alpha +
@@ -811,8 +823,8 @@ void ML_BSSN_O2_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt233*PDstandardNth2alpha - PDstandardNth33alpha + (4*cdphi3 +
Gt333)*PDstandardNth3alpha + alphaL*R33;
- CCTK_REAL trAts = Ats11*gu11 + Ats22*gu22 + 2*(Ats12*gu21 + Ats13*gu31
- + Ats23*gu32) + Ats33*gu33;
+ CCTK_REAL trAts = Ats11*gu11 + Ats22*gu22 + 2*(Ats12*gu12 + Ats13*gu13
+ + Ats23*gu23) + Ats33*gu33;
CCTK_REAL At11rhsL = -2.*alphaL*(At11L*Atm11 + At12L*Atm21 +
At13L*Atm31) + epsdiss1*PDdissipationNth1At11 +
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHSRadiativeBoundary.c b/ML_BSSN_O2/src/ML_BSSN_O2_RHSRadiativeBoundary.c
index f9e9e1c..254e962 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_RHSRadiativeBoundary.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHSRadiativeBoundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_RHSRadiativeBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_O2_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -137,13 +173,13 @@ void ML_BSSN_O2_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -151,13 +187,13 @@ void ML_BSSN_O2_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -167,11 +203,11 @@ void ML_BSSN_O2_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL nn3 = normal[2];
- CCTK_REAL nu1 = gu11*nn1 + gu21*nn2 + gu31*nn3;
+ CCTK_REAL nu1 = gu11*nn1 + gu12*nn2 + gu13*nn3;
- CCTK_REAL nu2 = gu21*nn1 + gu22*nn2 + gu32*nn3;
+ CCTK_REAL nu2 = gu12*nn1 + gu22*nn2 + gu23*nn3;
- CCTK_REAL nu3 = gu31*nn1 + gu32*nn2 + gu33*nn3;
+ CCTK_REAL nu3 = gu13*nn1 + gu23*nn2 + gu33*nn3;
CCTK_REAL nlen2 = nn1*nu1 + nn2*nu2 + nn3*nu3;
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.c b/ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.c
index 562a121..04def59 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_RHSStaticBoundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_O2_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_boundary.c b/ML_BSSN_O2/src/ML_BSSN_O2_boundary.c
index b1bfaa9..527c18c 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_boundary.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_boundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_curv.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtshift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_lapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_lapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_log_confac","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_log_confac.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_metric","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_metric.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_shift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_trace_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_trace_curv.");
+ return;
+}
+
void ML_BSSN_O2_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_constraints.c b/ML_BSSN_O2/src/ML_BSSN_O2_constraints.c
index a450c63..0558843 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_constraints.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_constraints.c
@@ -20,6 +20,30 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_constraints_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_cons_detg","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_cons_detg.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_cons_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_cons_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_cons_traceA","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_cons_traceA.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_mom.");
+ return;
+}
+
void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -323,151 +347,151 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
CCTK_REAL Gt111 = khalf*(gtu11*PDstandardNth1gt11 +
- 2*(gtu21*PDstandardNth1gt12 + gtu31*PDstandardNth1gt13) -
- gtu21*PDstandardNth2gt11 - gtu31*PDstandardNth3gt11);
+ 2*(gtu12*PDstandardNth1gt12 + gtu13*PDstandardNth1gt13) -
+ gtu12*PDstandardNth2gt11 - gtu13*PDstandardNth3gt11);
- CCTK_REAL Gt211 = khalf*(gtu21*PDstandardNth1gt11 +
- 2*(gtu22*PDstandardNth1gt12 + gtu32*PDstandardNth1gt13) -
- gtu22*PDstandardNth2gt11 - gtu32*PDstandardNth3gt11);
+ CCTK_REAL Gt211 = khalf*(gtu12*PDstandardNth1gt11 +
+ 2*(gtu22*PDstandardNth1gt12 + gtu23*PDstandardNth1gt13) -
+ gtu22*PDstandardNth2gt11 - gtu23*PDstandardNth3gt11);
- CCTK_REAL Gt311 = khalf*(gtu31*PDstandardNth1gt11 +
- 2*(gtu32*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
- gtu32*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
+ CCTK_REAL Gt311 = khalf*(gtu13*PDstandardNth1gt11 +
+ 2*(gtu23*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
+ gtu23*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
- CCTK_REAL Gt112 = khalf*(gtu21*PDstandardNth1gt22 +
- gtu11*PDstandardNth2gt11 + gtu31*(PDstandardNth1gt23 +
+ CCTK_REAL Gt112 = khalf*(gtu12*PDstandardNth1gt22 +
+ gtu11*PDstandardNth2gt11 + gtu13*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
CCTK_REAL Gt212 = khalf*(gtu22*PDstandardNth1gt22 +
- gtu21*PDstandardNth2gt11 + gtu32*(PDstandardNth1gt23 +
+ gtu12*PDstandardNth2gt11 + gtu23*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt312 = khalf*(gtu32*PDstandardNth1gt22 +
- gtu31*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
+ CCTK_REAL Gt312 = khalf*(gtu23*PDstandardNth1gt22 +
+ gtu13*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt113 = khalf*(gtu31*PDstandardNth1gt33 +
- gtu11*PDstandardNth3gt11 + gtu21*(PDstandardNth1gt23 -
+ CCTK_REAL Gt113 = khalf*(gtu13*PDstandardNth1gt33 +
+ gtu11*PDstandardNth3gt11 + gtu12*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
- CCTK_REAL Gt213 = khalf*(gtu32*PDstandardNth1gt33 +
- gtu21*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
+ CCTK_REAL Gt213 = khalf*(gtu23*PDstandardNth1gt33 +
+ gtu12*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt313 = khalf*(gtu33*PDstandardNth1gt33 +
- gtu31*PDstandardNth3gt11 + gtu32*(PDstandardNth1gt23 -
+ gtu13*PDstandardNth3gt11 + gtu23*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt122 = khalf*(gtu11*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu21*PDstandardNth2gt22 +
- gtu31*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ 2*PDstandardNth2gt12) + gtu12*PDstandardNth2gt22 +
+ gtu13*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt222 = khalf*(gtu21*(-PDstandardNth1gt22 +
+ CCTK_REAL Gt222 = khalf*(gtu12*(-PDstandardNth1gt22 +
2*PDstandardNth2gt12) + gtu22*PDstandardNth2gt22 +
- gtu32*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ gtu23*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt322 = khalf*(gtu31*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu32*PDstandardNth2gt22 +
+ CCTK_REAL Gt322 = khalf*(gtu13*(-PDstandardNth1gt22 +
+ 2*PDstandardNth2gt12) + gtu23*PDstandardNth2gt22 +
gtu33*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt123 = khalf*(gtu31*PDstandardNth2gt33 +
+ CCTK_REAL Gt123 = khalf*(gtu13*PDstandardNth2gt33 +
gtu11*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu21*PDstandardNth3gt22);
+ gtu12*PDstandardNth3gt22);
- CCTK_REAL Gt223 = khalf*(gtu32*PDstandardNth2gt33 +
- gtu21*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ CCTK_REAL Gt223 = khalf*(gtu23*PDstandardNth2gt33 +
+ gtu12*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
gtu22*PDstandardNth3gt22);
CCTK_REAL Gt323 = khalf*(gtu33*PDstandardNth2gt33 +
- gtu31*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu32*PDstandardNth3gt22);
+ gtu13*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ gtu23*PDstandardNth3gt22);
CCTK_REAL Gt133 = khalf*(-(gtu11*PDstandardNth1gt33) -
- gtu21*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
- 2*gtu21*PDstandardNth3gt23 + gtu31*PDstandardNth3gt33);
+ gtu12*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
+ 2*gtu12*PDstandardNth3gt23 + gtu13*PDstandardNth3gt33);
- CCTK_REAL Gt233 = khalf*(-(gtu21*PDstandardNth1gt33) -
- gtu22*PDstandardNth2gt33 + 2*gtu21*PDstandardNth3gt13 +
- 2*gtu22*PDstandardNth3gt23 + gtu32*PDstandardNth3gt33);
+ CCTK_REAL Gt233 = khalf*(-(gtu12*PDstandardNth1gt33) -
+ gtu22*PDstandardNth2gt33 + 2*gtu12*PDstandardNth3gt13 +
+ 2*gtu22*PDstandardNth3gt23 + gtu23*PDstandardNth3gt33);
- CCTK_REAL Gt333 = khalf*(-(gtu31*PDstandardNth1gt33) -
- gtu32*PDstandardNth2gt33 + 2*gtu31*PDstandardNth3gt13 +
- 2*gtu32*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
+ CCTK_REAL Gt333 = khalf*(-(gtu13*PDstandardNth1gt33) -
+ gtu23*PDstandardNth2gt33 + 2*gtu13*PDstandardNth3gt13 +
+ 2*gtu23*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
CCTK_REAL Rt11 = -(gtu11*khalf*PDstandardNth11gt11) +
- gtu21*(2*Gt211*Gt212*gt22L + 4*Gt112*gt13L*Gt311 + 2*Gt113*gt11L*Gt312
+ gtu12*(2*Gt211*Gt212*gt22L + 4*Gt112*gt13L*Gt311 + 2*Gt113*gt11L*Gt312
+ 2*gt13L*Gt312*Gt313 + 2*gt13L*Gt211*Gt322 + 2*gt13L*Gt311*Gt323 +
- 2*Gt311*Gt312*gt33L - PDstandardNth12gt11) - gtu31*PDstandardNth13gt11
- + gt11L*PDstandardNth1Xt1 + gt12L*(4*Gt111*Gt212*gtu21 +
- 2*Gt211*Gt222*gtu21 + 2*Gt212*Gt222*gtu22 + 4*Gt113*Gt211*gtu31 +
- 4*Gt113*Gt212*gtu32 + 4*Gt113*Gt213*gtu33 + PDstandardNth1Xt2) +
- gt13L*(4*Gt111*Gt312*gtu21 + 2*Gt212*Gt312*gtu21 + 4*Gt112*Gt312*gtu22
- + 4*Gt113*Gt311*gtu31 + 4*Gt113*Gt312*gtu32 + 4*Gt113*Gt313*gtu33 +
+ 2*Gt311*Gt312*gt33L - PDstandardNth12gt11) - gtu13*PDstandardNth13gt11
+ + gt11L*PDstandardNth1Xt1 + gt12L*(4*Gt111*Gt212*gtu12 +
+ 2*Gt211*Gt222*gtu12 + 4*Gt113*Gt211*gtu13 + 4*Gt112*Gt212*gtu22 +
+ 4*Gt113*Gt212*gtu23 + 4*Gt113*Gt213*gtu33 + PDstandardNth1Xt2) +
+ gt13L*(4*Gt111*Gt312*gtu12 + 2*Gt212*Gt312*gtu12 + 4*Gt113*Gt311*gtu13
+ + 2*Gt212*Gt322*gtu22 + 4*Gt113*Gt312*gtu23 + 4*Gt113*Gt313*gtu33 +
PDstandardNth1Xt3) - gtu22*khalf*PDstandardNth22gt11 -
- gtu32*PDstandardNth23gt11 - gtu33*khalf*PDstandardNth33gt11 +
- Gt111*(6*Gt113*gt11L*gtu31 + 4*gt12L*Gt213*gtu31 + gt11L*Xt1L) +
- Gt211*(2*Gt112*gt11L*gtu11 + 4*Gt111*gt12L*gtu11 + 2*gt11L*Gt122*gtu21
- + 2*gt11L*Gt123*gtu31 + gt12L*Xt1L) + Gt311*(4*Gt111*gt13L*gtu11 +
- 2*gt12L*Gt213*gtu11 + 2*gt13L*Gt313*gtu11 + 2*gt11L*Gt123*gtu21 +
- 2*gt11L*Gt133*gtu31 + gt13L*Xt1L) + gt12L*Gt212*Xt2L + gt13L*Gt312*Xt2L
- + Gt112*(6*Gt111*gt11L*gtu21 + 4*gt12L*Gt211*gtu21 +
- 4*gt12L*Gt212*gtu22 + 2*gt11L*Gt213*gtu31 + 6*Gt113*gt11L*gtu32 +
- gt11L*Xt2L) + Gt113*gt11L*Xt3L + Gt213*(2*gt11L*Gt122*gtu32 +
- 4*Gt112*gt12L*gtu32 + 2*gt11L*Gt123*gtu33 + gt12L*Xt3L) +
- Gt313*(4*Gt111*gt13L*gtu31 + 2*gt12L*Gt213*gtu31 + 2*gt11L*Gt123*gtu32
- + 4*Gt112*gt13L*gtu32 + 2*gt12L*Gt223*gtu32 + 2*gt11L*Gt133*gtu33 +
+ gtu23*PDstandardNth23gt11 - gtu33*khalf*PDstandardNth33gt11 +
+ Gt111*(6*Gt113*gt11L*gtu13 + 4*gt12L*Gt213*gtu13 + gt11L*Xt1L) +
+ Gt211*(2*Gt112*gt11L*gtu11 + 4*Gt111*gt12L*gtu11 + 2*gt11L*Gt122*gtu12
+ + 2*gt11L*Gt123*gtu13 + gt12L*Xt1L) + Gt311*(4*Gt111*gt13L*gtu11 +
+ 2*gt12L*Gt213*gtu11 + 2*gt13L*Gt313*gtu11 + 2*gt11L*Gt123*gtu12 +
+ 2*gt11L*Gt133*gtu13 + gt13L*Xt1L) + gt12L*Gt212*Xt2L + gt13L*Gt312*Xt2L
+ + Gt112*(6*Gt111*gt11L*gtu12 + 4*gt12L*Gt211*gtu12 +
+ 2*gt11L*Gt213*gtu13 + 4*gt13L*Gt312*gtu22 + 6*Gt113*gt11L*gtu23 +
+ gt11L*Xt2L) + Gt113*gt11L*Xt3L + Gt213*(2*gt11L*Gt122*gtu23 +
+ 4*Gt112*gt12L*gtu23 + 2*gt11L*Gt123*gtu33 + gt12L*Xt3L) +
+ Gt313*(4*Gt111*gt13L*gtu13 + 2*gt12L*Gt213*gtu13 + 2*gt11L*Gt123*gtu23
+ + 4*Gt112*gt13L*gtu23 + 2*gt12L*Gt223*gtu23 + 2*gt11L*Gt133*gtu33 +
gt13L*Xt3L) + 3*gt11L*gtu11*SQR(Gt111) + 3*gt11L*gtu22*SQR(Gt112) +
3*gt11L*gtu33*SQR(Gt113) + gt22L*gtu11*SQR(Gt211) +
gt22L*gtu22*SQR(Gt212) + 2*(gt12L*Gt211*Gt212*gtu11 +
Gt113*gt11L*Gt311*gtu11 + Gt211*gt23L*Gt311*gtu11 +
- gt13L*Gt211*Gt312*gtu11 + Gt112*gt11L*Gt212*gtu21 +
- gt12L*Gt223*Gt311*gtu21 + Gt212*gt23L*Gt311*gtu21 +
- gt12L*Gt213*Gt312*gtu21 + Gt211*gt23L*Gt312*gtu21 +
- gt11L*Gt122*Gt212*gtu22 + gt11L*Gt123*Gt312*gtu22 +
+ gt13L*Gt211*Gt312*gtu11 + Gt112*gt11L*Gt212*gtu12 +
+ gt12L*Gt223*Gt311*gtu12 + Gt212*gt23L*Gt311*gtu12 +
+ gt12L*Gt213*Gt312*gtu12 + Gt211*gt23L*Gt312*gtu12 +
+ gt12L*Gt212*Gt213*gtu13 + gt12L*Gt211*Gt223*gtu13 +
+ Gt211*Gt213*gt22L*gtu13 + gt12L*Gt233*Gt311*gtu13 +
+ Gt213*gt23L*Gt311*gtu13 + gt13L*Gt213*Gt312*gtu13 +
+ Gt113*gt11L*Gt313*gtu13 + Gt211*gt23L*Gt313*gtu13 +
+ gt13L*Gt211*Gt323*gtu13 + gt13L*Gt311*Gt333*gtu13 +
+ Gt311*Gt313*gt33L*gtu13 + gt11L*Gt122*Gt212*gtu22 +
+ gt12L*Gt212*Gt222*gtu22 + gt11L*Gt123*Gt312*gtu22 +
gt12L*Gt223*Gt312*gtu22 + Gt212*gt23L*Gt312*gtu22 +
- gt13L*Gt212*Gt322*gtu22 + gt13L*Gt312*Gt323*gtu22 +
- gt12L*Gt212*Gt213*gtu31 + gt12L*Gt211*Gt223*gtu31 +
- Gt211*Gt213*gt22L*gtu31 + gt12L*Gt233*Gt311*gtu31 +
- Gt213*gt23L*Gt311*gtu31 + gt13L*Gt213*Gt312*gtu31 +
- Gt113*gt11L*Gt313*gtu31 + Gt211*gt23L*Gt313*gtu31 +
- gt13L*Gt211*Gt323*gtu31 + gt13L*Gt311*Gt333*gtu31 +
- Gt311*Gt313*gt33L*gtu31 + gt11L*Gt123*Gt212*gtu32 +
- gt12L*Gt213*Gt222*gtu32 + gt12L*Gt212*Gt223*gtu32 +
- Gt212*Gt213*gt22L*gtu32 + gt11L*Gt133*Gt312*gtu32 +
- gt12L*Gt233*Gt312*gtu32 + Gt213*gt23L*Gt312*gtu32 +
- Gt212*gt23L*Gt313*gtu32 + gt13L*Gt213*Gt322*gtu32 +
- gt13L*Gt212*Gt323*gtu32 + gt13L*Gt313*Gt323*gtu32 +
- gt13L*Gt312*Gt333*gtu32 + Gt312*Gt313*gt33L*gtu32 +
+ gt13L*Gt312*Gt323*gtu22 + gt11L*Gt123*Gt212*gtu23 +
+ gt12L*Gt213*Gt222*gtu23 + gt12L*Gt212*Gt223*gtu23 +
+ Gt212*Gt213*gt22L*gtu23 + gt11L*Gt133*Gt312*gtu23 +
+ gt12L*Gt233*Gt312*gtu23 + Gt213*gt23L*Gt312*gtu23 +
+ Gt212*gt23L*Gt313*gtu23 + gt13L*Gt213*Gt322*gtu23 +
+ gt13L*Gt212*Gt323*gtu23 + gt13L*Gt313*Gt323*gtu23 +
+ gt13L*Gt312*Gt333*gtu23 + Gt312*Gt313*gt33L*gtu23 +
gt12L*Gt213*Gt223*gtu33 + gt12L*Gt233*Gt313*gtu33 +
Gt213*gt23L*Gt313*gtu33 + gt13L*Gt213*Gt323*gtu33 +
- gt13L*Gt313*Gt333*gtu33 + gt12L*gtu21*SQR(Gt212)) +
+ gt13L*Gt313*Gt333*gtu33 + gt12L*gtu12*SQR(Gt212)) +
gt22L*gtu33*SQR(Gt213) + gt33L*gtu11*SQR(Gt311) +
- gt33L*gtu22*SQR(Gt312) + 2*gt13L*gtu31*SQR(Gt313) +
+ gt33L*gtu22*SQR(Gt312) + 2*gt13L*gtu13*SQR(Gt313) +
gt33L*gtu33*SQR(Gt313);
CCTK_REAL Rt12 = khalf*(-(gtu11*PDstandardNth11gt12) -
- 2*gtu21*PDstandardNth12gt12 - 2*gtu31*PDstandardNth13gt12 +
+ 2*gtu12*PDstandardNth12gt12 - 2*gtu13*PDstandardNth13gt12 +
gt12L*PDstandardNth1Xt1 + gt22L*PDstandardNth1Xt2 +
gt23L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt12 -
- 2*gtu32*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
+ 2*gtu23*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
gt12L*PDstandardNth2Xt2 + gt13L*PDstandardNth2Xt3 -
gtu33*PDstandardNth33gt12 + (Gt111*gt12L + Gt211*gt22L +
gt23L*Gt311)*Xt1L + (Gt112*gt11L + gt12L*Gt212 + gt13L*Gt312)*Xt1L +
(Gt112*gt12L + Gt212*gt22L + gt23L*Gt312)*Xt2L + (gt11L*Gt122 +
gt12L*Gt222 + gt13L*Gt322)*Xt2L + (Gt113*gt12L + Gt213*gt22L +
gt23L*Gt313)*Xt3L + (gt11L*Gt123 + gt12L*Gt223 + gt13L*Gt323)*Xt3L +
- 2*gtu21*(Gt112*gt11L*Gt222 + Gt112*Gt211*gt22L + Gt211*Gt222*gt22L +
+ 2*gtu12*(Gt112*gt11L*Gt222 + Gt112*Gt211*gt22L + Gt211*Gt222*gt22L +
2*Gt122*gt13L*Gt311 + Gt112*gt23L*Gt311 + Gt222*gt23L*Gt311 +
gt13L*Gt222*Gt312 + Gt213*gt22L*Gt312 + Gt212*gt23L*Gt312 +
gt23L*Gt312*Gt313 + Gt113*gt11L*Gt322 + Gt211*gt23L*Gt322 +
@@ -481,14 +505,14 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt123*Gt212 + Gt133*Gt312) + 2*Gt112*gt13L*Gt313 + Gt212*gt23L*Gt313 +
Gt111*(Gt113*gt12L + Gt213*gt22L + gt23L*Gt313) + gt13L*Gt212*Gt323 +
Gt211*gt23L*Gt323 + gt23L*Gt311*Gt333 + gt13L*Gt312*Gt333 +
- Gt312*Gt313*gt33L)*gtu31 + (Gt123*gt12L*Gt212 + 2*Gt122*gt12L*Gt213 +
+ Gt312*Gt313*gt33L)*gtu13 + (Gt123*gt12L*Gt212 + 2*Gt122*gt12L*Gt213 +
Gt113*gt12L*Gt222 + gt12L*Gt222*Gt223 + Gt213*Gt222*gt22L +
Gt212*Gt223*gt22L + gt12L*Gt133*Gt312 + gt22L*Gt233*Gt312 +
2*Gt122*gt13L*Gt313 + Gt222*gt23L*Gt313 + Gt112*(Gt113*gt12L +
Gt213*gt22L + gt23L*Gt313) + Gt113*gt13L*Gt322 + gt12L*Gt233*Gt322 +
Gt213*gt23L*Gt322 + gt11L*(2*Gt113*Gt122 + Gt123*Gt222 + Gt133*Gt322) +
gt13L*Gt222*Gt323 + Gt212*gt23L*Gt323 + gt23L*Gt312*Gt333 +
- gt13L*Gt322*Gt333 + Gt313*Gt322*gt33L)*gtu32 +
+ gt13L*Gt322*Gt333 + Gt313*Gt322*gt33L)*gtu23 +
gtu11*(3*Gt112*gt12L*Gt211 + 2*Gt211*Gt212*gt22L + Gt113*gt12L*Gt311 +
2*Gt112*gt13L*Gt311 + Gt213*gt22L*Gt311 + Gt212*gt23L*Gt311 +
gt13L*Gt212*Gt312 + gt12L*Gt213*Gt312 + 2*Gt211*gt23L*Gt312 +
@@ -507,21 +531,21 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
2*Gt213*gt23L*Gt323 + Gt113*(2*gt11L*Gt123 + gt12L*Gt223 + Gt213*gt22L
+ gt23L*Gt313 + gt13L*Gt323) + gt23L*Gt313*Gt333 + gt13L*Gt323*Gt333 +
Gt313*Gt323*gt33L + gt12L*SQR(Gt113) + gt12L*(3*Gt123*Gt213 +
- Gt133*Gt313 + Gt233*Gt323 + SQR(Gt223))) + 2*gtu21*(Gt122*gt12L*Gt211 +
+ Gt133*Gt313 + Gt233*Gt323 + SQR(Gt223))) + 2*gtu12*(Gt122*gt12L*Gt211 +
3*Gt112*gt12L*Gt212 + gt12L*Gt212*Gt222 + Gt211*Gt222*gt22L +
Gt123*gt12L*Gt311 + Gt223*gt22L*Gt311 + 3*Gt112*gt13L*Gt312 +
gt12L*Gt223*Gt312 + 2*Gt212*gt23L*Gt312 + Gt111*(Gt112*gt12L +
Gt212*gt22L + gt23L*Gt312) + gt13L*Gt212*Gt322 + Gt211*gt23L*Gt322 +
gt23L*Gt311*Gt323 + gt13L*Gt312*Gt323 + gt11L*(Gt122*Gt212 +
Gt123*Gt312 + 2*SQR(Gt112)) + gt22L*SQR(Gt212) + gt33L*SQR(Gt312)) +
- 2*gtu31*(Gt112*gt11L*Gt223 + Gt113*Gt211*gt22L + Gt212*Gt213*gt22L +
+ 2*gtu13*(Gt112*gt11L*Gt223 + Gt113*Gt211*gt22L + Gt212*Gt213*gt22L +
Gt211*Gt223*gt22L + 2*Gt123*gt13L*Gt311 + Gt113*gt23L*Gt311 +
Gt223*gt23L*Gt311 + gt13L*Gt223*Gt312 + Gt213*gt23L*Gt312 +
Gt213*gt22L*Gt313 + Gt113*gt11L*Gt323 + Gt211*gt23L*Gt323 +
gt13L*Gt313*Gt323 + Gt111*(2*gt11L*Gt123 + Gt113*gt12L + gt12L*Gt223 +
gt13L*Gt323) + gt12L*(2*Gt123*Gt211 + Gt112*Gt213 + Gt212*Gt223 +
Gt113*Gt313 + Gt213*Gt323) + Gt311*Gt323*gt33L + gt23L*SQR(Gt313)) +
- 2*gtu32*(gt11L*Gt122*Gt223 + Gt113*Gt212*gt22L + Gt213*Gt222*gt22L +
+ 2*gtu23*(gt11L*Gt122*Gt223 + Gt113*Gt212*gt22L + Gt213*Gt222*gt22L +
Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312 + Gt113*gt23L*Gt312 +
Gt223*gt23L*Gt312 + Gt223*gt22L*Gt313 + gt13L*Gt223*Gt322 +
Gt213*gt23L*Gt322 + gt11L*Gt123*Gt323 + Gt212*gt23L*Gt323 +
@@ -530,10 +554,10 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt223*(Gt222 + Gt323)) + Gt312*Gt323*gt33L + gt13L*SQR(Gt323)));
CCTK_REAL Rt13 = khalf*(-(gtu11*PDstandardNth11gt13) -
- 2*gtu21*PDstandardNth12gt13 - 2*gtu31*PDstandardNth13gt13 +
+ 2*gtu12*PDstandardNth12gt13 - 2*gtu13*PDstandardNth13gt13 +
gt13L*PDstandardNth1Xt1 + gt23L*PDstandardNth1Xt2 +
gt33L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt13 -
- 2*gtu32*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
+ 2*gtu23*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
gt11L*PDstandardNth3Xt1 + gt12L*PDstandardNth3Xt2 +
gt13L*PDstandardNth3Xt3 + (Gt113*gt11L + gt12L*Gt213 +
gt13L*Gt313)*Xt1L + (Gt111*gt13L + Gt211*gt23L + Gt311*gt33L)*Xt1L +
@@ -547,22 +571,22 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt212*gt23L*Gt313 + gt11L*(2*Gt112*Gt113 + Gt122*Gt213 + Gt123*Gt313) +
gt13L*Gt213*Gt322 + gt13L*Gt313*Gt323 + Gt312*Gt313*gt33L +
Gt211*Gt322*gt33L + Gt311*Gt323*gt33L + Gt111*(Gt112*gt13L +
- Gt212*gt23L + Gt312*gt33L))*gtu21 + (Gt122*gt13L*Gt213 +
+ Gt212*gt23L + Gt312*gt33L))*gtu12 + (Gt122*gt13L*Gt213 +
gt11L*Gt122*Gt233 + Gt212*gt22L*Gt233 + Gt113*Gt212*gt23L +
Gt213*Gt222*gt23L + 2*Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 +
Gt123*gt13L*Gt313 + Gt223*gt23L*Gt313 + gt13L*Gt233*Gt322 +
gt11L*Gt123*Gt333 + Gt212*gt23L*Gt333 + gt13L*Gt323*Gt333 +
Gt112*(2*gt11L*Gt133 + Gt113*gt13L + gt12L*Gt233 + gt13L*Gt333) +
gt12L*(2*Gt133*Gt212 + Gt222*Gt233 + Gt223*Gt333) + Gt113*Gt312*gt33L +
- Gt213*Gt322*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu32 +
- gtu21*(2*Gt123*gt12L*Gt211 + Gt112*gt13L*Gt212 + gt12L*Gt212*Gt223 +
+ Gt213*Gt322*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu23 +
+ gtu12*(2*Gt123*gt12L*Gt211 + Gt112*gt13L*Gt212 + gt12L*Gt212*Gt223 +
Gt211*Gt223*gt22L + Gt112*Gt211*gt23L + 2*Gt123*gt13L*Gt311 +
Gt223*gt23L*Gt311 + Gt113*gt13L*Gt312 + gt13L*Gt223*Gt312 +
Gt213*gt23L*Gt312 + gt12L*Gt213*Gt323 + Gt211*gt23L*Gt323 +
gt13L*Gt313*Gt323 + gt11L*(2*Gt111*Gt123 + Gt112*Gt223 + Gt113*Gt323) +
Gt111*(Gt112*gt13L + gt12L*Gt223 + gt13L*Gt323) + Gt112*Gt311*gt33L +
Gt212*Gt312*gt33L + Gt312*Gt313*gt33L + Gt311*Gt323*gt33L +
- gt23L*SQR(Gt212))) + 2*gtu32*(Gt123*gt13L*Gt212 + 2*Gt123*gt12L*Gt213 +
+ gt23L*SQR(Gt212))) + 2*gtu23*(Gt123*gt13L*Gt212 + 2*Gt123*gt12L*Gt213 +
Gt113*gt12L*Gt223 + Gt213*Gt223*gt22L + Gt212*Gt223*gt23L +
Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 + 2*Gt123*gt13L*Gt313 +
Gt223*gt23L*Gt313 + Gt113*gt13L*Gt323 + gt13L*Gt223*Gt323 +
@@ -576,14 +600,14 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt211*gt23L*Gt313 + gt11L*(2*Gt111*Gt113 + Gt112*Gt213 + Gt113*Gt313) +
Gt211*Gt312*gt33L + 2*Gt311*Gt313*gt33L + Gt111*(gt12L*Gt213 +
Gt211*gt23L + gt13L*Gt313 + Gt311*gt33L) + gt13L*SQR(Gt111) +
- gt13L*SQR(Gt313)) + 2*gtu31*(Gt112*gt13L*Gt213 + Gt112*gt11L*Gt233 +
+ gt13L*SQR(Gt313)) + 2*gtu13*(Gt112*gt13L*Gt213 + Gt112*gt11L*Gt233 +
Gt211*gt22L*Gt233 + Gt113*Gt211*gt23L + Gt212*Gt213*gt23L +
2*Gt133*gt13L*Gt311 + Gt233*gt23L*Gt311 + gt13L*Gt233*Gt312 +
Gt113*gt13L*Gt313 + Gt213*gt23L*Gt313 + Gt113*gt11L*Gt333 +
Gt211*gt23L*Gt333 + gt13L*Gt313*Gt333 + Gt111*(2*gt11L*Gt133 +
Gt113*gt13L + gt12L*Gt233 + gt13L*Gt333) + gt12L*(2*Gt133*Gt211 +
Gt212*Gt233 + Gt213*Gt333) + Gt113*Gt311*gt33L + Gt213*Gt312*gt33L +
- Gt311*Gt333*gt33L + gt33L*SQR(Gt313)) + 2*gtu31*(Gt123*gt13L*Gt211 +
+ Gt311*Gt333*gt33L + gt33L*SQR(Gt313)) + 2*gtu13*(Gt123*gt13L*Gt211 +
3*Gt113*gt12L*Gt213 + gt12L*Gt213*Gt223 + Gt211*Gt223*gt23L +
Gt133*gt13L*Gt311 + Gt233*gt23L*Gt311 + 3*Gt113*gt13L*Gt313 +
gt12L*Gt233*Gt313 + 2*Gt213*gt23L*Gt313 + gt13L*Gt213*Gt323 +
@@ -604,58 +628,58 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt113*(2*gt11L*Gt133 + gt12L*Gt233 + Gt213*gt23L + gt13L*Gt333 +
Gt313*gt33L) + gt13L*SQR(Gt113) + gt13L*SQR(Gt333)));
- CCTK_REAL Rt22 = 4*(Gt122*gt12L*Gt212*gtu21 + Gt112*gt12L*Gt222*gtu21
- + Gt122*gt12L*Gt222*gtu22 + Gt123*gt12L*Gt212*gtu31 +
- Gt123*gt12L*Gt222*gtu32 + Gt123*gt12L*Gt223*gtu33) -
- gtu11*khalf*PDstandardNth11gt22 + gtu21*(6*Gt212*Gt222*gt22L +
+ CCTK_REAL Rt22 = 4*(Gt122*gt12L*Gt212*gtu12 + Gt112*gt12L*Gt222*gtu12
+ + Gt123*gt12L*Gt212*gtu13 + Gt122*gt12L*Gt222*gtu22 +
+ Gt123*gt12L*Gt222*gtu23 + Gt123*gt12L*Gt223*gtu33) -
+ gtu11*khalf*PDstandardNth11gt22 + gtu12*(6*Gt212*Gt222*gt22L +
2*Gt122*gt23L*Gt311 + 2*Gt122*gt13L*Gt312 + 4*Gt222*gt23L*Gt312 +
2*Gt113*gt12L*Gt322 + 2*gt23L*Gt312*Gt323 + 2*Gt312*Gt322*gt33L -
- PDstandardNth12gt22) + gtu31*(6*Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312
+ PDstandardNth12gt22) + gtu13*(6*Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312
+ 2*Gt112*gt23L*Gt313 + 2*Gt113*gt12L*Gt323 + 2*gt23L*Gt312*Gt333 +
2*Gt312*Gt323*gt33L - PDstandardNth13gt22) -
- gtu22*khalf*PDstandardNth22gt22 + gtu32*(4*Gt122*gt12L*Gt223 +
+ gtu22*khalf*PDstandardNth22gt22 + gtu23*(4*Gt122*gt12L*Gt223 +
2*Gt123*Gt212*gt22L + 2*gt12L*Gt133*Gt322 + 4*Gt223*gt23L*Gt322 +
2*Gt123*gt12L*Gt323 + 4*Gt222*gt23L*Gt323 + 2*gt23L*Gt322*Gt333 +
- 2*Gt322*Gt323*gt33L - PDstandardNth23gt22) + gt12L*(2*Gt111*Gt123*gtu31
- + 4*Gt112*Gt223*gtu31 + 2*Gt113*Gt122*gtu32 + 2*Gt113*Gt123*gtu33 +
- PDstandardNth2Xt1) + gt22L*(2*Gt122*Gt213*gtu32 + 6*Gt222*Gt223*gtu32 +
- 2*Gt123*Gt213*gtu33 + PDstandardNth2Xt2) + gt23L*(4*Gt212*Gt322*gtu21 +
- 2*Gt313*Gt322*gtu21 + 4*Gt222*Gt322*gtu22 + 2*Gt123*Gt311*gtu31 +
- 4*Gt212*Gt323*gtu31 + 2*Gt313*Gt323*gtu31 + 2*Gt122*Gt313*gtu32 +
- 2*Gt123*Gt313*gtu33 + 4*Gt223*Gt323*gtu33 + 2*Gt323*Gt333*gtu33 +
- PDstandardNth2Xt3) - gtu33*khalf*PDstandardNth33gt22 + Gt212*gt22L*Xt1L
- + Gt112*(2*Gt111*gt12L*gtu11 + 4*gt12L*Gt212*gtu11 +
- 2*gt11L*Gt122*gtu21 + 2*Gt122*gt12L*gtu22 + 2*gt11L*Gt123*gtu31 +
- 2*Gt123*gt12L*gtu32 + gt12L*Xt1L) + Gt312*(2*Gt213*gt22L*gtu11 +
- 4*Gt212*gt23L*gtu11 + 2*gt23L*Gt313*gtu11 + 2*Gt123*gt12L*gtu21 +
- 2*Gt122*gt23L*gtu22 + 2*gt12L*Gt133*gtu31 + 2*gt22L*Gt233*gtu31 +
- 4*Gt223*gt23L*gtu31 + 2*Gt123*gt23L*gtu32 + gt23L*Xt1L) +
- Gt122*gt12L*Xt2L + Gt222*gt22L*Xt2L + gt23L*Gt322*Xt2L +
- Gt123*gt12L*Xt3L + Gt223*gt22L*Xt3L + gt23L*Gt323*Xt3L +
- gt11L*gtu11*SQR(Gt112) + 2*(Gt112*Gt211*gt22L*gtu11 +
- Gt112*gt23L*Gt311*gtu11 + Gt113*gt12L*Gt312*gtu11 +
- Gt112*gt13L*Gt312*gtu11 + Gt111*Gt122*gt12L*gtu21 +
- Gt122*Gt211*gt22L*gtu21 + Gt112*Gt212*gt22L*gtu21 +
- Gt223*gt22L*Gt312*gtu21 + Gt112*gt23L*Gt312*gtu21 +
- Gt112*gt13L*Gt322*gtu21 + Gt213*gt22L*Gt322*gtu21 +
- Gt122*Gt212*gt22L*gtu22 + Gt123*gt12L*Gt322*gtu22 +
+ 2*Gt322*Gt323*gt33L - PDstandardNth23gt22) + gt12L*(2*Gt111*Gt123*gtu13
+ + 4*Gt112*Gt223*gtu13 + 2*Gt123*Gt322*gtu22 + 2*Gt113*Gt122*gtu23 +
+ 2*Gt113*Gt123*gtu33 + PDstandardNth2Xt1) + gt22L*(2*Gt122*Gt213*gtu23 +
+ 6*Gt222*Gt223*gtu23 + 2*Gt123*Gt213*gtu33 + PDstandardNth2Xt2) +
+ gt23L*(4*Gt212*Gt322*gtu12 + 2*Gt313*Gt322*gtu12 + 2*Gt123*Gt311*gtu13
+ + 4*Gt212*Gt323*gtu13 + 2*Gt313*Gt323*gtu13 + 4*Gt222*Gt322*gtu22 +
+ 2*Gt122*Gt313*gtu23 + 2*Gt123*Gt313*gtu33 + 4*Gt223*Gt323*gtu33 +
+ 2*Gt323*Gt333*gtu33 + PDstandardNth2Xt3) -
+ gtu33*khalf*PDstandardNth33gt22 + Gt212*gt22L*Xt1L +
+ Gt112*(2*Gt111*gt12L*gtu11 + 4*gt12L*Gt212*gtu11 + 2*gt11L*Gt122*gtu12
+ + 2*gt11L*Gt123*gtu13 + 2*Gt122*gt12L*gtu22 + 2*Gt123*gt12L*gtu23 +
+ gt12L*Xt1L) + Gt312*(2*Gt213*gt22L*gtu11 + 4*Gt212*gt23L*gtu11 +
+ 2*gt23L*Gt313*gtu11 + 2*Gt123*gt12L*gtu12 + 2*gt12L*Gt133*gtu13 +
+ 2*gt22L*Gt233*gtu13 + 4*Gt223*gt23L*gtu13 + 2*Gt122*gt23L*gtu22 +
+ 2*Gt123*gt23L*gtu23 + gt23L*Xt1L) + Gt122*gt12L*Xt2L + Gt222*gt22L*Xt2L
+ + gt23L*Gt322*Xt2L + Gt123*gt12L*Xt3L + Gt223*gt22L*Xt3L +
+ gt23L*Gt323*Xt3L + gt11L*gtu11*SQR(Gt112) + 2*(Gt112*Gt211*gt22L*gtu11
+ + Gt112*gt23L*Gt311*gtu11 + Gt113*gt12L*Gt312*gtu11 +
+ Gt112*gt13L*Gt312*gtu11 + Gt111*Gt122*gt12L*gtu12 +
+ Gt122*Gt211*gt22L*gtu12 + Gt112*Gt212*gt22L*gtu12 +
+ Gt223*gt22L*Gt312*gtu12 + Gt112*gt23L*Gt312*gtu12 +
+ Gt112*gt13L*Gt322*gtu12 + Gt213*gt22L*Gt322*gtu12 +
+ Gt112*Gt113*gt12L*gtu13 + Gt123*Gt211*gt22L*gtu13 +
+ Gt112*Gt213*gt22L*gtu13 + Gt112*gt13L*Gt323*gtu13 +
+ Gt213*gt22L*Gt323*gtu13 + Gt122*Gt212*gt22L*gtu22 +
Gt122*gt13L*Gt322*gtu22 + Gt223*gt22L*Gt322*gtu22 +
- gt23L*Gt322*Gt323*gtu22 + Gt112*Gt113*gt12L*gtu31 +
- Gt123*Gt211*gt22L*gtu31 + Gt112*Gt213*gt22L*gtu31 +
- Gt112*gt13L*Gt323*gtu31 + Gt213*gt22L*Gt323*gtu31 +
- gt11L*Gt122*Gt123*gtu32 + Gt123*gt13L*Gt322*gtu32 +
- gt22L*Gt233*Gt322*gtu32 + Gt122*gt13L*Gt323*gtu32 +
- Gt223*gt22L*Gt323*gtu32 + gt12L*Gt133*Gt323*gtu33 +
- Gt123*gt13L*Gt323*gtu33 + gt22L*Gt233*Gt323*gtu33 +
- gt12L*gtu21*SQR(Gt112)) + gt11L*gtu22*SQR(Gt122) +
- gt11L*gtu33*SQR(Gt123) + 3*gt22L*gtu11*SQR(Gt212) +
- 3*gt22L*gtu22*SQR(Gt222) + 3*gt22L*gtu33*SQR(Gt223) +
- gt33L*gtu11*SQR(Gt312) + gt33L*gtu22*SQR(Gt322) +
- 2*gt23L*gtu32*SQR(Gt323) + gt33L*gtu33*SQR(Gt323);
+ gt23L*Gt322*Gt323*gtu22 + gt11L*Gt122*Gt123*gtu23 +
+ Gt123*gt13L*Gt322*gtu23 + gt22L*Gt233*Gt322*gtu23 +
+ Gt122*gt13L*Gt323*gtu23 + Gt223*gt22L*Gt323*gtu23 +
+ gt12L*Gt133*Gt323*gtu33 + Gt123*gt13L*Gt323*gtu33 +
+ gt22L*Gt233*Gt323*gtu33 + gt12L*gtu12*SQR(Gt112)) +
+ gt11L*gtu22*SQR(Gt122) + gt11L*gtu33*SQR(Gt123) +
+ 3*gt22L*gtu11*SQR(Gt212) + 3*gt22L*gtu22*SQR(Gt222) +
+ 3*gt22L*gtu33*SQR(Gt223) + gt33L*gtu11*SQR(Gt312) +
+ gt33L*gtu22*SQR(Gt322) + 2*gt23L*gtu23*SQR(Gt323) +
+ gt33L*gtu33*SQR(Gt323);
CCTK_REAL Rt23 = khalf*(-(gtu11*PDstandardNth11gt23) -
- 2*gtu21*PDstandardNth12gt23 - 2*gtu31*PDstandardNth13gt23 -
- gtu22*PDstandardNth22gt23 - 2*gtu32*PDstandardNth23gt23 +
+ 2*gtu12*PDstandardNth12gt23 - 2*gtu13*PDstandardNth13gt23 -
+ gtu22*PDstandardNth22gt23 - 2*gtu23*PDstandardNth23gt23 +
gt13L*PDstandardNth2Xt1 + gt23L*PDstandardNth2Xt2 +
gt33L*PDstandardNth2Xt3 - gtu33*PDstandardNth33gt23 +
gt12L*PDstandardNth3Xt1 + gt22L*PDstandardNth3Xt2 +
@@ -671,7 +695,7 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
2*Gt223*gt23L*Gt312 + Gt113*gt13L*Gt322 + Gt213*gt23L*Gt322 +
Gt113*gt12L*Gt323 + Gt112*gt13L*Gt323 + Gt213*gt22L*Gt323 +
Gt212*gt23L*Gt323 + gt23L*Gt313*Gt323 + Gt122*Gt311*gt33L +
- Gt222*Gt312*gt33L + Gt313*Gt322*gt33L + Gt312*Gt323*gt33L)*gtu21 +
+ Gt222*Gt312*gt33L + Gt313*Gt322*gt33L + Gt312*Gt323*gt33L)*gtu12 +
(Gt112*gt11L*Gt133 + Gt111*gt12L*Gt133 + Gt111*Gt123*gt13L +
gt12L*Gt133*Gt212 + Gt112*gt13L*Gt223 + Gt133*Gt211*gt22L +
2*Gt112*gt12L*Gt233 + 2*Gt212*gt22L*Gt233 + Gt123*Gt211*gt23L +
@@ -679,8 +703,8 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
2*Gt233*gt23L*Gt312 + Gt113*gt13L*Gt323 + Gt213*gt23L*Gt323 +
Gt113*gt12L*Gt333 + Gt112*gt13L*Gt333 + Gt213*gt22L*Gt333 +
Gt212*gt23L*Gt333 + gt23L*Gt313*Gt333 + Gt123*Gt311*gt33L +
- Gt223*Gt312*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu31 +
- gtu21*(Gt113*gt11L*Gt122 + Gt122*gt13L*Gt212 + 2*Gt122*gt12L*Gt213 +
+ Gt223*Gt312*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu13 +
+ gtu12*(Gt113*gt11L*Gt122 + Gt122*gt13L*Gt212 + 2*Gt122*gt12L*Gt213 +
Gt113*gt12L*Gt222 + Gt113*Gt212*gt22L + 2*Gt213*Gt222*gt22L +
Gt212*Gt222*gt23L + Gt123*gt13L*Gt312 + Gt113*gt23L*Gt312 +
Gt223*gt23L*Gt312 + Gt123*gt12L*Gt313 + Gt122*gt13L*Gt313 +
@@ -688,7 +712,7 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
2*Gt213*gt23L*Gt322 + gt23L*Gt313*Gt323 + Gt212*Gt322*gt33L +
Gt313*Gt322*gt33L + Gt312*Gt323*gt33L + Gt112*(Gt113*gt12L +
Gt212*gt23L + Gt312*gt33L) + gt13L*SQR(Gt112))) +
- 2*gtu31*(2*Gt213*Gt223*gt22L + Gt112*Gt213*gt23L + Gt212*Gt223*gt23L +
+ 2*gtu13*(2*Gt213*Gt223*gt22L + Gt112*Gt213*gt23L + Gt212*Gt223*gt23L +
Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 + gt12L*Gt133*Gt313 +
gt22L*Gt233*Gt313 + Gt223*gt23L*Gt313 + Gt123*(2*gt12L*Gt213 +
gt13L*(Gt212 + Gt313)) + 2*Gt213*gt23L*Gt323 + Gt113*(gt11L*Gt123 +
@@ -709,7 +733,7 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt123*gt12L*Gt323 + Gt122*gt13L*Gt323 + Gt223*gt22L*Gt323 +
Gt222*gt23L*Gt323 + Gt122*Gt312*gt33L + Gt222*Gt322*gt33L +
2*Gt322*Gt323*gt33L + gt23L*SQR(Gt222) + gt23L*SQR(Gt323)) +
- 2*gtu32*(gt11L*Gt122*Gt133 + Gt112*gt12L*Gt133 + Gt112*Gt123*gt13L +
+ 2*gtu23*(gt11L*Gt122*Gt133 + Gt112*gt12L*Gt133 + Gt112*Gt123*gt13L +
gt12L*Gt133*Gt222 + Gt122*gt13L*Gt223 + Gt133*Gt212*gt22L +
2*Gt122*gt12L*Gt233 + 2*Gt222*gt22L*Gt233 + Gt123*Gt212*gt23L +
Gt222*Gt223*gt23L + Gt133*gt23L*Gt312 + Gt133*gt13L*Gt322 +
@@ -717,7 +741,7 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt123*gt12L*Gt333 + Gt122*gt13L*Gt333 + Gt223*gt22L*Gt333 +
Gt222*gt23L*Gt333 + gt23L*Gt323*Gt333 + Gt123*Gt312*gt33L +
Gt223*Gt322*gt33L + Gt322*Gt333*gt33L + gt33L*SQR(Gt323)) +
- 2*gtu32*(Gt113*Gt123*gt12L + Gt113*Gt122*gt13L + Gt123*gt13L*Gt222 +
+ 2*gtu23*(Gt113*Gt123*gt12L + Gt113*Gt122*gt13L + Gt123*gt13L*Gt222 +
3*Gt123*gt12L*Gt223 + Gt123*Gt213*gt22L + Gt122*Gt213*gt23L +
Gt222*Gt223*gt23L + Gt123*gt23L*Gt313 + Gt133*gt13L*Gt322 +
Gt233*gt23L*Gt322 + gt12L*Gt133*Gt323 + 2*Gt123*gt13L*Gt323 +
@@ -732,57 +756,56 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt223*gt23L*Gt333 + Gt123*Gt313*gt33L + Gt223*Gt323*gt33L +
2*Gt323*Gt333*gt33L + gt23L*SQR(Gt223) + gt23L*SQR(Gt333)));
- CCTK_REAL Rt33 = 4*(Gt123*gt13L*Gt323*gtu22 + Gt223*gt23L*Gt323*gtu22
- + Gt133*gt13L*Gt313*gtu31 + Gt233*gt23L*Gt313*gtu31 +
- Gt113*gt13L*Gt333*gtu31 + Gt133*gt13L*Gt323*gtu32 +
- Gt233*gt23L*Gt323*gtu32 + Gt123*gt13L*Gt333*gtu32 +
- Gt133*gt13L*Gt333*gtu33) + gtu21*(2*Gt212*Gt223*gt23L +
+ CCTK_REAL Rt33 = 4*(Gt133*gt13L*Gt313*gtu13 + Gt233*gt23L*Gt313*gtu13
+ + Gt113*gt13L*Gt333*gtu13 + Gt213*gt23L*Gt333*gtu13 +
+ Gt123*gt13L*Gt323*gtu22 + Gt133*gt13L*Gt323*gtu23 +
+ Gt123*gt13L*Gt333*gtu23 + Gt223*gt23L*Gt333*gtu23 +
+ Gt133*gt13L*Gt333*gtu33) + gtu12*(2*Gt212*Gt223*gt23L +
4*Gt123*gt13L*Gt313 + 4*Gt223*gt23L*Gt313 + 4*Gt113*gt13L*Gt323 +
- 4*Gt213*gt23L*Gt323 + 2*Gt123*Gt311*gt33L - PDstandardNth12gt33) +
- gtu31*(4*Gt213*gt23L*Gt333 + 2*Gt233*Gt312*gt33L + 6*Gt313*Gt333*gt33L
- - PDstandardNth13gt33) - gtu22*khalf*PDstandardNth22gt33 +
- gtu32*(4*Gt223*gt23L*Gt333 + 2*Gt123*Gt313*gt33L + 6*Gt323*Gt333*gt33L
- - PDstandardNth23gt33) - gtu33*khalf*PDstandardNth33gt33 +
+ 4*Gt213*gt23L*Gt323 + 2*Gt123*Gt311*gt33L - PDstandardNth12gt33) -
+ gtu13*PDstandardNth13gt33 - gtu22*khalf*PDstandardNth22gt33 -
+ gtu23*PDstandardNth23gt33 - gtu33*khalf*PDstandardNth33gt33 +
gt13L*PDstandardNth3Xt1 + gt23L*PDstandardNth3Xt2 +
- gt33L*(2*Gt213*Gt322*gtu21 + 6*Gt313*Gt323*gtu21 + 2*Gt123*Gt312*gtu22
- + 2*Gt133*Gt311*gtu31 + 2*Gt133*Gt312*gtu32 + 2*Gt133*Gt313*gtu33 +
- PDstandardNth3Xt3) + Gt113*gt13L*Xt1L + Gt213*gt23L*Xt1L +
- Gt313*gt33L*Xt1L + Gt123*gt13L*Xt2L + Gt223*gt23L*Xt2L +
- Gt323*gt33L*Xt2L + Gt133*gt13L*Xt3L + Gt333*gt33L*Xt3L +
- Gt233*(4*gt23L*Gt333*gtu33 + 2*Gt323*gt33L*gtu33 + gt23L*Xt3L) +
- gtu11*(2*Gt212*Gt213*gt23L + 4*Gt113*gt13L*Gt313 + 4*Gt213*gt23L*Gt313
- + 2*Gt113*Gt311*gt33L + 2*Gt213*Gt312*gt33L - khalf*PDstandardNth11gt33
- + gt11L*SQR(Gt113)) + 2*(Gt111*Gt113*gt13L*gtu11 +
- Gt113*gt12L*Gt213*gtu11 + Gt112*gt13L*Gt213*gtu11 +
- Gt113*Gt211*gt23L*gtu11 + Gt113*gt11L*Gt123*gtu21 +
- Gt112*Gt113*gt13L*gtu21 + Gt111*Gt123*gt13L*gtu21 +
- Gt123*gt12L*Gt213*gtu21 + Gt122*gt13L*Gt213*gtu21 +
- Gt113*gt12L*Gt223*gtu21 + Gt112*gt13L*Gt223*gtu21 +
- Gt213*Gt223*gt22L*gtu21 + Gt123*Gt211*gt23L*gtu21 +
- Gt113*Gt212*gt23L*gtu21 + Gt213*Gt222*gt23L*gtu21 +
- Gt113*Gt312*gt33L*gtu21 + Gt223*Gt312*gt33L*gtu21 +
+ gt33L*(2*Gt213*Gt322*gtu12 + 6*Gt313*Gt323*gtu12 + 2*Gt133*Gt311*gtu13
+ + 2*Gt213*Gt323*gtu13 + 6*Gt313*Gt333*gtu13 + 2*Gt123*Gt312*gtu22 +
+ 2*Gt133*Gt312*gtu23 + 2*Gt133*Gt313*gtu33 + PDstandardNth3Xt3) +
+ Gt113*gt13L*Xt1L + Gt213*gt23L*Xt1L + Gt313*gt33L*Xt1L +
+ Gt123*gt13L*Xt2L + Gt223*(4*gt23L*Gt323*gtu22 + 2*Gt322*gt33L*gtu22 +
+ 2*gt12L*Gt133*gtu23 + 2*Gt233*gt23L*gtu33 + gt23L*Xt2L) +
+ Gt323*(2*Gt223*gt33L*gtu23 + 6*Gt333*gt33L*gtu23 + 2*Gt233*gt33L*gtu33
+ + gt33L*Xt2L) + Gt133*gt13L*Xt3L + Gt333*gt33L*Xt3L +
+ Gt233*(2*Gt222*gt23L*gtu23 + 4*gt23L*Gt323*gtu23 + 2*gt12L*Gt133*gtu33
+ + 4*gt23L*Gt333*gtu33 + gt23L*Xt3L) + gtu11*(2*Gt212*Gt213*gt23L +
+ 4*Gt113*gt13L*Gt313 + 4*Gt213*gt23L*Gt313 + 2*Gt113*Gt311*gt33L +
+ 2*Gt213*Gt312*gt33L - khalf*PDstandardNth11gt33 + gt11L*SQR(Gt113)) +
+ 2*(Gt111*Gt113*gt13L*gtu11 + Gt113*gt12L*Gt213*gtu11 +
+ Gt112*gt13L*Gt213*gtu11 + Gt113*Gt211*gt23L*gtu11 +
+ Gt113*gt11L*Gt123*gtu12 + Gt112*Gt113*gt13L*gtu12 +
+ Gt111*Gt123*gt13L*gtu12 + Gt123*gt12L*Gt213*gtu12 +
+ Gt122*gt13L*Gt213*gtu12 + Gt113*gt12L*Gt223*gtu12 +
+ Gt112*gt13L*Gt223*gtu12 + Gt213*Gt223*gt22L*gtu12 +
+ Gt123*Gt211*gt23L*gtu12 + Gt113*Gt212*gt23L*gtu12 +
+ Gt213*Gt222*gt23L*gtu12 + Gt113*Gt312*gt33L*gtu12 +
+ Gt223*Gt312*gt33L*gtu12 + Gt113*gt11L*Gt133*gtu13 +
+ Gt111*Gt133*gt13L*gtu13 + gt12L*Gt133*Gt213*gtu13 +
+ Gt123*gt13L*Gt213*gtu13 + Gt113*gt12L*Gt233*gtu13 +
+ Gt112*gt13L*Gt233*gtu13 + Gt213*gt22L*Gt233*gtu13 +
+ Gt133*Gt211*gt23L*gtu13 + Gt113*Gt213*gt23L*gtu13 +
+ Gt213*Gt223*gt23L*gtu13 + Gt212*Gt233*gt23L*gtu13 +
+ Gt233*Gt312*gt33L*gtu13 + Gt113*Gt313*gt33L*gtu13 +
Gt112*Gt123*gt13L*gtu22 + Gt123*gt12L*Gt223*gtu22 +
Gt122*gt13L*Gt223*gtu22 + Gt123*Gt212*gt23L*gtu22 +
- Gt222*Gt223*gt23L*gtu22 + Gt223*Gt322*gt33L*gtu22 +
- Gt113*gt11L*Gt133*gtu31 + Gt111*Gt133*gt13L*gtu31 +
- gt12L*Gt133*Gt213*gtu31 + Gt123*gt13L*Gt213*gtu31 +
- Gt113*gt12L*Gt233*gtu31 + Gt112*gt13L*Gt233*gtu31 +
- Gt213*gt22L*Gt233*gtu31 + Gt133*Gt211*gt23L*gtu31 +
- Gt113*Gt213*gt23L*gtu31 + Gt213*Gt223*gt23L*gtu31 +
- Gt212*Gt233*gt23L*gtu31 + Gt113*Gt313*gt33L*gtu31 +
- Gt213*Gt323*gt33L*gtu31 + gt11L*Gt123*Gt133*gtu32 +
- Gt113*Gt123*gt13L*gtu32 + Gt112*Gt133*gt13L*gtu32 +
- gt12L*Gt133*Gt223*gtu32 + Gt123*gt13L*Gt223*gtu32 +
- Gt123*gt12L*Gt233*gtu32 + Gt122*gt13L*Gt233*gtu32 +
- Gt223*gt22L*Gt233*gtu32 + Gt133*Gt212*gt23L*gtu32 +
- Gt123*Gt213*gt23L*gtu32 + Gt222*Gt233*gt23L*gtu32 +
- Gt233*Gt322*gt33L*gtu32 + Gt223*Gt323*gt33L*gtu32 +
- Gt113*Gt133*gt13L*gtu33 + gt12L*Gt133*Gt233*gtu33 +
- Gt123*gt13L*Gt233*gtu33 + Gt133*Gt213*gt23L*gtu33 +
- Gt223*Gt233*gt23L*gtu33 + gt13L*gtu31*SQR(Gt113)) +
+ Gt222*Gt223*gt23L*gtu22 + gt11L*Gt123*Gt133*gtu23 +
+ Gt113*Gt123*gt13L*gtu23 + Gt112*Gt133*gt13L*gtu23 +
+ Gt123*gt13L*Gt223*gtu23 + Gt123*gt12L*Gt233*gtu23 +
+ Gt122*gt13L*Gt233*gtu23 + Gt223*gt22L*Gt233*gtu23 +
+ Gt133*Gt212*gt23L*gtu23 + Gt123*Gt213*gt23L*gtu23 +
+ Gt123*Gt313*gt33L*gtu23 + Gt233*Gt322*gt33L*gtu23 +
+ Gt113*Gt133*gt13L*gtu33 + Gt123*gt13L*Gt233*gtu33 +
+ Gt133*Gt213*gt23L*gtu33 + gt13L*gtu13*SQR(Gt113)) +
gt11L*gtu22*SQR(Gt123) + gt11L*gtu33*SQR(Gt133) +
gt22L*gtu11*SQR(Gt213) + gt22L*gtu22*SQR(Gt223) +
- 2*gt23L*gtu32*SQR(Gt223) + gt22L*gtu33*SQR(Gt233) +
+ 2*gt23L*gtu23*SQR(Gt223) + gt22L*gtu33*SQR(Gt233) +
3*gt33L*gtu11*SQR(Gt313) + 3*gt33L*gtu22*SQR(Gt323) +
3*gt33L*gtu33*SQR(Gt333);
@@ -821,38 +844,38 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt333*PDstandardNth3phi)) + fac2*SQR(PDstandardNth3phi);
CCTK_REAL Rphi11 = -2*(cdphi211 + 2*(-1 + gt11L*gtu11)*SQR(cdphi1) +
- gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu21 + cdphi3*gtu31) +
- cdphi2*cdphi3*gtu32) + cdphi233*gtu33 + gtu22*(cdphi222 +
- 2*SQR(cdphi2)) + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu12 + cdphi3*gtu13) +
+ cdphi2*cdphi3*gtu23) + cdphi233*gtu33 + gtu22*(cdphi222 +
+ 2*SQR(cdphi2)) + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu21)
- + 4*cdphi3*gt12L*gtu31) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu32
- + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu12)
+ + 4*cdphi3*gt12L*gtu13) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu23
+ + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2)) + gtu33*(cdphi233
+ 2*SQR(cdphi3))));
- CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu21 +
- cdphi3*(-2 + 4*gt13L*gtu31)) + gt13L*(cdphi211*gtu11 +
- 4*cdphi2*cdphi3*gtu32 + 2*(cdphi212*gtu21 + cdphi213*gtu31 +
- cdphi223*gtu32 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu12 +
+ cdphi3*(-2 + 4*gt13L*gtu13)) + gt13L*(cdphi211*gtu11 +
+ 4*cdphi2*cdphi3*gtu23 + 2*(cdphi212*gtu12 + cdphi213*gtu13 +
+ cdphi223*gtu23 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ gtu33*(cdphi233 + 2*SQR(cdphi3))));
CCTK_REAL Rphi22 = -2*(cdphi222 + 2*(-1 + gt22L*gtu22)*SQR(cdphi2) +
- gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu31 + cdphi2*(cdphi1*gtu21 +
- cdphi3*gtu32)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu13 + cdphi2*(cdphi1*gtu12 +
+ cdphi3*gtu23)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
+ 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu21 +
- cdphi3*(-2 + 4*gt23L*gtu32)) + gt23L*(cdphi222*gtu22 +
- 4*cdphi1*cdphi3*gtu31 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
- gtu22*SQR(cdphi2)) + gtu33*(cdphi233 + 2*SQR(cdphi3))));
+ CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu12 +
+ cdphi3*(-2 + 4*gt23L*gtu23)) + gt23L*(4*cdphi1*cdphi3*gtu13 +
+ cdphi222*gtu22 + gtu11*(cdphi211 + 2*SQR(cdphi1)) + 2*(cdphi212*gtu12 +
+ cdphi213*gtu13 + cdphi223*gtu23 + gtu22*SQR(cdphi2)) + gtu33*(cdphi233
+ + 2*SQR(cdphi3))));
CCTK_REAL Rphi33 = -2*(cdphi233 + gt33L*((4*cdphi1*cdphi2 +
- 2*cdphi212)*gtu21 + 4*cdphi3*(cdphi1*gtu31 + cdphi2*gtu32) +
- 2*(cdphi213*gtu31 + cdphi223*gtu32) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*cdphi212)*gtu12 + 4*cdphi3*(cdphi1*gtu13 + cdphi2*gtu23) +
+ 2*(cdphi213*gtu13 + cdphi223*gtu23) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))) + 2*(-1 +
gt33L*gtu33)*SQR(cdphi3));
@@ -862,13 +885,13 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -884,26 +907,26 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL R33 = Rphi33 + Rt33;
- CCTK_REAL trR = gu11*R11 + gu22*R22 + 2*(gu21*R12 + gu31*R13 +
- gu32*R23) + gu33*R33;
+ CCTK_REAL trR = gu11*R11 + gu22*R22 + 2*(gu12*R12 + gu13*R13 +
+ gu23*R23) + gu33*R33;
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
CCTK_REAL rho = pow(alphaL,-2)*(eTttL - 2*(beta2L*eTtyL +
beta3L*eTtzL) + 2*(beta1L*(-eTtxL + beta2L*eTxyL + beta3L*eTxzL) +
@@ -925,73 +948,73 @@ void ML_BSSN_O2_constraints_Body(cGH const * restrict const cctkGH, int const di
0.6666666666666666666666666666666666666667*SQR(trKL);
CCTK_REAL M1L = -2.*((At12L*Gt211 + At13L*Gt311)*gtu11 +
- At11L*Gt123*gtu32) + At12L*((6.*cdphi1 - 1.*Gt111)*gtu21 -
- 3.*Gt213*gtu31 + 6.*(cdphi2*gtu22 + cdphi3*gtu32) - 1.*Gt233*gtu33) -
- 1.*((At22L*Gt212 + At12L*(Gt112 + Gt222) + At23L*Gt312 +
- At13L*Gt322)*gtu22 + At13L*(Gt111*gtu31 + Gt112*gtu32 + Gt113*gtu33)) +
- At11L*((6.*cdphi1 - 2.*Gt111)*gtu11 + 6.*(cdphi2*gtu21 + cdphi3*gtu31)
- - 1.*(Gt122*gtu22 + Gt133*gtu33)) + gtu11*PDstandardNth1At11 -
+ At11L*Gt123*gtu23) + At12L*((6.*cdphi1 - 1.*Gt111)*gtu12 -
+ 3.*Gt213*gtu13 + 6.*(cdphi2*gtu22 + cdphi3*gtu23) - 1.*Gt233*gtu33) -
+ 1.*((At22L*Gt212 + At12L*(Gt112 + Gt222) + At23L*Gt312)*gtu22 +
+ (At13L*Gt112 + At12L*Gt113 + At23L*Gt212)*gtu23 + (At13L*Gt113 +
+ At23L*Gt213 + At33L*Gt313)*gtu33) + At11L*((6.*cdphi1 - 2.*Gt111)*gtu11
+ + 6.*(cdphi2*gtu12 + cdphi3*gtu13) - 1.*(Gt122*gtu22 + Gt133*gtu33)) +
+ At13L*((6.*cdphi1 - 1.*Gt111)*gtu13 + 6.*(cdphi2*gtu23 + cdphi3*gtu33)
+ - 1.*(Gt322*gtu22 + Gt333*gtu33)) + gtu11*PDstandardNth1At11 -
0.6666666666666666666666666666666666666667*PDstandardNth1trK +
- gtu21*(-1.*(At22L*Gt211 + At23L*Gt311) - 3.*(At11L*Gt112 + At12L*Gt212
+ gtu12*(-1.*(At22L*Gt211 + At23L*Gt311) - 3.*(At11L*Gt112 + At12L*Gt212
+ At13L*Gt312) + PDstandardNth1At12 + PDstandardNth2At11) +
- gtu22*PDstandardNth2At12 + gtu31*(-3.*At11L*Gt113 - 1.*(At23L*Gt211 +
- At33L*Gt311) + At13L*(6.*cdphi1 - 3.*Gt313) + PDstandardNth1At13 +
- PDstandardNth3At11) + gtu32*(-2.*At12L*Gt223 - 1.*(At12L*Gt113 +
- At22L*Gt213 + At33L*Gt312 + At23L*(Gt212 + Gt313)) + At13L*(6.*cdphi2 -
- 2.*Gt323) + PDstandardNth2At13 + PDstandardNth3At12) +
- gtu33*(-1.*(At23L*Gt213 + At33L*Gt313) + At13L*(6.*cdphi3 - 1.*Gt333) +
- PDstandardNth3At13) - 25.13274122871834590770114706623602307358*S1;
-
- CCTK_REAL M2L = At12L*((6.*cdphi1 - 1.*Gt111)*gtu11 - 2.*Gt122*gtu22 +
- 6.*(cdphi2*gtu21 + cdphi3*gtu31) - 3.*Gt123*gtu32 - 1.*Gt133*gtu33) +
- At22L*((6.*cdphi2 - 2.*Gt222)*gtu22 - 2.*Gt213*gtu31 + 6.*cdphi3*gtu32
- - 1.*Gt233*gtu33) + At23L*(-2.*Gt322*gtu22 - 1.*Gt333*gtu33 +
- 6.*(cdphi1*gtu31 + cdphi2*gtu32 + cdphi3*gtu33)) - 1.*((At11L*Gt112 +
- At22L*Gt211 + At12L*Gt212 + At23L*Gt311 + At13L*Gt312)*gtu11 +
- Gt122*(At11L*gtu21 + At13L*gtu32) + (At23L*Gt223 + At33L*Gt323)*gtu33 +
- At13L*(Gt112*gtu31 + Gt123*gtu33)) + gtu11*PDstandardNth1At12 +
- gtu21*(At22L*(6.*cdphi1 - 3.*Gt212) + At12L*(-3.*Gt112 - 1.*Gt222) -
- 3.*At23L*Gt312 - 1.*At13L*Gt322 + PDstandardNth1At22 +
- PDstandardNth2At12) + gtu22*PDstandardNth2At22 -
+ gtu22*PDstandardNth2At12 + gtu13*(-1.*(At23L*Gt211 + At33L*Gt311) -
+ 3.*(At11L*Gt113 + At13L*Gt313) + PDstandardNth1At13 +
+ PDstandardNth3At11) + gtu23*(-1.*(At22L*Gt213 + At33L*Gt312 +
+ At23L*Gt313) - 2.*(At12L*Gt223 + At13L*Gt323) + PDstandardNth2At13 +
+ PDstandardNth3At12) + gtu33*PDstandardNth3At13 -
+ 25.13274122871834590770114706623602307358*S1;
+
+ CCTK_REAL M2L = At12L*((6.*cdphi1 - 1.*Gt111)*gtu11 + 6.*(cdphi2*gtu12
+ + cdphi3*gtu13) - 2.*Gt122*gtu22 - 3.*Gt123*gtu23 - 1.*Gt133*gtu33) +
+ At22L*((6.*cdphi2 - 2.*Gt222)*gtu22 + 6.*cdphi3*gtu23 - 1.*Gt233*gtu33)
+ + At23L*(-2.*Gt322*gtu22 - 1.*Gt333*gtu33 + 6.*(cdphi2*gtu23 +
+ cdphi3*gtu33)) - 1.*((At11L*Gt112 + At22L*Gt211 + At12L*Gt212 +
+ At23L*Gt311 + At13L*Gt312)*gtu11 + Gt122*(At11L*gtu12 + At13L*gtu23) +
+ (At23L*Gt223 + At33L*Gt323)*gtu33 + At13L*(Gt112*gtu13 + Gt123*gtu33))
+ + gtu11*PDstandardNth1At12 + gtu12*(At22L*(6.*cdphi1 - 3.*Gt212) +
+ At12L*(-3.*Gt112 - 1.*Gt222) - 3.*At23L*Gt312 - 1.*At13L*Gt322 +
+ PDstandardNth1At22 + PDstandardNth2At12) + gtu22*PDstandardNth2At22 -
0.6666666666666666666666666666666666666667*PDstandardNth2trK +
- gtu31*(At12L*(-2.*Gt113 - 1.*Gt223) - 2.*At23L*Gt313 - 1.*(At11L*Gt123
- + At23L*Gt212 + At33L*Gt312 + At13L*Gt323) + PDstandardNth1At23 +
- PDstandardNth3At12) + gtu32*(-1.*(At23L*Gt222 + At33L*Gt322) -
- 3.*(At22L*Gt223 + At23L*Gt323) + PDstandardNth2At23 +
+ gtu13*(-2.*(At12L*Gt113 + At22L*Gt213) + At23L*(6.*cdphi1 - 1.*Gt212 -
+ 2.*Gt313) - 1.*(At11L*Gt123 + At12L*Gt223 + At33L*Gt312 + At13L*Gt323)
+ + PDstandardNth1At23 + PDstandardNth3At12) + gtu23*(-1.*(At23L*Gt222 +
+ At33L*Gt322) - 3.*(At22L*Gt223 + At23L*Gt323) + PDstandardNth2At23 +
PDstandardNth3At22) + gtu33*PDstandardNth3At23 -
25.13274122871834590770114706623602307358*S2;
CCTK_REAL M3L = -1.*((At11L*Gt113 + At23L*Gt211 + At12L*Gt213 +
At33L*Gt311)*gtu11 + (At22L*Gt223 + At33L*Gt322 + At23L*Gt323)*gtu22 +
- At11L*Gt133*gtu31 + At12L*(Gt113*gtu21 + Gt123*gtu22 + Gt133*gtu32)) +
- At13L*((6.*cdphi1 - 1.*(Gt111 + Gt313))*gtu11 - 1.*Gt122*gtu22 +
- 6.*(cdphi2*gtu21 + cdphi3*gtu31) - 3.*Gt123*gtu32 - 2.*Gt133*gtu33) +
- At23L*((6.*cdphi2 - 1.*Gt222)*gtu22 - 3.*Gt213*gtu31 + 6.*cdphi3*gtu32
- - 2.*Gt233*gtu33) + gtu11*PDstandardNth1At13 + gtu21*(-2.*(At13L*Gt112
- + At33L*Gt312) + At23L*(6.*cdphi1 - 2.*Gt212 - 1.*Gt313) -
- 1.*(At11L*Gt123 + At22L*Gt213 + At12L*Gt223 + At13L*Gt323) +
- PDstandardNth1At23 + PDstandardNth2At13) + gtu22*PDstandardNth2At23 +
- gtu31*(-1.*At12L*Gt233 + At33L*(6.*cdphi1 - 3.*Gt313) +
- At13L*(-3.*Gt113 - 1.*Gt333) + PDstandardNth1At33 + PDstandardNth3At13)
- + gtu32*(-1.*At22L*Gt233 + At33L*(6.*cdphi2 - 3.*Gt323) +
- At23L*(-3.*Gt223 - 1.*Gt333) + PDstandardNth2At33 + PDstandardNth3At23)
- + gtu33*(At33L*(6.*cdphi3 - 2.*Gt333) + PDstandardNth3At33) -
+ At12L*(Gt113*gtu12 + Gt123*gtu22) + Gt133*(At11L*gtu13 + At12L*gtu23))
+ + At13L*((6.*cdphi1 - 1.*(Gt111 + Gt313))*gtu11 + 6.*(cdphi2*gtu12 +
+ cdphi3*gtu13) - 1.*Gt122*gtu22 - 3.*Gt123*gtu23 - 2.*Gt133*gtu33) +
+ At23L*((6.*cdphi2 - 1.*Gt222)*gtu22 + 6.*cdphi3*gtu23 - 2.*Gt233*gtu33)
+ + gtu11*PDstandardNth1At13 + gtu12*(-2.*(At13L*Gt112 + At33L*Gt312) +
+ At23L*(6.*cdphi1 - 2.*Gt212 - 1.*Gt313) - 1.*(At11L*Gt123 + At22L*Gt213
+ + At12L*Gt223 + At13L*Gt323) + PDstandardNth1At23 + PDstandardNth2At13)
+ + gtu22*PDstandardNth2At23 + gtu13*(-3.*(At13L*Gt113 + At23L*Gt213) +
+ At33L*(6.*cdphi1 - 3.*Gt313) - 1.*(At12L*Gt233 + At13L*Gt333) +
+ PDstandardNth1At33 + PDstandardNth3At13) + gtu23*(-1.*At22L*Gt233 +
+ At33L*(6.*cdphi2 - 3.*Gt323) + At23L*(-3.*Gt223 - 1.*Gt333) +
+ PDstandardNth2At33 + PDstandardNth3At23) + gtu33*(At33L*(6.*cdphi3 -
+ 2.*Gt333) + PDstandardNth3At33) -
0.6666666666666666666666666666666666666667*PDstandardNth3trK -
25.13274122871834590770114706623602307358*S3;
CCTK_REAL cSL = Log(detgt);
- CCTK_REAL cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33 - Xt1L;
+ CCTK_REAL cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33 - Xt1L;
- CCTK_REAL cXt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33 - Xt2L;
+ CCTK_REAL cXt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33 - Xt2L;
- CCTK_REAL cXt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33 - Xt3L;
+ CCTK_REAL cXt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33 - Xt3L;
- CCTK_REAL cAL = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu21 +
- At13L*gtu31 + At23L*gtu32) + At33L*gtu33;
+ CCTK_REAL cAL = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu12 +
+ At13L*gtu13 + At23L*gtu23) + At33L*gtu33;
/* Copy local copies back to grid functions */
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_constraints_boundary.c b/ML_BSSN_O2/src/ML_BSSN_O2_constraints_boundary.c
index e6a9a33..4dfae3f 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_constraints_boundary.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_constraints_boundary.c
@@ -20,6 +20,30 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_constraints_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_cons_detg","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_cons_detg.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_cons_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_cons_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_cons_traceA","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_cons_traceA.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_mom.");
+ return;
+}
+
void ML_BSSN_O2_constraints_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.c b/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.c
index 02def41..2105acd 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBase.c
@@ -137,13 +137,13 @@ void ML_BSSN_O2_convertFromADMBase_Body(cGH const * restrict const cctkGH, int c
CCTK_REAL gu11 = INV(detg)*(g22*g33 - SQR(g23));
- CCTK_REAL gu21 = (g13*g23 - g12*g33)*INV(detg);
+ CCTK_REAL gu12 = (g13*g23 - g12*g33)*INV(detg);
- CCTK_REAL gu31 = (-(g13*g22) + g12*g23)*INV(detg);
+ CCTK_REAL gu13 = (-(g13*g22) + g12*g23)*INV(detg);
CCTK_REAL gu22 = INV(detg)*(g11*g33 - SQR(g13));
- CCTK_REAL gu32 = (g12*g13 - g11*g23)*INV(detg);
+ CCTK_REAL gu23 = (g12*g13 - g11*g23)*INV(detg);
CCTK_REAL gu33 = INV(detg)*(g11*g22 - SQR(g12));
@@ -164,7 +164,7 @@ void ML_BSSN_O2_convertFromADMBase_Body(cGH const * restrict const cctkGH, int c
CCTK_REAL gt33L = em4phi*g33;
- trKL = gu11*kxxL + gu22*kyyL + 2*(gu21*kxyL + gu31*kxzL + gu32*kyzL) +
+ trKL = gu11*kxxL + gu22*kyyL + 2*(gu12*kxyL + gu13*kxzL + gu23*kyzL) +
gu33*kzzL;
CCTK_REAL At11L = em4phi*(kxxL - g11*kthird*trKL);
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBaseGamma.c b/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBaseGamma.c
index 585d5ef..ba918ef 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBaseGamma.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertFromADMBaseGamma.c
@@ -20,6 +20,24 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_convertFromADMBaseGamma_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_dtshift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O2::ML_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O2::ML_Gamma.");
+ return;
+}
+
void ML_BSSN_O2_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -211,96 +229,96 @@ void ML_BSSN_O2_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH,
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
CCTK_REAL Gt111 = khalf*(gtu11*PDstandardNth1gt11 +
- 2*(gtu21*PDstandardNth1gt12 + gtu31*PDstandardNth1gt13) -
- gtu21*PDstandardNth2gt11 - gtu31*PDstandardNth3gt11);
+ 2*(gtu12*PDstandardNth1gt12 + gtu13*PDstandardNth1gt13) -
+ gtu12*PDstandardNth2gt11 - gtu13*PDstandardNth3gt11);
- CCTK_REAL Gt211 = khalf*(gtu21*PDstandardNth1gt11 +
- 2*(gtu22*PDstandardNth1gt12 + gtu32*PDstandardNth1gt13) -
- gtu22*PDstandardNth2gt11 - gtu32*PDstandardNth3gt11);
+ CCTK_REAL Gt211 = khalf*(gtu12*PDstandardNth1gt11 +
+ 2*(gtu22*PDstandardNth1gt12 + gtu23*PDstandardNth1gt13) -
+ gtu22*PDstandardNth2gt11 - gtu23*PDstandardNth3gt11);
- CCTK_REAL Gt311 = khalf*(gtu31*PDstandardNth1gt11 +
- 2*(gtu32*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
- gtu32*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
+ CCTK_REAL Gt311 = khalf*(gtu13*PDstandardNth1gt11 +
+ 2*(gtu23*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
+ gtu23*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
- CCTK_REAL Gt112 = khalf*(gtu21*PDstandardNth1gt22 +
- gtu11*PDstandardNth2gt11 + gtu31*(PDstandardNth1gt23 +
+ CCTK_REAL Gt112 = khalf*(gtu12*PDstandardNth1gt22 +
+ gtu11*PDstandardNth2gt11 + gtu13*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
CCTK_REAL Gt212 = khalf*(gtu22*PDstandardNth1gt22 +
- gtu21*PDstandardNth2gt11 + gtu32*(PDstandardNth1gt23 +
+ gtu12*PDstandardNth2gt11 + gtu23*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt312 = khalf*(gtu32*PDstandardNth1gt22 +
- gtu31*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
+ CCTK_REAL Gt312 = khalf*(gtu23*PDstandardNth1gt22 +
+ gtu13*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt113 = khalf*(gtu31*PDstandardNth1gt33 +
- gtu11*PDstandardNth3gt11 + gtu21*(PDstandardNth1gt23 -
+ CCTK_REAL Gt113 = khalf*(gtu13*PDstandardNth1gt33 +
+ gtu11*PDstandardNth3gt11 + gtu12*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
- CCTK_REAL Gt213 = khalf*(gtu32*PDstandardNth1gt33 +
- gtu21*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
+ CCTK_REAL Gt213 = khalf*(gtu23*PDstandardNth1gt33 +
+ gtu12*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt313 = khalf*(gtu33*PDstandardNth1gt33 +
- gtu31*PDstandardNth3gt11 + gtu32*(PDstandardNth1gt23 -
+ gtu13*PDstandardNth3gt11 + gtu23*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt122 = khalf*(gtu11*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu21*PDstandardNth2gt22 +
- gtu31*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ 2*PDstandardNth2gt12) + gtu12*PDstandardNth2gt22 +
+ gtu13*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt222 = khalf*(gtu21*(-PDstandardNth1gt22 +
+ CCTK_REAL Gt222 = khalf*(gtu12*(-PDstandardNth1gt22 +
2*PDstandardNth2gt12) + gtu22*PDstandardNth2gt22 +
- gtu32*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ gtu23*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt322 = khalf*(gtu31*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu32*PDstandardNth2gt22 +
+ CCTK_REAL Gt322 = khalf*(gtu13*(-PDstandardNth1gt22 +
+ 2*PDstandardNth2gt12) + gtu23*PDstandardNth2gt22 +
gtu33*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt123 = khalf*(gtu31*PDstandardNth2gt33 +
+ CCTK_REAL Gt123 = khalf*(gtu13*PDstandardNth2gt33 +
gtu11*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu21*PDstandardNth3gt22);
+ gtu12*PDstandardNth3gt22);
- CCTK_REAL Gt223 = khalf*(gtu32*PDstandardNth2gt33 +
- gtu21*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ CCTK_REAL Gt223 = khalf*(gtu23*PDstandardNth2gt33 +
+ gtu12*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
gtu22*PDstandardNth3gt22);
CCTK_REAL Gt323 = khalf*(gtu33*PDstandardNth2gt33 +
- gtu31*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu32*PDstandardNth3gt22);
+ gtu13*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ gtu23*PDstandardNth3gt22);
CCTK_REAL Gt133 = khalf*(-(gtu11*PDstandardNth1gt33) -
- gtu21*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
- 2*gtu21*PDstandardNth3gt23 + gtu31*PDstandardNth3gt33);
+ gtu12*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
+ 2*gtu12*PDstandardNth3gt23 + gtu13*PDstandardNth3gt33);
- CCTK_REAL Gt233 = khalf*(-(gtu21*PDstandardNth1gt33) -
- gtu22*PDstandardNth2gt33 + 2*gtu21*PDstandardNth3gt13 +
- 2*gtu22*PDstandardNth3gt23 + gtu32*PDstandardNth3gt33);
+ CCTK_REAL Gt233 = khalf*(-(gtu12*PDstandardNth1gt33) -
+ gtu22*PDstandardNth2gt33 + 2*gtu12*PDstandardNth3gt13 +
+ 2*gtu22*PDstandardNth3gt23 + gtu23*PDstandardNth3gt33);
- CCTK_REAL Gt333 = khalf*(-(gtu31*PDstandardNth1gt33) -
- gtu32*PDstandardNth2gt33 + 2*gtu31*PDstandardNth3gt13 +
- 2*gtu32*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
+ CCTK_REAL Gt333 = khalf*(-(gtu13*PDstandardNth1gt33) -
+ gtu23*PDstandardNth2gt33 + 2*gtu13*PDstandardNth3gt13 +
+ 2*gtu23*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
- CCTK_REAL Xt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL AL = 12*IfThen(LapseACoeff !=
0,-(dtalpL*INV(harmonicF)*pow(alphaL,-harmonicN)),0) +
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.c b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.c
index 7b41e4b..0c60b1c 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShift.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_convertToADMBaseDtLapseShift_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift.");
+ return;
+}
+
void ML_BSSN_O2_convertToADMBaseDtLapseShift_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.c b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.c
index cf630e0..7ca2d42 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift.");
+ return;
+}
+
void ML_BSSN_O2_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_enforce.c b/ML_BSSN_O2/src/ML_BSSN_O2_enforce.c
index e1df087..4a84b3b 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_enforce.c
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_enforce.c
@@ -119,18 +119,18 @@ void ML_BSSN_O2_enforce_Body(cGH const * restrict const cctkGH, int const dir, i
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
- CCTK_REAL trAt = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu21 +
- At13L*gtu31 + At23L*gtu32) + At33L*gtu33;
+ CCTK_REAL trAt = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu12 +
+ At13L*gtu13 + At23L*gtu23) + At33L*gtu33;
At11L = At11L - gt11L*kthird*trAt;
diff --git a/ML_BSSN_O2_Helper/schedule.ccl b/ML_BSSN_O2_Helper/schedule.ccl
index db0e3c8..61e6bda 100644
--- a/ML_BSSN_O2_Helper/schedule.ccl
+++ b/ML_BSSN_O2_Helper/schedule.ccl
@@ -132,7 +132,7 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN_O2")) {
}
else if (CCTK_EQUALS (calculate_ADMBase_variables_at, "CCTK_EVOL"))
{
- SCHEDULE GROUP ML_BSSN_O2_convertToADMBaseGroupWrapper AT evol AFTER MoL_Evolution BEFORE (ADMBase_SetADMVars Whisky_PostStep)
+ SCHEDULE GROUP ML_BSSN_O2_convertToADMBaseGroupWrapper IN MoL_PseudoEvolution BEFORE (ADMBase_SetADMVars Whisky_PostStep)
{
} "Calculate ADM variables"
}
@@ -143,7 +143,7 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN_O2")) {
} "Calculate ADM variables"
}
- SCHEDULE GROUP ML_BSSN_O2_convertToADMBaseGroupWrapper AT CCTK_POST_RECOVER_VARIABLES
+ SCHEDULE GROUP ML_BSSN_O2_convertToADMBaseGroupWrapper AT post_recover_variables
{
} "Calculate ADM variables"
diff --git a/ML_BSSN_O8/interface.ccl b/ML_BSSN_O8/interface.ccl
index 738701f..29fc46e 100644
--- a/ML_BSSN_O8/interface.ccl
+++ b/ML_BSSN_O8/interface.ccl
@@ -25,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2.0000000000000000000'
+CCTK_REAL ML_cons_detg type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=2'
{
cS
} "ML_cons_detg"
@@ -39,19 +39,19 @@ CCTK_REAL ML_cons_Gamma type=GF timelevels=1 tags='tensortypealias="U" tensorwei
} "ML_cons_Gamma"
public:
-CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_cons_traceA type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
cA
} "ML_cons_traceA"
public:
-CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_Ham type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
H
} "ML_Ham"
public:
-CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_mom type=GF timelevels=1 tags='tensortypealias="D" tensorweight=1'
{
M1,
M2,
@@ -70,13 +70,13 @@ CCTK_REAL ML_curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweig
} "ML_curv"
public:
-CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
A
} "ML_dtlapse"
public:
-CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
B1,
B2,
@@ -92,7 +92,7 @@ CCTK_REAL ML_Gamma type=GF timelevels=3 tags='tensortypealias="U" tensorweight=0
} "ML_Gamma"
public:
-CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpha
} "ML_lapse"
@@ -115,7 +115,7 @@ CCTK_REAL ML_metric type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorwe
} "ML_metric"
public:
-CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1,
beta2,
@@ -123,7 +123,7 @@ CCTK_REAL ML_shift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1
} "ML_shift"
public:
-CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_trace_curv type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
trK
} "ML_trace_curv"
@@ -140,13 +140,13 @@ CCTK_REAL ML_curvrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorw
} "ML_curvrhs"
public:
-CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtlapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
Arhs
} "ML_dtlapserhs"
public:
-CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_dtshiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
B1rhs,
B2rhs,
@@ -162,7 +162,7 @@ CCTK_REAL ML_Gammarhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "ML_Gammarhs"
public:
-CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_lapserhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
alpharhs
} "ML_lapserhs"
@@ -185,7 +185,7 @@ CCTK_REAL ML_metricrhs type=GF timelevels=3 tags='tensortypealias="DD_sym" tenso
} "ML_metricrhs"
public:
-CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1'
{
beta1rhs,
beta2rhs,
@@ -193,7 +193,7 @@ CCTK_REAL ML_shiftrhs type=GF timelevels=3 tags='tensortypealias="U" tensorweigh
} "ML_shiftrhs"
public:
-CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ML_trace_curvrhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
trKrhs
} "ML_trace_curvrhs"
diff --git a/ML_BSSN_O8/schedule.ccl b/ML_BSSN_O8/schedule.ccl
index 27dd89d..bce65a8 100644
--- a/ML_BSSN_O8/schedule.ccl
+++ b/ML_BSSN_O8/schedule.ccl
@@ -405,7 +405,7 @@ schedule ML_BSSN_O8_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_BSSN_O8_ApplyBCs in MoL_PostStep after ML_BSSN_O8_SelectBoundConds
+schedule group ApplyBCs as ML_BSSN_O8_ApplyBCs in MoL_PostStep after ML_BSSN_O8_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.c b/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.c
index 9f39cbd..514347c 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHS1.c
@@ -20,6 +20,39 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_RHS1_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -616,13 +649,13 @@ void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -665,50 +698,50 @@ void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL Gtl333 = khalf*PDstandardNth3gt33;
- CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu21 + Gtl311*gtu31;
+ CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu12 + Gtl311*gtu13;
- CCTK_REAL Gt211 = Gtl111*gtu21 + Gtl211*gtu22 + Gtl311*gtu32;
+ CCTK_REAL Gt211 = Gtl111*gtu12 + Gtl211*gtu22 + Gtl311*gtu23;
- CCTK_REAL Gt311 = Gtl111*gtu31 + Gtl211*gtu32 + Gtl311*gtu33;
+ CCTK_REAL Gt311 = Gtl111*gtu13 + Gtl211*gtu23 + Gtl311*gtu33;
- CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu21 + Gtl312*gtu31;
+ CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu12 + Gtl312*gtu13;
- CCTK_REAL Gt212 = Gtl112*gtu21 + Gtl212*gtu22 + Gtl312*gtu32;
+ CCTK_REAL Gt212 = Gtl112*gtu12 + Gtl212*gtu22 + Gtl312*gtu23;
- CCTK_REAL Gt312 = Gtl112*gtu31 + Gtl212*gtu32 + Gtl312*gtu33;
+ CCTK_REAL Gt312 = Gtl112*gtu13 + Gtl212*gtu23 + Gtl312*gtu33;
- CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gt213 = Gtl113*gtu21 + Gtl213*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gt213 = Gtl113*gtu12 + Gtl213*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gt313 = Gtl113*gtu31 + Gtl213*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gt313 = Gtl113*gtu13 + Gtl213*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu21 + Gtl322*gtu31;
+ CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu12 + Gtl322*gtu13;
- CCTK_REAL Gt222 = Gtl122*gtu21 + Gtl222*gtu22 + Gtl322*gtu32;
+ CCTK_REAL Gt222 = Gtl122*gtu12 + Gtl222*gtu22 + Gtl322*gtu23;
- CCTK_REAL Gt322 = Gtl122*gtu31 + Gtl222*gtu32 + Gtl322*gtu33;
+ CCTK_REAL Gt322 = Gtl122*gtu13 + Gtl222*gtu23 + Gtl322*gtu33;
- CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gt223 = Gtl123*gtu21 + Gtl223*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gt223 = Gtl123*gtu12 + Gtl223*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gt323 = Gtl123*gtu31 + Gtl223*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gt323 = Gtl123*gtu13 + Gtl223*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gt233 = Gtl133*gtu21 + Gtl233*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gt233 = Gtl133*gtu12 + Gtl233*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gt333 = Gtl133*gtu31 + Gtl233*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gt333 = Gtl133*gtu13 + Gtl233*gtu23 + Gtl333*gtu33;
- CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL fac1 = IfThen(conformalMethod,-(khalf*INV(phiL)),1);
@@ -718,35 +751,35 @@ void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL cdphi3 = fac1*PDstandardNth3phi;
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
- CCTK_REAL Atu11 = Atm11*gtu11 + Atm12*gtu21 + Atm13*gtu31;
+ CCTK_REAL Atu11 = Atm11*gtu11 + Atm12*gtu12 + Atm13*gtu13;
- CCTK_REAL Atu21 = Atm11*gtu21 + Atm12*gtu22 + Atm13*gtu32;
+ CCTK_REAL Atu12 = Atm11*gtu12 + Atm12*gtu22 + Atm13*gtu23;
- CCTK_REAL Atu31 = Atm11*gtu31 + Atm12*gtu32 + Atm13*gtu33;
+ CCTK_REAL Atu13 = Atm11*gtu13 + Atm12*gtu23 + Atm13*gtu33;
- CCTK_REAL Atu22 = Atm21*gtu21 + Atm22*gtu22 + Atm23*gtu32;
+ CCTK_REAL Atu22 = Atm21*gtu12 + Atm22*gtu22 + Atm23*gtu23;
- CCTK_REAL Atu32 = Atm21*gtu31 + Atm22*gtu32 + Atm23*gtu33;
+ CCTK_REAL Atu23 = Atm21*gtu13 + Atm22*gtu23 + Atm23*gtu33;
- CCTK_REAL Atu33 = Atm31*gtu31 + Atm32*gtu32 + Atm33*gtu33;
+ CCTK_REAL Atu33 = Atm31*gtu13 + Atm32*gtu23 + Atm33*gtu33;
CCTK_REAL e4phi = IfThen(conformalMethod,pow(phiL,-2),exp(4*phiL));
@@ -766,8 +799,8 @@ void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL S3 = (-eTtzL + beta1L*eTxzL + beta2L*eTyzL +
beta3L*eTzzL)*INV(alphaL);
- CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu21 +
- eTxzL*gtu31 + eTyzL*gtu32) + eTzzL*gtu33);
+ CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu12 +
+ eTxzL*gtu13 + eTyzL*gtu23) + eTzzL*gtu33);
CCTK_REAL phirhsL = epsdiss1*PDdissipationNth1phi +
epsdiss2*PDdissipationNth2phi + epsdiss3*PDdissipationNth3phi +
@@ -835,19 +868,19 @@ void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
beta3L*PDupwindNthAnti3gt33 + PDupwindNthSymm1gt33*Abs(beta1L) +
PDupwindNthSymm2gt33*Abs(beta2L) + PDupwindNthSymm3gt33*Abs(beta3L);
- CCTK_REAL dotXt1 = kthird*(7*(gtu21*PDstandardNth12beta1 +
- gtu31*PDstandardNth13beta1) + gtu11*(4*PDstandardNth11beta1 +
+ CCTK_REAL dotXt1 = kthird*(7*(gtu12*PDstandardNth12beta1 +
+ gtu13*PDstandardNth13beta1) + gtu11*(4*PDstandardNth11beta1 +
PDstandardNth12beta2 + PDstandardNth13beta3) +
- gtu21*(PDstandardNth22beta2 + PDstandardNth23beta3) +
- gtu31*(PDstandardNth23beta2 + PDstandardNth33beta3) -
- 6*(Atu11*PDstandardNth1alpha + Atu21*PDstandardNth2alpha +
- Atu31*PDstandardNth3alpha) + 6*(gtu32*PDstandardNth23beta1 +
- alphaL*(6*(Atu11*cdphi1 + Atu21*cdphi2 + Atu31*cdphi3) + Atu11*Gt111 +
- Atu22*Gt122 + 2*(Atu21*Gt112 + Atu31*Gt113 + Atu32*Gt123) + Atu33*Gt133
- - ktwothird*(gtu11*PDstandardNth1trK + gtu21*PDstandardNth2trK +
- gtu31*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu11*S1 + gtu21*S2 +
- gtu31*S3) + (-3*PDstandardNth1beta1 + 2*(PDstandardNth1beta1 +
+ gtu12*(PDstandardNth22beta2 + PDstandardNth23beta3) +
+ gtu13*(PDstandardNth23beta2 + PDstandardNth33beta3) -
+ 6*(Atu11*PDstandardNth1alpha + Atu12*PDstandardNth2alpha +
+ Atu13*PDstandardNth3alpha) + 6*(gtu23*PDstandardNth23beta1 +
+ alphaL*(6*(Atu11*cdphi1 + Atu12*cdphi2 + Atu13*cdphi3) + Atu11*Gt111 +
+ Atu22*Gt122 + 2*(Atu12*Gt112 + Atu13*Gt113 + Atu23*Gt123) + Atu33*Gt133
+ - ktwothird*(gtu11*PDstandardNth1trK + gtu12*PDstandardNth2trK +
+ gtu13*PDstandardNth3trK))) -
+ 150.7964473723100754462068823974161384415*alphaL*(gtu11*S1 + gtu12*S2 +
+ gtu13*S3) + (-3*PDstandardNth1beta1 + 2*(PDstandardNth1beta1 +
PDstandardNth2beta2 + PDstandardNth3beta3))*Xtn1 -
3*(PDstandardNth2beta1*Xtn2 + PDstandardNth3beta1*Xtn3) +
3*(epsdiss1*PDdissipationNth1Xt1 + epsdiss2*PDdissipationNth2Xt1 +
@@ -857,19 +890,19 @@ void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
PDupwindNthSymm1Xt1*Abs(beta1L) + PDupwindNthSymm2Xt1*Abs(beta2L) +
PDupwindNthSymm3Xt1*Abs(beta3L)));
- CCTK_REAL dotXt2 = kthird*(gtu21*(PDstandardNth11beta1 +
+ CCTK_REAL dotXt2 = kthird*(gtu12*(PDstandardNth11beta1 +
7*PDstandardNth12beta2 + PDstandardNth13beta3) +
gtu22*(PDstandardNth12beta1 + 4*PDstandardNth22beta2 +
- PDstandardNth23beta3) + gtu32*(PDstandardNth13beta1 +
+ PDstandardNth23beta3) + gtu23*(PDstandardNth13beta1 +
7*PDstandardNth23beta2 + PDstandardNth33beta3) -
- 6*(Atu21*PDstandardNth1alpha + Atu22*PDstandardNth2alpha +
- Atu32*PDstandardNth3alpha) + 6*(gtu31*PDstandardNth13beta2 +
- alphaL*(6*(Atu21*cdphi1 + Atu22*cdphi2 + Atu32*cdphi3) + Atu11*Gt211 +
- Atu22*Gt222 + 2*(Atu21*Gt212 + Atu31*Gt213 + Atu32*Gt223) + Atu33*Gt233
- - ktwothird*(gtu21*PDstandardNth1trK + gtu22*PDstandardNth2trK +
- gtu32*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu21*S1 + gtu22*S2 +
- gtu32*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
+ 6*(Atu12*PDstandardNth1alpha + Atu22*PDstandardNth2alpha +
+ Atu23*PDstandardNth3alpha) + 6*(gtu13*PDstandardNth13beta2 +
+ alphaL*(6*(Atu12*cdphi1 + Atu22*cdphi2 + Atu23*cdphi3) + Atu11*Gt211 +
+ Atu22*Gt222 + 2*(Atu12*Gt212 + Atu13*Gt213 + Atu23*Gt223) + Atu33*Gt233
+ - ktwothird*(gtu12*PDstandardNth1trK + gtu22*PDstandardNth2trK +
+ gtu23*PDstandardNth3trK))) -
+ 150.7964473723100754462068823974161384415*alphaL*(gtu12*S1 + gtu22*S2 +
+ gtu23*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
PDstandardNth3beta3)*Xtn2 - 3*(PDstandardNth1beta2*Xtn1 +
PDstandardNth2beta2*Xtn2 + PDstandardNth3beta2*Xtn3) +
3*(epsdiss1*PDdissipationNth1Xt2 + epsdiss2*PDdissipationNth2Xt2 +
@@ -879,18 +912,18 @@ void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
PDupwindNthSymm1Xt2*Abs(beta1L) + PDupwindNthSymm2Xt2*Abs(beta2L) +
PDupwindNthSymm3Xt2*Abs(beta3L)));
- CCTK_REAL dotXt3 = kthird*(gtu31*(PDstandardNth11beta1 +
+ CCTK_REAL dotXt3 = kthird*(gtu13*(PDstandardNth11beta1 +
PDstandardNth12beta2 + 7*PDstandardNth13beta3) +
- gtu32*(PDstandardNth12beta1 + PDstandardNth22beta2 +
+ gtu23*(PDstandardNth12beta1 + PDstandardNth22beta2 +
7*PDstandardNth23beta3) + gtu33*(PDstandardNth13beta1 +
PDstandardNth23beta2 + 4*PDstandardNth33beta3) -
- 6*(Atu31*PDstandardNth1alpha + Atu32*PDstandardNth2alpha +
- Atu33*PDstandardNth3alpha) + 6*(gtu21*PDstandardNth12beta3 +
- alphaL*(6*(Atu31*cdphi1 + Atu32*cdphi2 + Atu33*cdphi3) + Atu11*Gt311 +
- Atu22*Gt322 + 2*(Atu21*Gt312 + Atu31*Gt313 + Atu32*Gt323) + Atu33*Gt333
- - ktwothird*(gtu31*PDstandardNth1trK + gtu32*PDstandardNth2trK +
+ 6*(Atu13*PDstandardNth1alpha + Atu23*PDstandardNth2alpha +
+ Atu33*PDstandardNth3alpha) + 6*(gtu12*PDstandardNth12beta3 +
+ alphaL*(6*(Atu13*cdphi1 + Atu23*cdphi2 + Atu33*cdphi3) + Atu11*Gt311 +
+ Atu22*Gt322 + 2*(Atu12*Gt312 + Atu13*Gt313 + Atu23*Gt323) + Atu33*Gt333
+ - ktwothird*(gtu13*PDstandardNth1trK + gtu23*PDstandardNth2trK +
gtu33*PDstandardNth3trK))) -
- 150.7964473723100754462068823974161384415*alphaL*(gtu31*S1 + gtu32*S2 +
+ 150.7964473723100754462068823974161384415*alphaL*(gtu13*S1 + gtu23*S2 +
gtu33*S3) + 2*(PDstandardNth1beta1 + PDstandardNth2beta2 +
PDstandardNth3beta3)*Xtn3 - 3*(PDstandardNth1beta3*Xtn1 +
PDstandardNth2beta3*Xtn2 + PDstandardNth3beta3*Xtn3) +
@@ -912,12 +945,12 @@ void ML_BSSN_O8_RHS1_Body(cGH const * restrict const cctkGH, int const dir, int
beta1L*PDupwindNthAnti1trK + beta2L*PDupwindNthAnti2trK +
beta3L*PDupwindNthAnti3trK - em4phi*(gtu11*PDstandardNth11alpha +
gtu22*PDstandardNth22alpha + gtu33*(PDstandardNth33alpha +
- 2*cdphi3*PDstandardNth3alpha) + 2*(gtu21*PDstandardNth12alpha +
- gtu31*(PDstandardNth13alpha + cdphi1*PDstandardNth3alpha) +
- gtu32*(PDstandardNth23alpha + cdphi2*PDstandardNth3alpha)) +
- PDstandardNth1alpha*(2*(cdphi1*gtu11 + cdphi2*gtu21 + cdphi3*gtu31) -
- Xtn1) + PDstandardNth2alpha*(2*(cdphi1*gtu21 + cdphi2*gtu22 +
- cdphi3*gtu32) - Xtn2) - PDstandardNth3alpha*Xtn3) +
+ 2*cdphi3*PDstandardNth3alpha) + 2*(gtu12*PDstandardNth12alpha +
+ gtu13*(PDstandardNth13alpha + cdphi1*PDstandardNth3alpha) +
+ gtu23*(PDstandardNth23alpha + cdphi2*PDstandardNth3alpha)) +
+ PDstandardNth1alpha*(2*(cdphi1*gtu11 + cdphi2*gtu12 + cdphi3*gtu13) -
+ Xtn1) + PDstandardNth2alpha*(2*(cdphi1*gtu12 + cdphi2*gtu22 +
+ cdphi3*gtu23) - Xtn2) - PDstandardNth3alpha*Xtn3) +
PDupwindNthSymm1trK*Abs(beta1L) + PDupwindNthSymm2trK*Abs(beta2L) +
PDupwindNthSymm3trK*Abs(beta3L) + alphaL*(2*(Atm12*Atm21 + Atm13*Atm31
+ Atm23*Atm32) + 12.56637061435917295385057353311801153679*(rho + trS)
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.c b/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.c
index d612982..a240aa3 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHS2.c
@@ -20,6 +20,18 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_RHS2_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_curvrhs.");
+ return;
+}
+
void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -433,13 +445,13 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -482,104 +494,104 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL Gtl333 = khalf*PDstandardNth3gt33;
- CCTK_REAL Gtlu111 = Gtl111*gtu11 + Gtl112*gtu21 + Gtl113*gtu31;
+ CCTK_REAL Gtlu111 = Gtl111*gtu11 + Gtl112*gtu12 + Gtl113*gtu13;
- CCTK_REAL Gtlu112 = Gtl111*gtu21 + Gtl112*gtu22 + Gtl113*gtu32;
+ CCTK_REAL Gtlu112 = Gtl111*gtu12 + Gtl112*gtu22 + Gtl113*gtu23;
- CCTK_REAL Gtlu113 = Gtl111*gtu31 + Gtl112*gtu32 + Gtl113*gtu33;
+ CCTK_REAL Gtlu113 = Gtl111*gtu13 + Gtl112*gtu23 + Gtl113*gtu33;
- CCTK_REAL Gtlu121 = Gtl112*gtu11 + Gtl122*gtu21 + Gtl123*gtu31;
+ CCTK_REAL Gtlu121 = Gtl112*gtu11 + Gtl122*gtu12 + Gtl123*gtu13;
- CCTK_REAL Gtlu122 = Gtl112*gtu21 + Gtl122*gtu22 + Gtl123*gtu32;
+ CCTK_REAL Gtlu122 = Gtl112*gtu12 + Gtl122*gtu22 + Gtl123*gtu23;
- CCTK_REAL Gtlu123 = Gtl112*gtu31 + Gtl122*gtu32 + Gtl123*gtu33;
+ CCTK_REAL Gtlu123 = Gtl112*gtu13 + Gtl122*gtu23 + Gtl123*gtu33;
- CCTK_REAL Gtlu131 = Gtl113*gtu11 + Gtl123*gtu21 + Gtl133*gtu31;
+ CCTK_REAL Gtlu131 = Gtl113*gtu11 + Gtl123*gtu12 + Gtl133*gtu13;
- CCTK_REAL Gtlu132 = Gtl113*gtu21 + Gtl123*gtu22 + Gtl133*gtu32;
+ CCTK_REAL Gtlu132 = Gtl113*gtu12 + Gtl123*gtu22 + Gtl133*gtu23;
- CCTK_REAL Gtlu133 = Gtl113*gtu31 + Gtl123*gtu32 + Gtl133*gtu33;
+ CCTK_REAL Gtlu133 = Gtl113*gtu13 + Gtl123*gtu23 + Gtl133*gtu33;
- CCTK_REAL Gtlu211 = Gtl211*gtu11 + Gtl212*gtu21 + Gtl213*gtu31;
+ CCTK_REAL Gtlu211 = Gtl211*gtu11 + Gtl212*gtu12 + Gtl213*gtu13;
- CCTK_REAL Gtlu212 = Gtl211*gtu21 + Gtl212*gtu22 + Gtl213*gtu32;
+ CCTK_REAL Gtlu212 = Gtl211*gtu12 + Gtl212*gtu22 + Gtl213*gtu23;
- CCTK_REAL Gtlu213 = Gtl211*gtu31 + Gtl212*gtu32 + Gtl213*gtu33;
+ CCTK_REAL Gtlu213 = Gtl211*gtu13 + Gtl212*gtu23 + Gtl213*gtu33;
- CCTK_REAL Gtlu221 = Gtl212*gtu11 + Gtl222*gtu21 + Gtl223*gtu31;
+ CCTK_REAL Gtlu221 = Gtl212*gtu11 + Gtl222*gtu12 + Gtl223*gtu13;
- CCTK_REAL Gtlu222 = Gtl212*gtu21 + Gtl222*gtu22 + Gtl223*gtu32;
+ CCTK_REAL Gtlu222 = Gtl212*gtu12 + Gtl222*gtu22 + Gtl223*gtu23;
- CCTK_REAL Gtlu223 = Gtl212*gtu31 + Gtl222*gtu32 + Gtl223*gtu33;
+ CCTK_REAL Gtlu223 = Gtl212*gtu13 + Gtl222*gtu23 + Gtl223*gtu33;
- CCTK_REAL Gtlu231 = Gtl213*gtu11 + Gtl223*gtu21 + Gtl233*gtu31;
+ CCTK_REAL Gtlu231 = Gtl213*gtu11 + Gtl223*gtu12 + Gtl233*gtu13;
- CCTK_REAL Gtlu232 = Gtl213*gtu21 + Gtl223*gtu22 + Gtl233*gtu32;
+ CCTK_REAL Gtlu232 = Gtl213*gtu12 + Gtl223*gtu22 + Gtl233*gtu23;
- CCTK_REAL Gtlu233 = Gtl213*gtu31 + Gtl223*gtu32 + Gtl233*gtu33;
+ CCTK_REAL Gtlu233 = Gtl213*gtu13 + Gtl223*gtu23 + Gtl233*gtu33;
- CCTK_REAL Gtlu311 = Gtl311*gtu11 + Gtl312*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gtlu311 = Gtl311*gtu11 + Gtl312*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gtlu312 = Gtl311*gtu21 + Gtl312*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gtlu312 = Gtl311*gtu12 + Gtl312*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gtlu313 = Gtl311*gtu31 + Gtl312*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gtlu313 = Gtl311*gtu13 + Gtl312*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gtlu321 = Gtl312*gtu11 + Gtl322*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gtlu321 = Gtl312*gtu11 + Gtl322*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gtlu322 = Gtl312*gtu21 + Gtl322*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gtlu322 = Gtl312*gtu12 + Gtl322*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gtlu323 = Gtl312*gtu31 + Gtl322*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gtlu323 = Gtl312*gtu13 + Gtl322*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gtlu331 = Gtl313*gtu11 + Gtl323*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gtlu331 = Gtl313*gtu11 + Gtl323*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gtlu332 = Gtl313*gtu21 + Gtl323*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gtlu332 = Gtl313*gtu12 + Gtl323*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gtlu333 = Gtl313*gtu31 + Gtl323*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gtlu333 = Gtl313*gtu13 + Gtl323*gtu23 + Gtl333*gtu33;
- CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu21 + Gtl311*gtu31;
+ CCTK_REAL Gt111 = Gtl111*gtu11 + Gtl211*gtu12 + Gtl311*gtu13;
- CCTK_REAL Gt211 = Gtl111*gtu21 + Gtl211*gtu22 + Gtl311*gtu32;
+ CCTK_REAL Gt211 = Gtl111*gtu12 + Gtl211*gtu22 + Gtl311*gtu23;
- CCTK_REAL Gt311 = Gtl111*gtu31 + Gtl211*gtu32 + Gtl311*gtu33;
+ CCTK_REAL Gt311 = Gtl111*gtu13 + Gtl211*gtu23 + Gtl311*gtu33;
- CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu21 + Gtl312*gtu31;
+ CCTK_REAL Gt112 = Gtl112*gtu11 + Gtl212*gtu12 + Gtl312*gtu13;
- CCTK_REAL Gt212 = Gtl112*gtu21 + Gtl212*gtu22 + Gtl312*gtu32;
+ CCTK_REAL Gt212 = Gtl112*gtu12 + Gtl212*gtu22 + Gtl312*gtu23;
- CCTK_REAL Gt312 = Gtl112*gtu31 + Gtl212*gtu32 + Gtl312*gtu33;
+ CCTK_REAL Gt312 = Gtl112*gtu13 + Gtl212*gtu23 + Gtl312*gtu33;
- CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu21 + Gtl313*gtu31;
+ CCTK_REAL Gt113 = Gtl113*gtu11 + Gtl213*gtu12 + Gtl313*gtu13;
- CCTK_REAL Gt213 = Gtl113*gtu21 + Gtl213*gtu22 + Gtl313*gtu32;
+ CCTK_REAL Gt213 = Gtl113*gtu12 + Gtl213*gtu22 + Gtl313*gtu23;
- CCTK_REAL Gt313 = Gtl113*gtu31 + Gtl213*gtu32 + Gtl313*gtu33;
+ CCTK_REAL Gt313 = Gtl113*gtu13 + Gtl213*gtu23 + Gtl313*gtu33;
- CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu21 + Gtl322*gtu31;
+ CCTK_REAL Gt122 = Gtl122*gtu11 + Gtl222*gtu12 + Gtl322*gtu13;
- CCTK_REAL Gt222 = Gtl122*gtu21 + Gtl222*gtu22 + Gtl322*gtu32;
+ CCTK_REAL Gt222 = Gtl122*gtu12 + Gtl222*gtu22 + Gtl322*gtu23;
- CCTK_REAL Gt322 = Gtl122*gtu31 + Gtl222*gtu32 + Gtl322*gtu33;
+ CCTK_REAL Gt322 = Gtl122*gtu13 + Gtl222*gtu23 + Gtl322*gtu33;
- CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu21 + Gtl323*gtu31;
+ CCTK_REAL Gt123 = Gtl123*gtu11 + Gtl223*gtu12 + Gtl323*gtu13;
- CCTK_REAL Gt223 = Gtl123*gtu21 + Gtl223*gtu22 + Gtl323*gtu32;
+ CCTK_REAL Gt223 = Gtl123*gtu12 + Gtl223*gtu22 + Gtl323*gtu23;
- CCTK_REAL Gt323 = Gtl123*gtu31 + Gtl223*gtu32 + Gtl323*gtu33;
+ CCTK_REAL Gt323 = Gtl123*gtu13 + Gtl223*gtu23 + Gtl323*gtu33;
- CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu21 + Gtl333*gtu31;
+ CCTK_REAL Gt133 = Gtl133*gtu11 + Gtl233*gtu12 + Gtl333*gtu13;
- CCTK_REAL Gt233 = Gtl133*gtu21 + Gtl233*gtu22 + Gtl333*gtu32;
+ CCTK_REAL Gt233 = Gtl133*gtu12 + Gtl233*gtu22 + Gtl333*gtu23;
- CCTK_REAL Gt333 = Gtl133*gtu31 + Gtl233*gtu32 + Gtl333*gtu33;
+ CCTK_REAL Gt333 = Gtl133*gtu13 + Gtl233*gtu23 + Gtl333*gtu33;
- CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xtn1 = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xtn2 = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xtn3 = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL Rt11 = 3*(Gt111*Gtlu111 + Gt112*Gtlu112 + Gt113*Gtlu113) +
2*(Gt211*Gtlu121 + Gt212*Gtlu122 + Gt213*Gtlu123 + Gt311*Gtlu131 +
@@ -587,8 +599,8 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt213*Gtlu213 + Gt311*Gtlu311 + Gt312*Gtlu312 + Gt313*Gtlu313 +
gt11L*PDstandardNth1Xt1 + gt12L*PDstandardNth1Xt2 +
gt13L*PDstandardNth1Xt3 + khalf*(-(gtu11*PDstandardNth11gt11) -
- 2*gtu21*PDstandardNth12gt11 - 2*gtu31*PDstandardNth13gt11 -
- gtu22*PDstandardNth22gt11 - 2*gtu32*PDstandardNth23gt11 -
+ 2*gtu12*PDstandardNth12gt11 - 2*gtu13*PDstandardNth13gt11 -
+ gtu22*PDstandardNth22gt11 - 2*gtu23*PDstandardNth23gt11 -
gtu33*PDstandardNth33gt11) + Gtl111*Xtn1 + Gtl112*Xtn2 + Gtl113*Xtn3;
CCTK_REAL Rt12 = khalf*(4*(Gt211*Gtlu221 + Gt212*Gtlu222 +
@@ -598,10 +610,10 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt323*Gtlu133 + Gt111*Gtlu211 + Gt112*Gtlu212 + Gt113*Gtlu213 +
Gt311*Gtlu231 + Gt312*Gtlu232 + Gt313*Gtlu233 + Gt311*Gtlu321 +
Gt312*Gtlu322 + Gt313*Gtlu323) - gtu11*PDstandardNth11gt12 -
- 2*gtu21*PDstandardNth12gt12 - 2*gtu31*PDstandardNth13gt12 +
+ 2*gtu12*PDstandardNth12gt12 - 2*gtu13*PDstandardNth13gt12 +
gt12L*PDstandardNth1Xt1 + gt22L*PDstandardNth1Xt2 +
gt23L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt12 -
- 2*gtu32*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
+ 2*gtu23*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
gt12L*PDstandardNth2Xt2 + gt13L*PDstandardNth2Xt3 -
gtu33*PDstandardNth33gt12 + Gtl112*Xtn1 + Gtl211*Xtn1 + Gtl122*Xtn2 +
Gtl212*Xtn2 + Gtl123*Xtn3 + Gtl213*Xtn3);
@@ -613,10 +625,10 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt213*Gtlu233 + Gt111*Gtlu311 + Gt112*Gtlu312 + Gt113*Gtlu313 +
Gt211*Gtlu321 + Gt212*Gtlu322 + Gt213*Gtlu323) + 4*(Gt311*Gtlu331 +
Gt312*Gtlu332 + Gt313*Gtlu333) - gtu11*PDstandardNth11gt13 -
- 2*gtu21*PDstandardNth12gt13 - 2*gtu31*PDstandardNth13gt13 +
+ 2*gtu12*PDstandardNth12gt13 - 2*gtu13*PDstandardNth13gt13 +
gt13L*PDstandardNth1Xt1 + gt23L*PDstandardNth1Xt2 +
gt33L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt13 -
- 2*gtu32*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
+ 2*gtu23*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
gt11L*PDstandardNth3Xt1 + gt12L*PDstandardNth3Xt2 +
gt13L*PDstandardNth3Xt3 + Gtl113*Xtn1 + Gtl311*Xtn1 + Gtl123*Xtn2 +
Gtl312*Xtn2 + Gtl133*Xtn3 + Gtl313*Xtn3);
@@ -627,8 +639,8 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt323*Gtlu233) + Gt312*Gtlu321 + Gt322*Gtlu322 + Gt323*Gtlu323 +
gt12L*PDstandardNth2Xt1 + gt22L*PDstandardNth2Xt2 +
gt23L*PDstandardNth2Xt3 + khalf*(-(gtu11*PDstandardNth11gt22) -
- 2*gtu21*PDstandardNth12gt22 - 2*gtu31*PDstandardNth13gt22 -
- gtu22*PDstandardNth22gt22 - 2*gtu32*PDstandardNth23gt22 -
+ 2*gtu12*PDstandardNth12gt22 - 2*gtu13*PDstandardNth13gt22 -
+ gtu22*PDstandardNth22gt22 - 2*gtu23*PDstandardNth23gt22 -
gtu33*PDstandardNth33gt22) + Gtl212*Xtn1 + Gtl222*Xtn2 + Gtl223*Xtn3;
CCTK_REAL Rt23 = khalf*(2*(Gt112*Gtlu131 + Gt122*Gtlu132 +
@@ -638,8 +650,8 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt333*Gtlu233 + Gt112*Gtlu311 + Gt122*Gtlu312 + Gt123*Gtlu313 +
Gt212*Gtlu321 + Gt222*Gtlu322 + Gt223*Gtlu323) + 4*(Gt312*Gtlu331 +
Gt322*Gtlu332 + Gt323*Gtlu333) - gtu11*PDstandardNth11gt23 -
- 2*gtu21*PDstandardNth12gt23 - 2*gtu31*PDstandardNth13gt23 -
- gtu22*PDstandardNth22gt23 - 2*gtu32*PDstandardNth23gt23 +
+ 2*gtu12*PDstandardNth12gt23 - 2*gtu13*PDstandardNth13gt23 -
+ gtu22*PDstandardNth22gt23 - 2*gtu23*PDstandardNth23gt23 +
gt13L*PDstandardNth2Xt1 + gt23L*PDstandardNth2Xt2 +
gt33L*PDstandardNth2Xt3 - gtu33*PDstandardNth33gt23 +
gt12L*PDstandardNth3Xt1 + gt22L*PDstandardNth3Xt2 +
@@ -650,9 +662,9 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
2*Gtlu312) + Gt133*(Gtlu133 + 2*Gtlu313) + Gt213*(Gtlu231 + 2*Gtlu321)
+ Gt223*(Gtlu232 + 2*Gtlu322) + Gt233*(Gtlu233 + 2*Gtlu323) +
3*(Gt313*Gtlu331 + Gt323*Gtlu332 + Gt333*Gtlu333) +
- khalf*(-(gtu11*PDstandardNth11gt33) - 2*gtu21*PDstandardNth12gt33 -
- 2*gtu31*PDstandardNth13gt33 - gtu22*PDstandardNth22gt33 -
- 2*gtu32*PDstandardNth23gt33 - gtu33*PDstandardNth33gt33) +
+ khalf*(-(gtu11*PDstandardNth11gt33) - 2*gtu12*PDstandardNth12gt33 -
+ 2*gtu13*PDstandardNth13gt33 - gtu22*PDstandardNth22gt33 -
+ 2*gtu23*PDstandardNth23gt33 - gtu33*PDstandardNth33gt33) +
gt13L*PDstandardNth3Xt1 + gt23L*PDstandardNth3Xt2 +
gt33L*PDstandardNth3Xt3 + Gtl313*Xtn1 + Gtl323*Xtn2 + Gtl333*Xtn3;
@@ -691,58 +703,58 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt333*PDstandardNth3phi)) + fac2*SQR(PDstandardNth3phi);
CCTK_REAL Rphi11 = -2*(cdphi211 + 2*(-1 + gt11L*gtu11)*SQR(cdphi1) +
- gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu21 + cdphi3*gtu31) +
- cdphi2*cdphi3*gtu32) + cdphi233*gtu33 + gtu22*(cdphi222 +
- 2*SQR(cdphi2)) + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu12 + cdphi3*gtu13) +
+ cdphi2*cdphi3*gtu23) + cdphi233*gtu33 + gtu22*(cdphi222 +
+ 2*SQR(cdphi2)) + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu21)
- + 4*cdphi3*gt12L*gtu31) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu32
- + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu12)
+ + 4*cdphi3*gt12L*gtu13) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu23
+ + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2)) + gtu33*(cdphi233
+ 2*SQR(cdphi3))));
- CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu21 +
- cdphi3*(-2 + 4*gt13L*gtu31)) + gt13L*(cdphi211*gtu11 +
- 4*cdphi2*cdphi3*gtu32 + 2*(cdphi212*gtu21 + cdphi213*gtu31 +
- cdphi223*gtu32 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu12 +
+ cdphi3*(-2 + 4*gt13L*gtu13)) + gt13L*(cdphi211*gtu11 +
+ 4*cdphi2*cdphi3*gtu23 + 2*(cdphi212*gtu12 + cdphi213*gtu13 +
+ cdphi223*gtu23 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ gtu33*(cdphi233 + 2*SQR(cdphi3))));
CCTK_REAL Rphi22 = -2*(cdphi222 + 2*(-1 + gt22L*gtu22)*SQR(cdphi2) +
- gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu31 + cdphi2*(cdphi1*gtu21 +
- cdphi3*gtu32)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu13 + cdphi2*(cdphi1*gtu12 +
+ cdphi3*gtu23)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
+ 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu21 +
- cdphi3*(-2 + 4*gt23L*gtu32)) + gt23L*(cdphi222*gtu22 +
- 4*cdphi1*cdphi3*gtu31 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
- gtu22*SQR(cdphi2)) + gtu33*(cdphi233 + 2*SQR(cdphi3))));
+ CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu12 +
+ cdphi3*(-2 + 4*gt23L*gtu23)) + gt23L*(4*cdphi1*cdphi3*gtu13 +
+ cdphi222*gtu22 + gtu11*(cdphi211 + 2*SQR(cdphi1)) + 2*(cdphi212*gtu12 +
+ cdphi213*gtu13 + cdphi223*gtu23 + gtu22*SQR(cdphi2)) + gtu33*(cdphi233
+ + 2*SQR(cdphi3))));
CCTK_REAL Rphi33 = -2*(cdphi233 + gt33L*((4*cdphi1*cdphi2 +
- 2*cdphi212)*gtu21 + 4*cdphi3*(cdphi1*gtu31 + cdphi2*gtu32) +
- 2*(cdphi213*gtu31 + cdphi223*gtu32) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*cdphi212)*gtu12 + 4*cdphi3*(cdphi1*gtu13 + cdphi2*gtu23) +
+ 2*(cdphi213*gtu13 + cdphi223*gtu23) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))) + 2*(-1 +
gt33L*gtu33)*SQR(cdphi3));
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
CCTK_REAL e4phi = IfThen(conformalMethod,pow(phiL,-2),exp(4*phiL));
@@ -762,13 +774,13 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -784,8 +796,8 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL R33 = Rphi33 + Rt33;
- CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu21 +
- eTxzL*gtu31 + eTyzL*gtu32) + eTzzL*gtu33);
+ CCTK_REAL trS = em4phi*(eTxxL*gtu11 + eTyyL*gtu22 + 2*(eTxyL*gtu12 +
+ eTxzL*gtu13 + eTyzL*gtu23) + eTzzL*gtu33);
CCTK_REAL Ats11 = -PDstandardNth11alpha + (4*cdphi1 +
Gt111)*PDstandardNth1alpha + Gt211*PDstandardNth2alpha +
@@ -811,8 +823,8 @@ void ML_BSSN_O8_RHS2_Body(cGH const * restrict const cctkGH, int const dir, int
Gt233*PDstandardNth2alpha - PDstandardNth33alpha + (4*cdphi3 +
Gt333)*PDstandardNth3alpha + alphaL*R33;
- CCTK_REAL trAts = Ats11*gu11 + Ats22*gu22 + 2*(Ats12*gu21 + Ats13*gu31
- + Ats23*gu32) + Ats33*gu33;
+ CCTK_REAL trAts = Ats11*gu11 + Ats22*gu22 + 2*(Ats12*gu12 + Ats13*gu13
+ + Ats23*gu23) + Ats33*gu33;
CCTK_REAL At11rhsL = -2.*alphaL*(At11L*Atm11 + At12L*Atm21 +
At13L*Atm31) + epsdiss1*PDdissipationNth1At11 +
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHSRadiativeBoundary.c b/ML_BSSN_O8/src/ML_BSSN_O8_RHSRadiativeBoundary.c
index 008c907..22de0f5 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_RHSRadiativeBoundary.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHSRadiativeBoundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_RHSRadiativeBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_O8_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -137,13 +173,13 @@ void ML_BSSN_O8_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
@@ -151,13 +187,13 @@ void ML_BSSN_O8_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -167,11 +203,11 @@ void ML_BSSN_O8_RHSRadiativeBoundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL nn3 = normal[2];
- CCTK_REAL nu1 = gu11*nn1 + gu21*nn2 + gu31*nn3;
+ CCTK_REAL nu1 = gu11*nn1 + gu12*nn2 + gu13*nn3;
- CCTK_REAL nu2 = gu21*nn1 + gu22*nn2 + gu32*nn3;
+ CCTK_REAL nu2 = gu12*nn1 + gu22*nn2 + gu23*nn3;
- CCTK_REAL nu3 = gu31*nn1 + gu32*nn2 + gu33*nn3;
+ CCTK_REAL nu3 = gu13*nn1 + gu23*nn2 + gu33*nn3;
CCTK_REAL nlen2 = nn1*nu1 + nn2*nu2 + nn3*nu3;
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.c b/ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.c
index 985796d..eb5f955 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_RHSStaticBoundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_RHSStaticBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_curvrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtlapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtlapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtshiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtshiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Gammarhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Gammarhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_lapserhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_lapserhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_log_confacrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_log_confacrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_metricrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_metricrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shiftrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shiftrhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curvrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curvrhs.");
+ return;
+}
+
void ML_BSSN_O8_RHSStaticBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_boundary.c b/ML_BSSN_O8/src/ML_BSSN_O8_boundary.c
index 0e28597..95e3140 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_boundary.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_boundary.c
@@ -20,6 +20,42 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_curv.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtshift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_lapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_lapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_log_confac","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_log_confac.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_metric","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_metric.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_shift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_shift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_trace_curv","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_trace_curv.");
+ return;
+}
+
void ML_BSSN_O8_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_constraints.c b/ML_BSSN_O8/src/ML_BSSN_O8_constraints.c
index fb000ba..2754c33 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_constraints.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_constraints.c
@@ -20,6 +20,30 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_constraints_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_cons_detg","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_cons_detg.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_cons_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_cons_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_cons_traceA","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_cons_traceA.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_mom.");
+ return;
+}
+
void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -323,151 +347,151 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
CCTK_REAL Gt111 = khalf*(gtu11*PDstandardNth1gt11 +
- 2*(gtu21*PDstandardNth1gt12 + gtu31*PDstandardNth1gt13) -
- gtu21*PDstandardNth2gt11 - gtu31*PDstandardNth3gt11);
+ 2*(gtu12*PDstandardNth1gt12 + gtu13*PDstandardNth1gt13) -
+ gtu12*PDstandardNth2gt11 - gtu13*PDstandardNth3gt11);
- CCTK_REAL Gt211 = khalf*(gtu21*PDstandardNth1gt11 +
- 2*(gtu22*PDstandardNth1gt12 + gtu32*PDstandardNth1gt13) -
- gtu22*PDstandardNth2gt11 - gtu32*PDstandardNth3gt11);
+ CCTK_REAL Gt211 = khalf*(gtu12*PDstandardNth1gt11 +
+ 2*(gtu22*PDstandardNth1gt12 + gtu23*PDstandardNth1gt13) -
+ gtu22*PDstandardNth2gt11 - gtu23*PDstandardNth3gt11);
- CCTK_REAL Gt311 = khalf*(gtu31*PDstandardNth1gt11 +
- 2*(gtu32*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
- gtu32*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
+ CCTK_REAL Gt311 = khalf*(gtu13*PDstandardNth1gt11 +
+ 2*(gtu23*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
+ gtu23*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
- CCTK_REAL Gt112 = khalf*(gtu21*PDstandardNth1gt22 +
- gtu11*PDstandardNth2gt11 + gtu31*(PDstandardNth1gt23 +
+ CCTK_REAL Gt112 = khalf*(gtu12*PDstandardNth1gt22 +
+ gtu11*PDstandardNth2gt11 + gtu13*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
CCTK_REAL Gt212 = khalf*(gtu22*PDstandardNth1gt22 +
- gtu21*PDstandardNth2gt11 + gtu32*(PDstandardNth1gt23 +
+ gtu12*PDstandardNth2gt11 + gtu23*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt312 = khalf*(gtu32*PDstandardNth1gt22 +
- gtu31*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
+ CCTK_REAL Gt312 = khalf*(gtu23*PDstandardNth1gt22 +
+ gtu13*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt113 = khalf*(gtu31*PDstandardNth1gt33 +
- gtu11*PDstandardNth3gt11 + gtu21*(PDstandardNth1gt23 -
+ CCTK_REAL Gt113 = khalf*(gtu13*PDstandardNth1gt33 +
+ gtu11*PDstandardNth3gt11 + gtu12*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
- CCTK_REAL Gt213 = khalf*(gtu32*PDstandardNth1gt33 +
- gtu21*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
+ CCTK_REAL Gt213 = khalf*(gtu23*PDstandardNth1gt33 +
+ gtu12*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt313 = khalf*(gtu33*PDstandardNth1gt33 +
- gtu31*PDstandardNth3gt11 + gtu32*(PDstandardNth1gt23 -
+ gtu13*PDstandardNth3gt11 + gtu23*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt122 = khalf*(gtu11*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu21*PDstandardNth2gt22 +
- gtu31*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ 2*PDstandardNth2gt12) + gtu12*PDstandardNth2gt22 +
+ gtu13*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt222 = khalf*(gtu21*(-PDstandardNth1gt22 +
+ CCTK_REAL Gt222 = khalf*(gtu12*(-PDstandardNth1gt22 +
2*PDstandardNth2gt12) + gtu22*PDstandardNth2gt22 +
- gtu32*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ gtu23*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt322 = khalf*(gtu31*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu32*PDstandardNth2gt22 +
+ CCTK_REAL Gt322 = khalf*(gtu13*(-PDstandardNth1gt22 +
+ 2*PDstandardNth2gt12) + gtu23*PDstandardNth2gt22 +
gtu33*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt123 = khalf*(gtu31*PDstandardNth2gt33 +
+ CCTK_REAL Gt123 = khalf*(gtu13*PDstandardNth2gt33 +
gtu11*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu21*PDstandardNth3gt22);
+ gtu12*PDstandardNth3gt22);
- CCTK_REAL Gt223 = khalf*(gtu32*PDstandardNth2gt33 +
- gtu21*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ CCTK_REAL Gt223 = khalf*(gtu23*PDstandardNth2gt33 +
+ gtu12*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
gtu22*PDstandardNth3gt22);
CCTK_REAL Gt323 = khalf*(gtu33*PDstandardNth2gt33 +
- gtu31*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu32*PDstandardNth3gt22);
+ gtu13*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ gtu23*PDstandardNth3gt22);
CCTK_REAL Gt133 = khalf*(-(gtu11*PDstandardNth1gt33) -
- gtu21*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
- 2*gtu21*PDstandardNth3gt23 + gtu31*PDstandardNth3gt33);
+ gtu12*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
+ 2*gtu12*PDstandardNth3gt23 + gtu13*PDstandardNth3gt33);
- CCTK_REAL Gt233 = khalf*(-(gtu21*PDstandardNth1gt33) -
- gtu22*PDstandardNth2gt33 + 2*gtu21*PDstandardNth3gt13 +
- 2*gtu22*PDstandardNth3gt23 + gtu32*PDstandardNth3gt33);
+ CCTK_REAL Gt233 = khalf*(-(gtu12*PDstandardNth1gt33) -
+ gtu22*PDstandardNth2gt33 + 2*gtu12*PDstandardNth3gt13 +
+ 2*gtu22*PDstandardNth3gt23 + gtu23*PDstandardNth3gt33);
- CCTK_REAL Gt333 = khalf*(-(gtu31*PDstandardNth1gt33) -
- gtu32*PDstandardNth2gt33 + 2*gtu31*PDstandardNth3gt13 +
- 2*gtu32*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
+ CCTK_REAL Gt333 = khalf*(-(gtu13*PDstandardNth1gt33) -
+ gtu23*PDstandardNth2gt33 + 2*gtu13*PDstandardNth3gt13 +
+ 2*gtu23*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
CCTK_REAL Rt11 = -(gtu11*khalf*PDstandardNth11gt11) +
- gtu21*(2*Gt211*Gt212*gt22L + 4*Gt112*gt13L*Gt311 + 2*Gt113*gt11L*Gt312
+ gtu12*(2*Gt211*Gt212*gt22L + 4*Gt112*gt13L*Gt311 + 2*Gt113*gt11L*Gt312
+ 2*gt13L*Gt312*Gt313 + 2*gt13L*Gt211*Gt322 + 2*gt13L*Gt311*Gt323 +
- 2*Gt311*Gt312*gt33L - PDstandardNth12gt11) - gtu31*PDstandardNth13gt11
- + gt11L*PDstandardNth1Xt1 + gt12L*(4*Gt111*Gt212*gtu21 +
- 2*Gt211*Gt222*gtu21 + 2*Gt212*Gt222*gtu22 + 4*Gt113*Gt211*gtu31 +
- 4*Gt113*Gt212*gtu32 + 4*Gt113*Gt213*gtu33 + PDstandardNth1Xt2) +
- gt13L*(4*Gt111*Gt312*gtu21 + 2*Gt212*Gt312*gtu21 + 4*Gt112*Gt312*gtu22
- + 4*Gt113*Gt311*gtu31 + 4*Gt113*Gt312*gtu32 + 4*Gt113*Gt313*gtu33 +
+ 2*Gt311*Gt312*gt33L - PDstandardNth12gt11) - gtu13*PDstandardNth13gt11
+ + gt11L*PDstandardNth1Xt1 + gt12L*(4*Gt111*Gt212*gtu12 +
+ 2*Gt211*Gt222*gtu12 + 4*Gt113*Gt211*gtu13 + 4*Gt112*Gt212*gtu22 +
+ 4*Gt113*Gt212*gtu23 + 4*Gt113*Gt213*gtu33 + PDstandardNth1Xt2) +
+ gt13L*(4*Gt111*Gt312*gtu12 + 2*Gt212*Gt312*gtu12 + 4*Gt113*Gt311*gtu13
+ + 2*Gt212*Gt322*gtu22 + 4*Gt113*Gt312*gtu23 + 4*Gt113*Gt313*gtu33 +
PDstandardNth1Xt3) - gtu22*khalf*PDstandardNth22gt11 -
- gtu32*PDstandardNth23gt11 - gtu33*khalf*PDstandardNth33gt11 +
- Gt111*(6*Gt113*gt11L*gtu31 + 4*gt12L*Gt213*gtu31 + gt11L*Xt1L) +
- Gt211*(2*Gt112*gt11L*gtu11 + 4*Gt111*gt12L*gtu11 + 2*gt11L*Gt122*gtu21
- + 2*gt11L*Gt123*gtu31 + gt12L*Xt1L) + Gt311*(4*Gt111*gt13L*gtu11 +
- 2*gt12L*Gt213*gtu11 + 2*gt13L*Gt313*gtu11 + 2*gt11L*Gt123*gtu21 +
- 2*gt11L*Gt133*gtu31 + gt13L*Xt1L) + gt12L*Gt212*Xt2L + gt13L*Gt312*Xt2L
- + Gt112*(6*Gt111*gt11L*gtu21 + 4*gt12L*Gt211*gtu21 +
- 4*gt12L*Gt212*gtu22 + 2*gt11L*Gt213*gtu31 + 6*Gt113*gt11L*gtu32 +
- gt11L*Xt2L) + Gt113*gt11L*Xt3L + Gt213*(2*gt11L*Gt122*gtu32 +
- 4*Gt112*gt12L*gtu32 + 2*gt11L*Gt123*gtu33 + gt12L*Xt3L) +
- Gt313*(4*Gt111*gt13L*gtu31 + 2*gt12L*Gt213*gtu31 + 2*gt11L*Gt123*gtu32
- + 4*Gt112*gt13L*gtu32 + 2*gt12L*Gt223*gtu32 + 2*gt11L*Gt133*gtu33 +
+ gtu23*PDstandardNth23gt11 - gtu33*khalf*PDstandardNth33gt11 +
+ Gt111*(6*Gt113*gt11L*gtu13 + 4*gt12L*Gt213*gtu13 + gt11L*Xt1L) +
+ Gt211*(2*Gt112*gt11L*gtu11 + 4*Gt111*gt12L*gtu11 + 2*gt11L*Gt122*gtu12
+ + 2*gt11L*Gt123*gtu13 + gt12L*Xt1L) + Gt311*(4*Gt111*gt13L*gtu11 +
+ 2*gt12L*Gt213*gtu11 + 2*gt13L*Gt313*gtu11 + 2*gt11L*Gt123*gtu12 +
+ 2*gt11L*Gt133*gtu13 + gt13L*Xt1L) + gt12L*Gt212*Xt2L + gt13L*Gt312*Xt2L
+ + Gt112*(6*Gt111*gt11L*gtu12 + 4*gt12L*Gt211*gtu12 +
+ 2*gt11L*Gt213*gtu13 + 4*gt13L*Gt312*gtu22 + 6*Gt113*gt11L*gtu23 +
+ gt11L*Xt2L) + Gt113*gt11L*Xt3L + Gt213*(2*gt11L*Gt122*gtu23 +
+ 4*Gt112*gt12L*gtu23 + 2*gt11L*Gt123*gtu33 + gt12L*Xt3L) +
+ Gt313*(4*Gt111*gt13L*gtu13 + 2*gt12L*Gt213*gtu13 + 2*gt11L*Gt123*gtu23
+ + 4*Gt112*gt13L*gtu23 + 2*gt12L*Gt223*gtu23 + 2*gt11L*Gt133*gtu33 +
gt13L*Xt3L) + 3*gt11L*gtu11*SQR(Gt111) + 3*gt11L*gtu22*SQR(Gt112) +
3*gt11L*gtu33*SQR(Gt113) + gt22L*gtu11*SQR(Gt211) +
gt22L*gtu22*SQR(Gt212) + 2*(gt12L*Gt211*Gt212*gtu11 +
Gt113*gt11L*Gt311*gtu11 + Gt211*gt23L*Gt311*gtu11 +
- gt13L*Gt211*Gt312*gtu11 + Gt112*gt11L*Gt212*gtu21 +
- gt12L*Gt223*Gt311*gtu21 + Gt212*gt23L*Gt311*gtu21 +
- gt12L*Gt213*Gt312*gtu21 + Gt211*gt23L*Gt312*gtu21 +
- gt11L*Gt122*Gt212*gtu22 + gt11L*Gt123*Gt312*gtu22 +
+ gt13L*Gt211*Gt312*gtu11 + Gt112*gt11L*Gt212*gtu12 +
+ gt12L*Gt223*Gt311*gtu12 + Gt212*gt23L*Gt311*gtu12 +
+ gt12L*Gt213*Gt312*gtu12 + Gt211*gt23L*Gt312*gtu12 +
+ gt12L*Gt212*Gt213*gtu13 + gt12L*Gt211*Gt223*gtu13 +
+ Gt211*Gt213*gt22L*gtu13 + gt12L*Gt233*Gt311*gtu13 +
+ Gt213*gt23L*Gt311*gtu13 + gt13L*Gt213*Gt312*gtu13 +
+ Gt113*gt11L*Gt313*gtu13 + Gt211*gt23L*Gt313*gtu13 +
+ gt13L*Gt211*Gt323*gtu13 + gt13L*Gt311*Gt333*gtu13 +
+ Gt311*Gt313*gt33L*gtu13 + gt11L*Gt122*Gt212*gtu22 +
+ gt12L*Gt212*Gt222*gtu22 + gt11L*Gt123*Gt312*gtu22 +
gt12L*Gt223*Gt312*gtu22 + Gt212*gt23L*Gt312*gtu22 +
- gt13L*Gt212*Gt322*gtu22 + gt13L*Gt312*Gt323*gtu22 +
- gt12L*Gt212*Gt213*gtu31 + gt12L*Gt211*Gt223*gtu31 +
- Gt211*Gt213*gt22L*gtu31 + gt12L*Gt233*Gt311*gtu31 +
- Gt213*gt23L*Gt311*gtu31 + gt13L*Gt213*Gt312*gtu31 +
- Gt113*gt11L*Gt313*gtu31 + Gt211*gt23L*Gt313*gtu31 +
- gt13L*Gt211*Gt323*gtu31 + gt13L*Gt311*Gt333*gtu31 +
- Gt311*Gt313*gt33L*gtu31 + gt11L*Gt123*Gt212*gtu32 +
- gt12L*Gt213*Gt222*gtu32 + gt12L*Gt212*Gt223*gtu32 +
- Gt212*Gt213*gt22L*gtu32 + gt11L*Gt133*Gt312*gtu32 +
- gt12L*Gt233*Gt312*gtu32 + Gt213*gt23L*Gt312*gtu32 +
- Gt212*gt23L*Gt313*gtu32 + gt13L*Gt213*Gt322*gtu32 +
- gt13L*Gt212*Gt323*gtu32 + gt13L*Gt313*Gt323*gtu32 +
- gt13L*Gt312*Gt333*gtu32 + Gt312*Gt313*gt33L*gtu32 +
+ gt13L*Gt312*Gt323*gtu22 + gt11L*Gt123*Gt212*gtu23 +
+ gt12L*Gt213*Gt222*gtu23 + gt12L*Gt212*Gt223*gtu23 +
+ Gt212*Gt213*gt22L*gtu23 + gt11L*Gt133*Gt312*gtu23 +
+ gt12L*Gt233*Gt312*gtu23 + Gt213*gt23L*Gt312*gtu23 +
+ Gt212*gt23L*Gt313*gtu23 + gt13L*Gt213*Gt322*gtu23 +
+ gt13L*Gt212*Gt323*gtu23 + gt13L*Gt313*Gt323*gtu23 +
+ gt13L*Gt312*Gt333*gtu23 + Gt312*Gt313*gt33L*gtu23 +
gt12L*Gt213*Gt223*gtu33 + gt12L*Gt233*Gt313*gtu33 +
Gt213*gt23L*Gt313*gtu33 + gt13L*Gt213*Gt323*gtu33 +
- gt13L*Gt313*Gt333*gtu33 + gt12L*gtu21*SQR(Gt212)) +
+ gt13L*Gt313*Gt333*gtu33 + gt12L*gtu12*SQR(Gt212)) +
gt22L*gtu33*SQR(Gt213) + gt33L*gtu11*SQR(Gt311) +
- gt33L*gtu22*SQR(Gt312) + 2*gt13L*gtu31*SQR(Gt313) +
+ gt33L*gtu22*SQR(Gt312) + 2*gt13L*gtu13*SQR(Gt313) +
gt33L*gtu33*SQR(Gt313);
CCTK_REAL Rt12 = khalf*(-(gtu11*PDstandardNth11gt12) -
- 2*gtu21*PDstandardNth12gt12 - 2*gtu31*PDstandardNth13gt12 +
+ 2*gtu12*PDstandardNth12gt12 - 2*gtu13*PDstandardNth13gt12 +
gt12L*PDstandardNth1Xt1 + gt22L*PDstandardNth1Xt2 +
gt23L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt12 -
- 2*gtu32*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
+ 2*gtu23*PDstandardNth23gt12 + gt11L*PDstandardNth2Xt1 +
gt12L*PDstandardNth2Xt2 + gt13L*PDstandardNth2Xt3 -
gtu33*PDstandardNth33gt12 + (Gt111*gt12L + Gt211*gt22L +
gt23L*Gt311)*Xt1L + (Gt112*gt11L + gt12L*Gt212 + gt13L*Gt312)*Xt1L +
(Gt112*gt12L + Gt212*gt22L + gt23L*Gt312)*Xt2L + (gt11L*Gt122 +
gt12L*Gt222 + gt13L*Gt322)*Xt2L + (Gt113*gt12L + Gt213*gt22L +
gt23L*Gt313)*Xt3L + (gt11L*Gt123 + gt12L*Gt223 + gt13L*Gt323)*Xt3L +
- 2*gtu21*(Gt112*gt11L*Gt222 + Gt112*Gt211*gt22L + Gt211*Gt222*gt22L +
+ 2*gtu12*(Gt112*gt11L*Gt222 + Gt112*Gt211*gt22L + Gt211*Gt222*gt22L +
2*Gt122*gt13L*Gt311 + Gt112*gt23L*Gt311 + Gt222*gt23L*Gt311 +
gt13L*Gt222*Gt312 + Gt213*gt22L*Gt312 + Gt212*gt23L*Gt312 +
gt23L*Gt312*Gt313 + Gt113*gt11L*Gt322 + Gt211*gt23L*Gt322 +
@@ -481,14 +505,14 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt123*Gt212 + Gt133*Gt312) + 2*Gt112*gt13L*Gt313 + Gt212*gt23L*Gt313 +
Gt111*(Gt113*gt12L + Gt213*gt22L + gt23L*Gt313) + gt13L*Gt212*Gt323 +
Gt211*gt23L*Gt323 + gt23L*Gt311*Gt333 + gt13L*Gt312*Gt333 +
- Gt312*Gt313*gt33L)*gtu31 + (Gt123*gt12L*Gt212 + 2*Gt122*gt12L*Gt213 +
+ Gt312*Gt313*gt33L)*gtu13 + (Gt123*gt12L*Gt212 + 2*Gt122*gt12L*Gt213 +
Gt113*gt12L*Gt222 + gt12L*Gt222*Gt223 + Gt213*Gt222*gt22L +
Gt212*Gt223*gt22L + gt12L*Gt133*Gt312 + gt22L*Gt233*Gt312 +
2*Gt122*gt13L*Gt313 + Gt222*gt23L*Gt313 + Gt112*(Gt113*gt12L +
Gt213*gt22L + gt23L*Gt313) + Gt113*gt13L*Gt322 + gt12L*Gt233*Gt322 +
Gt213*gt23L*Gt322 + gt11L*(2*Gt113*Gt122 + Gt123*Gt222 + Gt133*Gt322) +
gt13L*Gt222*Gt323 + Gt212*gt23L*Gt323 + gt23L*Gt312*Gt333 +
- gt13L*Gt322*Gt333 + Gt313*Gt322*gt33L)*gtu32 +
+ gt13L*Gt322*Gt333 + Gt313*Gt322*gt33L)*gtu23 +
gtu11*(3*Gt112*gt12L*Gt211 + 2*Gt211*Gt212*gt22L + Gt113*gt12L*Gt311 +
2*Gt112*gt13L*Gt311 + Gt213*gt22L*Gt311 + Gt212*gt23L*Gt311 +
gt13L*Gt212*Gt312 + gt12L*Gt213*Gt312 + 2*Gt211*gt23L*Gt312 +
@@ -507,21 +531,21 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
2*Gt213*gt23L*Gt323 + Gt113*(2*gt11L*Gt123 + gt12L*Gt223 + Gt213*gt22L
+ gt23L*Gt313 + gt13L*Gt323) + gt23L*Gt313*Gt333 + gt13L*Gt323*Gt333 +
Gt313*Gt323*gt33L + gt12L*SQR(Gt113) + gt12L*(3*Gt123*Gt213 +
- Gt133*Gt313 + Gt233*Gt323 + SQR(Gt223))) + 2*gtu21*(Gt122*gt12L*Gt211 +
+ Gt133*Gt313 + Gt233*Gt323 + SQR(Gt223))) + 2*gtu12*(Gt122*gt12L*Gt211 +
3*Gt112*gt12L*Gt212 + gt12L*Gt212*Gt222 + Gt211*Gt222*gt22L +
Gt123*gt12L*Gt311 + Gt223*gt22L*Gt311 + 3*Gt112*gt13L*Gt312 +
gt12L*Gt223*Gt312 + 2*Gt212*gt23L*Gt312 + Gt111*(Gt112*gt12L +
Gt212*gt22L + gt23L*Gt312) + gt13L*Gt212*Gt322 + Gt211*gt23L*Gt322 +
gt23L*Gt311*Gt323 + gt13L*Gt312*Gt323 + gt11L*(Gt122*Gt212 +
Gt123*Gt312 + 2*SQR(Gt112)) + gt22L*SQR(Gt212) + gt33L*SQR(Gt312)) +
- 2*gtu31*(Gt112*gt11L*Gt223 + Gt113*Gt211*gt22L + Gt212*Gt213*gt22L +
+ 2*gtu13*(Gt112*gt11L*Gt223 + Gt113*Gt211*gt22L + Gt212*Gt213*gt22L +
Gt211*Gt223*gt22L + 2*Gt123*gt13L*Gt311 + Gt113*gt23L*Gt311 +
Gt223*gt23L*Gt311 + gt13L*Gt223*Gt312 + Gt213*gt23L*Gt312 +
Gt213*gt22L*Gt313 + Gt113*gt11L*Gt323 + Gt211*gt23L*Gt323 +
gt13L*Gt313*Gt323 + Gt111*(2*gt11L*Gt123 + Gt113*gt12L + gt12L*Gt223 +
gt13L*Gt323) + gt12L*(2*Gt123*Gt211 + Gt112*Gt213 + Gt212*Gt223 +
Gt113*Gt313 + Gt213*Gt323) + Gt311*Gt323*gt33L + gt23L*SQR(Gt313)) +
- 2*gtu32*(gt11L*Gt122*Gt223 + Gt113*Gt212*gt22L + Gt213*Gt222*gt22L +
+ 2*gtu23*(gt11L*Gt122*Gt223 + Gt113*Gt212*gt22L + Gt213*Gt222*gt22L +
Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312 + Gt113*gt23L*Gt312 +
Gt223*gt23L*Gt312 + Gt223*gt22L*Gt313 + gt13L*Gt223*Gt322 +
Gt213*gt23L*Gt322 + gt11L*Gt123*Gt323 + Gt212*gt23L*Gt323 +
@@ -530,10 +554,10 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt223*(Gt222 + Gt323)) + Gt312*Gt323*gt33L + gt13L*SQR(Gt323)));
CCTK_REAL Rt13 = khalf*(-(gtu11*PDstandardNth11gt13) -
- 2*gtu21*PDstandardNth12gt13 - 2*gtu31*PDstandardNth13gt13 +
+ 2*gtu12*PDstandardNth12gt13 - 2*gtu13*PDstandardNth13gt13 +
gt13L*PDstandardNth1Xt1 + gt23L*PDstandardNth1Xt2 +
gt33L*PDstandardNth1Xt3 - gtu22*PDstandardNth22gt13 -
- 2*gtu32*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
+ 2*gtu23*PDstandardNth23gt13 - gtu33*PDstandardNth33gt13 +
gt11L*PDstandardNth3Xt1 + gt12L*PDstandardNth3Xt2 +
gt13L*PDstandardNth3Xt3 + (Gt113*gt11L + gt12L*Gt213 +
gt13L*Gt313)*Xt1L + (Gt111*gt13L + Gt211*gt23L + Gt311*gt33L)*Xt1L +
@@ -547,22 +571,22 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt212*gt23L*Gt313 + gt11L*(2*Gt112*Gt113 + Gt122*Gt213 + Gt123*Gt313) +
gt13L*Gt213*Gt322 + gt13L*Gt313*Gt323 + Gt312*Gt313*gt33L +
Gt211*Gt322*gt33L + Gt311*Gt323*gt33L + Gt111*(Gt112*gt13L +
- Gt212*gt23L + Gt312*gt33L))*gtu21 + (Gt122*gt13L*Gt213 +
+ Gt212*gt23L + Gt312*gt33L))*gtu12 + (Gt122*gt13L*Gt213 +
gt11L*Gt122*Gt233 + Gt212*gt22L*Gt233 + Gt113*Gt212*gt23L +
Gt213*Gt222*gt23L + 2*Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 +
Gt123*gt13L*Gt313 + Gt223*gt23L*Gt313 + gt13L*Gt233*Gt322 +
gt11L*Gt123*Gt333 + Gt212*gt23L*Gt333 + gt13L*Gt323*Gt333 +
Gt112*(2*gt11L*Gt133 + Gt113*gt13L + gt12L*Gt233 + gt13L*Gt333) +
gt12L*(2*Gt133*Gt212 + Gt222*Gt233 + Gt223*Gt333) + Gt113*Gt312*gt33L +
- Gt213*Gt322*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu32 +
- gtu21*(2*Gt123*gt12L*Gt211 + Gt112*gt13L*Gt212 + gt12L*Gt212*Gt223 +
+ Gt213*Gt322*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu23 +
+ gtu12*(2*Gt123*gt12L*Gt211 + Gt112*gt13L*Gt212 + gt12L*Gt212*Gt223 +
Gt211*Gt223*gt22L + Gt112*Gt211*gt23L + 2*Gt123*gt13L*Gt311 +
Gt223*gt23L*Gt311 + Gt113*gt13L*Gt312 + gt13L*Gt223*Gt312 +
Gt213*gt23L*Gt312 + gt12L*Gt213*Gt323 + Gt211*gt23L*Gt323 +
gt13L*Gt313*Gt323 + gt11L*(2*Gt111*Gt123 + Gt112*Gt223 + Gt113*Gt323) +
Gt111*(Gt112*gt13L + gt12L*Gt223 + gt13L*Gt323) + Gt112*Gt311*gt33L +
Gt212*Gt312*gt33L + Gt312*Gt313*gt33L + Gt311*Gt323*gt33L +
- gt23L*SQR(Gt212))) + 2*gtu32*(Gt123*gt13L*Gt212 + 2*Gt123*gt12L*Gt213 +
+ gt23L*SQR(Gt212))) + 2*gtu23*(Gt123*gt13L*Gt212 + 2*Gt123*gt12L*Gt213 +
Gt113*gt12L*Gt223 + Gt213*Gt223*gt22L + Gt212*Gt223*gt23L +
Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 + 2*Gt123*gt13L*Gt313 +
Gt223*gt23L*Gt313 + Gt113*gt13L*Gt323 + gt13L*Gt223*Gt323 +
@@ -576,14 +600,14 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt211*gt23L*Gt313 + gt11L*(2*Gt111*Gt113 + Gt112*Gt213 + Gt113*Gt313) +
Gt211*Gt312*gt33L + 2*Gt311*Gt313*gt33L + Gt111*(gt12L*Gt213 +
Gt211*gt23L + gt13L*Gt313 + Gt311*gt33L) + gt13L*SQR(Gt111) +
- gt13L*SQR(Gt313)) + 2*gtu31*(Gt112*gt13L*Gt213 + Gt112*gt11L*Gt233 +
+ gt13L*SQR(Gt313)) + 2*gtu13*(Gt112*gt13L*Gt213 + Gt112*gt11L*Gt233 +
Gt211*gt22L*Gt233 + Gt113*Gt211*gt23L + Gt212*Gt213*gt23L +
2*Gt133*gt13L*Gt311 + Gt233*gt23L*Gt311 + gt13L*Gt233*Gt312 +
Gt113*gt13L*Gt313 + Gt213*gt23L*Gt313 + Gt113*gt11L*Gt333 +
Gt211*gt23L*Gt333 + gt13L*Gt313*Gt333 + Gt111*(2*gt11L*Gt133 +
Gt113*gt13L + gt12L*Gt233 + gt13L*Gt333) + gt12L*(2*Gt133*Gt211 +
Gt212*Gt233 + Gt213*Gt333) + Gt113*Gt311*gt33L + Gt213*Gt312*gt33L +
- Gt311*Gt333*gt33L + gt33L*SQR(Gt313)) + 2*gtu31*(Gt123*gt13L*Gt211 +
+ Gt311*Gt333*gt33L + gt33L*SQR(Gt313)) + 2*gtu13*(Gt123*gt13L*Gt211 +
3*Gt113*gt12L*Gt213 + gt12L*Gt213*Gt223 + Gt211*Gt223*gt23L +
Gt133*gt13L*Gt311 + Gt233*gt23L*Gt311 + 3*Gt113*gt13L*Gt313 +
gt12L*Gt233*Gt313 + 2*Gt213*gt23L*Gt313 + gt13L*Gt213*Gt323 +
@@ -604,58 +628,58 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt113*(2*gt11L*Gt133 + gt12L*Gt233 + Gt213*gt23L + gt13L*Gt333 +
Gt313*gt33L) + gt13L*SQR(Gt113) + gt13L*SQR(Gt333)));
- CCTK_REAL Rt22 = 4*(Gt122*gt12L*Gt212*gtu21 + Gt112*gt12L*Gt222*gtu21
- + Gt122*gt12L*Gt222*gtu22 + Gt123*gt12L*Gt212*gtu31 +
- Gt123*gt12L*Gt222*gtu32 + Gt123*gt12L*Gt223*gtu33) -
- gtu11*khalf*PDstandardNth11gt22 + gtu21*(6*Gt212*Gt222*gt22L +
+ CCTK_REAL Rt22 = 4*(Gt122*gt12L*Gt212*gtu12 + Gt112*gt12L*Gt222*gtu12
+ + Gt123*gt12L*Gt212*gtu13 + Gt122*gt12L*Gt222*gtu22 +
+ Gt123*gt12L*Gt222*gtu23 + Gt123*gt12L*Gt223*gtu33) -
+ gtu11*khalf*PDstandardNth11gt22 + gtu12*(6*Gt212*Gt222*gt22L +
2*Gt122*gt23L*Gt311 + 2*Gt122*gt13L*Gt312 + 4*Gt222*gt23L*Gt312 +
2*Gt113*gt12L*Gt322 + 2*gt23L*Gt312*Gt323 + 2*Gt312*Gt322*gt33L -
- PDstandardNth12gt22) + gtu31*(6*Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312
+ PDstandardNth12gt22) + gtu13*(6*Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312
+ 2*Gt112*gt23L*Gt313 + 2*Gt113*gt12L*Gt323 + 2*gt23L*Gt312*Gt333 +
2*Gt312*Gt323*gt33L - PDstandardNth13gt22) -
- gtu22*khalf*PDstandardNth22gt22 + gtu32*(4*Gt122*gt12L*Gt223 +
+ gtu22*khalf*PDstandardNth22gt22 + gtu23*(4*Gt122*gt12L*Gt223 +
2*Gt123*Gt212*gt22L + 2*gt12L*Gt133*Gt322 + 4*Gt223*gt23L*Gt322 +
2*Gt123*gt12L*Gt323 + 4*Gt222*gt23L*Gt323 + 2*gt23L*Gt322*Gt333 +
- 2*Gt322*Gt323*gt33L - PDstandardNth23gt22) + gt12L*(2*Gt111*Gt123*gtu31
- + 4*Gt112*Gt223*gtu31 + 2*Gt113*Gt122*gtu32 + 2*Gt113*Gt123*gtu33 +
- PDstandardNth2Xt1) + gt22L*(2*Gt122*Gt213*gtu32 + 6*Gt222*Gt223*gtu32 +
- 2*Gt123*Gt213*gtu33 + PDstandardNth2Xt2) + gt23L*(4*Gt212*Gt322*gtu21 +
- 2*Gt313*Gt322*gtu21 + 4*Gt222*Gt322*gtu22 + 2*Gt123*Gt311*gtu31 +
- 4*Gt212*Gt323*gtu31 + 2*Gt313*Gt323*gtu31 + 2*Gt122*Gt313*gtu32 +
- 2*Gt123*Gt313*gtu33 + 4*Gt223*Gt323*gtu33 + 2*Gt323*Gt333*gtu33 +
- PDstandardNth2Xt3) - gtu33*khalf*PDstandardNth33gt22 + Gt212*gt22L*Xt1L
- + Gt112*(2*Gt111*gt12L*gtu11 + 4*gt12L*Gt212*gtu11 +
- 2*gt11L*Gt122*gtu21 + 2*Gt122*gt12L*gtu22 + 2*gt11L*Gt123*gtu31 +
- 2*Gt123*gt12L*gtu32 + gt12L*Xt1L) + Gt312*(2*Gt213*gt22L*gtu11 +
- 4*Gt212*gt23L*gtu11 + 2*gt23L*Gt313*gtu11 + 2*Gt123*gt12L*gtu21 +
- 2*Gt122*gt23L*gtu22 + 2*gt12L*Gt133*gtu31 + 2*gt22L*Gt233*gtu31 +
- 4*Gt223*gt23L*gtu31 + 2*Gt123*gt23L*gtu32 + gt23L*Xt1L) +
- Gt122*gt12L*Xt2L + Gt222*gt22L*Xt2L + gt23L*Gt322*Xt2L +
- Gt123*gt12L*Xt3L + Gt223*gt22L*Xt3L + gt23L*Gt323*Xt3L +
- gt11L*gtu11*SQR(Gt112) + 2*(Gt112*Gt211*gt22L*gtu11 +
- Gt112*gt23L*Gt311*gtu11 + Gt113*gt12L*Gt312*gtu11 +
- Gt112*gt13L*Gt312*gtu11 + Gt111*Gt122*gt12L*gtu21 +
- Gt122*Gt211*gt22L*gtu21 + Gt112*Gt212*gt22L*gtu21 +
- Gt223*gt22L*Gt312*gtu21 + Gt112*gt23L*Gt312*gtu21 +
- Gt112*gt13L*Gt322*gtu21 + Gt213*gt22L*Gt322*gtu21 +
- Gt122*Gt212*gt22L*gtu22 + Gt123*gt12L*Gt322*gtu22 +
+ 2*Gt322*Gt323*gt33L - PDstandardNth23gt22) + gt12L*(2*Gt111*Gt123*gtu13
+ + 4*Gt112*Gt223*gtu13 + 2*Gt123*Gt322*gtu22 + 2*Gt113*Gt122*gtu23 +
+ 2*Gt113*Gt123*gtu33 + PDstandardNth2Xt1) + gt22L*(2*Gt122*Gt213*gtu23 +
+ 6*Gt222*Gt223*gtu23 + 2*Gt123*Gt213*gtu33 + PDstandardNth2Xt2) +
+ gt23L*(4*Gt212*Gt322*gtu12 + 2*Gt313*Gt322*gtu12 + 2*Gt123*Gt311*gtu13
+ + 4*Gt212*Gt323*gtu13 + 2*Gt313*Gt323*gtu13 + 4*Gt222*Gt322*gtu22 +
+ 2*Gt122*Gt313*gtu23 + 2*Gt123*Gt313*gtu33 + 4*Gt223*Gt323*gtu33 +
+ 2*Gt323*Gt333*gtu33 + PDstandardNth2Xt3) -
+ gtu33*khalf*PDstandardNth33gt22 + Gt212*gt22L*Xt1L +
+ Gt112*(2*Gt111*gt12L*gtu11 + 4*gt12L*Gt212*gtu11 + 2*gt11L*Gt122*gtu12
+ + 2*gt11L*Gt123*gtu13 + 2*Gt122*gt12L*gtu22 + 2*Gt123*gt12L*gtu23 +
+ gt12L*Xt1L) + Gt312*(2*Gt213*gt22L*gtu11 + 4*Gt212*gt23L*gtu11 +
+ 2*gt23L*Gt313*gtu11 + 2*Gt123*gt12L*gtu12 + 2*gt12L*Gt133*gtu13 +
+ 2*gt22L*Gt233*gtu13 + 4*Gt223*gt23L*gtu13 + 2*Gt122*gt23L*gtu22 +
+ 2*Gt123*gt23L*gtu23 + gt23L*Xt1L) + Gt122*gt12L*Xt2L + Gt222*gt22L*Xt2L
+ + gt23L*Gt322*Xt2L + Gt123*gt12L*Xt3L + Gt223*gt22L*Xt3L +
+ gt23L*Gt323*Xt3L + gt11L*gtu11*SQR(Gt112) + 2*(Gt112*Gt211*gt22L*gtu11
+ + Gt112*gt23L*Gt311*gtu11 + Gt113*gt12L*Gt312*gtu11 +
+ Gt112*gt13L*Gt312*gtu11 + Gt111*Gt122*gt12L*gtu12 +
+ Gt122*Gt211*gt22L*gtu12 + Gt112*Gt212*gt22L*gtu12 +
+ Gt223*gt22L*Gt312*gtu12 + Gt112*gt23L*Gt312*gtu12 +
+ Gt112*gt13L*Gt322*gtu12 + Gt213*gt22L*Gt322*gtu12 +
+ Gt112*Gt113*gt12L*gtu13 + Gt123*Gt211*gt22L*gtu13 +
+ Gt112*Gt213*gt22L*gtu13 + Gt112*gt13L*Gt323*gtu13 +
+ Gt213*gt22L*Gt323*gtu13 + Gt122*Gt212*gt22L*gtu22 +
Gt122*gt13L*Gt322*gtu22 + Gt223*gt22L*Gt322*gtu22 +
- gt23L*Gt322*Gt323*gtu22 + Gt112*Gt113*gt12L*gtu31 +
- Gt123*Gt211*gt22L*gtu31 + Gt112*Gt213*gt22L*gtu31 +
- Gt112*gt13L*Gt323*gtu31 + Gt213*gt22L*Gt323*gtu31 +
- gt11L*Gt122*Gt123*gtu32 + Gt123*gt13L*Gt322*gtu32 +
- gt22L*Gt233*Gt322*gtu32 + Gt122*gt13L*Gt323*gtu32 +
- Gt223*gt22L*Gt323*gtu32 + gt12L*Gt133*Gt323*gtu33 +
- Gt123*gt13L*Gt323*gtu33 + gt22L*Gt233*Gt323*gtu33 +
- gt12L*gtu21*SQR(Gt112)) + gt11L*gtu22*SQR(Gt122) +
- gt11L*gtu33*SQR(Gt123) + 3*gt22L*gtu11*SQR(Gt212) +
- 3*gt22L*gtu22*SQR(Gt222) + 3*gt22L*gtu33*SQR(Gt223) +
- gt33L*gtu11*SQR(Gt312) + gt33L*gtu22*SQR(Gt322) +
- 2*gt23L*gtu32*SQR(Gt323) + gt33L*gtu33*SQR(Gt323);
+ gt23L*Gt322*Gt323*gtu22 + gt11L*Gt122*Gt123*gtu23 +
+ Gt123*gt13L*Gt322*gtu23 + gt22L*Gt233*Gt322*gtu23 +
+ Gt122*gt13L*Gt323*gtu23 + Gt223*gt22L*Gt323*gtu23 +
+ gt12L*Gt133*Gt323*gtu33 + Gt123*gt13L*Gt323*gtu33 +
+ gt22L*Gt233*Gt323*gtu33 + gt12L*gtu12*SQR(Gt112)) +
+ gt11L*gtu22*SQR(Gt122) + gt11L*gtu33*SQR(Gt123) +
+ 3*gt22L*gtu11*SQR(Gt212) + 3*gt22L*gtu22*SQR(Gt222) +
+ 3*gt22L*gtu33*SQR(Gt223) + gt33L*gtu11*SQR(Gt312) +
+ gt33L*gtu22*SQR(Gt322) + 2*gt23L*gtu23*SQR(Gt323) +
+ gt33L*gtu33*SQR(Gt323);
CCTK_REAL Rt23 = khalf*(-(gtu11*PDstandardNth11gt23) -
- 2*gtu21*PDstandardNth12gt23 - 2*gtu31*PDstandardNth13gt23 -
- gtu22*PDstandardNth22gt23 - 2*gtu32*PDstandardNth23gt23 +
+ 2*gtu12*PDstandardNth12gt23 - 2*gtu13*PDstandardNth13gt23 -
+ gtu22*PDstandardNth22gt23 - 2*gtu23*PDstandardNth23gt23 +
gt13L*PDstandardNth2Xt1 + gt23L*PDstandardNth2Xt2 +
gt33L*PDstandardNth2Xt3 - gtu33*PDstandardNth33gt23 +
gt12L*PDstandardNth3Xt1 + gt22L*PDstandardNth3Xt2 +
@@ -671,7 +695,7 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
2*Gt223*gt23L*Gt312 + Gt113*gt13L*Gt322 + Gt213*gt23L*Gt322 +
Gt113*gt12L*Gt323 + Gt112*gt13L*Gt323 + Gt213*gt22L*Gt323 +
Gt212*gt23L*Gt323 + gt23L*Gt313*Gt323 + Gt122*Gt311*gt33L +
- Gt222*Gt312*gt33L + Gt313*Gt322*gt33L + Gt312*Gt323*gt33L)*gtu21 +
+ Gt222*Gt312*gt33L + Gt313*Gt322*gt33L + Gt312*Gt323*gt33L)*gtu12 +
(Gt112*gt11L*Gt133 + Gt111*gt12L*Gt133 + Gt111*Gt123*gt13L +
gt12L*Gt133*Gt212 + Gt112*gt13L*Gt223 + Gt133*Gt211*gt22L +
2*Gt112*gt12L*Gt233 + 2*Gt212*gt22L*Gt233 + Gt123*Gt211*gt23L +
@@ -679,8 +703,8 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
2*Gt233*gt23L*Gt312 + Gt113*gt13L*Gt323 + Gt213*gt23L*Gt323 +
Gt113*gt12L*Gt333 + Gt112*gt13L*Gt333 + Gt213*gt22L*Gt333 +
Gt212*gt23L*Gt333 + gt23L*Gt313*Gt333 + Gt123*Gt311*gt33L +
- Gt223*Gt312*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu31 +
- gtu21*(Gt113*gt11L*Gt122 + Gt122*gt13L*Gt212 + 2*Gt122*gt12L*Gt213 +
+ Gt223*Gt312*gt33L + Gt313*Gt323*gt33L + Gt312*Gt333*gt33L)*gtu13 +
+ gtu12*(Gt113*gt11L*Gt122 + Gt122*gt13L*Gt212 + 2*Gt122*gt12L*Gt213 +
Gt113*gt12L*Gt222 + Gt113*Gt212*gt22L + 2*Gt213*Gt222*gt22L +
Gt212*Gt222*gt23L + Gt123*gt13L*Gt312 + Gt113*gt23L*Gt312 +
Gt223*gt23L*Gt312 + Gt123*gt12L*Gt313 + Gt122*gt13L*Gt313 +
@@ -688,7 +712,7 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
2*Gt213*gt23L*Gt322 + gt23L*Gt313*Gt323 + Gt212*Gt322*gt33L +
Gt313*Gt322*gt33L + Gt312*Gt323*gt33L + Gt112*(Gt113*gt12L +
Gt212*gt23L + Gt312*gt33L) + gt13L*SQR(Gt112))) +
- 2*gtu31*(2*Gt213*Gt223*gt22L + Gt112*Gt213*gt23L + Gt212*Gt223*gt23L +
+ 2*gtu13*(2*Gt213*Gt223*gt22L + Gt112*Gt213*gt23L + Gt212*Gt223*gt23L +
Gt133*gt13L*Gt312 + Gt233*gt23L*Gt312 + gt12L*Gt133*Gt313 +
gt22L*Gt233*Gt313 + Gt223*gt23L*Gt313 + Gt123*(2*gt12L*Gt213 +
gt13L*(Gt212 + Gt313)) + 2*Gt213*gt23L*Gt323 + Gt113*(gt11L*Gt123 +
@@ -709,7 +733,7 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt123*gt12L*Gt323 + Gt122*gt13L*Gt323 + Gt223*gt22L*Gt323 +
Gt222*gt23L*Gt323 + Gt122*Gt312*gt33L + Gt222*Gt322*gt33L +
2*Gt322*Gt323*gt33L + gt23L*SQR(Gt222) + gt23L*SQR(Gt323)) +
- 2*gtu32*(gt11L*Gt122*Gt133 + Gt112*gt12L*Gt133 + Gt112*Gt123*gt13L +
+ 2*gtu23*(gt11L*Gt122*Gt133 + Gt112*gt12L*Gt133 + Gt112*Gt123*gt13L +
gt12L*Gt133*Gt222 + Gt122*gt13L*Gt223 + Gt133*Gt212*gt22L +
2*Gt122*gt12L*Gt233 + 2*Gt222*gt22L*Gt233 + Gt123*Gt212*gt23L +
Gt222*Gt223*gt23L + Gt133*gt23L*Gt312 + Gt133*gt13L*Gt322 +
@@ -717,7 +741,7 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt123*gt12L*Gt333 + Gt122*gt13L*Gt333 + Gt223*gt22L*Gt333 +
Gt222*gt23L*Gt333 + gt23L*Gt323*Gt333 + Gt123*Gt312*gt33L +
Gt223*Gt322*gt33L + Gt322*Gt333*gt33L + gt33L*SQR(Gt323)) +
- 2*gtu32*(Gt113*Gt123*gt12L + Gt113*Gt122*gt13L + Gt123*gt13L*Gt222 +
+ 2*gtu23*(Gt113*Gt123*gt12L + Gt113*Gt122*gt13L + Gt123*gt13L*Gt222 +
3*Gt123*gt12L*Gt223 + Gt123*Gt213*gt22L + Gt122*Gt213*gt23L +
Gt222*Gt223*gt23L + Gt123*gt23L*Gt313 + Gt133*gt13L*Gt322 +
Gt233*gt23L*Gt322 + gt12L*Gt133*Gt323 + 2*Gt123*gt13L*Gt323 +
@@ -732,57 +756,56 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt223*gt23L*Gt333 + Gt123*Gt313*gt33L + Gt223*Gt323*gt33L +
2*Gt323*Gt333*gt33L + gt23L*SQR(Gt223) + gt23L*SQR(Gt333)));
- CCTK_REAL Rt33 = 4*(Gt123*gt13L*Gt323*gtu22 + Gt223*gt23L*Gt323*gtu22
- + Gt133*gt13L*Gt313*gtu31 + Gt233*gt23L*Gt313*gtu31 +
- Gt113*gt13L*Gt333*gtu31 + Gt133*gt13L*Gt323*gtu32 +
- Gt233*gt23L*Gt323*gtu32 + Gt123*gt13L*Gt333*gtu32 +
- Gt133*gt13L*Gt333*gtu33) + gtu21*(2*Gt212*Gt223*gt23L +
+ CCTK_REAL Rt33 = 4*(Gt133*gt13L*Gt313*gtu13 + Gt233*gt23L*Gt313*gtu13
+ + Gt113*gt13L*Gt333*gtu13 + Gt213*gt23L*Gt333*gtu13 +
+ Gt123*gt13L*Gt323*gtu22 + Gt133*gt13L*Gt323*gtu23 +
+ Gt123*gt13L*Gt333*gtu23 + Gt223*gt23L*Gt333*gtu23 +
+ Gt133*gt13L*Gt333*gtu33) + gtu12*(2*Gt212*Gt223*gt23L +
4*Gt123*gt13L*Gt313 + 4*Gt223*gt23L*Gt313 + 4*Gt113*gt13L*Gt323 +
- 4*Gt213*gt23L*Gt323 + 2*Gt123*Gt311*gt33L - PDstandardNth12gt33) +
- gtu31*(4*Gt213*gt23L*Gt333 + 2*Gt233*Gt312*gt33L + 6*Gt313*Gt333*gt33L
- - PDstandardNth13gt33) - gtu22*khalf*PDstandardNth22gt33 +
- gtu32*(4*Gt223*gt23L*Gt333 + 2*Gt123*Gt313*gt33L + 6*Gt323*Gt333*gt33L
- - PDstandardNth23gt33) - gtu33*khalf*PDstandardNth33gt33 +
+ 4*Gt213*gt23L*Gt323 + 2*Gt123*Gt311*gt33L - PDstandardNth12gt33) -
+ gtu13*PDstandardNth13gt33 - gtu22*khalf*PDstandardNth22gt33 -
+ gtu23*PDstandardNth23gt33 - gtu33*khalf*PDstandardNth33gt33 +
gt13L*PDstandardNth3Xt1 + gt23L*PDstandardNth3Xt2 +
- gt33L*(2*Gt213*Gt322*gtu21 + 6*Gt313*Gt323*gtu21 + 2*Gt123*Gt312*gtu22
- + 2*Gt133*Gt311*gtu31 + 2*Gt133*Gt312*gtu32 + 2*Gt133*Gt313*gtu33 +
- PDstandardNth3Xt3) + Gt113*gt13L*Xt1L + Gt213*gt23L*Xt1L +
- Gt313*gt33L*Xt1L + Gt123*gt13L*Xt2L + Gt223*gt23L*Xt2L +
- Gt323*gt33L*Xt2L + Gt133*gt13L*Xt3L + Gt333*gt33L*Xt3L +
- Gt233*(4*gt23L*Gt333*gtu33 + 2*Gt323*gt33L*gtu33 + gt23L*Xt3L) +
- gtu11*(2*Gt212*Gt213*gt23L + 4*Gt113*gt13L*Gt313 + 4*Gt213*gt23L*Gt313
- + 2*Gt113*Gt311*gt33L + 2*Gt213*Gt312*gt33L - khalf*PDstandardNth11gt33
- + gt11L*SQR(Gt113)) + 2*(Gt111*Gt113*gt13L*gtu11 +
- Gt113*gt12L*Gt213*gtu11 + Gt112*gt13L*Gt213*gtu11 +
- Gt113*Gt211*gt23L*gtu11 + Gt113*gt11L*Gt123*gtu21 +
- Gt112*Gt113*gt13L*gtu21 + Gt111*Gt123*gt13L*gtu21 +
- Gt123*gt12L*Gt213*gtu21 + Gt122*gt13L*Gt213*gtu21 +
- Gt113*gt12L*Gt223*gtu21 + Gt112*gt13L*Gt223*gtu21 +
- Gt213*Gt223*gt22L*gtu21 + Gt123*Gt211*gt23L*gtu21 +
- Gt113*Gt212*gt23L*gtu21 + Gt213*Gt222*gt23L*gtu21 +
- Gt113*Gt312*gt33L*gtu21 + Gt223*Gt312*gt33L*gtu21 +
+ gt33L*(2*Gt213*Gt322*gtu12 + 6*Gt313*Gt323*gtu12 + 2*Gt133*Gt311*gtu13
+ + 2*Gt213*Gt323*gtu13 + 6*Gt313*Gt333*gtu13 + 2*Gt123*Gt312*gtu22 +
+ 2*Gt133*Gt312*gtu23 + 2*Gt133*Gt313*gtu33 + PDstandardNth3Xt3) +
+ Gt113*gt13L*Xt1L + Gt213*gt23L*Xt1L + Gt313*gt33L*Xt1L +
+ Gt123*gt13L*Xt2L + Gt223*(4*gt23L*Gt323*gtu22 + 2*Gt322*gt33L*gtu22 +
+ 2*gt12L*Gt133*gtu23 + 2*Gt233*gt23L*gtu33 + gt23L*Xt2L) +
+ Gt323*(2*Gt223*gt33L*gtu23 + 6*Gt333*gt33L*gtu23 + 2*Gt233*gt33L*gtu33
+ + gt33L*Xt2L) + Gt133*gt13L*Xt3L + Gt333*gt33L*Xt3L +
+ Gt233*(2*Gt222*gt23L*gtu23 + 4*gt23L*Gt323*gtu23 + 2*gt12L*Gt133*gtu33
+ + 4*gt23L*Gt333*gtu33 + gt23L*Xt3L) + gtu11*(2*Gt212*Gt213*gt23L +
+ 4*Gt113*gt13L*Gt313 + 4*Gt213*gt23L*Gt313 + 2*Gt113*Gt311*gt33L +
+ 2*Gt213*Gt312*gt33L - khalf*PDstandardNth11gt33 + gt11L*SQR(Gt113)) +
+ 2*(Gt111*Gt113*gt13L*gtu11 + Gt113*gt12L*Gt213*gtu11 +
+ Gt112*gt13L*Gt213*gtu11 + Gt113*Gt211*gt23L*gtu11 +
+ Gt113*gt11L*Gt123*gtu12 + Gt112*Gt113*gt13L*gtu12 +
+ Gt111*Gt123*gt13L*gtu12 + Gt123*gt12L*Gt213*gtu12 +
+ Gt122*gt13L*Gt213*gtu12 + Gt113*gt12L*Gt223*gtu12 +
+ Gt112*gt13L*Gt223*gtu12 + Gt213*Gt223*gt22L*gtu12 +
+ Gt123*Gt211*gt23L*gtu12 + Gt113*Gt212*gt23L*gtu12 +
+ Gt213*Gt222*gt23L*gtu12 + Gt113*Gt312*gt33L*gtu12 +
+ Gt223*Gt312*gt33L*gtu12 + Gt113*gt11L*Gt133*gtu13 +
+ Gt111*Gt133*gt13L*gtu13 + gt12L*Gt133*Gt213*gtu13 +
+ Gt123*gt13L*Gt213*gtu13 + Gt113*gt12L*Gt233*gtu13 +
+ Gt112*gt13L*Gt233*gtu13 + Gt213*gt22L*Gt233*gtu13 +
+ Gt133*Gt211*gt23L*gtu13 + Gt113*Gt213*gt23L*gtu13 +
+ Gt213*Gt223*gt23L*gtu13 + Gt212*Gt233*gt23L*gtu13 +
+ Gt233*Gt312*gt33L*gtu13 + Gt113*Gt313*gt33L*gtu13 +
Gt112*Gt123*gt13L*gtu22 + Gt123*gt12L*Gt223*gtu22 +
Gt122*gt13L*Gt223*gtu22 + Gt123*Gt212*gt23L*gtu22 +
- Gt222*Gt223*gt23L*gtu22 + Gt223*Gt322*gt33L*gtu22 +
- Gt113*gt11L*Gt133*gtu31 + Gt111*Gt133*gt13L*gtu31 +
- gt12L*Gt133*Gt213*gtu31 + Gt123*gt13L*Gt213*gtu31 +
- Gt113*gt12L*Gt233*gtu31 + Gt112*gt13L*Gt233*gtu31 +
- Gt213*gt22L*Gt233*gtu31 + Gt133*Gt211*gt23L*gtu31 +
- Gt113*Gt213*gt23L*gtu31 + Gt213*Gt223*gt23L*gtu31 +
- Gt212*Gt233*gt23L*gtu31 + Gt113*Gt313*gt33L*gtu31 +
- Gt213*Gt323*gt33L*gtu31 + gt11L*Gt123*Gt133*gtu32 +
- Gt113*Gt123*gt13L*gtu32 + Gt112*Gt133*gt13L*gtu32 +
- gt12L*Gt133*Gt223*gtu32 + Gt123*gt13L*Gt223*gtu32 +
- Gt123*gt12L*Gt233*gtu32 + Gt122*gt13L*Gt233*gtu32 +
- Gt223*gt22L*Gt233*gtu32 + Gt133*Gt212*gt23L*gtu32 +
- Gt123*Gt213*gt23L*gtu32 + Gt222*Gt233*gt23L*gtu32 +
- Gt233*Gt322*gt33L*gtu32 + Gt223*Gt323*gt33L*gtu32 +
- Gt113*Gt133*gt13L*gtu33 + gt12L*Gt133*Gt233*gtu33 +
- Gt123*gt13L*Gt233*gtu33 + Gt133*Gt213*gt23L*gtu33 +
- Gt223*Gt233*gt23L*gtu33 + gt13L*gtu31*SQR(Gt113)) +
+ Gt222*Gt223*gt23L*gtu22 + gt11L*Gt123*Gt133*gtu23 +
+ Gt113*Gt123*gt13L*gtu23 + Gt112*Gt133*gt13L*gtu23 +
+ Gt123*gt13L*Gt223*gtu23 + Gt123*gt12L*Gt233*gtu23 +
+ Gt122*gt13L*Gt233*gtu23 + Gt223*gt22L*Gt233*gtu23 +
+ Gt133*Gt212*gt23L*gtu23 + Gt123*Gt213*gt23L*gtu23 +
+ Gt123*Gt313*gt33L*gtu23 + Gt233*Gt322*gt33L*gtu23 +
+ Gt113*Gt133*gt13L*gtu33 + Gt123*gt13L*Gt233*gtu33 +
+ Gt133*Gt213*gt23L*gtu33 + gt13L*gtu13*SQR(Gt113)) +
gt11L*gtu22*SQR(Gt123) + gt11L*gtu33*SQR(Gt133) +
gt22L*gtu11*SQR(Gt213) + gt22L*gtu22*SQR(Gt223) +
- 2*gt23L*gtu32*SQR(Gt223) + gt22L*gtu33*SQR(Gt233) +
+ 2*gt23L*gtu23*SQR(Gt223) + gt22L*gtu33*SQR(Gt233) +
3*gt33L*gtu11*SQR(Gt313) + 3*gt33L*gtu22*SQR(Gt323) +
3*gt33L*gtu33*SQR(Gt333);
@@ -821,38 +844,38 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
Gt333*PDstandardNth3phi)) + fac2*SQR(PDstandardNth3phi);
CCTK_REAL Rphi11 = -2*(cdphi211 + 2*(-1 + gt11L*gtu11)*SQR(cdphi1) +
- gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu21 + cdphi3*gtu31) +
- cdphi2*cdphi3*gtu32) + cdphi233*gtu33 + gtu22*(cdphi222 +
- 2*SQR(cdphi2)) + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt11L*(cdphi211*gtu11 + 4*(cdphi1*(cdphi2*gtu12 + cdphi3*gtu13) +
+ cdphi2*cdphi3*gtu23) + cdphi233*gtu33 + gtu22*(cdphi222 +
+ 2*SQR(cdphi2)) + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu21)
- + 4*cdphi3*gt12L*gtu31) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu32
- + 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ CCTK_REAL Rphi12 = -2*(cdphi212 + cdphi1*(cdphi2*(-2 + 4*gt12L*gtu12)
+ + 4*cdphi3*gt12L*gtu13) + gt12L*(cdphi211*gtu11 + 4*cdphi2*cdphi3*gtu23
+ + 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2)) + gtu33*(cdphi233
+ 2*SQR(cdphi3))));
- CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu21 +
- cdphi3*(-2 + 4*gt13L*gtu31)) + gt13L*(cdphi211*gtu11 +
- 4*cdphi2*cdphi3*gtu32 + 2*(cdphi212*gtu21 + cdphi213*gtu31 +
- cdphi223*gtu32 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ CCTK_REAL Rphi13 = -2*(cdphi213 + cdphi1*(4*cdphi2*gt13L*gtu12 +
+ cdphi3*(-2 + 4*gt13L*gtu13)) + gt13L*(cdphi211*gtu11 +
+ 4*cdphi2*cdphi3*gtu23 + 2*(cdphi212*gtu12 + cdphi213*gtu13 +
+ cdphi223*gtu23 + gtu11*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))
+ gtu33*(cdphi233 + 2*SQR(cdphi3))));
CCTK_REAL Rphi22 = -2*(cdphi222 + 2*(-1 + gt22L*gtu22)*SQR(cdphi2) +
- gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu31 + cdphi2*(cdphi1*gtu21 +
- cdphi3*gtu32)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
+ gt22L*(cdphi222*gtu22 + 4*(cdphi1*cdphi3*gtu13 + cdphi2*(cdphi1*gtu12 +
+ cdphi3*gtu23)) + cdphi233*gtu33 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
+ 2*(cdphi212*gtu12 + cdphi213*gtu13 + cdphi223*gtu23 +
gtu33*SQR(cdphi3))));
- CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu21 +
- cdphi3*(-2 + 4*gt23L*gtu32)) + gt23L*(cdphi222*gtu22 +
- 4*cdphi1*cdphi3*gtu31 + gtu11*(cdphi211 + 2*SQR(cdphi1)) +
- 2*(cdphi212*gtu21 + cdphi213*gtu31 + cdphi223*gtu32 +
- gtu22*SQR(cdphi2)) + gtu33*(cdphi233 + 2*SQR(cdphi3))));
+ CCTK_REAL Rphi23 = -2*(cdphi223 + cdphi2*(4*cdphi1*gt23L*gtu12 +
+ cdphi3*(-2 + 4*gt23L*gtu23)) + gt23L*(4*cdphi1*cdphi3*gtu13 +
+ cdphi222*gtu22 + gtu11*(cdphi211 + 2*SQR(cdphi1)) + 2*(cdphi212*gtu12 +
+ cdphi213*gtu13 + cdphi223*gtu23 + gtu22*SQR(cdphi2)) + gtu33*(cdphi233
+ + 2*SQR(cdphi3))));
CCTK_REAL Rphi33 = -2*(cdphi233 + gt33L*((4*cdphi1*cdphi2 +
- 2*cdphi212)*gtu21 + 4*cdphi3*(cdphi1*gtu31 + cdphi2*gtu32) +
- 2*(cdphi213*gtu31 + cdphi223*gtu32) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*cdphi212)*gtu12 + 4*cdphi3*(cdphi1*gtu13 + cdphi2*gtu23) +
+ 2*(cdphi213*gtu13 + cdphi223*gtu23) + cdphi233*gtu33 + gtu11*(cdphi211
+ 2*SQR(cdphi1)) + gtu22*(cdphi222 + 2*SQR(cdphi2))) + 2*(-1 +
gt33L*gtu33)*SQR(cdphi3));
@@ -862,13 +885,13 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL gu11 = em4phi*gtu11;
- CCTK_REAL gu21 = em4phi*gtu21;
+ CCTK_REAL gu12 = em4phi*gtu12;
- CCTK_REAL gu31 = em4phi*gtu31;
+ CCTK_REAL gu13 = em4phi*gtu13;
CCTK_REAL gu22 = em4phi*gtu22;
- CCTK_REAL gu32 = em4phi*gtu32;
+ CCTK_REAL gu23 = em4phi*gtu23;
CCTK_REAL gu33 = em4phi*gtu33;
@@ -884,26 +907,26 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL R33 = Rphi33 + Rt33;
- CCTK_REAL trR = gu11*R11 + gu22*R22 + 2*(gu21*R12 + gu31*R13 +
- gu32*R23) + gu33*R33;
+ CCTK_REAL trR = gu11*R11 + gu22*R22 + 2*(gu12*R12 + gu13*R13 +
+ gu23*R23) + gu33*R33;
- CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu21 + At13L*gtu31;
+ CCTK_REAL Atm11 = At11L*gtu11 + At12L*gtu12 + At13L*gtu13;
- CCTK_REAL Atm21 = At11L*gtu21 + At12L*gtu22 + At13L*gtu32;
+ CCTK_REAL Atm21 = At11L*gtu12 + At12L*gtu22 + At13L*gtu23;
- CCTK_REAL Atm31 = At11L*gtu31 + At12L*gtu32 + At13L*gtu33;
+ CCTK_REAL Atm31 = At11L*gtu13 + At12L*gtu23 + At13L*gtu33;
- CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu21 + At23L*gtu31;
+ CCTK_REAL Atm12 = At12L*gtu11 + At22L*gtu12 + At23L*gtu13;
- CCTK_REAL Atm22 = At12L*gtu21 + At22L*gtu22 + At23L*gtu32;
+ CCTK_REAL Atm22 = At12L*gtu12 + At22L*gtu22 + At23L*gtu23;
- CCTK_REAL Atm32 = At12L*gtu31 + At22L*gtu32 + At23L*gtu33;
+ CCTK_REAL Atm32 = At12L*gtu13 + At22L*gtu23 + At23L*gtu33;
- CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu21 + At33L*gtu31;
+ CCTK_REAL Atm13 = At13L*gtu11 + At23L*gtu12 + At33L*gtu13;
- CCTK_REAL Atm23 = At13L*gtu21 + At23L*gtu22 + At33L*gtu32;
+ CCTK_REAL Atm23 = At13L*gtu12 + At23L*gtu22 + At33L*gtu23;
- CCTK_REAL Atm33 = At13L*gtu31 + At23L*gtu32 + At33L*gtu33;
+ CCTK_REAL Atm33 = At13L*gtu13 + At23L*gtu23 + At33L*gtu33;
CCTK_REAL rho = pow(alphaL,-2)*(eTttL - 2*(beta2L*eTtyL +
beta3L*eTtzL) + 2*(beta1L*(-eTtxL + beta2L*eTxyL + beta3L*eTxzL) +
@@ -925,73 +948,73 @@ void ML_BSSN_O8_constraints_Body(cGH const * restrict const cctkGH, int const di
0.6666666666666666666666666666666666666667*SQR(trKL);
CCTK_REAL M1L = -2.*((At12L*Gt211 + At13L*Gt311)*gtu11 +
- At11L*Gt123*gtu32) + At12L*((6.*cdphi1 - 1.*Gt111)*gtu21 -
- 3.*Gt213*gtu31 + 6.*(cdphi2*gtu22 + cdphi3*gtu32) - 1.*Gt233*gtu33) -
- 1.*((At22L*Gt212 + At12L*(Gt112 + Gt222) + At23L*Gt312 +
- At13L*Gt322)*gtu22 + At13L*(Gt111*gtu31 + Gt112*gtu32 + Gt113*gtu33)) +
- At11L*((6.*cdphi1 - 2.*Gt111)*gtu11 + 6.*(cdphi2*gtu21 + cdphi3*gtu31)
- - 1.*(Gt122*gtu22 + Gt133*gtu33)) + gtu11*PDstandardNth1At11 -
+ At11L*Gt123*gtu23) + At12L*((6.*cdphi1 - 1.*Gt111)*gtu12 -
+ 3.*Gt213*gtu13 + 6.*(cdphi2*gtu22 + cdphi3*gtu23) - 1.*Gt233*gtu33) -
+ 1.*((At22L*Gt212 + At12L*(Gt112 + Gt222) + At23L*Gt312)*gtu22 +
+ (At13L*Gt112 + At12L*Gt113 + At23L*Gt212)*gtu23 + (At13L*Gt113 +
+ At23L*Gt213 + At33L*Gt313)*gtu33) + At11L*((6.*cdphi1 - 2.*Gt111)*gtu11
+ + 6.*(cdphi2*gtu12 + cdphi3*gtu13) - 1.*(Gt122*gtu22 + Gt133*gtu33)) +
+ At13L*((6.*cdphi1 - 1.*Gt111)*gtu13 + 6.*(cdphi2*gtu23 + cdphi3*gtu33)
+ - 1.*(Gt322*gtu22 + Gt333*gtu33)) + gtu11*PDstandardNth1At11 -
0.6666666666666666666666666666666666666667*PDstandardNth1trK +
- gtu21*(-1.*(At22L*Gt211 + At23L*Gt311) - 3.*(At11L*Gt112 + At12L*Gt212
+ gtu12*(-1.*(At22L*Gt211 + At23L*Gt311) - 3.*(At11L*Gt112 + At12L*Gt212
+ At13L*Gt312) + PDstandardNth1At12 + PDstandardNth2At11) +
- gtu22*PDstandardNth2At12 + gtu31*(-3.*At11L*Gt113 - 1.*(At23L*Gt211 +
- At33L*Gt311) + At13L*(6.*cdphi1 - 3.*Gt313) + PDstandardNth1At13 +
- PDstandardNth3At11) + gtu32*(-2.*At12L*Gt223 - 1.*(At12L*Gt113 +
- At22L*Gt213 + At33L*Gt312 + At23L*(Gt212 + Gt313)) + At13L*(6.*cdphi2 -
- 2.*Gt323) + PDstandardNth2At13 + PDstandardNth3At12) +
- gtu33*(-1.*(At23L*Gt213 + At33L*Gt313) + At13L*(6.*cdphi3 - 1.*Gt333) +
- PDstandardNth3At13) - 25.13274122871834590770114706623602307358*S1;
-
- CCTK_REAL M2L = At12L*((6.*cdphi1 - 1.*Gt111)*gtu11 - 2.*Gt122*gtu22 +
- 6.*(cdphi2*gtu21 + cdphi3*gtu31) - 3.*Gt123*gtu32 - 1.*Gt133*gtu33) +
- At22L*((6.*cdphi2 - 2.*Gt222)*gtu22 - 2.*Gt213*gtu31 + 6.*cdphi3*gtu32
- - 1.*Gt233*gtu33) + At23L*(-2.*Gt322*gtu22 - 1.*Gt333*gtu33 +
- 6.*(cdphi1*gtu31 + cdphi2*gtu32 + cdphi3*gtu33)) - 1.*((At11L*Gt112 +
- At22L*Gt211 + At12L*Gt212 + At23L*Gt311 + At13L*Gt312)*gtu11 +
- Gt122*(At11L*gtu21 + At13L*gtu32) + (At23L*Gt223 + At33L*Gt323)*gtu33 +
- At13L*(Gt112*gtu31 + Gt123*gtu33)) + gtu11*PDstandardNth1At12 +
- gtu21*(At22L*(6.*cdphi1 - 3.*Gt212) + At12L*(-3.*Gt112 - 1.*Gt222) -
- 3.*At23L*Gt312 - 1.*At13L*Gt322 + PDstandardNth1At22 +
- PDstandardNth2At12) + gtu22*PDstandardNth2At22 -
+ gtu22*PDstandardNth2At12 + gtu13*(-1.*(At23L*Gt211 + At33L*Gt311) -
+ 3.*(At11L*Gt113 + At13L*Gt313) + PDstandardNth1At13 +
+ PDstandardNth3At11) + gtu23*(-1.*(At22L*Gt213 + At33L*Gt312 +
+ At23L*Gt313) - 2.*(At12L*Gt223 + At13L*Gt323) + PDstandardNth2At13 +
+ PDstandardNth3At12) + gtu33*PDstandardNth3At13 -
+ 25.13274122871834590770114706623602307358*S1;
+
+ CCTK_REAL M2L = At12L*((6.*cdphi1 - 1.*Gt111)*gtu11 + 6.*(cdphi2*gtu12
+ + cdphi3*gtu13) - 2.*Gt122*gtu22 - 3.*Gt123*gtu23 - 1.*Gt133*gtu33) +
+ At22L*((6.*cdphi2 - 2.*Gt222)*gtu22 + 6.*cdphi3*gtu23 - 1.*Gt233*gtu33)
+ + At23L*(-2.*Gt322*gtu22 - 1.*Gt333*gtu33 + 6.*(cdphi2*gtu23 +
+ cdphi3*gtu33)) - 1.*((At11L*Gt112 + At22L*Gt211 + At12L*Gt212 +
+ At23L*Gt311 + At13L*Gt312)*gtu11 + Gt122*(At11L*gtu12 + At13L*gtu23) +
+ (At23L*Gt223 + At33L*Gt323)*gtu33 + At13L*(Gt112*gtu13 + Gt123*gtu33))
+ + gtu11*PDstandardNth1At12 + gtu12*(At22L*(6.*cdphi1 - 3.*Gt212) +
+ At12L*(-3.*Gt112 - 1.*Gt222) - 3.*At23L*Gt312 - 1.*At13L*Gt322 +
+ PDstandardNth1At22 + PDstandardNth2At12) + gtu22*PDstandardNth2At22 -
0.6666666666666666666666666666666666666667*PDstandardNth2trK +
- gtu31*(At12L*(-2.*Gt113 - 1.*Gt223) - 2.*At23L*Gt313 - 1.*(At11L*Gt123
- + At23L*Gt212 + At33L*Gt312 + At13L*Gt323) + PDstandardNth1At23 +
- PDstandardNth3At12) + gtu32*(-1.*(At23L*Gt222 + At33L*Gt322) -
- 3.*(At22L*Gt223 + At23L*Gt323) + PDstandardNth2At23 +
+ gtu13*(-2.*(At12L*Gt113 + At22L*Gt213) + At23L*(6.*cdphi1 - 1.*Gt212 -
+ 2.*Gt313) - 1.*(At11L*Gt123 + At12L*Gt223 + At33L*Gt312 + At13L*Gt323)
+ + PDstandardNth1At23 + PDstandardNth3At12) + gtu23*(-1.*(At23L*Gt222 +
+ At33L*Gt322) - 3.*(At22L*Gt223 + At23L*Gt323) + PDstandardNth2At23 +
PDstandardNth3At22) + gtu33*PDstandardNth3At23 -
25.13274122871834590770114706623602307358*S2;
CCTK_REAL M3L = -1.*((At11L*Gt113 + At23L*Gt211 + At12L*Gt213 +
At33L*Gt311)*gtu11 + (At22L*Gt223 + At33L*Gt322 + At23L*Gt323)*gtu22 +
- At11L*Gt133*gtu31 + At12L*(Gt113*gtu21 + Gt123*gtu22 + Gt133*gtu32)) +
- At13L*((6.*cdphi1 - 1.*(Gt111 + Gt313))*gtu11 - 1.*Gt122*gtu22 +
- 6.*(cdphi2*gtu21 + cdphi3*gtu31) - 3.*Gt123*gtu32 - 2.*Gt133*gtu33) +
- At23L*((6.*cdphi2 - 1.*Gt222)*gtu22 - 3.*Gt213*gtu31 + 6.*cdphi3*gtu32
- - 2.*Gt233*gtu33) + gtu11*PDstandardNth1At13 + gtu21*(-2.*(At13L*Gt112
- + At33L*Gt312) + At23L*(6.*cdphi1 - 2.*Gt212 - 1.*Gt313) -
- 1.*(At11L*Gt123 + At22L*Gt213 + At12L*Gt223 + At13L*Gt323) +
- PDstandardNth1At23 + PDstandardNth2At13) + gtu22*PDstandardNth2At23 +
- gtu31*(-1.*At12L*Gt233 + At33L*(6.*cdphi1 - 3.*Gt313) +
- At13L*(-3.*Gt113 - 1.*Gt333) + PDstandardNth1At33 + PDstandardNth3At13)
- + gtu32*(-1.*At22L*Gt233 + At33L*(6.*cdphi2 - 3.*Gt323) +
- At23L*(-3.*Gt223 - 1.*Gt333) + PDstandardNth2At33 + PDstandardNth3At23)
- + gtu33*(At33L*(6.*cdphi3 - 2.*Gt333) + PDstandardNth3At33) -
+ At12L*(Gt113*gtu12 + Gt123*gtu22) + Gt133*(At11L*gtu13 + At12L*gtu23))
+ + At13L*((6.*cdphi1 - 1.*(Gt111 + Gt313))*gtu11 + 6.*(cdphi2*gtu12 +
+ cdphi3*gtu13) - 1.*Gt122*gtu22 - 3.*Gt123*gtu23 - 2.*Gt133*gtu33) +
+ At23L*((6.*cdphi2 - 1.*Gt222)*gtu22 + 6.*cdphi3*gtu23 - 2.*Gt233*gtu33)
+ + gtu11*PDstandardNth1At13 + gtu12*(-2.*(At13L*Gt112 + At33L*Gt312) +
+ At23L*(6.*cdphi1 - 2.*Gt212 - 1.*Gt313) - 1.*(At11L*Gt123 + At22L*Gt213
+ + At12L*Gt223 + At13L*Gt323) + PDstandardNth1At23 + PDstandardNth2At13)
+ + gtu22*PDstandardNth2At23 + gtu13*(-3.*(At13L*Gt113 + At23L*Gt213) +
+ At33L*(6.*cdphi1 - 3.*Gt313) - 1.*(At12L*Gt233 + At13L*Gt333) +
+ PDstandardNth1At33 + PDstandardNth3At13) + gtu23*(-1.*At22L*Gt233 +
+ At33L*(6.*cdphi2 - 3.*Gt323) + At23L*(-3.*Gt223 - 1.*Gt333) +
+ PDstandardNth2At33 + PDstandardNth3At23) + gtu33*(At33L*(6.*cdphi3 -
+ 2.*Gt333) + PDstandardNth3At33) -
0.6666666666666666666666666666666666666667*PDstandardNth3trK -
25.13274122871834590770114706623602307358*S3;
CCTK_REAL cSL = Log(detgt);
- CCTK_REAL cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33 - Xt1L;
+ CCTK_REAL cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33 - Xt1L;
- CCTK_REAL cXt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33 - Xt2L;
+ CCTK_REAL cXt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33 - Xt2L;
- CCTK_REAL cXt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33 - Xt3L;
+ CCTK_REAL cXt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33 - Xt3L;
- CCTK_REAL cAL = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu21 +
- At13L*gtu31 + At23L*gtu32) + At33L*gtu33;
+ CCTK_REAL cAL = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu12 +
+ At13L*gtu13 + At23L*gtu23) + At33L*gtu33;
/* Copy local copies back to grid functions */
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_constraints_boundary.c b/ML_BSSN_O8/src/ML_BSSN_O8_constraints_boundary.c
index 1e70cbe..98cdb26 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_constraints_boundary.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_constraints_boundary.c
@@ -20,6 +20,30 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_constraints_boundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_cons_detg","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_cons_detg.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_cons_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_cons_Gamma.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_cons_traceA","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_cons_traceA.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Ham","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Ham.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_mom","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_mom.");
+ return;
+}
+
void ML_BSSN_O8_constraints_boundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.c b/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.c
index b672c39..9e6012f 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBase.c
@@ -137,13 +137,13 @@ void ML_BSSN_O8_convertFromADMBase_Body(cGH const * restrict const cctkGH, int c
CCTK_REAL gu11 = INV(detg)*(g22*g33 - SQR(g23));
- CCTK_REAL gu21 = (g13*g23 - g12*g33)*INV(detg);
+ CCTK_REAL gu12 = (g13*g23 - g12*g33)*INV(detg);
- CCTK_REAL gu31 = (-(g13*g22) + g12*g23)*INV(detg);
+ CCTK_REAL gu13 = (-(g13*g22) + g12*g23)*INV(detg);
CCTK_REAL gu22 = INV(detg)*(g11*g33 - SQR(g13));
- CCTK_REAL gu32 = (g12*g13 - g11*g23)*INV(detg);
+ CCTK_REAL gu23 = (g12*g13 - g11*g23)*INV(detg);
CCTK_REAL gu33 = INV(detg)*(g11*g22 - SQR(g12));
@@ -164,7 +164,7 @@ void ML_BSSN_O8_convertFromADMBase_Body(cGH const * restrict const cctkGH, int c
CCTK_REAL gt33L = em4phi*g33;
- trKL = gu11*kxxL + gu22*kyyL + 2*(gu21*kxyL + gu31*kxzL + gu32*kyzL) +
+ trKL = gu11*kxxL + gu22*kyyL + 2*(gu12*kxyL + gu13*kxzL + gu23*kyzL) +
gu33*kzzL;
CCTK_REAL At11L = em4phi*(kxxL - g11*kthird*trKL);
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBaseGamma.c b/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBaseGamma.c
index e97a941..3d92995 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBaseGamma.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertFromADMBaseGamma.c
@@ -20,6 +20,24 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_convertFromADMBaseGamma_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_dtshift.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_BSSN_O8::ML_Gamma","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_BSSN_O8::ML_Gamma.");
+ return;
+}
+
void ML_BSSN_O8_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
@@ -211,96 +229,96 @@ void ML_BSSN_O8_convertFromADMBaseGamma_Body(cGH const * restrict const cctkGH,
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
CCTK_REAL Gt111 = khalf*(gtu11*PDstandardNth1gt11 +
- 2*(gtu21*PDstandardNth1gt12 + gtu31*PDstandardNth1gt13) -
- gtu21*PDstandardNth2gt11 - gtu31*PDstandardNth3gt11);
+ 2*(gtu12*PDstandardNth1gt12 + gtu13*PDstandardNth1gt13) -
+ gtu12*PDstandardNth2gt11 - gtu13*PDstandardNth3gt11);
- CCTK_REAL Gt211 = khalf*(gtu21*PDstandardNth1gt11 +
- 2*(gtu22*PDstandardNth1gt12 + gtu32*PDstandardNth1gt13) -
- gtu22*PDstandardNth2gt11 - gtu32*PDstandardNth3gt11);
+ CCTK_REAL Gt211 = khalf*(gtu12*PDstandardNth1gt11 +
+ 2*(gtu22*PDstandardNth1gt12 + gtu23*PDstandardNth1gt13) -
+ gtu22*PDstandardNth2gt11 - gtu23*PDstandardNth3gt11);
- CCTK_REAL Gt311 = khalf*(gtu31*PDstandardNth1gt11 +
- 2*(gtu32*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
- gtu32*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
+ CCTK_REAL Gt311 = khalf*(gtu13*PDstandardNth1gt11 +
+ 2*(gtu23*PDstandardNth1gt12 + gtu33*PDstandardNth1gt13) -
+ gtu23*PDstandardNth2gt11 - gtu33*PDstandardNth3gt11);
- CCTK_REAL Gt112 = khalf*(gtu21*PDstandardNth1gt22 +
- gtu11*PDstandardNth2gt11 + gtu31*(PDstandardNth1gt23 +
+ CCTK_REAL Gt112 = khalf*(gtu12*PDstandardNth1gt22 +
+ gtu11*PDstandardNth2gt11 + gtu13*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
CCTK_REAL Gt212 = khalf*(gtu22*PDstandardNth1gt22 +
- gtu21*PDstandardNth2gt11 + gtu32*(PDstandardNth1gt23 +
+ gtu12*PDstandardNth2gt11 + gtu23*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt312 = khalf*(gtu32*PDstandardNth1gt22 +
- gtu31*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
+ CCTK_REAL Gt312 = khalf*(gtu23*PDstandardNth1gt22 +
+ gtu13*PDstandardNth2gt11 + gtu33*(PDstandardNth1gt23 +
PDstandardNth2gt13 - PDstandardNth3gt12));
- CCTK_REAL Gt113 = khalf*(gtu31*PDstandardNth1gt33 +
- gtu11*PDstandardNth3gt11 + gtu21*(PDstandardNth1gt23 -
+ CCTK_REAL Gt113 = khalf*(gtu13*PDstandardNth1gt33 +
+ gtu11*PDstandardNth3gt11 + gtu12*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
- CCTK_REAL Gt213 = khalf*(gtu32*PDstandardNth1gt33 +
- gtu21*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
+ CCTK_REAL Gt213 = khalf*(gtu23*PDstandardNth1gt33 +
+ gtu12*PDstandardNth3gt11 + gtu22*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt313 = khalf*(gtu33*PDstandardNth1gt33 +
- gtu31*PDstandardNth3gt11 + gtu32*(PDstandardNth1gt23 -
+ gtu13*PDstandardNth3gt11 + gtu23*(PDstandardNth1gt23 -
PDstandardNth2gt13 + PDstandardNth3gt12));
CCTK_REAL Gt122 = khalf*(gtu11*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu21*PDstandardNth2gt22 +
- gtu31*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ 2*PDstandardNth2gt12) + gtu12*PDstandardNth2gt22 +
+ gtu13*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt222 = khalf*(gtu21*(-PDstandardNth1gt22 +
+ CCTK_REAL Gt222 = khalf*(gtu12*(-PDstandardNth1gt22 +
2*PDstandardNth2gt12) + gtu22*PDstandardNth2gt22 +
- gtu32*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
+ gtu23*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt322 = khalf*(gtu31*(-PDstandardNth1gt22 +
- 2*PDstandardNth2gt12) + gtu32*PDstandardNth2gt22 +
+ CCTK_REAL Gt322 = khalf*(gtu13*(-PDstandardNth1gt22 +
+ 2*PDstandardNth2gt12) + gtu23*PDstandardNth2gt22 +
gtu33*(2*PDstandardNth2gt23 - PDstandardNth3gt22));
- CCTK_REAL Gt123 = khalf*(gtu31*PDstandardNth2gt33 +
+ CCTK_REAL Gt123 = khalf*(gtu13*PDstandardNth2gt33 +
gtu11*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu21*PDstandardNth3gt22);
+ gtu12*PDstandardNth3gt22);
- CCTK_REAL Gt223 = khalf*(gtu32*PDstandardNth2gt33 +
- gtu21*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ CCTK_REAL Gt223 = khalf*(gtu23*PDstandardNth2gt33 +
+ gtu12*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
gtu22*PDstandardNth3gt22);
CCTK_REAL Gt323 = khalf*(gtu33*PDstandardNth2gt33 +
- gtu31*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
- gtu32*PDstandardNth3gt22);
+ gtu13*(-PDstandardNth1gt23 + PDstandardNth2gt13 + PDstandardNth3gt12) +
+ gtu23*PDstandardNth3gt22);
CCTK_REAL Gt133 = khalf*(-(gtu11*PDstandardNth1gt33) -
- gtu21*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
- 2*gtu21*PDstandardNth3gt23 + gtu31*PDstandardNth3gt33);
+ gtu12*PDstandardNth2gt33 + 2*gtu11*PDstandardNth3gt13 +
+ 2*gtu12*PDstandardNth3gt23 + gtu13*PDstandardNth3gt33);
- CCTK_REAL Gt233 = khalf*(-(gtu21*PDstandardNth1gt33) -
- gtu22*PDstandardNth2gt33 + 2*gtu21*PDstandardNth3gt13 +
- 2*gtu22*PDstandardNth3gt23 + gtu32*PDstandardNth3gt33);
+ CCTK_REAL Gt233 = khalf*(-(gtu12*PDstandardNth1gt33) -
+ gtu22*PDstandardNth2gt33 + 2*gtu12*PDstandardNth3gt13 +
+ 2*gtu22*PDstandardNth3gt23 + gtu23*PDstandardNth3gt33);
- CCTK_REAL Gt333 = khalf*(-(gtu31*PDstandardNth1gt33) -
- gtu32*PDstandardNth2gt33 + 2*gtu31*PDstandardNth3gt13 +
- 2*gtu32*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
+ CCTK_REAL Gt333 = khalf*(-(gtu13*PDstandardNth1gt33) -
+ gtu23*PDstandardNth2gt33 + 2*gtu13*PDstandardNth3gt13 +
+ 2*gtu23*PDstandardNth3gt23 + gtu33*PDstandardNth3gt33);
- CCTK_REAL Xt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 +
- Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33;
+ CCTK_REAL Xt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu12 +
+ Gt113*gtu13 + Gt123*gtu23) + Gt133*gtu33;
- CCTK_REAL Xt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu21 +
- Gt213*gtu31 + Gt223*gtu32) + Gt233*gtu33;
+ CCTK_REAL Xt2L = Gt211*gtu11 + Gt222*gtu22 + 2*(Gt212*gtu12 +
+ Gt213*gtu13 + Gt223*gtu23) + Gt233*gtu33;
- CCTK_REAL Xt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu21 +
- Gt313*gtu31 + Gt323*gtu32) + Gt333*gtu33;
+ CCTK_REAL Xt3L = Gt311*gtu11 + Gt322*gtu22 + 2*(Gt312*gtu12 +
+ Gt313*gtu13 + Gt323*gtu23) + Gt333*gtu33;
CCTK_REAL AL = 12*IfThen(LapseACoeff !=
0,-(dtalpL*INV(harmonicF)*pow(alphaL,-harmonicN)),0) +
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.c b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.c
index cf9c905..4b00d04 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShift.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_convertToADMBaseDtLapseShift_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift.");
+ return;
+}
+
void ML_BSSN_O8_convertToADMBaseDtLapseShift_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.c b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.c
index 463a8bb..b32257b 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtlapse","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtlapse.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ADMBase::dtshift","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ADMBase::dtshift.");
+ return;
+}
+
void ML_BSSN_O8_convertToADMBaseDtLapseShiftBoundary_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_enforce.c b/ML_BSSN_O8/src/ML_BSSN_O8_enforce.c
index 5fb8658..6c02be5 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_enforce.c
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_enforce.c
@@ -119,18 +119,18 @@ void ML_BSSN_O8_enforce_Body(cGH const * restrict const cctkGH, int const dir, i
CCTK_REAL gtu11 = INV(detgt)*(gt22L*gt33L - SQR(gt23L));
- CCTK_REAL gtu21 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
+ CCTK_REAL gtu12 = (gt13L*gt23L - gt12L*gt33L)*INV(detgt);
- CCTK_REAL gtu31 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
+ CCTK_REAL gtu13 = (-(gt13L*gt22L) + gt12L*gt23L)*INV(detgt);
CCTK_REAL gtu22 = INV(detgt)*(gt11L*gt33L - SQR(gt13L));
- CCTK_REAL gtu32 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
+ CCTK_REAL gtu23 = (gt12L*gt13L - gt11L*gt23L)*INV(detgt);
CCTK_REAL gtu33 = INV(detgt)*(gt11L*gt22L - SQR(gt12L));
- CCTK_REAL trAt = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu21 +
- At13L*gtu31 + At23L*gtu32) + At33L*gtu33;
+ CCTK_REAL trAt = At11L*gtu11 + At22L*gtu22 + 2*(At12L*gtu12 +
+ At13L*gtu13 + At23L*gtu23) + At33L*gtu33;
At11L = At11L - gt11L*kthird*trAt;
diff --git a/ML_BSSN_O8_Helper/schedule.ccl b/ML_BSSN_O8_Helper/schedule.ccl
index 41cd0ef..be82e75 100644
--- a/ML_BSSN_O8_Helper/schedule.ccl
+++ b/ML_BSSN_O8_Helper/schedule.ccl
@@ -132,7 +132,7 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN_O8")) {
}
else if (CCTK_EQUALS (calculate_ADMBase_variables_at, "CCTK_EVOL"))
{
- SCHEDULE GROUP ML_BSSN_O8_convertToADMBaseGroupWrapper AT evol AFTER MoL_Evolution BEFORE (ADMBase_SetADMVars Whisky_PostStep)
+ SCHEDULE GROUP ML_BSSN_O8_convertToADMBaseGroupWrapper IN MoL_PseudoEvolution BEFORE (ADMBase_SetADMVars Whisky_PostStep)
{
} "Calculate ADM variables"
}
@@ -143,7 +143,7 @@ if (CCTK_EQUALS (evolution_method, "ML_BSSN_O8")) {
} "Calculate ADM variables"
}
- SCHEDULE GROUP ML_BSSN_O8_convertToADMBaseGroupWrapper AT CCTK_POST_RECOVER_VARIABLES
+ SCHEDULE GROUP ML_BSSN_O8_convertToADMBaseGroupWrapper AT post_recover_variables
{
} "Calculate ADM variables"
diff --git a/ML_WaveToy/interface.ccl b/ML_WaveToy/interface.ccl
index 0eaf036..5a72a99 100644
--- a/ML_WaveToy/interface.ccl
+++ b/ML_WaveToy/interface.ccl
@@ -25,25 +25,25 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL WT_rho type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_rho type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1'
{
rho
} "WT_rho"
public:
-CCTK_REAL WT_u type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_u type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1'
{
u
} "WT_u"
public:
-CCTK_REAL WT_rhorhs type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_rhorhs type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1'
{
rhorhs
} "WT_rhorhs"
public:
-CCTK_REAL WT_urhs type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_urhs type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1'
{
urhs
} "WT_urhs"
diff --git a/ML_WaveToy/schedule.ccl b/ML_WaveToy/schedule.ccl
index 883a31b..9517af0 100644
--- a/ML_WaveToy/schedule.ccl
+++ b/ML_WaveToy/schedule.ccl
@@ -86,7 +86,7 @@ schedule ML_WaveToy_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_WaveToy_ApplyBCs in MoL_PostStep after ML_WaveToy_SelectBoundConds
+schedule group ApplyBCs as ML_WaveToy_ApplyBCs in MoL_PostStep after ML_WaveToy_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_WaveToy/src/WT_RHS.c b/ML_WaveToy/src/WT_RHS.c
index 4f0e59f..35cdb5c 100644
--- a/ML_WaveToy/src/WT_RHS.c
+++ b/ML_WaveToy/src/WT_RHS.c
@@ -20,6 +20,21 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
+void WT_RHS_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_WaveToy::WT_rhorhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_WaveToy::WT_rhorhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_WaveToy::WT_urhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_WaveToy::WT_urhs.");
+ return;
+}
+
void WT_RHS_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
diff --git a/ML_WaveToyFO/interface.ccl b/ML_WaveToyFO/interface.ccl
index cdb6319..5ed9b36 100644
--- a/ML_WaveToyFO/interface.ccl
+++ b/ML_WaveToyFO/interface.ccl
@@ -8,7 +8,6 @@ inherits: Grid GenericFD Boundary
USES INCLUDE: GenericFD.h
USES INCLUDE: Symmetry.h
-USES INCLUDE: Vectors.hh
USES INCLUDE: sbp_calc_coeffs.h
USES INCLUDE: Boundary.h
USES INCLUDE: loopcontrol.h
@@ -26,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL WT_w type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_w type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1'
{
w1,
w2,
@@ -34,19 +33,19 @@ CCTK_REAL WT_w type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1.000
} "WT_w"
public:
-CCTK_REAL WT_rho type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_rho type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1'
{
rho
} "WT_rho"
public:
-CCTK_REAL WT_u type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_u type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1'
{
u
} "WT_u"
public:
-CCTK_REAL WT_v type=GF timelevels=2 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_v type=GF timelevels=2 tags='tensortypealias="D" tensorweight=1'
{
v1,
v2,
@@ -54,19 +53,19 @@ CCTK_REAL WT_v type=GF timelevels=2 tags='tensortypealias="D" tensorweight=1.000
} "WT_v"
public:
-CCTK_REAL WT_rhorhs type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_rhorhs type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1'
{
rhorhs
} "WT_rhorhs"
public:
-CCTK_REAL WT_urhs type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_urhs type=GF timelevels=2 tags='tensortypealias="Scalar" tensorweight=1'
{
urhs
} "WT_urhs"
public:
-CCTK_REAL WT_vrhs type=GF timelevels=2 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL WT_vrhs type=GF timelevels=2 tags='tensortypealias="D" tensorweight=1'
{
v1rhs,
v2rhs,
diff --git a/ML_WaveToyFO/src/Differencing.h b/ML_WaveToyFO/src/Differencing.h
index 1c7a87f..aa21060 100644
--- a/ML_WaveToyFO/src/Differencing.h
+++ b/ML_WaveToyFO/src/Differencing.h
@@ -1,12 +1,12 @@
-#define PDstandardNth1(u,i,j,k) (p1o12dx*(-8*vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(0)]) + 8*vec_loadu((u)[index+di*(1)+dj*(0)+dk*(0)]) + vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(0)]) - vec_loadu((u)[index+di*(2)+dj*(0)+dk*(0)])))
-#define PDstandardNth2(u,i,j,k) (p1o12dy*(-8*vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(0)]) + 8*vec_loadu((u)[index+di*(0)+dj*(1)+dk*(0)]) + vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(0)]) - vec_loadu((u)[index+di*(0)+dj*(2)+dk*(0)])))
-#define PDstandardNth3(u,i,j,k) (p1o12dz*(-8*vec_loadu((u)[index+di*(0)+dj*(0)+dk*(-1)]) + 8*vec_loadu((u)[index+di*(0)+dj*(0)+dk*(1)]) + vec_loadu((u)[index+di*(0)+dj*(0)+dk*(-2)]) - vec_loadu((u)[index+di*(0)+dj*(0)+dk*(2)])))
-#define PDstandardNth11(u,i,j,k) (pm1o12dx2*(30*vec_loadu((u)[index+di*(0)+dj*(0)+dk*(0)]) - 16*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(0)])) + vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(0)]) + vec_loadu((u)[index+di*(2)+dj*(0)+dk*(0)])))
-#define PDstandardNth22(u,i,j,k) (pm1o12dy2*(30*vec_loadu((u)[index+di*(0)+dj*(0)+dk*(0)]) - 16*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(0)])) + vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(0)]) + vec_loadu((u)[index+di*(0)+dj*(2)+dk*(0)])))
-#define PDstandardNth33(u,i,j,k) (pm1o12dz2*(30*vec_loadu((u)[index+di*(0)+dj*(0)+dk*(0)]) - 16*(vec_loadu((u)[index+di*(0)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(0)+dk*(1)])) + vec_loadu((u)[index+di*(0)+dj*(0)+dk*(-2)]) + vec_loadu((u)[index+di*(0)+dj*(0)+dk*(2)])))
-#define PDstandardNth12(u,i,j,k) (p1o144dxdy*(-64*(vec_loadu((u)[index+di*(-1)+dj*(1)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(-1)+dk*(0)])) + 64*(vec_loadu((u)[index+di*(-1)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(1)+dk*(0)])) + 8*(vec_loadu((u)[index+di*(-1)+dj*(2)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(-2)+dk*(0)]) + vec_loadu((u)[index+di*(-2)+dj*(1)+dk*(0)]) + vec_loadu((u)[index+di*(2)+dj*(-1)+dk*(0)])) - 8*(vec_loadu((u)[index+di*(-1)+dj*(-2)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(2)+dk*(0)]) + vec_loadu((u)[index+di*(-2)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(2)+dj*(1)+dk*(0)])) + vec_loadu((u)[index+di*(-2)+dj*(-2)+dk*(0)]) - vec_loadu((u)[index+di*(-2)+dj*(2)+dk*(0)]) - vec_loadu((u)[index+di*(2)+dj*(-2)+dk*(0)]) + vec_loadu((u)[index+di*(2)+dj*(2)+dk*(0)])))
-#define PDstandardNth13(u,i,j,k) (p1o144dxdz*(-64*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(1)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(-1)])) + 64*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(1)])) + 8*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(2)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(-2)]) + vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(1)]) + vec_loadu((u)[index+di*(2)+dj*(0)+dk*(-1)])) - 8*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(-2)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(2)]) + vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(2)+dj*(0)+dk*(1)])) + vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(-2)]) - vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(2)]) - vec_loadu((u)[index+di*(2)+dj*(0)+dk*(-2)]) + vec_loadu((u)[index+di*(2)+dj*(0)+dk*(2)])))
-#define PDstandardNth21(u,i,j,k) (p1o144dxdy*(-64*(vec_loadu((u)[index+di*(-1)+dj*(1)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(-1)+dk*(0)])) + 64*(vec_loadu((u)[index+di*(-1)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(1)+dk*(0)])) + 8*(vec_loadu((u)[index+di*(-1)+dj*(2)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(-2)+dk*(0)]) + vec_loadu((u)[index+di*(-2)+dj*(1)+dk*(0)]) + vec_loadu((u)[index+di*(2)+dj*(-1)+dk*(0)])) - 8*(vec_loadu((u)[index+di*(-1)+dj*(-2)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(2)+dk*(0)]) + vec_loadu((u)[index+di*(-2)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(2)+dj*(1)+dk*(0)])) + vec_loadu((u)[index+di*(-2)+dj*(-2)+dk*(0)]) - vec_loadu((u)[index+di*(-2)+dj*(2)+dk*(0)]) - vec_loadu((u)[index+di*(2)+dj*(-2)+dk*(0)]) + vec_loadu((u)[index+di*(2)+dj*(2)+dk*(0)])))
-#define PDstandardNth23(u,i,j,k) (p1o144dydz*(-64*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(1)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(-1)])) + 64*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(1)])) + 8*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(2)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(-2)]) + vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(1)]) + vec_loadu((u)[index+di*(0)+dj*(2)+dk*(-1)])) - 8*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(-2)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(2)]) + vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(2)+dk*(1)])) + vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(-2)]) - vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(2)]) - vec_loadu((u)[index+di*(0)+dj*(2)+dk*(-2)]) + vec_loadu((u)[index+di*(0)+dj*(2)+dk*(2)])))
-#define PDstandardNth31(u,i,j,k) (p1o144dxdz*(-64*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(1)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(-1)])) + 64*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(1)])) + 8*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(2)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(-2)]) + vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(1)]) + vec_loadu((u)[index+di*(2)+dj*(0)+dk*(-1)])) - 8*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(-2)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(2)]) + vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(2)+dj*(0)+dk*(1)])) + vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(-2)]) - vec_loadu((u)[index+di*(-2)+dj*(0)+dk*(2)]) - vec_loadu((u)[index+di*(2)+dj*(0)+dk*(-2)]) + vec_loadu((u)[index+di*(2)+dj*(0)+dk*(2)])))
-#define PDstandardNth32(u,i,j,k) (p1o144dydz*(-64*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(1)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(-1)])) + 64*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(1)])) + 8*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(2)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(-2)]) + vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(1)]) + vec_loadu((u)[index+di*(0)+dj*(2)+dk*(-1)])) - 8*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(-2)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(2)]) + vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(2)+dk*(1)])) + vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(-2)]) - vec_loadu((u)[index+di*(0)+dj*(-2)+dk*(2)]) - vec_loadu((u)[index+di*(0)+dj*(2)+dk*(-2)]) + vec_loadu((u)[index+di*(0)+dj*(2)+dk*(2)])))
+#define PDstandardNth1(u,i,j,k) (p1o12dx*(-8*(u)[index+di*(-1)+dj*(0)+dk*(0)] + 8*(u)[index+di*(1)+dj*(0)+dk*(0)] + (u)[index+di*(-2)+dj*(0)+dk*(0)] - (u)[index+di*(2)+dj*(0)+dk*(0)]))
+#define PDstandardNth2(u,i,j,k) (p1o12dy*(-8*(u)[index+di*(0)+dj*(-1)+dk*(0)] + 8*(u)[index+di*(0)+dj*(1)+dk*(0)] + (u)[index+di*(0)+dj*(-2)+dk*(0)] - (u)[index+di*(0)+dj*(2)+dk*(0)]))
+#define PDstandardNth3(u,i,j,k) (p1o12dz*(-8*(u)[index+di*(0)+dj*(0)+dk*(-1)] + 8*(u)[index+di*(0)+dj*(0)+dk*(1)] + (u)[index+di*(0)+dj*(0)+dk*(-2)] - (u)[index+di*(0)+dj*(0)+dk*(2)]))
+#define PDstandardNth11(u,i,j,k) (pm1o12dx2*(30*(u)[index+di*(0)+dj*(0)+dk*(0)] - 16*((u)[index+di*(-1)+dj*(0)+dk*(0)] + (u)[index+di*(1)+dj*(0)+dk*(0)]) + (u)[index+di*(-2)+dj*(0)+dk*(0)] + (u)[index+di*(2)+dj*(0)+dk*(0)]))
+#define PDstandardNth22(u,i,j,k) (pm1o12dy2*(30*(u)[index+di*(0)+dj*(0)+dk*(0)] - 16*((u)[index+di*(0)+dj*(-1)+dk*(0)] + (u)[index+di*(0)+dj*(1)+dk*(0)]) + (u)[index+di*(0)+dj*(-2)+dk*(0)] + (u)[index+di*(0)+dj*(2)+dk*(0)]))
+#define PDstandardNth33(u,i,j,k) (pm1o12dz2*(30*(u)[index+di*(0)+dj*(0)+dk*(0)] - 16*((u)[index+di*(0)+dj*(0)+dk*(-1)] + (u)[index+di*(0)+dj*(0)+dk*(1)]) + (u)[index+di*(0)+dj*(0)+dk*(-2)] + (u)[index+di*(0)+dj*(0)+dk*(2)]))
+#define PDstandardNth12(u,i,j,k) (p1o144dxdy*(-64*((u)[index+di*(-1)+dj*(1)+dk*(0)] + (u)[index+di*(1)+dj*(-1)+dk*(0)]) + 64*((u)[index+di*(-1)+dj*(-1)+dk*(0)] + (u)[index+di*(1)+dj*(1)+dk*(0)]) + 8*((u)[index+di*(-1)+dj*(2)+dk*(0)] + (u)[index+di*(1)+dj*(-2)+dk*(0)] + (u)[index+di*(-2)+dj*(1)+dk*(0)] + (u)[index+di*(2)+dj*(-1)+dk*(0)]) - 8*((u)[index+di*(-1)+dj*(-2)+dk*(0)] + (u)[index+di*(1)+dj*(2)+dk*(0)] + (u)[index+di*(-2)+dj*(-1)+dk*(0)] + (u)[index+di*(2)+dj*(1)+dk*(0)]) + (u)[index+di*(-2)+dj*(-2)+dk*(0)] - (u)[index+di*(-2)+dj*(2)+dk*(0)] - (u)[index+di*(2)+dj*(-2)+dk*(0)] + (u)[index+di*(2)+dj*(2)+dk*(0)]))
+#define PDstandardNth13(u,i,j,k) (p1o144dxdz*(-64*((u)[index+di*(-1)+dj*(0)+dk*(1)] + (u)[index+di*(1)+dj*(0)+dk*(-1)]) + 64*((u)[index+di*(-1)+dj*(0)+dk*(-1)] + (u)[index+di*(1)+dj*(0)+dk*(1)]) + 8*((u)[index+di*(-1)+dj*(0)+dk*(2)] + (u)[index+di*(1)+dj*(0)+dk*(-2)] + (u)[index+di*(-2)+dj*(0)+dk*(1)] + (u)[index+di*(2)+dj*(0)+dk*(-1)]) - 8*((u)[index+di*(-1)+dj*(0)+dk*(-2)] + (u)[index+di*(1)+dj*(0)+dk*(2)] + (u)[index+di*(-2)+dj*(0)+dk*(-1)] + (u)[index+di*(2)+dj*(0)+dk*(1)]) + (u)[index+di*(-2)+dj*(0)+dk*(-2)] - (u)[index+di*(-2)+dj*(0)+dk*(2)] - (u)[index+di*(2)+dj*(0)+dk*(-2)] + (u)[index+di*(2)+dj*(0)+dk*(2)]))
+#define PDstandardNth21(u,i,j,k) (p1o144dxdy*(-64*((u)[index+di*(-1)+dj*(1)+dk*(0)] + (u)[index+di*(1)+dj*(-1)+dk*(0)]) + 64*((u)[index+di*(-1)+dj*(-1)+dk*(0)] + (u)[index+di*(1)+dj*(1)+dk*(0)]) + 8*((u)[index+di*(-1)+dj*(2)+dk*(0)] + (u)[index+di*(1)+dj*(-2)+dk*(0)] + (u)[index+di*(-2)+dj*(1)+dk*(0)] + (u)[index+di*(2)+dj*(-1)+dk*(0)]) - 8*((u)[index+di*(-1)+dj*(-2)+dk*(0)] + (u)[index+di*(1)+dj*(2)+dk*(0)] + (u)[index+di*(-2)+dj*(-1)+dk*(0)] + (u)[index+di*(2)+dj*(1)+dk*(0)]) + (u)[index+di*(-2)+dj*(-2)+dk*(0)] - (u)[index+di*(-2)+dj*(2)+dk*(0)] - (u)[index+di*(2)+dj*(-2)+dk*(0)] + (u)[index+di*(2)+dj*(2)+dk*(0)]))
+#define PDstandardNth23(u,i,j,k) (p1o144dydz*(-64*((u)[index+di*(0)+dj*(-1)+dk*(1)] + (u)[index+di*(0)+dj*(1)+dk*(-1)]) + 64*((u)[index+di*(0)+dj*(-1)+dk*(-1)] + (u)[index+di*(0)+dj*(1)+dk*(1)]) + 8*((u)[index+di*(0)+dj*(-1)+dk*(2)] + (u)[index+di*(0)+dj*(1)+dk*(-2)] + (u)[index+di*(0)+dj*(-2)+dk*(1)] + (u)[index+di*(0)+dj*(2)+dk*(-1)]) - 8*((u)[index+di*(0)+dj*(-1)+dk*(-2)] + (u)[index+di*(0)+dj*(1)+dk*(2)] + (u)[index+di*(0)+dj*(-2)+dk*(-1)] + (u)[index+di*(0)+dj*(2)+dk*(1)]) + (u)[index+di*(0)+dj*(-2)+dk*(-2)] - (u)[index+di*(0)+dj*(-2)+dk*(2)] - (u)[index+di*(0)+dj*(2)+dk*(-2)] + (u)[index+di*(0)+dj*(2)+dk*(2)]))
+#define PDstandardNth31(u,i,j,k) (p1o144dxdz*(-64*((u)[index+di*(-1)+dj*(0)+dk*(1)] + (u)[index+di*(1)+dj*(0)+dk*(-1)]) + 64*((u)[index+di*(-1)+dj*(0)+dk*(-1)] + (u)[index+di*(1)+dj*(0)+dk*(1)]) + 8*((u)[index+di*(-1)+dj*(0)+dk*(2)] + (u)[index+di*(1)+dj*(0)+dk*(-2)] + (u)[index+di*(-2)+dj*(0)+dk*(1)] + (u)[index+di*(2)+dj*(0)+dk*(-1)]) - 8*((u)[index+di*(-1)+dj*(0)+dk*(-2)] + (u)[index+di*(1)+dj*(0)+dk*(2)] + (u)[index+di*(-2)+dj*(0)+dk*(-1)] + (u)[index+di*(2)+dj*(0)+dk*(1)]) + (u)[index+di*(-2)+dj*(0)+dk*(-2)] - (u)[index+di*(-2)+dj*(0)+dk*(2)] - (u)[index+di*(2)+dj*(0)+dk*(-2)] + (u)[index+di*(2)+dj*(0)+dk*(2)]))
+#define PDstandardNth32(u,i,j,k) (p1o144dydz*(-64*((u)[index+di*(0)+dj*(-1)+dk*(1)] + (u)[index+di*(0)+dj*(1)+dk*(-1)]) + 64*((u)[index+di*(0)+dj*(-1)+dk*(-1)] + (u)[index+di*(0)+dj*(1)+dk*(1)]) + 8*((u)[index+di*(0)+dj*(-1)+dk*(2)] + (u)[index+di*(0)+dj*(1)+dk*(-2)] + (u)[index+di*(0)+dj*(-2)+dk*(1)] + (u)[index+di*(0)+dj*(2)+dk*(-1)]) - 8*((u)[index+di*(0)+dj*(-1)+dk*(-2)] + (u)[index+di*(0)+dj*(1)+dk*(2)] + (u)[index+di*(0)+dj*(-2)+dk*(-1)] + (u)[index+di*(0)+dj*(2)+dk*(1)]) + (u)[index+di*(0)+dj*(-2)+dk*(-2)] - (u)[index+di*(0)+dj*(-2)+dk*(2)] - (u)[index+di*(0)+dj*(2)+dk*(-2)] + (u)[index+di*(0)+dj*(2)+dk*(2)]))
diff --git a/ML_WaveToyFO/src/WTFO_Gaussian.c b/ML_WaveToyFO/src/WTFO_Gaussian.c
new file mode 100644
index 0000000..44057a7
--- /dev/null
+++ b/ML_WaveToyFO/src/WTFO_Gaussian.c
@@ -0,0 +1,117 @@
+/* File produced by Kranc */
+
+#define KRANC_C
+
+#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
+#include "GenericFD.h"
+#include "Differencing.h"
+#include "loopcontrol.h"
+
+/* Define macros used in calculations */
+#define INITVALUE (42)
+#define INV(x) ((1.0) / (x))
+#define SQR(x) ((x) * (x))
+#define CUB(x) ((x) * (x) * (x))
+#define QAD(x) ((x) * (x) * (x) * (x))
+
+void WTFO_Gaussian_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+
+ /* Declare finite differencing variables */
+
+ if (verbose > 1)
+ {
+ CCTK_VInfo(CCTK_THORNSTRING,"Entering WTFO_Gaussian_Body");
+ }
+
+ if (cctk_iteration % WTFO_Gaussian_calc_every != WTFO_Gaussian_calc_offset)
+ {
+ return;
+ }
+
+ /* Include user-supplied include files */
+
+ /* Initialise finite differencing variables */
+ CCTK_REAL const dx = CCTK_DELTA_SPACE(0);
+ CCTK_REAL const dy = CCTK_DELTA_SPACE(1);
+ CCTK_REAL const dz = CCTK_DELTA_SPACE(2);
+ int const di = 1;
+ int const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0);
+ int const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0);
+ CCTK_REAL const dxi = 1.0 / dx;
+ CCTK_REAL const dyi = 1.0 / dy;
+ CCTK_REAL const dzi = 1.0 / dz;
+ CCTK_REAL const khalf = 0.5;
+ CCTK_REAL const kthird = 1/3.0;
+ CCTK_REAL const ktwothird = 2.0/3.0;
+ CCTK_REAL const kfourthird = 4.0/3.0;
+ CCTK_REAL const keightthird = 8.0/3.0;
+ CCTK_REAL const hdxi = 0.5 * dxi;
+ CCTK_REAL const hdyi = 0.5 * dyi;
+ CCTK_REAL const hdzi = 0.5 * dzi;
+
+ /* Initialize predefined quantities */
+ CCTK_REAL const p1o12dx = INV(dx)/12.;
+ CCTK_REAL const p1o12dy = INV(dy)/12.;
+ CCTK_REAL const p1o12dz = INV(dz)/12.;
+ CCTK_REAL const p1o144dxdy = (INV(dx)*INV(dy))/144.;
+ CCTK_REAL const p1o144dxdz = (INV(dx)*INV(dz))/144.;
+ CCTK_REAL const p1o144dydz = (INV(dy)*INV(dz))/144.;
+ CCTK_REAL const pm1o12dx2 = -pow(dx,-2)/12.;
+ CCTK_REAL const pm1o12dy2 = -pow(dy,-2)/12.;
+ CCTK_REAL const pm1o12dz2 = -pow(dz,-2)/12.;
+
+ /* Loop over the grid points */
+ #pragma omp parallel
+ LC_LOOP3 (WTFO_Gaussian,
+ i,j,k, min[0],min[1],min[2], max[0],max[1],max[2],
+ cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ {
+ // int index = INITVALUE;
+ int const index = CCTK_GFINDEX3D(cctkGH,i,j,k);
+ /* Declare derivatives */
+
+ /* Assign local copies of grid functions */
+
+ /* Include user supplied include files */
+
+ /* Precompute derivatives */
+
+ /* Calculate temporaries and grid functions */
+ CCTK_REAL uL = 0;
+
+ CCTK_REAL v1L = 0;
+
+ CCTK_REAL v2L = 0;
+
+ CCTK_REAL v3L = 0;
+
+ CCTK_REAL rhoL = 0;
+
+
+ /* Copy local copies back to grid functions */
+ rho[index] = rhoL;
+ u[index] = uL;
+ v1[index] = v1L;
+ v2[index] = v2L;
+ v3[index] = v3L;
+ }
+ LC_ENDLOOP3 (WTFO_Gaussian);
+}
+
+void WTFO_Gaussian(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ GenericFD_LoopOverEverything(cctkGH, &WTFO_Gaussian_Body);
+}
diff --git a/ML_WaveToyFO/src/WTFO_RHS.c b/ML_WaveToyFO/src/WTFO_RHS.c
new file mode 100644
index 0000000..2d76002
--- /dev/null
+++ b/ML_WaveToyFO/src/WTFO_RHS.c
@@ -0,0 +1,152 @@
+/* File produced by Kranc */
+
+#define KRANC_C
+
+#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
+#include "GenericFD.h"
+#include "Differencing.h"
+#include "loopcontrol.h"
+
+/* Define macros used in calculations */
+#define INITVALUE (42)
+#define INV(x) ((1.0) / (x))
+#define SQR(x) ((x) * (x))
+#define CUB(x) ((x) * (x) * (x))
+#define QAD(x) ((x) * (x) * (x) * (x))
+
+void WTFO_RHS_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_WaveToyFO::WT_rhorhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register flat BC for ML_WaveToyFO::WT_rhorhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_WaveToyFO::WT_urhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register flat BC for ML_WaveToyFO::WT_urhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_WaveToyFO::WT_vrhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register flat BC for ML_WaveToyFO::WT_vrhs.");
+ return;
+}
+
+void WTFO_RHS_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+
+ /* Declare finite differencing variables */
+
+ if (verbose > 1)
+ {
+ CCTK_VInfo(CCTK_THORNSTRING,"Entering WTFO_RHS_Body");
+ }
+
+ if (cctk_iteration % WTFO_RHS_calc_every != WTFO_RHS_calc_offset)
+ {
+ return;
+ }
+
+ /* Include user-supplied include files */
+
+ /* Initialise finite differencing variables */
+ CCTK_REAL const dx = CCTK_DELTA_SPACE(0);
+ CCTK_REAL const dy = CCTK_DELTA_SPACE(1);
+ CCTK_REAL const dz = CCTK_DELTA_SPACE(2);
+ int const di = 1;
+ int const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0);
+ int const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0);
+ CCTK_REAL const dxi = 1.0 / dx;
+ CCTK_REAL const dyi = 1.0 / dy;
+ CCTK_REAL const dzi = 1.0 / dz;
+ CCTK_REAL const khalf = 0.5;
+ CCTK_REAL const kthird = 1/3.0;
+ CCTK_REAL const ktwothird = 2.0/3.0;
+ CCTK_REAL const kfourthird = 4.0/3.0;
+ CCTK_REAL const keightthird = 8.0/3.0;
+ CCTK_REAL const hdxi = 0.5 * dxi;
+ CCTK_REAL const hdyi = 0.5 * dyi;
+ CCTK_REAL const hdzi = 0.5 * dzi;
+
+ /* Initialize predefined quantities */
+ CCTK_REAL const p1o12dx = INV(dx)/12.;
+ CCTK_REAL const p1o12dy = INV(dy)/12.;
+ CCTK_REAL const p1o12dz = INV(dz)/12.;
+ CCTK_REAL const p1o144dxdy = (INV(dx)*INV(dy))/144.;
+ CCTK_REAL const p1o144dxdz = (INV(dx)*INV(dz))/144.;
+ CCTK_REAL const p1o144dydz = (INV(dy)*INV(dz))/144.;
+ CCTK_REAL const pm1o12dx2 = -pow(dx,-2)/12.;
+ CCTK_REAL const pm1o12dy2 = -pow(dy,-2)/12.;
+ CCTK_REAL const pm1o12dz2 = -pow(dz,-2)/12.;
+
+ /* Loop over the grid points */
+ #pragma omp parallel
+ LC_LOOP3 (WTFO_RHS,
+ i,j,k, min[0],min[1],min[2], max[0],max[1],max[2],
+ cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ {
+ // int index = INITVALUE;
+ int const index = CCTK_GFINDEX3D(cctkGH,i,j,k);
+ /* Declare derivatives */
+ // CCTK_REAL PDstandardNth1rho = INITVALUE;
+ // CCTK_REAL PDstandardNth2rho = INITVALUE;
+ // CCTK_REAL PDstandardNth3rho = INITVALUE;
+ // CCTK_REAL PDstandardNth1v1 = INITVALUE;
+ // CCTK_REAL PDstandardNth2v2 = INITVALUE;
+ // CCTK_REAL PDstandardNth3v3 = INITVALUE;
+
+ /* Assign local copies of grid functions */
+ CCTK_REAL rhoL = rho[index];
+ CCTK_REAL v1L = v1[index];
+ CCTK_REAL v2L = v2[index];
+ CCTK_REAL v3L = v3[index];
+
+ /* Include user supplied include files */
+
+ /* Precompute derivatives */
+ CCTK_REAL const PDstandardNth1rho = PDstandardNth1(rho, i, j, k);
+ CCTK_REAL const PDstandardNth2rho = PDstandardNth2(rho, i, j, k);
+ CCTK_REAL const PDstandardNth3rho = PDstandardNth3(rho, i, j, k);
+ CCTK_REAL const PDstandardNth1v1 = PDstandardNth1(v1, i, j, k);
+ CCTK_REAL const PDstandardNth2v2 = PDstandardNth2(v2, i, j, k);
+ CCTK_REAL const PDstandardNth3v3 = PDstandardNth3(v3, i, j, k);
+
+ /* Calculate temporaries and grid functions */
+ CCTK_REAL urhsL = rhoL;
+
+ CCTK_REAL rhorhsL = PDstandardNth1v1 + PDstandardNth2v2 +
+ PDstandardNth3v3;
+
+ CCTK_REAL v1rhsL = PDstandardNth1rho;
+
+ CCTK_REAL v2rhsL = PDstandardNth2rho;
+
+ CCTK_REAL v3rhsL = PDstandardNth3rho;
+
+
+ /* Copy local copies back to grid functions */
+ rhorhs[index] = rhorhsL;
+ urhs[index] = urhsL;
+ v1rhs[index] = v1rhsL;
+ v2rhs[index] = v2rhsL;
+ v3rhs[index] = v3rhsL;
+ }
+ LC_ENDLOOP3 (WTFO_RHS);
+}
+
+void WTFO_RHS(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ GenericFD_LoopOverInterior(cctkGH, &WTFO_RHS_Body);
+}
diff --git a/ML_WaveToyFO/src/WTFO_constraints.c b/ML_WaveToyFO/src/WTFO_constraints.c
new file mode 100644
index 0000000..b8ede34
--- /dev/null
+++ b/ML_WaveToyFO/src/WTFO_constraints.c
@@ -0,0 +1,138 @@
+/* File produced by Kranc */
+
+#define KRANC_C
+
+#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
+#include "GenericFD.h"
+#include "Differencing.h"
+#include "loopcontrol.h"
+
+/* Define macros used in calculations */
+#define INITVALUE (42)
+#define INV(x) ((1.0) / (x))
+#define SQR(x) ((x) * (x))
+#define CUB(x) ((x) * (x) * (x))
+#define QAD(x) ((x) * (x) * (x) * (x))
+
+void WTFO_constraints_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_WaveToyFO::WT_w","flat");
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register flat BC for ML_WaveToyFO::WT_w.");
+ return;
+}
+
+void WTFO_constraints_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+
+ /* Declare finite differencing variables */
+
+ if (verbose > 1)
+ {
+ CCTK_VInfo(CCTK_THORNSTRING,"Entering WTFO_constraints_Body");
+ }
+
+ if (cctk_iteration % WTFO_constraints_calc_every != WTFO_constraints_calc_offset)
+ {
+ return;
+ }
+
+ /* Include user-supplied include files */
+
+ /* Initialise finite differencing variables */
+ CCTK_REAL const dx = CCTK_DELTA_SPACE(0);
+ CCTK_REAL const dy = CCTK_DELTA_SPACE(1);
+ CCTK_REAL const dz = CCTK_DELTA_SPACE(2);
+ int const di = 1;
+ int const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0);
+ int const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0);
+ CCTK_REAL const dxi = 1.0 / dx;
+ CCTK_REAL const dyi = 1.0 / dy;
+ CCTK_REAL const dzi = 1.0 / dz;
+ CCTK_REAL const khalf = 0.5;
+ CCTK_REAL const kthird = 1/3.0;
+ CCTK_REAL const ktwothird = 2.0/3.0;
+ CCTK_REAL const kfourthird = 4.0/3.0;
+ CCTK_REAL const keightthird = 8.0/3.0;
+ CCTK_REAL const hdxi = 0.5 * dxi;
+ CCTK_REAL const hdyi = 0.5 * dyi;
+ CCTK_REAL const hdzi = 0.5 * dzi;
+
+ /* Initialize predefined quantities */
+ CCTK_REAL const p1o12dx = INV(dx)/12.;
+ CCTK_REAL const p1o12dy = INV(dy)/12.;
+ CCTK_REAL const p1o12dz = INV(dz)/12.;
+ CCTK_REAL const p1o144dxdy = (INV(dx)*INV(dy))/144.;
+ CCTK_REAL const p1o144dxdz = (INV(dx)*INV(dz))/144.;
+ CCTK_REAL const p1o144dydz = (INV(dy)*INV(dz))/144.;
+ CCTK_REAL const pm1o12dx2 = -pow(dx,-2)/12.;
+ CCTK_REAL const pm1o12dy2 = -pow(dy,-2)/12.;
+ CCTK_REAL const pm1o12dz2 = -pow(dz,-2)/12.;
+
+ /* Loop over the grid points */
+ #pragma omp parallel
+ LC_LOOP3 (WTFO_constraints,
+ i,j,k, min[0],min[1],min[2], max[0],max[1],max[2],
+ cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ {
+ // int index = INITVALUE;
+ int const index = CCTK_GFINDEX3D(cctkGH,i,j,k);
+ /* Declare derivatives */
+ // CCTK_REAL PDstandardNth2v1 = INITVALUE;
+ // CCTK_REAL PDstandardNth3v1 = INITVALUE;
+ // CCTK_REAL PDstandardNth1v2 = INITVALUE;
+ // CCTK_REAL PDstandardNth3v2 = INITVALUE;
+ // CCTK_REAL PDstandardNth1v3 = INITVALUE;
+ // CCTK_REAL PDstandardNth2v3 = INITVALUE;
+
+ /* Assign local copies of grid functions */
+ CCTK_REAL v1L = v1[index];
+ CCTK_REAL v2L = v2[index];
+ CCTK_REAL v3L = v3[index];
+
+ /* Include user supplied include files */
+
+ /* Precompute derivatives */
+ CCTK_REAL const PDstandardNth2v1 = PDstandardNth2(v1, i, j, k);
+ CCTK_REAL const PDstandardNth3v1 = PDstandardNth3(v1, i, j, k);
+ CCTK_REAL const PDstandardNth1v2 = PDstandardNth1(v2, i, j, k);
+ CCTK_REAL const PDstandardNth3v2 = PDstandardNth3(v2, i, j, k);
+ CCTK_REAL const PDstandardNth1v3 = PDstandardNth1(v3, i, j, k);
+ CCTK_REAL const PDstandardNth2v3 = PDstandardNth2(v3, i, j, k);
+
+ /* Calculate temporaries and grid functions */
+ CCTK_REAL w1L = -PDstandardNth2v3 + PDstandardNth3v2;
+
+ CCTK_REAL w2L = PDstandardNth1v3 - PDstandardNth3v1;
+
+ CCTK_REAL w3L = -PDstandardNth1v2 + PDstandardNth2v1;
+
+
+ /* Copy local copies back to grid functions */
+ w1[index] = w1L;
+ w2[index] = w2L;
+ w3[index] = w3L;
+ }
+ LC_ENDLOOP3 (WTFO_constraints);
+}
+
+void WTFO_constraints(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ GenericFD_LoopOverInterior(cctkGH, &WTFO_constraints_Body);
+}
diff --git a/ML_WaveToyFO/src/make.code.defn b/ML_WaveToyFO/src/make.code.defn
index a51a3f3..a18c783 100644
--- a/ML_WaveToyFO/src/make.code.defn
+++ b/ML_WaveToyFO/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.c RegisterMoL.c RegisterSymmetries.c WTFO_Gaussian.cc WTFO_RHS.cc WTFO_constraints.cc Boundaries.c
+SRCS = Startup.c RegisterMoL.c RegisterSymmetries.c WTFO_Gaussian.c WTFO_RHS.c WTFO_constraints.c Boundaries.c
diff --git a/ML_hydro/interface.ccl b/ML_hydro/interface.ccl
index 1ffd01c..ab6c0d6 100644
--- a/ML_hydro/interface.ccl
+++ b/ML_hydro/interface.ccl
@@ -8,7 +8,6 @@ inherits: Grid GenericFD Boundary
USES INCLUDE: GenericFD.h
USES INCLUDE: Symmetry.h
-USES INCLUDE: Vectors.hh
USES INCLUDE: sbp_calc_coeffs.h
USES INCLUDE: Boundary.h
USES INCLUDE: loopcontrol.h
@@ -26,7 +25,7 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL eneflux_group type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL eneflux_group type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1'
{
eneflux1,
eneflux2,
@@ -34,13 +33,13 @@ CCTK_REAL eneflux_group type=GF timelevels=1 tags='tensortypealias="U" tensorwei
} "eneflux_group"
public:
-CCTK_REAL eps_group type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL eps_group type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
eps
} "eps_group"
public:
-CCTK_REAL massflux_group type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL massflux_group type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1'
{
massflux1,
massflux2,
@@ -48,7 +47,7 @@ CCTK_REAL massflux_group type=GF timelevels=1 tags='tensortypealias="U" tensorwe
} "massflux_group"
public:
-CCTK_REAL momflux_group type=GF timelevels=1 tags='tensortypealias="DU" tensorweight=1.0000000000000000000'
+CCTK_REAL momflux_group type=GF timelevels=1 tags='tensortypealias="DU" tensorweight=1'
{
momflux11,
momflux12,
@@ -62,19 +61,19 @@ CCTK_REAL momflux_group type=GF timelevels=1 tags='tensortypealias="DU" tensorwe
} "momflux_group"
public:
-CCTK_REAL press_group type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL press_group type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
press
} "press_group"
public:
-CCTK_REAL rho_group type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL rho_group type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
rho
} "rho_group"
public:
-CCTK_REAL vel_group type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1.0000000000000000000'
+CCTK_REAL vel_group type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1'
{
vel1,
vel2,
@@ -82,25 +81,25 @@ CCTK_REAL vel_group type=GF timelevels=1 tags='tensortypealias="U" tensorweight=
} "vel_group"
public:
-CCTK_REAL vol_group type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL vol_group type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1'
{
vol
} "vol_group"
public:
-CCTK_REAL ene_group type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ene_group type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
ene
} "ene_group"
public:
-CCTK_REAL mass_group type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL mass_group type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
mass
} "mass_group"
public:
-CCTK_REAL mom_group type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL mom_group type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1'
{
mom1,
mom2,
@@ -108,19 +107,19 @@ CCTK_REAL mom_group type=GF timelevels=3 tags='tensortypealias="D" tensorweight=
} "mom_group"
public:
-CCTK_REAL ene_grouprhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL ene_grouprhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
enerhs
} "ene_grouprhs"
public:
-CCTK_REAL mass_grouprhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000'
+CCTK_REAL mass_grouprhs type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1'
{
massrhs
} "mass_grouprhs"
public:
-CCTK_REAL mom_grouprhs type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1.0000000000000000000'
+CCTK_REAL mom_grouprhs type=GF timelevels=3 tags='tensortypealias="D" tensorweight=1'
{
mom1rhs,
mom2rhs,
diff --git a/ML_hydro/schedule.ccl b/ML_hydro/schedule.ccl
index 0d08eb0..78099ec 100644
--- a/ML_hydro/schedule.ccl
+++ b/ML_hydro/schedule.ccl
@@ -164,7 +164,7 @@ schedule ML_hydro_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as ML_hydro_ApplyBCs in MoL_PostStep after ML_hydro_SelectBoundConds
+schedule group ApplyBCs as ML_hydro_ApplyBCs in MoL_PostStep after ML_hydro_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/ML_hydro/src/Differencing.h b/ML_hydro/src/Differencing.h
index 0d37c09..9f8428b 100644
--- a/ML_hydro/src/Differencing.h
+++ b/ML_hydro/src/Differencing.h
@@ -1,12 +1,12 @@
-#define PDstandardNth1(u,i,j,k) (p1o2dx*(-vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(0)])))
-#define PDstandardNth2(u,i,j,k) (p1o2dy*(-vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(0)])))
-#define PDstandardNth3(u,i,j,k) (p1o2dz*(-vec_loadu((u)[index+di*(0)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(0)+dk*(1)])))
-#define PDstandardNth11(u,i,j,k) (p1odx2*(-2*vec_loadu((u)[index+di*(0)+dj*(0)+dk*(0)]) + vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(0)])))
-#define PDstandardNth22(u,i,j,k) (p1ody2*(-2*vec_loadu((u)[index+di*(0)+dj*(0)+dk*(0)]) + vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(0)])))
-#define PDstandardNth33(u,i,j,k) (p1odz2*(-2*vec_loadu((u)[index+di*(0)+dj*(0)+dk*(0)]) + vec_loadu((u)[index+di*(0)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(0)+dk*(1)])))
-#define PDstandardNth12(u,i,j,k) (p1o4dxdy*(vec_loadu((u)[index+di*(-1)+dj*(-1)+dk*(0)]) - vec_loadu((u)[index+di*(-1)+dj*(1)+dk*(0)]) - vec_loadu((u)[index+di*(1)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(1)+dk*(0)])))
-#define PDstandardNth13(u,i,j,k) (p1o4dxdz*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(-1)]) - vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(1)]) - vec_loadu((u)[index+di*(1)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(1)])))
-#define PDstandardNth21(u,i,j,k) (p1o4dxdy*(vec_loadu((u)[index+di*(-1)+dj*(-1)+dk*(0)]) - vec_loadu((u)[index+di*(-1)+dj*(1)+dk*(0)]) - vec_loadu((u)[index+di*(1)+dj*(-1)+dk*(0)]) + vec_loadu((u)[index+di*(1)+dj*(1)+dk*(0)])))
-#define PDstandardNth23(u,i,j,k) (p1o4dydz*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(-1)]) - vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(1)]) - vec_loadu((u)[index+di*(0)+dj*(1)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(1)])))
-#define PDstandardNth31(u,i,j,k) (p1o4dxdz*(vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(-1)]) - vec_loadu((u)[index+di*(-1)+dj*(0)+dk*(1)]) - vec_loadu((u)[index+di*(1)+dj*(0)+dk*(-1)]) + vec_loadu((u)[index+di*(1)+dj*(0)+dk*(1)])))
-#define PDstandardNth32(u,i,j,k) (p1o4dydz*(vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(-1)]) - vec_loadu((u)[index+di*(0)+dj*(-1)+dk*(1)]) - vec_loadu((u)[index+di*(0)+dj*(1)+dk*(-1)]) + vec_loadu((u)[index+di*(0)+dj*(1)+dk*(1)])))
+#define PDstandardNth1(u,i,j,k) (p1o2dx*(-(u)[index+di*(-1)+dj*(0)+dk*(0)] + (u)[index+di*(1)+dj*(0)+dk*(0)]))
+#define PDstandardNth2(u,i,j,k) (p1o2dy*(-(u)[index+di*(0)+dj*(-1)+dk*(0)] + (u)[index+di*(0)+dj*(1)+dk*(0)]))
+#define PDstandardNth3(u,i,j,k) (p1o2dz*(-(u)[index+di*(0)+dj*(0)+dk*(-1)] + (u)[index+di*(0)+dj*(0)+dk*(1)]))
+#define PDstandardNth11(u,i,j,k) (p1odx2*(-2*(u)[index+di*(0)+dj*(0)+dk*(0)] + (u)[index+di*(-1)+dj*(0)+dk*(0)] + (u)[index+di*(1)+dj*(0)+dk*(0)]))
+#define PDstandardNth22(u,i,j,k) (p1ody2*(-2*(u)[index+di*(0)+dj*(0)+dk*(0)] + (u)[index+di*(0)+dj*(-1)+dk*(0)] + (u)[index+di*(0)+dj*(1)+dk*(0)]))
+#define PDstandardNth33(u,i,j,k) (p1odz2*(-2*(u)[index+di*(0)+dj*(0)+dk*(0)] + (u)[index+di*(0)+dj*(0)+dk*(-1)] + (u)[index+di*(0)+dj*(0)+dk*(1)]))
+#define PDstandardNth12(u,i,j,k) (p1o4dxdy*((u)[index+di*(-1)+dj*(-1)+dk*(0)] - (u)[index+di*(-1)+dj*(1)+dk*(0)] - (u)[index+di*(1)+dj*(-1)+dk*(0)] + (u)[index+di*(1)+dj*(1)+dk*(0)]))
+#define PDstandardNth13(u,i,j,k) (p1o4dxdz*((u)[index+di*(-1)+dj*(0)+dk*(-1)] - (u)[index+di*(-1)+dj*(0)+dk*(1)] - (u)[index+di*(1)+dj*(0)+dk*(-1)] + (u)[index+di*(1)+dj*(0)+dk*(1)]))
+#define PDstandardNth21(u,i,j,k) (p1o4dxdy*((u)[index+di*(-1)+dj*(-1)+dk*(0)] - (u)[index+di*(-1)+dj*(1)+dk*(0)] - (u)[index+di*(1)+dj*(-1)+dk*(0)] + (u)[index+di*(1)+dj*(1)+dk*(0)]))
+#define PDstandardNth23(u,i,j,k) (p1o4dydz*((u)[index+di*(0)+dj*(-1)+dk*(-1)] - (u)[index+di*(0)+dj*(-1)+dk*(1)] - (u)[index+di*(0)+dj*(1)+dk*(-1)] + (u)[index+di*(0)+dj*(1)+dk*(1)]))
+#define PDstandardNth31(u,i,j,k) (p1o4dxdz*((u)[index+di*(-1)+dj*(0)+dk*(-1)] - (u)[index+di*(-1)+dj*(0)+dk*(1)] - (u)[index+di*(1)+dj*(0)+dk*(-1)] + (u)[index+di*(1)+dj*(0)+dk*(1)]))
+#define PDstandardNth32(u,i,j,k) (p1o4dydz*((u)[index+di*(0)+dj*(-1)+dk*(-1)] - (u)[index+di*(0)+dj*(-1)+dk*(1)] - (u)[index+di*(0)+dj*(1)+dk*(-1)] + (u)[index+di*(0)+dj*(1)+dk*(1)]))
diff --git a/ML_hydro/src/hydro_RHS.c b/ML_hydro/src/hydro_RHS.c
new file mode 100644
index 0000000..8de4eda
--- /dev/null
+++ b/ML_hydro/src/hydro_RHS.c
@@ -0,0 +1,185 @@
+/* File produced by Kranc */
+
+#define KRANC_C
+
+#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
+#include "GenericFD.h"
+#include "Differencing.h"
+#include "loopcontrol.h"
+
+/* Define macros used in calculations */
+#define INITVALUE (42)
+#define INV(x) ((1.0) / (x))
+#define SQR(x) ((x) * (x))
+#define CUB(x) ((x) * (x) * (x))
+#define QAD(x) ((x) * (x) * (x) * (x))
+
+void hydro_RHS_SelectBCs(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ CCTK_INT ierr = 0;
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_hydro::ene_grouprhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_hydro::ene_grouprhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_hydro::mass_grouprhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_hydro::mass_grouprhs.");
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, GenericFD_GetBoundaryWidth(cctkGH), -1 /* no table */, "ML_hydro::mom_grouprhs","flat");
+ if (ierr < 0)
+ CCTK_WARN(1, "Failed to register flat BC for ML_hydro::mom_grouprhs.");
+ return;
+}
+
+void hydro_RHS_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+
+ /* Declare finite differencing variables */
+
+ if (verbose > 1)
+ {
+ CCTK_VInfo(CCTK_THORNSTRING,"Entering hydro_RHS_Body");
+ }
+
+ if (cctk_iteration % hydro_RHS_calc_every != hydro_RHS_calc_offset)
+ {
+ return;
+ }
+
+ /* Include user-supplied include files */
+
+ /* Initialise finite differencing variables */
+ CCTK_REAL const dx = CCTK_DELTA_SPACE(0);
+ CCTK_REAL const dy = CCTK_DELTA_SPACE(1);
+ CCTK_REAL const dz = CCTK_DELTA_SPACE(2);
+ int const di = 1;
+ int const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0);
+ int const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0);
+ CCTK_REAL const dxi = 1.0 / dx;
+ CCTK_REAL const dyi = 1.0 / dy;
+ CCTK_REAL const dzi = 1.0 / dz;
+ CCTK_REAL const khalf = 0.5;
+ CCTK_REAL const kthird = 1/3.0;
+ CCTK_REAL const ktwothird = 2.0/3.0;
+ CCTK_REAL const kfourthird = 4.0/3.0;
+ CCTK_REAL const keightthird = 8.0/3.0;
+ CCTK_REAL const hdxi = 0.5 * dxi;
+ CCTK_REAL const hdyi = 0.5 * dyi;
+ CCTK_REAL const hdzi = 0.5 * dzi;
+
+ /* Initialize predefined quantities */
+ CCTK_REAL const p1o2dx = khalf*INV(dx);
+ CCTK_REAL const p1o2dy = khalf*INV(dy);
+ CCTK_REAL const p1o2dz = khalf*INV(dz);
+ CCTK_REAL const p1o4dxdy = (INV(dx)*INV(dy))/4.;
+ CCTK_REAL const p1o4dxdz = (INV(dx)*INV(dz))/4.;
+ CCTK_REAL const p1o4dydz = (INV(dy)*INV(dz))/4.;
+ CCTK_REAL const p1odx2 = pow(dx,-2);
+ CCTK_REAL const p1ody2 = pow(dy,-2);
+ CCTK_REAL const p1odz2 = pow(dz,-2);
+
+ /* Loop over the grid points */
+ #pragma omp parallel
+ LC_LOOP3 (hydro_RHS,
+ i,j,k, min[0],min[1],min[2], max[0],max[1],max[2],
+ cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ {
+ // int index = INITVALUE;
+ int const index = CCTK_GFINDEX3D(cctkGH,i,j,k);
+ /* Declare derivatives */
+ // CCTK_REAL PDstandardNth1eneflux1 = INITVALUE;
+ // CCTK_REAL PDstandardNth2eneflux2 = INITVALUE;
+ // CCTK_REAL PDstandardNth3eneflux3 = INITVALUE;
+ // CCTK_REAL PDstandardNth1massflux1 = INITVALUE;
+ // CCTK_REAL PDstandardNth2massflux2 = INITVALUE;
+ // CCTK_REAL PDstandardNth3massflux3 = INITVALUE;
+ // CCTK_REAL PDstandardNth1momflux11 = INITVALUE;
+ // CCTK_REAL PDstandardNth2momflux12 = INITVALUE;
+ // CCTK_REAL PDstandardNth3momflux13 = INITVALUE;
+ // CCTK_REAL PDstandardNth1momflux21 = INITVALUE;
+ // CCTK_REAL PDstandardNth2momflux22 = INITVALUE;
+ // CCTK_REAL PDstandardNth3momflux23 = INITVALUE;
+ // CCTK_REAL PDstandardNth1momflux31 = INITVALUE;
+ // CCTK_REAL PDstandardNth2momflux32 = INITVALUE;
+ // CCTK_REAL PDstandardNth3momflux33 = INITVALUE;
+
+ /* Assign local copies of grid functions */
+ CCTK_REAL eneflux1L = eneflux1[index];
+ CCTK_REAL eneflux2L = eneflux2[index];
+ CCTK_REAL eneflux3L = eneflux3[index];
+ CCTK_REAL massflux1L = massflux1[index];
+ CCTK_REAL massflux2L = massflux2[index];
+ CCTK_REAL massflux3L = massflux3[index];
+ CCTK_REAL momflux11L = momflux11[index];
+ CCTK_REAL momflux12L = momflux12[index];
+ CCTK_REAL momflux13L = momflux13[index];
+ CCTK_REAL momflux21L = momflux21[index];
+ CCTK_REAL momflux22L = momflux22[index];
+ CCTK_REAL momflux23L = momflux23[index];
+ CCTK_REAL momflux31L = momflux31[index];
+ CCTK_REAL momflux32L = momflux32[index];
+ CCTK_REAL momflux33L = momflux33[index];
+
+ /* Include user supplied include files */
+
+ /* Precompute derivatives */
+ CCTK_REAL const PDstandardNth1eneflux1 = PDstandardNth1(eneflux1, i, j, k);
+ CCTK_REAL const PDstandardNth2eneflux2 = PDstandardNth2(eneflux2, i, j, k);
+ CCTK_REAL const PDstandardNth3eneflux3 = PDstandardNth3(eneflux3, i, j, k);
+ CCTK_REAL const PDstandardNth1massflux1 = PDstandardNth1(massflux1, i, j, k);
+ CCTK_REAL const PDstandardNth2massflux2 = PDstandardNth2(massflux2, i, j, k);
+ CCTK_REAL const PDstandardNth3massflux3 = PDstandardNth3(massflux3, i, j, k);
+ CCTK_REAL const PDstandardNth1momflux11 = PDstandardNth1(momflux11, i, j, k);
+ CCTK_REAL const PDstandardNth2momflux12 = PDstandardNth2(momflux12, i, j, k);
+ CCTK_REAL const PDstandardNth3momflux13 = PDstandardNth3(momflux13, i, j, k);
+ CCTK_REAL const PDstandardNth1momflux21 = PDstandardNth1(momflux21, i, j, k);
+ CCTK_REAL const PDstandardNth2momflux22 = PDstandardNth2(momflux22, i, j, k);
+ CCTK_REAL const PDstandardNth3momflux23 = PDstandardNth3(momflux23, i, j, k);
+ CCTK_REAL const PDstandardNth1momflux31 = PDstandardNth1(momflux31, i, j, k);
+ CCTK_REAL const PDstandardNth2momflux32 = PDstandardNth2(momflux32, i, j, k);
+ CCTK_REAL const PDstandardNth3momflux33 = PDstandardNth3(momflux33, i, j, k);
+
+ /* Calculate temporaries and grid functions */
+ CCTK_REAL massrhsL = -PDstandardNth1massflux1 -
+ PDstandardNth2massflux2 - PDstandardNth3massflux3;
+
+ CCTK_REAL mom1rhsL = -PDstandardNth1momflux11 -
+ PDstandardNth2momflux12 - PDstandardNth3momflux13;
+
+ CCTK_REAL mom2rhsL = -PDstandardNth1momflux21 -
+ PDstandardNth2momflux22 - PDstandardNth3momflux23;
+
+ CCTK_REAL mom3rhsL = -PDstandardNth1momflux31 -
+ PDstandardNth2momflux32 - PDstandardNth3momflux33;
+
+ CCTK_REAL enerhsL = -PDstandardNth1eneflux1 - PDstandardNth2eneflux2 -
+ PDstandardNth3eneflux3;
+
+
+ /* Copy local copies back to grid functions */
+ enerhs[index] = enerhsL;
+ massrhs[index] = massrhsL;
+ mom1rhs[index] = mom1rhsL;
+ mom2rhs[index] = mom2rhsL;
+ mom3rhs[index] = mom3rhsL;
+ }
+ LC_ENDLOOP3 (hydro_RHS);
+}
+
+void hydro_RHS(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ GenericFD_LoopOverInterior(cctkGH, &hydro_RHS_Body);
+}
diff --git a/ML_hydro/src/hydro_RHS.cc b/ML_hydro/src/hydro_RHS.cc
deleted file mode 100644
index 57dc25a..0000000
--- a/ML_hydro/src/hydro_RHS.cc
+++ /dev/null
@@ -1,169 +0,0 @@
-/* File produced by Kranc */
-
-#define KRANC_C
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "cctk.h"
-#include "cctk_Arguments.h"
-#include "cctk_Parameters.h"
-#include "GenericFD.h"
-#include "Differencing.h"
-#include "Vectors.hh"
-#include "loopcontrol.h"
-
-/* Define macros used in calculations */
-#define INITVALUE (42)
-#define INV(x) ((1.0) / (x))
-#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
-#define QAD(x) ((x) * (x) * (x) * (x))
-
-static void hydro_RHS_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
-{
- DECLARE_CCTK_ARGUMENTS;
- DECLARE_CCTK_PARAMETERS;
-
-
- /* Declare finite differencing variables */
-
- if (verbose > 1)
- {
- CCTK_VInfo(CCTK_THORNSTRING,"Entering hydro_RHS_Body");
- }
-
- if (cctk_iteration % hydro_RHS_calc_every != hydro_RHS_calc_offset)
- {
- return;
- }
-
- /* Include user-supplied include files */
-
- /* Initialise finite differencing variables */
- CCTK_REAL const dx = CCTK_DELTA_SPACE(0);
- CCTK_REAL const dy = CCTK_DELTA_SPACE(1);
- CCTK_REAL const dz = CCTK_DELTA_SPACE(2);
- int const di = 1;
- int const dj = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0);
- int const dk = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0);
- CCTK_REAL const dxi = 1.0 / dx;
- CCTK_REAL const dyi = 1.0 / dy;
- CCTK_REAL const dzi = 1.0 / dz;
- CCTK_REAL const khalf = 0.5;
- CCTK_REAL const kthird = 1/3.0;
- CCTK_REAL const ktwothird = 2.0/3.0;
- CCTK_REAL const kfourthird = 4.0/3.0;
- CCTK_REAL const keightthird = 8.0/3.0;
- CCTK_REAL const hdxi = 0.5 * dxi;
- CCTK_REAL const hdyi = 0.5 * dyi;
- CCTK_REAL const hdzi = 0.5 * dzi;
-
- /* Initialize predefined quantities */
- CCTK_REAL const p1o2dx = khalf*INV(dx);
- CCTK_REAL const p1o2dy = khalf*INV(dy);
- CCTK_REAL const p1o2dz = khalf*INV(dz);
- CCTK_REAL const p1o4dxdy = (INV(dx)*INV(dy))/4.;
- CCTK_REAL const p1o4dxdz = (INV(dx)*INV(dz))/4.;
- CCTK_REAL const p1o4dydz = (INV(dy)*INV(dz))/4.;
- CCTK_REAL const p1odx2 = pow(dx,-2);
- CCTK_REAL const p1ody2 = pow(dy,-2);
- CCTK_REAL const p1odz2 = pow(dz,-2);
-
- /* Loop over the grid points */
- #pragma omp parallel
- LC_LOOP3 (hydro_RHS,
- i,j,k, min[0],min[1],min[2], max[0],max[1],max[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
- {
- // int index = INITVALUE;
- int const index = CCTK_GFINDEX3D(cctkGH,i,j,k);
- /* Declare derivatives */
- // CCTK_REAL_VEC PDstandardNth1eneflux1 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth2eneflux2 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth3eneflux3 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth1massflux1 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth2massflux2 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth3massflux3 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth1momflux11 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth2momflux12 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth3momflux13 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth1momflux21 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth2momflux22 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth3momflux23 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth1momflux31 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth2momflux32 = INITVALUE;
- // CCTK_REAL_VEC PDstandardNth3momflux33 = INITVALUE;
-
- /* Assign local copies of grid functions */
- CCTK_REAL_VEC eneflux1L = vec_load(eneflux1[index]);
- CCTK_REAL_VEC eneflux2L = vec_load(eneflux2[index]);
- CCTK_REAL_VEC eneflux3L = vec_load(eneflux3[index]);
- CCTK_REAL_VEC massflux1L = vec_load(massflux1[index]);
- CCTK_REAL_VEC massflux2L = vec_load(massflux2[index]);
- CCTK_REAL_VEC massflux3L = vec_load(massflux3[index]);
- CCTK_REAL_VEC momflux11L = vec_load(momflux11[index]);
- CCTK_REAL_VEC momflux12L = vec_load(momflux12[index]);
- CCTK_REAL_VEC momflux13L = vec_load(momflux13[index]);
- CCTK_REAL_VEC momflux21L = vec_load(momflux21[index]);
- CCTK_REAL_VEC momflux22L = vec_load(momflux22[index]);
- CCTK_REAL_VEC momflux23L = vec_load(momflux23[index]);
- CCTK_REAL_VEC momflux31L = vec_load(momflux31[index]);
- CCTK_REAL_VEC momflux32L = vec_load(momflux32[index]);
- CCTK_REAL_VEC momflux33L = vec_load(momflux33[index]);
-
- /* Include user supplied include files */
-
- /* Precompute derivatives */
- CCTK_REAL_VEC const PDstandardNth1eneflux1 = PDstandardNth1(eneflux1, i, j, k);
- CCTK_REAL_VEC const PDstandardNth2eneflux2 = PDstandardNth2(eneflux2, i, j, k);
- CCTK_REAL_VEC const PDstandardNth3eneflux3 = PDstandardNth3(eneflux3, i, j, k);
- CCTK_REAL_VEC const PDstandardNth1massflux1 = PDstandardNth1(massflux1, i, j, k);
- CCTK_REAL_VEC const PDstandardNth2massflux2 = PDstandardNth2(massflux2, i, j, k);
- CCTK_REAL_VEC const PDstandardNth3massflux3 = PDstandardNth3(massflux3, i, j, k);
- CCTK_REAL_VEC const PDstandardNth1momflux11 = PDstandardNth1(momflux11, i, j, k);
- CCTK_REAL_VEC const PDstandardNth2momflux12 = PDstandardNth2(momflux12, i, j, k);
- CCTK_REAL_VEC const PDstandardNth3momflux13 = PDstandardNth3(momflux13, i, j, k);
- CCTK_REAL_VEC const PDstandardNth1momflux21 = PDstandardNth1(momflux21, i, j, k);
- CCTK_REAL_VEC const PDstandardNth2momflux22 = PDstandardNth2(momflux22, i, j, k);
- CCTK_REAL_VEC const PDstandardNth3momflux23 = PDstandardNth3(momflux23, i, j, k);
- CCTK_REAL_VEC const PDstandardNth1momflux31 = PDstandardNth1(momflux31, i, j, k);
- CCTK_REAL_VEC const PDstandardNth2momflux32 = PDstandardNth2(momflux32, i, j, k);
- CCTK_REAL_VEC const PDstandardNth3momflux33 = PDstandardNth3(momflux33, i, j, k);
-
- /* Calculate temporaries and grid functions */
- CCTK_REAL_VEC massrhsL = -PDstandardNth1massflux1 -
- PDstandardNth2massflux2 - PDstandardNth3massflux3;
-
- CCTK_REAL_VEC mom1rhsL = -PDstandardNth1momflux11 -
- PDstandardNth2momflux12 - PDstandardNth3momflux13;
-
- CCTK_REAL_VEC mom2rhsL = -PDstandardNth1momflux21 -
- PDstandardNth2momflux22 - PDstandardNth3momflux23;
-
- CCTK_REAL_VEC mom3rhsL = -PDstandardNth1momflux31 -
- PDstandardNth2momflux32 - PDstandardNth3momflux33;
-
- CCTK_REAL_VEC enerhsL = -PDstandardNth1eneflux1 -
- PDstandardNth2eneflux2 - PDstandardNth3eneflux3;
-
-
- /* Copy local copies back to grid functions */
- vec_store_nta(enerhs[index],enerhsL);
- vec_store_nta(massrhs[index],massrhsL);
- vec_store_nta(mom1rhs[index],mom1rhsL);
- vec_store_nta(mom2rhs[index],mom2rhsL);
- vec_store_nta(mom3rhs[index],mom3rhsL);
- i += CCTK_REAL_VEC_SIZE-1;
- }
- LC_ENDLOOP3 (hydro_RHS);
-}
-
-extern "C" void hydro_RHS(CCTK_ARGUMENTS)
-{
- DECLARE_CCTK_ARGUMENTS;
- DECLARE_CCTK_PARAMETERS;
-
- GenericFD_LoopOverInterior(cctkGH, &hydro_RHS_Body);
-}
diff --git a/ML_hydro/src/hydro_con2prim.cc b/ML_hydro/src/hydro_con2prim.c
index ad437dc..2d8b977 100644
--- a/ML_hydro/src/hydro_con2prim.cc
+++ b/ML_hydro/src/hydro_con2prim.c
@@ -11,7 +11,6 @@
#include "cctk_Parameters.h"
#include "GenericFD.h"
#include "Differencing.h"
-#include "Vectors.hh"
#include "loopcontrol.h"
/* Define macros used in calculations */
@@ -21,7 +20,7 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
-static void hydro_con2prim_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
+void hydro_con2prim_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
@@ -82,17 +81,17 @@ static void hydro_con2prim_Body(cGH const * restrict const cctkGH, int const dir
/* Declare derivatives */
/* Assign local copies of grid functions */
- CCTK_REAL_VEC eneL = vec_load(ene[index]);
- CCTK_REAL_VEC epsL = vec_load(eps[index]);
- CCTK_REAL_VEC massL = vec_load(mass[index]);
- CCTK_REAL_VEC mom1L = vec_load(mom1[index]);
- CCTK_REAL_VEC mom2L = vec_load(mom2[index]);
- CCTK_REAL_VEC mom3L = vec_load(mom3[index]);
- CCTK_REAL_VEC rhoL = vec_load(rho[index]);
- CCTK_REAL_VEC vel1L = vec_load(vel1[index]);
- CCTK_REAL_VEC vel2L = vec_load(vel2[index]);
- CCTK_REAL_VEC vel3L = vec_load(vel3[index]);
- CCTK_REAL_VEC volL = vec_load(vol[index]);
+ CCTK_REAL eneL = ene[index];
+ CCTK_REAL epsL = eps[index];
+ CCTK_REAL massL = mass[index];
+ CCTK_REAL mom1L = mom1[index];
+ CCTK_REAL mom2L = mom2[index];
+ CCTK_REAL mom3L = mom3[index];
+ CCTK_REAL rhoL = rho[index];
+ CCTK_REAL vel1L = vel1[index];
+ CCTK_REAL vel2L = vel2[index];
+ CCTK_REAL vel3L = vel3[index];
+ CCTK_REAL volL = vol[index];
/* Include user supplied include files */
@@ -110,22 +109,21 @@ static void hydro_con2prim_Body(cGH const * restrict const cctkGH, int const dir
epsL = khalf*INV(massL)*(2*eneL - massL*(SQR(vel1L) + SQR(vel2L) +
SQR(vel3L)));
- CCTK_REAL_VEC pressL = epsL*Gamma*rhoL;
+ CCTK_REAL pressL = epsL*Gamma*rhoL;
/* Copy local copies back to grid functions */
- vec_store_nta(eps[index],epsL);
- vec_store_nta(press[index],pressL);
- vec_store_nta(rho[index],rhoL);
- vec_store_nta(vel1[index],vel1L);
- vec_store_nta(vel2[index],vel2L);
- vec_store_nta(vel3[index],vel3L);
- i += CCTK_REAL_VEC_SIZE-1;
+ eps[index] = epsL;
+ press[index] = pressL;
+ rho[index] = rhoL;
+ vel1[index] = vel1L;
+ vel2[index] = vel2L;
+ vel3[index] = vel3L;
}
LC_ENDLOOP3 (hydro_con2prim);
}
-extern "C" void hydro_con2prim(CCTK_ARGUMENTS)
+void hydro_con2prim(CCTK_ARGUMENTS)
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
diff --git a/ML_hydro/src/hydro_prim2con.cc b/ML_hydro/src/hydro_prim2con.c
index 77326a9..abedfb4 100644
--- a/ML_hydro/src/hydro_prim2con.cc
+++ b/ML_hydro/src/hydro_prim2con.c
@@ -11,7 +11,6 @@
#include "cctk_Parameters.h"
#include "GenericFD.h"
#include "Differencing.h"
-#include "Vectors.hh"
#include "loopcontrol.h"
/* Define macros used in calculations */
@@ -21,7 +20,7 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
-static void hydro_prim2con_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
+void hydro_prim2con_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
@@ -82,13 +81,13 @@ static void hydro_prim2con_Body(cGH const * restrict const cctkGH, int const dir
/* Declare derivatives */
/* Assign local copies of grid functions */
- CCTK_REAL_VEC epsL = vec_load(eps[index]);
- CCTK_REAL_VEC massL = vec_load(mass[index]);
- CCTK_REAL_VEC rhoL = vec_load(rho[index]);
- CCTK_REAL_VEC vel1L = vec_load(vel1[index]);
- CCTK_REAL_VEC vel2L = vec_load(vel2[index]);
- CCTK_REAL_VEC vel3L = vec_load(vel3[index]);
- CCTK_REAL_VEC volL = vec_load(vol[index]);
+ CCTK_REAL epsL = eps[index];
+ CCTK_REAL massL = mass[index];
+ CCTK_REAL rhoL = rho[index];
+ CCTK_REAL vel1L = vel1[index];
+ CCTK_REAL vel2L = vel2[index];
+ CCTK_REAL vel3L = vel3[index];
+ CCTK_REAL volL = vol[index];
/* Include user supplied include files */
@@ -99,29 +98,28 @@ static void hydro_prim2con_Body(cGH const * restrict const cctkGH, int const dir
massL = rhoL*volL;
- CCTK_REAL_VEC mom1L = massL*vel1L;
+ CCTK_REAL mom1L = massL*vel1L;
- CCTK_REAL_VEC mom2L = massL*vel2L;
+ CCTK_REAL mom2L = massL*vel2L;
- CCTK_REAL_VEC mom3L = massL*vel3L;
+ CCTK_REAL mom3L = massL*vel3L;
- CCTK_REAL_VEC eneL = khalf*massL*(2*epsL + SQR(vel1L) + SQR(vel2L) +
+ CCTK_REAL eneL = khalf*massL*(2*epsL + SQR(vel1L) + SQR(vel2L) +
SQR(vel3L));
/* Copy local copies back to grid functions */
- vec_store_nta(ene[index],eneL);
- vec_store_nta(mass[index],massL);
- vec_store_nta(mom1[index],mom1L);
- vec_store_nta(mom2[index],mom2L);
- vec_store_nta(mom3[index],mom3L);
- vec_store_nta(vol[index],volL);
- i += CCTK_REAL_VEC_SIZE-1;
+ ene[index] = eneL;
+ mass[index] = massL;
+ mom1[index] = mom1L;
+ mom2[index] = mom2L;
+ mom3[index] = mom3L;
+ vol[index] = volL;
}
LC_ENDLOOP3 (hydro_prim2con);
}
-extern "C" void hydro_prim2con(CCTK_ARGUMENTS)
+void hydro_prim2con(CCTK_ARGUMENTS)
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
diff --git a/ML_hydro/src/hydro_soundWave.cc b/ML_hydro/src/hydro_soundWave.c
index 197ea04..672c918 100644
--- a/ML_hydro/src/hydro_soundWave.cc
+++ b/ML_hydro/src/hydro_soundWave.c
@@ -11,7 +11,6 @@
#include "cctk_Parameters.h"
#include "GenericFD.h"
#include "Differencing.h"
-#include "Vectors.hh"
#include "loopcontrol.h"
/* Define macros used in calculations */
@@ -21,7 +20,7 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
-static void hydro_soundWave_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
+void hydro_soundWave_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
@@ -82,36 +81,35 @@ static void hydro_soundWave_Body(cGH const * restrict const cctkGH, int const di
/* Declare derivatives */
/* Assign local copies of grid functions */
- CCTK_REAL_VEC xL = vec_load(x[index]);
+ CCTK_REAL xL = x[index];
/* Include user supplied include files */
/* Precompute derivatives */
/* Calculate temporaries and grid functions */
- CCTK_REAL_VEC rhoL = 1.;
+ CCTK_REAL rhoL = 1.;
- CCTK_REAL_VEC vel1L = A*Sin(2*Pi*xL*INV(L));
+ CCTK_REAL vel1L = A*Sin(2*Pi*xL*INV(L));
- CCTK_REAL_VEC vel2L = A*Sin(2*Pi*xL*INV(L));
+ CCTK_REAL vel2L = A*Sin(2*Pi*xL*INV(L));
- CCTK_REAL_VEC vel3L = A*Sin(2*Pi*xL*INV(L));
+ CCTK_REAL vel3L = A*Sin(2*Pi*xL*INV(L));
- CCTK_REAL_VEC epsL = 1.;
+ CCTK_REAL epsL = 1.;
/* Copy local copies back to grid functions */
- vec_store_nta(eps[index],epsL);
- vec_store_nta(rho[index],rhoL);
- vec_store_nta(vel1[index],vel1L);
- vec_store_nta(vel2[index],vel2L);
- vec_store_nta(vel3[index],vel3L);
- i += CCTK_REAL_VEC_SIZE-1;
+ eps[index] = epsL;
+ rho[index] = rhoL;
+ vel1[index] = vel1L;
+ vel2[index] = vel2L;
+ vel3[index] = vel3L;
}
LC_ENDLOOP3 (hydro_soundWave);
}
-extern "C" void hydro_soundWave(CCTK_ARGUMENTS)
+void hydro_soundWave(CCTK_ARGUMENTS)
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
diff --git a/ML_hydro/src/hydro_vacuum.cc b/ML_hydro/src/hydro_vacuum.c
index 7435d0f..8d8c519 100644
--- a/ML_hydro/src/hydro_vacuum.cc
+++ b/ML_hydro/src/hydro_vacuum.c
@@ -11,7 +11,6 @@
#include "cctk_Parameters.h"
#include "GenericFD.h"
#include "Differencing.h"
-#include "Vectors.hh"
#include "loopcontrol.h"
/* Define macros used in calculations */
@@ -21,7 +20,7 @@
#define CUB(x) ((x) * (x) * (x))
#define QAD(x) ((x) * (x) * (x) * (x))
-static void hydro_vacuum_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
+void hydro_vacuum_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
@@ -88,29 +87,28 @@ static void hydro_vacuum_Body(cGH const * restrict const cctkGH, int const dir,
/* Precompute derivatives */
/* Calculate temporaries and grid functions */
- CCTK_REAL_VEC rhoL = 0;
+ CCTK_REAL rhoL = 0;
- CCTK_REAL_VEC vel1L = 0;
+ CCTK_REAL vel1L = 0;
- CCTK_REAL_VEC vel2L = 0;
+ CCTK_REAL vel2L = 0;
- CCTK_REAL_VEC vel3L = 0;
+ CCTK_REAL vel3L = 0;
- CCTK_REAL_VEC epsL = 0;
+ CCTK_REAL epsL = 0;
/* Copy local copies back to grid functions */
- vec_store_nta(eps[index],epsL);
- vec_store_nta(rho[index],rhoL);
- vec_store_nta(vel1[index],vel1L);
- vec_store_nta(vel2[index],vel2L);
- vec_store_nta(vel3[index],vel3L);
- i += CCTK_REAL_VEC_SIZE-1;
+ eps[index] = epsL;
+ rho[index] = rhoL;
+ vel1[index] = vel1L;
+ vel2[index] = vel2L;
+ vel3[index] = vel3L;
}
LC_ENDLOOP3 (hydro_vacuum);
}
-extern "C" void hydro_vacuum(CCTK_ARGUMENTS)
+void hydro_vacuum(CCTK_ARGUMENTS)
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
diff --git a/ML_hydro/src/make.code.defn b/ML_hydro/src/make.code.defn
index ff8fb58..71abf2b 100644
--- a/ML_hydro/src/make.code.defn
+++ b/ML_hydro/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.c RegisterMoL.c RegisterSymmetries.c hydro_vacuum.cc hydro_soundWave.cc hydro_prim2con.cc hydro_con2prim.cc hydro_RHS.cc Boundaries.c
+SRCS = Startup.c RegisterMoL.c RegisterSymmetries.c hydro_vacuum.c hydro_soundWave.c hydro_prim2con.c hydro_con2prim.c hydro_RHS.c Boundaries.c
diff --git a/m/PARSER/McLachlan_BSSN.kranc b/m/PARSER/McLachlan_BSSN.kranc
new file mode 100644
index 0000000..745bcc1
--- /dev/null
+++ b/m/PARSER/McLachlan_BSSN.kranc
@@ -0,0 +1,200 @@
+# This is an until-end-of-line comment
+
+THORN BSSN
+
+
+
+DERIVATIVE
+ PDstandardNth[i_] -> StandardCenteredDifferenceOperator[1,derivOrder/2,i]
+
+DERIVATIVE
+ PDstandardNth[i_,i_] -> StandardCenteredDifferenceOperator[2,derivOrder/2,i]
+DERIVATIVE
+ PDstandardNth[i_,j_] -> StandardCenteredDifferenceOperator[1,derivOrder/2,i] *
+ StandardCenteredDifferenceOperator[1,derivOrder/2,j]
+DERIVATIVE
+ PDdissipationNth[i_] ->
+ spacing[i]^(derivOrder+1) / 2^(derivOrder+2) *
+ StandardCenteredDifferenceOperator[derivOrder+2,derivOrder/2+1,i]
+
+JACOBIAN {PD, FD, J, dJ}
+
+
+
+TENSOR normal, tangentA, tangentB, dir
+TENSOR xx, rr, th, ph
+TENSOR J, dJ
+TENSOR admg, admK, admalpha, admdtalpha, admbeta, admdtbeta, H, M
+TENSOR g, detg, gu, G, R, trR, Km, trK, cdphi, cdphi2
+TENSOR phi, gt, At, Xt, Xtn, alpha, A, beta, B, Atm, Atu, trA, Ats, trAts
+TENSOR dottrK, dotXt
+TENSOR cXt, cS, cA
+TENSOR e4phi, em4phi, ddetg, detgt, gtu, ddetgt, dgtu, ddgtu, Gtl, Gtlu, Gt
+TENSOR Rt, Rphi, gK
+TENSOR T00, T0, T, rho, S
+TENSOR x, y, z, r
+TENSOR epsdiss
+
+
+
+SYMMETRIC admg[la,lb], admK[la,lb]
+SYMMETRIC g[la,lb], K[la,lb], R[la,lb], cdphi2[la,lb]
+SYMMETRIC gt[la,lb], At[la,lb], Ats[la,lb], Rt[la,lb], Rphi[la,lb], T[la,lb]
+
+SYMMETRIC {dJ[ua,lb,lc], lb, lc}
+SYMMETRIC {G[ua,lb,lc], lb, lc}
+SYMMETRIC {Gtl[la,lb,lc], lb, lc}
+SYMMETRIC {Gt[ua,lb,lc], lb, lc}
+SYMMETRIC {gK[la,lb,lc], la, lb}
+
+SYMMETRIC gu[ua,ub], gtu[ua,ub], Atu[ua,ub]
+SYMMETRIC {dgtu[ua,ub,lc], ua, ub}
+SYMMETRIC {ddgtu[ua,ub,lc,ld], ua, ub}
+SYMMETRIC {ddgtu[ua,ub,lc,ld], lc, ld}
+
+
+
+CONNECTION {CD, PD, G}
+CONNECTION {CDt, PD, Gt}
+
+
+
+GROUP {phi , "log_confac"}
+GROUP {gt[la,lb], "metric" }
+GROUP {Xt[ua ], "Gamma" }
+
+EXTRA_GROUP {"Grid::coordinates", {x, y, z, r}}
+EXTRA_GROUP {"ADMBase::metric", {gxx, gxy, gxz, gyy, gyz, gzz}}
+EXTRA_GROUP {"ADMBase::curv", {kxx, kxy, kxz, kyy, kyz, kzz}}
+
+
+
+DEFINE pi = N[Pi,40]
+
+DEFINE
+ detgExpr = Det [MatrixOfComponents [g [la,lb]]]
+DEFINE
+ ddetgExpr[la_] =
+ Sum [D[Det[MatrixOfComponents[g[la, lb]]], X] PD[X, la],
+ {X, Union[Flatten[MatrixOfComponents[g[la, lb]]]]}]
+
+DEFINE
+ detgtExpr = Det [MatrixOfComponents [gt[la,lb]]]
+DEFINE
+ ddetgtExpr[la_] =
+ Sum [D[Det[MatrixOfComponents[gt[la, lb]]], X] PD[X, la],
+ {X, Union[Flatten[MatrixOfComponents[gt[la, lb]]]]}]
+
+
+
+CALCULATION "Minkowski"
+ Schedule: {"IN ADMBase_InitialData"}
+ ConditionalOnKeyword: {"my_initial_data", "Minkowski"}
+ BEGIN EQUATIONS
+ phi -> IfThen[conformalMethod, 1, 0]
+ phi -> conformalMethod ? 1 : 0
+ gt[la,lb] -> KD[la,lb]
+ trK -> 0
+ At[la,lb] -> 0
+ Xt[ua] -> 0
+ alpha -> 1
+ A -> 0
+ beta[ua] -> 0
+ B[ua] -> 0
+ END EQUATIONS
+END CALCULATION
+
+
+
+CALCULATION "convertFromADMBase"
+ Schedule: {"AT initial AFTER ADMBase_PostInitial"}
+ ConditionalOnKeyword: {"my_initial_data", "ADMBase"}
+ SHORTHAND g[la,lb], detg, gu[ua,ub], em4phi
+ BEGIN EQUATIONS
+ g[la,lb] -> admg[la,lb]
+ detg -> detgExpr
+ gu[ua,ub] -> 1/detg detgExpr MatrixInverse [g[ua,ub]]
+
+ phi -> IfThen [conformalMethod, detg^(-1/6), Log[detg]/12]
+ em4phi -> IfThen [conformalMethod, phi^2, Exp[-4 phi]]
+ gt[la,lb] -> em4phi g[la,lb]
+
+ trK -> gu[ua,ub] admK[la,lb]
+ At[la,lb] -> em4phi (admK[la,lb] - (1/3) g[la,lb] trK)
+
+ alpha -> admalpha
+
+ beta[ua] -> admbeta[ua]
+ END EQUATIONS
+END CALCULATION
+
+
+
+CALCULATION convertFromADMBaseGammaCalc
+ Name: BSSN <> "_convertFromADMBaseGamma"
+ Schedule: {"AT initial AFTER " <> BSSN <> "_convertFromADMBase"}
+ ConditionalOnKeyword: {"my_initial_data", "ADMBase"}
+ # Do not synchronise right after this routine; instead, synchronise
+ # after extrapolating
+ Where: Interior
+ # Synchronise after this routine, so that the refinement boundaries
+ # are set correctly before extrapolating. (We will need to
+ # synchronise again after extrapolating because extrapolation does
+ # not fill ghost zones, but this is irrelevant here.)
+ SHORTHAND dir[ua]
+ SHORTHAND detgt, gtu[ua,ub], Gt[ua,lb,lc], theta
+ BEGIN EQUATIONS
+ dir[ua] -> Sign[beta[ua]]
+
+ detgt -> 1 (* detgtExpr *)
+ gtu[ua,ub] -> 1/detgt detgtExpr MatrixInverse [gt[ua,ub]]
+ Gt[ua,lb,lc] -> 1/2 gtu[ua,ud]
+ (PD[gt[lb,ld],lc] + PD[gt[lc,ld],lb] - PD[gt[lb,lc],ld])
+ Xt[ua] -> gtu[ub,uc] Gt[ua,lb,lc]
+
+ # If LapseACoeff=0, then A is not evolved, in the sense that it
+ # does not influence the time evolution of other variables.
+ A -> IfThen [LapseACoeff != 0
+ 1 / (- harmonicF alpha^harmonicN)
+ (+ admdtalpha
+ - LapseAdvectionCoeff beta[ua] PDua[alpha,la]
+ - LapseAdvectionCoeff Abs[beta[ua]] PDus[alpha,la])
+ 0]
+
+ theta -> thetaExpr
+
+ # If ShiftBCoeff=0 or theta ShiftGammaCoeff=0, then B^i is not
+ # evolved, in the sense that it does not influence the time
+ # evolution of other variables.
+ B[ua] -> IfThen [ShiftGammaCoeff ShiftBCoeff != 0
+ 1 / (theta ShiftGammaCoeff)
+ (+ admdtbeta[ua]
+ - ShiftAdvectionCoeff beta[ub] PDua[beta[ua],lb]
+ - ShiftAdvectionCoeff Abs[beta[ub]] PDus[beta[ua],lb])
+ 0]
+ END EQUATIONS
+END CALCULATION
+
+
+
+INHERITED_IMPLEMENTATION ADMBase, TmunuBase
+
+
+
+KEYWORD_PARAMETER "my_initial_data"
+ # Visibility: "restricted"
+ # Description: "ddd"
+ AllowedValues: {"ADMBase", "Minkowski"}
+ Default: "ADMBase"
+END KEYWORD_PARAMETER
+
+
+
+REAL_PARAMETER LapseACoeff
+ Description: "Whether to evolve A in time"
+ Default: 0
+END REAL_PARAMETER
+
+
+
+END THORN
diff --git a/m/PARSER/McLachlan_BSSN.m b/m/PARSER/McLachlan_BSSN.m
new file mode 100644
index 0000000..810edaa
--- /dev/null
+++ b/m/PARSER/McLachlan_BSSN.m
@@ -0,0 +1,275 @@
+$Path = Join[$Path, {"../../../repos/Kranc/Tools/CodeGen",
+ "../../../repos/Kranc/Tools/MathematicaMisc"}];
+
+Get["KrancThorn`"];
+
+SetEnhancedTimes[False];
+SetSourceLanguage["C"];
+
+
+
+(******************************************************************************)
+(* Derivatives *)
+(******************************************************************************)
+
+KD = KroneckerDelta;
+
+partialDerivatives =
+{
+ PDstandardNth[i_] -> StandardCenteredDifferenceOperator[1,derivOrder/2,i],
+ PDstandardNth[i_,i_] -> StandardCenteredDifferenceOperator[2,derivOrder/2,i],
+ PDstandardNth[i_,j_] -> StandardCenteredDifferenceOperator[1,derivOrder/2,i] *
+ StandardCenteredDifferenceOperator[1,derivOrder/2,j],
+ PDdissipationNth[i_] ->
+ spacing[i]^(derivOrder+1) / 2^(derivOrder+2) *
+ StandardCenteredDifferenceOperator[derivOrder+2,derivOrder/2+1,i],
+};
+
+ResetJacobians;
+
+DefineJacobian[PD, FD, J, dJ];
+
+
+
+(******************************************************************************)
+(* Tensors *)
+(******************************************************************************)
+
+DefineTensor[normal];
+DefineTensor[tangentA];
+DefineTensor[tangentB];
+DefineTensor[dir];
+
+AssertSymmetricIncreasing[admg[lalb]];
+AssertSymmetricIncreasing[admK[lalb]];
+AssertSymmetricIncreasing [dJ[ua,lb,lc], lb, lc];
+AssertSymmetricIncreasing [G[ua,lb,lc], lb, lc];
+AssertSymmetricIncreasing [Gtl[la,lb,lc], lb, lc];
+AssertSymmetricIncreasing [Gt[ua,lb,lc], lb, lc];
+AssertSymmetricIncreasing [gK[la,lb,lc], la, lb];
+
+DefineConnection [CD, PD, G];
+DefineConnection [CDt, PD, Gt];
+
+
+
+(******************************************************************************)
+(* Expressions *)
+(******************************************************************************)
+
+pi = N[Pi,40];
+
+detgExpr = Det [MatrixOfComponents [g [la,lb]]];
+ddetgExpr[la_] =
+ Sum [D[Det[MatrixOfComponents[g[la, lb]]], X] PD[X, la],
+ {X, Union[Flatten[MatrixOfComponents[g[la, lb]]]]}];
+
+detgtExpr = Det [MatrixOfComponents [gt[la,lb]]];
+ddetgtExpr[la_] =
+ Sum [D[Det[MatrixOfComponents[gt[la, lb]]], X] PD[X, la],
+ {X, Union[Flatten[MatrixOfComponents[gt[la, lb]]]]}];
+
+
+
+(******************************************************************************)
+(* Groups *)
+(******************************************************************************)
+
+declaredGroups = {
+ SetGroupName [CreateGroupFromTensor [phi ], "log_confac"],
+ SetGroupName [CreateGroupFromTensor [gt[la,lb]], "metric" ],
+ SetGroupName [CreateGroupFromTensor [Xt[ua] ], "Gamma" ]
+};
+
+declaredGroupNames = Map[First, declaredGroups];
+
+extraGroups =
+ {{"Grid::coordinates", {x, y, z, r}},
+ {"ADMBase::metric", {gxx, gxy, gxz, gyy, gyz, gzz}},
+ {"ADMBase::curv", {kxx, kxy, kxz, kyy, kyz, kzz}}}
+};
+
+allGroups = Join[declaredGroups, extraGroups];
+
+
+
+(******************************************************************************)
+(* Initial data *)
+(******************************************************************************)
+
+initialCalc =
+{
+ Name -> BSSN <> "_Minkowski",
+ Schedule -> {"IN ADMBase_InitialData"},
+ ConditionalOnKeyword -> {"my_initial_data", "Minkowski"},
+ Equations ->
+ {
+ phi -> IfThen [conformalMethod, 1, 0],
+ gt[la,lb] -> KD[la,lb],
+ trK -> 0,
+ At[la,lb] -> 0,
+ Xt[ua] -> 0,
+ alpha -> 1,
+ A -> 0,
+ beta[ua] -> 0,
+ B[ua] -> 0
+ }
+};
+
+
+
+(******************************************************************************)
+(* Convert from ADMBase *)
+(******************************************************************************)
+
+convertFromADMBaseCalc =
+{
+ Name -> BSSN <> "_convertFromADMBase",
+ Schedule -> {"AT initial AFTER ADMBase_PostInitial"},
+ ConditionalOnKeyword -> {"my_initial_data", "ADMBase"},
+ Shorthands -> {g[la,lb], detg, gu[ua,ub], em4phi},
+ Equations ->
+ {
+ g[la,lb] -> admg[la,lb],
+ detg -> detgExpr,
+ gu[ua,ub] -> 1/detg detgExpr MatrixInverse [g[ua,ub]],
+
+ phi -> IfThen [conformalMethod, detg^(-1/6), Log[detg]/12],
+ em4phi -> IfThen [conformalMethod, phi^2, Exp[-4 phi]],
+ gt[la,lb] -> em4phi g[la,lb],
+
+ trK -> gu[ua,ub] admK[la,lb],
+ At[la,lb] -> em4phi (admK[la,lb] - (1/3) g[la,lb] trK),
+
+ alpha -> admalpha,
+
+ beta[ua] -> admbeta[ua]
+ }
+};
+
+convertFromADMBaseGammaCalc =
+{
+ Name -> BSSN <> "_convertFromADMBaseGamma",
+ Schedule -> {"AT initial AFTER " <> BSSN <> "_convertFromADMBase"},
+ ConditionalOnKeyword -> {"my_initial_data", "ADMBase"},
+ (*
+ Where -> InteriorNoSync,
+ *)
+ (* Do not synchronise right after this routine; instead, synchronise
+ after extrapolating *)
+ Where -> Interior,
+ (* Synchronise after this routine, so that the refinement boundaries
+ are set correctly before extrapolating. (We will need to
+ synchronise again after extrapolating because extrapolation does
+ not fill ghost zones, but this is irrelevant here.) *)
+ Shorthands -> {dir[ua],
+ detgt, gtu[ua,ub], Gt[ua,lb,lc], theta},
+ Equations ->
+ {
+ dir[ua] -> Sign[beta[ua]],
+
+ detgt -> 1 (* detgtExpr *),
+ gtu[ua,ub] -> 1/detgt detgtExpr MatrixInverse [gt[ua,ub]],
+ Gt[ua,lb,lc] -> 1/2 gtu[ua,ud]
+ (PD[gt[lb,ld],lc] + PD[gt[lc,ld],lb] - PD[gt[lb,lc],ld]),
+ Xt[ua] -> gtu[ub,uc] Gt[ua,lb,lc],
+
+(*
+ A -> - admdtalpha / (harmonicF alpha^harmonicN) (LapseAdvectionCoeff - 1),
+*)
+ (* If LapseACoeff=0, then A is not evolved, in the sense that it
+ does not influence the time evolution of other variables. *)
+ A -> IfThen [LapseACoeff != 0,
+ 1 / (- harmonicF alpha^harmonicN)
+ (+ admdtalpha
+ - LapseAdvectionCoeff beta[ua] PDua[alpha,la]
+ - LapseAdvectionCoeff Abs[beta[ua]] PDus[alpha,la]),
+ 0],
+
+ theta -> thetaExpr,
+
+ (* If ShiftBCoeff=0 or theta ShiftGammaCoeff=0, then B^i is not
+ evolved, in the sense that it does not influence the time
+ evolution of other variables. *)
+ B[ua] -> IfThen [ShiftGammaCoeff ShiftBCoeff != 0,
+ 1 / (theta ShiftGammaCoeff)
+ (+ admdtbeta[ua]
+ - ShiftAdvectionCoeff beta[ub] PDua[beta[ua],lb]
+ - ShiftAdvectionCoeff Abs[beta[ub]] PDus[beta[ua],lb]),
+ 0]
+ }
+};
+
+
+
+(******************************************************************************)
+(* Implementations *)
+(******************************************************************************)
+
+inheritedImplementations = {"ADMBase", "TmunuBase"};
+
+
+
+(******************************************************************************)
+(* Parameters *)
+(******************************************************************************)
+
+keywordParameters =
+{
+ {
+ Name -> "my_initial_data",
+ (* Visibility -> "restricted", *)
+ (* Description -> "ddd", *)
+ AllowedValues -> {"ADMBase", "Minkowski"},
+ Default -> "ADMBase"
+ },
+ {
+ Name -> "my_initial_boundary_condition",
+ Visibility -> "restricted",
+ (* Description -> "ddd", *)
+ AllowedValues -> {"none"},
+ Default -> "none"
+ }
+};
+
+realParameters =
+{
+ {
+ Name -> LapseACoeff,
+ Description -> "Whether to evolve A in time",
+ Default -> 0
+ },
+ {
+ Name -> harmonicF,
+ Description -> "d/dt alpha = - f alpha^n K (harmonic=1, 1+log=2)",
+ Default -> 1
+ }
+};
+
+
+
+(******************************************************************************)
+(* Construct the thorns *)
+(******************************************************************************)
+
+calculations =
+{
+ initialCalc,
+ convertFromADMBaseCalc,
+ convertFromADMBaseGammaCalc
+};
+
+CreateKrancThornTT [allGroups, ".", BSSN,
+ Calculations -> calculations,
+ DeclaredGroups -> declaredGroupNames,
+ PartialDerivatives -> derivatives,
+ EvolutionTimelevels -> evolutionTimelevels,
+ DefaultEvolutionTimelevels -> 3,
+ UseLoopControl -> True,
+ InheritedImplementations -> inheritedImplementations,
+ InheritedKeywordParameters -> inheritedKeywordParameters,
+ ExtendedKeywordParameters -> extendedKeywordParameters,
+ KeywordParameters -> keywordParameters,
+ IntParameters -> intParameters,
+ RealParameters -> realParameters
+];
diff --git a/m/cse.m b/m/cse.m
deleted file mode 100644
index f327f17..0000000
--- a/m/cse.m
+++ /dev/null
@@ -1,36 +0,0 @@
-expr = {a -> Sin[Sqrt[x]] + Cos[Sqrt[x]],
- b -> Cos[Sqrt[x]]}
-
-pexpr = expr //. {a_, b__} -> CSequence[a, {b}] //. {a_} ->
- a //. (a_ -> b_) -> CAssign[a, b]
-
-oexp = pexpr // Experimental`OptimizeExpression
-
-{locals, code} =
- ReleaseHold[(Hold @@ oexp) /.
- Verbatim[Block][vars_, seq_] :> {vars, Hold[seq]}]
-
-code1 =
- code /. Hold[CompoundExpression[seq__]] :> Hold[{seq}]
-
-code2 =
- First[code1 //.
- Hold[{a___Hold, b_, c___}] /; Head[Unevaluated[b]] =!= Hold :>
- Hold[{a, Hold[b], c}]]
-
-statements =
- StringReplace[ToString[CForm[#]],
- "Hold(" ~~ ShortestMatch[a___] ~~ ")" :> a] & /@ code2
-
-mycsequence = StringJoin @@ Riffle[statements, ";\n"]
-
-replacevar =
- Rule @@@ Transpose[{ToString[CForm[#]] & /@ locals,
- StringReplace[StringReplace[ToString[#], {__ ~~ "`" ~~ a_ :> a}],
- "$" -> "_"] & /@ locals}]
-
-mycsequence1 = StringReplace[mycsequence, replacevar]
-
-final =
- "{\ndouble " <> StringJoin @@ Riffle[Last /@ replacevar, ","] <>
- ";\n\n" <> mycsequence1 <> ";\n}\n"
diff --git a/m/grhydro.m b/m/grhydro.m
deleted file mode 100644
index a71a28b..0000000
--- a/m/grhydro.m
+++ /dev/null
@@ -1,154 +0,0 @@
-Get["KrancThorn`"];
-
-(*SetDebugLevel[InfoFull];*)
-
-SetEnhancedTimes[False];
-SetSourceLanguage["C"];
-
-(****************************************************************************
- Derivatives
-****************************************************************************)
-
-derivatives =
-{
- PDstandard2nd[i_] -> StandardCenteredDifferenceOperator[1,1,i],
- PDstandard2nd[i_, i_] -> StandardCenteredDifferenceOperator[2,1,i],
- PDstandard2nd[i_, j_] -> StandardCenteredDifferenceOperator[1,1,i] *
- StandardCenteredDifferenceOperator[1,1,j],
-
- PDstandard4th[i_] -> StandardCenteredDifferenceOperator[1,2,i],
- PDstandard4th[i_, i_] -> StandardCenteredDifferenceOperator[2,2,i],
- PDstandard4th[i_, j_] -> StandardCenteredDifferenceOperator[1,2,i] *
- StandardCenteredDifferenceOperator[1,2,j],
-
- PDplus[i_] -> DPlus[i],
- PDminus[i_] -> DMinus[i],
- PDplus[i_,j_] -> DPlus[i] DPlus[j],
-
- PDonesided2nd[1] -> dir[1] (-shift[1]^(2 dir[1]) + 4 shift[1]^dir[1] - 3 )/
- (2 spacing[1]),
- PDonesided2nd[2] -> dir[2] (-shift[2]^(2 dir[2]) + 4 shift[2]^dir[2] - 3 )/
- (2 spacing[2]),
- PDonesided2nd[3] -> dir[3] (-shift[3]^(2 dir[3]) + 4 shift[3]^dir[3] - 3 )/
- (2 spacing[3])
-};
-
-(*PD = PDstandard2nd;*)
-
-(****************************************************************************
- Tensors
-****************************************************************************)
-
-(* Register all the tensors that will be used with TensorTools *)
-Map[DefineTensor,
-{
- rho, vel, eps, press,
- dens, mom, tau
-}];
-
-(* Register the TensorTools symmetries (this is very simplistic) *)
-Map[AssertSymmetricDecreasing,
-{
-}];
-
-(* Determinants of the metrics in terms of their components
- (Mathematica symbolic expressions) *)
-gDet = Det[MatrixOfComponents[g[la,lb]]];
-
-(****************************************************************************
- Groups
-****************************************************************************)
-
-SetGroupTimelevels[g_,tl_] = Join[g, {Timelevels -> tl}];
-
-evolvedGroups =
- {CreateGroupFromTensor [dens ], (* mass density *)
- CreateGroupFromTensor [mom[la]], (* momentum density *)
- CreateGroupFromTensor [tau ]}; (* energy density *)
-evaluatedGroups =
- {CreateGroupFromTensor [rho ], (* mass density *)
- CreateGroupFromTensor [vel[ua]], (* velocity *)
- CreateGroupFromTensor [eps ], (* specific internal energy *)
- CreateGroupFromTensor [press ]}; (* pressure *)
-
-declaredGroups = Join [evolvedGroups, evaluatedGroups];
-declaredGroupNames = Map [First, declaredGroups];
-
-groups = Join[declaredGroups];
-
-(******************************************************************************)
-(* Initial data *)
-(******************************************************************************)
-
-initialCalc =
-{
- Name -> BSSN <> "_vacuum",
- Schedule -> {"IN ADMBase_InitialData"},
- ConditionalOnKeyword -> {"my_initial_data", "vacuum"},
- Equations ->
- {
- rho -> 0,
- vel[ua] -> 0,
- eps -> 0
- }
-};
-
-(******************************************************************************)
-(* Convert from primitive to conserved variables *)
-(******************************************************************************)
-
-prim2conCalc =
-{
- Name -> BSSN <> "_con2prim",
- Schedule -> {"AT initial AFTER ADMBase_PostInitial"},
- Equations ->
- {
- dens -> rho,
- mom[la] -> rho vel[ua],
- tau -> (1/2) rho vel[ua] vel[la] + rho eps
- }
-};
-
-(******************************************************************************)
-(* Convert from conserved to primitive variables *)
-(******************************************************************************)
-
-con2primCalc =
-{
- Name -> BSSN <> "_con2prim",
- Schedule -> {"IN " <> BSSN <>"_con2primGroup"},
- Equations ->
- {
- rho -> dens,
- vel[ua] -> mom[la] / dens,
- eps -> tau / dens - (1/2) vel[ua] vel[la],
-
- press -> Gamma rho eps +
- alpha PD[vel[ua],la]
- }
-};
-
-(******************************************************************************)
-(* Evolution equations *)
-(******************************************************************************)
-
-evolCalc =
-{
- Name -> BSSN <> "_RHS",
- Schedule -> {"IN " <> BSSN <>"_evolCalcGroup"},
- Shorthands -> {rhov[ua], momv[la,ub], tauv[ua]},
- Equations ->
- {
- (* dt rho + div rho v = 0 *)
- rhov[ua] -> mom[la],
- dot[dens] -> - PD[rhov[ua],la],
-
- (* dt pi + div (pi v + P) = 0 *)
- momv[la,ub] -> mom[la] vel[ub] + KD[la,ub] press,
- dot[mom[la]] -> - PD[momv[la,ub],lb],
-
- (* dt tau + div (tauv + P) = 0 *)
- tauv[ua] -> tau vel[ua] + press vel[ua],
- dot[tau] -> - PD[tauv[ua],la]
- }
-};
diff --git a/m/psi.m b/m/psi.m
deleted file mode 100644
index 403ba2d..0000000
--- a/m/psi.m
+++ /dev/null
@@ -1,318 +0,0 @@
-Get["KrancThorn`"];
-
-(*SetDebugLevel[InfoFull];*)
-
-SetEnhancedTimes[False];
-SetSourceLanguage["C"];
-
-(****************************************************************************
- Derivatives
-****************************************************************************)
-
-derivatives =
-{
- PDstandard2nd[i_] -> StandardCenteredDifferenceOperator[1,1,i],
- PDstandard2nd[i_, i_] -> StandardCenteredDifferenceOperator[2,1,i],
- PDstandard2nd[i_, j_] -> StandardCenteredDifferenceOperator[1,1,i] *
- StandardCenteredDifferenceOperator[1,1,j],
-
- PDstandard4th[i_] -> StandardCenteredDifferenceOperator[1,2,i],
- PDstandard4th[i_, i_] -> StandardCenteredDifferenceOperator[2,2,i],
- PDstandard4th[i_, j_] -> StandardCenteredDifferenceOperator[1,2,i] *
- StandardCenteredDifferenceOperator[1,2,j],
-
- PDplus[i_] -> DPlus[i],
- PDminus[i_] -> DMinus[i],
- PDplus[i_,j_] -> DPlus[i] DPlus[j],
-
- PDonesided2nd[1] -> dir[1] (-shift[1]^(2 dir[1]) + 4 shift[1]^dir[1] - 3 )/
- (2 spacing[1]),
- PDonesided2nd[2] -> dir[2] (-shift[2]^(2 dir[2]) + 4 shift[2]^dir[2] - 3 )/
- (2 spacing[2]),
- PDonesided2nd[3] -> dir[3] (-shift[3]^(2 dir[3]) + 4 shift[3]^dir[3] - 3 )/
- (2 spacing[3])
-};
-
-(*PD = PDstandard2nd;*)
-
-(****************************************************************************
- Tensors
-****************************************************************************)
-
-(* Register all the tensors that will be used with TensorTools *)
-Map[DefineTensor,
-{
- R, gamma,g, gInv, k, ltet, n, rm, im, rmbar, imbar, tn, va, vb, vc,
- Ro, Rojo, R4p, Psi0r, Psi0i, Psi1r, Psi1i, Psi2r, Psi2i, Psi3r,
- Psi3i, Psi4r,Psi4i
-}];
-
-SetTensorAttribute[Psi0r, TensorManualCartesianParities, {1,1,1}];
-SetTensorAttribute[Psi2r, TensorManualCartesianParities, {1,1,1}];
-SetTensorAttribute[Psi4r, TensorManualCartesianParities, {1,1,1}];
-SetTensorAttribute[Psi0i, TensorManualCartesianParities, {-1,-1,-1}];
-SetTensorAttribute[Psi2i, TensorManualCartesianParities, {-1,-1,-1}];
-SetTensorAttribute[Psi4i, TensorManualCartesianParities, {-1,-1,-1}];
-SetTensorAttribute[Psi1r, TensorManualCartesianParities, {1,1,-1}];
-SetTensorAttribute[Psi3r, TensorManualCartesianParities, {-1,-1,1}];
-SetTensorAttribute[Psi1i, TensorManualCartesianParities, {-1,-1,1}];
-SetTensorAttribute[Psi3i, TensorManualCartesianParities, {-1,-1,1}];
-
-(* Register the TensorTools symmetries (this is very simplistic) *)
-Map[AssertSymmetricDecreasing,
-{
- k[la,lb], g[la,lb]
-}];
-
-AssertSymmetricDecreasing[gamma[ua,lb,lc], lb, lc];
-
-(*RiemannSymmetries[r_] :=
- Module[{},
- Do[
-(* If[b < a, r[a,b,c,d] = - r[b,a,c,d]];
- If[d < c, r[a,b,c,d] = - r[a,b,d,c]];*)
- If[c < a && d < b, r[a,b,c,d] = r[c,d,a,b]];
-
- , {a, 1, 3},
- {b, 1, 3},
- {c, 1, 3},
- {d, 1, 3}]];
-
-RiemannSymmetries[R];*)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-(* Determinants of the metrics in terms of their components
- (Mathematica symbolic expressions) *)
-gDet = Det[MatrixOfComponents[g[la,lb]]];
-
-(****************************************************************************
- Groups
-****************************************************************************)
-
-(* Cactus group definitions *)
-
-scalars = { (*Psi0r, Psi0i, Psi1r, Psi1i, Psi2r, Psi2i, Psi3r, Psi3i, *) Psi4r,Psi4i};
-
-scalarGroups = Map[CreateGroupFromTensor, scalars];
-
-(* We need extra timelevels so that interpolation onto the extraction sphere
- works properly with mesh refinement *)
-scalarGroups = Map[AddGroupExtra[#, Timelevels -> 3] &, scalarGroups];
-
-admGroups =
- {{"admbase::metric", {gxx,gxy,gxz,gyy,gyz,gzz}},
- {"admbase::curv", {kxx,kxy,kxz,kyy,kyz,kzz}},
- {"admbase::lapse", {alp}},
- {"admbase::shift", {betax,betay,betaz}}};
-
-declaredGroups = scalarGroups;
-declaredGroupNames = Map[First, declaredGroups];
-
-groups = Join[declaredGroups, admGroups];
-
-(****************************************************************************
- Shorthands
-****************************************************************************)
-
-shorthands =
-{
- gamma[ua,lb,lc], R[la,lb,lc,ld], invdetg, detg, third, detgmthirdroot,
- gInv[ua,ub], Ro[la,lb,lc], Rojo[la,lb], R4p[li,lj,lk,ll],
- omega11, omega22, omega33, omega12, omega13, omega23, va[ua], vb[ua], vc[ua],
- tn[ua], n0, ltet[ua],n[ua],rm[ua],im[ua],rmbar[ua],imbar[ua], isqrt2
-};
-
-k11=kxx; k21=kxy; k22=kyy; k31=kxz; k32=kyz; k33=kzz;
-g11=gxx; g21=gxy; g22=gyy; g31=gxz; g32=gyz; g33=gzz;
-
-realParameters = {{Name -> offset, Default -> 10^(-15)},xorig,yorig,zorig};
-
-PsisCalc[fdOrder_, PD_] :=
-{
- Name -> "psis_calc_" <> fdOrder,
- Schedule -> {"at CCTK_EVOL after MoL_Evolution after evolved_to_adm as calc_np"},
- Where -> Interior,
- ConditionalOnKeyword -> {"fd_order", fdOrder},
- Shorthands -> shorthands,
- Equations ->
- {
- detg -> gDet,
- invdetg -> 1 / detg,
- gInv[ua,ub] -> invdetg gDet MatrixInverse[g[ua,ub]],
- gamma[ua, lb, lc] -> 1/2 gInv[ua,ud] (PD[g[lb,ld], lc] +
- PD[g[lc,ld], lb] - PD[g[lb,lc],ld]),
-
-(****************************************************************************
- Offset the origin
-****************************************************************************)
-
- x -> x - xorig,
- y -> y - yorig,
- z -> z - zorig,
-
-(****************************************************************************
- Compute the local tetrad
-****************************************************************************)
-
- va1 -> -y, va2 -> x+offset, va3 -> 0,
- vb1 -> x+offset, vb2 -> y, vb3 -> z,
- vc[ua] -> Sqrt[detg] gInv[ua,ud] Eps[ld,lb,lc] va[ub] vb[uc],
-
- (* Orthonormalize using Gram-Schmidt*)
-
- omega11 -> va[ua] va[ub] g[la,lb],
- va[ua] -> va[ua] / Sqrt[omega11],
-
- omega12 -> va[ua] vb[ub] g[la,lb],
- vb[ua] -> vb[ua] - omega12 va[ua],
- omega22 -> vb[ua] vb[ub] g[la,lb],
- vb[ua] -> vb[ua]/Sqrt[omega22],
-
- omega13 -> va[ua] vc[ub] g[la,lb],
- omega23 -> vb[ua] vc[ub] g[la,lb],
- vc[ua] -> vc[ua] - omega13 va[ua] - omega23 vb[ua],
- omega33 -> vc[ua] vc[ub] g[la,lb],
- vc[ua] -> vc[ua]/Sqrt[omega33],
-
- isqrt2 -> 0.70710678118654752440,
-
- (* Create Spatial Portion of Null Tetrad *)
- ltet[ua] -> ( vb[ua]) isqrt2,
- n[ua] -> ( - vb[ua]) isqrt2,
- rm[ua] -> vc[ua] isqrt2,
- im[ua] -> va[ua] isqrt2,
- rmbar[ua] -> vc[ua] isqrt2,
- imbar[ua] -> -va[ua] isqrt2,
-
- n0 -> isqrt2,
-
-
-(****************************************************************************
- Compute the NP pseudoscalars
-****************************************************************************)
-
- (* Calculate the relevant Riemann Quantities *)
-
- (* The 3-Riemann *)
- R[la,lb,lc,ld] -> 1/2 ( PD[g[la,ld],lc,lb] + PD[g[lb,lc],ld,la] )
- - 1/2 ( PD[g[la,lc],lb,ld] + PD[g[lb,ld],la,lc] )
- + g[lj,le] gamma[uj,lb,lc] gamma[ue,la,ld]
- - g[lj,le] gamma[uj,lb,ld] gamma[ue,la,lc],
-
- (* The 4-Riemann projected into the slice on all its indices.
- The Gauss equation. *)
- R4p[li,lj,lk,ll] -> R[li,lj,lk,ll] +
- 2 AntiSymmetrize[k[li,lk] k[ll,lj], lk, ll],
-
- (* The 4-Riemann projected in the unit normal direction on one
- index, then into the slice on the remaining indices. The Codazzi
- equation. *)
- Ro[lj,lk,ll] -> - 2 AntiSymmetrize[ PD[k[lj,lk],ll], lk,ll]
- - 2 AntiSymmetrize[ gamma[up,lj,lk] k[ll,lp], lk,ll],
-
- (* The 4-Riemann projected in the unit normal direction on two
- indices, and into the slice on the remaining two. *)
- Rojo[lj,ll] -> gInv[uc,ud] (R[lj,lc,ll,ld] )
- - k[lj,lp] gInv[up,ud] k[ld,ll]
- + k[lc,ld] gInv[uc,ud] k[lj,ll],
-
- (* Calculate End Quantities
- NOTE: In writing this, I assume m[0]=0!! to save lots of work *)
-
- Psi4r -> R4p[li,lj,lk,ll] n[ui] n[uk]
- ( rmbar[uj] rmbar[ul] - imbar[uj] imbar[ul] )
- + 2 Ro[lj,lk,ll] n[uk] n0
- ( rmbar[uj] rmbar[ul] - imbar[uj] imbar[ul] )
- + Rojo[lj,ll] n0 n0 ( rmbar[uj] rmbar[ul] - imbar[uj] imbar[ul]
- (* + terms in mbar^0 == 0*) ),
-
- Psi4i -> R4p[la,lb,lc,ld] n[ua] n[uc] ( - rm[ub] im[ud] - im[ub] rm[ud] )
- + 2 Ro[la,lb,lc] n[ub] n0 ( - rm[ua] im[uc] - im[ua] rm[uc] )
- + Rojo[la,lb] n0 n0 ( - rm[ua] im[ub] - im[ua] rm[ub] ) (*,
-
-
- Psi3r -> R4p[la,lb,lc,ld] ltet[ua] n[ub] rm[uc] n[ud]
- + Ro[la,lb,lc] ( n0 (n[ua]-ltet[ua]) rm[ub] n[uc]
- - n0 rm[ua] ltet[ub] n[uc] )
- - Rojo[la,lb] n0 (n[ua]-ltet[ua]) n0 rm[ub],
-
- Psi3i -> - R4p[la,lb,lc,ld] ltet[ua] n[ub] im[uc] n[ud]
- - Ro[la,lb,lc] ( n0 (n[ua]-ltet[ua]) im[ub] n[uc]
- - n0 im[ua] ltet[ub] n[uc] )
- + Rojo[la,lb] n0 (n[ua]-ltet[ua]) n0 im[ub],
-
- Psi2r -> R4p[la,lb,lc,ld] ltet[ua] n[ud] (rm[ub] rm[uc] + im[ub] im[uc])
- + Ro[la,lb,lc] n0 ( n[uc] (rm[ua] rm[ub] + im[ua] im[ub])
- - ltet[ub] (rm[ua] rm[uc] + im[ua] im[uc]) )
- - Rojo[la,lb] n0 n0 (rm[ua] rm[ub] + im[ua] im[ub]),
-
- Psi2i -> R4p[la,lb,lc,ld] ltet[ua] n[ud] (im[ub] rm[uc] - rm[ub] im[uc])
- + Ro[la,lb,lc] n0 ( n[uc] (im[ua] rm[ub] - rm[ua] im[ub])
- - ltet[ub] (rm[ua] im[uc] - im[ua] rm[uc]) )
- - Rojo[la,lb] n0 n0 (im[ua] rm[ub] - rm[ua] im[ub]),
-
- Psi1r -> R4p[la,lb,lc,ld] n[ua] ltet[ub] rm[uc] ltet[ud]
- + Ro[la,lb,lc] ( n0 ltet[ua] rm[ub] ltet[uc]
- - n0 rm[ua] n[ub] ltet[uc]
- - n0 n[ua] rm[ub] ltet[uc] )
- + Rojo[la,lb] n0 n0 ( n[ua] rm[ub] - ltet[ua] rm[ub] ),
-
- Psi1i -> R4p[la,lb,lc,ld] n[ua] ltet[ub] im[uc] ltet[ud]
- + Ro[la,lb,lc] ( n0 ltet[ua] im[ub] ltet[uc]
- - n0 im[ua] n[ub] ltet[uc]
- - n0 n[ua] im[ub] ltet[uc] )
- + Rojo[la,lb] n0 n0 ( n[ua] im[ub] - ltet[ua] im[ub] ),
-
- Psi0r -> R4p[la,lb,lc,ld] ltet[ua] ltet[uc] (rm[ub] rm[ud] - im[ub] im[ud])
- + 2 Ro[la,lb,lc] n0 ltet[ub] (rm[ua] rm[uc] - im[ua] im[uc])
- + Rojo[la,lb] n0 n0 (rm[ua] rm[ub] - im[ua] im[ub]),
-
- Psi0i -> R4p[la,lb,lc,ld] ltet[ua] ltet[uc] (rm[ub] im[ud] + im[ub] rm[ud])
- + 2 Ro[la,lb,lc] n0 ltet[ub] (rm[ua] im[uc] + im[ua] rm[uc])
- + Rojo[la,lb] n0 n0 (rm[ua] im[ub] + im[ua] rm[ub]) *)
- }
-};
-
-(****************************************************************************
- Construct the thorn
-****************************************************************************)
-
-fdOrderParam =
-{
- Name -> "fd_order",
- Default -> "2nd",
- AllowedValues -> {"2nd", "4th"}
-};
-
-keywordParameters =
-{
- fdOrderParam
-};
-
-calculations =
-{
- PsisCalc["2nd", PDstandard2nd],
- PsisCalc["4th", PDstandard4th]
-};
-
-CreateKrancThornTT[groups, ".", "WeylScal4",
- Calculations -> calculations,
- DeclaredGroups -> declaredGroupNames,
- PartialDerivatives -> derivatives,
- KeywordParameters -> keywordParameters,
- RealParameters -> realParameters,
- InheritedImplementations -> {"admbase"}];