|
ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
FullMolecule modeled as LJ sphere with point polarities. More...
#include <FullMolecule.h>
Public Member Functions | |
| FullMolecule (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.) | |
| FullMolecule (const FullMolecule &m) | |
| FullMolecule & | operator= (const FullMolecule &m) |
| unsigned long | getID () const override |
| void | setid (unsigned long id) override |
| void | setComponent (Component *component) override |
| Component * | component () const override |
| unsigned | getComponentLookUpID () const override |
| double | r (unsigned short d) const override |
| void | setr (unsigned short d, double r) override |
| double | v (unsigned short d) const override |
| void | setv (unsigned short d, double v) override |
| double | mass () const override |
| void | setF (unsigned short d, double F) 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 |
| void | updateMassInertia () override |
| double | v2 () const override |
| double | L2 () const override |
| double | F2 () const override |
| double | M2 () const override |
| double | U_trans () const override |
| double | U_trans_2 () const override |
| double | U_rot () override |
| double | U_rot_2 () override |
| double | U_kin () override |
| void | setupSoACache (CellDataSoABase *s, unsigned iLJ, unsigned iC, unsigned iD, unsigned iQ) override |
| void | setSoA (CellDataSoABase *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 |
| double | dist2 (const FullMolecule &molecule2, double dr[3]) const |
| void | setF (double F[3]) override |
| void | setM (double M[3]) override |
| void | setVi (double Vi[3]) override |
| void | Fadd (const double a[]) 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 |
| Calculate twice the translational and rotational kinetic energies. More... | |
| 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 |
Public Member Functions inherited from MoleculeInterface | |
| unsigned int | componentid () const |
| std::array< double, 3 > | r_arr () const |
| std::array< double, 3 > | v_arr () 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 |
| 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... | |
| virtual bool | inBox (const double l[3], const double u[3]) const |
| test whether molecule is inside a cuboid region 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 () |
Protected Member Functions | |
| void | calcFM_site (const std::array< double, 3 > &d, const std::array< double, 3 > &F) |
Protected Attributes | |
| Component * | _component |
| double | _r [3] |
| double | _F [3] |
| double | _v [3] |
| Quaternion | _q |
| double | _M [3] |
| double | _L [3] |
| double | _Vi [3] |
| unsigned long | _id |
| double | _m |
| double | _I [3] {0.,0.,0.} |
| double | _invI [3] {0.,0.,0.} |
| CellDataSoA * | _soa |
| unsigned | _soa_index_lj |
| unsigned | _soa_index_c |
| unsigned | _soa_index_d |
| unsigned | _soa_index_q |
FullMolecule modeled as LJ sphere with point polarities.
|
overridevirtual |
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.
|
overridevirtual |
calculate forces and moments for already given site forces
Implements MoleculeInterface.
|
protected |
calculate forces and moments for already given site forces, for this precise site
|
overridevirtual |
Calculate twice the translational and rotational kinetic energies.
| [out] | summv2 | twice the translational kinetic energy |
| [out] | sumIw2 | twice the rotational kinetic energy |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
perform data consistency check for the molecule (only debug mode)
catches NaN values and missing data
Implements MoleculeInterface.
|
overridevirtual |
clear forces and moments
Implements MoleculeInterface.
|
inlineoverridevirtual |
return pointer to component to which the molecule belongs
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
get coordinate of the rotatational speed
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inline |
Calculate the difference vector and return the square (euclidean) distance.
| molecule2 | molecule to which the distance shall be calculated |
|
inlineoverridevirtual |
get coordinate of current force onto molecule
Implements MoleculeInterface.
|
inlineoverridevirtual |
calculate and return the square force
Reimplemented from MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
get component lookUpID
Reimplemented from MoleculeInterface.
|
inlineoverridevirtual |
get the moment of inertia of a particle
Implements MoleculeInterface.
|
inlineoverridevirtual |
get molecule ID
Implements MoleculeInterface.
|
static |
|
inlineoverridevirtual |
calculate and return the square angular momentum
Reimplemented from MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
get coordinate of the current angular momentum onto molecule
Implements MoleculeInterface.
|
inlineoverridevirtual |
calculate and return the square torque
Reimplemented from MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
get molecule's mass
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 |
get number of sites
Implements MoleculeInterface.
|
inlineoverridevirtual |
get molecule's orientation
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
get position coordinate
Implements MoleculeInterface.
|
overridevirtual |
See above comment.
Implements MoleculeInterface.
|
inlineoverridevirtual |
set the molecule's component
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
set molecule ID
Implements MoleculeInterface.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
set molecule's orientation
Implements MoleculeInterface.
|
inlineoverridevirtual |
set position coordinate
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
set velocity
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
get the total object memory size, together with all its members \Note You can retrieve the size of the molecule class itself simply with the sizeof()-operator.
Implements MoleculeInterface.
|
inlineoverridevirtual |
return total kinetic energy of the molecule
Reimplemented from MoleculeInterface.
|
overridevirtual |
return the rotational energy of the molecule
Implements MoleculeInterface.
|
overridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
return the translational energy of the molecule
Reimplemented from MoleculeInterface.
|
inlineoverridevirtual |
Reimplemented from MoleculeInterface.
|
overridevirtual |
second step of the leap frog integrator
Implements MoleculeInterface.
|
overridevirtual |
First step of the leap frog integrator
Implements MoleculeInterface.
|
inlineoverridevirtual |
update mass and moment of inertia by component definition
Implements MoleculeInterface.
|
inlineoverridevirtual |
get velocity coordinate
Implements MoleculeInterface.
|
inlineoverridevirtual |
calculate and return the square velocity
Reimplemented from MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
get the virial
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
inlineoverridevirtual |
Implements MoleculeInterface.
|
overridevirtual |
write information to stream
Implements MoleculeInterface.
|
overridevirtual |
write binary information to stream
Implements MoleculeInterface.
|
protected |
IDentification number of its component type
|
protected |
forces
|
protected |
Virial tensor IDentification number of that molecule
|
protected |
angular momentum
|
protected |
torsional moment
|
protected |
total mass
|
protected |
angular orientation
|
protected |
position coordinates
|
protected |
velocity