13#ifndef __RD_MMFFTORSIONCONSTRAINT_H__
14#define __RD_MMFFTORSIONCONSTRAINT_H__
39 unsigned int idx2,
unsigned int idx3,
40 unsigned int idx4,
double minDihedralDeg,
41 double maxDihedralDeg,
double forceConst);
43 unsigned int idx2,
unsigned int idx3,
44 unsigned int idx4,
bool relative,
45 double minDihedralDeg,
double maxDihedralDeg,
51 void getGrad(
double *pos,
double *grad)
const override;
57 void setParameters(
ForceField *owner,
unsigned int idx1,
unsigned int idx2,
58 unsigned int idx3,
unsigned int idx4,
59 double minDihedralDeg,
double maxDihedralDeg,
61 double computeDihedralTerm(
double dihedral)
const;
62 int d_at1Idx{-1}, d_at2Idx{-1}, d_at3Idx{-1},
64 double d_minDihedralDeg,
66 double d_forceConstant;
abstract base class for contributions to ForceFields
A class to store forcefields and handle minimization.
A dihedral angle range constraint modelled after a TorsionContrib.
void getGrad(double *pos, double *grad) const override
calculates our contribution to the gradients of a position
~TorsionConstraintContrib() override=default
TorsionConstraintContrib * copy() const override
return a copy
TorsionConstraintContrib(ForceField *owner, unsigned int idx1, unsigned int idx2, unsigned int idx3, unsigned int idx4, double minDihedralDeg, double maxDihedralDeg, double forceConst)
Constructor.
TorsionConstraintContrib()
double getEnergy(double *pos) const override
returns our contribution to the energy of a position
TorsionConstraintContrib(ForceField *owner, unsigned int idx1, unsigned int idx2, unsigned int idx3, unsigned int idx4, bool relative, double minDihedralDeg, double maxDihedralDeg, double forceConst)
#define RDKIT_FORCEFIELD_EXPORT