SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
gr::Solutions::TeukolskyWave Class Reference

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
TeukolskyWaveoperator= (const TeukolskyWave &)=default
 TeukolskyWave (TeukolskyWave &&)=default
TeukolskyWaveoperator= (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::stringparity () const
const std::stringdirection () 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

Detailed Description

A perturbative Teukolsky wave (optionally plus Minkowski).

Details

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.

Note
The implementation evaluates spherical-coordinate expressions, so it must not be used too close to the origin about Center, where those coordinates are singular. Specifically, evaluating the solution at points with \(r \le 0.1\), where \(r\) is the distance from Center, triggers an error. This cutoff is unrelated to the option Radius, which sets the location of the Gaussian pulse.

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).

Member Typedef Documentation

◆ options

using gr::Solutions::TeukolskyWave::options
Initial value:
tmpl::list<Amplitude, Mode, Parity, Direction, Center, Radius, Width>

◆ tags

Member Data Documentation

◆ help

Options::String gr::Solutions::TeukolskyWave::help
staticconstexpr
Initial value:
{
"A perturbative Teukolsky wave in Cartesian inertial coordinates"}

The documentation for this class was generated from the following file:
  • src/PointwiseFunctions/AnalyticSolutions/GeneralRelativity/TeukolskyWave.hpp