MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ReadKkit.h
Go to the documentation of this file.
1 /**********************************************************************
2 ** This program is part of 'MOOSE', the
3 ** Messaging Object Oriented Simulation Environment.
4 ** Copyright (C) 2003-2010 Upinder S. Bhalla. and NCBS
5 ** It is made available under the terms of the
6 ** GNU Lesser General Public License version 2.1
7 ** See the file COPYING.LIB for the full notice.
8 **********************************************************************/
9 
10 #ifndef _READ_KKIT_H
11 #define _READ_KKIT_H
12 
28 class ReadKkit
29 {
30  public:
31  enum ParseMode {
36  };
37 
38  ReadKkit();
39 
41  // Field assignment stuff
43  double getMaxTime() const;
44  double getPlotDt() const;
45  double getDefaultVol() const;
46  string getBasePath() const;
47  unsigned int getVersion() const;
48  bool getMoveOntoCompartment() const;
49  void setMoveOntoCompartment( bool v );
50 
52  // Undump operations
54 
55  void innerRead( ifstream& fin );
56  ParseMode readInit( const string& line );
57  Id read( const string& filename, const string& cellname,
58  Id parent, const string& solverClass = "Stoich" );
59  void readData( const string& line );
60  void undump( const vector< string >& args );
61 
68  // void setupGslRun();
69 
70  void run();
71  void dumpPlots( const string& filename );
72 
74  // Building up the model
76  Id buildCompartment( const vector< string >& args );
77  Id buildPool( const vector< string >& args );
78  Id buildReac( const vector< string >& args );
79  Id buildEnz( const vector< string >& args );
80  Id buildPlot( const vector< string >& args );
81  Id buildTable( const vector< string >& args );
82  unsigned int loadTab( const vector< string >& args );
83  Id buildGroup( const vector< string >& args );
84  Id buildText( const vector< string >& args );
85  Id buildGraph( const vector< string >& args );
86  Id buildGeometry( const vector< string >& args );
87  Id buildStim( const vector< string >& args );
88  Id buildChan( const vector< string >& args );
89  Id buildInfo( Id parent, map< string, int >& m,
90  const vector< string >& args );
91  void buildSumTotal( const string& src, const string& dest );
96  Id findSumTotSrc( const string& src );
97 
99  // Special ops in the model definition
101  void addmsg( const vector< string >& args );
102  void setupSlaveMsg( const string& src, const string& dest );
103  void innerAddMsg(
104  const string& src, const map< string, Id >& m1,
105  const string& srcMsg,
106  const string& dest, const map< string, Id >& m2,
107  const string& destMsg,
108  bool isBackward = 0 );
109  void call( const vector< string >& args );
110  void objdump( const vector< string >& args );
111  void textload( const vector< string >& args );
112  void separateVols( Id pool, double vol );
113  void assignPoolCompartments();
114 
121  void assignReacCompartments();
122  void assignEnzCompartments();
124 
136 
139 
142 
149 
155 
157  // Utility functions
159 
165  string pathTail( const string& path, string& head ) const;
166 
177  string cleanPath( const string& path ) const;
178 
179  private:
180  string basePath_;
182 
183  double fastdt_;
184  double simdt_;
185  double controldt_;
186  double plotdt_;
187  double maxtime_;
188  double transientTime_;
190  double defaultVol_;
191  unsigned int version_;
192  unsigned int initdumpVersion_;
193 
202 
203  unsigned int numCompartments_;
204  unsigned int numPools_;
205  unsigned int numReacs_;
206  unsigned int numEnz_;
207  unsigned int numMMenz_;
208  unsigned int numPlot_;
209  unsigned int numStim_;
210  unsigned int numOthers_;
211 
212  unsigned int lineNum_;
213 
214  map< string, int > poolMap_;
215  map< string, int > reacMap_;
216  map< string, int > enzMap_;
217  map< string, int > groupMap_;
218  map< string, int > tableMap_;
219  map< string, int > stimMap_;
220  map< string, int > chanMap_;
221  map< string, Id > poolIds_;
222  map< string, Id > reacIds_;
223  map< string, Id > enzIds_;
224  map< string, Id > mmEnzIds_;
225  map< string, Id > plotIds_;
226  map< string, Id > tabIds_;
227  map< string, Id > stimIds_;
228  map< string, Id > chanIds_;
229 
230  /*
231  vector< Id > pools_;
233  vector< double > poolVols_;
234  */
235 
237  vector< double > vols_;
238 
242  vector< double > tabEntries_;
243 
245  vector< vector< Id > > volCategories_;
246  vector< Id > compartments_;
247  vector< pair< Id, Id > > enzCplxMols_;
248 
249  map< Id, int > poolFlags_;
250 
251  map< Id, double > poolVols_; // Need for enz complexes.
252 
254 
255  static const double EPSILON;
256 };
257 
258 #endif // READ_KKIT_H
vector< Id > compartments_
Definition: ReadKkit.h:246
Id buildGroup(const vector< string > &args)
Definition: ReadKkit.cpp:992
unsigned int version_
Default volume for new compartments.
Definition: ReadKkit.h:191
Id buildTable(const vector< string > &args)
Definition: ReadKkit.cpp:1245
void convertReacRatesToConcUnits()
Convert Reac rates, initially in n units.
Definition: ReadKkit.cpp:1530
void undump(const vector< string > &args)
Definition: ReadKkit.cpp:625
vector< double > tabEntries_
This holds the vector of array entries for loadtab.
Definition: ReadKkit.h:242
double transientTime_
Simulation run time.
Definition: ReadKkit.h:188
double defaultVol_
Use both fast and sim dts.
Definition: ReadKkit.h:190
Id baseId_
Base path into which entire kkit model will go.
Definition: ReadKkit.h:181
void assignEnzCompartments()
Definition: ReadKkit.cpp:847
double maxtime_
Timestep for updating plots.
Definition: ReadKkit.h:187
unsigned int initdumpVersion_
KKit version.
Definition: ReadKkit.h:192
void readData(const string &line)
Definition: ReadKkit.cpp:491
double getMaxTime() const
Definition: ReadKkit.cpp:85
double fastdt_
Base Id onto which entire kkit model will go.
Definition: ReadKkit.h:183
void convertEnzRatesToConcUnits()
Definition: ReadKkit.cpp:1588
Id buildGeometry(const vector< string > &args)
Definition: ReadKkit.cpp:1202
map< string, int > stimMap_
Definition: ReadKkit.h:219
Id buildStim(const vector< string > &args)
Definition: ReadKkit.cpp:1147
map< string, int > tableMap_
Definition: ReadKkit.h:218
bool getMoveOntoCompartment() const
Definition: ReadKkit.cpp:110
void setupSlaveMsg(const string &src, const string &dest)
Definition: ReadKkit.cpp:1447
string pathTail(const string &path, string &head) const
Definition: ReadKkit.cpp:510
map< string, Id > chanIds_
Definition: ReadKkit.h:228
void separateVols(Id pool, double vol)
Definition: ReadKkit.cpp:700
double plotdt_
Timestep for updating control graphics.
Definition: ReadKkit.h:186
map< string, Id > poolIds_
Definition: ReadKkit.h:221
unsigned int loadTab(const vector< string > &args)
Definition: ReadKkit.cpp:1279
void innerRead(ifstream &fin)
Definition: ReadKkit.cpp:360
map< string, Id > tabIds_
Definition: ReadKkit.h:226
map< string, Id > reacIds_
Definition: ReadKkit.h:222
vector< vector< Id > > volCategories_
List of Ids in each unique volume.
Definition: ReadKkit.h:245
Id findSumTotSrc(const string &src)
Definition: ReadKkit.cpp:1078
unsigned int getVersion() const
Definition: ReadKkit.cpp:105
void dumpPlots(const string &filename)
Definition: ReadKkit.cpp:347
void innerAddMsg(const string &src, const map< string, Id > &m1, const string &srcMsg, const string &dest, const map< string, Id > &m2, const string &destMsg, bool isBackward=0)
Definition: ReadKkit.cpp:1318
bool useVariableDt_
Time to run model at fastdt.
Definition: ReadKkit.h:189
map< string, Id > enzIds_
Definition: ReadKkit.h:223
Id lastTab_
This keeps track of the last Table used in loadtab.
Definition: ReadKkit.h:240
double getPlotDt() const
Definition: ReadKkit.cpp:90
map< string, int > groupMap_
Definition: ReadKkit.h:217
vector< pair< Id, Id > > enzCplxMols_
Definition: ReadKkit.h:247
unsigned int numCompartments_
Definition: ReadKkit.h:203
void convertParametersToConcUnits()
Definition: ReadKkit.cpp:1506
map< string, int > poolMap_
Definition: ReadKkit.h:214
void objdump(const vector< string > &args)
Definition: ReadKkit.cpp:568
void convertMMenzRatesToConcUnits()
Definition: ReadKkit.cpp:1562
map< Id, double > poolVols_
Definition: ReadKkit.h:251
double getDefaultVol() const
Definition: ReadKkit.cpp:95
void addmsg(const vector< string > &args)
Definition: ReadKkit.cpp:1346
unsigned int numReacs_
Definition: ReadKkit.h:205
Id buildPlot(const vector< string > &args)
Definition: ReadKkit.cpp:1222
Shell * shell_
Definition: ReadKkit.h:253
Id buildReac(const vector< string > &args)
Definition: ReadKkit.cpp:668
void convertPoolAmountToConcUnits()
Convert pool amounts. Initially given in n, but scaling issue.
Definition: ReadKkit.cpp:1514
map< string, Id > stimIds_
Definition: ReadKkit.h:227
bool moveOntoCompartment_
Initdump too has a version.
Definition: ReadKkit.h:201
void textload(const vector< string > &args)
Definition: ReadKkit.cpp:621
double simdt_
fast numerical timestep from kkit.
Definition: ReadKkit.h:184
unsigned int numMMenz_
Definition: ReadKkit.h:207
map< string, int > chanMap_
Definition: ReadKkit.h:220
ParseMode readInit(const string &line)
Definition: ReadKkit.cpp:439
Id buildEnz(const vector< string > &args)
Definition: ReadKkit.cpp:883
Id buildChan(const vector< string > &args)
Definition: ReadKkit.cpp:1182
vector< double > vols_
This keeps track of unique volumes.
Definition: ReadKkit.h:237
map< string, int > reacMap_
Definition: ReadKkit.h:215
Id buildText(const vector< string > &args)
Definition: ReadKkit.cpp:968
unsigned int lineNum_
Definition: ReadKkit.h:212
string getBasePath() const
Definition: ReadKkit.cpp:100
ReadKkit()
Definition: ReadKkit.cpp:52
Id buildInfo(Id parent, map< string, int > &m, const vector< string > &args)
Definition: ReadKkit.cpp:975
Id read(const string &filename, const string &cellname, Id parent, const string &solverClass="Stoich")
Definition: ReadKkit.cpp:276
Id buildCompartment(const vector< string > &args)
Definition: ReadKkit.cpp:661
void setMoveOntoCompartment(bool v)
Definition: ReadKkit.cpp:115
unsigned int numPools_
Definition: ReadKkit.h:204
Id buildPool(const vector< string > &args)
Definition: ReadKkit.cpp:1015
unsigned int numOthers_
Definition: ReadKkit.h:210
unsigned int numStim_
Definition: ReadKkit.h:209
map< string, Id > plotIds_
Definition: ReadKkit.h:225
void assignReacCompartments()
Definition: ReadKkit.cpp:810
void call(const vector< string > &args)
Definition: ReadKkit.cpp:585
unsigned int numEnz_
Definition: ReadKkit.h:206
Definition: Id.h:17
void run()
Definition: ReadKkit.cpp:321
Id buildGraph(const vector< string > &args)
Definition: ReadKkit.cpp:1209
double controldt_
regular numerical timestep from kkit.
Definition: ReadKkit.h:185
void assignMMenzCompartments()
Definition: ReadKkit.cpp:868
string cleanPath(const string &path) const
Definition: ReadKkit.cpp:519
map< Id, int > poolFlags_
Definition: ReadKkit.h:249
map< string, Id > mmEnzIds_
Definition: ReadKkit.h:224
map< string, int > enzMap_
Definition: ReadKkit.h:216
unsigned int numPlot_
Definition: ReadKkit.h:208
void assignPoolCompartments()
Definition: ReadKkit.cpp:740
static char path[]
Definition: mfield.cpp:403
string basePath_
Definition: ReadKkit.h:180
Definition: Shell.h:43
static const double EPSILON
Definition: ReadKkit.h:255
void buildSumTotal(const string &src, const string &dest)
Definition: ReadKkit.cpp:1098