Inherited Members
public:
// typedefs
typedef std::map<std::string, NeuronGroupInternal>::value_type NeuronGroupValueType;
typedef std::map<std::string, SynapseGroupInternal>::value_type SynapseGroupValueType;
// methods
ModelSpec();
ModelSpec(const ModelSpec&);
ModelSpec& operator = (const ModelSpec&);
~ModelSpec();
void setName(const std::string& name);
void setPrecision(FloatType floattype);
void setTimePrecision(TimePrecision timePrecision);
void setDT(double dt);
void setTiming(bool timingEnabled);
void setSeed(unsigned int rngSeed);
void setDefaultVarLocation(VarLocation loc);
void setDefaultExtraGlobalParamLocation(VarLocation loc);
void setDefaultSparseConnectivityLocation(VarLocation loc);
void setMergePostsynapticModels(bool merge);
const std::string& getName() const;
const std::string& getPrecision() const;
std::string getTimePrecision() const;
double getDT() const;
unsigned int getSeed() const;
bool isTimingEnabled() const;
unsigned int getNumLocalNeurons() const;
unsigned int getNumRemoteNeurons() const;
unsigned int getNumNeurons() const;
NeuronGroup* findNeuronGroup(const std::string& name);
template <typename NeuronModel>
NeuronGroup* addNeuronPopulation(
const std::string& name,
unsigned int size,
const NeuronModel* model,
const typename NeuronModel::ParamValues& paramValues,
const typename NeuronModel::VarValues& varInitialisers,
int hostID = 0
);
template <typename NeuronModel>
NeuronGroup* addNeuronPopulation(
const std::string& name,
unsigned int size,
const typename NeuronModel::ParamValues& paramValues,
const typename NeuronModel::VarValues& varInitialisers,
int hostID = 0
);
SynapseGroup* findSynapseGroup(const std::string& name);
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()
);
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()
);
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()
);
CurrentSource* findCurrentSource(const std::string& name);
template <typename CurrentSourceModel>
CurrentSource* addCurrentSource(
const std::string& currentSourceName,
const CurrentSourceModel* model,
const std::string& targetNeuronGroupName,
const typename CurrentSourceModel::ParamValues& paramValues,
const typename CurrentSourceModel::VarValues& varInitialisers
);
template <typename CurrentSourceModel>
CurrentSource* addCurrentSource(
const std::string& currentSourceName,
const std::string& targetNeuronGroupName,
const typename CurrentSourceModel::ParamValues& paramValues,
const typename CurrentSourceModel::VarValues& varInitialisers
);