26 "Number of molecules in pool",
33 "Initial value of number of molecules in pool",
40 "Diffusion constant of molecule",
47 "Motor transport rate molecule. + is away from soma, - is "
48 "towards soma. Only relevant for ZombiePool subclasses.",
55 "Concentration of molecules in this pool",
62 "Initial value of molecular concentration in pool",
69 "Volume of compartment. Units are SI. "
70 "Utility field, the actual volume info is "
71 "stored on a volume mesh entry in the parent compartment."
72 "This mapping is implicit: the parent compartment must be "
73 "somewhere up the element tree, and must have matching mesh "
74 "entries. If the compartment isn't"
75 "available the volume is just taken as 1",
82 "Species identifier for this mol pool. Eventually link to ontology.",
89 "Flag: True if Pool is buffered. "
90 "In the case of Pool and BufPool the field can be assigned, to "
91 "change the type of the Pool object to BufPool, or vice versa. "
92 "None of the messages are affected. "
93 "This object class flip can only be done in the non-zombified "
94 "form of the Pool/BufPool. In Zombies it is read-only.",
103 "Handles process call",
106 "Handles reinit call",
110 "Handles reaction input",
115 "Separate finfo to assign molWt, and consequently diffusion const."
116 "Should only be used in SharedMsg with species.",
124 "Increments mol numbers by specified amount. Can be +ve or -ve",
129 "Decrements mol numbers by specified amount. Can be +ve or -ve",
134 "Assigns the number of molecules in Pool to specified value",
144 "Sends out # of molecules in pool on each timestep"
149 "Requests Species object for mol wt"
155 static Finfo* reacShared[] =
160 "Connects to reaction",
161 reacShared,
sizeof( reacShared ) /
sizeof(
const Finfo* )
163 static Finfo* procShared[] =
168 "Shared message for process and reinit",
169 procShared,
sizeof( procShared ) /
sizeof(
const Finfo* )
172 static Finfo* speciesShared[] =
174 &requestMolWt, &handleMolWt
178 "Shared message for connecting to species objects",
179 speciesShared,
sizeof( speciesShared ) /
sizeof (
const Finfo* )
182 static Finfo* poolFinfos[] =
201 static string doc[] =
204 "Author",
"Upi Bhalla",
205 "Description",
"Abstract base class for pools."
212 sizeof( poolFinfos ) /
sizeof (
Finfo* ),
215 sizeof( doc )/
sizeof(
string ),
431 Id ksolve,
Id dsolve )
433 if ( orig->
cinfo() == zClass )
439 vector< unsigned int > species( num, 0 );
440 vector< double > concInit( num, 0.0 );
441 vector< double > diffConst( num, 0.0 );
442 vector< double > motorConst( num, 0.0 );
443 for (
unsigned int i = 0; i < num; ++i )
445 Eref er( orig, i + start );
454 for (
unsigned int i = 0; i < num; ++i )
456 Eref er( orig, i + start );
virtual SpeciesId vGetSpecies(const Eref &e) const =0
virtual void vSetVolume(const Eref &e, double v)=0
void setVolume(const Eref &e, double v)
SpeciesId getSpecies(const Eref &e) const
void handleMolWt(const Eref &e, double v)
void setConc(const Eref &e, double v)
virtual void vHandleMolWt(const Eref &e, double v)
static const Cinfo * initCinfo()
virtual void vDecrement(double val)
void setConcInit(const Eref &e, double v)
virtual void zombieSwap(const Cinfo *zCinfo)
virtual func, this base version must be called by all derived classes
double getMotorConst(const Eref &e) const
virtual void vSetMotorConst(const Eref &e, double v)
Dummy MotorConst field for most Pool subclasses.
void setDiffConst(const Eref &e, double v)
const SpeciesId DefaultSpeciesId
virtual void vSetSpecies(const Eref &e, SpeciesId v)=0
virtual double vGetVolume(const Eref &e) const =0
static void zombify(Element *original, const Cinfo *zClass, Id ksolve, Id dsolve)
virtual double vGetDiffConst(const Eref &e) const =0
double getConc(const Eref &e) const
virtual void vSetConcInit(const Eref &e, double v)=0
virtual double vGetConcInit(const Eref &e) const
virtual void vIncrement(double val)
void setNinit(const Eref &e, double v)
double getVolume(const Eref &e) const
virtual double vGetN(const Eref &e) const =0
virtual void vReac(double A, double B)
virtual void vSetConc(const Eref &e, double v)=0
virtual void vReinit(const Eref &e, ProcPtr p)
void reinit(const Eref &e, ProcPtr p)
virtual double vGetMotorConst(const Eref &e) const
const SrcFinfo1< double > & nOut
virtual void vSetDiffConst(const Eref &e, double v)=0
const Cinfo * cinfo() const
virtual double vGetConc(const Eref &e) const =0
void decrement(double val)
virtual unsigned int localDataStart() const =0
Returns index of first data entry on this node.
virtual unsigned int numLocalData() const =0
Returns number of local data entries on this node.
void setIsBuffered(const Eref &e, bool v)
double getConcInit(const Eref &e) const
void increment(double val)
void setMotorConst(const Eref &e, double v)
void reac(double A, double B)
virtual double vGetNinit(const Eref &e) const =0
static const Cinfo * poolCinfo
virtual void vSetNinit(const Eref &e, double v)=0
static const Cinfo * initCinfo()
double getNinit(const Eref &e) const
virtual bool vGetIsBuffered(const Eref &e) const =0
bool getIsBuffered(const Eref &e) const
double getDiffConst(const Eref &e) const
virtual void vSetSolver(Id ksolve, Id dsolve)
virtual void vProcess(const Eref &e, ProcPtr p)
virtual void vSetN(const Eref &e, double v)=0
virtual void vSetIsBuffered(const Eref &e, bool v)
I put in a default empty function for vSetIsBuffered.
double getN(const Eref &e) const
void process(const Eref &e, ProcPtr p)
double lookupVolumeFromMesh(const Eref &e)
void setSpecies(const Eref &e, SpeciesId v)
virtual void vnIn(double val)
void setN(const Eref &e, double v)