--- trunk/OOPSE/libmdtools/MinimizerParameterSet.hpp 2004/01/30 21:47:22 1000 +++ trunk/OOPSE/libmdtools/MinimizerParameterSet.hpp 2004/02/03 20:43:08 1010 @@ -1,28 +1,54 @@ #ifndef _MININIZERPARAMETERSET_H_ #define _MININIZERPARAMETERSET_H_ +const double DEFAULTTOLERANCE = 1.0e-4; + // base class of minimizer's parameter set class MinimizerParameterSet{ public: - MinimizerParameterSet(int dim); - virtual void setDefaultParameter(); + MinimizerParameterSet(); + MinimizerParameterSet(MinimizerParameterSet& param) {*this = param;} + + void operator= (MinimizerParameterSet& param) { - void setMaxIteration(int iteration) { maxIteration = iteration;} - int getMaxIteration() { return maxIteration;} + maxIteration = param.maxIteration; + stepTol = param.stepTol; + lsTol = param.lsTol; + fTol = param.fTol; + gTol = param.gTol; + } - void setStepSize(double step) { stepSize = step;} - double getStepSize() { return stepSize;} + virtual void setDefaultParameter(){ + maxIteration = 200; + stepTol = DEFAULTTOLERANCE; + fTol = DEFAULTTOLERANCE; + gTol = DEFAULTTOLERANCE; - void setMaxStep(double step) { maxStep = step;} - double getMaxStep() {return maxStep;} + lsMaxIteration = 50; + lsTol = 1.0e-4; + } + + + void setStepTol(double tol) { stepTol = tol;} + double getStepTol() { return stepTol;} + + void setMaxIteration(int iter) { maxIteration = iter;} + int getMaxIteration() {return maxIteration;} - void setAbsGradTol(double tol) {absGradTol = tol;} - double getAbsGradTol() {return absGradTol;} + void setFTol(double tol) {fTol = tol;} + double getFTol() {return fTol;} - void setAchGradTol(double tol) { absAchGradTol = tol;} - double getAchGradTol() { return achGradTol;} + void setGradTol(double tol) {gTol = tol;} + double getGradTol() {return gTol;} + void setLineSearchTol(double tol) {lsTol = tol;} + double getLineSearchTol() {return lsTol;} + + void setLineSearchMaxIteration(int iter) {lsMaxIteration = iter;} + int getLineSearchMaxIteration() {return lsMaxIteration;} + +/* void setAbsTol(vector& tol) { absTol = tol;} vector getAbsTol() { return absTol;} @@ -31,22 +57,19 @@ class MinimizerParameterSet{ void setTotTol(vector& tol) { totTol = tol;} vector getTotTol() { return totTol;} +*/ protected: int maxIteration; + double stepTol; + double fTol; + double gTol; - double stepSize; + int lsMaxIteration; + double lsTol; - // Name of minimizer - string methodName; - - // Absolute gradient tolerance - double absGradTol; - - // Achieved gradient tolerance. - double achGradTol; - +/* // Absolute tolerance vector absTol; @@ -58,7 +81,7 @@ class MinimizerParameterSet{ // Tolerance achieved at convergence. vector achTol; - +*/ };