WarpX
|
The lattice element finder class that can be trivially copied to the device. This only has simple data and pointers. More...
#include <LatticeElementFinder.H>
Public Member Functions | |
void | InitLatticeElementFinderDevice (WarpXParIter const &a_pti, int a_offset, AcceleratorLattice const &accelerator_lattice, LatticeElementFinder const &h_finder) |
Initialize the data needed to do the lookups. More... | |
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | operator() (const long i, amrex::ParticleReal &field_Ex, amrex::ParticleReal &field_Ey, amrex::ParticleReal &field_Ez, amrex::ParticleReal &field_Bx, amrex::ParticleReal &field_By, amrex::ParticleReal &field_Bz) const noexcept |
Gather the field for the particle from the lattice elements. More... | |
Public Attributes | |
amrex::Real | m_zmin |
amrex::Real | m_dz |
amrex::Real | m_dt |
amrex::ParticleReal | m_gamma_boost |
amrex::ParticleReal | m_uz_boost |
amrex::Real | m_time |
GetParticlePosition< PIdx > | m_get_position |
const amrex::ParticleReal *AMREX_RESTRICT | m_ux = nullptr |
const amrex::ParticleReal *AMREX_RESTRICT | m_uy = nullptr |
const amrex::ParticleReal *AMREX_RESTRICT | m_uz = nullptr |
HardEdgedQuadrupoleDevice | d_quad |
HardEdgedPlasmaLensDevice | d_plasmalens |
int const * | d_quad_indices_arr = nullptr |
int const * | d_plasmalens_indices_arr = nullptr |
The lattice element finder class that can be trivially copied to the device. This only has simple data and pointers.
void LatticeElementFinderDevice::InitLatticeElementFinderDevice | ( | WarpXParIter const & | a_pti, |
int | a_offset, | ||
AcceleratorLattice const & | accelerator_lattice, | ||
LatticeElementFinder const & | h_finder | ||
) |
Initialize the data needed to do the lookups.
[in] | a_pti | specifies the grid where the finder is defined |
[in] | a_offset | particle index offset needed to access particle info |
[in] | accelerator_lattice | a reference to the accelerator lattice at the refinement level |
[in] | h_finder | The host level instance of the element finder that this is associated with |
|
inlinenoexcept |
Gather the field for the particle from the lattice elements.
[in] | i | the particle index |
[out] | field_Ex,field_Ey,field_Ez,field_Bx,field_By,field_Bz | the gathered E and B fields |
HardEdgedPlasmaLensDevice LatticeElementFinderDevice::d_plasmalens |
int const* LatticeElementFinderDevice::d_plasmalens_indices_arr = nullptr |
HardEdgedQuadrupoleDevice LatticeElementFinderDevice::d_quad |
int const* LatticeElementFinderDevice::d_quad_indices_arr = nullptr |
amrex::Real LatticeElementFinderDevice::m_dt |
amrex::Real LatticeElementFinderDevice::m_dz |
amrex::ParticleReal LatticeElementFinderDevice::m_gamma_boost |
GetParticlePosition<PIdx> LatticeElementFinderDevice::m_get_position |
amrex::Real LatticeElementFinderDevice::m_time |
const amrex::ParticleReal* AMREX_RESTRICT LatticeElementFinderDevice::m_ux = nullptr |
const amrex::ParticleReal* AMREX_RESTRICT LatticeElementFinderDevice::m_uy = nullptr |
const amrex::ParticleReal* AMREX_RESTRICT LatticeElementFinderDevice::m_uz = nullptr |
amrex::ParticleReal LatticeElementFinderDevice::m_uz_boost |
amrex::Real LatticeElementFinderDevice::m_zmin |