MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DifBuffer.h
Go to the documentation of this file.
1 /**********************************************************************
2  ** This program is part of 'MOOSE', the
3  ** Multiscale Object Oriented Simulation Environment.
4  ** copyright (C) 2003-2008
5  ** Upinder S. Bhalla, Niraj Dudani and NCBS
6  ** It is made available under the terms of the
7  ** GNU Lesser General Public License version 2.1
8  ** See the file COPYING.LIB for the full notice.
9  *****/
10 #ifndef _DifBuffer_h
11 #define _DifBuffer_h
12 
13 class DifBuffer: public DifBufferBase{
14  public:
15  DifBuffer();
16 
17  void vBuffer(const Eref& e,double C);
18  void vReinit( const Eref & e, ProcPtr p );
19  void vProcess(const Eref & e, ProcPtr p );
20  void vFluxFromOut(const Eref& e,double outerC, double outerThickness );
21  void vFluxFromIn( const Eref& e,double innerC, double innerThickness );
22  //Field access functions
23 
24  double vGetActivation(const Eref& e) const;
25  void vSetActivation(const Eref& e,double value);
26 
27  double vGetBFree(const Eref& e) const;
28  void vSetBFree(const Eref& e,double value);
29 
30  double vGetBBound(const Eref& e) const;
31  void vSetBBound(const Eref& e,double value);
32 
33  double vGetBTot(const Eref& e) const; // total buffer concentration in mM (free + bound)
34  void vSetBTot(const Eref& e,double value);
35 
36  double vGetKf(const Eref& e) const; // forward rate constant in 1/(mM*sec)
37  void vSetKf(const Eref& e,double value);
38 
39  double vGetKb(const Eref& e) const; // backward rate constant in 1/sec
40  void vSetKb(const Eref& e,double value);
41 
42  double vGetD(const Eref& e) const; // diffusion constant of buffer molecules, m^2/sec
43  void vSetD(const Eref& e,double value);
44  void vSetShapeMode(const Eref& e, unsigned int shapeMode );
45  unsigned int vGetShapeMode(const Eref& e) const;
46 
47  void vSetLength(const Eref& e, double length );
48  double vGetLength(const Eref& e) const;
49 
50  void vSetDiameter(const Eref& e, double diameter );
51  double vGetDiameter(const Eref& e) const;
52 
53  void vSetThickness(const Eref& e, double thickness );
54  double vGetThickness(const Eref& e) const;
55 
56  void vSetVolume(const Eref& e, double volume );
57  double vGetVolume(const Eref& e) const;
58 
59  void vSetOuterArea(const Eref& e, double outerArea );
60  double vGetOuterArea(const Eref& e) const;
61 
62  void vSetInnerArea(const Eref& e, double innerArea );
63  double vGetInnerArea(const Eref& e) const;
64 
65  void calculateVolumeArea(const Eref& e);
66  static const Cinfo * initCinfo();
67 
68  private:
69 
70 
71  double integrate(double state, double dt, double A, double B );
72 
73  double activation_; //ion concentration from incoming CONCEN message
74  double Af_;
75  double Bf_;
76  double bFree_; //free buffer concentration
77  double bBound_; //bound buffer concentration
78  double prevFree_;
79  double prevBound_;
80  //double prevFree_; //bFree at previous time
81  //double prevBound_; //bBound at previous time
82  double bTot_; //bFree+bBound
83  double kf_; //forward rate constant
84  double kb_; //backward rate constant
85  double D_; //diffusion constant
86  unsigned int shapeMode_;
87  double length_;
88  double diameter_;
89  double thickness_;
90  double volume_;
91  double outerArea_;
92  double innerArea_;
93  static const double EPSILON;
94 };
95 
96 #endif // _DifBuffer_h
97 /* DifBuffer.h ends here */
unsigned int vGetShapeMode(const Eref &e) const
Definition: DifBuffer.cpp:241
void vProcess(const Eref &e, ProcPtr p)
Definition: DifBuffer.cpp:416
double vGetKf(const Eref &e) const
Definition: DifBuffer.cpp:186
uint32_t value
Definition: moosemodule.h:42
double vGetInnerArea(const Eref &e) const
Definition: DifBuffer.cpp:343
double kf_
Definition: DifBuffer.h:83
double prevBound_
Definition: DifBuffer.h:79
double activation_
Definition: DifBuffer.h:73
void vSetDiameter(const Eref &e, double diameter)
Definition: DifBuffer.cpp:262
double innerArea_
Definition: DifBuffer.h:92
double vGetLength(const Eref &e) const
Definition: DifBuffer.cpp:257
void vSetLength(const Eref &e, double length)
Definition: DifBuffer.cpp:246
double vGetBBound(const Eref &e) const
Definition: DifBuffer.cpp:147
double vGetVolume(const Eref &e) const
Definition: DifBuffer.cpp:307
void vSetKf(const Eref &e, double value)
Definition: DifBuffer.cpp:191
double length_
Definition: DifBuffer.h:87
double integrate(double state, double dt, double A, double B)
Definition: DifBuffer.cpp:359
double D_
Definition: DifBuffer.h:85
double kb_
Definition: DifBuffer.h:84
void vSetBFree(const Eref &e, double value)
Definition: DifBuffer.cpp:130
void vBuffer(const Eref &e, double C)
Definition: DifBuffer.cpp:351
void vFluxFromIn(const Eref &e, double innerC, double innerThickness)
Definition: DifBuffer.cpp:506
void vSetOuterArea(const Eref &e, double outerArea)
Definition: DifBuffer.cpp:312
double vGetOuterArea(const Eref &e) const
Definition: DifBuffer.cpp:325
static const Cinfo * initCinfo()
Definition: DifBuffer.cpp:57
void vSetBTot(const Eref &e, double value)
Definition: DifBuffer.cpp:174
double prevFree_
Definition: DifBuffer.h:78
void vSetKb(const Eref &e, double value)
Definition: DifBuffer.cpp:206
double Bf_
Definition: DifBuffer.h:75
double vGetThickness(const Eref &e) const
Definition: DifBuffer.cpp:289
double volume_
Definition: DifBuffer.h:90
double vGetDiameter(const Eref &e) const
Definition: DifBuffer.cpp:273
void vSetD(const Eref &e, double value)
Definition: DifBuffer.cpp:220
double vGetKb(const Eref &e) const
Definition: DifBuffer.cpp:201
double Af_
Definition: DifBuffer.h:74
Definition: Eref.h:26
void vSetShapeMode(const Eref &e, unsigned int shapeMode)
Definition: DifBuffer.cpp:231
void vSetActivation(const Eref &e, double value)
Definition: DifBuffer.cpp:116
void vSetThickness(const Eref &e, double thickness)
Definition: DifBuffer.cpp:278
double vGetBTot(const Eref &e) const
Definition: DifBuffer.cpp:169
void vReinit(const Eref &e, ProcPtr p)
Definition: DifBuffer.cpp:447
double vGetBFree(const Eref &e) const
Definition: DifBuffer.cpp:126
void vSetVolume(const Eref &e, double volume)
Definition: DifBuffer.cpp:294
double bBound_
Definition: DifBuffer.h:77
double diameter_
Definition: DifBuffer.h:88
double bTot_
Definition: DifBuffer.h:82
void vFluxFromOut(const Eref &e, double outerC, double outerThickness)
Definition: DifBuffer.cpp:513
void vSetInnerArea(const Eref &e, double innerArea)
Definition: DifBuffer.cpp:330
static const double EPSILON
Definition: DifBuffer.h:93
unsigned int shapeMode_
Definition: DifBuffer.h:86
double outerArea_
Definition: DifBuffer.h:91
double thickness_
Definition: DifBuffer.h:89
double vGetActivation(const Eref &e) const
Definition: DifBuffer.cpp:111
void vSetBBound(const Eref &e, double value)
Definition: DifBuffer.cpp:152
double vGetD(const Eref &e) const
Definition: DifBuffer.cpp:215
Definition: Cinfo.h:18
double bFree_
Definition: DifBuffer.h:76
void calculateVolumeArea(const Eref &e)
Definition: DifBuffer.cpp:367