Scine::Swoose  2.1.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
GaffParameters.h
Go to the documentation of this file.
1 
8 #ifndef MOLECULARMECHANICS_GAFFPARAMETERS_H
9 #define MOLECULARMECHANICS_GAFFPARAMETERS_H
10 
11 #include "../MMParameters.h"
12 #include "../Parameters/AngleParameters.h"
13 #include "../Parameters/BondParameters.h"
14 #include "../Parameters/DihedralParameters.h"
15 #include "../Parameters/ImproperDihedralParameters.h"
16 #include "../Parameters/LennardJonesParameters.h"
17 #include "../Topology/AngleType.h"
18 #include "../Topology/BondType.h"
19 #include "../Topology/DihedralType.h"
20 #include "../Topology/ImproperDihedralType.h"
21 #include <Eigen/Core>
22 #include <map>
23 #include <vector>
24 
25 namespace Scine {
26 
27 namespace Utils {
28 class AtomCollection;
29 } // namespace Utils
30 
31 namespace MolecularMechanics {
32 class AtomTypesHolder;
38 class GaffParameters : public MMParameters {
39  public:
44  std::vector<Dihedral> getMMDihedrals(std::string t1, std::string t2, std::string t3, std::string t4) const;
46  std::vector<Dihedral> getMMImproperDihedrals(std::string central, std::string t2, std::string t3, std::string t4) const;
50  LennardJones getMMLennardJones(const std::string& t1, const std::string& t2, double scalingFactor) const;
51 
52  // These functions add certain parameters of the MM model
53  void addLennardJones(std::string atomType, LennardJonesParameters lennardJonesParameters);
54  void addDihedral(DihedralType dihedralType, DihedralParameters dihedralParameters);
55  void addImproperDihedral(ImproperDihedralType improperDihedralType, DihedralParameters improperDihedralParameters);
59  bool empty();
60 
61  private:
62  std::multimap<DihedralType, DihedralParameters> dihedrals_;
63  std::multimap<ImproperDihedralType, DihedralParameters> improperDihedrals_;
64  std::map<std::string, LennardJonesParameters> lennardJonesPairs_;
65 };
66 
67 } // namespace MolecularMechanics
68 } // namespace Scine
69 
70 #endif // MOLECULARMECHANICS_GAFFPARAMETERS_H
std::vector< Dihedral > getMMImproperDihedrals(std::string central, std::string t2, std::string t3, std::string t4) const
Get ImproperDihedrals for the four atom types t1, t2, t3 and t4.
Definition: GaffParameters.cpp:41
Class containing the parameters for the GAFF model obtained after parsing a GAFF parameter file...
Definition: GaffParameters.h:38
Unique descriptor a dihedral for given atom types. (useful for maps/unordered_maps) ...
Definition: DihedralType.h:24
Class containing the parameters for a van der Waals LJ-type interaction.
Definition: LennardJonesParameters.h:19
Class containing the parameters for an MM dihedral.
Definition: DihedralParameters.h:19
LennardJones getMMLennardJones(const std::string &t1, const std::string &t2, double scalingFactor) const
Get Lennard-Jones for two atom types t1 and t2.
Definition: GaffParameters.cpp:73
bool empty()
Definition: GaffParameters.cpp:99
Class treating a non-bonded van der Waals interaction with a LJ potential, based solely on the bond l...
Definition: LennardJones.h:20
std::vector< Dihedral > getMMDihedrals(std::string t1, std::string t2, std::string t3, std::string t4) const
Get Dihedrals for the four atom types t1, t2, t3 and t4. (in principle there could be more than one (...
Definition: GaffParameters.cpp:17
Base class for the MM parameters classes, which holds and manages the bond and angle parameters as th...
Definition: MMParameters.h:30
Unique descriptor an improper dihedral for given atom types. (useful for maps/unordered_maps) ...
Definition: ImproperDihedralType.h:24