|
| | VerletListFillerFunctor (NeighborListCRS &neighborList, std::vector< PaddedAtomic > &fillPos, const std::unordered_map< const Particle_T *, size_t > &particleToIndex, double interactionLength) |
| |
| std::string | getName () override |
| | Returns name of functor.
|
| |
| bool | isRelevantForTuning () override |
| | Specifies whether the functor should be considered for the auto-tuning process.
|
| |
| bool | allowsNewton3 () override |
| | Specifies whether the functor is capable of Newton3-like functors.
|
| |
| bool | allowsNonNewton3 () override |
| | Specifies whether the functor is capable of non-Newton3-like functors.
|
| |
| void | AoSFunctor (Particle_T &i, Particle_T &j, bool) override |
| |
| void | SoAFunctorSingle (SoAView< SoAArraysType > soa, const bool newton3) override |
| | PairwiseFunctor for structure of arrays (SoA)
|
| |
| void | SoAFunctorPair (SoAView< SoAArraysType > soa1, SoAView< SoAArraysType > soa2, bool) override |
| |
| | 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.
|
| |
|
| static constexpr std::array< typename Particle_T::AttributeNames, 4 > | getNeededAttr () |
| | Get attributes needed for computation.
|
| |
| 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.
|
| |
template<class Particle_T>
class autopas::VerletListHelpers< Particle_T >::VerletListFillerFunctor
Pass-2 functor for the two-pass CRS build.
The CRS offsets are already set. For each interacting pair (i, j) this functor writes j's index directly into the pre-allocated _neighborList.indices slice for particle i, advancing a per-particle fill cursor with a relaxed atomic fetch-add.
The fill cursors reuse the same cache-line-padded PaddedAtomic array as the counter pass (reset to the CRS start offset before this pass runs).
- Note
- In contrast to other functors, newton3 is deliberately ignored in AoSFunctor() and SoAFunctorPair(). Used with a newton3 traversal, it will lead to "half" neighbor lists, where each particle only has the other particle in its list if it is the "first" particle of the pair. Used with a non-newton3 traversal, it will lead to "full" neighbor lists, where each particle has the other particle in its list for every interacting pair, regardless of whether newton3 is enabled or not.