MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ChanBase Class Referenceabstract

#include <ChanBase.h>

+ Inheritance diagram for ChanBase:
+ Collaboration diagram for ChanBase:

Public Member Functions

 ChanBase ()
 
double getEk (const Eref &e) const
 
double getGbar (const Eref &e) const
 
double getGk (const Eref &e) const
 
double getIk (const Eref &e) const
 
double getModulation (const Eref &e) const
 
void handleVm (double Vm)
 
void process (const Eref &e, const ProcPtr info)
 
void reinit (const Eref &e, const ProcPtr info)
 
void setEk (const Eref &e, double Ek)
 
void setGbar (const Eref &e, double Gbar)
 
void setGk (const Eref &e, double Gk)
 
void setIk (const Eref &e, double Ic)
 
void setModulation (const Eref &e, double modulation)
 
virtual double vGetEk (const Eref &e) const =0
 
virtual double vGetGbar (const Eref &e) const =0
 
virtual double vGetGk (const Eref &e) const =0
 
virtual double vGetIk (const Eref &e) const =0
 
virtual double vGetModulation (const Eref &e) const =0
 
virtual void vHandleVm (double Vm)=0
 
virtual void vProcess (const Eref &e, const ProcPtr info)=0
 
virtual void vReinit (const Eref &e, const ProcPtr info)=0
 
virtual void vSetEk (const Eref &e, double Ek)=0
 
virtual void vSetGbar (const Eref &e, double Gbar)=0
 
virtual void vSetGk (const Eref &e, double Gk)=0
 
virtual void vSetIk (const Eref &e, double Ik)=0
 
virtual void vSetModulation (const Eref &e, double modulation)=0
 
 ~ChanBase ()
 

Static Public Member Functions

static SrcFinfo2< double,
double > * 
channelOut ()
 
static SrcFinfo1< double > * IkOut ()
 
static const CinfoinitCinfo ()
 Specify the Class Info static variable for initialization. More...
 
static SrcFinfo1< double > * permeability ()
 

Detailed Description

The ChanBase is the base class for all ion channel classes in MOOSE. It knows how to communicate with the parent compartment, not much else.

Definition at line 19 of file ChanBase.h.

Constructor & Destructor Documentation

ChanBase::ChanBase ( )

Definition at line 175 of file ChanBase.cpp.

176 { ; }
ChanBase::~ChanBase ( )

Definition at line 178 of file ChanBase.cpp.

179 {;}

Member Function Documentation

SrcFinfo2< double, double > * ChanBase::channelOut ( )
static

Definition at line 21 of file ChanBase.cpp.

Referenced by initCinfo(), ChanCommon::sendProcessMsgs(), and ChanCommon::sendReinitMsgs().

22 {
23  static SrcFinfo2< double, double > channelOut( "channelOut",
24  "Sends channel variables Gk and Ek to compartment" );
25  return &channelOut;
26 }
static SrcFinfo2< double, double > * channelOut()
Definition: ChanBase.cpp:21

+ Here is the caller graph for this function:

double ChanBase::getEk ( const Eref e) const

Definition at line 211 of file ChanBase.cpp.

References vGetEk().

Referenced by initCinfo().

212 {
213  return vGetEk( e );
214 }
virtual double vGetEk(const Eref &e) const =0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ChanBase::getGbar ( const Eref e) const

Definition at line 191 of file ChanBase.cpp.

References vGetGbar().

Referenced by NMDAChan::initCinfo(), initCinfo(), HHChannel2D::vProcess(), and HHChannel2D::vReinit().

192 {
193  return vGetGbar( e );
194 }
virtual double vGetGbar(const Eref &e) const =0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ChanBase::getGk ( const Eref e) const

Definition at line 220 of file ChanBase.cpp.

References vGetGk().

Referenced by initCinfo().

221 {
222  return vGetGk( e );
223 }
virtual double vGetGk(const Eref &e) const =0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ChanBase::getIk ( const Eref e) const

Definition at line 229 of file ChanBase.cpp.

References vGetIk().

Referenced by initCinfo().

230 {
231  return vGetIk( e );
232 }
virtual double vGetIk(const Eref &e) const =0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ChanBase::getModulation ( const Eref e) const

Definition at line 202 of file ChanBase.cpp.

References vGetModulation().

