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

Transform functor to Lorentz-transform particles and obtain lab-frame data. More...

#include <BackTransformParticleFunctor.H>

Public Types

using TmpParticles = WarpXParticleContainer::TmpParticles
 

Public Member Functions

 LorentzTransformParticles (const WarpXParIter &a_pti, TmpParticles &tmp_particle_data, amrex::Real t_boost, amrex::Real dt, amrex::Real t_lab, int a_offset=0)
 Constructor of the LorentzTransformParticles functor. More...
 
template<typename DstData , typename SrcData >
AMREX_GPU_HOST_DEVICE void operator() (const DstData &dst, const SrcData &src, int i_src, int i_dst) const noexcept
 Functor call. This method computes the Lorentz-transform for particle attributes to obtain the lab-frame snapshot data. More...
 

Public Attributes

GetParticlePosition< PIdxm_get_position
 
amrex::ParticleReal *AMREX_RESTRICT m_xpold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT m_ypold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT m_zpold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT m_uxpold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT m_uypold = nullptr
 
amrex::ParticleReal *AMREX_RESTRICT m_uzpold = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_uxpnew = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_uypnew = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_uzpnew = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_wpnew = nullptr
 
amrex::Real m_gammaboost
 
amrex::Real m_betaboost
 
amrex::Real m_Phys_c
 
amrex::Real m_uzfrm
 
amrex::Real m_inv_c2
 
amrex::Real m_t_boost
 
amrex::Real m_dt
 
amrex::Real m_t_lab
 

Detailed Description

Transform functor to Lorentz-transform particles and obtain lab-frame data.

Member Typedef Documentation

◆ TmpParticles

Constructor & Destructor Documentation

◆ LorentzTransformParticles()

LorentzTransformParticles::LorentzTransformParticles ( const WarpXParIter a_pti,
TmpParticles tmp_particle_data,
amrex::Real  t_boost,
amrex::Real  dt,
amrex::Real  t_lab,
int  a_offset = 0 
)

Constructor of the LorentzTransformParticles functor.

Parameters
[in]a_ptiWarpX particle iterator
[in]tmp_particle_datatemporary particle data
[in]t_boosttime in boosted frame
[in]dttimestep in boosted-frame
[in]t_labtime in lab-frame
[in]a_offsetindex offset for particles to be transformed

Member Function Documentation

◆ operator()()

template<typename DstData , typename SrcData >
AMREX_GPU_HOST_DEVICE void LorentzTransformParticles::operator() ( const DstData &  dst,
const SrcData &  src,
int  i_src,
int  i_dst 
) const
inlinenoexcept

Functor call. This method computes the Lorentz-transform for particle attributes to obtain the lab-frame snapshot data.

Parameters
[out]dstDstData particle tile data that stores the transformed particle data
[in]srcSrcData particle tile data that is selected for transformation
[in]i_srcparticle index of the source particles
[in]i_dstparticle index of the target particles (transformed data).

Member Data Documentation

◆ m_betaboost

amrex::Real LorentzTransformParticles::m_betaboost

◆ m_dt

amrex::Real LorentzTransformParticles::m_dt

◆ m_gammaboost

amrex::Real LorentzTransformParticles::m_gammaboost

◆ m_get_position

GetParticlePosition<PIdx> LorentzTransformParticles::m_get_position

◆ m_inv_c2

amrex::Real LorentzTransformParticles::m_inv_c2

◆ m_Phys_c

amrex::Real LorentzTransformParticles::m_Phys_c

◆ m_t_boost

amrex::Real LorentzTransformParticles::m_t_boost

◆ m_t_lab

amrex::Real LorentzTransformParticles::m_t_lab

◆ m_uxpnew

const amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_uxpnew = nullptr

◆ m_uxpold

amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_uxpold = nullptr

◆ m_uypnew

const amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_uypnew = nullptr

◆ m_uypold

amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_uypold = nullptr

◆ m_uzfrm

amrex::Real LorentzTransformParticles::m_uzfrm

◆ m_uzpnew

const amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_uzpnew = nullptr

◆ m_uzpold

amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_uzpold = nullptr

◆ m_wpnew

const amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_wpnew = nullptr

◆ m_xpold

amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_xpold = nullptr

◆ m_ypold

amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_ypold = nullptr

◆ m_zpold

amrex::ParticleReal* AMREX_RESTRICT LorentzTransformParticles::m_zpold = nullptr

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