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>

Classes

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
 

Friends

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.

Details

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
staticconstexpr
Initial value:
{
"A scalar field in curved background spacetime\n\n"}

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