Computes the reaction terms $f(u,v)$ and $g(u,v)$.
47 for (
unsigned int i = 0; i <
m_nq; ++i)
51 NekDouble var_chaste_interface__membrane__V = inarray[0][i];
53 NekDouble var_chaste_interface__fast_sodium_current_m_gate__m =
56 NekDouble var_chaste_interface__fast_sodium_current_h_gate__h =
59 NekDouble var_chaste_interface__fast_sodium_current_j_gate__j =
62 NekDouble var_chaste_interface__slow_inward_current_d_gate__d =
65 NekDouble var_chaste_interface__slow_inward_current_f_gate__f =
69 var_chaste_interface__time_dependent_potassium_current_X_gate__X =
73 var_chaste_interface__intracellular_calcium_concentration__Cai =
78 NekDouble d_dt_chaste_interface__membrane__V;
79 const NekDouble var_fast_sodium_current__j =
80 var_chaste_interface__fast_sodium_current_j_gate__j;
81 const NekDouble var_fast_sodium_current__h =
82 var_chaste_interface__fast_sodium_current_h_gate__h;
83 const NekDouble var_fast_sodium_current__m =
84 var_chaste_interface__fast_sodium_current_m_gate__m;
85 const NekDouble var_fast_sodium_current__V =
86 var_chaste_interface__membrane__V;
87 const NekDouble var_slow_inward_current__d =
88 var_chaste_interface__slow_inward_current_d_gate__d;
89 const NekDouble var_slow_inward_current__f =
90 var_chaste_interface__slow_inward_current_f_gate__f;
91 const NekDouble var_slow_inward_current__V =
92 var_chaste_interface__membrane__V;
93 const NekDouble var_slow_inward_current__Cai =
94 var_chaste_interface__intracellular_calcium_concentration__Cai;
95 const NekDouble var_slow_inward_current__E_si =
97 (13.0287 *
log(var_slow_inward_current__Cai / 1.0));
98 const NekDouble var_slow_inward_current__i_si =
99 0.09 * var_slow_inward_current__d * var_slow_inward_current__f *
100 (var_slow_inward_current__V -
101 var_slow_inward_current__E_si);
102 const NekDouble var_time_dependent_potassium_current__V =
103 var_chaste_interface__membrane__V;
104 const NekDouble var_time_dependent_potassium_current__X =
105 var_chaste_interface__time_dependent_potassium_current_X_gate__X;
107 const NekDouble var_fast_sodium_current_m_gate__m = var_fast_sodium_current__m;
109 const NekDouble var_fast_sodium_current_m_gate__V =
110 var_fast_sodium_current__V;
111 const NekDouble var_fast_sodium_current_m_gate__alpha_m =
112 (0.32 * (var_fast_sodium_current_m_gate__V + 47.13)) /
113 (1.0 - exp((-0.1) * (var_fast_sodium_current_m_gate__V +
115 const NekDouble var_fast_sodium_current_m_gate__beta_m =
117 exp((-var_fast_sodium_current_m_gate__V) / 11.0);
119 const NekDouble var_fast_sodium_current_m_gate__d_m_d_environment__time = (var_fast_sodium_current_m_gate__alpha_m * (1.0 - var_fast_sodium_current_m_gate__m)) - (var_fast_sodium_current_m_gate__beta_m * var_fast_sodium_current_m_gate__m);
120 const NekDouble var_fast_sodium_current__fast_sodium_current_m_gate__d_m_d_environment__time = var_fast_sodium_current_m_gate__d_m_d_environment__time;
122 const NekDouble var_fast_sodium_current_h_gate__V =
123 var_fast_sodium_current__V;
124 const NekDouble var_fast_sodium_current_h_gate__beta_h =
125 (var_fast_sodium_current_h_gate__V < (-40.0))
126 ? ((3.56 * exp(0.079 * var_fast_sodium_current_h_gate__V)) +
127 (310000.0 * exp(0.35 * var_fast_sodium_current_h_gate__V)))
128 : (1.0 / (0.13 * (1.0 + exp((var_fast_sodium_current_h_gate__V +
131 const NekDouble var_fast_sodium_current_h_gate__alpha_h =
132 (var_fast_sodium_current_h_gate__V < (-40.0))
134 exp((80.0 + var_fast_sodium_current_h_gate__V) / (-6.8)))
137 const NekDouble var_fast_sodium_current_h_gate__h = var_fast_sodium_current__h;
138 const NekDouble var_fast_sodium_current_h_gate__d_h_d_environment__time = (var_fast_sodium_current_h_gate__alpha_h * (1.0 - var_fast_sodium_current_h_gate__h)) - (var_fast_sodium_current_h_gate__beta_h * var_fast_sodium_current_h_gate__h);
139 const NekDouble var_fast_sodium_current__fast_sodium_current_h_gate__d_h_d_environment__time = var_fast_sodium_current_h_gate__d_h_d_environment__time;
141 const NekDouble var_fast_sodium_current_j_gate__V =
142 var_fast_sodium_current__V;
143 const NekDouble var_fast_sodium_current_j_gate__alpha_j =
144 (var_fast_sodium_current_j_gate__V < (-40.0))
146 exp(0.2444 * var_fast_sodium_current_j_gate__V)) -
148 exp((-0.04391) * var_fast_sodium_current_j_gate__V))) *
149 (var_fast_sodium_current_j_gate__V + 37.78)) /
151 exp(0.311 * (var_fast_sodium_current_j_gate__V + 79.23))))
153 const NekDouble var_fast_sodium_current_j_gate__beta_j =
154 (var_fast_sodium_current_j_gate__V < (-40.0))
156 exp((-0.01052) * var_fast_sodium_current_j_gate__V)) /
157 (1.0 + exp((-0.1378) *
158 (var_fast_sodium_current_j_gate__V + 40.14))))
160 exp((-2.535e-07) * var_fast_sodium_current_j_gate__V)) /
161 (1.0 + exp((-0.1) * (var_fast_sodium_current_j_gate__V +
164 const NekDouble var_fast_sodium_current_j_gate__j = var_fast_sodium_current__j;
165 const NekDouble var_fast_sodium_current_j_gate__d_j_d_environment__time = (var_fast_sodium_current_j_gate__alpha_j * (1.0 - var_fast_sodium_current_j_gate__j)) - (var_fast_sodium_current_j_gate__beta_j * var_fast_sodium_current_j_gate__j);
166 const NekDouble var_fast_sodium_current__fast_sodium_current_j_gate__d_j_d_environment__time = var_fast_sodium_current_j_gate__d_j_d_environment__time;
168 const NekDouble var_slow_inward_current_d_gate__V =
169 var_slow_inward_current__V;
170 const NekDouble var_slow_inward_current_d_gate__alpha_d =
171 (0.095 * exp((-0.01) * (var_slow_inward_current_d_gate__V - 5.0))) /
172 (1.0 + exp((-0.072) * (var_slow_inward_current_d_gate__V -
175 const NekDouble var_slow_inward_current_d_gate__d = var_slow_inward_current__d;
177 const NekDouble var_slow_inward_current_d_gate__beta_d =
179 exp((-0.017) * (var_slow_inward_current_d_gate__V + 44.0))) /
180 (1.0 + exp(0.05 * (var_slow_inward_current_d_gate__V +
183 const NekDouble var_slow_inward_current_d_gate__d_d_d_environment__time = (var_slow_inward_current_d_gate__alpha_d * (1.0 - var_slow_inward_current_d_gate__d)) - (var_slow_inward_current_d_gate__beta_d * var_slow_inward_current_d_gate__d);
184 const NekDouble var_slow_inward_current__slow_inward_current_d_gate__d_d_d_environment__time = var_slow_inward_current_d_gate__d_d_d_environment__time;
185 const NekDouble var_slow_inward_current_f_gate__f = var_slow_inward_current__f;
187 const NekDouble var_slow_inward_current_f_gate__V =
188 var_slow_inward_current__V;
189 const NekDouble var_slow_inward_current_f_gate__alpha_f =
191 exp((-0.008) * (var_slow_inward_current_f_gate__V + 28.0))) /
192 (1.0 + exp(0.15 * (var_slow_inward_current_f_gate__V +
194 const NekDouble var_slow_inward_current_f_gate__beta_f =
196 exp((-0.02) * (var_slow_inward_current_f_gate__V + 30.0))) /
197 (1.0 + exp((-0.2) * (var_slow_inward_current_f_gate__V +
200 const NekDouble var_slow_inward_current_f_gate__d_f_d_environment__time = (var_slow_inward_current_f_gate__alpha_f * (1.0 - var_slow_inward_current_f_gate__f)) - (var_slow_inward_current_f_gate__beta_f * var_slow_inward_current_f_gate__f);
201 const NekDouble var_slow_inward_current__slow_inward_current_f_gate__d_f_d_environment__time = var_slow_inward_current_f_gate__d_f_d_environment__time;
202 const NekDouble var_time_dependent_potassium_current_X_gate__X = var_time_dependent_potassium_current__X;
204 const NekDouble var_time_dependent_potassium_current_X_gate__V =
205 var_time_dependent_potassium_current__V;
206 const NekDouble var_time_dependent_potassium_current_X_gate__beta_X =
209 (var_time_dependent_potassium_current_X_gate__V + 20.0))) /
211 exp((-0.04) * (var_time_dependent_potassium_current_X_gate__V +
213 const NekDouble var_time_dependent_potassium_current_X_gate__alpha_X =
216 (var_time_dependent_potassium_current_X_gate__V + 50.0))) /
217 (1.0 + exp(0.057 * (var_time_dependent_potassium_current_X_gate__V +
220 const NekDouble var_time_dependent_potassium_current_X_gate__d_X_d_environment__time = (var_time_dependent_potassium_current_X_gate__alpha_X * (1.0 - var_time_dependent_potassium_current_X_gate__X)) - (var_time_dependent_potassium_current_X_gate__beta_X * var_time_dependent_potassium_current_X_gate__X);
221 const NekDouble var_time_dependent_potassium_current__time_dependent_potassium_current_X_gate__d_X_d_environment__time = var_time_dependent_potassium_current_X_gate__d_X_d_environment__time;
223 const NekDouble var_intracellular_calcium_concentration__Cai =
224 var_chaste_interface__intracellular_calcium_concentration__Cai;
225 const NekDouble var_intracellular_calcium_concentration__i_si =
226 var_slow_inward_current__i_si;
228 var_intracellular_calcium_concentration__d_Cai_d_environment__time =
230 var_intracellular_calcium_concentration__i_si) +
233 var_intracellular_calcium_concentration__Cai));
238 const NekDouble var_chaste_interface__fast_sodium_current_m_gate__d_m_d_environment__time = var_fast_sodium_current__fast_sodium_current_m_gate__d_m_d_environment__time;
239 const NekDouble var_chaste_interface__fast_sodium_current_h_gate__d_h_d_environment__time = var_fast_sodium_current__fast_sodium_current_h_gate__d_h_d_environment__time;
240 const NekDouble var_chaste_interface__fast_sodium_current_j_gate__d_j_d_environment__time = var_fast_sodium_current__fast_sodium_current_j_gate__d_j_d_environment__time;
241 const NekDouble var_chaste_interface__slow_inward_current_d_gate__d_d_d_environment__time = var_slow_inward_current__slow_inward_current_d_gate__d_d_d_environment__time;
242 const NekDouble var_chaste_interface__slow_inward_current_f_gate__d_f_d_environment__time = var_slow_inward_current__slow_inward_current_f_gate__d_f_d_environment__time;
243 const NekDouble var_chaste_interface__time_dependent_potassium_current_X_gate__d_X_d_environment__time = var_time_dependent_potassium_current__time_dependent_potassium_current_X_gate__d_X_d_environment__time;
246 var_chaste_interface__intracellular_calcium_concentration__d_Cai_d_environment__time =
247 var_intracellular_calcium_concentration__d_Cai_d_environment__time;
249 const NekDouble d_dt_chaste_interface__fast_sodium_current_m_gate__m = var_chaste_interface__fast_sodium_current_m_gate__d_m_d_environment__time;
250 const NekDouble d_dt_chaste_interface__fast_sodium_current_h_gate__h = var_chaste_interface__fast_sodium_current_h_gate__d_h_d_environment__time;
251 const NekDouble d_dt_chaste_interface__fast_sodium_current_j_gate__j = var_chaste_interface__fast_sodium_current_j_gate__d_j_d_environment__time;
252 const NekDouble d_dt_chaste_interface__slow_inward_current_d_gate__d = var_chaste_interface__slow_inward_current_d_gate__d_d_d_environment__time;
253 const NekDouble d_dt_chaste_interface__slow_inward_current_f_gate__f = var_chaste_interface__slow_inward_current_f_gate__d_f_d_environment__time;
254 const NekDouble d_dt_chaste_interface__time_dependent_potassium_current_X_gate__X = var_chaste_interface__time_dependent_potassium_current_X_gate__d_X_d_environment__time;
257 d_dt_chaste_interface__intracellular_calcium_concentration__Cai =
258 var_chaste_interface__intracellular_calcium_concentration__d_Cai_d_environment__time;
260 const NekDouble var_membrane__R = 8314.0;
262 const NekDouble var_membrane__F = 96484.6;
264 const NekDouble var_chaste_interface__membrane__I_stim = 0.0;
266 var_chaste_interface__membrane__I_stim;
267 const NekDouble var_fast_sodium_current__g_Na = 23.0;
268 const NekDouble var_fast_sodium_current__R =
270 const NekDouble var_fast_sodium_current__F =
272 const NekDouble var_ionic_concentrations__Nao = 140.0;
273 const NekDouble var_fast_sodium_current__Nao =
274 var_ionic_concentrations__Nao;
275 const NekDouble var_ionic_concentrations__Nai = 18.0;
276 const NekDouble var_fast_sodium_current__Nai =
277 var_ionic_concentrations__Nai;
278 const NekDouble var_fast_sodium_current__T = var_membrane__T;
279 const NekDouble var_fast_sodium_current__E_Na =
280 ((var_fast_sodium_current__R * var_fast_sodium_current__T) /
281 var_fast_sodium_current__F) *
282 log(var_fast_sodium_current__Nao /
283 var_fast_sodium_current__Nai);
284 const NekDouble var_fast_sodium_current__i_Na =
285 var_fast_sodium_current__g_Na *
286 pow(var_fast_sodium_current__m, 3.0) * var_fast_sodium_current__h *
287 var_fast_sodium_current__j *
288 (var_fast_sodium_current__V -
289 var_fast_sodium_current__E_Na);
291 var_fast_sodium_current__i_Na;
293 var_slow_inward_current__i_si;
294 const NekDouble var_time_dependent_potassium_current_Xi_gate__V =
295 var_time_dependent_potassium_current__V;
296 const NekDouble var_time_dependent_potassium_current_Xi_gate__Xi =
297 (var_time_dependent_potassium_current_Xi_gate__V > (-100.0))
300 (var_time_dependent_potassium_current_Xi_gate__V +
303 ((var_time_dependent_potassium_current_Xi_gate__V + 77.0) *
305 (var_time_dependent_potassium_current_Xi_gate__V +
308 const NekDouble var_time_dependent_potassium_current__Xi =
309 var_time_dependent_potassium_current_Xi_gate__Xi;
310 const NekDouble var_ionic_concentrations__Ko = 5.4;
311 const NekDouble var_time_dependent_potassium_current__Ko =
312 var_ionic_concentrations__Ko;
313 const NekDouble var_time_dependent_potassium_current__g_K =
314 0.282 *
sqrt(var_time_dependent_potassium_current__Ko /
316 const NekDouble var_time_dependent_potassium_current__PR_NaK =
318 const NekDouble var_time_dependent_potassium_current__F =
320 const NekDouble var_time_dependent_potassium_current__Nao =
321 var_ionic_concentrations__Nao;
322 const NekDouble var_ionic_concentrations__Ki = 145.0;
323 const NekDouble var_time_dependent_potassium_current__Ki =
324 var_ionic_concentrations__Ki;
325 const NekDouble var_time_dependent_potassium_current__Nai =
326 var_ionic_concentrations__Nai;
327 const NekDouble var_time_dependent_potassium_current__T =
329 const NekDouble var_time_dependent_potassium_current__R =
331 const NekDouble var_time_dependent_potassium_current__E_K =
332 ((var_time_dependent_potassium_current__R *
333 var_time_dependent_potassium_current__T) /
334 var_time_dependent_potassium_current__F) *
335 log((var_time_dependent_potassium_current__Ko +
336 (var_time_dependent_potassium_current__PR_NaK *
337 var_time_dependent_potassium_current__Nao)) /
338 (var_time_dependent_potassium_current__Ki +
339 (var_time_dependent_potassium_current__PR_NaK *
340 var_time_dependent_potassium_current__Nai)));
341 const NekDouble var_time_dependent_potassium_current__i_K =
342 var_time_dependent_potassium_current__g_K *
343 var_time_dependent_potassium_current__X *
344 var_time_dependent_potassium_current__Xi *
345 (var_time_dependent_potassium_current__V -
346 var_time_dependent_potassium_current__E_K);
348 var_time_dependent_potassium_current__i_K;
349 const NekDouble var_time_independent_potassium_current__V =
350 var_chaste_interface__membrane__V;
351 const NekDouble var_time_independent_potassium_current_K1_gate__V =
352 var_time_independent_potassium_current__V;
353 const NekDouble var_time_independent_potassium_current__Ki =
354 var_ionic_concentrations__Ki;
355 const NekDouble var_time_independent_potassium_current__R =
357 const NekDouble var_time_independent_potassium_current__F =
359 const NekDouble var_time_independent_potassium_current__Ko =
360 var_ionic_concentrations__Ko;
361 const NekDouble var_time_independent_potassium_current__T =
363 const NekDouble var_time_independent_potassium_current__E_K1 =
364 ((var_time_independent_potassium_current__R *
365 var_time_independent_potassium_current__T) /
366 var_time_independent_potassium_current__F) *
367 log(var_time_independent_potassium_current__Ko /
368 var_time_independent_potassium_current__Ki);
369 const NekDouble var_time_independent_potassium_current_K1_gate__E_K1 =
370 var_time_independent_potassium_current__E_K1;
372 var_time_independent_potassium_current_K1_gate__beta_K1 =
375 ((var_time_independent_potassium_current_K1_gate__V +
377 var_time_independent_potassium_current_K1_gate__E_K1))) +
380 (var_time_independent_potassium_current_K1_gate__V -
381 (var_time_independent_potassium_current_K1_gate__E_K1 +
385 ((var_time_independent_potassium_current_K1_gate__V -
386 var_time_independent_potassium_current_K1_gate__E_K1) +
389 var_time_independent_potassium_current_K1_gate__alpha_K1 =
393 ((var_time_independent_potassium_current_K1_gate__V -
394 var_time_independent_potassium_current_K1_gate__E_K1) -
397 var_time_independent_potassium_current_K1_gate__K1_infinity =
398 var_time_independent_potassium_current_K1_gate__alpha_K1 /
399 (var_time_independent_potassium_current_K1_gate__alpha_K1 +
400 var_time_independent_potassium_current_K1_gate__beta_K1);
401 const NekDouble var_time_independent_potassium_current__K1_infinity =
402 var_time_independent_potassium_current_K1_gate__K1_infinity;
403 const NekDouble var_time_independent_potassium_current__g_K1 =
404 0.6047 *
sqrt(var_time_independent_potassium_current__Ko /
406 const NekDouble var_time_independent_potassium_current__i_K1 =
407 var_time_independent_potassium_current__g_K1 *
408 var_time_independent_potassium_current__K1_infinity *
409 (var_time_independent_potassium_current__V -
410 var_time_independent_potassium_current__E_K1);
412 var_time_independent_potassium_current__i_K1;
413 const NekDouble var_plateau_potassium_current__g_Kp =
415 const NekDouble var_plateau_potassium_current__V =
416 var_chaste_interface__membrane__V;
417 const NekDouble var_plateau_potassium_current__Kp =
418 1.0 / (1.0 + exp((7.488 - var_plateau_potassium_current__V) /
420 const NekDouble var_plateau_potassium_current__E_K1 =
421 var_time_independent_potassium_current__E_K1;
422 const NekDouble var_plateau_potassium_current__E_Kp =
423 var_plateau_potassium_current__E_K1;
424 const NekDouble var_plateau_potassium_current__i_Kp =
425 var_plateau_potassium_current__g_Kp *
426 var_plateau_potassium_current__Kp *
427 (var_plateau_potassium_current__V -
428 var_plateau_potassium_current__E_Kp);
430 var_plateau_potassium_current__i_Kp;
431 const NekDouble var_background_current__E_b = -59.87;
432 const NekDouble var_background_current__g_b = 0.03921;
433 const NekDouble var_background_current__V =
434 var_chaste_interface__membrane__V;
435 const NekDouble var_background_current__i_b =
436 var_background_current__g_b *
437 (var_background_current__V -
438 var_background_current__E_b);
440 var_background_current__i_b;
441 const NekDouble var_membrane__d_V_d_environment__time =
442 ((-1.0) / var_membrane__C) *
443 (var_membrane__I_stim + var_membrane__i_Na + var_membrane__i_si +
444 var_membrane__i_K + var_membrane__i_K1 + var_membrane__i_Kp +
447 var_chaste_interface__membrane__d_V_d_environment__time =
448 var_membrane__d_V_d_environment__time;
449 d_dt_chaste_interface__membrane__V =
450 var_chaste_interface__membrane__d_V_d_environment__time;
453 const NekDouble m_inf = var_fast_sodium_current_m_gate__alpha_m /
454 (var_fast_sodium_current_m_gate__alpha_m +
455 var_fast_sodium_current_m_gate__beta_m);
456 const NekDouble m_tau = 1.0 / (var_fast_sodium_current_m_gate__alpha_m +
457 var_fast_sodium_current_m_gate__beta_m);
458 const NekDouble h_inf = var_fast_sodium_current_h_gate__alpha_h /
459 (var_fast_sodium_current_h_gate__alpha_h +
460 var_fast_sodium_current_h_gate__beta_h);
461 const NekDouble h_tau = 1.0 / (var_fast_sodium_current_h_gate__alpha_h +
462 var_fast_sodium_current_h_gate__beta_h);
463 const NekDouble j_inf = var_fast_sodium_current_j_gate__alpha_j /
464 (var_fast_sodium_current_j_gate__alpha_j +
465 var_fast_sodium_current_j_gate__beta_j);
466 const NekDouble j_tau = 1.0 / (var_fast_sodium_current_j_gate__alpha_j +
467 var_fast_sodium_current_j_gate__beta_j);
468 const NekDouble d_inf = var_slow_inward_current_d_gate__alpha_d /
469 (var_slow_inward_current_d_gate__alpha_d +
470 var_slow_inward_current_d_gate__beta_d);
471 const NekDouble d_tau = 1.0 / (var_slow_inward_current_d_gate__alpha_d +
472 var_slow_inward_current_d_gate__beta_d);
473 const NekDouble f_inf = var_slow_inward_current_f_gate__alpha_f /
474 (var_slow_inward_current_f_gate__alpha_f +
475 var_slow_inward_current_f_gate__beta_f);
476 const NekDouble f_tau = 1.0 / (var_slow_inward_current_f_gate__alpha_f +
477 var_slow_inward_current_f_gate__beta_f);
479 var_time_dependent_potassium_current_X_gate__alpha_X /
480 (var_time_dependent_potassium_current_X_gate__alpha_X +
481 var_time_dependent_potassium_current_X_gate__beta_X);
483 1.0 / (var_time_dependent_potassium_current_X_gate__alpha_X +
484 var_time_dependent_potassium_current_X_gate__beta_X);
486 outarray[0][i] = d_dt_chaste_interface__membrane__V;
487 outarray[1][i] = m_inf;
489 outarray[2][i] = h_inf;
491 outarray[3][i] = j_inf;
493 outarray[4][i] = d_inf;
495 outarray[5][i] = f_inf;
497 outarray[6][i] = X_inf;
500 d_dt_chaste_interface__intracellular_calcium_concentration__Cai;
Array< OneD, Array< OneD, NekDouble > > m_gates_tau
Storage for gate tau values.
scalarT< T > log(scalarT< T > in)
scalarT< T > sqrt(scalarT< T > in)