diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2010-10-11 20:32:55 -0500 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2010-10-11 20:32:55 -0500 |
commit | 8e1f20f46f07170786de75fae15ffee82149dfcf (patch) | |
tree | 0992b207543c7499241e61b121413f7e7e529ced /ML_BSSN | |
parent | 15d57eb888fdcd68b873b02b0468e5508a02c581 (diff) |
Regenerate code
Diffstat (limited to 'ML_BSSN')
-rw-r--r-- | ML_BSSN/interface.ccl | 28 | ||||
-rw-r--r-- | ML_BSSN/schedule.ccl | 2 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_RHS1.c | 193 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_RHS2.c | 218 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_RHSRadiativeBoundary.c | 54 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_RHSStaticBoundary.c | 36 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_boundary.c | 36 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_constraints.c | 571 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_constraints_boundary.c | 24 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_convertFromADMBase.c | 8 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.c | 112 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShift.c | 15 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_convertToADMBaseDtLapseShiftBoundary.c | 15 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_enforce.c | 10 |
14 files changed, 785 insertions, 537 deletions
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; |