|
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, const amrex::Vector< amrex::Real > &dts) |
| Initialize the data needed to do the lookups. | |
| 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. | |
Public Attributes | |
| bool | m_initialized = false |
| 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, | ||
| const amrex::Vector< amrex::Real > & | dts ) |
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 |
| [in] | dts | vector containing the timestep sizes at all refinement levels |
|
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 |
| bool LatticeElementFinderDevice::m_initialized = false |
| 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 |