ARTEMIS
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PhysicalParticleContainer Class Reference

#include <PhysicalParticleContainer.H>

Inheritance diagram for PhysicalParticleContainer:
WarpXParticleContainer NamedComponentParticleContainer< amrex::DefaultAllocator > amrex::ParticleContainer_impl< typename T_ParticleType, int T_NArrayReal, int T_NArrayInt, template< class > class Allocator, class T_CellAssignor > amrex::ParticleContainerBase PhotonParticleContainer RigidInjectedParticleContainer

Public Member Functions

 PhysicalParticleContainer (amrex::AmrCore *amr_core, int ispecies, const std::string &name)
 
 PhysicalParticleContainer (amrex::AmrCore *amr_core)
 
void BackwardCompatibility ()
 
virtual ~PhysicalParticleContainer ()
 
virtual void InitData () override
 
virtual void ReadHeader (std::istream &is) override
 
virtual void WriteHeader (std::ostream &os) const override
 
virtual void InitIonizationModule () override
 
virtual void Evolve (int lev, const amrex::MultiFab &Ex, const amrex::MultiFab &Ey, const amrex::MultiFab &Ez, const amrex::MultiFab &Bx, const amrex::MultiFab &By, const amrex::MultiFab &Bz, amrex::MultiFab &jx, amrex::MultiFab &jy, amrex::MultiFab &jz, amrex::MultiFab *cjx, amrex::MultiFab *cjy, amrex::MultiFab *cjz, amrex::MultiFab *rho, amrex::MultiFab *crho, const amrex::MultiFab *cEx, const amrex::MultiFab *cEy, const amrex::MultiFab *cEz, const amrex::MultiFab *cBx, const amrex::MultiFab *cBy, const amrex::MultiFab *cBz, amrex::Real t, amrex::Real dt, DtType a_dt_type=DtType::Full, bool skip_deposition=false) override
 Evolve is the central function PhysicalParticleContainer that advances plasma particles for a time dt (typically one timestep). More...
 
virtual void PushPX (WarpXParIter &pti, amrex::FArrayBox const *exfab, amrex::FArrayBox const *eyfab, amrex::FArrayBox const *ezfab, amrex::FArrayBox const *bxfab, amrex::FArrayBox const *byfab, amrex::FArrayBox const *bzfab, const amrex::IntVect ngEB, const int, const long offset, const long np_to_push, int lev, int gather_lev, amrex::Real dt, ScaleFields scaleFields, DtType a_dt_type=DtType::Full)
 
virtual void PushP (int lev, amrex::Real dt, const amrex::MultiFab &Ex, const amrex::MultiFab &Ey, const amrex::MultiFab &Ez, const amrex::MultiFab &Bx, const amrex::MultiFab &By, const amrex::MultiFab &Bz) override
 
void PartitionParticlesInBuffers (long &nfine_current, long &nfine_gather, long const np, WarpXParIter &pti, int const lev, amrex::iMultiFab const *current_masks, amrex::iMultiFab const *gather_masks)
 
virtual void PostRestart () final
 
void SplitParticles (int lev)
 
IonizationFilterFunc getIonizationFunc (const WarpXParIter &pti, int lev, amrex::IntVect ngEB, const amrex::FArrayBox &Ex, const amrex::FArrayBox &Ey, const amrex::FArrayBox &Ez, const amrex::FArrayBox &Bx, const amrex::FArrayBox &By, const amrex::FArrayBox &Bz)
 
virtual void AddParticles (int lev)
 
void AddPlasma (int lev, amrex::RealBox part_realbox=amrex::RealBox())
 
void AddPlasmaFlux (amrex::Real dt)
 
void MapParticletoBoostedFrame (amrex::ParticleReal &x, amrex::ParticleReal &y, amrex::ParticleReal &z, amrex::ParticleReal &ux, amrex::ParticleReal &uy, amrex::ParticleReal &uz)
 
void AddGaussianBeam (const amrex::Real x_m, const amrex::Real y_m, const amrex::Real z_m, const amrex::Real x_rms, const amrex::Real y_rms, const amrex::Real z_rms, const amrex::Real x_cut, const amrex::Real y_cut, const amrex::Real z_cut, const amrex::Real q_tot, long npart, const int do_symmetrize, const int symmetrization_order)
 
void AddPlasmaFromFile (amrex::ParticleReal q_tot, amrex::ParticleReal z_shift)
 
void CheckAndAddParticle (amrex::ParticleReal x, amrex::ParticleReal y, amrex::ParticleReal z, amrex::ParticleReal ux, amrex::ParticleReal uy, amrex::ParticleReal uz, amrex::ParticleReal weight, amrex::Gpu::HostVector< amrex::ParticleReal > &particle_x, amrex::Gpu::HostVector< amrex::ParticleReal > &particle_y, amrex::Gpu::HostVector< amrex::ParticleReal > &particle_z, amrex::Gpu::HostVector< amrex::ParticleReal > &particle_ux, amrex::Gpu::HostVector< amrex::ParticleReal > &particle_uy, amrex::Gpu::HostVector< amrex::ParticleReal > &particle_uz, amrex::Gpu::HostVector< amrex::ParticleReal > &particle_w)
 
virtual void DefaultInitializeRuntimeAttributes (amrex::ParticleTile< amrex::Particle< NStructReal, NStructInt >, NArrayReal, NArrayInt, amrex::PinnedArenaAllocator > &pinned_tile, const int n_external_attr_real, const int n_external_attr_int, const amrex::RandomEngine &engine) override final
 Default initialize runtime attributes in a tile. This routine does not initialize the first n_external_attr_real real attributes and the first n_external_attr_int integer attributes, which have been in principle externally set elsewhere. More...
 
void applyNCIFilter (int lev, const amrex::Box &box, amrex::Elixir &exeli, amrex::Elixir &eyeli, amrex::Elixir &ezeli, amrex::Elixir &bxeli, amrex::Elixir &byeli, amrex::Elixir &bzeli, amrex::FArrayBox &filtered_Ex, amrex::FArrayBox &filtered_Ey, amrex::FArrayBox &filtered_Ez, amrex::FArrayBox &filtered_Bx, amrex::FArrayBox &filtered_By, amrex::FArrayBox &filtered_Bz, const amrex::FArrayBox &Ex, const amrex::FArrayBox &Ey, const amrex::FArrayBox &Ez, const amrex::FArrayBox &Bx, const amrex::FArrayBox &By, const amrex::FArrayBox &Bz, amrex::FArrayBox const *&exfab, amrex::FArrayBox const *&eyfab, amrex::FArrayBox const *&ezfab, amrex::FArrayBox const *&bxfab, amrex::FArrayBox const *&byfab, amrex::FArrayBox const *&bzfab)
 Apply NCI Godfrey filter to all components of E and B before gather. More...
 
