Empty Functor, this functor is empty and can be used for testing purposes. More...
#include <EmptyPairwiseFunctor.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 | |
EmptyPairwiseFunctor () | |
Default constructor. | |
void | AoSFunctor (Particle_T &i, Particle_T &j, bool newton3) override |
PairwiseFunctor for arrays of structures (AoS). | |
void | SoAFunctorSingle (autopas::SoAView< typename Particle_T::SoAArraysType > soa, bool newton3) override |
PairwiseFunctor for structure of arrays (SoA) | |
void | SoAFunctorPair (autopas::SoAView< typename Particle_T::SoAArraysType > soa1, autopas::SoAView< typename Particle_T::SoAArraysType > soa2, bool newton3) override |
SoAFunctor for a pair of SoAs. | |
void | SoAFunctorVerlet (autopas::SoAView< typename Particle_T::SoAArraysType > soa, size_t indexFirst, const std::vector< size_t, autopas::AlignedAllocator< size_t > > &neighborList, bool newton3) override |
PairwiseFunctor for structure of arrays (SoA) for neighbor lists. | |
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. | |
std::string | getName () override |
Returns name of functor. | |
bool | isRelevantForTuning () override |
Specifies whether the functor should be considered for the auto-tuning process. | |
![]() | |
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. | |
Empty Functor, this functor is empty and can be used for testing purposes.
It returns that it is applicable for everything.
|
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, EmptyPairwiseFunctor< Particle_T > >.
|
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 >.
|
inlineoverridevirtual |
SoAFunctor for a pair of SoAs.
soa1 | An autopas::SoAView for the Functor |
soa2 | A second autopas::SoAView for the Functor |
newton3 | A boolean to indicate whether to allow newton3 |
Reimplemented from autopas::PairwiseFunctor< Particle_T, EmptyPairwiseFunctor< Particle_T > >.
|
inlineoverridevirtual |
PairwiseFunctor for structure of arrays (SoA)
This functor should calculate the forces or any other pair-wise interaction between all particles in an soa. This should include a cutoff check if needed!
soa | Structure of arrays |
newton3 | defines whether or whether not to use newton 3 |
Reimplemented from autopas::PairwiseFunctor< Particle_T, EmptyPairwiseFunctor< Particle_T > >.
|
inlineoverridevirtual |
PairwiseFunctor for structure of arrays (SoA) for neighbor lists.
This functor should calculate the forces or any other pair-wise interaction between the particle in the SoA with index indexFirst and all particles with indices in the neighborList. This should include a cutoff check if needed!
soa | Structure of arrays |
indexFirst | The index of the first particle for each interaction |
neighborList | The list of neighbors |
newton3 | defines whether or whether not to use newton 3 |
Reimplemented from autopas::PairwiseFunctor< Particle_T, EmptyPairwiseFunctor< Particle_T > >.