moose::CompartmentBase Class Reference

#include <CompartmentBase.h>

Inheritance diagram for moose::CompartmentBase:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 CompartmentBase ()
virtual ~CompartmentBase ()
void setVm (const Eref &e, double Vm)
double getVm (const Eref &e) const
void setEm (const Eref &e, double Em)
double getEm (const Eref &e) const
void setCm (const Eref &e, double Cm)
double getCm (const Eref &e) const
void setRm (const Eref &e, double Rm)
double getRm (const Eref &e) const
void setRa (const Eref &e, double Ra)
double getRa (const Eref &e) const
double getIm (const Eref &e) const
void setInject (const Eref &e, double Inject)
double getInject (const Eref &e) const
void setInitVm (const Eref &e, double initVm)
double getInitVm (const Eref &e) const
void setDiameter (double diameter)
double getDiameter () const
void setLength (double length)
double getLength () const
void setX0 (double value)
double getX0 () const
void setY0 (double value)
double getY0 () const
void setZ0 (double value)
double getZ0 () const
void setX (double value)
double getX () const
void setY (double value)
double getY () const
void setZ (double value)
double getZ () const
void process (const Eref &e, ProcPtr p)
void reinit (const Eref &e, ProcPtr p)
void initProc (const Eref &e, ProcPtr p)
void initReinit (const Eref &e, ProcPtr p)
void handleChannel (const Eref &e, double Gk, double Ek)
void handleRaxial (double Ra, double Vm)
void handleAxial (double Vm)
void injectMsg (const Eref &e, double current)
void randInject (const Eref &e, double prob, double current)
void cable ()
void displace (double dx, double dy, double dz)
 Displaces compartment by specified distance vector.
void setGeomAndElec (const Eref &e, double length, double dia)
 Scales electrical values along with setting length, dia.
virtual void vSetVm (const Eref &e, double Vm)=0
virtual double vGetVm (const Eref &e) const =0
virtual void vSetEm (const Eref &e, double Em)=0
virtual double vGetEm (const Eref &e) const =0
virtual void vSetCm (const Eref &e, double Cm)=0
virtual double vGetCm (const Eref &e) const =0
virtual void vSetRm (const Eref &e, double Rm)=0
virtual double vGetRm (const Eref &e) const =0
virtual void vSetRa (const Eref &e, double Ra)=0
virtual double vGetRa (const Eref &e) const =0
virtual double vGetIm (const Eref &e) const =0
virtual void vSetInject (const Eref &e, double Inject)=0
virtual double vGetInject (const Eref &e) const =0
virtual void vSetInitVm (const Eref &e, double initVm)=0
virtual double vGetInitVm (const Eref &e) const =0
virtual void vProcess (const Eref &e, ProcPtr p)=0
virtual void vReinit (const Eref &e, ProcPtr p)=0
virtual void vInitProc (const Eref &e, ProcPtr p)=0
virtual void vInitReinit (const Eref &e, ProcPtr p)=0
virtual void vHandleChannel (const Eref &e, double Gk, double Ek)=0
virtual void vHandleRaxial (double Ra, double Vm)=0
virtual void vHandleAxial (double Vm)=0
virtual void vInjectMsg (const Eref &e, double current)=0
virtual void vRandInject (const Eref &e, double prob, double current)=0
virtual void vSetSolver (const Eref &e, Id hsolve)
bool rangeWarning (const string &field, double value)
void updateLength ()

Static Public Member Functions

static const CinfoinitCinfo ()
static SrcFinfo1< double > * VmOut ()
static void zombify (Element *orig, const Cinfo *zClass, Id hsolve)

Constructor & Destructor Documentation

CompartmentBase::CompartmentBase (  ) 
CompartmentBase::~CompartmentBase (  )  [virtual]

Member Function Documentation

void CompartmentBase::cable (  ) 

Dummy function to act as recipient of 'cable' message, which is just for grouping compartments.

Reimplemented in moose::Compartment.

Referenced by initCinfo().

void CompartmentBase::displace ( double  dx,
double  dy,
double  dz 
)

Displaces compartment by specified distance vector.

Referenced by initCinfo().

double CompartmentBase::getCm ( const Eref e  )  const

References vGetCm().

Referenced by initCinfo(), and moose::CompartmentDataHolder::readData().

Here is the call graph for this function:

double CompartmentBase::getDiameter (  )  const
double CompartmentBase::getEm ( const Eref e  )  const

References vGetEm().

Referenced by initCinfo(), and moose::CompartmentDataHolder::readData().

Here is the call graph for this function:

double CompartmentBase::getIm ( const Eref e  )  const

References vGetIm().

Referenced by initCinfo().

Here is the call graph for this function:

double CompartmentBase::getInitVm ( const Eref e  )  const

References vGetInitVm().

Referenced by initCinfo(), and moose::CompartmentDataHolder::readData().

Here is the call graph for this function:

