Nektar++
PanditGilesDemir03.cpp
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 // File PanditGilesDemir03.cpp
4 //
5 // For more information, please see: http://www.nektar.info
6 //
7 // The MIT License
8 //
9 // Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10 // Department of Aeronautics, Imperial College London (UK), and Scientific
11 // Computing and Imaging Institute, University of Utah (USA).
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining a
14 // copy of this software and associated documentation files (the "Software"),
15 // to deal in the Software without restriction, including without limitation
16 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
17 // and/or sell copies of the Software, and to permit persons to whom the
18 // Software is furnished to do so, subject to the following conditions:
19 //
20 // The above copyright notice and this permission notice shall be included
21 // in all copies or substantial portions of the Software.
22 //
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29 // DEALINGS IN THE SOFTWARE.
30 //
31 // Description: Pandit-Giles-Demir 2003 cell model
32 //
33 ///////////////////////////////////////////////////////////////////////////////
34 
37 #include <iostream>
38 #include <string>
39 namespace Nektar
40 {
43  "PanditGilesDemir03", PanditGilesDemir03::create,
44  "Pandit-Giles-Demir 2003 cell model.");
45 
46 /**
47  *
48  */
50  const LibUtilities::SessionReaderSharedPtr &pSession, const int nq)
51  : CellModel(pSession, nq)
52 {
53  m_nq = nq;
54 }
55 
57  const Array<OneD, const Array<OneD, NekDouble>> &inarray,
58  Array<OneD, Array<OneD, NekDouble>> &outarray, const NekDouble time)
59 {
60  int nvariables = inarray.size();
61  int nq = m_nq;
62  for (unsigned int i = 0; i < nq; ++i)
63  {
64  // Inputs:
65  // Time units: millisecond
66  NekDouble var_chaste_interface__membrane__V = inarray[0][i];
67  // Units: millivolt; Initial value: -80.50146
68  NekDouble var_chaste_interface__sodium_current_m_gate__m =
69  inarray[2][i];
70  // Units: dimensionless; Initial value: 0.004164108
71  NekDouble var_chaste_interface__sodium_current_h_gate__h =
72  inarray[3][i];
73  // Units: dimensionless; Initial value: 0.6735613
74  NekDouble var_chaste_interface__sodium_current_j_gate__j =
75  inarray[4][i];
76  // Units: dimensionless; Initial value: 0.6729362
77  NekDouble var_chaste_interface__L_type_Ca_channel_d_gate__d =
78  inarray[5][i];
79  // Units: dimensionless; Initial value: 0.000002171081
80  NekDouble var_chaste_interface__L_type_Ca_channel_f_11_gate__f_11 =
81  inarray[6][i];
82  // Units: dimensionless; Initial value: 0.9999529
83  NekDouble var_chaste_interface__L_type_Ca_channel_f_12_gate__f_12 =
84  inarray[7][i];
85  // Units: dimensionless; Initial value: 0.9999529
86  NekDouble
87  var_chaste_interface__L_type_Ca_channel_Ca_inact_gate__Ca_inact =
88  inarray[8][i];
89  // Units: dimensionless; Initial value: 0.9913102
90  NekDouble
91  var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r =
92  inarray[9][i];
93  // Units: dimensionless; Initial value: 0.002191519
94  NekDouble
95  var_chaste_interface__Ca_independent_transient_outward_K_current_s_gate__s =
96  inarray[10][i];
97  // Units: dimensionless; Initial value: 0.9842542
98  NekDouble
99  var_chaste_interface__Ca_independent_transient_outward_K_current_s_slow_gate__s_slow =
100  inarray[11][i];
101  // Units: dimensionless; Initial value: 0.6421196
102  NekDouble
103  var_chaste_interface__steady_state_outward_K_current_r_ss_gate__r_ss =
104  inarray[12][i];
105  // Units: dimensionless; Initial value: 0.002907171
106  NekDouble
107  var_chaste_interface__steady_state_outward_K_current_s_ss_gate__s_ss =
108  inarray[13][i];
109  // Units: dimensionless; Initial value: 0.3142767
110  NekDouble
111  var_chaste_interface__hyperpolarisation_activated_current_y_gate__y =
112  inarray[14][i];
113  // Units: dimensionless; Initial value: 0.003578708
114  NekDouble var_chaste_interface__SR_Ca_release_channel__P_O1 =
115  inarray[15][i];
116  // Units: dimensionless; Initial value: 0.0004327548
117  NekDouble var_chaste_interface__SR_Ca_release_channel__P_O2 =
118  inarray[16][i];
119  // Units: dimensionless; Initial value: 0.000000000606254
120  NekDouble var_chaste_interface__SR_Ca_release_channel__P_C1 =
121  inarray[17][i];
122  // Units: dimensionless; Initial value: 0.6348229
123  NekDouble var_chaste_interface__SR_Ca_release_channel__P_C2 =
124  inarray[18][i];
125  // Units: dimensionless; Initial value: 0.3647471
126  NekDouble
127  var_chaste_interface__intracellular_and_SR_Ca_fluxes__HTRPNCa =
128  inarray[19][i];
129  // Units: millimolar; Initial value: 1.394301e-1
130  NekDouble
131  var_chaste_interface__intracellular_and_SR_Ca_fluxes__LTRPNCa =
132  inarray[20][i];
133  // Units: millimolar; Initial value: 5.1619e-3
134  NekDouble var_chaste_interface__intracellular_ion_concentrations__Na_i =
135  inarray[21][i];
136  // Units: millimolar; Initial value: 10.73519
137  NekDouble var_chaste_interface__intracellular_ion_concentrations__Ca_i =
138  inarray[22][i];
139  // Units: millimolar; Initial value: 0.00007901351
140  NekDouble var_chaste_interface__intracellular_ion_concentrations__K_i =
141  inarray[23][i];
142  // Units: millimolar; Initial value: 139.2751
143  NekDouble
144  var_chaste_interface__intracellular_ion_concentrations__Ca_ss =
145  inarray[24][i];
146  // Units: millimolar; Initial value: 0.00008737212
147  NekDouble
148  var_chaste_interface__intracellular_ion_concentrations__Ca_JSR =
149  inarray[25][i];
150  // Units: millimolar; Initial value: 0.06607948
151  NekDouble
152  var_chaste_interface__intracellular_ion_concentrations__Ca_NSR =
153  inarray[26][i];
154  // Units: millimolar; Initial value: 0.06600742
155 
156  // Mathematics
157  NekDouble d_dt_chaste_interface__membrane__V;
158  const NekDouble var_membrane__R = 8314.5; // millijoule_per_mole_kelvin
159  const NekDouble var_membrane__T = 295.0; // kelvin
160  const NekDouble var_membrane__F = 96487.0; // coulomb_per_mole
161  const NekDouble var_sodium_current__F =
162  var_membrane__F; // coulomb_per_mole
163  const NekDouble var_standard_ionic_concentrations__Na_o =
164  140.0; // millimolar
165  const NekDouble var_sodium_current__Na_o =
166  var_standard_ionic_concentrations__Na_o; // millimolar
167  const NekDouble var_sodium_current__T = var_membrane__T; // kelvin
168  const NekDouble var_sodium_current__R =
169  var_membrane__R; // millijoule_per_mole_kelvin
170  const NekDouble var_sodium_current__Na_i =
171  var_chaste_interface__intracellular_ion_concentrations__Na_i; // millimolar
172  const NekDouble var_sodium_current__E_Na =
173  ((var_sodium_current__R * var_sodium_current__T) /
174  var_sodium_current__F) *
175  log(var_sodium_current__Na_o /
176  var_sodium_current__Na_i); // millivolt
177  const NekDouble var_sodium_current__m =
178  var_chaste_interface__sodium_current_m_gate__m; // dimensionless
179  const NekDouble var_sodium_current__j =
180  var_chaste_interface__sodium_current_j_gate__j; // dimensionless
181  const NekDouble var_sodium_current__h =
182  var_chaste_interface__sodium_current_h_gate__h; // dimensionless
183  const NekDouble var_sodium_current__V =
184  var_chaste_interface__membrane__V; // millivolt
185  const NekDouble var_sodium_current__g_Na = 1.064; // microS
186  const NekDouble var_sodium_current__i_Na =
187  var_sodium_current__g_Na * pow(var_sodium_current__m, 3.0) *
188  var_sodium_current__h * var_sodium_current__j *
189  (var_sodium_current__V - var_sodium_current__E_Na); // nanoA
190  const NekDouble var_L_type_Ca_channel__d =
191  var_chaste_interface__L_type_Ca_channel_d_gate__d; // dimensionless
192  const NekDouble var_L_type_Ca_channel__E_Ca_L = 65.0; // millivolt
193  const NekDouble var_L_type_Ca_channel__g_Ca_L_normal = 0.0341; // microS
194  const NekDouble var_membrane__Diabetes = 0.0; // dimensionless
195  const NekDouble var_L_type_Ca_channel__Diabetes =
196  var_membrane__Diabetes; // dimensionless
197  const NekDouble var_L_type_Ca_channel__g_Ca_L =
198  (var_L_type_Ca_channel__Diabetes == 0.0)
199  ? var_L_type_Ca_channel__g_Ca_L_normal
200  : (0.76 * var_L_type_Ca_channel__g_Ca_L_normal); // microS
201  const NekDouble var_L_type_Ca_channel__f_12 =
202  var_chaste_interface__L_type_Ca_channel_f_12_gate__f_12; // dimensionless
203  const NekDouble var_L_type_Ca_channel__f_11 =
204  var_chaste_interface__L_type_Ca_channel_f_11_gate__f_11; // dimensionless
205  const NekDouble var_L_type_Ca_channel__V =
206  var_chaste_interface__membrane__V; // millivolt
207  const NekDouble var_L_type_Ca_channel__Ca_inact =
208  var_chaste_interface__L_type_Ca_channel_Ca_inact_gate__Ca_inact; // dimensionless
209  const NekDouble var_L_type_Ca_channel__i_Ca_L =
210  var_L_type_Ca_channel__g_Ca_L * var_L_type_Ca_channel__d *
211  (((0.9 + (var_L_type_Ca_channel__Ca_inact / 10.0)) *
212  var_L_type_Ca_channel__f_11) +
213  ((0.1 - (var_L_type_Ca_channel__Ca_inact / 10.0)) *
214  var_L_type_Ca_channel__f_12)) *
215  (var_L_type_Ca_channel__V - var_L_type_Ca_channel__E_Ca_L); // nanoA
216  const NekDouble
217  var_Ca_independent_transient_outward_K_current__Diabetes =
218  var_membrane__Diabetes; // dimensionless
219  const NekDouble var_Ca_independent_transient_outward_K_current__b =
220  (var_Ca_independent_transient_outward_K_current__Diabetes == 0.0)
221  ? 0.114
222  : 0.31; // dimensionless
223  const NekDouble var_Ca_independent_transient_outward_K_current__a =
224  1.0 -
225  var_Ca_independent_transient_outward_K_current__b; // dimensionless
226  const NekDouble
227  var_Ca_independent_transient_outward_K_current__g_t_normal =
228  0.04375; // microS
229  const NekDouble var_Ca_independent_transient_outward_K_current__g_t =
230  (var_Ca_independent_transient_outward_K_current__Diabetes == 0.0)
231  ? var_Ca_independent_transient_outward_K_current__g_t_normal
232  : (0.68 *
233  var_Ca_independent_transient_outward_K_current__g_t_normal); // microS
234  const NekDouble var_Ca_independent_transient_outward_K_current__V =
235  var_chaste_interface__membrane__V; // millivolt
236  const NekDouble var_Ca_independent_transient_outward_K_current__r =
237  var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; // dimensionless
238  const NekDouble var_Ca_independent_transient_outward_K_current__s =
239  var_chaste_interface__Ca_independent_transient_outward_K_current_s_gate__s; // dimensionless
240  const NekDouble var_Ca_independent_transient_outward_K_current__F =
241  var_membrane__F; // coulomb_per_mole
242  const NekDouble var_Ca_independent_transient_outward_K_current__T =
243  var_membrane__T; // kelvin
244  const NekDouble var_Ca_independent_transient_outward_K_current__K_i =
245  var_chaste_interface__intracellular_ion_concentrations__K_i; // millimolar
246  const NekDouble var_Ca_independent_transient_outward_K_current__R =
247  var_membrane__R; // millijoule_per_mole_kelvin
248  const NekDouble var_standard_ionic_concentrations__K_o =
249  5.4; // millimolar
250  const NekDouble var_Ca_independent_transient_outward_K_current__K_o =
251  var_standard_ionic_concentrations__K_o; // millimolar
252  const NekDouble var_Ca_independent_transient_outward_K_current__E_K =
253  ((var_Ca_independent_transient_outward_K_current__R *
254  var_Ca_independent_transient_outward_K_current__T) /
255  var_Ca_independent_transient_outward_K_current__F) *
256  log(var_Ca_independent_transient_outward_K_current__K_o /
257  var_Ca_independent_transient_outward_K_current__K_i); // millivolt
258  const NekDouble var_Ca_independent_transient_outward_K_current__s_slow =
259  var_chaste_interface__Ca_independent_transient_outward_K_current_s_slow_gate__s_slow; // dimensionless
260  const NekDouble var_Ca_independent_transient_outward_K_current__i_t =
261  var_Ca_independent_transient_outward_K_current__g_t *
262  var_Ca_independent_transient_outward_K_current__r *
263  ((var_Ca_independent_transient_outward_K_current__a *
264  var_Ca_independent_transient_outward_K_current__s) +
265  (var_Ca_independent_transient_outward_K_current__b *
266  var_Ca_independent_transient_outward_K_current__s_slow)) *
267  (var_Ca_independent_transient_outward_K_current__V -
268  var_Ca_independent_transient_outward_K_current__E_K); // nanoA
269  const NekDouble var_steady_state_outward_K_current__V =
270  var_chaste_interface__membrane__V; // millivolt
271  const NekDouble var_steady_state_outward_K_current__s_ss =
272  var_chaste_interface__steady_state_outward_K_current_s_ss_gate__s_ss; // dimensionless
273  const NekDouble var_steady_state_outward_K_current__E_K =
274  var_Ca_independent_transient_outward_K_current__E_K; // millivolt
275  const NekDouble var_steady_state_outward_K_current__g_ss_normal =
276  0.0077; // microS
277  const NekDouble var_steady_state_outward_K_current__Diabetes =
278  var_membrane__Diabetes; // dimensionless
279  const NekDouble var_steady_state_outward_K_current__g_ss =
280  (var_steady_state_outward_K_current__Diabetes == 0.0)
281  ? var_steady_state_outward_K_current__g_ss_normal
282  : (0.77 *
283  var_steady_state_outward_K_current__g_ss_normal); // microS
284  const NekDouble var_steady_state_outward_K_current__r_ss =
285  var_chaste_interface__steady_state_outward_K_current_r_ss_gate__r_ss; // dimensionless
286  const NekDouble var_steady_state_outward_K_current__i_ss =
287  var_steady_state_outward_K_current__g_ss *
288  var_steady_state_outward_K_current__r_ss *
289  var_steady_state_outward_K_current__s_ss *
290  (var_steady_state_outward_K_current__V -
291  var_steady_state_outward_K_current__E_K); // nanoA
292  const NekDouble var_hyperpolarisation_activated_current__f_Na =
293  0.2; // dimensionless
294  const NekDouble var_hyperpolarisation_activated_current__E_Na =
295  var_sodium_current__E_Na; // millivolt
296  const NekDouble var_hyperpolarisation_activated_current__y =
297  var_chaste_interface__hyperpolarisation_activated_current_y_gate__y; // dimensionless
298  const NekDouble var_hyperpolarisation_activated_current__V =
299  var_chaste_interface__membrane__V; // millivolt
300  const NekDouble var_hyperpolarisation_activated_current__g_f =
301  0.00145; // microS
302  const NekDouble var_hyperpolarisation_activated_current__i_f_Na =
303  var_hyperpolarisation_activated_current__g_f *
304  var_hyperpolarisation_activated_current__y *
305  var_hyperpolarisation_activated_current__f_Na *
306  (var_hyperpolarisation_activated_current__V -
307  var_hyperpolarisation_activated_current__E_Na); // nanoA
308  const NekDouble var_hyperpolarisation_activated_current__f_K =
309  1.0 -
310  var_hyperpolarisation_activated_current__f_Na; // dimensionless
311  const NekDouble var_hyperpolarisation_activated_current__E_K =
312  var_Ca_independent_transient_outward_K_current__E_K; // millivolt
313  const NekDouble var_hyperpolarisation_activated_current__i_f_K =
314  var_hyperpolarisation_activated_current__g_f *
315  var_hyperpolarisation_activated_current__y *
316  var_hyperpolarisation_activated_current__f_K *
317  (var_hyperpolarisation_activated_current__V -
318  var_hyperpolarisation_activated_current__E_K); // nanoA
319  const NekDouble var_inward_rectifier__T = var_membrane__T; // kelvin
320  const NekDouble var_inward_rectifier__V =
321  var_chaste_interface__membrane__V; // millivolt
322  const NekDouble var_inward_rectifier__g_K1 = 0.024; // microS
323  const NekDouble var_inward_rectifier__R =
324  var_membrane__R; // millijoule_per_mole_kelvin
325  const NekDouble var_inward_rectifier__K_o =
326  var_standard_ionic_concentrations__K_o; // millimolar
327  const NekDouble var_inward_rectifier__F =
328  var_membrane__F; // coulomb_per_mole
329  const NekDouble var_inward_rectifier__E_K =
330  var_Ca_independent_transient_outward_K_current__E_K; // millivolt
331  const NekDouble var_inward_rectifier__i_K1 =
332  ((((48.0 / (exp((var_inward_rectifier__V + 37.0) / 25.0) +
333  exp((var_inward_rectifier__V + 37.0) / (-25.0)))) +
334  10.0) *
335  0.0001) /
336  (1.0 + exp((var_inward_rectifier__V -
337  (var_inward_rectifier__E_K + 76.77)) /
338  (-17.0)))) +
339  ((var_inward_rectifier__g_K1 *
340  (var_inward_rectifier__V - (var_inward_rectifier__E_K + 1.73))) /
341  ((1.0 + exp((1.613 * var_inward_rectifier__F *
342  (var_inward_rectifier__V -
343  (var_inward_rectifier__E_K + 1.73))) /
344  (var_inward_rectifier__R * var_inward_rectifier__T))) *
345  (1.0 +
346  exp((var_inward_rectifier__K_o - 0.9988) / (-0.124))))); // nanoA
347  const NekDouble var_background_currents__R =
348  var_membrane__R; // millijoule_per_mole_kelvin
349  const NekDouble var_background_currents__Ca_i =
350  var_chaste_interface__intracellular_ion_concentrations__Ca_i; // millimolar
351  const NekDouble var_standard_ionic_concentrations__Ca_o =
352  1.2; // millimolar
353  const NekDouble var_background_currents__Ca_o =
354  var_standard_ionic_concentrations__Ca_o; // millimolar
355  const NekDouble var_background_currents__F =
356  var_membrane__F; // coulomb_per_mole
357  const NekDouble var_background_currents__T = var_membrane__T; // kelvin
358  const NekDouble var_background_currents__E_Ca =
359  ((0.5 * var_background_currents__R * var_background_currents__T) /
360  var_background_currents__F) *
361  log(var_background_currents__Ca_o /
362  var_background_currents__Ca_i); // millivolt
363  const NekDouble var_background_currents__V =
364  var_chaste_interface__membrane__V; // millivolt
365  const NekDouble var_background_currents__g_B_Ca_normal =
366  3.24e-05; // microS
367  const NekDouble var_background_currents__Diabetes =
368  var_membrane__Diabetes; // dimensionless
369  const NekDouble var_background_currents__g_B_Ca =
370  (var_background_currents__Diabetes == 0.0)
371  ? var_background_currents__g_B_Ca_normal
372  : (0.5 * var_background_currents__g_B_Ca_normal); // microS
373  const NekDouble var_background_currents__i_B_Ca =
374  var_background_currents__g_B_Ca *
375  (var_background_currents__V -
376  var_background_currents__E_Ca); // nanoA
377  const NekDouble var_background_currents__g_B_K = 0.000138; // microS
378  const NekDouble var_background_currents__E_K =
379  var_Ca_independent_transient_outward_K_current__E_K; // millivolt
380  const NekDouble var_background_currents__i_B_K =
381  var_background_currents__g_B_K *
382  (var_background_currents__V -
383  var_background_currents__E_K); // nanoA
384  const NekDouble var_background_currents__E_Na =
385  var_sodium_current__E_Na; // millivolt
386  const NekDouble var_background_currents__g_B_Na_normal =
387  8.015e-05; // microS
388  const NekDouble var_background_currents__g_B_Na =
389  (var_background_currents__Diabetes == 0.0)
390  ? var_background_currents__g_B_Na_normal
391  : (1.25 * var_background_currents__g_B_Na_normal); // microS
392  const NekDouble var_background_currents__i_B_Na =
393  var_background_currents__g_B_Na *
394  (var_background_currents__V -
395  var_background_currents__E_Na); // nanoA
396  const NekDouble var_sodium_potassium_pump__Na_o =
397  var_standard_ionic_concentrations__Na_o; // millimolar
398  const NekDouble var_sodium_potassium_pump__sigma =
399  (exp(var_sodium_potassium_pump__Na_o / 67.3) - 1.0) /
400  7.0; // dimensionless
401  const NekDouble var_sodium_potassium_pump__K_m_Na = 10.0; // millimolar
402  const NekDouble var_sodium_potassium_pump__K_m_K = 1.5; // millimolar
403  const NekDouble var_sodium_potassium_pump__V =
404  var_chaste_interface__membrane__V; // millivolt
405  const NekDouble var_sodium_potassium_pump__T =
406  var_membrane__T; // kelvin
407  const NekDouble var_sodium_potassium_pump__R =
408  var_membrane__R; // millijoule_per_mole_kelvin
409  const NekDouble var_sodium_potassium_pump__Na_i =
410  var_chaste_interface__intracellular_ion_concentrations__Na_i; // millimolar
411  const NekDouble var_sodium_potassium_pump__F =
412  var_membrane__F; // coulomb_per_mole
413  const NekDouble var_sodium_potassium_pump__i_NaK_max_normal =
414  0.08; // nanoA
415  const NekDouble var_sodium_potassium_pump__Diabetes =
416  var_membrane__Diabetes; // dimensionless
417  const NekDouble var_sodium_potassium_pump__i_NaK_max =
418  (var_sodium_potassium_pump__Diabetes == 0.0)
419  ? var_sodium_potassium_pump__i_NaK_max_normal
420  : (0.63 * var_sodium_potassium_pump__i_NaK_max_normal); // nanoA
421  const NekDouble var_sodium_potassium_pump__K_o =
422  var_standard_ionic_concentrations__K_o; // millimolar
423  const NekDouble var_sodium_potassium_pump__i_NaK =
424  (((var_sodium_potassium_pump__i_NaK_max /
425  (1.0 +
426  (0.1245 * exp(((-0.1) * var_sodium_potassium_pump__V *
427  var_sodium_potassium_pump__F) /
428  (var_sodium_potassium_pump__R *
429  var_sodium_potassium_pump__T))) +
430  (0.0365 * var_sodium_potassium_pump__sigma *
431  exp(((-var_sodium_potassium_pump__V) *
432  var_sodium_potassium_pump__F) /
433  (var_sodium_potassium_pump__R *
434  var_sodium_potassium_pump__T))))) *
435  var_sodium_potassium_pump__K_o) /
436  (var_sodium_potassium_pump__K_o +
437  var_sodium_potassium_pump__K_m_K)) /
438  (1.0 + pow(var_sodium_potassium_pump__K_m_Na /
439  var_sodium_potassium_pump__Na_i,
440  1.5)); // nanoA
441  const NekDouble var_Na_Ca_ion_exchanger_current__Na_o =
442  var_standard_ionic_concentrations__Na_o; // millimolar
443  const NekDouble var_Na_Ca_ion_exchanger_current__Na_i =
444  var_chaste_interface__intracellular_ion_concentrations__Na_i; // millimolar
445  const NekDouble var_Na_Ca_ion_exchanger_current__gamma_NaCa =
446  0.5; // dimensionless
447  const NekDouble var_Na_Ca_ion_exchanger_current__Ca_i =
448  var_chaste_interface__intracellular_ion_concentrations__Ca_i; // millimolar
449  const NekDouble var_Na_Ca_ion_exchanger_current__Ca_o =
450  var_standard_ionic_concentrations__Ca_o; // millimolar
451  const NekDouble var_Na_Ca_ion_exchanger_current__K_NaCa =
452  9.984e-06; // nanoA_millimolar_4
453  const NekDouble var_Na_Ca_ion_exchanger_current__d_NaCa =
454  0.0001; // millimolar_4
455  const NekDouble var_Na_Ca_ion_exchanger_current__V =
456  var_chaste_interface__membrane__V; // millivolt
457  const NekDouble var_Na_Ca_ion_exchanger_current__i_NaCa =
458  (var_Na_Ca_ion_exchanger_current__K_NaCa *
459  ((pow(var_Na_Ca_ion_exchanger_current__Na_i, 3.0) *
460  var_Na_Ca_ion_exchanger_current__Ca_o *
461  exp(0.03743 * var_Na_Ca_ion_exchanger_current__V *
462  var_Na_Ca_ion_exchanger_current__gamma_NaCa)) -
463  (pow(var_Na_Ca_ion_exchanger_current__Na_o, 3.0) *
464  var_Na_Ca_ion_exchanger_current__Ca_i *
465  exp(0.03743 * var_Na_Ca_ion_exchanger_current__V *
466  (var_Na_Ca_ion_exchanger_current__gamma_NaCa - 1.0))))) /
467  (1.0 +
468  (var_Na_Ca_ion_exchanger_current__d_NaCa *
469  ((var_Na_Ca_ion_exchanger_current__Ca_i *
470  pow(var_Na_Ca_ion_exchanger_current__Na_o, 3.0)) +
471  (var_Na_Ca_ion_exchanger_current__Ca_o *
472  pow(var_Na_Ca_ion_exchanger_current__Na_i, 3.0))))); // nanoA
473  const NekDouble var_sarcolemmal_calcium_pump_current__Ca_i =
474  var_chaste_interface__intracellular_ion_concentrations__Ca_i; // millimolar
475  const NekDouble var_sarcolemmal_calcium_pump_current__i_Ca_P_max =
476  0.004; // nanoA
477  const NekDouble var_sarcolemmal_calcium_pump_current__i_Ca_P =
478  (var_sarcolemmal_calcium_pump_current__i_Ca_P_max *
479  var_sarcolemmal_calcium_pump_current__Ca_i) /
480  (var_sarcolemmal_calcium_pump_current__Ca_i + 0.0004); // nanoA
481  const NekDouble var_sodium_current_m_gate__V =
482  var_sodium_current__V; // millivolt
483  const NekDouble var_sodium_current_m_gate__m_infinity =
484  1.0 / (1.0 + exp((var_sodium_current_m_gate__V + 45.0) /
485  (-6.5))); // dimensionless
486  const NekDouble var_sodium_current_m_gate__tau_m =
487  0.00136 /
488  (((0.32 * (var_sodium_current_m_gate__V + 47.13)) /
489  (1.0 - exp((-0.1) * (var_sodium_current_m_gate__V + 47.13)))) +
490  (0.08 * exp((-var_sodium_current_m_gate__V) / 11.0))); // second
491  const NekDouble var_sodium_current_m_gate__m =
492  var_sodium_current__m; // dimensionless
493  const NekDouble var_sodium_current_m_gate__d_m_d_environment__time =
494  (var_sodium_current_m_gate__m_infinity -
495  var_sodium_current_m_gate__m) /
496  var_sodium_current_m_gate__tau_m; // per_second
497  const NekDouble
498  var_sodium_current__sodium_current_m_gate__d_m_d_environment__time =
499  var_sodium_current_m_gate__d_m_d_environment__time; // per_second
500  const NekDouble var_sodium_current_h_gate__V =
501  var_sodium_current__V; // millivolt
502  const NekDouble var_sodium_current_h_gate__h_infinity =
503  1.0 / (1.0 + exp((var_sodium_current_h_gate__V + 76.1) /
504  6.07)); // dimensionless
505  const NekDouble var_sodium_current_h_gate__h =
506  var_sodium_current__h; // dimensionless
507  const NekDouble var_sodium_current_h_gate__tau_h =
508  (var_sodium_current_h_gate__V >= (-40.0))
509  ? (0.0004537 *
510  (1.0 +
511  exp((-(var_sodium_current_h_gate__V + 10.66)) / 11.1)))
512  : (0.00349 /
513  ((0.135 *
514  exp((-(var_sodium_current_h_gate__V + 80.0)) / 6.8)) +
515  (3.56 * exp(0.079 * var_sodium_current_h_gate__V)) +
516  (310000.0 *
517  exp(0.35 * var_sodium_current_h_gate__V)))); // second
518  const NekDouble var_sodium_current_h_gate__d_h_d_environment__time =
519  (var_sodium_current_h_gate__h_infinity -
520  var_sodium_current_h_gate__h) /
521  var_sodium_current_h_gate__tau_h; // per_second
522  const NekDouble
523  var_sodium_current__sodium_current_h_gate__d_h_d_environment__time =
524  var_sodium_current_h_gate__d_h_d_environment__time; // per_second
525  const NekDouble var_sodium_current_j_gate__V =
526  var_sodium_current__V; // millivolt
527  const NekDouble var_sodium_current_j_gate__j_infinity =
528  1.0 / (1.0 + exp((var_sodium_current_j_gate__V + 76.1) /
529  6.07)); // dimensionless
530  const NekDouble var_sodium_current_j_gate__j =
531  var_sodium_current__j; // dimensionless
532  const NekDouble var_sodium_current_j_gate__tau_j =
533  (var_sodium_current_j_gate__V >= (-40.0))
534  ? ((0.01163 *
535  (1.0 +
536  exp((-0.1) * (var_sodium_current_j_gate__V + 32.0)))) /
537  exp((-2.535e-07) * var_sodium_current_j_gate__V))
538  : (0.00349 /
539  ((((var_sodium_current_j_gate__V + 37.78) /
540  (1.0 +
541  exp(0.311 * (var_sodium_current_j_gate__V + 79.23)))) *
542  (((-127140.0) *
543  exp(0.2444 * var_sodium_current_j_gate__V)) -
544  (3.474e-05 *
545  exp((-0.04391) * var_sodium_current_j_gate__V)))) +
546  ((0.1212 * exp((-0.01052) * var_sodium_current_j_gate__V)) /
547  (1.0 + exp((-0.1378) * (var_sodium_current_j_gate__V +
548  40.14)))))); // second
549  const NekDouble var_sodium_current_j_gate__d_j_d_environment__time =
550  (var_sodium_current_j_gate__j_infinity -
551  var_sodium_current_j_gate__j) /
552  var_sodium_current_j_gate__tau_j; // per_second
553  const NekDouble
554  var_sodium_current__sodium_current_j_gate__d_j_d_environment__time =
555  var_sodium_current_j_gate__d_j_d_environment__time; // per_second
556  const NekDouble var_L_type_Ca_channel__Ca_ss =
557  var_chaste_interface__intracellular_ion_concentrations__Ca_ss; // millimolar
558  const NekDouble var_L_type_Ca_channel_d_gate__d =
559  var_L_type_Ca_channel__d; // dimensionless
560  const NekDouble var_L_type_Ca_channel_d_gate__V =
561  var_L_type_Ca_channel__V; // millivolt
562  const NekDouble var_L_type_Ca_channel_d_gate__d_infinity =
563  1.0 / (1.0 + exp((var_L_type_Ca_channel_d_gate__V + 15.3) /
564  (-5.0))); // dimensionless
565  const NekDouble var_L_type_Ca_channel_d_gate__tau_d =
566  (0.00305 *
567  exp((-0.0045) * pow(var_L_type_Ca_channel_d_gate__V + 7.0, 2.0))) +
568  (0.00105 *
569  exp((-0.002) * pow(var_L_type_Ca_channel_d_gate__V - 18.0, 2.0))) +
570  0.00025; // second
571  const NekDouble var_L_type_Ca_channel_d_gate__d_d_d_environment__time =
572  (var_L_type_Ca_channel_d_gate__d_infinity -
573  var_L_type_Ca_channel_d_gate__d) /
574  var_L_type_Ca_channel_d_gate__tau_d; // per_second
575  const NekDouble
576  var_L_type_Ca_channel__L_type_Ca_channel_d_gate__d_d_d_environment__time =
577  var_L_type_Ca_channel_d_gate__d_d_d_environment__time; // per_second
578  const NekDouble var_L_type_Ca_channel_f_11_gate__f_11 =
579  var_L_type_Ca_channel__f_11; // dimensionless
580  const NekDouble var_L_type_Ca_channel_f_11_gate__Diabetes =
581  var_L_type_Ca_channel__Diabetes; // dimensionless
582  const NekDouble var_L_type_Ca_channel_f_11_gate__V =
583  var_L_type_Ca_channel__V; // millivolt
584  const NekDouble var_L_type_Ca_channel_f_11_gate__tau_f_11 =
585  (var_L_type_Ca_channel_f_11_gate__Diabetes == 0.0)
586  ? ((0.105 *
587  exp(-pow((var_L_type_Ca_channel_f_11_gate__V + 45.0) / 12.0,
588  2.0))) +
589  (0.04 /
590  (1.0 + exp(((-var_L_type_Ca_channel_f_11_gate__V) + 25.0) /
591  25.0))) +
592  (0.015 /
593  (1.0 +
594  exp((var_L_type_Ca_channel_f_11_gate__V + 75.0) / 25.0))) +
595  0.0017)
596  : ((0.9 * 0.105 *
597  exp(-pow((var_L_type_Ca_channel_f_11_gate__V + 45.0) / 12.0,
598  2.0))) +
599  (0.04 /
600  (1.0 + exp(((-var_L_type_Ca_channel_f_11_gate__V) + 25.0) /
601  25.0))) +
602  (0.015 /
603  (1.0 +
604  exp((var_L_type_Ca_channel_f_11_gate__V + 75.0) / 25.0))) +
605  0.0017); // second
606  const NekDouble var_L_type_Ca_channel_f_11_gate__f_11_infinity =
607  1.0 / (1.0 + exp((var_L_type_Ca_channel_f_11_gate__V + 26.7) /
608  5.4)); // dimensionless
609  const NekDouble
610  var_L_type_Ca_channel_f_11_gate__d_f_11_d_environment__time =
611  (var_L_type_Ca_channel_f_11_gate__f_11_infinity -
612  var_L_type_Ca_channel_f_11_gate__f_11) /
613  var_L_type_Ca_channel_f_11_gate__tau_f_11; // per_second
614  const NekDouble
615  var_L_type_Ca_channel__L_type_Ca_channel_f_11_gate__d_f_11_d_environment__time =
616  var_L_type_Ca_channel_f_11_gate__d_f_11_d_environment__time; // per_second
617  const NekDouble var_L_type_Ca_channel_f_12_gate__f_12 =
618  var_L_type_Ca_channel__f_12; // dimensionless
619  const NekDouble var_L_type_Ca_channel_f_12_gate__V =
620  var_L_type_Ca_channel__V; // millivolt
621  const NekDouble var_L_type_Ca_channel_f_12_gate__f_12_infinity =
622  1.0 / (1.0 + exp((var_L_type_Ca_channel_f_12_gate__V + 26.7) /
623  5.4)); // dimensionless
624  const NekDouble var_L_type_Ca_channel_f_12_gate__tau_f_12 =
625  (0.041 *
626  exp(-pow((var_L_type_Ca_channel_f_12_gate__V + 47.0) / 12.0,
627  2.0))) +
628  (0.08 / (1.0 + exp((var_L_type_Ca_channel_f_12_gate__V + 55.0) /
629  (-5.0)))) +
630  (0.015 /
631  (1.0 + exp((var_L_type_Ca_channel_f_12_gate__V + 75.0) / 25.0))) +
632  0.0017; // second
633  const NekDouble
634  var_L_type_Ca_channel_f_12_gate__d_f_12_d_environment__time =
635  (var_L_type_Ca_channel_f_12_gate__f_12_infinity -
636  var_L_type_Ca_channel_f_12_gate__f_12) /
637  var_L_type_Ca_channel_f_12_gate__tau_f_12; // per_second
638  const NekDouble
639  var_L_type_Ca_channel__L_type_Ca_channel_f_12_gate__d_f_12_d_environment__time =
640  var_L_type_Ca_channel_f_12_gate__d_f_12_d_environment__time; // per_second
641  const NekDouble var_L_type_Ca_channel_Ca_inact_gate__Ca_ss =
642  var_L_type_Ca_channel__Ca_ss; // millimolar
643  const NekDouble var_L_type_Ca_channel_Ca_inact_gate__Ca_inact_infinity =
644  1.0 / (1.0 + (var_L_type_Ca_channel_Ca_inact_gate__Ca_ss /
645  0.01)); // dimensionless
646  const NekDouble var_L_type_Ca_channel_Ca_inact_gate__tau_Ca_inact =
647  0.009; // second
648  const NekDouble var_L_type_Ca_channel_Ca_inact_gate__Ca_inact =
649  var_L_type_Ca_channel__Ca_inact; // dimensionless
650  const NekDouble
651  var_L_type_Ca_channel_Ca_inact_gate__d_Ca_inact_d_environment__time =
652  (var_L_type_Ca_channel_Ca_inact_gate__Ca_inact_infinity -
653  var_L_type_Ca_channel_Ca_inact_gate__Ca_inact) /
654  var_L_type_Ca_channel_Ca_inact_gate__tau_Ca_inact; // per_second
655  const NekDouble
656  var_L_type_Ca_channel__L_type_Ca_channel_Ca_inact_gate__d_Ca_inact_d_environment__time =
657  var_L_type_Ca_channel_Ca_inact_gate__d_Ca_inact_d_environment__time; // per_second
658  const NekDouble
659  var_Ca_independent_transient_outward_K_current_r_gate__V =
660  var_Ca_independent_transient_outward_K_current__V; // millivolt
661  const NekDouble
662  var_Ca_independent_transient_outward_K_current_r_gate__r_infinity =
663  1.0 /
664  (1.0 +
665  exp((var_Ca_independent_transient_outward_K_current_r_gate__V +
666  10.6) /
667  (-11.42))); // dimensionless
668  const NekDouble var_Ca_independent_transient_outward_K_current_r_gate__r =
669  var_Ca_independent_transient_outward_K_current__r; // dimensionless
670  const NekDouble
671  var_Ca_independent_transient_outward_K_current_r_gate__tau_r =
672  1.0 /
673  ((45.16 *
674  exp(0.03577 *
675  (var_Ca_independent_transient_outward_K_current_r_gate__V +
676  50.0))) +
677  (98.9 *
678  exp((-0.1) *
679  (var_Ca_independent_transient_outward_K_current_r_gate__V +
680  38.0)))); // second
681  const NekDouble
682  var_Ca_independent_transient_outward_K_current_r_gate__d_r_d_environment__time =
683  (var_Ca_independent_transient_outward_K_current_r_gate__r_infinity -
684  var_Ca_independent_transient_outward_K_current_r_gate__r) /
685  var_Ca_independent_transient_outward_K_current_r_gate__tau_r; // per_second
686  const NekDouble
687  var_Ca_independent_transient_outward_K_current__Ca_independent_transient_outward_K_current_r_gate__d_r_d_environment__time =
688  var_Ca_independent_transient_outward_K_current_r_gate__d_r_d_environment__time; // per_second
689  const NekDouble
690  var_Ca_independent_transient_outward_K_current_s_gate__V =
691  var_Ca_independent_transient_outward_K_current__V; // millivolt
692  const NekDouble
693  var_Ca_independent_transient_outward_K_current_s_gate__s_infinity =
694  1.0 /
695  (1.0 +
696  exp((var_Ca_independent_transient_outward_K_current_s_gate__V +
697  45.3) /
698  6.8841)); // dimensionless
699  const NekDouble
700  var_Ca_independent_transient_outward_K_current_s_gate__tau_s =
701  (0.35 *
702  exp(-pow(
703  (var_Ca_independent_transient_outward_K_current_s_gate__V +
704  70.0) /
705  15.0,
706  2.0))) +
707  0.035; // second
708  const NekDouble var_Ca_independent_transient_outward_K_current_s_gate__s =
709  var_Ca_independent_transient_outward_K_current__s; // dimensionless
710  const NekDouble
711  var_Ca_independent_transient_outward_K_current_s_gate__d_s_d_environment__time =
712  (var_Ca_independent_transient_outward_K_current_s_gate__s_infinity -
713  var_Ca_independent_transient_outward_K_current_s_gate__s) /
714  var_Ca_independent_transient_outward_K_current_s_gate__tau_s; // per_second
715  const NekDouble
716  var_Ca_independent_transient_outward_K_current__Ca_independent_transient_outward_K_current_s_gate__d_s_d_environment__time =
717  var_Ca_independent_transient_outward_K_current_s_gate__d_s_d_environment__time; // per_second
718  const NekDouble
719  var_Ca_independent_transient_outward_K_current_s_slow_gate__V =
720  var_Ca_independent_transient_outward_K_current__V; // millivolt
721  const NekDouble
722  var_Ca_independent_transient_outward_K_current_s_slow_gate__s_slow_infinity =
723  1.0 /
724  (1.0 +
725  exp((var_Ca_independent_transient_outward_K_current_s_slow_gate__V +
726  45.3) /
727  6.8841)); // dimensionless
728  const NekDouble
729  var_Ca_independent_transient_outward_K_current_s_slow_gate__s_slow =
730  var_Ca_independent_transient_outward_K_current__s_slow; // dimensionless
731  const NekDouble
732  var_Ca_independent_transient_outward_K_current_s_slow_gate__tau_s_slow =
733  (3.7 *
734  exp(-pow(
735  (var_Ca_independent_transient_outward_K_current_s_slow_gate__V +
736  70.0) /
737  30.0,
738  2.0))) +
739  0.035; // second
740  const NekDouble var_Ca_independent_transient_outward_K_current_s_slow_gate__d_s_slow_d_environment__time =
741  (var_Ca_independent_transient_outward_K_current_s_slow_gate__s_slow_infinity -
742  var_Ca_independent_transient_outward_K_current_s_slow_gate__s_slow) /
743  var_Ca_independent_transient_outward_K_current_s_slow_gate__tau_s_slow; // per_second
744  const NekDouble
745  var_Ca_independent_transient_outward_K_current__Ca_independent_transient_outward_K_current_s_slow_gate__d_s_slow_d_environment__time =
746  var_Ca_independent_transient_outward_K_current_s_slow_gate__d_s_slow_d_environment__time; // per_second
747  const NekDouble var_steady_state_outward_K_current_r_ss_gate__V =
748  var_steady_state_outward_K_current__V; // millivolt
749  const NekDouble
750  var_steady_state_outward_K_current_r_ss_gate__r_ss_infinity =
751  1.0 /
752  (1.0 +
753  exp((var_steady_state_outward_K_current_r_ss_gate__V + 11.5) /
754  (-11.82))); // dimensionless
755  const NekDouble var_steady_state_outward_K_current_r_ss_gate__r_ss =
756  var_steady_state_outward_K_current__r_ss; // dimensionless
757  const NekDouble var_steady_state_outward_K_current_r_ss_gate__tau_r_ss =
758  10.0 /
759  ((45.16 *
760  exp(0.03577 *
761  (var_steady_state_outward_K_current_r_ss_gate__V + 50.0))) +
762  (98.9 *
763  exp((-0.1) * (var_steady_state_outward_K_current_r_ss_gate__V +
764  38.0)))); // second
765  const NekDouble
766  var_steady_state_outward_K_current_r_ss_gate__d_r_ss_d_environment__time =
767  (var_steady_state_outward_K_current_r_ss_gate__r_ss_infinity -
768  var_steady_state_outward_K_current_r_ss_gate__r_ss) /
769  var_steady_state_outward_K_current_r_ss_gate__tau_r_ss; // per_second
770  const NekDouble
771  var_steady_state_outward_K_current__steady_state_outward_K_current_r_ss_gate__d_r_ss_d_environment__time =
772  var_steady_state_outward_K_current_r_ss_gate__d_r_ss_d_environment__time; // per_second
773  const NekDouble var_steady_state_outward_K_current_s_ss_gate__s_ss =
774  var_steady_state_outward_K_current__s_ss; // dimensionless
775  const NekDouble var_steady_state_outward_K_current_s_ss_gate__tau_s_ss =
776  2.1; // second
777  const NekDouble var_steady_state_outward_K_current_s_ss_gate__V =
778  var_steady_state_outward_K_current__V; // millivolt
779  const NekDouble
780  var_steady_state_outward_K_current_s_ss_gate__s_ss_infinity =
781  1.0 /
782  (1.0 +
783  exp((var_steady_state_outward_K_current_s_ss_gate__V + 87.5) /
784  10.3)); // dimensionless
785  const NekDouble
786  var_steady_state_outward_K_current_s_ss_gate__d_s_ss_d_environment__time =
787  (var_steady_state_outward_K_current_s_ss_gate__s_ss_infinity -
788  var_steady_state_outward_K_current_s_ss_gate__s_ss) /
789  var_steady_state_outward_K_current_s_ss_gate__tau_s_ss; // per_second
790  const NekDouble
791  var_steady_state_outward_K_current__steady_state_outward_K_current_s_ss_gate__d_s_ss_d_environment__time =
792  var_steady_state_outward_K_current_s_ss_gate__d_s_ss_d_environment__time; // per_second
793  const NekDouble var_hyperpolarisation_activated_current_y_gate__V =
794  var_hyperpolarisation_activated_current__V; // millivolt
795  const NekDouble var_hyperpolarisation_activated_current_y_gate__tau_y =
796  1.0 /
797  ((0.11885 *
798  exp((var_hyperpolarisation_activated_current_y_gate__V + 80.0) /
799  28.37)) +
800  (0.5623 *
801  exp((var_hyperpolarisation_activated_current_y_gate__V + 80.0) /
802  (-14.19)))); // second
803  const NekDouble var_hyperpolarisation_activated_current_y_gate__y =
804  var_hyperpolarisation_activated_current__y; // dimensionless
805  const NekDouble
806  var_hyperpolarisation_activated_current_y_gate__y_infinity =
807  1.0 /
808  (1.0 + exp((var_hyperpolarisation_activated_current_y_gate__V +
809  138.6) /
810  10.48)); // dimensionless
811  const NekDouble
812  var_hyperpolarisation_activated_current_y_gate__d_y_d_environment__time =
813  (var_hyperpolarisation_activated_current_y_gate__y_infinity -
814  var_hyperpolarisation_activated_current_y_gate__y) /
815  var_hyperpolarisation_activated_current_y_gate__tau_y; // per_second
816  const NekDouble
817  var_hyperpolarisation_activated_current__hyperpolarisation_activated_current_y_gate__d_y_d_environment__time =
818  var_hyperpolarisation_activated_current_y_gate__d_y_d_environment__time; // per_second
819  const NekDouble var_SR_Ca_release_channel__Ca_ss =
820  var_chaste_interface__intracellular_ion_concentrations__Ca_ss; // millimolar
821  const NekDouble var_SR_Ca_release_channel__v1 = 1800.0; // per_second
822  const NekDouble var_SR_Ca_release_channel__P_O2 =
823  var_chaste_interface__SR_Ca_release_channel__P_O2; // dimensionless
824  const NekDouble var_SR_Ca_release_channel__P_O1 =
825  var_chaste_interface__SR_Ca_release_channel__P_O1; // dimensionless
826  const NekDouble var_SR_Ca_release_channel__Ca_JSR =
827  var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; // millimolar
828  const NekDouble var_SR_Ca_release_channel__J_rel =
829  var_SR_Ca_release_channel__v1 *
830  (var_SR_Ca_release_channel__P_O1 +
831  var_SR_Ca_release_channel__P_O2) *
832  (var_SR_Ca_release_channel__Ca_JSR -
833  var_SR_Ca_release_channel__Ca_ss); // millimolar_per_second
834  const NekDouble var_SR_Ca_release_channel__k_a_plus =
835  1.215e+13; // per_second
836  const NekDouble var_SR_Ca_release_channel__k_a_minus =
837  576.0; // per_second
838  const NekDouble var_SR_Ca_release_channel__k_b_plus =
839  4050000000.0; // per_second
840  const NekDouble var_SR_Ca_release_channel__k_b_minus =
841  1930.0; // per_second
842  const NekDouble var_SR_Ca_release_channel__k_c_plus =
843  100.0; // per_second
844  const NekDouble var_SR_Ca_release_channel__k_c_minus =
845  0.8; // per_second
846  const NekDouble var_SR_Ca_release_channel__P_C1 =
847  var_chaste_interface__SR_Ca_release_channel__P_C1; // dimensionless
848  const NekDouble var_SR_Ca_release_channel__P_C2 =
849  var_chaste_interface__SR_Ca_release_channel__P_C2; // dimensionless
850  const NekDouble var_SR_Ca_release_channel__n = 4.0; // dimensionless
851  const NekDouble var_SR_Ca_release_channel__m = 3.0; // dimensionless
852  const NekDouble var_SR_Ca_release_channel__d_P_O1_d_environment__time =
853  ((var_SR_Ca_release_channel__k_a_plus *
854  pow(var_SR_Ca_release_channel__Ca_ss / 1.0,
855  var_SR_Ca_release_channel__n) *
856  var_SR_Ca_release_channel__P_C1) -
857  ((var_SR_Ca_release_channel__k_a_minus *
858  var_SR_Ca_release_channel__P_O1) +
859  (var_SR_Ca_release_channel__k_b_plus *
860  pow(var_SR_Ca_release_channel__Ca_ss / 1.0,
861  var_SR_Ca_release_channel__m) *
862  var_SR_Ca_release_channel__P_O1) +
863  (var_SR_Ca_release_channel__k_c_plus *
864  var_SR_Ca_release_channel__P_O1))) +
865  (var_SR_Ca_release_channel__k_b_minus *
866  var_SR_Ca_release_channel__P_O2) +
867  (var_SR_Ca_release_channel__k_c_minus *
868  var_SR_Ca_release_channel__P_C2); // per_second
869  const NekDouble var_SR_Ca_release_channel__d_P_O2_d_environment__time =
870  (var_SR_Ca_release_channel__k_b_plus *
871  pow(var_SR_Ca_release_channel__Ca_ss / 1.0,
872  var_SR_Ca_release_channel__m) *
873  var_SR_Ca_release_channel__P_O1) -
874  (var_SR_Ca_release_channel__k_b_minus *
875  var_SR_Ca_release_channel__P_O2); // per_second
876  const NekDouble var_SR_Ca_release_channel__d_P_C1_d_environment__time =
877  ((-var_SR_Ca_release_channel__k_a_plus) *
878  pow(var_SR_Ca_release_channel__Ca_ss / 1.0,
879  var_SR_Ca_release_channel__n) *
880  var_SR_Ca_release_channel__P_C1) +
881  (var_SR_Ca_release_channel__k_a_minus *
882  var_SR_Ca_release_channel__P_O1); // per_second
883  const NekDouble var_SR_Ca_release_channel__d_P_C2_d_environment__time =
884  (var_SR_Ca_release_channel__k_c_plus *
885  var_SR_Ca_release_channel__P_O1) -
886  (var_SR_Ca_release_channel__k_c_minus *
887  var_SR_Ca_release_channel__P_C2); // per_second
888  const NekDouble var_SERCA2a_pump__N_fb = 1.2; // dimensionless
889  const NekDouble var_SERCA2a_pump__K_fb = 0.000168; // millimolar
890  const NekDouble var_SERCA2a_pump__Ca_i =
891  var_chaste_interface__intracellular_ion_concentrations__Ca_i; // millimolar
892  const NekDouble var_SERCA2a_pump__fb =
893  pow(var_SERCA2a_pump__Ca_i / var_SERCA2a_pump__K_fb,
894  var_SERCA2a_pump__N_fb); // dimensionless
895  const NekDouble var_SERCA2a_pump__Diabetes =
896  var_membrane__Diabetes; // dimensionless
897  const NekDouble var_SERCA2a_pump__Vmaxf_normal =
898  0.04; // millimolar_per_second
899  const NekDouble var_SERCA2a_pump__Vmaxf =
900  (var_SERCA2a_pump__Diabetes == 0.0)
901  ? var_SERCA2a_pump__Vmaxf_normal
902  : (0.8 *
903  var_SERCA2a_pump__Vmaxf_normal); // millimolar_per_second
904  const NekDouble var_SERCA2a_pump__K_SR_normal = 1.0; // dimensionless
905  const NekDouble var_SERCA2a_pump__K_SR =
906  (var_SERCA2a_pump__Diabetes == 0.0)
907  ? var_SERCA2a_pump__K_SR_normal
908  : (0.55 * var_SERCA2a_pump__K_SR_normal); // dimensionless
909  const NekDouble var_SERCA2a_pump__Ca_NSR =
910  var_chaste_interface__intracellular_ion_concentrations__Ca_NSR; // millimolar
911  const NekDouble var_SERCA2a_pump__K_rb = 3.29; // millimolar
912  const NekDouble var_SERCA2a_pump__N_rb = 1.0; // dimensionless
913  const NekDouble var_SERCA2a_pump__rb =
914  pow(var_SERCA2a_pump__Ca_NSR / var_SERCA2a_pump__K_rb,
915  var_SERCA2a_pump__N_rb); // dimensionless
916  const NekDouble var_SERCA2a_pump__Vmaxr = 0.9; // millimolar_per_second
917  const NekDouble var_SERCA2a_pump__J_up =
918  (var_SERCA2a_pump__K_SR *
919  ((var_SERCA2a_pump__Vmaxf * var_SERCA2a_pump__fb) -
920  (var_SERCA2a_pump__Vmaxr * var_SERCA2a_pump__rb))) /
921  (1.0 + var_SERCA2a_pump__fb +
922  var_SERCA2a_pump__rb); // millimolar_per_second
923  const NekDouble var_intracellular_and_SR_Ca_fluxes__tau_tr =
924  0.0005747; // second
925  const NekDouble var_intracellular_and_SR_Ca_fluxes__Ca_JSR =
926  var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; // millimolar
927  const NekDouble var_intracellular_and_SR_Ca_fluxes__Ca_NSR =
928  var_chaste_interface__intracellular_ion_concentrations__Ca_NSR; // millimolar
929  const NekDouble var_intracellular_and_SR_Ca_fluxes__J_tr =
930  (var_intracellular_and_SR_Ca_fluxes__Ca_NSR -
931  var_intracellular_and_SR_Ca_fluxes__Ca_JSR) /
932  var_intracellular_and_SR_Ca_fluxes__tau_tr; // millimolar_per_second
933  const NekDouble var_intracellular_and_SR_Ca_fluxes__Ca_ss =
934  var_chaste_interface__intracellular_ion_concentrations__Ca_ss; // millimolar
935  const NekDouble var_intracellular_and_SR_Ca_fluxes__Ca_i =
936  var_chaste_interface__intracellular_ion_concentrations__Ca_i; // millimolar
937  const NekDouble var_intracellular_and_SR_Ca_fluxes__tau_xfer =
938  0.0267; // second
939  const NekDouble var_intracellular_and_SR_Ca_fluxes__J_xfer =
940  (var_intracellular_and_SR_Ca_fluxes__Ca_ss -
941  var_intracellular_and_SR_Ca_fluxes__Ca_i) /
942  var_intracellular_and_SR_Ca_fluxes__tau_xfer; // millimolar_per_second
943  const NekDouble var_intracellular_and_SR_Ca_fluxes__k_htrpn_plus =
944  200000.0; // per_millimolar_per_second
945  const NekDouble var_intracellular_and_SR_Ca_fluxes__k_htrpn_minus =
946  0.066; // per_second
947  const NekDouble var_intracellular_and_SR_Ca_fluxes__HTRPNCa =
948  var_chaste_interface__intracellular_and_SR_Ca_fluxes__HTRPNCa; // millimolar
949  const NekDouble var_intracellular_and_SR_Ca_fluxes__HTRPN_tot =
950  0.14; // millimolar
951  const NekDouble var_intracellular_and_SR_Ca_fluxes__J_HTRPNCa =
952  (var_intracellular_and_SR_Ca_fluxes__k_htrpn_plus *
953  var_intracellular_and_SR_Ca_fluxes__Ca_i *
954  (var_intracellular_and_SR_Ca_fluxes__HTRPN_tot -
955  var_intracellular_and_SR_Ca_fluxes__HTRPNCa)) -
956  (var_intracellular_and_SR_Ca_fluxes__k_htrpn_minus *
957  var_intracellular_and_SR_Ca_fluxes__HTRPNCa); // millimolar_per_second
958  const NekDouble var_intracellular_and_SR_Ca_fluxes__LTRPNCa =
959  var_chaste_interface__intracellular_and_SR_Ca_fluxes__LTRPNCa; // millimolar
960  const NekDouble var_intracellular_and_SR_Ca_fluxes__LTRPN_tot =
961  0.07; // millimolar
962  const NekDouble var_intracellular_and_SR_Ca_fluxes__k_ltrpn_plus =
963  40000.0; // per_millimolar_per_second
964  const NekDouble var_intracellular_and_SR_Ca_fluxes__k_ltrpn_minus =
965  40.0; // per_second
966  const NekDouble var_intracellular_and_SR_Ca_fluxes__J_LTRPNCa =
967  (var_intracellular_and_SR_Ca_fluxes__k_ltrpn_plus *
968  var_intracellular_and_SR_Ca_fluxes__Ca_i *
969  (var_intracellular_and_SR_Ca_fluxes__LTRPN_tot -
970  var_intracellular_and_SR_Ca_fluxes__LTRPNCa)) -
971  (var_intracellular_and_SR_Ca_fluxes__k_ltrpn_minus *
972  var_intracellular_and_SR_Ca_fluxes__LTRPNCa); // millimolar_per_second
973  const NekDouble var_intracellular_and_SR_Ca_fluxes__J_trpn =
974  var_intracellular_and_SR_Ca_fluxes__J_HTRPNCa +
975  var_intracellular_and_SR_Ca_fluxes__J_LTRPNCa; // millimolar_per_second
976  const NekDouble
977  var_intracellular_and_SR_Ca_fluxes__d_HTRPNCa_d_environment__time =
978  (var_intracellular_and_SR_Ca_fluxes__k_htrpn_plus *
979  var_intracellular_and_SR_Ca_fluxes__Ca_i *
980  (var_intracellular_and_SR_Ca_fluxes__HTRPN_tot -
981  var_intracellular_and_SR_Ca_fluxes__HTRPNCa)) -
982  (var_intracellular_and_SR_Ca_fluxes__k_htrpn_minus *
983  var_intracellular_and_SR_Ca_fluxes__HTRPNCa); // 'millimole per
984  // litre per
985  // second'
986  const NekDouble
987  var_intracellular_and_SR_Ca_fluxes__d_LTRPNCa_d_environment__time =
988  (var_intracellular_and_SR_Ca_fluxes__k_ltrpn_plus *
989  var_intracellular_and_SR_Ca_fluxes__Ca_i *
990  (var_intracellular_and_SR_Ca_fluxes__LTRPN_tot -
991  var_intracellular_and_SR_Ca_fluxes__LTRPNCa)) -
992  (var_intracellular_and_SR_Ca_fluxes__k_ltrpn_minus *
993  var_intracellular_and_SR_Ca_fluxes__LTRPNCa); // 'millimole per
994  // litre per
995  // second'
996  const NekDouble var_intracellular_ion_concentrations__Ca_i =
997  var_chaste_interface__intracellular_ion_concentrations__Ca_i; // millimolar
998  const NekDouble var_intracellular_ion_concentrations__Ca_ss =
999  var_chaste_interface__intracellular_ion_concentrations__Ca_ss; // millimolar
1000  const NekDouble var_intracellular_ion_concentrations__Ca_JSR =
1001  var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; // millimolar
1002  const NekDouble var_intracellular_ion_concentrations__V_myo =
1003  9.36e-06; // micro_litre
1004  const NekDouble var_intracellular_ion_concentrations__V_JSR =
1005  5.6e-07; // micro_litre
1006  const NekDouble var_intracellular_ion_concentrations__V_NSR =
1007  5.04e-06; // micro_litre
1008  const NekDouble var_intracellular_ion_concentrations__V_SS =
1009  1.2e-08; // micro_litre
1010  const NekDouble var_intracellular_ion_concentrations__K_mCMDN =
1011  0.00238; // millimolar
1012  const NekDouble var_intracellular_ion_concentrations__K_mCSQN =
1013  0.8; // millimolar
1014  const NekDouble var_intracellular_ion_concentrations__K_mEGTA =
1015  0.00015; // millimolar
1016  const NekDouble var_intracellular_ion_concentrations__CMDN_tot =
1017  0.05; // millimolar
1018  const NekDouble var_intracellular_ion_concentrations__CSQN_tot =
1019  15.0; // millimolar
1020  const NekDouble var_intracellular_ion_concentrations__EGTA_tot =
1021  10.0; // millimolar
1022  const NekDouble var_intracellular_ion_concentrations__beta_i =
1023  1.0 / (1.0 +
1024  ((var_intracellular_ion_concentrations__CMDN_tot *
1025  var_intracellular_ion_concentrations__K_mCMDN) /
1026  pow(var_intracellular_ion_concentrations__K_mCMDN +
1027  var_intracellular_ion_concentrations__Ca_i,
1028  2.0)) +
1029  ((var_intracellular_ion_concentrations__EGTA_tot *
1030  var_intracellular_ion_concentrations__K_mEGTA) /
1031  pow(var_intracellular_ion_concentrations__K_mEGTA +
1032  var_intracellular_ion_concentrations__Ca_i,
1033  2.0))); // dimensionless
1034  const NekDouble var_intracellular_ion_concentrations__beta_SS =
1035  1.0 / (1.0 + ((var_intracellular_ion_concentrations__CMDN_tot *
1036  var_intracellular_ion_concentrations__K_mCMDN) /
1037  pow(var_intracellular_ion_concentrations__K_mCMDN +
1038  var_intracellular_ion_concentrations__Ca_ss,
1039  2.0))); // dimensionless
1040  const NekDouble var_intracellular_ion_concentrations__beta_JSR =
1041  1.0 / (1.0 + ((var_intracellular_ion_concentrations__CSQN_tot *
1042  var_intracellular_ion_concentrations__K_mCSQN) /
1043  pow(var_intracellular_ion_concentrations__K_mCSQN +
1044  var_intracellular_ion_concentrations__Ca_JSR,
1045  2.0))); // dimensionless
1046  const NekDouble var_intracellular_ion_concentrations__F =
1047  var_membrane__F; // coulomb_per_mole
1048  const NekDouble var_intracellular_ion_concentrations__i_Na =
1049  var_sodium_current__i_Na; // nanoA
1050  const NekDouble var_intracellular_ion_concentrations__i_Ca_L =
1051  var_L_type_Ca_channel__i_Ca_L; // nanoA
1052  const NekDouble var_intracellular_ion_concentrations__i_B_Na =
1053  var_background_currents__i_B_Na; // nanoA
1054  const NekDouble var_intracellular_ion_concentrations__i_NaCa =
1055  var_Na_Ca_ion_exchanger_current__i_NaCa; // nanoA
1056  const NekDouble var_intracellular_ion_concentrations__i_NaK =
1057  var_sodium_potassium_pump__i_NaK; // nanoA
1058  const NekDouble var_intracellular_ion_concentrations__i_f_Na =
1059  var_hyperpolarisation_activated_current__i_f_Na; // nanoA
1060  const NekDouble var_intracellular_ion_concentrations__i_f_K =
1061  var_hyperpolarisation_activated_current__i_f_K; // nanoA
1062  const NekDouble var_intracellular_ion_concentrations__i_B_K =
1063  var_background_currents__i_B_K; // nanoA
1064  const NekDouble var_intracellular_ion_concentrations__i_K1 =
1065  var_inward_rectifier__i_K1; // nanoA
1066  const NekDouble var_intracellular_ion_concentrations__i_t =
1067  var_Ca_independent_transient_outward_K_current__i_t; // nanoA
1068  const NekDouble var_intracellular_ion_concentrations__i_ss =
1069  var_steady_state_outward_K_current__i_ss; // nanoA
1070  const NekDouble var_intracellular_ion_concentrations__i_Ca_P =
1071  var_sarcolemmal_calcium_pump_current__i_Ca_P; // nanoA
1072  const NekDouble var_intracellular_ion_concentrations__i_B_Ca =
1073  var_background_currents__i_B_Ca; // nanoA
1074  const NekDouble var_intracellular_ion_concentrations__J_up =
1075  var_SERCA2a_pump__J_up; // millimolar_per_second
1076  const NekDouble var_intracellular_ion_concentrations__J_rel =
1077  var_SR_Ca_release_channel__J_rel; // millimolar_per_second
1078  const NekDouble var_intracellular_ion_concentrations__J_xfer =
1079  var_intracellular_and_SR_Ca_fluxes__J_xfer; // millimolar_per_second
1080  const NekDouble var_intracellular_ion_concentrations__J_trpn =
1081  var_intracellular_and_SR_Ca_fluxes__J_trpn; // millimolar_per_second
1082  const NekDouble var_intracellular_ion_concentrations__J_tr =
1083  var_intracellular_and_SR_Ca_fluxes__J_tr; // millimolar_per_second
1084  const NekDouble
1085  var_intracellular_ion_concentrations__d_Na_i_d_environment__time =
1086  (-(var_intracellular_ion_concentrations__i_Na +
1087  var_intracellular_ion_concentrations__i_B_Na +
1088  (var_intracellular_ion_concentrations__i_NaCa * 3.0) +
1089  (var_intracellular_ion_concentrations__i_NaK * 3.0) +
1090  var_intracellular_ion_concentrations__i_f_Na)) /
1091  (var_intracellular_ion_concentrations__V_myo *
1092  var_intracellular_ion_concentrations__F); // 'millimole per
1093  // litre per second'
1094  const NekDouble
1095  var_intracellular_ion_concentrations__d_Ca_i_d_environment__time =
1096  var_intracellular_ion_concentrations__beta_i *
1097  (var_intracellular_ion_concentrations__J_xfer -
1098  (var_intracellular_ion_concentrations__J_up +
1099  var_intracellular_ion_concentrations__J_trpn +
1100  (((var_intracellular_ion_concentrations__i_B_Ca -
1101  (2.0 * var_intracellular_ion_concentrations__i_NaCa)) +
1102  var_intracellular_ion_concentrations__i_Ca_P) /
1103  (2.0 * var_intracellular_ion_concentrations__V_myo *
1104  var_intracellular_ion_concentrations__F)))); // 'millimole
1105  // per litre
1106  // per second'
1107  const NekDouble
1108  var_intracellular_ion_concentrations__d_K_i_d_environment__time =
1109  (-(var_intracellular_ion_concentrations__i_ss +
1110  var_intracellular_ion_concentrations__i_B_K +
1111  var_intracellular_ion_concentrations__i_t +
1112  var_intracellular_ion_concentrations__i_K1 +
1113  var_intracellular_ion_concentrations__i_f_K +
1114  (var_intracellular_ion_concentrations__i_NaK * (-2.0)))) /
1115  (var_intracellular_ion_concentrations__V_myo *
1116  var_intracellular_ion_concentrations__F); // 'millimole per
1117  // litre per second'
1118  const NekDouble
1119  var_intracellular_ion_concentrations__d_Ca_ss_d_environment__time =
1120  var_intracellular_ion_concentrations__beta_SS *
1121  ((((var_intracellular_ion_concentrations__J_rel *
1122  var_intracellular_ion_concentrations__V_JSR) /
1123  var_intracellular_ion_concentrations__V_SS) -
1124  ((var_intracellular_ion_concentrations__J_xfer *
1125  var_intracellular_ion_concentrations__V_myo) /
1126  var_intracellular_ion_concentrations__V_SS)) -
1127  (var_intracellular_ion_concentrations__i_Ca_L /
1128  (2.0 * var_intracellular_ion_concentrations__V_SS *
1129  var_intracellular_ion_concentrations__F))); // 'millimole per
1130  // litre per
1131  // second'
1132  const NekDouble
1133  var_intracellular_ion_concentrations__d_Ca_JSR_d_environment__time =
1134  var_intracellular_ion_concentrations__beta_JSR *
1135  (var_intracellular_ion_concentrations__J_tr -
1136  var_intracellular_ion_concentrations__J_rel); // 'millimole per
1137  // litre per
1138  // second'
1139  const NekDouble
1140  var_intracellular_ion_concentrations__d_Ca_NSR_d_environment__time =
1141  ((var_intracellular_ion_concentrations__J_up *
1142  var_intracellular_ion_concentrations__V_myo) /
1143  var_intracellular_ion_concentrations__V_NSR) -
1144  ((var_intracellular_ion_concentrations__J_tr *
1145  var_intracellular_ion_concentrations__V_JSR) /
1146  var_intracellular_ion_concentrations__V_NSR); // 'millimole per
1147  // litre per
1148  // second'
1149  const NekDouble
1150  var_chaste_interface__sodium_current_m_gate__d_m_d_environment__time_converter =
1151  var_sodium_current__sodium_current_m_gate__d_m_d_environment__time; // per_second
1152  const NekDouble
1153  var_chaste_interface__sodium_current_m_gate__d_m_d_environment__time =
1154  0.001 *
1155  var_chaste_interface__sodium_current_m_gate__d_m_d_environment__time_converter; // 'per millisecond'
1156  const NekDouble
1157  var_chaste_interface__sodium_current_h_gate__d_h_d_environment__time_converter =
1158  var_sodium_current__sodium_current_h_gate__d_h_d_environment__time; // per_second
1159  const NekDouble
1160  var_chaste_interface__sodium_current_h_gate__d_h_d_environment__time =
1161  0.001 *
1162  var_chaste_interface__sodium_current_h_gate__d_h_d_environment__time_converter; // 'per millisecond'
1163  const NekDouble
1164  var_chaste_interface__sodium_current_j_gate__d_j_d_environment__time_converter =
1165  var_sodium_current__sodium_current_j_gate__d_j_d_environment__time; // per_second
1166  const NekDouble
1167  var_chaste_interface__sodium_current_j_gate__d_j_d_environment__time =
1168  0.001 *
1169  var_chaste_interface__sodium_current_j_gate__d_j_d_environment__time_converter; // 'per millisecond'
1170  const NekDouble
1171  var_chaste_interface__L_type_Ca_channel_d_gate__d_d_d_environment__time_converter =
1172  var_L_type_Ca_channel__L_type_Ca_channel_d_gate__d_d_d_environment__time; // per_second
1173  const NekDouble
1174  var_chaste_interface__L_type_Ca_channel_d_gate__d_d_d_environment__time =
1175  0.001 *
1176  var_chaste_interface__L_type_Ca_channel_d_gate__d_d_d_environment__time_converter; // 'per millisecond'
1177  const NekDouble
1178  var_chaste_interface__L_type_Ca_channel_f_11_gate__d_f_11_d_environment__time_converter =
1179  var_L_type_Ca_channel__L_type_Ca_channel_f_11_gate__d_f_11_d_environment__time; // per_second
1180  const NekDouble
1181  var_chaste_interface__L_type_Ca_channel_f_11_gate__d_f_11_d_environment__time =
1182  0.001 *
1183  var_chaste_interface__L_type_Ca_channel_f_11_gate__d_f_11_d_environment__time_converter; // 'per millisecond'
1184  const NekDouble
1185  var_chaste_interface__L_type_Ca_channel_f_12_gate__d_f_12_d_environment__time_converter =
1186  var_L_type_Ca_channel__L_type_Ca_channel_f_12_gate__d_f_12_d_environment__time; // per_second
1187  const NekDouble
1188  var_chaste_interface__L_type_Ca_channel_f_12_gate__d_f_12_d_environment__time =
1189  0.001 *
1190  var_chaste_interface__L_type_Ca_channel_f_12_gate__d_f_12_d_environment__time_converter; // 'per millisecond'
1191  const NekDouble
1192  var_chaste_interface__L_type_Ca_channel_Ca_inact_gate__d_Ca_inact_d_environment__time_converter =
1193  var_L_type_Ca_channel__L_type_Ca_channel_Ca_inact_gate__d_Ca_inact_d_environment__time; // per_second
1194  const NekDouble
1195  var_chaste_interface__L_type_Ca_channel_Ca_inact_gate__d_Ca_inact_d_environment__time =
1196  0.001 *
1197  var_chaste_interface__L_type_Ca_channel_Ca_inact_gate__d_Ca_inact_d_environment__time_converter; // 'per millisecond'
1198  const NekDouble
1199  var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__d_r_d_environment__time_converter =
1200  var_Ca_independent_transient_outward_K_current__Ca_independent_transient_outward_K_current_r_gate__d_r_d_environment__time; // per_second
1201  const NekDouble
1202  var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__d_r_d_environment__time =
1203  0.001 *
1204  var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__d_r_d_environment__time_converter; // 'per millisecond'
1205  const NekDouble
1206  var_chaste_interface__Ca_independent_transient_outward_K_current_s_gate__d_s_d_environment__time_converter =
1207  var_Ca_independent_transient_outward_K_current__Ca_independent_transient_outward_K_current_s_gate__d_s_d_environment__time; // per_second
1208  const NekDouble
1209  var_chaste_interface__Ca_independent_transient_outward_K_current_s_gate__d_s_d_environment__time =
1210  0.001 *
1211  var_chaste_interface__Ca_independent_transient_outward_K_current_s_gate__d_s_d_environment__time_converter; // 'per millisecond'
1212  const NekDouble
1213  var_chaste_interface__Ca_independent_transient_outward_K_current_s_slow_gate__d_s_slow_d_environment__time_converter =
1214  var_Ca_independent_transient_outward_K_current__Ca_independent_transient_outward_K_current_s_slow_gate__d_s_slow_d_environment__time; // per_second
1215  const NekDouble
1216  var_chaste_interface__Ca_independent_transient_outward_K_current_s_slow_gate__d_s_slow_d_environment__time =
1217  0.001 *
1218  var_chaste_interface__Ca_independent_transient_outward_K_current_s_slow_gate__d_s_slow_d_environment__time_converter; // 'per millisecond'
1219  const NekDouble
1220  var_chaste_interface__steady_state_outward_K_current_r_ss_gate__d_r_ss_d_environment__time_converter =
1221  var_steady_state_outward_K_current__steady_state_outward_K_current_r_ss_gate__d_r_ss_d_environment__time; // per_second
1222  const NekDouble
1223  var_chaste_interface__steady_state_outward_K_current_r_ss_gate__d_r_ss_d_environment__time =
1224  0.001 *
1225  var_chaste_interface__steady_state_outward_K_current_r_ss_gate__d_r_ss_d_environment__time_converter; // 'per millisecond'
1226  const NekDouble
1227  var_chaste_interface__steady_state_outward_K_current_s_ss_gate__d_s_ss_d_environment__time_converter =
1228  var_steady_state_outward_K_current__steady_state_outward_K_current_s_ss_gate__d_s_ss_d_environment__time; // per_second
1229  const NekDouble
1230  var_chaste_interface__steady_state_outward_K_current_s_ss_gate__d_s_ss_d_environment__time =
1231  0.001 *
1232  var_chaste_interface__steady_state_outward_K_current_s_ss_gate__d_s_ss_d_environment__time_converter; // 'per millisecond'
1233  const NekDouble
1234  var_chaste_interface__hyperpolarisation_activated_current_y_gate__d_y_d_environment__time_converter =
1235  var_hyperpolarisation_activated_current__hyperpolarisation_activated_current_y_gate__d_y_d_environment__time; // per_second
1236  const NekDouble
1237  var_chaste_interface__hyperpolarisation_activated_current_y_gate__d_y_d_environment__time =
1238  0.001 *
1239  var_chaste_interface__hyperpolarisation_activated_current_y_gate__d_y_d_environment__time_converter; // 'per millisecond'
1240  const NekDouble
1241  var_chaste_interface__SR_Ca_release_channel__d_P_O1_d_environment__time_converter =
1242  var_SR_Ca_release_channel__d_P_O1_d_environment__time; // per_second
1243  const NekDouble
1244  var_chaste_interface__SR_Ca_release_channel__d_P_O1_d_environment__time =
1245  0.001 *
1246  var_chaste_interface__SR_Ca_release_channel__d_P_O1_d_environment__time_converter; // 'per millisecond'
1247  const NekDouble
1248  var_chaste_interface__SR_Ca_release_channel__d_P_O2_d_environment__time_converter =
1249  var_SR_Ca_release_channel__d_P_O2_d_environment__time; // per_second
1250  const NekDouble
1251  var_chaste_interface__SR_Ca_release_channel__d_P_O2_d_environment__time =
1252  0.001 *
1253  var_chaste_interface__SR_Ca_release_channel__d_P_O2_d_environment__time_converter; // 'per millisecond'
1254  const NekDouble
1255  var_chaste_interface__SR_Ca_release_channel__d_P_C1_d_environment__time_converter =
1256  var_SR_Ca_release_channel__d_P_C1_d_environment__time; // per_second
1257  const NekDouble
1258  var_chaste_interface__SR_Ca_release_channel__d_P_C1_d_environment__time =
1259  0.001 *
1260  var_chaste_interface__SR_Ca_release_channel__d_P_C1_d_environment__time_converter; // 'per millisecond'
1261  const NekDouble
1262  var_chaste_interface__SR_Ca_release_channel__d_P_C2_d_environment__time_converter =
1263  var_SR_Ca_release_channel__d_P_C2_d_environment__time; // per_second
1264  const NekDouble
1265  var_chaste_interface__SR_Ca_release_channel__d_P_C2_d_environment__time =
1266  0.001 *
1267  var_chaste_interface__SR_Ca_release_channel__d_P_C2_d_environment__time_converter; // 'per millisecond'
1268  const NekDouble
1269  var_chaste_interface__intracellular_and_SR_Ca_fluxes__d_HTRPNCa_d_environment__time_converter =
1270  var_intracellular_and_SR_Ca_fluxes__d_HTRPNCa_d_environment__time; // ___units_26
1271  const NekDouble
1272  var_chaste_interface__intracellular_and_SR_Ca_fluxes__d_HTRPNCa_d_environment__time =
1273  0.001 *
1274  var_chaste_interface__intracellular_and_SR_Ca_fluxes__d_HTRPNCa_d_environment__time_converter; // 'millimolar per millisecond'
1275  const NekDouble
1276  var_chaste_interface__intracellular_and_SR_Ca_fluxes__d_LTRPNCa_d_environment__time_converter =
1277  var_intracellular_and_SR_Ca_fluxes__d_LTRPNCa_d_environment__time; // millimole_per_litre_per_second
1278  const NekDouble
1279  var_chaste_interface__intracellular_and_SR_Ca_fluxes__d_LTRPNCa_d_environment__time =
1280  0.001 *
1281  var_chaste_interface__intracellular_and_SR_Ca_fluxes__d_LTRPNCa_d_environment__time_converter; // 'millimolar per millisecond'
1282  const NekDouble
1283  var_chaste_interface__intracellular_ion_concentrations__d_Na_i_d_environment__time_converter =
1284  var_intracellular_ion_concentrations__d_Na_i_d_environment__time; // millimole_per_litre_per_second
1285  const NekDouble
1286  var_chaste_interface__intracellular_ion_concentrations__d_Na_i_d_environment__time =
1287  0.001 *
1288  var_chaste_interface__intracellular_ion_concentrations__d_Na_i_d_environment__time_converter; // 'millimolar per millisecond'
1289  const NekDouble
1290  var_chaste_interface__intracellular_ion_concentrations__d_Ca_i_d_environment__time_converter =
1291  var_intracellular_ion_concentrations__d_Ca_i_d_environment__time; // millimole_per_litre_per_second
1292  const NekDouble
1293  var_chaste_interface__intracellular_ion_concentrations__d_Ca_i_d_environment__time =
1294  0.001 *
1295  var_chaste_interface__intracellular_ion_concentrations__d_Ca_i_d_environment__time_converter; // 'millimolar per millisecond'
1296  const NekDouble
1297  var_chaste_interface__intracellular_ion_concentrations__d_K_i_d_environment__time_converter =
1298  var_intracellular_ion_concentrations__d_K_i_d_environment__time; // millimole_per_litre_per_second
1299  const NekDouble
1300  var_chaste_interface__intracellular_ion_concentrations__d_K_i_d_environment__time =
1301  0.001 *
1302  var_chaste_interface__intracellular_ion_concentrations__d_K_i_d_environment__time_converter; // 'millimolar per millisecond'
1303  const NekDouble
1304  var_chaste_interface__intracellular_ion_concentrations__d_Ca_ss_d_environment__time_converter =
1305  var_intracellular_ion_concentrations__d_Ca_ss_d_environment__time; // millimole_per_litre_per_second
1306  const NekDouble
1307  var_chaste_interface__intracellular_ion_concentrations__d_Ca_ss_d_environment__time =
1308  0.001 *
1309  var_chaste_interface__intracellular_ion_concentrations__d_Ca_ss_d_environment__time_converter; // 'millimolar per millisecond'
1310  const NekDouble
1311  var_chaste_interface__intracellular_ion_concentrations__d_Ca_JSR_d_environment__time_converter =
1312  var_intracellular_ion_concentrations__d_Ca_JSR_d_environment__time; // millimole_per_litre_per_second
1313  const NekDouble
1314  var_chaste_interface__intracellular_ion_concentrations__d_Ca_JSR_d_environment__time =
1315  0.001 *
1316  var_chaste_interface__intracellular_ion_concentrations__d_Ca_JSR_d_environment__time_converter; // 'millimolar per millisecond'
1317  const NekDouble
1318  var_chaste_interface__intracellular_ion_concentrations__d_Ca_NSR_d_environment__time_converter =
1319  var_intracellular_ion_concentrations__d_Ca_NSR_d_environment__time; // millimole_per_litre_per_second
1320  const NekDouble
1321  var_chaste_interface__intracellular_ion_concentrations__d_Ca_NSR_d_environment__time =
1322  0.001 *
1323  var_chaste_interface__intracellular_ion_concentrations__d_Ca_NSR_d_environment__time_converter; // 'millimolar per millisecond'
1324  const NekDouble d_dt_chaste_interface__sodium_current_m_gate__m =
1325  var_chaste_interface__sodium_current_m_gate__d_m_d_environment__time; // 'per millisecond'
1326  const NekDouble d_dt_chaste_interface__sodium_current_h_gate__h =
1327  var_chaste_interface__sodium_current_h_gate__d_h_d_environment__time; // 'per millisecond'
1328  const NekDouble d_dt_chaste_interface__sodium_current_j_gate__j =
1329  var_chaste_interface__sodium_current_j_gate__d_j_d_environment__time; // 'per millisecond'
1330  const NekDouble d_dt_chaste_interface__L_type_Ca_channel_d_gate__d =
1331  var_chaste_interface__L_type_Ca_channel_d_gate__d_d_d_environment__time; // 'per millisecond'
1332  const NekDouble d_dt_chaste_interface__L_type_Ca_channel_f_11_gate__f_11 =
1333  var_chaste_interface__L_type_Ca_channel_f_11_gate__d_f_11_d_environment__time; // 'per millisecond'
1334  const NekDouble d_dt_chaste_interface__L_type_Ca_channel_f_12_gate__f_12 =
1335  var_chaste_interface__L_type_Ca_channel_f_12_gate__d_f_12_d_environment__time; // 'per millisecond'
1336  const NekDouble
1337  d_dt_chaste_interface__L_type_Ca_channel_Ca_inact_gate__Ca_inact =
1338  var_chaste_interface__L_type_Ca_channel_Ca_inact_gate__d_Ca_inact_d_environment__time; // 'per millisecond'
1339  const NekDouble
1340  d_dt_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r =
1341  var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__d_r_d_environment__time; // 'per millisecond'
1342  const NekDouble
1343  d_dt_chaste_interface__Ca_independent_transient_outward_K_current_s_gate__s =
1344  var_chaste_interface__Ca_independent_transient_outward_K_current_s_gate__d_s_d_environment__time; // 'per millisecond'
1345  const NekDouble
1346  d_dt_chaste_interface__Ca_independent_transient_outward_K_current_s_slow_gate__s_slow =
1347  var_chaste_interface__Ca_independent_transient_outward_K_current_s_slow_gate__d_s_slow_d_environment__time; // 'per millisecond'
1348  const NekDouble
1349  d_dt_chaste_interface__steady_state_outward_K_current_r_ss_gate__r_ss =
1350  var_chaste_interface__steady_state_outward_K_current_r_ss_gate__d_r_ss_d_environment__time; // 'per millisecond'
1351  const NekDouble
1352  d_dt_chaste_interface__steady_state_outward_K_current_s_ss_gate__s_ss =
1353  var_chaste_interface__steady_state_outward_K_current_s_ss_gate__d_s_ss_d_environment__time; // 'per millisecond'
1354  const NekDouble
1355  d_dt_chaste_interface__hyperpolarisation_activated_current_y_gate__y =
1356  var_chaste_interface__hyperpolarisation_activated_current_y_gate__d_y_d_environment__time; // 'per millisecond'
1357  const NekDouble d_dt_chaste_interface__SR_Ca_release_channel__P_O1 =
1358  var_chaste_interface__SR_Ca_release_channel__d_P_O1_d_environment__time; // 'per millisecond'
1359  const NekDouble d_dt_chaste_interface__SR_Ca_release_channel__P_O2 =
1360  var_chaste_interface__SR_Ca_release_channel__d_P_O2_d_environment__time; // 'per millisecond'
1361  const NekDouble d_dt_chaste_interface__SR_Ca_release_channel__P_C1 =
1362  var_chaste_interface__SR_Ca_release_channel__d_P_C1_d_environment__time; // 'per millisecond'
1363  const NekDouble d_dt_chaste_interface__SR_Ca_release_channel__P_C2 =
1364  var_chaste_interface__SR_Ca_release_channel__d_P_C2_d_environment__time; // 'per millisecond'
1365  const NekDouble
1366  d_dt_chaste_interface__intracellular_and_SR_Ca_fluxes__HTRPNCa =
1367  var_chaste_interface__intracellular_and_SR_Ca_fluxes__d_HTRPNCa_d_environment__time; // 'millimole per litre per millisecond'
1368  const NekDouble
1369  d_dt_chaste_interface__intracellular_and_SR_Ca_fluxes__LTRPNCa =
1370  var_chaste_interface__intracellular_and_SR_Ca_fluxes__d_LTRPNCa_d_environment__time; // 'millimole per litre per millisecond'
1371  const NekDouble d_dt_chaste_interface__intracellular_ion_concentrations__Na_i =
1372  var_chaste_interface__intracellular_ion_concentrations__d_Na_i_d_environment__time; // 'millimole per litre per millisecond'
1373  const NekDouble d_dt_chaste_interface__intracellular_ion_concentrations__Ca_i =
1374  var_chaste_interface__intracellular_ion_concentrations__d_Ca_i_d_environment__time; // 'millimole per litre per millisecond'
1375  const NekDouble d_dt_chaste_interface__intracellular_ion_concentrations__K_i =
1376  var_chaste_interface__intracellular_ion_concentrations__d_K_i_d_environment__time; // 'millimole per litre per millisecond'
1377  const NekDouble
1378  d_dt_chaste_interface__intracellular_ion_concentrations__Ca_ss =
1379  var_chaste_interface__intracellular_ion_concentrations__d_Ca_ss_d_environment__time; // 'millimole per litre per millisecond'
1380  const NekDouble
1381  d_dt_chaste_interface__intracellular_ion_concentrations__Ca_JSR =
1382  var_chaste_interface__intracellular_ion_concentrations__d_Ca_JSR_d_environment__time; // 'millimole per litre per millisecond'
1383  const NekDouble
1384  d_dt_chaste_interface__intracellular_ion_concentrations__Ca_NSR =
1385  var_chaste_interface__intracellular_ion_concentrations__d_Ca_NSR_d_environment__time; // 'millimole per litre per millisecond'
1386 
1387  const NekDouble var_membrane__Cm = 0.0001; // microF
1388  const NekDouble var_membrane__i_Na = var_sodium_current__i_Na; // nanoA
1389  const NekDouble var_membrane__i_Ca_L =
1390  var_L_type_Ca_channel__i_Ca_L; // nanoA
1391  const NekDouble var_membrane__i_t =
1392  var_Ca_independent_transient_outward_K_current__i_t; // nanoA
1393  const NekDouble var_membrane__i_ss =
1394  var_steady_state_outward_K_current__i_ss; // nanoA
1395  const NekDouble var_hyperpolarisation_activated_current__i_f =
1396  var_hyperpolarisation_activated_current__i_f_Na +
1397  var_hyperpolarisation_activated_current__i_f_K; // nanoA
1398  const NekDouble var_membrane__i_f =
1399  var_hyperpolarisation_activated_current__i_f; // nanoA
1400  const NekDouble var_membrane__i_K1 =
1401  var_inward_rectifier__i_K1; // nanoA
1402  const NekDouble var_background_currents__i_B =
1403  var_background_currents__i_B_Na + var_background_currents__i_B_Ca +
1404  var_background_currents__i_B_K; // nanoA
1405  const NekDouble var_membrane__i_B =
1406  var_background_currents__i_B; // nanoA
1407  const NekDouble var_membrane__i_NaK =
1408  var_sodium_potassium_pump__i_NaK; // nanoA
1409  const NekDouble var_membrane__i_NaCa =
1410  var_Na_Ca_ion_exchanger_current__i_NaCa; // nanoA
1411  const NekDouble var_membrane__i_Ca_P =
1412  var_sarcolemmal_calcium_pump_current__i_Ca_P; // nanoA
1413  const NekDouble var_chaste_interface__membrane__i_Stim = 0.0;
1414  const NekDouble var_membrane__i_Stim_converter =
1415  var_chaste_interface__membrane__i_Stim; // uA_per_cm2
1416  const NekDouble
1417  var_membrane__chaste_interface__chaste_membrane_capacitance =
1418  1.0; // uF_per_cm2
1419  const NekDouble var_membrane__i_Stim =
1420  1000.0 *
1421  ((var_membrane__i_Stim_converter * var_membrane__Cm) /
1422  var_membrane__chaste_interface__chaste_membrane_capacitance); // nanoA
1423  const NekDouble var_membrane__d_V_d_environment__time =
1424  (-(var_membrane__i_Na + var_membrane__i_Ca_L + var_membrane__i_t +
1425  var_membrane__i_ss + var_membrane__i_f + var_membrane__i_K1 +
1426  var_membrane__i_B + var_membrane__i_NaK + var_membrane__i_NaCa +
1427  var_membrane__i_Ca_P + var_membrane__i_Stim)) /
1428  var_membrane__Cm; // 'millivolt per second'
1429  const NekDouble
1430  var_chaste_interface__membrane__d_V_d_environment__time_converter =
1431  var_membrane__d_V_d_environment__time; // ___units_1
1432  const NekDouble var_chaste_interface__membrane__d_V_d_environment__time =
1433  0.001 *
1434  var_chaste_interface__membrane__d_V_d_environment__time_converter; // 'millivolt per millisecond'
1435  d_dt_chaste_interface__membrane__V =
1436  var_chaste_interface__membrane__d_V_d_environment__time; // 'millivolt
1437  // per
1438  // millisecond'
1439  outarray[0][i] = d_dt_chaste_interface__membrane__V;
1440  outarray[1][i] = 0.0;
1441  outarray[2][i] = d_dt_chaste_interface__sodium_current_m_gate__m;
1442  outarray[3][i] = d_dt_chaste_interface__sodium_current_h_gate__h;
1443  outarray[4][i] = d_dt_chaste_interface__sodium_current_j_gate__j;
1444  outarray[5][i] = d_dt_chaste_interface__L_type_Ca_channel_d_gate__d;
1445  outarray[6][i] =
1446  d_dt_chaste_interface__L_type_Ca_channel_f_11_gate__f_11;
1447  outarray[7][i] =
1448  d_dt_chaste_interface__L_type_Ca_channel_f_12_gate__f_12;
1449  outarray[8][i] =
1450  d_dt_chaste_interface__L_type_Ca_channel_Ca_inact_gate__Ca_inact;
1451  outarray[9][i] =
1452  d_dt_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r;
1453  outarray[10][i] =
1454  d_dt_chaste_interface__Ca_independent_transient_outward_K_current_s_gate__s;
1455  outarray[11][i] =
1456  d_dt_chaste_interface__Ca_independent_transient_outward_K_current_s_slow_gate__s_slow;
1457  outarray[12][i] =
1458  d_dt_chaste_interface__steady_state_outward_K_current_r_ss_gate__r_ss;
1459  outarray[13][i] =
1460  d_dt_chaste_interface__steady_state_outward_K_current_s_ss_gate__s_ss;
1461  outarray[14][i] =
1462  d_dt_chaste_interface__hyperpolarisation_activated_current_y_gate__y;
1463  outarray[15][i] = d_dt_chaste_interface__SR_Ca_release_channel__P_O1;
1464  outarray[16][i] = d_dt_chaste_interface__SR_Ca_release_channel__P_O2;
1465  outarray[17][i] = d_dt_chaste_interface__SR_Ca_release_channel__P_C1;
1466  outarray[18][i] = d_dt_chaste_interface__SR_Ca_release_channel__P_C2;
1467  outarray[19][i] =
1468  d_dt_chaste_interface__intracellular_and_SR_Ca_fluxes__HTRPNCa;
1469  outarray[20][i] =
1470  d_dt_chaste_interface__intracellular_and_SR_Ca_fluxes__LTRPNCa;
1471  outarray[21][i] =
1472  d_dt_chaste_interface__intracellular_ion_concentrations__Na_i;
1473  outarray[22][i] =
1474  d_dt_chaste_interface__intracellular_ion_concentrations__Ca_i;
1475  outarray[23][i] =
1476  d_dt_chaste_interface__intracellular_ion_concentrations__K_i;
1477  outarray[24][i] =
1478  d_dt_chaste_interface__intracellular_ion_concentrations__Ca_ss;
1479  outarray[25][i] =
1480  d_dt_chaste_interface__intracellular_ion_concentrations__Ca_JSR;
1481  outarray[26][i] =
1482  d_dt_chaste_interface__intracellular_ion_concentrations__Ca_NSR;
1483  }
1484 }
1485 
1486 /**
1487  *
1488  */
1490 {
1491  SolverUtils::AddSummaryItem(s, "Cell model", "PanditGilesDemir03");
1492 }
1493 
1494 } // namespace Nektar
Cell model base class.
Definition: CellModel.h:66
int m_nq
Number of physical points.
Definition: CellModel.h:117
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
Definition: NekFactory.hpp:198
static CellModelSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const int nq)
Creates an instance of this class.
virtual void v_GenerateSummary(SummaryList &s)
Prints a summary of the model parameters.
PanditGilesDemir03(const LibUtilities::SessionReaderSharedPtr &pSession, const int nq)
Constructor.
virtual void v_Update(const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray, const NekDouble time)
Computes the reaction terms $f(u,v)$ and $g(u,v)$.
static std::string className
Name of class.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::vector< std::pair< std::string, std::string > > SummaryList
Definition: Misc.h:48
void AddSummaryItem(SummaryList &l, const std::string &name, const std::string &value)
Adds a summary item to the summary info list.
Definition: Misc.cpp:49
The above copyright notice and this permission notice shall be included.
Definition: CoupledSolver.h:1
CellModelFactory & GetCellModelFactory()
Definition: CellModel.cpp:46
double NekDouble
scalarT< T > log(scalarT< T > in)
Definition: scalar.hpp:300