This functor checks the validity of neighborhood lists. More...
#include <VerletListHelpers.h>
Public Types | |
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 | 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. | |
Public Member Functions | |
VerletListValidityCheckerFunctor (NeighborListAoSType &verletListsAoS, double cutoff) | |
Constructor. | |
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 newton3) override |
PairwiseFunctor for arrays of structures (AoS). | |
bool | neighborlistsAreValid () |
Returns whether the neighbour list are valid. | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
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. | |
This functor checks the validity of neighborhood lists.
If a pair of particles has a distance of less than the cutoff radius it checks whether the pair is represented in the verlet list. If the pair is not present in the list the neigborhood lists are invalid and neighborlistsAreValid() will return false.
|
inline |
Constructor.
verletListsAoS | |
cutoff |
|
inlineoverridevirtual |
Specifies whether the functor is capable of Newton3-like functors.
If the functor provides an interface to soa or aos functions that utilize Newton's third law of motion (actio = reactio) to reduce the computational complexity this function should return true. If this is not the case this function should return false.
Implements autopas::Functor< Particle_T, CRTP_T >.
|
inlineoverridevirtual |
Specifies whether the functor is capable of non-Newton3-like functors.
If the functor provides an interface to soa or aos functions that do not utilize Newton's third law of motion (actio = reactio) this function should return true. If this is not the case this function should return false.
Implements autopas::Functor< Particle_T, CRTP_T >.
|
inlineoverridevirtual |
PairwiseFunctor for arrays of structures (AoS).
This functor should calculate the forces or any other pair-wise interaction between two particles. This should include a cutoff check if needed!
i | Particle i |
j | Particle j |
newton3 | defines whether or whether not to use newton 3 |
Reimplemented from autopas::PairwiseFunctor< Particle_T, VerletListValidityCheckerFunctor >.
|
inlineoverridevirtual |
Returns name of functor.
Intended for use with the iteration logger, to differentiate between calls to computeInteractions using different functors in the logs.
Implements autopas::Functor< Particle_T, CRTP_T >.
|
inlineoverridevirtual |
Specifies whether the functor should be considered for the auto-tuning process.
Implements autopas::Functor< Particle_T, CRTP_T >.
|
inline |
Returns whether the neighbour list are valid.
Call this after performing the pairwise traversal