Referenced by initCinfo().

203 {
204  return vGetModulation( e );
205 }
virtual double vGetModulation(const Eref &e) const =0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ChanBase::handleVm ( double  Vm)

Assign the local Vm_ to the incoming Vm from the compartment

Definition at line 238 of file ChanBase.cpp.

References vHandleVm().

Referenced by initCinfo().

239 {
240  vHandleVm( Vm );
241 }
virtual void vHandleVm(double Vm)=0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SrcFinfo1< double > * ChanBase::IkOut ( )
static

Definition at line 28 of file ChanBase.cpp.

Referenced by initCinfo(), ChanCommon::sendProcessMsgs(), ChanCommon::sendReinitMsgs(), and HSolveActive::sendValues().

29 {
30  static SrcFinfo1< double > IkOut( "IkOut",
31  "Channel current. This message typically goes to concen"
32  "objects that keep track of ion concentration." );
33  return &IkOut;
34 }
static SrcFinfo1< double > * IkOut()
Definition: ChanBase.cpp:28

+ Here is the caller graph for this function:

const Cinfo * ChanBase::initCinfo ( )
static

Specify the Class Info static variable for initialization.

ChannelOut SrcFinfo defined above.

Permability SrcFinfo defined above.

Definition at line 36 of file ChanBase.cpp.

References channelOut(), getEk(), getGbar(), getGk(), getIk(), getModulation(), handleVm(), IkOut(), Neutral::initCinfo(), permeability(), process(), reinit(), setEk(), setGbar(), setGk(), and setModulation().

Referenced by MarkovChannel::initCinfo(), Leakage::initCinfo(), MgBlock::initCinfo(), SynChan::initCinfo(), HHChannel2D::initCinfo(), and HHChannelBase::initCinfo().

37 {
39  // Shared messages
41  static DestFinfo process( "process",
42  "Handles process call",
44  static DestFinfo reinit( "reinit",
45  "Handles reinit call",
47 
48  static Finfo* processShared[] =
49  {
50  &process, &reinit
51  };
52 
53  static SharedFinfo proc( "proc",
54  "Shared message to receive Process message from scheduler",
55  processShared, sizeof( processShared ) / sizeof( Finfo* ) );
56 
59  static DestFinfo Vm( "Vm",
60  "Handles Vm message coming in from compartment",
62 
63  static Finfo* channelShared[] =
64  {
65  channelOut(), &Vm
66  };
67  static SharedFinfo channel( "channel",
68  "This is a shared message to couple channel to compartment. "
69  "The first entry is a MsgSrc to send Gk and Ek to the compartment "
70  "The second entry is a MsgDest for Vm from the compartment.",
71  channelShared, sizeof( channelShared ) / sizeof( Finfo* )
72  );
73 
75  // Here we reuse the Vm DestFinfo declared above.
76 
78  static Finfo* ghkShared[] =
79  {
80  &Vm, permeability()
81  };
82  static SharedFinfo ghk( "ghk",
83  "Message to Goldman-Hodgkin-Katz object",
84  ghkShared, sizeof( ghkShared ) / sizeof( Finfo* ) );
85 
87 // Field definitions
89 
90  static ElementValueFinfo< ChanBase, double > Gbar( "Gbar",
91  "Maximal channel conductance",
94  );
95  static ElementValueFinfo< ChanBase, double > modulation( "modulation",
96  "Modulation, i.e, scale factor for channel conductance."
97  "Note that this is a regular parameter, it is not "
98  "recomputed each timestep. Thus one can use a slow update, "
99  "say, from a molecule pool, to send a message to set "
100  "the modulation, and it will stay at the set value even if "
101  "the channel runs many timesteps before the next assignment. "
102  "This differs from the GENESIS semantics of a similar message,"
103  "which required update each timestep. ",
106  );
108  "Reversal potential of channel",
111  );
113  "Channel conductance variable",
116  );
118  "Channel current variable",
120  );
121 
123 // MsgSrc definitions
125  // IkOut SrcFinfo defined above.
126 
128 // MsgDest definitions
130 
132  static Finfo* ChanBaseFinfos[] =
133  {
134  &channel, // Shared
135  &ghk, // Shared
136  &Gbar, // Value
137  &modulation, // Value
138  &Ek, // Value
139  &Gk, // Value
140  &Ik, // ReadOnlyValue
141  IkOut(), // Src
142  &proc, // Shared
143  };
144 
145  static string doc[] =
146  {
147  "Name", "ChanBase",
148  "Author", "Upinder S. Bhalla, 2007-2014, NCBS",
149  "Description", "ChanBase: Base class for assorted ion channels."
150  "Presents a common interface for all of them. ",
151  };
152 
153  static ZeroSizeDinfo< int > dinfo;
154 
155  static Cinfo ChanBaseCinfo(
156  "ChanBase",
158  ChanBaseFinfos,
159  sizeof( ChanBaseFinfos )/sizeof(Finfo *),
160  &dinfo,
161  doc,
162  sizeof(doc)/sizeof(string)
163  );
164 
165  return &ChanBaseCinfo;
166 }
double getEk(const Eref &e) const
Definition: ChanBase.cpp:211
void setEk(const Eref &e, double Ek)
Definition: ChanBase.cpp:207
double getGk(const Eref &e) const
Definition: ChanBase.cpp:220
double getModulation(const Eref &e) const
Definition: ChanBase.cpp:202
void setGk(const Eref &e, double Gk)
Definition: ChanBase.cpp:216
void reinit(const Eref &e, const ProcPtr info)
Definition: ChanBase.cpp:254
void setModulation(const Eref &e, double modulation)
Definition: ChanBase.cpp:196
void process(const Eref &e, const ProcPtr info)
Definition: ChanBase.cpp:248
static SrcFinfo1< double > * permeability()
Definition: ChanBase.cpp:14
void handleVm(double Vm)
Definition: ChanBase.cpp:238
static SrcFinfo1< double > * IkOut()
Definition: ChanBase.cpp:28
Definition: OpFunc.h:27
static SrcFinfo2< double, double > * channelOut()
Definition: ChanBase.cpp:21
void setGbar(const Eref &e, double Gbar)
Definition: ChanBase.cpp:185
static const Cinfo * initCinfo()
Definition: Neutral.cpp:16
double getIk(const Eref &e) const
Definition: ChanBase.cpp:229
double getGbar(const Eref &e) const
Definition: ChanBase.cpp:191
Definition: Cinfo.h:18
Definition: Finfo.h:12

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SrcFinfo1< double > * ChanBase::permeability ( )
static

