NEST  2.6.0,not_revisioned_source_dir@0
relaxos_van_der_pol.h
Go to the documentation of this file.
1 /*
2  * relaxos_van_der_pol.h
3  *
4  * This file is part of NEST.
5  *
6  * Copyright (C) 2004 The NEST Initiative
7  *
8  * NEST is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * NEST is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with NEST. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef RELAXOS_VAN_DER_POL_H
24 #define RELAXOS_VAN_DER_POL_H
25 
26 #include "nest.h"
27 #include "event.h"
28 #include "archiving_node.h"
29 #include "connection.h"
30 #include "universal_data_logger.h"
31 
32 
33 namespace nest {
34  class Network;
35 
37  public:
40 
45  using Node::handle;
47 
49 
50  void handle(SpikeEvent &);
51  void handle(CurrentEvent &);
52  void handle(DataLoggingRequest &);
53 
57 
58  void get_status(DictionaryDatum&) const;
59  void set_status(const DictionaryDatum&);
60 
61  private:
62  void init_state_(const Node&);
63  void init_buffers_();
64  void update(Time const &, const long_t, const long_t);
65  void calibrate();
66 
67  // The next two classes need to be friends to access the State_ class/member
69  friend class UniversalDataLogger<relaxos_van_der_pol>;
70 
71  struct Parameters_ {
77 
78  Parameters_();
79  void get(DictionaryDatum&) const;
80  double set(const DictionaryDatum&);
81  };
82 
83  struct State_ {
85 
86  State_();
87  void get(DictionaryDatum&) const;
88  double set(DictionaryDatum&);
89  };
90 
91  struct Buffers_ {
94 
98 
100  };
101 
102  struct Variables_ {
104  };
105 
109  Variables V_;
110 
112  };
113 
114  inline
116  {
117  //
118  }
119 
120  inline
122  {
123  //
124  }
125 
126  inline
128  {
129  //
130  }
131 
132  inline
134  {
135  //
136  }
137 
138  inline
140  {
141  //
142  }
143 
144  inline
146  {
147  //
148  }
149 
150 } // namespace
151 
152 #endif
Definition: relaxos_van_der_pol.h:71
Definition of Archiving_Node which is capable of recording and managing a spike history.
const Name receptor_type("receptor_type")
Connection parameters.
Definition: nest_names.h:240
void handle(SpikeEvent &)
Handle incoming spike events.
const Name d("d")
Specific to Izhikevich 2003.
Definition: nest_names.h:83
RingBuffer in_currents
Definition: relaxos_van_der_pol.h:96
static RecordablesMap< relaxos_van_der_pol > recordablesMap_
Definition: relaxos_van_der_pol.h:111
Definition: relaxos_van_der_pol.h:36
double_t IPSP_
Definition: relaxos_van_der_pol.h:75
double_t y
Definition: relaxos_van_der_pol.h:84
void calibrate()
Re-calculate dependent parameters of the node.
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
Definition: relaxos_van_der_pol.h:102
double_t y_init
Definition: relaxos_van_der_pol.h:76
Definition: relaxos_van_der_pol.h:91
Map names of recordables to data access functions.
Definition: recordables_map.h:58
Definition: nest_time.h:130
Buffers_ B_
Definition: relaxos_van_der_pol.h:108
void init_state_(const Node &)
Private function to initialize the state of a node to model defaults.
Parameters_ P_
Definition: relaxos_van_der_pol.h:106
void update(Time const &, const long_t, const long_t)
Bring the node from state $t$ to $t+n*dt$.
const Name target("target")
Connection parameters.
Definition: nest_names.h:282
State_ S_
Definition: relaxos_van_der_pol.h:107
double_t EPSP_
Definition: relaxos_van_der_pol.h:74
void set_status(const DictionaryDatum &)
Definition: relaxos_van_der_pol.h:145
void get_status(DictionaryDatum &) const
Definition: relaxos_van_der_pol.h:139
a node which archives spike history for the purposes of timing dependent plasticity ...
Definition: archiving_node.h:50
friend class UniversalDataLogger< relaxos_van_der_pol >
Definition: relaxos_van_der_pol.h:69
long_t port
Connection port number to distinguis outgoing connections.
Definition: nest.h:155
virtual void handle(SpikeEvent &e)
Handle incoming spike events.
Definition: node.cpp:198
double double_t
Double precision floating point numbers.
Definition: nest.h:93
RingBuffer in_spikes
Definition: relaxos_van_der_pol.h:97
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
double_t I_ext_
Definition: relaxos_van_der_pol.h:73
Request data to be logged/logged data to be sent.
Definition: event.h:486
unsigned char synindex
Unsigned char type for enumerations of synapse types.
Definition: nest.h:115
port send_test_event(Node &, rport, synindex, bool)
Send an event to the receiving_node passed as an argument.
Definition: relaxos_van_der_pol.h:115
double set(DictionaryDatum &)
Default types used by the NEST kernel.
Event for spike information.
Definition: event.h:320
Base class for all NEST network objects.
Definition: node.h:96
double_t Mu_
Definition: relaxos_van_der_pol.h:72
double_t Y_init
Definition: relaxos_van_der_pol.h:103
Buffers_(relaxos_van_der_pol &)
Variables V_
Definition: relaxos_van_der_pol.h:109
long long_t
Integer number with at least 32 bit.
Definition: nest.h:96
void init_buffers_()
Private function to initialize the buffers of a node.
double set(const DictionaryDatum &)
RingBuffer ex_currents
Definition: relaxos_van_der_pol.h:95
UniversalDataLogger< relaxos_van_der_pol > logger_
Definition: relaxos_van_der_pol.h:99
Buffer Layout.
Definition: ring_buffer.h:77
Definition: relaxos_van_der_pol.h:83
port handles_test_event(SpikeEvent &, rport)
Check if the node can handle a particular event and receptor type.
Definition: relaxos_van_der_pol.h:121