00001 #ifndef _Zombie_HHChannel_h
00002 #define _Zombie_HHChannel_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00032 #include "header.h"
00033 #include "ElementValueFinfo.h"
00034 #include "HinesMatrix.h"
00035 #include "HSolveStruct.h"
00036 #include "HSolvePassive.h"
00037 #include "RateLookup.h"
00038 #include "HSolveActive.h"
00039 #include "HSolve.h"
00040 #include "../biophysics/HHGate.h"
00041 #include "../biophysics/ChanBase.h"
00042 #include "../biophysics/ChanCommon.h"
00043 #include "../biophysics/Compartment.h"
00044 #include "../biophysics/HHChannelBase.h"
00045 #include "../biophysics/HHChannel.h"
00046 #include "../external/debug/print_function.hpp"
00047
00048 class ZombieHHChannel: public HHChannelBase
00049 {
00050 public:
00051 ZombieHHChannel();
00052
00054
00056
00057 void vSetGbar( const Eref& e , double Gbar );
00058 double vGetGbar( const Eref& e ) const;
00059 void vSetGk( const Eref& e , double Gk );
00060 double vGetGk( const Eref& e ) const;
00061 void vSetEk( const Eref& e , double Ek );
00062 double vGetEk( const Eref& e ) const;
00063 void vSetIk( const Eref& e, double Ik );
00064 double vGetIk( const Eref& e ) const;
00065 void vSetXpower( const Eref& e , double Xpower );
00066 void vSetYpower( const Eref& e , double Ypower );
00067 void vSetZpower( const Eref& e , double Zpower );
00068 void vSetInstant( const Eref& e , int instant );
00069 int vGetInstant( const Eref& e ) const;
00070 void vSetX( const Eref& e , double X );
00071 double vGetX( const Eref& e ) const;
00072 void vSetY( const Eref& e , double Y );
00073 double vGetY( const Eref& e ) const;
00074 void vSetZ( const Eref& e , double Z );
00075 double vGetZ( const Eref& e ) const;
00081 void vSetUseConcentration( const Eref& e, int value );
00082
00083
00084 void vSetModulation( const Eref& e, double value );
00085
00087
00089
00090 void vProcess( const Eref& e, ProcPtr p );
00091 void vReinit( const Eref& e, ProcPtr p );
00092 void vHandleConc( const Eref& e, double value);
00093 void vCreateGate(const Eref& e , string name);
00094
00096
00097 void vHandleVm( double Vm );
00098
00100
00102
00105 HHGate* vGetXgate( unsigned int i ) const;
00106
00110 HHGate* vGetYgate( unsigned int i ) const;
00111
00115 HHGate* vGetZgate( unsigned int i ) const;
00117 void vSetSolver( const Eref& e , Id hsolve );
00118
00119 static const Cinfo* initCinfo();
00120
00121 private:
00122 HSolve* hsolve_;
00123
00124 void copyFields( Id chanId, HSolve* hsolve_ );
00125 };
00126
00127
00128 #endif // _Zombie_HHChannel_h