15inline namespace options {
221 constexpr operator Value()
const {
return _value; }
250 std::set<TraversalOption> mostPairwiseOptions;
253 std::set_difference(allOptions.begin(), allOptions.end(), discouragedOptions.begin(), discouragedOptions.end(),
254 std::inserter(mostPairwiseOptions, mostPairwiseOptions.begin()));
255 return mostPairwiseOptions;
263 std::set<TraversalOption> mostTriwiseOptions;
266 std::set_difference(allOptions.begin(), allOptions.end(), discouragedOptions.begin(), discouragedOptions.end(),
267 std::inserter(mostTriwiseOptions, mostTriwiseOptions.begin()));
268 return mostTriwiseOptions;
276 static std::set<TraversalOption>
getAllOptionsOf(
const autopas::InteractionTypeOption &interactionType) {
277 switch (interactionType) {
278 case autopas::InteractionTypeOption::pairwise:
280 case autopas::InteractionTypeOption::triwise:
Base class for autopas options.
Definition: Option.h:26
static std::set< TraversalOption > getAllOptions()
Provides a way to iterate over the possible options.
Definition: Option.h:38
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
Definition: TraversalOption.h:61
@ vlp_sliced
VLPSlicedTraversal : Equivalent to LCSlicedTraversal.
Definition: TraversalOption.h:178
@ 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:153
@ 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:145
@ 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:188
@ vlp_sliced_balanced
VLPSlicedBalancedTraversal : Equivalent to LCSlicedBalancedTraversal.
Definition: TraversalOption.h:183
@ lc_c04
Definition: TraversalOption.h:47
@ vl_list_iteration_c27
VLListIterationC27Traversal : Distribute processing of neighbor lists dynamically to threads.
Definition: TraversalOption.h:134
@ vlp_c01
VLPC01Traversal : Equivalent to LCC01Traversal.
Definition: TraversalOption.h:170
@ 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:158
@ lc_sliced
Definition: TraversalOption.h:70
@ vlp_c08
VLPCellPairC08Traversal : based on LCC08Traversal.
Definition: TraversalOption.h:195
@ vlc_c01
VLCC01Traversal : Equivalent to LCC01Traversal.
Definition: TraversalOption.h:141
@ 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:163
@ 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:174
@ vvl_as_built
VVLAsBuildTraversal : Track which thread built what neighbor list and schedule them the same way for ...
Definition: TraversalOption.h:203
@ 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:149
@ 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
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:227
static std::set< TraversalOption > getMostPairwiseOptions()
Set of all pairwise traversals without discouraged options.
Definition: TraversalOption.h:249
constexpr TraversalOption(Value option)
Constructor from value.
Definition: TraversalOption.h:215
static std::set< TraversalOption > getAllPairwiseOptions()
Set of options that apply for pairwise interactions.
Definition: TraversalOption.h:235
static std::map< TraversalOption, std::string > getOptionNames()
Provides a way to iterate over the possible choices of TraversalOption.
Definition: TraversalOption.h:291
static std::set< TraversalOption > getAllTriwiseOptions()
Set of options that apply for triwise interactions.
Definition: TraversalOption.h:241
static std::set< TraversalOption > getMostTriwiseOptions()
Set of all triwise traversals without discouraged options.
Definition: TraversalOption.h:262
static std::set< TraversalOption > getAllOptionsOf(const autopas::InteractionTypeOption &interactionType)
Set of all options specific to an interaction type.
Definition: TraversalOption.h:276
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:34