diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-11-07 09:51:21 -0600 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2007-11-07 09:51:21 -0600 |
commit | c044c4b1eec15aec88e53d151293d68c21dae23f (patch) | |
tree | 314c27fc895c3cd5ec8663a95722d1b01e9e64ab | |
parent | 7bfc37e91e40dea7e1f5a86096ae8668a6d548b1 (diff) |
Continued development on the BSSN constraints
Rename dtalpha and dtbeta to A and B.
Add alternative formulae for the conformal Ricci tensor as comments.
-rw-r--r-- | ML_ADM/schedule.ccl | 2 | ||||
-rw-r--r-- | ML_BSSN/interface.ccl | 16 | ||||
-rw-r--r-- | ML_BSSN/param.ccl | 32 | ||||
-rw-r--r-- | ML_BSSN/schedule.ccl | 4 | ||||
-rw-r--r-- | ML_BSSN/src/Boundaries.c | 200 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_Minkowski.c | 20 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_RHS.c | 37 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_constraints.c | 327 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_convertFromADMBase.c | 20 | ||||
-rw-r--r-- | ML_BSSN/src/ML_BSSN_convertToADMBase.c | 20 | ||||
-rw-r--r-- | ML_BSSN/src/RegisterMoL.c | 8 | ||||
-rw-r--r-- | ML_BSSN/src/RegisterSymmetries.c | 8 | ||||
-rw-r--r-- | m/McLachlan.m | 107 |
13 files changed, 291 insertions, 510 deletions
diff --git a/ML_ADM/schedule.ccl b/ML_ADM/schedule.ccl index 0aa9f9d..314d2b5 100644 --- a/ML_ADM/schedule.ccl +++ b/ML_ADM/schedule.ccl @@ -78,7 +78,7 @@ schedule ML_ADM_RHS AT analysis SYNC: shiftrhs } "ML_ADM_RHS" -schedule ML_ADM_convertToADMBase IN MoL_PostStep AFTER ADM_ApplyBoundConds +schedule ML_ADM_convertToADMBase IN MoL_PostStep AFTER ML_ADM_ApplyBCs { LANG: C diff --git a/ML_BSSN/interface.ccl b/ML_BSSN/interface.ccl index dd11e9f..2e9cc98 100644 --- a/ML_BSSN/interface.ccl +++ b/ML_BSSN/interface.ccl @@ -78,15 +78,15 @@ CCTK_REAL curvrhs type=GF timelevels=1 tags='tensortypealias="DD_sym" tensorweig public: CCTK_REAL dtlapserhs type=GF timelevels=1 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000' { - dtalpharhs + Arhs } "dtlapserhs" public: CCTK_REAL dtshiftrhs type=GF timelevels=1 tags='tensortypealias="U" tensorweight=1.0000000000000000000' { - dtbeta1rhs, - dtbeta2rhs, - dtbeta3rhs + B1rhs, + B2rhs, + B3rhs } "dtshiftrhs" public: @@ -148,15 +148,15 @@ CCTK_REAL curv type=GF timelevels=3 tags='tensortypealias="DD_sym" tensorweight= public: CCTK_REAL dtlapse type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1.0000000000000000000' { - dtalpha + A } "dtlapse" public: CCTK_REAL dtshift type=GF timelevels=3 tags='tensortypealias="U" tensorweight=1.0000000000000000000' { - dtbeta1, - dtbeta2, - dtbeta3 + B1, + B2, + B3 } "dtshift" public: diff --git a/ML_BSSN/param.ccl b/ML_BSSN/param.ccl index a7f2534..5b5a7d0 100644 --- a/ML_BSSN/param.ccl +++ b/ML_BSSN/param.ccl @@ -241,7 +241,7 @@ KEYWORD At33_bound "Boundary condition to implement" } "skip" private: -KEYWORD dtalpha_bound "Boundary condition to implement" +KEYWORD A_bound "Boundary condition to implement" { "flat" :: "Flat boundary condition" "none" :: "No boundary condition" @@ -253,7 +253,7 @@ KEYWORD dtalpha_bound "Boundary condition to implement" } "skip" private: -KEYWORD dtbeta1_bound "Boundary condition to implement" +KEYWORD B1_bound "Boundary condition to implement" { "flat" :: "Flat boundary condition" "none" :: "No boundary condition" @@ -265,7 +265,7 @@ KEYWORD dtbeta1_bound "Boundary condition to implement" } "skip" private: -KEYWORD dtbeta2_bound "Boundary condition to implement" +KEYWORD B2_bound "Boundary condition to implement" { "flat" :: "Flat boundary condition" "none" :: "No boundary condition" @@ -277,7 +277,7 @@ KEYWORD dtbeta2_bound "Boundary condition to implement" } "skip" private: -KEYWORD dtbeta3_bound "Boundary condition to implement" +KEYWORD B3_bound "Boundary condition to implement" { "flat" :: "Flat boundary condition" "none" :: "No boundary condition" @@ -613,25 +613,25 @@ CCTK_REAL At33_bound_speed "characteristic speed at boundary" } 1. private: -CCTK_REAL dtalpha_bound_speed "characteristic speed at boundary" +CCTK_REAL A_bound_speed "characteristic speed at boundary" { "0:*" :: "outgoing characteristic speed > 0" } 1. private: -CCTK_REAL dtbeta1_bound_speed "characteristic speed at boundary" +CCTK_REAL B1_bound_speed "characteristic speed at boundary" { "0:*" :: "outgoing characteristic speed > 0" } 1. private: -CCTK_REAL dtbeta2_bound_speed "characteristic speed at boundary" +CCTK_REAL B2_bound_speed "characteristic speed at boundary" { "0:*" :: "outgoing characteristic speed > 0" } 1. private: -CCTK_REAL dtbeta3_bound_speed "characteristic speed at boundary" +CCTK_REAL B3_bound_speed "characteristic speed at boundary" { "0:*" :: "outgoing characteristic speed > 0" } 1. @@ -817,25 +817,25 @@ CCTK_REAL At33_bound_limit "limit value for r -> infinity" } 0. private: -CCTK_REAL dtalpha_bound_limit "limit value for r -> infinity" +CCTK_REAL A_bound_limit "limit value for r -> infinity" { "*:*" :: "value of limit value is unrestricted" } 0. private: -CCTK_REAL dtbeta1_bound_limit "limit value for r -> infinity" +CCTK_REAL B1_bound_limit "limit value for r -> infinity" { "*:*" :: "value of limit value is unrestricted" } 0. private: -CCTK_REAL dtbeta2_bound_limit "limit value for r -> infinity" +CCTK_REAL B2_bound_limit "limit value for r -> infinity" { "*:*" :: "value of limit value is unrestricted" } 0. private: -CCTK_REAL dtbeta3_bound_limit "limit value for r -> infinity" +CCTK_REAL B3_bound_limit "limit value for r -> infinity" { "*:*" :: "value of limit value is unrestricted" } 0. @@ -1021,25 +1021,25 @@ CCTK_REAL At33_bound_scalar "Dirichlet boundary value" } 0. private: -CCTK_REAL dtalpha_bound_scalar "Dirichlet boundary value" +CCTK_REAL A_bound_scalar "Dirichlet boundary value" { "*:*" :: "unrestricted" } 0. private: -CCTK_REAL dtbeta1_bound_scalar "Dirichlet boundary value" +CCTK_REAL B1_bound_scalar "Dirichlet boundary value" { "*:*" :: "unrestricted" } 0. private: -CCTK_REAL dtbeta2_bound_scalar "Dirichlet boundary value" +CCTK_REAL B2_bound_scalar "Dirichlet boundary value" { "*:*" :: "unrestricted" } 0. private: -CCTK_REAL dtbeta3_bound_scalar "Dirichlet boundary value" +CCTK_REAL B3_bound_scalar "Dirichlet boundary value" { "*:*" :: "unrestricted" } 0. diff --git a/ML_BSSN/schedule.ccl b/ML_BSSN/schedule.ccl index a185b4d..4be8b1f 100644 --- a/ML_BSSN/schedule.ccl +++ b/ML_BSSN/schedule.ccl @@ -120,13 +120,13 @@ schedule ML_BSSN_RHS AT analysis SYNC: trace_curvrhs } "ML_BSSN_RHS" -schedule ML_BSSN_enforce IN MoL_PostStep AFTER BSSN_ApplyBoundConds +schedule ML_BSSN_enforce IN MoL_PostStep BEFORE ML_BSSN_BoundConds { LANG: C } "ML_BSSN_enforce" -schedule ML_BSSN_convertToADMBase IN MoL_PostStep AFTER ML_BSSN_ApplyBoundConds AFTER ML_BSSN_enforce +schedule ML_BSSN_convertToADMBase IN MoL_PostStep AFTER ML_BSSN_ApplyBCs AFTER ML_BSSN_enforce { LANG: C diff --git a/ML_BSSN/src/Boundaries.c b/ML_BSSN/src/Boundaries.c index 03838fd..eac8cbd 100644 --- a/ML_BSSN/src/Boundaries.c +++ b/ML_BSSN/src/Boundaries.c @@ -200,48 +200,48 @@ void ML_BSSN_ApplyBoundConds(CCTK_ARGUMENTS) CCTK_WARN(-1, "Failed to register At33_bound BC for ML_BSSN::At33!"); } - if (CCTK_EQUALS(dtalpha_bound, "none" ) || - CCTK_EQUALS(dtalpha_bound, "static") || - CCTK_EQUALS(dtalpha_bound, "flat" ) || - CCTK_EQUALS(dtalpha_bound, "zero" ) ) + if (CCTK_EQUALS(A_bound, "none" ) || + CCTK_EQUALS(A_bound, "static") || + CCTK_EQUALS(A_bound, "flat" ) || + CCTK_EQUALS(A_bound, "zero" ) ) { ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, - "ML_BSSN::dtalpha", dtalpha_bound); + "ML_BSSN::A", A_bound); if (ierr < 0) - CCTK_WARN(-1, "Failed to register dtalpha_bound BC for ML_BSSN::dtalpha!"); + CCTK_WARN(-1, "Failed to register A_bound BC for ML_BSSN::A!"); } - if (CCTK_EQUALS(dtbeta1_bound, "none" ) || - CCTK_EQUALS(dtbeta1_bound, "static") || - CCTK_EQUALS(dtbeta1_bound, "flat" ) || - CCTK_EQUALS(dtbeta1_bound, "zero" ) ) + if (CCTK_EQUALS(B1_bound, "none" ) || + CCTK_EQUALS(B1_bound, "static") || + CCTK_EQUALS(B1_bound, "flat" ) || + CCTK_EQUALS(B1_bound, "zero" ) ) { ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, - "ML_BSSN::dtbeta1", dtbeta1_bound); + "ML_BSSN::B1", B1_bound); if (ierr < 0) - CCTK_WARN(-1, "Failed to register dtbeta1_bound BC for ML_BSSN::dtbeta1!"); + CCTK_WARN(-1, "Failed to register B1_bound BC for ML_BSSN::B1!"); } - if (CCTK_EQUALS(dtbeta2_bound, "none" ) || - CCTK_EQUALS(dtbeta2_bound, "static") || - CCTK_EQUALS(dtbeta2_bound, "flat" ) || - CCTK_EQUALS(dtbeta2_bound, "zero" ) ) + if (CCTK_EQUALS(B2_bound, "none" ) || + CCTK_EQUALS(B2_bound, "static") || + CCTK_EQUALS(B2_bound, "flat" ) || + CCTK_EQUALS(B2_bound, "zero" ) ) { ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, - "ML_BSSN::dtbeta2", dtbeta2_bound); + "ML_BSSN::B2", B2_bound); if (ierr < 0) - CCTK_WARN(-1, "Failed to register dtbeta2_bound BC for ML_BSSN::dtbeta2!"); + CCTK_WARN(-1, "Failed to register B2_bound BC for ML_BSSN::B2!"); } - if (CCTK_EQUALS(dtbeta3_bound, "none" ) || - CCTK_EQUALS(dtbeta3_bound, "static") || - CCTK_EQUALS(dtbeta3_bound, "flat" ) || - CCTK_EQUALS(dtbeta3_bound, "zero" ) ) + if (CCTK_EQUALS(B3_bound, "none" ) || + CCTK_EQUALS(B3_bound, "static") || + CCTK_EQUALS(B3_bound, "flat" ) || + CCTK_EQUALS(B3_bound, "zero" ) ) { ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, - "ML_BSSN::dtbeta3", dtbeta3_bound); + "ML_BSSN::B3", B3_bound); if (ierr < 0) - CCTK_WARN(-1, "Failed to register dtbeta3_bound BC for ML_BSSN::dtbeta3!"); + CCTK_WARN(-1, "Failed to register B3_bound BC for ML_BSSN::B3!"); } if (CCTK_EQUALS(Xt1_bound, "none" ) || @@ -679,75 +679,75 @@ void ML_BSSN_ApplyBoundConds(CCTK_ARGUMENTS) } - if (CCTK_EQUALS(dtalpha_bound, "radiative")) + if (CCTK_EQUALS(A_bound, "radiative")) { /* apply radiation boundary condition */ - CCTK_INT handle_dtalpha_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); - if (handle_dtalpha_bound < 0) CCTK_WARN(-1, "could not create table!"); - if (Util_TableSetReal(handle_dtalpha_bound , dtalpha_bound_limit, "LIMIT") < 0) + CCTK_INT handle_A_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_A_bound < 0) CCTK_WARN(-1, "could not create table!"); + if (Util_TableSetReal(handle_A_bound , A_bound_limit, "LIMIT") < 0) CCTK_WARN(-1, "could not set LIMIT value in table!"); - if (Util_TableSetReal(handle_dtalpha_bound ,dtalpha_bound_speed, "SPEED") < 0) + if (Util_TableSetReal(handle_A_bound ,A_bound_speed, "SPEED") < 0) CCTK_WARN(-1, "could not set SPEED value in table!"); - ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_dtalpha_bound, - "ML_BSSN::dtalpha", "Radiation"); + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_A_bound, + "ML_BSSN::A", "Radiation"); if (ierr < 0) - CCTK_WARN(-1, "Failed to register Radiation BC for ML_BSSN::dtalpha!"); + CCTK_WARN(-1, "Failed to register Radiation BC for ML_BSSN::A!"); } - if (CCTK_EQUALS(dtbeta1_bound, "radiative")) + if (CCTK_EQUALS(B1_bound, "radiative")) { /* apply radiation boundary condition */ - CCTK_INT handle_dtbeta1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); - if (handle_dtbeta1_bound < 0) CCTK_WARN(-1, "could not create table!"); - if (Util_TableSetReal(handle_dtbeta1_bound , dtbeta1_bound_limit, "LIMIT") < 0) + CCTK_INT handle_B1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B1_bound < 0) CCTK_WARN(-1, "could not create table!"); + if (Util_TableSetReal(handle_B1_bound , B1_bound_limit, "LIMIT") < 0) CCTK_WARN(-1, "could not set LIMIT value in table!"); - if (Util_TableSetReal(handle_dtbeta1_bound ,dtbeta1_bound_speed, "SPEED") < 0) + if (Util_TableSetReal(handle_B1_bound ,B1_bound_speed, "SPEED") < 0) CCTK_WARN(-1, "could not set SPEED value in table!"); - ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_dtbeta1_bound, - "ML_BSSN::dtbeta1", "Radiation"); + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B1_bound, + "ML_BSSN::B1", "Radiation"); if (ierr < 0) - CCTK_WARN(-1, "Failed to register Radiation BC for ML_BSSN::dtbeta1!"); + CCTK_WARN(-1, "Failed to register Radiation BC for ML_BSSN::B1!"); } - if (CCTK_EQUALS(dtbeta2_bound, "radiative")) + if (CCTK_EQUALS(B2_bound, "radiative")) { /* apply radiation boundary condition */ - CCTK_INT handle_dtbeta2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); - if (handle_dtbeta2_bound < 0) CCTK_WARN(-1, "could not create table!"); - if (Util_TableSetReal(handle_dtbeta2_bound , dtbeta2_bound_limit, "LIMIT") < 0) + CCTK_INT handle_B2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B2_bound < 0) CCTK_WARN(-1, "could not create table!"); + if (Util_TableSetReal(handle_B2_bound , B2_bound_limit, "LIMIT") < 0) CCTK_WARN(-1, "could not set LIMIT value in table!"); - if (Util_TableSetReal(handle_dtbeta2_bound ,dtbeta2_bound_speed, "SPEED") < 0) + if (Util_TableSetReal(handle_B2_bound ,B2_bound_speed, "SPEED") < 0) CCTK_WARN(-1, "could not set SPEED value in table!"); - ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_dtbeta2_bound, - "ML_BSSN::dtbeta2", "Radiation"); + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B2_bound, + "ML_BSSN::B2", "Radiation"); if (ierr < 0) - CCTK_WARN(-1, "Failed to register Radiation BC for ML_BSSN::dtbeta2!"); + CCTK_WARN(-1, "Failed to register Radiation BC for ML_BSSN::B2!"); } - if (CCTK_EQUALS(dtbeta3_bound, "radiative")) + if (CCTK_EQUALS(B3_bound, "radiative")) { /* apply radiation boundary condition */ - CCTK_INT handle_dtbeta3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); - if (handle_dtbeta3_bound < 0) CCTK_WARN(-1, "could not create table!"); - if (Util_TableSetReal(handle_dtbeta3_bound , dtbeta3_bound_limit, "LIMIT") < 0) + CCTK_INT handle_B3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B3_bound < 0) CCTK_WARN(-1, "could not create table!"); + if (Util_TableSetReal(handle_B3_bound , B3_bound_limit, "LIMIT") < 0) CCTK_WARN(-1, "could not set LIMIT value in table!"); - if (Util_TableSetReal(handle_dtbeta3_bound ,dtbeta3_bound_speed, "SPEED") < 0) + if (Util_TableSetReal(handle_B3_bound ,B3_bound_speed, "SPEED") < 0) CCTK_WARN(-1, "could not set SPEED value in table!"); - ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_dtbeta3_bound, - "ML_BSSN::dtbeta3", "Radiation"); + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B3_bound, + "ML_BSSN::B3", "Radiation"); if (ierr < 0) - CCTK_WARN(-1, "Failed to register Radiation BC for ML_BSSN::dtbeta3!"); + CCTK_WARN(-1, "Failed to register Radiation BC for ML_BSSN::B3!"); } @@ -1261,67 +1261,67 @@ void ML_BSSN_ApplyBoundConds(CCTK_ARGUMENTS) } - if (CCTK_EQUALS(dtalpha_bound, "scalar")) + if (CCTK_EQUALS(A_bound, "scalar")) { /* apply scalar boundary condition */ - CCTK_INT handle_dtalpha_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); - if (handle_dtalpha_bound < 0) CCTK_WARN(-1, "could not create table!"); - if (Util_TableSetReal(handle_dtalpha_bound ,dtalpha_bound_scalar, "SCALAR") < 0) + CCTK_INT handle_A_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_A_bound < 0) CCTK_WARN(-1, "could not create table!"); + if (Util_TableSetReal(handle_A_bound ,A_bound_scalar, "SCALAR") < 0) CCTK_WARN(-1, "could not set SCALAR value in table!"); - ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_dtalpha_bound, - "ML_BSSN::dtalpha", "scalar"); + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_A_bound, + "ML_BSSN::A", "scalar"); if (ierr < 0) - CCTK_WARN(-1, "Error in registering Scalar BC for ML_BSSN::dtalpha!"); + CCTK_WARN(-1, "Error in registering Scalar BC for ML_BSSN::A!"); } - if (CCTK_EQUALS(dtbeta1_bound, "scalar")) + if (CCTK_EQUALS(B1_bound, "scalar")) { /* apply scalar boundary condition */ - CCTK_INT handle_dtbeta1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); - if (handle_dtbeta1_bound < 0) CCTK_WARN(-1, "could not create table!"); - if (Util_TableSetReal(handle_dtbeta1_bound ,dtbeta1_bound_scalar, "SCALAR") < 0) + CCTK_INT handle_B1_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B1_bound < 0) CCTK_WARN(-1, "could not create table!"); + if (Util_TableSetReal(handle_B1_bound ,B1_bound_scalar, "SCALAR") < 0) CCTK_WARN(-1, "could not set SCALAR value in table!"); - ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_dtbeta1_bound, - "ML_BSSN::dtbeta1", "scalar"); + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B1_bound, + "ML_BSSN::B1", "scalar"); if (ierr < 0) - CCTK_WARN(-1, "Error in registering Scalar BC for ML_BSSN::dtbeta1!"); + CCTK_WARN(-1, "Error in registering Scalar BC for ML_BSSN::B1!"); } - if (CCTK_EQUALS(dtbeta2_bound, "scalar")) + if (CCTK_EQUALS(B2_bound, "scalar")) { /* apply scalar boundary condition */ - CCTK_INT handle_dtbeta2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); - if (handle_dtbeta2_bound < 0) CCTK_WARN(-1, "could not create table!"); - if (Util_TableSetReal(handle_dtbeta2_bound ,dtbeta2_bound_scalar, "SCALAR") < 0) + CCTK_INT handle_B2_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B2_bound < 0) CCTK_WARN(-1, "could not create table!"); + if (Util_TableSetReal(handle_B2_bound ,B2_bound_scalar, "SCALAR") < 0) CCTK_WARN(-1, "could not set SCALAR value in table!"); - ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_dtbeta2_bound, - "ML_BSSN::dtbeta2", "scalar"); + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B2_bound, + "ML_BSSN::B2", "scalar"); if (ierr < 0) - CCTK_WARN(-1, "Error in registering Scalar BC for ML_BSSN::dtbeta2!"); + CCTK_WARN(-1, "Error in registering Scalar BC for ML_BSSN::B2!"); } - if (CCTK_EQUALS(dtbeta3_bound, "scalar")) + if (CCTK_EQUALS(B3_bound, "scalar")) { /* apply scalar boundary condition */ - CCTK_INT handle_dtbeta3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); - if (handle_dtbeta3_bound < 0) CCTK_WARN(-1, "could not create table!"); - if (Util_TableSetReal(handle_dtbeta3_bound ,dtbeta3_bound_scalar, "SCALAR") < 0) + CCTK_INT handle_B3_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_B3_bound < 0) CCTK_WARN(-1, "could not create table!"); + if (Util_TableSetReal(handle_B3_bound ,B3_bound_scalar, "SCALAR") < 0) CCTK_WARN(-1, "could not set SCALAR value in table!"); - ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_dtbeta3_bound, - "ML_BSSN::dtbeta3", "scalar"); + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_B3_bound, + "ML_BSSN::B3", "scalar"); if (ierr < 0) - CCTK_WARN(-1, "Error in registering Scalar BC for ML_BSSN::dtbeta3!"); + CCTK_WARN(-1, "Error in registering Scalar BC for ML_BSSN::B3!"); } @@ -1645,25 +1645,25 @@ void ML_BSSN_ApplyBoundConds(CCTK_ARGUMENTS) #$bound$#ML_BSSN::At33_bound_limit = 0.0 #$bound$#ML_BSSN::At33_bound_scalar = 0.0 -#$bound$#ML_BSSN::dtalpha_bound = "skip" -#$bound$#ML_BSSN::dtalpha_bound_speed = 1.0 -#$bound$#ML_BSSN::dtalpha_bound_limit = 0.0 -#$bound$#ML_BSSN::dtalpha_bound_scalar = 0.0 +#$bound$#ML_BSSN::A_bound = "skip" +#$bound$#ML_BSSN::A_bound_speed = 1.0 +#$bound$#ML_BSSN::A_bound_limit = 0.0 +#$bound$#ML_BSSN::A_bound_scalar = 0.0 -#$bound$#ML_BSSN::dtbeta1_bound = "skip" -#$bound$#ML_BSSN::dtbeta1_bound_speed = 1.0 -#$bound$#ML_BSSN::dtbeta1_bound_limit = 0.0 -#$bound$#ML_BSSN::dtbeta1_bound_scalar = 0.0 +#$bound$#ML_BSSN::B1_bound = "skip" +#$bound$#ML_BSSN::B1_bound_speed = 1.0 +#$bound$#ML_BSSN::B1_bound_limit = 0.0 +#$bound$#ML_BSSN::B1_bound_scalar = 0.0 -#$bound$#ML_BSSN::dtbeta2_bound = "skip" -#$bound$#ML_BSSN::dtbeta2_bound_speed = 1.0 -#$bound$#ML_BSSN::dtbeta2_bound_limit = 0.0 -#$bound$#ML_BSSN::dtbeta2_bound_scalar = 0.0 +#$bound$#ML_BSSN::B2_bound = "skip" +#$bound$#ML_BSSN::B2_bound_speed = 1.0 +#$bound$#ML_BSSN::B2_bound_limit = 0.0 +#$bound$#ML_BSSN::B2_bound_scalar = 0.0 -#$bound$#ML_BSSN::dtbeta3_bound = "skip" -#$bound$#ML_BSSN::dtbeta3_bound_speed = 1.0 -#$bound$#ML_BSSN::dtbeta3_bound_limit = 0.0 -#$bound$#ML_BSSN::dtbeta3_bound_scalar = 0.0 +#$bound$#ML_BSSN::B3_bound = "skip" +#$bound$#ML_BSSN::B3_bound_speed = 1.0 +#$bound$#ML_BSSN::B3_bound_limit = 0.0 +#$bound$#ML_BSSN::B3_bound_scalar = 0.0 #$bound$#ML_BSSN::Xt1_bound = "skip" #$bound$#ML_BSSN::Xt1_bound_speed = 1.0 diff --git a/ML_BSSN/src/ML_BSSN_Minkowski.c b/ML_BSSN/src/ML_BSSN_Minkowski.c index 37dd6ad..e110dda 100644 --- a/ML_BSSN/src/ML_BSSN_Minkowski.c +++ b/ML_BSSN/src/ML_BSSN_Minkowski.c @@ -96,11 +96,11 @@ void ML_BSSN_Minkowski_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL /* Declare shorthands */ /* Declare local copies of grid functions */ + CCTK_REAL AL = INITVALUE; CCTK_REAL alphaL = INITVALUE; CCTK_REAL At11L = INITVALUE, At12L = INITVALUE, At13L = INITVALUE, At22L = INITVALUE, At23L = INITVALUE, At33L = INITVALUE; + CCTK_REAL B1L = INITVALUE, B2L = INITVALUE, B3L = INITVALUE; CCTK_REAL beta1L = INITVALUE, beta2L = INITVALUE, beta3L = INITVALUE; - CCTK_REAL dtalphaL = INITVALUE; - CCTK_REAL dtbeta1L = INITVALUE, dtbeta2L = INITVALUE, dtbeta3L = INITVALUE; CCTK_REAL gt11L = INITVALUE, gt12L = INITVALUE, gt13L = INITVALUE, gt22L = INITVALUE, gt23L = INITVALUE, gt33L = INITVALUE; CCTK_REAL phiL = INITVALUE; CCTK_REAL trKL = INITVALUE; @@ -156,7 +156,7 @@ void ML_BSSN_Minkowski_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL alphaL = 1; - dtalphaL = 0; + AL = 0; beta1L = 0; @@ -164,14 +164,15 @@ void ML_BSSN_Minkowski_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL beta3L = 0; - dtbeta1L = 0; + B1L = 0; - dtbeta2L = 0; + B2L = 0; - dtbeta3L = 0; + B3L = 0; /* Copy local copies back to grid functions */ + A[index] = AL; alpha[index] = alphaL; At11[index] = At11L; At12[index] = At12L; @@ -179,13 +180,12 @@ void ML_BSSN_Minkowski_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL At22[index] = At22L; At23[index] = At23L; At33[index] = At33L; + B1[index] = B1L; + B2[index] = B2L; + B3[index] = B3L; beta1[index] = beta1L; beta2[index] = beta2L; beta3[index] = beta3L; - dtalpha[index] = dtalphaL; - dtbeta1[index] = dtbeta1L; - dtbeta2[index] = dtbeta2L; - dtbeta3[index] = dtbeta3L; gt11[index] = gt11L; gt12[index] = gt12L; gt13[index] = gt13L; diff --git a/ML_BSSN/src/ML_BSSN_RHS.c b/ML_BSSN/src/ML_BSSN_RHS.c index e97f2b5..c34c396 100644 --- a/ML_BSSN/src/ML_BSSN_RHS.c +++ b/ML_BSSN/src/ML_BSSN_RHS.c @@ -132,12 +132,13 @@ void ML_BSSN_RHS_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL normal CCTK_REAL Rt11 = INITVALUE, Rt12 = INITVALUE, Rt13 = INITVALUE, Rt22 = INITVALUE, Rt23 = INITVALUE, Rt33 = INITVALUE; /* Declare local copies of grid functions */ + CCTK_REAL AL = INITVALUE; CCTK_REAL alphaL = INITVALUE, alpharhsL = INITVALUE; + CCTK_REAL ArhsL = INITVALUE; CCTK_REAL At11L = INITVALUE, At11rhsL = INITVALUE, At12L = INITVALUE, At12rhsL = INITVALUE, At13L = INITVALUE, At13rhsL = INITVALUE; CCTK_REAL At22L = INITVALUE, At22rhsL = INITVALUE, At23L = INITVALUE, At23rhsL = INITVALUE, At33L = INITVALUE, At33rhsL = INITVALUE; + CCTK_REAL B1L = INITVALUE, B1rhsL = INITVALUE, B2L = INITVALUE, B2rhsL = INITVALUE, B3L = INITVALUE, B3rhsL = INITVALUE; CCTK_REAL beta1L = INITVALUE, beta1rhsL = INITVALUE, beta2L = INITVALUE, beta2rhsL = INITVALUE, beta3L = INITVALUE, beta3rhsL = INITVALUE; - CCTK_REAL dtalphaL = INITVALUE, dtalpharhsL = INITVALUE; - CCTK_REAL dtbeta1L = INITVALUE, dtbeta1rhsL = INITVALUE, dtbeta2L = INITVALUE, dtbeta2rhsL = INITVALUE, dtbeta3L = INITVALUE, dtbeta3rhsL = INITVALUE; CCTK_REAL gt11L = INITVALUE, gt11rhsL = INITVALUE, gt12L = INITVALUE, gt12rhsL = INITVALUE, gt13L = INITVALUE, gt13rhsL = INITVALUE; CCTK_REAL gt22L = INITVALUE, gt22rhsL = INITVALUE, gt23L = INITVALUE, gt23rhsL = INITVALUE, gt33L = INITVALUE, gt33rhsL = INITVALUE; CCTK_REAL phiL = INITVALUE, phirhsL = INITVALUE; @@ -310,6 +311,7 @@ void ML_BSSN_RHS_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL normal CCTK_REAL PDstandard4th3Xt3 = INITVALUE; /* Assign local copies of grid functions */ + AL = A[index]; alphaL = alpha[index]; At11L = At11[index]; At12L = At12[index]; @@ -317,13 +319,12 @@ void ML_BSSN_RHS_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL normal At22L = At22[index]; At23L = At23[index]; At33L = At33[index]; + B1L = B1[index]; + B2L = B2[index]; + B3L = B3[index]; beta1L = beta1[index]; beta2L = beta2[index]; beta3L = beta3[index]; - dtalphaL = dtalpha[index]; - dtbeta1L = dtbeta1[index]; - dtbeta2L = dtbeta2[index]; - dtbeta3L = dtbeta3[index]; gt11L = gt11[index]; gt12L = gt12[index]; gt13L = gt13[index]; @@ -1431,38 +1432,38 @@ void ML_BSSN_RHS_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REAL normal alphaL*(-2*(At13L*Atm13 + At23L*Atm23 + At33L*Atm33) + At33L*trKL); alpharhsL = beta1L*PDstandard4th1alpha + beta2L*PDstandard4th2alpha + beta3L*PDstandard4th3alpha - - dtalphaL*harmonicF*pow(alphaL,harmonicN); + AL*harmonicF*pow(alphaL,harmonicN); - dtalpharhsL = -(AlphaDriver*dtalphaL) + trKrhsL; + ArhsL = -(AL*AlphaDriver) + trKrhsL; - beta1rhsL = dtbeta1L*ShiftGammaCoeff*pow(alphaL,ShiftAlphaPower); + beta1rhsL = B1L*ShiftGammaCoeff*pow(alphaL,ShiftAlphaPower); - beta2rhsL = dtbeta2L*ShiftGammaCoeff*pow(alphaL,ShiftAlphaPower); + beta2rhsL = B2L*ShiftGammaCoeff*pow(alphaL,ShiftAlphaPower); - beta3rhsL = dtbeta3L*ShiftGammaCoeff*pow(alphaL,ShiftAlphaPower); + beta3rhsL = B3L*ShiftGammaCoeff*pow(alphaL,ShiftAlphaPower); - dtbeta1rhsL = -(BetaDriver*dtbeta1L) + Xt1rhsL; + B1rhsL = -(B1L*BetaDriver) + Xt1rhsL; - dtbeta2rhsL = -(BetaDriver*dtbeta2L) + Xt2rhsL; + B2rhsL = -(B2L*BetaDriver) + Xt2rhsL; - dtbeta3rhsL = -(BetaDriver*dtbeta3L) + Xt3rhsL; + B3rhsL = -(B3L*BetaDriver) + Xt3rhsL; /* Copy local copies back to grid functions */ alpharhs[index] = alpharhsL; + Arhs[index] = ArhsL; At11rhs[index] = At11rhsL; At12rhs[index] = At12rhsL; At13rhs[index] = At13rhsL; At22rhs[index] = At22rhsL; At23rhs[index] = At23rhsL; At33rhs[index] = At33rhsL; + B1rhs[index] = B1rhsL; + B2rhs[index] = B2rhsL; + B3rhs[index] = B3rhsL; beta1rhs[index] = beta1rhsL; beta2rhs[index] = beta2rhsL; beta3rhs[index] = beta3rhsL; - dtalpharhs[index] = dtalpharhsL; - dtbeta1rhs[index] = dtbeta1rhsL; - dtbeta2rhs[index] = dtbeta2rhsL; - dtbeta3rhs[index] = dtbeta3rhsL; gt11rhs[index] = gt11rhsL; gt12rhs[index] = gt12rhsL; gt13rhs[index] = gt13rhsL; diff --git a/ML_BSSN/src/ML_BSSN_constraints.c b/ML_BSSN/src/ML_BSSN_constraints.c index f0f575c..4d6a26d 100644 --- a/ML_BSSN/src/ML_BSSN_constraints.c +++ b/ML_BSSN/src/ML_BSSN_constraints.c @@ -159,7 +159,6 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA CCTK_REAL PDstandard4th1gt11 = INITVALUE; CCTK_REAL PDstandard4th2gt11 = INITVALUE; CCTK_REAL PDstandard4th3gt11 = INITVALUE; - CCTK_REAL PDstandard4th11gt11 = INITVALUE; CCTK_REAL PDstandard4th22gt11 = INITVALUE; CCTK_REAL PDstandard4th33gt11 = INITVALUE; CCTK_REAL PDstandard4th12gt11 = INITVALUE; @@ -171,8 +170,6 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA CCTK_REAL PDstandard4th1gt12 = INITVALUE; CCTK_REAL PDstandard4th2gt12 = INITVALUE; CCTK_REAL PDstandard4th3gt12 = INITVALUE; - CCTK_REAL PDstandard4th11gt12 = INITVALUE; - CCTK_REAL PDstandard4th22gt12 = INITVALUE; CCTK_REAL PDstandard4th33gt12 = INITVALUE; CCTK_REAL PDstandard4th12gt12 = INITVALUE; CCTK_REAL PDstandard4th13gt12 = INITVALUE; @@ -183,9 +180,7 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA CCTK_REAL PDstandard4th1gt13 = INITVALUE; CCTK_REAL PDstandard4th2gt13 = INITVALUE; CCTK_REAL PDstandard4th3gt13 = INITVALUE; - CCTK_REAL PDstandard4th11gt13 = INITVALUE; CCTK_REAL PDstandard4th22gt13 = INITVALUE; - CCTK_REAL PDstandard4th33gt13 = INITVALUE; CCTK_REAL PDstandard4th12gt13 = INITVALUE; CCTK_REAL PDstandard4th13gt13 = INITVALUE; CCTK_REAL PDstandard4th21gt13 = INITVALUE; @@ -196,7 +191,6 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA CCTK_REAL PDstandard4th2gt22 = INITVALUE; CCTK_REAL PDstandard4th3gt22 = INITVALUE; CCTK_REAL PDstandard4th11gt22 = INITVALUE; - CCTK_REAL PDstandard4th22gt22 = INITVALUE; CCTK_REAL PDstandard4th33gt22 = INITVALUE; CCTK_REAL PDstandard4th12gt22 = INITVALUE; CCTK_REAL PDstandard4th13gt22 = INITVALUE; @@ -208,8 +202,6 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA CCTK_REAL PDstandard4th2gt23 = INITVALUE; CCTK_REAL PDstandard4th3gt23 = INITVALUE; CCTK_REAL PDstandard4th11gt23 = INITVALUE; - CCTK_REAL PDstandard4th22gt23 = INITVALUE; - CCTK_REAL PDstandard4th33gt23 = INITVALUE; CCTK_REAL PDstandard4th12gt23 = INITVALUE; CCTK_REAL PDstandard4th13gt23 = INITVALUE; CCTK_REAL PDstandard4th21gt23 = INITVALUE; @@ -221,7 +213,6 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA CCTK_REAL PDstandard4th3gt33 = INITVALUE; CCTK_REAL PDstandard4th11gt33 = INITVALUE; CCTK_REAL PDstandard4th22gt33 = INITVALUE; - CCTK_REAL PDstandard4th33gt33 = INITVALUE; CCTK_REAL PDstandard4th12gt33 = INITVALUE; CCTK_REAL PDstandard4th13gt33 = INITVALUE; CCTK_REAL PDstandard4th21gt33 = INITVALUE; @@ -243,15 +234,6 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA CCTK_REAL PDstandard4th1trK = INITVALUE; CCTK_REAL PDstandard4th2trK = INITVALUE; CCTK_REAL PDstandard4th3trK = INITVALUE; - CCTK_REAL PDstandard4th1Xt1 = INITVALUE; - CCTK_REAL PDstandard4th2Xt1 = INITVALUE; - CCTK_REAL PDstandard4th3Xt1 = INITVALUE; - CCTK_REAL PDstandard4th1Xt2 = INITVALUE; - CCTK_REAL PDstandard4th2Xt2 = INITVALUE; - CCTK_REAL PDstandard4th3Xt2 = INITVALUE; - CCTK_REAL PDstandard4th1Xt3 = INITVALUE; - CCTK_REAL PDstandard4th2Xt3 = INITVALUE; - CCTK_REAL PDstandard4th3Xt3 = INITVALUE; /* Assign local copies of grid functions */ At11L = At11[index]; @@ -295,17 +277,12 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA PDstandard4th1gt11 = PDstandard4th1(gt11, i, j, k); PDstandard4th2gt11 = PDstandard4th2(gt11, i, j, k); PDstandard4th3gt11 = PDstandard4th3(gt11, i, j, k); - PDstandard4th11gt11 = PDstandard4th11(gt11, i, j, k); PDstandard4th22gt11 = PDstandard4th22(gt11, i, j, k); PDstandard4th33gt11 = PDstandard4th33(gt11, i, j, k); - PDstandard4th12gt11 = PDstandard4th12(gt11, i, j, k); - PDstandard4th13gt11 = PDstandard4th13(gt11, i, j, k); PDstandard4th23gt11 = PDstandard4th23(gt11, i, j, k); PDstandard4th1gt12 = PDstandard4th1(gt12, i, j, k); PDstandard4th2gt12 = PDstandard4th2(gt12, i, j, k); PDstandard4th3gt12 = PDstandard4th3(gt12, i, j, k); - PDstandard4th11gt12 = PDstandard4th11(gt12, i, j, k); - PDstandard4th22gt12 = PDstandard4th22(gt12, i, j, k); PDstandard4th33gt12 = PDstandard4th33(gt12, i, j, k); PDstandard4th12gt12 = PDstandard4th12(gt12, i, j, k); PDstandard4th13gt12 = PDstandard4th13(gt12, i, j, k); @@ -313,9 +290,7 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA PDstandard4th1gt13 = PDstandard4th1(gt13, i, j, k); PDstandard4th2gt13 = PDstandard4th2(gt13, i, j, k); PDstandard4th3gt13 = PDstandard4th3(gt13, i, j, k); - PDstandard4th11gt13 = PDstandard4th11(gt13, i, j, k); PDstandard4th22gt13 = PDstandard4th22(gt13, i, j, k); - PDstandard4th33gt13 = PDstandard4th33(gt13, i, j, k); PDstandard4th12gt13 = PDstandard4th12(gt13, i, j, k); PDstandard4th13gt13 = PDstandard4th13(gt13, i, j, k); PDstandard4th23gt13 = PDstandard4th23(gt13, i, j, k); @@ -323,17 +298,12 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA PDstandard4th2gt22 = PDstandard4th2(gt22, i, j, k); PDstandard4th3gt22 = PDstandard4th3(gt22, i, j, k); PDstandard4th11gt22 = PDstandard4th11(gt22, i, j, k); - PDstandard4th22gt22 = PDstandard4th22(gt22, i, j, k); PDstandard4th33gt22 = PDstandard4th33(gt22, i, j, k); - PDstandard4th12gt22 = PDstandard4th12(gt22, i, j, k); PDstandard4th13gt22 = PDstandard4th13(gt22, i, j, k); - PDstandard4th23gt22 = PDstandard4th23(gt22, i, j, k); PDstandard4th1gt23 = PDstandard4th1(gt23, i, j, k); PDstandard4th2gt23 = PDstandard4th2(gt23, i, j, k); PDstandard4th3gt23 = PDstandard4th3(gt23, i, j, k); PDstandard4th11gt23 = PDstandard4th11(gt23, i, j, k); - PDstandard4th22gt23 = PDstandard4th22(gt23, i, j, k); - PDstandard4th33gt23 = PDstandard4th33(gt23, i, j, k); PDstandard4th12gt23 = PDstandard4th12(gt23, i, j, k); PDstandard4th13gt23 = PDstandard4th13(gt23, i, j, k); PDstandard4th23gt23 = PDstandard4th23(gt23, i, j, k); @@ -342,10 +312,7 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA PDstandard4th3gt33 = PDstandard4th3(gt33, i, j, k); PDstandard4th11gt33 = PDstandard4th11(gt33, i, j, k); PDstandard4th22gt33 = PDstandard4th22(gt33, i, j, k); - PDstandard4th33gt33 = PDstandard4th33(gt33, i, j, k); PDstandard4th12gt33 = PDstandard4th12(gt33, i, j, k); - PDstandard4th13gt33 = PDstandard4th13(gt33, i, j, k); - PDstandard4th23gt33 = PDstandard4th23(gt33, i, j, k); PDstandard4th1phi = PDstandard4th1(phi, i, j, k); PDstandard4th2phi = PDstandard4th2(phi, i, j, k); PDstandard4th3phi = PDstandard4th3(phi, i, j, k); @@ -358,15 +325,6 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA PDstandard4th1trK = PDstandard4th1(trK, i, j, k); PDstandard4th2trK = PDstandard4th2(trK, i, j, k); PDstandard4th3trK = PDstandard4th3(trK, i, j, k); - PDstandard4th1Xt1 = PDstandard4th1(Xt1, i, j, k); - PDstandard4th2Xt1 = PDstandard4th2(Xt1, i, j, k); - PDstandard4th3Xt1 = PDstandard4th3(Xt1, i, j, k); - PDstandard4th1Xt2 = PDstandard4th1(Xt2, i, j, k); - PDstandard4th2Xt2 = PDstandard4th2(Xt2, i, j, k); - PDstandard4th3Xt2 = PDstandard4th3(Xt2, i, j, k); - PDstandard4th1Xt3 = PDstandard4th1(Xt3, i, j, k); - PDstandard4th2Xt3 = PDstandard4th2(Xt3, i, j, k); - PDstandard4th3Xt3 = PDstandard4th3(Xt3, i, j, k); /* Precompute derivatives (old style) */ @@ -445,250 +403,45 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA Gt333 = khalf*(-(gtu31*PDstandard4th1gt33) - gtu32*PDstandard4th2gt33 + 2*gtu31*PDstandard4th3gt13 + 2*gtu32*PDstandard4th3gt23 + gtu33*PDstandard4th3gt33); - Rt11 = -(gtu11*khalf*PDstandard4th11gt11) + gtu21* - (2*Gt211*Gt212*gt22L + 6*Gt112*gt13L*Gt311 + 4*Gt113*gt11L*Gt312 + 4*gt13L*Gt312*Gt313 + 4*gt13L*Gt211*Gt322 + - 4*gt13L*Gt311*Gt323 + 2*Gt311*Gt312*gt33L - PDstandard4th12gt11) - gtu31*PDstandard4th13gt11 + - 2*gt11L*PDstandard4th1Xt1 + gt12L*(6*Gt111*Gt212*gtu21 + 4*Gt211*Gt222*gtu21 + 4*Gt212*Gt222*gtu22 + - 6*Gt113*Gt211*gtu31 + 6*Gt113*Gt212*gtu32 + 6*Gt113*Gt213*gtu33 + 2*PDstandard4th1Xt2) + - gt13L*(6*Gt111*Gt312*gtu21 + 4*Gt212*Gt312*gtu21 + 6*Gt112*Gt312*gtu22 + 6*Gt113*Gt311*gtu31 + - 6*Gt113*Gt312*gtu32 + 6*Gt113*Gt313*gtu33 + 2*PDstandard4th1Xt3) - gtu22*khalf*PDstandard4th22gt11 + - gtu32*(2*Gt212*Gt213*gt22L + 4*gt12L*Gt233*Gt312 + 2*Gt213*gt23L*Gt312 + 6*Gt112*gt13L*Gt313 + - 4*gt13L*Gt213*Gt322 + 4*gt13L*Gt212*Gt323 + 4*gt13L*Gt313*Gt323 + 4*gt13L*Gt312*Gt333 + 2*Gt312*Gt313*gt33L - - PDstandard4th23gt11) - gtu33*khalf*PDstandard4th33gt11 + - Gt111*(10*Gt113*gt11L*gtu31 + 6*gt12L*Gt213*gtu31 + 2*gt11L*Xt1L) + - Gt211*(4*Gt112*gt11L*gtu11 + 6*Gt111*gt12L*gtu11 + 2*gt23L*Gt311*gtu11 + 4*gt13L*Gt312*gtu11 + - 6*Gt112*gt12L*gtu21 + 4*gt11L*Gt123*gtu31 + 4*gt12L*Gt223*gtu31 + 2*Gt213*gt22L*gtu31 + 2*gt12L*Xt1L) + - Gt311*(6*Gt111*gt13L*gtu11 + 4*gt12L*Gt213*gtu11 + 4*gt13L*Gt313*gtu11 + 4*gt11L*Gt123*gtu21 + - 4*gt12L*Gt223*gtu21 + 2*Gt212*gt23L*gtu21 + 4*gt11L*Gt133*gtu31 + 4*gt12L*Gt233*gtu31 + 2*Gt213*gt23L*gtu31 + - 2*Gt313*gt33L*gtu31 + 2*gt13L*Xt1L) + 2*gt12L*Gt212*Xt2L + - Gt112*(10*Gt111*gt11L*gtu21 + 4*gt11L*Gt212*gtu21 + 6*gt12L*Gt212*gtu22 + 4*gt11L*Gt213*gtu31 + - 10*Gt113*gt11L*gtu32 + 2*gt11L*Xt2L) + Gt312* - (4*gt12L*Gt213*gtu21 + 2*Gt211*gt23L*gtu21 + 4*gt11L*Gt123*gtu22 + 4*gt12L*Gt223*gtu22 + 2*Gt212*gt23L*gtu22 + - 4*gt13L*Gt213*gtu31 + 4*gt11L*Gt133*gtu32 + 2*gt13L*Xt2L) + 2*Gt113*gt11L*Xt3L + - Gt213*(4*gt11L*Gt122*gtu32 + 6*Gt112*gt12L*gtu32 + 4*gt11L*Gt123*gtu33 + 2*gt12L*Xt3L) + - Gt313*(4*Gt113*gt11L*gtu31 + 6*Gt111*gt13L*gtu31 + 4*gt12L*Gt213*gtu31 + 2*Gt211*gt23L*gtu31 + - 4*gt11L*Gt123*gtu32 + 4*gt12L*Gt223*gtu32 + 2*Gt212*gt23L*gtu32 + 4*gt11L*Gt133*gtu33 + 4*gt12L*Gt233*gtu33 + - 2*Gt213*gt23L*gtu33 + 2*gt13L*Xt3L) + 5*gt11L*gtu11*SQR(Gt111) + 5*gt11L*gtu22*SQR(Gt112) + - 5*gt11L*gtu33*SQR(Gt113) + gt22L*gtu11*SQR(Gt211) + gt22L*gtu22*SQR(Gt212) + - 4*(gt12L*Gt211*Gt212*gtu11 + Gt113*gt11L*Gt311*gtu11 + gt11L*Gt122*Gt211*gtu21 + gt11L*Gt122*Gt212*gtu22 + - gt13L*Gt212*Gt322*gtu22 + gt13L*Gt312*Gt323*gtu22 + gt12L*Gt212*Gt213*gtu31 + gt13L*Gt211*Gt323*gtu31 + - gt13L*Gt311*Gt333*gtu31 + gt11L*Gt123*Gt212*gtu32 + gt12L*Gt213*Gt222*gtu32 + gt12L*Gt212*Gt223*gtu32 + - gt12L*Gt213*Gt223*gtu33 + gt13L*Gt213*Gt323*gtu33 + gt13L*Gt313*Gt333*gtu33 + gt12L*gtu21*SQR(Gt212)) + - gt22L*gtu33*SQR(Gt213) + gt33L*gtu11*SQR(Gt311) + gt33L*gtu22*SQR(Gt312) + 4*gt13L*gtu31*SQR(Gt313) + - gt33L*gtu33*SQR(Gt313); - - Rt12 = gt22L*PDstandard4th1Xt2 + gt23L*PDstandard4th1Xt3 + gt11L*PDstandard4th2Xt1 + - gt12L*(PDstandard4th1Xt1 + PDstandard4th2Xt2) + gt13L*PDstandard4th2Xt3 + - khalf*(-(gtu11*PDstandard4th11gt12) - 2*gtu21*PDstandard4th12gt12 - 2*gtu31*PDstandard4th13gt12 - - gtu22*PDstandard4th22gt12 - 2*gtu32*PDstandard4th23gt12 - gtu33*PDstandard4th33gt12) + - (Gt112*gt11L + gt12L*(Gt111 + Gt212) + Gt211*gt22L + gt23L*Gt311 + gt13L*Gt312)*Xt1L + - (gt11L*Gt122 + gt12L*(Gt112 + Gt222) + Gt212*gt22L + gt23L*Gt312 + gt13L*Gt322)*Xt2L + - (gt11L*Gt123 + gt12L*(Gt113 + Gt223) + Gt213*gt22L + gt23L*Gt313 + gt13L*Gt323)*Xt3L + - gtu11*(gt11L*(Gt112*(3*Gt111 + 2*Gt212) + 2*Gt113*Gt312) + - Gt111*(gt12L*Gt212 + 2*(Gt211*gt22L + gt23L*Gt311) + gt13L*Gt312) + - Gt211*(5*Gt112*gt12L + 3*(Gt212*gt22L + gt23L*Gt312)) + - Gt311*(3*Gt112*gt13L + Gt212*gt23L + 2*(Gt113*gt12L + Gt213*gt22L + gt23L*Gt313) + Gt312*gt33L) + - 2*(Gt312*(gt12L*Gt213 + gt13L*(Gt212 + Gt313)) + gt12L*(SQR(Gt111) + SQR(Gt212)))) + - gtu22*(Gt112*(3*gt11L*Gt122 + gt12L*Gt222 + 2*(Gt212*gt22L + gt23L*Gt312) + gt13L*Gt322) + - Gt222*(3*Gt212*gt22L + gt23L*Gt312 + 2*(gt11L*Gt122 + gt13L*Gt322)) + - Gt312*(3*Gt122*gt13L + 2*(Gt223*gt22L + gt23L*Gt323)) + - Gt322*(3*Gt212*gt23L + 2*(gt11L*Gt123 + gt13L*Gt323) + Gt312*gt33L) + - gt12L*(5*Gt122*Gt212 + 2*(Gt123*Gt312 + Gt223*Gt322 + SQR(Gt112) + SQR(Gt222)))) + - gtu33*(Gt113*(3*gt11L*Gt123 + gt12L*Gt223 + 2*(Gt213*gt22L + gt23L*Gt313) + gt13L*Gt323) + - Gt223*(3*Gt213*gt22L + gt23L*Gt313 + 2*(gt11L*Gt123 + gt13L*Gt323)) + - Gt313*(3*Gt123*gt13L + 2*(gt22L*Gt233 + gt23L*Gt333)) + - Gt323*(3*Gt213*gt23L + 2*(gt11L*Gt133 + gt13L*Gt333) + Gt313*gt33L) + - gt12L*(5*Gt123*Gt213 + 2*(Gt133*Gt313 + Gt233*Gt323 + SQR(Gt113) + SQR(Gt223)))) + - gtu21*(Gt111*(3*gt11L*Gt122 + gt12L*(2*Gt112 + Gt222) + gt13L*Gt322) + - 2*(Gt112*(gt11L*Gt222 + Gt211*gt22L) + Gt223*gt22L*Gt311 + Gt111*(Gt112*gt12L + Gt212*gt22L + gt23L*Gt312) + - (Gt113*gt11L + gt13L*Gt313)*Gt322 + gt13L*(Gt222*Gt312 + Gt212*Gt322)) + - gt12L*(5*Gt122*Gt211 + Gt212*(4*Gt112 + 2*Gt222) + - 2*(Gt212*(Gt112 + Gt222) + Gt123*Gt311 + (Gt113 + Gt223)*Gt312 + Gt213*Gt322)) + - Gt312*(2*(Gt213*gt22L + gt23L*Gt313) + gt13L*(4*Gt112 + 2*Gt323)) + - gt23L*(4*Gt212*Gt312 + Gt311*(Gt222 + 2*(Gt112 + Gt323))) + - gt11L*(2*(Gt122*Gt212 + Gt123*Gt312) + 3*SQR(Gt112)) + - 3*(Gt122*gt13L*Gt311 + Gt211*(Gt222*gt22L + gt23L*Gt322) + gt22L*SQR(Gt212)) + gt33L*(Gt311*Gt322 + SQR(Gt312)))\ - + gtu31*(Gt111*(3*gt11L*Gt123 + gt12L*(2*Gt113 + Gt223) + gt13L*Gt323) + - gt11L*(2*(Gt123*Gt212 + Gt133*Gt312) + Gt113*(3*Gt112 + 2*Gt323)) + - 3*((Gt212*Gt213 + Gt211*Gt223)*gt22L + Gt123*gt13L*Gt311 + gt23L*(Gt213*Gt312 + Gt211*Gt323)) + - gt12L*(5*Gt123*Gt211 + 3*Gt112*Gt213 + Gt212*(Gt113 + 2*Gt223) + - 2*(Gt212*Gt223 + Gt133*Gt311 + Gt233*Gt312 + Gt113*Gt313 + Gt213*(Gt112 + Gt323))) + - gt13L*(3*Gt112*Gt313 + 2*Gt212*Gt323 + Gt312*(Gt113 + 2*Gt333)) + - gt23L*(Gt212*Gt313 + Gt311*(Gt223 + 2*(Gt113 + Gt333))) + (Gt312*Gt313 + Gt311*Gt323)*gt33L + - 2*(Gt223*(Gt112*gt11L + gt13L*Gt312) + gt22L*(Gt113*Gt211 + Gt233*Gt311 + Gt213*Gt313) + - Gt111*(Gt113*gt12L + Gt213*gt22L + gt23L*Gt313) + gt13L*Gt313*Gt323 + gt23L*SQR(Gt313))) + - gtu32*(3*((Gt213*Gt222 + Gt212*Gt223)*gt22L + gt13L*(Gt123*Gt312 + Gt122*Gt313) + Gt213*gt23L*Gt322) + - Gt112*(3*gt11L*Gt123 + gt12L*(2*Gt113 + Gt223) + gt13L*Gt323) + - gt12L*(5*(Gt123*Gt212 + Gt122*Gt213) + Gt222*(Gt113 + 4*Gt223) + - 2*(Gt133*Gt312 + Gt123*Gt313 + Gt233*Gt322 + Gt223*Gt323)) + - gt11L*(3*Gt113*Gt122 + 2*(Gt133*Gt322 + Gt123*(Gt222 + Gt323))) + - gt13L*(2*Gt222*Gt323 + Gt322*(Gt113 + 2*Gt333)) + - gt23L*(Gt222*Gt313 + 3*Gt212*Gt323 + Gt312*(Gt223 + 2*(Gt113 + Gt333))) + (Gt313*Gt322 + Gt312*Gt323)*gt33L + - 2*(gt22L*(Gt113*Gt212 + Gt233*Gt312) + Gt112*(Gt113*gt12L + Gt213*gt22L + gt23L*Gt313) + - Gt223*(gt11L*Gt122 + gt22L*Gt313 + gt13L*Gt322) + gt23L*Gt313*Gt323 + gt13L*SQR(Gt323))); - - Rt13 = gt23L*PDstandard4th1Xt2 + gt33L*PDstandard4th1Xt3 + - khalf*(-(gtu11*PDstandard4th11gt13) - 2*gtu21*PDstandard4th12gt13 - 2*gtu31*PDstandard4th13gt13 - - gtu22*PDstandard4th22gt13 - 2*gtu32*PDstandard4th23gt13 - gtu33*PDstandard4th33gt13) + gt11L*PDstandard4th3Xt1 + - gt12L*PDstandard4th3Xt2 + gt13L*(PDstandard4th1Xt1 + PDstandard4th3Xt3) + - (Gt113*gt11L + gt12L*Gt213 + Gt211*gt23L + gt13L*(Gt111 + Gt313) + Gt311*gt33L)*Xt1L + - (gt11L*Gt123 + gt12L*Gt223 + Gt212*gt23L + gt13L*(Gt112 + Gt323) + Gt312*gt33L)*Xt2L + - (gt11L*Gt133 + gt12L*Gt233 + Gt213*gt23L + gt13L*(Gt113 + Gt333) + Gt313*gt33L)*Xt3L + - gtu21*((Gt212*Gt213 + Gt211*Gt223)*gt22L + Gt123*(Gt111*gt11L + gt12L*Gt211 + 3*gt13L*Gt311) + - gt12L*(3*Gt113*Gt212 + Gt112*Gt213 + Gt223*(Gt111 + 2*Gt313)) + - gt11L*(3*Gt112*Gt113 + 2*(Gt122*Gt213 + Gt123*Gt313)) + gt13L*(Gt112*Gt313 + Gt111*Gt323) + - gt23L*(Gt213*Gt312 + Gt212*Gt313 + Gt211*Gt323) + Gt312*Gt313*gt33L + - 3*(Gt113*gt13L*Gt312 + Gt311*(Gt223*gt23L + Gt323*gt33L)) + - 2*(Gt213*(gt12L*Gt222 + gt13L*Gt322) + gt11L*(Gt111*Gt123 + Gt112*Gt223 + Gt113*Gt323) + - gt12L*(Gt123*Gt211 + Gt212*Gt223 + Gt213*Gt323) + - gt13L*(Gt112*(Gt111 + Gt212) + Gt123*Gt311 + (Gt113 + Gt223)*Gt312 + 2*Gt313*Gt323) + - (Gt112*Gt311 + Gt312*(Gt212 + Gt313))*gt33L + Gt111*(Gt112*gt13L + Gt212*gt23L + Gt312*gt33L) + - Gt211*(Gt122*gt13L + Gt222*gt23L + Gt322*gt33L) + gt23L*(Gt112*Gt211 + Gt213*Gt312 + SQR(Gt212)))) + - gtu32*(gt11L*(Gt123*(3*Gt113 + 2*Gt223) + 2*Gt133*Gt323) + Gt223*(gt23L*(2*Gt212 + 3*Gt313) + 2*gt13L*Gt323) + - Gt233*(Gt212*gt22L + 3*gt23L*Gt312 + 2*(gt11L*Gt122 + gt12L*Gt323)) + - Gt123*(3*gt12L*Gt213 + gt13L*(2*Gt212 + 5*Gt313) + 2*gt11L*Gt333) + - gt13L*(5*Gt133*Gt312 + 2*Gt233*Gt322 + 4*Gt323*Gt333) + 3*(Gt313*Gt323 + Gt312*Gt333)*gt33L + - Gt212*(gt23L*Gt333 + 2*Gt323*gt33L) + Gt113*(gt12L*Gt223 + gt13L*Gt323 + 2*(Gt212*gt23L + Gt312*gt33L)) + - Gt112*(3*gt11L*Gt133 + gt12L*Gt233 + gt13L*(2*Gt113 + Gt333) + 2*(Gt113*gt13L + Gt213*gt23L + Gt313*gt33L)) + - Gt213*(Gt223*gt22L + gt23L*Gt323 + 2*(Gt122*gt13L + Gt222*gt23L + Gt322*gt33L)) + - gt12L*(3*Gt133*Gt212 + 2*(Gt222*Gt233 + Gt223*Gt333 + SQR(Gt223)))) + - gtu31*(Gt133*(Gt111*gt11L + gt12L*Gt211 + 3*gt13L*Gt311) + Gt233*(Gt211*gt22L + 3*gt23L*Gt311) + - gt12L*(4*Gt113*Gt213 + Gt233*(Gt111 + 2*Gt313)) + gt13L*(4*Gt113*Gt313 + 2*Gt213*Gt323 + Gt111*Gt333) + - Gt211*(gt23L*Gt333 + 2*Gt323*gt33L) + gt11L*(2*(Gt123*Gt213 + Gt133*Gt313) + 3*SQR(Gt113)) + gt22L*SQR(Gt213) + - gt33L*(3*Gt311*Gt333 + SQR(Gt313)) + 2*(Gt211*(Gt123*gt13L + Gt223*gt23L) + Gt213*(gt12L*Gt223 + gt23L*Gt313) + - gt23L*(Gt113*Gt211 + Gt213*(Gt212 + Gt313)) + gt11L*(Gt111*Gt133 + Gt112*Gt233 + Gt113*Gt333) + - gt12L*(Gt133*Gt211 + Gt212*Gt233 + Gt213*Gt333) + - gt13L*(Gt112*Gt213 + Gt133*Gt311 + Gt233*Gt312 + Gt113*(Gt111 + Gt313) + 2*Gt313*Gt333) + - Gt111*(Gt113*gt13L + Gt213*gt23L + Gt313*gt33L) + gt33L*(Gt113*Gt311 + Gt213*Gt312 + SQR(Gt313)))) + - gtu11*(Gt211*(3*Gt113*gt12L + 2*Gt112*gt13L + Gt213*gt22L + gt23L*Gt313) + - gt11L*(2*Gt112*Gt213 + Gt113*(3*Gt111 + 2*Gt313)) + - Gt111*(gt12L*Gt213 + gt13L*Gt313 + 2*(Gt211*gt23L + Gt311*gt33L)) + - Gt311*(5*Gt113*gt13L + 3*(Gt213*gt23L + Gt313*gt33L)) + - 2*(Gt212*(gt12L*Gt213 + Gt211*gt23L) + Gt213*(gt13L*Gt312 + gt12L*Gt313) + Gt211*Gt312*gt33L + - gt13L*(SQR(Gt111) + SQR(Gt313)))) + gtu22* - (Gt212*(3*Gt123*gt12L + 2*Gt122*gt13L + Gt223*gt22L + gt23L*Gt323) + - gt11L*(2*Gt122*Gt223 + Gt123*(3*Gt112 + 2*Gt323)) + - Gt112*(gt12L*Gt223 + gt13L*Gt323 + 2*(Gt212*gt23L + Gt312*gt33L)) + - Gt312*(5*Gt123*gt13L + 3*(Gt223*gt23L + Gt323*gt33L)) + - 2*(Gt222*(gt12L*Gt223 + Gt212*gt23L) + Gt223*(gt13L*Gt322 + gt12L*Gt323) + Gt212*Gt322*gt33L + - gt13L*(SQR(Gt112) + SQR(Gt323)))) + gtu33* - (gt12L*(3*Gt133*Gt213 + 2*Gt233*(Gt223 + Gt333)) + Gt213*(gt22L*Gt233 + gt23L*(2*Gt223 + Gt333)) + - Gt113*(3*gt11L*Gt133 + gt12L*Gt233 + gt13L*Gt333 + 2*(Gt213*gt23L + Gt313*gt33L)) + - Gt313*(5*Gt133*gt13L + 3*(Gt233*gt23L + Gt333*gt33L)) + - 2*(Gt123*(gt13L*Gt213 + gt11L*Gt233) + gt11L*Gt133*Gt333 + Gt323*(gt13L*Gt233 + Gt213*gt33L) + - gt13L*(SQR(Gt113) + SQR(Gt333)))); - - Rt22 = 6*(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*PDstandard4th11gt22 + - gtu21*(10*Gt212*Gt222*gt22L + 4*Gt122*gt23L*Gt311 + 2*Gt122*gt13L*Gt312 + 6*Gt222*gt23L*Gt312 + - 4*Gt113*gt12L*Gt322 + 4*gt23L*Gt312*Gt323 + 2*Gt312*Gt322*gt33L - PDstandard4th12gt22) + - gtu31*(10*Gt212*Gt223*gt22L + 2*Gt123*gt13L*Gt312 + 4*Gt112*gt23L*Gt313 + 4*Gt113*gt12L*Gt323 + - 4*gt23L*Gt312*Gt333 + 2*Gt312*Gt323*gt33L - PDstandard4th13gt22) - gtu22*khalf*PDstandard4th22gt22 + - gtu32*(6*Gt223*gt23L*Gt322 + 2*Gt122*gt13L*Gt323 + 4*gt23L*Gt322*Gt333 + 2*Gt322*Gt323*gt33L - - PDstandard4th23gt22) + gt12L*(4*Gt111*Gt123*gtu31 + 6*Gt112*Gt223*gtu31 + 4*Gt113*Gt122*gtu32 + - 4*Gt113*Gt123*gtu33 + 2*PDstandard4th2Xt1) + - gt22L*(4*Gt122*Gt213*gtu32 + 10*Gt222*Gt223*gtu32 + 4*Gt123*Gt213*gtu33 + 2*PDstandard4th2Xt2) + - gt23L*(6*Gt212*Gt322*gtu21 + 4*Gt313*Gt322*gtu21 + 6*Gt222*Gt322*gtu22 + 4*Gt123*Gt311*gtu31 + - 6*Gt212*Gt323*gtu31 + 4*Gt313*Gt323*gtu31 + 4*Gt122*Gt313*gtu32 + 6*Gt223*Gt323*gtu33 + 2*PDstandard4th2Xt3) - - gtu33*khalf*PDstandard4th33gt22 + 2*Gt212*gt22L*Xt1L + - Gt112*(4*Gt111*gt12L*gtu11 + 6*gt12L*Gt212*gtu11 + 2*gt11L*Gt122*gtu21 + 4*Gt122*gt12L*gtu22 + - 2*gt11L*Gt123*gtu31 + 4*Gt123*gt12L*gtu32 + 2*gt12L*Xt1L) + - Gt312*(4*Gt113*gt12L*gtu11 + 2*Gt112*gt13L*gtu11 + 4*Gt213*gt22L*gtu11 + 6*Gt212*gt23L*gtu11 + - 4*gt23L*Gt313*gtu11 + 4*Gt123*gt12L*gtu21 + 4*Gt122*gt23L*gtu22 + 4*gt12L*Gt133*gtu31 + 4*gt22L*Gt233*gtu31 + - 6*Gt223*gt23L*gtu31 + 4*Gt123*gt23L*gtu32 + 2*gt23L*Xt1L) + 2*Gt222*gt22L*Xt2L + - Gt122*(2*gt11L*Gt123*gtu32 + 6*gt12L*Gt223*gtu32 + 2*gt12L*Xt2L) + - Gt322*(2*Gt112*gt13L*gtu21 + 4*Gt213*gt22L*gtu21 + 4*Gt123*gt12L*gtu22 + 2*Gt122*gt13L*gtu22 + - 4*Gt223*gt22L*gtu22 + 4*gt23L*Gt323*gtu22 + 4*gt12L*Gt133*gtu32 + 2*Gt123*gt13L*gtu32 + 4*gt22L*Gt233*gtu32 + - 2*gt23L*Xt2L) + 2*Gt123*gt12L*Xt3L + 2*Gt223*gt22L*Xt3L + - Gt323*(2*Gt112*gt13L*gtu31 + 4*Gt213*gt22L*gtu31 + 4*Gt123*gt12L*gtu32 + 4*Gt223*gt22L*gtu32 + - 6*Gt222*gt23L*gtu32 + 4*gt12L*Gt133*gtu33 + 2*Gt123*gt13L*gtu33 + 4*gt22L*Gt233*gtu33 + 4*gt23L*Gt333*gtu33 + - 2*gt23L*Xt3L) + gt11L*gtu11*SQR(Gt112) + 4* - (Gt112*Gt211*gt22L*gtu11 + Gt112*gt23L*Gt311*gtu11 + Gt111*Gt122*gt12L*gtu21 + Gt122*Gt211*gt22L*gtu21 + - Gt112*Gt212*gt22L*gtu21 + Gt223*gt22L*Gt312*gtu21 + Gt112*gt23L*Gt312*gtu21 + Gt122*Gt212*gt22L*gtu22 + - Gt112*Gt113*gt12L*gtu31 + Gt123*Gt211*gt22L*gtu31 + Gt112*Gt213*gt22L*gtu31 + Gt123*Gt212*gt22L*gtu32 + - Gt123*gt23L*Gt313*gtu33 + gt12L*gtu21*SQR(Gt112)) + gt11L*gtu22*SQR(Gt122) + gt11L*gtu33*SQR(Gt123) + - 5*gt22L*gtu11*SQR(Gt212) + 5*gt22L*gtu22*SQR(Gt222) + 5*gt22L*gtu33*SQR(Gt223) + gt33L*gtu11*SQR(Gt312) + - gt33L*gtu22*SQR(Gt322) + 4*gt23L*gtu32*SQR(Gt323) + gt33L*gtu33*SQR(Gt323); - - Rt23 = gt13L*PDstandard4th2Xt1 + gt33L*PDstandard4th2Xt3 + - khalf*(-(gtu11*PDstandard4th11gt23) - 2*gtu21*PDstandard4th12gt23 - 2*gtu31*PDstandard4th13gt23 - - gtu22*PDstandard4th22gt23 - 2*gtu32*PDstandard4th23gt23 - gtu33*PDstandard4th33gt23) + gt12L*PDstandard4th3Xt1 + - gt22L*PDstandard4th3Xt2 + gt23L*(PDstandard4th2Xt2 + PDstandard4th3Xt3) + - (Gt113*gt12L + Gt112*gt13L + Gt213*gt22L + gt23L*(Gt212 + Gt313) + Gt312*gt33L)*Xt1L + - (Gt123*gt12L + Gt122*gt13L + Gt223*gt22L + gt23L*(Gt222 + Gt323) + Gt322*gt33L)*Xt2L + - (gt12L*Gt133 + Gt123*gt13L + gt22L*Gt233 + gt23L*(Gt223 + Gt333) + Gt323*gt33L)*Xt3L + - gtu21*(gt11L*(Gt113*Gt122 + Gt112*Gt123) + gt12L* - (Gt113*Gt222 + 3*(Gt122*Gt213 + Gt112*Gt223) + Gt123*(Gt212 + 2*Gt313)) + - gt23L*(2*Gt123*Gt311 + Gt222*(4*Gt212 + Gt313) + 5*(Gt223*Gt312 + Gt213*Gt322) + (Gt212 + 4*Gt313)*Gt323) + - gt22L*(Gt212*(2*Gt113 + 3*Gt223) + 2*Gt223*Gt313 + Gt213*(3*Gt222 + 2*Gt323)) + - 3*(Gt313*Gt322 + Gt312*Gt323)*gt33L + 2*(Gt111*(Gt123*gt12L + Gt122*gt13L) + gt13L*(Gt122*Gt212 + Gt112*Gt222) + - Gt211*(Gt123*gt22L + Gt122*gt23L) + Gt113*(gt23L*Gt312 + gt12L*Gt323) + - (Gt122*Gt311 + Gt222*Gt312 + Gt212*Gt322)*gt33L + Gt112*(Gt113*gt12L + Gt212*gt23L + Gt312*gt33L)) + - gt13L*(Gt122*Gt313 + 3*(Gt123*Gt312 + Gt113*Gt322) + Gt112*Gt323 + 2*SQR(Gt112))) + - gtu31*(Gt133*(Gt112*gt11L + gt12L*Gt212 + 2*(Gt211*gt22L + gt23L*Gt311)) + - gt23L*(5*Gt233*Gt312 + Gt223*(4*Gt212 + Gt313) + Gt213*(2*Gt112 + 5*Gt323) + Gt212*Gt333) + - Gt113*(gt11L*Gt123 + 2*(Gt112*gt13L + Gt213*gt22L + gt23L*Gt313) + gt13L*Gt323 + gt12L*(Gt223 + 2*Gt333)) + - Gt123*(3*gt12L*Gt213 + gt13L*(2*Gt212 + Gt313) + 2*Gt311*gt33L) + - Gt333*(Gt112*gt13L + 4*gt23L*Gt313 + 3*Gt312*gt33L) + - 3*(Gt112*gt12L*Gt233 + gt22L*(Gt213*Gt223 + Gt212*Gt233) + Gt133*gt13L*Gt312 + Gt313*Gt323*gt33L) + - 2*(Gt111*(gt12L*Gt133 + Gt123*gt13L) + Gt123*Gt211*gt23L + gt13L*(Gt112*Gt223 + Gt113*Gt323) + - Gt213*gt22L*Gt333 + (Gt223*Gt312 + Gt212*Gt323)*gt33L + Gt313*(gt12L*Gt133 + gt22L*Gt233 + Gt112*gt33L) + - gt12L*SQR(Gt113))) + gtu11*(Gt113*(Gt112*gt11L + gt12L*Gt212 + 2*(Gt211*gt22L + gt23L*Gt311)) + - (Gt112*gt13L + Gt212*gt23L)*Gt313 + Gt213*(5*gt23L*Gt312 + 2*gt22L*Gt313) + - 3*(Gt213*(Gt112*gt12L + Gt212*gt22L) + Gt312*(Gt113*gt13L + Gt313*gt33L)) + - 2*(Gt111*(Gt113*gt12L + Gt112*gt13L) + Gt113*gt12L*Gt313 + Gt212*Gt312*gt33L + - Gt112*(gt13L*Gt212 + Gt211*gt23L + Gt311*gt33L) + gt23L*(SQR(Gt212) + SQR(Gt313)))) + - gtu32*(Gt133*(gt11L*Gt122 + gt12L*Gt222 + 3*gt13L*Gt322) + gt12L*(4*Gt123*Gt223 + Gt122*Gt233 + 2*Gt133*Gt323) + - Gt233*(3*gt23L*Gt322 + 2*gt22L*Gt323) + gt23L*Gt323*(4*Gt223 + 2*Gt333) + Gt122*(gt13L*Gt333 + 2*Gt313*gt33L) + - Gt222*(gt22L*Gt233 + gt23L*(2*Gt223 + Gt333) + 2*Gt323*gt33L) + gt11L*SQR(Gt123) + - 3*(Gt322*Gt333*gt33L + gt22L*SQR(Gt223)) + gt33L*SQR(Gt323) + - 2*(Gt113*(Gt123*gt12L + Gt122*gt13L) + Gt133*(Gt112*gt12L + Gt212*gt22L + gt23L*Gt312) + - Gt233*(Gt122*gt12L + Gt222*gt22L + gt23L*Gt322) + gt13L*(Gt122*Gt223 + Gt123*(Gt112 + Gt323)) + - Gt223*gt22L*Gt333 + Gt123*(Gt213*gt22L + gt23L*Gt313 + gt13L*(Gt222 + Gt323) + gt12L*Gt333) + - gt23L*(Gt123*Gt212 + Gt122*Gt213 + Gt223*(Gt222 + Gt323) + Gt323*Gt333) + - gt33L*(Gt123*Gt312 + Gt223*Gt322 + SQR(Gt323)))) + - gtu22*(Gt123*(gt11L*Gt122 + gt12L*Gt222 + 2*(Gt212*gt22L + gt23L*Gt312)) + (Gt122*gt13L + Gt222*gt23L)*Gt323 + - Gt223*(5*gt23L*Gt322 + 2*gt22L*Gt323) + 3* - (Gt223*(Gt122*gt12L + Gt222*gt22L) + Gt322*(Gt123*gt13L + Gt323*gt33L)) + - 2*(Gt112*(Gt123*gt12L + Gt122*gt13L) + Gt123*gt12L*Gt323 + Gt222*Gt322*gt33L + - Gt122*(gt13L*Gt222 + Gt212*gt23L + Gt312*gt33L) + gt23L*(SQR(Gt222) + SQR(Gt323)))) + - gtu33*(Gt133*(gt11L*Gt123 + gt12L*Gt223 + 2*(Gt213*gt22L + gt23L*Gt313)) + (Gt123*gt13L + Gt223*gt23L)*Gt333 + - Gt233*(5*gt23L*Gt323 + 2*gt22L*Gt333) + 3* - ((Gt123*gt12L + Gt223*gt22L)*Gt233 + Gt323*(Gt133*gt13L + Gt333*gt33L)) + - 2*(Gt113*(gt12L*Gt133 + Gt123*gt13L) + gt12L*Gt133*Gt333 + Gt223*Gt323*gt33L + - Gt123*(gt13L*Gt223 + Gt213*gt23L + Gt313*gt33L) + gt23L*(SQR(Gt223) + SQR(Gt333)))); - - Rt33 = 6*(Gt133*gt13L*Gt313*gtu31 + Gt233*gt23L*Gt313*gtu31 + Gt113*gt13L*Gt333*gtu31 + Gt213*gt23L*Gt333*gtu31 + - Gt133*gt13L*Gt323*gtu32 + Gt133*gt13L*Gt333*gtu33) + - gtu21*(4*Gt122*gt13L*Gt213 + 2*Gt113*gt12L*Gt223 + 4*Gt112*gt13L*Gt223 + 2*Gt213*Gt223*gt22L + - 4*Gt123*Gt211*gt23L + 4*Gt212*Gt223*gt23L + 6*Gt123*gt13L*Gt313 + 6*Gt223*gt23L*Gt313 + 6*Gt113*gt13L*Gt323 + - 6*Gt213*gt23L*Gt323 + 4*Gt123*Gt311*gt33L - PDstandard4th12gt33) - gtu31*PDstandard4th13gt33 + - gtu22*(4*Gt222*Gt223*gt23L + 6*Gt123*gt13L*Gt323 + 6*Gt223*gt23L*Gt323 + 4*Gt223*Gt322*gt33L - - khalf*PDstandard4th22gt33) + gtu32*(2*Gt223*gt22L*Gt233 + 4*Gt133*Gt212*gt23L + 6*Gt233*gt23L*Gt323 + - 6*Gt123*gt13L*Gt333 + 6*Gt223*gt23L*Gt333 + 4*Gt123*Gt313*gt33L + 10*Gt323*Gt333*gt33L - PDstandard4th23gt33) - - gtu33*khalf*PDstandard4th33gt33 + 2*(gt12L*Gt133*Gt213*gtu31 + Gt113*gt12L*Gt233*gtu31 + gt12L*Gt133*Gt223*gtu32 + - gt13L*PDstandard4th3Xt1) + 2*gt23L*PDstandard4th3Xt2 + - gt33L*(4*Gt213*Gt322*gtu21 + 10*Gt313*Gt323*gtu21 + 4*Gt123*Gt312*gtu22 + 4*Gt133*Gt311*gtu31 + - 4*Gt213*Gt323*gtu31 + 10*Gt313*Gt333*gtu31 + 4*Gt133*Gt312*gtu32 + 4*Gt133*Gt313*gtu33 + 2*PDstandard4th3Xt3) + - 2*Gt213*gt23L*Xt1L + 2*Gt313*gt33L*Xt1L + Gt113* - (4*Gt111*gt13L*gtu11 + 2*gt12L*Gt213*gtu11 + 2*gt11L*Gt123*gtu21 + 2*gt11L*Gt133*gtu31 + 4*Gt123*gt13L*gtu32 + - 4*Gt133*gt13L*gtu33 + 2*gt13L*Xt1L) + 2*Gt223*gt23L*Xt2L + 2*Gt323*gt33L*Xt2L + - Gt123*(4*Gt111*gt13L*gtu21 + 2*gt12L*Gt213*gtu21 + 4*Gt112*gt13L*gtu22 + 2*gt12L*Gt223*gtu22 + - 4*Gt212*gt23L*gtu22 + 4*gt13L*Gt213*gtu31 + 2*gt11L*Gt133*gtu32 + 4*gt13L*Gt233*gtu33 + 2*gt13L*Xt2L) + - 2*Gt133*gt13L*Xt3L + 2*Gt333*gt33L*Xt3L + Gt233* - (4*Gt112*gt13L*gtu31 + 2*Gt213*gt22L*gtu31 + 2*Gt123*gt12L*gtu32 + 2*gt12L*Gt133*gtu33 + 4*Gt223*gt23L*gtu33 + - 6*gt23L*Gt333*gtu33 + 4*Gt323*gt33L*gtu33 + 2*gt23L*Xt3L) + - gtu11*(4*Gt212*Gt213*gt23L + 6*Gt113*gt13L*Gt313 + 6*Gt213*gt23L*Gt313 + 4*Gt113*Gt311*gt33L + - 4*Gt213*Gt312*gt33L - khalf*PDstandard4th11gt33 + gt11L*SQR(Gt113)) + - 4*(Gt112*gt13L*Gt213*gtu11 + Gt113*Gt211*gt23L*gtu11 + Gt112*Gt113*gt13L*gtu21 + Gt113*Gt212*gt23L*gtu21 + - Gt213*Gt222*gt23L*gtu21 + Gt113*Gt312*gt33L*gtu21 + Gt223*Gt312*gt33L*gtu21 + Gt122*gt13L*Gt223*gtu22 + - Gt111*Gt133*gt13L*gtu31 + Gt133*Gt211*gt23L*gtu31 + Gt113*Gt213*gt23L*gtu31 + Gt213*Gt223*gt23L*gtu31 + - Gt212*Gt233*gt23L*gtu31 + Gt233*Gt312*gt33L*gtu31 + Gt113*Gt313*gt33L*gtu31 + Gt112*Gt133*gt13L*gtu32 + - Gt123*gt13L*Gt223*gtu32 + Gt122*gt13L*Gt233*gtu32 + Gt123*Gt213*gt23L*gtu32 + Gt222*Gt233*gt23L*gtu32 + - Gt233*Gt322*gt33L*gtu32 + Gt223*Gt323*gt33L*gtu32 + Gt133*Gt213*gt23L*gtu33 + gt13L*gtu31*SQR(Gt113)) + - gt11L*gtu22*SQR(Gt123) + gt11L*gtu33*SQR(Gt133) + gt22L*gtu11*SQR(Gt213) + gt22L*gtu22*SQR(Gt223) + - 4*gt23L*gtu32*SQR(Gt223) + gt22L*gtu33*SQR(Gt233) + 5*gt33L*gtu11*SQR(Gt313) + 5*gt33L*gtu22*SQR(Gt323) + - 5*gt33L*gtu33*SQR(Gt333); + Rt11 = khalf*(-(gtu22*PDstandard4th11gt22) - 2*(Gt111*Gt122 + Gt111*Gt133 + Gt211*Gt222 + Gt211*Gt233 + Gt311*Gt322 + + Gt311*Gt333 + gtu32*PDstandard4th11gt23) - gtu33*PDstandard4th11gt33 + 2*gtu22*PDstandard4th12gt12 + + 2*gtu32*PDstandard4th12gt13 + 2*gtu32*PDstandard4th13gt12 + 2*gtu33*PDstandard4th13gt13 - + gtu22*PDstandard4th22gt11 - 2*gtu32*PDstandard4th23gt11 - gtu33*PDstandard4th33gt11 + 2*SQR(Gt112) + + 2*SQR(Gt113) + 2*SQR(Gt212) + 2*SQR(Gt213) + 2*SQR(Gt312) + 2*SQR(Gt313)); + + Rt12 = khalf*(2*(Gt113*Gt123 + Gt213*Gt223 + Gt313*Gt323) - + 2*(Gt112*Gt133 + Gt212*Gt233 + Gt312*Gt333 + gtu21*PDstandard4th12gt12) - gtu32*PDstandard4th12gt23 - + gtu33*PDstandard4th12gt33 + gtu31*(PDstandard4th11gt23 - PDstandard4th12gt13 - PDstandard4th13gt12) + + gtu32*PDstandard4th13gt22 + gtu33*PDstandard4th13gt23 + gtu21*(PDstandard4th11gt22 + PDstandard4th22gt11) + + gtu32*PDstandard4th22gt13 + gtu31*PDstandard4th23gt11 - gtu32*PDstandard4th23gt12 + gtu33*PDstandard4th23gt13 - + gtu33*PDstandard4th33gt12); + + Rt13 = khalf*(2*(Gt112*Gt123 + Gt212*Gt223 + Gt312*Gt323) - + 2*(Gt113*Gt122 + Gt213*Gt222 + Gt313*Gt322 + gtu31*PDstandard4th13gt13) + + gtu21*(PDstandard4th11gt23 - PDstandard4th12gt13 - PDstandard4th13gt12 + PDstandard4th23gt11) + + gtu22*(PDstandard4th12gt23 - PDstandard4th13gt22 - PDstandard4th22gt13 + PDstandard4th23gt12) + + gtu31*(PDstandard4th11gt33 + PDstandard4th33gt11) + + gtu32*(PDstandard4th12gt33 - PDstandard4th13gt23 - PDstandard4th23gt13 + PDstandard4th33gt12)); + + Rt22 = khalf*(-2*(Gt122*(Gt111 + Gt133) + Gt222*(Gt211 + Gt233) + Gt322*(Gt311 + Gt333) + gtu31*PDstandard4th13gt22) + + gtu11*(-PDstandard4th11gt22 + 2*PDstandard4th12gt12 - PDstandard4th22gt11) + + gtu31*(-2*PDstandard4th22gt13 + 2*(PDstandard4th12gt23 + PDstandard4th23gt12)) + + gtu33*(-PDstandard4th22gt33 + 2*PDstandard4th23gt23 - PDstandard4th33gt22) + + 2*(SQR(Gt112) + SQR(Gt123) + SQR(Gt212) + SQR(Gt223) + SQR(Gt312) + SQR(Gt323))); + + Rt23 = khalf*(2*(Gt112*Gt113 + Gt212*Gt213 + Gt312*Gt313) + + gtu11*(-PDstandard4th11gt23 + PDstandard4th12gt13 + PDstandard4th13gt12 - PDstandard4th23gt11) + + gtu21*(-PDstandard4th12gt23 + PDstandard4th13gt22 + PDstandard4th22gt13 - PDstandard4th23gt12) - + 2*(Gt111*Gt123 + Gt211*Gt223 + Gt311*Gt323 + gtu32*PDstandard4th23gt23) + + gtu31*(PDstandard4th12gt33 - PDstandard4th13gt23 - PDstandard4th23gt13 + PDstandard4th33gt12) + + gtu32*(PDstandard4th22gt33 + PDstandard4th33gt22)); + + Rt33 = khalf*(gtu11*(-PDstandard4th11gt33 + 2*PDstandard4th13gt13 - PDstandard4th33gt11) - + 2*((Gt111 + Gt122)*Gt133 + (Gt211 + Gt222)*Gt233 + (Gt311 + Gt322)*Gt333 + + gtu21*(PDstandard4th12gt33 + PDstandard4th33gt12)) + + gtu22*(-PDstandard4th22gt33 + 2*PDstandard4th23gt23 - PDstandard4th33gt22) + + 2*(gtu21*(PDstandard4th13gt23 + PDstandard4th23gt13) + SQR(Gt113) + SQR(Gt123) + SQR(Gt213) + SQR(Gt223) + + SQR(Gt313) + SQR(Gt323))); Rphi11 = 2*(-PDstandard4th11phi - gt11L*gtu11*PDstandard4th11phi - 2*gt11L*gtu21*PDstandard4th12phi - 2*gt11L*gtu31*PDstandard4th13phi - gt11L*gtu22*PDstandard4th22phi - 2*gt11L*gtu32*PDstandard4th23phi - @@ -927,7 +680,7 @@ void ML_BSSN_constraints_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCTK_REA M3L = (-gK113 + gK131)*gu11 + (-2*gK123 + gK132 + gK231)*gu21 + (-gK223 + gK232)*gu22 + (-gK133 + gK331)*gu31 + (-gK233 + gK332)*gu32; - cSL = Log(detgt); + cSL = trR; cXt1L = Gt111*gtu11 + Gt122*gtu22 + 2*(Gt112*gtu21 + Gt113*gtu31 + Gt123*gtu32) + Gt133*gtu33 - Xt1L; diff --git a/ML_BSSN/src/ML_BSSN_convertFromADMBase.c b/ML_BSSN/src/ML_BSSN_convertFromADMBase.c index 973cf21..c1a4db7 100644 --- a/ML_BSSN/src/ML_BSSN_convertFromADMBase.c +++ b/ML_BSSN/src/ML_BSSN_convertFromADMBase.c @@ -101,16 +101,16 @@ void ML_BSSN_convertFromADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, C CCTK_REAL K11 = INITVALUE, K12 = INITVALUE, K13 = INITVALUE, K22 = INITVALUE, K23 = INITVALUE, K33 = INITVALUE; /* Declare local copies of grid functions */ + CCTK_REAL AL = INITVALUE; CCTK_REAL alpL = INITVALUE; CCTK_REAL alphaL = INITVALUE; CCTK_REAL At11L = INITVALUE, At12L = INITVALUE, At13L = INITVALUE, At22L = INITVALUE, At23L = INITVALUE, At33L = INITVALUE; + CCTK_REAL B1L = INITVALUE, B2L = INITVALUE, B3L = INITVALUE; CCTK_REAL beta1L = INITVALUE, beta2L = INITVALUE, beta3L = INITVALUE; CCTK_REAL betaxL = INITVALUE; CCTK_REAL betayL = INITVALUE; CCTK_REAL betazL = INITVALUE; CCTK_REAL dtalpL = INITVALUE; - CCTK_REAL dtalphaL = INITVALUE; - CCTK_REAL dtbeta1L = INITVALUE, dtbeta2L = INITVALUE, dtbeta3L = INITVALUE; CCTK_REAL dtbetaxL = INITVALUE; CCTK_REAL dtbetayL = INITVALUE; CCTK_REAL dtbetazL = INITVALUE; @@ -236,7 +236,7 @@ void ML_BSSN_convertFromADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, C alphaL = alpL; - dtalphaL = dtalpL; + AL = dtalpL; beta1L = betaxL; @@ -244,14 +244,15 @@ void ML_BSSN_convertFromADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, C beta3L = betazL; - dtbeta1L = dtbetaxL; + B1L = dtbetaxL; - dtbeta2L = dtbetayL; + B2L = dtbetayL; - dtbeta3L = dtbetazL; + B3L = dtbetazL; /* Copy local copies back to grid functions */ + A[index] = AL; alpha[index] = alphaL; At11[index] = At11L; At12[index] = At12L; @@ -259,13 +260,12 @@ void ML_BSSN_convertFromADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, C At22[index] = At22L; At23[index] = At23L; At33[index] = At33L; + B1[index] = B1L; + B2[index] = B2L; + B3[index] = B3L; beta1[index] = beta1L; beta2[index] = beta2L; beta3[index] = beta3L; - dtalpha[index] = dtalphaL; - dtbeta1[index] = dtbeta1L; - dtbeta2[index] = dtbeta2L; - dtbeta3[index] = dtbeta3L; gt11[index] = gt11L; gt12[index] = gt12L; gt13[index] = gt13L; diff --git a/ML_BSSN/src/ML_BSSN_convertToADMBase.c b/ML_BSSN/src/ML_BSSN_convertToADMBase.c index f5df769..d942c00 100644 --- a/ML_BSSN/src/ML_BSSN_convertToADMBase.c +++ b/ML_BSSN/src/ML_BSSN_convertToADMBase.c @@ -99,16 +99,16 @@ void ML_BSSN_convertToADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCT CCTK_REAL K11 = INITVALUE, K12 = INITVALUE, K13 = INITVALUE, K22 = INITVALUE, K23 = INITVALUE, K33 = INITVALUE; /* Declare local copies of grid functions */ + CCTK_REAL AL = INITVALUE; CCTK_REAL alpL = INITVALUE; CCTK_REAL alphaL = INITVALUE; CCTK_REAL At11L = INITVALUE, At12L = INITVALUE, At13L = INITVALUE, At22L = INITVALUE, At23L = INITVALUE, At33L = INITVALUE; + CCTK_REAL B1L = INITVALUE, B2L = INITVALUE, B3L = INITVALUE; CCTK_REAL beta1L = INITVALUE, beta2L = INITVALUE, beta3L = INITVALUE; CCTK_REAL betaxL = INITVALUE; CCTK_REAL betayL = INITVALUE; CCTK_REAL betazL = INITVALUE; CCTK_REAL dtalpL = INITVALUE; - CCTK_REAL dtalphaL = INITVALUE; - CCTK_REAL dtbeta1L = INITVALUE, dtbeta2L = INITVALUE, dtbeta3L = INITVALUE; CCTK_REAL dtbetaxL = INITVALUE; CCTK_REAL dtbetayL = INITVALUE; CCTK_REAL dtbetazL = INITVALUE; @@ -132,6 +132,7 @@ void ML_BSSN_convertToADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCT /* Declare derivatives */ /* Assign local copies of grid functions */ + AL = A[index]; alphaL = alpha[index]; At11L = At11[index]; At12L = At12[index]; @@ -139,13 +140,12 @@ void ML_BSSN_convertToADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCT At22L = At22[index]; At23L = At23[index]; At33L = At33[index]; + B1L = B1[index]; + B2L = B2[index]; + B3L = B3[index]; beta1L = beta1[index]; beta2L = beta2[index]; beta3L = beta3[index]; - dtalphaL = dtalpha[index]; - dtbeta1L = dtbeta1[index]; - dtbeta2L = dtbeta2[index]; - dtbeta3L = dtbeta3[index]; gt11L = gt11[index]; gt12L = gt12[index]; gt13L = gt13[index]; @@ -216,7 +216,7 @@ void ML_BSSN_convertToADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCT alpL = alphaL; - dtalpL = dtalphaL; + dtalpL = AL; betaxL = beta1L; @@ -224,11 +224,11 @@ void ML_BSSN_convertToADMBase_Body(cGH *cctkGH, CCTK_INT dir, CCTK_INT face, CCT betazL = beta3L; - dtbetaxL = dtbeta1L; + dtbetaxL = B1L; - dtbetayL = dtbeta2L; + dtbetayL = B2L; - dtbetazL = dtbeta3L; + dtbetazL = B3L; /* Copy local copies back to grid functions */ diff --git a/ML_BSSN/src/RegisterMoL.c b/ML_BSSN/src/RegisterMoL.c index aaea9c7..0a5e78e 100644 --- a/ML_BSSN/src/RegisterMoL.c +++ b/ML_BSSN/src/RegisterMoL.c @@ -21,10 +21,10 @@ void ML_BSSN_RegisterVars(CCTK_ARGUMENTS) ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::At22"), CCTK_VarIndex("ML_BSSN::At22rhs")); ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::At23"), CCTK_VarIndex("ML_BSSN::At23rhs")); ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::At33"), CCTK_VarIndex("ML_BSSN::At33rhs")); - ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::dtalpha"), CCTK_VarIndex("ML_BSSN::dtalpharhs")); - ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::dtbeta1"), CCTK_VarIndex("ML_BSSN::dtbeta1rhs")); - ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::dtbeta2"), CCTK_VarIndex("ML_BSSN::dtbeta2rhs")); - ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::dtbeta3"), CCTK_VarIndex("ML_BSSN::dtbeta3rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::A"), CCTK_VarIndex("ML_BSSN::Arhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::B1"), CCTK_VarIndex("ML_BSSN::B1rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::B2"), CCTK_VarIndex("ML_BSSN::B2rhs")); + ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::B3"), CCTK_VarIndex("ML_BSSN::B3rhs")); ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::Xt1"), CCTK_VarIndex("ML_BSSN::Xt1rhs")); ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::Xt2"), CCTK_VarIndex("ML_BSSN::Xt2rhs")); ierr += MoLRegisterEvolved(CCTK_VarIndex("ML_BSSN::Xt3"), CCTK_VarIndex("ML_BSSN::Xt3rhs")); diff --git a/ML_BSSN/src/RegisterSymmetries.c b/ML_BSSN/src/RegisterSymmetries.c index 2cf86ef..5bcde48 100644 --- a/ML_BSSN/src/RegisterSymmetries.c +++ b/ML_BSSN/src/RegisterSymmetries.c @@ -52,22 +52,22 @@ void ML_BSSN_RegisterSymmetries(CCTK_ARGUMENTS) sym[0] = 1; sym[1] = 1; sym[2] = 1; - SetCartSymVN(cctkGH, sym, "ML_BSSN::dtalpha"); + SetCartSymVN(cctkGH, sym, "ML_BSSN::A"); sym[0] = -1; sym[1] = 1; sym[2] = 1; - SetCartSymVN(cctkGH, sym, "ML_BSSN::dtbeta1"); + SetCartSymVN(cctkGH, sym, "ML_BSSN::B1"); sym[0] = 1; sym[1] = -1; sym[2] = 1; - SetCartSymVN(cctkGH, sym, "ML_BSSN::dtbeta2"); + SetCartSymVN(cctkGH, sym, "ML_BSSN::B2"); sym[0] = 1; sym[1] = 1; sym[2] = -1; - SetCartSymVN(cctkGH, sym, "ML_BSSN::dtbeta3"); + SetCartSymVN(cctkGH, sym, "ML_BSSN::B3"); sym[0] = -1; sym[1] = 1; diff --git a/m/McLachlan.m b/m/McLachlan.m index 299a221..0bb1b34 100644 --- a/m/McLachlan.m +++ b/m/McLachlan.m @@ -43,7 +43,7 @@ KD = KroneckerDelta; (* Register the tensor quantities with the TensorTools package *) Map [DefineTensor, {g, K, alpha, beta, H, M, detg, gu, G, R, trR, Km, trK, - phi, gt, At, Xt, dtalpha, dtbeta, Atm, Atu, trA, cXt, cS, cA, + phi, gt, At, Xt, A, B, Atm, Atu, trA, cXt, cS, cA, e4phi, em4phi, ddetg, detgt, gtu, ddetgt, dgtu, ddgtu, Gt, Rt, Rphi, gK}]; (* NOTE: It seems as if Lie[.,.] did not take these tensor weights @@ -108,15 +108,15 @@ declaredGroups = Join [evolvedGroups, evaluatedGroups]; declaredGroupNames = Map [First, declaredGroups]; evolvedGroupsBSSN = - {SetGroupName [CreateGroupFromTensor [phi ], "log_confac"], - SetGroupName [CreateGroupFromTensor [gt[la,lb] ], "metric" ], - SetGroupName [CreateGroupFromTensor [Xt[ua] ], "Gamma" ], - SetGroupName [CreateGroupFromTensor [trK ], "trace_curv"], - SetGroupName [CreateGroupFromTensor [At[la,lb] ], "curv" ], - SetGroupName [CreateGroupFromTensor [alpha ], "lapse" ], - SetGroupName [CreateGroupFromTensor [dtalpha ], "dtlapse" ], - SetGroupName [CreateGroupFromTensor [beta[ua] ], "shift" ], - SetGroupName [CreateGroupFromTensor [dtbeta[ua]], "dtshift" ]}; + {SetGroupName [CreateGroupFromTensor [phi ], "log_confac"], + SetGroupName [CreateGroupFromTensor [gt[la,lb]], "metric" ], + SetGroupName [CreateGroupFromTensor [Xt[ua] ], "Gamma" ], + SetGroupName [CreateGroupFromTensor [trK ], "trace_curv"], + SetGroupName [CreateGroupFromTensor [At[la,lb]], "curv" ], + SetGroupName [CreateGroupFromTensor [alpha ], "lapse" ], + SetGroupName [CreateGroupFromTensor [A ], "dtlapse" ], + SetGroupName [CreateGroupFromTensor [beta[ua] ], "shift" ], + SetGroupName [CreateGroupFromTensor [B[ua] ], "dtshift" ]}; evaluatedGroupsBSSN = {SetGroupName [CreateGroupFromTensor [H ], "Ham"], SetGroupName [CreateGroupFromTensor [M[la] ], "mom"], @@ -171,15 +171,15 @@ initialCalcBSSN = (* Where -> Interior, *) Equations -> { - phi -> 0, - gt[la,lb] -> KD[la,lb], - trK -> 0, - At[la,lb] -> 0, - Xt[ua] -> 0, - alpha -> 1, - dtalpha -> 0, - beta[ua] -> 0, - dtbeta[ua] -> 0 + phi -> 0, + gt[la,lb] -> KD[la,lb], + trK -> 0, + At[la,lb] -> 0, + Xt[ua] -> 0, + alpha -> 1, + A -> 0, + beta[ua] -> 0, + B[ua] -> 0 } } @@ -246,17 +246,17 @@ convertFromADMBaseCalcBSSN = trK -> gu[ua,ub] K[la,lb], At[la,lb] -> em4phi (K[la,lb] - (1/3) g[la,lb] trK), - alpha -> alp, + alpha -> alp, (* TODO: this is wrong *) - dtalpha -> dtalp, + A -> dtalp, - beta1 -> betax, - beta2 -> betay, - beta3 -> betaz, + beta1 -> betax, + beta2 -> betay, + beta3 -> betaz, (* TODO: this is wrong *) - dtbeta1 -> dtbetax, - dtbeta2 -> dtbetay, - dtbeta3 -> dtbetaz + B1 -> dtbetax, + B2 -> dtbetay, + B3 -> dtbetaz } } @@ -284,7 +284,7 @@ convertFromADMBaseCalcBSSNGamma = convertToADMBaseCalc = { Name -> "ML_ADM_convertToADMBase", - Schedule -> {"IN MoL_PostStep AFTER ADM_ApplyBoundConds"}, + Schedule -> {"IN MoL_PostStep AFTER ML_ADM_ApplyBCs"}, Equations -> { gxx -> g11, @@ -314,7 +314,7 @@ convertToADMBaseCalc = convertToADMBaseCalcBSSN = { Name -> "ML_BSSN_convertToADMBase", - Schedule -> {"IN MoL_PostStep AFTER ML_BSSN_ApplyBoundConds AFTER ML_BSSN_enforce"}, + Schedule -> {"IN MoL_PostStep AFTER ML_BSSN_ApplyBCs AFTER ML_BSSN_enforce"}, Shorthands -> {e4phi, g[la,lb], K[la,lb]}, Equations -> { @@ -336,14 +336,14 @@ convertToADMBaseCalcBSSN = alp -> alpha, (* TODO: this is wrong *) (* TODO: rename dtalp->A, dtbeta->B *) - dtalp -> dtalpha, + dtalp -> A, betax -> beta1, betay -> beta2, betaz -> beta3, (* TODO: this is wrong *) - dtbetax -> dtbeta1, - dtbetay -> dtbeta2, - dtbetaz -> dtbeta3 + dtbetax -> B1, + dtbetay -> B2, + dtbetaz -> B3 } } @@ -466,19 +466,19 @@ evolCalcBSSN = + Lie[At[la,lb], beta] - (2/3) At[la,lb] PD[beta[uc],lc], (* dot[alpha] -> - harmonicF alpha^harmonicN trK, *) - dot[alpha] -> - harmonicF alpha^harmonicN dtalpha + dot[alpha] -> - harmonicF alpha^harmonicN A + Lie[alpha, beta], - dot[dtalpha] -> dot[trK] - AlphaDriver dtalpha, + dot[A] -> dot[trK] - AlphaDriver A, (* dot[beta[ua]] -> eta Xt[ua], *) - dot[beta[ua]] -> ShiftGammaCoeff alpha^ShiftAlphaPower dtbeta[ua], - dot[dtbeta[ua]] -> dot[Xt[ua]] - BetaDriver dtbeta[ua] + dot[beta[ua]] -> ShiftGammaCoeff alpha^ShiftAlphaPower B[ua], + dot[B[ua]] -> dot[Xt[ua]] - BetaDriver B[ua] } } enforceCalcBSSN = { Name -> "ML_BSSN_enforce", - Schedule -> {"IN MoL_PostStep AFTER BSSN_ApplyBoundConds"}, + Schedule -> {"IN MoL_PostStep BEFORE ML_BSSN_BoundConds"}, Shorthands -> {detgt, gtu[ua,ub], trA}, Equations -> { @@ -537,12 +537,37 @@ constraintsCalcBSSN = (PD[gt[lb,ld],lc] + PD[gt[lc,ld],lb] - PD[gt[lb,lc],ld]), (* PRD 62, 044034 (2000), eqn. (18) *) + (* Note: This differs from the Goddard formulation, + which is e.g. described in PRD 70 (2004) 124025, eqn. (6). + Goddard has a Gamma^k replaced by its definition in terms + of metric derivatives. *) +(* Rt[li,lj] -> - (1/2) gtu[ul,um] PD[gt[li,lj],ll,lm] + gt[lk,li] PD[Xt[uk],lj] + gt[lk,lj] PD[Xt[uk],li] + Xt[uk] gt[li,ln] Gt[un,lj,lk] + Xt[uk] gt[lj,ln] Gt[un,li,lk] + gtu[ul,um] (+ 2 Gt[uk,ll,li] gt[lj,ln] Gt[un,lk,lm] + 2 Gt[uk,ll,lj] gt[li,ln] Gt[un,lk,lm] + Gt[uk,li,lm] gt[lk,ln] Gt[un,ll,lj]), +*) + + (* From the long turducken paper. + This expression seems to give the same result as the one from 044034. *) +(* + Rt[li,lj] -> - (1/2) gtu[uk,ul] PD[gt[li,lj],lk,ll] + + gt[lk,li] PD[Xt[uk],lj] + gt[lk,lj] PD[Xt[uk],li] + + gt[li,ln] Gt[un,lj,lk] gtu[um,ua] gtu[uk,ub] PD[gt[la,lb],lm] + + gt[lj,ln] Gt[un,li,lk] gtu[um,ua] gtu[uk,ub] PD[gt[la,lb],lm] + + gtu[ul,us] (+ 2 Gt[uk,ll,li] gt[lj,ln] Gt[un,lk,ls] + + 2 Gt[uk,ll,lj] gt[li,ln] Gt[un,lk,ls] + + Gt[uk,li,ls] gt[lk,ln] Gt[un,ll,lj]), +*) + + (* Below would be a straightforward calculation, + without taking any Gamma^i into account. + This expression gives a different answer! *) + Rt[la,lb] -> + Gt[u1,l2,la] Gt[l1,lb,u2] - Gt[u1,la,lb] Gt[l1,l2,u2] + + 1/2 gtu[u1,u2] (- PD[gt[l1,l2],la,lb] + PD[gt[l1,la],l2,lb] + - PD[gt[la,lb],l1,l2] + PD[gt[l2,lb],l1,la]), (* PRD 62, 044034 (2000), eqn. (15) *) Rphi[li,lj] -> - 2 CDt[phi,lj,li] - 2 gt[li,lj] gtu[ul,un] CDt[phi,ll,ln] @@ -558,12 +583,13 @@ constraintsCalcBSSN = gu[ua,ub] -> em4phi gtu[ua,ub], (* ddetg[la] -> PD[e4phi detg,la], *) ddetg[la] -> e4phi ddetgt[la] + 4 detgt e4phi PD[phi,la], + (* TODO: check this equation, maybe simplify it by omitting ddetg *) G[ua,lb,lc] -> Gt[ua,lb,lc] + 1/(2 detg) (+ KD[ua,lb] ddetg[lc] + KD[ua,lc] ddetg[lb] - (1/3) g[lb,lc] gu[ua,ud] ddetg[ld]), R[la,lb] -> Rt[la,lb] + Rphi[la,lb], - trR -> gu[ua,ub] R[la,lb], + trR -> gu[ua,ub] R[la,lb], (* K[la,lb] -> e4phi At[la,lb] + (1/3) g[la,lb] trK, *) (* Km[ua,lb] -> gu[ua,uc] K[lc,lb], *) @@ -578,7 +604,8 @@ constraintsCalcBSSN = M[la] -> gu[ub,uc] (gK[lc,la,lb] - gK[lc,lb,la]), (* det gamma-tilde *) - cS -> Log [detgt], + (* TODO cS -> Log [detgt], *) + cS -> trR, (* Gamma constraint *) cXt[ua] -> gtu[ub,uc] Gt[ua,lb,lc] - Xt[ua], |