A functor to handle lennard-jones interactions between two particles (molecules).  
 More...
|  | 
|  | LJFunctorAVX ()=delete | 
|  | Deleted default constructor. 
 | 
|  | 
|  | LJFunctorAVX (double cutoff) | 
|  | Constructor for Functor with mixing disabled. 
 | 
|  | 
|  | LJFunctorAVX (double cutoff, ParticlePropertiesLibrary< double, size_t > &particlePropertiesLibrary) | 
|  | Constructor for Functor with mixing active. 
 | 
|  | 
| 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. 
 | 
|  | 
| void | AoSFunctor (Particle_T &i, Particle_T &j, bool newton3) final | 
|  | PairwiseFunctor for arrays of structures (AoS). 
 | 
|  | 
| void | SoAFunctorSingle (autopas::SoAView< SoAArraysType > soa, bool newton3) final | 
|  | PairwiseFunctor for structure of arrays (SoA) 
 | 
|  | 
| void | SoAFunctorPair (autopas::SoAView< SoAArraysType > soa1, autopas::SoAView< SoAArraysType > soa2, const 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 (bool newton3) final | 
|  | Accumulates global values, e.g. 
 | 
|  | 
| double | getPotentialEnergy () | 
|  | Get the potential Energy. 
 | 
|  | 
| double | getVirial () | 
|  | Get the virial. 
 | 
|  | 
| void | setParticleProperties (double epsilon24, double sigmaSquared) | 
|  | Sets the particle properties constants for this functor. 
 | 
|  | 
|  | 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) 
 | 
|  | 
|  | 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 | 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 size_t | getNumFLOPs () const | 
|  | Get the number of FLOPs. 
 | 
|  | 
| virtual double | getHitRate () const | 
|  | Get the hit rate. 
 | 
|  | 
|  | 
| static constexpr auto | getNeededAttr () | 
|  | Get attributes needed for computation. 
 | 
|  | 
| static constexpr auto | getNeededAttr (std::false_type) | 
|  | Get attributes needed for computation without N3 optimization. 
 | 
|  | 
| static constexpr auto | getComputedAttr () | 
|  | Get attributes computed by this functor. 
 | 
|  | 
| static constexpr bool | getMixing () | 
|  | 
| 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, bool applyShift = false, bool useMixing = false, 
autopas::FunctorN3Modes useNewton3 = autopas::FunctorN3Modes::Both, bool calculateGlobals = false, bool countFLOPs = false, bool relevantForTuning = true>
class mdLib::LJFunctorAVX< Particle_T, applyShift, useMixing, useNewton3, calculateGlobals, countFLOPs, relevantForTuning >
A functor to handle lennard-jones interactions between two particles (molecules). 
This functor assumes that duplicated calculations are always happening, which is characteristic for a Full-Shell scheme. This Version is implemented using AVX intrinsics. 
- Template Parameters
- 
  
    | Particle_T | The type of particle. |  | ParticleCell | The type of particlecell. |  | 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 or not the auto-tuner should consider this functor. |  | countFLOPs | counts FLOPs and hitrate. Not implemented for this functor. Please use the AutoVec functor. |