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);
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);
100 double equation17(
double bondOrder23,
const AtomicParams *at2Params,
101 const AtomicParams *at3Params);
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
double getEnergy(double *pos) const
returns our contribution to the energy of a position
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)
void getGrad(double *pos, double *grad) const
calculates our contribution to the gradients of a position
Defines the Atom class and associated typedefs.
A class to store forcefields and handle minimization.