9 #include "DataStructures/SpinWeighted.hpp"
11 #include "Evolution/Systems/Cce/AnalyticSolutions/WorldtubeData.hpp"
12 #include "Evolution/Systems/Cce/Tags.hpp"
13 #include "Evolution/Systems/GeneralizedHarmonic/Tags.hpp"
16 #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
25 namespace Cce::Solutions {
40 "The coordinate distance of the gauge oscillation"};
41 static type lower_bound() noexcept {
return 0.0; }
42 static type suggested_value() noexcept {
return 2.0; }
47 "The extraction radius of the spherical solution"};
48 static type lower_bound() noexcept {
return 0.0; }
49 static type suggested_value() noexcept {
return 20.0; }
54 "The mass of the Schwarzschild black hole"};
55 static type lower_bound() noexcept {
return 0.0; }
56 static type suggested_value() noexcept {
return 1.0; }
61 "The period of the coordinate oscillation"};
62 static type lower_bound() noexcept {
return 0.0; }
63 static type suggested_value() noexcept {
return 40.0; }
67 "Analytic solution in which a static black hole is placed in an "
68 "oscillating coordinate system"};
70 using options = tmpl::list<Amplitude, ExtractionRadius, Mass, Period>;
78 BouncingBlackHole() noexcept {}
80 BouncingBlackHole(
double amplitude,
double extraction_radius,
double mass,
81 double period) noexcept;
85 void pup(PUP::er& p) noexcept override;
90 void prepare_solution(const
size_t ,
91 const
double ) const noexcept
override{};
93 using WorldtubeData::variables_impl;
118 const noexcept override;
145 tmpl::type_<::Tags::dt<
gr::Tags::SpacetimeMetric<
177 const noexcept override;
183 size_t output_l_max,
double time,
184 tmpl::type_<Tags::News> ) const noexcept override;
186 double amplitude_ = std::numeric_limits<
double>::signaling_NaN();
187 double mass_ = std::numeric_limits<
double>::signaling_NaN();
188 double frequency_ = std::numeric_limits<
double>::signaling_NaN();
Definition: BouncingBlackHole.hpp:58
Items related to evolving the first-order generalized harmonic system.
Definition: Characteristics.cpp:21
Make a spin-weighted type T with spin-weight Spin. Mathematical operators are restricted to addition,...
Definition: SpinWeighted.hpp:24
Analytic solution representing a coordinate oscillation about a stationary Schwarzschild black hole.
Definition: BouncingBlackHole.hpp:36
void variables_impl(gsl::not_null< tnsr::aa< DataVector, 3 > * > spacetime_metric, size_t l_max, double time, tmpl::type_< gr::Tags::SpacetimeMetric< 3, ::Frame::Inertial, DataVector >>) const noexcept override
The implementation function that computes the spacetime metric on the extraction sphere at collocatio...
Stores a collection of function values.
Definition: DataVector.hpp:42
Definition: BouncingBlackHole.hpp:51
Abstract base class for analytic worldtube data for verifying the CCE system.
Definition: WorldtubeData.hpp:69
Type aliases to construct common Tensors.
Definition: TypeAliases.hpp:31
Definition: BouncingBlackHole.hpp:37
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
void spacetime_metric(gsl::not_null< tnsr::aa< DataType, Dim, Frame > * > spacetime_metric, const Scalar< DataType > &lapse, const tnsr::I< DataType, Dim, Frame > &shift, const tnsr::ii< DataType, Dim, Frame > &spatial_metric) noexcept
Computes the spacetime metric from the spatial metric, lapse, and shift.
Definition: GaugeWave.hpp:27
Stores a collection of complex function values.
Definition: ComplexDataVector.hpp:47
Implementations from the Guideline Support Library.
Definition: ReadSpecThirdOrderPiecewisePolynomial.hpp:11
Require a pointer to not be a nullptr
Definition: ReadSpecThirdOrderPiecewisePolynomial.hpp:13