|
| | TriwiseFunctor (double cutoff) |
| | Constructor.
|
| |
| virtual void | AoSFunctor (Particle_T &i, Particle_T &j, Particle_T &k, bool newton3) |
| | TriwiseFunctor for arrays of structures (AoS).
|
| |
| virtual void | SoAFunctorSingle (SoAView< SoAArraysType > soa, bool newton3) |
| | TriwiseFunctor for structure of arrays (SoA)
|
| |
| virtual void | SoAFunctorPair (SoAView< SoAArraysType > soa1, SoAView< SoAArraysType > soa2, bool newton3) |
| | TriwiseFunctor for structure of arrays (SoA)
|
| |
| virtual void | SoAFunctorTriple (SoAView< SoAArraysType > soa1, SoAView< SoAArraysType > soa2, SoAView< SoAArraysType > soa3, bool newton3) |
| | TriwiseFunctor 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) |
| | TriwiseFunctor for structure of arrays (SoA) for neighbor lists.
|
| |
| 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, class CRTP_T>
class autopas::TriwiseFunctor< Particle_T, CRTP_T >
TriwiseFunctor class.
This class describes the triwise interactions between particles.
Functor base class.
Both an array of structure (AoS) and a structure of array (SoA) are supported to be used with functors. Newton3: A functor does not have to implement both a newton3 and a non-newton3 version. Instead you can specify, which version you use by overriding allowsNonNewton3 resp. allowsNewton3
- Template Parameters
-
| Particle_T | the type of Particle |
| CRTP_T | the actual type of the functor |
| Particle_T | the type of Particle |
| CRTP_T | the actual type of the functor |
template<class Particle_T , class CRTP_T >
| virtual void autopas::TriwiseFunctor< Particle_T, CRTP_T >::AoSFunctor |
( |
Particle_T & |
i, |
|
|
Particle_T & |
j, |
|
|
Particle_T & |
k, |
|
|
bool |
newton3 |
|
) |
| |
|
inlinevirtual |
template<class Particle_T , class CRTP_T >
| bool autopas::TriwiseFunctor< Particle_T, CRTP_T >::isVecPatternAllowed |
( |
const VectorizationPatternOption::Value |
vecPattern | ) |
|
|
inlineoverridevirtual |
Specifies whether the functor is capable of using the specified Vectorization Pattern in the SoA functor.
Note: Currently Vectorization Patterns are not implemented for threebody interactions. p1xVec is used as default.
- Parameters
-
- Returns
- whether the functor is capable of using the specified Vectorization Pattern
Implements autopas::Functor< Particle_T, CRTP_T >.