SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
gr::Solutions::GaugePlaneWave< Dim > Class Template Reference

Gauge plane wave in flat spacetime. More...

#include <GaugePlaneWave.hpp>

Classes

struct  IntermediateVars
struct  Profile
struct  WaveVector

Public Types

using options = tmpl::list<WaveVector, Profile>
template<typename DataType>
using DerivLapse
template<typename DataType>
using DerivShift
template<typename DataType>
using DerivSpatialMetric
Public Types inherited from gr::AnalyticSolution< Dim >
template<typename DataType, typename Frame = ::Frame::Inertial>
using DerivLapse
template<typename DataType, typename Frame = ::Frame::Inertial>
using DerivShift
template<typename DataType, typename Frame = ::Frame::Inertial>
using DerivSpatialMetric
template<typename DataType, typename Frame = ::Frame::Inertial>
using tags

Public Member Functions

 GaugePlaneWave (const std::array< double, Dim > &wave_vector, std::unique_ptr< MathFunction< 1, Frame::Inertial > > profile)
 GaugePlaneWave (const GaugePlaneWave &)
GaugePlaneWaveoperator= (const GaugePlaneWave &)
 GaugePlaneWave (GaugePlaneWave &&)=default
GaugePlaneWaveoperator= (GaugePlaneWave &&)=default
 GaugePlaneWave (CkMigrateMessage *)
template<typename DataType, typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, volume_dim, Frame::Inertial > &x, double t, tmpl::list< Tags... >) const
template<typename DataType, typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, volume_dim, Frame::Inertial > &x, double t, const IntermediateVars< DataType > &vars, tmpl::list< Tags... >) const
std::array< double, Dim > get_wave_vector () const
void pup (PUP::er &p)

Static Public Attributes

static constexpr size_t volume_dim = Dim
static constexpr Options::String help {"Gauge plane wave in flat spacetime"}
Static Public Attributes inherited from gr::AnalyticSolution< Dim >
static constexpr size_t volume_dim = Dim

Friends

template<size_t LocalDim>
bool operator== (const GaugePlaneWave< LocalDim > &lhs, const GaugePlaneWave< LocalDim > &rhs)
template<size_t LocalDim>
bool operator!= (const GaugePlaneWave< LocalDim > &lhs, const GaugePlaneWave< LocalDim > &rhs)

Detailed Description

template<size_t Dim>
class gr::Solutions::GaugePlaneWave< Dim >

Gauge plane wave in flat spacetime.

Details

The spacetime metric is in Kerr-Schild form:

\begin{equation}g_{\mu\nu} = \eta_{\mu\nu} + H l_\mu l_\nu \end{equation}

where \(H\) is a scalar function of the coordinates, \(\eta_{\mu\nu}\) is the Minkowski metric, and \(l^\mu\) is a null vector. Note that the form of the metric along with the nullness of \(l^\mu\) allows one to raise and lower indices of \(l^\mu\) using \(\eta_{\mu\nu}\), and that \(l^t l^t = l_t l_t = l^i l_i\). Note also that

\begin{equation}g^{\mu\nu} \equiv \eta^{\mu\nu} - H l^\mu l^\nu, \end{equation}

and that \(\sqrt{-g}=1\). Also, \(l_\mu\) is a geodesic with respect to both the physical metric and the Minkowski metric:

\begin{equation}l^\mu \partial_\mu l_\nu = l^\mu\nabla_\mu l_\nu = 0. \end{equation}

For this solution we choose the profile \(H\) of the plane wave to be an arbitrary one-dimensional function of \(u = \vec{k} \cdot \vec{x} - \omega t\) with a constant Euclidean wave vector \(\vec{k}\) and frequency \(\omega = ||\vec{k}||\). The null covector is chosen to be \(l_a = (-\omega, k_i)\). Thus, if \(H = H[u]\), then \(\partial_\mu H = H'[u] l_\mu\). Therefore the derivatives of the spacetime metric are:

\begin{equation}\partial_\rho g_{\mu\nu} = H' l_\rho l_\mu l_\nu, \end{equation}

The 3+1 quantities are

\begin{align}\alpha & = \left( 1 + H \omega^2 \right)^{-1/2},\\ \beta^i & = \frac{-H \omega k^i}{1 + H \omega^2},\\ \gamma_{ij} & = \delta_{ij} + H k_i k_j,\\ \gamma & = 1 + H \omega^2,\\ \gamma^{ij} & = \delta^{ij} - \frac{H k^i k^j}{1 + H \omega^2},\\ \partial_t \alpha & = \frac{\omega^3 H'}{2 \left(1 + H \omega^2 \right)^{3/2}},\\ \partial_i \alpha & = - \frac{\omega^2 H' k_i}{2 \left(1 + H \omega^2 \right)^{3/2}},\\ \partial_t \beta^i & = \frac{\omega^2 H' k^i}{\left(1 + H \omega^2 \right)^2},\\ \partial_j \beta^i & = - \frac{\omega H' k_j k^i}{\left(1 + H \omega^2 \right)^2},\\ \partial_t \gamma_{ij} & = - \omega H' k_i k_j,\\ \partial_k \gamma_{ij} & = H' k_k k_i k_j,\\ K_{ij} & = - \frac{\omega H' k_i k_j}{2 \left(1 + H \omega^2 \right)^{1/2}}. \end{align}

Note that this solution is a gauge wave as \(\Gamma^a{}_{bc} = \frac{1}{2} H' l^a l_b l_c\) and thus \(R^a{}_{bcd} = 0\).

Template Parameters
Dimthe spatial dimension of the solution

Member Typedef Documentation

◆ DerivLapse

template<size_t Dim>
template<typename DataType>
using gr::Solutions::GaugePlaneWave< Dim >::DerivLapse
Initial value:
tmpl::size_t<volume_dim>, Frame::Inertial>
Definition IndexType.hpp:46
Prefix indicating spatial derivatives.
Definition Prefixes.hpp:46

◆ DerivShift

template<size_t Dim>
template<typename DataType>
using gr::Solutions::GaugePlaneWave< Dim >::DerivShift
Initial value:

◆ DerivSpatialMetric

template<size_t Dim>
template<typename DataType>
using gr::Solutions::GaugePlaneWave< Dim >::DerivSpatialMetric

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