void resample (const int timestep) override final
 This function determines if resampling should be done for the current species, and if so, performs the resampling. More...
 
bool has_quantum_sync () const override
 
bool has_breit_wheeler () const override
 
void set_breit_wheeler_engine_ptr (std::shared_ptr< BreitWheelerEngine > ptr) override
 
void set_quantum_sync_engine_ptr (std::shared_ptr< QuantumSynchrotronEngine > ptr) override
 
PhotonEmissionFilterFunc getPhotonEmissionFilterFunc ()
 
PairGenerationFilterFunc getPairGenerationFilterFunc ()
 
- Public Member Functions inherited from WarpXParticleContainer
 WarpXParticleContainer (amrex::AmrCore *amr_core, int ispecies)
 
virtual ~WarpXParticleContainer ()
 
void AllocData ()
 
void PushX (amrex::Real dt)
 
void PushX (int lev, amrex::Real dt)
 
void DepositCurrent (amrex::Vector< std::array< std::unique_ptr< amrex::MultiFab >, 3 > > &J, const amrex::Real dt, const amrex::Real relative_time)
 Deposit current density. More...
 
void DepositCharge (amrex::Vector< std::unique_ptr< amrex::MultiFab > > &rho, const bool local=false, const bool reset=false, const bool apply_boundary_and_scale_volume=false, const bool interpolate_across_levels=true, const int icomp=0)
 Deposit charge density. More...
 
std::unique_ptr< amrex::MultiFabGetChargeDensity (int lev, bool local=false)
 
virtual void DepositCharge (WarpXParIter &pti, RealVector const &wp, const int *const ion_lev, amrex::MultiFab *rho, const int icomp, const long offset, const long np_to_depose, const int thread_num, const int lev, const int depos_lev)
 
virtual void DepositCurrent (WarpXParIter &pti, RealVector const &wp, RealVector const &uxp, RealVector const &uyp, RealVector const &uzp, int const *const ion_lev, amrex::MultiFab *const jx, amrex::MultiFab *const jy, amrex::MultiFab *const jz, long const offset, long const np_to_depose, int const thread_num, int const lev, int const depos_lev, amrex::Real const dt, amrex::Real const relative_time)
 
virtual void UpdateContinuousInjectionPosition (amrex::Real)
 
amrex::ParticleReal sumParticleCharge (bool local=false)
 
std::array< amrex::ParticleReal, 3 > meanParticleVelocity (bool local=false)
 
amrex::ParticleReal maxParticleVelocity (bool local=false)
 
void AddNParticles (int lev, int n, const amrex::ParticleReal *x, const amrex::ParticleReal *y, const amrex::ParticleReal *z, const amrex::ParticleReal *ux, const amrex::ParticleReal *uy, const amrex::ParticleReal *uz, const int nattr_real, const amrex::ParticleReal *attr_real, const int nattr_int, const int *attr_int, int uniqueparticles, amrex::Long id=-1)
 Adds n particles to the simulation. More...
 
void ApplyBoundaryConditions ()
 Apply particle BC. More...
 
void SetDoBackTransformedParticles (const bool do_back_transformed_particles)
 
amrex::ParticleReal getCharge () const
 
amrex::ParticleReal getMass () const
 
int DoFieldIonization () const
 
int DoQED () const
 
template<PhysicalSpecies PhysSpec>
bool AmIA () const noexcept
 
std::string getSpeciesTypeName () const
 This function returns a string containing the name of the species type. More...
 
void defineAllParticleTiles () noexcept
 
TmpParticles getTmpParticleData () const noexcept
 
- Public Member Functions inherited from NamedComponentParticleContainer< amrex::DefaultAllocator >
 NamedComponentParticleContainer ()
 
 NamedComponentParticleContainer (amrex::AmrParGDB *amr_pgdb)
 
 NamedComponentParticleContainer (amrex::ParticleContainer< 0, 0, PIdx::nattribs, 0, amrex::DefaultAllocator > &&pc, std::map< std::string, int > p_comps, std::map< std::string, int > p_icomps, std::map< std::string, int > p_rcomps, std::map< std::string, int > p_ricomps)
 
 NamedComponentParticleContainer (NamedComponentParticleContainer &&)=default
 
virtual ~NamedComponentParticleContainer ()=default
 
NamedComponentParticleContaineroperator= (NamedComponentParticleContainer &&)=default
 
NamedComponentParticleContainer< NewAllocator > make_alike () const
 
void AddRealComp (const std::string &name,[[maybe_unused]] int communicate=1)
 
void AddRealComp (std::string const &name, int communicate=1)
 
void AddRealComp (int communicate=1)
 
void AddIntComp (const std::string &name,[[maybe_unused]] int communicate=1)
 
void AddIntComp (std::string const &name, int communicate=1)
 
void AddIntComp (int communicate=1)
 
std::map< std::string, int > getParticleComps () const noexcept
 
std::map< std::string, int > getParticleiComps () const noexcept
 
std::map< std::string, int > getParticleRuntimeComps () const noexcept
 
std::map< std::string, int > getParticleRuntimeiComps () const noexcept
 
int NumRealComps () const
 
int NumIntComps () const
 
- Public Member Functions inherited from amrex::ParticleContainer_impl< typename T_ParticleType, int T_NArrayReal, int T_NArrayInt, template< class > class Allocator, class T_CellAssignor >
 ParticleContainer_impl ()
 
 ParticleContainer_impl (ParGDBBase *gdb)
 
 ParticleContainer_impl (const Geometry &geom, const DistributionMapping &dmap, const BoxArray &ba)
 
 ParticleContainer_impl (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< int > &rr)
 
 ParticleContainer_impl (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< IntVect > &rr)
 
 ~ParticleContainer_impl () override=default
 
 ParticleContainer_impl (const ParticleContainer_impl &)=delete
 
ParticleContainer_imploperator= (const ParticleContainer_impl &)=delete
 
 ParticleContainer_impl (ParticleContainer_impl &&) noexcept=default
 
