BALL
1.5.0
include
BALL
MOLMEC
MINIMIZATION
conjugateGradient.h
Go to the documentation of this file.
1
// -*- Mode: C++; tab-width: 2; -*-
2
// vi: set ts=2:
3
//
4
// $Id: conjugateGradient.h,v 1.29.20.6 2007/08/07 09:12:33 aleru Exp $
5
//
6
7
#ifndef BALL_MOLMEC_MINIMIZATION_CONJUGATEGRADIENT_H
8
#define BALL_MOLMEC_MINIMIZATION_CONJUGATEGRADIENT_H
9
10
#ifndef BALL_MOLMEC_MINIMIZATION_ENERGYMINIMIZER_H
11
# include <
BALL/MOLMEC/MINIMIZATION/energyMinimizer.h
>
12
#endif
13
14
#ifndef BALL_MOLMEC_MINIMIZATION_LINESEARCH_H
15
# include <
BALL/MOLMEC/MINIMIZATION/lineSearch.h
>
16
#endif
17
18
namespace
BALL
19
{
40
class
BALL_EXPORT
ConjugateGradientMinimizer
41
:
public
EnergyMinimizer
42
{
43
public
:
44
48
52
enum
UpdateMethod
53
{
56
POLAK_RIBIERE = 1,
57
60
FLETCHER_REEVES = 2,
61
64
SHANNO = 3
65
};
66
68
71
74
struct
Option
75
{
78
static
const
char
*
UPDATE_METHOD
;
79
};
80
83
struct
BALL_EXPORT
Default
84
{
87
static
const
Size
UPDATE_METHOD
;
88
};
89
91
94
95
BALL_CREATE
(
ConjugateGradientMinimizer
)
96
97
99
ConjugateGradientMinimizer
();
100
103
ConjugateGradientMinimizer
(
ForceField
& force_field);
104
107
ConjugateGradientMinimizer
(
ForceField
& force_field,
SnapShotManager
*ssm);
108
111
ConjugateGradientMinimizer
(
ForceField
& force_field,
112
SnapShotManager
* ssm, const
Options
& options);
113
116
ConjugateGradientMinimizer
(
ForceField
& force_field, const
Options
& options);
117
120
ConjugateGradientMinimizer
(const
ConjugateGradientMinimizer
& rhs);
121
124
virtual ~
ConjugateGradientMinimizer
();
125
127
130
133
const
ConjugateGradientMinimizer
& operator = (const
ConjugateGradientMinimizer
& rhs);
134
136
139
142
virtual
bool
specificSetup();
143
145
148
152
void
setUpdateMethod(
UpdateMethod
method);
153
156
UpdateMethod
getUpdateMethod() const;
157
164
virtual
double
findStep();
165
171
virtual
void
updateDirection();
172
181
virtual
bool
minimize(
Size
iterations = 0,
bool
resume = false);
182
183
protected:
184
186
189
192
LineSearch
line_search_;
193
196
Gradient
unscaled_direction_;
197
200
Size
number_of_atoms_;
201
204
Size
updt_method_;
205
208
bool
first_iter_;
209
212
double
old_gtg_;
213
216
vector<
Vector3
> a_i_;
217
220
vector<
Vector3
> b_i_;
221
224
vector<
Vector3
> p_t_;
225
228
vector<
Vector3
> y_t_;
229
232
vector<
Vector3
> p_i_;
233
236
vector<
Vector3
> y_i_;
237
240
double
D_1_;
241
244
double
D_4_;
245
248
Size
restart_frequency_;
249
255
Size
last_restart_iter_;
256
258
259
};
260
}
// end of namespace BALL
261
262
#endif
// BALL_MOLMEC_MINIMIZATION_CONJUGATEGRADIENT_H
BALL_CREATE
#define BALL_CREATE(name)
Definition:
create.h:62
lineSearch.h
energyMinimizer.h
BALL
Definition:
constants.h:13
BALL::Options
Definition:
options.h:48
BALL::TVector3< float >
BALL::ForceField
Definition:
forceField.h:86
BALL::Gradient
Definition:
gradient.h:45
BALL::SnapShotManager
Definition:
snapShotManager.h:34
BALL::ConjugateGradientMinimizer
Definition:
conjugateGradient.h:42
BALL::ConjugateGradientMinimizer::UpdateMethod
UpdateMethod
Definition:
conjugateGradient.h:53
BALL::ConjugateGradientMinimizer::Option
Definition:
conjugateGradient.h:75
BALL::ConjugateGradientMinimizer::Option::UPDATE_METHOD
static const char * UPDATE_METHOD
Definition:
conjugateGradient.h:78
BALL::ConjugateGradientMinimizer::Default
Definition:
conjugateGradient.h:84
BALL::ConjugateGradientMinimizer::Default::UPDATE_METHOD
static const Size UPDATE_METHOD
Definition:
conjugateGradient.h:87
BALL::EnergyMinimizer
Definition:
energyMinimizer.h:30
BALL::LineSearch
Definition:
lineSearch.h:33
BALL_SIZE_TYPE
BALL_EXPORT
#define BALL_EXPORT
Definition:
COMMON/global.h:50
Generated by
1.9.4