#include <Compartment.h>
Public Member Functions | |
Compartment () | |
virtual | ~Compartment () |
virtual void | vSetVm (const Eref &e, double Vm) |
virtual double | vGetVm (const Eref &e) const |
virtual void | vSetEm (const Eref &e, double Em) |
virtual double | vGetEm (const Eref &e) const |
virtual void | vSetCm (const Eref &e, double Cm) |
virtual double | vGetCm (const Eref &e) const |
virtual void | vSetRm (const Eref &e, double Rm) |
virtual double | vGetRm (const Eref &e) const |
virtual void | vSetRa (const Eref &e, double Ra) |
virtual double | vGetRa (const Eref &e) const |
virtual double | vGetIm (const Eref &e) const |
virtual void | vSetInject (const Eref &e, double Inject) |
virtual double | vGetInject (const Eref &e) const |
virtual void | vSetInitVm (const Eref &e, double initVm) |
virtual double | vGetInitVm (const Eref &e) const |
void | vProcess (const Eref &e, ProcPtr p) |
void | vReinit (const Eref &e, ProcPtr p) |
void | vInitProc (const Eref &e, ProcPtr p) |
void | vInitReinit (const Eref &e, ProcPtr p) |
void | vHandleChannel (const Eref &e, double Gk, double Ek) |
void | vHandleRaxial (double Ra, double Vm) |
void | vHandleAxial (double Vm) |
void | vInjectMsg (const Eref &e, double current) |
void | vRandInject (const Eref &e, double prob, double current) |
void | cable () |
Static Public Member Functions | |
static const Cinfo * | initCinfo () |
Protected Attributes | |
double | Vm_ |
double | initVm_ |
double | Em_ |
double | Cm_ |
double | Rm_ |
double | Ra_ |
double | Im_ |
double | lastIm_ |
double | inject_ |
double | A_ |
double | B_ |
double | sumInject_ |
Compartment::Compartment | ( | ) |
Compartment::~Compartment | ( | ) | [virtual] |
void moose::Compartment::cable | ( | ) |
Dummy function to act as recipient of 'cable' message, which is just for grouping compartments.
Reimplemented from moose::CompartmentBase.
const Cinfo * Compartment::initCinfo | ( | ) | [static] |
Initializes the class info.
The initCinfo() function sets up the Compartment class. This function uses the common trick of having an internal static value which is created the first time the function is called. There are several static arrays set up here. The ones which use SharedFinfos are for shared messages where multiple kinds of information go along the same connection.
Reimplemented from moose::CompartmentBase.
Reimplemented in SymCompartment.
References moose::CompartmentBase::initCinfo().
Referenced by SymCompartment::initCinfo().
double Compartment::vGetCm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References Cm_.
double Compartment::vGetEm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References Em_.
double Compartment::vGetIm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References lastIm_.
double Compartment::vGetInitVm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References initVm_.
double Compartment::vGetInject | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References inject_.
double Compartment::vGetRa | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References Ra_.
double Compartment::vGetRm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References Rm_.
double Compartment::vGetVm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References Vm_.
void Compartment::vHandleAxial | ( | double | Vm | ) | [virtual] |
void Compartment::vHandleChannel | ( | const Eref & | e, | |
double | Gk, | |||
double | Ek | |||
) | [virtual] |
handleChannel handles information coming from the channel to the compartment
Implements moose::CompartmentBase.
void Compartment::vHandleRaxial | ( | double | Ra, | |
double | Vm | |||
) | [virtual] |
handleRaxial handles incoming raxial message data.
Implements moose::CompartmentBase.
The initProc function is for a second phase of 'process' operations. It sends the axial and raxial messages to other compartments. It has to be executed out of phase with the main process so that all compartments are equivalent and there is no calling order dependence in the results.
Implements moose::CompartmentBase.
Reimplemented in SymCompartment.
References Ra_, SrcFinfo2< T1, T2 >::send(), SrcFinfo1< T >::send(), and Vm_.
Empty function to do another reinit step out of phase with the main one. Nothing needs doing there.
Implements moose::CompartmentBase.
Reimplemented in SymCompartment.
void Compartment::vInjectMsg | ( | const Eref & | e, | |
double | current | |||
) | [virtual] |
Injects a constantly updated current into the compartment. Unlike the 'inject' field, this injected current is applicable only for a single timestep. So this is meant to be used as the destination of a message rather than as a one-time assignment.
Implements moose::CompartmentBase.
References Im_, and sumInject_.
The process function does the object updating and sends out messages to channels, nernsts, and so on.
Implements moose::CompartmentBase.
References A_, B_, Cm_, ProcInfo::dt, Em_, Im_, inject_, lastIm_, sumInject_, Vm_, and moose::CompartmentBase::VmOut().
void Compartment::vRandInject | ( | const Eref & | e, | |
double | prob, | |||
double | current | |||
) | [virtual] |
Injects a constantly updated current into the compartment, with a probability prob. Note that it isn't the current amplitude that is random, it is the presence or absence of the current that is probabilistic.
Implements moose::CompartmentBase.
References Im_, mtrand(), and sumInject_.
The reinit function reinitializes all fields.
Implements moose::CompartmentBase.
Reimplemented in SymCompartment.
References A_, B_, ProcInfo::dt, Im_, initVm_, lastIm_, sumInject_, Vm_, and moose::CompartmentBase::VmOut().
void Compartment::vSetCm | ( | const Eref & | e, | |
double | Cm | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Cm_, and moose::CompartmentBase::rangeWarning().
void Compartment::vSetEm | ( | const Eref & | e, | |
double | Em | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Em_.
void Compartment::vSetInitVm | ( | const Eref & | e, | |
double | initVm | |||
) | [virtual] |
Implements moose::CompartmentBase.
References initVm_.
void Compartment::vSetInject | ( | const Eref & | e, | |
double | Inject | |||
) | [virtual] |
Implements moose::CompartmentBase.
References inject_.
void Compartment::vSetRa | ( | const Eref & | e, | |
double | Ra | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Ra_, and moose::CompartmentBase::rangeWarning().
void Compartment::vSetRm | ( | const Eref & | e, | |
double | Rm | |||
) | [virtual] |
Implements moose::CompartmentBase.
References moose::CompartmentBase::rangeWarning(), and Rm_.
void Compartment::vSetVm | ( | const Eref & | e, | |
double | Vm | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Vm_.
double moose::Compartment::A_ [protected] |
double moose::Compartment::B_ [protected] |
double moose::Compartment::Cm_ [protected] |
Referenced by Compartment(), vGetCm(), vProcess(), and vSetCm().
double moose::Compartment::Em_ [protected] |
Referenced by Compartment(), vGetEm(), vProcess(), and vSetEm().
double moose::Compartment::Im_ [protected] |
double moose::Compartment::initVm_ [protected] |
Referenced by Compartment(), vGetInitVm(), vReinit(), and vSetInitVm().
double moose::Compartment::inject_ [protected] |
Referenced by Compartment(), vGetInject(), vProcess(), and vSetInject().
double moose::Compartment::lastIm_ [protected] |
Referenced by Compartment(), vGetIm(), vProcess(), and vReinit().
double moose::Compartment::Ra_ [protected] |
double moose::Compartment::Rm_ [protected] |
Referenced by Compartment(), vGetRm(), and vSetRm().
double moose::Compartment::sumInject_ [protected] |
Referenced by Compartment(), vInjectMsg(), vProcess(), vRandInject(), and vReinit().
double moose::Compartment::Vm_ [protected] |