BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
12 #endif
13 
14 #ifndef BALL_MOLMEC_MINIMIZATION_LINESEARCH_H
16 #endif
17 
18 namespace BALL
19 {
37  : public EnergyMinimizer
38  {
39  public:
40 
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 
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 
94  {
97  RANK_1 = 1,
98 
101  RANK_2 = 2
102  };
103 
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 
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 
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 
244 
248 
252 
257 
262 
266 
270 
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