Molecule class for the LJFunctor. More...
#include <MoleculeLJ.h>


| Public Types | |
| enum | AttributeNames : int { ptr , id , posX , posY , posZ , velocityX , velocityY , velocityZ , forceX , forceY , forceZ , oldForceX , oldForceY , oldForceZ , typeId , ownershipState } | 
| Enums used as ids for accessing and creating a dynamically sized SoA. | |
| using | SoAArraysType = typename autopas::utils::SoAType< MoleculeLJ *, size_t, double, double, double, double, double, double, double, double, double, double, double, double, size_t, autopas::OwnershipState >::Type | 
| The type for the SoA storage. | |
|  Public Types inherited from autopas::ParticleBase< floatType, idType > | |
| enum | AttributeNames : int { ptr , id , posX , posY , posZ , forceX , forceY , forceZ , ownershipState } | 
| Enums used as ids for accessing and creating a dynamically sized SoA. | |
| using | ParticleSoAFloatPrecision = floatType | 
| Floating Point Type used for this particle. | |
| using | ParticleIdType = idType | 
| Id Type used for this particle. | |
| using | SoAArraysType = typename autopas::utils::SoAType< ParticleBase< floatType, idType > *, idType, floatType, floatType, floatType, floatType, floatType, floatType, OwnershipState >::Type | 
| The type for the soa storage. | |
| Public Member Functions | |
| MoleculeLJ (const std::array< double, 3 > &pos, const std::array< double, 3 > &v, unsigned long moleculeId, unsigned long typeId=0) | |
| Constructor of lennard jones molecule with initialization of typeID. | |
| template<AttributeNames attribute, std::enable_if_t< attribute==AttributeNames::ptr, bool > = true> | |
| constexpr std::tuple_element< attribute, SoAArraysType >::type::value_type | get () | 
| Non-const getter for the pointer of this object. | |
| template<AttributeNames attribute, std::enable_if_t< attribute !=AttributeNames::ptr, bool > = true> | |
| constexpr std::tuple_element< attribute, SoAArraysType >::type::value_type | get () const | 
| Getter, which allows access to an attribute using the corresponding attribute name (defined in AttributeNames). | |
| template<AttributeNames attribute> | |
| constexpr void | set (typename std::tuple_element< attribute, SoAArraysType >::type::value_type value) | 
| Setter, which allows set an attribute using the corresponding attribute name (defined in AttributeNames). | |
| const std::array< double, 3 > & | getOldF () const | 
| Get the old force. | |
| void | setOldF (const std::array< double, 3 > &oldForce) | 
| Set old force. | |
| size_t | getTypeId () const | 
| Get TypeId. | |
| void | setTypeId (size_t typeId) | 
| Set the type id of the Molecule. | |
| std::string | toString () const override | 
| Creates a string containing all data of the particle. | |
|  Public Member Functions inherited from autopas::ParticleBase< floatType, idType > | |
| ParticleBase (const std::array< double, 3 > &r, const std::array< double, 3 > &v, idType id, OwnershipState ownershipState=OwnershipState::owned) | |
| Constructor of the Particle class. | |
| virtual | ~ParticleBase ()=default | 
| Destructor of ParticleBase class. | |
| bool | operator== (const ParticleBase &rhs) const | 
| Equality operator for ParticleBase class. | |
| bool | operator!= (const ParticleBase &rhs) const | 
| Not-Equals operator for ParticleBase class. | |
| const std::array< double, 3 > & | getF () const | 
| get the force acting on the particle | |
| void | setF (const std::array< double, 3 > &f) | 
| Set the force acting on the particle. | |
| void | addF (const std::array< double, 3 > &f) | 
| Add a partial force to the force acting on the particle. | |
| void | subF (const std::array< double, 3 > &f) | 
| Substract a partial force from the force acting on the particle. | |
| idType | getID () const | 
| Get the id of the particle. | |
| void | setID (idType id) | 
| Set the id of the particle. | |
| const std::array< double, 3 > & | getR () const | 
| Get the position of the particle. | |
| void | setR (const std::array< double, 3 > &r) | 
| Set the position of the particle. | |
| bool | setRDistanceCheck (const std::array< double, 3 > &r, double maxDistSquared) | 
| Add a distance vector to the position of the particle and check if the distance between the old and new position is less than a given max distance. | |
| void | addR (const std::array< double, 3 > &r) | 
| Add a distance vector to the position of the particle. | |
| bool | addRDistanceCheck (const std::array< double, 3 > &r, double maxDistSquared) | 
| Add a distance vector to the position of the particle and check if the distance between the old and new position is less than a given max distance. | |
| const std::array< double, 3 > & | getV () const | 
| Get the velocity of the particle. | |
| void | setV (const std::array< double, 3 > &v) | 
| Set the velocity of the particle. | |
| void | addV (const std::array< double, 3 > &v) | 
| Add a vector to the current velocity of the particle. | |
| virtual std::string | toString () const | 
| Creates a string containing all data of the particle. | |
| bool | isOwned () const | 
| Defines whether the particle is owned by the current AutoPas object (aka (MPI-)process) | |
| bool | isHalo () const | 
| Defines whether the particle is a halo particle, i.e., not owned by the current AutoPas object (aka (MPI-)process) | |
| bool | isDummy () const | 
| Returns whether the particle is a dummy particle. | |
| OwnershipState | getOwnershipState () const | 
| Returns the particle's ownership state. | |
| void | setOwnershipState (OwnershipState ownershipState) | 
| Set the OwnershipState to the given value. | |
| template<AttributeNames attribute, std::enable_if_t< attribute==AttributeNames::ptr, bool > = true> | |
| constexpr std::tuple_element< attribute, SoAArraysType >::type::value_type | get () | 
| Non-const getter for the pointer of this object. | |
| template<AttributeNames attribute, std::enable_if_t< attribute !=AttributeNames::ptr, bool > = true> | |
| constexpr std::tuple_element< attribute, SoAArraysType >::type::value_type | get () const | 
| Getter, which allows access to an attribute using the corresponding attribute name (defined in AttributeNames). | |
| template<AttributeNames attribute> | |
| constexpr void | set (typename std::tuple_element< attribute, SoAArraysType >::type::value_type value) | 
| Setter, which allows set an attribute using the corresponding attribute name (defined in AttributeNames). | |
| Protected Attributes | |
| size_t | _typeId = 0 | 
| Molecule type id. | |
| std::array< double, 3 > | _oldF = {0., 0., 0.} | 
| Old Force of the particle experiences as 3D vector. | |
|  Protected Attributes inherited from autopas::ParticleBase< floatType, idType > | |
| std::array< floatType, 3 > | _r | 
| Particle position as 3D coordinates. | |
| std::array< floatType, 3 > | _v | 
| Particle velocity as 3D vector. | |
| std::array< floatType, 3 > | _f | 
| Force the particle experiences as 3D vector. | |
| idType | _id | 
| Particle id. | |
| OwnershipState | _ownershipState | 
| Defines the state of the ownership of the particle. | |
Molecule class for the LJFunctor.
| using mdLib::MoleculeLJ::SoAArraysType = typename autopas::utils::SoAType<MoleculeLJ *, size_t , double , double , double , double , double , double , double , double , double , double , double , double , size_t , autopas::OwnershipState >::Type | 
The type for the SoA storage.
| mdLib::MoleculeLJ::MoleculeLJ | ( | const std::array< double, 3 > & | pos, | 
| const std::array< double, 3 > & | v, | ||
| unsigned long | moleculeId, | ||
| unsigned long | typeId = 0 | ||
| ) | 
Constructor of lennard jones molecule with initialization of typeID.
| pos | Position of the molecule. | 
| v | Velocity of the molecule. | 
| moleculeId | Unique Id of the molecule. | 
| typeId | TypeId of the molecule. | 
| 
 | inlineconstexpr | 
