class forcefields::Ccl¶
Overview¶
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. More…
class Ccl: public forcefields::PotentialBase {
public:
// structs
struct Dtheta;
struct Rho;
// construction
Ccl();
// methods
void computeHH_O_(const int nAtoms, const double R[], double F[], double& U, const double b[]);
void computeHH_O_(const int nAtoms, const double R[], double F[], double& U, const double b[], const bool fixed[]);
char const* getName() const;
};
Inherited Members¶
public:
// structs
template <int N, class R = double(*const)[N], class F = double(*const)[N]>
struct ChargeGroup;
struct Vector3;
// methods
double getSwitchingWidth() const;
void setSwitchingWidth(double width);
double getCutoff() const;
void setCutoff(double cutoff);
static double applyPeriodicity0(double r, double const period);
static void applyPeriodicity0(double r[], double const periods[]);
Detailed Documentation¶
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
Methods¶
void computeHH_O_(const int nAtoms, const double R[], double F[], double& U, const double b[])
Compute the forces and the energy. The order of the atoms is very important. For this function the order is H1, H1, H2, H2, etc … , O1, O2, etc … The numbers are for the molecules. The suffix HH_O_ is to reminds the ordering of the atoms. It indicates the position of the atoms of the first molecule, while the underscore marks the locations of other atoms.
Warning
Be careful with the order of the atoms.
Parameters:
nAtoms |
Number of Atoms. |
R |
coordinates. |
F |
Forces. |
U |
Potential energy. |
b |
Periodic boundaries. |
void computeHH_O_(const int nAtoms, const double R[], double F[], double& U, const double b[], const bool fixed[])
Compute the forces and the energy (with fixed atom optimisation). In a simulation, some atoms may be fixed (not allowed to move). Computing the interaction between two fixed atoms is useless. When the potential knows which atoms are fixed, it can avoid these useless computations.
Parameters:
nAtoms |
Number of Atoms. |
R |
coordinates. |
F |
Forces. |
U |
Potential energy. |
b |
Periodic boundaries. |
fixed |
The length of the array must be equal to nAtoms in compute(). True when atom is fixed, false otherwise. |
See also:
Check compute() for the order of the atoms.
char const* getName() const
Name of the potential.