|
|
| 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.
|
|
auto | variables (const tnsr::I< DataType, Dim > &x, 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 [117] 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 [38] [39] [42]. The magnetic field is chosen to be in the z-direction instead of the x-direction.