ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/ConjugateMinimizer.hpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/ConjugateMinimizer.hpp (file contents):
Revision 987 by tim, Tue Jan 27 19:15:20 2004 UTC vs.
Revision 1000 by tim, Fri Jan 30 21:47:22 2004 UTC

# Line 3 | Line 3 | class ConjugateMinimizerBase : public MinimizeBase{
3  
4   #include "MinimizerBase.hpp"
5  
6 + //abstract class of conjugate gradient minimizer
7   class ConjugateMinimizerBase : public MinimizeBase{
8 +
9    public:
10 +
11 +    ConjugateMinimizerBase(NLModel1* nlmodel);
12 +    ~ConjugateMinimizerBase();
13 +    
14      bool isSolvable();
15 <    virtual void Init() = 0;
16 <    virtual void Minimize() = 0;
17 <    virtual int step() = 0;
12 <    virtual int testConvergence() = 0;    
15 >    virtual void Init();
16 >    virtual void Minimize();
17 >    virtual int isConvergenceAchieved();    
18      virtual void reset();
19 <    void calcDirection(vector<double>& direction)  = 0;
19 >    virtual void printMinizerInfo();
20      
21    protected:
22 +
23 +    double calcGamma(vector<double>& newGrad, vector<double>& oldGrad) = 0;
24      NLModel0 * model;
25 <    vector<double> preGrad;    
25 >    
26 >    vector<double> prevGrad;    
27 >    vector<double> gradient;
28 >    vector<double> prevDirection;
29 >    vector<double> direction;  
30   };
31  
32 < class FRConjugate : public ConjugateMinimizerBase{
33 <  public:    
23 <    void calcDirection(vector<double>& direction);
32 > //Fletcher-Reeves Conjugate Gradient Method
33 > class FRCGMinimizer : public ConjugateMinimizerBase{
34  
35 +  protected:    
36 +
37 +    double calcGamma(vector<double>& newGrad, vector<double>& oldGrad);
38 +
39   };
40  
41 < class PRConjugate : public ConjugateMinimizerBase{
42 <  public:
43 <    void calcDirection(vector<double>& direction);
41 > //Polak-Reeves Conjugate Gradient Method
42 > class PRCGMinimizer : public ConjugateMinimizerBase{
43 >
44 >  protected:
45 >
46 >    double calcGamma(vector<double>& newGrad, vector<double>& oldGrad);
47   };
48  
49   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines