Chaste Commit::ca8ccdedf819b6e02855bc0e8e6f50bdecbc5208
CorriasBuistICCModified.cpp
1/*
2
3Copyright (c) 2005-2024, University of Oxford.
4All rights reserved.
5
6University of Oxford means the Chancellor, Masters and Scholars of the
7University of Oxford, having an administrative office at Wellington
8Square, Oxford OX1 2JD, UK.
9
10This file is part of Chaste.
11
12Redistribution and use in source and binary forms, with or without
13modification, are permitted provided that the following conditions are met:
14 * Redistributions of source code must retain the above copyright notice,
15 this list of conditions and the following disclaimer.
16 * Redistributions in binary form must reproduce the above copyright notice,
17 this list of conditions and the following disclaimer in the documentation
18 and/or other materials provided with the distribution.
19 * Neither the name of the University of Oxford nor the names of its
20 contributors may be used to endorse or promote products derived from this
21 software without specific prior written permission.
22
23THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
27LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
29GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
32OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
34*/
35
36#include "CorriasBuistICCModified.hpp"
37#include <cmath>
38#include <cassert>
39#include <memory>
40#include "Exception.hpp"
41#include "OdeSystemInformation.hpp"
42#include "HeartConfig.hpp"
43
44 CorriasBuistICCModified::CorriasBuistICCModified(boost::shared_ptr<AbstractIvpOdeSolver> pSolver, boost::shared_ptr<AbstractStimulusFunction> pIntracellularStimulus)
46 pSolver,
47 18,//reduced by 3 from original
48 0,
49 pIntracellularStimulus)
50 {
51
54 mIP3Concentration = 0.0006;
56 mScaleFactorCarbonMonoxide = 1.0; //initialise to 1 --> no effect
57 //IP3 = 0.00065;// mM *** no longer used ***
58
60 //Constants
62
63 /* Concentrations */
64 Ca_o = 2.5 ;// mM
65 Cl_o =134.0 ;// mM
66 K_o =7.0 ;// mM
67 Na_o =137.0 ;// mM
68
69 /* Nernst parameters */
70 R = 8314.4 ;// pJ/nmol/K
71 T = 310.0 ;// degK
72 F = 96484.6;// nC/nmol
73 FoRT = 0.03743;// 1/mV
74 RToF = 26.7137;// mV
75
76 Cm = 25.0*1e-6;// 25 pF --> microF
77
79 Asurf = Asurf_in_cm_square / 0.01;//cm2 --> mm2
80
81 Cl_i = 88.0 ;// mM
82 K_i = 120.0 ;// mM
83 Na_i = 30.0 ;// mM
84 P_cyto = 0.7;// dim
85 Vol = 1.0e-6 ;// mm3
86 fc = 0.01 ;// dim
87 fe = 0.01 ;// dim
88 fm = 0.0003 ;// dim
89 Q10Ca = 2.1;// dim
90 Q10K = 1.5;// dim
91 Q10Na = 2.45 ;// dim
92 T_exp = 297.0 ;// degK
93
94 G_max_BK = 23.0 * 1e-6 / Asurf;// 9.2e-3 mS/mm2 (23.0 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
95 G_max_CaCl = 10.1 * 1e-6 / Asurf; //4.04e-3 mS/mm2 (10.1 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
96 G_max_ERG = 2.5 * 1e-6 / Asurf; //1.0e-3 mS/mm2 ( 2.5 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
97 G_max_Ltype = 2.0 * 1e-6 / Asurf;//0.8e-3 mS/mm2 ( 2.0 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
98 G_max_NSCC = 12.15 * 1e-6 / Asurf;//4.86e-3 mS/mm2 (12.15nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
99 G_max_Na = 20.0 * 1e-6 / Asurf;//8.0e-3 mS/mm2 (20.0 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
100 G_max_VDDR = 3.0 * 1e-6 / Asurf;//1.2e-3 mS/mm2 ( 3.0 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
101 G_max_bk = 0.15 * 1e-6 / Asurf;//0.06e-3 mS/mm2 (0.15 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
102 G_max_kv11 = 6.3 * 1e-6 / Asurf;//2.52e-3 mS/mm2 ( 6.3 nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
103
104 J_max_PMCA = 0.088464e-3 ;// mM/ms (mM/s) * 1/1000 (s/ms) = mM/ms
105 J_max_PMCA_PU = 0.33e-3;// mM/ms (mM/s) * 1/1000 (s/ms) = mM/ms
106 J_ERleak = 1.666667e-3 ;// 1/ms (1/s) * 1/1000 (ms/s) = 1/ms
107 J_max_leak = 0.0;// 1/ms (1/s) * 1/1000 (ms/s) = 1/ms
108 Jmax_IP3 = 50000.0e-3 ;// 1/ms (1/s) * 1/1000 (ms/s) = 1/ms
109 Jmax_NaCa = 0.05e-3;// mM/ms (mM/s) * 1/1000 (s/ms) = mM/ms
110 Jmax_serca = 1.8333e-3 ;// mM/ms (mM/s) * 1/1000 (s/ms) = mM/ms
111 Jmax_uni = 5000.0e-3 ;// 1/ms (1/s) * 1/1000 (ms/s) = 1/ms
112
113 NaPerm_o_Kperm = 1.056075 ;// dim
114 L = 50.0 ;// dim
115 P_ER = 0.1;// dim
116 P_PU = 0.001 ;// dim
117 P_mito = 0.12871;// dim
118 b = 0.5;// dim
119 na = 2.8;// dim
120
121 K_Ca = 0.003 ;// mM
122 K_Na = 9.4;// mM
123 K_act = 0.00038;// mM
124 K_trans = 0.006 ;// mM
125 k_serca = 0.00042;// mM
126 conc = 0.001 ;// mM
127 d_ACT = 0.001 ;// mM
128 d_IP3 = 0.00025;// mM
129 d_INH = 0.0014 ;// mM
130
131 tau_d_CaCl = 0.03e3 ;// ms(s) * 1000 (ms/s) = ms
132 tau_d_NSCC = 0.35e3 ;// ms(s) * 1000 (ms/s) = ms
133 tauh = 4.0e3 ;// ms(s ) * 1000 (ms/s) = ms
134
135 deltaPsi_B = 50.0 ;// mV
136 deltaPsi_star = 91.0 ;// mV
137 deltaPsi = 164.000044 ;// mV
138
140 //Calculated constants
142
143 /* Volumes */
144 V_cyto = Vol*P_cyto;
145 V_MITO = Vol*P_mito;
146 V_PU = Vol*P_PU;
147 V_ER = Vol*P_ER;
148
149 /* Temperature corrections */
150 T_correction_Ca = pow(Q10Ca, (T-T_exp)/10.0);
151 T_correction_K = pow(Q10K, (T-T_exp)/10.0);
152 T_correction_Na = pow(Q10Na, (T-T_exp)/10.0);
153 T_correction_BK = 1.1*(T-T_exp)*1e-6/Asurf; //(nS) * 1e-6 (mS/nS) / Asurf (mm2) = mS/mm2
154
155 /* Nernst potentials */
156 E_Na = RToF*log(Na_o/Na_i);
157 E_K = RToF*log(K_o/K_i);
158 E_Cl = RToF*log(Cl_i/Cl_o);
160
161 /* Activation gate time constants s->ms */
162 tau_d_ERG = T_correction_K*0.003*1000.0;
163 tau_d_Ltype = T_correction_Ca*0.001*1000.0;
164 tau_d_Na = T_correction_Na*0.003*1000.0;
165 tau_d_VDDR = T_correction_Ca*0.006*1000.0;
166 tau_d_kv11 = T_correction_K*0.005*1000.0;
167
168 /* Inactivation gate time constants s->ms */
169 tau_f_Ltype = T_correction_Ca*0.086*1000.0;
170 tau_f_Na = T_correction_Na*0.0016*1000.0;
171 tau_f_VDDR = T_correction_Ca*0.04*1000.0;
172 tau_f_ca_Ltype = T_correction_Ca*0.002*1000.0;
173 tau_f_kv11 = T_correction_K*0.005*1000.0;
174
175 /* Speed ups */
178
179
180 Init();
181
182 }
183
187
190
192 {
193 mScaleFactorSerca = scaleFactor;
194 }
195
197 {
198 mFractionOfVDDRInPU = fraction;
199 }
200
202 {
203 mIP3Concentration = concentration;
204 }
205
207 {
208 mScaleFactorCarbonMonoxide = scaleFactor;
209 }
210
215
216 double CorriasBuistICCModified::GetIIonic(const std::vector<double>* pStateVariables)
217 {
218 if (!pStateVariables) pStateVariables = &rGetStateVariables();
219 const std::vector<double>& rY = *pStateVariables;
220
221 // index 0: Vm (mV)
222 // index 1: Ca_i (mM)
223 // index 2: Ca_ER (mM)
224 // index 3: Ca_PU (mM)
225 // index 4: Ca_m (mM)
226 // index 5: h (dim)
227 // index 6: d_CaCl (dim)
228 // index 7: d_ERG (dim)
229 // index 8: d_Ltype (dim)
230 // index 9: d_NSCC (dim)
231 // index 10: d_Na (dim)
232 // index 11: d_VDDR (dim)
233 // index 12: d_kv11 (dim)
234 // index 13: f_Ltype (dim)
235 // index 14: f_Na (dim)
236 // index 15: f_VDDR (dim)
237 // index 16: f_ca_Ltype (dim)
238 // index 17: f_kv11 (dim)
239
240 double E_Ca = 0.5*RToF*log(Ca_o/rY[1]);
241 /* --- INa --- */
242 double I_Na = G_max_Na*rY[14]*rY[10]*(rY[0]-E_Na);
243 /* --- ILtype --- */
244 double I_Ltype = G_max_Ltype*rY[13]*rY[8]*rY[16]*(rY[0]-E_Ca);
245 /* --- IVDDR --- */
246 double I_VDDR = G_max_VDDR*rY[15]*rY[11]*(rY[0]-E_Ca);
247 /* --- IKv1.1 --- */
248 double I_kv11 = mScaleFactorCarbonMonoxide*G_max_kv11*rY[17]*rY[12]*(rY[0]-E_K);
249 /* --- IERG --- */
250 double I_ERG = mScaleFactorCarbonMonoxide*G_max_ERG*rY[7]*(rY[0]-E_K);
251 /* --- IBK --- */
252 double d_BK = 1.0/(1.0+((exp(rY[0]/-17.0))/((rY[1]/0.001)*(rY[1]/0.001))));
253 double I_BK = (G_max_BK+T_correction_BK)*d_BK*(rY[0]-E_K);
254 /* --- IKb --- */
255 double I_bk = mScaleFactorCarbonMonoxide*G_max_bk*(rY[0]-E_K);
256 /* --- ICaCL --- */
257 double I_CaCl = G_max_CaCl*rY[6]*(rY[0]-E_Cl);
258 /* --- INSCC --- */
259 double I_NSCC = G_max_NSCC*rY[9]*(rY[0]-E_NSCC);
260 /* --- JpmCa --- */
261 double J_PMCA = J_max_PMCA*1.0/(1.0+(0.000298/rY[1]));
262
263 //i_ionic_in microA/mm2
264 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));
265 assert(!std::isnan(i_ionic));
269 return i_ionic / 0.01;
270 }
271
272 void CorriasBuistICCModified::EvaluateYDerivatives(double time, const std::vector<double>& rY, std::vector<double>& rDY)
273 {
274 // index 0: Vm (mV)
275 // index 1: Ca_i (mM)
276 // index 2: Ca_ER (mM)
277 // index 3: Ca_PU (mM)
278 // index 4: Ca_m (mM)
279 // index 5: h (dim)
280 // index 6: d_CaCl (dim)
281 // index 7: d_ERG (dim)
282 // index 8: d_Ltype (dim)
283 // index 9: d_NSCC (dim)
284 // index 10: d_Na (dim)
285 // index 11: d_VDDR (dim)
286 // index 12: d_kv11 (dim)
287 // index 13: f_Ltype (dim)
288 // index 14: f_Na (dim)
289 // index 15: f_VDDR (dim)
290 // index 16: f_ca_Ltype (dim)
291 // index 17: f_kv11 (dim)
292
293 /* ----------------- */
294 /* Membrane currents */
295 /* ----------------- */
296
297 double E_Ca = 0.5*RToF*log(Ca_o/rY[1]);
298
299 /* --- INa --- */
300 double d_inf_Na = 1.0/(1.0+exp((rY[0]+47.0)/-4.8));
301 double f_inf_Na = 1.0/(1.0+exp((rY[0]+78.0)/7.0));
302 double I_Na = G_max_Na*rY[14]*rY[10]*(rY[0]-E_Na);
303
304 /* --- ILtype --- */
305 double d_inf_Ltype = 1.0/(1.0+exp((rY[0]+17.0)/-4.3));
306 double f_inf_Ltype = 1.0/(1.0+exp((rY[0]+43.0)/8.9));
307 double f_ca_inf_Ltype = 1.0-1.0/(1.0+exp((rY[1]-0.0001-0.000214)/-0.0000131));
308 double I_Ltype = G_max_Ltype*rY[13]*rY[8]*rY[16]*(rY[0]-E_Ca);
309
310 /* --- IVDDR --- */
311 double d_inf_VDDR = 1.0/(1.0+exp((rY[0]+26.0)/-6.0));
312 double f_inf_VDDR = 1.0/(1.0+exp((rY[0]+66.0)/6.0));
313 double I_VDDR = G_max_VDDR*rY[15]*rY[11]*(rY[0]-E_Ca);
314
315 /* --- IKv1.1 --- */
316 double d_inf_kv11 = 1.0/(1.0+exp((rY[0]+25.0)/-7.7));
317 double f_inf_kv11 = 0.5+0.5/(1.0+exp((rY[0]+44.8)/4.4));
318 double I_kv11 = mScaleFactorCarbonMonoxide*G_max_kv11*rY[17]*rY[12]*(rY[0]-E_K);
319
320 /* --- IERG --- */
321 double d_inf_ERG = 0.2+0.8/(1.0+exp((rY[0]+20.0)/-1.8));
322 double I_ERG = mScaleFactorCarbonMonoxide*G_max_ERG*rY[7]*(rY[0]-E_K);
323
324 /* --- IBK --- */
325 //LUT d_BK = 1.0/(1.0+exp((rY[0]/-17.0)-2.0*log(rY[1]/0.001)));
326 double d_BK = 1.0/(1.0+((exp(rY[0]/-17.0))/((rY[1]/0.001)*(rY[1]/0.001))));
327 double I_BK = (G_max_BK+T_correction_BK)*d_BK*(rY[0]-E_K);
328
329 /* --- IKb --- */
330 double I_bk = mScaleFactorCarbonMonoxide*G_max_bk*(rY[0]-E_K);
331
332 /* --- ICaCL --- */
333 double tmp1 = 0.00014/rY[1];
334 double d_inf_CaCl = 1.0/(1.0+(tmp1*tmp1*tmp1));
335 double I_CaCl = G_max_CaCl*rY[6]*(rY[0]-E_Cl);
336
337 /* --- INSCC --- */
338 double d_inf_NSCC = 1.0/(1.0+pow(0.0000745/rY[3], -85.0));
339 double I_NSCC = G_max_NSCC*rY[9]*(rY[0]-E_NSCC);
340
341 /* --- JpmCa --- */
342 double J_PMCA = J_max_PMCA*1.0/(1.0+(0.000298/rY[1]));
343
344 /* ----------------- */
345 /* ER fluxes */
346 /* ----------------- */
347
348 //tmp1 = IP3/(IP3+d_IP3);
350 double tmp2 = rY[3]/(rY[3]+d_ACT);
351 double J_ERout = (Jmax_IP3*tmp1*tmp1*tmp1*tmp2*tmp2*tmp2*rY[5]*rY[5]*rY[5]+J_ERleak)*(rY[2]-rY[3]);
352 double J_SERCA = mScaleFactorSerca*Jmax_serca*rY[3]*rY[3]/(k_serca*k_serca+rY[3]*rY[3]);
353
354 /* ----------------- */
355 /* Mito fluxes */
356 /* ----------------- */
357
358 /* Uniporter */
359 tmp1 = 1.0+rY[3]/K_trans;
360 double MWC = conc*(rY[3]/K_trans)*tmp1*tmp1*tmp1/(tmp1*tmp1*tmp1*tmp1+L/pow(1.0+rY[3]/K_act, na));
361 double J_uni = Jmax_uni*(MWC-rY[4]*e2FoRTdPsiMdPsiS)*2.0*FoRT*(deltaPsi-deltaPsi_star)/(1.0-e2FoRTdPsiMdPsiS);
362
363 /* NaCa Exchanger */
364 double J_NaCa = Jmax_NaCa*ebFoRTdPsiMdPsiS/((1.0+K_Na*K_Na/(Na_i*Na_i))*(1.0+K_Ca/rY[4]));
365
366 /* ----------------- */
367 /* Cyto fluxes */
368 /* ----------------- */
369
370 double J_leak = J_max_leak*(rY[3]-rY[1]); /* P.U.->Cai */
371
372 /* ----------------- */
373 /* Entrainment */
374 /* ----------------- */
375
376 double E_Ca_PU = 0.5*RToF*log(Ca_o/rY[3]);
377 double I_VDDR_PU = G_max_VDDR*rY[11]*rY[15]*(rY[0]-E_Ca_PU);
378 //J_PMCA_PU = J_max_PMCA_PU*1.0/(1.0+exp(-(rY[3]-0.0001)/0.000015));
379 double J_PMCA_PU = J_max_PMCA_PU*1.0/(1.0+exp(-(rY[3]-0.0001)/0.000015));
380
381 double i_stim = GetStimulus(time);
382
383 /* -------------------- */
384 /* Resting Membrane, CO */
385 /* -------------------- */
386
387 //tmp1 = 2.8*spatVar[1]-0.1;
388 //I_kv11 = I_kv11*tmp1;
389 //I_ERG = I_ERG*tmp1;
390 //I_bk = I_bk*tmp1;
391 double voltage_derivative;
393 {
394 voltage_derivative = 0.0;
395 }
396 else
397 {
398 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));
399 assert(!std::isnan(voltage_derivative));
400 }
401
402 rDY[0] = voltage_derivative;/* Vm */
403 rDY[1] = fc*((-I_Ltype-I_VDDR)*Asurf/(2.0*F*V_cyto)+J_leak-J_PMCA);
404 rDY[2] = fe*(J_SERCA-J_ERout);
405 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);
406 rDY[3]-= fc*(((mFractionOfVDDRInPU*I_VDDR_PU*Asurf)/(2.0*F*V_PU))+J_PMCA_PU); // *** new, 4% IVDDR ***
407 rDY[4] = fm*(J_uni-J_NaCa);
408 rDY[5] = 1.0*(d_INH-rY[5]*(rY[3]+d_INH))/tauh;
409 rDY[6] = (d_inf_CaCl-rY[6])/tau_d_CaCl;
410 rDY[7] = (d_inf_ERG-rY[7])/tau_d_ERG;
411 rDY[8] = (d_inf_Ltype-rY[8])/tau_d_Ltype;
412 rDY[9] = (d_inf_NSCC-rY[9])/tau_d_NSCC;
413 rDY[10] = (d_inf_Na-rY[10])/tau_d_Na;
414 rDY[11] = (d_inf_VDDR-rY[11])/tau_d_VDDR;
415 rDY[12] = (d_inf_kv11-rY[12])/tau_d_kv11;
416 rDY[13] = (f_inf_Ltype-rY[13])/tau_f_Ltype;
417 rDY[14] = (f_inf_Na-rY[14])/tau_f_Na;
418 rDY[15] = (f_inf_VDDR-rY[15])/tau_f_VDDR;
419 rDY[16] = (f_ca_inf_Ltype-rY[16])/tau_f_ca_Ltype;
420 rDY[17] = (f_inf_kv11-rY[17])/tau_f_kv11;
421 }
422
423template<>
425{
426
427 this->mSystemName = "ICC_model_Martincode";
428
429 this->mVariableNames.push_back("Vm");
430 this->mVariableUnits.push_back("mV");
431 this->mInitialConditions.push_back(-67.53988); // Vm (mV);
432
433 this->mVariableNames.push_back("Ca_i");
434 this->mVariableUnits.push_back("mM");
435 this->mInitialConditions.push_back(0.00001); // Ca_i (mM));
436
437 this->mVariableNames.push_back("Ca_ER");
438 this->mVariableUnits.push_back("mM");
439 this->mInitialConditions.push_back(0.00695); // Ca_ER (mM));
440
441 this->mVariableNames.push_back("Ca_PU");
442 this->mVariableUnits.push_back("mM");
443 this->mInitialConditions.push_back(0.000095); // Ca_PU (mM));
444
445 this->mVariableNames.push_back("Ca_m");
446 this->mVariableUnits.push_back("mM");
447 this->mInitialConditions.push_back(0.000138); // Ca_m (mM));
448
449 this->mVariableNames.push_back("h");
450 this->mVariableUnits.push_back("dimensionless");
451 this->mInitialConditions.push_back(0.939443); // h (dim));
452
453 this->mVariableNames.push_back("d_CaCl");
454 this->mVariableUnits.push_back("dimensionless");
455 this->mInitialConditions.push_back(0.00038); // d_CaCl (dim));
456
457 this->mVariableNames.push_back("d_ERG");
458 this->mVariableUnits.push_back("dimensionless");
459 this->mInitialConditions.push_back(0.2); // d_ERG (dim));
460
461 this->mVariableNames.push_back("d_Ltype");
462 this->mVariableUnits.push_back("dimensionless");
463 this->mInitialConditions.push_back(0.000008); // d_Ltype (dim));
464
465 this->mVariableNames.push_back("d_NSCC");
466 this->mVariableUnits.push_back("dimensionless");
467 this->mInitialConditions.push_back(0.0); // d_NSCC (dim));
468
469 this->mVariableNames.push_back("d_Na");
470 this->mVariableUnits.push_back("dimensionless");
471 this->mInitialConditions.push_back(0.013778); // d_Na (dim));
472
473 this->mVariableNames.push_back("d_VDDR");
474 this->mVariableUnits.push_back("dimensionless");
475 this->mInitialConditions.push_back(0.00099); // d_VDDR (dim));
476
477 this->mVariableNames.push_back("d_kv11");
478 this->mVariableUnits.push_back("dimensionless");
479 this->mInitialConditions.push_back(0.003992); // d_kv11 (dim));
480
481 this->mVariableNames.push_back("f_Ltype");
482 this->mVariableUnits.push_back("dimensionless");
483 this->mInitialConditions.push_back( 0.940072); // f_Ltype (dim));
484
485 this->mVariableNames.push_back("f_Na");
486 this->mVariableUnits.push_back("dimensionless");
487 this->mInitialConditions.push_back(0.182426); // f_Na (dim));
488
489 this->mVariableNames.push_back("f_VDDR");
490 this->mVariableUnits.push_back("dimensionless");
491 this->mInitialConditions.push_back(0.562177); // f_VDDR (dim));
492
493 this->mVariableNames.push_back("f_ca_Ltype");
494 this->mVariableUnits.push_back("dimensionless");
495 this->mInitialConditions.push_back(1.0); // f_ca_Ltype (dim));
496
497 this->mVariableNames.push_back("f_kv11");
498 this->mVariableUnits.push_back("dimensionless");
499 this->mInitialConditions.push_back(0.997143); // f_kv11 (dim));
500
501 this->mInitialised = true;
502}
503
504
505// Serialization for Boost >= 1.36
#define CHASTE_CLASS_EXPORT(T)
boost::shared_ptr< AbstractOdeSystemInformation > mpSystemInfo
void SetCarbonMonoxideScaleFactor(double scaleFactor)
double GetIIonic(const std::vector< double > *pStateVariables=NULL)
void SetIP3Concentration(double concentration)
void SetSercaPumpScaleFactor(double scaleFactor)
CorriasBuistICCModified(boost::shared_ptr< AbstractIvpOdeSolver > pSolver, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
void SetFractionOfVDDRInPU(double fraction)
void EvaluateYDerivatives(double time, const std::vector< double > &rY, std::vector< double > &rDY)
double GetCapacitance() const
static HeartConfig * Instance()
static boost::shared_ptr< OdeSystemInformation< ODE_SYSTEM > > Instance()