13 #ifndef __RD_UFFINVERSION_H__
14 #define __RD_UFFINVERSION_H__
16 #include <boost/tuple/tuple.hpp>
40 unsigned int idx3,
unsigned int idx4,
int at2AtomicNum,
41 bool isCBoundToO,
double oobForceScalingFactor = 1.0);
45 void getGrad(
double *pos,
double *grad)
const override;
55 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.
void getGrad(double *pos, double *grad) const override
calculates our contribution to the gradients of a position
InversionContrib * copy() const override
return a copy
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 double calculateCosY(const RDGeom::Point3D &iPoint, const RDGeom::Point3D &jPoint, const RDGeom::Point3D &kPoint, const RDGeom::Point3D &lPoint)
RDKIT_FORCEFIELD_EXPORT boost::tuple< double, double, double, double > calcInversionCoefficientsAndForceConstant(int at2AtomicNum, bool isCBoundToO)
calculates and returns the UFF force constant for an improper torsion