MOOSE - Multiscale Object Oriented Simulation Environment
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DifShellBase.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_BASE_H
12 #define _DIFSHELL_BASE_H
13 /*This is base class for DifShell*/
14 
16 {
17  public:
18  DifShellBase();
20  // Dest functions
22  void reinit( const Eref & e, ProcPtr p );
23  void process(const Eref & e, ProcPtr p );
24  void buffer( const Eref& e, double kf, double kb, double bFree, double bBound );
25  void fluxFromOut(const Eref& e, double outerC, double outerThickness );
26  void fluxFromIn(const Eref& e, double innerC, double innerThickness );
27  void influx(const Eref& e, double I );
28  void outflux(const Eref& e, double I );
29  void fInflux(const Eref& e, double I, double fraction );
30  void fOutflux(const Eref& e, double I, double fraction );
31  void storeInflux(const Eref& e, double flux );
32  void storeOutflux(const Eref& e, double flux );
33  void tauPump(const Eref& e, double kP, double Ceq );
34  void eqTauPump(const Eref& e, double kP );
35  void mmPump(const Eref& e, double vMax, double Kd );
36  void hillPump(const Eref& e, double vMax, double Kd, unsigned int hill);
37 
38  virtual void vReinit(const Eref & e, ProcPtr p ) = 0;
39  virtual void vProcess(const Eref & e, ProcPtr p ) = 0;
40  virtual void vBuffer(const Eref& e, double kf, double kb, double bFree, double bBound ) = 0;
41  virtual void vFluxFromOut(const Eref& e, double outerC, double outerThickness ) = 0;
42  virtual void vFluxFromIn(const Eref& e, double innerC, double innerThickness ) = 0;
43  virtual void vInflux(const Eref& e, double I ) = 0;
44  virtual void vOutflux(const Eref& e, double I ) = 0;
45  virtual void vFInflux(const Eref& e, double I, double fraction ) = 0;
46  virtual void vFOutflux(const Eref& e, double I, double fraction ) = 0;
47  virtual void vStoreInflux(const Eref& e, double flux ) = 0;
48  virtual void vStoreOutflux(const Eref& e, double flux ) = 0;
49  virtual void vTauPump(const Eref& e, double kP, double Ceq ) = 0;
50  virtual void vEqTauPump(const Eref& e, double kP ) = 0;
51  virtual void vMMPump(const Eref& e, double vMax, double Kd ) = 0;
52  virtual void vHillPump(const Eref& e, double vMax, double Kd, unsigned int hill ) = 0;
54  // Field access functions
56 
57  void setC(const Eref& e,double C);
58  double getC( const Eref& e) const;
59 
60  void setCeq(const Eref& e,double Ceq );
61  double getCeq(const Eref& e) const;
62 
63  void setD(const Eref& e, double D );
64  double getD(const Eref& e) const;
65 
66  void setValence(const Eref& e, double valence );
67  double getValence(const Eref& e) const;
68 
69  void setLeak(const Eref& e, double leak );
70  double getLeak(const Eref& e) const;
71 
72  void setShapeMode(const Eref& e, unsigned int shapeMode );
73  unsigned int getShapeMode(const Eref& e) const;
74 
75  void setLength(const Eref& e, double length );
76  double getLength(const Eref& e) const;
77 
78  void setDiameter(const Eref& e, double diameter );
79  double getDiameter(const Eref& e) const;
80 
81  void setThickness(const Eref& e, double thickness );
82  double getThickness(const Eref& e) const;
83 
84  void setVolume(const Eref& e, double volume );
85  double getVolume(const Eref& e) const;
86 
87  void setOuterArea(const Eref& e, double outerArea );
88  double getOuterArea(const Eref& e) const;
89 
90  void setInnerArea(const Eref& e, double innerArea );
91  double getInnerArea(const Eref& e) const;
92 
93  virtual void vSetC(const Eref& e,double C) = 0;
94  virtual double vGetC( const Eref& e) const = 0;
95 
96  virtual void vSetCeq(const Eref& e,double Ceq ) = 0;
97  virtual double vGetCeq(const Eref& e) const = 0;
98 
99  virtual void vSetD(const Eref& e, double D ) = 0;
100  virtual double vGetD(const Eref& e) const = 0;
101 
102  virtual void vSetValence(const Eref& e, double valence ) = 0;
103  virtual double vGetValence(const Eref& e) const = 0;
104 
105  virtual void vSetLeak(const Eref& e, double leak ) = 0;
106  virtual double vGetLeak(const Eref& e) const = 0;
107 
108  virtual void vSetShapeMode(const Eref& e, unsigned int shapeMode ) = 0;
109  virtual unsigned int vGetShapeMode(const Eref& e) const = 0;
110 
111  virtual void vSetLength(const Eref& e, double length ) = 0;
112  virtual double vGetLength(const Eref& e) const = 0;
113 
114  virtual void vSetDiameter(const Eref& e, double diameter ) = 0;
115  virtual double vGetDiameter(const Eref& e) const = 0;
116 
117  virtual void vSetThickness(const Eref& e, double thickness ) = 0;
118  virtual double vGetThickness(const Eref& e) const = 0;
119 
120  virtual void vSetVolume(const Eref& e, double volume ) = 0;
121  virtual double vGetVolume(const Eref& e) const = 0;
122 
123  virtual void vSetOuterArea(const Eref& e, double outerArea ) = 0;
124  virtual double vGetOuterArea(const Eref& e) const = 0;
125 
126  virtual void vSetInnerArea(const Eref& e, double innerArea ) = 0;
127  virtual double vGetInnerArea(const Eref& e) const = 0;
128 
129 
130 
134  static const Cinfo * initCinfo();
135 
136  private:
137 
138 
139 
140 };
141 
142 #endif //_DIFSHELL_BASE_H
void setLeak(const Eref &e, double leak)
virtual void vSetShapeMode(const Eref &e, unsigned int shapeMode)=0
static const Cinfo * initCinfo()
void setThickness(const Eref &e, double thickness)
virtual double vGetD(const Eref &e) const =0
virtual void vFOutflux(const Eref &e, double I, double fraction)=0
void buffer(const Eref &e, double kf, double kb, double bFree, double bBound)
void setOuterArea(const Eref &e, double outerArea)
virtual void vTauPump(const Eref &e, double kP, double Ceq)=0
double getLeak(const Eref &e) const
void setInnerArea(const Eref &e, double innerArea)
virtual void vStoreOutflux(const Eref &e, double flux)=0
void influx(const Eref &e, double I)
virtual void vSetInnerArea(const Eref &e, double innerArea)=0
double getInnerArea(const Eref &e) const
virtual void vMMPump(const Eref &e, double vMax, double Kd)=0
double getD(const Eref &e) const
virtual void vSetCeq(const Eref &e, double Ceq)=0
virtual void vInflux(const Eref &e, double I)=0
virtual void vSetLeak(const Eref &e, double leak)=0
double getDiameter(const Eref &e) const
static SrcFinfo1< double > * concentrationOut()
double getLength(const Eref &e) const
void storeInflux(const Eref &e, double flux)
virtual double vGetC(const Eref &e) const =0
double getThickness(const Eref &e) const
void fOutflux(const Eref &e, double I, double fraction)
void setValence(const Eref &e, double valence)
virtual double vGetVolume(const Eref &e) const =0
double getValence(const Eref &e) const
void setVolume(const Eref &e, double volume)
virtual void vBuffer(const Eref &e, double kf, double kb, double bFree, double bBound)=0
virtual void vStoreInflux(const Eref &e, double flux)=0
virtual double vGetInnerArea(const Eref &e) const =0
void setCeq(const Eref &e, double Ceq)
void eqTauPump(const Eref &e, double kP)
void setC(const Eref &e, double C)
void fluxFromIn(const Eref &e, double innerC, double innerThickness)
virtual void vSetValence(const Eref &e, double valence)=0
virtual void vSetDiameter(const Eref &e, double diameter)=0
void hillPump(const Eref &e, double vMax, double Kd, unsigned int hill)
virtual double vGetLeak(const Eref &e) const =0
virtual void vHillPump(const Eref &e, double vMax, double Kd, unsigned int hill)=0
virtual void vFluxFromOut(const Eref &e, double outerC, double outerThickness)=0
virtual void vSetC(const Eref &e, double C)=0
void setShapeMode(const Eref &e, unsigned int shapeMode)
void process(const Eref &e, ProcPtr p)
void setDiameter(const Eref &e, double diameter)
static SrcFinfo2< double, double > * innerDifSourceOut()
double getC(const Eref &e) const
double getVolume(const Eref &e) const
Definition: Eref.h:26
virtual unsigned int vGetShapeMode(const Eref &e) const =0
void setLength(const Eref &e, double length)
void tauPump(const Eref &e, double kP, double Ceq)
virtual double vGetCeq(const Eref &e) const =0
virtual void vOutflux(const Eref &e, double I)=0
void outflux(const Eref &e, double I)
virtual double vGetValence(const Eref &e) const =0
virtual void vSetVolume(const Eref &e, double volume)=0
virtual double vGetThickness(const Eref &e) const =0
void mmPump(const Eref &e, double vMax, double Kd)
virtual void vSetOuterArea(const Eref &e, double outerArea)=0
virtual void vSetLength(const Eref &e, double length)=0
void reinit(const Eref &e, ProcPtr p)
void storeOutflux(const Eref &e, double flux)
virtual double vGetOuterArea(const Eref &e) const =0
void fluxFromOut(const Eref &e, double outerC, double outerThickness)
static SrcFinfo2< double, double > * outerDifSourceOut()
virtual void vFInflux(const Eref &e, double I, double fraction)=0
virtual void vSetD(const Eref &e, double D)=0
virtual void vFluxFromIn(const Eref &e, double innerC, double innerThickness)=0
virtual double vGetDiameter(const Eref &e) const =0
virtual void vReinit(const Eref &e, ProcPtr p)=0
double getOuterArea(const Eref &e) const
unsigned int getShapeMode(const Eref &e) const
double getCeq(const Eref &e) const
Definition: Cinfo.h:18
virtual void vProcess(const Eref &e, ProcPtr p)=0
virtual void vSetThickness(const Eref &e, double thickness)=0
virtual void vEqTauPump(const Eref &e, double kP)=0
virtual double vGetLength(const Eref &e) const =0
void setD(const Eref &e, double D)
void fInflux(const Eref &e, double I, double fraction)