15 #ifndef HIPACE_GETANDSETPOSITION_H_
16 #define HIPACE_GETANDSETPOSITION_H_
29 template <
class T_ParTile>
32 using RType = amrex::ParticleReal;
33 using PTDType =
typename T_ParTile::ParticleTileDataType;
45 m_plo = geom.ProbLoArray();
46 m_phi = geom.ProbHiArray();
47 auto is_per = geom.isPeriodicArray();
62 using namespace amrex::literals;
72 const bool invalid = (shifted && !
m_is_per);
75 p.id().make_invalid();
92 using namespace amrex::literals;
103 const bool invalid = (shifted && !
m_is_per);
106 p.id().make_invalid();
#define AMREX_ALWAYS_ASSERT(EX)
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool enforcePeriodic(P &p, amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > const &plo, amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > const &phi, amrex::GpuArray< amrex::ParticleReal, AMREX_SPACEDIM > const &rlo, amrex::GpuArray< amrex::ParticleReal, AMREX_SPACEDIM > const &rhi, amrex::GpuArray< int, AMREX_SPACEDIM > const &is_per) noexcept
@ w
Definition: BeamParticleContainer.H:27
Functor that can be used to apply the boundary conditions to the macroparticles inside a ParallelFor ...
Definition: GetAndSetPosition.H:31
amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > m_plo
Definition: GetAndSetPosition.H:35
amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > m_phi
Definition: GetAndSetPosition.H:36
EnforceBCandSetPos(const amrex::Geometry &geom) noexcept
Definition: GetAndSetPosition.H:42
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool operator()(const PTDType &ptd, const int ip, RType &x, RType &y) const noexcept
set position and enforces the boundary condition to the plasma particle at index ip and returns if th...
Definition: GetAndSetPosition.H:60
typename T_ParTile::ParticleTileDataType PTDType
Definition: GetAndSetPosition.H:33
int m_is_per
Definition: GetAndSetPosition.H:37
amrex::ParticleReal RType
Definition: GetAndSetPosition.H:32
@ w
Definition: PlasmaParticleContainer.H:25