1 #ifndef WARPX_PARTICLES_GATHER_SCALEFIELDS_H_ 2 #define WARPX_PARTICLES_GATHER_SCALEFIELDS_H_ 6 #include <AMReX_REAL.H> 25 ScaleFields (
bool do_scale, amrex::Real dt, amrex::Real z_plane_previous,
26 amrex::Real vz_ave_boosted, amrex::Real v_boost) noexcept
31 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
34 amrex::ParticleReal zp,
35 amrex::ParticleReal& Exp,
36 amrex::ParticleReal& Eyp,
37 amrex::ParticleReal& Ezp,
38 amrex::ParticleReal& Bxp,
39 amrex::ParticleReal& Byp,
40 amrex::ParticleReal& Bzp)
const noexcept
44 if (m_do_scale != 0.0_rt)
return;
50 const amrex::Real dtscale = m_dt - (m_z_plane_previous - zp)/(m_vz_ave_boosted + m_v_boost);
51 if (0._rt < dtscale && dtscale < m_dt)
Functor that scales E and B by a factor before pushing the particles. This is used for rigid injectio...
Definition: ScaleFields.H:13
bool m_do_scale
Definition: ScaleFields.H:15
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator()(amrex::ParticleReal, amrex::ParticleReal, amrex::ParticleReal zp, amrex::ParticleReal &Exp, amrex::ParticleReal &Eyp, amrex::ParticleReal &Ezp, amrex::ParticleReal &Bxp, amrex::ParticleReal &Byp, amrex::ParticleReal &Bzp) const noexcept
Definition: ScaleFields.H:32
ScaleFields(bool do_scale, amrex::Real dt, amrex::Real z_plane_previous, amrex::Real vz_ave_boosted, amrex::Real v_boost) noexcept
Definition: ScaleFields.H:25
ScaleFields(bool do_scale) noexcept
Definition: ScaleFields.H:21
amrex::Real m_dt
Definition: ScaleFields.H:16
amrex::Real m_vz_ave_boosted
Definition: ScaleFields.H:18
amrex::Real m_z_plane_previous
Definition: ScaleFields.H:17
amrex::Real m_v_boost
Definition: ScaleFields.H:19