GeNN
4.9.0
GPU enhanced Neuronal Networks (GeNN)
|
Object used for specifying a neuronal network model. More...
#include <modelSpec.h>
Public Types | |
typedef std::map< std::string, NeuronGroupInternal >::value_type | NeuronGroupValueType |
typedef std::map< std::string, SynapseGroupInternal >::value_type | SynapseGroupValueType |
typedef std::map< std::string, CurrentSourceInternal >::value_type | CurrentSourceValueType |
typedef std::map< std::string, CustomUpdateInternal >::value_type | CustomUpdateValueType |
typedef std::map< std::string, CustomUpdateWUInternal >::value_type | CustomUpdateWUValueType |
Public Member Functions | |
ModelSpec () | |
ModelSpec (const ModelSpec &)=delete | |
ModelSpec & | operator= (const ModelSpec &)=delete |
~ModelSpec () | |
void | setName (const std::string &name) |
Method to set the neuronal network model name. More... | |
void | setPrecision (FloatType) |
Set numerical precision for floating point. More... | |
void | setTimePrecision (TimePrecision timePrecision) |
Set numerical precision for time. More... | |
void | setDT (double dt) |
Set the integration step size of the model. More... | |
void | setTiming (bool timingEnabled) |
Set whether timers and timing commands are to be included. More... | |
void | setSeed (unsigned int rngSeed) |
Set the random seed (disables automatic seeding if argument not 0). More... | |
void | setDefaultVarLocation (VarLocation loc) |
What is the default location for model state variables? More... | |
void | setDefaultExtraGlobalParamLocation (VarLocation loc) |
What is the default location for model extra global parameters? More... | |
void | setDefaultSparseConnectivityLocation (VarLocation loc) |
What is the default location for sparse synaptic connectivity? More... | |
void | setDefaultNarrowSparseIndEnabled (bool enabled) |
Sets default for whether narrow i.e. less than 32-bit types are used for sparse matrix indices. More... | |
void | setMergePostsynapticModels (bool merge) |
Should compatible postsynaptic models and dendritic delay buffers be fused? More... | |
void | setFusePostsynapticModels (bool fuse) |
Should compatible postsynaptic models and dendritic delay buffers be fused? More... | |
void | setFusePrePostWeightUpdateModels (bool fuse) |
Should compatible pre and postsynaptic weight update model variables and updates be fused? More... | |
void | setBatchSize (unsigned int batchSize) |
const std::string & | getName () const |
Gets the name of the neuronal network model. More... | |
const std::string & | getPrecision () const |
Gets the floating point numerical precision. More... | |
std::string | getTimePrecision () const |
Gets the floating point numerical precision used to represent time. More... | |
double | getDT () const |
Gets the model integration step size. More... | |
unsigned int | getSeed () const |
Get the random seed. More... | |
bool | isTimingEnabled () const |
Are timers and timing commands enabled. More... | |
unsigned int | getBatchSize () const |
unsigned int | getNumNeurons () const |
How many neurons make up the entire model. More... | |
NeuronGroup * | findNeuronGroup (const std::string &name) |
Find a neuron group by name. More... | |
template<typename NeuronModel > | |
NeuronGroup * | addNeuronPopulation (const std::string &name, unsigned int size, const NeuronModel *model, const typename NeuronModel::ParamValues ¶mValues, const typename NeuronModel::VarValues &varInitialisers) |
Adds a new neuron group to the model using a neuron model managed by the user. More... | |
template<typename NeuronModel > | |
NeuronGroup * | addNeuronPopulation (const std::string &name, unsigned int size, const typename NeuronModel::ParamValues ¶mValues, const typename NeuronModel::VarValues &varInitialisers) |
Adds a new neuron group to the model using a singleton neuron model created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros. More... | |
SynapseGroup * | findSynapseGroup (const std::string &name) |
Find a synapse group by name. More... | |
template<typename WeightUpdateModel , typename PostsynapticModel > | |
SynapseGroup * | addSynapsePopulation (const std::string &name, SynapseMatrixType mtype, unsigned int delaySteps, const std::string &src, const std::string &trg, const WeightUpdateModel *wum, const typename WeightUpdateModel::ParamValues &weightParamValues, const typename WeightUpdateModel::VarValues &weightVarInitialisers, const typename WeightUpdateModel::PreVarValues &weightPreVarInitialisers, const typename WeightUpdateModel::PostVarValues &weightPostVarInitialisers, const PostsynapticModel *psm, const typename PostsynapticModel::ParamValues &postsynapticParamValues, const typename PostsynapticModel::VarValues &postsynapticVarInitialisers, const InitSparseConnectivitySnippet::Init &connectivityInitialiser=uninitialisedConnectivity()) |
Adds a synapse population to the model using weight update and postsynaptic models managed by the user. More... | |
template<typename WeightUpdateModel , typename PostsynapticModel > | |
SynapseGroup * | addSynapsePopulation (const std::string &name, SynapseMatrixType mtype, unsigned int delaySteps, const std::string &src, const std::string &trg, const WeightUpdateModel *wum, const typename WeightUpdateModel::ParamValues &weightParamValues, const typename WeightUpdateModel::VarValues &weightVarInitialisers, const typename WeightUpdateModel::PreVarValues &weightPreVarInitialisers, const typename WeightUpdateModel::PostVarValues &weightPostVarInitialisers, const PostsynapticModel *psm, const typename PostsynapticModel::ParamValues &postsynapticParamValues, const typename PostsynapticModel::VarValues &postsynapticVarInitialisers, const InitToeplitzConnectivitySnippet::Init &connectivityInitialiser) |
Adds a synapse population to the model using weight update and postsynaptic models managed by the user. More... | |
template<typename WeightUpdateModel , typename PostsynapticModel > | |
SynapseGroup * | addSynapsePopulation (const std::string &name, SynapseMatrixType mtype, unsigned int delaySteps, const std::string &src, const std::string &trg, const typename WeightUpdateModel::ParamValues &weightParamValues, const typename WeightUpdateModel::VarValues &weightVarInitialisers, const typename PostsynapticModel::ParamValues &postsynapticParamValues, const typename PostsynapticModel::VarValues &postsynapticVarInitialisers, const InitSparseConnectivitySnippet::Init &connectivityInitialiser=uninitialisedConnectivity()) |
Adds a synapse population to the model using singleton weight update and postsynaptic models created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros. More... | |
template<typename WeightUpdateModel , typename PostsynapticModel > | |
SynapseGroup * | addSynapsePopulation (const std::string &name, SynapseMatrixType mtype, unsigned int delaySteps, const std::string &src, const std::string &trg, const typename WeightUpdateModel::ParamValues &weightParamValues, const typename WeightUpdateModel::VarValues &weightVarInitialisers, const typename PostsynapticModel::ParamValues &postsynapticParamValues, const typename PostsynapticModel::VarValues &postsynapticVarInitialisers, const InitToeplitzConnectivitySnippet::Init &connectivityInitialiser) |
Adds a synapse population to the model using singleton weight update and postsynaptic models created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros. More... | |
template<typename WeightUpdateModel , typename PostsynapticModel > | |
SynapseGroup * | addSynapsePopulation (const std::string &name, SynapseMatrixType mtype, unsigned int delaySteps, const std::string &src, const std::string &trg, const typename WeightUpdateModel::ParamValues &weightParamValues, const typename WeightUpdateModel::VarValues &weightVarInitialisers, const typename WeightUpdateModel::PreVarValues &weightPreVarInitialisers, const typename WeightUpdateModel::PostVarValues &weightPostVarInitialisers, const typename PostsynapticModel::ParamValues &postsynapticParamValues, const typename PostsynapticModel::VarValues &postsynapticVarInitialisers, const InitSparseConnectivitySnippet::Init &connectivityInitialiser=uninitialisedConnectivity()) |
Adds a synapse population to the model using singleton weight update and postsynaptic models created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros. More... | |
template<typename WeightUpdateModel , typename PostsynapticModel > | |
SynapseGroup * | addSynapsePopulation (const std::string &name, SynapseMatrixType mtype, unsigned int delaySteps, const std::string &src, const std::string &trg, const typename WeightUpdateModel::ParamValues &weightParamValues, const typename WeightUpdateModel::VarValues &weightVarInitialisers, const typename WeightUpdateModel::PreVarValues &weightPreVarInitialisers, const typename WeightUpdateModel::PostVarValues &weightPostVarInitialisers, const typename PostsynapticModel::ParamValues &postsynapticParamValues, const typename PostsynapticModel::VarValues &postsynapticVarInitialisers, const InitToeplitzConnectivitySnippet::Init &connectivityInitialiser) |
Adds a synapse population to the model using singleton weight update and postsynaptic models created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros. More... | |
template<typename PostsynapticModel > | |
SynapseGroup * | addSlaveSynapsePopulation (const std::string &name, const std::string &weightSharingMasterName, unsigned int delaySteps, const std::string &src, const std::string &trg, const PostsynapticModel *psm, const typename PostsynapticModel::ParamValues &postsynapticParamValues, const typename PostsynapticModel::VarValues &postsynapticVarInitialisers) |
Adds a synapse population to the model using shared per-synapse variables and a postsynaptic model managed by the user. More... | |
template<typename PostsynapticModel > | |
SynapseGroup * | addSlaveSynapsePopulation (const std::string &name, const std::string &weightSharingMasterName, unsigned int delaySteps, const std::string &src, const std::string &trg, const typename PostsynapticModel::ParamValues &postsynapticParamValues, const typename PostsynapticModel::VarValues &postsynapticVarInitialisers) |
Adds a synapse population to the model using shared per-synapse variables and a singleton postsynaptic model created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros. More... | |
CurrentSource * | findCurrentSource (const std::string &name) |
Find a current source by name. More... | |
template<typename CurrentSourceModel > | |
CurrentSource * | addCurrentSource (const std::string ¤tSourceName, const CurrentSourceModel *model, const std::string &targetNeuronGroupName, const typename CurrentSourceModel::ParamValues ¶mValues, const typename CurrentSourceModel::VarValues &varInitialisers) |
Adds a new current source to the model using a current source model managed by the user. More... | |
template<typename CurrentSourceModel > | |
CurrentSource * | addCurrentSource (const std::string ¤tSourceName, const std::string &targetNeuronGroupName, const typename CurrentSourceModel::ParamValues ¶mValues, const typename CurrentSourceModel::VarValues &varInitialisers) |
Adds a new current source to the model using a singleton current source model created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros. More... | |
template<typename CustomUpdateModel > | |
CustomUpdate * | addCustomUpdate (const std::string &name, const std::string &updateGroupName, const CustomUpdateModel *model, const typename CustomUpdateModel::ParamValues ¶mValues, const typename CustomUpdateModel::VarValues &varInitialisers, const typename CustomUpdateModel::VarReferences &varReferences, const typename CustomUpdateModel::EGPReferences &egpReferences={}) |
Adds a new custom update with references to the model using a custom update model managed by the user. More... | |
template<typename CustomUpdateModel > | |
CustomUpdateWU * | addCustomUpdate (const std::string &name, const std::string &updateGroupName, const CustomUpdateModel *model, const typename CustomUpdateModel::ParamValues ¶mValues, const typename CustomUpdateModel::VarValues &varInitialisers, const typename CustomUpdateModel::WUVarReferences &varReferences, const typename CustomUpdateModel::EGPReferences &egpReferences={}) |
template<typename CustomUpdateModel > | |
CustomUpdate * | addCustomUpdate (const std::string &name, const std::string &updateGroupName, const typename CustomUpdateModel::ParamValues ¶mValues, const typename CustomUpdateModel::VarValues &varInitialisers, const typename CustomUpdateModel::VarReferences &varReferences, const typename CustomUpdateModel::EGPReferences &egpReferences={}) |
template<typename CustomUpdateModel > | |
CustomUpdateWU * | addCustomUpdate (const std::string &name, const std::string &updateGroupName, const typename CustomUpdateModel::ParamValues ¶mValues, const typename CustomUpdateModel::VarValues &varInitialisers, const typename CustomUpdateModel::WUVarReferences &varReferences, const typename CustomUpdateModel::EGPReferences &egpReferences={}) |
Protected Member Functions | |
void | finalize () |
Finalise model. More... | |
std::string | scalarExpr (double) const |
Get the string literal that should be used to represent a value in the model's floating-point type. More... | |
bool | zeroCopyInUse () const |
Are any variables in any populations in this model using zero-copy memory? More... | |
bool | isRecordingInUse () const |
Is recording enabled on any population in this model? More... | |
boost::uuids::detail::sha1::digest_type | getHashDigest () const |
Get hash digest used for detecting changes. More... | |
const std::map< std::string, NeuronGroupInternal > & | getNeuronGroups () const |
Get std::map containing local named NeuronGroup objects in model. More... | |
const std::map< std::string, SynapseGroupInternal > & | getSynapseGroups () const |
Get std::map containing local named SynapseGroup objects in model. More... | |
const std::map< std::string, CurrentSourceInternal > & | getLocalCurrentSources () const |
Get std::map containing local named CurrentSource objects in model. More... | |
const std::map< std::string, CustomUpdateInternal > & | getCustomUpdates () const |
Get std::map containing named CustomUpdate objects in model. More... | |
const std::map< std::string, CustomUpdateWUInternal > & | getCustomWUUpdates () const |
Object used for specifying a neuronal network model.
typedef std::map<std::string, CurrentSourceInternal>::value_type ModelSpec::CurrentSourceValueType |
typedef std::map<std::string, CustomUpdateInternal>::value_type ModelSpec::CustomUpdateValueType |
typedef std::map<std::string, CustomUpdateWUInternal>::value_type ModelSpec::CustomUpdateWUValueType |
typedef std::map<std::string, NeuronGroupInternal>::value_type ModelSpec::NeuronGroupValueType |
typedef std::map<std::string, SynapseGroupInternal>::value_type ModelSpec::SynapseGroupValueType |
ModelSpec::ModelSpec | ( | ) |
|
delete |
ModelSpec::~ModelSpec | ( | ) |
|
inline |
Adds a new current source to the model using a current source model managed by the user.
CurrentSourceModel | type of current source model (derived from CurrentSourceModels::Base). |
currentSourceName | string containing unique name of current source. |
model | current source model to use for current source. |
targetNeuronGroupName | string name of the target neuron group |
paramValues | parameters for model wrapped in CurrentSourceModel::ParamValues object. |
varInitialisers | state variable initialiser snippets and parameters wrapped in CurrentSource::VarValues object. |
|
inline |
Adds a new current source to the model using a singleton current source model created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros.
CurrentSourceModel | type of neuron model (derived from CurrentSourceModel::Base). |
currentSourceName | string containing unique name of current source. |
targetNeuronGroupName | string name of the target neuron group |
paramValues | parameters for model wrapped in CurrentSourceModel::ParamValues object. |
varInitialisers | state variable initialiser snippets and parameters wrapped in CurrentSourceModel::VarValues object. |
|
inline |
Adds a new custom update with references to the model using a custom update model managed by the user.
CustomUpdateModel | type of custom update model (derived from CustomUpdateModels::Base). |
name | string containing unique name of custom update |
updateGroupName | string containing name of group to add this custom update to |
model | custom update model to use for custom update. |
paramValues | parameters for model wrapped in CustomUpdateModel::ParamValues object. |
varInitialisers | state variable initialiser snippets and parameters wrapped in CustomUpdateModel::VarValues object. |
varReferences | variable references wrapped in CustomUpdateModel::VarReferences object. |
|
inline |
Adds a new custom update with references to weight update model variable to the model using a custom update model managed by the user
CustomUpdateModel | type of custom update model (derived from CustomUpdateModels::Base). |
name | string containing unique name of custom update |
updateGroupName | string containing name of group to add this custom update to |
operation | CustomUpdate::Operation specifying operation update should be performed within |
model | custom update model to use for custom update. |
paramValues | parameters for model wrapped in CustomUpdateModel::ParamValues object. |
varInitialisers | state variable initialiser snippets and parameters wrapped in CustomUpdateModel::VarValues object. |
varReferences | variable references wrapped in CustomUpdateModel::VarReferences object. |
|
inline |
Adds a new custom update to the model using a singleton custom update model created using standard DECLARE_CUSTOM_UPDATE_MODEL and IMPLEMENT_MODEL macros
CustomUpdateModel | type of custom update model (derived from CustomUpdateModels::Base). |
name | string containing unique name of custom update |
updateGroupName | string containing name of group to add this custom update to |
paramValues | parameters for model wrapped in CustomUpdateModel::ParamValues object. |
varInitialisers | state variable initialiser snippets and parameters wrapped in CustomUpdateModel::VarValues object. |
varInitialisers | variable references wrapped in CustomUpdateModel::VarReferences object. |
|
inline |
Adds a new custom update with references to weight update model variables to the model using a singleton custom update model created using standard DECLARE_CUSTOM_UPDATE_MODEL and IMPLEMENT_MODEL macros
CustomUpdateModel | type of neuron model (derived from CustomUpdateModels::Base). |
name | string containing unique name of custom update |
updateGroupName | string containing name of group to add this custom update to |
operation | CustomUpdate::Operation specifying operation update should be performed within |
paramValues | parameters for model wrapped in CustomUpdateModel::ParamValues object. |
varInitialisers | state variable initialiser snippets and parameters wrapped in CustomUpdateModel::VarValues object. |
varInitialisers | variable references wrapped in CustomUpdateModel::VarReferences object. |
|
inline |
Adds a new neuron group to the model using a neuron model managed by the user.
NeuronModel | type of neuron model (derived from NeuronModels::Base). |
name | string containing unique name of neuron population. |
size | integer specifying how many neurons are in the population. |
model | neuron model to use for neuron group. |
paramValues | parameters for model wrapped in NeuronModel::ParamValues object. |
varInitialisers | state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
|
inline |
Adds a new neuron group to the model using a singleton neuron model created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros.
NeuronModel | type of neuron model (derived from NeuronModels::Base). |
name | string containing unique name of neuron population. |
size | integer specifying how many neurons are in the population. |
paramValues | parameters for model wrapped in NeuronModel::ParamValues object. |
varInitialisers | state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
|
inline |
Adds a synapse population to the model using shared per-synapse variables and a postsynaptic model managed by the user.
PostsynapticModel | type of postsynaptic model (derived from PostsynapticModels::Base). |
name | string containing unique name of synapse population. |
weightSharingMasterName | string containing name of 'master' synapse population |
delaySteps | integer specifying number of timesteps delay this synaptic connection should incur (or NO_DELAY for none) |
src | string specifying name of presynaptic (source) population |
trg | string specifying name of postsynaptic (target) population |
psm | postsynaptic model to use for synapse group. |
postsynapticParamValues | parameters for postsynaptic model wrapped in PostsynapticModel::ParamValues object. |
postsynapticVarInitialisers | postsynaptic model state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
|
inline |
Adds a synapse population to the model using shared per-synapse variables and a singleton postsynaptic model created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros.
PostsynapticModel | type of postsynaptic model (derived from PostsynapticModels::Base). |
name | string containing unique name of synapse population. |
weightSharingMasterName | string containing name of 'master' synapse population |
delaySteps | integer specifying number of timesteps delay this synaptic connection should incur (or NO_DELAY for none) |
src | string specifying name of presynaptic (source) population |
trg | string specifying name of postsynaptic (target) population |
postsynapticParamValues | parameters for postsynaptic model wrapped in PostsynapticModel::ParamValues object. |
postsynapticVarInitialisers | postsynaptic model state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
|
inline |
Adds a synapse population to the model using weight update and postsynaptic models managed by the user.
WeightUpdateModel | type of weight update model (derived from WeightUpdateModels::Base). |
PostsynapticModel | type of postsynaptic model (derived from PostsynapticModels::Base). |
name | string containing unique name of synapse population. |
mtype | how the synaptic matrix associated with this synapse population should be represented. |
delaySteps | integer specifying number of timesteps delay this synaptic connection should incur (or NO_DELAY for none) |
src | string specifying name of presynaptic (source) population |
trg | string specifying name of postsynaptic (target) population |
wum | weight update model to use for synapse group. |
weightParamValues | parameters for weight update model wrapped in WeightUpdateModel::ParamValues object. |
weightVarInitialisers | weight update model state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
weightPreVarInitialisers | weight update model presynaptic state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
weightPostVarInitialisers | weight update model postsynaptic state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
psm | postsynaptic model to use for synapse group. |
postsynapticParamValues | parameters for postsynaptic model wrapped in PostsynapticModel::ParamValues object. |
postsynapticVarInitialisers | postsynaptic model state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
connectivityInitialiser | sparse connectivity initialisation snippet used to initialise connectivity for SynapseMatrixConnectivity::SPARSE or SynapseMatrixConnectivity::BITMASK. Typically wrapped with it's parameters using initConnectivity function |
|
inline |
Adds a synapse population to the model using weight update and postsynaptic models managed by the user.
WeightUpdateModel | type of weight update model (derived from WeightUpdateModels::Base). |
PostsynapticModel | type of postsynaptic model (derived from PostsynapticModels::Base). |
name | string containing unique name of synapse population. |
mtype | how the synaptic matrix associated with this synapse population should be represented. |
delaySteps | integer specifying number of timesteps delay this synaptic connection should incur (or NO_DELAY for none) |
src | string specifying name of presynaptic (source) population |
trg | string specifying name of postsynaptic (target) population |
wum | weight update model to use for synapse group. |
weightParamValues | parameters for weight update model wrapped in WeightUpdateModel::ParamValues object. |
weightVarInitialisers | weight update model state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
weightPreVarInitialisers | weight update model presynaptic state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
weightPostVarInitialisers | weight update model postsynaptic state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
psm | postsynaptic model to use for synapse group. |
postsynapticParamValues | parameters for postsynaptic model wrapped in PostsynapticModel::ParamValues object. |
postsynapticVarInitialisers | postsynaptic model state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
connectivityInitialiser | toeplitz connectivity initialisation snippet used to initialise connectivity for SynapseMatrixConnectivity::TOEPLITZ. Typically wrapped with it's parameters using initToeplitzConnectivity function |
|
inline |
Adds a synapse population to the model using singleton weight update and postsynaptic models created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros.
WeightUpdateModel | type of weight update model (derived from WeightUpdateModels::Base). |
PostsynapticModel | type of postsynaptic model (derived from PostsynapticModels::Base). |
name | string containing unique name of synapse population. |
mtype | how the synaptic matrix associated with this synapse population should be represented. |
delaySteps | integer specifying number of timesteps delay this synaptic connection should incur (or NO_DELAY for none) |
src | string specifying name of presynaptic (source) population |
trg | string specifying name of postsynaptic (target) population |
weightParamValues | parameters for weight update model wrapped in WeightUpdateModel::ParamValues object. |
weightVarInitialisers | weight update model state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
postsynapticParamValues | parameters for postsynaptic model wrapped in PostsynapticModel::ParamValues object. |
postsynapticVarInitialisers | postsynaptic model state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
connectivityInitialiser | sparse connectivity initialisation snippet used to initialise connectivity for SynapseMatrixConnectivity::SPARSE or SynapseMatrixConnectivity::BITMASK. Typically wrapped with it's parameters using initConnectivity function |
|
inline |
Adds a synapse population to the model using singleton weight update and postsynaptic models created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros.
WeightUpdateModel | type of weight update model (derived from WeightUpdateModels::Base). |
PostsynapticModel | type of postsynaptic model (derived from PostsynapticModels::Base). |
name | string containing unique name of synapse population. |
mtype | how the synaptic matrix associated with this synapse population should be represented. |
delaySteps | integer specifying number of timesteps delay this synaptic connection should incur (or NO_DELAY for none) |
src | string specifying name of presynaptic (source) population |
trg | string specifying name of postsynaptic (target) population |
weightParamValues | parameters for weight update model wrapped in WeightUpdateModel::ParamValues object. |
weightVarInitialisers | weight update model state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
postsynapticParamValues | parameters for postsynaptic model wrapped in PostsynapticModel::ParamValues object. |
postsynapticVarInitialisers | postsynaptic model state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
connectivityInitialiser | toeplitz connectivity initialisation snippet used to initialise connectivity for SynapseMatrixConnectivity::TOEPLITZ. Typically wrapped with it's parameters using initToeplitzConnectivity function |
|
inline |
Adds a synapse population to the model using singleton weight update and postsynaptic models created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros.
WeightUpdateModel | type of weight update model (derived from WeightUpdateModels::Base). |
PostsynapticModel | type of postsynaptic model (derived from PostsynapticModels::Base). |
name | string containing unique name of synapse population. |
mtype | how the synaptic matrix associated with this synapse population should be represented. |
delaySteps | integer specifying number of timesteps delay this synaptic connection should incur (or NO_DELAY for none) |
src | string specifying name of presynaptic (source) population |
trg | string specifying name of postsynaptic (target) population |
weightParamValues | parameters for weight update model wrapped in WeightUpdateModel::ParamValues object. |
weightVarInitialisers | weight update model per-synapse state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
weightPreVarInitialisers | weight update model presynaptic state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
weightPostVarInitialisers | weight update model postsynaptic state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
postsynapticParamValues | parameters for postsynaptic model wrapped in PostsynapticModel::ParamValues object. |
postsynapticVarInitialisers | postsynaptic model state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
connectivityInitialiser | sparse connectivity initialisation snippet used to initialise connectivity for SynapseMatrixConnectivity::SPARSE or SynapseMatrixConnectivity::BITMASK. Typically wrapped with it's parameters using initConnectivity function |
|
inline |
Adds a synapse population to the model using singleton weight update and postsynaptic models created using standard DECLARE_MODEL and IMPLEMENT_MODEL macros.
WeightUpdateModel | type of weight update model (derived from WeightUpdateModels::Base). |
PostsynapticModel | type of postsynaptic model (derived from PostsynapticModels::Base). |
name | string containing unique name of synapse population. |
mtype | how the synaptic matrix associated with this synapse population should be represented. |
delaySteps | integer specifying number of timesteps delay this synaptic connection should incur (or NO_DELAY for none) |
src | string specifying name of presynaptic (source) population |
trg | string specifying name of postsynaptic (target) population |
weightParamValues | parameters for weight update model wrapped in WeightUpdateModel::ParamValues object. |
weightVarInitialisers | weight update model per-synapse state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
weightPreVarInitialisers | weight update model presynaptic state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
weightPostVarInitialisers | weight update model postsynaptic state variable initialiser snippets and parameters wrapped in WeightUpdateModel::VarValues object. |
postsynapticParamValues | parameters for postsynaptic model wrapped in PostsynapticModel::ParamValues object. |
postsynapticVarInitialisers | postsynaptic model state variable initialiser snippets and parameters wrapped in NeuronModel::VarValues object. |
connectivityInitialiser | toeplitz connectivity initialisation snippet used to initialise connectivity for SynapseMatrixConnectivity::TOEPLITZ. Typically wrapped with it's parameters using initToeplitzConnectivity function |
|
protected |
Finalise model.
CurrentSource * ModelSpec::findCurrentSource | ( | const std::string & | name | ) |
Find a current source by name.
This function attempts to find an existing current source.
|
inline |
Find a neuron group by name.
SynapseGroup * ModelSpec::findSynapseGroup | ( | const std::string & | name | ) |
Find a synapse group by name.
|
inline |
|
inlineprotected |
Get std::map containing named CustomUpdate objects in model.
|
inlineprotected |
|
inline |
Gets the model integration step size.
|
protected |
Get hash digest used for detecting changes.
|
inlineprotected |
Get std::map containing local named CurrentSource objects in model.
|
inline |
Gets the name of the neuronal network model.
|
inlineprotected |
Get std::map containing local named NeuronGroup objects in model.
unsigned int ModelSpec::getNumNeurons | ( | ) | const |
How many neurons make up the entire model.
|
inline |
Gets the floating point numerical precision.
|
inline |
Get the random seed.
|
inlineprotected |
Get std::map containing local named SynapseGroup objects in model.
std::string ModelSpec::getTimePrecision | ( | ) | const |
Gets the floating point numerical precision used to represent time.
|
protected |
Is recording enabled on any population in this model?
|
inline |
Are timers and timing commands enabled.
|
protected |
Get the string literal that should be used to represent a value in the model's floating-point type.
|
inline |
|
inline |
What is the default location for model extra global parameters?
Historically, this was just left up to the user to handle
|
inline |
Sets default for whether narrow i.e. less than 32-bit types are used for sparse matrix indices.
|
inline |
What is the default location for sparse synaptic connectivity?
Historically, everything was allocated on both the host AND device
|
inline |
What is the default location for model state variables?
Historically, everything was allocated on both the host AND device
|
inline |
Set the integration step size of the model.
|
inline |
Should compatible postsynaptic models and dendritic delay buffers be fused?
This can significantly reduce the cost of updating neuron population but means that per-synapse group inSyn arrays can not be retrieved
|
inline |
Should compatible pre and postsynaptic weight update model variables and updates be fused?
This can significantly reduce the cost of updating neuron populations but means that per-synaptic group per and postsynaptic variables cannot be retrieved
|
inline |
Should compatible postsynaptic models and dendritic delay buffers be fused?
This can significantly reduce the cost of updating neuron population but means that per-synapse group inSyn arrays can not be retrieved
|
inline |
Method to set the neuronal network model name.
void ModelSpec::setPrecision | ( | FloatType | floattype | ) |
Set numerical precision for floating point.
This function sets the numerical precision of floating type variables. By default, it is GENN_GENN_FLOAT.
|
inline |
Set the random seed (disables automatic seeding if argument not 0).
|
inline |
Set numerical precision for time.
|
inline |
Set whether timers and timing commands are to be included.
|
protected |
Are any variables in any populations in this model using zero-copy memory?