#include <HHChannelBase.h>
Public Member Functions | |
HHChannelBase () | |
~HHChannelBase () | |
void | setXpower (const Eref &e, double Xpower) |
double | getXpower (const Eref &e) const |
void | setYpower (const Eref &e, double Ypower) |
double | getYpower (const Eref &e) const |
void | setZpower (const Eref &e, double Zpower) |
double | getZpower (const Eref &e) const |
void | setInstant (const Eref &e, int Instant) |
int | getInstant (const Eref &e) const |
void | setX (const Eref &e, double X) |
double | getX (const Eref &e) const |
void | setY (const Eref &e, double Y) |
double | getY (const Eref &e) const |
void | setZ (const Eref &e, double Z) |
double | getZ (const Eref &e) const |
void | setUseConcentration (const Eref &e, int value) |
int | getUseConcentration (const Eref &e) const |
double | vGetModulation (const Eref &e) const |
void | handleConc (const Eref &e, double conc) |
HHGate * | getXgate (unsigned int i) |
HHGate * | getYgate (unsigned int i) |
HHGate * | getZgate (unsigned int i) |
void | setNumGates (unsigned int num) |
unsigned int | getNumXgates () const |
unsigned int | getNumYgates () const |
Returns 1 if Y gate present, otherwise 0. | |
unsigned int | getNumZgates () const |
Returns 1 if Z gate present, otherwise 0. | |
void | createGate (const Eref &e, string gateType) |
virtual void | vSetXpower (const Eref &e, double Xpower)=0 |
virtual void | vSetYpower (const Eref &e, double Ypower)=0 |
virtual void | vSetZpower (const Eref &e, double Zpower)=0 |
virtual void | vSetInstant (const Eref &e, int Instant)=0 |
virtual int | vGetInstant (const Eref &e) const =0 |
virtual void | vSetX (const Eref &e, double X)=0 |
virtual double | vGetX (const Eref &e) const =0 |
virtual void | vSetY (const Eref &e, double Y)=0 |
virtual double | vGetY (const Eref &e) const =0 |
virtual void | vSetZ (const Eref &e, double Z)=0 |
virtual double | vGetZ (const Eref &e) const =0 |
virtual void | vSetUseConcentration (const Eref &e, int value)=0 |
virtual void | vHandleConc (const Eref &e, double conc)=0 |
virtual HHGate * | vGetXgate (unsigned int i) const =0 |
virtual HHGate * | vGetYgate (unsigned int i) const =0 |
virtual HHGate * | vGetZgate (unsigned int i) const =0 |
virtual void | vCreateGate (const Eref &e, string gateType)=0 |
virtual void | vSetSolver (const Eref &e, Id hsolve) |
Static Public Member Functions | |
static double | power1 (double x, double p) |
static double | power2 (double x, double p) |
static double | power3 (double x, double p) |
static double | power4 (double x, double p) |
static double | powerN (double x, double p) |
static PFDD | selectPower (double power) |
static void | zombify (Element *orig, const Cinfo *zClass, Id hsolve) |
static const Cinfo * | initCinfo () |
Protected Attributes | |
double | Xpower_ |
Exponent for X gate. | |
double | Ypower_ |
Exponent for Y gate. | |
double | Zpower_ |
Exponent for Z gate. | |
bool | useConcentration_ |
Flag for use of conc for input to Z gate calculations. | |
double | modulation_ |
Value used to scale channel conductance up or down. |
The HHChannelBase is the base class for defining Hodgkin-Huxley type channels, specifically dealing with derivatives used in the HSolver. This is derived from the ChanBase rather than the ChanCommon, since the Zombie classes used in the HSolver will not use the ChanCommon fields.
HHChannelBase::HHChannelBase | ( | ) |
HHChannelBase::~HHChannelBase | ( | ) |
void HHChannelBase::createGate | ( | const Eref & | e, | |
string | gateType | |||
) |
Function for safely creating each gate, identified by strings as X, Y and Z. Will only work on a new channel, not on a copy. The idea is that the gates are always referred to the original 'library' channel, and their contents cannot be touched except by the original.
Referenced by initCinfo().
int HHChannelBase::getInstant | ( | const Eref & | e | ) | const |
unsigned int HHChannelBase::getNumXgates | ( | ) | const |
Access function for the number of Xgates. Gives 1 if present, otherwise 0.
References vGetXgate().
Referenced by initCinfo().
unsigned int HHChannelBase::getNumYgates | ( | ) | const |
Returns 1 if Y gate present, otherwise 0.
References vGetYgate().
Referenced by initCinfo().
unsigned int HHChannelBase::getNumZgates | ( | ) | const |
Returns 1 if Z gate present, otherwise 0.
References vGetZgate().
Referenced by initCinfo().
int HHChannelBase::getUseConcentration | ( | const Eref & | e | ) | const |
References useConcentration_.
Referenced by initCinfo(), and zombify().
double HHChannelBase::getX | ( | const Eref & | e | ) | const |
HHGate * HHChannelBase::getXgate | ( | unsigned int | i | ) |
Access function used for the X gate. The index is ignored.
References vGetXgate().
Referenced by initCinfo().
double HHChannelBase::getXpower | ( | const Eref & | e | ) | const |
References Xpower_.
Referenced by initCinfo(), and zombify().
double HHChannelBase::getY | ( | const Eref & | e | ) | const |
HHGate * HHChannelBase::getYgate | ( | unsigned int | i | ) |
Access function used for the Y gate. The index is ignored.
References vGetYgate().
Referenced by initCinfo().
double HHChannelBase::getYpower | ( | const Eref & | e | ) | const |
References Ypower_.
Referenced by initCinfo(), and zombify().
double HHChannelBase::getZ | ( | const Eref & | e | ) | const |
HHGate * HHChannelBase::getZgate | ( | unsigned int | i | ) |
Access function used for the Z gate. The index is ignored.
References vGetZgate().
Referenced by initCinfo().
double HHChannelBase::getZpower | ( | const Eref & | e | ) | const |
References Zpower_.
Referenced by initCinfo(), and zombify().
void HHChannelBase::handleConc | ( | const Eref & | e, | |
double | conc | |||
) |
Assign the local conc_ to the incoming conc from the concentration calculations for the compartment. Typically the message source will be a CaConc object, but there are other options for computing the conc.
References vHandleConc().
Referenced by initCinfo().
const Cinfo * HHChannelBase::initCinfo | ( | ) | [static] |
Specify the Class Info static variable for initialization.
ChannelOut SrcFinfo defined above.
Permability SrcFinfo defined above.
Reimplemented from ChanBase.
Reimplemented in HHChannel, and ZombieHHChannel.
References createGate(), getInstant(), getNumXgates(), getNumYgates(), getNumZgates(), getUseConcentration(), getX(), getXgate(), getXpower(), getY(), getYgate(), getYpower(), getZ(), getZgate(), getZpower(), handleConc(), ChanBase::initCinfo(), HHGate::initCinfo(), setInstant(), setNumGates(), setUseConcentration(), setX(), setXpower(), setY(), setYpower(), setZ(), and setZpower().
Referenced by ZombieHHChannel::initCinfo(), and HHChannel::initCinfo().
static double HHChannelBase::power1 | ( | double | x, | |
double | p | |||
) | [inline, static] |
Referenced by selectPower().
static double HHChannelBase::power2 | ( | double | x, | |
double | p | |||
) | [inline, static] |
Referenced by power4(), and selectPower().
static double HHChannelBase::power3 | ( | double | x, | |
double | p | |||
) | [inline, static] |
Referenced by selectPower().
static double HHChannelBase::power4 | ( | double | x, | |
double | p | |||
) | [inline, static] |
double HHChannelBase::powerN | ( | double | x, | |
double | p | |||
) | [static] |
Referenced by selectPower().
PFDD HHChannelBase::selectPower | ( | double | power | ) | [static] |
References doubleEq(), power1(), power2(), power3(), power4(), and powerN().
Referenced by HHChannel::vSetXpower(), HHChannel::vSetYpower(), and HHChannel::vSetZpower().
void HHChannelBase::setInstant | ( | const Eref & | e, | |
int | Instant | |||
) |
void HHChannelBase::setNumGates | ( | unsigned int | num | ) |
Dummy assignment function for the number of gates.
Referenced by initCinfo().
void HHChannelBase::setUseConcentration | ( | const Eref & | e, | |
int | value | |||
) |
References useConcentration_, and vSetUseConcentration().
Referenced by initCinfo().
void HHChannelBase::setX | ( | const Eref & | e, | |
double | X | |||
) |
void HHChannelBase::setXpower | ( | const Eref & | e, | |
double | power | |||
) |
Assigns the Xpower for this gate. If the gate exists and has only this element for input, then change the gate value. If the gate exists and has multiple parents, then make a new gate. If the gate does not exist, make a new gate
References checkPower(), and vSetXpower().
Referenced by initCinfo().
void HHChannelBase::setY | ( | const Eref & | e, | |
double | Y | |||
) |
void HHChannelBase::setYpower | ( | const Eref & | e, | |
double | Ypower | |||
) |
References checkPower(), and vSetYpower().
Referenced by initCinfo().
void HHChannelBase::setZ | ( | const Eref & | e, | |
double | Z | |||
) |
void HHChannelBase::setZpower | ( | const Eref & | e, | |
double | Zpower | |||
) |
References checkPower(), and vSetZpower().
Referenced by initCinfo().
virtual void HHChannelBase::vCreateGate | ( | const Eref & | e, | |
string | gateType | |||
) | [pure virtual] |
Implemented in HHChannel.
virtual int HHChannelBase::vGetInstant | ( | const Eref & | e | ) | const [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by getInstant().
double HHChannelBase::vGetModulation | ( | const Eref & | e | ) | const [virtual] |
virtual double HHChannelBase::vGetX | ( | const Eref & | e | ) | const [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by getX().
virtual HHGate* HHChannelBase::vGetXgate | ( | unsigned int | i | ) | const [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by getNumXgates(), and getXgate().
virtual double HHChannelBase::vGetY | ( | const Eref & | e | ) | const [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by getY().
virtual HHGate* HHChannelBase::vGetYgate | ( | unsigned int | i | ) | const [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by getNumYgates(), and getYgate().
virtual double HHChannelBase::vGetZ | ( | const Eref & | e | ) | const [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by getZ().
virtual HHGate* HHChannelBase::vGetZgate | ( | unsigned int | i | ) | const [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by getNumZgates(), and getZgate().
virtual void HHChannelBase::vHandleConc | ( | const Eref & | e, | |
double | conc | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by handleConc().
virtual void HHChannelBase::vSetInstant | ( | const Eref & | e, | |
int | Instant | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by setInstant().
Reimplemented in ZombieHHChannel.
Referenced by zombify().
virtual void HHChannelBase::vSetUseConcentration | ( | const Eref & | e, | |
int | value | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by setUseConcentration().
virtual void HHChannelBase::vSetX | ( | const Eref & | e, | |
double | X | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by setX().
virtual void HHChannelBase::vSetXpower | ( | const Eref & | e, | |
double | Xpower | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by setXpower(), and zombify().
virtual void HHChannelBase::vSetY | ( | const Eref & | e, | |
double | Y | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by setY().
virtual void HHChannelBase::vSetYpower | ( | const Eref & | e, | |
double | Ypower | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by setYpower(), and zombify().
virtual void HHChannelBase::vSetZ | ( | const Eref & | e, | |
double | Z | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by setZ().
virtual void HHChannelBase::vSetZpower | ( | const Eref & | e, | |
double | Zpower | |||
) | [pure virtual] |
Implemented in HHChannel, and ZombieHHChannel.
Referenced by setZpower(), and zombify().
References Element::cinfo(), Eref::data(), getUseConcentration(), getXpower(), getYpower(), getZpower(), Element::localDataStart(), Element::numLocalData(), ChanBase::vGetEk(), ChanBase::vGetGbar(), ChanBase::vSetEk(), ChanBase::vSetGbar(), vSetSolver(), vSetXpower(), vSetYpower(), vSetZpower(), and Element::zombieSwap().
double HHChannelBase::modulation_ [protected] |
Value used to scale channel conductance up or down.
Referenced by vGetModulation(), HHChannel::vGetModulation(), HHChannel::vProcess(), HHChannel::vReinit(), ZombieHHChannel::vSetModulation(), and HHChannel::vSetModulation().
bool HHChannelBase::useConcentration_ [protected] |
Flag for use of conc for input to Z gate calculations.
Referenced by getUseConcentration(), setUseConcentration(), HHChannel::vProcess(), HHChannel::vReinit(), and HHChannel::vSetZpower().
double HHChannelBase::Xpower_ [protected] |
Exponent for X gate.
Referenced by getXpower(), HHChannel::vProcess(), HHChannel::vReinit(), ZombieHHChannel::vSetXpower(), HHChannel::vSetXpower(), ZombieHHChannel::vSetYpower(), and ZombieHHChannel::vSetZpower().
double HHChannelBase::Ypower_ [protected] |
Exponent for Y gate.
Referenced by getYpower(), HHChannel::vProcess(), HHChannel::vReinit(), ZombieHHChannel::vSetXpower(), ZombieHHChannel::vSetYpower(), HHChannel::vSetYpower(), and ZombieHHChannel::vSetZpower().
double HHChannelBase::Zpower_ [protected] |
Exponent for Z gate.
Referenced by getZpower(), HHChannel::vProcess(), HHChannel::vReinit(), ZombieHHChannel::vSetXpower(), ZombieHHChannel::vSetYpower(), ZombieHHChannel::vSetZpower(), and HHChannel::vSetZpower().