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

Functor class that assigns external field values (E and B) to particles. More...

#include <GetExternalFields.H>

Public Types

enum  ExternalFieldInitType { None , Parser , RepeatedPlasmaLens , Unknown }
 

Public Member Functions

 GetExternalEBField ()=default
 
 GetExternalEBField (const WarpXParIter &a_pti, long a_offset=0) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool isNoOp () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (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
 

Public Attributes

ExternalFieldInitType m_Etype
 
ExternalFieldInitType m_Btype
 
amrex::ParticleReal m_gamma_boost
 
amrex::ParticleReal m_uz_boost
 
amrex::ParserExecutor< 4 > m_Exfield_partparser
 
amrex::ParserExecutor< 4 > m_Eyfield_partparser
 
amrex::ParserExecutor< 4 > m_Ezfield_partparser
 
amrex::ParserExecutor< 4 > m_Bxfield_partparser
 
amrex::ParserExecutor< 4 > m_Byfield_partparser
 
amrex::ParserExecutor< 4 > m_Bzfield_partparser
 
GetParticlePosition< PIdxm_get_position
 
amrex::Real m_time
 
amrex::ParticleReal m_repeated_plasma_lens_period
 
const amrex::ParticleReal *AMREX_RESTRICT m_repeated_plasma_lens_starts = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_repeated_plasma_lens_lengths = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_repeated_plasma_lens_strengths_E = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_repeated_plasma_lens_strengths_B = nullptr
 
int m_n_lenses
 
amrex::Real m_dt
 
const amrex::ParticleReal *AMREX_RESTRICT m_ux = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_uy = nullptr
 
const amrex::ParticleReal *AMREX_RESTRICT m_uz = nullptr
 
std::optional< LatticeElementFinderDeviced_lattice_element_finder
 

Detailed Description

Functor class that assigns external field values (E and B) to particles.

Member Enumeration Documentation

◆ ExternalFieldInitType

Enumerator
None 
Parser 
RepeatedPlasmaLens 
Unknown 

Constructor & Destructor Documentation

◆ GetExternalEBField() [1/2]

GetExternalEBField::GetExternalEBField ( )
default

◆ GetExternalEBField() [2/2]

GetExternalEBField::GetExternalEBField ( const WarpXParIter a_pti,
long  a_offset = 0 
)
noexcept

Member Function Documentation

◆ isNoOp()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool GetExternalEBField::isNoOp ( ) const
inline

◆ operator()()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void GetExternalEBField::operator() ( 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
inlinenoexcept

Member Data Documentation

◆ d_lattice_element_finder

std::optional<LatticeElementFinderDevice> GetExternalEBField::d_lattice_element_finder

◆ m_Btype

ExternalFieldInitType GetExternalEBField::m_Btype

◆ m_Bxfield_partparser

amrex::ParserExecutor<4> GetExternalEBField::m_Bxfield_partparser

◆ m_Byfield_partparser

amrex::ParserExecutor<4> GetExternalEBField::m_Byfield_partparser

◆ m_Bzfield_partparser

amrex::ParserExecutor<4> GetExternalEBField::m_Bzfield_partparser

◆ m_dt

amrex::Real GetExternalEBField::m_dt

◆ m_Etype

ExternalFieldInitType GetExternalEBField::m_Etype

◆ m_Exfield_partparser

amrex::ParserExecutor<4> GetExternalEBField::m_Exfield_partparser

◆ m_Eyfield_partparser

amrex::ParserExecutor<4> GetExternalEBField::m_Eyfield_partparser

◆ m_Ezfield_partparser

amrex::ParserExecutor<4> GetExternalEBField::m_Ezfield_partparser

◆ m_gamma_boost

amrex::ParticleReal GetExternalEBField::m_gamma_boost

◆ m_get_position

GetParticlePosition<PIdx> GetExternalEBField::m_get_position

◆ m_n_lenses

int GetExternalEBField::m_n_lenses

◆ m_repeated_plasma_lens_lengths

const amrex::ParticleReal* AMREX_RESTRICT GetExternalEBField::m_repeated_plasma_lens_lengths = nullptr

◆ m_repeated_plasma_lens_period

amrex::ParticleReal GetExternalEBField::m_repeated_plasma_lens_period

◆ m_repeated_plasma_lens_starts

const amrex::ParticleReal* AMREX_RESTRICT GetExternalEBField::m_repeated_plasma_lens_starts = nullptr

◆ m_repeated_plasma_lens_strengths_B

const amrex::ParticleReal* AMREX_RESTRICT GetExternalEBField::m_repeated_plasma_lens_strengths_B = nullptr

◆ m_repeated_plasma_lens_strengths_E

const amrex::ParticleReal* AMREX_RESTRICT GetExternalEBField::m_repeated_plasma_lens_strengths_E = nullptr

◆ m_time

amrex::Real GetExternalEBField::m_time

◆ m_ux

const amrex::ParticleReal* AMREX_RESTRICT GetExternalEBField::m_ux = nullptr

◆ m_uy

const amrex::ParticleReal* AMREX_RESTRICT GetExternalEBField::m_uy = nullptr

◆ m_uz

const amrex::ParticleReal* AMREX_RESTRICT GetExternalEBField::m_uz = nullptr

◆ m_uz_boost

amrex::ParticleReal GetExternalEBField::m_uz_boost

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