Chaste Release::3.1
|
00001 /* 00002 00003 Copyright (c) 2005-2012, University of Oxford. 00004 All rights reserved. 00005 00006 University of Oxford means the Chancellor, Masters and Scholars of the 00007 University of Oxford, having an administrative office at Wellington 00008 Square, Oxford OX1 2JD, UK. 00009 00010 This file is part of Chaste. 00011 00012 Redistribution and use in source and binary forms, with or without 00013 modification, are permitted provided that the following conditions are met: 00014 * Redistributions of source code must retain the above copyright notice, 00015 this list of conditions and the following disclaimer. 00016 * Redistributions in binary form must reproduce the above copyright notice, 00017 this list of conditions and the following disclaimer in the documentation 00018 and/or other materials provided with the distribution. 00019 * Neither the name of the University of Oxford nor the names of its 00020 contributors may be used to endorse or promote products derived from this 00021 software without specific prior written permission. 00022 00023 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00024 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00025 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00026 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 00027 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00028 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 00029 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00030 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00031 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00032 OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00033 00034 */ 00035 00036 #include "NobleVargheseKohlNoble1998WithSac.hpp" 00037 #include "HeartConfig.hpp" 00038 00039 CML_noble_varghese_kohl_noble_1998_basic_with_sac::CML_noble_varghese_kohl_noble_1998_basic_with_sac( 00040 boost::shared_ptr<AbstractIvpOdeSolver> pSolver, 00041 boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus) 00042 : AbstractCardiacCell(pSolver, 22, 0, pIntracellularStimulus) 00043 { 00044 mStretch = 1.0; 00045 00046 mpSystemInfo = OdeSystemInformation<CML_noble_varghese_kohl_noble_1998_basic_with_sac>::Instance(); 00047 00048 Init(); 00049 00050 } 00051 00052 CML_noble_varghese_kohl_noble_1998_basic_with_sac::~CML_noble_varghese_kohl_noble_1998_basic_with_sac(void) 00053 { 00054 } 00055 00056 double CML_noble_varghese_kohl_noble_1998_basic_with_sac::GetIIonic(const std::vector<double>* pStateVariables) 00057 { 00058 if (!pStateVariables) pStateVariables = &rGetStateVariables(); 00059 const std::vector<double>& rY = *pStateVariables; 00060 double var_membrane__V = rY[0]; 00061 // Units: millivolt; Initial value: -92.849333 00062 double var_rapid_delayed_rectifier_potassium_current_xr1_gate__xr1 = rY[1]; 00063 // Units: dimensionless; Initial value: 1.03e-5 00064 double var_rapid_delayed_rectifier_potassium_current_xr2_gate__xr2 = rY[2]; 00065 // Units: dimensionless; Initial value: 2e-7 00066 double var_slow_delayed_rectifier_potassium_current_xs_gate__xs = rY[3]; 00067 // Units: dimensionless; Initial value: 0.001302 00068 double var_fast_sodium_current_m_gate__m = rY[4]; 00069 // Units: dimensionless; Initial value: 0.0016203 00070 double var_fast_sodium_current_h_gate__h = rY[5]; 00071 // Units: dimensionless; Initial value: 0.9944036 00072 double var_L_type_Ca_channel_d_gate__d = rY[6]; 00073 // Units: dimensionless; Initial value: 0 00074 double var_L_type_Ca_channel_f_gate__f = rY[7]; 00075 // Units: dimensionless; Initial value: 1 00076 double var_L_type_Ca_channel_f2_gate__f2 = rY[8]; 00077 // Units: dimensionless; Initial value: 0.9349197 00078 double var_L_type_Ca_channel_f2ds_gate__f2ds = rY[9]; 00079 // Units: dimensionless; Initial value: 0.9651958 00080 double var_transient_outward_current_s_gate__s = rY[10]; 00081 // Units: dimensionless; Initial value: 0.9948645 00082 double var_transient_outward_current_r_gate__r = rY[11]; 00083 // Units: dimensionless; Initial value: 0 00084 double var_intracellular_sodium_concentration__Na_i = rY[14]; 00085 // Units: millimolar; Initial value: 7.3321223 00086 double var_intracellular_potassium_concentration__K_i = rY[15]; 00087 // Units: millimolar; Initial value: 136.5644281 00088 double var_intracellular_calcium_concentration__Ca_i = rY[16]; 00089 // Units: millimolar; Initial value: 1.4e-5 00090 double var_intracellular_calcium_concentration__Ca_ds = rY[17]; 00091 // Units: millimolar; Initial value: 1.88e-5 00092 00093 const double var_membrane__R = 8314.472; 00094 const double var_membrane__T = 310.0; 00095 const double var_membrane__F = 96485.3415; 00096 double var_reversal_potentials__K_i = var_intracellular_potassium_concentration__K_i; 00097 double var_reversal_potentials__R = var_membrane__R; 00098 double var_reversal_potentials__T = var_membrane__T; 00099 double var_reversal_potentials__F = var_membrane__F; 00100 const double var_extracellular_potassium_concentration__K_o = 4.0; 00101 double var_reversal_potentials__K_o = var_extracellular_potassium_concentration__K_o; 00102 double var_reversal_potentials__E_K = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__K_o / var_reversal_potentials__K_i); 00103 double var_time_independent_potassium_current__E_K = var_reversal_potentials__E_K; 00104 double var_time_independent_potassium_current__K_o = var_extracellular_potassium_concentration__K_o; 00105 double var_time_independent_potassium_current__R = var_membrane__R; 00106 double var_time_independent_potassium_current__V = var_membrane__V; 00107 double var_time_independent_potassium_current__T = var_membrane__T; 00108 const double var_time_independent_potassium_current__K_mk1 = 10.0; 00109 const double var_time_independent_potassium_current__g_K1 = 0.5; 00110 double var_time_independent_potassium_current__F = var_membrane__F; 00111 double var_time_independent_potassium_current__i_K1 = (((var_time_independent_potassium_current__g_K1 * var_time_independent_potassium_current__K_o) / (var_time_independent_potassium_current__K_o + var_time_independent_potassium_current__K_mk1)) * (var_time_independent_potassium_current__V - var_time_independent_potassium_current__E_K)) / (1.0 + exp((((var_time_independent_potassium_current__V - var_time_independent_potassium_current__E_K) - 10.0) * var_time_independent_potassium_current__F * 1.25) / (var_time_independent_potassium_current__R * var_time_independent_potassium_current__T))); 00112 double var_membrane__i_K1 = var_time_independent_potassium_current__i_K1; 00113 double var_transient_outward_current__s = var_transient_outward_current_s_gate__s; 00114 double var_transient_outward_current__r = var_transient_outward_current_r_gate__r; 00115 const double var_transient_outward_current__g_to = 0.005; 00116 double var_transient_outward_current__V = var_membrane__V; 00117 double var_transient_outward_current__E_K = var_reversal_potentials__E_K; 00118 const double var_transient_outward_current__g_tos = 0.0; 00119 double var_transient_outward_current__i_to = var_transient_outward_current__g_to * (var_transient_outward_current__g_tos + (var_transient_outward_current__s * (1.0 - var_transient_outward_current__g_tos))) * var_transient_outward_current__r * (var_transient_outward_current__V - var_transient_outward_current__E_K); 00120 double var_membrane__i_to = var_transient_outward_current__i_to; 00121 const double var_rapid_delayed_rectifier_potassium_current__g_Kr2 = 0.0013; 00122 const double var_rapid_delayed_rectifier_potassium_current__g_Kr1 = 0.0021; 00123 double var_rapid_delayed_rectifier_potassium_current__xr1 = var_rapid_delayed_rectifier_potassium_current_xr1_gate__xr1; 00124 double var_rapid_delayed_rectifier_potassium_current__xr2 = var_rapid_delayed_rectifier_potassium_current_xr2_gate__xr2; 00125 double var_rapid_delayed_rectifier_potassium_current__V = var_membrane__V; 00126 double var_rapid_delayed_rectifier_potassium_current__E_K = var_reversal_potentials__E_K; 00127 double var_rapid_delayed_rectifier_potassium_current__i_Kr = ((((var_rapid_delayed_rectifier_potassium_current__g_Kr1 * var_rapid_delayed_rectifier_potassium_current__xr1) + (var_rapid_delayed_rectifier_potassium_current__g_Kr2 * var_rapid_delayed_rectifier_potassium_current__xr2)) * 1.0) / (1.0 + exp((var_rapid_delayed_rectifier_potassium_current__V + 9.0) / 22.4))) * (var_rapid_delayed_rectifier_potassium_current__V - var_rapid_delayed_rectifier_potassium_current__E_K); 00128 double var_membrane__i_Kr = var_rapid_delayed_rectifier_potassium_current__i_Kr; 00129 double var_slow_delayed_rectifier_potassium_current__xs = var_slow_delayed_rectifier_potassium_current_xs_gate__xs; 00130 const double var_extracellular_sodium_concentration__Na_o = 140.0; 00131 double var_reversal_potentials__Na_o = var_extracellular_sodium_concentration__Na_o; 00132 double var_reversal_potentials__Na_i = var_intracellular_sodium_concentration__Na_i; 00133 const double var_reversal_potentials__P_kna = 0.03; 00134 double var_reversal_potentials__E_Ks = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log((var_reversal_potentials__K_o + (var_reversal_potentials__P_kna * var_reversal_potentials__Na_o)) / (var_reversal_potentials__K_i + (var_reversal_potentials__P_kna * var_reversal_potentials__Na_i))); 00135 double var_slow_delayed_rectifier_potassium_current__E_Ks = var_reversal_potentials__E_Ks; 00136 const double var_slow_delayed_rectifier_potassium_current__g_Ks = 0.0026; 00137 double var_slow_delayed_rectifier_potassium_current__V = var_membrane__V; 00138 double var_slow_delayed_rectifier_potassium_current__i_Ks = var_slow_delayed_rectifier_potassium_current__g_Ks * pow(var_slow_delayed_rectifier_potassium_current__xs, 2.0) * (var_slow_delayed_rectifier_potassium_current__V - var_slow_delayed_rectifier_potassium_current__E_Ks); 00139 double var_membrane__i_Ks = var_slow_delayed_rectifier_potassium_current__i_Ks; 00140 double var_L_type_Ca_channel__d = var_L_type_Ca_channel_d_gate__d; 00141 const double var_L_type_Ca_channel__FrICa = 1.0; 00142 double var_L_type_Ca_channel__f = var_L_type_Ca_channel_f_gate__f; 00143 double var_L_type_Ca_channel__K_o = var_extracellular_potassium_concentration__K_o; 00144 double var_L_type_Ca_channel__K_i = var_intracellular_potassium_concentration__K_i; 00145 double var_L_type_Ca_channel__F = var_membrane__F; 00146 const double var_L_type_Ca_channel__P_Ca_L = 0.1; 00147 double var_L_type_Ca_channel__T = var_membrane__T; 00148 const double var_L_type_Ca_channel__P_CaK = 0.002; 00149 double var_L_type_Ca_channel__V = var_membrane__V; 00150 double var_L_type_Ca_channel__f2 = var_L_type_Ca_channel_f2_gate__f2; 00151 double var_L_type_Ca_channel__R = var_membrane__R; 00152 double var_L_type_Ca_channel__i_Ca_L_K_cyt = ((((1.0 - var_L_type_Ca_channel__FrICa) * var_L_type_Ca_channel__P_CaK * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2 * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__K_i * exp((50.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__K_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00153 double var_membrane__i_Ca_L_K_cyt = var_L_type_Ca_channel__i_Ca_L_K_cyt; 00154 double var_L_type_Ca_channel__f2ds = var_L_type_Ca_channel_f2ds_gate__f2ds; 00155 double var_L_type_Ca_channel__i_Ca_L_K_ds = (((var_L_type_Ca_channel__FrICa * var_L_type_Ca_channel__P_CaK * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2ds * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__K_i * exp((50.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__K_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00156 double var_membrane__i_Ca_L_K_ds = var_L_type_Ca_channel__i_Ca_L_K_ds; 00157 const double var_sodium_potassium_pump__i_NaK_max = 0.7; 00158 double var_sodium_potassium_pump__Na_i = var_intracellular_sodium_concentration__Na_i; 00159 double var_sodium_potassium_pump__K_o = var_extracellular_potassium_concentration__K_o; 00160 const double var_sodium_potassium_pump__K_mNa = 40.0; 00161 const double var_sodium_potassium_pump__K_mK = 1.0; 00162 double var_sodium_potassium_pump__i_NaK = (((var_sodium_potassium_pump__i_NaK_max * var_sodium_potassium_pump__K_o) / (var_sodium_potassium_pump__K_mK + var_sodium_potassium_pump__K_o)) * var_sodium_potassium_pump__Na_i) / (var_sodium_potassium_pump__K_mNa + var_sodium_potassium_pump__Na_i); 00163 double var_membrane__i_NaK = var_sodium_potassium_pump__i_NaK; 00164 const double var_fast_sodium_current__g_Na = 2.5; 00165 double var_fast_sodium_current__h = var_fast_sodium_current_h_gate__h; 00166 double var_fast_sodium_current__V = var_membrane__V; 00167 double var_reversal_potentials__E_mh = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log((var_reversal_potentials__Na_o + (0.12 * var_reversal_potentials__K_o)) / (var_reversal_potentials__Na_i + (0.12 * var_reversal_potentials__K_i))); 00168 double var_fast_sodium_current__E_mh = var_reversal_potentials__E_mh; 00169 double var_fast_sodium_current__m = var_fast_sodium_current_m_gate__m; 00170 double var_fast_sodium_current__i_Na = var_fast_sodium_current__g_Na * pow(var_fast_sodium_current__m, 3.0) * var_fast_sodium_current__h * (var_fast_sodium_current__V - var_fast_sodium_current__E_mh); 00171 double var_membrane__i_Na = var_fast_sodium_current__i_Na; 00172 double var_sodium_background_current__V = var_membrane__V; 00173 double var_reversal_potentials__E_Na = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__Na_o / var_reversal_potentials__Na_i); 00174 double var_sodium_background_current__E_Na = var_reversal_potentials__E_Na; 00175 const double var_sodium_background_current__g_bna = 0.0006; 00176 double var_sodium_background_current__i_b_Na = var_sodium_background_current__g_bna * (var_sodium_background_current__V - var_sodium_background_current__E_Na); 00177 double var_membrane__i_b_Na = var_sodium_background_current__i_b_Na; 00178 const double var_persistent_sodium_current__g_pna = 0.004; 00179 double var_persistent_sodium_current__V = var_membrane__V; 00180 double var_persistent_sodium_current__E_Na = var_reversal_potentials__E_Na; 00181 double var_persistent_sodium_current__i_p_Na = ((var_persistent_sodium_current__g_pna * 1.0) / (1.0 + exp((-(var_persistent_sodium_current__V + 52.0)) / 8.0))) * (var_persistent_sodium_current__V - var_persistent_sodium_current__E_Na); 00182 double var_membrane__i_p_Na = var_persistent_sodium_current__i_p_Na; 00183 const double var_L_type_Ca_channel__P_CaNa = 0.01; 00184 double var_L_type_Ca_channel__Na_o = var_extracellular_sodium_concentration__Na_o; 00185 double var_L_type_Ca_channel__Na_i = var_intracellular_sodium_concentration__Na_i; 00186 double var_L_type_Ca_channel__i_Ca_L_Na_cyt = ((((1.0 - var_L_type_Ca_channel__FrICa) * var_L_type_Ca_channel__P_CaNa * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2 * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__Na_i * exp((50.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__Na_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00187 double var_membrane__i_Ca_L_Na_cyt = var_L_type_Ca_channel__i_Ca_L_Na_cyt; 00188 double var_L_type_Ca_channel__i_Ca_L_Na_ds = (((var_L_type_Ca_channel__FrICa * var_L_type_Ca_channel__P_CaNa * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2ds * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__Na_i * exp((50.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__Na_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00189 double var_membrane__i_Ca_L_Na_ds = var_L_type_Ca_channel__i_Ca_L_Na_ds; 00190 double var_sodium_calcium_exchanger__Na_i = var_intracellular_sodium_concentration__Na_i; 00191 const double var_sodium_calcium_exchanger__n_NaCa = 3.0; 00192 const double var_sodium_calcium_exchanger__gamma = 0.5; 00193 double var_sodium_calcium_exchanger__F = var_membrane__F; 00194 double var_sodium_calcium_exchanger__Na_o = var_extracellular_sodium_concentration__Na_o; 00195 const double var_sodium_calcium_exchanger__FRiNaCa = 0.001; 00196 double var_sodium_calcium_exchanger__R = var_membrane__R; 00197 double var_sodium_calcium_exchanger__Ca_i = var_intracellular_calcium_concentration__Ca_i; 00198 double var_sodium_calcium_exchanger__T = var_membrane__T; 00199 double var_sodium_calcium_exchanger__V = var_membrane__V; 00200 const double var_sodium_calcium_exchanger__d_NaCa = 0.0; 00201 const double var_extracellular_calcium_concentration__Ca_o = 2.0; 00202 double var_sodium_calcium_exchanger__Ca_o = var_extracellular_calcium_concentration__Ca_o; 00203 const double var_sodium_calcium_exchanger__k_NaCa = 0.0005; 00204 double var_sodium_calcium_exchanger__i_NaCa_cyt = ((1.0 - var_sodium_calcium_exchanger__FRiNaCa) * var_sodium_calcium_exchanger__k_NaCa * ((exp((var_sodium_calcium_exchanger__gamma * (var_sodium_calcium_exchanger__n_NaCa - 2.0) * var_sodium_calcium_exchanger__V * var_sodium_calcium_exchanger__F) / (var_sodium_calcium_exchanger__R * var_sodium_calcium_exchanger__T)) * pow(var_sodium_calcium_exchanger__Na_i, var_sodium_calcium_exchanger__n_NaCa) * var_sodium_calcium_exchanger__Ca_o) - (exp(((var_sodium_calcium_exchanger__gamma - 1.0) * (var_sodium_calcium_exchanger__n_NaCa - 2.0) * var_sodium_calcium_exchanger__V * var_sodium_calcium_exchanger__F) / (var_sodium_calcium_exchanger__R * var_sodium_calcium_exchanger__T)) * pow(var_sodium_calcium_exchanger__Na_o, var_sodium_calcium_exchanger__n_NaCa) * var_sodium_calcium_exchanger__Ca_i))) / ((1.0 + (var_sodium_calcium_exchanger__d_NaCa * ((var_sodium_calcium_exchanger__Ca_i * pow(var_sodium_calcium_exchanger__Na_o, var_sodium_calcium_exchanger__n_NaCa)) + (var_sodium_calcium_exchanger__Ca_o * pow(var_sodium_calcium_exchanger__Na_i, var_sodium_calcium_exchanger__n_NaCa))))) * (1.0 + (var_sodium_calcium_exchanger__Ca_i / 0.0069))); 00205 double var_membrane__i_NaCa_cyt = var_sodium_calcium_exchanger__i_NaCa_cyt; 00206 double var_sodium_calcium_exchanger__Ca_ds = var_intracellular_calcium_concentration__Ca_ds; 00207 double var_sodium_calcium_exchanger__i_NaCa_ds = (var_sodium_calcium_exchanger__FRiNaCa * var_sodium_calcium_exchanger__k_NaCa * ((exp((var_sodium_calcium_exchanger__gamma * (var_sodium_calcium_exchanger__n_NaCa - 2.0) * var_sodium_calcium_exchanger__V * var_sodium_calcium_exchanger__F) / (var_sodium_calcium_exchanger__R * var_sodium_calcium_exchanger__T)) * pow(var_sodium_calcium_exchanger__Na_i, var_sodium_calcium_exchanger__n_NaCa) * var_sodium_calcium_exchanger__Ca_o) - (exp(((var_sodium_calcium_exchanger__gamma - 1.0) * (var_sodium_calcium_exchanger__n_NaCa - 2.0) * var_sodium_calcium_exchanger__V * var_sodium_calcium_exchanger__F) / (var_sodium_calcium_exchanger__R * var_sodium_calcium_exchanger__T)) * pow(var_sodium_calcium_exchanger__Na_o, var_sodium_calcium_exchanger__n_NaCa) * var_sodium_calcium_exchanger__Ca_ds))) / ((1.0 + (var_sodium_calcium_exchanger__d_NaCa * ((var_sodium_calcium_exchanger__Ca_ds * pow(var_sodium_calcium_exchanger__Na_o, var_sodium_calcium_exchanger__n_NaCa)) + (var_sodium_calcium_exchanger__Ca_o * pow(var_sodium_calcium_exchanger__Na_i, var_sodium_calcium_exchanger__n_NaCa))))) * (1.0 + (var_sodium_calcium_exchanger__Ca_ds / 0.0069))); 00208 double var_membrane__i_NaCa_ds = var_sodium_calcium_exchanger__i_NaCa_ds; 00209 double var_L_type_Ca_channel__Ca_i = var_intracellular_calcium_concentration__Ca_i; 00210 double var_L_type_Ca_channel__Ca_o = var_extracellular_calcium_concentration__Ca_o; 00211 double var_L_type_Ca_channel__i_Ca_L_Ca_cyt = ((((1.0 - var_L_type_Ca_channel__FrICa) * 4.0 * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2 * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F * 2.0) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__Ca_i * exp((100.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__Ca_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F * 2.0) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00212 double var_membrane__i_Ca_L_Ca_cyt = var_L_type_Ca_channel__i_Ca_L_Ca_cyt; 00213 double var_L_type_Ca_channel__i_Ca_L_Ca_ds = (((var_L_type_Ca_channel__FrICa * 4.0 * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2ds * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F * 2.0) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__Ca_i * exp((100.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__Ca_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F * 2.0) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00214 double var_membrane__i_Ca_L_Ca_ds = var_L_type_Ca_channel__i_Ca_L_Ca_ds; 00215 double var_reversal_potentials__Ca_o = var_extracellular_calcium_concentration__Ca_o; 00216 double var_reversal_potentials__Ca_i = var_intracellular_calcium_concentration__Ca_i; 00217 double var_reversal_potentials__E_Ca = ((0.5 * var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__Ca_o / var_reversal_potentials__Ca_i); 00218 double var_calcium_background_current__E_Ca = var_reversal_potentials__E_Ca; 00219 const double var_calcium_background_current__g_bca = 0.00025; 00220 double var_calcium_background_current__V = var_membrane__V; 00221 double var_calcium_background_current__i_b_Ca = var_calcium_background_current__g_bca * (var_calcium_background_current__V - var_calcium_background_current__E_Ca); 00222 double var_membrane__i_b_Ca = var_calcium_background_current__i_b_Ca; 00223 00225 // new part of the model - addition of a Stretch-activated channel 00227 const double g_sac = 0.035; // uS 00228 const double E_sac = -10; // mV 00229 double f = (mStretch > 1.0) ? (mStretch-1.0)/0.15 : 0.0; // f = 0 if stretch < 1, scales linearly to f=1 at 15% stretch 00230 double sac_ionic_current = g_sac * f * (var_membrane__V - E_sac); // if g is uS, this is nA 00231 00232 /* 00233 * The return value has to be scaled to match the units required by the mono/bidomain equations. 00234 * The cell model ionic current is in nano Amps, we require micro Amps/cm^2. 00235 * The estimate of the cell area is obtained by observing that Cm in the cell model and Cm in the bidomain equation are conceptually the same thing. 00236 * The Cm in the bidomain equation is expressed in capacitance units per area. 00237 * An estimate of the cell area is then the ratio of the two values of Cm. 00238 * 00239 */ 00240 double value_in_nA = var_membrane__i_K1+var_membrane__i_to+var_membrane__i_Kr+var_membrane__i_Ks+var_membrane__i_Ca_L_K_cyt+var_membrane__i_Ca_L_K_ds+var_membrane__i_NaK+var_membrane__i_Na+var_membrane__i_b_Na+var_membrane__i_p_Na+var_membrane__i_Ca_L_Na_cyt+var_membrane__i_Ca_L_Na_ds+var_membrane__i_NaCa_cyt+var_membrane__i_NaCa_ds+var_membrane__i_Ca_L_Ca_cyt+var_membrane__i_Ca_L_Ca_ds+var_membrane__i_b_Ca; 00241 00242 // std::cout << value_in_nA << " " << sac_ionic_current << "\n"; 00243 value_in_nA += sac_ionic_current; 00244 00245 double value_in_microA = 0.001*value_in_nA; 00246 double estimated_cell_surface_in_cm_square = 9.5e-05 / HeartConfig::Instance()->GetCapacitance(); 00247 double value_in_microA_per_cm_square = value_in_microA/estimated_cell_surface_in_cm_square; 00248 return value_in_microA_per_cm_square; 00249 } 00250 00251 void CML_noble_varghese_kohl_noble_1998_basic_with_sac::EvaluateYDerivatives ( 00252 double var_environment__time, 00253 const std::vector<double> &rY, 00254 std::vector<double> &rDY) 00255 { 00256 // Inputs: 00257 // Time units: second 00258 var_environment__time *= 0.001; 00259 double var_membrane__V = rY[0]; 00260 // Units: millivolt; Initial value: -92.849333 00261 double var_rapid_delayed_rectifier_potassium_current_xr1_gate__xr1 = rY[1]; 00262 // Units: dimensionless; Initial value: 1.03e-5 00263 double var_rapid_delayed_rectifier_potassium_current_xr2_gate__xr2 = rY[2]; 00264 // Units: dimensionless; Initial value: 2e-7 00265 double var_slow_delayed_rectifier_potassium_current_xs_gate__xs = rY[3]; 00266 // Units: dimensionless; Initial value: 0.001302 00267 double var_fast_sodium_current_m_gate__m = rY[4]; 00268 // Units: dimensionless; Initial value: 0.0016203 00269 double var_fast_sodium_current_h_gate__h = rY[5]; 00270 // Units: dimensionless; Initial value: 0.9944036 00271 double var_L_type_Ca_channel_d_gate__d = rY[6]; 00272 // Units: dimensionless; Initial value: 0 00273 double var_L_type_Ca_channel_f_gate__f = rY[7]; 00274 // Units: dimensionless; Initial value: 1 00275 double var_L_type_Ca_channel_f2_gate__f2 = rY[8]; 00276 // Units: dimensionless; Initial value: 0.9349197 00277 double var_L_type_Ca_channel_f2ds_gate__f2ds = rY[9]; 00278 // Units: dimensionless; Initial value: 0.9651958 00279 double var_transient_outward_current_s_gate__s = rY[10]; 00280 // Units: dimensionless; Initial value: 0.9948645 00281 double var_transient_outward_current_r_gate__r = rY[11]; 00282 // Units: dimensionless; Initial value: 0 00283 double var_calcium_release__ActFrac = rY[12]; 00284 // Units: dimensionless; Initial value: 0.0042614 00285 double var_calcium_release__ProdFrac = rY[13]; 00286 // Units: dimensionless; Initial value: 0.4068154 00287 double var_intracellular_sodium_concentration__Na_i = rY[14]; 00288 // Units: millimolar; Initial value: 7.3321223 00289 double var_intracellular_potassium_concentration__K_i = rY[15]; 00290 // Units: millimolar; Initial value: 136.5644281 00291 double var_intracellular_calcium_concentration__Ca_i = rY[16]; 00292 // Units: millimolar; Initial value: 1.4e-5 00293 double var_intracellular_calcium_concentration__Ca_ds = rY[17]; 00294 // Units: millimolar; Initial value: 1.88e-5 00295 double var_intracellular_calcium_concentration__Ca_up = rY[18]; 00296 // Units: millimolar; Initial value: 0.4531889 00297 double var_intracellular_calcium_concentration__Ca_rel = rY[19]; 00298 // Units: millimolar; Initial value: 0.4481927 00299 double var_intracellular_calcium_concentration__Ca_Calmod = rY[20]; 00300 // Units: millimolar; Initial value: 0.0005555 00301 double var_intracellular_calcium_concentration__Ca_Trop = rY[21]; 00302 // Units: millimolar; Initial value: 0.0003542 00303 00304 00305 // Mathematics 00306 const double var_membrane__R = 8314.472; 00307 const double var_membrane__T = 310.0; 00308 const double var_membrane__F = 96485.3415; 00309 const double var_membrane__Cm = 9.5e-05; 00310 double var_reversal_potentials__K_i = var_intracellular_potassium_concentration__K_i; 00311 double var_reversal_potentials__R = var_membrane__R; 00312 double var_reversal_potentials__T = var_membrane__T; 00313 double var_reversal_potentials__F = var_membrane__F; 00314 const double var_extracellular_potassium_concentration__K_o = 4.0; 00315 double var_reversal_potentials__K_o = var_extracellular_potassium_concentration__K_o; 00316 double var_reversal_potentials__E_K = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__K_o / var_reversal_potentials__K_i); 00317 double var_time_independent_potassium_current__E_K = var_reversal_potentials__E_K; 00318 double var_time_independent_potassium_current__K_o = var_extracellular_potassium_concentration__K_o; 00319 double var_time_independent_potassium_current__R = var_membrane__R; 00320 double var_time_independent_potassium_current__V = var_membrane__V; 00321 double var_time_independent_potassium_current__T = var_membrane__T; 00322 const double var_time_independent_potassium_current__K_mk1 = 10.0; 00323 const double var_time_independent_potassium_current__g_K1 = 0.5; 00324 double var_time_independent_potassium_current__F = var_membrane__F; 00325 double var_time_independent_potassium_current__i_K1 = (((var_time_independent_potassium_current__g_K1 * var_time_independent_potassium_current__K_o) / (var_time_independent_potassium_current__K_o + var_time_independent_potassium_current__K_mk1)) * (var_time_independent_potassium_current__V - var_time_independent_potassium_current__E_K)) / (1.0 + exp((((var_time_independent_potassium_current__V - var_time_independent_potassium_current__E_K) - 10.0) * var_time_independent_potassium_current__F * 1.25) / (var_time_independent_potassium_current__R * var_time_independent_potassium_current__T))); 00326 double var_membrane__i_K1 = var_time_independent_potassium_current__i_K1; 00327 double var_transient_outward_current__s = var_transient_outward_current_s_gate__s; 00328 double var_transient_outward_current__r = var_transient_outward_current_r_gate__r; 00329 const double var_transient_outward_current__g_to = 0.005; 00330 double var_transient_outward_current__V = var_membrane__V; 00331 double var_transient_outward_current__E_K = var_reversal_potentials__E_K; 00332 const double var_transient_outward_current__g_tos = 0.0; 00333 double var_transient_outward_current__i_to = var_transient_outward_current__g_to * (var_transient_outward_current__g_tos + (var_transient_outward_current__s * (1.0 - var_transient_outward_current__g_tos))) * var_transient_outward_current__r * (var_transient_outward_current__V - var_transient_outward_current__E_K); 00334 double var_membrane__i_to = var_transient_outward_current__i_to; 00335 const double var_rapid_delayed_rectifier_potassium_current__g_Kr2 = 0.0013; 00336 const double var_rapid_delayed_rectifier_potassium_current__g_Kr1 = 0.0021; 00337 double var_rapid_delayed_rectifier_potassium_current__xr1 = var_rapid_delayed_rectifier_potassium_current_xr1_gate__xr1; 00338 double var_rapid_delayed_rectifier_potassium_current__xr2 = var_rapid_delayed_rectifier_potassium_current_xr2_gate__xr2; 00339 double var_rapid_delayed_rectifier_potassium_current__V = var_membrane__V; 00340 double var_rapid_delayed_rectifier_potassium_current__E_K = var_reversal_potentials__E_K; 00341 double var_rapid_delayed_rectifier_potassium_current__i_Kr = ((((var_rapid_delayed_rectifier_potassium_current__g_Kr1 * var_rapid_delayed_rectifier_potassium_current__xr1) + (var_rapid_delayed_rectifier_potassium_current__g_Kr2 * var_rapid_delayed_rectifier_potassium_current__xr2)) * 1.0) / (1.0 + exp((var_rapid_delayed_rectifier_potassium_current__V + 9.0) / 22.4))) * (var_rapid_delayed_rectifier_potassium_current__V - var_rapid_delayed_rectifier_potassium_current__E_K); 00342 double var_membrane__i_Kr = var_rapid_delayed_rectifier_potassium_current__i_Kr; 00343 double var_slow_delayed_rectifier_potassium_current__xs = var_slow_delayed_rectifier_potassium_current_xs_gate__xs; 00344 const double var_extracellular_sodium_concentration__Na_o = 140.0; 00345 double var_reversal_potentials__Na_o = var_extracellular_sodium_concentration__Na_o; 00346 double var_reversal_potentials__Na_i = var_intracellular_sodium_concentration__Na_i; 00347 const double var_reversal_potentials__P_kna = 0.03; 00348 double var_reversal_potentials__E_Ks = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log((var_reversal_potentials__K_o + (var_reversal_potentials__P_kna * var_reversal_potentials__Na_o)) / (var_reversal_potentials__K_i + (var_reversal_potentials__P_kna * var_reversal_potentials__Na_i))); 00349 double var_slow_delayed_rectifier_potassium_current__E_Ks = var_reversal_potentials__E_Ks; 00350 const double var_slow_delayed_rectifier_potassium_current__g_Ks = 0.0026; 00351 double var_slow_delayed_rectifier_potassium_current__V = var_membrane__V; 00352 double var_slow_delayed_rectifier_potassium_current__i_Ks = var_slow_delayed_rectifier_potassium_current__g_Ks * pow(var_slow_delayed_rectifier_potassium_current__xs, 2.0) * (var_slow_delayed_rectifier_potassium_current__V - var_slow_delayed_rectifier_potassium_current__E_Ks); 00353 double var_membrane__i_Ks = var_slow_delayed_rectifier_potassium_current__i_Ks; 00354 double var_L_type_Ca_channel__d = var_L_type_Ca_channel_d_gate__d; 00355 const double var_L_type_Ca_channel__FrICa = 1.0; 00356 double var_L_type_Ca_channel__f = var_L_type_Ca_channel_f_gate__f; 00357 double var_L_type_Ca_channel__K_o = var_extracellular_potassium_concentration__K_o; 00358 double var_L_type_Ca_channel__K_i = var_intracellular_potassium_concentration__K_i; 00359 double var_L_type_Ca_channel__F = var_membrane__F; 00360 const double var_L_type_Ca_channel__P_Ca_L = 0.1; 00361 double var_L_type_Ca_channel__T = var_membrane__T; 00362 const double var_L_type_Ca_channel__P_CaK = 0.002; 00363 double var_L_type_Ca_channel__V = var_membrane__V; 00364 double var_L_type_Ca_channel__f2 = var_L_type_Ca_channel_f2_gate__f2; 00365 double var_L_type_Ca_channel__R = var_membrane__R; 00366 double var_L_type_Ca_channel__i_Ca_L_K_cyt = ((((1.0 - var_L_type_Ca_channel__FrICa) * var_L_type_Ca_channel__P_CaK * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2 * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__K_i * exp((50.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__K_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00367 double var_membrane__i_Ca_L_K_cyt = var_L_type_Ca_channel__i_Ca_L_K_cyt; 00368 double var_L_type_Ca_channel__f2ds = var_L_type_Ca_channel_f2ds_gate__f2ds; 00369 double var_L_type_Ca_channel__i_Ca_L_K_ds = (((var_L_type_Ca_channel__FrICa * var_L_type_Ca_channel__P_CaK * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2ds * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__K_i * exp((50.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__K_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00370 double var_membrane__i_Ca_L_K_ds = var_L_type_Ca_channel__i_Ca_L_K_ds; 00371 const double var_sodium_potassium_pump__i_NaK_max = 0.7; 00372 double var_sodium_potassium_pump__Na_i = var_intracellular_sodium_concentration__Na_i; 00373 double var_sodium_potassium_pump__K_o = var_extracellular_potassium_concentration__K_o; 00374 const double var_sodium_potassium_pump__K_mNa = 40.0; 00375 const double var_sodium_potassium_pump__K_mK = 1.0; 00376 double var_sodium_potassium_pump__i_NaK = (((var_sodium_potassium_pump__i_NaK_max * var_sodium_potassium_pump__K_o) / (var_sodium_potassium_pump__K_mK + var_sodium_potassium_pump__K_o)) * var_sodium_potassium_pump__Na_i) / (var_sodium_potassium_pump__K_mNa + var_sodium_potassium_pump__Na_i); 00377 double var_membrane__i_NaK = var_sodium_potassium_pump__i_NaK; 00378 const double var_fast_sodium_current__g_Na = 2.5; 00379 double var_fast_sodium_current__h = var_fast_sodium_current_h_gate__h; 00380 double var_fast_sodium_current__V = var_membrane__V; 00381 double var_reversal_potentials__E_mh = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log((var_reversal_potentials__Na_o + (0.12 * var_reversal_potentials__K_o)) / (var_reversal_potentials__Na_i + (0.12 * var_reversal_potentials__K_i))); 00382 double var_fast_sodium_current__E_mh = var_reversal_potentials__E_mh; 00383 double var_fast_sodium_current__m = var_fast_sodium_current_m_gate__m; 00384 double var_fast_sodium_current__i_Na = var_fast_sodium_current__g_Na * pow(var_fast_sodium_current__m, 3.0) * var_fast_sodium_current__h * (var_fast_sodium_current__V - var_fast_sodium_current__E_mh); 00385 double var_membrane__i_Na = var_fast_sodium_current__i_Na; 00386 double var_sodium_background_current__V = var_membrane__V; 00387 double var_reversal_potentials__E_Na = ((var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__Na_o / var_reversal_potentials__Na_i); 00388 double var_sodium_background_current__E_Na = var_reversal_potentials__E_Na; 00389 const double var_sodium_background_current__g_bna = 0.0006; 00390 double var_sodium_background_current__i_b_Na = var_sodium_background_current__g_bna * (var_sodium_background_current__V - var_sodium_background_current__E_Na); 00391 double var_membrane__i_b_Na = var_sodium_background_current__i_b_Na; 00392 const double var_persistent_sodium_current__g_pna = 0.004; 00393 double var_persistent_sodium_current__V = var_membrane__V; 00394 double var_persistent_sodium_current__E_Na = var_reversal_potentials__E_Na; 00395 double var_persistent_sodium_current__i_p_Na = ((var_persistent_sodium_current__g_pna * 1.0) / (1.0 + exp((-(var_persistent_sodium_current__V + 52.0)) / 8.0))) * (var_persistent_sodium_current__V - var_persistent_sodium_current__E_Na); 00396 double var_membrane__i_p_Na = var_persistent_sodium_current__i_p_Na; 00397 const double var_L_type_Ca_channel__P_CaNa = 0.01; 00398 double var_L_type_Ca_channel__Na_o = var_extracellular_sodium_concentration__Na_o; 00399 double var_L_type_Ca_channel__Na_i = var_intracellular_sodium_concentration__Na_i; 00400 double var_L_type_Ca_channel__i_Ca_L_Na_cyt = ((((1.0 - var_L_type_Ca_channel__FrICa) * var_L_type_Ca_channel__P_CaNa * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2 * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__Na_i * exp((50.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__Na_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00401 double var_membrane__i_Ca_L_Na_cyt = var_L_type_Ca_channel__i_Ca_L_Na_cyt; 00402 double var_L_type_Ca_channel__i_Ca_L_Na_ds = (((var_L_type_Ca_channel__FrICa * var_L_type_Ca_channel__P_CaNa * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2ds * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__Na_i * exp((50.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__Na_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00403 double var_membrane__i_Ca_L_Na_ds = var_L_type_Ca_channel__i_Ca_L_Na_ds; 00404 double var_sodium_calcium_exchanger__Na_i = var_intracellular_sodium_concentration__Na_i; 00405 const double var_sodium_calcium_exchanger__n_NaCa = 3.0; 00406 const double var_sodium_calcium_exchanger__gamma = 0.5; 00407 double var_sodium_calcium_exchanger__F = var_membrane__F; 00408 double var_sodium_calcium_exchanger__Na_o = var_extracellular_sodium_concentration__Na_o; 00409 const double var_sodium_calcium_exchanger__FRiNaCa = 0.001; 00410 double var_sodium_calcium_exchanger__R = var_membrane__R; 00411 double var_sodium_calcium_exchanger__Ca_i = var_intracellular_calcium_concentration__Ca_i; 00412 double var_sodium_calcium_exchanger__T = var_membrane__T; 00413 double var_sodium_calcium_exchanger__V = var_membrane__V; 00414 const double var_sodium_calcium_exchanger__d_NaCa = 0.0; 00415 const double var_extracellular_calcium_concentration__Ca_o = 2.0; 00416 double var_sodium_calcium_exchanger__Ca_o = var_extracellular_calcium_concentration__Ca_o; 00417 const double var_sodium_calcium_exchanger__k_NaCa = 0.0005; 00418 double var_sodium_calcium_exchanger__i_NaCa_cyt = ((1.0 - var_sodium_calcium_exchanger__FRiNaCa) * var_sodium_calcium_exchanger__k_NaCa * ((exp((var_sodium_calcium_exchanger__gamma * (var_sodium_calcium_exchanger__n_NaCa - 2.0) * var_sodium_calcium_exchanger__V * var_sodium_calcium_exchanger__F) / (var_sodium_calcium_exchanger__R * var_sodium_calcium_exchanger__T)) * pow(var_sodium_calcium_exchanger__Na_i, var_sodium_calcium_exchanger__n_NaCa) * var_sodium_calcium_exchanger__Ca_o) - (exp(((var_sodium_calcium_exchanger__gamma - 1.0) * (var_sodium_calcium_exchanger__n_NaCa - 2.0) * var_sodium_calcium_exchanger__V * var_sodium_calcium_exchanger__F) / (var_sodium_calcium_exchanger__R * var_sodium_calcium_exchanger__T)) * pow(var_sodium_calcium_exchanger__Na_o, var_sodium_calcium_exchanger__n_NaCa) * var_sodium_calcium_exchanger__Ca_i))) / ((1.0 + (var_sodium_calcium_exchanger__d_NaCa * ((var_sodium_calcium_exchanger__Ca_i * pow(var_sodium_calcium_exchanger__Na_o, var_sodium_calcium_exchanger__n_NaCa)) + (var_sodium_calcium_exchanger__Ca_o * pow(var_sodium_calcium_exchanger__Na_i, var_sodium_calcium_exchanger__n_NaCa))))) * (1.0 + (var_sodium_calcium_exchanger__Ca_i / 0.0069))); 00419 double var_membrane__i_NaCa_cyt = var_sodium_calcium_exchanger__i_NaCa_cyt; 00420 double var_sodium_calcium_exchanger__Ca_ds = var_intracellular_calcium_concentration__Ca_ds; 00421 double var_sodium_calcium_exchanger__i_NaCa_ds = (var_sodium_calcium_exchanger__FRiNaCa * var_sodium_calcium_exchanger__k_NaCa * ((exp((var_sodium_calcium_exchanger__gamma * (var_sodium_calcium_exchanger__n_NaCa - 2.0) * var_sodium_calcium_exchanger__V * var_sodium_calcium_exchanger__F) / (var_sodium_calcium_exchanger__R * var_sodium_calcium_exchanger__T)) * pow(var_sodium_calcium_exchanger__Na_i, var_sodium_calcium_exchanger__n_NaCa) * var_sodium_calcium_exchanger__Ca_o) - (exp(((var_sodium_calcium_exchanger__gamma - 1.0) * (var_sodium_calcium_exchanger__n_NaCa - 2.0) * var_sodium_calcium_exchanger__V * var_sodium_calcium_exchanger__F) / (var_sodium_calcium_exchanger__R * var_sodium_calcium_exchanger__T)) * pow(var_sodium_calcium_exchanger__Na_o, var_sodium_calcium_exchanger__n_NaCa) * var_sodium_calcium_exchanger__Ca_ds))) / ((1.0 + (var_sodium_calcium_exchanger__d_NaCa * ((var_sodium_calcium_exchanger__Ca_ds * pow(var_sodium_calcium_exchanger__Na_o, var_sodium_calcium_exchanger__n_NaCa)) + (var_sodium_calcium_exchanger__Ca_o * pow(var_sodium_calcium_exchanger__Na_i, var_sodium_calcium_exchanger__n_NaCa))))) * (1.0 + (var_sodium_calcium_exchanger__Ca_ds / 0.0069))); 00422 double var_membrane__i_NaCa_ds = var_sodium_calcium_exchanger__i_NaCa_ds; 00423 double var_L_type_Ca_channel__Ca_i = var_intracellular_calcium_concentration__Ca_i; 00424 double var_L_type_Ca_channel__Ca_o = var_extracellular_calcium_concentration__Ca_o; 00425 double var_L_type_Ca_channel__i_Ca_L_Ca_cyt = ((((1.0 - var_L_type_Ca_channel__FrICa) * 4.0 * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2 * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F * 2.0) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__Ca_i * exp((100.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__Ca_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F * 2.0) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00426 double var_membrane__i_Ca_L_Ca_cyt = var_L_type_Ca_channel__i_Ca_L_Ca_cyt; 00427 double var_L_type_Ca_channel__i_Ca_L_Ca_ds = (((var_L_type_Ca_channel__FrICa * 4.0 * var_L_type_Ca_channel__P_Ca_L * var_L_type_Ca_channel__d * var_L_type_Ca_channel__f * var_L_type_Ca_channel__f2ds * (var_L_type_Ca_channel__V - 50.0) * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)) / (1.0 - exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F * 2.0) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))) * ((var_L_type_Ca_channel__Ca_i * exp((100.0 * var_L_type_Ca_channel__F) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T))) - (var_L_type_Ca_channel__Ca_o * exp(((-(var_L_type_Ca_channel__V - 50.0)) * var_L_type_Ca_channel__F * 2.0) / (var_L_type_Ca_channel__R * var_L_type_Ca_channel__T)))); 00428 double var_membrane__i_Ca_L_Ca_ds = var_L_type_Ca_channel__i_Ca_L_Ca_ds; 00429 double var_reversal_potentials__Ca_o = var_extracellular_calcium_concentration__Ca_o; 00430 double var_reversal_potentials__Ca_i = var_intracellular_calcium_concentration__Ca_i; 00431 double var_reversal_potentials__E_Ca = ((0.5 * var_reversal_potentials__R * var_reversal_potentials__T) / var_reversal_potentials__F) * log(var_reversal_potentials__Ca_o / var_reversal_potentials__Ca_i); 00432 double var_calcium_background_current__E_Ca = var_reversal_potentials__E_Ca; 00433 const double var_calcium_background_current__g_bca = 0.00025; 00434 double var_calcium_background_current__V = var_membrane__V; 00435 double var_calcium_background_current__i_b_Ca = var_calcium_background_current__g_bca * (var_calcium_background_current__V - var_calcium_background_current__E_Ca); 00436 double var_membrane__i_b_Ca = var_calcium_background_current__i_b_Ca; 00437 double var_membrane__i_Stim = GetStimulus((1.0/0.001)*var_environment__time); 00438 double var_rapid_delayed_rectifier_potassium_current_xr1_gate__V = var_rapid_delayed_rectifier_potassium_current__V; 00439 double var_rapid_delayed_rectifier_potassium_current_xr1_gate__alpha_xr1 = 50.0 / (1.0 + exp((-(var_rapid_delayed_rectifier_potassium_current_xr1_gate__V - 5.0)) / 9.0)); 00440 double var_rapid_delayed_rectifier_potassium_current_xr1_gate__beta_xr1 = 0.05 * exp((-(var_rapid_delayed_rectifier_potassium_current_xr1_gate__V - 20.0)) / 15.0); 00441 double var_rapid_delayed_rectifier_potassium_current_xr2_gate__V = var_rapid_delayed_rectifier_potassium_current__V; 00442 double var_rapid_delayed_rectifier_potassium_current_xr2_gate__alpha_xr2 = 50.0 / (1.0 + exp((-(var_rapid_delayed_rectifier_potassium_current_xr2_gate__V - 5.0)) / 9.0)); 00443 double var_rapid_delayed_rectifier_potassium_current_xr2_gate__beta_xr2 = 0.4 * exp(-pow((var_rapid_delayed_rectifier_potassium_current_xr2_gate__V + 30.0) / 30.0, 3.0)); 00444 double var_slow_delayed_rectifier_potassium_current_xs_gate__V = var_slow_delayed_rectifier_potassium_current__V; 00445 double var_slow_delayed_rectifier_potassium_current_xs_gate__alpha_xs = 14.0 / (1.0 + exp((-(var_slow_delayed_rectifier_potassium_current_xs_gate__V - 40.0)) / 9.0)); 00446 double var_slow_delayed_rectifier_potassium_current_xs_gate__beta_xs = 1.0 * exp((-var_slow_delayed_rectifier_potassium_current_xs_gate__V) / 45.0); 00447 double var_fast_sodium_current_m_gate__V = var_fast_sodium_current__V; 00448 double var_fast_sodium_current_m_gate__E0_m = var_fast_sodium_current_m_gate__V + 41.0; 00449 const double var_fast_sodium_current_m_gate__delta_m = 1e-05; 00450 double var_fast_sodium_current_m_gate__alpha_m = (fabs(var_fast_sodium_current_m_gate__E0_m) < var_fast_sodium_current_m_gate__delta_m) ? 2000.0 : ((200.0 * var_fast_sodium_current_m_gate__E0_m) / (1.0 - exp((-0.1) * var_fast_sodium_current_m_gate__E0_m))); 00451 double var_fast_sodium_current_m_gate__beta_m = 8000.0 * exp((-0.056) * (var_fast_sodium_current_m_gate__V + 66.0)); 00452 double var_fast_sodium_current_h_gate__V = var_fast_sodium_current__V; 00453 const double var_fast_sodium_current_h_gate__shift_h = 0.0; 00454 double var_fast_sodium_current_h_gate__alpha_h = 20.0 * exp((-0.125) * ((var_fast_sodium_current_h_gate__V + 75.0) - var_fast_sodium_current_h_gate__shift_h)); 00455 double var_fast_sodium_current_h_gate__beta_h = 2000.0 / (1.0 + (320.0 * exp((-0.1) * ((var_fast_sodium_current_h_gate__V + 75.0) - var_fast_sodium_current_h_gate__shift_h)))); 00456 double var_L_type_Ca_channel__Ca_ds = var_intracellular_calcium_concentration__Ca_ds; 00457 const double var_L_type_Ca_channel__Km_f2 = 100000.0; 00458 const double var_L_type_Ca_channel__Km_f2ds = 0.001; 00459 const double var_L_type_Ca_channel__R_decay = 20.0; 00460 double var_L_type_Ca_channel_d_gate__V = var_L_type_Ca_channel__V; 00461 double var_L_type_Ca_channel_d_gate__E0_d = (var_L_type_Ca_channel_d_gate__V + 24.0) - 5.0; 00462 double var_L_type_Ca_channel_d_gate__alpha_d = (fabs(var_L_type_Ca_channel_d_gate__E0_d) < 0.0001) ? 120.0 : ((30.0 * var_L_type_Ca_channel_d_gate__E0_d) / (1.0 - exp((-var_L_type_Ca_channel_d_gate__E0_d) / 4.0))); 00463 double var_L_type_Ca_channel_d_gate__beta_d = (fabs(var_L_type_Ca_channel_d_gate__E0_d) < 0.0001) ? 120.0 : ((12.0 * var_L_type_Ca_channel_d_gate__E0_d) / (exp(var_L_type_Ca_channel_d_gate__E0_d / 10.0) - 1.0)); 00464 const double var_L_type_Ca_channel_d_gate__speed_d = 3.0; 00465 double var_L_type_Ca_channel_f_gate__V = var_L_type_Ca_channel__V; 00466 double var_L_type_Ca_channel_f_gate__E0_f = var_L_type_Ca_channel_f_gate__V + 34.0; 00467 const double var_L_type_Ca_channel_f_gate__delta_f = 0.0001; 00468 double var_L_type_Ca_channel_f_gate__alpha_f = (fabs(var_L_type_Ca_channel_f_gate__E0_f) < var_L_type_Ca_channel_f_gate__delta_f) ? 25.0 : ((6.25 * var_L_type_Ca_channel_f_gate__E0_f) / (exp(var_L_type_Ca_channel_f_gate__E0_f / 4.0) - 1.0)); 00469 double var_L_type_Ca_channel_f_gate__beta_f = 12.0 / (1.0 + exp(((-1.0) * (var_L_type_Ca_channel_f_gate__V + 34.0)) / 4.0)); 00470 const double var_L_type_Ca_channel_f_gate__speed_f = 0.3; 00471 double var_L_type_Ca_channel_f2_gate__Km_f2 = var_L_type_Ca_channel__Km_f2; 00472 double var_L_type_Ca_channel_f2_gate__Ca_i = var_L_type_Ca_channel__Ca_i; 00473 double var_L_type_Ca_channel_f2ds_gate__Km_f2ds = var_L_type_Ca_channel__Km_f2ds; 00474 double var_L_type_Ca_channel_f2ds_gate__R_decay = var_L_type_Ca_channel__R_decay; 00475 double var_L_type_Ca_channel_f2ds_gate__Ca_ds = var_L_type_Ca_channel__Ca_ds; 00476 double var_transient_outward_current_s_gate__V = var_transient_outward_current__V; 00477 double var_transient_outward_current_s_gate__alpha_s = 0.033 * exp((-var_transient_outward_current_s_gate__V) / 17.0); 00478 double var_transient_outward_current_s_gate__beta_s = 33.0 / (1.0 + exp((-0.125) * (var_transient_outward_current_s_gate__V + 10.0))); 00479 double var_transient_outward_current_r_gate__V = var_transient_outward_current__V; 00480 double var_sarcoplasmic_reticulum_calcium_pump__Ca_i = var_intracellular_calcium_concentration__Ca_i; 00481 double var_sarcoplasmic_reticulum_calcium_pump__Ca_up = var_intracellular_calcium_concentration__Ca_up; 00482 const double var_sarcoplasmic_reticulum_calcium_pump__alpha_up = 0.4; 00483 const double var_sarcoplasmic_reticulum_calcium_pump__beta_up = 0.03; 00484 const double var_sarcoplasmic_reticulum_calcium_pump__K_srca = 0.5; 00485 const double var_sarcoplasmic_reticulum_calcium_pump__K_xcs = 0.4; 00486 const double var_sarcoplasmic_reticulum_calcium_pump__K_cyca = 0.0003; 00487 double var_sarcoplasmic_reticulum_calcium_pump__K_1 = (var_sarcoplasmic_reticulum_calcium_pump__K_cyca * var_sarcoplasmic_reticulum_calcium_pump__K_xcs) / var_sarcoplasmic_reticulum_calcium_pump__K_srca; 00488 double var_sarcoplasmic_reticulum_calcium_pump__K_2 = var_sarcoplasmic_reticulum_calcium_pump__Ca_i + (var_sarcoplasmic_reticulum_calcium_pump__Ca_up * var_sarcoplasmic_reticulum_calcium_pump__K_1) + (var_sarcoplasmic_reticulum_calcium_pump__K_cyca * var_sarcoplasmic_reticulum_calcium_pump__K_xcs) + var_sarcoplasmic_reticulum_calcium_pump__K_cyca; 00489 double var_sarcoplasmic_reticulum_calcium_pump__i_up = ((var_sarcoplasmic_reticulum_calcium_pump__Ca_i / var_sarcoplasmic_reticulum_calcium_pump__K_2) * var_sarcoplasmic_reticulum_calcium_pump__alpha_up) - (((var_sarcoplasmic_reticulum_calcium_pump__Ca_up * var_sarcoplasmic_reticulum_calcium_pump__K_1) / var_sarcoplasmic_reticulum_calcium_pump__K_2) * var_sarcoplasmic_reticulum_calcium_pump__beta_up); 00490 double var_calcium_translocation__Ca_rel = var_intracellular_calcium_concentration__Ca_rel; 00491 double var_calcium_translocation__Ca_up = var_intracellular_calcium_concentration__Ca_up; 00492 double var_calcium_translocation__i_trans = 50.0 * (var_calcium_translocation__Ca_up - var_calcium_translocation__Ca_rel); 00493 const double var_calcium_release__K_m_rel = 250.0; 00494 const double var_calcium_release__K_leak_rate = 0.05; 00495 double var_calcium_release__Ca_rel = var_intracellular_calcium_concentration__Ca_rel; 00496 double var_calcium_release__i_rel = ((pow(var_calcium_release__ActFrac / (var_calcium_release__ActFrac + 0.25), 2.0) * var_calcium_release__K_m_rel) + var_calcium_release__K_leak_rate) * var_calcium_release__Ca_rel; 00497 double var_calcium_release__V = var_membrane__V; 00498 double var_calcium_release__VoltDep = exp(0.08 * (var_calcium_release__V - 40.0)); 00499 const double var_calcium_release__K_m_Ca_cyt = 0.0005; 00500 double var_calcium_release__Ca_i = var_intracellular_calcium_concentration__Ca_i; 00501 double var_calcium_release__CaiReg = var_calcium_release__Ca_i / (var_calcium_release__Ca_i + var_calcium_release__K_m_Ca_cyt); 00502 double var_calcium_release__Ca_ds = var_intracellular_calcium_concentration__Ca_ds; 00503 const double var_calcium_release__K_m_Ca_ds = 0.01; 00504 double var_calcium_release__CadsReg = var_calcium_release__Ca_ds / (var_calcium_release__Ca_ds + var_calcium_release__K_m_Ca_ds); 00505 double var_calcium_release__RegBindSite = var_calcium_release__CaiReg + ((1.0 - var_calcium_release__CaiReg) * var_calcium_release__CadsReg); 00506 double var_calcium_release__ActRate = (0.0 * var_calcium_release__VoltDep) + (500.0 * pow(var_calcium_release__RegBindSite, 2.0)); 00507 double var_calcium_release__InactRate = 60.0 + (500.0 * pow(var_calcium_release__RegBindSite, 2.0)); 00508 double var_calcium_release__PrecFrac = (1.0 - var_calcium_release__ActFrac) - var_calcium_release__ProdFrac; 00509 double var_calcium_release__SpeedRel = (var_calcium_release__V < (-50.0)) ? 5.0 : 1.0; 00510 const double var_intracellular_calcium_concentration__V_up_ratio = 0.01; 00511 const double var_intracellular_calcium_concentration__V_rel_ratio = 0.1; 00512 const double var_intracellular_calcium_concentration__V_e_ratio = 0.4; 00513 double var_intracellular_calcium_concentration__V_i_ratio = ((1.0 - var_intracellular_calcium_concentration__V_e_ratio) - var_intracellular_calcium_concentration__V_up_ratio) - var_intracellular_calcium_concentration__V_rel_ratio; 00514 const double var_intracellular_calcium_concentration__radius = 0.012; 00515 const double var_intracellular_calcium_concentration__length = 0.074; 00516 double var_intracellular_calcium_concentration__V_Cell = 3.141592654 * pow(var_intracellular_calcium_concentration__radius, 2.0) * var_intracellular_calcium_concentration__length; 00517 double var_intracellular_calcium_concentration__V_i = var_intracellular_calcium_concentration__V_Cell * var_intracellular_calcium_concentration__V_i_ratio; 00518 double var_intracellular_sodium_concentration__V_i = var_intracellular_calcium_concentration__V_i; 00519 double var_intracellular_sodium_concentration__F = var_membrane__F; 00520 double var_intracellular_sodium_concentration__i_Na = var_fast_sodium_current__i_Na; 00521 double var_intracellular_sodium_concentration__i_b_Na = var_sodium_background_current__i_b_Na; 00522 double var_intracellular_sodium_concentration__i_p_Na = var_persistent_sodium_current__i_p_Na; 00523 double var_intracellular_sodium_concentration__i_Ca_L_Na_cyt = var_L_type_Ca_channel__i_Ca_L_Na_cyt; 00524 double var_intracellular_sodium_concentration__i_Ca_L_Na_ds = var_L_type_Ca_channel__i_Ca_L_Na_ds; 00525 double var_intracellular_sodium_concentration__i_NaK = var_sodium_potassium_pump__i_NaK; 00526 double var_intracellular_sodium_concentration__i_NaCa_cyt = var_sodium_calcium_exchanger__i_NaCa_cyt; 00527 double var_intracellular_potassium_concentration__V_i = var_intracellular_calcium_concentration__V_i; 00528 double var_intracellular_potassium_concentration__i_K1 = var_time_independent_potassium_current__i_K1; 00529 double var_intracellular_potassium_concentration__i_Kr = var_rapid_delayed_rectifier_potassium_current__i_Kr; 00530 double var_intracellular_potassium_concentration__i_Ks = var_slow_delayed_rectifier_potassium_current__i_Ks; 00531 double var_intracellular_potassium_concentration__i_Ca_L_K_cyt = var_L_type_Ca_channel__i_Ca_L_K_cyt; 00532 double var_intracellular_potassium_concentration__i_Ca_L_K_ds = var_L_type_Ca_channel__i_Ca_L_K_ds; 00533 double var_intracellular_potassium_concentration__i_to = var_transient_outward_current__i_to; 00534 double var_intracellular_potassium_concentration__i_NaK = var_sodium_potassium_pump__i_NaK; 00535 double var_intracellular_potassium_concentration__F = var_membrane__F; 00536 const double var_intracellular_calcium_concentration__Calmod = 0.02; 00537 const double var_intracellular_calcium_concentration__Trop = 0.05; 00538 const double var_intracellular_calcium_concentration__alpha_Calmod = 100000.0; 00539 const double var_intracellular_calcium_concentration__beta_Calmod = 50.0; 00540 const double var_intracellular_calcium_concentration__alpha_Trop = 100000.0; 00541 const double var_intracellular_calcium_concentration__beta_Trop = 200.0; 00542 const double var_intracellular_calcium_concentration__V_ds_ratio = 0.1; 00543 const double var_intracellular_calcium_concentration__Kdecay = 10.0; 00544 double var_intracellular_calcium_concentration__i_up = var_sarcoplasmic_reticulum_calcium_pump__i_up; 00545 double var_intracellular_calcium_concentration__i_trans = var_calcium_translocation__i_trans; 00546 double var_intracellular_calcium_concentration__i_rel = var_calcium_release__i_rel; 00547 double var_intracellular_calcium_concentration__i_NaCa_cyt = var_sodium_calcium_exchanger__i_NaCa_cyt; 00548 double var_intracellular_calcium_concentration__i_NaCa_ds = var_sodium_calcium_exchanger__i_NaCa_ds; 00549 double var_intracellular_calcium_concentration__i_Ca_L_Ca_cyt = var_L_type_Ca_channel__i_Ca_L_Ca_cyt; 00550 double var_intracellular_calcium_concentration__i_Ca_L_Ca_ds = var_L_type_Ca_channel__i_Ca_L_Ca_ds; 00551 double var_intracellular_calcium_concentration__i_b_Ca = var_calcium_background_current__i_b_Ca; 00552 double var_intracellular_calcium_concentration__F = var_membrane__F; 00553 00555 // new part of the model 00557 const double g_sac = 0.035; // uS 00558 const double E_sac = -10; // mV 00559 double f = (mStretch > 0) ? (mStretch-1.0)/0.15 : 0.0; // f = 0 if stretch < 1, scales linearly to f=1 at 15% stretch 00560 double sac_ionic_current = g_sac * f * (var_membrane__V - E_sac); // if g is uS, this is nA 00561 00562 double d_dt_membrane__V; 00563 if (mSetVoltageDerivativeToZero) 00564 { 00565 d_dt_membrane__V = 0.0; 00566 } 00567 else 00568 { 00569 d_dt_membrane__V = ((-1.0) / var_membrane__Cm) * (sac_ionic_current + var_membrane__i_Stim + var_membrane__i_K1 + var_membrane__i_to + var_membrane__i_Kr + var_membrane__i_Ks + var_membrane__i_NaK + var_membrane__i_Na + var_membrane__i_b_Na + var_membrane__i_p_Na + var_membrane__i_Ca_L_Na_cyt + var_membrane__i_Ca_L_Na_ds + var_membrane__i_NaCa_cyt + var_membrane__i_NaCa_ds + var_membrane__i_Ca_L_Ca_cyt + var_membrane__i_Ca_L_Ca_ds + var_membrane__i_Ca_L_K_cyt + var_membrane__i_Ca_L_K_ds + var_membrane__i_b_Ca); 00570 } 00571 double d_dt_rapid_delayed_rectifier_potassium_current_xr1_gate__xr1 = (var_rapid_delayed_rectifier_potassium_current_xr1_gate__alpha_xr1 * (1.0 - var_rapid_delayed_rectifier_potassium_current_xr1_gate__xr1)) - (var_rapid_delayed_rectifier_potassium_current_xr1_gate__beta_xr1 * var_rapid_delayed_rectifier_potassium_current_xr1_gate__xr1); 00572 double d_dt_rapid_delayed_rectifier_potassium_current_xr2_gate__xr2 = (var_rapid_delayed_rectifier_potassium_current_xr2_gate__alpha_xr2 * (1.0 - var_rapid_delayed_rectifier_potassium_current_xr2_gate__xr2)) - (var_rapid_delayed_rectifier_potassium_current_xr2_gate__beta_xr2 * var_rapid_delayed_rectifier_potassium_current_xr2_gate__xr2); 00573 double d_dt_slow_delayed_rectifier_potassium_current_xs_gate__xs = (var_slow_delayed_rectifier_potassium_current_xs_gate__alpha_xs * (1.0 - var_slow_delayed_rectifier_potassium_current_xs_gate__xs)) - (var_slow_delayed_rectifier_potassium_current_xs_gate__beta_xs * var_slow_delayed_rectifier_potassium_current_xs_gate__xs); 00574 double d_dt_fast_sodium_current_m_gate__m = (var_fast_sodium_current_m_gate__alpha_m * (1.0 - var_fast_sodium_current_m_gate__m)) - (var_fast_sodium_current_m_gate__beta_m * var_fast_sodium_current_m_gate__m); 00575 double d_dt_fast_sodium_current_h_gate__h = (var_fast_sodium_current_h_gate__alpha_h * (1.0 - var_fast_sodium_current_h_gate__h)) - (var_fast_sodium_current_h_gate__beta_h * var_fast_sodium_current_h_gate__h); 00576 double d_dt_L_type_Ca_channel_d_gate__d = var_L_type_Ca_channel_d_gate__speed_d * ((var_L_type_Ca_channel_d_gate__alpha_d * (1.0 - var_L_type_Ca_channel_d_gate__d)) - (var_L_type_Ca_channel_d_gate__beta_d * var_L_type_Ca_channel_d_gate__d)); 00577 double d_dt_L_type_Ca_channel_f_gate__f = var_L_type_Ca_channel_f_gate__speed_f * ((var_L_type_Ca_channel_f_gate__alpha_f * (1.0 - var_L_type_Ca_channel_f_gate__f)) - (var_L_type_Ca_channel_f_gate__beta_f * var_L_type_Ca_channel_f_gate__f)); 00578 double d_dt_L_type_Ca_channel_f2_gate__f2 = 1.0 - (1.0 * ((var_L_type_Ca_channel_f2_gate__Ca_i / (var_L_type_Ca_channel_f2_gate__Km_f2 + var_L_type_Ca_channel_f2_gate__Ca_i)) + var_L_type_Ca_channel_f2_gate__f2)); 00579 double d_dt_L_type_Ca_channel_f2ds_gate__f2ds = var_L_type_Ca_channel_f2ds_gate__R_decay * (1.0 - ((var_L_type_Ca_channel_f2ds_gate__Ca_ds / (var_L_type_Ca_channel_f2ds_gate__Km_f2ds + var_L_type_Ca_channel_f2ds_gate__Ca_ds)) + var_L_type_Ca_channel_f2ds_gate__f2ds)); 00580 double d_dt_transient_outward_current_s_gate__s = (var_transient_outward_current_s_gate__alpha_s * (1.0 - var_transient_outward_current_s_gate__s)) - (var_transient_outward_current_s_gate__beta_s * var_transient_outward_current_s_gate__s); 00581 double d_dt_transient_outward_current_r_gate__r = 333.0 * ((1.0 / (1.0 + exp((-(var_transient_outward_current_r_gate__V + 4.0)) / 5.0))) - var_transient_outward_current_r_gate__r); 00582 double d_dt_calcium_release__ActFrac = (var_calcium_release__PrecFrac * var_calcium_release__SpeedRel * var_calcium_release__ActRate) - (var_calcium_release__ActFrac * var_calcium_release__SpeedRel * var_calcium_release__InactRate); 00583 double d_dt_calcium_release__ProdFrac = (var_calcium_release__ActFrac * var_calcium_release__SpeedRel * var_calcium_release__InactRate) - (var_calcium_release__SpeedRel * 1.0 * var_calcium_release__ProdFrac); 00584 double d_dt_intracellular_sodium_concentration__Na_i = ((-1.0) / (1.0 * var_intracellular_sodium_concentration__V_i * var_intracellular_sodium_concentration__F)) * (var_intracellular_sodium_concentration__i_Na + var_intracellular_sodium_concentration__i_p_Na + var_intracellular_sodium_concentration__i_b_Na + (3.0 * var_intracellular_sodium_concentration__i_NaK) + (3.0 * var_intracellular_sodium_concentration__i_NaCa_cyt) + var_intracellular_sodium_concentration__i_Ca_L_Na_cyt + var_intracellular_sodium_concentration__i_Ca_L_Na_ds); 00585 double d_dt_intracellular_potassium_concentration__K_i = ((-1.0) / (1.0 * var_intracellular_potassium_concentration__V_i * var_intracellular_potassium_concentration__F)) * ((var_intracellular_potassium_concentration__i_K1 + var_intracellular_potassium_concentration__i_Kr + var_intracellular_potassium_concentration__i_Ks + var_intracellular_potassium_concentration__i_Ca_L_K_cyt + var_intracellular_potassium_concentration__i_Ca_L_K_ds + var_intracellular_potassium_concentration__i_to) - (2.0 * var_intracellular_potassium_concentration__i_NaK)); 00586 double d_dt_intracellular_calcium_concentration__Ca_Trop = (var_intracellular_calcium_concentration__alpha_Trop * var_intracellular_calcium_concentration__Ca_i * (var_intracellular_calcium_concentration__Trop - var_intracellular_calcium_concentration__Ca_Trop)) - (var_intracellular_calcium_concentration__beta_Trop * var_intracellular_calcium_concentration__Ca_Trop); 00587 double d_dt_intracellular_calcium_concentration__Ca_Calmod = (var_intracellular_calcium_concentration__alpha_Calmod * var_intracellular_calcium_concentration__Ca_i * (var_intracellular_calcium_concentration__Calmod - var_intracellular_calcium_concentration__Ca_Calmod)) - (var_intracellular_calcium_concentration__beta_Calmod * var_intracellular_calcium_concentration__Ca_Calmod); 00588 double d_dt_intracellular_calcium_concentration__Ca_i = ((((((-1.0) / (2.0 * 1.0 * var_intracellular_calcium_concentration__V_i * var_intracellular_calcium_concentration__F)) * (((var_intracellular_calcium_concentration__i_Ca_L_Ca_cyt + var_intracellular_calcium_concentration__i_b_Ca) - (2.0 * var_intracellular_calcium_concentration__i_NaCa_cyt)) - (2.0 * var_intracellular_calcium_concentration__i_NaCa_ds))) + (var_intracellular_calcium_concentration__Ca_ds * var_intracellular_calcium_concentration__V_ds_ratio * var_intracellular_calcium_concentration__Kdecay) + ((var_intracellular_calcium_concentration__i_rel * var_intracellular_calcium_concentration__V_rel_ratio) / var_intracellular_calcium_concentration__V_i_ratio)) - d_dt_intracellular_calcium_concentration__Ca_Calmod) - d_dt_intracellular_calcium_concentration__Ca_Trop) - var_intracellular_calcium_concentration__i_up; 00589 double d_dt_intracellular_calcium_concentration__Ca_ds = (((-1.0) * var_intracellular_calcium_concentration__i_Ca_L_Ca_ds) / (2.0 * 1.0 * var_intracellular_calcium_concentration__V_ds_ratio * var_intracellular_calcium_concentration__V_i * var_intracellular_calcium_concentration__F)) - (var_intracellular_calcium_concentration__Ca_ds * var_intracellular_calcium_concentration__Kdecay); 00590 double d_dt_intracellular_calcium_concentration__Ca_up = ((var_intracellular_calcium_concentration__V_i_ratio / var_intracellular_calcium_concentration__V_up_ratio) * var_intracellular_calcium_concentration__i_up) - var_intracellular_calcium_concentration__i_trans; 00591 double d_dt_intracellular_calcium_concentration__Ca_rel = ((var_intracellular_calcium_concentration__V_up_ratio / var_intracellular_calcium_concentration__V_rel_ratio) * var_intracellular_calcium_concentration__i_trans) - var_intracellular_calcium_concentration__i_rel; 00592 00593 rDY[0] = 0.001*d_dt_membrane__V; 00594 rDY[1] = 0.001*d_dt_rapid_delayed_rectifier_potassium_current_xr1_gate__xr1; 00595 rDY[2] = 0.001*d_dt_rapid_delayed_rectifier_potassium_current_xr2_gate__xr2; 00596 rDY[3] = 0.001*d_dt_slow_delayed_rectifier_potassium_current_xs_gate__xs; 00597 rDY[4] = 0.001*d_dt_fast_sodium_current_m_gate__m; 00598 rDY[5] = 0.001*d_dt_fast_sodium_current_h_gate__h; 00599 rDY[6] = 0.001*d_dt_L_type_Ca_channel_d_gate__d; 00600 rDY[7] = 0.001*d_dt_L_type_Ca_channel_f_gate__f; 00601 rDY[8] = 0.001*d_dt_L_type_Ca_channel_f2_gate__f2; 00602 rDY[9] = 0.001*d_dt_L_type_Ca_channel_f2ds_gate__f2ds; 00603 rDY[10] = 0.001*d_dt_transient_outward_current_s_gate__s; 00604 rDY[11] = 0.001*d_dt_transient_outward_current_r_gate__r; 00605 rDY[12] = 0.001*d_dt_calcium_release__ActFrac; 00606 rDY[13] = 0.001*d_dt_calcium_release__ProdFrac; 00607 rDY[14] = 0.001*d_dt_intracellular_sodium_concentration__Na_i; 00608 rDY[15] = 0.001*d_dt_intracellular_potassium_concentration__K_i; 00609 rDY[16] = 0.001*d_dt_intracellular_calcium_concentration__Ca_i; 00610 rDY[17] = 0.001*d_dt_intracellular_calcium_concentration__Ca_ds; 00611 rDY[18] = 0.001*d_dt_intracellular_calcium_concentration__Ca_up; 00612 rDY[19] = 0.001*d_dt_intracellular_calcium_concentration__Ca_rel; 00613 rDY[20] = 0.001*d_dt_intracellular_calcium_concentration__Ca_Calmod; 00614 rDY[21] = 0.001*d_dt_intracellular_calcium_concentration__Ca_Trop; 00615 } 00616 00617 00618 template<> 00619 void OdeSystemInformation<CML_noble_varghese_kohl_noble_1998_basic_with_sac>::Initialise(void) 00620 { 00621 // Time units: second 00622 // 00623 this->mVariableNames.push_back("V"); 00624 this->mVariableUnits.push_back("millivolt"); 00625 this->mInitialConditions.push_back(-92.849333); 00626 00627 this->mVariableNames.push_back("xr1"); 00628 this->mVariableUnits.push_back("dimensionless"); 00629 this->mInitialConditions.push_back(1.03e-5); 00630 00631 this->mVariableNames.push_back("xr2"); 00632 this->mVariableUnits.push_back("dimensionless"); 00633 this->mInitialConditions.push_back(2e-7); 00634 00635 this->mVariableNames.push_back("xs"); 00636 this->mVariableUnits.push_back("dimensionless"); 00637 this->mInitialConditions.push_back(0.001302); 00638 00639 this->mVariableNames.push_back("m"); 00640 this->mVariableUnits.push_back("dimensionless"); 00641 this->mInitialConditions.push_back(0.0016203); 00642 00643 this->mVariableNames.push_back("h"); 00644 this->mVariableUnits.push_back("dimensionless"); 00645 this->mInitialConditions.push_back(0.9944036); 00646 00647 this->mVariableNames.push_back("d"); 00648 this->mVariableUnits.push_back("dimensionless"); 00649 this->mInitialConditions.push_back(0); 00650 00651 this->mVariableNames.push_back("f"); 00652 this->mVariableUnits.push_back("dimensionless"); 00653 this->mInitialConditions.push_back(1); 00654 00655 this->mVariableNames.push_back("f2"); 00656 this->mVariableUnits.push_back("dimensionless"); 00657 this->mInitialConditions.push_back(0.9349197); 00658 00659 this->mVariableNames.push_back("f2ds"); 00660 this->mVariableUnits.push_back("dimensionless"); 00661 this->mInitialConditions.push_back(0.9651958); 00662 00663 this->mVariableNames.push_back("s"); 00664 this->mVariableUnits.push_back("dimensionless"); 00665 this->mInitialConditions.push_back(0.9948645); 00666 00667 this->mVariableNames.push_back("r"); 00668 this->mVariableUnits.push_back("dimensionless"); 00669 this->mInitialConditions.push_back(0); 00670 00671 this->mVariableNames.push_back("ActFrac"); 00672 this->mVariableUnits.push_back("dimensionless"); 00673 this->mInitialConditions.push_back(0.0042614); 00674 00675 this->mVariableNames.push_back("ProdFrac"); 00676 this->mVariableUnits.push_back("dimensionless"); 00677 this->mInitialConditions.push_back(0.4068154); 00678 00679 this->mVariableNames.push_back("Na_i"); 00680 this->mVariableUnits.push_back("millimolar"); 00681 this->mInitialConditions.push_back(7.3321223); 00682 00683 this->mVariableNames.push_back("K_i"); 00684 this->mVariableUnits.push_back("millimolar"); 00685 this->mInitialConditions.push_back(136.5644281); 00686 00687 this->mVariableNames.push_back("Ca_i"); 00688 this->mVariableUnits.push_back("millimolar"); 00689 this->mInitialConditions.push_back(1.4e-5); 00690 00691 this->mVariableNames.push_back("Ca_ds"); 00692 this->mVariableUnits.push_back("millimolar"); 00693 this->mInitialConditions.push_back(1.88e-5); 00694 00695 this->mVariableNames.push_back("Ca_up"); 00696 this->mVariableUnits.push_back("millimolar"); 00697 this->mInitialConditions.push_back(0.4531889); 00698 00699 this->mVariableNames.push_back("Ca_rel"); 00700 this->mVariableUnits.push_back("millimolar"); 00701 this->mInitialConditions.push_back(0.4481927); 00702 00703 this->mVariableNames.push_back("Ca_Calmod"); 00704 this->mVariableUnits.push_back("millimolar"); 00705 this->mInitialConditions.push_back(0.0005555); 00706 00707 this->mVariableNames.push_back("Ca_Trop"); 00708 this->mVariableUnits.push_back("millimolar"); 00709 this->mInitialConditions.push_back(0.0003542); 00710 00711 this->mInitialised = true; 00712 } 00713 00714 // Serialization for Boost>=1.36 00715 #include "SerializationExportWrapperForCpp.hpp" 00716 CHASTE_CLASS_EXPORT(CML_noble_varghese_kohl_noble_1998_basic_with_sac)