|
ARTEMIS
|
#include <PlasmaInjector.H>
Public Member Functions | |
| PlasmaInjector ()=default | |
| PlasmaInjector (int ispecies, const std::string &name) | |
| ~PlasmaInjector () | |
| bool | insideBounds (amrex::Real x, amrex::Real y, amrex::Real z) const noexcept |
| bool | overlapsWith (const amrex::XDim3 &lo, const amrex::XDim3 &hi) const noexcept |
| amrex::XDim3 | getMomentum (amrex::Real x, amrex::Real y, amrex::Real z) const noexcept |
| amrex::Real | getCharge () |
| amrex::Real | getMass () |
| PhysicalSpecies | getPhysicalSpecies () const |
| bool | doInjection () const noexcept |
| InjectorPosition * | getInjectorPosition () |
| InjectorDensity * | getInjectorDensity () |
| InjectorMomentum * | getInjectorMomentum () |
Public Attributes | |
| int | num_particles_per_cell |
| amrex::Real | num_particles_per_cell_real |
| amrex::Vector< int > | num_particles_per_cell_each_dim |
| bool | add_single_particle = false |
| amrex::Vector< amrex::ParticleReal > | single_particle_pos |
| amrex::Vector< amrex::ParticleReal > | single_particle_u |
| amrex::ParticleReal | single_particle_weight |
| bool | add_multiple_particles = false |
| amrex::Vector< amrex::ParticleReal > | multiple_particles_pos_x |
| amrex::Vector< amrex::ParticleReal > | multiple_particles_pos_y |
| amrex::Vector< amrex::ParticleReal > | multiple_particles_pos_z |
| amrex::Vector< amrex::ParticleReal > | multiple_particles_ux |
| amrex::Vector< amrex::ParticleReal > | multiple_particles_uy |
| amrex::Vector< amrex::ParticleReal > | multiple_particles_uz |
| amrex::Vector< amrex::ParticleReal > | multiple_particles_weight |
| bool | gaussian_beam = false |
| amrex::Real | x_m |
| amrex::Real | y_m |
| amrex::Real | z_m |
| amrex::Real | x_rms |
| amrex::Real | y_rms |
| amrex::Real | z_rms |
| amrex::Real | x_cut = std::numeric_limits<amrex::Real>::max() |
| amrex::Real | y_cut = std::numeric_limits<amrex::Real>::max() |
| amrex::Real | z_cut = std::numeric_limits<amrex::Real>::max() |
| amrex::Real | q_tot = 0.0 |
| long | npart |
| int | do_symmetrize = 0 |
| int | symmetrization_order = 4 |
| bool | external_file = false |
| amrex::Real | z_shift = 0.0 |
| initialize from an openPMD file More... | |
| std::unique_ptr< openPMD::Series > | m_openpmd_input_series |
| additional z offset for particle positions More... | |
| bool | surface_flux = false |
| amrex::Real | surface_flux_pos |
| amrex::Real | flux_tmin = -1. |
| amrex::Real | flux_tmax = -1. |
| int | flux_normal_axis |
| int | flux_direction |
| bool | radially_weighted = true |
| std::string | str_density_function |
| std::string | str_momentum_function_ux |
| std::string | str_momentum_function_uy |
| std::string | str_momentum_function_uz |
| amrex::Real | xmin |
| amrex::Real | xmax |
| amrex::Real | ymin |
| amrex::Real | ymax |
| amrex::Real | zmin |
| amrex::Real | zmax |
| amrex::Real | density_min = std::numeric_limits<amrex::Real>::epsilon() |
| amrex::Real | density_max = std::numeric_limits<amrex::Real>::max() |
Protected Member Functions | |
| void | parseDensity (amrex::ParmParse &pp) |
| void | parseMomentum (amrex::ParmParse &pp) |
Protected Attributes | |
| amrex::Real | mass |
| amrex::Real | charge |
| PhysicalSpecies | physical_species = PhysicalSpecies::unspecified |
| amrex::Real | density |
| int | species_id |
| std::string | species_name |
| std::unique_ptr< InjectorPosition > | h_inj_pos |
| InjectorPosition * | d_inj_pos = nullptr |
| std::unique_ptr< InjectorDensity, InjectorDensityDeleter > | h_inj_rho |
| InjectorDensity * | d_inj_rho = nullptr |
| std::unique_ptr< amrex::Parser > | density_parser |
| std::unique_ptr< InjectorMomentum, InjectorMomentumDeleter > | h_inj_mom |
| InjectorMomentum * | d_inj_mom = nullptr |
| std::unique_ptr< amrex::Parser > | ux_parser |
| std::unique_ptr< amrex::Parser > | uy_parser |
| std::unique_ptr< amrex::Parser > | uz_parser |
| std::unique_ptr< TemperatureProperties > | h_mom_temp |
| std::unique_ptr< VelocityProperties > | h_mom_vel |
The PlasmaInjector class parses and stores information about the plasma type used in the particle container. This information is used to create the particles on initialization and whenever the window moves.
|
default |
| PlasmaInjector::PlasmaInjector | ( | int | ispecies, |
| const std::string & | name | ||
| ) |
|
default |
|
inlinenoexcept |
|
inline |
| InjectorDensity * PlasmaInjector::getInjectorDensity | ( | ) |
| InjectorMomentum * PlasmaInjector::getInjectorMomentum | ( | ) |
| InjectorPosition * PlasmaInjector::getInjectorPosition | ( | ) |
|
inline |
|
noexcept |
|
inline |
|
noexcept |
|
noexcept |
|
protected |
|
protected |
| bool PlasmaInjector::add_multiple_particles = false |
| bool PlasmaInjector::add_single_particle = false |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| amrex::Real PlasmaInjector::density_max = std::numeric_limits<amrex::Real>::max() |
| amrex::Real PlasmaInjector::density_min = std::numeric_limits<amrex::Real>::epsilon() |
|
protected |
| int PlasmaInjector::do_symmetrize = 0 |
| bool PlasmaInjector::external_file = false |
| int PlasmaInjector::flux_direction |
| int PlasmaInjector::flux_normal_axis |
| amrex::Real PlasmaInjector::flux_tmax = -1. |
| amrex::Real PlasmaInjector::flux_tmin = -1. |
| bool PlasmaInjector::gaussian_beam = false |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| std::unique_ptr<openPMD::Series> PlasmaInjector::m_openpmd_input_series |
additional z offset for particle positions
openPMD::Series to load from in external_file injection
|
protected |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::multiple_particles_pos_x |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::multiple_particles_pos_y |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::multiple_particles_pos_z |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::multiple_particles_ux |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::multiple_particles_uy |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::multiple_particles_uz |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::multiple_particles_weight |
| long PlasmaInjector::npart |
| int PlasmaInjector::num_particles_per_cell |
| amrex::Vector<int> PlasmaInjector::num_particles_per_cell_each_dim |
| amrex::Real PlasmaInjector::num_particles_per_cell_real |
|
protected |
| amrex::Real PlasmaInjector::q_tot = 0.0 |
| bool PlasmaInjector::radially_weighted = true |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::single_particle_pos |
| amrex::Vector<amrex::ParticleReal> PlasmaInjector::single_particle_u |
| amrex::ParticleReal PlasmaInjector::single_particle_weight |
|
protected |
|
protected |
| std::string PlasmaInjector::str_density_function |
| std::string PlasmaInjector::str_momentum_function_ux |
| std::string PlasmaInjector::str_momentum_function_uy |
| std::string PlasmaInjector::str_momentum_function_uz |
| bool PlasmaInjector::surface_flux = false |
| amrex::Real PlasmaInjector::surface_flux_pos |
| int PlasmaInjector::symmetrization_order = 4 |
|
protected |
|
protected |
|
protected |
| amrex::Real PlasmaInjector::x_cut = std::numeric_limits<amrex::Real>::max() |
| amrex::Real PlasmaInjector::x_m |
| amrex::Real PlasmaInjector::x_rms |
| amrex::Real PlasmaInjector::xmax |
| amrex::Real PlasmaInjector::xmin |
| amrex::Real PlasmaInjector::y_cut = std::numeric_limits<amrex::Real>::max() |
| amrex::Real PlasmaInjector::y_m |
| amrex::Real PlasmaInjector::y_rms |
| amrex::Real PlasmaInjector::ymax |
| amrex::Real PlasmaInjector::ymin |
| amrex::Real PlasmaInjector::z_cut = std::numeric_limits<amrex::Real>::max() |
| amrex::Real PlasmaInjector::z_m |
| amrex::Real PlasmaInjector::z_rms |
| amrex::Real PlasmaInjector::z_shift = 0.0 |
initialize from an openPMD file
| amrex::Real PlasmaInjector::zmax |
| amrex::Real PlasmaInjector::zmin |