NEST main@caf0ae8
 
Loading...
Searching...
No Matches
structural_plasticity_node.h
Go to the documentation of this file.
1/*
2 * structural_plasticity_node.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 STRUCTURAL_PLASTICITY_NODE_H
24#define STRUCTURAL_PLASTICITY_NODE_H
25
26// C++ includes:
27#include <algorithm>
28#include <deque>
29
30// Includes from nestkernel:
31#include "nest_time.h"
32#include "nest_types.h"
33#include "node.h"
34#include "synaptic_element.h"
35
36
37namespace nest
38{
39
44{
46
47public:
49
55 double get_Ca_minus() const override;
56
64 double get_synaptic_elements( std::string n ) const override;
65
70 int get_synaptic_elements_vacant( std::string n ) const override;
71
76 int get_synaptic_elements_connected( std::string n ) const override;
77
81 std::map< std::string, double > get_synaptic_elements() const override;
82
87 void update_synaptic_elements( double t ) override;
88
93 void decay_synaptic_elements_vacant() override;
94
98 void connect_synaptic_element( std::string name, int n ) override;
99
100 void get_status( Dictionary& d ) const override;
101 void set_status( const Dictionary& d ) override;
102
107 double get_tau_Ca() const;
108
109protected:
113 void set_spiketime( Time const& t_sp, double offset = 0.0 );
114
118 void clear_history();
119
120private:
124 double Ca_t_;
125
133 double Ca_minus_;
134
139 double tau_Ca_;
140
144 double beta_Ca_;
145
149 std::map< std::string, SynapticElement > synaptic_elements_map_;
150};
151
152inline double
154{
155 return tau_Ca_;
156}
157
158inline double
163
164} // of namespace
165
166#endif /* #ifndef STRUCTURAL_PLASTICITY_NODE_H */
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Base class for all NEST network objects.
Definition node.h:99
Implements functionality related to structural synaptic plasticity.
Definition structural_plasticity_node.h:44
void clear_history()
Clear spike history.
Definition structural_plasticity_node.cpp:145
void decay_synaptic_elements_vacant() override
Delete a certain portion of the vacant synaptic elements which are not in use.
Definition structural_plasticity_node.cpp:239
void set_status(const Dictionary &d) override
Change properties of the node according to the entries in the dictionary.
Definition structural_plasticity_node.cpp:72
StructuralPlasticityNode()
Definition structural_plasticity_node.cpp:32
void get_status(Dictionary &d) const override
Export properties of the node by setting entries in the status dictionary.
Definition structural_plasticity_node.cpp:52
int get_synaptic_elements_vacant(std::string n) const override
Get the number of synaptic elements of type n which are available for new synapse creation.
Definition structural_plasticity_node.cpp:177
double Ca_minus_
Value of the calcium concentration [Ca2+] at Ca_t_.
Definition structural_plasticity_node.h:133
double get_tau_Ca() const
Retrieve the current value of tau_Ca which defines the exponential decay constant of the intracellula...
Definition structural_plasticity_node.h:153
int get_synaptic_elements_connected(std::string n) const override
Get the number of synaptic element of type n which are currently connected.
Definition structural_plasticity_node.cpp:193
double beta_Ca_
Increase in calcium concentration [Ca2+] for each spike of the neuron.
Definition structural_plasticity_node.h:144
double Ca_t_
Time of the last update of the Calcium concentration in ms.
Definition structural_plasticity_node.h:124
void update_synaptic_elements(double t) override
Change the number of synaptic elements in the node depending on the dynamics described by the corresp...
Definition structural_plasticity_node.cpp:223
void set_spiketime(Time const &t_sp, double offset=0.0)
Record spike history.
Definition structural_plasticity_node.cpp:262
std::map< std::string, SynapticElement > synaptic_elements_map_
Map of the synaptic elements.
Definition structural_plasticity_node.h:149
void connect_synaptic_element(std::string name, int n) override
Change the number of connected synaptic elements by n.
Definition structural_plasticity_node.cpp:250
std::map< std::string, double > get_synaptic_elements() const override
Get the number of all synaptic elements for the current Node.
Definition structural_plasticity_node.cpp:209
double tau_Ca_
Time constant for exponential decay of the intracellular calcium concentration.
Definition structural_plasticity_node.h:139
double get_Ca_minus() const override
return the current value of Ca_minus
Definition structural_plasticity_node.h:159
Definition nest_time.h:135
virtual std::map< std::string, double > get_synaptic_elements() const
Get the number of all synaptic elements for the current Node at time t.
Definition node.h:762
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
Declarations for base class Node.