BALL  1.5.0
amberTorsion.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 // Molecular Mechanics: Amber force field, bond stretch component
6 
7 #ifndef BALL_MOLMEC_AMBER_AMBERTORSION_H
8 #define BALL_MOLMEC_AMBER_AMBERTORSION_H
9 
10 #ifndef BALL_COMMON_H
11 # include <BALL/common.h>
12 #endif
13 
14 #ifndef BALL_MOLMEC_PARAMETER_COSINETORSION_H
16 #endif
17 
18 #ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H
20 #endif
21 
22 #ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H
24 #endif
25 
26 namespace BALL
27 {
32  : public ForceFieldComponent
33  {
34  public:
35 
37  #define AMBER_TORSIONS_ENABLED "enable Torsions"
38 
42 
44  {
49 
50  float V;
51  unsigned char f;
52  float phase;
53 
55  : atom1(0),
56  atom2(0),
57  atom3(0),
58  atom4(0),
59  V(0),
60  f(0),
61  phase(0)
62  {
63  }
64 
65 
67  {
68  atom1 = t.atom1;
69  atom2 = t.atom2;
70  atom3 = t.atom3;
71  atom4 = t.atom4;
72 
73  V = t.values.V / t.values.n;
74  f = (unsigned char)t.values.f;
75  phase = ((2.0 * BALL::Constants::PI)/360.0) * t.values.phase;
76  }
77  };
78 
80 
84 
86 
87 
89  AmberTorsion();
90 
93  AmberTorsion(ForceField& force_field);
94 
97  AmberTorsion(const AmberTorsion& amber_stretch);
98 
101  virtual ~AmberTorsion();
102 
104 
107 
111  virtual bool setup();
112 
114 
117 
120  virtual double updateEnergy();
121 
124  virtual void updateForces();
125 
127 
128  private:
129 
130  /*_ @name Private Attributes
131  */
132  //_@{
133 
134  /*_ array with the torsions
135  */
136  vector<SingleAmberTorsion> torsion_;
137 
138  CosineTorsion torsion_parameters_;
139 
140  CosineTorsion improper_parameters_;
141 
142  ParameterSection impropers_;
143 
144  //_@}
145 
146  };
147 } // namespace BALL
148 
149 #endif // BALL_MOLMEC_AMBER_AMBERTORSION_H
BALL::CosineTorsion::SingleValues::V
float V
Definition: cosineTorsion.h:38
BALL::AmberTorsion::SingleAmberTorsion::SingleAmberTorsion
SingleAmberTorsion()
Definition: amberTorsion.h:54
BALL::AmberTorsion::SingleAmberTorsion::atom2
Atom * atom2
Definition: amberTorsion.h:46
BALL::CosineTorsion::SingleValues::f
float f
Definition: cosineTorsion.h:39
BALL::CosineTorsion::SingleData::atom3
Atom * atom3
Definition: cosineTorsion.h:150
BALL::Constants::PI
const BALL_EXTERN_VARIABLE double PI
PI.
Definition: constants.h:35
BALL::AmberTorsion::SingleAmberTorsion::SingleAmberTorsion
SingleAmberTorsion(CosineTorsion::SingleData &t)
Definition: amberTorsion.h:66
forceField.h
BALL::Atom
Definition: atom.h:87
BALL::AmberTorsion::SingleAmberTorsion::f
unsigned char f
Definition: amberTorsion.h:51
BALL::AmberTorsion::SingleAmberTorsion
Definition: amberTorsion.h:43
BALL::AmberTorsion::SingleAmberTorsion::atom3
Atom * atom3
Definition: amberTorsion.h:47
BALL::CosineTorsion::SingleData::atom2
Atom * atom2
Definition: cosineTorsion.h:149
BALL
Definition: constants.h:12
BALL::CosineTorsion::SingleData::values
SingleValues values
Definition: cosineTorsion.h:153
BALL::AmberTorsion::SingleAmberTorsion::atom1
Atom * atom1
Definition: amberTorsion.h:45
BALL::CosineTorsion::SingleValues::n
float n
Definition: cosineTorsion.h:40
BALL::CosineTorsion::SingleData::atom4
Atom * atom4
Definition: cosineTorsion.h:151
BALL::CosineTorsion::SingleData::atom1
Atom * atom1
Definition: cosineTorsion.h:148
BALL::ParameterSection
Definition: parameterSection.h:39
BALL::ForceFieldComponent
Definition: forceFieldComponent.h:34
common.h
BALL::AmberTorsion::SingleAmberTorsion::atom4
Atom * atom4
Definition: amberTorsion.h:48
BALL::AmberTorsion::SingleAmberTorsion::phase
float phase
Definition: amberTorsion.h:52
BALL::AmberTorsion::SingleAmberTorsion::V
float V
Definition: amberTorsion.h:50
cosineTorsion.h
forceFieldComponent.h
BALL::CosineTorsion
Definition: cosineTorsion.h:25
BALL_CREATE
#define BALL_CREATE(name)
Definition: create.h:62
BALL::AmberTorsion
Definition: amberTorsion.h:31
BALL::ForceField
Definition: forceField.h:85
BALL::CosineTorsion::SingleData
Definition: cosineTorsion.h:146
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::CosineTorsion::SingleValues::phase
float phase
Definition: cosineTorsion.h:37