11 #ifndef __RD_TORSIONANGLE_H__ 12 #define __RD_TORSIONANGLE_H__ 32 : d_at1Idx(-1), d_at2Idx(-1), d_at3Idx(-1), d_at4Idx(-1), d_order(0){};
62 unsigned int idx3,
unsigned int idx4,
double bondOrder23,
63 int atNum2,
int atNum3,
67 const AtomicParams *at3Params,
bool endAtomIsSP2 =
false);
68 double getEnergy(
double *pos)
const;
69 void getGrad(
double *pos,
double *grad)
const;
71 this->d_forceConstant /=
static_cast<double>(count);
78 int d_at1Idx, d_at2Idx, d_at3Idx, d_at4Idx;
80 double d_forceConstant, d_cosTerm;
83 double getThetaDeriv(
double cosTheta,
double sinTheta)
const;
89 void calcTorsionParams(
double bondOrder23,
int atNum2,
int atNum3,
102 double **g,
double &sinTerm,
double &cosPhi);
class to store atomic parameters for the Universal Force Field
abstract base class for contributions to ForceFields
the torsion term for the Universal Force Field
#define RDKIT_FORCEFIELD_EXPORT
RDKIT_FORCEFIELD_EXPORT bool isInGroup6(int num)
RDKIT_FORCEFIELD_EXPORT 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
RDKIT_FORCEFIELD_EXPORT void calcTorsionGrad(RDGeom::Point3D *r, RDGeom::Point3D *t, double *d, double **g, double &sinTerm, double &cosPhi)
HybridizationType
store hybridization
RDKIT_FORCEFIELD_EXPORT double equation17(double bondOrder23, const AtomicParams *at2Params, const AtomicParams *at3Params)
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.