20 #ifndef GEOS_MESH_PARTICLEBLOCKMANAGER_H_
21 #define GEOS_MESH_PARTICLEBLOCKMANAGER_H_
23 #include "mesh/generators/ParticleBlock.hpp"
24 #include "mesh/generators/ParticleBlockManagerABC.hpp"
44 virtual Group *
createChild(
string const & childKey,
string const & childName )
override;
82 template<
typename LAMBDA >
93 static constexpr
char const * particleBlocks() {
return "particleBlocks"; }
Abstract base class for ParticleBlockManager.
The ParticleBlockManager class provides an interface to ObjectManagerBase in order to manage Particle...
void resize(integer_array const &numParticles, string_array const ®ionNames)
Set the number of particles for a set of particle regions.
Group & getParticleBlocks() override
Returns a group containing the cell blocks as ParticleBlockABC instances.
ParticleBlock & getParticleBlock(string const &name)
Get particle block by name.
ParticleBlock & registerParticleBlock(string name)
Registers and returns a particle block of name name.
void forParticleSubRegions(LAMBDA lambda)
Launch kernel function over all the sub-regions.
ParticleBlockManager(string const &name, Group *const parent)
Constructor for ParticleBlockManager object.
virtual Group * createChild(string const &childKey, string const &childName) override
Creates a new sub-Group using the ObjectCatalog functionality.
const Group & getParticleBlocks() const override
Returns a group containing the cell blocks as ParticleBlockABC instances.
T & getGroup(KEY const &key)
Return a reference to a sub-group of the current Group.
virtual void resize(localIndex const newSize)
Resize the group and all contained wrappers that resize with parent.
array1d< string > string_array
A 1-dimensional array of geos::string types.
array1d< integer > integer_array
A 1-dimensional array of geos::integer types.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).