23#ifndef IAF_PSC_ALPHA_PS_H
24#define IAF_PSC_ALPHA_PS_H
215 bool get_next_event_(
const long T,
double& ev_offset,
double& ev_weight,
bool& end_of_refract );
234 void update(
Time const& origin,
const long from,
const long to )
override;
256 void emit_spike_(
Time const& origin,
const long lag,
const double t0,
const double dt );
467 e.set_sender( *
this );
468 return target.handles_test_event( e, receptor_type );
474 if ( receptor_type != 0 )
484 if ( receptor_type != 0 )
494 if ( receptor_type != 0 )
515 const double delta_EL = ptmp.
set( d,
this );
517 stmp.
set( d, ptmp, delta_EL,
this );
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Exact integration voltage propagator for models with alpha psc.
Definition iaf_propagator.h:128
A node which archives spike history for the purposes of spike-timing dependent plasticity (STDP)
Definition archiving_node.h:49
void get_status(Dictionary &d) const override
Export properties of the node by setting entries in the status dictionary.
Definition archiving_node.cpp:220
void set_status(const Dictionary &d) override
Change properties of the node according to the entries in the dictionary.
Definition archiving_node.cpp:236
Event for electrical currents.
Definition event.h:569
Request data to be logged/logged data to be sent.
Definition event.h:636
Base class for all NEST network objects.
Definition node.h:99
std::string get_name() const
Return class name.
Definition node.cpp:105
Map names of recordables to data access functions.
Definition recordables_map.h:61
Buffer Layout.
Definition ring_buffer.h:83
Queue for all spikes arriving into a neuron.
Definition slice_ring_buffer.h:63
Event for spike information.
Definition event.h:418
Definition nest_time.h:135
Exception to be thrown if the specified receptor type does not exist in the node.
Definition exceptions.h:417
Definition iaf_psc_alpha_ps.h:151
IAFPropagatorAlpha propagator_in_
Definition iaf_psc_alpha_ps.h:270
void init_buffers_() override
Configure persistent internal data structures.
Definition iaf_psc_alpha_ps.cpp:251
void emit_instant_spike_(Time const &origin, const long lag, const double spike_offset)
Instantaneously emit a spike at the precise time defined by origin, lag and spike_offset and reset th...
Definition iaf_psc_alpha_ps.cpp:560
static RecordablesMap< iaf_psc_alpha_ps > recordablesMap_
Mapping of recordables names to access functions.
Definition iaf_psc_alpha_ps.h:460
Buffers_ B_
Definition iaf_psc_alpha_ps.h:456
bool get_next_event_(const long T, double &ev_offset, double &ev_weight, bool &end_of_refract)
Definition iaf_psc_alpha_ps.cpp:303
double get_I_in_() const
Read out state variable I_in.
Definition iaf_psc_alpha_ps.h:433
double get_dI_in_() const
Read out state variable derivative of I_ex.
Definition iaf_psc_alpha_ps.h:440
Parameters_ P_
Instances of private data structures for the different types of data pertaining to the model.
Definition iaf_psc_alpha_ps.h:453
void update(Time const &origin, const long from, const long to) override
Time Evolution Operator.
Definition iaf_psc_alpha_ps.cpp:309
void pre_run_hook() override
Re-calculate dependent parameters of the node.
Definition iaf_psc_alpha_ps.cpp:262
void propagate_(const double dt)
Propagate neuron state.
Definition iaf_psc_alpha_ps.cpp:501
void get_status(Dictionary &) const override
Export properties of the node by setting entries in the status dictionary.
Definition iaf_psc_alpha_ps.h:502
iaf_psc_alpha_ps()
Basic constructor.
Definition iaf_psc_alpha_ps.cpp:229
double get_I_ex_() const
Read out state variable I_ex.
Definition iaf_psc_alpha_ps.h:419
void set_status(const Dictionary &) override
Change properties of the node according to the entries in the dictionary.
Definition iaf_psc_alpha_ps.h:512
void handle(SpikeEvent &) override
Handle incoming spike events.
Definition iaf_psc_alpha_ps.cpp:464
size_t send_test_event(Node &, size_t, synindex, bool) override
Send an event to the receiving_node passed as an argument.
Definition iaf_psc_alpha_ps.h:464
size_t handles_test_event(SpikeEvent &, size_t) override
Check if the node can handle a particular event and receptor type.
Definition iaf_psc_alpha_ps.h:472
double threshold_distance(double t_step) const
Based on the current state, compute the value of the membrane potential after taking a timestep of le...
Definition iaf_psc_alpha_ps.cpp:582
double get_dI_ex_() const
Read out state variable derivative of I_ex.
Definition iaf_psc_alpha_ps.h:426
double get_V_m_() const
Read out the real membrane potential.
Definition iaf_psc_alpha_ps.h:412
State_ S_
Definition iaf_psc_alpha_ps.h:454
bool is_off_grid() const override
Returns true if the node sends/receives off-grid events.
Definition iaf_psc_alpha_ps.h:187
Variables_ V_
Definition iaf_psc_alpha_ps.h:455
void emit_spike_(Time const &origin, const long lag, const double t0, const double dt)
Trigger regula falsi method to find the precise spike time within the mini-timestep (t0,...
Definition iaf_psc_alpha_ps.cpp:536
friend class UniversalDataLogger< iaf_psc_alpha_ps >
Definition iaf_psc_alpha_ps.h:274
IAFPropagatorAlpha propagator_ex_
Propagator object for updating synaptic components.
Definition iaf_psc_alpha_ps.h:269
virtual size_t handles_test_event(SpikeEvent &, size_t receptor_type)
Check if the node can handle a particular event and receptor type.
Definition node.cpp:271
virtual void handle(SpikeEvent &e)
Handle incoming spike events.
Definition node.cpp:265
const std::string recordables("recordables")
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
void register_iaf_psc_alpha_ps(const std::string &name)
Definition iaf_psc_alpha_ps.cpp:50
size_t synindex
For enumerations of synapse types.
Definition nest_types.h:115
Buffers of the model.
Definition iaf_psc_alpha_ps.h:362
UniversalDataLogger< iaf_psc_alpha_ps > logger_
Logger for all analog data.
Definition iaf_psc_alpha_ps.h:374
RingBuffer currents_
Definition iaf_psc_alpha_ps.h:371
SliceRingBuffer events_
Queue for incoming events.
Definition iaf_psc_alpha_ps.h:370
Independent parameters of the model.
Definition iaf_psc_alpha_ps.h:282
double c_m_
Membrane capacitance in pF.
Definition iaf_psc_alpha_ps.h:292
double tau_m_
Membrane time constant in ms.
Definition iaf_psc_alpha_ps.h:285
Parameters_()
Sets default parameter values.
Definition iaf_psc_alpha_ps.cpp:73
double U_reset_
Reset potential.
Definition iaf_psc_alpha_ps.h:315
double tau_syn_in_
Definition iaf_psc_alpha_ps.h:289
double U_th_
Threshold, RELATIVE TO RESTING POTENTIAL(!).
Definition iaf_psc_alpha_ps.h:305
double E_L_
Resting potential in mV.
Definition iaf_psc_alpha_ps.h:298
void get(Dictionary &) const
Store current values in dictionary.
Definition iaf_psc_alpha_ps.cpp:105
double U_min_
Lower bound, RELATIVE TO RESTING POTENTIAL(!).
Definition iaf_psc_alpha_ps.h:309
double set(const Dictionary &, Node *)
Set values from dictionary.
Definition iaf_psc_alpha_ps.cpp:120
double tau_syn_ex_
Time constant of synaptic current in ms.
Definition iaf_psc_alpha_ps.h:288
double I_e_
External DC current [pA].
Definition iaf_psc_alpha_ps.h:301
double t_ref_
Refractory period in ms.
Definition iaf_psc_alpha_ps.h:295
State variables of the model.
Definition iaf_psc_alpha_ps.h:333
State_()
Default initialization.
Definition iaf_psc_alpha_ps.cpp:87
bool is_refractory_
true while refractory
Definition iaf_psc_alpha_ps.h:340
double V_m_
Membrane pot. rel. to resting pot. E_L_.
Definition iaf_psc_alpha_ps.h:339
double dI_in_
alpha current, second component
Definition iaf_psc_alpha_ps.h:338
void set(const Dictionary &, const Parameters_ &, double, Node *)
Set values from dictionary.
Definition iaf_psc_alpha_ps.cpp:202
double I_ex_
alpha current, first component
Definition iaf_psc_alpha_ps.h:335
void get(Dictionary &, const Parameters_ &) const
Definition iaf_psc_alpha_ps.cpp:191
double y_input_
external input current
Definition iaf_psc_alpha_ps.h:334
double dI_ex_
alpha current, second component
Definition iaf_psc_alpha_ps.h:336
long last_spike_step_
time stamp of most recent spike
Definition iaf_psc_alpha_ps.h:341
double last_spike_offset_
offset of most recent spike
Definition iaf_psc_alpha_ps.h:342
double I_in_
alpha current, first component
Definition iaf_psc_alpha_ps.h:337
Internal variables of the model.
Definition iaf_psc_alpha_ps.h:383
double P30_
progagator matrix elem, 3rd row
Definition iaf_psc_alpha_ps.h:391
long refractory_steps_
refractory time in steps
Definition iaf_psc_alpha_ps.h:387
double exp_tau_syn_in_
exp(-h/tau_syn_in)
Definition iaf_psc_alpha_ps.h:390
double inv_tau_syn_in_
1 / tau_syn_in
Definition iaf_psc_alpha_ps.h:404
double inv_tau_syn_ex_
1 / tau_syn_ex
Definition iaf_psc_alpha_ps.h:403
double P32_ex_
progagator matrix elem, 3rd row (ex)
Definition iaf_psc_alpha_ps.h:393
double exp_tau_syn_ex_
exp(-h/tau_syn_ex)
Definition iaf_psc_alpha_ps.h:389
double inv_c_m_
1 / c_m
Definition iaf_psc_alpha_ps.h:405
double y_input_before_
at beginning of mini-step
Definition iaf_psc_alpha_ps.h:396
double I_in_before_
at beginning of mini-step
Definition iaf_psc_alpha_ps.h:398
double P31_in_
progagator matrix elem, 3rd row (in)
Definition iaf_psc_alpha_ps.h:394
double dI_in_before_
at beginning of mini-step
Definition iaf_psc_alpha_ps.h:400
double inv_tau_m_
1 / tau_m
Definition iaf_psc_alpha_ps.h:402
double h_ms_
time resolution in ms
Definition iaf_psc_alpha_ps.h:384
double dI_ex_before_
at beginning of mini-step
Definition iaf_psc_alpha_ps.h:399
double psc_norm_in_
e / tau_syn_in
Definition iaf_psc_alpha_ps.h:386
double P31_ex_
progagator matrix elem, 3rd row (ex)
Definition iaf_psc_alpha_ps.h:392
double expm1_tau_m_
exp(-h/tau_m) - 1
Definition iaf_psc_alpha_ps.h:388
double psc_norm_ex_
e / tau_syn_ex
Definition iaf_psc_alpha_ps.h:385
double V_m_before_
at beginning of mini-step
Definition iaf_psc_alpha_ps.h:401
double I_ex_before_
at beginning of mini-step
Definition iaf_psc_alpha_ps.h:397
double P32_in_
progagator matrix elem, 3rd row (in)
Definition iaf_psc_alpha_ps.h:395