# izhikevich_tutorial_neuron # ########################## # # # Copyright statement # +++++++++++++++++++ # # This file is part of NEST. # # Copyright (C) 2004 The NEST Initiative # # NEST is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # NEST is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with NEST. If not, see . # model izhikevich_tutorial_neuron: state: v mV = -65 mV # Membrane potential in mV # TODO: add new variable u with the type real # NESTML syntax for variables: variable_name type = initial_value equations: v' = (.04 * v * v / mV + 5 * v + (140 - u) * mV + (I_e * GOhm)) / ms # TODO: add an ODE for u parameters: a real = .02 # describes time scale of recovery variable # TODO: add remaining variables input: spikes <- spike I_e pA <- continuous output: spike update: integrate_odes() onReceive(spikes): # add synaptic current v += spikes * mV * s onCondition(v >= 30mV): # TODO: implement threshold crossing check # use an if-condition block. The NESTML syntax looks like: # if a >= b: # a += b # b = a # emit_spike()