WarpX
Loading...
Searching...
No Matches
QuantumSynchrotronPhotonEmission Class Reference

#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
 

Detailed Description

Functor to generate a photon via the Quantum Synchrotron process and to update momentum accordingly

Constructor & Destructor Documentation

◆ QuantumSynchrotronPhotonEmission() [1/2]

QuantumSynchrotronPhotonEmission::QuantumSynchrotronPhotonEmission ( )
default

Default constructor: it leaves the functor in a non-initialized state.

◆ QuantumSynchrotronPhotonEmission() [2/2]

QuantumSynchrotronPhotonEmission::QuantumSynchrotronPhotonEmission ( const QS_phot_em_table_view table_view)
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

Parameters
[in]table_viewa view of a QS_phot_em_table lookup table

Member Function Documentation

◆ operator()()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE bool QuantumSynchrotronPhotonEmission::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
inlinenoexcept

Generates photons according to Quantum Synchrotron process. It can be used on GPU.

Parameters
[in,out]ux,uy,uzgamma*v components of the lepton. They are modified (SI units)
[in]ex,ey,ezelectric field components (SI units)
[in]bx,by,bzmagnetic field components (SI units)
[out]g_ux,g_uy,g_uzgamma*v components of the generated photon (SI units)
[in]enginerandom number generator engine
Returns
a flag which is 1 if chi_photon was out of table

Member Data Documentation

◆ m_table_view

QS_phot_em_table_view QuantumSynchrotronPhotonEmission::m_table_view
private

The documentation for this class was generated from the following file: