BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
charmmImproperTorsion.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 // Molecular Mechanics: Charmm force field, bond stretch component
6 
7 #ifndef BALL_MOLMEC_CHARMM_CHARMMIMPROPERTORSION_H
8 #define BALL_MOLMEC_CHARMM_CHARMMIMPROPERTORSION_H
9 
10 #ifndef BALL_COMMON_H
11 # include <BALL/common.h>
12 #endif
13 
14 #ifndef BALL_MOLMEC_PARAMETER_QUADRATICIMPROPERTORSION_H
16 #endif
17 
18 #ifndef BALL_MOLMEC_PARAMETER_RESIDUETORSIONS_H
20 #endif
21 
22 #ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H
24 #endif
25 
26 #ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H
28 #endif
29 
30 namespace BALL
31 {
46  : public ForceFieldComponent
47  {
48  public:
49 
51  #define CHARMM_IMPROPER_TORSIONS_ENABLED "enable IT"
52 
56 
57  BALL_CREATE(CharmmImproperTorsion)
58 
59 
61  CharmmImproperTorsion();
62 
65  CharmmImproperTorsion(ForceField& force_field);
66 
69  CharmmImproperTorsion(const CharmmImproperTorsion& charmm_stretch);
70 
73  virtual ~CharmmImproperTorsion();
74 
76 
79 
82  virtual bool setup()
83  throw(Exception::TooManyErrors);
84 
86 
89 
92  virtual double updateEnergy();
93 
96  virtual void updateForces();
97 
99 
100  private:
101 
102  /*_ @name Private Attributes
103  */
104  //_@{
105 
106  /*_ array with the torsions
107  */
108  vector<QuadraticImproperTorsion::Data> impropers_;
109 
110  QuadraticImproperTorsion improper_parameters_;
111 
112  ResidueTorsions improper_atoms_;
113 
114  //_@}
115 
116  };
117 } // namespace BALL
118 
119 #endif // BALL_MOLMEC_CHARMM_CHARMMIMPROPERTORSION_H