double CompartmentBase::getInject ( const Eref e  )  const

References vGetInject().

Referenced by initCinfo(), and moose::CompartmentDataHolder::readData().

Here is the call graph for this function:

double CompartmentBase::getLength (  )  const
double CompartmentBase::getRa ( const Eref e  )  const

References vGetRa().

Referenced by initCinfo(), and moose::CompartmentDataHolder::readData().

Here is the call graph for this function:

double CompartmentBase::getRm ( const Eref e  )  const

References vGetRm().

Referenced by initCinfo(), and moose::CompartmentDataHolder::readData().

Here is the call graph for this function:

double CompartmentBase::getVm ( const Eref e  )  const

References vGetVm().

Referenced by initCinfo().

Here is the call graph for this function:

double CompartmentBase::getX (  )  const
double CompartmentBase::getX0 (  )  const
double CompartmentBase::getY (  )  const
double CompartmentBase::getY0 (  )  const
double CompartmentBase::getZ (  )  const
double CompartmentBase::getZ0 (  )  const
void CompartmentBase::handleAxial ( double  Vm  ) 

handleAxial handles incoming axial message data.

References vHandleAxial().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::handleChannel ( const Eref e,
double  Gk,
double  Ek 
)

handleChannel handles information coming from the channel to the compartment

References vHandleChannel().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::handleRaxial ( double  Ra,
double  Vm 
)

handleRaxial handles incoming raxial message data.

References vHandleRaxial().

Referenced by initCinfo().

Here is the call graph for this function:

const Cinfo * CompartmentBase::initCinfo (  )  [static]

Initializes the class info.

The initCinfo() function sets up the CompartmentBase 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 in moose::Compartment, SymCompartment, and ZombieCompartment.

References axialOut, cable(), displace(), getCm(), getDiameter(), getEm(), getIm(), getInitVm(), getInject(), getLength(), getRa(), getRm(), getVm(), getX(), getX0(), getY(), getY0(), getZ(), getZ0(), handleAxial(), handleChannel(), handleRaxial(), init(), Neutral::initCinfo(), initProc(), initReinit(), injectMsg(), process(), randInject(), raxialOut, reinit(), setCm(), setDiameter(), setEm(), setGeomAndElec(), setInitVm(), setInject(), setLength(), setRa(), setRm(), setVm(), setX(), setX0(), setY(), setY0(), setZ(), setZ0(), VmOut(), and y.

Referenced by moose::Compartment::initCinfo().

Here is the call graph for this function:

void CompartmentBase::initProc ( const Eref e,
ProcPtr  p 
)

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.

References vInitProc().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::initReinit ( const Eref e,
ProcPtr  p 
)

Empty function to do another reinit step out of phase with the main one. Nothing needs doing there.

References vInitReinit().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::injectMsg ( const Eref e,
double  current 
)

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.

References vInjectMsg().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::process ( const Eref e,
ProcPtr  p 
)

The process function does the object updating and sends out messages to channels, nernsts, and so on.

References vProcess().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::randInject ( const Eref e,
double  prob,
double  current 
)

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.

References vRandInject().

Referenced by initCinfo().

Here is the call graph for this function:

bool moose::CompartmentBase::rangeWarning ( const string &  field,
double  value 
)
void CompartmentBase::reinit ( const Eref e,
ProcPtr  p 
)

The reinit function reinitializes all fields.

References vReinit().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::setCm ( const Eref e,
double  Cm 
)

References rangeWarning(), and vSetCm().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setDiameter ( double  diameter  ) 
void CompartmentBase::setEm ( const Eref e,
double  Em 
)

References vSetEm().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setGeomAndElec ( const Eref e,
double  length,
double  dia 
)

Scales electrical values along with setting length, dia.

References allChildren(), ALLDATA, doubleEq(), Eref::objId(), setDiameter(), setLength(), vGetCm(), vGetRa(), vGetRm(), vSetCm(), vSetRa(), and vSetRm().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::setInitVm ( const Eref e,
double  initVm 
)

References vSetInitVm().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setInject ( const Eref e,
double  Inject 
)

References vSetInject().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setLength ( double  length  ) 

References doubleEq().

