Lr91Cvode.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifdef CHASTE_CVODE
00030
00031 #ifndef _LR91CVODE_HPP_
00032 #define _LR91CVODE_HPP_
00033
00034 #include "AbstractCvodeCell.hpp"
00035 #include "AbstractStimulusFunction.hpp"
00036 #include <vector>
00037
00041 class Lr91Cvode : public AbstractCvodeCell
00042 {
00043 private:
00044
00048 static const double membrane_C;
00050 static const double membrane_F;
00052 static const double membrane_R;
00054 static const double membrane_T;
00056 static const double background_current_E_b;
00058 static const double background_current_g_b;
00060 static const double fast_sodium_current_g_Na;
00062 static const double ionic_concentrations_Ki;
00064 static const double ionic_concentrations_Ko;
00066 static const double ionic_concentrations_Nai;
00068 static const double ionic_concentrations_Nao;
00070 static const double plateau_potassium_current_g_Kp;
00072 static const double time_dependent_potassium_current_PR_NaK;
00073
00075 double fast_sodium_current_E_Na;
00076
00082 void VerifyStateVariables();
00083
00084 public:
00091 Lr91Cvode(boost::shared_ptr<AbstractIvpOdeSolver> pOdeSolver,
00092 boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus);
00093
00097 ~Lr91Cvode();
00098
00108 void EvaluateRhs(double time, N_Vector y, N_Vector ydot);
00109
00115 double GetIIonic();
00116
00122 double GetIntracellularCalciumConcentration();
00123 };
00124
00125
00126
00127 #endif // _LR91CVODE_HPP_
00128
00129 #endif // CHASTE_CVODE