CSIM: conciongate.h Source File

conciongate.h

00001 #ifndef __CONCIONGATE_H__
00002 #define __CONCIONGATE_H__
00003 
00004 #include <math.h>
00005 #include <stdlib.h>
00006 #include "advanceable.h"
00007 #include "membranepatch.h"
00008 #include "iongate.h"
00009 
00010 
00012 #define CONCIONGATE_CONC_MIN 0.00      // [Mol]
00013 
00015 #define CONCIONGATE_CONC_MAX 1000e-9   // [Mol]
00016 
00018 #define CONCIONGATE_CONC_INC 5.0e-10   // 0.25mV
00019 
00020 #define CONCIONGATE_TABLE_SIZE      ((int)((CONCIONGATE_CONC_MAX - CONCIONGATE_CONC_MIN) / CONCIONGATE_CONC_INC + 1))
00021 
00022 
00024 
00029 class ConcIonGate : public IonGate {
00030 
00031 public:
00033   ConcIonGate(void) { Conc=0; ConcRest=0; ConcScale=0; ConcType=100; };
00034 
00035   // NOTE: The destructor comes within the macro IONGATE_TABLES
00036 
00038   virtual void reset(void);
00039 
00041   virtual int updateInternal(void);
00042 
00044   virtual int advance(void);
00045 
00047   virtual double tau(double ) { return  0; }
00048 
00050   virtual double infty(double ) { return 0; }
00051 
00052   virtual double pInfty(MembranePatchSimple *m);
00053 
00055   virtual void ConnectToMembrane(MembranePatchSimple *m);
00056 
00057 protected:
00058 
00059   IONGATE_TABLES(ConcIonGate);
00060 
00062   float  *ConcRest;
00063 
00065   double *Conc;
00066 
00068   float  *ConcScale;
00069 
00071   int  ConcType;
00072 
00073 };
00074 
00075 #endif
00076 
00077 
00078 

 
(C) 2003, Thomas Natschläger last modified 07/10/2006