'''
A very simple example Brian script to show how to implement
a leaky integrate and fire model. In this example, we also
drive the single leaky integrate and fire neuron with
regularly spaced spikes from the :class:`SpikeGeneratorGroup`.
'''
from brian import *

tau = 10*ms
Vr = -70*mV
Vt = -55*mV

model = Model(equations='''
    dV/dt = -(V-Vr)/tau : volt
    ''', threshold=Vt, reset=Vr)
G = NeuronGroup(1,model)

spikes = linspace(10*ms,100*ms,25)
input = MultipleSpikeGeneratorGroup([spikes])

C = Connection(input, G)
C[0,0] = 5*mV

M = StateMonitor(G, 'V', record=True)

G.V = Vr
run(100*ms)
plot(M.times/ms,M[0]/mV)
show()