ParticleContainer_imploperator= (ParticleContainer_impl &&) noexcept=default
 
void Define (ParGDBBase *gdb)
 
void Define (const Geometry &geom, const DistributionMapping &dmap, const BoxArray &ba)
 
void Define (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< int > &rr)
 
void Define (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< IntVect > &rr)
 
int numLocalTilesAtLevel (int lev) const
 
void reserveData () override
 
void resizeData () override
 
void InitFromAsciiFile (const std::string &file, int extradata, const IntVect *Nrep=nullptr)
 
void InitFromBinaryFile (const std::string &file, int extradata)
 
void InitFromBinaryMetaFile (const std::string &file, int extradata)
 
void InitRandom (Long icount, ULong iseed, const ParticleInitData &pdata, bool serialize=false, RealBox bx=RealBox())
 
void InitRandomPerBox (Long icount, ULong iseed, const ParticleInitData &pdata)
 
void InitOnePerCell (Real x_off, Real y_off, Real z_off, const ParticleInitData &pdata)
 
void InitNRandomPerCell (int n_per_cell, const ParticleInitData &pdata)
 
void Increment (MultiFab &mf, int level)
 
Long IncrementWithTotal (MultiFab &mf, int level, bool local=false)
 
void Redistribute (int lev_min=0, int lev_max=-1, int nGrow=0, int local=0, bool remove_negative=true)
 
void ReorderParticles (int lev, const MFIter &mfi, const index_type *permutations)
 
void SortParticlesForDeposition (IntVect idx_type)
 
void SortParticlesByCell ()
 
void SortParticlesByBin (IntVect bin_size)
 
bool OK (int lev_min=0, int lev_max=-1, int nGrow=0) const
 
std::array< Long, 3 > ByteSpread () const
 
std::array< Long, 3 > PrintCapacity () const
 
void ShrinkToFit ()
 
Long NumberOfParticlesAtLevel (int level, bool only_valid=true, bool only_local=false) const
 
Vector< Long > NumberOfParticlesInGrid (int level, bool only_valid=true, bool only_local=false) const
 
Long TotalNumberOfParticles (bool only_valid=true, bool only_local=false) const
 
void RemoveParticlesAtLevel (int level)
 
void RemoveParticlesNotAtFinestLevel ()
 
void CreateVirtualParticles (int level, AoS &virts) const
 
void CreateGhostParticles (int level, int ngrow, AoS &ghosts) const
 
void AddParticlesAtLevel (AoS &particles, int level, int nGrow=0)
 
void CreateVirtualParticles (int level, ParticleTileType &virts) const
 
void CreateGhostParticles (int level, int ngrow, ParticleTileType &ghosts) const
 
void AddParticlesAtLevel (ParticleTileType &particles, int level, int nGrow=0)
 
void clearParticles ()
 
void copyParticles (const PCType &other, bool local=false)
 
void addParticles (const PCType &other, bool local=false)
 
void copyParticles (const PCType &other, F &&f, bool local=false)
 
void addParticles (const PCType &other, F const &f, bool local=false)
 
void WriteParticleRealData (void *data, size_t size, std::ostream &os) const
 
void ReadParticleRealData (void *data, size_t size, std::istream &is)
 
void Checkpoint (const std::string &dir, const std::string &name, const Vector< std::string > &real_comp_names=Vector< std::string >(), const Vector< std::string > &int_comp_names=Vector< std::string >()) const
 
void Checkpoint (const std::string &dir, const std::string &name, bool is_checkpoint, const Vector< std::string > &real_comp_names=Vector< std::string >(), const Vector< std::string > &int_comp_names=Vector< std::string >()) const
 
void Checkpoint (const std::string &dir, const std::string &name, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp, const Vector< std::string > &real_comp_names, const Vector< std::string > &int_comp_names) const
 
void WriteBinaryParticleData (const std::string &dir, const std::string &name, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp, const Vector< std::string > &real_comp_names, const Vector< std::string > &int_comp_names, F &&f, bool is_checkpoint=false) const
 
void CheckpointPre ()
 
void CheckpointPost ()
 
void Restart (const std::string &dir, const std::string &file)
 
void Restart (const std::string &dir, const std::string &file, bool is_checkpoint)
 
void WritePlotFile (const std::string &dir, const std::string &name) const
 
void WritePlotFile (const std::string &dir, const std::string &name, F &&f) const
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< std::string > &real_comp_names, const Vector< std::string > &int_comp_names) const
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< std::string > &real_comp_names, const Vector< std::string > &int_comp_names, F &&f) const
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< std::string > &real_comp_names) const
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< std::string > &real_comp_names, F &&f) const
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp) const
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp, F &&f) const
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp, const Vector< std::string > &real_comp_names, const Vector< std::string > &int_comp_names) const
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp, const Vector< std::string > &real_comp_names, const Vector< std::string > &int_comp_names, F &&f) const
 
void WritePlotFilePre ()
 
void WritePlotFilePost ()
 
void WriteAsciiFile (const std::string &file)
 
const Vector< ParticleLevel > & GetParticles () const
 
Vector< ParticleLevel > & GetParticles ()
 
const ParticleLevelGetParticles (int lev) const
 
ParticleLevelGetParticles (int lev)
 
const ParticleTileTypeParticlesAt (int lev, int grid, int tile) const
 
ParticleTileTypeParticlesAt (int lev, int grid, int tile)
 
const ParticleTileTypeParticlesAt (int lev, const Iterator &iter) const
 
ParticleTileTypeParticlesAt (int lev, const Iterator &iter)
 
ParticleTileTypeDefineAndReturnParticleTile (int lev, int grid, int tile)
 
ParticleTileTypeDefineAndReturnParticleTile (int lev, const Iterator &iter)
 
void AssignDensity (int rho_index, Vector< std::unique_ptr< MultiFab > > &mf_to_be_filled, int lev_min, int ncomp, int finest_level, int ngrow=2) const
 
void AssignCellDensitySingleLevel (int rho_index, MultiFab &mf, int level, int ncomp=1, int particle_lvl_offset=0) const
 
IntVect Index (const P &p, int lev) const
 
ParticleLocData Reset (ParticleType &prt, bool update, bool verbose=true, ParticleLocData pld=ParticleLocData()) const
 
bool PeriodicShift (P &p) const
 
void SetLevelDirectoriesCreated (bool tf)
 
