29 #ifndef CDPL_FORCEFIELD_MMFF94STRETCHBENDINTERACTIONPARAMETERIZER_HPP
30 #define CDPL_FORCEFIELD_MMFF94STRETCHBENDINTERACTIONPARAMETERIZER_HPP
34 #include <unordered_map>
37 #include <boost/functional/hash.hpp>
82 typedef std::shared_ptr<MMFF94StretchBendInteractionParameterizer>
SharedPointer;
148 void getBondStretchingParameters(std::size_t atom1_idx, std::size_t atom2_idx,
unsigned int& bond_type_idx,
double& ref_length)
const;
151 const Chem::Atom& term_atom2,
unsigned int term_atom2_type,
unsigned int bond_type_idx1,
unsigned int bond_type_idx2,
152 unsigned int angle_type_idx,
unsigned int& sb_type_idx,
double& ijk_force_const,
double& kji_force_const)
const;
155 const Chem::Atom& term_atom2,
unsigned int bond_type_idx1,
unsigned int bond_type_idx2,
156 unsigned int angle_type_idx,
unsigned int& sb_type_idx,
double& ijk_force_const,
double& kji_force_const,
bool strict)
const;
186 unsigned int getStretchBendTypeIndex(
bool symmetric,
unsigned int bond_type_idx1,
unsigned int bond_type_idx2,
unsigned int angle_type_idx)
const;
190 typedef std::unordered_map<std::pair<std::size_t, std::size_t>,
const MMFF94BondStretchingInteraction*, boost::hash<std::pair<std::size_t, std::size_t> > > BondStretchingParamLookupTable;
197 BondStretchingParamLookupTable bsParamTable;
Definition of the preprocessor macro CDPL_FORCEFIELD_API.
#define CDPL_FORCEFIELD_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Type declaration of generic wrapper class types for storing user-defined interaction filtering predic...
Declaration of type CDPL::ForceField::MMFF94AngleBendingInteractionList.
Definition of class CDPL::ForceField::MMFF94AtomTypePropertyTable.
Declaration of type CDPL::ForceField::MMFF94BondStretchingInteractionList.
Definition of class CDPL::ForceField::MMFF94DefaultStretchBendParameterTable.
Type declaration of generic wrapper classes for storing user-defined functions for the retrieval of M...
Declaration of type CDPL::ForceField::MMFF94StretchBendInteractionList.
Definition of class CDPL::ForceField::MMFF94StretchBendParameterTable.
Abstract base class representing a chemical atom and its bonded neighborhood.
Definition: Atom.hpp:57
Abstract base class for representations of a chemical structure as a graph of bonded atoms.
Definition: MolecularGraph.hpp:57
std::shared_ptr< MMFF94AtomTypePropertyTable > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated MMFF94AtomTypePropertyTable insta...
Definition: MMFF94AtomTypePropertyTable.hpp:72
Stores parameters for a single MMFF94 bond-stretching interaction between two bonded atoms.
Definition: MMFF94BondStretchingInteraction.hpp:46
std::shared_ptr< MMFF94DefaultStretchBendParameterTable > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated MMFF94DefaultStretchBendParameter...
Definition: MMFF94DefaultStretchBendParameterTable.hpp:71
Detects and parameterizes the MMFF94 stretch-bend interactions of a molecular graph.
Definition: MMFF94StretchBendInteractionParameterizer.hpp:76
MMFF94StretchBendInteractionParameterizer(const Chem::MolecularGraph &molgraph, const MMFF94BondStretchingInteractionList &bs_ia_list, const MMFF94AngleBendingInteractionList &ab_ia_list, MMFF94StretchBendInteractionList &ia_list, bool strict)
Constructs the parameterizer and processes the molecular graph molgraph.
void setFilterFunction(const InteractionFilterFunction3 &func)
Sets the filter function used to skip atom triplets during parameterization.
void setAtomTypeFunction(const MMFF94NumericAtomTypeFunction &func)
Sets the function used to look up the MMFF94 numeric atom type of an atom.
void setAtomTypePropertyTable(const MMFF94AtomTypePropertyTable::SharedPointer &table)
Sets the table providing MMFF94 numeric atom type property data (used to look up the periodic table r...
MMFF94StretchBendInteractionParameterizer()
Constructs an MMFF94StretchBendInteractionParameterizer instance using the default MMFF94 parameter t...
std::shared_ptr< MMFF94StretchBendInteractionParameterizer > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated MMFF94StretchBendInteractionParam...
Definition: MMFF94StretchBendInteractionParameterizer.hpp:82
void parameterize(const Chem::MolecularGraph &molgraph, const MMFF94BondStretchingInteractionList &bs_ia_list, const MMFF94AngleBendingInteractionList &ab_ia_list, MMFF94StretchBendInteractionList &ia_list, bool strict)
Perceives the MMFF94 stretch-bend interactions for molgraph and outputs the corresponding parameter d...
void setDefaultStretchBendParameterTable(const MMFF94DefaultStretchBendParameterTable::SharedPointer &table)
Sets the fallback table providing periodic-table-row-based default stretch-bend parameters.
void setStretchBendParameterTable(const MMFF94StretchBendParameterTable::SharedPointer &table)
Sets the primary table providing stretch-bend type-specific stretch-bend parameters.
std::shared_ptr< MMFF94StretchBendParameterTable > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated MMFF94StretchBendParameterTable i...
Definition: MMFF94StretchBendParameterTable.hpp:71
std::function< unsigned int(const Chem::Atom &)> MMFF94NumericAtomTypeFunction
Generic wrapper class used to store a user-defined numeric MMFF94 atom type retrieval function.
Definition: MMFF94PropertyFunctions.hpp:57
std::function< bool(const Chem::Atom &, const Chem::Atom &, const Chem::Atom &)> InteractionFilterFunction3
Generic wrapper for storing user-defined three-atom interaction filtering functions (see [FUNWRP]).
Definition: InteractionFilterFunctions.hpp:63
The namespace of the Chemical Data Processing Library.