|
SpECTRE
v2026.04.01
|
A perturbative Teukolsky wave (optionally plus Minkowski). More...
#include <TeukolskyWave.hpp>
Classes | |
| struct | Amplitude |
| struct | Center |
| struct | Direction |
| struct | Mode |
| struct | Parity |
| struct | Radius |
| struct | Width |
Public Types | |
| using | options |
| template<typename DataType> | |
| using | tags |
Public Member Functions | |
| TeukolskyWave (double amplitude, int mode, std::string parity, std::string direction, std::array< double, 3 > center, double radius, double width, const Options::Context &context={}) | |
| TeukolskyWave (double amplitude, int mode, std::string parity, std::string direction, std::array< double, 3 > center, double radius, double width, bool include_minkowski_background, const Options::Context &context={}) | |
| TeukolskyWave (const TeukolskyWave &)=default | |
| TeukolskyWave & | operator= (const TeukolskyWave &)=default |
| TeukolskyWave (TeukolskyWave &&)=default | |
| TeukolskyWave & | operator= (TeukolskyWave &&)=default |
| TeukolskyWave (CkMigrateMessage *) | |
| template<typename DataType, typename... RequestedTags> | |
| tuples::TaggedTuple< RequestedTags... > | variables (const tnsr::I< DataType, volume_dim, Frame::Inertial > &x, double t, tmpl::list< RequestedTags... >) const |
| template<typename RequestedTag, typename DataType> | |
| tuples::TaggedTuple< RequestedTag > | variable (const tnsr::I< DataType, volume_dim, Frame::Inertial > &x, const double t) const |
| void | pup (PUP::er &p) |
| double | amplitude () const |
| int | mode () const |
| const std::string & | parity () const |
| const std::string & | direction () const |
| const std::array< double, 3 > & | center () const |
| double | radius () const |
| double | width () const |
| bool | include_minkowski_background () const |
Static Public Attributes | |
| static constexpr size_t | volume_dim = 3 |
| static constexpr Options::String | help |
A perturbative Teukolsky wave (optionally plus Minkowski).
This class provides a linearized \(l=2\) Teukolsky wave in Cartesian inertial coordinates. The implementation evaluates the spherical formulas point-by-point and then transforms to Cartesian coordinates.
This solution does not provide spatial derivatives of the metric, so it does not support the full tag list of a typical GR analytic solution.
See Eqs. (5) – (10) of [200] for the equations in spherical coordinates of the perturbed metric implemented here. Those equations contain a freely specifiable radial profile; this implementation chooses a Gaussian in \(r - R_0 \pm t\), where \(R_0\) is the Radius parameter, with Width setting the pulse width.
On the \(z\)-axis, the spherical coordinate \(\phi\) is not well defined. The implementation here is based on an implementation in SpEC that just assumed the solution is never evaluated on the axis. Here, the z-axis singularity is handled explicitly: on the \(z\)-axis (cylindrical radius \(\rho = 0\)), the Cartesian result is obtained by averaging the smooth limit approached from two orthogonal transverse directions, so the solution is regular there.
Optionally, the solution can include a flat Minkowski background as well as the metric perturbation. Note that the tags for the inverse spatial metric, square root of the spatial metric determinant, and extrinsic curvature require the flat background to be included. The background can be excluded when one wants only the perturbation itself (e.g., to add it on top of a different background, such as the metric of a Kerr-Schild black hole).
| using gr::Solutions::TeukolskyWave::options |
| using gr::Solutions::TeukolskyWave::tags |
|
staticconstexpr |