32#include <gsl/gsl_errno.h>
33#include <gsl/gsl_matrix.h>
34#include <gsl/gsl_odeiv.h>
35#include <gsl/gsl_sf_exp.h>
58extern "C" int hh_psc_alpha_dynamics(
double,
const double*,
double*,
void* );
225void register_hh_psc_alpha(
const std::string& name );
227class hh_psc_alpha :
public ArchivingNode
232 hh_psc_alpha(
const hh_psc_alpha& );
233 ~hh_psc_alpha()
override;
241 using Node::handles_test_event;
243 size_t send_test_event( Node&,
size_t, synindex,
bool )
override;
245 void handle( SpikeEvent& )
override;
246 void handle( CurrentEvent& )
override;
247 void handle( DataLoggingRequest& )
override;
249 size_t handles_test_event( SpikeEvent&,
size_t )
override;
250 size_t handles_test_event( CurrentEvent&,
size_t )
override;
251 size_t handles_test_event( DataLoggingRequest&,
size_t )
override;
253 void get_status(
Dictionary& )
const override;
254 void set_status(
const Dictionary& )
override;
257 void init_buffers_()
override;
258 void pre_run_hook()
override;
259 void update( Time
const&,
const long,
const long )
override;
266 friend int hh_psc_alpha_dynamics(
double,
const double*,
double*,
void* );
269 friend class RecordablesMap< hh_psc_alpha >;
270 friend class UniversalDataLogger< hh_psc_alpha >;
326 double y_[ STATE_VEC_SIZE ];
329 State_(
const Parameters_& );
330 State_(
const State_& );
332 State_& operator=(
const State_& );
346 Buffers_( hh_psc_alpha& );
347 Buffers_(
const Buffers_&, hh_psc_alpha& );
350 UniversalDataLogger< hh_psc_alpha > logger_;
353 RingBuffer spike_exc_;
354 RingBuffer spike_inh_;
355 RingBuffer currents_;
359 gsl_odeiv_control* c_;
360 gsl_odeiv_evolve* e_;
361 gsl_odeiv_system sys_;
367 double IntegrationStep_;
387 double PSCurrInit_E_;
390 double PSCurrInit_I_;
392 int RefractoryCounts_;
398 template < State_::StateVecElems elem >
402 return S_.y_[ elem ];
413 static RecordablesMap< hh_psc_alpha > recordablesMap_;
418hh_psc_alpha::send_test_event( Node& target,
size_t receptor_type,
synindex,
bool )
421 e.set_sender( *
this );
423 return target.handles_test_event( e, receptor_type );
428hh_psc_alpha::handles_test_event( SpikeEvent&,
size_t receptor_type )
430 if ( receptor_type != 0 )
432 throw UnknownReceptorType( receptor_type, get_name() );
438hh_psc_alpha::handles_test_event( CurrentEvent&,
size_t receptor_type )
440 if ( receptor_type != 0 )
442 throw UnknownReceptorType( receptor_type, get_name() );
448hh_psc_alpha::handles_test_event( DataLoggingRequest& dlr,
size_t receptor_type )
450 if ( receptor_type != 0 )
452 throw UnknownReceptorType( receptor_type, get_name() );
454 return B_.logger_.connect_logging_device( dlr, recordablesMap_ );
458hh_psc_alpha::get_status(
Dictionary& d )
const
468hh_psc_alpha::set_status(
const Dictionary& d )
470 Parameters_ ptmp = P_;
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
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
const std::string E_L("E_L")
const std::string I_e("I_e")
const std::string E_K("E_K")
const std::string recordables("recordables")
const std::string C_m("C_m")
const std::string g_Na("g_Na")
const std::string E_Na("E_Na")
const std::string g_K("g_K")
const std::string target("target")
const std::string g_L("g_L")
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
size_t synindex
For enumerations of synapse types.
Definition nest_types.h:115
const double e
Definition numerics.cpp:32