MOOSE - Multiscale Object Oriented Simulation Environment
|
#include <Compartment.h>
Public Member Functions | |
void | cable () |
Compartment () | |
virtual double | vGetCm (const Eref &e) const |
virtual double | vGetEm (const Eref &e) const |
virtual double | vGetIm (const Eref &e) const |
virtual double | vGetInitVm (const Eref &e) const |
virtual double | vGetInject (const Eref &e) const |
virtual double | vGetRa (const Eref &e) const |
virtual double | vGetRm (const Eref &e) const |
virtual double | vGetVm (const Eref &e) const |
void | vHandleAxial (double Vm) |
void | vHandleChannel (const Eref &e, double Gk, double Ek) |
void | vHandleRaxial (double Ra, double Vm) |
void | vInitProc (const Eref &e, ProcPtr p) |
void | vInitReinit (const Eref &e, ProcPtr p) |
void | vInjectMsg (const Eref &e, double current) |
void | vProcess (const Eref &e, ProcPtr p) |
void | vRandInject (const Eref &e, double prob, double current) |
void | vReinit (const Eref &e, ProcPtr p) |
virtual void | vSetCm (const Eref &e, double Cm) |
virtual void | vSetEm (const Eref &e, double Em) |
virtual void | vSetInitVm (const Eref &e, double initVm) |
virtual void | vSetInject (const Eref &e, double Inject) |
virtual void | vSetRa (const Eref &e, double Ra) |
virtual void | vSetRm (const Eref &e, double Rm) |
virtual void | vSetVm (const Eref &e, double Vm) |
virtual | ~Compartment () |
![]() | |
void | cable () |
CompartmentBase () | |
void | displace (double dx, double dy, double dz) |
Displaces compartment by specified distance vector. More... | |
double | getCm (const Eref &e) const |
double | getDiameter () const |
double | getEm (const Eref &e) const |
double | getIm (const Eref &e) const |
double | getInitVm (const Eref &e) const |
double | getInject (const Eref &e) const |
double | getLength () const |
double | getRa (const Eref &e) const |
double | getRm (const Eref &e) const |
double | getVm (const Eref &e) const |
double | getX () const |
double | getX0 () const |
double | getY () const |
double | getY0 () const |
double | getZ () const |
double | getZ0 () const |
void | handleAxial (double Vm) |
void | handleChannel (const Eref &e, double Gk, double Ek) |
void | handleRaxial (double Ra, double Vm) |
void | initProc (const Eref &e, ProcPtr p) |
void | initReinit (const Eref &e, ProcPtr p) |
void | injectMsg (const Eref &e, double current) |
void | process (const Eref &e, ProcPtr p) |
void | randInject (const Eref &e, double prob, double current) |
bool | rangeWarning (const string &field, double value) |
void | reinit (const Eref &e, ProcPtr p) |
void | setCm (const Eref &e, double Cm) |
void | setDiameter (double diameter) |
void | setEm (const Eref &e, double Em) |
void | setGeomAndElec (const Eref &e, double length, double dia) |
Scales electrical values along with setting length, dia. More... | |
void | setInitVm (const Eref &e, double initVm) |
void | setInject (const Eref &e, double Inject) |
void | setLength (double length) |
void | setRa (const Eref &e, double Ra) |
void | setRm (const Eref &e, double Rm) |
void | setVm (const Eref &e, double Vm) |
void | setX (double value) |
void | setX0 (double value) |
void | setY (double value) |
void | setY0 (double value) |
void | setZ (double value) |
void | setZ0 (double value) |
void | updateLength () |
virtual void | vSetSolver (const Eref &e, Id hsolve) |
virtual | ~CompartmentBase () |
Static Public Member Functions | |
static const Cinfo * | initCinfo () |
![]() | |
static const Cinfo * | initCinfo () |
static SrcFinfo1< double > * | VmOut () |
static void | zombify (Element *orig, const Cinfo *zClass, Id hsolve) |
Protected Attributes | |
double | A_ |
double | B_ |
double | Cm_ |
double | Em_ |
double | Im_ |
double | initVm_ |
double | inject_ |
double | lastIm_ |
double | Ra_ |
double | Rm_ |
double | sumInject_ |
double | Vm_ |
Private Attributes | |
double | dt_ |
double | invRm_ |
Static Private Attributes | |
static const double | EPSILON = 1.0e-15 |
Definition at line 22 of file Compartment.h.
Compartment::Compartment | ( | ) |
|
virtual |
Definition at line 91 of file Compartment.cpp.
void moose::Compartment::cable | ( | ) |
Dummy function to act as recipient of 'cable' message, which is just for grouping compartments.
|
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.
Definition at line 26 of file Compartment.cpp.
References compartmentCinfo, and moose::CompartmentBase::initCinfo().
Referenced by SymCompartment::initCinfo(), and moose::IntFireBase::initCinfo().
|
virtual |
|
virtual |
|
virtual |
Implements moose::CompartmentBase.
Definition at line 151 of file Compartment.cpp.
References lastIm_.
|
virtual |
Implements moose::CompartmentBase.
Definition at line 171 of file Compartment.cpp.
References initVm_.
|
virtual |
Implements moose::CompartmentBase.
Definition at line 161 of file Compartment.cpp.
References inject_.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
handleAxial handles incoming axial message data.
Implements moose::CompartmentBase.
Definition at line 245 of file Compartment.cpp.
References A_, B_, Im_, Ra_, and Vm_.
|
virtual |
handleChannel handles information coming from the channel to the compartment
Implements moose::CompartmentBase.
Definition at line 232 of file Compartment.cpp.
|
virtual |
handleRaxial handles incoming raxial message data.
Implements moose::CompartmentBase.
Definition at line 238 of file Compartment.cpp.
References A_, B_, Im_, and Vm_.
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.
Definition at line 219 of file Compartment.cpp.
References axialOut, Ra_, raxialOut, 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.
Definition at line 227 of file Compartment.cpp.
|
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.
Definition at line 252 of file Compartment.cpp.
References Im_, and sumInject_.
The process function does the object updating and sends out messages to channels, nernsts, and so on.
Implements moose::CompartmentBase.
Reimplemented in moose::IzhIF, moose::IntFireBase, moose::AdExIF, moose::AdThreshIF, moose::QIF, moose::ExIF, and moose::LIF.
Definition at line 181 of file Compartment.cpp.
References A_, B_, Cm_, ProcInfo::dt, Em_, EPSILON, Im_, inject_, invRm_, lastIm_, sumInject_, Vm_, and moose::CompartmentBase::VmOut().
Referenced by moose::LIF::vProcess(), moose::ExIF::vProcess(), moose::AdExIF::vProcess(), and moose::AdThreshIF::vProcess().
|
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.
Definition at line 258 of file Compartment.cpp.
References dt_, Im_, moose::mtrand(), and sumInject_.
The reinit function reinitializes all fields.
Implements moose::CompartmentBase.
Reimplemented in moose::IzhIF, moose::IntFireBase, moose::AdExIF, moose::AdThreshIF, moose::QIF, SymCompartment, moose::ExIF, and moose::LIF.
Definition at line 205 of file Compartment.cpp.
References A_, B_, ProcInfo::dt, dt_, Im_, initVm_, invRm_, lastIm_, sumInject_, Vm_, and moose::CompartmentBase::VmOut().
Referenced by moose::LIF::vReinit(), moose::ExIF::vReinit(), SymCompartment::vReinit(), moose::QIF::vReinit(), moose::AdExIF::vReinit(), moose::AdThreshIF::vReinit(), and moose::IzhIF::vReinit().
|
virtual |
Implements moose::CompartmentBase.
Definition at line 117 of file Compartment.cpp.
References Cm_, and moose::CompartmentBase::rangeWarning().
|
virtual |
|
virtual |
Implements moose::CompartmentBase.
Definition at line 166 of file Compartment.cpp.
References initVm_.
|
virtual |
Implements moose::CompartmentBase.
Definition at line 156 of file Compartment.cpp.
References inject_.
|
virtual |
Implements moose::CompartmentBase.
Definition at line 140 of file Compartment.cpp.
References Ra_, and moose::CompartmentBase::rangeWarning().
|
virtual |
Implements moose::CompartmentBase.
Definition at line 128 of file Compartment.cpp.
References invRm_, moose::CompartmentBase::rangeWarning(), and Rm_.
|
virtual |
|
protected |
Definition at line 128 of file Compartment.h.
Referenced by Compartment(), SymCompartment::raxialCylinder(), SymCompartment::raxialSphere(), SymCompartment::raxialSym(), vHandleAxial(), vHandleChannel(), vHandleRaxial(), moose::LIF::vProcess(), moose::ExIF::vProcess(), moose::AdExIF::vProcess(), moose::AdThreshIF::vProcess(), vProcess(), and vReinit().
|
protected |
Definition at line 129 of file Compartment.h.
Referenced by Compartment(), SymCompartment::raxialCylinder(), SymCompartment::raxialSphere(), SymCompartment::raxialSym(), vHandleAxial(), vHandleChannel(), vHandleRaxial(), moose::LIF::vProcess(), moose::ExIF::vProcess(), moose::AdExIF::vProcess(), moose::AdThreshIF::vProcess(), vProcess(), and vReinit().
|
protected |
Definition at line 122 of file Compartment.h.
Referenced by Compartment(), vGetCm(), moose::ExIF::vProcess(), moose::QIF::vProcess(), moose::AdExIF::vProcess(), moose::IzhIF::vProcess(), vProcess(), and vSetCm().
|
private |
Definition at line 134 of file Compartment.h.
Referenced by vRandInject(), and vReinit().
|
protected |
Definition at line 121 of file Compartment.h.
Referenced by Compartment(), vGetEm(), moose::QIF::vProcess(), moose::AdExIF::vProcess(), moose::AdThreshIF::vProcess(), vProcess(), and vSetEm().
|
staticprivate |
Definition at line 135 of file Compartment.h.
Referenced by vProcess().
|
protected |
Definition at line 125 of file Compartment.h.
Referenced by Compartment(), SymCompartment::raxialCylinder(), SymCompartment::raxialSphere(), SymCompartment::raxialSym(), vHandleAxial(), vHandleRaxial(), vInjectMsg(), moose::QIF::vProcess(), moose::IzhIF::vProcess(), vProcess(), vRandInject(), and vReinit().
|
protected |
Definition at line 120 of file Compartment.h.
Referenced by Compartment(), vGetInitVm(), vReinit(), and vSetInitVm().
|
protected |
Definition at line 127 of file Compartment.h.
Referenced by Compartment(), vGetInject(), moose::QIF::vProcess(), moose::IzhIF::vProcess(), vProcess(), and vSetInject().
|
private |
Definition at line 133 of file Compartment.h.
Referenced by Compartment(), vProcess(), vReinit(), and vSetRm().
|
protected |
Definition at line 126 of file Compartment.h.
Referenced by Compartment(), vGetIm(), moose::QIF::vProcess(), moose::IzhIF::vProcess(), vProcess(), and vReinit().
|
protected |
Definition at line 124 of file Compartment.h.
Referenced by Compartment(), SymCompartment::raxialSphere(), SymCompartment::sumRaxial(), vGetRa(), vHandleAxial(), SymCompartment::vInitProc(), vInitProc(), SymCompartment::vReinit(), and vSetRa().
|
protected |
Definition at line 123 of file Compartment.h.
Referenced by Compartment(), vGetRm(), moose::LIF::vProcess(), moose::ExIF::vProcess(), moose::QIF::vProcess(), moose::AdExIF::vProcess(), moose::AdThreshIF::vProcess(), and vSetRm().
|
protected |
Definition at line 130 of file Compartment.h.
Referenced by Compartment(), vInjectMsg(), moose::LIF::vProcess(), moose::ExIF::vProcess(), moose::QIF::vProcess(), moose::AdThreshIF::vProcess(), moose::AdExIF::vProcess(), moose::IzhIF::vProcess(), vProcess(), vRandInject(), and vReinit().
|
protected |
Definition at line 119 of file Compartment.h.
Referenced by Compartment(), SymCompartment::raxialCylinder(), SymCompartment::raxialSphere(), SymCompartment::raxialSym(), vGetVm(), vHandleAxial(), vHandleRaxial(), SymCompartment::vInitProc(), vInitProc(), moose::LIF::vProcess(), moose::ExIF::vProcess(), moose::QIF::vProcess(), moose::AdThreshIF::vProcess(), moose::AdExIF::vProcess(), moose::IzhIF::vProcess(), vProcess(), vReinit(), and vSetVm().