10 #ifndef __RD_ANGLEBEND_H__ 11 #define __RD_ANGLEBEND_H__ 47 unsigned int idx1,
unsigned int idx2,
unsigned int idx3,
48 double bondOrder12,
double bondOrder23,
52 unsigned int order=0);
54 void getGrad(
double *pos,
double *grad)
const;
58 int d_at1Idx,d_at2Idx,d_at3Idx;
60 double d_forceConstant,d_C0,d_C1,d_C2;
62 double getEnergyTerm(
double cosTheta,
double sinThetaSq)
const;
63 double getThetaDeriv(
double cosTheta,
double sinTheta)
const;
80 double bondOrder12,
double bondOrder23,
85 double **g,
double &dE_dTheta,
double &cosTheta,
class to store atomic parameters for the Universal Force Field
void calcAngleBendGrad(RDGeom::Point3D *r, double *dist, double **g, double &dE_dTheta, double &cosTheta, double &sinTheta)
void getGrad(double *pos, double *grad) const
calculates our contribution to the gradients of a position
abstract base class for contributions to ForceFields
The angle-bend term for the Universal Force Field.
virtual AngleBendContrib * copy() const
return a copy
double calcAngleForceConstant(double theta0, double bondOrder12, double bondOrder23, const AtomicParams *at1Params, const AtomicParams *at2Params, const AtomicParams *at3Params)
Calculate the force constant for an angle bend.
A class to store forcefields and handle minimization.
double getEnergy(double *pos) const
returns our contribution to the energy of a position