#include <ZombieCompartment.h>
Public Member Functions | |
ZombieCompartment () | |
virtual | ~ZombieCompartment () |
void | vSetVm (const Eref &e, double Vm) |
double | vGetVm (const Eref &e) const |
void | vSetEm (const Eref &e, double Em) |
double | vGetEm (const Eref &e) const |
void | vSetCm (const Eref &e, double Cm) |
double | vGetCm (const Eref &e) const |
void | vSetRm (const Eref &e, double Rm) |
double | vGetRm (const Eref &e) const |
void | vSetRa (const Eref &e, double Ra) |
double | vGetRa (const Eref &e) const |
double | vGetIm (const Eref &e) const |
void | vSetInject (const Eref &e, double Inject) |
double | vGetInject (const Eref &e) const |
void | vSetInitVm (const Eref &e, double initVm) |
double | vGetInitVm (const Eref &e) const |
void | dummy (const Eref &e, ProcPtr p) |
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 | vSetSolver (const Eref &e, Id hsolve) |
Assigns the solver to the zombie. | |
Static Public Member Functions | |
static const Cinfo * | initCinfo () |
Zombie object that lets HSolve do its calculations, while letting the user interact with this object as if it were the original object.
ZombieCompartment::ZombieCompartment | ( | ) |
ZombieCompartment::~ZombieCompartment | ( | ) | [virtual] |
const Cinfo * ZombieCompartment::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.
double ZombieCompartment::vGetCm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References HSolve::getCm(), and Eref::id().
double ZombieCompartment::vGetEm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References HSolve::getEm(), and Eref::id().
double ZombieCompartment::vGetIm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References HSolve::getIm(), and Eref::id().
double ZombieCompartment::vGetInitVm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References HSolve::getInitVm(), and Eref::id().
double ZombieCompartment::vGetInject | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References HSolve::getInject(), and Eref::id().
double ZombieCompartment::vGetRa | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References HSolve::getRa(), and Eref::id().
double ZombieCompartment::vGetRm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References HSolve::getRm(), and Eref::id().
double ZombieCompartment::vGetVm | ( | const Eref & | e | ) | const [virtual] |
Implements moose::CompartmentBase.
References HSolve::getVm(), and Eref::id().
void ZombieCompartment::vHandleAxial | ( | double | Vm | ) | [virtual] |
handleAxial handles incoming axial message data.
Implements moose::CompartmentBase.
void ZombieCompartment::vHandleChannel | ( | const Eref & | e, | |
double | Gk, | |||
double | Ek | |||
) | [virtual] |
handleChannel handles information coming from the channel to the compartment
Implements moose::CompartmentBase.
References HSolve::addGkEk(), and Eref::id().
void ZombieCompartment::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.
Empty function to do another reinit step out of phase with the main one. Nothing needs doing there.
Implements moose::CompartmentBase.
void ZombieCompartment::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 HSolve::addInject(), and Eref::id().
The process function does the object updating and sends out messages to channels, nernsts, and so on.
Implements moose::CompartmentBase.
void ZombieCompartment::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.
The reinit function reinitializes all fields.
Implements moose::CompartmentBase.
void ZombieCompartment::vSetCm | ( | const Eref & | e, | |
double | Cm | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Eref::id(), moose::CompartmentBase::rangeWarning(), and HSolve::setCm().
void ZombieCompartment::vSetEm | ( | const Eref & | e, | |
double | Em | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Eref::id(), and HSolve::setEm().
void ZombieCompartment::vSetInitVm | ( | const Eref & | e, | |
double | initVm | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Eref::id(), and HSolve::setInitVm().
void ZombieCompartment::vSetInject | ( | const Eref & | e, | |
double | Inject | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Eref::id(), and HSolve::setInject().
void ZombieCompartment::vSetRa | ( | const Eref & | e, | |
double | Ra | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Eref::id(), moose::CompartmentBase::rangeWarning(), and HSolve::setRa().
void ZombieCompartment::vSetRm | ( | const Eref & | e, | |
double | Rm | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Eref::id(), moose::CompartmentBase::rangeWarning(), and HSolve::setRm().
Assigns the solver to the zombie.
Reimplemented from moose::CompartmentBase.
References Element::cinfo(), Eref::data(), Id::element(), Id::eref(), Cinfo::isA(), and Id::path().
void ZombieCompartment::vSetVm | ( | const Eref & | e, | |
double | Vm | |||
) | [virtual] |
Implements moose::CompartmentBase.
References Eref::id(), and HSolve::setVm().