BALL
1.4.2
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
BALL
MOLMEC
MINIMIZATION
shiftedLVMM.h
Go to the documentation of this file.
1
// -*- Mode: C++; tab-width: 2; -*-
2
// vi: set ts=2:
3
//
4
// $Id: shiftedLVMM.h,v 1.1.4.6 2007/08/07 09:12:35 aleru Exp $
5
//
6
7
#ifndef BALL_MOLMEC_MINIMIZATION_SHIFTEDLVMM_H
8
#define BALL_MOLMEC_MINIMIZATION_SHIFTEDLVMM_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
{
36
class
BALL_EXPORT
ShiftedLVMMMinimizer
37
:
public
EnergyMinimizer
38
{
39
public
:
40
41
BALL_CREATE
(
ShiftedLVMMMinimizer
)
42
43
46
47
52
struct
Option
53
{
56
static
const
char
*
UPDATE_METHOD
;
57
60
static
const
char
*
CORRECTION_PARAMETER
;
61
65
static
const
char
*
NUM_OF_COLUMNS
;
66
};
67
68
struct
BALL_EXPORT
Default
69
{
73
static
const
Size
UPDATE_METHOD
;
74
78
static
const
Size
CORRECTION_PARAMETER
;
79
83
static
const
Size
NUM_OF_COLUMNS
;
84
};
85
87
90
93
enum
UpdateMethod
94
{
97
RANK_1 = 1,
98
101
RANK_2 = 2
102
};
103
106
enum
CorrectionParameter
107
{
110
UNIT_VALUE = 1,
111
114
BALANCING_VALUE = 2,
115
118
SQUARE_ROOT = 3,
119
122
GEOMETRIC_MEAN = 4,
123
126
RATIO_OF_SHIFT_PARAMS = 5
127
};
128
130
133
136
ShiftedLVMMMinimizer
();
137
140
ShiftedLVMMMinimizer
(
ForceField
& force_field);
141
144
ShiftedLVMMMinimizer
(
ForceField
& force_field,
SnapShotManager
*ssm);
145
148
ShiftedLVMMMinimizer
(
ForceField
& force_field,
SnapShotManager
* ssm,
const
Options
& options);
149
152
ShiftedLVMMMinimizer
(
ForceField
& force_field,
const
Options
& options);
153
156
ShiftedLVMMMinimizer
(
const
ShiftedLVMMMinimizer
& rhs);
157
160
virtual
~
ShiftedLVMMMinimizer
();
161
163
166
169
const
ShiftedLVMMMinimizer
& operator = (
const
ShiftedLVMMMinimizer
& rhs);
170
172
175
178
virtual
bool
specificSetup();
179
181
184
187
void
setUpdateMethod(UpdateMethod updt);
188
191
UpdateMethod getUpdateMethod()
const
;
192
195
void
setCorrectionParameter(CorrectionParameter corr);
196
199
CorrectionParameter getCorrectionParameter()
const
;
200
204
void
setMaxNumOfColumns(
Size
num);
205
209
Size
getMaxNumOfColumns()
const
;
210
217
virtual
double
findStep();
218
222
virtual
void
updateDirection();
223
232
virtual
bool
minimize(
Size
iterations = 0,
bool
resume =
false
);
233
234
protected
:
235
237
240
243
LineSearch
line_search_
;
244
247
bool
first_iter_
;
248
251
Size
number_of_atoms_
;
252
256
Size
max_number_of_cols_
;
257
261
Size
curr_number_of_cols_
;
262
265
Size
updt_method_
;
266
269
Size
corr_par_
;
270
273
double
prev_shift_val_
;
274
277
vector<Vector3>
shift_s_
;
278
281
vector<Vector3>
grad_diff_
;
282
285
vector<float>
updt_u_
;
286
289
vector<float>
updt_v_
;
290
293
vector<Vector3>
shifted_direction_
;
294
298
vector<Vector3>
hess_factor_
;
299
303
vector<Vector3>
initial_atoms_
;
304
306
307
};
308
}
// end of namespace BALL
309
310
#endif // BALL_MOLMEC_MINIMIZATION_SHIFTEDLVMM_H
Generated by
1.8.3.1