AutoPas  3.0.0
Loading...
Searching...
No Matches
Functions
autopas::loadEstimators Namespace Reference

Collection of functions for estimating the load required to update a specific region within a containers. More...

Functions

static std::set< autopas::LoadEstimatorOptionallCompatibleLoadEstimators (autopas::ContainerOption container)
 Returns set of load estimators compatible with the container.
 
static bool usesLoadEstimator (autopas::TraversalOption traversal)
 returns whether or not the given traversal uses load estimation.
 
static std::set< autopas::LoadEstimatorOptiongetApplicableLoadEstimators (autopas::ContainerOption container, autopas::TraversalOption traversal, const std::set< autopas::LoadEstimatorOption > &allowedOptions)
 If traversal uses load estimation, returns all load estimators in allowedOptions, that are compatible with the container, but always allows none if the intersection is empty.
 
template<class ParticleCell >
unsigned long squaredParticlesPerCell (const std::vector< ParticleCell > &cells, const std::array< unsigned long, 3 > &cellsPerDimension, const std::array< unsigned long, 3 > &lowerCorner, const std::array< unsigned long, 3 > &upperCorner)
 Sums up the squared number of particles for all cells within region.
 
template<class Particle_T >
unsigned long neighborListLengthImpl (const typename autopas::VerletListsCellsHelpers::AllCellsNeighborListsType< Particle_T > &neighborLists, unsigned long cellIndex)
 Helper function for calculating the neighbor list length for the Verlet lists cells neighbor list.
 
template<class Particle_T >
unsigned long neighborListLengthImpl (const typename autopas::VerletListsCellsHelpers::PairwiseNeighborListsType< Particle_T > &neighborLists, unsigned long cellIndex)
 Helper function for calculating the neighbor list length for pairwise Verlet lists.
 
template<class Particle_T , class NeighborList >
unsigned long neighborListLength (NeighborList &neighborLists, const std::array< unsigned long, 3 > &cellsPerDimension, const std::array< unsigned long, 3 > &lowerCorner, const std::array< unsigned long, 3 > &upperCorner)
 Sums up the lengths of the verlet neighbor lists of all particles within region.
 

Detailed Description

Collection of functions for estimating the load required to update a specific region within a containers.

Function Documentation

◆ allCompatibleLoadEstimators()

static std::set< autopas::LoadEstimatorOption > autopas::loadEstimators::allCompatibleLoadEstimators ( autopas::ContainerOption  container)
static

Returns set of load estimators compatible with the container.

Parameters
container
Returns
compatible load estimators

◆ getApplicableLoadEstimators()

static std::set< autopas::LoadEstimatorOption > autopas::loadEstimators::getApplicableLoadEstimators ( autopas::ContainerOption  container,
autopas::TraversalOption  traversal,
const std::set< autopas::LoadEstimatorOption > &  allowedOptions 
)
static

If traversal uses load estimation, returns all load estimators in allowedOptions, that are compatible with the container, but always allows none if the intersection is empty.

Parameters
container
traversal
allowedOptions
Returns
applicable traversals or {none}

◆ neighborListLength()

template<class Particle_T , class NeighborList >
unsigned long autopas::loadEstimators::neighborListLength ( NeighborList &  neighborLists,
const std::array< unsigned long, 3 > &  cellsPerDimension,
const std::array< unsigned long, 3 > &  lowerCorner,
const std::array< unsigned long, 3 > &  upperCorner 
)

Sums up the lengths of the verlet neighbor lists of all particles within region.

Parameters
neighborLists
cellsPerDimension
lowerCornerlower boundary indices for region
upperCornerupper boundary indices for region
Returns
estimated load for given region

◆ neighborListLengthImpl() [1/2]

template<class Particle_T >
unsigned long autopas::loadEstimators::neighborListLengthImpl ( const typename autopas::VerletListsCellsHelpers::AllCellsNeighborListsType< Particle_T > &  neighborLists,
unsigned long  cellIndex 
)

Helper function for calculating the neighbor list length for the Verlet lists cells neighbor list.

Parameters
neighborLists
cellIndexthe index of the current cell being processed
Returns
estimated load for current cell

◆ neighborListLengthImpl() [2/2]

template<class Particle_T >
unsigned long autopas::loadEstimators::neighborListLengthImpl ( const typename autopas::VerletListsCellsHelpers::PairwiseNeighborListsType< Particle_T > &  neighborLists,
unsigned long  cellIndex 
)

Helper function for calculating the neighbor list length for pairwise Verlet lists.

Parameters
neighborLists
cellIndexthe index of the current cell being processed
Returns
estimated load for current cell

◆ squaredParticlesPerCell()

template<class ParticleCell >
unsigned long autopas::loadEstimators::squaredParticlesPerCell ( const std::vector< ParticleCell > &  cells,
const std::array< unsigned long, 3 > &  cellsPerDimension,
const std::array< unsigned long, 3 > &  lowerCorner,
const std::array< unsigned long, 3 > &  upperCorner 
)

Sums up the squared number of particles for all cells within region.

Parameters
cells
cellsPerDimension
lowerCornerlower boundary indices for region
upperCornerupper boundary indices for region
Returns
estimated load for given region

◆ usesLoadEstimator()

static bool autopas::loadEstimators::usesLoadEstimator ( autopas::TraversalOption  traversal)
static

returns whether or not the given traversal uses load estimation.

Parameters
traversal
Returns