Non-const getter for the pointer of this object.
| attribute | Attribute name. | 
| 
 | inlineconstexpr | 
Getter, which allows access to an attribute using the corresponding attribute name (defined in AttributeNames).
| attribute | Attribute name. | 
| const std::array< double, 3 > & mdLib::MoleculeLJ::getOldF | ( | ) | const | 
Get the old force.
| size_t mdLib::MoleculeLJ::getTypeId | ( | ) | const | 
Get TypeId.
| 
 | inlineconstexpr | 
Setter, which allows set an attribute using the corresponding attribute name (defined in AttributeNames).
| attribute | Attribute name. | 
| value | New value of the requested attribute. | 
| void mdLib::MoleculeLJ::setOldF | ( | const std::array< double, 3 > & | oldForce | ) | 
Set old force.
| oldForce | 
| void mdLib::MoleculeLJ::setTypeId | ( | size_t | typeId | ) | 
Set the type id of the Molecule.
| typeId | 
| 
 | overridevirtual | 
Creates a string containing all data of the particle.
Reimplemented from autopas::ParticleBase< floatType, idType >.
Reimplemented in mdLib::MultisiteMoleculeLJ.
| 
 | protected | 
Molecule type id.
In single-site simulations, this is used as a siteId to look up site attributes in the particle properties library.
In multi-site simulations, where a multi-site molecule class inheriting from this class is used, typeId is used as a molId to look up molecular attributes (including siteIds of the sites).