GeNN  4.9.0
GPU enhanced Neuronal Networks (GeNN)
NeuronModels::Poisson Class Reference

Poisson neurons. More...

#include <neuronModels.h>

Inheritance diagram for NeuronModels::Poisson:
NeuronModels::Base Models::Base Snippet::Base

Public Types

typedef Snippet::ValueBase< 4 > ParamValues
 
typedef Models::VarInitContainerBase< 2 > VarValues
 
typedef Models::VarInitContainerBase< 0 > PreVarValues
 
typedef Models::VarInitContainerBase< 0 > PostVarValues
 
- Public Types inherited from Models::Base
typedef std::vector< VarVarVec
 
typedef std::vector< VarRefVarRefVec
 
typedef std::vector< EGPRefEGPRefVec
 
- Public Types inherited from Snippet::Base
typedef std::vector< std::string > StringVec
 
typedef std::vector< EGPEGPVec
 
typedef std::vector< ParamValParamValVec
 
typedef std::vector< DerivedParamDerivedParamVec
 

Public Member Functions

virtual std::string getSimCode () const override
 Gets the code that defines the execution of one timestep of integration of the neuron model. More...
 
virtual std::string getThresholdConditionCode () const override
 Gets code which defines the condition for a true spike in the described neuron model. More...
 
virtual StringVec getParamNames () const override
 Gets names of of (independent) model parameters. More...
 
virtual VarVec getVars () const override
 Gets names and types (as strings) of model variables. More...
 
virtual EGPVec getExtraGlobalParams () const override
 
- Public Member Functions inherited from NeuronModels::Base
virtual std::string getResetCode () const
 Gets code that defines the reset action taken after a spike occurred. This can be empty. More...
 
virtual std::string getSupportCode () const
 Gets support code to be made available within the neuron kernel/funcion. More...
 
virtual Models::Base::ParamValVec getAdditionalInputVars () const
 
virtual bool isAutoRefractoryRequired () const
 Does this model require auto-refractory logic? More...
 
boost::uuids::detail::sha1::digest_type getHashDigest () const
 Update hash from model. More...
 
void validate () const
 Validate names of parameters etc. More...
 
- Public Member Functions inherited from Models::Base
size_t getVarIndex (const std::string &varName) const
 Find the index of a named variable. More...
 
- Public Member Functions inherited from Snippet::Base
virtual ~Base ()
 
virtual DerivedParamVec getDerivedParams () const
 
size_t getExtraGlobalParamIndex (const std::string &paramName) const
 Find the index of a named extra global parameter. More...
 

Static Public Member Functions

static const NeuronModels::PoissongetInstance ()
 

Additional Inherited Members

- Protected Member Functions inherited from Models::Base
void updateHash (boost::uuids::detail::sha1 &hash) const
 
void validate () const
 Validate names of parameters etc. More...
 
- Protected Member Functions inherited from Snippet::Base
void updateHash (boost::uuids::detail::sha1 &hash) const
 
void validate () const
 Validate names of parameters etc. More...
 
- Static Protected Member Functions inherited from Snippet::Base
template<typename T >
static size_t getNamedVecIndex (const std::string &name, const std::vector< T > &vec)
 

Detailed Description

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)
Note
The initial values array for the Poisson type needs two entries for V, and spikeTime and the parameter array needs four entries for trefract, tspike, Vspike and Vrest, in that order.
The refractory period and the spike duration both start at the beginning of the spike. That means that the refractory period should be longer or equal to the spike duration. If this is not the case, undefined model behaviour occurs.

It has two extra global parameters:

  • firingProb - an array of firing probabilities/ average rates; this can extend to $n \cdot N$, where $N$ is the number of neurons, for $n > 0$ firing patterns
  • offset - an unsigned integer that points to the start of the currently used input pattern; typically taking values of $i \cdot N$, $0 \leq i < n$.
Note
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 $, where $$ corresponds to the value of the relevant entry of firingProb. 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.

Member Typedef Documentation

◆ ParamValues

◆ PostVarValues

◆ PreVarValues

◆ VarValues

Member Function Documentation

◆ getExtraGlobalParams()

virtual EGPVec NeuronModels::Poisson::getExtraGlobalParams ( ) const
inlineoverridevirtual

Gets names and types (as strings) of additional per-population parameters for the snippet

Reimplemented from Snippet::Base.

◆ getInstance()

static const NeuronModels::Poisson* NeuronModels::Poisson::getInstance ( )
inlinestatic

◆ getParamNames()

virtual StringVec NeuronModels::Poisson::getParamNames ( ) const
inlineoverridevirtual

Gets names of of (independent) model parameters.

Reimplemented from Snippet::Base.

◆ getSimCode()

virtual std::string NeuronModels::Poisson::getSimCode ( ) const
inlineoverridevirtual

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.

Reimplemented from NeuronModels::Base.

◆ getThresholdConditionCode()

virtual std::string NeuronModels::Poisson::getThresholdConditionCode ( ) const
inlineoverridevirtual

Gets code which defines the condition for a true spike in the described neuron model.

This evaluates to a bool (e.g. "V > 20").

Reimplemented from NeuronModels::Base.

◆ getVars()

virtual VarVec NeuronModels::Poisson::getVars ( ) const
inlineoverridevirtual

Gets names and types (as strings) of model variables.

Reimplemented from Models::Base.


The documentation for this class was generated from the following file: