diff --git a/amrex/docs_html/_downloads/008eb6dbfab802633dff40122ece848c/amrex.pdf b/amrex/docs_html/_downloads/008eb6dbfab802633dff40122ece848c/amrex.pdf
index 1eca599d2d..442f3a284c 100644
Binary files a/amrex/docs_html/_downloads/008eb6dbfab802633dff40122ece848c/amrex.pdf and b/amrex/docs_html/_downloads/008eb6dbfab802633dff40122ece848c/amrex.pdf differ
diff --git a/amrex/docs_html/doxygen/AMReX__NeighborParticles_8H_source.html b/amrex/docs_html/doxygen/AMReX__NeighborParticles_8H_source.html
index 80a405c9a5..e5c8016846 100644
--- a/amrex/docs_html/doxygen/AMReX__NeighborParticles_8H_source.html
+++ b/amrex/docs_html/doxygen/AMReX__NeighborParticles_8H_source.html
@@ -658,7 +658,7 @@
Particle< NStructReal+NArrayReal, NStructInt+NArrayInt > SuperParticleType
The type of the "SuperParticle" which stored all components in AoS form.
Definition: AMReX_ParticleContainer.H:169
typename ParticleTileType::AoS AoS
Definition: AMReX_ParticleContainer.H:186
typename AoS::ParticleVector ParticleVector
Definition: AMReX_ParticleContainer.H:191
-void AddIntComp(T communicate=true)
Definition: AMReX_ParticleContainer.H:1251
+void AddIntComp(T communicate=true)
Definition: AMReX_ParticleContainer.H:1263
void AddRealComp(T communicate=true)
Definition: AMReX_ParticleContainer.H:1241
typename SoA::IntVector IntVector
Definition: AMReX_ParticleContainer.H:190
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)
Definition: AMReX_ParticleContainerI.H:1066
diff --git a/amrex/docs_html/doxygen/AMReX__ParticleContainerI_8H_source.html b/amrex/docs_html/doxygen/AMReX__ParticleContainerI_8H_source.html
index 6a6037eb0d..99f6cc6409 100644
--- a/amrex/docs_html/doxygen/AMReX__ParticleContainerI_8H_source.html
+++ b/amrex/docs_html/doxygen/AMReX__ParticleContainerI_8H_source.html
@@ -1353,8 +1353,8 @@
1263 int finest_lev_particles;
1264 if (lev_max == -1) {
- 1265 lev_max = theEffectiveFinestLevel;
- 1266 finest_lev_particles = m_particles.size() - 1;
+ 1265 lev_max = theEffectiveFinestLevel;
+ 1266 finest_lev_particles = m_particles.size() - 1;
1268 finest_lev_particles = lev_max;
@@ -1367,10 +1367,10 @@
1276 auto assign_grid = m_particle_locator.getGridAssignor();
-
+
1280 int num_levels = finest_lev_particles + 1;
- 1281 op.setNumLevels(num_levels);
- 1282 Vector<std::map<int, int> > new_sizes(num_levels);
+
+
1283 const auto plo = Geom(0).ProbLoArray();
1284 const auto phi = Geom(0).ProbHiArray();
1285 const auto rlo = Geom(0).ProbLoArrayInParticleReal();
@@ -1382,26 +1382,26 @@
1291 for (
auto& kv : plev)
1293 int gid = kv.first.first;
- 1294 int tid = kv.first.second;
+ 1294 int tid = kv.first.second;
1295 auto index = std::make_pair(gid, tid);
1297 auto& src_tile = plev[index];
1298 const size_t np = src_tile.numParticles();
- 1301 std::forward<CellAssignor>(CellAssignor{}),
+
1303 plo, phi, rlo, rhi, is_per, lev, gid, tid,
1304 lev_min, lev_max, nGrow, remove_negative);
1306 int num_move = np - num_stay;
1307 new_sizes[lev][gid] = num_stay;
- 1308 op.resize(gid, lev, num_move);
+ 1308 op.
resize(gid, lev, num_move);
- 1310 auto p_boxes = op.m_boxes[lev][gid].dataPtr();
- 1311 auto p_levs = op.m_levels[lev][gid].dataPtr();
- 1312 auto p_src_indices = op.m_src_indices[lev][gid].dataPtr();
- 1313 auto p_periodic_shift = op.m_periodic_shift[lev][gid].dataPtr();
+ 1310 auto p_boxes = op.
m_boxes[lev][gid].dataPtr();
+ 1311 auto p_levs = op.
m_levels[lev][gid].dataPtr();
+
+
1314 auto ptd = src_tile.getParticleTileData();
@@ -1451,7 +1451,7 @@
- 1363 for (
int lev = lev_min; lev <= lev_max; lev++)
+ 1363 for (
int lev = lev_min; lev <= lev_max; lev++)
@@ -1462,49 +1462,49 @@
1371 << m_particles.size() <<
" to " << theEffectiveFinestLevel+1 <<
'\n';
-
+
1375 m_particles.resize(theEffectiveFinestLevel + 1);
1376 m_dummy_mf.resize(theEffectiveFinestLevel + 1);
- 1381 plan.buildMPIFinish(BufferMap());
+ 1381 plan.buildMPIFinish(BufferMap());
-
+ 1383 unpackBuffer(*
this, plan, snd_buffer, RedistributeUnpackPolicy());
-
+ 1385 unpackRemotes(*
this, plan, rcv_buffer, RedistributeUnpackPolicy());
-
-
+ 1390 Gpu::PinnedVector<char> pinned_snd_buffer;
+ 1391 Gpu::PinnedVector<char> pinned_rcv_buffer;
1393 if (snd_buffer.arena()->isPinned()) {
1394 plan.buildMPIFinish(BufferMap());
-
-
+ 1398 pinned_snd_buffer.resize(snd_buffer.
size());
+
1400 plan.buildMPIFinish(BufferMap());
- 1405 rcv_buffer.resize(pinned_rcv_buffer.
size());
- 1406 unpackBuffer(*
this, plan, snd_buffer, RedistributeUnpackPolicy());
+ 1405 rcv_buffer.resize(pinned_rcv_buffer.size());
+
-
- 1409 unpackRemotes(*
this, plan, rcv_buffer, RedistributeUnpackPolicy());
+
+
-
+
@@ -1513,8 +1513,8 @@
1422 template <
typename ParticleType,
int NArrayReal,
int NArrayInt,
1423 template<
class>
class Allocator,
class CellAssignor>
- 1425 ParticleContainer_impl<ParticleType, NArrayReal, NArrayInt, Allocator, CellAssignor>
- 1426 ::RedistributeCPU (
int lev_min,
int lev_max,
int nGrow,
int local,
bool remove_negative)
+
+
1428 BL_PROFILE(
"ParticleContainer::RedistributeCPU()");
@@ -2676,7 +2676,6 @@
Definition: AMReX_PODVector.H:217
size_type size() const noexcept
Definition: AMReX_PODVector.H:536
T * data() noexcept
Definition: AMReX_PODVector.H:554
-void resize(size_type a_new_size)
Definition: AMReX_PODVector.H:586
T * dataPtr() noexcept
Definition: AMReX_PODVector.H:558
Definition: AMReX_ParIter.H:147
Definition: AMReX_ParIter.H:118
@@ -2802,6 +2801,13 @@
Definition: AMReX_ParticleUtil.H:341
uint64_t m_idcpu
Definition: AMReX_Particle.H:255
+Definition: AMReX_ParticleCommunication.H:58
+void setNumLevels(int num_levels)
Definition: AMReX_ParticleCommunication.cpp:14
+Vector< std::map< int, Gpu::DeviceVector< IntVect > > > m_periodic_shift
Definition: AMReX_ParticleCommunication.H:62
+Vector< std::map< int, Gpu::DeviceVector< int > > > m_boxes
Definition: AMReX_ParticleCommunication.H:59
+Vector< std::map< int, Gpu::DeviceVector< int > > > m_levels
Definition: AMReX_ParticleCommunication.H:60
+void resize(int gid, int lev, int size)
Definition: AMReX_ParticleCommunication.cpp:22
+Vector< std::map< int, Gpu::DeviceVector< int > > > m_src_indices
Definition: AMReX_ParticleCommunication.H:61
A struct used for storing a particle's position in the AMR hierarchy.
Definition: AMReX_ParticleContainer.H:90
Box m_grown_gridbox
Definition: AMReX_ParticleContainer.H:97
IntVect m_cell
Definition: AMReX_ParticleContainer.H:94
diff --git a/amrex/docs_html/doxygen/AMReX__ParticleContainer_8H_source.html b/amrex/docs_html/doxygen/AMReX__ParticleContainer_8H_source.html
index 9f7ba12514..0459ddb043 100644
--- a/amrex/docs_html/doxygen/AMReX__ParticleContainer_8H_source.html
+++ b/amrex/docs_html/doxygen/AMReX__ParticleContainer_8H_source.html
@@ -631,134 +631,159 @@
-
-
- 1249 template <
typename T,
- 1250 std::enable_if_t<std::is_same_v<T,bool>,
int> = 0>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1329 template <
typename P>
-
- 1331 int lev_min = 0,
int lev_max = -1,
int nGrow=0,
int local_grid=-1)
const;
-
-
- 1344 template <
typename P>
-
- 1346 int lev_min = 0,
int lev_max = -1,
int local_grid=-1)
const;
-
-
-
-
-
-
- 1353 const Vector<std::map<std::pair<int, int>,
IntVector>>& particle_io_flags,
bool is_checkpoint)
const;
- 1354 #ifdef AMREX_USE_HDF5
-
-
-
-
-
- 1360 template <
class RTYPE>
- 1361 void ReadParticles (
int cnt,
int grd,
int lev, std::ifstream& ifs,
int finest_level_in_file,
bool convert_ids);
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1375 int lev_min = 0,
int lev_max = 0,
int nGrow = 0,
int local=0);
-
- 1377 template <
typename P>
-
- 1379 int lev_min,
int lev_max,
int nGrow,
int local_grid=-1)
const;
-
-
+
+
+ 1249 for (
int lev = 0; lev <
numLevels(); ++lev) {
+
+
+ 1252 auto np = tile.numParticles();
+
+ 1254 auto& soa = tile.GetStructOfArrays();
+
+
+
+
+
+
+ 1261 template <
typename T,
+ 1262 std::enable_if_t<std::is_same_v<T,bool>,
int> = 0>
+
+
+
+
+
+
+
+
+ 1271 for (
int lev = 0; lev <
numLevels(); ++lev) {
+
+
+ 1274 auto np = tile.numParticles();
+
+ 1276 auto& soa = tile.GetStructOfArrays();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1364 template <
typename P>
+
+ 1366 int lev_min = 0,
int lev_max = -1,
int nGrow=0,
int local_grid=-1)
const;
+
+
+ 1379 template <
typename P>
+
+ 1381 int lev_min = 0,
int lev_max = -1,
int local_grid=-1)
const;
-
-
-
-
-
-
-
-
-
- 1392 template <
int T_NStructReal,
int T_NStructInt,
int T_NArrayReal,
int T_NArrayInt,
template<
class>
class Allocator,
class CellAssignor>
-
+
+
+
+
+
+ 1388 const Vector<std::map<std::pair<int, int>,
IntVector>>& particle_io_flags,
bool is_checkpoint)
const;
+ 1389 #ifdef AMREX_USE_HDF5
+
+
+
+
-
-
+ 1395 template <
class RTYPE>
+ 1396 void ReadParticles (
int cnt,
int grd,
int lev, std::ifstream& ifs,
int finest_level_in_file,
bool convert_ids);
-
-
-
-
-
- 1403 #ifdef AMREX_USE_HDF5
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
+ 1410 int lev_min = 0,
int lev_max = 0,
int nGrow = 0,
int local=0);
+
+ 1412 template <
typename P>
+
+ 1414 int lev_min,
int lev_max,
int nGrow,
int local_grid=-1)
const;
+
+
+
+
+
+
+
+
+
+
+
+
+ 1427 template <
int T_NStructReal,
int T_NStructInt,
int T_NArrayReal,
int T_NArrayInt,
template<
class>
class Allocator,
class CellAssignor>
+
+
+
+
+
+
+
+
+
+
+ 1438 #ifdef AMREX_USE_HDF5
+
+
+
+
+
+
@@ -811,6 +836,7 @@
Rectangular problem domain geometry.
Definition: AMReX_Geometry.H:73
Definition: AMReX_IntVect.H:46
Definition: AMReX_MFIter.H:57
+bool isValid() const noexcept
Is the iterator valid i.e. is it associated with a FAB?
Definition: AMReX_MFIter.H:141
A collection (stored as an array) of FArrayBox objects.
Definition: AMReX_MultiFab.H:38
Definition: AMReX_PODVector.H:217
Definition: AMReX_ParIter.H:147
@@ -820,37 +846,38 @@
Definition: AMReX_ParticleContainerBase.H:23
ParGDBBase * m_gdb
Definition: AMReX_ParticleContainerBase.H:264
void Define(ParGDBBase *gdb)
Definition: AMReX_ParticleContainerBase.H:83
+int numLevels() const
the number of defined levels in the ParticleContainer
Definition: AMReX_ParticleContainerBase.H:222
A distributed container for Particles sorted onto the levels, grids, and tiles of a block-structured ...
Definition: AMReX_ParticleContainer.H:144
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.
Definition: AMReX_AmrParticles.H:17
void SetUseUnlink(bool tf) const
Definition: AMReX_ParticleContainer.H:1223
-Vector< ParticleLevel > m_particles
Definition: AMReX_ParticleContainer.H:1389
-Vector< Long > nParticlesAtLevelPrePost
Definition: AMReX_ParticleContainer.H:1307
+Vector< ParticleLevel > m_particles
Definition: AMReX_ParticleContainer.H:1424
+Vector< Long > nParticlesAtLevelPrePost
Definition: AMReX_ParticleContainer.H:1342
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.
void InitFromBinaryFile(const std::string &file, int extradata)
Definition: AMReX_ParticleInit.H:483
bool GetLevelDirectoriesCreated() const
Definition: AMReX_ParticleContainer.H:1211
-size_t superparticle_size
Definition: AMReX_ParticleContainer.H:1387
+size_t superparticle_size
Definition: AMReX_ParticleContainer.H:1422
std::array< Long, 3 > ByteSpread() const
Definition: AMReX_ParticleContainerI.H:467
void clearParticles()
Clear all the particles in this container. This does not free memory.
Definition: AMReX_ParticleContainerI.H:976
void copyParticles(const PCType &other, bool local=false)
Copy particles from other to this ParticleContainer. Will clear all the particles from this container...
-bool doUnlink
Definition: AMReX_ParticleContainer.H:1303
-Vector< Vector< int > > whichPrePost
Definition: AMReX_ParticleContainer.H:1308
+bool doUnlink
Definition: AMReX_ParticleContainer.H:1338
+Vector< Vector< int > > whichPrePost
Definition: AMReX_ParticleContainer.H:1343
void WriteParticleRealData(void *data, size_t size, std::ostream &os) const
Write a contiguous chunk of real particle data to an ostream.
Definition: AMReX_ParticleIO.H:11
const ParticleTileType & ParticlesAt(int lev, const Iterator &iter) const
Return the ParticleTile for level "lev" and Iterator "iter". Const version.
Definition: AMReX_ParticleContainer.H:1084
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.
Definition: AMReX_ParticleContainer.H:276
-std::string HdrFileNamePrePost
Definition: AMReX_ParticleContainer.H:1311
-Vector< Vector< Long > > wherePrePost
Definition: AMReX_ParticleContainer.H:1310
+std::string HdrFileNamePrePost
Definition: AMReX_ParticleContainer.H:1346
+Vector< Vector< Long > > wherePrePost
Definition: AMReX_ParticleContainer.H:1345
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 c...
RealDescriptor ParticleRealDescriptor
Definition: AMReX_ParticleContainer.H:176
ParticleTileType & DefineAndReturnParticleTile(int lev, int grid, int tile)
Define and return the ParticleTile for level "lev", grid "grid" and tile "tile.".
Definition: AMReX_ParticleContainer.H:1134
-int nOutFilesPrePost
Definition: AMReX_ParticleContainer.H:1305
-int maxnextidPrePost
Definition: AMReX_ParticleContainer.H:1304
+int nOutFilesPrePost
Definition: AMReX_ParticleContainer.H:1340
+int maxnextidPrePost
Definition: AMReX_ParticleContainer.H:1339
void WritePlotFile(const std::string &dir, const std::string &name, F &&f) const
This version of WritePlotFile writes all components and assigns component names.
ParticleContainer_impl(ParticleContainer_impl &&) noexcept=default
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.
Definition: AMReX_ParticleContainer.H:743
void addParticles(const PCType &other, bool local=false)
Add particles from other to this ParticleContainer. local controls whether or not to call Redistribut...
std::map< std::pair< int, int >, ParticleTileType > ParticleLevel
Definition: AMReX_ParticleContainer.H:185
-bool levelDirectoriesCreated
Variables for i/o optimization saved for pre and post checkpoint.
Definition: AMReX_ParticleContainer.H:1301
-ContainerLike< NewAllocator > make_alike() const
Definition: AMReX_ParticleContainer.H:1284
+bool levelDirectoriesCreated
Variables for i/o optimization saved for pre and post checkpoint.
Definition: AMReX_ParticleContainer.H:1336
+ContainerLike< NewAllocator > make_alike() const
Definition: AMReX_ParticleContainer.H:1319
void WriteAsciiFile(const std::string &file)
Definition: AMReX_ParticleIO.H:1134
static constexpr int NArrayInt
Number of extra integer components stored in struct-of-array form.
Definition: AMReX_ParticleContainer.H:157
void Initialize()
Definition: AMReX_ParticleContainerI.H:33
@@ -878,59 +905,59 @@
static constexpr int NStructInt
Number of extra integer components in the particle struct.
Definition: AMReX_ParticleContainer.H:153
ParticleContainer_impl()
Default constructor - construct an empty particle container that has no concept of a level hierarchy....
Definition: AMReX_ParticleContainer.H:198
void SetUsePrePost(bool tf) const
Definition: AMReX_ParticleContainer.H:1213
-int NumRealComps() const
Definition: AMReX_ParticleContainer.H:1262
+int NumRealComps() const
Definition: AMReX_ParticleContainer.H:1286
void WritePlotFilePre()
Definition: AMReX_ParticleIO.H:560
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_mi...
void RemoveParticlesAtLevel(int level)
The Following methods are for managing Virtual and Ghost Particles.
Definition: AMReX_ParticleContainerI.H:608
void InitFromAsciiFile(const std::string &file, int extradata, const IntVect *Nrep=nullptr)
Definition: AMReX_ParticleInit.H:37
ParticleTileType & DefineAndReturnParticleTile(int lev, const Iterator &iter)
Define and return the ParticleTile for level "lev", and Iterator "iter".
Definition: AMReX_ParticleContainer.H:1162
Long TotalNumberOfParticles(bool only_valid=true, bool only_local=false) const
Returns # of particles at all levels.
Definition: AMReX_ParticleContainerI.H:351
-Vector< int > h_redistribute_int_comp
Definition: AMReX_ParticleContainer.H:1298
+Vector< int > h_redistribute_int_comp
Definition: AMReX_ParticleContainer.H:1333
typename ParticleTileType::SoA SoA
Definition: AMReX_ParticleContainer.H:187
-virtual void correctCellVectors(int, int, int, const ParticleType &)
Definition: AMReX_ParticleContainer.H:1371
+virtual void correctCellVectors(int, int, int, const ParticleType &)
Definition: AMReX_ParticleContainer.H:1406
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 c...
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)
Definition: AMReX_ParticleContainerI.H:2287
void locateParticle(P &p, ParticleLocData &pld, int lev_min, int lev_max, int nGrow, int local_grid=-1) const
-int NumRuntimeIntComps() const
Definition: AMReX_ParticleContainer.H:1260
+int NumRuntimeIntComps() const
Definition: AMReX_ParticleContainer.H:1284
Long GetNParticlesPrePost() const
Definition: AMReX_ParticleContainer.H:1221
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....
Definition: AMReX_ParticleInit.H:968
void ResizeRuntimeRealComp(int new_size, bool communicate)
Definition: AMReX_ParticleContainerI.H:2488
T_CellAssignor CellAssignor
Definition: AMReX_ParticleContainer.H:148
void RemoveParticlesNotAtFinestLevel()
Definition: AMReX_ParticleContainerI.H:622
-DenseBins< typename ParticleTileType::ParticleTileDataType > m_bins
Definition: AMReX_ParticleContainer.H:1365
+DenseBins< typename ParticleTileType::ParticleTileDataType > m_bins
Definition: AMReX_ParticleContainer.H:1400
void ReadParticleRealData(void *data, size_t size, std::istream &is)
Read a contiguous chunk of real particle data from an istream.
Definition: AMReX_ParticleIO.H:25
void RedistributeCPU(int lev_min=0, int lev_max=-1, int nGrow=0, int local=0, bool remove_negative=true)
Definition: AMReX_ParticleContainerI.H:1426
-int m_num_runtime_int
Definition: AMReX_ParticleContainer.H:1385
+int m_num_runtime_int
Definition: AMReX_ParticleContainer.H:1420
ParticleContainer_impl(ParGDBBase *gdb)
Construct a particle container using a ParGDB object. The container will track changes in the grid st...
Definition: AMReX_ParticleContainer.H:214
void Restart(const std::string &dir, const std::string &file)
Restart from checkpoint.
Definition: AMReX_ParticleIO.H:644
void WritePlotFilePost()
Definition: AMReX_ParticleIO.H:570
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.
Definition: AMReX_ParticleContainer.H:357
void ReadParticles(int cnt, int grd, int lev, std::ifstream &ifs, int finest_level_in_file, bool convert_ids)
void CreateVirtualParticles(int level, AoS &virts) const
Creates virtual particles for a given level that represent in some capacity all particles at finer le...
Definition: AMReX_ParticleContainerI.H:689
-int NumRuntimeRealComps() const
Definition: AMReX_ParticleContainer.H:1259
+int NumRuntimeRealComps() const
Definition: AMReX_ParticleContainer.H:1283
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 compo...
-Long nparticlesPrePost
Definition: AMReX_ParticleContainer.H:1306
+Long nparticlesPrePost
Definition: AMReX_ParticleContainer.H:1341
void InitNRandomPerCell(int n_per_cell, const ParticleInitData &pdata)
This initializes the particle container with n_per_cell randomly distributed particles per cell,...
Definition: AMReX_ParticleInit.H:1547
void WritePlotFile(const std::string &dir, const std::string &name) const
This version of WritePlotFile writes all components and assigns component names.
Definition: AMReX_ParticleIO.H:97
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 int...
-int m_num_runtime_real
Definition: AMReX_ParticleContainer.H:1384
+int m_num_runtime_real
Definition: AMReX_ParticleContainer.H:1419
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...
void CheckpointPre()
Definition: AMReX_ParticleIO.H:447
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 domai...
Definition: AMReX_ParticleContainerI.H:262
-Vector< std::string > filePrefixPrePost
Definition: AMReX_ParticleContainer.H:1312
+Vector< std::string > filePrefixPrePost
Definition: AMReX_ParticleContainer.H:1347
void RedistributeGPU(int lev_min=0, int lev_max=-1, int nGrow=0, int local=0, bool remove_negative=true)
Definition: AMReX_ParticleContainerI.H:1236
int numLocalTilesAtLevel(int lev) const
The total number of tiles on this rank on this level.
Definition: AMReX_ParticleContainer.H:368
void reserveData() override
Definition: AMReX_ParticleContainerI.H:296
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 ...
static constexpr int NStructReal
Number of extra Real components in the particle struct.
Definition: AMReX_ParticleContainer.H:151
-Vector< int > h_redistribute_real_comp
Definition: AMReX_ParticleContainer.H:1297
+Vector< int > h_redistribute_real_comp
Definition: AMReX_ParticleContainer.H:1332
typename Particle< NStructReal, NStructInt >::RealType RealType
The type of the Real data.
Definition: AMReX_ParticleContainer.H:171
bool GetUseUnlink() const
Definition: AMReX_ParticleContainer.H:1227
Vector< Long > NumberOfParticlesInGrid(int level, bool only_valid=true, bool only_local=false) const
Definition: AMReX_ParticleContainerI.H:366
-int NumIntComps() const
Definition: AMReX_ParticleContainer.H:1263
+int NumIntComps() const
Definition: AMReX_ParticleContainer.H:1287
Allocator< T > AllocatorType
The memory allocator in use.
Definition: AMReX_ParticleContainer.H:167
void RedistributeMPI(std::map< int, Vector< char > > ¬_ours, int lev_min=0, int lev_max=0, int nGrow=0, int local=0)
Definition: AMReX_ParticleContainerI.H:1940
-void AddIntComp(T communicate=true)
Definition: AMReX_ParticleContainer.H:1251
+void AddIntComp(T communicate=true)
Definition: AMReX_ParticleContainer.H:1263
ParticleLevel & GetParticles(int lev)
Return the ParticleLevel for level "lev". Non-const version.
Definition: AMReX_ParticleContainer.H:1010
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...
void AddParticlesAtLevel(ParticleTileType &particles, int level, int nGrow=0)
Add particles from a pbox to the grid at this level.
@@ -944,10 +971,10 @@
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 re...
Definition: AMReX_ParticleContainer.H:254
Long superParticleSize() const
Definition: AMReX_ParticleContainer.H:1237
typename SoA::IntVector IntVector
Definition: AMReX_ParticleContainer.H:190
-int num_int_comm_comps
Definition: AMReX_ParticleContainer.H:1388
-size_t particle_size
Definition: AMReX_ParticleContainer.H:1387
+int num_int_comm_comps
Definition: AMReX_ParticleContainer.H:1423
+size_t particle_size
Definition: AMReX_ParticleContainer.H:1422
void SortParticlesByBin(IntVect bin_size)
Sort the particles on each tile by groups of cells, given an IntVect bin_size.
Definition: AMReX_ParticleContainerI.H:1173
-virtual void particlePostLocate(ParticleType &, const ParticleLocData &, const int)
Definition: AMReX_ParticleContainer.H:1368
+virtual void particlePostLocate(ParticleType &, const ParticleLocData &, const int)
Definition: AMReX_ParticleContainer.H:1403
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...
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.
Definition: AMReX_ParticleContainer.H:338
void AddParticlesAtLevel(AoS &particles, int level, int nGrow=0)
Add particles from a pbox to the grid at this level.
@@ -956,7 +983,7 @@
void ResizeRuntimeIntComp(int new_size, bool communicate)
Definition: AMReX_ParticleContainerI.H:2514
void InitFromBinaryMetaFile(const std::string &file, int extradata)
Definition: AMReX_ParticleInit.H:929
void resizeData() override
Definition: AMReX_ParticleContainerI.H:305
-int num_real_comm_comps
Definition: AMReX_ParticleContainer.H:1388
+int num_real_comm_comps
Definition: AMReX_ParticleContainer.H:1423
ParticleTileType & ParticlesAt(int lev, const Iterator &iter)
Return the ParticleTile for level "lev" and Iterator "iter". Non-const version.
Definition: AMReX_ParticleContainer.H:1109
IntVect Index(const P &p, int lev) const
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)
Definition: AMReX_ParticleContainerI.H:1066
@@ -968,10 +995,10 @@
~ParticleContainer_impl() override=default
void CheckpointPost()
Definition: AMReX_ParticleIO.H:504
T_ParticleType ParticleType
Definition: AMReX_ParticleContainer.H:146
-bool m_runtime_comps_defined
Definition: AMReX_ParticleContainer.H:1383
-Vector< Vector< int > > countPrePost
Definition: AMReX_ParticleContainer.H:1309
+bool m_runtime_comps_defined
Definition: AMReX_ParticleContainer.H:1418
+Vector< Vector< int > > countPrePost
Definition: AMReX_ParticleContainer.H:1344
void InitRandomPerBox(Long icount, ULong iseed, const ParticleInitData &pdata)
This initializes the container with icount randomly distributed particles per box,...
Definition: AMReX_ParticleInit.H:1362
-bool usePrePost
Definition: AMReX_ParticleContainer.H:1302
+bool usePrePost
Definition: AMReX_ParticleContainer.H:1337
void SetParticleSize()
Definition: AMReX_ParticleContainerI.H:7
A Box with real dimensions. A RealBox is OK iff volume >= 0.
Definition: AMReX_RealBox.H:21
A Descriptor of the Real Type.
Definition: AMReX_FabConv.H:105
diff --git a/amrex/docs_html/doxygen/classamrex_1_1ParticleContainer__impl.html b/amrex/docs_html/doxygen/classamrex_1_1ParticleContainer__impl.html
index 1e8ace36bc..a630c339a7 100644
--- a/amrex/docs_html/doxygen/classamrex_1_1ParticleContainer__impl.html
+++ b/amrex/docs_html/doxygen/classamrex_1_1ParticleContainer__impl.html
@@ -5104,6 +5104,14 @@