NEST main@caf0ae8
 
Loading...
Searching...
No Matches
nest::SPBuilder Class Reference

#include <conn_builder.h>

Inheritance diagram for nest::SPBuilder:
[legend]
Collaboration diagram for nest::SPBuilder:
[legend]

Public Member Functions

 SPBuilder (NodeCollectionPTR sources, NodeCollectionPTR targets, ThirdOutBuilder *third_out, const Dictionary &conn_spec, const std::vector< Dictionary > &syn_spec)
 The SPBuilder is in charge of the creation of synapses during the simulation under the control of the structural plasticity manager.
 
const std::string & get_pre_synaptic_element_name () const
 
const std::string & get_post_synaptic_element_name () const
 
void set_name (const std::string &name)
 
std::string get_name () const
 
void update_delay (long &d) const
 Writes the default delay of the connection model, if the SPBuilder only uses the default delay.
 
void sp_connect (const std::vector< size_t > &sources, const std::vector< size_t > &targets)
 
- Public Member Functions inherited from nest::BipartiteConnBuilder
virtual void connect ()
 Connect with or without structural plasticity.
 
virtual void disconnect ()
 Delete synapses with or without structural plasticity.
 
 BipartiteConnBuilder (NodeCollectionPTR sources, NodeCollectionPTR targets, ThirdOutBuilder *third_out, const Dictionary &conn_spec, const std::vector< Dictionary > &syn_specs)
 
virtual ~BipartiteConnBuilder ()
 
size_t get_synapse_model () const
 
bool get_default_delay () const
 
void set_synaptic_element_names (const std::string &pre_name, const std::string &post_name)
 
bool change_connected_synaptic_elements (size_t snode_id, size_t tnode_id, const size_t tid, int update)
 Updates the number of connected synaptic elements in the target and the source.
 
virtual bool supports_symmetric () const
 Return true if rule allows creation of symmetric connectivity.
 
virtual bool is_symmetric () const
 Return true if rule automatically creates symmetric connectivity.
 
bool allows_autapses () const
 
bool allows_multapses () const
 
virtual bool requires_proxies () const
 Return true if rule is applicable only to nodes with proxies.
 

Protected Member Functions

void connect_ () override
 Implements the actual connection algorithm.
 
void connect_ (NodeCollectionPTR sources, NodeCollectionPTR targets)
 In charge of dynamically creating the new synapses.
 
void connect_ (const std::vector< size_t > &sources, const std::vector< size_t > &targets)
 In charge of dynamically creating the new synapses.
 
virtual void connect_ ()=0
 Implements the actual connection algorithm.
 
- Protected Member Functions inherited from nest::BipartiteConnBuilder
bool all_parameters_scalar_ () const
 
virtual void sp_connect_ ()
 
virtual void disconnect_ ()
 
virtual void sp_disconnect_ ()
 
void update_param_dict_ (size_t snode_id, Node &target, size_t target_thread, RngPtr rng, size_t indx)
 
void single_connect_ (size_t, Node &, size_t, RngPtr)
 Create connection between given nodes, fill parameter values.
 
void single_disconnect_ (size_t, Node &, size_t)
 
void skip_conn_parameter_ (size_t, size_t n_skip=1)
 Moves pointer in parameter array.
 
bool loop_over_targets_ () const
 Returns true if conventional looping over targets is indicated.
 

Protected Attributes

std::string name_
 The name of the SPBuilder; used to identify its properties in the structural_plasticity_synapses kernel attributes.
 
- Protected Attributes inherited from nest::BipartiteConnBuilder
NodeCollectionPTR sources_
 Population to connect from.
 
NodeCollectionPTR targets_
 Population to connect to.
 
ThirdOutBuilder * third_out_
 To be triggered when primary connection is created.
 
bool allow_autapses_
 
bool allow_multapses_
 
bool make_symmetric_
 
bool creates_symmetric_connections_
 
std::vector< std::exception_ptr > exceptions_raised_
 buffer for exceptions raised in threads
 
std::string pre_synaptic_element_name_
 
std::string post_synaptic_element_name_
 
bool use_structural_plasticity_
 
std::vector< ConnParameter * > parameters_requiring_skipping_
 Pointers to connection parameters specified as arrays.
 
std::vector< size_t > synapse_model_id_
 
