ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/NLOPModel.hpp
Revision: 969
Committed: Tue Jan 20 20:32:57 2004 UTC (20 years, 7 months ago) by tim
File size: 1690 byte(s)
Log Message:
Energy Minimizer

File Contents

# User Rev Content
1 tim 969 #ifndef _NLOPMODEL_H_
2     #define _NLOPMODEL_H_
3    
4     class NLOPBase{
5     public:
6     // Destructor
7     virtual ~NLPBase() {;}
8    
9     // set and Accessor Methods
10     virtual void setX(const int i, const real& x) = 0;
11     virtual void setX(const ColumnVector& x) = 0;
12    
13     virtual void setF(const real& fx) = 0;
14    
15     virtual void setIsExpensive(const int e) = 0;
16    
17     virtual void setFcnAccrcy(const int i, const real& accrcy) = 0;
18     virtual void setFcnAccrcy(const ColumnVector& accrcy) = 0;
19    
20     virtual int getDim() const = 0;
21     virtual int getFevals() const = 0;
22     virtual int getIsExpensive() const = 0;
23     virtual real getF() const = 0;
24     virtual ColumnVector getFcnAccrcy() const = 0;
25     virtual ColumnVector getXc() const = 0;
26     virtual real getFcnTime() =const = 0;
27    
28     // Constraint Accessor Methods
29     virtual int getNumOfCons() const = 0;
30     virtual int getNumOfNLCons() const = 0;
31     virtual bool hasConstraints() = 0;
32     virtual void PrintConstraints() = 0;
33    
34     // Debugging tools
35     virtual void setDebug() = 0;
36     virtual bool debug() const = 0;
37    
38     // Function Evaluation Methods
39     virtual void initFcn() = 0;
40     virtual real evalF() = 0;
41     virtual real evalF(const ColumnVector &x) = 0;
42     virtual ColumnVector evalG() = 0;
43     virtual ColumnVector evalG(const ColumnVector &x) = 0;
44     virtual SymmetricMatrix evalH() = 0;
45     virtual SymmetricMatrix evalH(ColumnVector &x) = 0;
46     virtual void eval() = 0;
47    
48     };
49    
50     class NLOPNoDerive : public NLOPBase{
51    
52     };
53    
54     class NLOPFirstDerive : NLOPNoDerive{
55    
56     };
57    
58     class NLOPSecondDerive : NLOPFirstDerive{
59    
60     };
61     #endif