BALL
1.5.0
include
BALL
MOLMEC
PARAMETER
cosineTorsion.h
Go to the documentation of this file.
1
// -*- Mode: C++; tab-width: 2; -*-
2
// vi: set ts=2:
3
//
4
5
#ifndef BALL_MOLMEC_PARAMETER_COSINETORSION_H
6
#define BALL_MOLMEC_PARAMETER_COSINETORSION_H
7
8
#ifndef BALL_FORMAT_PARAMETERSECTION_H
9
# include <
BALL/FORMAT/parameterSection.h
>
10
#endif
11
12
#ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H
13
# include <
BALL/MOLMEC/PARAMETER/atomTypes.h
>
14
#endif
15
16
namespace
BALL
17
{
25
class
BALL_EXPORT
CosineTorsion
26
:
public
ParameterSection
27
{
28
public
:
29
30
enum
31
{
32
UNKNOWN
33
};
34
35
struct
SingleValues
36
{
37
float
phase
;
38
float
V
;
39
float
f
;
40
float
n
;
41
42
SingleValues
(
const
SingleValues
& v)
43
: phase(v.phase),
44
V(v.V),
45
f(v.f),
46
n(v.n)
47
{
48
}
49
50
SingleValues
()
51
: phase(0),
52
V(0),
53
f(0),
54
n(0)
55
{
56
}
57
58
bool
operator ==
(
const
SingleValues
& rhs)
const
59
{
60
return
((phase == rhs.
phase
) && (V == rhs.
V
)
61
&& (f == rhs.
f
) && (n == rhs.
n
));
62
}
63
};
64
65
struct
BALL_EXPORT
Values
66
{
68
Size
n
;
70
SingleValues
*
values
;
71
72
Values
()
73
: n(0),
74
values(0)
75
{
76
}
77
78
Values
(
Size
number)
79
: n((unsigned char)number),
80
values(new
SingleValues
[number])
81
{
82
}
83
84
Values
(
const
Values
& v)
85
{
86
n = v.
n
;
87
values =
new
SingleValues
[n];
88
for
(
Position
i = 0; i < n; i++)
89
{
90
values[i].
phase
= v.
values
[i].
phase
;
91
values[i].
V
= v.
values
[i].
V
;
92
values[i].
f
= v.
values
[i].
f
;
93
values[i].
n
= v.
values
[i].
n
;
94
}
95
}
96
97
void
set
(
const
Values
& v)
98
{
99
delete
[] values;
100
101
n = v.
n
;
102
values =
new
SingleValues
[n];
103
for
(
Position
i = 0; i < n; i++)
104
{
105
values[i] = v.
values
[i];
106
}
107
}
108
109
~Values
()
110
{
111
delete
[] values;
112
}
113
114
bool
operator ==
(
const
Values
& rhs)
const
115
{
116
if
(n != rhs.
n
)
117
{
118
return
false
;
119
}
120
for
(
Position
i = 0; i < n; ++i)
121
{
122
if
(!(values[i] == rhs.
values
[i]))
123
{
124
return
false
;
125
}
126
}
127
return
true
;
128
}
129
130
bool
operator !=
(
const
Values
& rhs)
const
131
{
132
return
!
operator ==
(rhs);
133
}
134
};
135
136
struct
BALL_EXPORT
Data
137
{
138
Atom
*
atom1
;
139
Atom
*
atom2
;
140
Atom
*
atom3
;
141
Atom
*
atom4
;
142
143
Values
values
;
144
};
145
146
struct
BALL_EXPORT
SingleData
147
{
148
Atom
*
atom1
;
149
Atom
*
atom2
;
150
Atom
*
atom3
;
151
Atom
*
atom4
;
152
153
SingleValues
values
;
154
};
155
159
162
CosineTorsion
();
163
166
CosineTorsion
(
const
CosineTorsion
& cosine_torsion);
167
170
virtual
~
CosineTorsion
() ;
171
174
virtual
void
clear() ;
175
177
181
188
virtual
bool
extractSection(
ForceFieldParameters
& parameters,
const
String
& section_name);
189
191
virtual
bool
extractSection(
Parameters
& parameters,
const
String
& section_name);
192
195
bool
hasParameters(
Atom::Type
I,
Atom::Type
J,
Atom::Type
K,
Atom::Type
L)
const
;
196
199
CosineTorsion::Values
getParameters(
Atom::Type
I,
Atom::Type
J,
Atom::Type
K,
Atom::Type
L)
const
;
200
205
bool
assignParameters(
CosineTorsion::Values
& parameters,
Atom::Type
I,
206
Atom::Type
J,
Atom::Type
K,
Atom::Type
L)
const
;
207
209
212
215
CosineTorsion
& operator = (
const
CosineTorsion
& cosine_torsion);
216
218
222
225
bool
operator ==
(
const
CosineTorsion
& cosine_torsion)
const
;
226
228
229
protected
:
230
231
Size
number_of_atom_types_
;
232
233
vector<Values>
torsions_
;
234
235
HashMap<Size, Size>
torsion_hash_map_
;
236
};
237
238
}
// namespace BALL
239
240
#endif // BALL_MOLMEC_PARAMETER_COSINETORSION_H
BALL::CosineTorsion::Data::values
Values values
Definition:
cosineTorsion.h:143
BALL::CosineTorsion::Values::Values
Values()
Definition:
cosineTorsion.h:72
BALL::CosineTorsion::SingleValues::n
float n
Definition:
cosineTorsion.h:40
BALL::CosineTorsion::Values
Definition:
cosineTorsion.h:65
BALL_EXPORT
#define BALL_EXPORT
Definition:
COMMON/global.h:50
BALL::CosineTorsion::Values::set
void set(const Values &v)
Definition:
cosineTorsion.h:97
BALL::CosineTorsion::SingleData::atom3
Atom * atom3
Definition:
cosineTorsion.h:150
BALL::operator!=
BALL_EXPORT bool operator!=(const String &s1, const String &s2)
BALL::CosineTorsion::Values::n
Size n
Definition:
cosineTorsion.h:68
parameterSection.h
BALL::CosineTorsion::SingleValues::f
float f
Definition:
cosineTorsion.h:39
BALL::CosineTorsion::SingleData::atom2
Atom * atom2
Definition:
cosineTorsion.h:149
BALL::HashMap
HashMap class based on the STL map (containing serveral convenience functions)
Definition:
hashMap.h:73
BALL::CosineTorsion::Data::atom1
Atom * atom1
Definition:
cosineTorsion.h:138
BALL::CosineTorsion::Values::Values
Values(const Values &v)
Definition:
cosineTorsion.h:84
BALL::CosineTorsion::torsion_hash_map_
HashMap< Size, Size > torsion_hash_map_
Definition:
cosineTorsion.h:235
BALL::CosineTorsion::torsions_
vector< Values > torsions_
Definition:
cosineTorsion.h:233
BALL_SIZE_TYPE
BALL::CosineTorsion::Values::values
SingleValues * values
Definition:
cosineTorsion.h:70
BALL::CosineTorsion::Values::~Values
~Values()
Definition:
cosineTorsion.h:109
BALL::Atom
Definition:
atom.h:87
BALL
Definition:
constants.h:12
BALL::ForceFieldParameters
Definition:
forceFieldParameters.h:29
BALL::String
Definition:
string.h:56
BALL::CosineTorsion::SingleValues::phase
float phase
Definition:
cosineTorsion.h:37
BALL::CosineTorsion::SingleValues::V
float V
Definition:
cosineTorsion.h:38
BALL::CosineTorsion::Data
Definition:
cosineTorsion.h:136
BALL::ParameterSection
Definition:
parameterSection.h:39
BALL::CosineTorsion::Data::atom4
Atom * atom4
Definition:
cosineTorsion.h:141
BALL::CosineTorsion::SingleData::values
SingleValues values
Definition:
cosineTorsion.h:153
BALL::CosineTorsion::Data::atom2
Atom * atom2
Definition:
cosineTorsion.h:139
BALL::CosineTorsion::SingleValues
Definition:
cosineTorsion.h:35
BALL::CosineTorsion::Values::Values
Values(Size number)
Definition:
cosineTorsion.h:78
BALL::CosineTorsion::SingleData::atom1
Atom * atom1
Definition:
cosineTorsion.h:148
BALL::Parameters
Definition:
parameters.h:24
BALL::CosineTorsion::SingleData::atom4
Atom * atom4
Definition:
cosineTorsion.h:151
UNKNOWN
UNKNOWN
Definition:
result.h:27
BALL::CosineTorsion::number_of_atom_types_
Size number_of_atom_types_
Definition:
cosineTorsion.h:231
BALL::operator==
BALL_EXPORT bool operator==(const String &s1, const String &s2)
BALL::CosineTorsion
Definition:
cosineTorsion.h:25
BALL::CosineTorsion::Data::atom3
Atom * atom3
Definition:
cosineTorsion.h:140
BALL::CosineTorsion::SingleValues::SingleValues
SingleValues(const SingleValues &v)
Definition:
cosineTorsion.h:42
atomTypes.h
BALL::CosineTorsion::SingleValues::SingleValues
SingleValues()
Definition:
cosineTorsion.h:50
BALL::Atom::Type
short Type
Definition:
atom.h:103
BALL::CosineTorsion::SingleData
Definition:
cosineTorsion.h:146
Generated by
1.8.16