std::vector< std::vector< Dictionary > > param_dicts_
 Dictionaries to pass to connect function, one per thread for every syn_spec.
 

Constructor & Destructor Documentation

◆ SPBuilder()

nest::SPBuilder::SPBuilder ( NodeCollectionPTR  sources,
NodeCollectionPTR  targets,
ThirdOutBuilder *  third_out,
const Dictionary &  conn_spec,
const std::vector< Dictionary > &  syn_spec 
)

The SPBuilder is in charge of the creation of synapses during the simulation under the control of the structural plasticity manager.

Parameters
sourcesthe source nodes on which synapses can be created/deleted
targetsthe target nodes on which synapses can be created/deleted
conn_specconnectivity specification
syn_specsynapse specifications

References nest::BipartiteConnBuilder::use_structural_plasticity_.

Member Function Documentation

◆ connect_() [1/4]

void nest::SPBuilder::connect_ ( )
overrideprotectedvirtual

Implements the actual connection algorithm.

Implements nest::BipartiteConnBuilder.

Referenced by sp_connect().

Here is the caller graph for this function:

◆ connect_() [2/4]

virtual void nest::BipartiteConnBuilder::connect_ ( )
protectedvirtual

Implements the actual connection algorithm.

Implements nest::BipartiteConnBuilder.

◆ connect_() [3/4]

void nest::SPBuilder::connect_ ( const std::vector< size_t > &  sources,
const std::vector< size_t > &  targets 
)
protected

In charge of dynamically creating the new synapses.

Parameters
sourcesnodes from which synapses can be created
targetstarget nodes for the newly created synapses

References nest::BipartiteConnBuilder::allow_autapses_, nest::BipartiteConnBuilder::change_connected_synaptic_elements(), nest::BipartiteConnBuilder::exceptions_raised_, nest::NodeManager::get_node_or_proxy(), nest::VPManager::get_thread_id(), nest::get_vp_specific_rng(), nest::kernel(), nest::KernelManager::node_manager, nest::BipartiteConnBuilder::single_connect_(), nest::BipartiteConnBuilder::skip_conn_parameter_(), and nest::KernelManager::vp_manager.

Here is the call graph for this function:

◆ connect_() [4/4]

void nest::SPBuilder::connect_ ( NodeCollectionPTR  sources,
NodeCollectionPTR  targets 
)
protected

In charge of dynamically creating the new synapses.

◆ get_name()

std::string nest::SPBuilder::get_name ( ) const
inline

References name_.

◆ get_post_synaptic_element_name()

const std::string & nest::SPBuilder::get_post_synaptic_element_name ( ) const
inline

References nest::BipartiteConnBuilder::post_synaptic_element_name_.

Referenced by nest::SPManager::update_structural_plasticity().

Here is the caller graph for this function:

◆ get_pre_synaptic_element_name()

const std::string & nest::SPBuilder::get_pre_synaptic_element_name ( ) const
inline

References nest::BipartiteConnBuilder::pre_synaptic_element_name_.

Referenced by nest::SPManager::update_structural_plasticity().

Here is the caller graph for this function:

◆ set_name()

void nest::SPBuilder::set_name ( const std::string &  name)
inline

References name_.

Referenced by nest::SPManager::set_status().

Here is the caller graph for this function:

◆ sp_connect()

void nest::SPBuilder::sp_connect ( const std::vector< size_t > &  sources,
const std::vector< size_t > &  targets 
)
Note
Only for internal use by SPManager.

References connect_(), and nest::BipartiteConnBuilder::exceptions_raised_.

Referenced by nest::SPManager::create_synapses().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_delay()

void nest::SPBuilder::update_delay ( long &  d) const

Writes the default delay of the connection model, if the SPBuilder only uses the default delay.

If not, the min/max_delay has to be specified explicitly with the kernel status.

References Dictionary::get(), nest::ModelManager::get_connector_defaults(), nest::BipartiteConnBuilder::get_default_delay(), nest::Time::get_steps(), nest::BipartiteConnBuilder::get_synapse_model(), nest::kernel(), and nest::KernelManager::model_manager.

Here is the call graph for this function:

Member Data Documentation

◆ name_

std::string nest::SPBuilder::name_
protected

The name of the SPBuilder; used to identify its properties in the structural_plasticity_synapses kernel attributes.

Referenced by get_name(), and set_name().


The documentation for this class was generated from the following files: