diff options
Diffstat (limited to 'ML_BSSN/src/Boundaries.cc')
-rw-r--r-- | ML_BSSN/src/Boundaries.cc | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/ML_BSSN/src/Boundaries.cc b/ML_BSSN/src/Boundaries.cc index a7c5010..c96e437 100644 --- a/ML_BSSN/src/Boundaries.cc +++ b/ML_BSSN/src/Boundaries.cc @@ -120,6 +120,17 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS) CCTK_WARN(0, "Failed to register ML_shift_bound BC for ML_BSSN::ML_shift!"); } + if (CCTK_EQUALS(ML_Theta_bound, "none" ) || + CCTK_EQUALS(ML_Theta_bound, "static") || + CCTK_EQUALS(ML_Theta_bound, "flat" ) || + CCTK_EQUALS(ML_Theta_bound, "zero" ) ) + { + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_BSSN::ML_Theta", ML_Theta_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register ML_Theta_bound BC for ML_BSSN::ML_Theta!"); + } + if (CCTK_EQUALS(ML_trace_curv_bound, "none" ) || CCTK_EQUALS(ML_trace_curv_bound, "static") || CCTK_EQUALS(ML_trace_curv_bound, "flat" ) || @@ -395,6 +406,17 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS) CCTK_WARN(0, "Failed to register beta3_bound BC for ML_BSSN::beta3!"); } + if (CCTK_EQUALS(Theta_bound, "none" ) || + CCTK_EQUALS(Theta_bound, "static") || + CCTK_EQUALS(Theta_bound, "flat" ) || + CCTK_EQUALS(Theta_bound, "zero" ) ) + { + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1, + "ML_BSSN::Theta", Theta_bound); + if (ierr < 0) + CCTK_WARN(0, "Failed to register Theta_bound BC for ML_BSSN::Theta!"); + } + if (CCTK_EQUALS(trK_bound, "none" ) || CCTK_EQUALS(trK_bound, "static") || CCTK_EQUALS(trK_bound, "flat" ) || @@ -558,6 +580,25 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS) } + if (CCTK_EQUALS(ML_Theta_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_ML_Theta_bound = -1; + if (handle_ML_Theta_bound < 0) handle_ML_Theta_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_Theta_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_Theta_bound , ML_Theta_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_ML_Theta_bound ,ML_Theta_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_Theta_bound, + "ML_BSSN::ML_Theta", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN::ML_Theta!"); + + } + if (CCTK_EQUALS(ML_trace_curv_bound, "radiative")) { /* select radiation boundary condition */ @@ -1033,6 +1074,25 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS) } + if (CCTK_EQUALS(Theta_bound, "radiative")) + { + /* select radiation boundary condition */ + static CCTK_INT handle_Theta_bound = -1; + if (handle_Theta_bound < 0) handle_Theta_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Theta_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Theta_bound , Theta_bound_limit, "LIMIT") < 0) + CCTK_WARN(0, "could not set LIMIT value in table!"); + if (Util_TableSetReal(handle_Theta_bound ,Theta_bound_speed, "SPEED") < 0) + CCTK_WARN(0, "could not set SPEED value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Theta_bound, + "ML_BSSN::Theta", "Radiation"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Radiation BC for ML_BSSN::Theta!"); + + } + if (CCTK_EQUALS(trK_bound, "radiative")) { /* select radiation boundary condition */ @@ -1188,6 +1248,23 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS) } + if (CCTK_EQUALS(ML_Theta_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_ML_Theta_bound = -1; + if (handle_ML_Theta_bound < 0) handle_ML_Theta_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_ML_Theta_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_ML_Theta_bound ,ML_Theta_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_ML_Theta_bound, + "ML_BSSN::ML_Theta", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Failed to register Scalar BC for ML_BSSN::ML_Theta!"); + + } + if (CCTK_EQUALS(ML_trace_curv_bound, "scalar")) { /* select scalar boundary condition */ @@ -1613,6 +1690,23 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS) } + if (CCTK_EQUALS(Theta_bound, "scalar")) + { + /* select scalar boundary condition */ + static CCTK_INT handle_Theta_bound = -1; + if (handle_Theta_bound < 0) handle_Theta_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE); + if (handle_Theta_bound < 0) CCTK_WARN(0, "could not create table!"); + if (Util_TableSetReal(handle_Theta_bound ,Theta_bound_scalar, "SCALAR") < 0) + CCTK_WARN(0, "could not set SCALAR value in table!"); + + ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Theta_bound, + "ML_BSSN::Theta", "scalar"); + + if (ierr < 0) + CCTK_WARN(0, "Error in registering Scalar BC for ML_BSSN::Theta!"); + + } + if (CCTK_EQUALS(trK_bound, "scalar")) { /* select scalar boundary condition */ @@ -1675,6 +1769,11 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS) #$bound$#ML_BSSN::ML_shift_bound_limit = 0.0 #$bound$#ML_BSSN::ML_shift_bound_scalar = 0.0 +#$bound$#ML_BSSN::ML_Theta_bound = "skip" +#$bound$#ML_BSSN::ML_Theta_bound_speed = 1.0 +#$bound$#ML_BSSN::ML_Theta_bound_limit = 0.0 +#$bound$#ML_BSSN::ML_Theta_bound_scalar = 0.0 + #$bound$#ML_BSSN::ML_trace_curv_bound = "skip" #$bound$#ML_BSSN::ML_trace_curv_bound_speed = 1.0 #$bound$#ML_BSSN::ML_trace_curv_bound_limit = 0.0 @@ -1800,6 +1899,11 @@ extern "C" void ML_BSSN_SelectBoundConds(CCTK_ARGUMENTS) #$bound$#ML_BSSN::beta3_bound_limit = 0.0 #$bound$#ML_BSSN::beta3_bound_scalar = 0.0 +#$bound$#ML_BSSN::Theta_bound = "skip" +#$bound$#ML_BSSN::Theta_bound_speed = 1.0 +#$bound$#ML_BSSN::Theta_bound_limit = 0.0 +#$bound$#ML_BSSN::Theta_bound_scalar = 0.0 + #$bound$#ML_BSSN::trK_bound = "skip" #$bound$#ML_BSSN::trK_bound_speed = 1.0 #$bound$#ML_BSSN::trK_bound_limit = 0.0 |