WarpX
Public Types | Public Member Functions | Public Attributes | List of all members
CopyParticleAttribs Struct Reference

Functor that creates copies of the current particle positions and momenta for later use. This is needed by the back-transformed diagnostics. More...

#include <CopyParticleAttribs.H>

Public Types

using TmpParticles = WarpXParticleContainer::TmpParticles
 

Public Member Functions

 CopyParticleAttribs ()=default
 
 CopyParticleAttribs (const WarpXParIter &a_pti, TmpParticles &tmp_particle_data, long a_offset=0) noexcept
 Construct a new functor. More...
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (const long i) const noexcept
 copy the position and momentum of particle i to the temporary data holder More...
 

Public Attributes

GetParticlePosition< PIdxm_get_position
 
const amrex::ParticleReal *AMREX_RESTRICT uxp = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT uyp = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT uzp = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT xpold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT ypold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT zpold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT uxpold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT uypold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT uzpold = nullptr
 

Detailed Description

Functor that creates copies of the current particle positions and momenta for later use. This is needed by the back-transformed diagnostics.

Member Typedef Documentation

◆ TmpParticles

Constructor & Destructor Documentation

◆ CopyParticleAttribs() [1/2]

CopyParticleAttribs::CopyParticleAttribs ( )
default

◆ CopyParticleAttribs() [2/2]

CopyParticleAttribs::CopyParticleAttribs ( const WarpXParIter a_pti,
TmpParticles tmp_particle_data,
long  a_offset = 0 
)
inlinenoexcept

Construct a new functor.

Parameters
a_ptiiterator to the tile containing the macroparticles
tmp_particle_dataholder for the temporary particle data
a_offsetoffset to apply when reading / writing particle data This is needed because when we use field gather buffers we don't always start at the particle with index 0.

Member Function Documentation

◆ operator()()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void CopyParticleAttribs::operator() ( const long  i) const
inlinenoexcept

copy the position and momentum of particle i to the temporary data holder

Member Data Documentation

◆ m_get_position

GetParticlePosition<PIdx> CopyParticleAttribs::m_get_position

◆ uxp

const amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::uxp = nullptr

◆ uxpold

amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::uxpold = nullptr

◆ uyp

const amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::uyp = nullptr

◆ uypold

amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::uypold = nullptr

◆ uzp

const amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::uzp = nullptr

◆ uzpold

amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::uzpold = nullptr

◆ xpold

amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::xpold = nullptr

◆ ypold

amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::ypold = nullptr

◆ zpold

amrex::ParticleReal* AMREX_RESTRICT CopyParticleAttribs::zpold = nullptr

The documentation for this struct was generated from the following file: