CompositeAEIFNeuron.h

Go to the documentation of this file.
00001 #ifndef COMPOSITEAEIFNEURON_H_
00002 #define COMPOSITEAEIFNEURON_H_
00003 
00004 #include "aEIFNeuron.h"
00005 #include "CompositeNeuron.h"
00006 #include "StaticSpikingSynapse.h"
00007 
00008 
00009 class aEIFCondAlphaNeuron : public CompositeNeuron< CbaEIFNeuron > 
00010 {
00011         SIMOBJECT( aEIFCondAlphaNeuron, AdvancePhase::One )
00012 public:
00013  
00014 
00015         aEIFCondAlphaNeuron( 
00016                        double a       = 4e-9,                   // S
00017                        double b       = 0.0805e-9,              // A
00018                        double Vt      = -50.6e-3,               // V
00019                        double Vr      = -70.4e-3,               // V
00020                        double El      = -70.4e-3,               // V
00021                        double gl      = 30e-9,                  // S
00022                        double Cm      = 281e-12,                // F
00023                        double tau_w   = 144e-3,                 // s
00024                        double slope   = 2e-3,                   // V
00025                        double Vpeak   = 20.0e-3,                // V
00026                        double Vinit   = -60.0e-3,               // V
00027                        double Inoise  = 0.0,
00028                        double Iinject = 0.0,
00029                        double ErevExc = -80e-3,
00030                        double ErevInh = 0.0,
00031                        float TauSynExc= 3e-3,
00032                                    float TauSynInh= 3e-3 ) :
00033                   CompositeNeuron< CbaEIFNeuron >(StaticCondAlphaSynapse(1.0, TauSynExc, ErevExc),
00034                                                   StaticCondAlphaSynapse(1.0, TauSynInh, ErevInh) ) 
00035    {
00036            this->a       = a;           
00037        this->b       = b;               
00038        this->Vt      = Vt;                      
00039        this->Vr      = Vr;                      // V
00040        this->El      = El;                      // V
00041        this->gl      = gl;                          // S
00042        this->Cm      = Cm;                      // F
00043        this->tau_w   = tau_w;                   // s
00044        this->slope   = 2e-3;                    // V
00045        this->Vpeak   = 20.0e-3;         // V
00046        this->Vinit   = -60.0e-3;                // V
00047        this->Inoise  = 0.0;
00048        this->Iinject = 0.0;
00049        this->ErevExc = ErevExc;
00050            this->ErevInh = ErevInh;
00051        this->TauSynExc= TauSynExc;
00052            this->TauSynInh= TauSynInh;                                                                          
00053    }
00054    
00055    virtual int reset(double dt)
00056    {
00057                 dynamic_cast<StaticCondExpSynapse*>(getInnerSynapse(0))->tau = TauSynExc;
00058                 dynamic_cast<StaticCondExpSynapse*>(getInnerSynapse(1))->tau = TauSynInh;
00059         dynamic_cast<StaticCondExpSynapse*>(getInnerSynapse(0))->Erev = ErevExc;
00060         dynamic_cast<StaticCondExpSynapse*>(getInnerSynapse(1))->Erev = ErevInh;
00061                 return CompositeNeuron< CbaEIFNeuron >::reset(dt);
00062    }
00063       
00065    float TauSynExc;
00066    
00068    float TauSynInh;
00069    
00071    float ErevExc;
00072    
00074    float ErevInh;
00075 };
00076 
00077 
00078 #endif /*COMPOSITEAEIFNEURON_H_*/

Generated on Wed Jul 9 16:34:38 2008 for PCSIM by  doxygen 1.5.5