MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DifShell.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 
11 #ifndef _DIFSHELL_H
12 #define _DIFSHELL_H
13 
14 class DifShell: public DifShellBase{
15  public:
16  DifShell();
17 
19  // Dest functions
21  void vReinit( const Eref & e, ProcPtr p );
22  void vProcess(const Eref & e, ProcPtr p );
23  void vBuffer(const Eref& e, double kf, double kb, double bFree, double bBound );
24  void vFluxFromOut(const Eref& e, double outerC, double outerThickness );
25  void vFluxFromIn(const Eref& e, double innerC, double innerThickness );
26  void vInflux(const Eref& e, double I );
27  void vOutflux(const Eref& e, double I );
28  void vFInflux(const Eref& e, double I, double fraction );
29  void vFOutflux(const Eref& e, double I, double fraction );
30  void vStoreInflux(const Eref& e, double flux );
31  void vStoreOutflux(const Eref& e, double flux );
32  void vTauPump(const Eref& e, double kP, double Ceq );
33  void vEqTauPump(const Eref& e, double kP );
34  void vMMPump(const Eref& e, double vMax, double Kd );
35  void vHillPump(const Eref& e, double vMax, double Kd, unsigned int hill );
36 
38  // Field access functions
40 
41  void vSetC(const Eref& e,double C);
42  double vGetC( const Eref& e) const;
43 
44  void vSetCeq(const Eref& e,double Ceq );
45  double vGetCeq(const Eref& e) const;
46 
47  void vSetD(const Eref& e, double D );
48  double vGetD(const Eref& e) const;
49 
50  void vSetValence(const Eref& e, double valence );
51  double vGetValence(const Eref& e) const;
52 
53  void vSetLeak(const Eref& e, double leak );
54  double vGetLeak(const Eref& e) const;
55 
56  void vSetShapeMode(const Eref& e, unsigned int shapeMode );
57  unsigned int vGetShapeMode(const Eref& e) const;
58 
59  void vSetLength(const Eref& e, double length );
60  double vGetLength(const Eref& e) const;
61 
62  void vSetDiameter(const Eref& e, double diameter );
63  double vGetDiameter(const Eref& e) const;
64 
65  void vSetThickness(const Eref& e, double thickness );
66  double vGetThickness(const Eref& e) const;
67 
68  void vSetVolume(const Eref& e, double volume );
69  double vGetVolume(const Eref& e) const;
70 
71  void vSetOuterArea(const Eref& e, double outerArea );
72  double vGetOuterArea(const Eref& e) const;
73 
74  void vSetInnerArea(const Eref& e, double innerArea );
75  double vGetInnerArea(const Eref& e) const;
76 
77  void calculateVolumeArea(const Eref& e);
78 
79  static const Cinfo * initCinfo();
80 
81 
82  private:
83 
84  double integrate( double state, double dt, double A, double B );
85 
86  double dCbyDt_;
87  double Cmultiplier_;
88  double C_;
89  double Ceq_;
90  double prevC_;
91  double D_;
92  double valence_;
93  double leak_;
94  unsigned int shapeMode_;
95  double length_;
96  double diameter_;
97  double thickness_;
98  double volume_;
99  double outerArea_;
100  double innerArea_;
101 
102  static const double EPSILON;
104  static const double F;
105 
106 };
107 
108 #endif // _DIFSHELL_H
void vSetThickness(const Eref &e, double thickness)
Definition: DifShell.cpp:200
void vSetLength(const Eref &e, double length)
Definition: DifShell.cpp:168
void vSetDiameter(const Eref &e, double diameter)
Definition: DifShell.cpp:184
void vSetD(const Eref &e, double D)
Definition: DifShell.cpp:112
double leak_
Definition: DifShell.h:93
void vEqTauPump(const Eref &e, double kP)
Definition: DifShell.cpp:459
double valence_
Definition: DifShell.h:92
double dCbyDt_
Definition: DifShell.h:86
static const Cinfo * initCinfo()
Definition: DifShell.cpp:19
void vInflux(const Eref &e, double I)
Definition: DifShell.cpp:410
void vHillPump(const Eref &e, double vMax, double Kd, unsigned int hill)
Definition: DifShell.cpp:471
double innerArea_
Definition: DifShell.h:100
double vGetC(const Eref &e) const
Definition: DifShell.cpp:90
void vFOutflux(const Eref &e, double I, double fraction)
Definition: DifShell.cpp:434
unsigned int vGetShapeMode(const Eref &e) const
Definition: DifShell.cpp:163
void vSetShapeMode(const Eref &e, unsigned int shapeMode)
Definition: DifShell.cpp:153
void vFInflux(const Eref &e, double I, double fraction)
Definition: DifShell.cpp:429
double integrate(double state, double dt, double A, double B)
Definition: DifShell.cpp:275
static const double F
Faraday's constant (Coulomb / Mole)
Definition: DifShell.h:104
void vProcess(const Eref &e, ProcPtr p)
Definition: DifShell.cpp:348
double outerArea_
Definition: DifShell.h:99
void vReinit(const Eref &e, ProcPtr p)
Definition: DifShell.cpp:334
void vTauPump(const Eref &e, double kP, double Ceq)
Definition: DifShell.cpp:449
double Ceq_
Definition: DifShell.h:89
double vGetValence(const Eref &e) const
Definition: DifShell.cpp:137
double thickness_
Definition: DifShell.h:97
void vSetLeak(const Eref &e, double leak)
Definition: DifShell.cpp:142
void vSetVolume(const Eref &e, double volume)
Definition: DifShell.cpp:216
void vFluxFromOut(const Eref &e, double outerC, double outerThickness)
Definition: DifShell.cpp:386
void vSetValence(const Eref &e, double valence)
Definition: DifShell.cpp:127
void vFluxFromIn(const Eref &e, double innerC, double innerThickness)
Definition: DifShell.cpp:400
void vSetC(const Eref &e, double C)
C is a read-only field.
Definition: DifShell.cpp:80
void vBuffer(const Eref &e, double kf, double kb, double bFree, double bBound)
Definition: DifShell.cpp:376
void vMMPump(const Eref &e, double vMax, double Kd)
Definition: DifShell.cpp:465
Definition: Eref.h:26
double prevC_
Definition: DifShell.h:90
double vGetDiameter(const Eref &e) const
Definition: DifShell.cpp:195
double vGetVolume(const Eref &e) const
Definition: DifShell.cpp:229
DifShell()
Faraday's constant (Coulomb / Mole)
Definition: DifShell.cpp:56
static const double EPSILON
Definition: DifShell.h:102
double vGetThickness(const Eref &e) const
Definition: DifShell.cpp:211
double vGetLength(const Eref &e) const
Definition: DifShell.cpp:179
double C_
Definition: DifShell.h:88
double Cmultiplier_
Definition: DifShell.h:87
void vStoreInflux(const Eref &e, double flux)
Definition: DifShell.cpp:439
void vSetInnerArea(const Eref &e, double innerArea)
Definition: DifShell.cpp:252
void vStoreOutflux(const Eref &e, double flux)
Definition: DifShell.cpp:444
double vGetInnerArea(const Eref &e) const
Definition: DifShell.cpp:265
double vGetOuterArea(const Eref &e) const
Definition: DifShell.cpp:247
double D_
Definition: DifShell.h:91
double vGetLeak(const Eref &e) const
Definition: DifShell.cpp:147
void calculateVolumeArea(const Eref &e)
Definition: DifShell.cpp:285
void vOutflux(const Eref &e, double I)
Definition: DifShell.cpp:424
void vSetCeq(const Eref &e, double Ceq)
Definition: DifShell.cpp:95
double volume_
Definition: DifShell.h:98
double length_
Definition: DifShell.h:95
double diameter_
Definition: DifShell.h:96
unsigned int shapeMode_
Definition: DifShell.h:94
double vGetD(const Eref &e) const
Definition: DifShell.cpp:122
void vSetOuterArea(const Eref &e, double outerArea)
Definition: DifShell.cpp:234
Definition: Cinfo.h:18
double vGetCeq(const Eref &e) const
Definition: DifShell.cpp:107