class NeuronModels::Poisson¶
Overview¶
#include <neuronModels.h> class Poisson: public NeuronModels::Base { public: // typedefs typedef Snippet::ValueBase<4> ParamValues; typedef Models::VarInitContainerBase<2> VarValues; typedef Models::VarInitContainerBase<0> PreVarValues; typedef Models::VarInitContainerBase<0> PostVarValues; // methods static const NeuronModels::Poisson* getInstance(); virtual std::string getSimCode() const; virtual std::string getThresholdConditionCode() const; virtual StringVec getParamNames() const; virtual VarVec getVars() const; virtual EGPVec getExtraGlobalParams() const; };
Inherited Members¶
public: // typedefs typedef std::vector<std::string> StringVec; typedef std::vector<EGP> EGPVec; typedef std::vector<ParamVal> ParamValVec; typedef std::vector<DerivedParam> DerivedParamVec; typedef std::vector<Var> VarVec; // structs struct DerivedParam; struct EGP; struct ParamVal; struct Var; // methods virtual ~Base(); virtual StringVec getParamNames() const; virtual DerivedParamVec getDerivedParams() const; virtual VarVec getVars() const; virtual EGPVec getExtraGlobalParams() const; size_t getVarIndex(const std::string& varName) const; size_t getExtraGlobalParamIndex(const std::string& paramName) const; virtual std::string getSimCode() const; virtual std::string getThresholdConditionCode() const; virtual std::string getResetCode() const; virtual std::string getSupportCode() const; virtual Models::Base::ParamValVec getAdditionalInputVars() const; virtual bool isAutoRefractoryRequired() const;
Detailed Documentation¶
Poisson neurons.
Poisson neurons have constant membrane potential (Vrest
) unless they are activated randomly to the Vspike
value if (t- SpikeTime
) > trefract
.
It has 2 variables:
V
- Membrane potential (mV)SpikeTime
- Time at which the neuron spiked for the last time (ms)
and 4 parameters:
trefract
- Refractory period (ms)tspike
- duration of spike (ms)Vspike
- Membrane potential at spike (mV)Vrest
- Membrane potential at rest (mV)
The initial values array for the Poisson
type needs two entries for V
, and SpikeTime
and the parameter array needs four entries for therate
, trefract
, Vspike
and Vrest
, in that order.
This model uses a linear approximation for the probability of firing a spike in a given time step of size DT
, i.e. the probability of firing is \(\lambda\) times DT
: \(p = \lambda \Delta t\). This approximation is usually very good, especially for typical, quite small time steps and moderate firing rates. However, it is worth noting that the approximation becomes poor for very high firing rates and large time steps.
Methods¶
virtual std::string getSimCode() const
Gets the code that defines the execution of one timestep of integration of the neuron model.
The code will refer to for the value of the variable with name “NN”. It needs to refer to the predefined variable “ISYN”, i.e. contain , if it is to receive input.
virtual std::string getThresholdConditionCode() const
Gets code which defines the condition for a true spike in the described neuron model.
This evaluates to a bool (e.g. “V > 20”).
virtual StringVec getParamNames() const
Gets names of of (independent) model parameters.
virtual VarVec getVars() const
Gets names and types (as strings) of model variables.
virtual EGPVec getExtraGlobalParams() const
Gets names and types (as strings) of additional per-population parameters for the weight update model.