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 _BACKWARDEULERLUORUDYIMODEL1991_HPP_
00029 #define _BACKWARDEULERLUORUDYIMODEL1991_HPP_
00030
00031 #include "AbstractStimulusFunction.hpp"
00032 #include "AbstractBackwardEulerCardiacCell.hpp"
00033
00034 #include <vector>
00035
00040 class BackwardEulerLuoRudyIModel1991 : public AbstractBackwardEulerCardiacCell<1>
00041 {
00042 private:
00046 static const double membrane_C = 1.0;
00047 static const double membrane_F = 96484.6;
00048 static const double membrane_R = 8314;
00049 static const double membrane_T = 310.0;
00050 static const double background_current_E_b = -59.87;
00051 static const double background_current_g_b = 0.03921;
00052 static const double fast_sodium_current_g_Na = 23.0;
00053 static const double ionic_concentrations_Ki = 145.0;
00054 static const double ionic_concentrations_Ko = 5.4;
00055 static const double ionic_concentrations_Nai = 18.0;
00056 static const double ionic_concentrations_Nao = 140.0;
00057 static const double plateau_potassium_current_g_Kp = 0.0183;
00058 static const double time_dependent_potassium_current_PR_NaK = 0.01833;
00059
00061 double fast_sodium_current_E_Na;
00062
00063
00064 public:
00065
00066 BackwardEulerLuoRudyIModel1991(AbstractStimulusFunction *pIntracellularStimulus);
00067
00068
00069 BackwardEulerLuoRudyIModel1991(AbstractIvpOdeSolver *pSolver,
00070 AbstractStimulusFunction *pIntracellularStimulus);
00071
00072
00073 ~BackwardEulerLuoRudyIModel1991();
00074
00075 void Init();
00076
00077 protected:
00082 void ComputeOneStepExceptVoltage(double tStart);
00083
00087 void UpdateTransmembranePotential(double time);
00088
00089 public:
00090 void ComputeResidual(const double rCurrentGuess[1], double rResidual[1]);
00091 void ComputeJacobian(const double rCurrentGuess[1], double rJacobian[1][1]);
00092
00097 double GetIIonic();
00098
00103 void VerifyStateVariables();
00104
00105 double GetIntracellularCalciumConcentration();
00106 };
00107
00108 #endif // _BACKWARDEULERLUORUDYIMODEL1991_HPP_