A functor to handle lennard-jones interactions between two particles (molecules) This functor uses the SIMD abstraction library Google Highway to provide architecture independent vectorization.
More...
|
|
| LJFunctorHWY ()=delete |
| | Deleted default constructor.
|
| |
| | LJFunctorHWY (double cutoff, std::optional< std::reference_wrapper< ParticlePropertiesLibrary< double, size_t > > > particlePropertiesLibrary=std::nullopt) |
| | Constructor for Functor with mixing enabled/disabled.
|
| |
| std::string | getName () final |
| | Returns name of functor.
|
| |
| bool | isRelevantForTuning () final |
| | Specifies whether the functor should be considered for the auto-tuning process.
|
| |
| bool | allowsNewton3 () final |
| | Specifies whether the functor is capable of Newton3-like functors.
|
| |
| bool | allowsNonNewton3 () final |
| | Specifies whether the functor is capable of non-Newton3-like functors.
|
| |
| bool | isVecPatternAllowed (const VectorizationPattern vecPattern) final |
| | Specifies whether the functor is capable of using the specified Vectorization Pattern in the SoA functor.
|
| |
| void | AoSFunctor (Particle_T &i, Particle_T &j, bool newton3) final |
| | PairwiseFunctor for arrays of structures (AoS).
|
| |
| void | SoAFunctorSingle (autopas::SoAView< SoAArraysType > soa, const bool newton3) final |
| | PairwiseFunctor for structure of arrays (SoA)
|
| |
| void | SoAFunctorPair (autopas::SoAView< SoAArraysType > soa1, autopas::SoAView< SoAArraysType > soa2, bool newton3) final |
| | PairwiseFunctor for structure of arrays (SoA)
|
| |
| void | SoAFunctorVerlet (autopas::SoAView< SoAArraysType > soa, const size_t indexFirst, const std::vector< size_t, autopas::AlignedAllocator< size_t > > &neighborList, bool newton3) final |
| | PairwiseFunctor for structure of arrays (SoA) for neighbor lists.
|
| |
| void | initTraversal () final |
| | Reset the global values.
|
| |
| void | endTraversal (const bool newton3) final |
| | Accumulates global values, e.g.
|
| |
| double | getPotentialEnergy () const |
| | Get the potential Energy.
|
| |
| double | getVirial () const |
| | Get the virial.
|
| |
| void | setParticleProperties (const double epsilon24, const double sigmaSquare) |
| | Sets the particle properties constants for this functor.
|
| |
| void | setVecPattern (const VectorizationPattern vecPattern) final |
| | Setter for the vectorization pattern to be used.
|
| |
| | 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, const std::vector< size_t, AlignedAllocator< 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)
|
| |
| 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.
|
| |
template<class Particle_T, bool applyShift = false, bool useMixing = false,
autopas::FunctorN3Modes useNewton3 = autopas::FunctorN3Modes::Both, bool calculateGlobals = false, bool countFLOPs = false, bool relevantForTuning = true>
class mdLib::LJFunctorHWY< Particle_T, applyShift, useMixing, useNewton3, calculateGlobals, countFLOPs, relevantForTuning >
A functor to handle lennard-jones interactions between two particles (molecules) This functor uses the SIMD abstraction library Google Highway to provide architecture independent vectorization.
- Template Parameters
-
| Particle_T | The type of particle |
| applyShift | Switch for the lj potential to be truncated shifted |
| useMixing | Switch for the functor to be used with multiple particle types. If set to false, _epsilon and _sigma need to be set and the constructor with PPL can be omitted. |
| useNewton3 | Switch for the functor to support newton3 on, off or both. See FunctorN3Modes for possible values. |
| calculateGlobals | Defines whether the global values are to be calculated (energy, virial). |
| relevantForTuning | Whether the auto-tuner should consider this functor. |
| countFLOPs | counts FLOPs and hitrate. Not implemented for this functor. Please use the AutoVec functor. |