SpECTRE  v2021.12.06
CurvedScalarWave::AnalyticData::ScalarWaveGr< ScalarFieldData, BackgroundGrData > Class Template Reference

Analytic initial data for scalar waves in curved spacetime. More...

#include <ScalarWaveGr.hpp>


struct  Background
struct  ScalarField

Public Types

using options = tmpl::list< Background, ScalarField >
template<typename DataType >
using spacetime_tags = typename BackgroundGrData::template tags< DataType >
using tags = tmpl::append< spacetime_tags< DataVector >, tmpl::list< Pi, Phi< volume_dim >, Psi > >

Public Member Functions

 ScalarWaveGr (BackgroundGrData background, ScalarFieldData scalar_field)
 ScalarWaveGr (CkMigrateMessage *)
 ScalarWaveGr (const ScalarWaveGr &)=delete
ScalarWaveGroperator= (const ScalarWaveGr &)=delete
 ScalarWaveGr (ScalarWaveGr &&)=default
ScalarWaveGroperator= (ScalarWaveGr &&)=default
template<typename DataType , typename Tag , Requires< tmpl::list_contains_v< spacetime_tags< DataType >, Tag > > = nullptr>
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataType, volume_dim > &x, tmpl::list< Tag >) const
 Retrieve spacetime variables.
tuples::TaggedTuple< Pivariables (const tnsr::I< DataVector, volume_dim > &x, tmpl::list< Pi >) const
 Retrieve scalar wave variables.
tuples::TaggedTuple< Phi< volume_dim > > variables (const tnsr::I< DataVector, volume_dim > &x, tmpl::list< Phi< volume_dim > >) const
tuples::TaggedTuple< Psivariables (const tnsr::I< DataVector, volume_dim > &x, tmpl::list< Psi >) const
template<typename DataType , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, volume_dim > &x, tmpl::list< Tags... >) const
void pup (PUP::er &p)

Static Public Member Functions

static std::string name ()

Static Public Attributes

static constexpr size_t volume_dim = ScalarFieldData::volume_dim
static constexpr Options::String help


template<typename LocalScalarFieldData , typename LocalBackgroundData >
bool operator== (const ScalarWaveGr< LocalScalarFieldData, LocalBackgroundData > &lhs, const ScalarWaveGr< LocalScalarFieldData, LocalBackgroundData > &rhs)

Detailed Description

template<typename ScalarFieldData, typename BackgroundGrData>
class CurvedScalarWave::AnalyticData::ScalarWaveGr< ScalarFieldData, BackgroundGrData >

Analytic initial data for scalar waves in curved spacetime.


When evolving a scalar field propagating through curved spacetime, this class provides a method to initialize the scalar-field and spacetime variables using analytic solution(s) of the flat-space scalar-wave equation and of the Einstein equations. Note that the coordinate profile of the scalar field \(\Psi\) in curved spacetime being the same as \(\Psi\) in flat spacetime is our primary identification, allowing it to be initialized using any member class of ScalarWave::Solutions. We initialize \(\Phi_i\) in curved spacetime to the coordinate spatial derivative of \(\Psi\) in flat spacetime. The definition of \(\Pi\) comes from requiring it to be the future-directed time derivative of the scalar field in curved spacetime:

\begin{align} \Pi :=& -n^a \partial_a \Psi \\ =& \frac{1}{\alpha}\left(\beta^k \Phi_k - {\partial_t\Psi}\right),\\ =& \frac{1}{\alpha}\left(\beta^k \Phi_k + {\Pi}_{\mathrm{flat}}\right), \end{align}

where \(n^a\) is the unit normal to spatial slices of the spacetime foliation, and \({\Pi}_{\mathrm{flat}}\) comes from the flat spacetime solution.

Member Data Documentation

◆ help

template<typename ScalarFieldData , typename BackgroundGrData >
constexpr Options::String CurvedScalarWave::AnalyticData::ScalarWaveGr< ScalarFieldData, BackgroundGrData >::help
Initial value:
"A scalar field in curved background spacetime\n\n"}

The documentation for this class was generated from the following file: