Block-Structured AMR Software Framework
amrex::AmrTracerParticleContainer Class Reference

#include <AMReX_AmrParticles.H>

Inheritance diagram for amrex::AmrTracerParticleContainer:
amrex::TracerParticleContainer amrex::ParticleContainer_impl< T_ParticleType, T_NArrayReal, T_NArrayInt, Allocator, T_CellAssignor > amrex::ParticleContainerBase

Public Member Functions

 AmrTracerParticleContainer (AmrCore *amr_core)
 
 ~AmrTracerParticleContainer () override=default
 
 AmrTracerParticleContainer (const AmrTracerParticleContainer &)=delete
 
AmrTracerParticleContaineroperator= (const AmrTracerParticleContainer &)=delete
 
 AmrTracerParticleContainer (AmrTracerParticleContainer &&) noexcept=default
 
AmrTracerParticleContaineroperator= (AmrTracerParticleContainer &&) noexcept=default
 
- Public Member Functions inherited from amrex::TracerParticleContainer
 TracerParticleContainer (ParGDBBase *gdb)
 
 TracerParticleContainer (const Geometry &geom, const DistributionMapping &dmap, const BoxArray &ba)
 
 TracerParticleContainer ()=default
 
 ~TracerParticleContainer () override=default
 
 TracerParticleContainer (const TracerParticleContainer &)=delete
 
TracerParticleContaineroperator= (const TracerParticleContainer &)=delete
 
 TracerParticleContainer (TracerParticleContainer &&) noexcept=default
 
TracerParticleContaineroperator= (TracerParticleContainer &&) noexcept=default
 
void AdvectWithUmac (MultiFab *umac, int level, Real dt)
 
void AdvectWithUcc (const MultiFab &ucc, int level, Real dt)
 
void Timestamp (const std::string &basename, const MultiFab &mf, int lev, Real time, const std::vector< int > &indices)
 
- Public Member Functions inherited from amrex::ParticleContainer_impl< T_ParticleType, T_NArrayReal, T_NArrayInt, Allocator, T_CellAssignor >
 ParticleContainer_impl ()
 Default constructor - construct an empty particle container that has no concept of a level hierarchy. Must be properly initialized later. More...
 
 ParticleContainer_impl (ParGDBBase *gdb)
 Construct a particle container using a ParGDB object. The container will track changes in the grid structure of the ParGDB automatically. More...
 
 ParticleContainer_impl (const Geometry &geom, const DistributionMapping &dmap, const BoxArray &ba)
 Construct a particle container using a given Geometry, DistributionMapping, and BoxArray. Single level version. More...
 
 ParticleContainer_impl (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< int > &rr)
 Construct a particle container using a given Geometry, DistributionMapping, BoxArray and Vector of refinement ratios. Multi-level version. More...
 
 ParticleContainer_impl (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< IntVect > &rr)
 Same as the above, but accepts different refinement ratios in each direction. More...
 
 ~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)
 Define a default-constructed ParticleContainer using a ParGDB object. The container will track changes in the grid structure of the ParGDB automatically. More...
 
void Define (const Geometry &geom, const DistributionMapping &dmap, const BoxArray &ba)
 Define a default-constructed ParticleContainer using a ParGDB object. Single-level version. More...
 
void Define (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< int > &rr)
 Define a default-constructed ParticleContainer using a ParGDB object. Multi-level version. More...
 
void Define (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< IntVect > &rr)
 Define a default-constructed ParticleContainer using a ParGDB object. Multi-level version. More...
 
int numLocalTilesAtLevel (int lev) const
 The total number of tiles on this rank on this level. More...
 
void reserveData () override
 This reserves data in the vector of dummy MultiFabs used by the ParticleContainer for the maximum number of levels possible. More...
 
void resizeData () override
 This resizes the vector of dummy MultiFabs used by the ParticleContainer for the current number of levels and calls RedefineDummyMF on each level. Note that this must be done prior to using ParticleIterator. More...
 
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())
 This initializes the particle container with icount randomly distributed particles. If serialize is true, then the particles will all be generated on the IO Process, and the particle positions will be broadcast to all other process. If serialize is false, then the particle positions will be randomly generated in parallel, which each process using the random seed iseed + MyProc. The particles can be constrained to lie within the RealBox bx, if so desired. The default is the full domain. More...
 
void InitRandomPerBox (Long icount, ULong iseed, const ParticleInitData &pdata)
 This initializes the container with icount randomly distributed particles per box, using the random seed iseed. All the particles have the same data and attributes, which are passed using the pdata struct. More...
 
void InitOnePerCell (Real x_off, Real y_off, Real z_off, const ParticleInitData &pdata)
 This initializes the particle container with one particle per cell, where the other particle data and attributes are all constant. The coarsest level is used to generate the particle positions. The particle variable values are passed in through the pdata struct. The parameters x_off, y_off, and z_off represent offsets between 0 and 1 that show where inside the cells to place the particles. 0.5 means cell centered. More...
 
void InitNRandomPerCell (int n_per_cell, const ParticleInitData &pdata)
 This initializes the particle container with n_per_cell randomly distributed particles per cell, where the other particle data and and attributes are all constant. The cells on the coarsest level are used to generate the particle positions. The particle variable values are passed in through the pdata struct. More...
 
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)
 Redistribute puts all the particles back in the right places (for some value of right) More...
 
template<class index_type >
void ReorderParticles (int lev, const MFIter &mfi, const index_type *permutations)
 Reorder particles on the tile given by lev and mfi using a the permutations array. More...
 
void SortParticlesForDeposition (IntVect idx_type)
 Sort particles on each tile such that particles adjacent in memory are likely to map to adjacent cells. This ordering can be beneficial for performance on GPU when deposition quantities onto a grid. More...
 
void SortParticlesByCell ()
 Sort the particles on each tile by cell, using Fortran ordering. More...
 
void SortParticlesByBin (IntVect bin_size)
 Sort the particles on each tile by groups of cells, given an IntVect bin_size. More...
 
bool OK (int lev_min=0, int lev_max=-1, int nGrow=0) const
 OK checks that all particles are in the right places (for some value of right) More...
 
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
 Returns # of particles at specified the level. More...
 
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
 Returns # of particles at all levels. More...
 
void RemoveParticlesAtLevel (int level)
 The Following methods are for managing Virtual and Ghost Particles. More...
 
void RemoveParticlesNotAtFinestLevel ()
 
void CreateVirtualParticles (int level, AoS &virts) const
 Creates virtual particles for a given level that represent in some capacity all particles at finer levels. More...
 
void CreateGhostParticles (int level, int ngrow, AoS &ghosts) const
 Create ghost particles for a given level that are copies of particles near coarse->fine boundaries in level-1. More...
 
void AddParticlesAtLevel (AoS &particles, int level, int nGrow=0)
 Add particles from a pbox to the grid at this level. More...
 
void CreateVirtualParticles (int level, ParticleTileType &virts) const
 Creates virtual particles for a given level that represent in some capacity all particles at finer levels. More...
 
void CreateGhostParticles (int level, int ngrow, ParticleTileType &ghosts) const
 Create ghost particles for a given level that are copies of particles near coarse->fine boundaries in level-1. More...
 
void AddParticlesAtLevel (ParticleTileType &particles, int level, int nGrow=0)
 Add particles from a pbox to the grid at this level. More...
 
void clearParticles ()
 Clear all the particles in this container. This does not free memory. More...
 
template<class PCType , std::enable_if_t< IsParticleContainer< PCType >::value, int > foo = 0>
void copyParticles (const PCType &other, bool local=false)
 Copy particles from other to this ParticleContainer. Will clear all the particles from this container first. local controls whether or not to call Redistribute() after adding the particles. More...
 
template<class PCType , std::enable_if_t< IsParticleContainer< PCType >::value, int > foo = 0>
void addParticles (const PCType &other, bool local=false)
 Add particles from other to this ParticleContainer. local controls whether or not to call Redistribute after adding the particles. More...
 
template<class F , class PCType , std::enable_if_t< IsParticleContainer< PCType >::value, int > foo = 0, std::enable_if_t<! std::is_integral_v< F >, int > bar = 0>
void copyParticles (const PCType &other, F &&f, bool local=false)
 Copy particles from other to this ParticleContainer. Will clear all the particles from this container first. local controls whether or not to call Redistribute() after adding the particles. More...
 
template<class F , class PCType , std::enable_if_t< IsParticleContainer< PCType >::value, int > foo = 0, std::enable_if_t<! std::is_integral_v< F >, int > bar = 0>
void addParticles (const PCType &other, F const &f, bool local=false)
 Add particles from other to this ParticleContainer. local controls whether or not to call Redistribute after adding the particles. More...
 
void WriteParticleRealData (void *data, size_t size, std::ostream &os) const
 Write a contiguous chunk of real particle data to an ostream. More...
 
void ReadParticleRealData (void *data, size_t size, std::istream &is)
 Read a contiguous chunk of real particle data from an istream. More...
 
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
 Writes a particle checkpoint to file, suitable for restarting. More...
 
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
 Writes a particle checkpoint to file, suitable for restarting. This version allows the particle component names to be passed in. This overload exists for backwards compatibility. The is_checkpoint parameter is ignored. More...
 
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
 Writes a particle checkpoint to file, suitable for restarting. This version allows some components to be toggled off, if they don't need to be stored in the chk file. More...
 
template<class F >
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
 Writes particle data to disk in the AMReX native format. More...
 
void CheckpointPre ()
 
void CheckpointPost ()
 
void Restart (const std::string &dir, const std::string &file)
 Restart from checkpoint. More...
 
void Restart (const std::string &dir, const std::string &file, bool is_checkpoint)
 Older version, for backwards compatibility. More...
 
void WritePlotFile (const std::string &dir, const std::string &name) const
 This version of WritePlotFile writes all components and assigns component names. More...
 
template<class F , std::enable_if_t<!std::is_same_v< std::decay_t< F >, Vector< std::string >>> * = nullptr>
void WritePlotFile (const std::string &dir, const std::string &name, F &&f) const
 This version of WritePlotFile writes all components and assigns component names. More...
 
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
 This version of WritePlotFile writes all components and allows the user to specify the names of the components. More...
 
template<class F >
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
 This version of WritePlotFile writes all components and allows the user to specify the names of the components. More...
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< std::string > &real_comp_names) const
 This version of WritePlotFile writes all components and allows the user to specify the names of the components. More...
 
template<class F , std::enable_if_t<!std::is_same_v< std::decay_t< F >, Vector< std::string >>> * = nullptr>
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< std::string > &real_comp_names, F &&f) const
 This version of WritePlotFile writes all components and allows the user to specify the names of the components. More...
 
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< int > &write_real_comp, const Vector< int > &write_int_comp) const
 This version of WritePlotFile assigns component names, but allows the user to pass in a vector of ints that toggle on / off the writing of specific components. More...
 
template<class F >
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
 This version of WritePlotFile assigns component names, but allows the user to pass in a vector of ints that toggle on / off the writing of specific components. More...
 
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
 This is the most general version of WritePlotFile, which takes component names and flags for whether to write each variable as components. Note that the user should pass in vectors containing names of all the components, whether they are written or not. More...
 
template<class F >
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
 This is the most general version of WritePlotFile, which takes component names and flags for whether to write each variable as components. Note that the user should pass in vectors containing names of all the components, whether they are written or not. More...
 
void WritePlotFilePre ()
 
void WritePlotFilePost ()
 
void WriteAsciiFile (const std::string &file)
 
const Vector< ParticleLevel > & GetParticles () const
 Return the underlying Vector (over AMR levels) of ParticleLevels. Const version. More...
 
Vector< ParticleLevel > & GetParticles ()
 Return the underlying Vector (over AMR levels) of ParticleLevels. Non-const version. More...
 
const ParticleLevelGetParticles (int lev) const
 Return the ParticleLevel for level "lev". Const version. More...
 
ParticleLevelGetParticles (int lev)
 Return the ParticleLevel for level "lev". Non-const version. More...
 
const ParticleTileTypeParticlesAt (int lev, int grid, int tile) const
 Return the ParticleTile for level "lev", grid "grid" and tile "tile." Const version. More...
 
ParticleTileTypeParticlesAt (int lev, int grid, int tile)
 Return the ParticleTile for level "lev", grid "grid" and tile "tile." Non-const version. More...
 
template<class Iterator >
const ParticleTileTypeParticlesAt (int lev, const Iterator &iter) const
 Return the ParticleTile for level "lev" and Iterator "iter". Const version. More...
 
template<class Iterator >
ParticleTileTypeParticlesAt (int lev, const Iterator &iter)
 Return the ParticleTile for level "lev" and Iterator "iter". Non-const version. More...
 
ParticleTileTypeDefineAndReturnParticleTile (int lev, int grid, int tile)
 Define and return the ParticleTile for level "lev", grid "grid" and tile "tile.". More...
 
template<class Iterator >
ParticleTileTypeDefineAndReturnParticleTile (int lev, const Iterator &iter)
 Define and return the ParticleTile for level "lev", and Iterator "iter". More...
 
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
 Functions depending the layout of the data. Use with caution. More...
 
void AssignCellDensitySingleLevel (int rho_index, MultiFab &mf, int level, int ncomp=1, int particle_lvl_offset=0) const
 
template<typename P , typename Assignor = CellAssignor>
IntVect Index (const P &p, int lev) const
 
ParticleLocData Reset (ParticleType &prt, bool update, bool verbose=true, ParticleLocData pld=ParticleLocData()) const
 Updates a particle's location (Where), tries to periodic shift any particles that have left the domain. May need work (see inline comments) More...
 
template<typename P >
bool PeriodicShift (P &p) const
 Returns true if the particle was shifted. More...
 
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)
 
template<template< class > class NewAllocator = amrex::DefaultAllocator>
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
 
template<typename P , typename Assignor >
IntVect Index (const P &p, int lev) const
 
template<typename P >
bool Where (const P &p, ParticleLocData &pld, int lev_min, int lev_max, int nGrow, int local_grid) const
 
template<typename P >
bool EnforcePeriodicWhere (P &p, ParticleLocData &pld, int lev_min, int lev_max, int local_grid) const
 
template<typename P >
bool PeriodicShift (P &p) const
 
template<typename P >
void locateParticle (P &p, ParticleLocData &pld, int lev_min, int lev_max, int nGrow, int local_grid) const
 
template<class PCType , std::enable_if_t< IsParticleContainer< PCType >::value, int > foo>
void copyParticles (const PCType &other, bool local)
 
template<class PCType , std::enable_if_t< IsParticleContainer< PCType >::value, int > foo>
void addParticles (const PCType &other, bool local)
 
template<class F , class PCType , std::enable_if_t< IsParticleContainer< PCType >::value, int > foo, std::enable_if_t<! std::is_integral_v< F >, int > bar>
void copyParticles (const PCType &other, F &&f, bool local)
 
template<class F , class PCType , std::enable_if_t< IsParticleContainer< PCType >::value, int > foo, std::enable_if_t<! std::is_integral_v< F >, int > bar>
void addParticles (const PCType &other, F const &f, bool local)
 
template<class index_type >
void ReorderParticles (int lev, const MFIter &mfi, const index_type *permutations)
 
template<class F , std::enable_if_t<!std::is_same_v< std::decay_t< F >, Vector< std::string >>> * >
void WritePlotFile (const std::string &dir, const std::string &name, F &&f) const
 
template<class F >
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
 
template<class F , std::enable_if_t<!std::is_same_v< std::decay_t< F >, Vector< std::string >>> * >
void WritePlotFile (const std::string &dir, const std::string &name, const Vector< std::string > &real_comp_names, F &&f) const
 
template<class F >
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
 
template<class F >
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
 
template<class F >
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) const
 
template<class RTYPE >
void ReadParticles (int cnt, int grd, int lev, std::ifstream &ifs, int finest_level_in_file, bool convert_ids)
 
- 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)
 Set the particle Geometry, DistributionMapping, and BoxArray. If the container was previously set to to track the AMR hierarchy of an AmrCore or AmrLevel object, that correspondence will be broken here. This is the single-level version. More...
 
void SetParGDB (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< IntVect > &rr)
 Set the particle Geometry, DistributionMapping, ref ratios, and BoxArray. If the container was previously set to to track the AMR hierarchy of an AmrCore or AmrLevel object, that correspondence will be broken here. This is the multi-level version. More...
 
void SetParGDB (const Vector< Geometry > &geom, const Vector< DistributionMapping > &dmap, const Vector< BoxArray > &ba, const Vector< int > &rr)
 Set the particle Geometry, DistributionMapping, ref ratios, and BoxArray. If the container was previously set to to track the AMR hierarchy of an AmrCore or AmrLevel object, that correspondence will be broken here. This is the multi-level version. More...
 
void SetParticleBoxArray (int lev, BoxArray new_ba)
 Set the particle BoxArray. If the container was previously set to to track the AMR hierarchy of an AmrCore or AmrLevel object, that correspondence will be broken here. More...
 
void SetParticleDistributionMap (int lev, DistributionMapping new_dmap)
 Set the particle DistributionMapping. If the container was previously set to to track the AMR hierarchy of an AmrCore or AmrLevel object, that correspondence will be broken here. More...
 
void SetParticleGeometry (int lev, Geometry new_geom)
 Set the particle Geometry. If the container was previously set to to track the AMR hierarchy of an AmrCore or AmrLevel object, that correspondence will be broken here. More...
 
const BoxArrayParticleBoxArray (int lev) const
 Get the BoxArray for a given level. More...
 
const DistributionMappingParticleDistributionMap (int lev) const
 Get the DistributionMapping for a given level. More...
 
const GeometryGeom (int lev) const
 Get the Geometry for a given level. More...
 
const GeometryParticleGeom (int lev) const
 Get the particle Geometry for a given level. More...
 
int finestLevel () const
 the finest level actually defined for the ParticleContainer More...
 
int maxLevel () const
 the finest allowed level in the ParticleContainer, whether it is defined or not. More...
 
int numLevels () const
 the number of defined levels in the ParticleContainer More...
 
const ParGDBBaseGetParGDB () const
 Get the ParGDB object used to define this container (const version) More...
 
ParGDBBaseGetParGDB ()
 Get the ParGDB object used to define this container. More...
 
int Verbose () const
 
void SetVerbose (int verbose)
 
int stableRedistribute () const
 
void setStableRedistribute (int stable)
 
const ParticleBufferMapBufferMap () const
 
Vector< intNeighborProcs (int ngrow) const
 
template<class MF >
bool OnSameGrids (int level, const MF &mf) const
 

Additional Inherited Members

- Public Types inherited from amrex::ParticleContainer_impl< T_ParticleType, T_NArrayReal, T_NArrayInt, Allocator, T_CellAssignor >
using ParticleType = T_ParticleType
 
using ConstParticleType = typename ParticleType::ConstType
 
using CellAssignor = T_CellAssignor
 
template<typename T >
using AllocatorType = Allocator< T >
 The memory allocator in use. More...
 
using SuperParticleType = Particle< NStructReal+NArrayReal, NStructInt+NArrayInt >
 The type of the "SuperParticle" which stored all components in AoS form. More...
 
using RealType = typename Particle< NStructReal, NStructInt >::RealType
 The type of the Real data. More...
 
using ParticleContainerType = ParticleContainer_impl< ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >
 
using ParticleTileType = ParticleTile< ParticleType, NArrayReal, NArrayInt, Allocator >
 
using ParticleInitData = ParticleInitType< NStructReal, NStructInt, NArrayReal, NArrayInt >
 
using ParticleLevel = std::map< std::pair< int, int >, ParticleTileType >
 
using AoS = typename ParticleTileType::AoS
 
using SoA = typename ParticleTileType::SoA
 
using RealVector = typename SoA::RealVector
 
using IntVector = typename SoA::IntVector
 
using ParticleVector = typename AoS::ParticleVector
 
using CharVector = Gpu::DeviceVector< char >
 
using ParIterType = ParIter_impl< ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >
 
using ParConstIterType = ParConstIter_impl< ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor >
 
template<template< class > class NewAllocator = amrex::DefaultAllocator>
using ContainerLike = amrex::ParticleContainer_impl< ParticleType, NArrayReal, NArrayInt, NewAllocator >
 
- 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 amrex::ParticleContainer_impl< T_ParticleType, T_NArrayReal, T_NArrayInt, Allocator, T_CellAssignor >
RealDescriptor ParticleRealDescriptor = FPC::Native64RealDescriptor()
 
Vector< inth_redistribute_real_comp
 
Vector< inth_redistribute_int_comp
 
bool levelDirectoriesCreated
 Variables for i/o optimization saved for pre and post checkpoint. More...
 
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< T_ParticleType, T_NArrayReal, T_NArrayInt, Allocator, T_CellAssignor >
static constexpr int NStructReal = ParticleType::NReal
 Number of extra Real components in the particle struct. More...
 
static constexpr int NStructInt = ParticleType::NInt
 Number of extra integer components in the particle struct. More...
 
static constexpr int NArrayReal = T_NArrayReal
 Number of extra Real components stored in struct-of-array form. More...
 
static constexpr int NArrayInt = T_NArrayInt
 Number of extra integer components stored in struct-of-array form. More...
 
- Static Public Attributes inherited from amrex::ParticleContainerBase
static AMREX_EXPORT bool do_tiling = false
 
static AMREX_EXPORT IntVect tile_size { AMREX_D_DECL(1024000,8,8) }
 
static AMREX_EXPORT bool memEfficientSort = true
 
- Protected Member Functions inherited from amrex::ParticleContainer_impl< T_ParticleType, T_NArrayReal, T_NArrayInt, Allocator, T_CellAssignor >
template<typename P >
bool Where (const P &prt, ParticleLocData &pld, int lev_min=0, int lev_max=-1, int nGrow=0, int local_grid=-1) const
 Checks a particle's location on levels lev_min and higher. Returns false if the particle does not exist on that level. Only if lev_min == lev_max, nGrow can be > 0 (i.e., including nGrow ghost cells). More...
 
template<typename P >
bool EnforcePeriodicWhere (P &prt, ParticleLocData &pld, int lev_min=0, int lev_max=-1, int local_grid=-1) const
 Checks whether the particle has crossed a periodic boundary in such a way that it is on levels lev_min and higher. More...
 
template<class RTYPE >
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 inherited from amrex::ParticleContainer_impl< T_ParticleType, T_NArrayReal, T_NArrayInt, Allocator, T_CellAssignor >
DenseBins< typename ParticleTileType::ParticleTileDataTypem_bins
 
- Protected Attributes inherited from amrex::ParticleContainerBase
int m_verbose {0}
 
int m_stable_redistribute = 0
 
std::unique_ptr< ParGDBm_gdb_object = std::make_unique<ParGDB>()
 
ParGDBBasem_gdb {nullptr}
 
Vector< std::unique_ptr< MultiFab > > m_dummy_mf
 
std::unique_ptr< iMultiFabredistribute_mask_ptr
 
int redistribute_mask_nghost = std::numeric_limits<int>::min()
 
amrex::Vector< intneighbor_procs
 
ParticleBufferMap m_buffer_map
 

Constructor & Destructor Documentation

◆ AmrTracerParticleContainer() [1/3]

amrex::AmrTracerParticleContainer::AmrTracerParticleContainer ( AmrCore amr_core)
inline

◆ ~AmrTracerParticleContainer()

amrex::AmrTracerParticleContainer::~AmrTracerParticleContainer ( )
overridedefault

◆ AmrTracerParticleContainer() [2/3]

amrex::AmrTracerParticleContainer::AmrTracerParticleContainer ( const AmrTracerParticleContainer )
delete

◆ AmrTracerParticleContainer() [3/3]

amrex::AmrTracerParticleContainer::AmrTracerParticleContainer ( AmrTracerParticleContainer &&  )
defaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

AmrTracerParticleContainer& amrex::AmrTracerParticleContainer::operator= ( AmrTracerParticleContainer &&  )
defaultnoexcept

◆ operator=() [2/2]

AmrTracerParticleContainer& amrex::AmrTracerParticleContainer::operator= ( const AmrTracerParticleContainer )
delete

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