10#ifndef __RD_MMFFSTRETCHBEND_H__
11#define __RD_MMFFSTRETCHBEND_H__
42 void addTerm(
const unsigned int idx1,
const unsigned int idx2,
43 const unsigned int idx3,
const MMFFStbn *mmffStbnParams,
48 void getGrad(
double *pos,
double *grad)
const override;
54 std::vector<int16_t> d_at1Idxs;
55 std::vector<int16_t> d_at2Idxs;
56 std::vector<int16_t> d_at3Idxs;
57 std::vector<double> d_restLen1s;
58 std::vector<double> d_restLen2s;
59 std::vector<double> d_theta0s;
60 std::vector<double> d_forceConstants1;
61 std::vector<double> d_forceConstants2;
69 const double deltaDist1,
const double deltaDist2,
const double deltaTheta,
70 const std::pair<double, double> forceConstants);
class to store MMFF parameters for angle bending
class to store MMFF parameters for bond stretching
class to store MMFF Properties
class to store MMFF parameters for stretch-bending
void addTerm(const unsigned int idx1, const unsigned int idx2, const unsigned int idx3, const MMFFStbn *mmffStbnParams, const MMFFAngle *mmffAngleParams, const MMFFBond *mmffBondParams1, const MMFFBond *mmffBondParams2)
double getEnergy(double *pos) const override
returns our contribution to the energy of a position
void getGrad(double *pos, double *grad) const override
calculates our contribution to the gradients of a position
StretchBendContrib(ForceField *owner)
Constructor.
StretchBendContrib * copy() const override
return a copy
#define RDKIT_FORCEFIELD_EXPORT
RDKIT_FORCEFIELD_EXPORT std::pair< double, double > calcStretchBendEnergy(const double deltaDist1, const double deltaDist2, const double deltaTheta, const std::pair< double, double > forceConstants)
calculates and returns the stretch-bending MMFF energy
RDKIT_FORCEFIELD_EXPORT std::pair< double, double > calcStbnForceConstants(const MMFFStbn *mmffStbnParams)
returns the std::pair of stretch-bend force constants for an angle