bool GetLevelDirectoriesCreated () const
 
void SetUsePrePost (bool tf) const
 
bool GetUsePrePost () const
 
int GetMaxNextIDPrePost () const
 
Long GetNParticlesPrePost () const
 
void SetUseUnlink (bool tf) const
 
bool GetUseUnlink () const
 
void RedistributeCPU (int lev_min=0, int lev_max=-1, int nGrow=0, int local=0, bool remove_negative=true)
 
void RedistributeGPU (int lev_min=0, int lev_max=-1, int nGrow=0, int local=0, bool remove_negative=true)
 
Long superParticleSize () const
 
void AddRealComp (std::string const &name, int communicate=1)
 
void AddRealComp (int communicate=1)
 
void AddIntComp (std::string const &name, int communicate=1)
 
void AddIntComp (int communicate=1)
 
int NumRuntimeRealComps () const
 
int NumRuntimeIntComps () const
 
int NumRealComps () const
 
int NumIntComps () const
 
void ResizeRuntimeRealComp (int new_size, bool communicate)
 
void ResizeRuntimeIntComp (int new_size, bool communicate)
 
ContainerLike< NewAllocator > make_alike () const
 
void WriteParticles (int level, std::ofstream &ofs, int fnum, Vector< int > &which, Vector< int > &count, Vector< Long > &where, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp, const Vector< std::map< std::pair< int, int >, IntVector > > &particle_io_flags, bool is_checkpoint) const
 
void SetSoACompileTimeNames (std::vector< std::string > const &rdata_name, std::vector< std::string > const &idata_name)
 
std::vector< std::string > GetRealSoANames () const
 
std::vector< std::string > GetIntSoANames () const
 
bool HasRealComp (std::string const &name)
 
bool HasIntComp (std::string const &name)
 
int GetRealCompIndex (std::string const &name)
 
int GetIntCompIndex (std::string const &name)
 
- Public Member Functions inherited from amrex::ParticleContainerBase
 ParticleContainerBase ()=default
 
 ParticleContainerBase (ParGDBBase *gdb)
 
 ParticleContainerBase (const Geometry &geom, const DistributionMapping &dmap, const BoxArray &ba)
 
 ParticleContainerBase (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< int > &rr)
 
 ParticleContainerBase (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< IntVect > &rr)
 
virtual ~ParticleContainerBase ()=default
 
 ParticleContainerBase (const ParticleContainerBase &)=delete
 
ParticleContainerBaseoperator= (const ParticleContainerBase &)=delete
 
 ParticleContainerBase (ParticleContainerBase &&)=default
 
ParticleContainerBaseoperator= (ParticleContainerBase &&)=default
 
void Define (ParGDBBase *gdb)
 
void Define (const Geometry &geom, const DistributionMapping &dmap, const BoxArray &ba)
 
void Define (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< int > &rr)
 
void Define (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< IntVect > &rr)
 
bool isDefined () const
 
void RedefineDummyMF (int lev)
 
MFIter MakeMFIter (int lev, const MFItInfo &info) const
 
MFIter MakeMFIter (int lev) const
 
MFIter MakeMFIter (int lev, bool tile) const
 
void SetParGDB (const Geometry &geom, const DistributionMapping &dmap, const BoxArray &ba)
 
void SetParGDB (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< IntVect > &rr)
 
void SetParGDB (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< int > &rr)
 
void SetParticleBoxArray (int lev, BoxArray new_ba)
 
void SetParticleDistributionMap (int lev, DistributionMapping new_dmap)
 
void SetParticleGeometry (int lev, Geometry new_geom)
 
const BoxArrayParticleBoxArray (int lev) const
 
const DistributionMappingParticleDistributionMap (int lev) const
 
const GeometryGeom (int lev) const
 
const GeometryParticleGeom (int lev) const
 
int finestLevel () const
 
int maxLevel () const
 
int numLevels () const
 
const ParGDBBaseGetParGDB () const
 
ParGDBBaseGetParGDB ()
 
int Verbose () const
 
void SetVerbose (int verbose)
 
int stableRedistribute () const
 
void setStableRedistribute (int stable)
 
const ParticleBufferMapBufferMap () const
 
Vector< intNeighborProcs (int ngrow) const
 
bool OnSameGrids (int level, const MF &mf) const
 
Arenaarena () const
 
void SetArena (Arena *a)
 

Protected Member Functions

void ContinuousInjection (const amrex::RealBox &injection_box) override
 
void ContinuousFluxInjection (const amrex::Real t, const amrex::Real dt) override
 
- Protected Member Functions inherited from amrex::ParticleContainer_impl< typename T_ParticleType, int T_NArrayReal, int T_NArrayInt, template< class > class Allocator, class T_CellAssignor >
bool Where (const P &prt, ParticleLocData &pld, int lev_min=0, int lev_max=-1, int nGrow=0, int local_grid=-1) const
 
bool EnforcePeriodicWhere (P &prt, ParticleLocData &pld, int lev_min=0, int lev_max=-1, int local_grid=-1) const
 
void ReadParticles (int cnt, int grd, int lev, std::ifstream &ifs, int finest_level_in_file, bool convert_ids)
 
void SetParticleSize ()
 
- Protected Member Functions inherited from amrex::ParticleContainerBase
void BuildRedistributeMask (int lev, int nghost=1) const
 
void defineBufferMap () const
 

Protected Attributes

std::string species_name
 
std::unique_ptr< PlasmaInjectorplasma_injector
 
bool boost_adjust_transverse_positions = false
 
bool do_backward_propagation = false
 
bool m_rz_random_theta = true
 
Resampling m_resampler
 
bool do_classical_radiation_reaction = false
 
bool m_save_previous_position = false
 
bool m_do_qed_quantum_sync = false
 
bool m_do_qed_breit_wheeler = false
 
std::shared_ptr< QuantumSynchrotronEnginem_shr_p_qs_engine
 
std::shared_ptr< BreitWheelerEnginem_shr_p_bw_engine
 
std::vector< std::string > m_user_int_attribs
 
std::vector< std::string > m_user_real_attribs
 
std::vector< std::unique_ptr< amrex::Parser > > m_user_int_attrib_parser
 
std::vector< std::unique_ptr< amrex::Parser > > m_user_real_attrib_parser
 
- Protected Attributes inherited from WarpXParticleContainer
int species_id
 
amrex::ParticleReal charge
 
amrex::ParticleReal mass
 
PhysicalSpecies physical_species
 
ParticleBoundaries m_boundary_conditions
 
bool m_deposit_on_main_grid = false
 instead of depositing (current, charge) on the finest patch level, deposit to the coarsest grid More...
 
bool m_gather_from_main_grid = false
 instead of gathering fields from the finest patch level, gather from the coarsest More...
 
int do_not_push = 0
 
int do_not_gather = 0
 
int do_continuous_injection = 0
 
int do_field_ionization = 0
 
int ionization_product
 
std::string ionization_product_name
 
int ion_atomic_number
 
int ionization_initial_level = 0
 
amrex::Gpu::DeviceVector< amrex::Real > ionization_energies
 
amrex::Gpu::DeviceVector< amrex::Real > adk_power
 
amrex::Gpu::DeviceVector< amrex::Real > adk_prefactor
 
amrex::Gpu::DeviceVector< amrex::Real > adk_exp_prefactor
 
std::string physical_element
 
int do_resampling = 0
 
bool m_do_back_transformed_particles = false
 
int m_qed_breit_wheeler_ele_product
 
std::string m_qed_breit_wheeler_ele_product_name
 
int m_qed_breit_wheeler_pos_product
 
std::string m_qed_breit_wheeler_pos_product_name
 
int m_qed_quantum_sync_phot_product
 
std::string m_qed_quantum_sync_phot_product_name
 
amrex::Vector< amrex::FArrayBoxlocal_rho
 
amrex::Vector< amrex::FArrayBoxlocal_jx
 
amrex::Vector< amrex::FArrayBoxlocal_jy
 
amrex::Vector< amrex::FArrayBoxlocal_jz
 
TmpParticles tmp_particle_data
 
- Protected Attributes inherited from NamedComponentParticleContainer< amrex::DefaultAllocator >
std::map< std::string, int > particle_comps
 
std::map< std::string, int > particle_icomps
 
std::map< std::string, int > particle_runtime_comps
 
std::map< std::string, int > particle_runtime_icomps
 
- Protected Attributes inherited from amrex::ParticleContainer_impl< typename T_ParticleType, int T_NArrayReal, int T_NArrayInt, template< class > class Allocator, class T_CellAssignor >
DenseBins< typename ParticleTileType::ParticleTileDataTypem_bins
 
- Protected Attributes inherited from amrex::ParticleContainerBase
int m_verbose
 
int m_stable_redistribute
 
std::unique_ptr< ParGDBm_gdb_object
 
ParGDBBasem_gdb
 
Vector< std::unique_ptr< MultiFab > > m_dummy_mf
 
Arenam_arena
 
std::unique_ptr< iMultiFabredistribute_mask_ptr
 
int redistribute_mask_nghost
 
amrex::Vector< intneighbor_procs
 
ParticleBufferMap m_buffer_map
 

Additional Inherited Members

- Public Types inherited from WarpXParticleContainer
using DiagnosticParticleData = amrex::StructOfArrays< DiagIdx::nattribs, 0 >
 
using DiagnosticParticles = amrex::Vector< std::map< std::pair< int, int >, DiagnosticParticleData > >
 
using PairIndex = std::pair< int, int >
 
using TmpParticleTile = std::array< amrex::Gpu::DeviceVector< amrex::ParticleReal >, TmpIdx::nattribs >
 
using TmpParticles = amrex::Vector< std::map< PairIndex, TmpParticleTile > >
 
- Public Types inherited from NamedComponentParticleContainer< amrex::DefaultAllocator >
using BaseContainer = amrex::ParticleContainer< 0, 0, PIdx::nattribs, 0, amrex::DefaultAllocator >
 
- Public Types inherited from amrex::ParticleContainer_impl< typename T_ParticleType, int T_NArrayReal, int T_NArrayInt, template< class > class Allocator, class T_CellAssignor >
typedef T_ParticleType ParticleType
 
typedef typename ParticleType::ConstType ConstParticleType
 
typedef T_CellAssignor CellAssignor
 
typedef Allocator< T > AllocatorType
 
typedef Particle< NStructReal+NArrayReal, NStructInt+NArrayIntSuperParticleType
 
typedef typename Particle< NStructReal, NStructInt >::RealType RealType
 
typedef ParticleContainer_impl< ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignorParticleContainerType
 
typedef ParticleTile< ParticleType, NArrayReal, NArrayInt, Allocator > ParticleTileType
 
typedef ParticleInitType< NStructReal, NStructInt, NArrayReal, NArrayIntParticleInitData
 
typedef std::map< std::pair< int, int >, ParticleTileTypeParticleLevel
 
typedef typename ParticleTileType::ParticleTileDataType PTDType
 
typedef typename ParticleTileType::ConstParticleTileDataType ConstPTDType
 
typedef typename ParticleTileType::AoS AoS
 
typedef typename ParticleTileType::SoA SoA
 
typedef typename SoA::RealVector RealVector
 
typedef typename SoA::IntVector IntVector
 
typedef typename AoS::ParticleVector ParticleVector
 
typedef Gpu::DeviceVector< char > CharVector
 
typedef ParIter_impl< ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignorParIterType
 
typedef ParConstIter_impl< ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignorParConstIterType
 
typedef amrex::ParticleContainer_impl< ParticleType, NArrayReal, NArrayInt, NewAllocator > ContainerLike
 
- Static Public Member Functions inherited from WarpXParticleContainer
static void ReadParameters ()
 
static void BackwardCompatibility ()
 
- Static Public Member Functions inherited from amrex::ParticleContainerBase
static const std::string & CheckpointVersion ()
 
static const std::string & PlotfileVersion ()
 
static const std::string & DataPrefix ()
 
static int MaxReaders ()
 
static Long MaxParticlesPerRead ()
 
static const std::string & AggregationType ()
 
static int AggregationBuffer ()
 
- Public Attributes inherited from WarpXParticleContainer
friend MultiParticleContainer
 
bool do_splitting = false
 
int do_not_deposit = 0
 
bool initialize_self_fields = false
 
amrex::Real self_fields_required_precision = amrex::Real(1.e-11)
 
amrex::Real self_fields_absolute_tolerance = amrex::Real(0.0)
 
int self_fields_max_iters = 200
 
int self_fields_verbosity = 2
 
int split_type = 0
 
