AnimatLab  2
Test
IonChannel.h
1 
2 #pragma once
3 
4 namespace IntegrateFireSim
5 {
14  class ADV_NEURAL_PORT IonChannel : public AnimatSim::AnimatBase
15  {
16  protected:
18  float m_fltGInit;
19 
21  float m_fltMInit;
22 
24  float m_fltHInit;
25 
27  float m_fltGmax;
28 
30  float m_fltG;
31 
33  float m_fltMPower;
34 
36  float m_fltHPower;
37 
40 
42  float m_fltM;
43 
45  float m_fltNm;
46 
49 
52 
54  float m_fltH;
55 
57  float m_fltNh;
58 
61 
64 
65  //Calculated variables.
68 
70  float m_fltI;
71 
73  float m_fltMinf;
74 
76  float m_fltHinf;
77 
79  float m_fltTm;
80 
82  float m_fltTh;
83 
84  public:
85  IonChannel();
86  virtual ~IonChannel();
87 
88 #pragma region Accessor-Mutators
89 
90  virtual void Enabled(bool bVal);
91  virtual bool Enabled();
92 
93  void Gmax(float fltVal);
94  float Gmax();
95 
96  void Ginit(float fltVal);
97  float Ginit();
98 
99  void Hinit(float fltVal);
100  float Hinit();
101 
102  void Minit(float fltVal);
103  float Minit();
104 
105  void MPower(float fltVal);
106  float MPower();
107 
108  void HPower(float fltVal);
109  float HPower();
110 
111  void EquilibriumPotential(float fltVal);
112  float EquilibriumPotential();
113 
114  void Nm(float fltVal);
115  float Nm();
116 
117  void Nh(float fltVal);
118  float Nh();
119 
120  AnimatSim::Gains::Gain *Minf();
121  void Minf(AnimatSim::Gains::Gain *lpGain);
122  void Minf(std::string strXml);
123 
125  void Tm(AnimatSim::Gains::Gain *lpGain);
126  void Tm(std::string strXml);
127 
128  AnimatSim::Gains::Gain *Hinf();
129  void Hinf(AnimatSim::Gains::Gain *lpGain);
130  void Hinf(std::string strXml);
131 
133  void Th(AnimatSim::Gains::Gain *lpGain);
134  void Th(std::string strXml);
135 
136 #pragma endregion
137 
138 #pragma region DataAccesMethods
139 
140  virtual float *GetDataPointer(const std::string &strDataType);
141  virtual bool SetData(const std::string &strDataType, const std::string &strValue, bool bThrowError = true);
142  virtual void QueryProperties(CStdPtrArray<TypeProperty> &aryProperties);
143 
144 #pragma endregion
145 
146  virtual float CalculateCurrent(float fltStep, float fltVm);
147 
148  virtual void Load(CStdXml &oXml);
149  virtual void ResetSimulation();
150  };
151 } //AnimatSim
float m_fltGmax
The maximum conductance.
Definition: IonChannel.h:27
float m_fltGInit
The initial conductance.
Definition: IonChannel.h:18
float m_fltM
The current activation level.
Definition: IonChannel.h:42
float m_fltH
The current inactivation level.
Definition: IonChannel.h:54
AnimatSim::Gains::Gain * m_lpTm
The Tm gain function.
Definition: IonChannel.h:51
float m_fltEquilibriumPotential
The equilibrium potential.
Definition: IonChannel.h:39
The Gain base class.
Definition: Gain.h:35
float m_fltMPower
The activation exponent in the equation.
Definition: IonChannel.h:33
AnimatSim::Gains::Gain * m_lpHinf
The Hinf gain function.
Definition: IonChannel.h:60
AnimatSim::Gains::Gain * m_lpTh
The Th gain function.
Definition: IonChannel.h:63
float m_fltI
The current.
Definition: IonChannel.h:70
float m_fltTm
The Tm value.
Definition: IonChannel.h:79
float m_fltMinf
The Minf value.
Definition: IonChannel.h:73
float m_fltHPower
The inactivation exponent in the equation.
Definition: IonChannel.h:36
float m_fltMInit
The initial activation.
Definition: IonChannel.h:21
Animat base class.
Definition: AnimatBase.h:36
AnimatSim::Gains::Gain * m_lpMinf
The Minf gain function.
Definition: IonChannel.h:48
float m_fltHinf
The Hinf value.
Definition: IonChannel.h:76
float m_fltHInit
The initial inactivation.
Definition: IonChannel.h:24
float m_fltG
The active conductance.
Definition: IonChannel.h:30
float m_fltTh
The Th value.
Definition: IonChannel.h:82
float m_fltTotalAct
The total activation level.
Definition: IonChannel.h:67
Contains all of the classes to implement a basic integrate and fire neural model. ...