18 "Sends out concentration");
24 "Sends out source information.");
30 "Sends out source information.");
38 "Handles process call",
41 "Reinit happens only in stage 0",
44 static Finfo* processShared[] = {
50 "Shared message to receive Process message from scheduler",
51 processShared,
sizeof( processShared ) /
sizeof(
Finfo* ));
57 "Here the DifShell receives reaction rates (forward and backward), and concentrations for the "
58 "free-buffer and bound-buffer molecules.",
61 static Finfo* bufferShared[] = {
66 "This is a shared message from a DifShell to a Buffer (FixBuffer or DifBuffer). " ,
68 sizeof( bufferShared ) /
sizeof(
Finfo* ));
75 "Destination message",
78 static Finfo* innerDifShared[] = {
82 "This shared message (and the next) is between DifShells: adjoining shells exchange information to "
83 "find out the flux between them. "
84 "Using this message, an inner shell sends to, and receives from its outer shell." ,
86 sizeof( innerDifShared ) /
sizeof(
Finfo* ));
91 static Finfo* outerDifShared[] = {
96 "Using this message, an outer shell sends to, and receives from its inner shell." ,
98 sizeof( outerDifShared ) /
sizeof(
Finfo* ));
138 static DestFinfo mmPump(
"mmPump",
"Here DifShell receives pump outflux",
158 static Finfo* difShellBaseFinfos[] = {
203 static string doc[] =
205 "Name",
"DifShellBase",
206 "Author",
"Niraj Dudani. Ported to async13 by Subhasis Ray/Asia Jedrzejewska-Szmek",
207 "Description",
"DifShell object: Models diffusion of an ion (typically calcium) within an "
208 "electric compartment. A DifShell is an iso-concentration region with respect to "
209 "the ion. Adjoining DifShells exchange flux of this ion, and also keep track of "
210 "changes in concentration due to pumping, buffering and channel currents, by "
211 "talking to the appropriate objects.",
219 sizeof( difShellBaseFinfos ) /
sizeof(
Finfo* ),
222 sizeof( doc ) /
sizeof(
string ));
373 vBuffer( e, kf, kb, bFree, bBound );
378 double outerThickness )
386 double innerThickness )
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
static const Cinfo * difShellBaseCinfo
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
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
static const Cinfo * initCinfo()
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
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)