9 #ifndef BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
10 #define BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
16 #ifndef BALL_DATATYPE_HASHMAP_H
31 class MMFF94AtomTypeEquivalences;
33 #define MMFF94_INVALID_VALUE 99.0
71 virtual bool setup_(
const std::vector<std::vector<String> >&) {
return true;};
110 virtual bool setup_(
const std::vector<std::vector<String> >&);
173 const std::vector<MMFF94AtomType>&
getAtomTypes()
const {
return data_;}
177 virtual bool setup_(
const std::vector<std::vector<String> >&);
224 virtual ~MMFF94StretchParameters();
227 const MMFF94StretchParameters& operator = (const MMFF94StretchParameters& param)
241 const
StretchMap& getBondParameters()
const {
return parameters_;}
246 static double radii[];
247 static double electronegatives[];
251 virtual bool setup_(
const std::vector<std::vector<String> >&);
278 virtual ~MMFF94BendParameters();
281 const MMFF94BendParameters& operator = (const MMFF94BendParameters& param)
289 bool assignParameters(
Position bend_type,
291 double& ka,
double& angle) const;
295 virtual
bool setup_(const std::vector<std::vector<
String> >&);
325 virtual ~MMFF94StretchBendParameters();
328 const MMFF94StretchBendParameters& operator = (const MMFF94StretchBendParameters& param)
336 bool assignParameters(
Position stretch_bend_type, const
Atom& atom1, const
Atom& atom2, const
Atom& atom3,
337 double& kba_ijk,
double& kba_kji) const;
340 bool readEmpiricalParameters(
Parameters& p, const String& section)
341 throw(Exception::FileNotFound);
347 virtual
bool setup_(const std::vector<std::vector<String> >&);
355 StretchBendMap parameters_;
356 mutable StretchBendMap buffered_parameters_;
357 StretchBendMap parameters_by_row_;
367 : public MMFF94ParametersBase
380 virtual ~MMFF94TorsionParameters();
383 const MMFF94TorsionParameters& operator = (const MMFF94TorsionParameters& param)
391 bool assignParameters(
Position type_index,
393 double& v1,
double& v2,
double& v3) const;
397 virtual
bool setup_(const std::vector<std::vector<String> >&);
402 TorsionsMap parameters_;
403 mutable TorsionsMap buffered_parameters_;
415 : public MMFF94ParametersBase
428 virtual ~MMFF94PlaneParameters();
431 const MMFF94PlaneParameters& operator = (const MMFF94PlaneParameters& param)
443 virtual
bool setup_(const std::vector<std::vector<String> >&);
448 PlaneMap parameters_;
449 mutable PlaneMap buffered_parameters_;
459 : public MMFF94ParametersBase
479 virtual ~MMFF94VDWParameters();
482 const MMFF94VDWParameters& operator = (const MMFF94VDWParameters& param)
490 double getR(
Position atom_type) const;
496 bool assignParameters(
Position at1,
Position at2,
double& rij,
double& rij_7_,
double& eij) const;
500 virtual
bool setup_(const std::vector<std::vector<String> >&);
506 mutable std::vector<
double> rs_;
509 mutable std::vector<
double> rij_;
511 mutable std::vector<
double> rij_7_;
513 mutable std::vector<
double> eij_;
515 mutable std::vector<
bool> calculated_;
526 : public MMFF94ParametersBase
553 bool readEmpiricalParameters(
Parameters& p,
const String& section)
557 double getPhi(
Index atom_type)
const;
560 double getPBCI(
Index atom_type)
const;
564 virtual bool setup_(
const std::vector<std::vector<String> >&);
568 std::vector<double> parameters_,
phis_, pbcis_;
574 #endif // BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
EmpiricalStretchMap empirical_parameters_
double kb_sbmb
parameters for optinal single-bond–multiple bond cases (see MMFFPROP.PAR)
virtual bool setup_(const std::vector< std::vector< String > > &)
#define BALL_CREATE(name)
const EmpiricalStretchMap & getEmpiricalParameters() const
HashMap< String, std::vector< double > > TorsionsMap
Map with the force constant and reference angle.
HashMap< String, double > PlaneMap
Map with the force constant.
bool sbmb
can have a delocalized single bond
std::vector< bool > exists_
std::vector< String > names_
HashMap< Position, std::pair< double, double > > StretchBendMap
Map with the force constant and reference angle.
bool pilp
has pi lone pair electrons
StretchMap parameters_
standard parameters
HashMap< Position, BondData > StretchMap
Class to store the values of an atom type from MMFFPROP.PAR.
std::vector< double > phis_
std::vector< MMFF94AtomType > data_
Position getMMFF94Index(Position atom_type1, Position atom_type2)
const std::vector< MMFF94AtomType > & getAtomTypes() const
void setEquivalences(const MMFF94AtomTypeEquivalences &equi)
Size MMFF94_number_atom_types
hold the maximum number of MMFF94 atom types + 1 (wildcard)
Position crd
necessary number of bonded neighbours
virtual ~MMFF94ParametersBase()
Destructor.
Position aspec
atomic number;
Size number_expected_fields_
HashMap< Position, EmpiricalBondData > EmpiricalStretchMap
std::vector< std::vector< Position > > equivalences_
bool valid
Is this a valid MMFF94 atom type?
bool standard_bond_exists
StretchMap buffered_parameters_
const MMFF94AtomTypeEquivalences * equiv_
HashMap< Position, std::pair< double, double > > BendMap
Map with the force constant and reference angle.
Position val
number of bonds made to this atom type