Definition at line 14 of file ChanBase.cpp.

Referenced by NMDAChan::initCinfo(), initCinfo(), ChanCommon::sendProcessMsgs(), and ChanCommon::sendReinitMsgs().

15 {
16  static SrcFinfo1< double > permeability( "permeabilityOut",
17  "Conductance term going out to GHK object" );
18  return &permeability;
19 }
static SrcFinfo1< double > * permeability()
Definition: ChanBase.cpp:14

+ Here is the caller graph for this function:

void ChanBase::process ( const Eref e,
const ProcPtr  info 
)

Takes over the Process and reinit functions of all derived classes.

Definition at line 248 of file ChanBase.cpp.

References vProcess().

Referenced by initCinfo().

249 {
250  vProcess( e, info );
251 }
virtual void vProcess(const Eref &e, const ProcPtr info)=0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ChanBase::reinit ( const Eref e,
const ProcPtr  info 
)

Definition at line 254 of file ChanBase.cpp.

References vReinit().

Referenced by initCinfo().

255 {
256  vReinit( e, info );
257 }
virtual void vReinit(const Eref &e, const ProcPtr info)=0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ChanBase::setEk ( const Eref e,
double  Ek 
)

Definition at line 207 of file ChanBase.cpp.

References vSetEk().

Referenced by initCinfo(), and MgBlock::origChannel().

208 {
209  vSetEk( e, Ek );
210 }
virtual void vSetEk(const Eref &e, double Ek)=0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ChanBase::setGbar ( const Eref e,
double  Gbar 
)

Definition at line 185 of file ChanBase.cpp.

References vSetGbar().

Referenced by NMDAChan::initCinfo(), and initCinfo().

186 {
187  // Call virtual functions of derived classes for this operation.
188  vSetGbar( e, Gbar );
189 }
virtual void vSetGbar(const Eref &e, double Gbar)=0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ChanBase::setGk ( const Eref e,
double  Gk 
)

