Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

PeriodicQuenchMinimizer.h

Go to the documentation of this file.
00001 #pragma once
00002 #include "Minimizer.h"
00003 #include "ParameterFilter.h"
00004 #include "Rand.h"
00005 #include "MatrixOperations.h"
00006 #include "ImprovedLevenbergMarquardtMinimizer.h"
00007 #include "ConjugateGradientMinimizer.h"
00008 
00009 class CPeriodicQuenchMinimizer : public Minimizer
00010 {
00011 public:
00012         CPeriodicQuenchMinimizer(int RNGSeed, CParameterFilter *pFilter, bool LMflag, int nQuench, int nSteps, double tol=1.0e-02, double T=10, double deltaX=1.0,double c=10);
00013         virtual ~CPeriodicQuenchMinimizer(void);
00014         double Minimize(double *parameters, Minimizable *minimizable);
00015         virtual bool AcceptMove(double Eold, double Enew);
00016         virtual void GenerateMove();
00017         void WriteQuenchedParameters(int iter, double E);
00018 protected:
00019         // used to do vector copies and such
00020         CMatrixOperations *m_pMO;
00021         // RNG
00022         Rand *m_pRNG;
00023         // filter for parameters, available to derived classes for move generation
00024         CParameterFilter *m_pFilter;
00025         // minimizer to do the quenching
00026         Minimizer *m_pQuencher;
00027         // current state
00028         double *m_pdCurrentParameters;
00029         // trial state
00030         double *m_pdTrialParameters;
00031         // number of total quenches to perform
00032         int m_iNQuenches;
00033         // number of steps to perform before quenching
00034         int m_iNMCSteps;
00035         // stepsize control
00036         double m_dC;
00037         // minimum std. dev. for stepsize
00038         double m_dDeltaX;
00039         // needed for detailed balance correction
00040         double m_dSqrLogParDiff;
00041         // temperature for the thermal part of the algorithm
00042         double m_dTemperature;
00043         // self-explanatory
00044         double m_dAcceptanceRatio;
00045         // seed
00046         int m_iRNGSeed;
00047         // current energy
00048         double m_dECurrent;
00049 };

Generated on Mon Nov 3 09:38:08 2003 by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002