Referenced by initCinfo(), setGeomAndElec(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setRa ( const Eref e,
double  Ra 
)

References rangeWarning(), and vSetRa().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setRm ( const Eref e,
double  Rm 
)

References rangeWarning(), and vSetRm().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setVm ( const Eref e,
double  Vm 
)

References vSetVm().

Referenced by initCinfo().

Here is the call graph for this function:

void CompartmentBase::setX ( double  value  ) 

References updateLength().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setX0 ( double  value  ) 

References updateLength().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setY ( double  value  ) 

References updateLength().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setY0 ( double  value  ) 

References updateLength().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setZ ( double  value  ) 

References updateLength().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::setZ0 ( double  value  ) 

References updateLength().

Referenced by initCinfo(), and moose::CompartmentDataHolder::writeData().

Here is the call graph for this function:

void CompartmentBase::updateLength (  ) 

A utility function update length if any of the coords change

Referenced by setX(), setX0(), setY(), setY0(), setZ(), and setZ0().

virtual double moose::CompartmentBase::vGetCm ( const Eref e  )  const [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by getCm(), and setGeomAndElec().

virtual double moose::CompartmentBase::vGetEm ( const Eref e  )  const [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by getEm().

virtual double moose::CompartmentBase::vGetIm ( const Eref e  )  const [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by getIm().

virtual double moose::CompartmentBase::vGetInitVm ( const Eref e  )  const [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by getInitVm().

virtual double moose::CompartmentBase::vGetInject ( const Eref e  )  const [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by getInject().

virtual double moose::CompartmentBase::vGetRa ( const Eref e  )  const [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by getRa(), and setGeomAndElec().

virtual double moose::CompartmentBase::vGetRm ( const Eref e  )  const [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by getRm(), and setGeomAndElec().

virtual double moose::CompartmentBase::vGetVm ( const Eref e  )  const [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by getVm().

virtual void moose::CompartmentBase::vHandleAxial ( double  Vm  )  [pure virtual]

handleAxial handles incoming axial message data.

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by handleAxial().

virtual void moose::CompartmentBase::vHandleChannel ( const Eref e,
double  Gk,
double  Ek 
) [pure virtual]

handleChannel handles information coming from the channel to the compartment

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by handleChannel().

virtual void moose::CompartmentBase::vHandleRaxial ( double  Ra,
double  Vm 
) [pure virtual]

handleRaxial handles incoming raxial message data.

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by handleRaxial().

virtual void moose::CompartmentBase::vInitProc ( const Eref e,
ProcPtr  p 
) [pure virtual]

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.

Implemented in moose::Compartment, SymCompartment, and ZombieCompartment.

Referenced by initProc().

virtual void moose::CompartmentBase::vInitReinit ( const Eref e,
ProcPtr  p 
) [pure virtual]

Empty function to do another reinit step out of phase with the main one. Nothing needs doing there.

Implemented in moose::Compartment, SymCompartment, and ZombieCompartment.

Referenced by initReinit().

virtual void moose::CompartmentBase::vInjectMsg ( const Eref e,
double  current 
) [pure 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.

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by injectMsg().

SrcFinfo1< double > * CompartmentBase::VmOut (  )  [static]

This Finfo is used to send out Vm to channels, spikegens, etc

It is exposed here so that HSolve can also use it to send out the Vm to the recipients.

Referenced by initCinfo(), moose::Compartment::vProcess(), and moose::Compartment::vReinit().

virtual void moose::CompartmentBase::vProcess ( const Eref e,
ProcPtr  p 
) [pure virtual]

The process function does the object updating and sends out messages to channels, nernsts, and so on.

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by process().

virtual void moose::CompartmentBase::vRandInject ( const Eref e,
double  prob,
double  current 
) [pure 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.

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by randInject().

virtual void moose::CompartmentBase::vReinit ( const Eref e,
ProcPtr  p 
) [pure virtual]

The reinit function reinitializes all fields.

Implemented in moose::Compartment, SymCompartment, and ZombieCompartment.

Referenced by reinit().

virtual void moose::CompartmentBase::vSetCm ( const Eref e,
double  Cm 
) [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by setCm(), and setGeomAndElec().

virtual void moose::CompartmentBase::vSetEm ( const Eref e,
double  Em 
) [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by setEm().

virtual void moose::CompartmentBase::vSetInitVm ( const Eref e,
double  initVm 
) [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by setInitVm().

virtual void moose::CompartmentBase::vSetInject ( const Eref e,
double  Inject 
) [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by setInject().

virtual void moose::CompartmentBase::vSetRa ( const Eref e,
double  Ra 
) [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by setGeomAndElec(), and setRa().

virtual void moose::CompartmentBase::vSetRm ( const Eref e,
double  Rm 
) [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by setGeomAndElec(), and setRm().

void CompartmentBase::vSetSolver ( const Eref e,
Id  hsolve 
) [virtual]

Reimplemented in ZombieCompartment.

Referenced by zombify().

virtual void moose::CompartmentBase::vSetVm ( const Eref e,
double  Vm 
) [pure virtual]

Implemented in moose::Compartment, and ZombieCompartment.

Referenced by setVm().

void CompartmentBase::zombify ( Element orig,
const Cinfo zClass,
Id  hsolve 
) [static]

This function is used to swap Cinfos of any CompartmentBase derived class. Used for making ZombieCompartments.

References Element::cinfo(), Eref::data(), Element::localDataStart(), Element::numLocalData(), vSetSolver(), and Element::zombieSwap().

Here is the call graph for this function:


The documentation for this class was generated from the following files:

Generated on 1 Jul 2015 for MOOSE by  doxygen 1.6.1