11#ifndef __RD_ANGLEBEND_H__
12#define __RD_ANGLEBEND_H__
47 unsigned int idx3,
double bondOrder12,
double bondOrder23,
51 void getGrad(
double *pos,
double *grad)
const override;
61 unsigned int d_order{0};
62 double d_forceConstant, d_C0, d_C1, d_C2;
64 double getEnergyTerm(
double cosTheta,
double sinThetaSq)
const;
65 double getThetaDeriv(
double cosTheta,
double sinTheta)
const;
82 double theta0,
double bondOrder12,
double bondOrder23,
86 double **g,
double &dE_dTheta,
abstract base class for contributions to ForceFields
A class to store forcefields and handle minimization.
The angle-bend term for the Universal Force Field.
AngleBendContrib(ForceField *owner, unsigned int idx1, unsigned int idx2, unsigned int idx3, double bondOrder12, double bondOrder23, const AtomicParams *at1Params, const AtomicParams *at2Params, const AtomicParams *at3Params, unsigned int order=0)
Constructor.
void getGrad(double *pos, double *grad) const override
calculates our contribution to the gradients of a position
AngleBendContrib * copy() const override
return a copy
double getEnergy(double *pos) const override
returns our contribution to the energy of a position
class to store atomic parameters for the Universal Force Field
#define RDKIT_FORCEFIELD_EXPORT