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

ExampleNetworkMinimizableDirector.cpp

Go to the documentation of this file.
00001 // ExampleNetworkMinimizableDirector.cpp: implementation of the CExampleNetworkMinimizableDirector class.
00002 //
00004 
00005 #include "ExampleNetworkMinimizableDirector.h"
00006 
00008 // Construction/Destruction
00010 
00011 CExampleNetworkMinimizableDirector::CExampleNetworkMinimizableDirector()
00012 {
00013 // create networks,experiments,observers,movers,minimizables
00014         double maxSimTime = 91.0;
00015         double stepSize = 0.001;
00016         double frequency = 1.0;
00017         int nCells = 1;
00018         double moveTol = 0.0001;
00019         
00020         // flags for all minimizables
00021         bool rateFlag = true;
00022         bool chemFlag = false;
00023         bool logsFlag = false;
00024         double timeWeight = 1.0;
00025         double rateWeight = 0.0;
00026         double chemWeight = 0.0;
00027 
00028         // expt. 1 - 1000 ligand molecules
00029         // networks and data
00030         _networkList.push_back(new CExampleNetwork());
00031         _experimentList.push_back(new Experiment(_networkList[0],"Ligand Stimulation"));
00032         // put data files here
00033         _experimentList[0]->AddDataFileToList("ExampleNetwork.dat");
00034         // mover and plotter
00035         _moverList.push_back(new CQualityControlRungeKuttaMover(frequency,stepSize,moveTol));
00036         _plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00037         // title
00038         _plotterList[0]->SetTitle("G Protein Activation by RTK");
00039         // minimizable
00040         _minimizableList.push_back(new SingleNetworkMinimizable());
00041         // parameters
00042         _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00043         _minimizableList[0]->SetRateConstantsWeight(0.0);
00044         // attach observer
00045         _minimizableList[0]->Attach(_plotterList[0]);
00046 
00047         // allocate the master residuals list
00048         int masterResidualsSize = 0;
00049         for(int i = 0; i < _minimizableList.size(); i++)
00050         {
00051                 masterResidualsSize += _minimizableList[i]->GetNResiduals();
00052         }
00053         Allocate(masterResidualsSize);
00054 
00055         cout << "Master Residuals size : " << masterResidualsSize << endl;
00056 
00057         // define the experiments
00058         DefineExperiments();
00059 }
00060 
00061 CExampleNetworkMinimizableDirector::~CExampleNetworkMinimizableDirector()
00062 {
00063         int i;
00064         for(i = 0; i < _minimizableList.size(); i++)
00065         {
00066                 _minimizableList[i]->Detach(_plotterList[i]);
00067         }
00068         for(i = 0; i < _plotterList.size(); i++)
00069         {
00070                 delete _plotterList[i];
00071         }
00072 }
00073 
00074 void CExampleNetworkMinimizableDirector::DefineExperiments()
00075 {
00076         _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(1000.0);
00077         _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00078 
00079 }
00080 
00081 double CExampleNetworkMinimizableDirector::GetParameter(int parIndex)
00082 {
00083         // for this director, everyone has the same parameters so any set 
00084         // can be returned
00085         return _minimizableList[0]->GetParameter(parIndex);
00086 }
00087 
00088 int CExampleNetworkMinimizableDirector::GetNParameters()
00089 {
00090         // ditto as for GetParameters()
00091         return _minimizableList[0]->GetNParameters();
00092 }
00093 

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