A functor to handle Lennard-Jones interactions between two Multisite Molecules.
More...
|
| LJMultisiteFunctor ()=delete |
| Delete Default constructor.
|
|
| LJMultisiteFunctor (double cutoff) |
| Constructor for Functor with particle mixing disabled.
|
|
| LJMultisiteFunctor (double cutoff, ParticlePropertiesLibrary< double, size_t > &particlePropertiesLibrary) |
| Constructor for Functor with particle mixing enabled.
|
|
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 &particleA, Particle_T &particleB, bool newton3) final |
| Functor 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 | setParticleProperties (SoAFloatPrecision epsilon24, SoAFloatPrecision sigmaSquared, std::vector< std::array< SoAFloatPrecision, 3 > > sitePositionsLJ) |
| Sets the molecule properties constants for this functor.
|
|
unsigned long | getNumFlopsPerKernelCall (size_t molAType, size_t molBType, bool newton3) |
| Get the number of flops used per kernel call - i.e.
|
|
void | initTraversal () final |
| Reset the global values.
|
|
void | endTraversal (bool newton3) final |
| Postprocesses global values, e.g.
|
|
double | getPotentialEnergy () |
| Get the potential energy.
|
|
double | getVirial () |
| Get the virial.
|
|
| 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::LJMultisiteFunctor< Particle_T, applyShift, useMixing, useNewton3, calculateGlobals, countFLOPs, relevantForTuning >
A functor to handle Lennard-Jones interactions between two Multisite Molecules.
- Template Parameters
-
Particle_T | The type of particle. |
applyShift | Flag for the LJ potential to have a truncated shift. |
useMixing | Flag for if the functor is 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. |
- Warning
- : Whilst this class allows for mixing to be disabled, this feature is not of much value in real applications and as such is experimental only and untested!
- Template Parameters
-
useNewton3 | Switch for the functor to support newton3 on, off, or both. See FunctorN3Nodes 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. Currently not implemented as this functor is problematically bad and will be replaced. |