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 #ifndef _LUORUDYIMODEL1991ODESYSTEM_HPP_
00029 #define _LUORUDYIMODEL1991ODESYSTEM_HPP_
00030
00031 #include "AbstractCardiacCell.hpp"
00032 #include "AbstractStimulusFunction.hpp"
00033 #include <vector>
00034
00038 class LuoRudyIModel1991OdeSystem : public AbstractCardiacCell
00039 {
00040 private:
00041
00043 static const double membrane_C = 1.0;
00044 static const double membrane_F = 96484.6;
00045 static const double membrane_R = 8314;
00046 static const double membrane_T = 310.0;
00047 static const double background_current_E_b = -59.87;
00048 static const double background_current_g_b = 0.03921;
00049 static const double fast_sodium_current_g_Na = 23.0;
00050 static const double ionic_concentrations_Ki = 145.0;
00051 static const double ionic_concentrations_Ko = 5.4;
00052 static const double ionic_concentrations_Nai = 18.0;
00053 static const double ionic_concentrations_Nao = 140.0;
00054 static const double plateau_potassium_current_g_Kp = 0.0183;
00055 static const double time_dependent_potassium_current_PR_NaK = 0.01833;
00056
00058 double fast_sodium_current_E_Na;
00059
00065 void VerifyStateVariables();
00066
00067 public:
00068
00069 LuoRudyIModel1991OdeSystem(AbstractIvpOdeSolver *pSolver,
00070 AbstractStimulusFunction *pIntracellularStimulus);
00071
00072
00073 ~LuoRudyIModel1991OdeSystem();
00074
00075
00076 void EvaluateYDerivatives(double time, const std::vector<double> &rY, std::vector<double> &rDY);
00077
00078 double GetIIonic();
00079
00080 double GetIntracellularCalciumConcentration();
00081 };
00082
00083 #endif // _LUORUDYIMODEL1991ODESYSTEM_HPP_