20 #ifndef GEOS_MESH_TOPARTICLERELATION_HPP_
21 #define GEOS_MESH_TOPARTICLERELATION_HPP_
28 class ParticleManager;
35 template<
typename BASETYPE >
49 template<
typename ... DIMS >
173 std::vector< localIndex >
const & erArray,
174 std::vector< localIndex >
const & esrArray,
175 std::vector< localIndex >
const & eiArray );
184 int const numToReserve );
The ParticleManager class provides an interface to ObjectManagerBase in order to manage ParticleRegio...
A relationship to a particle.
void setParticleManager(ParticleManager const &input)
Set the ParticleRegionManager.
ParticleManager const * m_particleManager
The current ParticleRegionManager.
BASETYPE base_type
The type of the underlying relationship storage object.
localIndex size(int const dim) const
Get the size of a specific dimension of the relationship storage.
BASETYPE m_toParticleRegion
The relationship between object indices and particle regions.
BASETYPE m_toParticleSubRegion
The relationship between object indices and particle subregions.
void resize(DIMS... newdims)
Resize the underlying relationship storage.
array1d< localIndex > m_numParticles
The number of particles associated with the object.
ParticleManager const * getParticleManager() const
Get the ParticleRegionManager.
localIndex size() const
Get the current size of the relationship storage.
BASETYPE m_toParticleIndex
The relationship between object indices and particle indices.
void reserveNeighbors(OrderedVariableToManyParticleRelation &relation, int const numToReserve)
Reserve a set number of entities for a particle to relate to.
void insertMany(OrderedVariableToManyParticleRelation &relation, localIndex const firstIndex, std::vector< localIndex > const &erArray, std::vector< localIndex > const &esrArray, std::vector< localIndex > const &eiArray)
Insert a particle relation for several objects in the relation. Does NOT check for existing membershi...
ToParticleRelation< ArrayOfArrays< localIndex > > OrderedVariableToManyParticleRelation
A ToParticleRelation where each object is related to an arbitrary number of particles.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
void insert(OrderedVariableToManyElementRelation &relation, localIndex const firstIndex, localIndex const er, localIndex const esr, localIndex const ei)
Insert an element relation for an object in the relation.
void erase(OrderedVariableToManyElementRelation &relation, localIndex const firstIndex, localIndex const er, localIndex const esr, localIndex const ei)
Remove an element relation from an object in the relation.
ToParticleRelation< array2d< localIndex > > FixedToManyParticleRelation
A ToParticleRelation where each object is related to the same number of particles.
Array< T, 1 > array1d
Alias for 1D array.
void fastInsert(OrderedVariableToManyParticleRelation &relation, localIndex const firstIndex, localIndex const er, localIndex const esr, localIndex const ei)
Insert a particle relation for an object in the relation. This is slightly faster than "insert" becau...