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