SpECTRE  v2026.09.05
Loading...
Searching...
No Matches
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
FastWave & operator= (const FastWave &)=default
 FastWave (FastWave &&)=default
FastWave & operator= (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.
Public Member Functions inherited from evolution::initial_data::InitialData
virtual const InitialData & unwrap () const
 Unwrap wrapper types (e.g. WithNoise, which wraps analytic initial data and adds random noise) to reach the underlying analytic solution or data.

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 [122]

\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

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:
  • src/PointwiseFunctions/AnalyticSolutions/ForceFree/FastWave.hpp