00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _DifShell_h
00012 #define _DifShell_h
00013
00014 class DifShell
00015 {
00016 public:
00017 DifShell();
00018
00020
00022 double getC( ) const;
00023
00024 void setCeq(double Ceq );
00025 double getCeq() const;
00026
00027 void setD( double D );
00028 double getD() const;
00029
00030 void setValence( double valence );
00031 double getValence() const;
00032
00033 void setLeak( double leak );
00034 double getLeak() const;
00035
00036 void setShapeMode( unsigned int shapeMode );
00037 unsigned int getShapeMode() const;
00038
00039 void setLength( double length );
00040 double getLength() const;
00041
00042 void setDiameter( double diameter );
00043 double getDiameter() const;
00044
00045 void setThickness( double thickness );
00046 double getThickness() const;
00047
00048 void setVolume( double volume );
00049 double getVolume() const;
00050
00051 void setOuterArea( double outerArea );
00052 double getOuterArea() const;
00053
00054 void setInnerArea( double innerArea );
00055 double getInnerArea() const;
00056
00058
00060 void reinit_0( const Eref & e, ProcPtr p );
00061
00062 void process_0(const Eref & e, ProcPtr p );
00063
00064 void process_1(const Eref & e, ProcPtr p );
00065
00066 void reinit_1(const Eref & e, ProcPtr p );
00067
00068 void buffer(
00069 double kf,
00070 double kb,
00071 double bFree,
00072 double bBound );
00073
00074 void fluxFromOut(
00075 double outerC,
00076 double outerThickness );
00077
00078 void fluxFromIn(
00079 double innerC,
00080 double innerThickness );
00081
00082 void influx(
00083 double I );
00084
00085 void outflux(
00086 double I );
00087
00088 void fInflux(
00089 double I,
00090 double fraction );
00091
00092 void fOutflux(
00093 double I,
00094 double fraction );
00095
00096 void storeInflux(
00097 double flux );
00098
00099 void storeOutflux(
00100 double flux );
00101
00102 void tauPump(
00103 double kP,
00104 double Ceq );
00105
00106 void eqTauPump(
00107 double kP );
00108
00109 void mmPump(
00110 double vMax,
00111 double Kd );
00112
00113 void hillPump(
00114 double vMax,
00115 double Kd,
00116 unsigned int hill );
00117
00118 static const Cinfo * initCinfo();
00119
00120 private:
00121 void localReinit_0( const Eref & e, ProcPtr p );
00122 void localProcess_0( const Eref & e, ProcPtr p );
00123 void localProcess_1( const Eref & e, ProcPtr p );
00124 void localBuffer( double kf, double kb, double bFree, double bBound );
00125 void localFluxFromOut( double outerC, double outerThickness );
00126 void localFluxFromIn( double innerC, double innerThickness );
00127 void localInflux( double I );
00128 void localOutflux( double I );
00129 void localFInflux( double I, double fraction );
00130 void localFOutflux( double I, double fraction );
00131 void localStoreInflux( double flux );
00132 void localStoreOutflux( double flux );
00133 void localTauPump( double kP, double Ceq );
00134 void localEqTauPump( double kP );
00135 void localMMPump( double vMax, double Kd );
00136 void localHillPump( double vMax, double Kd, unsigned int hill );
00137
00138 double dCbyDt_;
00139 double C_;
00140 double Ceq_;
00141 double D_;
00142 double valence_;
00143 double leak_;
00144 unsigned int shapeMode_;
00145 double length_;
00146 double diameter_;
00147 double thickness_;
00148 double volume_;
00149 double outerArea_;
00150 double innerArea_;
00151
00153 static const double F_;
00154 };
00155
00156 #endif // _DifShell_h