|
WarpX
|
#include <PlasmaInjector.H>
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... | |
| 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_flux_function |
| 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 | setupSingleParticle (const amrex::ParmParse &pp_species_name) |
| void | setupMultipleParticles (const amrex::ParmParse &pp_species_name) |
| void | setupGaussianBeam (const amrex::ParmParse &pp_species_name) |
| void | setupNRandomPerCell (const amrex::ParmParse &pp_species_name) |
| void | setupNFluxPerCell (const amrex::ParmParse &pp_species_name) |
| void | setupNuniformPerCell (const amrex::ParmParse &pp_species_name) |
| void | setupExternalFile (const amrex::ParmParse &pp_species_name) |
| void | parseFlux (const amrex::ParmParse &pp_species_name) |
Protected Attributes | |
| amrex::Real | mass |
| amrex::Real | charge |
| PhysicalSpecies | physical_species = PhysicalSpecies::unspecified |
| amrex::Real | flux |
| int | species_id |
| std::string | species_name |
| std::unique_ptr< InjectorPosition > | h_inj_pos |
| InjectorPosition * | d_inj_pos = nullptr |
| std::unique_ptr< InjectorPosition > | h_flux_pos |
| InjectorPosition * | d_flux_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< InjectorFlux, InjectorFluxDeleter > | h_inj_flux |
| InjectorFlux * | d_inj_flux = nullptr |
| std::unique_ptr< amrex::Parser > | flux_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 |
Default constructor
| PlasmaInjector::PlasmaInjector | ( | int | ispecies, |
| const std::string & | name, | ||
| const amrex::Geometry & | geom | ||
| ) |
|
delete |
|
default |
|
default |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
| InjectorDensity * PlasmaInjector::getInjectorDensity | ( | ) |
| InjectorFlux * PlasmaInjector::getInjectorFlux | ( | ) |
| InjectorPosition * PlasmaInjector::getInjectorFluxPosition | ( | ) |
| InjectorMomentum * PlasmaInjector::getInjectorMomentumDevice | ( | ) |
| InjectorMomentum * PlasmaInjector::getInjectorMomentumHost | ( | ) |
| InjectorPosition * PlasmaInjector::getInjectorPosition | ( | ) |
|
inline |
|
noexcept |
|
inline |
|
noexcept |
|
delete |
|
default |
|
noexcept |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| bool PlasmaInjector::add_multiple_particles = false |
| bool PlasmaInjector::add_single_particle = false |
|
protected |
|
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 |
|
protected |
| int PlasmaInjector::flux_direction |
| int PlasmaInjector::flux_normal_axis |
|
protected |
| amrex::Real PlasmaInjector::flux_tmax = -1. |
| amrex::Real PlasmaInjector::flux_tmin = -1. |
| bool PlasmaInjector::gaussian_beam = false |
|
protected |
|
protected |
|
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_flux_function |
| 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 |