|
using | options = tmpl::list< Background, ScalarField > |
|
template<typename DataType > |
using | spacetime_tags = typename BackgroundGrData::template tags< DataType > |
|
using | InitialDataPsi = tmpl::conditional_t< is_curved, CurvedScalarWave::Tags::Psi, ScalarWave::Tags::Psi > |
|
using | InitialDataPi = tmpl::conditional_t< is_curved, CurvedScalarWave::Tags::Pi, ScalarWave::Tags::Pi > |
|
using | InitialDataPhi = tmpl::conditional_t< is_curved, CurvedScalarWave::Tags::Phi< volume_dim >, ScalarWave::Tags::Phi< volume_dim > > |
|
using | evolved_field_vars_tags = tmpl::list< InitialDataPsi, InitialDataPi, InitialDataPhi > |
|
using | tags = tmpl::append< spacetime_tags< DataVector >, tmpl::list< Tags::Psi, Tags::Pi, Tags::Phi< volume_dim > > > |
|
|
| ScalarWaveGr (BackgroundGrData background, ScalarFieldData scalar_field) |
|
| ScalarWaveGr (CkMigrateMessage *) |
|
| ScalarWaveGr (const ScalarWaveGr &)=delete |
|
ScalarWaveGr & | operator= (const ScalarWaveGr &)=delete |
|
| ScalarWaveGr (ScalarWaveGr &&)=default |
|
ScalarWaveGr & | operator= (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< Tags::Psi > | variables (const tnsr::I< DataVector, volume_dim > &x, tmpl::list< Tags::Psi >) const |
|
tuples::TaggedTuple< Tags::Pi > | variables (const tnsr::I< DataVector, volume_dim > &x, tmpl::list< Tags::Pi >) const |
| Retrieve scalar wave variables.
|
|
tuples::TaggedTuple< Tags::Phi< volume_dim > > | variables (const tnsr::I< DataVector, volume_dim > &x, tmpl::list< Tags::Phi< volume_dim > >) 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) |
|
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) or data of the flat or curved scalar wave equation for the evolution variables
- solutions of the Einstein equations for the spacetime background.
If the scalar field initial data returns CurvedScalarWave
tags, \(\Psi\), \(\Pi\) and \(\Phi_i\) will simply be forwarded from the initial data class. Alternatively, the scalar field initial data can be provided using any member class of ScalarWave::Solutions
which return ScalarWave
tags. In this case, \(\Phi_i\) and \(\Psi\) will also be forwarded but \(\Pi\) will be adjusted to account for the curved background. Its definition 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.