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"
54 "The initial modes of the Robinson-Trautman scalar"};
59 "The extraction radius of the spherical solution"};
60 static type lower_bound() noexcept {
return 0.0; }
65 "The frequency of the linearized modes."};
66 static type lower_bound() noexcept {
return 0.0; }
69 using options = tmpl::list<InitialModes, ExtractionRadius, Frequency>;
80 double extraction_radius,
double frequency) noexcept;
84 void pup(PUP::er& p) noexcept override;
90 void assign_components_from_l_factors(
92 const std::complex<
double>& l_2_factor,
93 const std::complex<
double>& l_3_factor,
size_t l_max,
double time) const
99 void assign_du_components_from_l_factors(
101 const std::complex<
double>& l_2_factor,
102 const std::complex<
double>& l_3_factor,
size_t l_max,
double time) const
109 const
double ) const noexcept
override {}
134 double time)
const noexcept;
160 double time)
const noexcept;
186 double time)
const noexcept;
211 size_t l_max,
double time)
const noexcept;
237 size_t l_max,
double time)
const noexcept;
264 size_t l_max,
double time)
const noexcept;
289 size_t l_max,
double time)
const noexcept;
315 size_t l_max,
double time)
const noexcept;
341 size_t l_max,
double time)
const noexcept;
382 size_t l_max,
double time)
const noexcept
override;
432 size_t l_max,
double time)
const noexcept
override;
478 size_t l_max,
double time)
const noexcept
override;
480 using WorldtubeData::variables_impl;
500 size_t l_max,
double time, tmpl::type_<Tags::News> )
const
508 double frequency_ = 0.0;
void linearized_du_bondi_j(gsl::not_null< SpinWeighted< ComplexDataVector, 2 > * > du_bondi_j, size_t l_max, double time) const noexcept
Computes the linearized solution for .
void linearized_du_bondi_w(gsl::not_null< SpinWeighted< ComplexDataVector, 0 > * > du_bondi_w, size_t l_max, double time) const noexcept
Computes the linearized solution for .
void linearized_dr_bondi_u(gsl::not_null< SpinWeighted< ComplexDataVector, 1 > * > dr_bondi_u, size_t l_max, double time) const noexcept
Compute the linearized solution for .
Definition: LinearizedBondiSachs.hpp:62
void linearized_dr_bondi_w(gsl::not_null< SpinWeighted< ComplexDataVector, 0 > * > dr_bondi_w, size_t l_max, double time) const noexcept
Computes the linearized solution for .
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 linearized Bondi-Sachs syst...
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 linearized_bondi_w(gsl::not_null< SpinWeighted< ComplexDataVector, 0 > * > bondi_w, size_t l_max, double time) const noexcept
Computes the linearized solution for .
void linearized_bondi_j(gsl::not_null< SpinWeighted< ComplexDataVector, 2 > * > bondi_j, size_t l_max, double time) const noexcept
Computes the linearized solution for .
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 linearized Bondi-Sachs system.
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.
void variables_impl(gsl::not_null< Scalar< SpinWeighted< ComplexDataVector, -2 >> * > news, size_t l_max, double time, tmpl::type_< Tags::News >) const noexcept override
Determines the News function from the linearized solution parameters.
Computes the analytic data for a Linearized solution to the Bondi-Sachs equations described in .
Definition: LinearizedBondiSachs.hpp:50
Definition: LinearizedBondiSachs.hpp:51
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
Compute the time derivative of the spherical coordinate metric from the linearized Bondi-Sachs system...
Stores a collection of function values.
Definition: DataVector.hpp:42
T signaling_NaN(T... args)
void prepare_solution(const size_t, const double) const noexcept override
A no-op as the linearized solution does not have substantial shared computation to prepare before the...
Definition: LinearizedBondiSachs.hpp:108
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
The set of utilities for performing Cauchy characteristic evolution and Cauchy characteristic matchin...
Definition: BoundaryComputeAndSendToEvolution.hpp:28
void linearized_dr_bondi_j(gsl::not_null< SpinWeighted< ComplexDataVector, 2 > * > dr_bondi_j, size_t l_max, double time) const noexcept
Computes the linearized solution for .
const char *const String
The string used in option structs.
Definition: Options.hpp:32
Stores a collection of complex function values.
Definition: ComplexDataVector.hpp:47
void linearized_du_bondi_u(gsl::not_null< SpinWeighted< ComplexDataVector, 1 > * > du_bondi_u, size_t l_max, double time) const noexcept
Compute the linearized solution for .
void linearized_bondi_u(gsl::not_null< SpinWeighted< ComplexDataVector, 1 > * > bondi_u, size_t l_max, double time) const noexcept
Compute the linearized solution for .
Implementations from the Guideline Support Library.
Definition: ReadSpecThirdOrderPiecewisePolynomial.hpp:11
Require a pointer to not be a nullptr
Definition: ReadSpecThirdOrderPiecewisePolynomial.hpp:13