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