This functor generates lists of particles within interactionLength of each other, which could be used within user simulators to replace their neighbor identification/contact detection/cutoff check passes, although they should consider the warning below.
More...
|
| | NeighborIdentificationFunctor (AoSNeighborListPolicy< Particle_T > &policy, double interactionLength, const bool gatherNewton3Lists) |
| | Constructor.
|
| |
| std::string | getName () override |
| | Returns name of functor.
|
| |
| template<class ParticleIterator_T > |
| void | initializeNeighborList (ParticleIterator_T particlesBegin) |
| | Initializes the neighbor list map for the given range of particles: clears any previous contents and inserts an empty neighbor list for every particle.
|
| |
| bool | isRelevantForTuning () override |
| | Whether the functor is relevant for tuning.
|
| |
| | InteractionListGeneratorFunctor (NeighborListPolicy_T &neighborListPolicy, double interactionLength, const bool gatherNewton3Lists) |
| | Constructor.
|
| |
| std::string | getName () override |
| |
| bool | isRelevantForTuning () override |
| | The InteractionListGeneratorFunctor is meant to be used internally and as such is not tuning relevant.
|
| |
| bool | allowsNewton3 () override |
| | Whether InteractionListGeneratorFunctor allows Newton3.
|
| |
| bool | allowsNonNewton3 () override |
| | Whether InteractionListGeneratorFunctor allows non-newton3.
|
| |
| void | AoSFunctor (Particle_T &i, Particle_T &j, bool newton3) override |
| | AoSFunctor for interaction list generation.
|
| |
| void | SoAFunctorSingle (SoAView< SoAArraysType > soa, bool) override |
| | SoAFunctor for verlet list generation.
|
| |
| void | SoAFunctorPair (SoAView< SoAArraysType > soa1, SoAView< SoAArraysType > soa2, bool newton3) override |
| | SoAFunctor for the verlet list generation.
|
| |
| void | SoAFunctorVerlet (SoAView< SoAArraysType > soa, const size_t indexFirst, std::span< const size_t > neighborList, bool newton3) override |
| | SoAFunctorVerlet for interaction list generation.
|
| |
| | PairwiseFunctor (double cutoff) |
| | Constructor.
|
| |
| virtual void | AoSFunctor (Particle_T &i, Particle_T &j, bool newton3) |
| | PairwiseFunctor for arrays of structures (AoS).
|
| |
| virtual void | SoAFunctorSingle (SoAView< SoAArraysType > soa, bool newton3) |
| | PairwiseFunctor for structure of arrays (SoA)
|
| |
| virtual void | SoAFunctorVerlet (SoAView< SoAArraysType > soa, const size_t indexFirst, std::span< const size_t > neighborList, bool newton3) |
| | PairwiseFunctor for structure of arrays (SoA) for neighbor lists.
|
| |
| virtual void | SoAFunctorPair (SoAView< SoAArraysType > soa1, SoAView< SoAArraysType > soa2, bool newton3) |
| | PairwiseFunctor for structure of arrays (SoA)
|
| |
| virtual void | SoAFunctorPairSorted (SoAView< SoAArraysType > soa1, SoAView< SoAArraysType > soa2, const SoASortingData &sortingData, bool newton3) |
| | SoAFunctorPair on pre-sorted, pre-packed SoA views.
|
| |
| bool | isVecPatternAllowed (const VectorizationPatternOption::Value vecPattern) override |
| | Specifies whether the functor is capable of using the specified Vectorization Pattern in the SoA functor.
|
| |
| | Functor (double cutoff) |
| | Constructor.
|
| |
| virtual void | initTraversal () |
| | This function is called at the start of each traversal.
|
| |
| virtual void | endTraversal (bool newton3) |
| | This function is called at the end of each traversal.
|
| |
| template<class ParticleCell > |
| void | SoALoader (ParticleCell &cell, SoA< SoAArraysType > &soa, size_t offset, bool skipSoAResize) |
| | Copies the AoS data of the given cell in the given soa.
|
| |
| template<typename ParticleCell > |
| void | SoAExtractor (ParticleCell &cell, SoA< SoAArraysType > &soa, size_t offset) |
| | Copies the data stored in the soa back into the cell.
|
| |
| virtual bool | allowsNewton3 ()=0 |
| | Specifies whether the functor is capable of Newton3-like functors.
|
| |
| virtual bool | allowsNonNewton3 ()=0 |
| | Specifies whether the functor is capable of non-Newton3-like functors.
|
| |
| virtual bool | isVecPatternAllowed (const VectorizationPatternOption::Value vecPattern)=0 |
| | Specifies whether the functor is capable of using the specified Vectorization Pattern in the SoA functor.
|
| |
| virtual bool | isRelevantForTuning ()=0 |
| | Specifies whether the functor should be considered for the auto-tuning process.
|
| |
| virtual std::string | getName ()=0 |
| | Returns name of functor.
|
| |
| double | getCutoff () const |
| | Getter for the functor's cutoff.
|
| |
| virtual void | setVecPattern (const VectorizationPatternOption::Value vecPattern) |
| | Setter for the vectorization pattern to be used.
|
| |
| virtual size_t | getNumFLOPs () const |
| | Get the number of FLOPs.
|
| |
| virtual double | getHitRate () const |
| | Get the hit rate.
|
| |
|
|
using | SoAArraysType = Particle_T::SoAArraysType |
| | Structure of the SoAs defined by the particle.
|
| |
|
using | SoAArraysType = typename Particle_T::SoAArraysType |
| | Structure of the SoAs defined by the particle.
|
| |
|
using | SoAArraysType = typename Particle_T::SoAArraysType |
| | Structure of the SoAs defined by the particle.
|
| |
|
using | Functor_T = CRTP_T |
| | Make the Implementation type template publicly available.
|
| |
| static constexpr std::array< typename Particle_T::AttributeNames, 5 > | getNeededAttr () |
| | Get attributes needed for computation.
|
| |
| static constexpr std::array< typename Particle_T::AttributeNames, 5 > | getNeededAttr (std::false_type) |
| | Get attributes needed for computation without N3 optimization.
|
| |
| static constexpr std::array< typename Particle_T::AttributeNames, 0 > | getComputedAttr () |
| | Get attributes computed by this functor.
|
| |
| static constexpr std::array< typename Particle_T::AttributeNames, 0 > | getNeededAttr () |
| | Get attributes needed for computation.
|
| |
| static constexpr std::array< typename Particle_T::AttributeNames, 0 > | getNeededAttr (std::false_type) |
| | Get attributes needed for computation without N3 optimization.
|
| |
| static constexpr std::array< typename Particle_T::AttributeNames, 0 > | getComputedAttr () |
| | Get attributes computed by this functor.
|
| |
| static constexpr bool | supportsSoASorting = false |
| | Whether this functor supports the SortedSoAView optimization path (SoAFunctorPairSorted).
|
| |
template<class Particle_T>
class autopas::NeighborIdentificationFunctor< Particle_T >
This functor generates lists of particles within interactionLength of each other, which could be used within user simulators to replace their neighbor identification/contact detection/cutoff check passes, although they should consider the warning below.
In some fields this can be called "cutoff checking" or "broad-phase contact detection" but we will refer to this in this file as neighbor identification.
- Warning
- To take fully advantage of AutoPas, we recommend, instead of using this functor and apply forces externally to AutoPas, using a functor which integrates neighbor identification and force calculation in one call over using this functor (see LJFunctor.h as an example). We provide this functor primarily for codes which already perform separate neighbor identification and force calculation passes, to easily experience some benefit of AutoPas with minimal code refactors.
After applying AutoPas's computeInteractions function with this functor, a std::unordered_map<Particle_T *, std::vector<Particle_T *>> is filled, mapping from each particle pointer to a vector of pointers to all particles within interactionLength of the first.
- Template Parameters
-
| Particle_T | The type of Particle class used. |