AutoPas  3.0.0
Loading...
Searching...
No Matches
ContainerOption.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <set>
10
12
13namespace autopas {
14inline namespace options {
18class ContainerOption : public Option<ContainerOption> {
19 public:
23 enum Value {
71 };
72
76 ContainerOption() = default;
77
82 constexpr ContainerOption(Value option) : _value(option) {}
83
88 constexpr operator Value() const { return _value; }
89
94 static std::set<ContainerOption> getDiscouragedOptions() {
96 }
97
102 static std::map<ContainerOption, std::string> getOptionNames() {
103 return {
104 {ContainerOption::directSum, "DirectSum"},
105 {ContainerOption::linkedCells, "LinkedCells"},
106 {ContainerOption::linkedCellsReferences, "LinkedCellsReferences"},
107 {ContainerOption::verletLists, "VerletLists"},
108 {ContainerOption::verletListsCells, "VerletListsCells"},
109 {ContainerOption::verletClusterLists, "VerletClusterLists"},
110 {ContainerOption::varVerletListsAsBuild, "VarVerletListsAsBuild"},
111 {ContainerOption::pairwiseVerletLists, "PairwiseVerletLists"},
112 {ContainerOption::octree, "Octree"},
113 };
114 };
115
116 private:
117 Value _value{Value(-1)};
118};
119} // namespace options
120} // namespace autopas
Class representing the container choices.
Definition: ContainerOption.h:18
Value
Possible choices for the particle container type.
Definition: ContainerOption.h:23
@ octree
Octree : Particles are put into an octree.
Definition: ContainerOption.h:70
@ linkedCells
LinkedCells : Segmentation of the domain into a regular cell grid.
Definition: ContainerOption.h:33
@ pairwiseVerletLists
PairwiseVerletLists : Also similar to VerletLists but the lists are associated to each pair of neighb...
Definition: ContainerOption.h:65
@ varVerletListsAsBuild
VarVerletLists interface with neighbor list type VerletNeighborListAsBuild : Same algorithm as Verlet...
Definition: ContainerOption.h:44
@ linkedCellsReferences
LinkedCellsReferences : Same algorithm as LinkedCells but stores all particles in one big vector.
Definition: ContainerOption.h:38
@ verletClusterLists
VerletClusterLists : Particles are grouped in clusters of fixed size.
Definition: ContainerOption.h:50
@ verletLists
VerletLists : Built on top of LinkedCells, a neighbor list is generated for every particle and update...
Definition: ContainerOption.h:55
@ directSum
DirectSum : O(N^2) distance check of all particles and summation of those in cutoff.
Definition: ContainerOption.h:28
@ verletListsCells
VerletListsCells : Similar to VerletLists but Lists are associated with the underlying cells to achie...
Definition: ContainerOption.h:60
static std::map< ContainerOption, std::string > getOptionNames()
Provides a way to iterate over the possible choices of ContainerOption.
Definition: ContainerOption.h:102
constexpr ContainerOption(Value option)
Constructor from value.
Definition: ContainerOption.h:82
static std::set< ContainerOption > getDiscouragedOptions()
Set of options that are very unlikely to be interesting.
Definition: ContainerOption.h:94
ContainerOption()=default
Constructor.
Base class for autopas options.
Definition: Option.h:25
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32