23#ifndef MODEL_MANAGER_H
24#define MODEL_MANAGER_H
51 void finalize(
const bool )
override;
95 template <
class ModelT >
96 size_t register_node_model(
const std::string& name, std::string deprecation_info = std::string() );
112 template <
template <
typename target
identifierT >
class ConnectionT >
124 void copy_model(
const std::string& old_name,
const std::string& new_name,
const Dictionary& params );
188 template <
typename CompleteConnecionT >
301inline const std::vector< ConnectorModel* >&
316inline std::unique_ptr< SecondaryEvent >
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Definition connector_model.h:69
virtual std::unique_ptr< SecondaryEvent > get_secondary_event()=0
Interface for kernel manager classes.
Definition manager_interface.h:46
Definition model_manager.h:45
void clear_connection_models_()
Definition model_manager.cpp:383
std::vector< std::vector< ConnectorModel * > > connection_models_
The list of connection models.
Definition model_manager.h:265
void set_node_defaults_(size_t model_id, const Dictionary ¶ms)
Set the default parameters of a model.
Definition model_manager.cpp:260
void finalize(const bool) override
Take down manager after operation.
Definition model_manager.cpp:90
void clear_node_models_()
Delete all models and clear the modeldict.
Definition model_manager.cpp:352
void memory_info() const
Print out the memory information for each node model.
Definition model_manager.cpp:434
void initialize(const bool) override
Prepare manager for operation.
Definition model_manager.cpp:68
~ModelManager() override
Definition model_manager.cpp:61
Dictionary get_connector_defaults(synindex syn_id) const
Definition model_manager.cpp:333
void assert_valid_syn_id(synindex syn_id, size_t t) const
Asserts validity of synapse index, otherwise throws exception.
Definition model_manager.h:308
Model * proxynode_model_
Definition model_manager.h:270
ConnectorModel & get_connection_model(synindex syn_id, size_t thread_id)
Return pointer to protoype for given synapse id.
Definition model_manager.h:295
bool are_model_defaults_modified() const
Definition model_manager.h:289
const std::vector< ConnectorModel * > & get_connection_models(size_t tid)
Definition model_manager.h:302
size_t get_num_connection_models() const
Definition model_manager.cpp:99
void register_connection_model(const std::string &name)
Register a synape model with a custom Connector model and without any common properties.
Definition model_manager_impl.h:59
bool set_model_defaults(const std::string &name, const Dictionary ¶ms)
Set the default parameters of a model.
Definition model_manager.cpp:237
void set_status(const Dictionary &) override
Set the status of the manager.
Definition model_manager.cpp:111
void set_synapse_defaults_(size_t model_id, const Dictionary ¶ms)
Set the default parameters of a model.
Definition model_manager.cpp:271
std::vector< Model * > node_models_
List of node models.
Definition model_manager.h:244
std::vector< std::vector< Node * > > proxy_nodes_
Placeholders for remote nodes, one per thread.
Definition model_manager.h:275
static bool compare_model_by_id_(const int a, const int b)
Compares model ids for sorting in memory_info.
Definition model_manager.cpp:427
Model * get_node_model(size_t) const
Definition model_manager.h:282
bool model_defaults_modified_
True if any model defaults have been modified.
Definition model_manager.h:277
void register_specific_connection_model_(const std::string &name)
Definition model_manager_impl.h:80
Node * create_proxynode_(size_t t, int model_id)
Definition model_manager.cpp:470
void copy_node_model_(const size_t old_id, const std::string &new_name, const Dictionary ¶ms)
Copy an existing node model and register it as a new model.
Definition model_manager.cpp:186
void copy_model(const std::string &old_name, const std::string &new_name, const Dictionary ¶ms)
Copy an existing model and register it as a new model.
Definition model_manager.cpp:138
size_t get_node_model_id(const std::string) const
Definition model_manager.cpp:310
Dictionary synapsedict_
Dictionary of all synapse models.
Definition model_manager.h:268
size_t register_node_model_(Model *model)
Definition model_manager.cpp:162
ModelManager()
Definition model_manager.cpp:50
Dictionary modeldict_
Dictionary of all node models.
Definition model_manager.h:267
void set_connector_defaults(synindex syn_id, const Dictionary &d)
size_t register_node_model(const std::string &name, std::string deprecation_info=std::string())
Register a node-model prototype.
Definition model_manager_impl.h:44
size_t get_synapse_model_id(std::string model_name)
Definition model_manager.cpp:321
void get_status(Dictionary &) override
Retrieve the status of the manager.
Definition model_manager.cpp:116
void calibrate(const TimeConverter &)
Resize the structures for the Connector objects if necessary.
Definition model_manager.cpp:407
std::unique_ptr< SecondaryEvent > get_secondary_event_prototype(const synindex syn_id, const size_t tid)
Definition model_manager.h:317
Node * get_proxy_node(size_t tid, size_t node_id)
Definition model_manager_impl.h:116
void copy_connection_model_(const size_t old_id, const std::string &new_name, const Dictionary ¶ms)
Copy an existing synapse model and register it as a new model.
Definition model_manager.cpp:208
Base class for all Models.
Definition model.h:53
Base class for all NEST network objects.
Definition node.h:99
Class to convert times from one representation to another.
Definition nest_timeconverter.h:42
Exception to be thrown if the specified Synapse type does not exist.
Definition exceptions.h:275
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
size_t synindex
For enumerations of synapse types.
Definition nest_types.h:115
Declarations for base class Node.