WarpX
|
#include <QuantumSyncEngineWrapper.H>
Public Member Functions | |
QuantumSynchrotronPhotonEmission ()=default | |
QuantumSynchrotronPhotonEmission (const QS_phot_em_table_view table_view) | |
AMREX_GPU_DEVICE AMREX_FORCE_INLINE bool | operator() (amrex::ParticleReal &ux, amrex::ParticleReal &uy, 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 &g_ux, amrex::ParticleReal &g_uy, amrex::ParticleReal &g_uz, amrex::RandomEngine const &engine) const noexcept |
Private Attributes | |
QS_phot_em_table_view | m_table_view |
Functor to generate a photon via the Quantum Synchrotron process and to update momentum accordingly
|
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 view of a QS_phot_em_table lookup table |
|
inlinenoexcept |
Generates photons according to Quantum Synchrotron process. It can be used on GPU.
[in,out] | ux,uy,uz | gamma*v components of the lepton. They are modified (SI units) |
[in] | ex,ey,ez | electric field components (SI units) |
[in] | bx,by,bz | magnetic field components (SI units) |
[out] | g_ux,g_uy,g_uz | gamma*v components of the generated photon (SI units) |
[in] | engine | random number generator engine |
|
private |