Filter functor for impact ionization.
More...
#include <ImpactIonization.H>
Filter functor for impact ionization.
◆ ImpactIonizationFilterFunc()
ImpactIonizationFilterFunc::ImpactIonizationFilterFunc |
( |
ScatteringProcess const & |
mcc_process, |
|
|
double const |
mass, |
|
|
amrex::ParticleReal const |
total_collision_prob, |
|
|
amrex::ParticleReal const |
nu_max, |
|
|
amrex::ParserExecutor< 4 > const & |
n_a_func, |
|
|
amrex::Real |
t |
|
) |
| |
|
inline |
Constructor of the ImpactIonizationFilterFunc functor.
This function sample a random number and compares it to the total collision probability to see if the given particle should be considered for an ionization event. If the particle passes this stage the collision cross-section is calculated given its energy and another random number is used to determine whether it actually collides. 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] | mcc_process | an ScatteringProcess object associated with the ionization |
[in] | mass | colliding particle's mass (could also assume electron) |
[in] | total_collision_prob | total probability for a collision to occur |
[in] | nu_max | maximum collision frequency |
[in] | n_a_func | ParserExecutor<4> function to get the background density in m^-3 as a function of space and time |
[in] | t | the current simulation time |
◆ operator()()
template<typename PData >
Functor call. This method determines if a given (electron) particle should undergo an ionization collision.
- Parameters
-
[in] | ptd | particle tile data |
[in] | i | particle index |
[in] | engine | the random number state and factory |
- Returns
- true if a collision occurs, false otherwise
◆ m_mass
double ImpactIonizationFilterFunc::m_mass |
|
private |
◆ m_mcc_process
◆ m_n_a_func
◆ m_nu_max
amrex::ParticleReal ImpactIonizationFilterFunc::m_nu_max |
|
private |
◆ m_t
amrex::Real ImpactIonizationFilterFunc::m_t |
|
private |
◆ m_total_collision_prob
amrex::ParticleReal ImpactIonizationFilterFunc::m_total_collision_prob = 0 |
|
private |
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