56#ifndef FORCEFIELDS_UFF_HPP
57#define FORCEFIELDS_UFF_HPP
59#include "types/AtomType.hpp"
64 const RealType lambda = 0.1332;
65 const RealType G = 332.06;
66 const RealType amideBondOrder =
78 RealType calcBondRestLength(RealType bondOrder,
89 RealType calcBondForceConstant(RealType restLength,
103 RealType calcAngleForceConstant(RealType theta0, RealType bondOrder12,
104 RealType bondOrder23,
107 const AtomType *at3);
113 void calcTorsionParams(RealType bondOrder23,
int atNum2,
int atNum3,
114 RDKit::Atom::HybridizationType hyb2,
115 RDKit::Atom::HybridizationType hyb3,
117 const AtomType *at3,
bool endAtomIsSP2);
120 bool isInGroup6(
int num);
122 RealType equation17(RealType bondOrder23,
123 const AtomType *at2,
const AtomType *at3);
127 RealType calculateCosY(
const Vector3d &iPoint,
128 const Vector3d &jPoint,
129 const Vector3d &kPoint,
130 const Vector3d &lPoint);
139 void calcInversionCoefficientsAndForceConstant(
int at2AtomicNum,
148 RealType calcNonbondedMinimum(
const AtomType *at1,
149 const AtomType *at2);
157 RealType calcNonbondedDepth(
const AtomType *at1,
158 const AtomType *at2);
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.