|
| DiligentConnectorModel (const std::string name, bool is_primary=true, bool has_delay=true, bool requires_symmetric=false) |
|
| DiligentConnectorModel (const DiligentConnectorModel &other, const std::string name) |
|
virtual nest::ConnectorBase * | add_connection (nest::Node &src, nest::Node &tgt, nest::ConnectorBase *conn, nest::synindex syn_id, double weight, double delay) |
|
virtual nest::ConnectorBase * | add_connection (nest::Node &src, nest::Node &tgt, nest::ConnectorBase *conn, nest::synindex syn_id, DictionaryDatum &d, double weight, double delay) |
|
virtual nest::ConnectorBase * | delete_connection (nest::Node &tgt, size_t target_thread, nest::ConnectorBase *conn, nest::synindex syn_id) |
|
virtual nest::ConnectorModel * | clone (std::string name) const |
|
template<typename ConnectionT>
class spore::DiligentConnectorModel< ConnectionT >
Connector model for diligent connections.
Generic connector model for connections that require being updated on a regular time grid. Use the function spore::register_diligent_connection_model provided in diligent_connector_model.h, to register your synapse model at the network, to use the diligent synapse model instead of NEST's build-in synapse model.
Diligent connections are connection models that are updated on a regular time grid (as opposed to NEST's standard lazy update). More precisely, the API guarantees that the send function of the synapse is called at least once in a certain time window. If no presynaptic spike is send via the synapse during that time, a "dummy" spike is inserted to trigger a synapse update. The synapse can distinguish between "dummy" spikes and "real" spikes through the receptor port, which is set to the invalid value of -1 for dummy spikes (see SynapseUpdateEvent). The update interval can be controlled using the InitSynapseUpdater SLI function (see ConnectionUpdateManager)
The DiligentConnectorModel provides the interface to this mechanism. New synapse models that use the diligent connection framework should be registered using the register_diligent_connection_model template function. Connections instantiated from this model will be automatically registered at the global ConnectionUpdateManager object that takes care of triggering the synapse updates.
Synapses registered with the DiligentConnectorModel must implement a method called is_degenerated that takes no arguments and returns a bool
. This is used by the garbage collector of the ConnectionUpdateManager to identify synapses that need to be deleted. The mechanism is described in detail in the documentation of ConnectionUpdateManager.
Another difference diligent connectors and standard NEST connections is that the calibrate function of their CommonSynapseProperties object is called additionally on simulation startup (such as nest::Node objects).
- See also
- ConnectionUpdateManager, SynapseUpdateEvent, SynapticSamplingRewardGradientConnection
template<typename ConnectionT >
nest::ConnectorBase * spore::DiligentConnectorModel< ConnectionT >::add_connection |
( |
nest::Node & |
src, |
|
|
nest::Node & |
tgt, |
|
|
nest::ConnectorBase * |
conn, |
|
|
nest::synindex |
syn_id, |
|
|
double |
delay, |
|
|
double |
weight |
|
) |
| |
|
virtual |
Adds a new connection between two nodes.
Delay and weight have the default value NAN. NAN is a special value in cmath, which describes double values that are not a number. If delay or weight is omitted in an add_connection call, NAN indicates this and weight/delay are set only, if they are valid.
- Parameters
-
tgt | source node. |
tgt | target node. |
target_thread | thread of the target. |
conn | Connector Base from where the connection will be deleted. |
syn_id | Synapse type. |
delay | synaptic delay. |
weight | synaptic weight. |
- Returns
- A new Connector, with the inserted new connection.
template<typename ConnectionT >
nest::ConnectorBase * spore::DiligentConnectorModel< ConnectionT >::add_connection |
( |
nest::Node & |
src, |
|
|
nest::Node & |
tgt, |
|
|
nest::ConnectorBase * |
conn, |
|
|
nest::synindex |
syn_id, |
|
|
DictionaryDatum & |
p, |
|
|
double |
delay, |
|
|
double |
weight |
|
) |
| |
|
virtual |
Adds a new connection between two nodes.
Delay and weight have the default value NAN. NAN is a special value in cmath, which describes double values that are not a number. If delay or weight is omitted in an add_connection call, NAN indicates this and weight/delay are set only, if they are valid.
- Parameters
-
tgt | source node. |
tgt | target node. |
target_thread | thread of the target. |
conn | Connector Base from where the connection will be deleted. |
syn_id | Synapse type. |
p | dictionary with synapse paramters. |
delay | synaptic delay. |
weight | synaptic weight. |
- Returns
- A new Connector, with the inserted new connection.