13 #include "DataStructures/DataVector.hpp"
16 #include "Evolution/BoundaryConditions/Type.hpp"
17 #include "Evolution/Systems/ScalarWave/BoundaryConditions/BoundaryCondition.hpp"
22 #include "PointwiseFunctions/AnalyticData/Tags.hpp"
23 #include "PointwiseFunctions/AnalyticSolutions/AnalyticSolution.hpp"
24 #include "Time/Tags.hpp"
30 template <
size_t Dim,
typename Frame>
38 enum class ConstraintPreservingSphericalRadiationType {
42 FirstOrderBaylissTurkel,
44 SecondOrderBaylissTurkel
47 ConstraintPreservingSphericalRadiationType
48 convert_constraint_preserving_spherical_radiation_type_from_yaml(
167 template <
size_t Dim>
172 using type = detail::ConstraintPreservingSphericalRadiationType;
173 static std::string name() noexcept {
return "Type"; }
175 "Whether to impose Sommerfeld, first-order Bayliss-Turkel, or "
176 "second-order Bayliss-Turkel spherical radiation boundary conditions."};
179 using options = tmpl::list<TypeOptionTag>;
181 "Constraint-preserving spherical radiation boundary conditions setting "
182 "the time derivatives of Psi, Phi, and Pi to avoid incoming constraint "
183 "violations, and imposing radiation boundary conditions."};
186 detail::ConstraintPreservingSphericalRadiationType type) noexcept;
202 CkMigrateMessage* msg) noexcept;
204 WRAPPED_PUPable_decl_base_template(
208 auto get_clone() const noexcept -> std::unique_ptr<
211 static constexpr
evolution::BoundaryConditions::Type bc_type =
214 void pup(PUP::er& p) override;
216 using dg_interior_evolved_variables_tags =
218 using dg_interior_temporary_tags =
219 tmpl::list<domain::Tags::Coordinates<Dim,
Frame::Inertial>,
220 Tags::ConstraintGamma2>;
221 using dg_interior_dt_vars_tags =
224 using dg_interior_deriv_vars_tags = tmpl::list<
228 using dg_gridless_tags = tmpl::list<>;
230 std::optional<std::
string> dg_time_derivative(
250 detail::ConstraintPreservingSphericalRadiationType type_{
251 detail::ConstraintPreservingSphericalRadiationType::Sommerfeld};
258 ConstraintPreservingSphericalRadiationType> {
259 template <
typename Metavariables>
260 static typename ScalarWave::BoundaryConditions::detail::
261 ConstraintPreservingSphericalRadiationType
263 return ScalarWave::BoundaryConditions::detail::
264 convert_constraint_preserving_spherical_radiation_type_from_yaml(
void pi(gsl::not_null< tnsr::aa< DataType, SpatialDim, Frame > * > pi, const Scalar< DataType > &lapse, const Scalar< DataType > &dt_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::I< DataType, SpatialDim, Frame > &dt_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ii< DataType, SpatialDim, Frame > &dt_spatial_metric, const tnsr::iaa< DataType, SpatialDim, Frame > &phi) noexcept
Computes the conjugate momentum of the spacetime metric .
Compute the time derivatives for scalar wave system.
Definition: TimeDerivative.hpp:26
Functionality for evolving hyperbolic partial differential equations.
Definition: AddMeshVelocityNonconservative.hpp:29
Definition: ConstraintPreservingSphericalRadiation.hpp:171
Definition: Options.hpp:108
The base class off of which all boundary conditions must inherit.
Definition: BoundaryCondition.hpp:27
Definition: MinmodType.hpp:11
Boundary conditions for the scalar wave system.
Definition: BoundaryCondition.hpp:24
Stores a collection of function values.
Definition: DataVector.hpp:46
void phi(gsl::not_null< tnsr::iaa< DataType, SpatialDim, Frame > * > phi, const Scalar< DataType > &lapse, const tnsr::i< DataType, SpatialDim, Frame > &deriv_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::iJ< DataType, SpatialDim, Frame > &deriv_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &deriv_spatial_metric) noexcept
Computes the auxiliary variable used by the generalized harmonic formulation of Einstein's equations...
Type aliases to construct common Tensors.
Definition: TypeAliases.hpp:31
Tensor< T, Symmetry<>, index_list<> > Scalar
Definition: TypeAliases.hpp:21
const char *const String
The string used in option structs.
Definition: Options.hpp:32
Definition: IndexType.hpp:36
Items related to evolving the scalar wave equation.
Definition: BoundaryCondition.hpp:24
Constraint-preserving spherical radiation boundary condition that seeks to avoid ingoing constraint v...
Definition: ConstraintPreservingSphericalRadiation.hpp:168
Implementations from the Guideline Support Library.
Definition: ReadSpecThirdOrderPiecewisePolynomial.hpp:11
Tags for the domain.
Definition: FaceNormal.hpp:107