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).