|
| | Ccl (double cutoff, double switchingWidth) |
| | Constructor with cutoff for derived classes.
|
| void | intramolecular (double const rh1[], double const rh2[], double const ro[], double fh1[], double fh2[], double fo[], double &energy) |
| | Interactions inside one molecules.
|
| void | initialiseRho (Vector3 const &v, Rho &r) |
| | Initialise Rho.
|
| void | initialiseDtheta (Vector3 const &v1, Vector3 const &v2, Dtheta &dth, double const thetaEquilibrium) |
| | Initialise Dtheta.
|
| void | intramolecular (Rho const &ro1, Rho const &ro2, Dtheta const &dth, double &energy, double fh1[], double fh2[], double fo[]) |
| | Compute intramolecular energy and forces.
|
| void | restrainAngle (double const r1[], double const r2[], double const r3[], double f1[], double f2[], double f3[], double &u, const double k, const double aeq) |
| | Angular quadratic restraints.
|
| void | calculateCentre (double const r1[], double const r2[], double rc[]) |
| | Calculate centre of two points.
|
| void | calculateCentre (double const r1[], double const r2[], double const r3[], double rc[]) |
| | Calculate centre of three points.
|
| void | calculateWeightedCentre (double const w1, double const w2, double const w3, double const r1[], double const r2[], double const r3[], double rc[]) |
| | Calculate barycentre.
|
| void | coulombWithCutoff (const double r1[], const double r2[], double f1[], double f2[], double &u, double const qq) |
| | Coulomb interaction with single charge based cutoff.
|
| void | coulomb (const double r1[], const double r2[], double f1[], double f2[], double &u, double const qq) |
| | Compute Coulomb interaction between two charges.
|
| void | coulomb (double distance, double &force, double &energy, double const qq) |
| | Compute Coulomb interaction between two charges.
|
| void | spreadForce (double f1[], double f2[], double const fc[]) |
| | Spread force on centre to other points.
|
| void | spreadForce (double f1[], double f2[], double f3[], double const fc[]) |
| | Spread force on centre to other points.
|
| void | spreadWeightedForce (double const w1, double const w2, double const w3, double f1[], double f2[], double f3[], double const fc[]) |
| | Spread force on barycentre to atoms.
|
| template<int N, class R, class F> |
| void | addForces (ChargeGroup< N, R, F > const &g1, ChargeGroup< N, R, F > &g2) |
| | Increment forces.
|
| template<int N, class R, class F> |
| void | switching (ChargeGroup< N, R, F > &g1, ChargeGroup< N, R, F > &g2, double &energy, double cutoff, double switchingWidth) |
| void | computePt (int const nAtoms, double positions[], double forces[], double &energy, double const periods[], bool const fixed[]) |
| | Potential for Platinum.
|
| void | restrainLength (const double R1[], const double R2[], double F1[], double F2[], double &u, const double k, const double r0) |
| | Compute quadratic restraints between two atoms.
|
| void | lennardJones (double const distance, double &force, double &energy, double const epsilon, double const sigma) |
| | Lennard-Jones 12-6 between two atoms.
|
| void | lennardJones (const double R1[], const double R2[], double F1[], double F2[], double &E, double const epsilon, double const sigma) |
| | Lennard-Jones 12-6 between two atoms.
|
| void | lennardJonesWithCutoff (double const r1[], double const r2[], double f1[], double f2[], double &energy, double const epsilon, double const sigma) |
| | Lennard Jones 12-6 Potential with cutoff.
|
| void | switching (double const distance, double &force, double &energy) |
| | Smooth cutoff switch off.
|
| void | switching (double const r1[], double const r2[], double f1[], double f2[], double &energy) |
| | Smooth cutoff switch off.
|
| double | applyPeriodicity1 (double r, int const axis) |
| | Minimum image representation.
|
| void | applyPeriodicity1 (double r[]) |
| | Minimum image representation.
|
| void | distance (const double x[], const double y[], double z[], double &z1, double &z2) |
| | Distance vector, norm and norm square.
|
| void | distance (const double x[], const double y[], double z[], double &z1) |
| | Distance.
|
| void | distance (const double x[], const double y[], double z[]) |
| | Distance vector, norm.
|
| void | distance (const double x[], const double y[], double &z1) |
| | Distance.
|
| void | distance (const double x[], const double y[], Vector3 &z) |
| | Distance vector, norm and norm square.
|
| void | setPeriodicity (const double periods[]) |
| | Set periodicity.
|
| double | unBreak1 (double const r, double const ref, int const axis) |
| | Undo the separation of two atoms created by the periodic boundaries.
|
| void | unBreak1 (double r[], double const ref[]) |
| | Undo the separation of two atoms created by the periodic boundaries.
|
|
| template<int H, int O> |
| void | computeTemplate (const int nMolecules, const double(*const rh1)[H *3], const double(*const rh2)[H *3], const double(*const ro)[O *3], double(*const fh1)[H *3], double(*const fh2)[H *3], double(*const fo)[O *3], double &energy, double const b[], bool const (*const xh1)[H]=0, bool const (*const xh2)[H]=0, bool const (*const xo)[O]=0) |
| | Compute forces and energy.
|
| void | ro_2 (Rho const &ro1, Rho const &ro2, double &energy, double &d1, double &d2) |
| | Energy and derivatives for Term 1.
|
| void | ro1_ro2 (Rho const &s1, Rho const &s2, double &energy, double &d1, double &d2) |
| void | ro_theta (Rho const &s1, Rho const &s2, Dtheta const &s3, double &energy, double &d1, double &d2, double &d3) |
| void | theta_2 (Dtheta const &s3, double &energy, double &d3) |
| | Energy and derivatives for Term 4.
|
| void | ro_3 (Rho const &s1, Rho const &s2, double &energy, double &d1, double &d2) |
| void | ro_ro1_ro2 (Rho const &s1, Rho const &s2, double &energy, double &d1, double &d2) |
| void | ro_2_theta (Rho const &s1, Rho const &s2, Dtheta const &s3, double &energy, double &d1, double &d2, double &d3) |
| void | ro1_ro2_theta (Rho const &s1, Rho const &s2, Dtheta const &s3, double &energy, double &d1, double &d2, double &d3) |
| void | ro_theta_2 (Rho const &s1, Rho const &s2, Dtheta const &s3, double &energy, double &d1, double &d2, double &d3) |
| void | theta_3 (Dtheta const &s3, double &energy, double &d3) |
| void | ro_4 (Rho const &s1, Rho const &s2, double &energy, double &d1, double &d2) |
| void | ro1_ro2_ro_2 (Rho const &s1, Rho const &s2, double &energy, double &d1, double &d2) |
| void | ro1_2_ro2_2 (Rho const &s1, Rho const &s2, double &energy, double &d1, double &d2) |
| void | ro_3_theta (Rho const &s1, Rho const &s2, Dtheta const &s3, double &energy, double &d1, double &d2, double &d3) |
| void | ro_ro1_ro2_theta (Rho const &s1, Rho const &s2, Dtheta const &s3, double &energy, double &d1, double &d2, double &d3) |
| void | ro_2_theta_2 (Rho const &s1, Rho const &s2, Dtheta const &s3, double &energy, double &d1, double &d2, double &d3) |
| void | ro1_ro2_theta_2 (Rho const &s1, Rho const &s2, Dtheta const &s3, double &energy, double &d1, double &d2, double &d3) |
| void | theta_4 (Dtheta const &s3, double &energy, double &d3) |
|
| static double | applyPeriodicity0 (double r, double const period) |
| | Minimum image representation.
|
| static void | applyPeriodicity0 (double r[], double const periods[]) |
| | Minimum image representation.
|
| static void | divide (double v[], double const divisor) |
| | Divide vector.
|
| static double * | crossProduct (const double v[], const double w[], double e[]) |
| | Cross product.
|
| static double | dotProduct (double const v[], double const w[]) |
| | Dot product.
|
| static void | multiply (double v[], double const factor) |
| | Multiply vector.
|
| static double | norm (double const v[]) |
| | Norm of 3D vector.
|
| static void | normalise (double v[]) |
| | Normalise 3D vector \( \frac{\mathbf v}{ |\mathbf v|} \).
|
| static double | isoscelesBase (double length, double angle) |
| | Calculate the base of an isosceles triangle.
|
| static double | epsilon (double const A, double const B) |
| | Conversion for Lennard-Jones.
|
| static double | sigma (double const A, double const B) |
| | Conversion for Lennard-Jones.
|
| static double | smithKongEpsilon (double sigma1, double epsilon1, double sigma2, double epsilon2) |
| | Smith and Kong combination rules.
|
| static double | smithKongSigma (double sigma1, double epsilon1, double sigma2, double epsilon2) |
| | Smith and Kong combination rules.
|
| static double | unBreak0 (double const r, double const ref, double const period) |
| | Undo the separation of two atoms created by the periodic boundaries.
|
| static void | unBreak0 (double r[], double const ref[], double const periods[]) |
| | Undo the separation of two atoms created by the periodic boundaries.
|
| double | cutoff_ |
| double | periods_ [3] |
| double | switchingWidth_ |
Quartic intramolecular potential for water.
This is a potential to intramolecular interaction in water published by Carney, Curtiss and Langhoff. The functions and parameters for the potential are in Table II of the publication.
References
Improved Potential Functions for Bent AB2 Molecules: Water and Ozone. GD Carney, LA Curtiss, SR Langhoff, J. Mol. Spectroscopy 1976, vol. 61, p. 371-381
Definition at line 22 of file ccl.hpp.