steepestDescent.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: steepestDescent.h,v 1.24.20.4 2007/08/07 09:12:35 aleru Exp $
00005 //
00006 
00007 #ifndef BALL_MOLMEC_MINIMIZATION_STEEPESTDESCENT_H
00008 #define BALL_MOLMEC_MINIMIZATION_STEEPESTDESCENT_H
00009 
00010 #ifndef BALL_MOLMEC_MINIMIZATION_ENERGYMINIMIZER_H
00011 # include <BALL/MOLMEC/MINIMIZATION/energyMinimizer.h>
00012 #endif
00013 
00014 #ifndef BALL_MOLMEC_MINIMIZATION_LINESEARCH_H
00015 # include <BALL/MOLMEC/MINIMIZATION/lineSearch.h>
00016 #endif
00017 
00018 namespace BALL 
00019 {
00023   class BALL_EXPORT SteepestDescentMinimizer 
00024     : public EnergyMinimizer
00025   {
00026     
00027     public:
00028       
00032       
00033       BALL_CREATE(SteepestDescentMinimizer)
00034       
00035       
00037       SteepestDescentMinimizer();
00038       
00041       SteepestDescentMinimizer(ForceField& force_field);
00042       
00045       SteepestDescentMinimizer(ForceField& force_field,SnapShotManager *ssm);
00046       
00049       SteepestDescentMinimizer(ForceField& force_field, const Options& options);
00050       
00053       SteepestDescentMinimizer(ForceField& force_field, SnapShotManager* ssm, const Options& options);
00054       
00057       SteepestDescentMinimizer(const SteepestDescentMinimizer& minimizer);
00058       
00061       virtual ~SteepestDescentMinimizer();
00062       
00064 
00067       
00070       const SteepestDescentMinimizer& operator = (const SteepestDescentMinimizer& minimizer);
00071       
00073 
00076       
00079       virtual bool specificSetup();
00080       
00082 
00085       
00094       virtual bool minimize(Size steps = 0, bool resume = false);
00095       
00102       virtual double findStep();
00103       
00109       virtual void updateDirection();
00110       
00111     protected:
00112       
00114 
00117       
00121       LineSearch line_search_;
00123       
00124   };
00125 } // namespace BALL
00126 
00127 #endif // BALL_MOLMEC_MINIMIZATION_STEEPESTDESCENT_H