|
| LinkedCells (const std::array< double, 3 > &boxMin, const std::array< double, 3 > &boxMax, const double cutoff, const double skin, const unsigned int rebuildFrequency, const double cellSizeFactor=1.0, LoadEstimatorOption loadEstimator=LoadEstimatorOption::squaredParticlesPerCell) |
| Constructor of the LinkedCells class.
|
|
ContainerOption | getContainerType () const override |
| Get the ContainerType.
|
|
CellType | getParticleCellTypeEnum () const override |
| Get the ParticleCell type as an Enum.
|
|
void | reserve (size_t numParticles, size_t numParticlesHaloEstimate) override |
| Reserve memory for a given number of particles in the container and logic layers.
|
|
void | addParticleImpl (const ParticleType &p) override |
| Adds a particle to the container.
|
|
void | addHaloParticleImpl (const ParticleType &haloParticle) override |
| Adds a particle to the container that lies in the halo region of the container.
|
|
bool | updateHaloParticle (const ParticleType &haloParticle) override |
| Update a halo particle of the container with the given haloParticle.
|
|
void | deleteHaloParticles () override |
| Deletes all halo particles.
|
|
void | rebuildNeighborLists (TraversalInterface *traversal) override |
| Rebuilds the neighbor lists for the next traversals.
|
|
BalancedTraversal::EstimatorFunction | getLoadEstimatorFunction () |
| Generates the load estimation function depending on _loadEstimator.
|
|
void | computeInteractions (TraversalInterface *traversal) override |
| Iterates over all particle multiples (e.g.
|
|
std::vector< ParticleType > | updateContainer (bool keepNeighborListsValid) override |
| Updates the container.
|
|
TraversalSelectorInfo | getTraversalSelectorInfo () const override |
| Generates a traversal selector info for this container.
|
|
std::tuple< const Particle_T *, size_t, size_t > | getParticle (size_t cellIndex, size_t particleIndex, IteratorBehavior iteratorBehavior, const std::array< double, 3 > &boxMin, const std::array< double, 3 > &boxMax) const override |
| Fetch the pointer to a particle, identified via a cell and particle index.
|
|
std::tuple< const Particle_T *, size_t, size_t > | getParticle (size_t cellIndex, size_t particleIndex, IteratorBehavior iteratorBehavior) const override |
| Fetch the pointer to a particle, identified via a cell and particle index.
|
|
template<bool regionIter> |
std::tuple< const Particle_T *, size_t, size_t > | getParticleImpl (size_t cellIndex, size_t particleIndex, IteratorBehavior iteratorBehavior, const std::array< double, 3 > &boxMin, const std::array< double, 3 > &boxMax) const |
| Container specific implementation for getParticle.
|
|
bool | deleteParticle (Particle_T &particle) override |
| Deletes the given particle as long as this does not compromise the validity of the container.
|
|
bool | deleteParticle (size_t cellIndex, size_t particleIndex) override |
| Deletes the particle at the given index positions as long as this does not compromise the validity of the container.
|
|
ContainerIterator< ParticleType, true, false > | begin (IteratorBehavior behavior=autopas::IteratorBehavior::ownedOrHalo, typename ContainerIterator< ParticleType, true, false >::ParticleVecType *additionalVectors=nullptr) override |
| Iterate over all particles using for(auto iter = container.begin(); iter.isValid(); ++iter) .
|
|
ContainerIterator< ParticleType, false, false > | begin (IteratorBehavior behavior=autopas::IteratorBehavior::ownedOrHalo, typename ContainerIterator< ParticleType, false, false >::ParticleVecType *additionalVectors=nullptr) const override |
| Iterate over all particles using for(auto iter = container.begin(); iter.isValid(); ++iter) .
|
|
template<typename Lambda > |
void | forEach (Lambda forEachLambda, IteratorBehavior behavior=IteratorBehavior::ownedOrHalo) |
| Execute code on all particles in this container as defined by a lambda function.
|
|
template<typename Lambda , typename A > |
void | reduce (Lambda reduceLambda, A &result, IteratorBehavior behavior=IteratorBehavior::ownedOrHalo) |
| Reduce properties of particles as defined by a lambda function.
|
|
ContainerIterator< ParticleType, true, true > | getRegionIterator (const std::array< double, 3 > &lowerCorner, const std::array< double, 3 > &higherCorner, IteratorBehavior behavior, typename ContainerIterator< ParticleType, true, true >::ParticleVecType *additionalVectors=nullptr) override |
| Iterate over all particles in a specified region for(auto iter = container.getRegionIterator(lowCorner, highCorner);iter.isValid();++iter) .
|
|
ContainerIterator< ParticleType, false, true > | getRegionIterator (const std::array< double, 3 > &lowerCorner, const std::array< double, 3 > &higherCorner, IteratorBehavior behavior, typename ContainerIterator< ParticleType, false, true >::ParticleVecType *additionalVectors=nullptr) const override |
| Iterate over all particles in a specified region for(auto iter = container.getRegionIterator(lowCorner, highCorner);iter.isValid();++iter) .
|
|
template<typename Lambda > |
void | forEachInRegion (Lambda forEachLambda, const std::array< double, 3 > &lowerCorner, const std::array< double, 3 > &higherCorner, IteratorBehavior behavior) |
| Execute code on all particles in this container in a certain region as defined by a lambda function.
|
|
template<typename Lambda , typename A > |
void | reduceInRegion (Lambda reduceLambda, A &result, const std::array< double, 3 > &lowerCorner, const std::array< double, 3 > &higherCorner, IteratorBehavior behavior) |
| Execute code on all particles in this container in a certain region as defined by a lambda function.
|
|
internal::CellBlock3D< ParticleCell > & | getCellBlock () |
| Get the cell block, not supposed to be used except by verlet lists.
|
|
const internal::CellBlock3D< ParticleCell > & | getCellBlock () const |
| Get the cell block, not supposed to be used except by verlet lists.
|
|
std::vector< ParticleCell > & | getCells () |
| Returns a non-const reference to the cell data structure.
|
|
Public Member Functions inherited from autopas::CellBasedParticleContainer< FullParticleCell< Particle_T > > |
| CellBasedParticleContainer (const std::array< double, 3 > &boxMin, const std::array< double, 3 > &boxMax, const double cutoff, double skin, unsigned int rebuildFrequency) |
| Constructor of CellBasedParticleContainer.
|
|
| CellBasedParticleContainer (const CellBasedParticleContainer &obj)=delete |
| Delete the copy constructor to prevent unwanted copies.
|
|
| ~CellBasedParticleContainer () override=default |
| Destructor of CellBasedParticleContainer.
|
|
CellBasedParticleContainer & | operator= (const CellBasedParticleContainer &other)=delete |
| Delete the copy assignment operator to prevent unwanted copies No particle container should ever be copied.
|
|
const std::array< double, 3 > & | getBoxMax () const final |
| Get the upper corner of the container without halo.
|
|
const std::array< double, 3 > & | getBoxMin () const final |
| Get the lower corner of the container without halo.
|
|
double | getCutoff () const final |
| Return the cutoff of the container.
|
|
void | setCutoff (double cutoff) final |
| Set the cutoff of the container.
|
|
double | getInteractionLength () const final |
| Return the interaction length (cutoff+skin) of the container.
|
|
double | getVerletSkin () const final |
| Returns the verlet Skin length.
|
|
void | deleteAllParticles () override |
| Deletes all particles from the container.
|
|
size_t | getNumberOfParticles (IteratorBehavior behavior) const override |
| Get the number of particles with respect to the specified IteratorBehavior.
|
|
size_t | size () const override |
| Get the total number of particles saved in the container (owned + halo + dummy).
|
|
const std::vector< FullParticleCell< Particle_T > > & | getCells () const |
| Get immutable vector of cells.
|
|
Public Member Functions inherited from autopas::ParticleContainerInterface< ParticleCell::ParticleType > |
virtual CellType | getParticleCellTypeEnum () const=0 |
| Get the ParticleCell type as an Enum.
|
|
| ParticleContainerInterface (double skin) |
| Constructor.
|
|
| ParticleContainerInterface (const ParticleContainerInterface &obj)=delete |
| Delete the copy constructor to prevent unwanted copies.
|
|
virtual | ~ParticleContainerInterface ()=default |
| Destructor of ParticleContainerInterface.
|
|
ParticleContainerInterface & | operator= (const ParticleContainerInterface &other)=delete |
| Delete the copy assignment operator to prevent unwanted copies.
|
|
virtual ContainerOption | getContainerType () const=0 |
| Get the ContainerType.
|
|
virtual void | reserve (size_t numParticles, size_t numParticlesHaloEstimate)=0 |
| Reserve memory for a given number of particles in the container and logic layers.
|
|
void | addParticle (const ParticleCell::ParticleType &p) |
| Adds a particle to the container.
|
|
void | addHaloParticle (const ParticleCell::ParticleType &haloParticle) |
| Adds a particle to the container that lies in the halo region of the container.
|
|
virtual bool | updateHaloParticle (const ParticleCell::ParticleType &haloParticle)=0 |
| Update a halo particle of the container with the given haloParticle.
|
|
virtual void | rebuildNeighborLists (TraversalInterface *traversal)=0 |
| Rebuilds the neighbor lists for the next traversals.
|
|
virtual void | deleteHaloParticles ()=0 |
| Deletes all halo particles.
|
|
virtual void | deleteAllParticles ()=0 |
| Deletes all particles.
|
|
virtual size_t | getNumberOfParticles (IteratorBehavior behavior=IteratorBehavior::owned) const=0 |
| Get the number of particles with respect to the specified IteratorBehavior.
|
|
virtual size_t | size () const=0 |
| Get the total number of particles saved in the container (owned + halo + dummy).
|
|
virtual ContainerIterator< ParticleType, true, false > | begin (IteratorBehavior behavior=autopas::IteratorBehavior::ownedOrHalo, typename ContainerIterator< ParticleType, true, false >::ParticleVecType *additionalVectors=nullptr)=0 |
| Iterate over all particles using for(auto iter = container.begin(); iter.isValid(); ++iter) .
|
|
virtual ContainerIterator< ParticleType, false, false > | begin (IteratorBehavior behavior=autopas::IteratorBehavior::ownedOrHalo, typename ContainerIterator< ParticleType, false, false >::ParticleVecType *additionalVectors=nullptr) const=0 |
| Iterate over all particles using for(auto iter = container.begin(); iter.isValid(); ++iter) .
|
|
virtual ContainerIterator< ParticleType, false, false > | cbegin (IteratorBehavior behavior=autopas::IteratorBehavior::ownedOrHalo, typename ContainerIterator< ParticleType, false, false >::ParticleVecType *additionalVectors=nullptr) const final |
| Iterate over all particles using for(auto iter = container.begin(); iter.isValid(); ++iter) .
|
|
virtual ContainerIterator< ParticleType, true, true > | getRegionIterator (const std::array< double, 3 > &lowerCorner, const std::array< double, 3 > &higherCorner, IteratorBehavior behavior, typename ContainerIterator< ParticleType, true, true >::ParticleVecType *additionalVectors=nullptr)=0 |
| Iterate over all particles in a specified region for(auto iter = container.getRegionIterator(lowCorner, highCorner);iter.isValid();++iter) .
|
|
virtual ContainerIterator< ParticleType, false, true > | getRegionIterator (const std::array< double, 3 > &lowerCorner, const std::array< double, 3 > &higherCorner, IteratorBehavior behavior, typename ContainerIterator< ParticleType, false, true >::ParticleVecType *additionalVectors=nullptr) const=0 |
| Iterate over all particles in a specified region for(auto iter = container.getRegionIterator(lowCorner, highCorner);iter.isValid();++iter) .
|
|
constexpr bool | end () const |
| Dummy to make range-based for loops work.
|
|
virtual void | computeInteractions (TraversalInterface *traversal)=0 |
| Iterates over all particle multiples (e.g.
|
|
virtual const std::array< double, 3 > & | getBoxMax () const=0 |
| Get the upper corner of the container without halo.
|
|
virtual const std::array< double, 3 > & | getBoxMin () const=0 |
| Get the lower corner of the container without halo.
|
|
virtual double | getCutoff () const=0 |
| Return the cutoff of the container.
|
|
virtual void | setCutoff (double cutoff)=0 |
| Set the cutoff of the container.
|
|
virtual double | getVerletSkin () const=0 |
| Return the verletSkin of the container verletSkin.
|
|
virtual size_t | getStepsSinceLastRebuild () const |
| Return the number of time-steps since last neighbor list rebuild.
|
|
virtual void | setStepsSinceLastRebuild (size_t stepsSinceLastRebuild) |
| Set the number of time-steps since last neighbor list rebuild.
|
|
virtual double | getInteractionLength () const=0 |
| Return the interaction length (cutoff+skin) of the container.
|
|
virtual std::vector< ParticleType > | updateContainer (bool keepNeighborListsValid)=0 |
| Updates the container.
|
|
virtual TraversalSelectorInfo | getTraversalSelectorInfo () const=0 |
| Generates a traversal selector info for this container.
|
|
std::set< TraversalOption > | getAllTraversals (const InteractionTypeOption interactionType) const |
| Generates a list of all traversals that are theoretically applicable to this container.
|
|
virtual std::tuple< const ParticleCell::ParticleType *, size_t, size_t > | getParticle (size_t cellIndex, size_t particleIndex, IteratorBehavior iteratorBehavior) const=0 |
| Fetch the pointer to a particle, identified via a cell and particle index.
|
|
virtual std::tuple< const ParticleCell::ParticleType *, size_t, size_t > | getParticle (size_t cellIndex, size_t particleIndex, IteratorBehavior iteratorBehavior, const std::array< double, 3 > &boxMin, const std::array< double, 3 > &boxMax) const=0 |
| Fetch the pointer to a particle, identified via a cell and particle index.
|
|
std::tuple< ParticleCell::ParticleType *, size_t, size_t > | getParticle (size_t cellIndex, size_t particleIndex, IteratorBehavior iteratorBehavior, const std::array< double, 3 > &boxMin, const std::array< double, 3 > &boxMax) |
| Fetch the pointer to a particle, identified via a cell and particle index.
|
|
std::tuple< ParticleCell::ParticleType *, size_t, size_t > | getParticle (size_t cellIndex, size_t particleIndex, IteratorBehavior iteratorBehavior) |
| Fetch the pointer to a particle, identified via a cell and particle index.
|
|
virtual bool | deleteParticle (ParticleCell::ParticleType &particle)=0 |
| Deletes the given particle as long as this does not compromise the validity of the container.
|
|
virtual bool | deleteParticle (size_t cellIndex, size_t particleIndex)=0 |
| Deletes the particle at the given index positions as long as this does not compromise the validity of the container.
|
|