- Public Attributes inherited from amrex::ParticleContainer_impl< typename T_ParticleType, int T_NArrayReal, int T_NArrayInt, template< class > class Allocator, class T_CellAssignor >
RealDescriptor ParticleRealDescriptor
 
Vector< inth_redistribute_real_comp
 
Vector< inth_redistribute_int_comp
 
bool levelDirectoriesCreated
 
bool usePrePost
 
bool doUnlink
 
int maxnextidPrePost
 
int nOutFilesPrePost
 
Long nparticlesPrePost
 
Vector< Long > nParticlesAtLevelPrePost
 
Vector< Vector< int > > whichPrePost
 
Vector< Vector< int > > countPrePost
 
Vector< Vector< Long > > wherePrePost
 
std::string HdrFileNamePrePost
 
Vector< std::string > filePrefixPrePost
 
- Public Attributes inherited from amrex::ParticleContainerBase
AmrParticleLocator< DenseBins< Box > > m_particle_locator
 
- Static Public Attributes inherited from amrex::ParticleContainer_impl< typename T_ParticleType, int T_NArrayReal, int T_NArrayInt, template< class > class Allocator, class T_CellAssignor >
static constexpr int NStructReal
 
static constexpr int NStructInt
 
static constexpr int NArrayReal
 
static constexpr int NArrayInt
 
static constexpr bool has_polymorphic_allocator
 
- Static Public Attributes inherited from amrex::ParticleContainerBase
static AMREX_EXPORT bool do_tiling
 
static AMREX_EXPORT IntVect tile_size
 
static AMREX_EXPORT bool memEfficientSort
 
static AMREX_EXPORT bool use_comms_arena
 

Detailed Description

PhysicalParticleContainer is the ParticleContainer class containing plasma particles (if a simulation has 2 plasma species, say "electrons" and "ions"), they will be two instances of PhysicalParticleContainer.

PhysicalParticleContainer inherits from WarpXParticleContainer.

Constructor & Destructor Documentation

◆ PhysicalParticleContainer() [1/2]

PhysicalParticleContainer::PhysicalParticleContainer ( amrex::AmrCore amr_core,
int  ispecies,
const std::string &  name 
)

◆ PhysicalParticleContainer() [2/2]

PhysicalParticleContainer::PhysicalParticleContainer ( amrex::AmrCore amr_core)

◆ ~PhysicalParticleContainer()

virtual PhysicalParticleContainer::~PhysicalParticleContainer ( )
inlinevirtual

Member Function Documentation

◆ AddGaussianBeam()

void PhysicalParticleContainer::AddGaussianBeam ( const amrex::Real  x_m,
const amrex::Real  y_m,
const amrex::Real  z_m,
const amrex::Real  x_rms,
const amrex::Real  y_rms,
const amrex::Real  z_rms,
const amrex::Real  x_cut,
const amrex::Real  y_cut,
const amrex::Real  z_cut,
const amrex::Real  q_tot,
long  npart,
const int  do_symmetrize,
const int  symmetrization_order 
)

◆ AddParticles()

void PhysicalParticleContainer::AddParticles ( int  lev)
virtual

◆ AddPlasma()

void PhysicalParticleContainer::AddPlasma ( int  lev,
amrex::RealBox  part_realbox = amrex::RealBox() 
)

Create new macroparticles for this species, with a fixed number of particles per cell (in the cells of part_realbox). The new particles are only created inside the intersection of part_realbox with the local grid for the current proc.

Parameters
[in]levthe index of the refinement level
[in]part_realboxthe box in which new particles should be created (this box should correspond to an integer number of cells in each direction, but its boundaries need not be aligned with the actual cells of the simulation)

◆ AddPlasmaFlux()

void PhysicalParticleContainer::AddPlasmaFlux ( amrex::Real  dt)

Create new macroparticles for this species, with a fixed number of particles per cell in a plane.

Parameters
[in]dttime step size, used to partially advance the particles

◆ AddPlasmaFromFile()

void PhysicalParticleContainer::AddPlasmaFromFile ( amrex::ParticleReal  q_tot,
amrex::ParticleReal  z_shift 
)

Load a particle beam from an external file

Parameters
[in]q_tottotal charge of the particle species to be initialized
[in]z_shiftoptional shift to the z position of particles (useful for boosted frame runs)

◆ applyNCIFilter()

void PhysicalParticleContainer::applyNCIFilter ( int  lev,
const amrex::Box box,
amrex::Elixir &  exeli,
amrex::Elixir &  eyeli,
amrex::Elixir &  ezeli,
amrex::Elixir &  bxeli,
amrex::Elixir &  byeli,
amrex::Elixir &  bzeli,
amrex::FArrayBox filtered_Ex,
amrex::FArrayBox filtered_Ey,
amrex::FArrayBox filtered_Ez,
amrex::FArrayBox filtered_Bx,
amrex::FArrayBox filtered_By,
amrex::FArrayBox filtered_Bz,
const amrex::FArrayBox Ex,
const amrex::FArrayBox Ey,
const amrex::FArrayBox Ez,
const amrex::FArrayBox Bx,
const amrex::FArrayBox By,
const amrex::FArrayBox Bz,
amrex::FArrayBox const *&  exfab,
amrex::FArrayBox const *&  eyfab,
amrex::FArrayBox const *&  ezfab,
amrex::FArrayBox const *&  bxfab,
amrex::FArrayBox const *&  byfab,
amrex::FArrayBox const *&  bzfab 
)

Apply NCI Godfrey filter to all components of E and B before gather.

Parameters
levMR level
boxbox onto which the filter is applied
exelisafeguard Elixir object (to avoid de-allocating too early –between ParIter iterations– on GPU) for field Ex
eyelisafeguard Elixir object (to avoid de-allocating too early –between ParIter iterations– on GPU) for field Ey
ezelisafeguard Elixir object (to avoid de-allocating too early –between ParIter iterations– on GPU) for field Ez
bxelisafeguard Elixir object (to avoid de-allocating too early –between ParIter iterations– on GPU) for field Bx
byelisafeguard Elixir object (to avoid de-allocating too early –between ParIter iterations– on GPU) for field By
bzelisafeguard Elixir object (to avoid de-allocating too early –between ParIter iterations– on GPU) for field Bz
filtered_ExArray containing filtered value
filtered_EyArray containing filtered value
filtered_EzArray containing filtered value
filtered_BxArray containing filtered value
filtered_ByArray containing filtered value
filtered_BzArray containing filtered value
ExField array before filtering (not modified)
EyField array before filtering (not modified)
EzField array before filtering (not modified)
BxField array before filtering (not modified)
ByField array before filtering (not modified)
BzField array before filtering (not modified)
exfabpointer to the Ex field (modified)
eyfabpointer to the Ey field (modified)
ezfabpointer to the Ez field (modified)
bxfabpointer to the Bx field (modified)
byfabpointer to the By field (modified)
bzfabpointer to the Bz field (modified)

