CorriasBuistICCModified.cpp

00001 /*
00002 
00003 Copyright (C) University of Oxford, 2005-2011
00004 
00005 University of Oxford means the Chancellor, Masters and Scholars of the
00006 University of Oxford, having an administrative office at Wellington
00007 Square, Oxford OX1 2JD, UK.
00008 
00009 This file is part of Chaste.
00010 
00011 Chaste is free software: you can redistribute it and/or modify it
00012 under the terms of the GNU Lesser General Public License as published
00013 by the Free Software Foundation, either version 2.1 of the License, or
00014 (at your option) any later version.
00015 
00016 Chaste is distributed in the hope that it will be useful, but WITHOUT
00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
00019 License for more details. The offer of Chaste under the terms of the
00020 License is subject to the License being interpreted in accordance with
00021 English Law and subject to any action against the University of Oxford
00022 being under the jurisdiction of the English Courts.
00023 
00024 You should have received a copy of the GNU Lesser General Public License
00025 along with Chaste. If not, see <http://www.gnu.org/licenses/>.
00026 
00027 */
00028 
00029 #include "CorriasBuistICCModified.hpp"
00030 #include <cmath>
00031 #include <cassert>
00032 #include <memory>
00033 #include "Exception.hpp"
00034 #include "OdeSystemInformation.hpp"
00035 #include "HeartConfig.hpp"
00036 
00037     CorriasBuistICCModified::CorriasBuistICCModified(boost::shared_ptr<AbstractIvpOdeSolver> pSolver, boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus)
00038         : AbstractCardiacCell(
00039                 pSolver,
00040                 18,//reduced by 3 from original
00041                 0,
00042                 pIntracellularStimulus)
00043     {
00044 
00045         mpSystemInfo = OdeSystemInformation<CorriasBuistICCModified>::Instance();
00046         mFractionOfVDDRInPU = 0.0;
00047         mIP3Concentration = 0.0006;
00048         mScaleFactorSerca = 1.0;
00049         mScaleFactorCarbonMonoxide = 1.0; //initialise to 1 --> no effect
00050         //IP3  =  0.00065;// mM  *** no longer used ***
00051 
00053         //Constants
00055 
00056         /* Concentrations */
00057         Ca_o = 2.5    ;// mM
00058         Cl_o  =134.0  ;// mM
00059         K_o   =7.0    ;// mM
00060         Na_o  =137.0  ;// mM
00061 
00062         /* Nernst parameters */
00063         R =    8314.4 ;// pJ/nmol/K
00064         T =    310.0  ;// degK
00065         F =    96484.6;// nC/nmol
00066         FoRT   =    0.03743;// 1/mV
00067         RToF   =    26.7137;// mV
00068 
00069         Cm = 25.0*1e-6;// 25 pF --> microF
00070 
00071         Asurf_in_cm_square = Cm / HeartConfig::Instance()->GetCapacitance();
00072         Asurf = Asurf_in_cm_square / 0.01;//cm2 --> mm2
00073 
00074         Cl_i = 88.0   ;// mM
00075         K_i  = 120.0  ;// mM
00076         Na_i =  30.0   ;// mM
00077         P_cyto = 0.7;// dim
00078         Vol  =  1.0e-6 ;// mm3
00079         fc = 0.01   ;// dim
00080         fe = 0.01   ;// dim
00081         fm = 0.0003 ;// dim
00082         Q10Ca = 2.1;// dim
00083         Q10K  = 1.5;// dim
00084         Q10Na = 2.45   ;// dim
00085         T_exp = 297.0  ;// degK
00086 
00087         G_max_BK     =   23.0 * 1e-6 / Asurf;//  9.2e-3  mS/mm2           (23.0 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00088         G_max_CaCl   =   10.1 * 1e-6 / Asurf; //4.04e-3  mS/mm2           (10.1 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00089         G_max_ERG    =   2.5 * 1e-6 / Asurf; //1.0e-3   mS/mm2           ( 2.5 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00090         G_max_Ltype  =   2.0 * 1e-6 / Asurf;//0.8e-3    mS/mm2           ( 2.0 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00091         G_max_NSCC   =   12.15 * 1e-6 / Asurf;//4.86e-3 mS/mm2           (12.15nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00092         G_max_Na     =   20.0 * 1e-6 / Asurf;//8.0e-3  mS/mm2           (20.0 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00093         G_max_VDDR   =   3.0 * 1e-6 / Asurf;//1.2e-3   mS/mm2           ( 3.0 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00094         G_max_bk     =   0.15 * 1e-6 / Asurf;//0.06e-3 mS/mm2           (0.15 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00095         G_max_kv11   =   6.3 * 1e-6 / Asurf;//2.52e-3  mS/mm2           ( 6.3 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00096 
00097         J_max_PMCA = 0.088464e-3 ;// mM/ms   (mM/s) * 1/1000 (s/ms) = mM/ms
00098         J_max_PMCA_PU =  0.33e-3;// mM/ms   (mM/s) * 1/1000 (s/ms) = mM/ms
00099         J_ERleak  = 1.666667e-3 ;// 1/ms    (1/s) * 1/1000 (ms/s) = 1/ms
00100         J_max_leak = 0.0;// 1/ms    (1/s) * 1/1000 (ms/s) = 1/ms
00101         Jmax_IP3  =  50000.0e-3  ;// 1/ms    (1/s) * 1/1000 (ms/s) = 1/ms
00102         Jmax_NaCa = 0.05e-3;// mM/ms   (mM/s) * 1/1000 (s/ms) = mM/ms
00103         Jmax_serca = 1.8333e-3   ;// mM/ms   (mM/s) * 1/1000 (s/ms) = mM/ms
00104         Jmax_uni  = 5000.0e-3   ;// 1/ms    (1/s) * 1/1000 (ms/s) = 1/ms
00105 
00106         NaPerm_o_Kperm = 1.056075    ;// dim
00107         L = 50.0   ;// dim
00108         P_ER  = 0.1;// dim
00109         P_PU =  0.001  ;// dim
00110         P_mito = 0.12871;// dim
00111         b = 0.5;// dim
00112         na = 2.8;// dim
00113 
00114         K_Ca  = 0.003  ;// mM
00115         K_Na  = 9.4;// mM
00116         K_act = 0.00038;// mM
00117         K_trans = 0.006  ;// mM
00118         k_serca = 0.00042;// mM
00119         conc  = 0.001  ;// mM
00120         d_ACT = 0.001  ;// mM
00121         d_IP3 = 0.00025;// mM
00122         d_INH = 0.0014 ;// mM
00123 
00124         tau_d_CaCl = 0.03e3 ;// ms(s) * 1000 (ms/s) = ms
00125         tau_d_NSCC = 0.35e3 ;// ms(s) * 1000 (ms/s) = ms
00126         tauh  = 4.0e3  ;// ms(s ) * 1000 (ms/s) = ms
00127 
00128         deltaPsi_B = 50.0   ;// mV
00129         deltaPsi_star =  91.0   ;// mV
00130         deltaPsi  = 164.000044  ;// mV
00131 
00133          //Calculated constants
00135 
00136         /* Volumes */
00137         V_cyto = Vol*P_cyto;
00138         V_MITO = Vol*P_mito;
00139         V_PU = Vol*P_PU;
00140         V_ER = Vol*P_ER;
00141 
00142         /* Temperature corrections */
00143         T_correction_Ca = pow(Q10Ca, (T-T_exp)/10.0);
00144         T_correction_K = pow(Q10K, (T-T_exp)/10.0);
00145         T_correction_Na = pow(Q10Na, (T-T_exp)/10.0);
00146         T_correction_BK = 1.1*(T-T_exp)*1e-6/Asurf;  //(nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
00147 
00148         /* Nernst potentials */
00149         E_Na = RToF*log(Na_o/Na_i);
00150         E_K = RToF*log(K_o/K_i);
00151         E_Cl = RToF*log(Cl_i/Cl_o);
00152         E_NSCC = RToF*log((K_o+Na_o*NaPerm_o_Kperm)/(K_i+Na_i*NaPerm_o_Kperm));
00153 
00154         /* Activation gate time constants s->ms */
00155         tau_d_ERG = T_correction_K*0.003*1000.0;
00156         tau_d_Ltype = T_correction_Ca*0.001*1000.0;
00157         tau_d_Na = T_correction_Na*0.003*1000.0;
00158         tau_d_VDDR = T_correction_Ca*0.006*1000.0;
00159         tau_d_kv11 = T_correction_K*0.005*1000.0;
00160 
00161         /* Inactivation gate time constants s->ms */
00162         tau_f_Ltype = T_correction_Ca*0.086*1000.0;
00163         tau_f_Na = T_correction_Na*0.0016*1000.0;
00164         tau_f_VDDR = T_correction_Ca*0.04*1000.0;
00165         tau_f_ca_Ltype = T_correction_Ca*0.002*1000.0;
00166         tau_f_kv11 = T_correction_K*0.005*1000.0;
00167 
00168         /* Speed ups */
00169         e2FoRTdPsiMdPsiS = exp(-2.0*FoRT*(deltaPsi-deltaPsi_star));
00170         ebFoRTdPsiMdPsiS = exp(b*FoRT*(deltaPsi-deltaPsi_star));
00171 
00172 
00173         Init();
00174 
00175     }
00176 
00177     CorriasBuistICCModified::~CorriasBuistICCModified()
00178     {
00179     }
00180 
00181     void CorriasBuistICCModified::VerifyStateVariables()
00182     {}
00183 
00184     void CorriasBuistICCModified::SetSercaPumpScaleFactor(double scaleFactor)
00185     {
00186         mScaleFactorSerca = scaleFactor;
00187     }
00188 
00189     void CorriasBuistICCModified::SetFractionOfVDDRInPU(double fraction)
00190     {
00191         mFractionOfVDDRInPU = fraction;
00192     }
00193 
00194     void CorriasBuistICCModified::SetIP3Concentration(double concentration)
00195     {
00196         mIP3Concentration = concentration;
00197     }
00198 
00199     void CorriasBuistICCModified::SetCarbonMonoxideScaleFactor(double scaleFactor)
00200     {
00201         mScaleFactorCarbonMonoxide = scaleFactor;
00202     }
00203 
00204     double  CorriasBuistICCModified::GetCarbonMonoxideScaleFactor()
00205     {
00206         return mScaleFactorCarbonMonoxide;
00207     }
00208 
00209     double CorriasBuistICCModified::GetIIonic(const std::vector<double>* pStateVariables)
00210     {
00211         if (!pStateVariables) pStateVariables = &rGetStateVariables();
00212         const std::vector<double>& rY = *pStateVariables;
00213 
00214         // index 0:  Vm         (mV)
00215         // index 1:  Ca_i       (mM)
00216         // index 2:  Ca_ER      (mM)
00217         // index 3:  Ca_PU      (mM)
00218         // index 4:  Ca_m       (mM)
00219         // index 5:  h          (dim)
00220         // index 6:  d_CaCl     (dim)
00221         // index 7:  d_ERG      (dim)
00222         // index 8:  d_Ltype    (dim)
00223         // index 9:  d_NSCC     (dim)
00224         // index 10: d_Na       (dim)
00225         // index 11: d_VDDR     (dim)
00226         // index 12: d_kv11     (dim)
00227         // index 13: f_Ltype    (dim)
00228         // index 14: f_Na       (dim)
00229         // index 15: f_VDDR     (dim)
00230         // index 16: f_ca_Ltype (dim)
00231         // index 17: f_kv11     (dim)
00232 
00233         double E_Ca = 0.5*RToF*log(Ca_o/rY[1]);
00234         /* --- INa --- */
00235         double I_Na = G_max_Na*rY[14]*rY[10]*(rY[0]-E_Na);
00236         /* --- ILtype --- */
00237         double I_Ltype = G_max_Ltype*rY[13]*rY[8]*rY[16]*(rY[0]-E_Ca);
00238         /* --- IVDDR --- */
00239         double I_VDDR = G_max_VDDR*rY[15]*rY[11]*(rY[0]-E_Ca);
00240         /* --- IKv1.1 --- */
00241         double I_kv11 = mScaleFactorCarbonMonoxide*G_max_kv11*rY[17]*rY[12]*(rY[0]-E_K);
00242         /* --- IERG --- */
00243         double I_ERG = mScaleFactorCarbonMonoxide*G_max_ERG*rY[7]*(rY[0]-E_K);
00244         /* --- IBK --- */
00245         double d_BK = 1.0/(1.0+((exp(rY[0]/-17.0))/((rY[1]/0.001)*(rY[1]/0.001))));
00246         double I_BK = (G_max_BK+T_correction_BK)*d_BK*(rY[0]-E_K);
00247         /* --- IKb --- */
00248         double I_bk = mScaleFactorCarbonMonoxide*G_max_bk*(rY[0]-E_K);
00249         /* --- ICaCL --- */
00250         double I_CaCl = G_max_CaCl*rY[6]*(rY[0]-E_Cl);
00251         /* --- INSCC --- */
00252         double I_NSCC = G_max_NSCC*rY[9]*(rY[0]-E_NSCC);
00253         /* --- JpmCa --- */
00254         double J_PMCA = J_max_PMCA*1.0/(1.0+(0.000298/rY[1]));
00255 
00256         //i_ionic_in microA/mm2
00257         double i_ionic = (I_Na+I_Ltype+I_VDDR+I_kv11+I_ERG+I_BK+I_CaCl+I_NSCC+I_bk+(J_PMCA*2.0*F*V_cyto/Asurf));
00258         assert(!std::isnan(i_ionic));
00262         return i_ionic / 0.01;
00263     }
00264 
00265     void CorriasBuistICCModified::EvaluateYDerivatives(double time, const std::vector<double>& rY, std::vector<double>& rDY)
00266     {
00267         // index 0:  Vm         (mV)
00268         // index 1:  Ca_i       (mM)
00269         // index 2:  Ca_ER      (mM)
00270         // index 3:  Ca_PU      (mM)
00271         // index 4:  Ca_m       (mM)
00272         // index 5:  h          (dim)
00273         // index 6:  d_CaCl     (dim)
00274         // index 7:  d_ERG      (dim)
00275         // index 8:  d_Ltype    (dim)
00276         // index 9:  d_NSCC     (dim)
00277         // index 10: d_Na       (dim)
00278         // index 11: d_VDDR     (dim)
00279         // index 12: d_kv11     (dim)
00280         // index 13: f_Ltype    (dim)
00281         // index 14: f_Na       (dim)
00282         // index 15: f_VDDR     (dim)
00283         // index 16: f_ca_Ltype (dim)
00284         // index 17: f_kv11     (dim)
00285 
00286         /* ----------------- */
00287         /* Membrane currents */
00288         /* ----------------- */
00289 
00290         double E_Ca = 0.5*RToF*log(Ca_o/rY[1]);
00291 
00292         /* --- INa --- */
00293         double d_inf_Na = 1.0/(1.0+exp((rY[0]+47.0)/-4.8));
00294         double f_inf_Na = 1.0/(1.0+exp((rY[0]+78.0)/7.0));
00295         double I_Na = G_max_Na*rY[14]*rY[10]*(rY[0]-E_Na);
00296 
00297         /* --- ILtype --- */
00298         double d_inf_Ltype = 1.0/(1.0+exp((rY[0]+17.0)/-4.3));
00299         double f_inf_Ltype = 1.0/(1.0+exp((rY[0]+43.0)/8.9));
00300         double f_ca_inf_Ltype = 1.0-1.0/(1.0+exp((rY[1]-0.0001-0.000214)/-0.0000131));
00301         double I_Ltype = G_max_Ltype*rY[13]*rY[8]*rY[16]*(rY[0]-E_Ca);
00302 
00303         /* --- IVDDR --- */
00304         double d_inf_VDDR = 1.0/(1.0+exp((rY[0]+26.0)/-6.0));
00305         double f_inf_VDDR = 1.0/(1.0+exp((rY[0]+66.0)/6.0));
00306         double I_VDDR = G_max_VDDR*rY[15]*rY[11]*(rY[0]-E_Ca);
00307 
00308         /* --- IKv1.1 --- */
00309         double d_inf_kv11 = 1.0/(1.0+exp((rY[0]+25.0)/-7.7));
00310         double f_inf_kv11 = 0.5+0.5/(1.0+exp((rY[0]+44.8)/4.4));
00311         double I_kv11 = mScaleFactorCarbonMonoxide*G_max_kv11*rY[17]*rY[12]*(rY[0]-E_K);
00312 
00313         /* --- IERG --- */
00314         double d_inf_ERG = 0.2+0.8/(1.0+exp((rY[0]+20.0)/-1.8));
00315         double I_ERG = mScaleFactorCarbonMonoxide*G_max_ERG*rY[7]*(rY[0]-E_K);
00316 
00317         /* --- IBK --- */
00318         //LUT d_BK = 1.0/(1.0+exp((rY[0]/-17.0)-2.0*log(rY[1]/0.001)));
00319         double d_BK = 1.0/(1.0+((exp(rY[0]/-17.0))/((rY[1]/0.001)*(rY[1]/0.001))));
00320         double I_BK = (G_max_BK+T_correction_BK)*d_BK*(rY[0]-E_K);
00321 
00322         /* --- IKb --- */
00323         double I_bk = mScaleFactorCarbonMonoxide*G_max_bk*(rY[0]-E_K);
00324 
00325         /* --- ICaCL --- */
00326         double tmp1 = 0.00014/rY[1];
00327         double d_inf_CaCl = 1.0/(1.0+(tmp1*tmp1*tmp1));
00328         double I_CaCl = G_max_CaCl*rY[6]*(rY[0]-E_Cl);
00329 
00330         /* --- INSCC --- */
00331         double d_inf_NSCC = 1.0/(1.0+pow(0.0000745/rY[3], -85.0));
00332         double I_NSCC = G_max_NSCC*rY[9]*(rY[0]-E_NSCC);
00333 
00334         /* --- JpmCa --- */
00335         double J_PMCA = J_max_PMCA*1.0/(1.0+(0.000298/rY[1]));
00336 
00337         /* ----------------- */
00338         /* ER fluxes         */
00339         /* ----------------- */
00340 
00341         //tmp1 = IP3/(IP3+d_IP3);
00342         tmp1 = mIP3Concentration/(mIP3Concentration+d_IP3);
00343         double tmp2 = rY[3]/(rY[3]+d_ACT);
00344         double J_ERout = (Jmax_IP3*tmp1*tmp1*tmp1*tmp2*tmp2*tmp2*rY[5]*rY[5]*rY[5]+J_ERleak)*(rY[2]-rY[3]);
00345         double J_SERCA = mScaleFactorSerca*Jmax_serca*rY[3]*rY[3]/(k_serca*k_serca+rY[3]*rY[3]);
00346 
00347         /* ----------------- */
00348         /* Mito fluxes       */
00349         /* ----------------- */
00350 
00351         /* Uniporter */
00352         tmp1 = 1.0+rY[3]/K_trans;
00353         double MWC = conc*(rY[3]/K_trans)*tmp1*tmp1*tmp1/(tmp1*tmp1*tmp1*tmp1+L/pow(1.0+rY[3]/K_act, na));
00354         double J_uni = Jmax_uni*(MWC-rY[4]*e2FoRTdPsiMdPsiS)*2.0*FoRT*(deltaPsi-deltaPsi_star)/(1.0-e2FoRTdPsiMdPsiS);
00355 
00356         /* NaCa Exchanger */
00357         double J_NaCa = Jmax_NaCa*ebFoRTdPsiMdPsiS/((1.0+K_Na*K_Na/(Na_i*Na_i))*(1.0+K_Ca/rY[4]));
00358 
00359         /* ----------------- */
00360         /* Cyto fluxes       */
00361         /* ----------------- */
00362 
00363         double J_leak = J_max_leak*(rY[3]-rY[1]); /* P.U.->Cai */
00364 
00365         /* ----------------- */
00366         /* Entrainment       */
00367         /* ----------------- */
00368 
00369         double E_Ca_PU = 0.5*RToF*log(Ca_o/rY[3]);
00370         double I_VDDR_PU = G_max_VDDR*rY[11]*rY[15]*(rY[0]-E_Ca_PU);
00371         //J_PMCA_PU = J_max_PMCA_PU*1.0/(1.0+exp(-(rY[3]-0.0001)/0.000015));
00372         double J_PMCA_PU = J_max_PMCA_PU*1.0/(1.0+exp(-(rY[3]-0.0001)/0.000015));
00373 
00374         double i_stim = GetStimulus(time);
00375 
00376         /* -------------------- */
00377         /* Resting Membrane, CO */
00378         /* -------------------- */
00379 
00380         //tmp1 = 2.8*spatVar[1]-0.1;
00381         //I_kv11 = I_kv11*tmp1;
00382         //I_ERG = I_ERG*tmp1;
00383         //I_bk = I_bk*tmp1;
00384         double voltage_derivative;
00385         if (mSetVoltageDerivativeToZero)
00386         {
00387             voltage_derivative = 0.0;
00388         }
00389         else
00390         {
00391             voltage_derivative = (-1.0 / 0.01) * (i_stim + I_Na+I_Ltype+I_VDDR+I_kv11+I_ERG+I_BK+I_CaCl+I_NSCC+I_bk+(J_PMCA*2.0*F*V_cyto/Asurf));
00392             assert(!std::isnan(voltage_derivative));
00393         }
00394 
00395         rDY[0] =  voltage_derivative;/* Vm */
00396         rDY[1] = fc*((-I_Ltype-I_VDDR)*Asurf/(2.0*F*V_cyto)+J_leak-J_PMCA);
00397         rDY[2] = fe*(J_SERCA-J_ERout);
00398         rDY[3] = fc*((J_NaCa-J_uni)*V_MITO/V_PU+(J_ERout-J_SERCA)*V_ER/V_PU-J_leak*V_cyto/V_PU);
00399         rDY[3]-= fc*(((mFractionOfVDDRInPU*I_VDDR_PU*Asurf)/(2.0*F*V_PU))+J_PMCA_PU); // *** new, 4% IVDDR ***
00400         rDY[4] = fm*(J_uni-J_NaCa);
00401         rDY[5] = 1.0*(d_INH-rY[5]*(rY[3]+d_INH))/tauh;
00402         rDY[6] = (d_inf_CaCl-rY[6])/tau_d_CaCl;
00403         rDY[7] = (d_inf_ERG-rY[7])/tau_d_ERG;
00404         rDY[8] = (d_inf_Ltype-rY[8])/tau_d_Ltype;
00405         rDY[9] = (d_inf_NSCC-rY[9])/tau_d_NSCC;
00406         rDY[10] = (d_inf_Na-rY[10])/tau_d_Na;
00407         rDY[11] = (d_inf_VDDR-rY[11])/tau_d_VDDR;
00408         rDY[12] = (d_inf_kv11-rY[12])/tau_d_kv11;
00409         rDY[13] = (f_inf_Ltype-rY[13])/tau_f_Ltype;
00410         rDY[14] = (f_inf_Na-rY[14])/tau_f_Na;
00411         rDY[15] = (f_inf_VDDR-rY[15])/tau_f_VDDR;
00412         rDY[16] = (f_ca_inf_Ltype-rY[16])/tau_f_ca_Ltype;
00413         rDY[17] = (f_inf_kv11-rY[17])/tau_f_kv11;
00414     }
00415 
00416 template<>
00417 void OdeSystemInformation<CorriasBuistICCModified>::Initialise(void)
00418 {
00419 
00420     this->mSystemName = "ICC_model_Martincode";
00421 
00422     this->mVariableNames.push_back("Vm");
00423     this->mVariableUnits.push_back("mV");
00424     this->mInitialConditions.push_back(-67.53988);         // Vm         (mV);
00425 
00426     this->mVariableNames.push_back("Ca_i");
00427     this->mVariableUnits.push_back("mM");
00428     this->mInitialConditions.push_back(0.00001);           // Ca_i       (mM));
00429 
00430     this->mVariableNames.push_back("Ca_ER");
00431     this->mVariableUnits.push_back("mM");
00432     this->mInitialConditions.push_back(0.00695);           // Ca_ER      (mM));
00433 
00434     this->mVariableNames.push_back("Ca_PU");
00435     this->mVariableUnits.push_back("mM");
00436     this->mInitialConditions.push_back(0.000095);          // Ca_PU      (mM));
00437 
00438     this->mVariableNames.push_back("Ca_m");
00439     this->mVariableUnits.push_back("mM");
00440     this->mInitialConditions.push_back(0.000138);          // Ca_m       (mM));
00441 
00442     this->mVariableNames.push_back("h");
00443     this->mVariableUnits.push_back("dimensionless");
00444     this->mInitialConditions.push_back(0.939443);          // h          (dim));
00445 
00446     this->mVariableNames.push_back("d_CaCl");
00447     this->mVariableUnits.push_back("dimensionless");
00448     this->mInitialConditions.push_back(0.00038);           // d_CaCl     (dim));
00449 
00450     this->mVariableNames.push_back("d_ERG");
00451     this->mVariableUnits.push_back("dimensionless");
00452     this->mInitialConditions.push_back(0.2);               // d_ERG      (dim));
00453 
00454     this->mVariableNames.push_back("d_Ltype");
00455     this->mVariableUnits.push_back("dimensionless");
00456     this->mInitialConditions.push_back(0.000008);          // d_Ltype    (dim));
00457 
00458     this->mVariableNames.push_back("d_NSCC");
00459     this->mVariableUnits.push_back("dimensionless");
00460     this->mInitialConditions.push_back(0.0);               // d_NSCC     (dim));
00461 
00462     this->mVariableNames.push_back("d_Na");
00463     this->mVariableUnits.push_back("dimensionless");
00464     this->mInitialConditions.push_back(0.013778);         // d_Na       (dim));
00465 
00466     this->mVariableNames.push_back("d_VDDR");
00467     this->mVariableUnits.push_back("dimensionless");
00468     this->mInitialConditions.push_back(0.00099);          // d_VDDR     (dim));
00469 
00470     this->mVariableNames.push_back("d_kv11");
00471     this->mVariableUnits.push_back("dimensionless");
00472     this->mInitialConditions.push_back(0.003992);         // d_kv11     (dim));
00473 
00474     this->mVariableNames.push_back("f_Ltype");
00475     this->mVariableUnits.push_back("dimensionless");
00476     this->mInitialConditions.push_back( 0.940072);         // f_Ltype    (dim));
00477 
00478     this->mVariableNames.push_back("f_Na");
00479     this->mVariableUnits.push_back("dimensionless");
00480     this->mInitialConditions.push_back(0.182426);         // f_Na       (dim));
00481 
00482     this->mVariableNames.push_back("f_VDDR");
00483     this->mVariableUnits.push_back("dimensionless");
00484     this->mInitialConditions.push_back(0.562177);         // f_VDDR     (dim));
00485 
00486     this->mVariableNames.push_back("f_ca_Ltype");
00487     this->mVariableUnits.push_back("dimensionless");
00488     this->mInitialConditions.push_back(1.0);              // f_ca_Ltype (dim));
00489 
00490     this->mVariableNames.push_back("f_kv11");
00491     this->mVariableUnits.push_back("dimensionless");
00492     this->mInitialConditions.push_back(0.997143);         // f_kv11     (dim));
00493 
00494     this->mInitialised = true;
00495 }
00496 
00497 
00498 // Serialization for Boost >= 1.36
00499 #include "SerializationExportWrapperForCpp.hpp"
00500 CHASTE_CLASS_EXPORT(CorriasBuistICCModified)
Generated on Thu Dec 22 13:00:06 2011 for Chaste by  doxygen 1.6.3