Definition at line 216 of file ChanBase.cpp.

References vSetGk().

Referenced by initCinfo(), MgBlock::vProcess(), SynChan::vProcess(), NMDAChan::vProcess(), MarkovChannel::vProcess(), HHChannel2D::vProcess(), SynChan::vReinit(), and HHChannel2D::vReinit().

217 {
218  vSetGk( e, Gk );
219 }
virtual void vSetGk(const Eref &e, double Gk)=0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ChanBase::setIk ( const Eref e,
double  Ic 
)

Definition at line 225 of file ChanBase.cpp.

References vSetIk().

Referenced by SynChan::vReinit().

226 {
227  vSetIk( e, Ik );
228 }
virtual void vSetIk(const Eref &e, double Ik)=0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ChanBase::setModulation ( const Eref e,
double  modulation 
)

Definition at line 196 of file ChanBase.cpp.

References vSetModulation().

Referenced by initCinfo().

197 {
198  // Call virtual functions of derived classes for this operation.
199  vSetModulation( e, modulation );
200 }
virtual void vSetModulation(const Eref &e, double modulation)=0

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual double ChanBase::vGetEk ( const Eref e) const
pure virtual

Implemented in ZombieHHChannel, and ChanCommon.

Referenced by getEk(), and HHChannelBase::zombify().

+ Here is the caller graph for this function:

virtual double ChanBase::vGetGbar ( const Eref e) const
pure virtual

Implemented in ZombieHHChannel, and ChanCommon.

Referenced by getGbar(), and HHChannelBase::zombify().

+ Here is the caller graph for this function:

virtual double ChanBase::vGetGk ( const Eref e) const
pure virtual

Implemented in ZombieHHChannel, and ChanCommon.

Referenced by getGk().

+ Here is the caller graph for this function:

virtual double ChanBase::vGetIk ( const Eref e) const
pure virtual

Implemented in ZombieHHChannel, and ChanCommon.

Referenced by getIk().

+ Here is the caller graph for this function:

virtual double ChanBase::vGetModulation ( const Eref e) const
pure virtual

Implemented in HHChannel, HHChannelBase, and ChanCommon.

Referenced by getModulation().

+ Here is the caller graph for this function:

virtual void ChanBase::vHandleVm ( double  Vm)
pure virtual

Implemented in ZombieHHChannel, and ChanCommon.

Referenced by handleVm().

+ Here is the caller graph for this function:

virtual void ChanBase::vProcess ( const Eref e,
const ProcPtr  info 
)
pure virtual

Implemented in HHChannel, HHChannel2D, ZombieHHChannel, MarkovChannel, NMDAChan, Leakage, SynChan, and MgBlock.

Referenced by process().

+ Here is the caller graph for this function:

virtual void ChanBase::vReinit ( const Eref e,
const ProcPtr  info 
)
pure virtual

Implemented in HHChannel, HHChannel2D, ZombieHHChannel, MarkovChannel, NMDAChan, Leakage, MgBlock, and SynChan.

Referenced by reinit().

+ Here is the caller graph for this function:

virtual void ChanBase::vSetEk ( const Eref e,
double  Ek 
)
pure virtual

Implemented in ZombieHHChannel, and ChanCommon.

Referenced by setEk(), and HHChannelBase::zombify().

+ Here is the caller graph for this function:

virtual void ChanBase::vSetGbar ( const Eref e,
double  Gbar 
)
pure virtual

Implemented in Leakage, ZombieHHChannel, SynChan, and ChanCommon.

Referenced by setGbar(), and HHChannelBase::zombify().

+ Here is the caller graph for this function:

virtual void ChanBase::vSetGk ( const Eref e,
double  Gk 
)
pure virtual

Implemented in ZombieHHChannel, and ChanCommon.

Referenced by setGk().

+ Here is the caller graph for this function:

virtual void ChanBase::vSetIk ( const Eref e,
double  Ik 
)
pure virtual

Implemented in ZombieHHChannel, and ChanCommon.

Referenced by setIk().

+ Here is the caller graph for this function:

virtual void ChanBase::vSetModulation ( const Eref e,
double  modulation 
)
pure virtual

Implemented in ZombieHHChannel, HHChannel, and ChanCommon.

Referenced by setModulation().

+ Here is the caller graph for this function:


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