Scine::Swoose  2.1.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
ConstrainedAtomsIdentifier.h
Go to the documentation of this file.
1 
8 #ifndef MMPARAMETRIZATION_CONSTRAINEDATOMSIDENTIFIER_H
9 #define MMPARAMETRIZATION_CONSTRAINEDATOMSIDENTIFIER_H
10 
11 #include <vector>
12 
13 namespace Scine {
14 
15 namespace Molassembler {
16 class Graph;
17 } // namespace Molassembler
18 
19 namespace Utils {
20 class AtomCollection;
21 }
22 
23 namespace MMParametrization {
24 struct ParametrizationData;
25 
27  public:
38  void updateInformationAboutConstrainedAtoms(const Utils::AtomCollection& subsystem, int subsystemIndex);
39 
40  private:
41  /*
42  * @brief Returns a vector of atom indices corresponding to all non-hydrogen atoms that are next to
43  * a bond, which was cleft during the fragmentation.
44  */
45  std::vector<int> getHeavyAtomTermini(const std::vector<unsigned>& indexMapForCurrentGraph,
46  const Molassembler::Graph& graph, const Utils::AtomCollection& subsystem,
47  const std::vector<int>& atomIndexMappingForCurrentSubsystem);
48  /*
49  * @brief Updates the current vector of atom indices of the constrained atoms, which is given as the parameter
50  * "constrainedAtoms" (passed by reference). This update corresponds to one specific molecule within the
51  * a given fragment with the index subsystemIndex.
52  */
53  void updateConstrainedAtomsForOneMolecule(std::vector<int>& constrainedAtoms, const std::vector<int>& heavyAtomsToConstrain,
54  const std::vector<unsigned>& indexMapForCurrentGraph,
55  const Molassembler::Graph& graph, int subsystemIndex);
56  // The data used within all MM parametrization classes
57  ParametrizationData& data_;
58 };
59 
60 } // namespace MMParametrization
61 } // namespace Scine
62 
63 #endif // MMPARAMETRIZATION_CONSTRAINEDATOMSIDENTIFIER_H
void updateInformationAboutConstrainedAtoms(const Utils::AtomCollection &subsystem, int subsystemIndex)
Updates the information about the constrained atoms in the geometry optimizations in the Parametrizat...
Definition: ConstrainedAtomsIdentifier.cpp:24
Definition: ConstrainedAtomsIdentifier.h:26
This struct holds all objects used inside the MM parametrization algorithm.
Definition: ParametrizationData.h:29
ConstrainedAtomsIdentifier(ParametrizationData &data)
Constructor.
Definition: ConstrainedAtomsIdentifier.cpp:20