BALL 1.5.0
charmmTorsion.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, proper torsion component
6
7#ifndef BALL_MOLMEC_CHARMM_CHARMMTORSION_H
8#define BALL_MOLMEC_CHARMM_CHARMMTORSION_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_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
30namespace BALL
31{
37 : public ForceFieldComponent
38 {
39 public:
40
42 #define CHARMM_TORSIONS_ENABLED "enable Torsions"
43
47
49 {
54
55 float V;
56 unsigned char f;
57 float phase;
58
60 : atom1(0),
61 atom2(0),
62 atom3(0),
63 atom4(0),
64 V(0),
65 f(0),
66 phase(0)
67 {
68 }
69
71 {
72 atom1 = t.atom1;
73 atom2 = t.atom2;
74 atom3 = t.atom3;
75 atom4 = t.atom4;
76
77 V = t.values.V / t.values.n;
78 f = (unsigned char)t.values.f;
79
80 // convert phase from degrees to radiant
81 phase = (float)(BALL::Constants::PI / 180.0) * t.values.phase;
82 }
83 };
84
86
89
91
92
95
99
102 CharmmTorsion(const CharmmTorsion& charmm_stretch);
103
106 virtual ~CharmmTorsion();
107
109
112
116 virtual bool setup();
117
119
122
125 virtual double updateEnergy();
126
129 virtual void updateForces();
130
132
133 private:
134
135 /*_ @name Private Attributes
136 */
137 //_@{
138
139 /*_ Vector containing the parameters for each torsion.
140 */
141 vector<SingleCharmmTorsion> torsion_;
142
143 /*_ Contents of the [Torsions] section of the parameter file.
144 */
145 CosineTorsion torsion_parameters_;
146
147 /*_ Contents of the [ResidueTorsions] section of the parameter file.
148 */
149 ResidueTorsions residue_torsions_;
150
151 /*_ true, if the torsions are read from the ResidueTorsions section.
152 */
153 bool use_residue_torsion_list_;
154
155 //_@}
156
157 };
158} // namespace BALL
159
160#endif // BALL_MOLMEC_CHARMM_CHARMMTORSION_H
#define BALL_CREATE(name)
Definition: create.h:62
Definition: constants.h:13
BALL_EXTERN_VARIABLE const double PI
PI.
Definition: constants.h:35
SingleCharmmTorsion(CosineTorsion::SingleData &t)
Definition: charmmTorsion.h:70
#define BALL_EXPORT
Definition: COMMON/global.h:50