8 #ifndef WARPX_QED_SCHWINGER_PROCESS_H_
9 #define WARPX_QED_SCHWINGER_PROCESS_H_
35 template <
typename FABs>
38 const int i,
const int j,
const int k,
41 const auto& arrEx = src_FABs.Ex;
42 const auto& arrEy = src_FABs.Ey;
43 const auto& arrEz = src_FABs.Ez;
44 const auto& arrBx = src_FABs.Bx;
45 const auto& arrBy = src_FABs.By;
46 const auto& arrBz = src_FABs.Bz;
49 arrEx(
i,j,k),arrEy(
i,j,k),arrEz(
i,j,k),
50 arrBx(
i,j,k),arrBy(
i,j,k),arrBz(
i,j,k),
77 template <
typename DstTile>
79 void operator() (DstTile& dst1, DstTile& dst2,
const int i_dst1,
80 const int i_dst2,
const int N,
81 const amrex::Real total_weight)
const noexcept
83 for (
int n = 0; n < N; ++n){
84 #if defined(WARPX_DIM_1D_Z)
86 amrex::Abort(
"SchwingerTransformFunc not implemented in 1D");
87 #elif defined(WARPX_DIM_3D)
90 #elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real getSchwingerProductionNumber(const amrex::Real dV, const amrex::Real dt, const amrex::ParticleReal Ex, const amrex::ParticleReal Ey, const amrex::ParticleReal Ez, const amrex::ParticleReal Bx, const amrex::ParticleReal By, const amrex::ParticleReal Bz, const amrex::ParticleReal PoissonToGaussianThreshold, amrex::RandomEngine const &engine)
Definition: SchwingerProcessWrapper.H:41
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void ignore_unused(const Ts &...)
void Abort(const std::string &msg)
i
Definition: check_interp_points_and_weights.py:174
Definition: QEDSchwingerProcess.H:19
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real operator()(const FABs &src_FABs, const int i, const int j, const int k, amrex::RandomEngine const &engine) const noexcept
Definition: QEDSchwingerProcess.H:37
const amrex::Real m_dt
Definition: QEDSchwingerProcess.H:22
const amrex::Real m_dV
Definition: QEDSchwingerProcess.H:21
const int m_threshold_poisson_gaussian
Definition: QEDSchwingerProcess.H:20