00001 #ifdef CHASTE_CVODE
00002
00003 #ifndef _CVODECELLSHANNON2004FROMCELLML_
00004 #define _CVODECELLSHANNON2004FROMCELLML_
00005
00006
00007
00008
00009
00010
00011 #include <cmath>
00012 #include <cassert>
00013 #include "AbstractStimulusFunction.hpp"
00014 #include "AbstractIvpOdeSolver.hpp"
00015 #include "AbstractCvodeCell.hpp"
00016
00017 class CvOdeCellShannon2004FromCellML : public AbstractCvodeCell
00018 {
00019 public:
00020 CvOdeCellShannon2004FromCellML(boost::shared_ptr<AbstractIvpOdeSolver> pOdeSolver,
00021 boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus)
00022 : AbstractCvodeCell(pOdeSolver, 45, 0, pIntracellularStimulus)
00023 {
00024
00025
00026 mpSystemInfo = OdeSystemInformation<CvOdeCellShannon2004FromCellML>::Instance();
00027
00028 }
00029
00030 ~CvOdeCellShannon2004FromCellML(void)
00031 {
00032 }
00033
00034 void EvaluateRhs(realtype var_environment__time, N_Vector rY, N_Vector ydot)
00035 {
00036
00037
00038 double var_cell__V = NV_Ith_S(rY,0);
00039
00040 double var_INa_h_gate__h = NV_Ith_S(rY, 1);
00041
00042 double var_INa_j_gate__j = NV_Ith_S(rY, 2);
00043
00044 double var_INa_m_gate__m = NV_Ith_S(rY, 3);
00045
00046 double var_IKr_Xr_gate__Xr = NV_Ith_S(rY, 4);
00047
00048 double var_IKs_Xs_gate__Xs = NV_Ith_S(rY, 5);
00049
00050 double var_Itos_X_gate__X_tos = NV_Ith_S(rY, 6);
00051
00052 double var_Itos_Y_gate__Y_tos = NV_Ith_S(rY, 7);
00053
00054 double var_Itos_R_gate__R_tos = NV_Ith_S(rY, 8);
00055
00056 double var_Itof_X_gate__X_tof = NV_Ith_S(rY, 9);
00057
00058 double var_Itof_Y_gate__Y_tof = NV_Ith_S(rY, 10);
00059
00060 double var_ICaL_d_gate__d = NV_Ith_S(rY, 11);
00061
00062 double var_ICaL_f_gate__f = NV_Ith_S(rY, 12);
00063
00064 double var_ICaL_fCa_gate__fCaB_SL = NV_Ith_S(rY, 13);
00065
00066 double var_ICaL_fCa_gate__fCaB_jct = NV_Ith_S(rY, 14);
00067
00068 double var_Jrel_SR__R = NV_Ith_S(rY, 15);
00069
00070 double var_Jrel_SR__I = NV_Ith_S(rY, 16);
00071
00072 double var_Jrel_SR__O = NV_Ith_S(rY, 17);
00073
00074 double var_Na_buffer__Na_SL = NV_Ith_S(rY, 18);
00075
00076 double var_Na_buffer__Na_jct = NV_Ith_S(rY, 19);
00077
00078 double var_Na_buffer__Na_SL_buf = NV_Ith_S(rY, 20);
00079
00080 double var_Na_buffer__Na_jct_buf = NV_Ith_S(rY, 21);
00081
00082 double var_Na_buffer__Nai = NV_Ith_S(rY, 22);
00083
00084 double var_Ca_buffer__Ca_SR = NV_Ith_S(rY, 23);
00085
00086 double var_Ca_buffer__Ca_SL = NV_Ith_S(rY, 24);
00087
00088 double var_Ca_buffer__Ca_jct = NV_Ith_S(rY, 25);
00089
00090 double var_Ca_buffer__Cai = NV_Ith_S(rY, 26);
00091
00092 double var_Ca_buffer__Ca_SLB_SL = NV_Ith_S(rY, 27);
00093
00094 double var_Ca_buffer__Ca_SLB_jct = NV_Ith_S(rY, 28);
00095
00096 double var_Ca_buffer__Ca_SLHigh_SL = NV_Ith_S(rY, 29);
00097
00098 double var_Ca_buffer__Ca_SLHigh_jct = NV_Ith_S(rY, 30);
00099
00100 double var_Ca_buffer__Ca_Calsequestrin = NV_Ith_S(rY, 31);
00101
00102 double var_cytosolic_Ca_buffer__Ca_TroponinC = NV_Ith_S(rY, 32);
00103
00104 double var_cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg = NV_Ith_S(rY, 33);
00105
00106 double var_cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg = NV_Ith_S(rY, 34);
00107
00108 double var_cytosolic_Ca_buffer__Ca_Calmodulin = NV_Ith_S(rY, 35);
00109
00110 double var_cytosolic_Ca_buffer__Ca_Myosin = NV_Ith_S(rY, 36);
00111
00112 double var_cytosolic_Ca_buffer__Mg_Myosin = NV_Ith_S(rY, 37);
00113
00114 double var_cytosolic_Ca_buffer__Ca_SRB = NV_Ith_S(rY, 38);
00115
00116 double var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol = NV_Ith_S(rY, 39);
00117
00118 double var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL = NV_Ith_S(rY, 40);
00119
00120 double var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct = NV_Ith_S(rY, 41);
00121
00122 double var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol = NV_Ith_S(rY, 42);
00123
00124 double var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL = NV_Ith_S(rY, 43);
00125
00126 double var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct = NV_Ith_S(rY, 44);
00127
00128
00129
00130 const double var_INa__V = var_cell__V;
00131 const double var_reversal_potentials__Na_jct = var_Na_buffer__Na_jct;
00132 const double var_model_parameters__R = 8314.3;
00133 const double var_reversal_potentials__R = var_model_parameters__R;
00134 const double var_model_parameters__Nao = 140.0;
00135 const double var_reversal_potentials__Nao = var_model_parameters__Nao;
00136 const double var_model_parameters__F = 96486.7;
00137 const double var_reversal_potentials__F = var_model_parameters__F;
00138 const double var_model_parameters__T = 310.0;
00139 const double var_reversal_potentials__T = var_model_parameters__T;
00140 const double var_reversal_potentials__E_Na_jct = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__Nao / var_reversal_potentials__Na_jct);
00141 const double var_INa__E_Na_jct = var_reversal_potentials__E_Na_jct;
00142 double var_INa__G_INa = 16.0;
00143 const double var_INa__m = var_INa_m_gate__m;
00144 const double var_INa__j = var_INa_j_gate__j;
00145 const double var_INa__h = var_INa_h_gate__h;
00146 const double var_INa__openProb = pow(var_INa__m, 3.0) * var_INa__h * var_INa__j;
00147 const double var_INa__Fx_Na_jct = 0.11;
00148 const double var_INa__i_Na_jct = var_INa__Fx_Na_jct * var_INa__G_INa * var_INa__openProb * (var_INa__V - var_INa__E_Na_jct);
00149 const double var_reversal_potentials__Na_SL = var_Na_buffer__Na_SL;
00150 const double var_reversal_potentials__E_Na_SL = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__Nao / var_reversal_potentials__Na_SL);
00151 const double var_INa__E_Na_SL = var_reversal_potentials__E_Na_SL;
00152 const double var_INa__Fx_Na_SL = 0.89;
00153 const double var_INa__i_Na_SL = var_INa__Fx_Na_SL * var_INa__G_INa * var_INa__openProb * (var_INa__V - var_INa__E_Na_SL);
00154 const double var_INa__i_Na = var_INa__i_Na_jct + var_INa__i_Na_SL;
00155 const double var_cell__i_Na = var_INa__i_Na;
00156 const double var_INab__Fx_NaBk_jct = 0.11;
00157 const double var_INab__E_Na_jct = var_reversal_potentials__E_Na_jct;
00158 const double var_INab__G_NaBk = 0.000297;
00159 const double var_INab__V = var_cell__V;
00160 const double var_INab__i_Nab_jct = var_INab__Fx_NaBk_jct * var_INab__G_NaBk * (var_INab__V - var_INab__E_Na_jct);
00161 const double var_INab__E_Na_SL = var_reversal_potentials__E_Na_SL;
00162 const double var_INab__Fx_NaBk_SL = 0.89;
00163 const double var_INab__i_Nab_SL = var_INab__Fx_NaBk_SL * var_INab__G_NaBk * (var_INab__V - var_INab__E_Na_SL);
00164 const double var_INab__i_Nab = var_INab__i_Nab_jct + var_INab__i_Nab_SL;
00165 const double var_cell__i_Nab = var_INab__i_Nab;
00166 const double var_INaK__V = var_cell__V;
00167 const double var_INaK__F = var_model_parameters__F;
00168 const double var_INaK__T = var_model_parameters__T;
00169 const double var_INaK__Nao = var_model_parameters__Nao;
00170 const double var_INaK__sigma = (exp(var_INaK__Nao / 67.3) - 1.0) / 7.0;
00171 const double var_INaK__R = var_model_parameters__R;
00172 const double var_INaK__f_NaK = 1.0 / (1.0 + (0.1245 * exp(((-0.1) * var_INaK__V * var_INaK__F) / (var_INaK__R * var_INaK__T))) + (0.0365 * var_INaK__sigma * exp(((-var_INaK__V) * var_INaK__F) / (var_INaK__R * var_INaK__T))));
00173 const double var_INaK__H_NaK = 4.0;
00174 const double var_INaK__Q10_NaK = 1.63;
00175 const double var_INaK__Q_NaK = pow(var_INaK__Q10_NaK, (var_INaK__T - 310.0) / 10.0);
00176 const double var_model_parameters__Ko = 5.4;
00177 const double var_INaK__Ko = var_model_parameters__Ko;
00178 const double var_INaK__Km_Nai = 11.0;
00179 const double var_INaK__Fx_NaK_SL = 0.89;
00180 const double var_INaK__Na_SL = var_Na_buffer__Na_SL;
00181 const double var_INaK__I_NaK_max = 1.91;
00182 const double var_INaK__Q10_Km_Nai = 1.49;
00183 const double var_INaK__Q_Km_Nai = pow(var_INaK__Q10_Km_Nai, (var_INaK__T - 310.0) / 10.0);
00184 const double var_INaK__Km_Ko = 1.5;
00185 const double var_INaK__i_NaK_SL = (((var_INaK__Fx_NaK_SL * var_INaK__Q_NaK * var_INaK__I_NaK_max * var_INaK__f_NaK) / (1.0 + pow((var_INaK__Q_Km_Nai * var_INaK__Km_Nai) / var_INaK__Na_SL, var_INaK__H_NaK))) * var_INaK__Ko) / (var_INaK__Ko + var_INaK__Km_Ko);
00186 const double var_INaK__Fx_NaK_jct = 0.11;
00187 const double var_INaK__Na_jct = var_Na_buffer__Na_jct;
00188 const double var_INaK__i_NaK_jct = (((var_INaK__Fx_NaK_jct * var_INaK__Q_NaK * var_INaK__I_NaK_max * var_INaK__f_NaK) / (1.0 + pow((var_INaK__Q_Km_Nai * var_INaK__Km_Nai) / var_INaK__Na_jct, var_INaK__H_NaK))) * var_INaK__Ko) / (var_INaK__Ko + var_INaK__Km_Ko);
00189 const double var_INaK__i_NaK = var_INaK__i_NaK_jct + var_INaK__i_NaK_SL;
00190 const double var_cell__i_NaK = var_INaK__i_NaK;
00191 const double var_IKr__Xr = var_IKr_Xr_gate__Xr;
00192 const double var_IKr__V = var_cell__V;
00193 const double var_IKr_Rr_gate__V = var_IKr__V;
00194 const double var_IKr_Rr_gate__Rr = 1.0 / (1.0 + exp((33.0 + var_IKr_Rr_gate__V) / 22.4));
00195 const double var_IKr__Rr = var_IKr_Rr_gate__Rr;
00196 double var_IKr__G_IKr_const = 0.03;
00197 const double var_IKr__Ko = var_model_parameters__Ko;
00198 const double var_IKr__G_IKr = var_IKr__G_IKr_const * sqrt(var_IKr__Ko / 5.4);
00199 const double var_model_parameters__Ki = 135.0;
00200 const double var_reversal_potentials__Ki = var_model_parameters__Ki;
00201 const double var_reversal_potentials__Ko = var_model_parameters__Ko;
00202 const double var_reversal_potentials__E_K = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__Ko / var_reversal_potentials__Ki);
00203 const double var_IKr__E_K = var_reversal_potentials__E_K;
00204 const double var_IKr__i_Kr = var_IKr__G_IKr * var_IKr__Xr * var_IKr__Rr * (var_IKr__V - var_IKr__E_K);
00205 const double var_cell__i_Kr = var_IKr__i_Kr;
00206 const double var_IKs__Fx_Ks_jct = 0.11;
00207 const double var_IKs__Xs = var_IKs_Xs_gate__Xs;
00208 const double var_IKs__Ca_jct = var_Ca_buffer__Ca_jct;
00209 const double var_IKs__pCa_jct = (-log10(var_IKs__Ca_jct / 1.0)) + 3.0;
00210 const double var_IKs__G_Ks_jct = 0.07 * (0.057 + (0.19 / (1.0 + exp(((-7.2) + var_IKs__pCa_jct) / 0.6))));
00211 const double var_IKs__R = var_model_parameters__R;
00212 const double var_IKs__T = var_model_parameters__T;
00213 const double var_IKs__pKNa = 0.01833;
00214 const double var_IKs__F = var_model_parameters__F;
00215 const double var_IKs__Nao = var_model_parameters__Nao;
00216 const double var_IKs__Ki = var_model_parameters__Ki;
00217 const double var_IKs__Ko = var_model_parameters__Ko;
00218 const double var_IKs__Nai = var_Na_buffer__Nai;
00219 const double var_IKs__E_Ks = ((var_IKs__R * var_IKs__T) / var_IKs__F) * log((var_IKs__Ko + (var_IKs__pKNa * var_IKs__Nao)) / (var_IKs__Ki + (var_IKs__pKNa * var_IKs__Nai)));
00220 const double var_IKs__V = var_cell__V;
00221 const double var_IKs__i_Ks_jct = var_IKs__Fx_Ks_jct * var_IKs__G_Ks_jct * pow(var_IKs__Xs, 2.0) * (var_IKs__V - var_IKs__E_Ks);
00222 const double var_IKs__Fx_Ks_SL = 0.89;
00223 const double var_IKs__Ca_SL = var_Ca_buffer__Ca_SL;
00224 const double var_IKs__pCa_SL = (-log10(var_IKs__Ca_SL / 1.0)) + 3.0;
00225 const double var_IKs__G_Ks_SL = 0.07 * (0.057 + (0.19 / (1.0 + exp(((-7.2) + var_IKs__pCa_SL) / 0.6))));
00226 const double var_IKs__i_Ks_SL = var_IKs__Fx_Ks_SL * var_IKs__G_Ks_SL * pow(var_IKs__Xs, 2.0) * (var_IKs__V - var_IKs__E_Ks);
00227 const double var_IKs__i_Ks = var_IKs__i_Ks_jct + var_IKs__i_Ks_SL;
00228 const double var_cell__i_Ks = var_IKs__i_Ks;
00229 const double var_Itos__Y_tos = var_Itos_Y_gate__Y_tos;
00230 const double var_Itos__X_tos = var_Itos_X_gate__X_tos;
00231 const double var_Itos__R_tos = var_Itos_R_gate__R_tos;
00232 const double var_Itos__G_tos = 0.06;
00233 const double var_Itos__E_K = var_reversal_potentials__E_K;
00234 const double var_Itos__V = var_cell__V;
00235 const double var_Itos__i_tos = var_Itos__G_tos * var_Itos__X_tos * (var_Itos__Y_tos + (0.5 * var_Itos__R_tos)) * (var_Itos__V - var_Itos__E_K);
00236 const double var_cell__i_tos = var_Itos__i_tos;
00237 const double var_Itof__G_tof = 0.02;
00238 const double var_Itof__E_K = var_reversal_potentials__E_K;
00239 const double var_Itof__X_tof = var_Itof_X_gate__X_tof;
00240 const double var_Itof__Y_tof = var_Itof_Y_gate__Y_tof;
00241 const double var_Itof__V = var_cell__V;
00242 const double var_Itof__i_tof = var_Itof__G_tof * var_Itof__X_tof * var_Itof__Y_tof * (var_Itof__V - var_Itof__E_K);
00243 const double var_cell__i_tof = var_Itof__i_tof;
00244 const double var_IK1__V = var_cell__V;
00245 const double var_IK1_K1_gate__V = var_IK1__V;
00246 const double var_IK1__E_K = var_reversal_potentials__E_K;
00247 const double var_IK1_K1_gate__E_K = var_IK1__E_K;
00248 const double var_IK1_K1_gate__beta_K1 = ((0.49124 * exp(0.08032 * ((var_IK1_K1_gate__V - var_IK1_K1_gate__E_K) + 5.476))) + (1.0 * exp(0.06175 * (var_IK1_K1_gate__V - (var_IK1_K1_gate__E_K + 594.31))))) / (1.0 + exp((-0.5143) * ((var_IK1_K1_gate__V - var_IK1_K1_gate__E_K) + 4.753)));
00249 const double var_IK1_K1_gate__alpha_K1 = 1.02 / (1.0 + exp(0.2385 * (var_IK1_K1_gate__V - (var_IK1_K1_gate__E_K + 59.215))));
00250 const double var_IK1_K1_gate__K1_infinity = var_IK1_K1_gate__alpha_K1 / (var_IK1_K1_gate__alpha_K1 + var_IK1_K1_gate__beta_K1);
00251 const double var_IK1__K1_infinity = var_IK1_K1_gate__K1_infinity;
00252 const double var_IK1__Ko = var_model_parameters__Ko;
00253 const double var_IK1__G_K1 = 0.9 * sqrt(var_IK1__Ko / 5.4);
00254 const double var_IK1__i_K1 = var_IK1__G_K1 * var_IK1__K1_infinity * (var_IK1__V - var_IK1__E_K);
00255 const double var_cell__i_K1 = var_IK1__i_K1;
00256 const double var_INaCa__K_mNai = 12.29;
00257 const double var_INaCa__HNa = 3.0;
00258 const double var_INaCa__K_mNao = 87.5;
00259 const double var_INaCa__T = var_model_parameters__T;
00260 const double var_model_parameters__Cao = 1.8;
00261 const double var_INaCa__Cao = var_model_parameters__Cao;
00262 const double var_INaCa__V = var_cell__V;
00263 const double var_INaCa__R = var_model_parameters__R;
00264 const double var_INaCa__Nao = var_model_parameters__Nao;
00265 const double var_INaCa__eta = 0.35;
00266 const double var_INaCa__Ca_jct = var_Ca_buffer__Ca_jct;
00267 const double var_INaCa__F = var_model_parameters__F;
00268 const double var_INaCa__Na_jct = var_Na_buffer__Na_jct;
00269 const double var_INaCa__ksat = 0.27;
00270 const double var_INaCa__temp_jct = ((exp((var_INaCa__eta * var_INaCa__V * var_INaCa__F) / (var_INaCa__R * var_INaCa__T)) * pow(var_INaCa__Na_jct, var_INaCa__HNa) * var_INaCa__Cao) - (exp(((var_INaCa__eta - 1.0) * var_INaCa__V * var_INaCa__F) / (var_INaCa__R * var_INaCa__T)) * pow(var_INaCa__Nao, var_INaCa__HNa) * var_INaCa__Ca_jct)) / (1.0 + (var_INaCa__ksat * exp(((var_INaCa__eta - 1.0) * var_INaCa__V * var_INaCa__F) / (var_INaCa__R * var_INaCa__T))));
00271 const double var_INaCa__K_mCao = 1.3;
00272 const double var_INaCa__V_max = 9.0;
00273 const double var_INaCa__K_mCai = 0.00359;
00274 const double var_INaCa__Fx_NCX_jct = 0.11;
00275 const double var_INaCa__Kd_act = 0.000256;
00276 const double var_INaCa__Ka_jct = 1.0 / (1.0 + pow(var_INaCa__Kd_act / var_INaCa__Ca_jct, 3.0));
00277 const double var_INaCa__Q10_NCX = 1.57;
00278 const double var_INaCa__Q_NCX = pow(var_INaCa__Q10_NCX, (var_INaCa__T - 310.0) / 10.0);
00279 const double var_INaCa__i_NaCa_jct = (var_INaCa__Fx_NCX_jct * var_INaCa__V_max * var_INaCa__Ka_jct * var_INaCa__Q_NCX * var_INaCa__temp_jct) / ((var_INaCa__K_mCai * pow(var_INaCa__Nao, var_INaCa__HNa) * (1.0 + pow(var_INaCa__Na_jct / var_INaCa__K_mNai, var_INaCa__HNa))) + (pow(var_INaCa__K_mNao, var_INaCa__HNa) * var_INaCa__Ca_jct * (1.0 + (var_INaCa__Ca_jct / var_INaCa__K_mCai))) + (var_INaCa__K_mCao * pow(var_INaCa__Na_jct, var_INaCa__HNa)) + (pow(var_INaCa__Na_jct, var_INaCa__HNa) * var_INaCa__Cao) + (pow(var_INaCa__Nao, var_INaCa__HNa) * var_INaCa__Ca_jct));
00280 const double var_INaCa__Fx_NCX_SL = 0.89;
00281 const double var_INaCa__Na_SL = var_Na_buffer__Na_SL;
00282 const double var_INaCa__Ca_SL = var_Ca_buffer__Ca_SL;
00283 const double var_INaCa__temp_SL = ((exp((var_INaCa__eta * var_INaCa__V * var_INaCa__F) / (var_INaCa__R * var_INaCa__T)) * pow(var_INaCa__Na_SL, var_INaCa__HNa) * var_INaCa__Cao) - (exp(((var_INaCa__eta - 1.0) * var_INaCa__V * var_INaCa__F) / (var_INaCa__R * var_INaCa__T)) * pow(var_INaCa__Nao, var_INaCa__HNa) * var_INaCa__Ca_SL)) / (1.0 + (var_INaCa__ksat * exp(((var_INaCa__eta - 1.0) * var_INaCa__V * var_INaCa__F) / (var_INaCa__R * var_INaCa__T))));
00284 const double var_INaCa__Ka_SL = 1.0 / (1.0 + pow(var_INaCa__Kd_act / var_INaCa__Ca_SL, 3.0));
00285 const double var_INaCa__i_NaCa_SL = (var_INaCa__Fx_NCX_SL * var_INaCa__V_max * var_INaCa__Ka_SL * var_INaCa__Q_NCX * var_INaCa__temp_SL) / ((var_INaCa__K_mCai * pow(var_INaCa__Nao, var_INaCa__HNa) * (1.0 + pow(var_INaCa__Na_SL / var_INaCa__K_mNai, var_INaCa__HNa))) + (pow(var_INaCa__K_mNao, var_INaCa__HNa) * var_INaCa__Ca_SL * (1.0 + (var_INaCa__Ca_SL / var_INaCa__K_mCai))) + (var_INaCa__K_mCao * pow(var_INaCa__Na_SL, var_INaCa__HNa)) + (pow(var_INaCa__Na_SL, var_INaCa__HNa) * var_INaCa__Cao) + (pow(var_INaCa__Nao, var_INaCa__HNa) * var_INaCa__Ca_SL));
00286 const double var_INaCa__i_NaCa = var_INaCa__i_NaCa_jct + var_INaCa__i_NaCa_SL;
00287 const double var_cell__i_NaCa = var_INaCa__i_NaCa;
00288 const double var_ICl_Ca__V = var_cell__V;
00289 const double var_ICl_Ca__G_Cl = 0.109625;
00290 const double var_ICl_Ca__Ca_jct = var_Ca_buffer__Ca_jct;
00291 const double var_ICl_Ca__Kd_ClCa = 0.1;
00292 const double var_ICl_Ca__Fx_Cl_jct = 0.11;
00293 const double var_model_parameters__Cli = 15.0;
00294 const double var_reversal_potentials__Cli = var_model_parameters__Cli;
00295 const double var_model_parameters__Clo = 150.0;
00296 const double var_reversal_potentials__Clo = var_model_parameters__Clo;
00297 const double var_reversal_potentials__E_Cl = (((-var_reversal_potentials__R) * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__Clo / var_reversal_potentials__Cli);
00298 const double var_ICl_Ca__E_Cl = var_reversal_potentials__E_Cl;
00299 const double var_ICl_Ca__Ca_SL = var_Ca_buffer__Ca_SL;
00300 const double var_ICl_Ca__Fx_Cl_SL = 0.89;
00301 const double var_ICl_Ca__i_Cl_Ca = var_ICl_Ca__G_Cl * (var_ICl_Ca__V - var_ICl_Ca__E_Cl) * ((var_ICl_Ca__Fx_Cl_jct / (1.0 + (var_ICl_Ca__Kd_ClCa / var_ICl_Ca__Ca_jct))) + (var_ICl_Ca__Fx_Cl_SL / (1.0 + (var_ICl_Ca__Kd_ClCa / var_ICl_Ca__Ca_SL))));
00302 const double var_cell__i_Cl_Ca = var_ICl_Ca__i_Cl_Ca;
00303 const double var_IClb__V = var_cell__V;
00304 const double var_IClb__G_ClBk = 0.009;
00305 const double var_IClb__E_Cl = var_reversal_potentials__E_Cl;
00306 const double var_IClb__i_Clb = var_IClb__G_ClBk * (var_IClb__V - var_IClb__E_Cl);
00307 const double var_cell__i_Clb = var_IClb__i_Clb;
00308 const double var_ICaL__T = var_model_parameters__T;
00309 const double var_ICaL__V = var_cell__V;
00310 const double var_ICaL__Nao = var_model_parameters__Nao;
00311 const double var_ICaL__Fx_ICaL_SL = 0.1;
00312 const double var_ICaL__R = var_model_parameters__R;
00313 const double var_ICaL__Na_SL = var_Na_buffer__Na_SL;
00314 const double var_ICaL__d = var_ICaL_d_gate__d;
00315 const double var_ICaL__f = var_ICaL_f_gate__f;
00316 const double var_ICaL__Q10_CaL = 1.8;
00317 const double var_ICaL__Q_CaL = pow(var_ICaL__Q10_CaL, (var_ICaL__T - 310.0) / 10.0);
00318 const double var_ICaL__F = var_model_parameters__F;
00319 const double var_ICaL__temp = (0.45 * var_ICaL__d * var_ICaL__f * var_ICaL__Q_CaL * var_ICaL__V * pow(var_ICaL__F, 2.0)) / (var_ICaL__R * var_ICaL__T);
00320 const double var_ICaL__gamma_Nao = 0.75;
00321 const double var_ICaL__gamma_Nai = 0.75;
00322 const double var_ICaL_fCa_gate__fCa_SL = 1.0 - var_ICaL_fCa_gate__fCaB_SL;
00323 const double var_ICaL__fCa_SL = var_ICaL_fCa_gate__fCa_SL;
00324 const double var_ICaL__PNa = 1.5e-08;
00325 const double var_ICaL__i_CaL_Na_SL = (var_ICaL__temp * var_ICaL__fCa_SL * var_ICaL__Fx_ICaL_SL * var_ICaL__PNa * ((var_ICaL__gamma_Nai * var_ICaL__Na_SL * exp((var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T))) - (var_ICaL__gamma_Nao * var_ICaL__Nao))) / (exp((var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T)) - 1.0);
00326 const double var_ICaL__Ki = var_model_parameters__Ki;
00327 const double var_ICaL__PK = 2.7e-07;
00328 const double var_ICaL_fCa_gate__fCa_jct = 1.0 - var_ICaL_fCa_gate__fCaB_jct;
00329 const double var_ICaL__fCa_jct = var_ICaL_fCa_gate__fCa_jct;
00330 const double var_ICaL__Ko = var_model_parameters__Ko;
00331 const double var_ICaL__Fx_ICaL_jct = 0.9;
00332 const double var_ICaL__gamma_Ko = 0.75;
00333 const double var_ICaL__gamma_Ki = 0.75;
00334 const double var_ICaL__i_CaL_K = (var_ICaL__temp * ((var_ICaL__fCa_SL * var_ICaL__Fx_ICaL_SL) + (var_ICaL__fCa_jct * var_ICaL__Fx_ICaL_jct)) * var_ICaL__PK * ((var_ICaL__gamma_Ki * var_ICaL__Ki * exp((var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T))) - (var_ICaL__gamma_Ko * var_ICaL__Ko))) / (exp((var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T)) - 1.0);
00335 const double var_ICaL__Ca_jct = var_Ca_buffer__Ca_jct;
00336 const double var_ICaL__gamma_Cao = 0.341;
00337 const double var_ICaL__gamma_Cai = 0.341;
00338 const double var_ICaL__Cao = var_model_parameters__Cao;
00339 const double var_ICaL__PCa = 0.00054;
00340 const double var_ICaL__i_CaL_Ca_jct = (var_ICaL__temp * var_ICaL__fCa_jct * var_ICaL__Fx_ICaL_jct * var_ICaL__PCa * 4.0 * ((var_ICaL__gamma_Cai * var_ICaL__Ca_jct * exp((2.0 * var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T))) - (var_ICaL__gamma_Cao * var_ICaL__Cao))) / (exp((2.0 * var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T)) - 1.0);
00341 const double var_ICaL__Na_jct = var_Na_buffer__Na_jct;
00342 const double var_ICaL__i_CaL_Na_jct = (var_ICaL__temp * var_ICaL__fCa_jct * var_ICaL__Fx_ICaL_jct * var_ICaL__PNa * ((var_ICaL__gamma_Nai * var_ICaL__Na_jct * exp((var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T))) - (var_ICaL__gamma_Nao * var_ICaL__Nao))) / (exp((var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T)) - 1.0);
00343 double var_ICaL__G_CaL_mult = 1.0;
00344 const double var_ICaL__Ca_SL = var_Ca_buffer__Ca_SL;
00345 const double var_ICaL__i_CaL_Ca_SL = (var_ICaL__temp * var_ICaL__fCa_SL * var_ICaL__Fx_ICaL_SL * var_ICaL__PCa * 4.0 * ((var_ICaL__gamma_Cai * var_ICaL__Ca_SL * exp((2.0 * var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T))) - (var_ICaL__gamma_Cao * var_ICaL__Cao))) / (exp((2.0 * var_ICaL__V * var_ICaL__F) / (var_ICaL__R * var_ICaL__T)) - 1.0);
00346 const double var_ICaL__i_CaL = var_ICaL__G_CaL_mult * (var_ICaL__i_CaL_Ca_SL + var_ICaL__i_CaL_Ca_jct + var_ICaL__i_CaL_Na_SL + var_ICaL__i_CaL_Na_jct + var_ICaL__i_CaL_K);
00347 const double var_cell__i_CaL = var_ICaL__i_CaL;
00348 const double var_ICab__G_CaBk = 0.0002513;
00349 const double var_ICab__V = var_cell__V;
00350 const double var_ICab__Fx_CaBk_SL = 0.89;
00351 const double var_reversal_potentials__Ca_SL = var_Ca_buffer__Ca_SL;
00352 const double var_reversal_potentials__Cao = var_model_parameters__Cao;
00353 const double var_reversal_potentials__E_Ca_SL = ((var_reversal_potentials__R * var_reversal_potentials__T) / (2.0 * var_reversal_potentials__F)) * log(var_reversal_potentials__Cao / var_reversal_potentials__Ca_SL);
00354 const double var_ICab__E_Ca_SL = var_reversal_potentials__E_Ca_SL;
00355 const double var_ICab__i_Cab_SL = var_ICab__G_CaBk * var_ICab__Fx_CaBk_SL * (var_ICab__V - var_ICab__E_Ca_SL);
00356 const double var_ICab__Fx_CaBk_jct = 0.11;
00357 const double var_reversal_potentials__Ca_jct = var_Ca_buffer__Ca_jct;
00358 const double var_reversal_potentials__E_Ca_jct = ((var_reversal_potentials__R * var_reversal_potentials__T) / (2.0 * var_reversal_potentials__F)) * log(var_reversal_potentials__Cao / var_reversal_potentials__Ca_jct);
00359 const double var_ICab__E_Ca_jct = var_reversal_potentials__E_Ca_jct;
00360 const double var_ICab__i_Cab_jct = var_ICab__G_CaBk * var_ICab__Fx_CaBk_jct * (var_ICab__V - var_ICab__E_Ca_jct);
00361 const double var_ICab__i_Cab = var_ICab__i_Cab_SL + var_ICab__i_Cab_jct;
00362 const double var_cell__i_Cab = var_ICab__i_Cab;
00363 const double var_ICap__H = 1.6;
00364 const double var_ICap__Fx_SLCaP_SL = 0.89;
00365 const double var_ICap__Km = 0.0005;
00366 const double var_ICap__V_maxAF = 0.0673;
00367 const double var_ICap__Q10_SLCaP = 2.35;
00368 const double var_ICap__T = var_model_parameters__T;
00369 const double var_ICap__Q_SLCaP = pow(var_ICap__Q10_SLCaP, (var_ICap__T - 310.0) / 10.0);
00370 const double var_ICap__Ca_SL = var_Ca_buffer__Ca_SL;
00371 const double var_ICap__i_Cap_SL = (var_ICap__Q_SLCaP * var_ICap__V_maxAF * var_ICap__Fx_SLCaP_SL) / (1.0 + pow(var_ICap__Km / var_ICap__Ca_SL, var_ICap__H));
00372 const double var_ICap__Fx_SLCaP_jct = 0.11;
00373 const double var_ICap__Ca_jct = var_Ca_buffer__Ca_jct;
00374 const double var_ICap__i_Cap_jct = (var_ICap__Q_SLCaP * var_ICap__V_maxAF * var_ICap__Fx_SLCaP_jct) / (1.0 + pow(var_ICap__Km / var_ICap__Ca_jct, var_ICap__H));
00375 const double var_ICap__i_Cap = var_ICap__i_Cap_jct + var_ICap__i_Cap_SL;
00376 const double var_cell__i_Cap = var_ICap__i_Cap;
00377 double var_cell__i_Stim = GetStimulus((1.0/1)*var_environment__time);
00378 const double var_model_parameters__Mgi = 1.0;
00379 const double var_model_parameters__cell_length = 100.0;
00380 const double var_model_parameters__cell_radius = 10.25;
00381 const double var_model_parameters__Cm_per_area = 2e-06;
00382 const double var_model_parameters__Cm = (((var_model_parameters__Cm_per_area * 2.0 * var_model_parameters__cell_radius) / 10000.0) * M_PI * var_model_parameters__cell_length) / 10000.0;
00383 const double var_model_parameters__Vol_Cell = (3.141592654 * pow(var_model_parameters__cell_radius / 1000.0, 2.0) * var_model_parameters__cell_length) / pow(1000.0, 3.0);
00384 const double var_model_parameters__Vol_SR = 0.035 * var_model_parameters__Vol_Cell;
00385 const double var_model_parameters__Vol_SL = 0.02 * var_model_parameters__Vol_Cell;
00386 const double var_model_parameters__Vol_jct = 0.00051 * var_model_parameters__Vol_Cell;
00387 const double var_model_parameters__Vol_cytosol = 0.65 * var_model_parameters__Vol_Cell;
00388 const double var_INa_h_gate__V = var_INa__V;
00389 const double var_INa_h_gate__alpha_h = (var_INa_h_gate__V < (-40.0)) ? (0.135 * exp((80.0 + var_INa_h_gate__V) / (-6.8))) : 0.0;
00390 const double var_INa_h_gate__beta_h = (var_INa_h_gate__V < (-40.0)) ? ((3.56 * exp(0.079 * var_INa_h_gate__V)) + (310000.0 * exp(0.35 * var_INa_h_gate__V))) : (1.0 / (0.13 * (1.0 + exp((var_INa_h_gate__V + 10.66) / (-11.1)))));
00391 const double var_INa_h_gate__tau_h = 1.0 / (var_INa_h_gate__alpha_h + var_INa_h_gate__beta_h);
00392 const double var_INa_h_gate__h_infinity = var_INa_h_gate__alpha_h / (var_INa_h_gate__alpha_h + var_INa_h_gate__beta_h);
00393 const double var_INa_j_gate__V = var_INa__V;
00394 const double var_INa_j_gate__alpha_j = (var_INa_j_gate__V < (-40.0)) ? ((((((-127140.0) * exp(0.2444 * var_INa_j_gate__V)) - (3.474e-05 * exp((-0.04391) * var_INa_j_gate__V))) * (var_INa_j_gate__V + 37.78)) / 1.0) / (1.0 + exp(0.311 * (var_INa_j_gate__V + 79.23)))) : 0.0;
00395 const double var_INa_j_gate__beta_j = (var_INa_j_gate__V < (-40.0)) ? ((0.1212 * exp((-0.01052) * var_INa_j_gate__V)) / (1.0 + exp((-0.1378) * (var_INa_j_gate__V + 40.14)))) : ((0.3 * exp((-2.535e-07) * var_INa_j_gate__V)) / (1.0 + exp((-0.1) * (var_INa_j_gate__V + 32.0))));
00396 const double var_INa_j_gate__tau_j = 1.0 / (var_INa_j_gate__alpha_j + var_INa_j_gate__beta_j);
00397 const double var_INa_j_gate__j_infinity = var_INa_j_gate__alpha_j / (var_INa_j_gate__alpha_j + var_INa_j_gate__beta_j);
00398 const double var_INa_m_gate__V = var_INa__V;
00399 const double var_INa_m_gate__alpha_m = ((0.32 * (var_INa_m_gate__V + 47.13)) / 1.0) / (1.0 - exp((-0.1) * (var_INa_m_gate__V + 47.13)));
00400 const double var_INa_m_gate__beta_m = 0.08 * exp((-var_INa_m_gate__V) / 11.0);
00401 const double var_INa_m_gate__tau_m = 1.0 / (var_INa_m_gate__alpha_m + var_INa_m_gate__beta_m);
00402 const double var_INa_m_gate__m_infinity = var_INa_m_gate__alpha_m / (var_INa_m_gate__alpha_m + var_INa_m_gate__beta_m);
00403 const double var_IKr_Xr_gate__V = var_IKr__V;
00404 const double var_IKr_Xr_gate__Xr_infinity = 1.0 / (1.0 + exp((-(50.0 + var_IKr_Xr_gate__V)) / 7.5));
00405 const double var_IKr_Xr_gate__tau_Xr = 1.0 / (((0.00138 * (var_IKr_Xr_gate__V + 7.0)) / (1.0 - exp((-0.123) * (var_IKr_Xr_gate__V + 7.0)))) + ((0.00061 * (var_IKr_Xr_gate__V + 10.0)) / (exp(0.145 * (var_IKr_Xr_gate__V + 10.0)) - 1.0)));
00406 const double var_IKs_Xs_gate__V = var_IKs__V;
00407 const double var_IKs_Xs_gate__Xs_infinity = 1.0 / (1.0 + exp((-(var_IKs_Xs_gate__V - 1.5)) / 16.7));
00408 const double var_IKs_Xs_gate__tau_Xs = 1.0 / (((7.19e-05 * (var_IKs_Xs_gate__V + 30.0)) / (1.0 - exp((-0.148) * (var_IKs_Xs_gate__V + 30.0)))) + ((0.000131 * (var_IKs_Xs_gate__V + 30.0)) / ((-1.0) + exp(0.0687 * (var_IKs_Xs_gate__V + 30.0)))));
00409 const double var_Itos_X_gate__V = var_Itos__V;
00410 const double var_Itos_X_gate__X_tos_infinity = 1.0 / (1.0 + exp((-(var_Itos_X_gate__V + 3.0)) / 15.0));
00411 const double var_Itos_X_gate__tau_X_tos = (9.0 / (1.0 + exp((var_Itos_X_gate__V + 3.0) / 15.0))) + 0.5;
00412 const double var_Itos_Y_gate__V = var_Itos__V;
00413 const double var_Itos_Y_gate__Y_tos_infinity = 1.0 / (1.0 + exp((var_Itos_Y_gate__V + 33.5) / 10.0));
00414 const double var_Itos_Y_gate__tau_Y_tos = (3000.0 / (1.0 + exp((var_Itos_Y_gate__V + 60.0) / 10.0))) + 30.0;
00415 const double var_Itos_R_gate__V = var_Itos__V;
00416 const double var_Itos_R_gate__R_tos_infinity = 1.0 / (1.0 + exp((var_Itos_R_gate__V + 33.5) / 10.0));
00417 const double var_Itos_R_gate__tau_R_tos = (2800.0 / (1.0 + exp((var_Itos_R_gate__V + 60.0) / 10.0))) + 220.0;
00418 const double var_Itof_X_gate__V = var_Itof__V;
00419 const double var_Itof_X_gate__X_tof_infinity = 1.0 / (1.0 + exp((-(var_Itof_X_gate__V + 3.0)) / 15.0));
00420 const double var_Itof_X_gate__tau_X_tof = (3.5 * exp(-pow(var_Itof_X_gate__V / 30.0, 2.0))) + 1.5;
00421 const double var_Itof_Y_gate__V = var_Itof__V;
00422 const double var_Itof_Y_gate__Y_tof_infinity = 1.0 / (1.0 + exp((var_Itof_Y_gate__V + 33.5) / 10.0));
00423 const double var_Itof_Y_gate__tau_Y_tof = (20.0 / (1.0 + exp((var_Itof_Y_gate__V + 33.5) / 10.0))) + 20.0;
00424 const double var_ICaL_d_gate__V = var_ICaL__V;
00425 const double var_ICaL_d_gate__d_infinity = 1.0 / (1.0 + exp((-(var_ICaL_d_gate__V + 14.5)) / 6.0));
00426 const double var_ICaL_d_gate__tau_d = (1.0 * var_ICaL_d_gate__d_infinity * (1.0 - exp((-(var_ICaL_d_gate__V + 14.5)) / 6.0))) / (0.035 * (var_ICaL_d_gate__V + 14.5));
00427 const double var_ICaL_f_gate__V = var_ICaL__V;
00428 const double var_ICaL_f_gate__f_infinity = (1.0 / (1.0 + exp((var_ICaL_f_gate__V + 35.06) / 3.6))) + (0.6 / (1.0 + exp((50.0 - var_ICaL_f_gate__V) / 20.0)));
00429 const double var_ICaL_f_gate__tau_f = 1.0 / ((0.0197 * exp(-pow(0.0337 * (var_ICaL_f_gate__V + 14.5), 2.0))) + 0.02);
00430 const double var_ICaL_fCa_gate__Ca_SL = var_ICaL__Ca_SL;
00431 const double var_ICaL_fCa_gate__Ca_jct = var_ICaL__Ca_jct;
00432 const double var_Jrel_SR__ks = 25.0;
00433 const double var_Jrel_SR__Ca_jct = var_Ca_buffer__Ca_jct;
00434 const double var_Jrel_SR__Ca_SR = var_Ca_buffer__Ca_SR;
00435 const double var_Jrel_SR__j_rel_SR = var_Jrel_SR__ks * var_Jrel_SR__O * (var_Jrel_SR__Ca_SR - var_Jrel_SR__Ca_jct);
00436 const double var_Jrel_SR__Max_SR = 15.0;
00437 const double var_Jrel_SR__Min_SR = 1.0;
00438 const double var_Jrel_SR__EC50_SR = 0.45;
00439 const double var_Jrel_SR__RI = ((1.0 - var_Jrel_SR__R) - var_Jrel_SR__O) - var_Jrel_SR__I;
00440 const double var_Jrel_SR__koCa = 10.0;
00441 const double var_Jrel_SR__kom = 0.06;
00442 const double var_Jrel_SR__kiCa = 0.5;
00443 const double var_Jrel_SR__kim = 0.005;
00444 const double var_Jrel_SR__HSR = 2.5;
00445 const double var_Jrel_SR__kCaSR = var_Jrel_SR__Max_SR - ((var_Jrel_SR__Max_SR - var_Jrel_SR__Min_SR) / (1.0 + pow(var_Jrel_SR__EC50_SR / var_Jrel_SR__Ca_SR, var_Jrel_SR__HSR)));
00446 const double var_Jrel_SR__koSRCa = var_Jrel_SR__koCa / var_Jrel_SR__kCaSR;
00447 const double var_Jrel_SR__kiSRCa = var_Jrel_SR__kiCa * var_Jrel_SR__kCaSR;
00448 const double var_Jleak_SR__Ca_jct = var_Ca_buffer__Ca_jct;
00449 const double var_Jleak_SR__Ca_SR = var_Ca_buffer__Ca_SR;
00450 const double var_Jleak_SR__KSRleak = 5.348e-06;
00451 const double var_Jleak_SR__j_leak_SR = var_Jleak_SR__KSRleak * (var_Jleak_SR__Ca_SR - var_Jleak_SR__Ca_jct);
00452 const double var_Jpump_SR__Ca_SR = var_Ca_buffer__Ca_SR;
00453 const double var_Jpump_SR__T = var_model_parameters__T;
00454 const double var_Jpump_SR__Q10_SRCaP = 2.6;
00455 const double var_Jpump_SR__Q_SRCaP = pow(var_Jpump_SR__Q10_SRCaP, (var_Jpump_SR__T - 310.0) / 10.0);
00456 const double var_Jpump_SR__Kmf = 0.000246;
00457 const double var_Jpump_SR__Vol_cytosol = var_model_parameters__Vol_cytosol;
00458 const double var_Jpump_SR__Vol_SR = var_model_parameters__Vol_SR;
00459 const double var_Jpump_SR__H = 1.787;
00460 const double var_Jpump_SR__Cai = var_Ca_buffer__Cai;
00461 const double var_Jpump_SR__Kmr = 1.7;
00462 const double var_Jpump_SR__V_max = 0.000286;
00463 const double var_Jpump_SR__j_pump_SR = (((var_Jpump_SR__Q_SRCaP * var_Jpump_SR__V_max * var_Jpump_SR__Vol_cytosol) / var_Jpump_SR__Vol_SR) * (pow(var_Jpump_SR__Cai / var_Jpump_SR__Kmf, var_Jpump_SR__H) - pow(var_Jpump_SR__Ca_SR / var_Jpump_SR__Kmr, var_Jpump_SR__H))) / (1.0 + pow(var_Jpump_SR__Cai / var_Jpump_SR__Kmf, var_Jpump_SR__H) + pow(var_Jpump_SR__Ca_SR / var_Jpump_SR__Kmr, var_Jpump_SR__H));
00464 const double var_ion_diffusion__Na_jct = var_Na_buffer__Na_jct;
00465 const double var_ion_diffusion__Na_SL = var_Na_buffer__Na_SL;
00466 const double var_ion_diffusion__J_Na_jct_SL = (var_ion_diffusion__Na_jct - var_ion_diffusion__Na_SL) * 1.8313e-14;
00467 const double var_ion_diffusion__Nai = var_Na_buffer__Nai;
00468 const double var_ion_diffusion__J_Na_SL_cytosol = (var_ion_diffusion__Na_SL - var_ion_diffusion__Nai) * 1.6386e-12;
00469 const double var_ion_diffusion__Ca_SL = var_Ca_buffer__Ca_SL;
00470 const double var_ion_diffusion__Ca_jct = var_Ca_buffer__Ca_jct;
00471 const double var_ion_diffusion__J_Ca_jct_SL = (var_ion_diffusion__Ca_jct - var_ion_diffusion__Ca_SL) * 8.2413e-13;
00472 const double var_ion_diffusion__Cai = var_Ca_buffer__Cai;
00473 const double var_ion_diffusion__J_Ca_SL_cytosol = (var_ion_diffusion__Ca_SL - var_ion_diffusion__Cai) * 3.7243e-12;
00474 const double var_Na_buffer__Bmax_SL = 1.65;
00475 const double var_Na_buffer__Bmax_jct = 7.561;
00476 const double var_Na_buffer__kon = 0.0001;
00477 const double var_Na_buffer__koff = 0.001;
00478 const double var_Na_buffer__J_Na_jct_SL = var_ion_diffusion__J_Na_jct_SL;
00479 const double var_Na_buffer__J_Na_SL_cytosol = var_ion_diffusion__J_Na_SL_cytosol;
00480 const double var_Na_buffer__i_Na_jct = var_INa__i_Na_jct;
00481 const double var_Na_buffer__i_NaCa_jct = var_INaCa__i_NaCa_jct;
00482 const double var_Na_buffer__i_Nab_jct = var_INab__i_Nab_jct;
00483 const double var_Na_buffer__i_NaK_jct = var_INaK__i_NaK_jct;
00484 const double var_Na_buffer__i_CaL_Na_jct = var_ICaL__i_CaL_Na_jct;
00485 const double var_Na_buffer__i_Na_SL = var_INa__i_Na_SL;
00486 const double var_Na_buffer__i_NaCa_SL = var_INaCa__i_NaCa_SL;
00487 const double var_Na_buffer__i_Nab_SL = var_INab__i_Nab_SL;
00488 const double var_Na_buffer__i_NaK_SL = var_INaK__i_NaK_SL;
00489 const double var_Na_buffer__i_CaL_Na_SL = var_ICaL__i_CaL_Na_SL;
00490 const double var_Na_buffer__Vol_SL = var_model_parameters__Vol_SL;
00491 const double var_Na_buffer__Vol_jct = var_model_parameters__Vol_jct;
00492 const double var_Na_buffer__Vol_cytosol = var_model_parameters__Vol_cytosol;
00493 const double var_Na_buffer__F = var_model_parameters__F;
00494 const double var_Na_buffer__Cm = var_model_parameters__Cm;
00495 const double var_Na_buffer__dNa_jct_buf = (var_Na_buffer__kon * var_Na_buffer__Na_jct * (var_Na_buffer__Bmax_jct - var_Na_buffer__Na_jct_buf)) - (var_Na_buffer__koff * var_Na_buffer__Na_jct_buf);
00496 const double var_Na_buffer__dNa_SL_buf = (var_Na_buffer__kon * var_Na_buffer__Na_SL * (var_Na_buffer__Bmax_SL - var_Na_buffer__Na_SL_buf)) - (var_Na_buffer__koff * var_Na_buffer__Na_SL_buf);
00497 const double var_Ca_buffer__Mgi = var_model_parameters__Mgi;
00498 const double var_Ca_buffer__Bmax_SLB_SL = 0.0374;
00499 const double var_Ca_buffer__Bmax_SLB_jct = 0.0046;
00500 const double var_Ca_buffer__Bmax_SLHigh_SL = 0.0134;
00501 const double var_Ca_buffer__Bmax_SLHigh_jct = 0.00165;
00502 const double var_Ca_buffer__Bmax_Calsequestrin = 0.14;
00503 const double var_Ca_buffer__kon_SL = 100.0;
00504 const double var_Ca_buffer__kon_Calsequestrin = 100.0;
00505 const double var_Ca_buffer__koff_SLB = 1.3;
00506 const double var_Ca_buffer__koff_SLHigh = 0.03;
00507 const double var_Ca_buffer__koff_Calsequestrin = 65.0;
00508 const double var_Ca_buffer__i_CaL_Ca_jct = var_ICaL__i_CaL_Ca_jct;
00509 const double var_Ca_buffer__i_NaCa_jct = var_INaCa__i_NaCa_jct;
00510 const double var_Ca_buffer__i_Cab_jct = var_ICab__i_Cab_jct;
00511 const double var_Ca_buffer__i_Cap_jct = var_ICap__i_Cap_jct;
00512 const double var_Ca_buffer__i_CaL_Ca_SL = var_ICaL__i_CaL_Ca_SL;
00513 const double var_Ca_buffer__i_NaCa_SL = var_INaCa__i_NaCa_SL;
00514 const double var_Ca_buffer__i_Cab_SL = var_ICab__i_Cab_SL;
00515 const double var_Ca_buffer__i_Cap_SL = var_ICap__i_Cap_SL;
00516 const double var_Ca_buffer__j_pump_SR = var_Jpump_SR__j_pump_SR;
00517 const double var_Ca_buffer__j_rel_SR = var_Jrel_SR__j_rel_SR;
00518 const double var_Ca_buffer__j_leak_SR = var_Jleak_SR__j_leak_SR;
00519 const double var_Ca_buffer__J_Ca_jct_SL = var_ion_diffusion__J_Ca_jct_SL;
00520 const double var_Ca_buffer__J_Ca_SL_cytosol = var_ion_diffusion__J_Ca_SL_cytosol;
00521 const double var_Ca_buffer__Vol_SR = var_model_parameters__Vol_SR;
00522 const double var_Ca_buffer__Vol_SL = var_model_parameters__Vol_SL;
00523 const double var_Ca_buffer__Vol_jct = var_model_parameters__Vol_jct;
00524 const double var_Ca_buffer__Vol_cytosol = var_model_parameters__Vol_cytosol;
00525 const double var_Ca_buffer__F = var_model_parameters__F;
00526 const double var_Ca_buffer__Cm = var_model_parameters__Cm;
00527 const double var_Ca_buffer__dCalsequestrin = (var_Ca_buffer__kon_Calsequestrin * var_Ca_buffer__Ca_SR * (((var_Ca_buffer__Bmax_Calsequestrin * var_Ca_buffer__Vol_cytosol) / var_Ca_buffer__Vol_SR) - var_Ca_buffer__Ca_Calsequestrin)) - (var_Ca_buffer__koff_Calsequestrin * var_Ca_buffer__Ca_Calsequestrin);
00528 const double var_cytosolic_Ca_buffer__Bmax_Myosin_Mg = 0.14;
00529 const double var_cytosolic_Ca_buffer__koff_Myosin_Mg = 5.7e-05;
00530 const double var_cytosolic_Ca_buffer__Mgi = var_Ca_buffer__Mgi;
00531 const double var_cytosolic_Ca_buffer__kon_Myosin_Mg = 0.0157;
00532 const double var_cytosolic_Ca_buffer__dMg_Myosin = (var_cytosolic_Ca_buffer__kon_Myosin_Mg * var_cytosolic_Ca_buffer__Mgi * (var_cytosolic_Ca_buffer__Bmax_Myosin_Mg - (var_cytosolic_Ca_buffer__Ca_Myosin + var_cytosolic_Ca_buffer__Mg_Myosin))) - (var_cytosolic_Ca_buffer__koff_Myosin_Mg * var_cytosolic_Ca_buffer__Mg_Myosin);
00533 const double var_cytosolic_Ca_buffer__Bmax_TroponinC_Ca_Mg_Mg = 0.14;
00534 const double var_cytosolic_Ca_buffer__kon_TroponinC_Ca_Mg_Mg = 0.003;
00535 const double var_cytosolic_Ca_buffer__koff_TroponinC_Ca_Mg_Mg = 0.00333;
00536 const double var_cytosolic_Ca_buffer__dMg_TroponinC_Ca_Mg = (var_cytosolic_Ca_buffer__kon_TroponinC_Ca_Mg_Mg * var_cytosolic_Ca_buffer__Mgi * (var_cytosolic_Ca_buffer__Bmax_TroponinC_Ca_Mg_Mg - (var_cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg + var_cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg))) - (var_cytosolic_Ca_buffer__koff_TroponinC_Ca_Mg_Mg * var_cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg);
00537 const double var_cytosolic_Ca_buffer__Cai = var_Ca_buffer__Cai;
00538 const double var_cytosolic_Ca_buffer__kon_TroponinC_Ca_Mg_Ca = 2.37;
00539 const double var_cytosolic_Ca_buffer__koff_TroponinC_Ca_Mg_Ca = 3.2e-05;
00540 const double var_cytosolic_Ca_buffer__Bmax_TroponinC_Ca_Mg_Ca = 0.14;
00541 const double var_cytosolic_Ca_buffer__dCa_TroponinC_Ca_Mg = (var_cytosolic_Ca_buffer__kon_TroponinC_Ca_Mg_Ca * var_cytosolic_Ca_buffer__Cai * (var_cytosolic_Ca_buffer__Bmax_TroponinC_Ca_Mg_Ca - (var_cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg + var_cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg))) - (var_cytosolic_Ca_buffer__koff_TroponinC_Ca_Mg_Ca * var_cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg);
00542 const double var_cytosolic_Ca_buffer__kon_Myosin_Ca = 13.8;
00543 const double var_cytosolic_Ca_buffer__Bmax_Myosin_Ca = 0.14;
00544 const double var_cytosolic_Ca_buffer__koff_Myosin_Ca = 0.00046;
00545 const double var_cytosolic_Ca_buffer__dCa_Myosin = (var_cytosolic_Ca_buffer__kon_Myosin_Ca * var_cytosolic_Ca_buffer__Cai * (var_cytosolic_Ca_buffer__Bmax_Myosin_Ca - (var_cytosolic_Ca_buffer__Ca_Myosin + var_cytosolic_Ca_buffer__Mg_Myosin))) - (var_cytosolic_Ca_buffer__koff_Myosin_Ca * var_cytosolic_Ca_buffer__Ca_Myosin);
00546 const double var_cytosolic_Ca_buffer__koff_Calmodulin = 0.238;
00547 const double var_cytosolic_Ca_buffer__kon_Calmodulin = 34.0;
00548 const double var_cytosolic_Ca_buffer__Bmax_Calmodulin = 0.024;
00549 const double var_cytosolic_Ca_buffer__dCa_Calmodulin = (var_cytosolic_Ca_buffer__kon_Calmodulin * var_cytosolic_Ca_buffer__Cai * (var_cytosolic_Ca_buffer__Bmax_Calmodulin - var_cytosolic_Ca_buffer__Ca_Calmodulin)) - (var_cytosolic_Ca_buffer__koff_Calmodulin * var_cytosolic_Ca_buffer__Ca_Calmodulin);
00550 const double var_cytosolic_Ca_buffer__Bmax_TroponinC = 0.07;
00551 const double var_cytosolic_Ca_buffer__kon_TroponinC = 32.7;
00552 const double var_cytosolic_Ca_buffer__koff_TroponinC = 0.0196;
00553 const double var_cytosolic_Ca_buffer__dCa_TroponinC = (var_cytosolic_Ca_buffer__kon_TroponinC * var_cytosolic_Ca_buffer__Cai * (var_cytosolic_Ca_buffer__Bmax_TroponinC - var_cytosolic_Ca_buffer__Ca_TroponinC)) - (var_cytosolic_Ca_buffer__koff_TroponinC * var_cytosolic_Ca_buffer__Ca_TroponinC);
00554 const double var_cytosolic_Ca_buffer__koff_SRB = 0.06;
00555 const double var_cytosolic_Ca_buffer__Bmax_SRB = 0.0171;
00556 const double var_cytosolic_Ca_buffer__kon_SRB = 100.0;
00557 const double var_cytosolic_Ca_buffer__dCa_SRB = (var_cytosolic_Ca_buffer__kon_SRB * var_cytosolic_Ca_buffer__Cai * (var_cytosolic_Ca_buffer__Bmax_SRB - var_cytosolic_Ca_buffer__Ca_SRB)) - (var_cytosolic_Ca_buffer__koff_SRB * var_cytosolic_Ca_buffer__Ca_SRB);
00558 const double var_cytosolic_Ca_buffer__dCa_cytosol_tot_bound = var_cytosolic_Ca_buffer__dCa_TroponinC + var_cytosolic_Ca_buffer__dCa_TroponinC_Ca_Mg + var_cytosolic_Ca_buffer__dMg_TroponinC_Ca_Mg + var_cytosolic_Ca_buffer__dCa_Calmodulin + var_cytosolic_Ca_buffer__dCa_Myosin + var_cytosolic_Ca_buffer__dMg_Myosin + var_cytosolic_Ca_buffer__dCa_SRB;
00559 const double var_Ca_buffer__dCa_cytosol_tot_bound = var_cytosolic_Ca_buffer__dCa_cytosol_tot_bound;
00560 const double var_Ca_buffer__dCa_SLB_SL = (var_Ca_buffer__kon_SL * var_Ca_buffer__Ca_SL * (((var_Ca_buffer__Bmax_SLB_SL * var_Ca_buffer__Vol_cytosol) / var_Ca_buffer__Vol_SL) - var_Ca_buffer__Ca_SLB_SL)) - (var_Ca_buffer__koff_SLB * var_Ca_buffer__Ca_SLB_SL);
00561 const double var_Ca_buffer__dCa_SLB_jct = (var_Ca_buffer__kon_SL * var_Ca_buffer__Ca_jct * (((var_Ca_buffer__Bmax_SLB_jct * 0.1 * var_Ca_buffer__Vol_cytosol) / var_Ca_buffer__Vol_jct) - var_Ca_buffer__Ca_SLB_jct)) - (var_Ca_buffer__koff_SLB * var_Ca_buffer__Ca_SLB_jct);
00562 const double var_Ca_buffer__dCa_SLHigh_SL = (var_Ca_buffer__kon_SL * var_Ca_buffer__Ca_SL * (((var_Ca_buffer__Bmax_SLHigh_SL * var_Ca_buffer__Vol_cytosol) / var_Ca_buffer__Vol_SL) - var_Ca_buffer__Ca_SLHigh_SL)) - (var_Ca_buffer__koff_SLHigh * var_Ca_buffer__Ca_SLHigh_SL);
00563 const double var_Ca_buffer__dCa_SLHigh_jct = (var_Ca_buffer__kon_SL * var_Ca_buffer__Ca_jct * (((var_Ca_buffer__Bmax_SLHigh_jct * 0.1 * var_Ca_buffer__Vol_cytosol) / var_Ca_buffer__Vol_jct) - var_Ca_buffer__Ca_SLHigh_jct)) - (var_Ca_buffer__koff_SLHigh * var_Ca_buffer__Ca_SLHigh_jct);
00564 const double var_Ca_buffer__dCa_jct_tot_bound = var_Ca_buffer__dCa_SLB_jct + var_Ca_buffer__dCa_SLHigh_jct;
00565 const double var_Ca_buffer__dCa_SL_tot_bound = var_Ca_buffer__dCa_SLB_SL + var_Ca_buffer__dCa_SLHigh_SL;
00566 const double var_Ca_buffer__i_Ca_jct_tot = (var_Ca_buffer__i_CaL_Ca_jct - (2.0 * var_Ca_buffer__i_NaCa_jct)) + var_Ca_buffer__i_Cab_jct + var_Ca_buffer__i_Cap_jct;
00567 const double var_Ca_buffer__i_Ca_SL_tot = (var_Ca_buffer__i_CaL_Ca_SL - (2.0 * var_Ca_buffer__i_NaCa_SL)) + var_Ca_buffer__i_Cab_SL + var_Ca_buffer__i_Cap_SL;
00568 const double var_indo_fluo_Ca_buffer_not_connected__Cai = var_Ca_buffer__Cai;
00569 const double var_indo_fluo_Ca_buffer_not_connected__Ca_SL = var_Ca_buffer__Ca_SL;
00570 const double var_indo_fluo_Ca_buffer_not_connected__Ca_jct = var_Ca_buffer__Ca_jct;
00571 const double var_indo_fluo_Ca_buffer_not_connected__Vol_SL = var_Ca_buffer__Vol_SL;
00572 const double var_indo_fluo_Ca_buffer_not_connected__Vol_jct = var_Ca_buffer__Vol_jct;
00573 const double var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol = var_Ca_buffer__Vol_cytosol;
00574 const double var_indo_fluo_Ca_buffer_not_connected__Indo1 = 0.0;
00575 const double var_indo_fluo_Ca_buffer_not_connected__Fluo3 = 0.0;
00576 const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_Cytosol = 0.025;
00577 const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_SL = 0.00077;
00578 const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_jct = 2e-05;
00579 const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_Cytosol = 0.025;
00580 const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_SL = 0.00077;
00581 const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_jct = 2e-05;
00582 const double var_indo_fluo_Ca_buffer_not_connected__kon_Indo1 = 100.0;
00583 const double var_indo_fluo_Ca_buffer_not_connected__kon_Fluo3 = 100.0;
00584 const double var_indo_fluo_Ca_buffer_not_connected__koff_Indo1 = 0.06;
00585 const double var_indo_fluo_Ca_buffer_not_connected__koff_Fluo3 = 0.11;
00586 const double var_indo_fluo_Ca_buffer_not_connected__Indo1Bound = var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol + ((var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct * var_indo_fluo_Ca_buffer_not_connected__Vol_jct) / var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol) + ((var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL * var_indo_fluo_Ca_buffer_not_connected__Vol_SL) / var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol);
00587 const double var_indo_fluo_Ca_buffer_not_connected__Fluo3Bound = var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol + ((var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct * var_indo_fluo_Ca_buffer_not_connected__Vol_jct) / var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol) + ((var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL * var_indo_fluo_Ca_buffer_not_connected__Vol_SL) / var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol);
00588 const double var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_Cytosol = (var_indo_fluo_Ca_buffer_not_connected__kon_Indo1 * (var_indo_fluo_Ca_buffer_not_connected__Indo1 - var_indo_fluo_Ca_buffer_not_connected__Indo1Bound) * var_indo_fluo_Ca_buffer_not_connected__Cai * (var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_Cytosol - var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol)) - (var_indo_fluo_Ca_buffer_not_connected__koff_Indo1 * var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol);
00589 const double var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_jct = (var_indo_fluo_Ca_buffer_not_connected__kon_Indo1 * (var_indo_fluo_Ca_buffer_not_connected__Indo1 - var_indo_fluo_Ca_buffer_not_connected__Indo1Bound) * var_indo_fluo_Ca_buffer_not_connected__Ca_jct * (((var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_jct * var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol) / var_indo_fluo_Ca_buffer_not_connected__Vol_jct) - var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct)) - (var_indo_fluo_Ca_buffer_not_connected__koff_Indo1 * var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct);
00590 const double var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_SL = (var_indo_fluo_Ca_buffer_not_connected__kon_Indo1 * (var_indo_fluo_Ca_buffer_not_connected__Indo1 - var_indo_fluo_Ca_buffer_not_connected__Indo1Bound) * var_indo_fluo_Ca_buffer_not_connected__Ca_SL * (((var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_SL * var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol) / var_indo_fluo_Ca_buffer_not_connected__Vol_SL) - var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL)) - (var_indo_fluo_Ca_buffer_not_connected__koff_Indo1 * var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL);
00591 const double var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_Cytosol = (var_indo_fluo_Ca_buffer_not_connected__kon_Fluo3 * (var_indo_fluo_Ca_buffer_not_connected__Fluo3 - var_indo_fluo_Ca_buffer_not_connected__Fluo3Bound) * var_indo_fluo_Ca_buffer_not_connected__Cai * (var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_Cytosol - var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol)) - (var_indo_fluo_Ca_buffer_not_connected__koff_Fluo3 * var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol);
00592 const double var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_jct = (var_indo_fluo_Ca_buffer_not_connected__kon_Fluo3 * (var_indo_fluo_Ca_buffer_not_connected__Fluo3 - var_indo_fluo_Ca_buffer_not_connected__Fluo3Bound) * var_indo_fluo_Ca_buffer_not_connected__Ca_jct * (((var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_jct * var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol) / var_indo_fluo_Ca_buffer_not_connected__Vol_jct) - var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct)) - (var_indo_fluo_Ca_buffer_not_connected__koff_Fluo3 * var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct);
00593 const double var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_SL = (var_indo_fluo_Ca_buffer_not_connected__kon_Fluo3 * (var_indo_fluo_Ca_buffer_not_connected__Fluo3 - var_indo_fluo_Ca_buffer_not_connected__Fluo3Bound) * var_indo_fluo_Ca_buffer_not_connected__Ca_SL * (((var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_SL * var_indo_fluo_Ca_buffer_not_connected__Vol_cytosol) / var_indo_fluo_Ca_buffer_not_connected__Vol_SL) - var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL)) - (var_indo_fluo_Ca_buffer_not_connected__koff_Fluo3 * var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL);
00594
00595 double d_dt_cell__V;
00596 if (mSetVoltageDerivativeToZero)
00597 {
00598 d_dt_cell__V = 0.0;
00599 }
00600 else
00601 {
00602 d_dt_cell__V = -(var_cell__i_Na + var_cell__i_Nab + var_cell__i_NaK + var_cell__i_Kr + var_cell__i_Ks + var_cell__i_tos + var_cell__i_tof + var_cell__i_K1 + var_cell__i_NaCa + var_cell__i_Cl_Ca + var_cell__i_Clb + var_cell__i_CaL + var_cell__i_Cab + var_cell__i_Cap + var_cell__i_Stim);
00603 }
00604
00605 const double d_dt_INa_h_gate__h = (var_INa_h_gate__h_infinity - var_INa_h_gate__h) / var_INa_h_gate__tau_h;
00606 const double d_dt_INa_j_gate__j = (var_INa_j_gate__j_infinity - var_INa_j_gate__j) / var_INa_j_gate__tau_j;
00607 const double d_dt_INa_m_gate__m = (var_INa_m_gate__m_infinity - var_INa_m_gate__m) / var_INa_m_gate__tau_m;
00608 const double d_dt_IKr_Xr_gate__Xr = (var_IKr_Xr_gate__Xr_infinity - var_IKr_Xr_gate__Xr) / var_IKr_Xr_gate__tau_Xr;
00609 const double d_dt_IKs_Xs_gate__Xs = (var_IKs_Xs_gate__Xs_infinity - var_IKs_Xs_gate__Xs) / var_IKs_Xs_gate__tau_Xs;
00610 const double d_dt_Itos_X_gate__X_tos = (var_Itos_X_gate__X_tos_infinity - var_Itos_X_gate__X_tos) / var_Itos_X_gate__tau_X_tos;
00611 const double d_dt_Itos_Y_gate__Y_tos = (var_Itos_Y_gate__Y_tos_infinity - var_Itos_Y_gate__Y_tos) / var_Itos_Y_gate__tau_Y_tos;
00612 const double d_dt_Itos_R_gate__R_tos = (var_Itos_R_gate__R_tos_infinity - var_Itos_R_gate__R_tos) / var_Itos_R_gate__tau_R_tos;
00613 const double d_dt_Itof_X_gate__X_tof = (var_Itof_X_gate__X_tof_infinity - var_Itof_X_gate__X_tof) / var_Itof_X_gate__tau_X_tof;
00614 const double d_dt_Itof_Y_gate__Y_tof = (var_Itof_Y_gate__Y_tof_infinity - var_Itof_Y_gate__Y_tof) / var_Itof_Y_gate__tau_Y_tof;
00615 const double d_dt_ICaL_d_gate__d = (var_ICaL_d_gate__d_infinity - var_ICaL_d_gate__d) / var_ICaL_d_gate__tau_d;
00616 const double d_dt_ICaL_f_gate__f = (var_ICaL_f_gate__f_infinity - var_ICaL_f_gate__f) / var_ICaL_f_gate__tau_f;
00617 const double d_dt_ICaL_fCa_gate__fCaB_SL = (1.7 * var_ICaL_fCa_gate__Ca_SL * (1.0 - var_ICaL_fCa_gate__fCaB_SL)) - (0.0119 * var_ICaL_fCa_gate__fCaB_SL);
00618 const double d_dt_ICaL_fCa_gate__fCaB_jct = (1.7 * var_ICaL_fCa_gate__Ca_jct * (1.0 - var_ICaL_fCa_gate__fCaB_jct)) - (0.0119 * var_ICaL_fCa_gate__fCaB_jct);
00619 const double d_dt_Jrel_SR__R = ((var_Jrel_SR__kim * var_Jrel_SR__RI) - (var_Jrel_SR__kiSRCa * var_Jrel_SR__Ca_jct * var_Jrel_SR__R)) - ((var_Jrel_SR__koSRCa * pow(var_Jrel_SR__Ca_jct, 2.0) * var_Jrel_SR__R) - (var_Jrel_SR__kom * var_Jrel_SR__O));
00620 const double d_dt_Jrel_SR__O = ((var_Jrel_SR__koSRCa * pow(var_Jrel_SR__Ca_jct, 2.0) * var_Jrel_SR__R) - (var_Jrel_SR__kom * var_Jrel_SR__O)) - ((var_Jrel_SR__kiSRCa * var_Jrel_SR__Ca_jct * var_Jrel_SR__O) - (var_Jrel_SR__kim * var_Jrel_SR__I));
00621 const double d_dt_Jrel_SR__I = ((var_Jrel_SR__kiSRCa * var_Jrel_SR__Ca_jct * var_Jrel_SR__O) - (var_Jrel_SR__kim * var_Jrel_SR__I)) - ((var_Jrel_SR__kom * var_Jrel_SR__I) - (var_Jrel_SR__koSRCa * pow(var_Jrel_SR__Ca_jct, 2.0) * var_Jrel_SR__RI));
00622 const double d_dt_Na_buffer__Na_jct_buf = var_Na_buffer__dNa_jct_buf;
00623 const double d_dt_Na_buffer__Na_SL_buf = var_Na_buffer__dNa_SL_buf;
00624 const double d_dt_Na_buffer__Na_jct = ((((-var_Na_buffer__Cm) * (var_Na_buffer__i_Na_jct + (3.0 * var_Na_buffer__i_NaCa_jct) + var_Na_buffer__i_Nab_jct + (3.0 * var_Na_buffer__i_NaK_jct) + var_Na_buffer__i_CaL_Na_jct)) / (var_Na_buffer__Vol_jct * var_Na_buffer__F)) - (var_Na_buffer__J_Na_jct_SL / var_Na_buffer__Vol_jct)) - var_Na_buffer__dNa_jct_buf;
00625 const double d_dt_Na_buffer__Na_SL = ((((-var_Na_buffer__Cm) * (var_Na_buffer__i_Na_SL + (3.0 * var_Na_buffer__i_NaCa_SL) + var_Na_buffer__i_Nab_SL + (3.0 * var_Na_buffer__i_NaK_SL) + var_Na_buffer__i_CaL_Na_SL)) / (var_Na_buffer__Vol_SL * var_Na_buffer__F)) + ((var_Na_buffer__J_Na_jct_SL - var_Na_buffer__J_Na_SL_cytosol) / var_Na_buffer__Vol_SL)) - var_Na_buffer__dNa_SL_buf;
00626 const double d_dt_Na_buffer__Nai = var_Na_buffer__J_Na_SL_cytosol / var_Na_buffer__Vol_cytosol;
00627 const double d_dt_Ca_buffer__Ca_Calsequestrin = var_Ca_buffer__dCalsequestrin;
00628 const double d_dt_Ca_buffer__Ca_SLB_SL = var_Ca_buffer__dCa_SLB_SL;
00629 const double d_dt_Ca_buffer__Ca_SLB_jct = var_Ca_buffer__dCa_SLB_jct;
00630 const double d_dt_Ca_buffer__Ca_SLHigh_SL = var_Ca_buffer__dCa_SLHigh_SL;
00631 const double d_dt_Ca_buffer__Ca_SLHigh_jct = var_Ca_buffer__dCa_SLHigh_jct;
00632 const double d_dt_Ca_buffer__Ca_SR = (var_Ca_buffer__j_pump_SR - (((var_Ca_buffer__j_leak_SR * var_Ca_buffer__Vol_cytosol) / var_Ca_buffer__Vol_SR) + var_Ca_buffer__j_rel_SR)) - var_Ca_buffer__dCalsequestrin;
00633 const double d_dt_Ca_buffer__Ca_jct = (((((-var_Ca_buffer__i_Ca_jct_tot) * var_Ca_buffer__Cm) / (var_Ca_buffer__Vol_jct * 2.0 * var_Ca_buffer__F)) - (var_Ca_buffer__J_Ca_jct_SL / var_Ca_buffer__Vol_jct)) + ((var_Ca_buffer__j_rel_SR * var_Ca_buffer__Vol_SR) / var_Ca_buffer__Vol_jct) + ((var_Ca_buffer__j_leak_SR * var_Ca_buffer__Vol_cytosol) / var_Ca_buffer__Vol_jct)) - (1.0 * var_Ca_buffer__dCa_jct_tot_bound);
00634 const double d_dt_Ca_buffer__Ca_SL = ((((-var_Ca_buffer__i_Ca_SL_tot) * var_Ca_buffer__Cm) / (var_Ca_buffer__Vol_SL * 2.0 * var_Ca_buffer__F)) + ((var_Ca_buffer__J_Ca_jct_SL - var_Ca_buffer__J_Ca_SL_cytosol) / var_Ca_buffer__Vol_SL)) - (1.0 * var_Ca_buffer__dCa_SL_tot_bound);
00635 const double d_dt_Ca_buffer__Cai = ((((-var_Ca_buffer__j_pump_SR) * var_Ca_buffer__Vol_SR) / var_Ca_buffer__Vol_cytosol) + (var_Ca_buffer__J_Ca_SL_cytosol / var_Ca_buffer__Vol_cytosol)) - (1.0 * var_Ca_buffer__dCa_cytosol_tot_bound);
00636 const double d_dt_cytosolic_Ca_buffer__Ca_TroponinC = var_cytosolic_Ca_buffer__dCa_TroponinC;
00637 const double d_dt_cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg = var_cytosolic_Ca_buffer__dCa_TroponinC_Ca_Mg;
00638 const double d_dt_cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg = var_cytosolic_Ca_buffer__dMg_TroponinC_Ca_Mg;
00639 const double d_dt_cytosolic_Ca_buffer__Ca_Calmodulin = var_cytosolic_Ca_buffer__dCa_Calmodulin;
00640 const double d_dt_cytosolic_Ca_buffer__Ca_Myosin = var_cytosolic_Ca_buffer__dCa_Myosin;
00641 const double d_dt_cytosolic_Ca_buffer__Mg_Myosin = var_cytosolic_Ca_buffer__dMg_Myosin;
00642 const double d_dt_cytosolic_Ca_buffer__Ca_SRB = var_cytosolic_Ca_buffer__dCa_SRB;
00643 const double d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol = var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_Cytosol;
00644 const double d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL = var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_SL;
00645 const double d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct = var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_jct;
00646 const double d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol = var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_Cytosol;
00647 const double d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL = var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_SL;
00648 const double d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct = var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_jct;
00649
00650 NV_Ith_S(ydot, 0) = d_dt_cell__V;
00651 NV_Ith_S(ydot, 1) = d_dt_INa_h_gate__h;
00652 NV_Ith_S(ydot, 2) = d_dt_INa_j_gate__j;
00653 NV_Ith_S(ydot, 3) = d_dt_INa_m_gate__m;
00654 NV_Ith_S(ydot, 4) = d_dt_IKr_Xr_gate__Xr;
00655 NV_Ith_S(ydot, 5) = d_dt_IKs_Xs_gate__Xs;
00656 NV_Ith_S(ydot, 6) = d_dt_Itos_X_gate__X_tos;
00657 NV_Ith_S(ydot, 7) = d_dt_Itos_Y_gate__Y_tos;
00658 NV_Ith_S(ydot, 8) = d_dt_Itos_R_gate__R_tos;
00659 NV_Ith_S(ydot, 9) = d_dt_Itof_X_gate__X_tof;
00660 NV_Ith_S(ydot, 10) = d_dt_Itof_Y_gate__Y_tof;
00661 NV_Ith_S(ydot, 11) = d_dt_ICaL_d_gate__d;
00662 NV_Ith_S(ydot, 12) = d_dt_ICaL_f_gate__f;
00663 NV_Ith_S(ydot, 13) = d_dt_ICaL_fCa_gate__fCaB_SL;
00664 NV_Ith_S(ydot, 14) = d_dt_ICaL_fCa_gate__fCaB_jct;
00665 NV_Ith_S(ydot, 15) = d_dt_Jrel_SR__R;
00666 NV_Ith_S(ydot, 16) = d_dt_Jrel_SR__I;
00667 NV_Ith_S(ydot, 17) = d_dt_Jrel_SR__O;
00668 NV_Ith_S(ydot, 18) = d_dt_Na_buffer__Na_SL;
00669 NV_Ith_S(ydot, 19) = d_dt_Na_buffer__Na_jct;
00670 NV_Ith_S(ydot, 20) = d_dt_Na_buffer__Na_SL_buf;
00671 NV_Ith_S(ydot, 21) = d_dt_Na_buffer__Na_jct_buf;
00672 NV_Ith_S(ydot, 22) = d_dt_Na_buffer__Nai;
00673 NV_Ith_S(ydot, 23) = d_dt_Ca_buffer__Ca_SR;
00674 NV_Ith_S(ydot, 24) = d_dt_Ca_buffer__Ca_SL;
00675 NV_Ith_S(ydot, 25) = d_dt_Ca_buffer__Ca_jct;
00676 NV_Ith_S(ydot, 26) = d_dt_Ca_buffer__Cai;
00677 NV_Ith_S(ydot, 27) = d_dt_Ca_buffer__Ca_SLB_SL;
00678 NV_Ith_S(ydot, 28) = d_dt_Ca_buffer__Ca_SLB_jct;
00679 NV_Ith_S(ydot, 29) = d_dt_Ca_buffer__Ca_SLHigh_SL;
00680 NV_Ith_S(ydot, 30) = d_dt_Ca_buffer__Ca_SLHigh_jct;
00681 NV_Ith_S(ydot, 31) = d_dt_Ca_buffer__Ca_Calsequestrin;
00682 NV_Ith_S(ydot, 32) = d_dt_cytosolic_Ca_buffer__Ca_TroponinC;
00683 NV_Ith_S(ydot, 33) = d_dt_cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg;
00684 NV_Ith_S(ydot, 34) = d_dt_cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg;
00685 NV_Ith_S(ydot, 35) = d_dt_cytosolic_Ca_buffer__Ca_Calmodulin;
00686 NV_Ith_S(ydot, 36) = d_dt_cytosolic_Ca_buffer__Ca_Myosin;
00687 NV_Ith_S(ydot, 37) = d_dt_cytosolic_Ca_buffer__Mg_Myosin;
00688 NV_Ith_S(ydot, 38) = d_dt_cytosolic_Ca_buffer__Ca_SRB;
00689 NV_Ith_S(ydot, 39) = d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol;
00690 NV_Ith_S(ydot, 40) = d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL;
00691 NV_Ith_S(ydot, 41) = d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct;
00692 NV_Ith_S(ydot, 42) = d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol;
00693 NV_Ith_S(ydot, 43) = d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL;
00694 NV_Ith_S(ydot, 44) = d_dt_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct;
00695 }
00696
00697 };
00698
00699
00700 template<>
00701 void OdeSystemInformation<CvOdeCellShannon2004FromCellML>::Initialise(void)
00702 {
00703
00704
00705 this->mVariableNames.push_back("membrane_voltage");
00706 this->mVariableUnits.push_back("millivolt");
00707 this->mInitialConditions.push_back(-85.719687955637);
00708
00709 this->mVariableNames.push_back("h");
00710 this->mVariableUnits.push_back("dimensionless");
00711 this->mInitialConditions.push_back(0.987140350343);
00712
00713 this->mVariableNames.push_back("j");
00714 this->mVariableUnits.push_back("dimensionless");
00715 this->mInitialConditions.push_back(0.991822731369);
00716
00717 this->mVariableNames.push_back("m");
00718 this->mVariableUnits.push_back("dimensionless");
00719 this->mInitialConditions.push_back(0.001370685156);
00720
00721 this->mVariableNames.push_back("Xr");
00722 this->mVariableUnits.push_back("dimensionless");
00723 this->mInitialConditions.push_back(0.008471550841);
00724
00725 this->mVariableNames.push_back("Xs");
00726 this->mVariableUnits.push_back("dimensionless");
00727 this->mInitialConditions.push_back(0.00687399199);
00728
00729 this->mVariableNames.push_back("X_tos");
00730 this->mVariableUnits.push_back("dimensionless");
00731 this->mInitialConditions.push_back(0.004011272375);
00732
00733 this->mVariableNames.push_back("Y_tos");
00734 this->mVariableUnits.push_back("dimensionless");
00735 this->mInitialConditions.push_back(0.293519921626);
00736
00737 this->mVariableNames.push_back("R_tos");
00738 this->mVariableUnits.push_back("dimensionless");
00739 this->mInitialConditions.push_back(0.383430556383);
00740
00741 this->mVariableNames.push_back("X_tof");
00742 this->mVariableUnits.push_back("dimensionless");
00743 this->mInitialConditions.push_back(0.00401120993);
00744
00745 this->mVariableNames.push_back("Y_tof");
00746 this->mVariableUnits.push_back("dimensionless");
00747 this->mInitialConditions.push_back(0.9946314893);
00748
00749 this->mVariableNames.push_back("d");
00750 this->mVariableUnits.push_back("dimensionless");
00751 this->mInitialConditions.push_back(0.000006997531);
00752
00753 this->mVariableNames.push_back("f");
00754 this->mVariableUnits.push_back("dimensionless");
00755 this->mInitialConditions.push_back(1.000675515962);
00756
00757 this->mVariableNames.push_back("fCaB_SL");
00758 this->mVariableUnits.push_back("dimensionless");
00759 this->mInitialConditions.push_back(0.015352888928);
00760
00761 this->mVariableNames.push_back("fCaB_jct");
00762 this->mVariableUnits.push_back("dimensionless");
00763 this->mInitialConditions.push_back(0.024609183734);
00764
00765 this->mVariableNames.push_back("R");
00766 this->mVariableUnits.push_back("dimensionless");
00767 this->mInitialConditions.push_back(0.884673513138);
00768
00769 this->mVariableNames.push_back("I");
00770 this->mVariableUnits.push_back("dimensionless");
00771 this->mInitialConditions.push_back(0.00000009272);
00772
00773 this->mVariableNames.push_back("O");
00774 this->mVariableUnits.push_back("dimensionless");
00775 this->mInitialConditions.push_back(0.000000711264);
00776
00777 this->mVariableNames.push_back("Na_SL");
00778 this->mVariableUnits.push_back("millimolar");
00779 this->mInitialConditions.push_back(8.874077316753);
00780
00781 this->mVariableNames.push_back("Na_jct");
00782 this->mVariableUnits.push_back("millimolar");
00783 this->mInitialConditions.push_back(8.872823559072);
00784
00785 this->mVariableNames.push_back("Na_SL_buf");
00786 this->mVariableUnits.push_back("millimolar");
00787 this->mInitialConditions.push_back(0.776121392467);
00788
00789 this->mVariableNames.push_back("Na_jct_buf");
00790 this->mVariableUnits.push_back("millimolar");
00791 this->mInitialConditions.push_back(3.557055389701);
00792
00793 this->mVariableNames.push_back("Nai");
00794 this->mVariableUnits.push_back("millimolar");
00795 this->mInitialConditions.push_back(8.874461106492);
00796
00797 this->mVariableNames.push_back("Ca_SR");
00798 this->mVariableUnits.push_back("millimolar");
00799 this->mInitialConditions.push_back(0.545611267699);
00800
00801 this->mVariableNames.push_back("Ca_SL");
00802 this->mVariableUnits.push_back("millimolar");
00803 this->mInitialConditions.push_back(0.000106395937);
00804
00805 this->mVariableNames.push_back("Ca_jct");
00806 this->mVariableUnits.push_back("millimolar");
00807 this->mInitialConditions.push_back(0.000174843061);
00808
00809 this->mVariableNames.push_back("Cai");
00810 this->mVariableUnits.push_back("millimolar");
00811 this->mInitialConditions.push_back(0.000087350002);
00812
00813 this->mVariableNames.push_back("Ca_SLB_SL");
00814 this->mVariableUnits.push_back("millimolar");
00815 this->mInitialConditions.push_back(0.009868629147);
00816
00817 this->mVariableNames.push_back("Ca_SLB_jct");
00818 this->mVariableUnits.push_back("millimolar");
00819 this->mInitialConditions.push_back(0.007780801995);
00820
00821 this->mVariableNames.push_back("Ca_SLHigh_SL");
00822 this->mVariableUnits.push_back("millimolar");
00823 this->mInitialConditions.push_back(0.114438990328);
00824
00825 this->mVariableNames.push_back("Ca_SLHigh_jct");
00826 this->mVariableUnits.push_back("millimolar");
00827 this->mInitialConditions.push_back(0.077503874257);
00828
00829 this->mVariableNames.push_back("Ca_Calsequestrin");
00830 this->mVariableUnits.push_back("millimolar");
00831 this->mInitialConditions.push_back(1.186496899338);
00832
00833 this->mVariableNames.push_back("Ca_TroponinC");
00834 this->mVariableUnits.push_back("millimolar");
00835 this->mInitialConditions.push_back(0.008963736337);
00836
00837 this->mVariableNames.push_back("Ca_TroponinC_Ca_Mg");
00838 this->mVariableUnits.push_back("millimolar");
00839 this->mInitialConditions.push_back(0.117995194438);
00840
00841 this->mVariableNames.push_back("Mg_TroponinC_Ca_Mg");
00842 this->mVariableUnits.push_back("millimolar");
00843 this->mInitialConditions.push_back(0.010337654274);
00844
00845 this->mVariableNames.push_back("Ca_Calmodulin");
00846 this->mVariableUnits.push_back("millimolar");
00847 this->mInitialConditions.push_back(0.000295961245);
00848
00849 this->mVariableNames.push_back("Ca_Myosin");
00850 this->mVariableUnits.push_back("millimolar");
00851 this->mInitialConditions.push_back(0.001984672275);
00852
00853 this->mVariableNames.push_back("Mg_Myosin");
00854 this->mVariableUnits.push_back("millimolar");
00855 this->mInitialConditions.push_back(0.137497736234);
00856
00857 this->mVariableNames.push_back("Ca_SRB");
00858 this->mVariableUnits.push_back("millimolar");
00859 this->mInitialConditions.push_back(0.002177112381);
00860
00861 this->mVariableNames.push_back("Ca_Indo1_Cytosol");
00862 this->mVariableUnits.push_back("millimolar");
00863 this->mInitialConditions.push_back(0);
00864
00865 this->mVariableNames.push_back("Ca_Indo1_SL");
00866 this->mVariableUnits.push_back("millimolar");
00867 this->mInitialConditions.push_back(0);
00868
00869 this->mVariableNames.push_back("Ca_Indo1_jct");
00870 this->mVariableUnits.push_back("millimolar");
00871 this->mInitialConditions.push_back(0);
00872
00873 this->mVariableNames.push_back("Ca_Fluo3_Cytosol");
00874 this->mVariableUnits.push_back("millimolar");
00875 this->mInitialConditions.push_back(0);
00876
00877 this->mVariableNames.push_back("Ca_Fluo3_SL");
00878 this->mVariableUnits.push_back("millimolar");
00879 this->mInitialConditions.push_back(0);
00880
00881 this->mVariableNames.push_back("Ca_Fluo3_jct");
00882 this->mVariableUnits.push_back("millimolar");
00883 this->mInitialConditions.push_back(0);
00884
00885 this->mInitialised = true;
00886 }
00887
00888 #endif //_CVODECELLSHANNON2004FROMCELLML_
00889
00890 #endif // CHASTE_CVODE
00891