38 "Sends out spike events");
54 "Handles process call",
58 "Handles reinit call",
61 static Finfo * processShared[] = {
68 "Shared message to receive Process message from scheduler",
69 processShared,
sizeof( processShared ) /
sizeof(
Finfo* ) );
77 "Maximum membrane potential. Membrane potential is reset to c whenever"
78 " it reaches Vmax. NOTE: Izhikevich model specifies the PEAK voltage,"
79 " rather than THRSHOLD voltage. The threshold depends on the previous"
85 "Reset potential. Membrane potential is reset to c whenever it reaches"
91 "Parameter d in Izhikevich model. Unit is V/s.",
96 "Parameter a in Izhikevich model. Unit is s^{-1}",
101 "Parameter b in Izhikevich model. Unit is s^{-1}",
106 "Membrane potential, equivalent to v in Izhikevich equation.",
111 "Parameter u in Izhikevich equation. Unit is V/s",
115 "Total current going through the membrane. Unit is A.",
119 "Initial membrane potential. Unit is V.",
124 "External current injection into the neuron",
129 "Initial value of u.",
135 "Coefficient of v^2 in Izhikevich equation. Defaults to 0.04 in "
136 "physiological unit. In SI it should be 40000.0. Unit is V^-1 s^{-1}",
142 "Coefficient of v in Izhikevich model. Defaults to 5 in physiological"
143 " unit, 5000.0 for SI units. Unit is s^{-1}",
148 "Constant term in Izhikevich model. Defaults to 140 in both"
149 " physiological and SI units. unit is V/s.",
154 "Hidden coefficient of input current term (I) in Izhikevich model. Defaults to 1e9 Ohm/s.",
160 "True if this neuron is an accommodating one. The equation for recovery"
161 " variable u is special in this case.",
167 "This is used for accommodating neurons where recovery variables u is"
168 " computed as: u += tau*a*(b*(Vm-u0))",
177 "Injection current into the neuron.",
182 "Destination message to modify parameter c at runtime.",
187 "Destination message to modify parameter d at runtime.",
192 "Destination message modify parameter a at runtime.",
197 "Destination message to modify parameter b at runtime",
202 "Handles conductance and reversal potential arguments from Channel",
205 static Finfo * channelShared[] = {
211 "This is a shared message from a IzhikevichNrn to channels."
212 "The first entry is a MsgDest for the info coming from "
213 "the channel. It expects Gk and Ek from the channel "
214 "as args. The second entry is a MsgSrc sending Vm ",
215 channelShared,
sizeof( channelShared ) /
sizeof(
Finfo* )
217 static Finfo* IzhikevichNrnFinfos[] = {
246 static string doc[] = {
247 "Name",
"IzhikevichNrn",
248 "Author",
"Subhasis Ray",
249 "Description",
"Izhikevich model of spiking neuron "
250 "(Izhikevich,EM. 2003. Simple model of spiking neurons. Neural"
251 " Networks, IEEE Transactions on 14(6). pp 1569-1572).\n"
252 " This class obeys the equations (in physiological units):\n"
253 " dVm/dt = 0.04 * Vm^2 + 5 * Vm + 140 - u + inject\n"
254 " du/dt = a * (b * Vm - u)\n"
255 " if Vm >= Vmax then Vm = c and u = u + d\n"
256 " Vmax = 30 mV in the paper."
263 sizeof( IzhikevichNrnFinfos ) /
sizeof(
Finfo* ),
266 sizeof(doc)/
sizeof(
string));
291 accommodating_(false),
void setBeta(double value)
void handleChannel(double Gk, double Ek)
static const Cinfo * initCinfo()
void setAlpha(double value)
void setAccommodating(bool value)
void setInitU(double value)
static const Cinfo * IzhikevichNrnCinfo
static SrcFinfo1< double > * spikeOut()
double getRmByTau() const
void setInitVm(double value)
void reinit(const Eref &eref, ProcPtr proc)
void setInject(double value)
void setGamma(double value)
bool getAccommodating() const
void setRmByTau(double value)
static SrcFinfo1< double > * VmOut()
void setVmax(double value)
static const Cinfo * initCinfo()
void process(const Eref &eref, ProcPtr proc)