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