16 #ifndef GEOS_PARTICLEBLOCKABC_HPP
17 #define GEOS_PARTICLEBLOCKABC_HPP
49 Group *
const parent )
148 template<
typename LAMBDA >
151 for(
auto * wrapperBase: this->getExternalProperties() )
153 lambda( *wrapperBase );
168 virtual std::list< dataRepository::WrapperBase * > getExternalProperties() = 0;
virtual array1d< real64 > getParticleDamage() const =0
Get the list of particle damage values in this subregion.
ParticleBlockABC(string const &name, Group *const parent)
Constructor.
virtual array1d< int > getParticleSurfaceFlag() const =0
Get the list of particle surface flag values in this subregion.
virtual array2d< real64 > getParticleVelocity() const =0
Get the list of particle velocities in this subregion.
virtual array1d< real64 > getParticleVolume() const =0
Get the list of particle volumes in this subregion.
virtual array1d< real64 > getParticleStrengthScale() const =0
Get the list of particle strength scale values in this subregion.
void forExternalProperties(LAMBDA &&lambda)
Helper function to apply a lambda function over all the external properties of the subregion.
virtual localIndex numParticles() const =0
Get the number of particles.
virtual array1d< globalIndex > localToGlobalMap() const =0
Get local to global map.
virtual bool hasRVectors() const =0
Query whether this subregion has particles of a type that have r-vectors that depend on the deformati...
virtual array1d< globalIndex > getParticleID() const =0
Get the list of particle global IDs in this subregion.
virtual array2d< real64 > getParticleMaterialDirection() const =0
Get the list of particle material directions in this subregion.
virtual array2d< real64 > getParticleCenter() const =0
Get the list of particle center locations in this subregion.
virtual array3d< real64 > getParticleRVectors() const =0
Get the list of particle r-vectors in this subregion.
virtual array1d< int > getParticleGroup() const =0
Get the list of particle group numbers (for contact) in this subregion.
virtual ParticleType getParticleType() const =0
Get the type of particle in this subregion.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
Array< T, 3, PERMUTATION > array3d
Alias for 3D array.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
ParticleType
Denotes type of particle shape/interpolation scheme.
Array< T, 1 > array1d
Alias for 1D array.