WarpX
|
#include <BreitWheelerEngineWrapper.H>
Public Member Functions | |
BreitWheelerGeneratePairs ()=default | |
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 |
Private Attributes | |
BW_pair_prod_table_view | m_table_view |
Functor to generate a pair via the Breit-Wheeler process
|
default |
Default constructor: it leaves the functor in a non-initialized state.
|
inline |
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
[in] | table_view | a BW_pair_prod_table_view |
|
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.
[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 |
|
private |