15inline namespace options {
216 constexpr operator Value()
const {
return _value; }
243 std::set<TraversalOption> mostPairwiseOptions;
246 std::set_difference(allOptions.begin(), allOptions.end(), discouragedOptions.begin(), discouragedOptions.end(),
247 std::inserter(mostPairwiseOptions, mostPairwiseOptions.begin()));
248 return mostPairwiseOptions;
256 std::set<TraversalOption> mostTriwiseOptions;
259 std::set_difference(allOptions.begin(), allOptions.end(), discouragedOptions.begin(), discouragedOptions.end(),
260 std::inserter(mostTriwiseOptions, mostTriwiseOptions.begin()));
261 return mostTriwiseOptions;
269 static std::set<TraversalOption>
getAllOptionsOf(
const autopas::InteractionTypeOption &interactionType) {
270 switch (interactionType) {
271 case autopas::InteractionTypeOption::pairwise:
273 case autopas::InteractionTypeOption::triwise:
Base class for autopas options.
Definition: Option.h:25
static std::set< TraversalOption > getAllOptions()
Provides a way to iterate over the possible options.
Definition: Option.h:37
Class representing the traversal choices.
Definition: TraversalOption.h:19
TraversalOption()=default
Constructor.
Value
Possible choices for the cell traversal.
Definition: TraversalOption.h:25
@ vcl_cluster_iteration
VCLClusterIterationTraversal : Dynamically schedule ClusterTower to threads.
Definition: TraversalOption.h:108
@ ot_c01
OTC01Traversal : Simple DFS traversal without newton 3 optimization.
Definition: TraversalOption.h:86
@ lc_c08
LCC08Traversal : More compact form of LCC18Traversal.
Definition: TraversalOption.h:61
@ vlp_sliced
VLPSlicedTraversal : Equivalent to LCSlicedTraversal.
Definition: TraversalOption.h:173
@ lc_c01_combined_SoA
LCC01CombinedSoATraversal : Same as LCC01Traversal but SoAs are combined into a circular buffer and t...
Definition: TraversalOption.h:42
@ vcl_c06
VCLC06Traversal : Six-way coloring of the 2D ClusterTower grid in the c18 base step style.
Definition: TraversalOption.h:103
@ vlc_sliced
VLCSlicedTraversal : Equivalent to LCSlicedTraversal but with a c18 base-step.
Definition: TraversalOption.h:148
@ vcl_sliced_c02
VCLSlicedC02Traversal : 1D slicing with as many slices of minimal thickness as possible.
Definition: TraversalOption.h:122
@ lc_c01
Definition: TraversalOption.h:37
@ vlc_c18
VLCC18Traversal : Equivalent to LCC18Traversal.
Definition: TraversalOption.h:140
@ ds_sequential
Definition: TraversalOption.h:30
@ lc_sliced_balanced
LCSlicedBalancedTraversal : Same as lc_sliced but tries to balance slice thickness according to a giv...
Definition: TraversalOption.h:75
@ vlp_sliced_c02
VLPSlicedC02Traversal : Equivalent to LCSlicedC02Traversal.
Definition: TraversalOption.h:183
@ vlp_sliced_balanced
VLPSlicedBalancedTraversal : Equivalent to LCSlicedBalancedTraversal.
Definition: TraversalOption.h:178
@ lc_c04
LCC04Traversal : Four-way domain coloring using plus-shaped clusters of cells that are processed with...
Definition: TraversalOption.h:47
@ vlp_c01
VLPC01Traversal : Equivalent to LCC01Traversal.
Definition: TraversalOption.h:165
@ lc_c18
LCC18Traversal : More compact form of LCC01Traversal supporting Newton3 by only accessing forward nei...
Definition: TraversalOption.h:65
@ vlc_sliced_balanced
VLCSlicedBalancedTraversal : Equivalent to LCSlicedBalancedTraversal but with a c18 base-step.
Definition: TraversalOption.h:153
@ lc_sliced
LCSlicedTraversal : 1D equidistant slicing of the domain with one slice per thread.
Definition: TraversalOption.h:70
@ vlp_c08
VLPCellPairC08Traversal : based on LCC08Traversal.
Definition: TraversalOption.h:190
@ vlc_c01
VLCC01Traversal : Equivalent to LCC01Traversal.
Definition: TraversalOption.h:136
@ lc_c04_HCP
LCC04HCPTraversal : Same as LCC04Traversal but with only one block shape.
Definition: TraversalOption.h:51
@ vlc_sliced_c02
VLCSlicedC02Traversal : Equivalent to LCSlicedC02Traversal.
Definition: TraversalOption.h:158
@ vl_list_iteration
VLListIterationTraversal : Distribute processing of neighbor lists dynamically to threads.
Definition: TraversalOption.h:129
@ vlp_c18
VLPC18Traversal : Equivalent to LCC18Traversal.
Definition: TraversalOption.h:169
@ vvl_as_built
VVLAsBuildTraversal : Track which thread built what neighbor list and schedule them the same way for ...
Definition: TraversalOption.h:198
@ ot_c18
OTC18Traversal : DFS traversal with newton 3 optimization that checks whether a neighbor has already ...
Definition: TraversalOption.h:91
@ vcl_sliced
VCLSlicedTraversal : Equivalent to lc_sliced with slicing applied to the tower grid.
Definition: TraversalOption.h:112
@ lc_c04_combined_SoA
LCC04CombinedSoATraversal : Combination of LCC08Traversal and the combined SoA variant of LCC01Traver...
Definition: TraversalOption.h:56
@ vlc_c08
VLCC08Traversal : Equivalent to LCC08Traversal.
Definition: TraversalOption.h:144
@ vcl_c01_balanced
VCLC01BalancedTraversal : Assign a fixed set of towers to each thread balanced by number of contained...
Definition: TraversalOption.h:98
@ lc_sliced_c02
LCSlicedC02Traversal : 1D slicing with as many slices of minimal thickness as possible.
Definition: TraversalOption.h:80
@ vcl_sliced_balanced
VCLSlicedBalancedTraversal : Same as vcl_sliced but tries to balance slice thickness according to a g...
Definition: TraversalOption.h:117
static std::set< TraversalOption > getDiscouragedOptions()
Set of options that are very unlikely to be interesting.
Definition: TraversalOption.h:222
static std::set< TraversalOption > getMostPairwiseOptions()
Set of all pairwise traversals without discouraged options.
Definition: TraversalOption.h:242
constexpr TraversalOption(Value option)
Constructor from value.
Definition: TraversalOption.h:210
static std::set< TraversalOption > getAllPairwiseOptions()
Set of options that apply for pairwise interactions.
Definition: TraversalOption.h:230
static std::map< TraversalOption, std::string > getOptionNames()
Provides a way to iterate over the possible choices of TraversalOption.
Definition: TraversalOption.h:284
static std::set< TraversalOption > getAllTriwiseOptions()
Set of options that apply for triwise interactions.
Definition: TraversalOption.h:236
static std::set< TraversalOption > getMostTriwiseOptions()
Set of all triwise traversals without discouraged options.
Definition: TraversalOption.h:255
static std::set< TraversalOption > getAllOptionsOf(const autopas::InteractionTypeOption &interactionType)
Set of all options specific to an interaction type.
Definition: TraversalOption.h:269
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32