class ModelSpecInternal

#include <modelSpecInternal.h>

class ModelSpecInternal: public ModelSpec
{
};

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
        );