The NCI Godfrey filter is applied on Ex, the result is stored in filtered_Ex and the pointer exfab is modified (before this function is called, it points to Ex and after this function is called, it points to Ex_filtered)

◆ BackwardCompatibility()

void PhysicalParticleContainer::BackwardCompatibility ( )

This function queries deprecated input parameters and abort the run if one of them is specified.

◆ CheckAndAddParticle()

void PhysicalParticleContainer::CheckAndAddParticle ( amrex::ParticleReal  x,
amrex::ParticleReal  y,
amrex::ParticleReal  z,
amrex::ParticleReal  ux,
amrex::ParticleReal  uy,
amrex::ParticleReal  uz,
amrex::ParticleReal  weight,
amrex::Gpu::HostVector< amrex::ParticleReal > &  particle_x,
amrex::Gpu::HostVector< amrex::ParticleReal > &  particle_y,
amrex::Gpu::HostVector< amrex::ParticleReal > &  particle_z,
amrex::Gpu::HostVector< amrex::ParticleReal > &  particle_ux,
amrex::Gpu::HostVector< amrex::ParticleReal > &  particle_uy,
amrex::Gpu::HostVector< amrex::ParticleReal > &  particle_uz,
amrex::Gpu::HostVector< amrex::ParticleReal > &  particle_w 
)

◆ ContinuousFluxInjection()

void PhysicalParticleContainer::ContinuousFluxInjection ( const amrex::Real  t,
const amrex::Real  dt 
)
overrideprotectedvirtual

Reimplemented from WarpXParticleContainer.

◆ ContinuousInjection()

void PhysicalParticleContainer::ContinuousInjection ( const amrex::RealBox injection_box)
overrideprotectedvirtual

Reimplemented from WarpXParticleContainer.

◆ DefaultInitializeRuntimeAttributes()

void PhysicalParticleContainer::DefaultInitializeRuntimeAttributes ( amrex::ParticleTile< amrex::Particle< NStructReal, NStructInt >, NArrayReal, NArrayInt, amrex::PinnedArenaAllocator > &  pinned_tile,
const int  n_external_attr_real,
const int  n_external_attr_int,
const amrex::RandomEngine engine 
)
finaloverridevirtual

Default initialize runtime attributes in a tile. This routine does not initialize the first n_external_attr_real real attributes and the first n_external_attr_int integer attributes, which have been in principle externally set elsewhere.

Parameters
[in,out]pinned_tilethe tile in which attributes are initialized
[in]n_external_attr_realThe number of real attributes that have been externally set. These are NOT initialized by this function.
[in]n_external_attr_intThe number of integer attributes that have been externally set. These are NOT initialized by this function.
[in]enginethe random engine, used in initialization of QED optical depths

Implements WarpXParticleContainer.

◆ Evolve()

void PhysicalParticleContainer::Evolve ( int  lev,
const amrex::MultiFab Ex,
const amrex::MultiFab Ey,
const amrex::MultiFab Ez,
const amrex::MultiFab Bx,
const amrex::MultiFab By,
const amrex::MultiFab Bz,
amrex::MultiFab jx,
amrex::MultiFab jy,
amrex::MultiFab jz,
amrex::MultiFab cjx,
amrex::MultiFab cjy,
amrex::MultiFab cjz,
amrex::MultiFab rho,
amrex::MultiFab crho,
const amrex::MultiFab cEx,
const amrex::MultiFab cEy,
const amrex::MultiFab cEz,
const amrex::MultiFab cBx,
const amrex::MultiFab cBy,
const amrex::MultiFab cBz,
amrex::Real  t,
amrex::Real  dt,
DtType  a_dt_type = DtType::Full,
bool  skip_deposition = false 
)
overridevirtual

Evolve is the central function PhysicalParticleContainer that advances plasma particles for a time dt (typically one timestep).

Parameters
levlevel on which particles are living
ExMultiFab from which field Ex is gathered
EyMultiFab from which field Ey is gathered
EzMultiFab from which field Ez is gathered
BxMultiFab from which field Bx is gathered
ByMultiFab from which field By is gathered
BzMultiFab from which field Bz is gathered
jxMultiFab to which the particles' current jx is deposited
jyMultiFab to which the particles' current jy is deposited
jzMultiFab to which the particles' current jz is deposited
cjxSame as jx (coarser, from lev-1), when using deposition buffers
cjySame as jy (coarser, from lev-1), when using deposition buffers
cjzSame as jz (coarser, from lev-1), when using deposition buffers
rhoMultiFab to which the particles' charge is deposited
crhoSame as rho (coarser, from lev-1), when using deposition buffers
cExSame as Ex (coarser, from lev-1), when using gather buffers
cEySame as Ey (coarser, from lev-1), when using gather buffers
cEzSame as Ez (coarser, from lev-1), when using gather buffers
cBxSame as Bx (coarser, from lev-1), when using gather buffers
cBySame as By (coarser, from lev-1), when using gather buffers
cBzSame as Bz (coarser, from lev-1), when using gather buffers
tcurrent physical time
dttime step by which particles are advanced
a_dt_typetype of time step (used for sub-cycling)
skip_depositionSkip the charge and current deposition.

Evolve iterates over particle iterator (each box) and performs filtering, field gather, particle push and current deposition for all particles in the box.

Implements WarpXParticleContainer.

Reimplemented in RigidInjectedParticleContainer, and PhotonParticleContainer.

◆ getIonizationFunc()

IonizationFilterFunc PhysicalParticleContainer::getIonizationFunc ( const WarpXParIter pti,
int  lev,
amrex::IntVect  ngEB,
const amrex::FArrayBox Ex,
const amrex::FArrayBox Ey,
const amrex::FArrayBox Ez,
const amrex::FArrayBox Bx,
const amrex::FArrayBox By,
const amrex::FArrayBox Bz 
)

◆ getPairGenerationFilterFunc()

