|
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 |
Public Member Functions inherited from MoleculeInterface | |
| 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 Public Member Functions inherited from MoleculeInterface | |
| 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.