SpECTRE  v2024.04.12
ForceFree::Solutions::FastWave Class Reference

An electromagnetic wave propagating into \(+x\) direction in flat spacetime. More...

#include <FastWave.hpp>

Public Types

using options = tmpl::list<>
 

Public Member Functions

 FastWave (const FastWave &)=default
 
FastWaveoperator= (const FastWave &)=default
 
 FastWave (FastWave &&)=default
 
FastWaveoperator= (FastWave &&)=default
 
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
 
void pup (PUP::er &p) override
 
template<typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataVector, 3 > &x, const double t, tmpl::list< Tags... >) const
 Retrieve a collection of EM variables at (x, t)
 
template<typename Tag >
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tag >) const
 Retrieve the metric variables.
 
virtual auto get_clone () const -> std::unique_ptr< InitialData >=0
 

Static Public Member Functions

static auto variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tags::TildeE >) -> tuples::TaggedTuple< Tags::TildeE >
 Retrieve the EM variables at (x,t).
 
static auto variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tags::TildeB >) -> tuples::TaggedTuple< Tags::TildeB >
 Retrieve the EM variables at (x,t).
 
static auto variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tags::TildePsi >) -> tuples::TaggedTuple< Tags::TildePsi >
 Retrieve the EM variables at (x,t).
 
static auto variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tags::TildePhi >) -> tuples::TaggedTuple< Tags::TildePhi >
 Retrieve the EM variables at (x,t).
 
static auto variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tags::TildeQ >) -> tuples::TaggedTuple< Tags::TildeQ >
 Retrieve the EM variables at (x,t).
 

Static Public Attributes

static constexpr Options::String help
 

Friends

bool operator== (const FastWave &lhs, const FastWave &rhs)
 
bool operator!= (const FastWave &lhs, const FastWave &rhs)
 

Detailed Description

An electromagnetic wave propagating into \(+x\) direction in flat spacetime.

The initial data is given by [105]

\begin{align*} B^x & = 1.0 , \\ B^y & = \left\{\begin{array}{ll} 1.0 & \text{if } x < -0.1 \\ -1.5x + 0.85 & \text{if } -0.1 \leq x \leq 0.1 \\ 0.7 & \text{if } x > 0.1 \\ \end{array}\right\}, \\ B^z & = 0 , \\ E^x & = E^y = 0 , \\ E^z & = -B^y . \end{align*}

The electric and magnetic fields are advected to \(+x\) direction with the speed of light ( \(\lambda=+1\)), and the solution at \((\vec{x},t)\) is

\begin{align*} E^i(x,y,z,t) & = E^i(x-t,y,z,0) , \\ B^i(x,y,z,t) & = B^i(x-t,y,z,0) . \end{align*}

Electric charge density \(q\) is zero everywhere.

Member Function Documentation

◆ get_clone()

auto ForceFree::Solutions::FastWave::get_clone ( ) const -> std::unique_ptr< evolution::initial_data::InitialData >
overridevirtual

Member Data Documentation

◆ help

constexpr Options::String ForceFree::Solutions::FastWave::help
staticconstexpr
Initial value:
{
"A fast mode wave propagating +x direction in flat spacetime"}

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