#include <BreitWheelerEngineWrapper.H>
|
| | BreitWheelerGeneratePairs () |
| |
| | BreitWheelerGeneratePairs (const BW_pair_prod_table_view table_view) |
| |
| AMREX_GPU_DEVICE AMREX_FORCE_INLINE int | operator() (const amrex::ParticleReal ux, const amrex::ParticleReal uy, const amrex::ParticleReal uz, const amrex::ParticleReal ex, const amrex::ParticleReal ey, const amrex::ParticleReal ez, const amrex::ParticleReal bx, const amrex::ParticleReal by, const amrex::ParticleReal bz, amrex::ParticleReal &e_ux, amrex::ParticleReal &e_uy, amrex::ParticleReal &e_uz, amrex::ParticleReal &p_ux, amrex::ParticleReal &p_uy, amrex::ParticleReal &p_uz, amrex::RandomEngine const &engine) const noexcept |
| |
Functor to generate a pair via the Breit-Wheeler process
◆ BreitWheelerGeneratePairs() [1/2]
| BreitWheelerGeneratePairs::BreitWheelerGeneratePairs |
( |
| ) |
|
|
inline |
Default constructor: it leaves the functor in a non-initialized state.
◆ BreitWheelerGeneratePairs() [2/2]
Constructor acquires pointers to control parameters and lookup tables data. lookup_table uses non-owning vectors under the hood. So no new data allocations should be triggered on GPU
- Parameters
-
| [in] | table_view | a BW_pair_prod_table_view |
◆ operator()()
| AMREX_GPU_DEVICE AMREX_FORCE_INLINE int BreitWheelerGeneratePairs::operator() |
( |
const amrex::ParticleReal |
ux, |
|
|
const amrex::ParticleReal |
uy, |
|
|
const amrex::ParticleReal |
uz, |
|
|
const amrex::ParticleReal |
ex, |
|
|
const amrex::ParticleReal |
ey, |
|
|
const amrex::ParticleReal |
ez, |
|
|
const amrex::ParticleReal |
bx, |
|
|
const amrex::ParticleReal |
by, |
|
|
const amrex::ParticleReal |
bz, |
|
|
amrex::ParticleReal & |
e_ux, |
|
|
amrex::ParticleReal & |
e_uy, |
|
|
amrex::ParticleReal & |
e_uz, |
|
|
amrex::ParticleReal & |
p_ux, |
|
|
amrex::ParticleReal & |
p_uy, |
|
|
amrex::ParticleReal & |
p_uz, |
|
|
amrex::RandomEngine const & |
engine |
|
) |
| const |
|
inlinenoexcept |
Generates pairs according to Breit Wheeler process. It can be used on GPU. Warning: the energy of the photon must be > 2mec^2, but it is not checked in this method.
- Parameters
-
| [in] | ux,uy,uz | gamma*v components of the photon (SI units) |
| [in] | ex,ey,ez | electric field components (SI units) |
| [in] | bx,by,bz | magnetic field components (SI units) |
| [out] | e_ux,e_uy,e_uz | gamma*v components of generated electron (SI units) |
| [out] | p_ux,p_uy,p_uz | gamma*v components of generated positron (SI units) |
| [in] | engine | random number generator engine |
- Returns
- a flag which is 1 if chi_photon was out of table
◆ m_table_view
The documentation for this class was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/warpx/checkouts/21.10/Source/Particles/ElementaryProcess/QEDInternals/BreitWheelerEngineWrapper.H