23 #ifndef AEIF_COND_ALPHA_MULTISYNAPSE_H
24 #define AEIF_COND_ALPHA_MULTISYNAPSE_H
127 const std::vector<double_t>&
y, std::vector<double_t>& f);
204 std::vector<double_t>
y_;
205 std::vector<double_t>
k1;
206 std::vector<double_t>
k2;
207 std::vector<double_t>
k3;
208 std::vector<double_t>
k4;
209 std::vector<double_t>
k5;
210 std::vector<double_t>
k6;
211 std::vector<double_t>
k7;
212 std::vector<double_t>
yin;
320 if (receptor_type != 0)
329 if (receptor_type != 0)
370 const std::vector<double_t>&
y, std::vector<double_t>& f)
381 static const double_t largest_exp = std::exp(10.);
392 i += S::NUMBER_OF_STATES_ELEMENTS_PER_RECEPTOR)
394 I_syn_exc += y[S::G_EXC + i] * (V -
P_.
E_ex);
395 I_syn_inh += y[S::G_INH + i] * (V -
P_.
E_in);
402 (exp_arg > 10.) ? largest_exp :
P_.
Delta_T * std::exp(exp_arg);
405 f[S::V_M] = (-
P_.
g_L * ((V -
P_.
E_L) - I_spike) - I_syn_exc - I_syn_inh - w
414 j = i * S::NUMBER_OF_STATES_ELEMENTS_PER_RECEPTOR;
415 f[S::DG_EXC + j] = -y[S::DG_EXC + j] /
P_.
taus_syn[i];
416 f[S::G_EXC + j] = y[S::DG_EXC + j] - y[S::G_EXC + j] /
P_.
taus_syn[i];
418 f[S::DG_INH + j] = -y[S::DG_INH + j] /
P_.
taus_syn[i];
419 f[S::G_INH + j] = y[S::DG_INH + j] - y[S::G_INH + j] /
P_.
taus_syn[i];
const Name recordables("recordables")
List of recordable state data (Device parameters)
Definition: nest_names.h:244
void init_state_(const Node &proto)
Private function to initialize the state of a node to model defaults.
Definition: aeif_cond_alpha_multisynapse.cpp:360
Definition: aeif_cond_alpha_multisynapse.h:196
Internal variables of the model.
Definition: aeif_cond_alpha_multisynapse.h:266
double_t t_ref
Refractory period in ms.
Definition: aeif_cond_alpha_multisynapse.h:154
std::vector< double_t > yref
4th order update
Definition: aeif_cond_alpha_multisynapse.h:214
int int_t
Integer number with at least 16 bit.
Definition: nest.h:95
Definition of Archiving_Node which is capable of recording and managing a spike history.
std::vector< double_t > k3
Runge-Kutta variable.
Definition: aeif_cond_alpha_multisynapse.h:207
const Name receptor_type("receptor_type")
Connection parameters.
Definition: nest_names.h:240
std::vector< double_t > k2
Runge-Kutta variable.
Definition: aeif_cond_alpha_multisynapse.h:206
double IntegrationStep_
current integration time step, updated by solver
Definition: aeif_cond_alpha_multisynapse.h:249
int_t r_
number of refractory steps remaining
Definition: aeif_cond_alpha_multisynapse.h:215
friend class UniversalDataLogger< aeif_cond_alpha_multisynapse >
Definition: aeif_cond_alpha_multisynapse.h:131
const Name d("d")
Specific to Izhikevich 2003.
Definition: nest_names.h:83
RingBuffer currents_
Definition: aeif_cond_alpha_multisynapse.h:242
std::vector< double_t > k6
Runge-Kutta variable.
Definition: aeif_cond_alpha_multisynapse.h:210
std::vector< long > receptor_types_
Definition: aeif_cond_alpha_multisynapse.h:161
port handles_test_event(SpikeEvent &, rport)
Check if the node can handle a particular event and receptor type.
Definition: aeif_cond_alpha_multisynapse.cpp:633
static const size_t NUMBER_OF_STATES_ELEMENTS_PER_RECEPTOR
Definition: aeif_cond_alpha_multisynapse.h:202
void set_sender(Node &)
Change pointer to sending Node.
Definition: event.h:714
void handle(SpikeEvent &)
Handle incoming spike events.
Definition: aeif_cond_alpha_multisynapse.cpp:644
double_t step_
simulation step size in ms
Definition: aeif_cond_alpha_multisynapse.h:248
double_t g_L
Leak Conductance in nS.
Definition: aeif_cond_alpha_multisynapse.h:144
void init_buffers_()
Private function to initialize the buffers of a node.
Definition: aeif_cond_alpha_multisynapse.cpp:367
double_t E_in
Inhibitory reversal Potential in mV.
Definition: aeif_cond_alpha_multisynapse.h:147
std::vector< RingBuffer > spike_exc_
buffers and sums up incoming spikes/currents
Definition: aeif_cond_alpha_multisynapse.h:240
double_t tau_w
adaptation time-constant in ms.
Definition: aeif_cond_alpha_multisynapse.h:150
double_t C_m
Membrane Capacitance in pF.
Definition: aeif_cond_alpha_multisynapse.h:145
void get(DictionaryDatum &) const
Store current values in dictionary.
Definition: aeif_cond_alpha_multisynapse.cpp:134
double_t t_ref_
Refractory period in ms.
Definition: aeif_cond_alpha_multisynapse.h:142
size_t num_of_receptors_
Definition: aeif_cond_alpha_multisynapse.h:162
Parameters_ P_
Definition: aeif_cond_alpha_multisynapse.h:295
Event for electrical currents.
Definition: event.h:420
long_t rport
Connection port number to distinguish incoming connections, also called receiver port.
Definition: nest.h:147
Conductance based exponential integrate-and-fire neuron model according to Brette and Gerstner (2005)...
Definition: aeif_cond_alpha_multisynapse.h:89
port send_test_event(Node &, rport, synindex, bool)
Send an event to the receiving_node passed as an argument.
Definition: aeif_cond_alpha_multisynapse.h:307
double_t V_peak_
Spike detection threshold in mV.
Definition: aeif_cond_alpha_multisynapse.h:140
Independent parameters of the model.
Definition: aeif_cond_alpha_multisynapse.h:138
Buffers of the model.
Definition: aeif_cond_alpha_multisynapse.h:231
std::vector< double_t > k7
Runge-Kutta variable.
Definition: aeif_cond_alpha_multisynapse.h:211
State_ & operator=(const State_ &)
Definition: aeif_cond_alpha_multisynapse.cpp:111
std::vector< double_t > ynew
5th order update
Definition: aeif_cond_alpha_multisynapse.h:213
Map names of recordables to data access functions.
Definition: recordables_map.h:58
const Name w("w")
Specific to Brette & Gerstner 2005 (aeif_cond-*)
Definition: nest_names.h:343
const Name y("y")
Definition: topology_names.h:52
Definition: nest_time.h:130
static const size_t NUMBER_OF_FIXED_STATES_ELEMENTS
Definition: aeif_cond_alpha_multisynapse.h:201
virtual ~aeif_cond_alpha_multisynapse()
Definition: aeif_cond_alpha_multisynapse.cpp:352
void set(const DictionaryDatum &)
Definition: aeif_cond_alpha_multisynapse.cpp:280
std::string get_name() const
Return class name.
Definition: node.cpp:83
Variables_ V_
Definition: aeif_cond_alpha_multisynapse.h:297
const Name S("S")
Binary state (output) of neuron (Ginzburg neuron)
Definition: nest_names.h:255
void set_status(const DictionaryDatum &d)
Definition: archiving_node.cpp:185
double_t I_stim_
Input current injected by CurrentEvent.
Definition: aeif_cond_alpha_multisynapse.h:258
std::vector< double_t > g0_in_
initial value to normalise inhibitory synaptic conductance
Definition: aeif_cond_alpha_multisynapse.h:273
State_ S_
Definition: aeif_cond_alpha_multisynapse.h:296
Definition: aeif_cond_alpha_multisynapse.h:194
Exception to be thrown if the specified receptor type does not exist in the node. ...
Definition: exceptions.h:254
std::vector< double_t > taus_syn
Time constants of synaptic currents in ms..
Definition: aeif_cond_alpha_multisynapse.h:155
const Name target("target")
Connection parameters.
Definition: nest_names.h:282
void get(DictionaryDatum &) const
Definition: aeif_cond_alpha_multisynapse.cpp:244
double_t V_th
Spike threshold in mV.
Definition: aeif_cond_alpha_multisynapse.h:153
Buffers_(aeif_cond_alpha_multisynapse &)
Definition: aeif_cond_alpha_multisynapse.cpp:324
State variables of the model.
Definition: aeif_cond_alpha_multisynapse.h:181
double_t V_reset_
Reset Potential in mV.
Definition: aeif_cond_alpha_multisynapse.h:141
std::vector< double_t > k5
Runge-Kutta variable.
Definition: aeif_cond_alpha_multisynapse.h:209
void calibrate()
Re-calculate dependent parameters of the node.
Definition: aeif_cond_alpha_multisynapse.cpp:384
int_t RefractoryCounts_
Definition: aeif_cond_alpha_multisynapse.h:275
Parameters_()
Sets default parameter values.
Definition: aeif_cond_alpha_multisynapse.cpp:62
void get_status(DictionaryDatum &) const
Definition: aeif_cond_alpha_multisynapse.h:335
a node which archives spike history for the purposes of timing dependent plasticity ...
Definition: archiving_node.h:50
static RecordablesMap< aeif_cond_alpha_multisynapse > recordablesMap_
Mapping of recordables names to access functions.
Definition: aeif_cond_alpha_multisynapse.h:302
long_t port
Connection port number to distinguis outgoing connections.
Definition: nest.h:155
std::vector< double_t > k1
Runge-Kutta variable.
Definition: aeif_cond_alpha_multisynapse.h:205
double_t E_L
Leak reversal Potential (aka resting potential) in mV.
Definition: aeif_cond_alpha_multisynapse.h:148
double_t I_e
Intrinsic current in pA.
Definition: aeif_cond_alpha_multisynapse.h:156
aeif_cond_alpha_multisynapse()
Definition: aeif_cond_alpha_multisynapse.cpp:340
virtual void handle(SpikeEvent &e)
Handle incoming spike events.
Definition: node.cpp:198
std::vector< double_t > y_
neuron state
Definition: aeif_cond_alpha_multisynapse.h:204
double double_t
Double precision floating point numbers.
Definition: nest.h:93
std::vector< double_t > g0_ex_
initial value to normalise excitatory synaptic conductance
Definition: aeif_cond_alpha_multisynapse.h:270
virtual port handles_test_event(SpikeEvent &, rport receptor_type)
Check if the node can handle a particular event and receptor type.
Definition: node.cpp:203
std::vector< RingBuffer > spike_inh_
Definition: aeif_cond_alpha_multisynapse.h:241
Buffers_ B_
Definition: aeif_cond_alpha_multisynapse.h:298
Request data to be logged/logged data to be sent.
Definition: event.h:486
Definition: aeif_cond_alpha_multisynapse.h:195
double_t E_ex
Excitatory reversal Potential in mV.
Definition: aeif_cond_alpha_multisynapse.h:146
unsigned char synindex
Unsigned char type for enumerations of synapse types.
Definition: nest.h:115
std::vector< double_t > k4
Runge-Kutta variable.
Definition: aeif_cond_alpha_multisynapse.h:208
void aeif_cond_alpha_multisynapse_dynamics(const std::vector< double_t > &y, std::vector< double_t > &f)
Function computing right-hand side of ODE for the ODE solver.
Definition: aeif_cond_alpha_multisynapse.h:369
bool has_connections_
Definition: aeif_cond_alpha_multisynapse.h:165
Default types used by the NEST kernel.
void get_status(DictionaryDatum &d) const
Definition: archiving_node.cpp:175
std::vector< double_t > yin
Runge-Kutta variable.
Definition: aeif_cond_alpha_multisynapse.h:212
double_t b
Spike-triggered adaptation in pA.
Definition: aeif_cond_alpha_multisynapse.h:152
Event for spike information.
Definition: event.h:320
void update(Time const &, const long_t, const long_t)
Bring the node from state $t$ to $t+n*dt$.
Definition: aeif_cond_alpha_multisynapse.cpp:453
Base class for all NEST network objects.
Definition: node.h:96
Definition: aeif_cond_alpha_multisynapse.h:197
double_t HMIN
Smallest permissible stepsize in ms.
Definition: aeif_cond_alpha_multisynapse.h:158
State_(const Parameters_ &)
Default initialization.
Definition: aeif_cond_alpha_multisynapse.cpp:84
Definition: aeif_cond_alpha_multisynapse.h:198
Definition: aeif_cond_alpha_multisynapse.h:193
StateVecElems
Enumeration identifying elements in state vector State_::y_.
Definition: aeif_cond_alpha_multisynapse.h:191
Definition: aeif_cond_alpha_multisynapse.h:193
double_t MAXERR
Maximal error for adaptive stepsize solver.
Definition: aeif_cond_alpha_multisynapse.h:157
long long_t
Integer number with at least 32 bit.
Definition: nest.h:96
double_t get_y_elem_() const
Read out state vector elements, used by UniversalDataLogger.
Definition: aeif_cond_alpha_multisynapse.h:281
const double e
Definition: numerics.cpp:62
void set_status(const DictionaryDatum &)
Definition: aeif_cond_alpha_multisynapse.h:345
double_t a
Subthreshold adaptation in nS.
Definition: aeif_cond_alpha_multisynapse.h:151
UniversalDataLogger< aeif_cond_alpha_multisynapse > logger_
Logger for all analog data.
Definition: aeif_cond_alpha_multisynapse.h:237
double_t Delta_T
Slope faktor in ms.
Definition: aeif_cond_alpha_multisynapse.h:149
Buffer Layout.
Definition: ring_buffer.h:77
void set(const DictionaryDatum &)
Set values from dictionary.
Definition: aeif_cond_alpha_multisynapse.cpp:158