00001 /********************************************************************** 00002 ** This program is part of 'MOOSE', the 00003 ** Messaging Object Oriented Simulation Environment. 00004 ** Copyright (C) 2003-2007 Upinder S. Bhalla. and NCBS 00005 ** It is made available under the terms of the 00006 ** GNU Lesser General Public License version 2.1 00007 ** See the file COPYING.LIB for the full notice. 00008 **********************************************************************/ 00009 00010 #ifndef _NMDACHAN_H 00011 #define _NMDACHAN_H 00012 00021 class NMDAChan: public SynChan 00022 { 00023 public: 00024 NMDAChan(); 00025 ~NMDAChan(); 00026 00028 // Value field access function definitions 00030 00031 // Mg-block fields 00032 void setKMg_A( double Gbar ); 00033 double getKMg_A() const; 00034 void setKMg_B( double Ek ); 00035 double getKMg_B() const; 00036 void setCMg( double CMg ); 00037 double getCMg() const; 00038 00039 // GHK fields 00040 void setTemperature( double temperature ); 00041 double getTemperature() const; 00042 void setExtCa( double conc ); 00043 double getExtCa() const; 00044 void setIntCa( double conc ); 00045 double getIntCa() const; 00046 double getICa() const; 00047 void setPermeability( double permeability ); 00048 double getPermeability() const; 00049 void setIntCaScale( double v ); 00050 double getIntCaScale() const; 00051 void setIntCaOffset( double v ); 00052 double getIntCaOffset() const; 00053 void setCondFraction( double v ); 00054 double getCondFraction() const; 00055 00057 // Dest function definitions 00059 00060 void vProcess( const Eref& e, ProcPtr p ); 00061 void vReinit( const Eref& e, ProcPtr p ); 00062 00063 void assignIntCa( double v ); 00065 static const Cinfo* initCinfo(); 00066 private: 00068 double KMg_A_; 00070 double KMg_B_; 00072 double CMg_; 00077 double temperature_; 00078 double Cout_; // External Ca concentration 00079 double Cin_; // Internal Ca concentration 00080 double intCaScale_; // Scale factor for assignIntCa msg. 00081 double intCaOffset_; // Offset for assignIntCa msg. 00082 double condFraction_; // Offset for assignIntCa msg. 00083 double ICa_; // Current carried by Ca ions. 00084 double const_; // Scaling factor used in GHK calculations, actually 00085 // not a const but depends on temperature 00086 // const_ = F*valency/RT 00087 static const double valency_; // Always +2. 00088 00090 // Utility function 00092 00093 }; 00094 00095 00096 #endif // _NMDACHAN_H