SpECTRE  v2024.04.12
grmhd::ValenciaDivClean::NumericInitialData Class Reference

Numeric initial data loaded from volume data files. More...

#include <NumericInitialData.hpp>

Classes

struct  DensityCutoff
 
struct  PrimitiveVars
 
struct  Variables
 
struct  VarName
 Name of a variable in the volume data file. Can be optional, in which case a constant value can be supplied instead of a dataset name. More...
 

Public Types

using required_primitive_vars = tmpl::list< hydro::Tags::RestMassDensity< DataVector >, hydro::Tags::LowerSpatialFourVelocity< DataVector, 3 > >
 
using optional_primitive_vars = tmpl::list< hydro::Tags::ElectronFraction< DataVector >, hydro::Tags::MagneticField< DataVector, 3 > >
 
using primitive_vars_option_tags = tmpl::append< db::wrap_tags_in< VarName, required_primitive_vars, std::bool_constant< true > >, db::wrap_tags_in< VarName, optional_primitive_vars, std::bool_constant< false > > >
 
using all_vars = tmpl::append< required_primitive_vars, optional_primitive_vars >
 
using options = tmpl::list< importers::OptionTags::FileGlob, importers::OptionTags::Subgroup, importers::OptionTags::ObservationValue, importers::OptionTags::EnableInterpolation, Variables, DensityCutoff >
 

Public Member Functions

 NumericInitialData (const NumericInitialData &rhs)=default
 
NumericInitialDataoperator= (const NumericInitialData &rhs)=default
 
 NumericInitialData (NumericInitialData &&)=default
 
NumericInitialDataoperator= (NumericInitialData &&)=default
 
std::unique_ptr< evolution::initial_data::InitialDataget_clone () const override
 
 NumericInitialData (std::string file_glob, std::string subfile_name, std::variant< double, importers::ObservationSelector > observation_value, bool enable_interpolation, PrimitiveVars selected_variables, double density_cutoff)
 
const importers::ImporterOptionsimporter_options () const
 
const PrimitiveVarsselected_variables () const
 
double density_cutoff () const
 
size_t volume_data_id () const
 
template<typename... AllTags>
void select_for_import (const gsl::not_null< tuples::TaggedTuple< AllTags... > * > all_fields) const
 
template<typename... AllTags, size_t ThermodynamicDim>
void set_initial_data (const gsl::not_null< Scalar< DataVector > * > rest_mass_density, const gsl::not_null< Scalar< DataVector > * > electron_fraction, const gsl::not_null< Scalar< DataVector > * > specific_internal_energy, const gsl::not_null< tnsr::I< DataVector, 3 > * > spatial_velocity, const gsl::not_null< tnsr::I< DataVector, 3 > * > magnetic_field, const gsl::not_null< Scalar< DataVector > * > div_cleaning_field, const gsl::not_null< Scalar< DataVector > * > lorentz_factor, const gsl::not_null< Scalar< DataVector > * > pressure, const gsl::not_null< Scalar< DataVector > * > temperature, const gsl::not_null< tuples::TaggedTuple< AllTags... > * > numeric_data, const tnsr::II< DataVector, 3 > &inv_spatial_metric, const EquationsOfState::EquationOfState< true, ThermodynamicDim > &equation_of_state) const
 
void pup (PUP::er &p) override
 
virtual auto get_clone () const -> std::unique_ptr< InitialData >=0
 

Static Public Attributes

static constexpr Options::String help
 

Friends

bool operator== (const NumericInitialData &lhs, const NumericInitialData &rhs)
 

Detailed Description

Numeric initial data loaded from volume data files.

This class can be factory-created in the input file to start an evolution from numeric initial data. It selects the hydro variables to load from the volume data files and allows to choose constant values for some of them.

Where the density is below the DensityCutoff the fluid variables are set to vacuum (zero density, pressure, energy and velocity, and unit Lorentz factor). To evolve the initial data, an atmosphere treatment is likely required to fix the value of the fluid variables in these regions.

Member Function Documentation

◆ get_clone()

std::unique_ptr< evolution::initial_data::InitialData > grmhd::ValenciaDivClean::NumericInitialData::get_clone ( ) const
inlineoverridevirtual

Member Data Documentation

◆ help

constexpr Options::String grmhd::ValenciaDivClean::NumericInitialData::help
staticconstexpr
Initial value:
=
"Numeric initial data loaded from volume data files"

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