23#ifndef ASTROCYTE_LR_1994_H
24#define ASTROCYTE_LR_1994_H
31#include <gsl/gsl_errno.h>
32#include <gsl/gsl_matrix.h>
33#include <gsl/gsl_odeiv.h>
34#include <gsl/gsl_sf_exp.h>
59extern "C" int astrocyte_lr_1994_dynamics(
double,
const double*,
double*,
void* );
236void register_astrocyte_lr_1994(
const std::string& name );
238class astrocyte_lr_1994 :
public Node
243 astrocyte_lr_1994(
const astrocyte_lr_1994& );
244 ~astrocyte_lr_1994()
override;
252 using Node::handles_test_event;
253 using Node::sends_secondary_event;
256 void handle( SpikeEvent& )
override;
257 void handle( CurrentEvent& )
override;
258 void handle( DataLoggingRequest& )
override;
260 size_t handles_test_event( SpikeEvent&,
size_t )
override;
261 size_t handles_test_event( CurrentEvent&,
size_t )
override;
262 size_t handles_test_event( DataLoggingRequest&,
size_t )
override;
265 sends_secondary_event( SICEvent& )
override
269 void get_status(
Dictionary& )
const override;
270 void set_status(
const Dictionary& )
override;
273 void init_buffers_()
override;
274 void pre_run_hook()
override;
281 void update( Time
const&,
const long,
const long )
override;
288 friend int astrocyte_lr_1994_dynamics(
double,
const double*,
double*,
void* );
291 friend class RecordablesMap< astrocyte_lr_1994 >;
292 friend class UniversalDataLogger< astrocyte_lr_1994 >;
316 double ratio_ER_cyt_;
350 double y_[ STATE_VEC_SIZE ];
352 State_(
const Parameters_& );
353 State_(
const State_& );
355 State_& operator=(
const State_& );
358 void set(
const Dictionary&,
const Parameters_&, Node* );
368 Buffers_( astrocyte_lr_1994& );
369 Buffers_(
const Buffers_&, astrocyte_lr_1994& );
372 UniversalDataLogger< astrocyte_lr_1994 > logger_;
375 RingBuffer spike_exc_;
376 RingBuffer currents_;
380 gsl_odeiv_control* c_;
381 gsl_odeiv_evolve* e_;
382 gsl_odeiv_system sys_;
388 double IntegrationStep_;
400 std::vector< double > sic_values;
408 template < State_::StateVecElems elem >
412 return S_.y_[ elem ];
422 static RecordablesMap< astrocyte_lr_1994 > recordablesMap_;
427astrocyte_lr_1994::handles_test_event( SpikeEvent&,
size_t receptor_type )
429 if ( receptor_type != 0 )
431 throw UnknownReceptorType( receptor_type, get_name() );
437astrocyte_lr_1994::handles_test_event( CurrentEvent&,
size_t receptor_type )
439 if ( receptor_type != 0 )
441 throw UnknownReceptorType( receptor_type, get_name() );
447astrocyte_lr_1994::handles_test_event( DataLoggingRequest& dlr,
size_t receptor_type )
449 if ( receptor_type != 0 )
451 throw UnknownReceptorType( receptor_type, get_name() );
453 return B_.logger_.connect_logging_device( dlr, recordablesMap_ );
457astrocyte_lr_1994::get_status(
Dictionary& d )
const
466astrocyte_lr_1994::set_status(
const Dictionary& d )
468 Parameters_ ptmp = P_;
471 stmp.set( d, ptmp,
this );
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
const std::string Ca_astro("Ca_astro")
const std::string IP3("IP3")
const std::string recordables("recordables")
const std::string h_IP3R("h_IP3R")
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
Declarations for base class Node.