Transform functor for impact ionization.
More...
#include <ImpactIonization.H>
|
| ImpactIonizationTransformFunc (amrex::ParticleReal energy_cost, double mass1, amrex::ParticleReal sqrt_kb_m, amrex::ParserExecutor< 4 > const &T_a_func, amrex::Real t) |
| Constructor of the ImpactIonizationTransformFunc functor. More...
|
|
template<typename DstData , typename SrcData > |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (DstData &dst1, DstData &dst2, SrcData &src, int const i_src, int const i_dst1, int const i_dst2, amrex::RandomEngine const &engine) const noexcept |
| Functor call. It determines the properties of the generated pair and decreases the kinetic energy of the colliding particle. Inputs are standard from the FilterCopyTransfrom::filterCopyTransformParticles function. More...
|
|
Transform functor for impact ionization.
◆ ImpactIonizationTransformFunc()
ImpactIonizationTransformFunc::ImpactIonizationTransformFunc |
( |
amrex::ParticleReal |
energy_cost, |
|
|
double |
mass1, |
|
|
amrex::ParticleReal |
sqrt_kb_m, |
|
|
amrex::ParserExecutor< 4 > const & |
T_a_func, |
|
|
amrex::Real |
t |
|
) |
| |
|
inline |
Constructor of the ImpactIonizationTransformFunc functor.
The transform is responsible for appropriately decreasing the kinetic energy of the colliding particle and assigning appropriate velocities to the two newly created particles. To this end the energy cost of ionization is passed to the constructor as well as the mass of the colliding species and the standard deviation of the ion velocity (normalized temperature). Note that the mass and energy quantities have to be stored as doubles to ensure accurate energy calculations (otherwise errors occur with single or mixed precision builds of WarpX).
- Parameters
-
[in] | energy_cost | energy cost of ionization |
[in] | mass1 | mass of the colliding species |
[in] | sqrt_kb_m | value of sqrt(kB/m), where kB is Boltzmann's constant and m is the background neutral mass |
[in] | T_a_func | ParserExecutor<4> function to get the background temperature in Kelvin as a function of space and time |
[in] | t | the current simulation time |
◆ operator()()
template<typename DstData , typename SrcData >
Functor call. It determines the properties of the generated pair and decreases the kinetic energy of the colliding particle. Inputs are standard from the FilterCopyTransfrom::filterCopyTransformParticles function.
- Parameters
-
[in,out] | dst1 | target species 1 (electrons) |
[in,out] | dst2 | target species 2 (ions) |
[in] | src | source species (electrons) |
[in] | i_src | particle index of the source species |
[in] | i_dst1 | particle index of target species 1 |
[in] | i_dst2 | particle index of target species 2 |
[in] | engine | random number generator engine |
◆ m_energy_cost
amrex::ParticleReal ImpactIonizationTransformFunc::m_energy_cost |
|
private |
◆ m_mass1
double ImpactIonizationTransformFunc::m_mass1 |
|
private |
◆ m_sqrt_kb_m
amrex::ParticleReal ImpactIonizationTransformFunc::m_sqrt_kb_m |
|
private |
◆ m_t
amrex::Real ImpactIonizationTransformFunc::m_t |
|
private |
◆ m_T_a_func
The documentation for this class was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/warpx/checkouts/latest/Source/Particles/Collision/BackgroundMCC/ImpactIonization.H