|
| BlastWave (const BlastWave &)=default |
|
BlastWave & | operator= (const BlastWave &)=default |
|
| BlastWave (BlastWave &&)=default |
|
BlastWave & | operator= (BlastWave &&)=default |
|
| BlastWave (double inner_radius, double outer_radius, double inner_density, double outer_density, double inner_pressure, double outer_pressure, const std::array< double, 3 > &magnetic_field, double adiabatic_index, Geometry geometry, const Options::Context &context={}) |
|
auto | get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override |
|
template<typename DataType , typename Tag1 , typename Tag2 , typename... Tags> |
tuples::TaggedTuple< Tag1, Tag2, Tags... > | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tag1, Tag2, Tags... >) const |
| Retrieve a collection of hydrodynamic variables at position x.
|
|
template<typename DataType , typename Tag , Requires< tmpl::list_contains_v< gr::analytic_solution_tags< 3, DataType >, Tag > > = nullptr> |
tuples::TaggedTuple< Tag > | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tag >) const |
| Retrieve the metric variables.
|
|
const EquationsOfState::IdealFluid< true > & | equation_of_state () const |
|
void | pup (PUP::er &) override |
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::RestMassDensity< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::RestMassDensity< DataType > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::ElectronFraction< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::ElectronFraction< DataType > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::SpecificInternalEnergy< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::SpecificInternalEnergy< DataType > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::Pressure< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Pressure< DataType > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::SpatialVelocity< DataType, 3 > >) const -> tuples::TaggedTuple< hydro::Tags::SpatialVelocity< DataType, 3 > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::MagneticField< DataType, 3 > >) const -> tuples::TaggedTuple< hydro::Tags::MagneticField< DataType, 3 > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::DivergenceCleaningField< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::DivergenceCleaningField< DataType > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::LorentzFactor< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::LorentzFactor< DataType > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::SpecificEnthalpy< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::SpecificEnthalpy< DataType > > |
| Retrieve the GRMHD variables at a given position.
|
|
template<typename DataType > |
auto | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > > |
| Retrieve the GRMHD variables at a given position.
|
|
virtual auto | get_clone () const -> std::unique_ptr< InitialData >=0 |
|
auto | variables (const tnsr::I< DataType, Dim > &x, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > > |
|
auto | variables (const tnsr::I< DataType, Dim > &x, const double t, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > > |
|
auto | variables (ExtraVars &extra_variables, const tnsr::I< DataType, Dim > &x, Args &... extra_args, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > > |
|
Analytic initial data for a cylindrical or spherical blast wave.
This class implements analytic initial data for a cylindrical blast wave, as described, e.g., in [103] Sec. 6.2.3. A uniform magnetic field threads an ideal fluid. The solution begins with material at fixed (typically high) density and pressure at rest inside a cylinder of radius \(r < r_{\rm in}\) and material at fixed (typically low) density and pressure at rest in a cylindrical shell with radius \(r > r_{\rm out}\). In the region \( r_{\rm in} < r < r_{\rm out}\), the solution transitions such that the logarithms of the density and pressure vary linearly. E.g., if \(\rho(r < r_{\rm in}) = \rho_{\rm in}\) and \(\rho(r > r_{\rm out}) = \rho_{\rm out}\), then
\[ \log \rho = [(r_{\rm in} - r) \log(\rho_{\rm out}) + (r - r_{\rm out}) \log(\rho_{\rm in})] / (r_{\rm in} - r_{\rm out}). \]
Note that the cylinder's axis is the \(z\) axis. To evolve this analytic initial data, use a cubic or cylindrical domain with periodic boundary conditions applied to the outer boundaries whose normals are parallel or antiparallel to the z axis. In the transverse (e.g., x and y) dimensions, the domain should be large enough that the blast wave doesn't reach the boundary at the final time. E.g., if InnerRadius = 0.8
, OuterRadius = 1.0
, and the final time is 4.0, a good domain extends from (x,y)=(-6.0, -6.0)
to (x,y)=(6.0, 6.0)
.
An analogous problem with spherical geometry has also been used [34] [35] [38]. The magnetic field is chosen to be in the z-direction instead of the x-direction.