MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
GssaVoxelPools.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-2014 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 _GSSA_VOXEL_POOLS_BASE_H
11 #define _GSSA_VOXEL_POOLS_BASE_H
12 
13 class Stoich;
14 
16 {
17 public:
19 
20  virtual ~GssaVoxelPools();
21 
22 
24  // Solver interface functions
26  void advance( const ProcInfo* p );
27  void recalcTime( const GssaSystem* g, double currTime );
29  const GssaSystem* g, unsigned int rindex, double time );
31  const vector< unsigned int >& deps, const Stoich* stoich );
32  unsigned int pickReac();
33  void setNumReac( unsigned int n );
34 
35  void advance( const ProcInfo* p, const GssaSystem* g );
36 
37  vector< unsigned int > numFire() const;
38 
44  bool refreshAtot( const GssaSystem* g );
45 
49  void reinit( const GssaSystem* g );
50 
51  void updateAllRateTerms( const vector< RateTerm* >& rates,
52  unsigned int numCoreRates );
53  void updateRateTerms( const vector< RateTerm* >& rates,
54  unsigned int numCoreRates, unsigned int index );
55 
56  double getReacVelocity( unsigned int r, const double* s ) const;
57  void updateReacVelocities( const GssaSystem* g,
58  const double* s, vector< double >& v ) const;
59 
64  void setVolumeAndDependencies( double vol );
65 
70  void xferIn( XferInfo& xf,
71  unsigned int voxelIndex, const GssaSystem* g );
72 
73  void setStoich( const Stoich* stoichPtr );
74 
75 private:
77  double t_;
78 
82  double atot_;
83 
88  vector< double > v_;
89  // Possibly we should put independent RNGS, so save one here.
90 
91  // Count how many times each reaction has fired.
92  vector< unsigned int > numFire_;
93 
98 
99 };
100 
101 #endif // _GSSA_VOXEL_POOLS_H
bool refreshAtot(const GssaSystem *g)
vector< unsigned int > numFire_
void recalcTime(const GssaSystem *g, double currTime)
void xferIn(XferInfo &xf, unsigned int voxelIndex, const GssaSystem *g)
void setNumReac(unsigned int n)
double getReacVelocity(unsigned int r, const double *s) const
void updateDependentRates(const vector< unsigned int > &deps, const Stoich *stoich)
void advance(const ProcInfo *p)
void setStoich(const Stoich *stoichPtr)
Definition: Stoich.h:49
virtual ~GssaVoxelPools()
unsigned int pickReac()
moose::RNG< double > rng_
RNG.
void updateReacVelocities(const GssaSystem *g, const double *s, vector< double > &v) const
void setVolumeAndDependencies(double vol)
void updateAllRateTerms(const vector< RateTerm * > &rates, unsigned int numCoreRates)
vector< double > v_
vector< unsigned int > numFire() const
void updateDependentMathExpn(const GssaSystem *g, unsigned int rindex, double time)
void updateRateTerms(const vector< RateTerm * > &rates, unsigned int numCoreRates, unsigned int index)
double t_
Time at which next event will occur.