7#ifndef BALL_MOLMEC_MMFF94_MMFF94STRETCHBEND_H
8#define BALL_MOLMEC_MMFF94_MMFF94STRETCHBEND_H
10#ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H
14#ifndef BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
84 #define MMFF94_BENDS_ENABLED "enable Bends"
87 #define MMFF94_STRETCHES_ENABLED "enable Stretches"
90 #define MMFF94_STRETCHBENDS_ENABLED "enable StrechBends"
181 void calculateDeltas_();
183 bool setupStretches_();
184 bool setupStretchBends_();
186 void errorOccurred_(
const String&
string,
190 vector<Stretch> stretches_;
191 vector<StretchBend> stretch_bends_;
197 static double bend_z_[];
198 static double bend_c_[];
199 static String bend_elements_[];
201 double stretch_energy_;
203 double stretch_bend_energy_;
206 bool stretch_enabled_, bend_enabled_, stretchbend_enabled_;
const vector< Stretch > & getStretches() const
virtual void updateBendForces()
double getStretchEnergy() const
Position getBendType(const Bond &bond1, const Bond &bond2, Atom &atom1, Atom &atom2, Atom &atom3) const
const vector< StretchBend > & getStretchBends() const
double calculateBendEmpiricalReferenceAngle(Atom &atom1, Atom &atom2, Atom &atom3) const
Bend emperical reference angle.
double calculateStretchConstant(const Bond &bond, double r0)
virtual void updateForces()
Calculates and returns the component's forces.
virtual void updateStretchForces()
virtual double updateEnergy()
Calculates and returns the component's energy.
virtual double updateStretchBendEnergy()
Index calculateSBTIJK(Position angle_type, bool bond_type1, bool bond_type2)
const vector< Bend > & getBends() const
virtual double updateBendEnergy()
double calculateBendEmpiricalForceConstant(Atom &atom1, Atom &atom2, Atom &atom3, double angle_0) const
Bend emperical force constant.
double getBendEnergy() const
virtual double updateStretchEnergy()
double getStretchBendEnergy() const
double calculateStretchR0(const Bond &bond)
Calculate the radius value per Schomaker-Stevenson Rule.
virtual void updateStretchBendForces()
#define BALL_CREATE(name)
TVector3< float > Vector3