AutoPas  3.0.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
autopas::options::ContainerOption Class Reference

Class representing the container choices. More...

#include <ContainerOption.h>

Inheritance diagram for autopas::options::ContainerOption:
Inheritance graph
[legend]
Collaboration diagram for autopas::options::ContainerOption:
Collaboration graph
[legend]

Public Types

enum  Value {
  directSum , linkedCells , linkedCellsReferences , varVerletListsAsBuild ,
  verletClusterLists , verletLists , verletListsCells , pairwiseVerletLists ,
  octree
}
 Possible choices for the particle container type. More...
 

Public Member Functions

 ContainerOption ()=default
 Constructor.
 
constexpr ContainerOption (Value option)
 Constructor from value.
 
constexpr operator Value () const
 Cast to value.
 
- Public Member Functions inherited from autopas::options::Option< ContainerOption >
 operator bool ()=delete
 Prevents cast to bool by deleting the conversion operator.
 
std::string to_string (bool fixedLength=false) const
 Converts an Option object to its respective string representation.
 

Static Public Member Functions

static std::set< ContainerOptiongetDiscouragedOptions ()
 Set of options that are very unlikely to be interesting.
 
static std::map< ContainerOption, std::string > getOptionNames ()
 Provides a way to iterate over the possible choices of ContainerOption.
 
- Static Public Member Functions inherited from autopas::options::Option< ContainerOption >
static std::set< ContainerOptiongetAllOptions ()
 Provides a way to iterate over the possible options.
 
static std::set< ContainerOptiongetMostOptions ()
 Provides a way to iterate over the possible options minus those that are very unlikely to be on interest.
 
static size_t maxStringLength ()
 Returns the number of characters in the string representation of the longest option.
 
static OutputContainer parseOptions (const std::string &optionsString)
 Converts a string of options to a set of enums.
 
static ContainerOption parseOptionExact (const std::string &optionString)
 Converts a string to an enum.
 

Detailed Description

Class representing the container choices.

Member Enumeration Documentation

◆ Value

Possible choices for the particle container type.

Enumerator
directSum 

DirectSum : O(N^2) distance check of all particles and summation of those in cutoff.

Minimal overhead but bad complexity.

linkedCells 

LinkedCells : Segmentation of the domain into a regular cell grid.

Only interactions with particles from neighbor cells are considered. Good data locality and vectorizability but low hit rate of particles in cutoff.

linkedCellsReferences 

LinkedCellsReferences : Same algorithm as LinkedCells but stores all particles in one big vector.

Cells only contain references to this vector.

varVerletListsAsBuild 

VarVerletLists interface with neighbor list type VerletNeighborListAsBuild : Same algorithm as VerletLists.

Remembers which thread created the neighbor list of each particle to exploit this information to avoid data races during the parallel force calculation.

verletClusterLists 

VerletClusterLists : Particles are grouped in clusters of fixed size.

Similar to VerletLists for every cluster a list of neighbor clusters is generated. Clusters always interact with whole clusters so vectorization is possible.

verletLists 

VerletLists : Built on top of LinkedCells, a neighbor list is generated for every particle and updated in fixed intervals.

Memory access, also in SoA mode is scattered but high hit rate of particles in cutoff.

verletListsCells 

VerletListsCells : Similar to VerletLists but Lists are associated with the underlying cells to achieve location information.

Parallelization options similar to LinkedCells.

pairwiseVerletLists 

PairwiseVerletLists : Also similar to VerletLists but the lists are associated to each pair of neighboring cells.

Improves data locality and cache efficiency.

octree 

Octree : Particles are put into an octree.

This data structure is optimized if the data is non-uniformly distributed since it is space adaptive

Constructor & Destructor Documentation

◆ ContainerOption()

constexpr autopas::options::ContainerOption::ContainerOption ( Value  option)
inlineconstexpr

Constructor from value.

Parameters
option

Member Function Documentation

◆ getDiscouragedOptions()

static std::set< ContainerOption > autopas::options::ContainerOption::getDiscouragedOptions ( )
inlinestatic

Set of options that are very unlikely to be interesting.

Returns

◆ getOptionNames()

static std::map< ContainerOption, std::string > autopas::options::ContainerOption::getOptionNames ( )
inlinestatic

Provides a way to iterate over the possible choices of ContainerOption.

Returns
map option -> string representation

◆ operator Value()

constexpr autopas::options::ContainerOption::operator Value ( ) const
inlineconstexpr

Cast to value.

Returns

The documentation for this class was generated from the following file: