Scine::Swoose  2.1.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 
37 std::vector<double> writeChargesAndPositionsAsList(const Utils::AtomCollection& structure,
38  const ChargeRedistributionResult& chargeRedistributionResult,
39  const std::vector<int>& listOfQmAtoms);
40 
49 void writePointChargesFile(const Utils::PositionCollection& positions,
50  const ChargeRedistributionResult& chargeRedistributionResult,
51  const std::vector<int>& listOfQmAtoms, const std::string& filename, bool writeTurbomoleFormat);
52 
64 Utils::AtomCollection createQmRegion(const std::vector<int>& listOfQmAtoms, const Utils::AtomCollection& structure,
65  const std::vector<std::list<int>>& listsOfNeighbors,
66  const std::string& xyzFilename, std::vector<int>& mmBoundaryAtoms);
67 
74 void checkValidityOfQmRegion(const std::vector<int>& listOfQmAtoms, const Utils::AtomCollection& structure);
75 
85 void addAllLinkAtoms(Utils::AtomCollection& qmRegion, const Utils::AtomCollection& fullStructure,
86  const std::vector<std::list<int>>& listsOfNeighbors, const std::vector<int>& listOfQmAtoms,
87  std::vector<int>& mmBoundaryAtoms);
88 
95 void addOneLinkAtom(Utils::AtomCollection& qmRegion, const Utils::Atom& qmAtom, const Utils::Atom& mmAtom);
96 
108 ChargeRedistributionResult getRedistributedCharges(std::vector<double> charges, const Utils::PositionCollection& positions,
109  const std::vector<int>& mmBoundaryAtoms,
110  const std::vector<std::list<int>>& listsOfNeighbors,
111  const std::vector<int>& listOfQmAtoms, const std::string& scheme);
112 
113 } // namespace QmmmHelpers
114 } // namespace Qmmm
115 } // namespace Scine
116 
117 #endif // SWOOSE_QMMM_QMMMHELPERS_H
A small container for the result of a charge redistribution, containing the new atomic charges...
Definition: QmmmHelpers.h:31