BALL  1.5.0
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
12 #endif
13 
14 #ifndef BALL_MOLMEC_MINIMIZATION_LINESEARCH_H
16 #endif
17 
18 namespace BALL
19 {
41  : public EnergyMinimizer
42  {
43  public:
44 
48 
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 
84  {
87  static const Size UPDATE_METHOD;
88  };
89 
91 
94 
96 
97 
100 
104 
108 
112  SnapShotManager* ssm, const Options& options);
113 
116  ConjugateGradientMinimizer(ForceField& force_field, const Options& options);
117 
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 
193 
197 
201 
205 
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 
249 
256 
258 
259  };
260 } // end of namespace BALL
261 
262 #endif // BALL_MOLMEC_MINIMIZATION_CONJUGATEGRADIENT_H
BALL::ConjugateGradientMinimizer::p_t_
vector< Vector3 > p_t_
Definition: conjugateGradient.h:224
BALL::ConjugateGradientMinimizer::a_i_
vector< Vector3 > a_i_
Definition: conjugateGradient.h:216
BALL::ConjugateGradientMinimizer::last_restart_iter_
Size last_restart_iter_
Definition: conjugateGradient.h:255
BALL::Options
Definition: options.h:46
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
energyMinimizer.h
BALL::ConjugateGradientMinimizer::Option::UPDATE_METHOD
static const char * UPDATE_METHOD
Definition: conjugateGradient.h:78
lineSearch.h
BALL::ForceField
Definition: forceField.h:85
BALL_SIZE_TYPE
BALL::ConjugateGradientMinimizer::Default
Definition: conjugateGradient.h:83
BALL::ConjugateGradientMinimizer::p_i_
vector< Vector3 > p_i_
Definition: conjugateGradient.h:232
BALL::ConjugateGradientMinimizer
Definition: conjugateGradient.h:40
BALL
Definition: constants.h:12
BALL::ConjugateGradientMinimizer::first_iter_
bool first_iter_
Definition: conjugateGradient.h:208
BALL::ConjugateGradientMinimizer::old_gtg_
double old_gtg_
Definition: conjugateGradient.h:212
BALL::ConjugateGradientMinimizer::D_4_
double D_4_
Definition: conjugateGradient.h:244
BALL::Gradient
Definition: gradient.h:43
BALL::ConjugateGradientMinimizer::UpdateMethod
UpdateMethod
Definition: conjugateGradient.h:52
BALL::ConjugateGradientMinimizer::unscaled_direction_
Gradient unscaled_direction_
Definition: conjugateGradient.h:196
BALL::ConjugateGradientMinimizer::y_i_
vector< Vector3 > y_i_
Definition: conjugateGradient.h:236
BALL::ConjugateGradientMinimizer::updt_method_
Size updt_method_
Definition: conjugateGradient.h:204
BALL::ConjugateGradientMinimizer::restart_frequency_
Size restart_frequency_
Definition: conjugateGradient.h:248
BALL::LineSearch
Definition: lineSearch.h:32
BALL::EnergyMinimizer
Definition: energyMinimizer.h:29
BALL::ConjugateGradientMinimizer::number_of_atoms_
Size number_of_atoms_
Definition: conjugateGradient.h:200
BALL::ConjugateGradientMinimizer::Option
Definition: conjugateGradient.h:74
BALL::ConjugateGradientMinimizer::y_t_
vector< Vector3 > y_t_
Definition: conjugateGradient.h:228
BALL::ConjugateGradientMinimizer::b_i_
vector< Vector3 > b_i_
Definition: conjugateGradient.h:220
BALL::SnapShotManager
Definition: snapShotManager.h:33
BALL_CREATE
#define BALL_CREATE(name)
Definition: create.h:62
BALL::ConjugateGradientMinimizer::D_1_
double D_1_
Definition: conjugateGradient.h:240
BALL::ConjugateGradientMinimizer::line_search_
LineSearch line_search_
Definition: conjugateGradient.h:192
BALL::ConjugateGradientMinimizer::Default::UPDATE_METHOD
static const Size UPDATE_METHOD
Definition: conjugateGradient.h:87