Scine::Swoose  1.0.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
QmmmHelpers.h
Go to the documentation of this file.
1 
8 #ifndef SWOOSE_QMMM_QMMMHELPERS_H
9 #define SWOOSE_QMMM_QMMMHELPERS_H
10 
11 #include <Eigen/Core>
12 #include <list>
13 #include <vector>
14 
15 namespace Scine {
16 
17 namespace Utils {
18 class Atom;
19 class AtomCollection;
20 using PositionCollection = Eigen::Matrix<double, Eigen::Dynamic, 3, Eigen::RowMajor>;
21 } // namespace Utils
22 
23 namespace Qmmm {
24 namespace QmmmHelpers {
25 
32  std::vector<double> atomicCharges;
33  std::vector<double> auxiliaryCharges;
34  Utils::PositionCollection positionsOfAuxiliaryCharges;
35 };
36 
45 void writePointChargesFile(const Utils::PositionCollection& positions,
46  const ChargeRedistributionResult& chargeRedistributionResult,
47  const std::vector<int>& listOfQmAtoms, const std::string& filename);
48 
60 Utils::AtomCollection createQmRegion(const std::vector<int>& listOfQmAtoms, const Utils::AtomCollection& structure,
61  const std::vector<std::list<int>>& listsOfNeighbors,
62  const std::string& xyzFilename, std::vector<int>& mmBoundaryAtoms);
63 
70 void checkValidityOfQmRegion(const std::vector<int>& listOfQmAtoms, const Utils::AtomCollection& structure);
71 
81 void addAllLinkAtoms(Utils::AtomCollection& qmRegion, const Utils::AtomCollection& fullStructure,
82  const std::vector<std::list<int>>& listsOfNeighbors, const std::vector<int>& listOfQmAtoms,
83  std::vector<int>& mmBoundaryAtoms);
84 
91 void addOneLinkAtom(Utils::AtomCollection& qmRegion, const Utils::Atom& qmAtom, const Utils::Atom& mmAtom);
92 
104 ChargeRedistributionResult getRedistributedCharges(std::vector<double> charges, const Utils::PositionCollection& positions,
105  const std::vector<int>& mmBoundaryAtoms,
106  const std::vector<std::list<int>>& listsOfNeighbors,
107  const std::vector<int>& listOfQmAtoms, const std::string& scheme);
108 
109 } // namespace QmmmHelpers
110 } // namespace Qmmm
111 } // namespace Scine
112 
113 #endif // SWOOSE_QMMM_QMMMHELPERS_H
A small container for the result of a charge redistribution, containing the new atomic charges...
Definition: QmmmHelpers.h:31