ImpactX
Public Types | Public Member Functions | Static Public Attributes | Private Attributes | List of all members
impactx::ConstF Struct Reference

#include <ConstF.H>

Public Types

using PType = ImpactXParticleContainer::ParticleType
 

Public Member Functions

 ConstF (amrex::ParticleReal const ds, amrex::ParticleReal const kx, amrex::ParticleReal const ky, amrex::ParticleReal const kt, int const nslice)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (PType &AMREX_RESTRICT p, amrex::ParticleReal &AMREX_RESTRICT px, amrex::ParticleReal &AMREX_RESTRICT py, amrex::ParticleReal &AMREX_RESTRICT pt, RefPart const &refpart) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (RefPart &AMREX_RESTRICT refpart) const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int nslice () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal ds () const
 

Static Public Attributes

static constexpr auto name = "ConstF"
 

Private Attributes

amrex::ParticleReal m_ds
 
amrex::ParticleReal m_kx
 segment length in m More...
 
amrex::ParticleReal m_ky
 focusing x strength in 1/m More...
 
amrex::ParticleReal m_kt
 focusing y strength in 1/m More...
 
int m_nslice
 focusing t strength in 1/m More...
 

Member Typedef Documentation

◆ PType

Constructor & Destructor Documentation

◆ ConstF()

impactx::ConstF::ConstF ( amrex::ParticleReal const  ds,
amrex::ParticleReal const  kx,
amrex::ParticleReal const  ky,
amrex::ParticleReal const  kt,
int const  nslice 
)
inline

A linear Constant Focusing element

Parameters
dsSegment length in m.
kxFocusing strength for x in 1/m.
kyFocusing strength for y in 1/m.
ktFocusing strength for t in 1/m.
nslicenumber of slices used for the application of space charge

Member Function Documentation

◆ ds()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::ConstF::ds ( ) const
inline

Return the segment length

Returns
value in meters

◆ nslice()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int impactx::ConstF::nslice ( ) const
inline

Number of slices used for the application of space charge

Returns
positive integer

◆ operator()() [1/2]

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::ConstF::operator() ( PType &AMREX_RESTRICT  p,
amrex::ParticleReal &AMREX_RESTRICT  px,
amrex::ParticleReal &AMREX_RESTRICT  py,
amrex::ParticleReal &AMREX_RESTRICT  pt,
RefPart const &  refpart 
) const
inline

This is a constf functor, so that a variable of this type can be used like a constf function.

Parameters
pParticle AoS data for positions and cpu/id
pxparticle momentum in x
pyparticle momentum in y
ptparticle momentum in t
refpartreference particle

◆ operator()() [2/2]

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void impactx::ConstF::operator() ( RefPart &AMREX_RESTRICT  refpart) const
inline

This pushes the reference particle.

Parameters
[in,out]refpartreference particle

Member Data Documentation

◆ m_ds

amrex::ParticleReal impactx::ConstF::m_ds
private

◆ m_kt

amrex::ParticleReal impactx::ConstF::m_kt
private

focusing y strength in 1/m

◆ m_kx

amrex::ParticleReal impactx::ConstF::m_kx
private

segment length in m

◆ m_ky

amrex::ParticleReal impactx::ConstF::m_ky
private

focusing x strength in 1/m

◆ m_nslice

int impactx::ConstF::m_nslice
private

focusing t strength in 1/m

◆ name

constexpr auto impactx::ConstF::name = "ConstF"
static

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