PairGenerationFilterFunc PhysicalParticleContainer::getPairGenerationFilterFunc ( )

◆ getPhotonEmissionFilterFunc()

PhotonEmissionFilterFunc PhysicalParticleContainer::getPhotonEmissionFilterFunc ( )

◆ has_breit_wheeler()

bool PhysicalParticleContainer::has_breit_wheeler ( ) const
overridevirtual

Tells if this PhysicalParticleContainer has Breit Wheeler process enabled

Returns
true if process is enabled

Reimplemented from WarpXParticleContainer.

◆ has_quantum_sync()

bool PhysicalParticleContainer::has_quantum_sync ( ) const
overridevirtual

Tells if this PhysicalParticleContainer has Quantum Synchrotron process enabled

Returns
true if process is enabled

Reimplemented from WarpXParticleContainer.

◆ InitData()

void PhysicalParticleContainer::InitData ( )
overridevirtual

◆ InitIonizationModule()

void PhysicalParticleContainer::InitIonizationModule ( )
overridevirtual

Reimplemented from WarpXParticleContainer.

◆ MapParticletoBoostedFrame()

void PhysicalParticleContainer::MapParticletoBoostedFrame ( amrex::ParticleReal &  x,
amrex::ParticleReal &  y,
amrex::ParticleReal &  z,
amrex::ParticleReal &  ux,
amrex::ParticleReal &  uy,
amrex::ParticleReal &  uz 
)

◆ PartitionParticlesInBuffers()

void PhysicalParticleContainer::PartitionParticlesInBuffers ( long &  nfine_current,
long &  nfine_gather,
long const  np,
WarpXParIter pti,
int const  lev,
amrex::iMultiFab const *  current_masks,
amrex::iMultiFab const *  gather_masks 
)

◆ PostRestart()

virtual void PhysicalParticleContainer::PostRestart ( )
inlinefinalvirtual

◆ PushP()

void PhysicalParticleContainer::PushP ( int  lev,
amrex::Real  dt,
const amrex::MultiFab Ex,
const amrex::MultiFab Ey,
const amrex::MultiFab Ez,
const amrex::MultiFab Bx,
const amrex::MultiFab By,
const amrex::MultiFab Bz 
)
overridevirtual

This pushes the particle momenta by dt.

Implements WarpXParticleContainer.

Reimplemented in PhotonParticleContainer, and RigidInjectedParticleContainer.

◆ PushPX()

void PhysicalParticleContainer::PushPX ( WarpXParIter pti,
amrex::FArrayBox const *  exfab,
amrex::FArrayBox const *  eyfab,
amrex::FArrayBox const *  ezfab,
amrex::FArrayBox const *  bxfab,
amrex::FArrayBox const *  byfab,
amrex::FArrayBox const *  bzfab,
const amrex::IntVect  ngEB,
const int  ,
const long  offset,
const long  np_to_push,
int  lev,
int  gather_lev,
amrex::Real  dt,
ScaleFields  scaleFields,
DtType  a_dt_type = DtType::Full 
)
virtual

◆ ReadHeader()

void PhysicalParticleContainer::ReadHeader ( std::istream &  is)
overridevirtual

◆ resample()

void PhysicalParticleContainer::resample ( const int  timestep)
finaloverridevirtual

This function determines if resampling should be done for the current species, and if so, performs the resampling.

Parameters
[in]timestepthe current timestep.

Reimplemented from WarpXParticleContainer.

◆ set_breit_wheeler_engine_ptr()

void PhysicalParticleContainer::set_breit_wheeler_engine_ptr ( std::shared_ptr< BreitWheelerEngine ptr)
overridevirtual

Acquires a shared smart pointer to a BreitWheelerEngine

Parameters
[in]ptrthe pointer

Reimplemented from WarpXParticleContainer.

◆ set_quantum_sync_engine_ptr()

void PhysicalParticleContainer::set_quantum_sync_engine_ptr ( std::shared_ptr< QuantumSynchrotronEngine ptr)
overridevirtual

Acquires a shared smart pointer to a QuantumSynchrotronEngine

Parameters
[in]ptrthe pointer

Reimplemented from WarpXParticleContainer.

◆ SplitParticles()

void PhysicalParticleContainer::SplitParticles ( int  lev)

◆ WriteHeader()

void PhysicalParticleContainer::WriteHeader ( std::ostream &  os) const
overridevirtual

Member Data Documentation

◆ boost_adjust_transverse_positions

bool PhysicalParticleContainer::boost_adjust_transverse_positions = false
protected

◆ do_backward_propagation

bool PhysicalParticleContainer::do_backward_propagation = false
protected

◆ do_classical_radiation_reaction

bool PhysicalParticleContainer::do_classical_radiation_reaction = false
protected

◆ m_do_qed_breit_wheeler

bool PhysicalParticleContainer::m_do_qed_breit_wheeler = false
protected

◆ m_do_qed_quantum_sync

bool PhysicalParticleContainer::m_do_qed_quantum_sync = false
protected

◆ m_resampler

Resampling PhysicalParticleContainer::m_resampler
protected

◆ m_rz_random_theta

bool PhysicalParticleContainer::m_rz_random_theta = true
protected

◆ m_save_previous_position

bool PhysicalParticleContainer::m_save_previous_position = false
protected

◆ m_shr_p_bw_engine

std::shared_ptr<BreitWheelerEngine> PhysicalParticleContainer::m_shr_p_bw_engine
protected

◆ m_shr_p_qs_engine

std::shared_ptr<QuantumSynchrotronEngine> PhysicalParticleContainer::m_shr_p_qs_engine
protected

◆ m_user_int_attrib_parser

std::vector< std::unique_ptr<amrex::Parser> > PhysicalParticleContainer::m_user_int_attrib_parser
protected

◆ m_user_int_attribs

std::vector<std::string> PhysicalParticleContainer::m_user_int_attribs
protected

◆ m_user_real_attrib_parser

std::vector< std::unique_ptr<amrex::Parser> > PhysicalParticleContainer::m_user_real_attrib_parser
protected

◆ m_user_real_attribs

std::vector<std::string> PhysicalParticleContainer::m_user_real_attribs
protected

◆ plasma_injector

std::unique_ptr<PlasmaInjector> PhysicalParticleContainer::plasma_injector
protected

◆ species_name

std::string PhysicalParticleContainer::species_name
protected

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