12 #include "DataStructures/SpinWeighted.hpp"
13 #include "Evolution/Systems/Cce/AnalyticSolutions/SphericalMetricData.hpp"
14 #include "Evolution/Systems/Cce/AnalyticSolutions/WorldtubeData.hpp"
15 #include "Evolution/Systems/Cce/Tags.hpp"
27 namespace Cce::Solutions {
41 "The extraction radius of the spherical solution"};
42 static type lower_bound() noexcept {
return 0.0; }
47 "The mass of the Schwarzschild black hole"};
48 static type lower_bound() noexcept {
return 0.0; }
53 "The frequency of the coordinate rotation."};
54 static type lower_bound() noexcept {
return 0.0; }
57 using options = tmpl::list<ExtractionRadius, Mass, Frequency>;
60 "Analytic solution representing a Schwarzschild black hole in a rotating "
69 RotatingSchwarzschild() noexcept {};
71 RotatingSchwarzschild(
double extraction_radius,
double mass,
72 double frequency) noexcept;
80 const
double ) const noexcept
override {}
99 size_t l_max,
double time)
const noexcept
override;
118 size_t l_max,
double time)
const noexcept
override;
128 size_t l_max,
double time)
const noexcept
override;
130 using WorldtubeData::variables_impl;
137 size_t l_max,
double time,
138 tmpl::type_<Tags::News> )
const noexcept
override;
void spherical_metric(gsl::not_null< tnsr::aa< DataVector, 3, ::Frame::Spherical<::Frame::Inertial >> * > spherical_metric, size_t l_max, double time) const noexcept override
Compute the spherical coordinate metric from the closed-form rotating Schwarzschild metric.
Make a spin-weighted type T with spin-weight Spin. Mathematical operators are restricted to addition,...
Definition: SpinWeighted.hpp:24
Abstract base class for analytic worldtube data most easily derived in spherical coordinate form.
Definition: SphericalMetricData.hpp:42
void dr_spherical_metric(gsl::not_null< tnsr::aa< DataVector, 3, ::Frame::Spherical<::Frame::Inertial >> * > dr_spherical_metric, size_t l_max, double time) const noexcept override
Compute the radial derivative of the spherical coordinate metric from the closed-form rotating Schwar...
void prepare_solution(const size_t, const double) const noexcept override
A no-op as the rotating Schwarzschild solution does not have substantial shared computation to prepar...
Definition: RotatingSchwarzschild.hpp:79
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
Computes the Cartesian spacetime metric from the spherical solution provided by the derived classes.
Stores a collection of function values.
Definition: DataVector.hpp:42
T signaling_NaN(T... args)
Represents a spherical-coordinate frame that is associated with a Cartesian frame,...
Definition: IndexType.hpp:54
Tensor< T, Symmetry<>, index_list<> > Scalar
Definition: TypeAliases.hpp:21
void variables_impl(gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, -2 >> * > news, size_t l_max, double time, tmpl::type_< Tags::News >) const noexcept override
The News vanishes in the rotating Schwarzschild metric.
const char *const String
The string used in option structs.
Definition: Options.hpp:32
void dt_spherical_metric(gsl::not_null< tnsr::aa< DataVector, 3, ::Frame::Spherical<::Frame::Inertial >> * > dt_spherical_metric, size_t l_max, double time) const noexcept override
The time derivative of the spherical coordinate metric in the rotating Schwarzschild metric vanishes.
Definition: RotatingSchwarzschild.hpp:50
Definition: RotatingSchwarzschild.hpp:44
Computes the analytic data for the rotating Schwarzschild solution described in , section VI....
Definition: RotatingSchwarzschild.hpp:37
Stores a collection of complex function values.
Definition: ComplexDataVector.hpp:47
Require a pointer to not be a nullptr
Definition: ReadSpecThirdOrderPiecewisePolynomial.hpp:13