11#ifndef RD_MMFFTORSIONANGLE_H
12#define RD_MMFFTORSIONANGLE_H
46 void addTerm(
unsigned int idx1,
unsigned int idx2,
unsigned int idx3,
47 unsigned int idx4,
const MMFFTor *mmffTorParams);
49 void getGrad(
double *pos,
double *grad)
const override;
55 std::vector<int16_t> d_at1Idx;
56 std::vector<int16_t> d_at2Idx;
57 std::vector<int16_t> d_at3Idx;
58 std::vector<int16_t> d_at4Idx;
59 std::vector<double> d_V1;
60 std::vector<double> d_V2;
61 std::vector<double> d_V3;
80 double **g,
double &sinTerm,
class to store MMFF parameters for torsions
void getGrad(double *pos, double *grad) const override
calculates our contribution to the gradients of a position
TorsionAngleContrib(ForceField *owner)
Constructor.
double getEnergy(double *pos) const override
returns our contribution to the energy of a position
void addTerm(unsigned int idx1, unsigned int idx2, unsigned int idx3, unsigned int idx4, const MMFFTor *mmffTorParams)
TorsionAngleContrib * copy() const override
return a copy
#define RDKIT_FORCEFIELD_EXPORT
RDKIT_FORCEFIELD_EXPORT void calcTorsionGrad(RDGeom::Point3D *r, RDGeom::Point3D *t, double *d, double **g, double &sinTerm, double &cosPhi)
RDKIT_FORCEFIELD_EXPORT double calcTorsionCosPhi(const RDGeom::Point3D &iPoint, const RDGeom::Point3D &jPoint, const RDGeom::Point3D &kPoint, const RDGeom::Point3D &lPoint)
calculates and returns the cosine of a torsion angle
RDKIT_FORCEFIELD_EXPORT std::tuple< double, double, double > calcTorsionForceConstant(const MMFFTor *mmffTorParams)
returns the 3-tuple of a torsion angle force constants
RDKIT_FORCEFIELD_EXPORT double calcTorsionEnergy(const double V1, const double V2, const double V3, const double cosPhi)
calculates and returns the torsional MMFF energy