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

NetworkMinimizableDirector.h

Go to the documentation of this file.
00001 // NetworkMinimizableDirector.h: interface for the NetworkMinimizableDirector class.
00002 //
00004 
00005 #if !defined(AFX_NETWORKMINIMIZABLEDIRECTOR_H__C03A8E92_E561_4180_B799_A6972926C1B7__INCLUDED_)
00006 #define AFX_NETWORKMINIMIZABLEDIRECTOR_H__C03A8E92_E561_4180_B799_A6972926C1B7__INCLUDED_
00007 
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011 
00012 #include "SingleNetworkMinimizable.h"
00013 
00014 class NetworkMinimizableDirector : public NLLSMinimizable
00015 {
00016 public:
00017         NetworkMinimizableDirector();
00018         virtual ~NetworkMinimizableDirector();
00019         // Inherited from Minimizable - should return the size of Union_i(p_i) over 
00020         // _minimizableList (pure virtual)
00021         virtual int GetNParameters() = 0;
00022         // Inherited from Minimizable - returns the summed objective function for all 
00023         // minimizables in _minimizableList
00024         virtual double ObjectiveFunction(double *parameters);
00025         // Inherited from NLLSMinimizable - computes residuals for all the individual 
00026         // minimizables in _minimizableList and stores them appropriately
00027         virtual double ComputeResiduals(double *parameters);
00028         virtual double ComputeES(double *parameters, double T);
00029         virtual double EntropyShift(double T);
00030         virtual double F(double *parameters, double T);
00031         virtual double F0(double *parameters, double T);
00032         // Inherited from Minimizable - should return the appropriate parameter
00033         // (pure virtual)
00034         virtual double GetParameter(int parIndex) = 0;
00035         // Returns a single mover
00036         virtual CReactionMover *GetMover(int moverIndex) {return _moverList[moverIndex];}
00037         // Returns the number of experiments
00038         virtual int GetNExperiments() const {return _experimentList.size();}
00039         // Returns a single reaction network
00040         virtual ReactionNetwork *GetReactionNetwork(int networkIndex) {return _networkList[networkIndex];}
00041         // Dumps information about residuals order to a file
00042         virtual void DumpResidualInfo();
00043 private:
00044         // Initialization of conditions for each minimizable
00045         virtual void DefineExperiments() = 0;
00046 protected:
00047 //      std::vector<SingleNetworkMinimizable *> _minimizableList;
00048         std::vector<NetworkMinimizable *> _minimizableList;
00049         std::vector<Experiment *> _experimentList;
00050         std::vector<ReactionNetwork *> _networkList;
00051         std::vector<CReactionMover *> _moverList;
00052         // indices of parameters (if any) that have a cost for deviation from guessed values
00053         std::vector<int> m_iPriorList;
00054         // penalty for difficult integrations; always make it the last residual in
00055         // the list
00056         double m_dGammaSquared;
00057 };
00058 
00059 #endif // !defined(AFX_NETWORKMINIMIZABLEDIRECTOR_H__C03A8E92_E561_4180_B799_A6972926C1B7__INCLUDED_)

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