11#ifndef RD_UFFINVERSION_H
12#define RD_UFFINVERSION_H
38 unsigned int idx3,
unsigned int idx4,
int at2AtomicNum,
39 bool isCBoundToO,
double oobForceScalingFactor = 1.0);
43 void getGrad(
double *pos,
double *grad)
const override;
53 double d_forceConstant, d_C0, d_C1, d_C2;
abstract base class for contributions to ForceFields
A class to store forcefields and handle minimization.
The inversion term for the Universal Force Field.
InversionContrib * copy() const override
return a copy
void getGrad(double *pos, double *grad) const override
calculates our contribution to the gradients of a position
InversionContrib(ForceField *owner, unsigned int idx1, unsigned int idx2, unsigned int idx3, unsigned int idx4, int at2AtomicNum, bool isCBoundToO, double oobForceScalingFactor=1.0)
Constructor.
double getEnergy(double *pos) const override
returns our contribution to the energy of a position
#define RDKIT_FORCEFIELD_EXPORT
RDKIT_FORCEFIELD_EXPORT std::tuple< double, double, double, double > calcInversionCoefficientsAndForceConstant(int at2AtomicNum, bool isCBoundToO)
calculates and returns the UFF force constant for an improper torsion
RDKIT_FORCEFIELD_EXPORT double calculateCosY(const RDGeom::Point3D &iPoint, const RDGeom::Point3D &jPoint, const RDGeom::Point3D &kPoint, const RDGeom::Point3D &lPoint)