8 #ifndef QED_PAIR_GENERATION_H_ 9 #define QED_PAIR_GENERATION_H_ 49 template <
typename PData>
50 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
51 bool operator() (
const PData& ptd,
int const i, amrex::RandomEngine
const&)
const noexcept
53 using namespace amrex;
55 const amrex::ParticleReal opt_depth =
57 return (opt_depth < 0.0_rt);
82 amrex::FArrayBox
const& exfab,
83 amrex::FArrayBox
const& eyfab,
84 amrex::FArrayBox
const& ezfab,
85 amrex::FArrayBox
const& bxfab,
86 amrex::FArrayBox
const& byfab,
87 amrex::FArrayBox
const& bzfab,
88 amrex::Array<amrex::Real,3> v_galilean,
102 template <
typename DstData,
typename SrcData>
103 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
105 int const i_src,
int const i_dst1,
int const i_dst2)
const noexcept
107 using namespace amrex;
110 amrex::ParticleReal xp, yp, zp;
111 m_get_position(i_src, xp, yp, zp);
113 amrex::ParticleReal ex = 0._rt, ey = 0._rt, ez = 0._rt;
114 m_get_externalE(i_src, ex, ey, ez);
116 amrex::ParticleReal bx = 0._rt, by = 0._rt, bz = 0._rt;
117 m_get_externalB(i_src, bx, by, bz);
120 m_ex_arr, m_ey_arr, m_ez_arr, m_bx_arr, m_by_arr, m_bz_arr,
121 m_ex_type, m_ey_type, m_ez_type, m_bx_type, m_by_type, m_bz_type,
122 m_dx_arr, m_xyzmin_arr, m_lo, m_n_rz_azimuthal_modes,
123 m_nox, m_galerkin_interpolation);
128 const auto&
ux = src.m_rdata[
PIdx::ux][i_src];
129 const auto& uy = src.m_rdata[
PIdx::uy][i_src];
130 const auto&
uz = src.m_rdata[
PIdx::uz][i_src];
131 auto& e_ux = dst1.m_rdata[
PIdx::ux][i_dst1];
132 auto& e_uy = dst1.m_rdata[
PIdx::uy][i_dst1];
133 auto& e_uz = dst1.m_rdata[
PIdx::uz][i_dst1];
134 auto& p_ux = dst2.m_rdata[
PIdx::ux][i_dst2];
135 auto& p_uy = dst2.m_rdata[
PIdx::uy][i_dst2];
136 auto& p_uz = dst2.m_rdata[
PIdx::uz][i_dst2];
144 src.m_aos[i_src].id() = -1;
180 #endif //QED_PAIR_GENERATION_H_
def uz
Definition: read_lab_particles.py:29
Functor that can be used to assign the external B field to a particle inside a ParallelFor kernel...
Definition: GetExternalFields.H:68
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void doGatherShapeN(const amrex::ParticleReal xp, const amrex::ParticleReal yp, const amrex::ParticleReal zp, amrex::ParticleReal &Exp, amrex::ParticleReal &Eyp, amrex::ParticleReal &Ezp, amrex::ParticleReal &Bxp, amrex::ParticleReal &Byp, amrex::ParticleReal &Bzp, amrex::Array4< amrex::Real const > const &ex_arr, amrex::Array4< amrex::Real const > const &ey_arr, amrex::Array4< amrex::Real const > const &ez_arr, amrex::Array4< amrex::Real const > const &bx_arr, amrex::Array4< amrex::Real const > const &by_arr, amrex::Array4< amrex::Real const > const &bz_arr, const amrex::IndexType ex_type, const amrex::IndexType ey_type, const amrex::IndexType ez_type, const amrex::IndexType bx_type, const amrex::IndexType by_type, const amrex::IndexType bz_type, const amrex::GpuArray< amrex::Real, 3 > &dx, const amrex::GpuArray< amrex::Real, 3 > &xyzmin, const amrex::Dim3 &lo, const long n_rz_azimuthal_modes)
Field gather for a single particle.
Definition: FieldGather.H:38
PairGenerationFilterFunc(int const opt_depth_runtime_comp)
Constructor of the PairGenerationFilterFunc functor.
Definition: QEDPairGeneration.H:37
i
Definition: check_interp_points_and_weights.py:171
Definition: WarpXParticleContainer.H:37
Definition: WarpXParticleContainer.H:37
Filter functor for the Breit Wheeler process.
Definition: QEDPairGeneration.H:28
Definition: WarpXParticleContainer.H:37
int m_opt_depth_runtime_comp
Definition: QEDPairGeneration.H:61
Functor that can be used to extract the positions of the macroparticles inside a ParallelFor kernel...
Definition: GetAndSetPosition.H:25
Definition: BreitWheelerEngineWrapper.H:175
def ux
Definition: read_lab_particles.py:28
Definition: WarpXParticleContainer.H:76
Functor that can be used to assign the external E field to a particle inside a ParallelFor kernel...
Definition: GetExternalFields.H:58
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool operator()(const PData &ptd, int const i, amrex::RandomEngine const &) const noexcept
Functor call. This method determines if a given (photon) particle should undergo pair generation...
Definition: QEDPairGeneration.H:51