Standard multi-site LJ molecules. More...
#include <MultisiteMoleculeLJ.h>


Public Types | |
| enum | AttributeNames : int { ptr , id , posX , posY , posZ , velocityX , velocityY , velocityZ , forceX , forceY , forceZ , oldForceX , oldForceY , oldForceZ , quaternion0 , quaternion1 , quaternion2 , quaternion3 , angularVelX , angularVelY , angularVelZ , torqueX , torqueY , torqueZ , typeId , ownershipState } |
| Enums used as ids for accessing and creating a dynamically sized SoA. | |
| using | SoAArraysType = typename autopas::utils::SoAType< MultisiteMoleculeLJ *, size_t, double, double, double, double, double, double, double, double, double, double, 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 mdLib::MoleculeLJ | |
| 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 | |
| MultisiteMoleculeLJ (std::array< double, 3 > r, std::array< double, 3 > v, std::array< double, 4 > q, std::array< double, 3 > angularVel, unsigned long moleculeId, unsigned long typeId=0) | |
| Constructor of the MultisiteMoleculeLJ Class. | |
| ~MultisiteMoleculeLJ () override=default | |
| Destructor of the MultisiteMoleculeLJ class. | |
| 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, 4 > & | getQuaternion () const |
| Get the quaternion defining rotation. | |
| void | setQuaternion (const std::array< double, 4 > &q) |
| Set the quaternion defining rotation. | |
| const std::array< double, 3 > & | getAngularVel () const |
| Get the angular velocity. | |
| void | setAngularVel (const std::array< double, 3 > &angularVel) |
| Set the angular velocity. | |
| void | addAngularVel (const std::array< double, 3 > &angularVel) |
| Adds given angular velocity to the particle's angular velocity. | |
| const std::array< double, 3 > & | getTorque () const |
| Get the torque. | |
| void | setTorque (const std::array< double, 3 > &torque) |
| Set the torque. | |
| void | addTorque (const std::array< double, 3 > &torque) |
| Adds given torque to the particle's torque. | |
| void | subTorque (const std::array< double, 3 > &torque) |
| Subracts given torque to the particle's torque. | |
| std::string | toString () const override |
| Creates a string containing all data of the particle. | |
Public Member Functions inherited from 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. | |
| 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 | |
| std::array< double, 4 > | _q {} |
| Rotational direction of particle as quaternion. | |
| std::array< double, 3 > | _angularVel {} |
| Angular velocity of the particle. | |
| std::array< double, 3 > | _torque {} |
| Torque applied to particle. | |
Protected Attributes inherited from mdLib::MoleculeLJ | |
| 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. | |
Standard multi-site LJ molecules.
The molecule is treated as a single particle for the purposes of cutoffs and containers, with a quaternion for angular direction, a 3D vector-array for angular velocity, and a vectors of site positions relative to the center of mass and angular direction.
| using mdLib::MultisiteMoleculeLJ::SoAArraysType = typename autopas::utils::SoAType< MultisiteMoleculeLJ *, size_t, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, size_t, autopas::OwnershipState >::Type |
The type for the SoA storage.
| mdLib::MultisiteMoleculeLJ::MultisiteMoleculeLJ | ( | std::array< double, 3 > | r, |
| std::array< double, 3 > | v, | ||
| std::array< double, 4 > | q, | ||
| std::array< double, 3 > | angularVel, | ||
| unsigned long | moleculeId, | ||
| unsigned long | typeId = 0 |
||
| ) |
Constructor of the MultisiteMoleculeLJ Class.
| r | Position of the particle. |
| v | Velocity of the particle. |
| q | Quaternion defining rotation of particle. |
| angularVel | Rotational velocity of the particle. |
| moleculeId | Id of the particle. |
| typeId | Id of the type of the particle. Used in conjunction with ParticlePropertiesLibrary to access molecular information such as site types and relative site positions. |
| void mdLib::MultisiteMoleculeLJ::addAngularVel | ( | const std::array< double, 3 > & | angularVel | ) |
Adds given angular velocity to the particle's angular velocity.
| angularVel | angular velocity to be added |
| void mdLib::MultisiteMoleculeLJ::addTorque | ( | const std::array< double, 3 > & | torque | ) |
Adds given torque to the particle's torque.
| torque | torque to be added |
|
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::MultisiteMoleculeLJ::getAngularVel | ( | ) | const |
Get the angular velocity.
| const std::array< double, 4 > & mdLib::MultisiteMoleculeLJ::getQuaternion | ( | ) | const |
Get the quaternion defining rotation.
| const std::array< double, 3 > & mdLib::MultisiteMoleculeLJ::getTorque | ( | ) | const |
Get the torque.
|
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::MultisiteMoleculeLJ::setAngularVel | ( | const std::array< double, 3 > & | angularVel | ) |
Set the angular velocity.
| angularVel |
| void mdLib::MultisiteMoleculeLJ::setQuaternion | ( | const std::array< double, 4 > & | q | ) |
Set the quaternion defining rotation.
| q | quaternion defining rotation |
| void mdLib::MultisiteMoleculeLJ::setTorque | ( | const std::array< double, 3 > & | torque | ) |
Set the torque.
| torque |
| void mdLib::MultisiteMoleculeLJ::subTorque | ( | const std::array< double, 3 > & | torque | ) |
Subracts given torque to the particle's torque.
| torque | torque to be subtracted |
|
overridevirtual |
Creates a string containing all data of the particle.
Reimplemented from mdLib::MoleculeLJ.