ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
#include <AutoPasSimpleMolecule.h>
Public Types | |
enum | AttributeNames : int { ptr , id , posX , posY , posZ , forceX , forceY , forceZ , typeId , ownershipState } |
using | SoAArraysType = typename autopas::utils::SoAType< AutoPasSimpleMolecule *, size_t, double, double, double, double, double, double, size_t, autopas::OwnershipState >::Type |
Public Member Functions | |
AutoPasSimpleMolecule (unsigned long id=0, Component *component=nullptr, double rx=0., double ry=0., double rz=0., double vx=0., double vy=0., double vz=0., double q0=1., double q1=1., double q2=0., double q3=0., double Dx=0., double Dy=0., double Dz=0.) | |
AutoPasSimpleMolecule (const AutoPasSimpleMolecule &m)=default | |
template<AttributeNames attribute> | |
constexpr std::tuple_element< static_cast< size_t >(attribute), SoAArraysType >::type::value_type | get () |
template<AttributeNames attribute> | |
constexpr void | set (typename std::tuple_element< static_cast< size_t >(attribute), SoAArraysType >::type::value_type value) |
unsigned long | getID () const override |
void | setid (unsigned long id) override |
void | setComponent (Component *component) override |
void | setr (unsigned short d, double r) override |
void | setv (unsigned short d, double v) override |
void | setF (unsigned short d, double F) override |
Component * | component () const override |
double | r (unsigned short d) const override |
double | v (unsigned short d) const override |
double | F (unsigned short d) const override |
const Quaternion & | q () const override |
void | setq (Quaternion q) override |
double | D (unsigned short d) const override |
double | M (unsigned short d) const override |
double | Vi (unsigned short d) const override |
void | setD (unsigned short d, double D) override |
void | move (int d, double dr) override |
double | getI (unsigned short d) const override |
double | U_rot () override |
double | U_rot_2 () override |
void | updateMassInertia () override |
void | setupSoACache (CellDataSoABase *const s, unsigned iLJ, unsigned iC, unsigned iD, unsigned iQ) override |
void | setSoA (CellDataSoABase *const s) override |
void | setStartIndexSoA_LJ (unsigned i) override |
void | setStartIndexSoA_C (unsigned i) override |
void | setStartIndexSoA_D (unsigned i) override |
void | setStartIndexSoA_Q (unsigned i) override |
unsigned int | numSites () const override |
unsigned int | numOrientedSites () const override |
unsigned int | numLJcenters () const override |
unsigned int | numCharges () const override |
unsigned int | numDipoles () const override |
unsigned int | numQuadrupoles () const override |
std::array< double, 3 > | site_d (unsigned int i) const override |
std::array< double, 3 > | ljcenter_d (unsigned int i) const override |
std::array< double, 3 > | charge_d (unsigned int i) const override |
std::array< double, 3 > | dipole_d (unsigned int i) const override |
std::array< double, 3 > | quadrupole_d (unsigned int i) const override |
std::array< double, 3 > | site_d_abs (unsigned int i) const override |
std::array< double, 3 > | ljcenter_d_abs (unsigned int i) const override |
std::array< double, 3 > | charge_d_abs (unsigned int i) const override |
std::array< double, 3 > | dipole_d_abs (unsigned int i) const override |
std::array< double, 3 > | quadrupole_d_abs (unsigned int i) const override |
std::array< double, 3 > | dipole_e (unsigned int i) const override |
std::array< double, 3 > | quadrupole_e (unsigned int i) const override |
std::array< double, 3 > | site_F (unsigned int i) const override |
std::array< double, 3 > | ljcenter_F (unsigned int i) const override |
std::array< double, 3 > | charge_F (unsigned int i) const override |
std::array< double, 3 > | dipole_F (unsigned int i) const override |
std::array< double, 3 > | quadrupole_F (unsigned int i) const override |
void | normalizeQuaternion () override |
std::array< double, 3 > | computeLJcenter_d (unsigned int i) const override |
std::array< double, 3 > | computeCharge_d (unsigned int i) const override |
std::array< double, 3 > | computeDipole_d (unsigned int i) const override |
std::array< double, 3 > | computeQuadrupole_d (unsigned int i) const override |
std::array< double, 3 > | computeDipole_e (unsigned int i) const override |
std::array< double, 3 > | computeQuadrupole_e (unsigned int i) const override |
unsigned long | totalMemsize () const override |
void | setF (double F[3]) override |
void | setF (const std::array< double, 3 > &f) |
void | setM (double M[3]) override |
void | setVi (double Vi[3]) override |
void | Fadd (const double F[]) override |
void | Madd (const double a[]) override |
void | Viadd (const double a[]) override |
void | vadd (const double ax, const double ay, const double az) override |
void | vsub (const double ax, const double ay, const double az) override |
void | Fljcenteradd (unsigned int i, double a[]) override |
void | Fljcentersub (unsigned int i, double a[]) override |
void | Fchargeadd (unsigned int i, double a[]) override |
void | Fchargesub (unsigned int i, double a[]) override |
void | Fdipoleadd (unsigned int i, double a[]) override |
void | Fdipolesub (unsigned int i, double a[]) override |
void | Fquadrupoleadd (unsigned int i, double a[]) override |
void | Fquadrupolesub (unsigned int i, double a[]) override |
void | upd_preF (double dt) override |
void | upd_postF (double dt_halve, double &summv2, double &sumIw2) override |
void | calculate_mv2_Iw2 (double &summv2, double &sumIw2) override |
void | calculate_mv2_Iw2 (double &summv2, double &sumIw2, double offx, double offy, double offz) override |
void | write (std::ostream &ostrm) const override |
void | writeBinary (std::ostream &ostrm) const override |
void | clearFM () override |
void | calcFM () override |
void | check (unsigned long id) override |
void | buildOwnSoA () override |
void | releaseOwnSoA () override |
bool | inBox (const double rmin[3], const double rmax[3]) const override |
test whether molecule is inside a cuboid region More... | |
bool | inBox (const std::array< double, 3 > &rmin, const std::array< double, 3 > &rmax) const |
size_t | getTypeId () const |
![]() | |
unsigned int | componentid () const |
virtual unsigned | getComponentLookUpID () const |
std::array< double, 3 > | r_arr () const |
std::array< double, 3 > | v_arr () const |
virtual double | mass () const |
virtual std::array< double, 3 > | F_arr () |
virtual std::array< double, 3 > | M_arr () |
virtual std::array< double, 3 > | Vi_arr () |
std::array< double, 3 > | D_arr () const |
virtual double | v2 () const |
virtual double | F2 () const |
virtual double | L2 () const |
virtual double | M2 () const |
virtual double | U_trans () const |
virtual double | U_trans_2 () const |
virtual double | U_kin () |
double | dist2 (const MoleculeInterface &molecule2, double dr[3]) const |
double | orientationAngle (const MoleculeInterface &molecule2, double dr[3], double d2) const |
void | scale_v (double s) |
void | scale_v (double s, double offx, double offy, double offz) |
void | scale_F (double s) |
void | scale_D (double s) |
void | scale_M (double s) |
void | ee_upd_preF (double dt) |
void | ee_upd_postF (double dt, double &summv2) |
bool | isLessThan (const MoleculeInterface &m2) const |
find out whether m1 is before m2 (in some global ordering) More... | |
Static Public Member Functions | |
static std::string | getWriteFormat () |
![]() | |
static std::array< vcp_real_calc, 3 > | convert_double_to_vcp_real_calc (const std::array< double, 3 > &v) |
static std::string | getWriteFormat () |
class that implements additional functions to make the molecule compatible with autopas
using AutoPasSimpleMolecule::SoAArraysType = typename autopas::utils::SoAType<AutoPasSimpleMolecule *, size_t , double , double , double , double , double , double , size_t , autopas::OwnershipState >::Type |
The type for the SoA storage.
enum AutoPasSimpleMolecule::AttributeNames : int |
Enums used as ids for accessing and creating a dynamically sized SoA.
|
inlineoverridevirtual |
In almost all cases, molecule's caches are stored in SoAs. In some rare instances (e.g. ParticleContainer::getEnergy()) a molecule should rather better exist alone and not be part of a particleCell. This function allocates a new SoA. Remember to release it when no longer necessary!
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineconstexpr |
Getter, which allows access to an attribute using the corresponding attribute name (defined in AttributeNames).
attribute | Attribute name. |
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
test whether molecule is inside a cuboid region
l | lower left front corner of cube (equality allowed) |
u | upper right back corner of cube (equality not allowed) |
Reimplemented from MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
See above comment.
Implements MoleculeInterface.
|
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. |
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.