11#ifndef __RD_TORSIONANGLE_H__
12#define __RD_TORSIONANGLE_H__
61 unsigned int idx3,
unsigned int idx4,
double bondOrder23,
62 int atNum2,
int atNum3,
66 const AtomicParams *at3Params,
bool endAtomIsSP2 =
false);
68 void getGrad(
double *pos,
double *grad)
const override;
70 this->d_forceConstant /=
static_cast<double>(count);
81 unsigned int d_order{0};
82 double d_forceConstant, d_cosTerm;
85 double getThetaDeriv(
double cosTheta,
double sinTheta)
const;
91 void calcTorsionParams(
double bondOrder23,
int atNum2,
int atNum3,
94 const AtomicParams *at2Params,
95 const AtomicParams *at3Params,
bool endAtomIsSP2);
106 double **g,
double &sinTerm,
109 const AtomicParams *at2Params,
110 const AtomicParams *at3Params);
Defines the Atom class and associated typedefs.
abstract base class for contributions to ForceFields
A class to store forcefields and handle minimization.
class to store atomic parameters for the Universal Force Field
the torsion term for the Universal Force Field
TorsionAngleContrib * copy() const override
return a copy
double getEnergy(double *pos) const override
returns our contribution to the energy of a position
void scaleForceConstant(unsigned int count)
TorsionAngleContrib(ForceField *owner, unsigned int idx1, unsigned int idx2, unsigned int idx3, unsigned int idx4, double bondOrder23, int atNum2, int atNum3, RDKit::Atom::HybridizationType hyb2, RDKit::Atom::HybridizationType hyb3, const AtomicParams *at2Params, const AtomicParams *at3Params, bool endAtomIsSP2=false)
Constructor.
void getGrad(double *pos, double *grad) const override
calculates our contribution to the gradients of a position
HybridizationType
store hybridization
#define RDKIT_FORCEFIELD_EXPORT