Transform functor for the QED photon emission process.
More...
#include <QEDPhotonEmission.H>
|
| | PhotonEmissionTransformFunc (QuantumSynchrotronGetOpticalDepth opt_depth_functor, int const opt_depth_runtime_comp, QuantumSynchrotronPhotonEmission const emission_functor, const WarpXParIter &a_pti, int lev, int ngE, amrex::FArrayBox const &exfab, amrex::FArrayBox const &eyfab, amrex::FArrayBox const &ezfab, amrex::FArrayBox const &bxfab, amrex::FArrayBox const &byfab, amrex::FArrayBox const &bzfab, amrex::Array< amrex::Real, 3 > v_galilean, int a_offset=0) |
| | Constructor of the PhotonEmissionTransformFunc functor. More...
|
| |
| template<typename DstData , typename SrcData > |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (DstData &dst, SrcData &src, int i_src, int i_dst) const noexcept |
| | Functor call. It determines the properties of the generated photon and updates the momentum of the source particle. More...
|
| |
Transform functor for the QED photon emission process.
◆ PhotonEmissionTransformFunc()
| PhotonEmissionTransformFunc::PhotonEmissionTransformFunc |
( |
QuantumSynchrotronGetOpticalDepth |
opt_depth_functor, |
|
|
int const |
opt_depth_runtime_comp, |
|
|
QuantumSynchrotronPhotonEmission const |
emission_functor, |
|
|
const WarpXParIter & |
a_pti, |
|
|
int |
lev, |
|
|
int |
ngE, |
|
|
amrex::FArrayBox const & |
exfab, |
|
|
amrex::FArrayBox const & |
eyfab, |
|
|
amrex::FArrayBox const & |
ezfab, |
|
|
amrex::FArrayBox const & |
bxfab, |
|
|
amrex::FArrayBox const & |
byfab, |
|
|
amrex::FArrayBox const & |
bzfab, |
|
|
amrex::Array< amrex::Real, 3 > |
v_galilean, |
|
|
int |
a_offset = 0 |
|
) |
| |
Constructor of the PhotonEmissionTransformFunc functor.
A QuantumSynchrotronGeneratePhotonAndUpdateMomentum functor is passed by value. However, it contains only few integer and real parameters and few pointers to the raw data of the lookup tables. Therefore, it should be rather lightweight to copy.
Also a QuantumSynchrotronGetOpticalDepth has to be passed, since the optical depth has to be re-initialized after each photon emission.
- Parameters
-
| [in] | opt_depth_functor | functor to re-initialize the optical depth of the source particles |
| [in] | opt_depth_runtime_comp | index of the optical depth component of the source species |
| [in] | emission_functor | functor to generate photons and update momentum of the source particles |
◆ operator()()
template<typename DstData , typename SrcData >
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void PhotonEmissionTransformFunc::operator() |
( |
DstData & |
dst, |
|
|
SrcData & |
src, |
|
|
int |
i_src, |
|
|
int |
i_dst |
|
) |
| const |
|
inlinenoexcept |
Functor call. It determines the properties of the generated photon and updates the momentum of the source particle.
- Parameters
-
| [in,out] | dst | target species (photons) |
| [in,out] | src | source species (either electrons or positrons) |
| [in] | i_src | particle index of the source species |
| [in] | i_dst | particle index of target species |
◆ m_bx_arr
| amrex::Array4<const amrex::Real> PhotonEmissionTransformFunc::m_bx_arr |
|
private |
◆ m_bx_type
| amrex::IndexType PhotonEmissionTransformFunc::m_bx_type |
|
private |
◆ m_by_arr
| amrex::Array4<const amrex::Real> PhotonEmissionTransformFunc::m_by_arr |
|
private |
◆ m_by_type
| amrex::IndexType PhotonEmissionTransformFunc::m_by_type |
|
private |
◆ m_bz_arr
| amrex::Array4<const amrex::Real> PhotonEmissionTransformFunc::m_bz_arr |
|
private |
◆ m_bz_type
| amrex::IndexType PhotonEmissionTransformFunc::m_bz_type |
|
private |
◆ m_dx_arr
| amrex::GpuArray<amrex::Real, 3> PhotonEmissionTransformFunc::m_dx_arr |
|
private |
◆ m_emission_functor
A copy of the functor to generate photons. It contains only pointers to the lookup tables.
◆ m_ex_arr
| amrex::Array4<const amrex::Real> PhotonEmissionTransformFunc::m_ex_arr |
|
private |
◆ m_ex_type
| amrex::IndexType PhotonEmissionTransformFunc::m_ex_type |
|
private |
◆ m_ey_arr
| amrex::Array4<const amrex::Real> PhotonEmissionTransformFunc::m_ey_arr |
|
private |
◆ m_ey_type
| amrex::IndexType PhotonEmissionTransformFunc::m_ey_type |
|
private |
◆ m_ez_arr
| amrex::Array4<const amrex::Real> PhotonEmissionTransformFunc::m_ez_arr |
|
private |
◆ m_ez_type
| amrex::IndexType PhotonEmissionTransformFunc::m_ez_type |
|
private |
◆ m_galerkin_interpolation
| bool PhotonEmissionTransformFunc::m_galerkin_interpolation |
|
private |
◆ m_get_externalB
◆ m_get_externalE
◆ m_get_position
◆ m_lo
| amrex::Dim3 PhotonEmissionTransformFunc::m_lo |
|
private |
◆ m_n_rz_azimuthal_modes
| int PhotonEmissionTransformFunc::m_n_rz_azimuthal_modes |
|
private |
◆ m_nox
| int PhotonEmissionTransformFunc::m_nox |
|
private |
◆ m_opt_depth_functor
A copy of the functor to initialize the optical depth of the source species.
◆ m_opt_depth_runtime_comp
| const int PhotonEmissionTransformFunc::m_opt_depth_runtime_comp = 0 |
|
private |
Index of the optical depth component of source species
◆ m_xyzmin_arr
| amrex::GpuArray<amrex::Real, 3> PhotonEmissionTransformFunc::m_xyzmin_arr |
|
private |
The documentation for this class was generated from the following files:
- /home/docs/checkouts/readthedocs.org/user_builds/warpx/checkouts/20.10/Source/Particles/ElementaryProcess/QEDPhotonEmission.H
- /home/docs/checkouts/readthedocs.org/user_builds/warpx/checkouts/20.10/Source/Particles/ElementaryProcess/QEDPhotonEmission.cpp