AutoPas  3.0.0
Loading...
Searching...
No Matches
Classes | Functions
autopas::internal Namespace Reference

This namespace is used for implementation specifics. More...

Classes

class  AsBuildPairGeneratorFunctor
 This functor can generate or check variable verlet lists using the typical pairwise traversal. More...
 
class  CellBlock3D
 Class that manages a block of ParticleCells. More...
 
class  CellBorderAndFlagManager
 Interface class to handle cell borders and cell types of cells. More...
 
class  CellFunctor
 A cell functor. More...
 
class  CellFunctor3B
 A cell functor. More...
 
class  Cluster
 This class represents a cluster in the VerletClusterLists container. More...
 
class  ClusterTower
 This class represents one tower for clusters in the VerletClusterLists container. More...
 
class  ClusterTowerBlock2D
 Class to manage the grid of towers for the Verlet Cluster Lists container. More...
 
class  ParticleDeletedObserver
 Class that is notified when a particle is deleted. More...
 
class  UnknowingCellBorderAndFlagManager
 This is a FlagManager that does not know about the actual cells it contains. More...
 
class  VCLClusterFunctor
 Provides methods to traverse a single cluster and a pair of clusters. More...
 
class  VerletClusterListsRebuilder
 Helper class for rebuilding the VerletClusterLists container. More...
 

Functions

template<class ParticleIterator >
void deleteParticle (ParticleIterator &iterator)
 Function to access private iterator.deleteCurrentParticle() via friend.
 
template<typename Particle_T >
void markParticleAsDeleted (Particle_T &p)
 Marks a particle as deleted.
 
template<class CellType >
static bool checkParticleInCellAndUpdateByID (CellType &cell, const typename CellType::ParticleType &particle)
 Updates a found particle within cellI to the values of particleI.
 
template<class CellType >
static bool checkParticleInCellAndUpdateByIDAndPosition (CellType &cell, const typename CellType::ParticleType &particle, double absError)
 Same as checkParticleInCellAndUpdateByID(CellType, ParticleType), but additionally checks whether the particle is close to the other particle:
 

Detailed Description

This namespace is used for implementation specifics.

If you are a developer of AutoPas you might want to take a look inside here.

Function Documentation

◆ checkParticleInCellAndUpdateByID()

template<class CellType >
static bool autopas::internal::checkParticleInCellAndUpdateByID ( CellType cell,
const typename CellType::ParticleType &  particle 
)
static

Updates a found particle within cellI to the values of particleI.

Checks whether a particle with the same id as particleI is within the cell cellI and overwrites the particle with particleI, if it is found.

Parameters
cell
particle
Template Parameters
CellType
Returns
true if the particle was updated, false otherwise.

◆ checkParticleInCellAndUpdateByIDAndPosition()

template<class CellType >
static bool autopas::internal::checkParticleInCellAndUpdateByIDAndPosition ( CellType cell,
const typename CellType::ParticleType &  particle,
double  absError 
)
static

Same as checkParticleInCellAndUpdateByID(CellType, ParticleType), but additionally checks whether the particle is close to the other particle:

Updates a found particle within cellI to the values of particleI.

Checks whether a particle with the same id as particleI is within the cell cellI and overwrites the particle with particleI, if it is found.

Parameters
cell
particle
Template Parameters
CellType
Returns
true if the particle was updated, false otherwise.
Parameters
absErrormaximal distance the previous particle is allowed to be away from the new particle.
Note
This version is useful, if there might be more than one particle with the same id in the same cell.

◆ deleteParticle()

template<class ParticleIterator >
void autopas::internal::deleteParticle ( ParticleIterator &  iterator)

Function to access private iterator.deleteCurrentParticle() via friend.

The function is private because it should not be called from outside of AutoPas since the logic handler has to keep track of the number of particles. This function is explicitly moved to the namespace "internal" so if you call it be sure you know what you do.

Template Parameters
ParticleIterator
Parameters
iterator

◆ markParticleAsDeleted()

template<typename Particle_T >
void autopas::internal::markParticleAsDeleted ( Particle_T &  p)

Marks a particle as deleted.

This function is able to call the private markAsDeleted() function of the particle via a friend declaration. The reason for this is that it should be as hard as possible to call Particle_T::markAsDeleted() from outside of AutoPas, hence this free function is in the namespace internal.

Template Parameters
Particle_T
Parameters
p
Note
: This function should not be used from outside of AutoPas. Instead, use AutoPas::deleteParticle(iterator).