10 #ifndef __RD_TORSIONANGLE_H__ 11 #define __RD_TORSIONANGLE_H__ 31 : d_at1Idx(-1), d_at2Idx(-1), d_at3Idx(-1), d_at4Idx(-1), d_order(0){};
61 unsigned int idx3,
unsigned int idx4,
double bondOrder23,
62 int atNum2,
int atNum3,
66 const AtomicParams *at3Params,
bool endAtomIsSP2 =
false);
67 double getEnergy(
double *pos)
const;
68 void getGrad(
double *pos,
double *grad)
const;
70 this->d_forceConstant /=
static_cast<double>(count);
77 int d_at1Idx, d_at2Idx, d_at3Idx, d_at4Idx;
79 double d_forceConstant, d_cosTerm;
82 double getThetaDeriv(
double cosTheta,
double sinTheta)
const;
88 void calcTorsionParams(
double bondOrder23,
int atNum2,
int atNum3,
101 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
HybridizationType
store hybridization
void scaleForceConstant(unsigned int count)
virtual TorsionAngleContrib * copy() const
return a copy
Defines the Atom class and associated typedefs.
A class to store forcefields and handle minimization.