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. | |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
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).