9 #ifndef BALL_MOLMEC_MMFF94_MMFF94_H
10 #define BALL_MOLMEC_MMFF94_MMFF94_H
16 #ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H
20 #ifndef BALL_KERNEL_SYSTEM_H
24 #ifndef BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
28 #ifndef BALL_MOLMEC_MMFF94_MMFF94PROCESSORS_H
32 #ifndef BALL_DATATYPE_HASHSET_H
36 #ifndef BALL_STRUCTURE_KEKULIZER_H
187 MMFF94(const MMFF94& force_field);
200 const MMFF94& operator = (const MMFF94& force_field)
215 virtual
bool specificSetup()
216 throw(Exception::TooManyErrors);
225 double getStretchEnergy() const;
229 double getBendEnergy() const;
232 double getStretchBendEnergy() const;
237 double getTorsionEnergy() const;
242 double getNonbondedEnergy() const;
246 double getESEnergy() const;
250 double getVdWEnergy() const;
253 double getPlaneEnergy() const;
257 bool hasInitializedParameters() const;
262 Size getUpdateFrequency() const;
265 virtual
String getResults() const
269 const vector<
Bond*> getBonds()
const {
return bonds_;}
272 const vector<HashSet<Atom*> >&
getRings()
const {
return rings_;}
278 bool isInOneAromaticRing(
const Bond& bond)
const;
281 bool assignMMFF94BondType(
Bond& bond)
const;
284 const vector<MMFF94AtomType>&
getAtomTypes()
const {
return atom_types_.getAtomTypes();}
293 bool areInOneRing(vector<Atom*> v,
Size ring_size = 0)
const;
296 bool areInOneAromaticRing(
const vector<Atom*>& v,
Size ring_size = 0)
const;
301 bool checkAtomType(
Atom& atom);
307 void insertComponents_();
309 void transformAromaticBonds_();
310 void collectBonds_();
311 void assignBondTypes_();
312 void collectRings_();
331 #endif // BALL_MOLMEC_MMFF94_H