10 #ifndef __RD_TORSIONANGLE_H__ 11 #define __RD_TORSIONANGLE_H__ 59 unsigned int idx1,
unsigned int idx2,
60 unsigned int idx3,
unsigned int idx4,
62 int atNum2,
int atNum3,
67 bool endAtomIsSP2=
false);
68 double getEnergy(
double *pos)
const;
69 void getGrad(
double *pos,
double *grad)
const;
70 void scaleForceConstant(
unsigned int count) { this->d_forceConstant /=
static_cast<double>(count); };
73 int d_at1Idx,d_at2Idx,d_at3Idx,d_at4Idx;
75 double d_forceConstant,d_cosTerm;
78 double getThetaDeriv(
double cosTheta,
double sinTheta)
const;
84 void calcTorsionParams(
double bondOrder23,
85 int atNum2,
int atNum3,
99 double *d,
double **g,
double &sinTerm,
double &cosPhi);
class to store atomic parameters for the Universal Force Field
double calculateCosTorsion(const RDGeom::Point3D &p1, const RDGeom::Point3D &p2, const RDGeom::Point3D &p3, const RDGeom::Point3D &p4)
calculates and returns the cosine of a torsion angle
abstract base class for contributions to ForceFields
double equation17(double bondOrder23, const AtomicParams *at2Params, const AtomicParams *at3Params)
void calcTorsionGrad(RDGeom::Point3D *r, RDGeom::Point3D *t, double *d, double **g, double &sinTerm, double &cosPhi)
the torsion term for the Universal Force Field
virtual TorsionAngleContrib * copy() const
return a copy
HybridizationType
store hybridization
void scaleForceConstant(unsigned int count)
Defines the Atom class and associated typedefs.
A class to store forcefields and handle minimization.