From e401d52fc584d4cba7330bd1aee3b741269d7084 Mon Sep 17 00:00:00 2001 From: Dr Maurice Hendrix <52317399+MauriceHendrix@users.noreply.github.com> Date: Thu, 21 Apr 2022 14:51:43 +0100 Subject: [PATCH] fixing appredict error (#240) * fixing appredict error --- RELEASE.md | 6 +- chaste_codegen/_partial_eval.py | 5 - .../BE/aslanidi_atrial_model_2009.cpp | 131 +- .../BE/aslanidi_atrial_model_2009.cpp_alt | 129 +- .../BE/li_mouse_2010.cpp | 276 +-- .../BE/li_mouse_2010.cpp_alt | 286 +-- ...szigeti_bett_kim_rasmusson_2004_apical.cpp | 4 +- ...eti_bett_kim_rasmusson_2004_apical.cpp_alt | 4 +- .../BEopt/decker_2009.cpp | 862 +++---- .../BEopt/decker_2009.cpp_alt | 856 +++---- ...squalini_bers_2010_ssCvodeDataClampOpt.cpp | 4 +- ..._huxley_squid_axon_model_1952_modified.cpp | 4 +- .../dynamic_aslanidi_Purkinje_model_2009.cpp | 8 +- .../Cvode_opt/hilgemann_noble_model_1987.cpp | 32 +- .../dynamic_Shannon2004.cpp | 2106 ----------------- .../dynamic_Shannon2004.hpp | 86 - ..._huxley_squid_axon_model_1952_modified.cpp | 59 +- ...ley_squid_axon_model_1952_modified.cpp_alt | 61 +- .../aslanidi_atrial_model_2009.cpp | 794 ++++--- .../aslanidi_atrial_model_2009.cpp_alt | 808 ++++--- .../dynamic_Shannon2004.cpp | 557 ++--- .../dynamic_Shannon2004.cpp_alt | 579 ++--- ..._huxley_squid_axon_model_1952_modified.cpp | 47 +- ...ley_squid_axon_model_1952_modified.cpp_alt | 47 +- ..._huxley_squid_axon_model_1952_modified.cpp | 48 +- ...ley_squid_axon_model_1952_modified.cpp_alt | 48 +- .../GRL1Opt/beeler_reuter_model_1977.cpp | 168 +- .../GRL1Opt/beeler_reuter_model_1977.cpp_alt | 166 +- .../GRL2/dynamic_winslow_model_1999.cpp | 235 +- .../GRL2/dynamic_winslow_model_1999.cpp_alt | 245 +- ..._huxley_squid_axon_model_1952_modified.cpp | 48 +- ...ley_squid_axon_model_1952_modified.cpp_alt | 48 +- .../dynamic_viswanathan_model_1999_epi.cpp | 1047 ++++---- ...dynamic_viswanathan_model_1999_epi.cpp_alt | 1083 ++++----- ..._huxley_squid_axon_model_1952_modified.cpp | 70 +- ...ley_squid_axon_model_1952_modified.cpp_alt | 70 +- ...rudy_1991_with_range_cap_dimensionless.cpp | 12 +- ..._1991_with_range_cap_dimensionless.cpp_alt | 12 +- .../dynamic_aslanidi_Purkinje_model_2009.cpp | 8 +- ..._huxley_squid_axon_model_1952_modified.cpp | 4 +- ...n_dynamic_aslanidi_Purkinje_model_2009.cpp | 8 +- ..._huxley_squid_axon_model_1952_modified.cpp | 8 +- .../data/tests/test_jacobian_equations_1.txt | 2 +- .../data/tests/test_jacobian_equations_2.txt | 2 +- .../data/tests/test_jacobian_matrix_1.txt | 2 +- .../data/tests/test_jacobian_matrix_2.txt | 2 +- .../test_partial_eval_derivatives_eqs.txt | 2 +- chaste_codegen/tests/test_jacobian.py | 2 +- chaste_codegen/version.txt | 2 +- 49 files changed, 4568 insertions(+), 6525 deletions(-) delete mode 100644 chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/dynamic_Shannon2004.cpp delete mode 100644 chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/dynamic_Shannon2004.hpp diff --git a/RELEASE.md b/RELEASE.md index 4617f580..5e7bcf5d 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,7 +1,7 @@ -# Release 0.9.8 +# Release 0.9.9 - Fixed an issue with unused variables appearing in common terms in jacobians. -- Fixes a bug printing large integers, in some environments: Large numbers such as 8.034023767017109e+27 whch were actually ints would be printed as an the int 8034023767017108950029959168 and then the C++ compiler would complain as that's more than the maximum int value. This has been fixed by only printing ints as ints if they are `MIN_INT < number < MAX_INT` else we print them as a float (and we get the sceintific notation). -- Fixed tests to pass with sympy 1.10 and required latest cellmlmanip, which also workes with sympy1.10. Updated sympy requirement to be >=1.9, < 1.11 +- Fixes a bug printing large integers, in some environments: Large numbers such as 8.034023767017109e+27 which were actually ints would be printed as an the int 8034023767017108950029959168 and then the C++ compiler would complain as that's more than the maximum int value. This has been fixed by only printing ints as ints if they are `MIN_INT < number < MAX_INT` else we print them as a float (and we get the sceintific notation). +- Fixed tests to pass with sympy 1.10 and required latest cellmlmanip, which also works with sympy1.10. Updated sympy requirement to be >=1.9, < 1.11 # Release 0.9.5 - Corrected a type in the generated output for `--rush-larsen-c` diff --git a/chaste_codegen/_partial_eval.py b/chaste_codegen/_partial_eval.py index c40dd7eb..ec86e2c0 100644 --- a/chaste_codegen/_partial_eval.py +++ b/chaste_codegen/_partial_eval.py @@ -5,13 +5,10 @@ Float, Piecewise, cse, - exp, piecewise_fold, ) from sympy.core import Symbol -from chaste_codegen._math_functions import exp_ - def get_usage_count(equations): """Counts the amount of times the lhs for each eq is used on the rhs in the set of equations following it. @@ -36,12 +33,10 @@ def fold_piecewises(expr): # Since piecewise_fold hangs with some complicated nestings, due to simplification we use the following workaround: # First extract common terms, perform piecewise_fold, re-insert the common terms # see: https://github.com/sympy/sympy/issues/20850 - expr = expr.replace(exp, exp_) common_terms, expr = cse(expr) expr = piecewise_fold(expr[0]) for term, ex in reversed(common_terms): expr = expr.xreplace({term: ex}) - expr = expr.replace(exp_, exp) return expr diff --git a/chaste_codegen/data/tests/chaste_reference_models/BE/aslanidi_atrial_model_2009.cpp b/chaste_codegen/data/tests/chaste_reference_models/BE/aslanidi_atrial_model_2009.cpp index 875fb20e..f31e8993 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/BE/aslanidi_atrial_model_2009.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/BE/aslanidi_atrial_model_2009.cpp @@ -411,53 +411,56 @@ const double var_x39 = 0.58999999999999997 + var_chaste_interface__cleft_space_ion_concentrations__K_c; const double var_x40 = pow(var_x39, (-3)); const double var_x41 = 1 / var_chaste_interface__intracellular_ion_concentrations__K_i; - const double var_x42 = var_x41 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x43 = pow(var_x42, (-1.393)); - const double var_x44 = exp(0.052487898287663745 * var_chaste_interface__membrane__V); - const double var_x45 = var_x43 * var_x44; - const double var_x46 = 1 / (1 + 1.207988323918572 * var_x45); - const double var_x47 = var_x46 * mParameters[6]; - const double var_x48 = var_x40 * var_x47; - const double var_x49 = var_x38 * var_x48; - const double var_x50 = -26.53945091048535 * log(var_x42) + var_chaste_interface__membrane__V; - const double var_x51 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 3); - const double var_x52 = var_x47 * var_x51 / pow(var_x39, 4); - const double var_x53 = pow(var_x31, (-2)); - const double var_x54 = pow((0.82782257096336631 + var_x45), (-2)); - const double var_x55 = var_x22 * var_x41; - const double var_x56 = var_x37 * var_x41; - const double var_x57 = var_x41 * var_x51; - const double var_x58 = var_x48 * var_x57; - const double var_x59 = var_x40 * var_x45 * var_x50 * var_x54 * mParameters[6]; - const double var_x60 = var_x35 * sqrt(var_chaste_interface__intracellular_ion_concentrations__Na_i) * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x61 = pow((1 + 0.027410122234342148 * var_x29), (-2)); - const double var_x62 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2); - const double var_x63 = 200 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x64 = 0.00088070109612833447 * var_x3; - const double var_x65 = 32 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x66 = 0.00020000000000000001 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x67 = pow(mParameters[2], 3); - const double var_x68 = var_x67 * mParameters[9]; - const double var_x69 = var_x67 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x70 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 3) * mParameters[1]; - const double var_x71 = 1 + 0.00029999999999999997 * var_x69 + 0.00029999999999999997 * var_x70; - const double var_x72 = pow(var_x71, (-2)); - const double var_x73 = exp(0.016955889611951675 * var_chaste_interface__membrane__V); - const double var_x74 = exp(-0.02072386508127427 * var_chaste_interface__membrane__V); - const double var_x75 = var_x70 * var_x73 - var_x69 * var_x74; - const double var_x76 = var_x72 * var_x75; - const double var_x77 = var_x68 * var_x76; - const double var_x78 = 1 / var_x71; - const double var_x79 = var_x68 * var_x74 * var_x78; - const double var_x80 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2); - const double var_x81 = var_x80 * mParameters[9] * mParameters[1]; - const double var_x82 = 0.021829942145742926 * var_x23; - const double var_x83 = -3.290319067574035e-6 - 4.9354786013610522e-6 * var_x25; - const double var_x84 = 0.0049352811901134472 * var_x50; - const double var_x85 = var_x29 * var_x30 * var_x33 * var_x53 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x86 = 1 / var_chaste_interface__intracellular_ion_concentrations__Na_i; - const double var_x88 = pow(var_chaste_interface__sodium_current_m_gate__m, 3) * (0.36499999999999999 * var_chaste_interface__sodium_current_h2_gate__h2 + 0.63500000000000001 * var_chaste_interface__sodium_current_h1_gate__h1) * mParameters[5]; - const double var_x89 = exp(0.037679754693225945 * var_chaste_interface__membrane__V); + const double var_x42 = log(var_x41 * var_chaste_interface__cleft_space_ion_concentrations__K_c); + const double var_x43 = exp(0.18895643383558949 + 0.052487898287663745 * var_chaste_interface__membrane__V - 1.393 * var_x42); + const double var_x44 = 1 + var_x43; + const double var_x45 = 1 / var_x44; + const double var_x46 = var_x45 * mParameters[6]; + const double var_x47 = var_x40 * var_x46; + const double var_x48 = var_x38 * var_x47; + const double var_x49 = -26.53945091048535 * var_x42 + var_chaste_interface__membrane__V; + const double var_x50 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 3); + const double var_x51 = var_x46 * var_x50 / pow(var_x39, 4); + const double var_x52 = pow(var_x31, (-2)); + const double var_x53 = pow(var_x44, (-2)); + const double var_x54 = var_x22 * var_x41; + const double var_x55 = var_x37 * var_x41; + const double var_x56 = var_x41 * var_x50; + const double var_x57 = var_x47 * var_x56; + const double var_x58 = var_x40 * var_x43 * var_x49 * var_x53 * mParameters[6]; + const double var_x59 = var_x35 * sqrt(var_chaste_interface__intracellular_ion_concentrations__Na_i) * var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x60 = pow((1 + 0.027410122234342148 * var_x29), (-2)); + const double var_x61 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2); + const double var_x62 = 200 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x63 = 0.00088070109612833447 * var_x3; + const double var_x64 = 32 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x65 = 0.00020000000000000001 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x66 = pow(mParameters[2], 3); + const double var_x67 = var_x66 * mParameters[9]; + const double var_x68 = var_x66 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x69 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 3) * mParameters[1]; + const double var_x70 = 1 + 0.00029999999999999997 * var_x68 + 0.00029999999999999997 * var_x69; + const double var_x71 = pow(var_x70, (-2)); + const double var_x72 = exp(0.016955889611951675 * var_chaste_interface__membrane__V); + const double var_x73 = exp(-0.02072386508127427 * var_chaste_interface__membrane__V); + const double var_x74 = var_x69 * var_x72 - var_x68 * var_x73; + const double var_x75 = var_x71 * var_x74; + const double var_x76 = var_x67 * var_x75; + const double var_x77 = 1 / var_x70; + const double var_x78 = var_x67 * var_x73 * var_x77; + const double var_x79 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2); + const double var_x80 = var_x79 * mParameters[9] * mParameters[1]; + const double var_x81 = 0.021829942145742926 * var_x23; + const double var_x82 = -3.290319067574035e-6 - 4.9354786013610522e-6 * var_x25; + const double var_x83 = 0.0049352811901134472 * var_x49; + const double var_x84 = var_x29 * var_x30 * var_x33 * var_x52 * var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x85 = 1 / var_chaste_interface__intracellular_ion_concentrations__Na_i; + const double var_x86 = var_x85 * mParameters[2]; + const double var_x87 = log(var_x86); + const double var_x88 = var_x86 * pow(var_chaste_interface__sodium_current_m_gate__m, 3) * (0.36499999999999999 * var_chaste_interface__sodium_current_h2_gate__h2 + 0.63500000000000001 * var_chaste_interface__sodium_current_h1_gate__h1) * mParameters[5]; + const double var_x89 = 0.0096486999999999996 * var_x88; + const double var_x90 = var_x89 * exp(-9.9999999999999995e-8 - var_x87) / (-1 + exp(-9.9999999999999995e-8)); + const double var_x91 = 0.037679754693225945 * var_chaste_interface__membrane__V; rJacobian[0][0] = 1.0 - (mDt * (-14.98 - var_x4 + 14.880000000000001 * var_chaste_interface__Ca_handling_by_the_SR__O_Calse)); @@ -550,14 +553,14 @@ rJacobian[6][3] = 0.0; rJacobian[6][4] = 0.0; rJacobian[6][5] = 0.0; - rJacobian[6][6] = 1.0 - (mDt * (-0.00085446536839159674 * var_x36 - 0.22004581682908866 * var_x49 - var_x22 * var_x24 - var_x23 * var_x28 - var_x24 * var_x37 - 0.024873817198171774 * var_x50 * var_x52 + 0.024873817198171774 * var_x38 * var_x40 * var_x46 * var_x50 * mParameters[6] + 0.00085446536839159674 * var_x29 * var_x30 * var_x33 * var_x53 * var_chaste_interface__cleft_space_ion_concentrations__K_c + 0.0095611374908700173 * var_x38 * var_x40 * var_x43 * var_x44 * var_x50 * var_x54 * mParameters[6])); + rJacobian[6][6] = 1.0 - (mDt * (-0.00085446536839159674 * var_x36 - 0.22004581682908866 * var_x48 - var_x22 * var_x24 - var_x23 * var_x28 - var_x24 * var_x37 - 0.024873817198171774 * var_x49 * var_x51 + 0.024873817198171774 * var_x38 * var_x40 * var_x45 * var_x49 * mParameters[6] + 0.00085446536839159674 * var_x29 * var_x30 * var_x33 * var_x52 * var_chaste_interface__cleft_space_ion_concentrations__K_c + 0.011549742452351092 * var_x38 * var_x40 * var_x43 * var_x49 * var_x53 * mParameters[6])); rJacobian[6][7] = 0.0; rJacobian[6][8] = 0.0; rJacobian[6][9] = 0.0; rJacobian[6][10] = 0.0; rJacobian[6][11] = 0.0; - rJacobian[6][12] = -(mDt * (0.11002290841454433 * var_x55 + 0.11002290841454433 * var_x56 + 0.22004581682908866 * var_x58 + var_x28 * var_x41 - 0.0095611374908700173 * var_x57 * var_x59)); - rJacobian[6][13] = -(mDt * (-0.0012816980525873951 * var_x60 + 9.6295871719563877e-7 * var_x32 * var_x33 * var_x61 * var_x62 * var_chaste_interface__cleft_space_ion_concentrations__K_c)); + rJacobian[6][12] = -(mDt * (0.11002290841454433 * var_x54 + 0.11002290841454433 * var_x55 + 0.22004581682908866 * var_x57 + var_x28 * var_x41 - 0.011549742452351092 * var_x56 * var_x58)); + rJacobian[6][13] = -(mDt * (-0.0012816980525873951 * var_x59 + 9.6295871719563877e-7 * var_x32 * var_x33 * var_x60 * var_x61 * var_chaste_interface__cleft_space_ion_concentrations__K_c)); rJacobian[7][0] = 0.0; rJacobian[7][1] = 0.0; rJacobian[7][2] = 0.0; @@ -565,7 +568,7 @@ rJacobian[7][4] = 0.0; rJacobian[7][5] = 0.0; rJacobian[7][6] = 0.0; - rJacobian[7][7] = 1.0 - (mDt * (-0.47599999999999998 - var_x63)); + rJacobian[7][7] = 1.0 - (mDt * (-0.47599999999999998 - var_x62)); rJacobian[7][8] = 0.0; rJacobian[7][9] = 0.0; rJacobian[7][10] = 0.0; @@ -595,8 +598,8 @@ rJacobian[9][6] = 0.0; rJacobian[9][7] = 0.0; rJacobian[9][8] = 0.0; - rJacobian[9][9] = 1.0 - (mDt * (-0.0066 - var_x63)); - rJacobian[9][10] = -(mDt * (-var_x63)); + rJacobian[9][9] = 1.0 - (mDt * (-0.0066 - var_x62)); + rJacobian[9][10] = -(mDt * (-var_x62)); rJacobian[9][11] = -(mDt * (200 - 200 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC - 200 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg)); rJacobian[9][12] = 0.0; rJacobian[9][13] = 0.0; @@ -614,7 +617,7 @@ rJacobian[10][11] = 0.0; rJacobian[10][12] = 0.0; rJacobian[10][13] = 0.0; - rJacobian[11][0] = -(mDt * (var_x64)); + rJacobian[11][0] = -(mDt * (var_x63)); rJacobian[11][1] = -(mDt * (1.7754934097947219e-10 * var_x11 + 0.00078910818213098765 * var_x8)); rJacobian[11][2] = 0.0; rJacobian[11][3] = -(mDt * (-0.0017614021922566689 * var_x5 * var_x7 + 0.0017614021922566689 * var_x1 * var_x5 * var_chaste_interface__Ca_handling_by_the_SR__F2 * mParameters[0])); @@ -623,39 +626,39 @@ rJacobian[11][6] = 0.0; rJacobian[11][7] = -(mDt * (0.021419999999999998 + 9 * var_chaste_interface__intracellular_ion_concentrations__Ca_i)); rJacobian[11][8] = -(mDt * (0.031359999999999999 + 6.2720000000000002 * var_chaste_interface__intracellular_ion_concentrations__Ca_i)); - rJacobian[11][9] = -(mDt * (0.0010559999999999999 + var_x65)); - rJacobian[11][10] = -(mDt * (var_x65)); - rJacobian[11][11] = 1.0 - (mDt * (-47.271999999999998 - var_x64 + 6.2720000000000002 * var_chaste_interface__intracellular_Ca_buffering__O_TC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg + 9 * var_chaste_interface__intracellular_Ca_buffering__O_C - 8.3745867230843319e-6 / var_x66 - 5.2842065767700058e-7 * var_x77 - 8.2198768971977874 * var_x8 - 0.0017614021922566689 * var_x79 - 2.3373323507508574e-7 / var_chaste_interface__intracellular_ion_concentrations__Ca_i + 8.3745867230843319e-6 * var_chaste_interface__intracellular_ion_concentrations__Ca_i / pow(var_x66, 2) + 7.3978892074780085e-7 * var_x10 * var_x9)); + rJacobian[11][9] = -(mDt * (0.0010559999999999999 + var_x64)); + rJacobian[11][10] = -(mDt * (var_x64)); + rJacobian[11][11] = 1.0 - (mDt * (-47.271999999999998 - var_x63 + 6.2720000000000002 * var_chaste_interface__intracellular_Ca_buffering__O_TC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg + 9 * var_chaste_interface__intracellular_Ca_buffering__O_C - 8.3745867230843319e-6 / var_x65 - 5.2842065767700058e-7 * var_x76 - 8.2198768971977874 * var_x8 - 0.0017614021922566689 * var_x78 - 2.3373323507508574e-7 / var_chaste_interface__intracellular_ion_concentrations__Ca_i + 8.3745867230843319e-6 * var_chaste_interface__intracellular_ion_concentrations__Ca_i / pow(var_x65, 2) + 7.3978892074780085e-7 * var_x10 * var_x9)); rJacobian[11][12] = 0.0; - rJacobian[11][13] = -(mDt * (-1.5852619730310017e-6 * var_x76 * var_x81 + 0.0052842065767700064 * var_x73 * var_x78 * var_x80 * mParameters[9] * mParameters[1])); + rJacobian[11][13] = -(mDt * (-1.5852619730310017e-6 * var_x75 * var_x80 + 0.0052842065767700064 * var_x72 * var_x77 * var_x79 * mParameters[9] * mParameters[1])); rJacobian[12][0] = 0.0; rJacobian[12][1] = 0.0; rJacobian[12][2] = 0.0; rJacobian[12][3] = 0.0; rJacobian[12][4] = 0.0; rJacobian[12][5] = 0.0; - rJacobian[12][6] = -(mDt * (0.043659884291485852 * var_x49 + 0.00016953677944277714 * var_x36 - 0.00016953677944277714 * var_x85 + var_x22 * var_x82 + var_x37 * var_x82 + var_x52 * var_x84 - var_x49 * var_x84 - 0.0018970510894583371 * var_x38 * var_x59 - var_x23 * var_x27 * var_x83)); + rJacobian[12][6] = -(mDt * (0.043659884291485852 * var_x48 + 0.00016953677944277714 * var_x36 - 0.00016953677944277714 * var_x84 + var_x22 * var_x81 + var_x37 * var_x81 + var_x51 * var_x83 - var_x48 * var_x83 - 0.0022916155659426776 * var_x38 * var_x58 - var_x23 * var_x27 * var_x82)); rJacobian[12][7] = 0.0; rJacobian[12][8] = 0.0; rJacobian[12][9] = 0.0; rJacobian[12][10] = 0.0; rJacobian[12][11] = 0.0; - rJacobian[12][12] = 1.0 - (mDt * (-0.021829942145742926 * var_x55 - 0.021829942145742926 * var_x56 - 0.043659884291485852 * var_x58 + 26.53945091048535 * var_x26 * var_x41 * var_x83 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 0.0018970510894583371 * var_x40 * var_x41 * var_x43 * var_x44 * var_x50 * var_x51 * var_x54 * mParameters[6])); - rJacobian[12][13] = -(mDt * (0.00025430516916416572 * var_x60 - 1.9106323753881723e-7 * var_x34 * var_x61 * var_x62 * var_chaste_interface__cleft_space_ion_concentrations__K_c)); + rJacobian[12][12] = 1.0 - (mDt * (-0.021829942145742926 * var_x54 - 0.021829942145742926 * var_x55 - 0.043659884291485852 * var_x57 + 26.53945091048535 * var_x26 * var_x41 * var_x82 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 0.0022916155659426776 * var_x40 * var_x41 * var_x43 * var_x49 * var_x50 * var_x53 * mParameters[6])); + rJacobian[12][13] = -(mDt * (0.00025430516916416572 * var_x59 - 1.9106323753881723e-7 * var_x34 * var_x60 * var_x61 * var_chaste_interface__cleft_space_ion_concentrations__K_c)); rJacobian[13][0] = 0.0; rJacobian[13][1] = 0.0; rJacobian[13][2] = 0.0; rJacobian[13][3] = 0.0; rJacobian[13][4] = 0.0; rJacobian[13][5] = 0.0; - rJacobian[13][6] = -(mDt * (0.00025430516916416572 * var_x85 - 0.00025430516916416572 * var_x36)); + rJacobian[13][6] = -(mDt * (0.00025430516916416572 * var_x84 - 0.00025430516916416572 * var_x36)); rJacobian[13][7] = 0.0; rJacobian[13][8] = 0.0; rJacobian[13][9] = 0.0; rJacobian[13][10] = 0.0; - rJacobian[13][11] = -(mDt * (0.0024676405950567236 * var_x79 + 7.4029217851701709e-7 * var_x77)); + rJacobian[13][11] = -(mDt * (0.0024676405950567236 * var_x78 + 7.4029217851701709e-7 * var_x76)); rJacobian[13][12] = 0.0; - rJacobian[13][13] = 1.0 - (mDt * (-0.00038145775374624855 * var_x60 - 4.3659884291485854e-7 * var_x86 - 0.00082254686501890791 * (((var_chaste_interface__membrane__V >= -2.6539450910485349e-6) && (var_chaste_interface__membrane__V <= 2.6539450910485349e-6)) ? (96486.995175714823 * var_x88 + 0.0096480430789824823 * var_x88 * (0.5 + 188398.77346612973 * var_chaste_interface__membrane__V)) : (3635.606491085292 * var_x88 * var_x89 * var_chaste_interface__membrane__V / (-1 + var_x89))) - 0.0074029217851701709 * var_x73 * var_x78 * var_x81 + 2.2208765355510512e-6 * var_x72 * var_x75 * var_x80 * mParameters[9] * mParameters[1] + 2.8659485630822583e-7 * var_x32 * var_x33 * var_x61 * var_x62 * var_chaste_interface__cleft_space_ion_concentrations__K_c)); + rJacobian[13][13] = 1.0 - (mDt * (-0.00038145775374624855 * var_x59 - 4.3659884291485854e-7 * var_x85 - 0.00082254686501890791 * (((var_chaste_interface__membrane__V >= -2.6539450910485349e-6) && (var_chaste_interface__membrane__V <= 2.6539450910485349e-6)) ? (-var_x90 + (0.5 + 188398.77346612973 * var_chaste_interface__membrane__V) * (var_x90 + var_x89 * exp(9.9999999999999995e-8 - var_x87) / (-1 + exp(9.9999999999999995e-8)))) : (3635.606491085292 * var_x88 * var_chaste_interface__membrane__V * exp(var_x91 - var_x87) / (-1 + exp(var_x91)))) - 0.0074029217851701709 * var_x72 * var_x77 * var_x80 + 2.2208765355510512e-6 * var_x71 * var_x74 * var_x79 * mParameters[9] * mParameters[1] + 2.8659485630822583e-7 * var_x32 * var_x33 * var_x60 * var_x61 * var_chaste_interface__cleft_space_ion_concentrations__K_c)); } void Cellaslanidi_atrial_model_2009FromCellMLBackwardEuler::UpdateTransmembranePotential(double var_chaste_interface__environment__time_converted) diff --git a/chaste_codegen/data/tests/chaste_reference_models/BE/aslanidi_atrial_model_2009.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/BE/aslanidi_atrial_model_2009.cpp_alt index 567d80d0..7272e128 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/BE/aslanidi_atrial_model_2009.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/BE/aslanidi_atrial_model_2009.cpp_alt @@ -412,50 +412,55 @@ const double var_x40 = 0.58999999999999997 + var_chaste_interface__cleft_space_ion_concentrations__K_c; const double var_x41 = pow(var_x40, (-3)); const double var_x42 = 1 / var_chaste_interface__intracellular_ion_concentrations__K_i; - const double var_x43 = var_x42 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x44 = pow(var_x43, (-1.393)) * exp(0.052487898287663745 * var_chaste_interface__membrane__V); - const double var_x45 = mParameters[6] / (1 + 1.207988323918572 * var_x44); - const double var_x46 = var_x41 * var_x45; - const double var_x47 = var_x39 * var_x46; - const double var_x48 = -26.53945091048535 * log(var_x43) + var_chaste_interface__membrane__V; - const double var_x49 = 0.024873817198171774 * var_x48; - const double var_x50 = var_x31 * var_x32 * var_x34 * var_chaste_interface__cleft_space_ion_concentrations__K_c / pow(var_x33, 2); - const double var_x51 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 3); - const double var_x52 = var_x45 * var_x51 / pow(var_x40, 4); - const double var_x53 = var_x41 * var_x44 * var_x48 * mParameters[6] / pow((0.82782257096336631 + var_x44), 2); - const double var_x54 = var_x39 * var_x53; - const double var_x55 = var_x25 * var_x42; - const double var_x56 = var_x38 * var_x42; - const double var_x57 = var_x42 * var_x51; - const double var_x58 = var_x46 * var_x57; - const double var_x59 = var_x53 * var_x57; - const double var_x60 = var_x35 * pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2) * var_chaste_interface__cleft_space_ion_concentrations__K_c / pow((1 + 0.027410122234342148 * var_x31), 2); - const double var_x61 = var_x36 * sqrt(var_chaste_interface__intracellular_ion_concentrations__Na_i) * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x62 = -200 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x63 = 0.00088070109612833447 * var_x3; - const double var_x64 = 0.0017614021922566689 * var_x5; - const double var_x65 = 32 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x66 = 0.00020000000000000001 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x67 = pow(mParameters[2], 3); - const double var_x68 = var_x67 * mParameters[9]; - const double var_x69 = var_x67 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x70 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 3) * mParameters[1]; - const double var_x71 = 1 + 0.00029999999999999997 * var_x69 + 0.00029999999999999997 * var_x70; - const double var_x72 = exp(0.016955889611951675 * var_chaste_interface__membrane__V); - const double var_x73 = exp(-0.02072386508127427 * var_chaste_interface__membrane__V); - const double var_x74 = (var_x70 * var_x72 - var_x69 * var_x73) / pow(var_x71, 2); - const double var_x75 = var_x68 * var_x74; - const double var_x76 = 1 / var_x71; - const double var_x77 = var_x68 * var_x73 * var_x76; - const double var_x78 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2) * mParameters[9] * mParameters[1]; - const double var_x79 = var_x72 * var_x76 * var_x78; - const double var_x80 = var_x74 * var_x78; - const double var_x81 = 0.021829942145742926 * var_x26; - const double var_x82 = var_x29 * (-3.290319067574035e-6 - 4.9354786013610522e-6 * var_x28); - const double var_x83 = 0.0049352811901134472 * var_x48; - const double var_x84 = 1 / var_chaste_interface__intracellular_ion_concentrations__Na_i; - const double var_x86 = pow(var_chaste_interface__sodium_current_m_gate__m, 3) * (0.36499999999999999 * var_chaste_interface__sodium_current_h2_gate__h2 + 0.63500000000000001 * var_chaste_interface__sodium_current_h1_gate__h1) * mParameters[5]; - const double var_x87 = exp(0.037679754693225945 * var_chaste_interface__membrane__V); + const double var_x43 = log(var_x42 * var_chaste_interface__cleft_space_ion_concentrations__K_c); + const double var_x44 = exp(0.18895643383558949 + 0.052487898287663745 * var_chaste_interface__membrane__V - 1.393 * var_x43); + const double var_x45 = 1 + var_x44; + const double var_x46 = mParameters[6] / var_x45; + const double var_x47 = var_x41 * var_x46; + const double var_x48 = var_x39 * var_x47; + const double var_x49 = -26.53945091048535 * var_x43 + var_chaste_interface__membrane__V; + const double var_x50 = 0.024873817198171774 * var_x49; + const double var_x51 = var_x31 * var_x32 * var_x34 * var_chaste_interface__cleft_space_ion_concentrations__K_c / pow(var_x33, 2); + const double var_x52 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 3); + const double var_x53 = var_x46 * var_x52 / pow(var_x40, 4); + const double var_x54 = var_x41 * var_x44 * var_x49 * mParameters[6] / pow(var_x45, 2); + const double var_x55 = var_x39 * var_x54; + const double var_x56 = var_x25 * var_x42; + const double var_x57 = var_x38 * var_x42; + const double var_x58 = var_x42 * var_x52; + const double var_x59 = var_x47 * var_x58; + const double var_x60 = var_x54 * var_x58; + const double var_x61 = var_x35 * pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2) * var_chaste_interface__cleft_space_ion_concentrations__K_c / pow((1 + 0.027410122234342148 * var_x31), 2); + const double var_x62 = var_x36 * sqrt(var_chaste_interface__intracellular_ion_concentrations__Na_i) * var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x63 = -200 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x64 = 0.00088070109612833447 * var_x3; + const double var_x65 = 0.0017614021922566689 * var_x5; + const double var_x66 = 32 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x67 = 0.00020000000000000001 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x68 = pow(mParameters[2], 3); + const double var_x69 = var_x68 * mParameters[9]; + const double var_x70 = var_x68 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x71 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 3) * mParameters[1]; + const double var_x72 = 1 + 0.00029999999999999997 * var_x70 + 0.00029999999999999997 * var_x71; + const double var_x73 = exp(0.016955889611951675 * var_chaste_interface__membrane__V); + const double var_x74 = exp(-0.02072386508127427 * var_chaste_interface__membrane__V); + const double var_x75 = (var_x71 * var_x73 - var_x70 * var_x74) / pow(var_x72, 2); + const double var_x76 = var_x69 * var_x75; + const double var_x77 = 1 / var_x72; + const double var_x78 = var_x69 * var_x74 * var_x77; + const double var_x79 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2) * mParameters[9] * mParameters[1]; + const double var_x80 = var_x73 * var_x77 * var_x79; + const double var_x81 = var_x75 * var_x79; + const double var_x82 = 0.021829942145742926 * var_x26; + const double var_x83 = var_x29 * (-3.290319067574035e-6 - 4.9354786013610522e-6 * var_x28); + const double var_x84 = 0.0049352811901134472 * var_x49; + const double var_x85 = 1 / var_chaste_interface__intracellular_ion_concentrations__Na_i; + const double var_x86 = var_x85 * mParameters[2]; + const double var_x87 = -log(var_x86); + const double var_x88 = var_x86 * pow(var_chaste_interface__sodium_current_m_gate__m, 3) * (0.36499999999999999 * var_chaste_interface__sodium_current_h2_gate__h2 + 0.63500000000000001 * var_chaste_interface__sodium_current_h1_gate__h1) * mParameters[5]; + const double var_x89 = 0.0096486999999999996 * var_x88; + const double var_x90 = var_x89 * exp(-9.9999999999999995e-8 + var_x87) / (-1 + exp(-9.9999999999999995e-8)); + const double var_x91 = 0.037679754693225945 * var_chaste_interface__membrane__V; rJacobian[0][0] = 1.0 - (mDt * (-14.98 - var_x4 + 14.880000000000001 * var_chaste_interface__Ca_handling_by_the_SR__O_Calse)); @@ -548,14 +553,14 @@ rJacobian[6][3] = 0.0; rJacobian[6][4] = 0.0; rJacobian[6][5] = 0.0; - rJacobian[6][6] = 1.0 - (mDt * (0.0095611374908700173 * var_x54 + 0.00085446536839159674 * var_x50 - 0.00085446536839159674 * var_x37 - 0.22004581682908866 * var_x47 + var_x47 * var_x49 - var_x25 * var_x27 - var_x26 * var_x30 - var_x27 * var_x38 - var_x49 * var_x52)); + rJacobian[6][6] = 1.0 - (mDt * (0.011549742452351092 * var_x55 + 0.00085446536839159674 * var_x51 - 0.00085446536839159674 * var_x37 - 0.22004581682908866 * var_x48 + var_x48 * var_x50 - var_x25 * var_x27 - var_x26 * var_x30 - var_x27 * var_x38 - var_x50 * var_x53)); rJacobian[6][7] = 0.0; rJacobian[6][8] = 0.0; rJacobian[6][9] = 0.0; rJacobian[6][10] = 0.0; rJacobian[6][11] = 0.0; - rJacobian[6][12] = -(mDt * (0.11002290841454433 * var_x55 + 0.11002290841454433 * var_x56 + 0.22004581682908866 * var_x58 - 0.0095611374908700173 * var_x59 + var_x30 * var_x42)); - rJacobian[6][13] = -(mDt * (9.6295871719563877e-7 * var_x60 - 0.0012816980525873951 * var_x61)); + rJacobian[6][12] = -(mDt * (0.11002290841454433 * var_x56 + 0.11002290841454433 * var_x57 + 0.22004581682908866 * var_x59 - 0.011549742452351092 * var_x60 + var_x30 * var_x42)); + rJacobian[6][13] = -(mDt * (9.6295871719563877e-7 * var_x61 - 0.0012816980525873951 * var_x62)); rJacobian[7][0] = 0.0; rJacobian[7][1] = 0.0; rJacobian[7][2] = 0.0; @@ -563,7 +568,7 @@ rJacobian[7][4] = 0.0; rJacobian[7][5] = 0.0; rJacobian[7][6] = 0.0; - rJacobian[7][7] = 1.0 - (mDt * (-0.47599999999999998 + var_x62)); + rJacobian[7][7] = 1.0 - (mDt * (-0.47599999999999998 + var_x63)); rJacobian[7][8] = 0.0; rJacobian[7][9] = 0.0; rJacobian[7][10] = 0.0; @@ -593,8 +598,8 @@ rJacobian[9][6] = 0.0; rJacobian[9][7] = 0.0; rJacobian[9][8] = 0.0; - rJacobian[9][9] = 1.0 - (mDt * (-0.0066 + var_x62)); - rJacobian[9][10] = -(mDt * (var_x62)); + rJacobian[9][9] = 1.0 - (mDt * (-0.0066 + var_x63)); + rJacobian[9][10] = -(mDt * (var_x63)); rJacobian[9][11] = -(mDt * (200 - 200 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC - 200 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg)); rJacobian[9][12] = 0.0; rJacobian[9][13] = 0.0; @@ -612,48 +617,48 @@ rJacobian[10][11] = 0.0; rJacobian[10][12] = 0.0; rJacobian[10][13] = 0.0; - rJacobian[11][0] = -(mDt * (var_x63)); + rJacobian[11][0] = -(mDt * (var_x64)); rJacobian[11][1] = -(mDt * (1.7754934097947219e-10 * var_x11 + 0.00078910818213098765 * var_x10)); rJacobian[11][2] = 0.0; - rJacobian[11][3] = -(mDt * (var_x64 * var_x8 - var_x64 * var_x7)); + rJacobian[11][3] = -(mDt * (var_x65 * var_x8 - var_x65 * var_x7)); rJacobian[11][4] = 0.0; rJacobian[11][5] = 0.0; rJacobian[11][6] = 0.0; rJacobian[11][7] = -(mDt * (0.021419999999999998 + 9 * var_chaste_interface__intracellular_ion_concentrations__Ca_i)); rJacobian[11][8] = -(mDt * (0.031359999999999999 + 6.2720000000000002 * var_chaste_interface__intracellular_ion_concentrations__Ca_i)); - rJacobian[11][9] = -(mDt * (0.0010559999999999999 + var_x65)); - rJacobian[11][10] = -(mDt * (var_x65)); - rJacobian[11][11] = 1.0 - (mDt * (-47.271999999999998 - var_x63 + 6.2720000000000002 * var_chaste_interface__intracellular_Ca_buffering__O_TC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg + 9 * var_chaste_interface__intracellular_Ca_buffering__O_C + 7.3978892074780085e-7 * var_x11 - 8.3745867230843319e-6 / var_x66 - 5.2842065767700058e-7 * var_x75 - 8.2198768971977874 * var_x10 - 0.0017614021922566689 * var_x77 - 2.3373323507508574e-7 / var_chaste_interface__intracellular_ion_concentrations__Ca_i + 8.3745867230843319e-6 * var_chaste_interface__intracellular_ion_concentrations__Ca_i / pow(var_x66, 2))); + rJacobian[11][9] = -(mDt * (0.0010559999999999999 + var_x66)); + rJacobian[11][10] = -(mDt * (var_x66)); + rJacobian[11][11] = 1.0 - (mDt * (-47.271999999999998 - var_x64 + 6.2720000000000002 * var_chaste_interface__intracellular_Ca_buffering__O_TC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg + 9 * var_chaste_interface__intracellular_Ca_buffering__O_C + 7.3978892074780085e-7 * var_x11 - 8.3745867230843319e-6 / var_x67 - 5.2842065767700058e-7 * var_x76 - 8.2198768971977874 * var_x10 - 0.0017614021922566689 * var_x78 - 2.3373323507508574e-7 / var_chaste_interface__intracellular_ion_concentrations__Ca_i + 8.3745867230843319e-6 * var_chaste_interface__intracellular_ion_concentrations__Ca_i / pow(var_x67, 2))); rJacobian[11][12] = 0.0; - rJacobian[11][13] = -(mDt * (0.0052842065767700064 * var_x79 - 1.5852619730310017e-6 * var_x80)); + rJacobian[11][13] = -(mDt * (0.0052842065767700064 * var_x80 - 1.5852619730310017e-6 * var_x81)); rJacobian[12][0] = 0.0; rJacobian[12][1] = 0.0; rJacobian[12][2] = 0.0; rJacobian[12][3] = 0.0; rJacobian[12][4] = 0.0; rJacobian[12][5] = 0.0; - rJacobian[12][6] = -(mDt * (0.043659884291485852 * var_x47 + 0.00016953677944277714 * var_x37 - 0.00016953677944277714 * var_x50 - 0.0018970510894583371 * var_x54 + var_x25 * var_x81 + var_x38 * var_x81 + var_x52 * var_x83 - var_x26 * var_x82 - var_x47 * var_x83)); + rJacobian[12][6] = -(mDt * (0.043659884291485852 * var_x48 + 0.00016953677944277714 * var_x37 - 0.0022916155659426776 * var_x55 - 0.00016953677944277714 * var_x51 + var_x25 * var_x82 + var_x38 * var_x82 + var_x53 * var_x84 - var_x26 * var_x83 - var_x48 * var_x84)); rJacobian[12][7] = 0.0; rJacobian[12][8] = 0.0; rJacobian[12][9] = 0.0; rJacobian[12][10] = 0.0; rJacobian[12][11] = 0.0; - rJacobian[12][12] = 1.0 - (mDt * (0.0018970510894583371 * var_x59 - 0.021829942145742926 * var_x55 - 0.021829942145742926 * var_x56 - 0.043659884291485852 * var_x58 + var_x42 * var_x82)); - rJacobian[12][13] = -(mDt * (0.00025430516916416572 * var_x61 - 1.9106323753881723e-7 * var_x60)); + rJacobian[12][12] = 1.0 - (mDt * (0.0022916155659426776 * var_x60 - 0.021829942145742926 * var_x56 - 0.021829942145742926 * var_x57 - 0.043659884291485852 * var_x59 + var_x42 * var_x83)); + rJacobian[12][13] = -(mDt * (0.00025430516916416572 * var_x62 - 1.9106323753881723e-7 * var_x61)); rJacobian[13][0] = 0.0; rJacobian[13][1] = 0.0; rJacobian[13][2] = 0.0; rJacobian[13][3] = 0.0; rJacobian[13][4] = 0.0; rJacobian[13][5] = 0.0; - rJacobian[13][6] = -(mDt * (0.00025430516916416572 * var_x50 - 0.00025430516916416572 * var_x37)); + rJacobian[13][6] = -(mDt * (0.00025430516916416572 * var_x51 - 0.00025430516916416572 * var_x37)); rJacobian[13][7] = 0.0; rJacobian[13][8] = 0.0; rJacobian[13][9] = 0.0; rJacobian[13][10] = 0.0; - rJacobian[13][11] = -(mDt * (0.0024676405950567236 * var_x77 + 7.4029217851701709e-7 * var_x75)); + rJacobian[13][11] = -(mDt * (0.0024676405950567236 * var_x78 + 7.4029217851701709e-7 * var_x76)); rJacobian[13][12] = 0.0; - rJacobian[13][13] = 1.0 - (mDt * (2.2208765355510512e-6 * var_x80 + 2.8659485630822583e-7 * var_x60 - 0.00038145775374624855 * var_x61 - 4.3659884291485854e-7 * var_x84 - 0.00082254686501890791 * (((var_chaste_interface__membrane__V >= -2.6539450910485349e-6) && (var_chaste_interface__membrane__V <= 2.6539450910485349e-6)) ? (96486.995175714823 * var_x86 + 0.0096480430789824823 * var_x86 * (0.5 + 188398.77346612973 * var_chaste_interface__membrane__V)) : (3635.606491085292 * var_x86 * var_x87 * var_chaste_interface__membrane__V / (-1 + var_x87))) - 0.0074029217851701709 * var_x79)); + rJacobian[13][13] = 1.0 - (mDt * (2.2208765355510512e-6 * var_x81 + 2.8659485630822583e-7 * var_x61 - 0.00038145775374624855 * var_x62 - 4.3659884291485854e-7 * var_x85 - 0.00082254686501890791 * (((var_chaste_interface__membrane__V >= -2.6539450910485349e-6) && (var_chaste_interface__membrane__V <= 2.6539450910485349e-6)) ? (-var_x90 + (0.5 + 188398.77346612973 * var_chaste_interface__membrane__V) * (var_x90 + var_x89 * exp(9.9999999999999995e-8 + var_x87) / (-1 + exp(9.9999999999999995e-8)))) : (3635.606491085292 * var_x88 * var_chaste_interface__membrane__V * exp(var_x87 + var_x91) / (-1 + exp(var_x91)))) - 0.0074029217851701709 * var_x80)); } void Cellaslanidi_atrial_model_2009FromCellMLBackwardEuler::UpdateTransmembranePotential(double var_chaste_interface__environment__time_converted) diff --git a/chaste_codegen/data/tests/chaste_reference_models/BE/li_mouse_2010.cpp b/chaste_codegen/data/tests/chaste_reference_models/BE/li_mouse_2010.cpp index e2d5b2a4..12b34990 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/BE/li_mouse_2010.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/BE/li_mouse_2010.cpp @@ -526,73 +526,77 @@ const double var_x74 = pow(var_x73, (-2)); const double var_x75 = 1 / (1 + 65.399999999999991 * var_x74); const double var_x76 = 0.5 + 376848.31406265136 * var_chaste_interface__cell__V; - const double var_x77 = mParameters[4] * var_chaste_interface__L_type_calcium_current__y_gate / mParameters[5]; - const double var_x78 = 0.030621666034204905 * var_x77 * (-var_chaste_interface__calcium_concentration__Cass + 0.99999990000000505 * mParameters[1]); - const double var_x79 = 0.030621662971829972 * var_x77; - const double var_x80 = var_x79 * (-var_chaste_interface__calcium_concentration__Cass + 1.0000001000000049 * mParameters[1]); - const double var_x81 = (var_chaste_interface__cell__V >= -1.3267937823834197e-6) && (var_chaste_interface__cell__V <= 1.3267937823834197e-6); - const double var_x82 = exp(-0.075369662812530269 * var_chaste_interface__cell__V); - const double var_x83 = 0.0023079445283571576 * var_chaste_interface__cell__V / (1 - var_x82); + const double var_x77 = exp(9.9999999999999995e-8); + const double var_x78 = mParameters[4] * var_chaste_interface__L_type_calcium_current__y_gate / mParameters[5]; + const double var_x79 = 3.0621664503101105e-9 * var_x78; + const double var_x80 = var_x79 / (1 - var_x77); + const double var_x81 = var_x80 * (-var_chaste_interface__calcium_concentration__Cass + var_x77 * mParameters[1]); + const double var_x82 = exp(-9.9999999999999995e-8); + const double var_x83 = var_x79 / (1 - var_x82); const double var_x84 = var_x83 * (-var_chaste_interface__calcium_concentration__Cass + var_x82 * mParameters[1]); - const double var_x85 = ((var_x81) ? (-var_x80 + var_x76 * (var_x80 - var_x78)) : (-var_x77 * var_x84)); - const double var_x86 = 32.656617993405561 * mParameters[5]; - const double var_x87 = 3.5000000000000004 * var_x75; - const double var_x88 = var_x77 * var_chaste_interface__L_type_calcium_current__O; - const double var_x89 = ((var_x81) ? (var_x79 * var_chaste_interface__L_type_calcium_current__O + 3.0623749345019217e-9 * var_x76 * var_x88) : (var_x83 * var_x88)); - const double var_x90 = var_x80 * var_chaste_interface__L_type_calcium_current__O; - const double var_x91 = var_x18 * var_x87; - const double var_x92 = 0.2857142857142857 * exp(-0.038580246913580245 * pow((-1 + 0.20000000000000001 * var_chaste_interface__cell__V), 2)); - const double var_x93 = 0.04926108374384236 * var_chaste_interface__cell__V; - const double var_x94 = 0.20000000000000001 * exp(0.12315270935960591 - var_x93); - const double var_x95 = exp(-0.016666666666666666 - 0.0066666666666666671 * var_chaste_interface__cell__V); - const double var_x96 = 1 / (0.25 * var_x95 + 0.1027 * exp(-0.20833333333333334 - 0.083333333333333329 * var_chaste_interface__cell__V)); - const double var_x97 = 3.802 * var_x96; - const double var_x98 = 0.008539999999999999 + 2.0000000000000002e-5 * var_chaste_interface__cell__V; - const double var_x99 = 3.802 / (0.1027 * exp(-0.16666666666666666 - 0.066666666666666666 * var_chaste_interface__cell__V) + 0.23000000000000001 * var_x95); - const double var_x100 = exp(-0.90909090909090906 - 0.12987012987012986 * var_chaste_interface__cell__V); - const double var_x101 = 6.9999999999999997e-7 * var_x100; - const double var_x102 = exp(0.36945812807881773 - var_x93); - const double var_x103 = 0.22 * var_x102; - const double var_x104 = 3.802 / (0.20000000000000001 * var_x95 + 0.1027 * exp(-0.14705882352941177 - 0.058823529411764705 * var_chaste_interface__cell__V)); - const double var_x105 = -var_x104; - const double var_x106 = 0.19170000000000001 * exp(-0.12315270935960591 - var_x93); - const double var_x107 = var_x106 + var_x99; - const double var_x108 = var_x104 + var_x98; - const double var_x109 = 1 / (0.39395599999999997 + 0.188495 * exp(-0.42168674698795178 - 0.060240963855421679 * var_chaste_interface__cell__V)); - const double var_x110 = 1.0526315789473684e-5 * var_x109; - const double var_x111 = 1.4e-8 * var_x100; - const double var_x112 = 0.001 * var_x109; - const double var_x113 = -var_x98; - const double var_x114 = 1.2097272727272726e-5 * var_x100 * var_x109 * var_x96 / (var_x102 * var_x98); - const double var_x115 = var_x109; - const double var_x116 = 1 / var_chaste_interface__potassium_concentration__Ki; - const double var_x117 = var_x116 * mParameters[2]; - const double var_x118 = log(var_x117); - const double var_x119 = -26.535875647668394 * var_x118 + var_chaste_interface__cell__V; - const double var_x120 = 0.065313235986811116 * mParameters[5]; - const double var_x121 = var_chaste_interface__non_inactivating_steady_state_K_I__aKss * mParameters[8]; - const double var_x122 = 1 / (var_chaste_interface__potassium_concentration__Ki + 0.020408163265306124 * var_chaste_interface__sodium_concentration__Nai); - const double var_x123 = var_x122 * var_chaste_interface__rapid_delayed_rectifier_K_I__O_K * mParameters[9]; - const double var_x124 = 1.7331439082928402 * var_x116; - const double var_x125 = exp(0.089599999999999999 * var_chaste_interface__cell__V - 2.3776144580310881 * var_x118); - const double var_x126 = 1 + var_x125; - const double var_x127 = 1 / (210 + mParameters[2]); - const double var_x128 = 1 / var_chaste_interface__sodium_concentration__Nai; - const double var_x129 = pow(var_x128, 2.3999999999999999); - const double var_x130 = var_x128 * var_x129 * mParameters[2] / ((1500 + mParameters[2]) * pow((7.44287265976699e-11 + var_x129), 2) * (1 + 0.1245 * exp(-0.0037684831406265135 * var_chaste_interface__cell__V) + 0.036499999999999998 * (-0.14285714285714285 + 0.14285714285714285 * exp(1.4858841010401188e-5 * mParameters[3])) * exp(-0.037684831406265135 * var_chaste_interface__cell__V))); - const double var_x131 = 0.022348 * exp(0.01176 * var_chaste_interface__cell__V); - const double var_x132 = -var_x131; - const double var_x133 = 0.033500000000000002 * exp(0.0109 * var_chaste_interface__cell__V); - const double var_x134 = 6.8899999999999994e-5 * exp(-0.041779999999999998 * var_chaste_interface__cell__V); - const double var_x135 = 0.0064970000000000002 * exp(-0.16339999999999999 - 0.032680000000000001 * var_chaste_interface__cell__V); - const double var_x136 = 0.070300000000000001 * exp(0.14349999999999999 + 0.0287 * var_chaste_interface__cell__V); - const double var_x137 = 0.012149999999999999 * pow(var_chaste_interface__calcium_concentration__Cass, 2) * var_chaste_interface__ryanodine_receptors__P_O1; - const double var_x138 = pow(var_chaste_interface__calcium_concentration__Cass, 3); - const double var_x139 = 0.0060749999999999997 * pow(var_chaste_interface__calcium_concentration__Cass, 4); - const double var_x140 = 0.0040499999999999998 * var_x138; - const double var_x141 = 4.2191641619115923e-37 * var_x71; - const double var_x142 = 1 / (var_chaste_interface__sodium_concentration__Nai + 0.1111111111111111 * var_chaste_interface__potassium_concentration__Ki); - const double var_x143 = var_x142 * var_chaste_interface__fast_sodium_current__O_Na * mParameters[6]; + const double var_x85 = (var_chaste_interface__cell__V >= -1.3267937823834197e-6) && (var_chaste_interface__cell__V <= 1.3267937823834197e-6); + const double var_x86 = exp(-0.075369662812530269 * var_chaste_interface__cell__V); + const double var_x87 = 0.0023079445283571576 * var_x78 * var_chaste_interface__cell__V / (1 - var_x86); + const double var_x88 = var_x87 * (-var_chaste_interface__calcium_concentration__Cass + var_x86 * mParameters[1]); + const double var_x89 = ((var_x85) ? (var_x81 + var_x76 * (-var_x81 - var_x84)) : (-var_x88)); + const double var_x90 = 32.656617993405561 * mParameters[5]; + const double var_x91 = 3.5000000000000004 * var_x75; + const double var_x92 = var_x80 * var_chaste_interface__L_type_calcium_current__O; + const double var_x93 = ((var_x85) ? (-var_x92 + var_x76 * (var_x92 + var_x83 * var_chaste_interface__L_type_calcium_current__O)) : (var_x87 * var_chaste_interface__L_type_calcium_current__O)); + const double var_x94 = var_x81 * var_chaste_interface__L_type_calcium_current__O; + const double var_x95 = var_x18 * var_x91; + const double var_x96 = 0.2857142857142857 * exp(-0.038580246913580245 * pow((-1 + 0.20000000000000001 * var_chaste_interface__cell__V), 2)); + const double var_x97 = 0.04926108374384236 * var_chaste_interface__cell__V; + const double var_x98 = 0.20000000000000001 * exp(0.12315270935960591 - var_x97); + const double var_x99 = exp(-0.016666666666666666 - 0.0066666666666666671 * var_chaste_interface__cell__V); + const double var_x100 = 1 / (0.25 * var_x99 + 0.1027 * exp(-0.20833333333333334 - 0.083333333333333329 * var_chaste_interface__cell__V)); + const double var_x101 = 3.802 * var_x100; + const double var_x102 = 0.008539999999999999 + 2.0000000000000002e-5 * var_chaste_interface__cell__V; + const double var_x103 = 3.802 / (0.1027 * exp(-0.16666666666666666 - 0.066666666666666666 * var_chaste_interface__cell__V) + 0.23000000000000001 * var_x99); + const double var_x104 = exp(-0.90909090909090906 - 0.12987012987012986 * var_chaste_interface__cell__V); + const double var_x105 = 6.9999999999999997e-7 * var_x104; + const double var_x106 = exp(0.36945812807881773 - var_x97); + const double var_x107 = 0.22 * var_x106; + const double var_x108 = 3.802 / (0.20000000000000001 * var_x99 + 0.1027 * exp(-0.14705882352941177 - 0.058823529411764705 * var_chaste_interface__cell__V)); + const double var_x109 = -var_x108; + const double var_x110 = 0.19170000000000001 * exp(-0.12315270935960591 - var_x97); + const double var_x111 = var_x103 + var_x110; + const double var_x112 = var_x102 + var_x108; + const double var_x113 = 1 / (0.39395599999999997 + 0.188495 * exp(-0.42168674698795178 - 0.060240963855421679 * var_chaste_interface__cell__V)); + const double var_x114 = 1.0526315789473684e-5 * var_x113; + const double var_x115 = 1.4e-8 * var_x104; + const double var_x116 = 0.001 * var_x113; + const double var_x117 = -var_x102; + const double var_x118 = 1.2097272727272726e-5 * var_x100 * var_x104 * var_x113 / (var_x102 * var_x106); + const double var_x119 = var_x113; + const double var_x120 = 1 / var_chaste_interface__potassium_concentration__Ki; + const double var_x121 = var_x120 * mParameters[2]; + const double var_x122 = log(var_x121); + const double var_x123 = -26.535875647668394 * var_x122 + var_chaste_interface__cell__V; + const double var_x124 = 0.065313235986811116 * mParameters[5]; + const double var_x125 = var_chaste_interface__non_inactivating_steady_state_K_I__aKss * mParameters[8]; + const double var_x126 = 1 / (var_chaste_interface__potassium_concentration__Ki + 0.020408163265306124 * var_chaste_interface__sodium_concentration__Nai); + const double var_x127 = var_x126 * var_chaste_interface__rapid_delayed_rectifier_K_I__O_K * mParameters[9]; + const double var_x128 = 1.7331439082928402 * var_x120; + const double var_x129 = exp(0.089599999999999999 * var_chaste_interface__cell__V - 2.3776144580310881 * var_x122); + const double var_x130 = 1 + var_x129; + const double var_x131 = 1 / (210 + mParameters[2]); + const double var_x132 = 1 / var_chaste_interface__sodium_concentration__Nai; + const double var_x133 = pow(var_x132, 2.3999999999999999); + const double var_x134 = var_x132 * var_x133 * mParameters[2] / ((1500 + mParameters[2]) * pow((7.44287265976699e-11 + var_x133), 2) * (1 + 0.1245 * exp(-0.0037684831406265135 * var_chaste_interface__cell__V) + 0.036499999999999998 * (-0.14285714285714285 + 0.14285714285714285 * exp(1.4858841010401188e-5 * mParameters[3])) * exp(-0.037684831406265135 * var_chaste_interface__cell__V))); + const double var_x135 = 0.022348 * exp(0.01176 * var_chaste_interface__cell__V); + const double var_x136 = -var_x135; + const double var_x137 = 0.033500000000000002 * exp(0.0109 * var_chaste_interface__cell__V); + const double var_x138 = 6.8899999999999994e-5 * exp(-0.041779999999999998 * var_chaste_interface__cell__V); + const double var_x139 = 0.0064970000000000002 * exp(-0.16339999999999999 - 0.032680000000000001 * var_chaste_interface__cell__V); + const double var_x140 = 0.070300000000000001 * exp(0.14349999999999999 + 0.0287 * var_chaste_interface__cell__V); + const double var_x141 = 0.012149999999999999 * pow(var_chaste_interface__calcium_concentration__Cass, 2) * var_chaste_interface__ryanodine_receptors__P_O1; + const double var_x142 = pow(var_chaste_interface__calcium_concentration__Cass, 3); + const double var_x143 = 0.0060749999999999997 * pow(var_chaste_interface__calcium_concentration__Cass, 4); + const double var_x144 = 0.0040499999999999998 * var_x142; + const double var_x145 = 4.2191641619115923e-37 * var_x71; + const double var_x146 = 1 / (var_chaste_interface__sodium_concentration__Nai + 0.1111111111111111 * var_chaste_interface__potassium_concentration__Ki); + const double var_x147 = var_x146 * var_chaste_interface__fast_sodium_current__O_Na * mParameters[6]; rJacobian[0][0] = 1.0 - (mDt * (-var_x4 - 0.00034782608695652176 * var_x1 / (0.0625 + 0.40000000000000002 * var_x0))); @@ -726,13 +730,13 @@ rJacobian[4][24] = 0.0; rJacobian[4][25] = -(mDt * (var_x47 * (0.19593970796043336 * var_x72 + 1.4063880539705308e-37 * var_x70 * var_x71) * mParameters[5])); rJacobian[5][0] = 0.0; - rJacobian[5][1] = -(mDt * (-var_x75 * var_x85 * var_x86)); - rJacobian[5][2] = -(mDt * (var_x13 * var_x87)); + rJacobian[5][1] = -(mDt * (-var_x75 * var_x89 * var_x90)); + rJacobian[5][2] = -(mDt * (var_x13 * var_x91)); rJacobian[5][3] = 0.0; rJacobian[5][4] = -(mDt * (125000 * var_x75)); - rJacobian[5][5] = 1.0 - (mDt * (var_x75 * (-125 + 3.5000000000000004 * var_x16 - var_x86 * var_x89) + 0.030581039755351685 * (125000 * var_chaste_interface__calcium_concentration__Cai_converted + 3.5000000000000004 * var_x15 - 125 * var_chaste_interface__calcium_concentration__Cass - var_x86 * ((var_x81) ? (-var_x90 + 376848.31406265136 * (1.3267937823834197e-6 + var_chaste_interface__cell__V) * (var_x90 - var_x78 * var_chaste_interface__L_type_calcium_current__O)) : (-var_x84 * var_x88))) / (pow(var_x73, 3) * pow((0.015290519877675841 + var_x74), 2)))); + rJacobian[5][5] = 1.0 - (mDt * (var_x75 * (-125 + 3.5000000000000004 * var_x16 - var_x90 * var_x93) + 0.030581039755351685 * (125000 * var_chaste_interface__calcium_concentration__Cai_converted + 3.5000000000000004 * var_x15 - 125 * var_chaste_interface__calcium_concentration__Cass - var_x90 * ((var_x85) ? (var_x94 + 376848.31406265136 * (1.3267937823834197e-6 + var_chaste_interface__cell__V) * (-var_x94 - var_x84 * var_chaste_interface__L_type_calcium_current__O)) : (-var_x88 * var_chaste_interface__L_type_calcium_current__O))) / (pow(var_x73, 3) * pow((0.015290519877675841 + var_x74), 2)))); rJacobian[5][6] = 0.0; - rJacobian[5][7] = -(mDt * (var_x17 * var_x87)); + rJacobian[5][7] = -(mDt * (var_x17 * var_x91)); rJacobian[5][8] = 0.0; rJacobian[5][9] = 0.0; rJacobian[5][10] = 0.0; @@ -748,8 +752,8 @@ rJacobian[5][20] = 0.0; rJacobian[5][21] = 0.0; rJacobian[5][22] = 0.0; - rJacobian[5][23] = -(mDt * (var_x91)); - rJacobian[5][24] = -(mDt * (var_x91)); + rJacobian[5][23] = -(mDt * (var_x95)); + rJacobian[5][24] = -(mDt * (var_x95)); rJacobian[5][25] = 0.0; rJacobian[6][0] = 0.0; rJacobian[6][1] = 0.0; @@ -778,11 +782,11 @@ rJacobian[6][24] = 0.0; rJacobian[6][25] = 0.0; rJacobian[7][0] = 0.0; - rJacobian[7][1] = -(mDt * (-var_x85 * var_x92)); + rJacobian[7][1] = -(mDt * (-var_x89 * var_x96)); rJacobian[7][2] = 0.0; rJacobian[7][3] = 0.0; rJacobian[7][4] = 0.0; - rJacobian[7][5] = -(mDt * (-var_x89 * var_x92)); + rJacobian[7][5] = -(mDt * (-var_x93 * var_x96)); rJacobian[7][6] = 0.0; rJacobian[7][7] = 1.0 - (mDt * (-0.01)); rJacobian[7][8] = 0.0; @@ -811,14 +815,14 @@ rJacobian[8][5] = 0.0; rJacobian[8][6] = 0.0; rJacobian[8][7] = 0.0; - rJacobian[8][8] = 1.0 - (mDt * (-var_x94 - var_x97 - var_x98)); - rJacobian[8][9] = -(mDt * (var_x99)); + rJacobian[8][8] = 1.0 - (mDt * (-var_x101 - var_x102 - var_x98)); + rJacobian[8][9] = -(mDt * (var_x103)); rJacobian[8][10] = 0.0; rJacobian[8][11] = 0.0; rJacobian[8][12] = 0.0; rJacobian[8][13] = 0.0; - rJacobian[8][14] = -(mDt * (var_x101)); - rJacobian[8][15] = -(mDt * (var_x103)); + rJacobian[8][14] = -(mDt * (var_x105)); + rJacobian[8][15] = -(mDt * (var_x107)); rJacobian[8][16] = 0.0; rJacobian[8][17] = 0.0; rJacobian[8][18] = 0.0; @@ -837,14 +841,14 @@ rJacobian[9][5] = 0.0; rJacobian[9][6] = 0.0; rJacobian[9][7] = 0.0; - rJacobian[9][8] = -(mDt * (var_x105 + var_x94)); - rJacobian[9][9] = 1.0 - (mDt * (-var_x107 - var_x108)); - rJacobian[9][10] = -(mDt * (var_x105)); - rJacobian[9][11] = -(mDt * (var_x105)); - rJacobian[9][12] = -(mDt * (var_x101 + var_x105)); - rJacobian[9][13] = -(mDt * (var_x105)); - rJacobian[9][14] = -(mDt * (var_x105)); - rJacobian[9][15] = -(mDt * (var_x105)); + rJacobian[9][8] = -(mDt * (var_x109 + var_x98)); + rJacobian[9][9] = 1.0 - (mDt * (-var_x111 - var_x112)); + rJacobian[9][10] = -(mDt * (var_x109)); + rJacobian[9][11] = -(mDt * (var_x109)); + rJacobian[9][12] = -(mDt * (var_x105 + var_x109)); + rJacobian[9][13] = -(mDt * (var_x109)); + rJacobian[9][14] = -(mDt * (var_x109)); + rJacobian[9][15] = -(mDt * (var_x109)); rJacobian[9][16] = 0.0; rJacobian[9][17] = 0.0; rJacobian[9][18] = 0.0; @@ -865,11 +869,11 @@ rJacobian[10][7] = 0.0; rJacobian[10][8] = 0.0; rJacobian[10][9] = 0.0; - rJacobian[10][10] = 1.0 - (mDt * (-var_x101 - var_x110)); - rJacobian[10][11] = -(mDt * (var_x111)); + rJacobian[10][10] = 1.0 - (mDt * (-var_x105 - var_x114)); + rJacobian[10][11] = -(mDt * (var_x115)); rJacobian[10][12] = 0.0; rJacobian[10][13] = 0.0; - rJacobian[10][14] = -(mDt * (var_x112)); + rJacobian[10][14] = -(mDt * (var_x116)); rJacobian[10][15] = 0.0; rJacobian[10][16] = 0.0; rJacobian[10][17] = 0.0; @@ -891,8 +895,8 @@ rJacobian[11][7] = 0.0; rJacobian[11][8] = 0.0; rJacobian[11][9] = 0.0; - rJacobian[11][10] = -(mDt * (var_x110)); - rJacobian[11][11] = 1.0 - (mDt * (-var_x111)); + rJacobian[11][10] = -(mDt * (var_x114)); + rJacobian[11][11] = 1.0 - (mDt * (-var_x115)); rJacobian[11][12] = 0.0; rJacobian[11][13] = 0.0; rJacobian[11][14] = 0.0; @@ -916,12 +920,12 @@ rJacobian[12][6] = 0.0; rJacobian[12][7] = 0.0; rJacobian[12][8] = 0.0; - rJacobian[12][9] = -(mDt * (var_x98)); + rJacobian[12][9] = -(mDt * (var_x102)); rJacobian[12][10] = 0.0; rJacobian[12][11] = 0.0; - rJacobian[12][12] = 1.0 - (mDt * (-var_x101 - var_x107)); - rJacobian[12][13] = -(mDt * (var_x104)); - rJacobian[12][14] = -(mDt * (var_x94)); + rJacobian[12][12] = 1.0 - (mDt * (-var_x105 - var_x111)); + rJacobian[12][13] = -(mDt * (var_x108)); + rJacobian[12][14] = -(mDt * (var_x98)); rJacobian[12][15] = 0.0; rJacobian[12][16] = 0.0; rJacobian[12][17] = 0.0; @@ -941,14 +945,14 @@ rJacobian[13][5] = 0.0; rJacobian[13][6] = 0.0; rJacobian[13][7] = 0.0; - rJacobian[13][8] = -(mDt * (var_x113)); - rJacobian[13][9] = -(mDt * (var_x113)); - rJacobian[13][10] = -(mDt * (var_x113)); - rJacobian[13][11] = -(mDt * (var_x113)); - rJacobian[13][12] = -(mDt * (var_x106 - var_x98)); - rJacobian[13][13] = 1.0 - (mDt * (-var_x101 - var_x108)); - rJacobian[13][14] = -(mDt * (var_x113)); - rJacobian[13][15] = -(mDt * (var_x113)); + rJacobian[13][8] = -(mDt * (var_x117)); + rJacobian[13][9] = -(mDt * (var_x117)); + rJacobian[13][10] = -(mDt * (var_x117)); + rJacobian[13][11] = -(mDt * (var_x117)); + rJacobian[13][12] = -(mDt * (var_x110 - var_x102)); + rJacobian[13][13] = 1.0 - (mDt * (-var_x105 - var_x112)); + rJacobian[13][14] = -(mDt * (var_x117)); + rJacobian[13][15] = -(mDt * (var_x117)); rJacobian[13][16] = 0.0; rJacobian[13][17] = 0.0; rJacobian[13][18] = 0.0; @@ -967,14 +971,14 @@ rJacobian[14][5] = 0.0; rJacobian[14][6] = 0.0; rJacobian[14][7] = 0.0; - rJacobian[14][8] = -(mDt * (var_x98)); + rJacobian[14][8] = -(mDt * (var_x102)); rJacobian[14][9] = 0.0; - rJacobian[14][10] = -(mDt * (var_x101)); + rJacobian[14][10] = -(mDt * (var_x105)); rJacobian[14][11] = 0.0; - rJacobian[14][12] = -(mDt * (var_x99)); + rJacobian[14][12] = -(mDt * (var_x103)); rJacobian[14][13] = 0.0; - rJacobian[14][14] = 1.0 - (mDt * (-var_x101 - var_x112 - var_x114 - var_x94)); - rJacobian[14][15] = -(mDt * (var_x115)); + rJacobian[14][14] = 1.0 - (mDt * (-var_x105 - var_x116 - var_x118 - var_x98)); + rJacobian[14][15] = -(mDt * (var_x119)); rJacobian[14][16] = 0.0; rJacobian[14][17] = 0.0; rJacobian[14][18] = 0.0; @@ -993,14 +997,14 @@ rJacobian[15][5] = 0.0; rJacobian[15][6] = 0.0; rJacobian[15][7] = 0.0; - rJacobian[15][8] = -(mDt * (var_x97)); + rJacobian[15][8] = -(mDt * (var_x101)); rJacobian[15][9] = 0.0; rJacobian[15][10] = 0.0; rJacobian[15][11] = 0.0; rJacobian[15][12] = 0.0; rJacobian[15][13] = 0.0; - rJacobian[15][14] = -(mDt * (var_x114)); - rJacobian[15][15] = 1.0 - (mDt * (-var_x103 - var_x115)); + rJacobian[15][14] = -(mDt * (var_x118)); + rJacobian[15][15] = 1.0 - (mDt * (-var_x107 - var_x119)); rJacobian[15][16] = 0.0; rJacobian[15][17] = 0.0; rJacobian[15][18] = 0.0; @@ -1053,16 +1057,16 @@ rJacobian[17][13] = 0.0; rJacobian[17][14] = 0.0; rJacobian[17][15] = 0.0; - rJacobian[17][16] = -(mDt * (-var_x119 * var_x120 * var_x121)); - rJacobian[17][17] = 1.0 - (mDt * ((-1.7331439082928402 * var_x123 - var_x121 * var_x124 * var_chaste_interface__non_inactivating_steady_state_K_I__iKss - var_x124 * pow(var_chaste_interface__slow_delayed_rectifier_K_I__nKs, 2) * mParameters[10] - 0.43328597707321004 * var_x116 * var_chaste_interface__ultra_rapidly_activating_delayed_rectifier_K_I__aur * var_chaste_interface__ultra_rapidly_activating_delayed_rectifier_K_I__iur - 0.92671204776418159 * var_x116 * pow(var_chaste_interface__fast_transient_outward_K_I__ato_f, 3) * var_chaste_interface__fast_transient_outward_K_I__ito_f - 1.7331439082928402 * var_x117 * var_x127 * mParameters[7] / var_x126 + 0.15528969418303848 * var_x116 * var_x119 * var_x125 * var_x127 * mParameters[2] * mParameters[7] / pow(var_x126, 2)) * mParameters[5])); + rJacobian[17][16] = -(mDt * (-var_x123 * var_x124 * var_x125)); + rJacobian[17][17] = 1.0 - (mDt * ((-1.7331439082928402 * var_x127 - var_x125 * var_x128 * var_chaste_interface__non_inactivating_steady_state_K_I__iKss - var_x128 * pow(var_chaste_interface__slow_delayed_rectifier_K_I__nKs, 2) * mParameters[10] - 0.43328597707321004 * var_x120 * var_chaste_interface__ultra_rapidly_activating_delayed_rectifier_K_I__aur * var_chaste_interface__ultra_rapidly_activating_delayed_rectifier_K_I__iur - 0.92671204776418159 * var_x120 * pow(var_chaste_interface__fast_transient_outward_K_I__ato_f, 3) * var_chaste_interface__fast_transient_outward_K_I__ito_f - 1.7331439082928402 * var_x121 * var_x131 * mParameters[7] / var_x130 + 0.15528969418303848 * var_x120 * var_x123 * var_x129 * var_x131 * mParameters[2] * mParameters[7] / pow(var_x130, 2)) * mParameters[5])); rJacobian[17][18] = 0.0; rJacobian[17][19] = 0.0; rJacobian[17][20] = 0.0; - rJacobian[17][21] = -(mDt * (var_x120 * (-var_chaste_interface__cell__V + 26.535875647668394 * log(var_x122 * (mParameters[2] + 0.020408163265306124 * mParameters[3]))) * mParameters[9])); + rJacobian[17][21] = -(mDt * (var_x124 * (-var_chaste_interface__cell__V + 26.535875647668394 * log(var_x126 * (mParameters[2] + 0.020408163265306124 * mParameters[3]))) * mParameters[9])); rJacobian[17][22] = 0.0; rJacobian[17][23] = 0.0; rJacobian[17][24] = 0.0; - rJacobian[17][25] = -(mDt * ((5.8007500451501034e-11 * var_x130 - 0.035370283842711021 * var_x123) * mParameters[5])); + rJacobian[17][25] = -(mDt * ((5.8007500451501034e-11 * var_x134 - 0.035370283842711021 * var_x127) * mParameters[5])); rJacobian[18][0] = 0.0; rJacobian[18][1] = 0.0; rJacobian[18][2] = 0.0; @@ -1081,10 +1085,10 @@ rJacobian[18][15] = 0.0; rJacobian[18][16] = 0.0; rJacobian[18][17] = 0.0; - rJacobian[18][18] = 1.0 - (mDt * (-0.023761000000000001 - var_x131 - 0.047002000000000002 * exp(-0.063100000000000003 * var_chaste_interface__cell__V))); - rJacobian[18][19] = -(mDt * (0.036777999999999998 - var_x131)); - rJacobian[18][20] = -(mDt * (var_x132)); - rJacobian[18][21] = -(mDt * (var_x132)); + rJacobian[18][18] = 1.0 - (mDt * (-0.023761000000000001 - var_x135 - 0.047002000000000002 * exp(-0.063100000000000003 * var_chaste_interface__cell__V))); + rJacobian[18][19] = -(mDt * (0.036777999999999998 - var_x135)); + rJacobian[18][20] = -(mDt * (var_x136)); + rJacobian[18][21] = -(mDt * (var_x136)); rJacobian[18][22] = 0.0; rJacobian[18][23] = 0.0; rJacobian[18][24] = 0.0; @@ -1108,9 +1112,9 @@ rJacobian[19][16] = 0.0; rJacobian[19][17] = 0.0; rJacobian[19][18] = -(mDt * (0.023761000000000001)); - rJacobian[19][19] = 1.0 - (mDt * (-0.036777999999999998 - var_x133)); + rJacobian[19][19] = 1.0 - (mDt * (-0.036777999999999998 - var_x137)); rJacobian[19][20] = 0.0; - rJacobian[19][21] = -(mDt * (var_x134)); + rJacobian[19][21] = -(mDt * (var_x138)); rJacobian[19][22] = 0.0; rJacobian[19][23] = 0.0; rJacobian[19][24] = 0.0; @@ -1135,8 +1139,8 @@ rJacobian[20][17] = 0.0; rJacobian[20][18] = 0.0; rJacobian[20][19] = 0.0; - rJacobian[20][20] = 1.0 - (mDt * (-var_x135)); - rJacobian[20][21] = -(mDt * (var_x136)); + rJacobian[20][20] = 1.0 - (mDt * (-var_x139)); + rJacobian[20][21] = -(mDt * (var_x140)); rJacobian[20][22] = 0.0; rJacobian[20][23] = 0.0; rJacobian[20][24] = 0.0; @@ -1160,9 +1164,9 @@ rJacobian[21][16] = 0.0; rJacobian[21][17] = 0.0; rJacobian[21][18] = 0.0; - rJacobian[21][19] = -(mDt * (var_x133)); - rJacobian[21][20] = -(mDt * (var_x135)); - rJacobian[21][21] = 1.0 - (mDt * (-var_x134 - var_x136)); + rJacobian[21][19] = -(mDt * (var_x137)); + rJacobian[21][20] = -(mDt * (var_x139)); + rJacobian[21][21] = 1.0 - (mDt * (-var_x138 - var_x140)); rJacobian[21][22] = 0.0; rJacobian[21][23] = 0.0; rJacobian[21][24] = 0.0; @@ -1198,7 +1202,7 @@ rJacobian[23][2] = 0.0; rJacobian[23][3] = 0.0; rJacobian[23][4] = 0.0; - rJacobian[23][5] = -(mDt * (-var_x137 + 0.024299999999999999 * var_x138 * (1 - var_x9 - var_chaste_interface__ryanodine_receptors__P_C2))); + rJacobian[23][5] = -(mDt * (-var_x141 + 0.024299999999999999 * var_x142 * (1 - var_x9 - var_chaste_interface__ryanodine_receptors__P_C2))); rJacobian[23][6] = 0.0; rJacobian[23][7] = 0.0; rJacobian[23][8] = 0.0; @@ -1215,16 +1219,16 @@ rJacobian[23][19] = 0.0; rJacobian[23][20] = 0.0; rJacobian[23][21] = 0.0; - rJacobian[23][22] = -(mDt * (0.00080000000000000004 - var_x139)); - rJacobian[23][23] = 1.0 - (mDt * (-0.080249999999999988 - var_x139 - var_x140)); - rJacobian[23][24] = -(mDt * (0.96499999999999997 - var_x139)); + rJacobian[23][22] = -(mDt * (0.00080000000000000004 - var_x143)); + rJacobian[23][23] = 1.0 - (mDt * (-0.080249999999999988 - var_x143 - var_x144)); + rJacobian[23][24] = -(mDt * (0.96499999999999997 - var_x143)); rJacobian[23][25] = 0.0; rJacobian[24][0] = 0.0; rJacobian[24][1] = 0.0; rJacobian[24][2] = 0.0; rJacobian[24][3] = 0.0; rJacobian[24][4] = 0.0; - rJacobian[24][5] = -(mDt * (var_x137)); + rJacobian[24][5] = -(mDt * (var_x141)); rJacobian[24][6] = 0.0; rJacobian[24][7] = 0.0; rJacobian[24][8] = 0.0; @@ -1242,14 +1246,14 @@ rJacobian[24][20] = 0.0; rJacobian[24][21] = 0.0; rJacobian[24][22] = 0.0; - rJacobian[24][23] = -(mDt * (var_x140)); + rJacobian[24][23] = -(mDt * (var_x144)); rJacobian[24][24] = 1.0 - (mDt * (-0.96499999999999997)); rJacobian[24][25] = 0.0; rJacobian[25][0] = 0.0; rJacobian[25][1] = 0.0; rJacobian[25][2] = 0.0; rJacobian[25][3] = 0.0; - rJacobian[25][4] = -(mDt * ((195.93970796043337 * var_x61 - var_x141 * var_x65) * mParameters[5])); + rJacobian[25][4] = -(mDt * ((195.93970796043337 * var_x61 - var_x145 * var_x65) * mParameters[5])); rJacobian[25][5] = 0.0; rJacobian[25][6] = 0.0; rJacobian[25][7] = 0.0; @@ -1260,9 +1264,9 @@ rJacobian[25][12] = 0.0; rJacobian[25][13] = 0.0; rJacobian[25][14] = 0.0; - rJacobian[25][15] = -(mDt * (var_x120 * (-var_chaste_interface__cell__V + 26.535875647668394 * log(var_x142 * (mParameters[3] + 0.1111111111111111 * mParameters[2]))) * mParameters[6])); + rJacobian[25][15] = -(mDt * (var_x124 * (-var_chaste_interface__cell__V + 26.535875647668394 * log(var_x146 * (mParameters[3] + 0.1111111111111111 * mParameters[2]))) * mParameters[6])); rJacobian[25][16] = 0.0; - rJacobian[25][17] = -(mDt * ((-0.0005006860179512649 * var_x142 - 0.19257154536587112 * var_x143) * mParameters[5])); + rJacobian[25][17] = -(mDt * ((-0.0005006860179512649 * var_x146 - 0.19257154536587112 * var_x147) * mParameters[5])); rJacobian[25][18] = 0.0; rJacobian[25][19] = 0.0; rJacobian[25][20] = 0.0; @@ -1270,7 +1274,7 @@ rJacobian[25][22] = 0.0; rJacobian[25][23] = 0.0; rJacobian[25][24] = 0.0; - rJacobian[25][25] = 1.0 - (mDt * ((-1.7331439082928402 * var_x143 - 0.004506174161561384 * var_x142 - 0.58781912388130009 * var_x72 - 8.7011250677251544e-11 * var_x130 - var_x141 * var_x70) * mParameters[5])); + rJacobian[25][25] = 1.0 - (mDt * ((-1.7331439082928402 * var_x147 - 0.004506174161561384 * var_x146 - 0.58781912388130009 * var_x72 - 8.7011250677251544e-11 * var_x134 - var_x145 * var_x70) * mParameters[5])); } void Cellli_mouse_2010FromCellMLBackwardEuler::UpdateTransmembranePotential(double var_chaste_interface__environment__time) diff --git a/chaste_codegen/data/tests/chaste_reference_models/BE/li_mouse_2010.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/BE/li_mouse_2010.cpp_alt index 4113ad61..d32b4936 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/BE/li_mouse_2010.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/BE/li_mouse_2010.cpp_alt @@ -528,77 +528,81 @@ const double var_x76 = pow(var_x75, (-2)); const double var_x77 = 1 / (1 + 65.399999999999991 * var_x76); const double var_x78 = 0.5 + 376848.31406265136 * var_chaste_interface__cell__V; - const double var_x79 = mParameters[4] * var_chaste_interface__L_type_calcium_current__y_gate / mParameters[5]; - const double var_x80 = 0.030621662971829972 * var_x79; - const double var_x81 = var_x80 * (var_x14 + 1.0000001000000049 * mParameters[1]); - const double var_x82 = 0.030621666034204905 * var_x79 * (var_x14 + 0.99999990000000505 * mParameters[1]); - const double var_x83 = (var_chaste_interface__cell__V >= -1.3267937823834197e-6) && (var_chaste_interface__cell__V <= 1.3267937823834197e-6); - const double var_x84 = exp(-0.075369662812530269 * var_chaste_interface__cell__V); - const double var_x85 = 0.0023079445283571576 * var_chaste_interface__cell__V / (1 - var_x84); + const double var_x79 = exp(9.9999999999999995e-8); + const double var_x80 = mParameters[4] * var_chaste_interface__L_type_calcium_current__y_gate / mParameters[5]; + const double var_x81 = 3.0621664503101105e-9 * var_x80; + const double var_x82 = var_x81 / (1 - var_x79); + const double var_x83 = var_x82 * (var_x14 + var_x79 * mParameters[1]); + const double var_x84 = exp(-9.9999999999999995e-8); + const double var_x85 = var_x81 / (1 - var_x84); const double var_x86 = var_x85 * (var_x14 + var_x84 * mParameters[1]); - const double var_x87 = ((var_x83) ? (-var_x81 + var_x78 * (var_x81 - var_x82)) : (-var_x79 * var_x86)); - const double var_x88 = 32.656617993405561 * mParameters[5]; - const double var_x89 = 3.5000000000000004 * var_x77; - const double var_x90 = var_x79 * var_chaste_interface__L_type_calcium_current__O; - const double var_x91 = ((var_x83) ? (var_x80 * var_chaste_interface__L_type_calcium_current__O + 3.0623749345019217e-9 * var_x78 * var_x90) : (var_x85 * var_x90)); - const double var_x92 = var_x81 * var_chaste_interface__L_type_calcium_current__O; - const double var_x93 = var_x20 * var_x89; - const double var_x94 = 0.0025000000000000005 * var_x29; - const double var_x95 = 0.2857142857142857 * exp(-0.038580246913580245 * pow((-1 + 0.20000000000000001 * var_chaste_interface__cell__V), 2)); - const double var_x96 = -0.04926108374384236 * var_chaste_interface__cell__V; - const double var_x97 = 0.20000000000000001 * exp(0.12315270935960591 + var_x96); - const double var_x98 = -var_x97; - const double var_x99 = exp(-0.016666666666666666 - 0.0066666666666666671 * var_chaste_interface__cell__V); - const double var_x100 = 1 / (0.25 * var_x99 + 0.1027 * exp(-0.20833333333333334 - 0.083333333333333329 * var_chaste_interface__cell__V)); - const double var_x101 = 3.802 * var_x100; - const double var_x102 = 2.0000000000000002e-5 * var_chaste_interface__cell__V; - const double var_x103 = -0.008539999999999999 - var_x102; - const double var_x104 = 3.802 / (0.1027 * exp(-0.16666666666666666 - 0.066666666666666666 * var_chaste_interface__cell__V) + 0.23000000000000001 * var_x99); - const double var_x105 = exp(-0.90909090909090906 - 0.12987012987012986 * var_chaste_interface__cell__V); - const double var_x106 = 6.9999999999999997e-7 * var_x105; - const double var_x107 = exp(0.36945812807881773 + var_x96); - const double var_x108 = 0.22 * var_x107; - const double var_x109 = 3.802 / (0.20000000000000001 * var_x99 + 0.1027 * exp(-0.14705882352941177 - 0.058823529411764705 * var_chaste_interface__cell__V)); - const double var_x110 = -var_x109; - const double var_x111 = 0.19170000000000001 * exp(-0.12315270935960591 + var_x96); - const double var_x112 = -var_x104 - var_x111; - const double var_x113 = var_x103 + var_x110; - const double var_x114 = -var_x106; - const double var_x115 = 1 / (0.39395599999999997 + 0.188495 * exp(-0.42168674698795178 - 0.060240963855421679 * var_chaste_interface__cell__V)); - const double var_x116 = 1.0526315789473684e-5 * var_x115; - const double var_x117 = 1.4e-8 * var_x105; - const double var_x118 = 0.001 * var_x115; - const double var_x119 = 0.008539999999999999 + var_x102; - const double var_x120 = 1.2097272727272726e-5 * var_x100 * var_x105 * var_x115 / (var_x107 * var_x119); - const double var_x121 = var_x115; - const double var_x122 = -var_chaste_interface__cell__V; - const double var_x123 = 1 / var_chaste_interface__potassium_concentration__Ki; - const double var_x124 = var_x123 * mParameters[2]; - const double var_x125 = log(var_x124); - const double var_x126 = 26.535875647668394 * var_x125; - const double var_x127 = 0.065313235986811116 * mParameters[5]; - const double var_x128 = var_chaste_interface__non_inactivating_steady_state_K_I__aKss * mParameters[8]; - const double var_x129 = 1 / (var_chaste_interface__potassium_concentration__Ki + 0.020408163265306124 * var_chaste_interface__sodium_concentration__Nai); - const double var_x130 = var_x129 * var_chaste_interface__rapid_delayed_rectifier_K_I__O_K * mParameters[9]; - const double var_x131 = 1.7331439082928402 * var_x123; - const double var_x132 = exp(0.089599999999999999 * var_chaste_interface__cell__V - 2.3776144580310881 * var_x125); - const double var_x133 = 1 + var_x132; - const double var_x134 = var_x124 * mParameters[7] / (210 + mParameters[2]); - const double var_x135 = 1 / var_chaste_interface__sodium_concentration__Nai; - const double var_x136 = pow(var_x135, 2.3999999999999999); - const double var_x137 = var_x135 * var_x136 * mParameters[2] / ((1500 + mParameters[2]) * pow((7.44287265976699e-11 + var_x136), 2) * (1 + 0.1245 * exp(-0.0037684831406265135 * var_chaste_interface__cell__V) + 0.036499999999999998 * (-0.14285714285714285 + 0.14285714285714285 * exp(1.4858841010401188e-5 * mParameters[3])) * exp(-0.037684831406265135 * var_chaste_interface__cell__V))); - const double var_x138 = -0.022348 * exp(0.01176 * var_chaste_interface__cell__V); - const double var_x139 = 0.033500000000000002 * exp(0.0109 * var_chaste_interface__cell__V); - const double var_x140 = 6.8899999999999994e-5 * exp(-0.041779999999999998 * var_chaste_interface__cell__V); - const double var_x141 = 0.0064970000000000002 * exp(-0.16339999999999999 - 0.032680000000000001 * var_chaste_interface__cell__V); - const double var_x142 = 0.070300000000000001 * exp(0.14349999999999999 + 0.0287 * var_chaste_interface__cell__V); - const double var_x143 = pow(var_chaste_interface__calcium_concentration__Cass, 3); - const double var_x144 = 0.012149999999999999 * pow(var_chaste_interface__calcium_concentration__Cass, 2) * var_chaste_interface__ryanodine_receptors__P_O1; - const double var_x145 = -0.0060749999999999997 * pow(var_chaste_interface__calcium_concentration__Cass, 4); - const double var_x146 = 0.0040499999999999998 * var_x143; - const double var_x147 = 4.2191641619115923e-37 * var_x66; - const double var_x148 = 1 / (var_chaste_interface__sodium_concentration__Nai + 0.1111111111111111 * var_chaste_interface__potassium_concentration__Ki); - const double var_x149 = var_x148 * var_chaste_interface__fast_sodium_current__O_Na * mParameters[6]; + const double var_x87 = (var_chaste_interface__cell__V >= -1.3267937823834197e-6) && (var_chaste_interface__cell__V <= 1.3267937823834197e-6); + const double var_x88 = exp(-0.075369662812530269 * var_chaste_interface__cell__V); + const double var_x89 = 0.0023079445283571576 * var_x80 * var_chaste_interface__cell__V / (1 - var_x88); + const double var_x90 = var_x89 * (var_x14 + var_x88 * mParameters[1]); + const double var_x91 = ((var_x87) ? (var_x83 + var_x78 * (-var_x83 - var_x86)) : (-var_x90)); + const double var_x92 = 32.656617993405561 * mParameters[5]; + const double var_x93 = 3.5000000000000004 * var_x77; + const double var_x94 = var_x82 * var_chaste_interface__L_type_calcium_current__O; + const double var_x95 = ((var_x87) ? (-var_x94 + var_x78 * (var_x94 + var_x85 * var_chaste_interface__L_type_calcium_current__O)) : (var_x89 * var_chaste_interface__L_type_calcium_current__O)); + const double var_x96 = var_x83 * var_chaste_interface__L_type_calcium_current__O; + const double var_x97 = var_x20 * var_x93; + const double var_x98 = 0.0025000000000000005 * var_x29; + const double var_x99 = 0.2857142857142857 * exp(-0.038580246913580245 * pow((-1 + 0.20000000000000001 * var_chaste_interface__cell__V), 2)); + const double var_x100 = -0.04926108374384236 * var_chaste_interface__cell__V; + const double var_x101 = 0.20000000000000001 * exp(0.12315270935960591 + var_x100); + const double var_x102 = -var_x101; + const double var_x103 = exp(-0.016666666666666666 - 0.0066666666666666671 * var_chaste_interface__cell__V); + const double var_x104 = 1 / (0.25 * var_x103 + 0.1027 * exp(-0.20833333333333334 - 0.083333333333333329 * var_chaste_interface__cell__V)); + const double var_x105 = 3.802 * var_x104; + const double var_x106 = 2.0000000000000002e-5 * var_chaste_interface__cell__V; + const double var_x107 = -0.008539999999999999 - var_x106; + const double var_x108 = 3.802 / (0.1027 * exp(-0.16666666666666666 - 0.066666666666666666 * var_chaste_interface__cell__V) + 0.23000000000000001 * var_x103); + const double var_x109 = exp(-0.90909090909090906 - 0.12987012987012986 * var_chaste_interface__cell__V); + const double var_x110 = 6.9999999999999997e-7 * var_x109; + const double var_x111 = exp(0.36945812807881773 + var_x100); + const double var_x112 = 0.22 * var_x111; + const double var_x113 = 3.802 / (0.20000000000000001 * var_x103 + 0.1027 * exp(-0.14705882352941177 - 0.058823529411764705 * var_chaste_interface__cell__V)); + const double var_x114 = -var_x113; + const double var_x115 = 0.19170000000000001 * exp(-0.12315270935960591 + var_x100); + const double var_x116 = -var_x108 - var_x115; + const double var_x117 = var_x107 + var_x114; + const double var_x118 = -var_x110; + const double var_x119 = 1 / (0.39395599999999997 + 0.188495 * exp(-0.42168674698795178 - 0.060240963855421679 * var_chaste_interface__cell__V)); + const double var_x120 = 1.0526315789473684e-5 * var_x119; + const double var_x121 = 1.4e-8 * var_x109; + const double var_x122 = 0.001 * var_x119; + const double var_x123 = 0.008539999999999999 + var_x106; + const double var_x124 = 1.2097272727272726e-5 * var_x104 * var_x109 * var_x119 / (var_x111 * var_x123); + const double var_x125 = var_x119; + const double var_x126 = -var_chaste_interface__cell__V; + const double var_x127 = 1 / var_chaste_interface__potassium_concentration__Ki; + const double var_x128 = var_x127 * mParameters[2]; + const double var_x129 = log(var_x128); + const double var_x130 = 26.535875647668394 * var_x129; + const double var_x131 = 0.065313235986811116 * mParameters[5]; + const double var_x132 = var_chaste_interface__non_inactivating_steady_state_K_I__aKss * mParameters[8]; + const double var_x133 = 1 / (var_chaste_interface__potassium_concentration__Ki + 0.020408163265306124 * var_chaste_interface__sodium_concentration__Nai); + const double var_x134 = var_x133 * var_chaste_interface__rapid_delayed_rectifier_K_I__O_K * mParameters[9]; + const double var_x135 = 1.7331439082928402 * var_x127; + const double var_x136 = exp(0.089599999999999999 * var_chaste_interface__cell__V - 2.3776144580310881 * var_x129); + const double var_x137 = 1 + var_x136; + const double var_x138 = var_x128 * mParameters[7] / (210 + mParameters[2]); + const double var_x139 = 1 / var_chaste_interface__sodium_concentration__Nai; + const double var_x140 = pow(var_x139, 2.3999999999999999); + const double var_x141 = var_x139 * var_x140 * mParameters[2] / ((1500 + mParameters[2]) * pow((7.44287265976699e-11 + var_x140), 2) * (1 + 0.1245 * exp(-0.0037684831406265135 * var_chaste_interface__cell__V) + 0.036499999999999998 * (-0.14285714285714285 + 0.14285714285714285 * exp(1.4858841010401188e-5 * mParameters[3])) * exp(-0.037684831406265135 * var_chaste_interface__cell__V))); + const double var_x142 = -0.022348 * exp(0.01176 * var_chaste_interface__cell__V); + const double var_x143 = 0.033500000000000002 * exp(0.0109 * var_chaste_interface__cell__V); + const double var_x144 = 6.8899999999999994e-5 * exp(-0.041779999999999998 * var_chaste_interface__cell__V); + const double var_x145 = 0.0064970000000000002 * exp(-0.16339999999999999 - 0.032680000000000001 * var_chaste_interface__cell__V); + const double var_x146 = 0.070300000000000001 * exp(0.14349999999999999 + 0.0287 * var_chaste_interface__cell__V); + const double var_x147 = pow(var_chaste_interface__calcium_concentration__Cass, 3); + const double var_x148 = 0.012149999999999999 * pow(var_chaste_interface__calcium_concentration__Cass, 2) * var_chaste_interface__ryanodine_receptors__P_O1; + const double var_x149 = -0.0060749999999999997 * pow(var_chaste_interface__calcium_concentration__Cass, 4); + const double var_x150 = 0.0040499999999999998 * var_x147; + const double var_x151 = 4.2191641619115923e-37 * var_x66; + const double var_x152 = 1 / (var_chaste_interface__sodium_concentration__Nai + 0.1111111111111111 * var_chaste_interface__potassium_concentration__Ki); + const double var_x153 = var_x152 * var_chaste_interface__fast_sodium_current__O_Na * mParameters[6]; rJacobian[0][0] = 1.0 - (mDt * (var_x4 - 0.00034782608695652176 * var_x1 / (0.0625 + 0.40000000000000002 * var_x0))); @@ -732,13 +736,13 @@ rJacobian[4][24] = 0.0; rJacobian[4][25] = -(mDt * (var_x51 * (0.19593970796043336 * var_x74 + var_x67 * var_x73) * mParameters[5])); rJacobian[5][0] = 0.0; - rJacobian[5][1] = -(mDt * (-var_x77 * var_x87 * var_x88)); - rJacobian[5][2] = -(mDt * (var_x13 * var_x89)); + rJacobian[5][1] = -(mDt * (-var_x77 * var_x91 * var_x92)); + rJacobian[5][2] = -(mDt * (var_x13 * var_x93)); rJacobian[5][3] = 0.0; rJacobian[5][4] = -(mDt * (125000 * var_x77)); - rJacobian[5][5] = 1.0 - (mDt * (var_x77 * (-125 + 3.5000000000000004 * var_x18 - var_x88 * var_x91) + 0.030581039755351685 * (125000 * var_chaste_interface__calcium_concentration__Cai_converted + 3.5000000000000004 * var_x16 - 125 * var_chaste_interface__calcium_concentration__Cass - var_x88 * ((var_x83) ? (-var_x92 + 376848.31406265136 * (1.3267937823834197e-6 + var_chaste_interface__cell__V) * (var_x92 - var_x82 * var_chaste_interface__L_type_calcium_current__O)) : (-var_x86 * var_x90))) / (pow(var_x75, 3) * pow((0.015290519877675841 + var_x76), 2)))); + rJacobian[5][5] = 1.0 - (mDt * (var_x77 * (-125 + 3.5000000000000004 * var_x18 - var_x92 * var_x95) + 0.030581039755351685 * (125000 * var_chaste_interface__calcium_concentration__Cai_converted + 3.5000000000000004 * var_x16 - 125 * var_chaste_interface__calcium_concentration__Cass - var_x92 * ((var_x87) ? (var_x96 + 376848.31406265136 * (1.3267937823834197e-6 + var_chaste_interface__cell__V) * (-var_x96 - var_x86 * var_chaste_interface__L_type_calcium_current__O)) : (-var_x90 * var_chaste_interface__L_type_calcium_current__O))) / (pow(var_x75, 3) * pow((0.015290519877675841 + var_x76), 2)))); rJacobian[5][6] = 0.0; - rJacobian[5][7] = -(mDt * (var_x19 * var_x89)); + rJacobian[5][7] = -(mDt * (var_x19 * var_x93)); rJacobian[5][8] = 0.0; rJacobian[5][9] = 0.0; rJacobian[5][10] = 0.0; @@ -754,8 +758,8 @@ rJacobian[5][20] = 0.0; rJacobian[5][21] = 0.0; rJacobian[5][22] = 0.0; - rJacobian[5][23] = -(mDt * (var_x93)); - rJacobian[5][24] = -(mDt * (var_x93)); + rJacobian[5][23] = -(mDt * (var_x97)); + rJacobian[5][24] = -(mDt * (var_x97)); rJacobian[5][25] = 0.0; rJacobian[6][0] = 0.0; rJacobian[6][1] = 0.0; @@ -763,7 +767,7 @@ rJacobian[6][3] = 0.0; rJacobian[6][4] = 0.0; rJacobian[6][5] = -(mDt * (0.00175 * var_x31 * var_x42 + 8.7500000000000013e-5 * var_x41 * pow(var_x27, 2) / pow(var_x28, 3))); - rJacobian[6][6] = 1.0 - (mDt * (-0.00020000000000000001 - var_x31 * var_x94 + var_x27 * var_x94 * (1 - var_x30))); + rJacobian[6][6] = 1.0 - (mDt * (-0.00020000000000000001 - var_x31 * var_x98 + var_x27 * var_x98 * (1 - var_x30))); rJacobian[6][7] = 0.0; rJacobian[6][8] = 0.0; rJacobian[6][9] = 0.0; @@ -784,11 +788,11 @@ rJacobian[6][24] = 0.0; rJacobian[6][25] = 0.0; rJacobian[7][0] = 0.0; - rJacobian[7][1] = -(mDt * (-var_x87 * var_x95)); + rJacobian[7][1] = -(mDt * (-var_x91 * var_x99)); rJacobian[7][2] = 0.0; rJacobian[7][3] = 0.0; rJacobian[7][4] = 0.0; - rJacobian[7][5] = -(mDt * (-var_x91 * var_x95)); + rJacobian[7][5] = -(mDt * (-var_x95 * var_x99)); rJacobian[7][6] = 0.0; rJacobian[7][7] = 1.0 - (mDt * (-0.01)); rJacobian[7][8] = 0.0; @@ -817,14 +821,14 @@ rJacobian[8][5] = 0.0; rJacobian[8][6] = 0.0; rJacobian[8][7] = 0.0; - rJacobian[8][8] = 1.0 - (mDt * (var_x103 + var_x98 - var_x101)); - rJacobian[8][9] = -(mDt * (var_x104)); + rJacobian[8][8] = 1.0 - (mDt * (var_x102 + var_x107 - var_x105)); + rJacobian[8][9] = -(mDt * (var_x108)); rJacobian[8][10] = 0.0; rJacobian[8][11] = 0.0; rJacobian[8][12] = 0.0; rJacobian[8][13] = 0.0; - rJacobian[8][14] = -(mDt * (var_x106)); - rJacobian[8][15] = -(mDt * (var_x108)); + rJacobian[8][14] = -(mDt * (var_x110)); + rJacobian[8][15] = -(mDt * (var_x112)); rJacobian[8][16] = 0.0; rJacobian[8][17] = 0.0; rJacobian[8][18] = 0.0; @@ -843,14 +847,14 @@ rJacobian[9][5] = 0.0; rJacobian[9][6] = 0.0; rJacobian[9][7] = 0.0; - rJacobian[9][8] = -(mDt * (var_x110 + var_x97)); - rJacobian[9][9] = 1.0 - (mDt * (var_x112 + var_x113)); - rJacobian[9][10] = -(mDt * (var_x110)); - rJacobian[9][11] = -(mDt * (var_x110)); - rJacobian[9][12] = -(mDt * (var_x106 + var_x110)); - rJacobian[9][13] = -(mDt * (var_x110)); - rJacobian[9][14] = -(mDt * (var_x110)); - rJacobian[9][15] = -(mDt * (var_x110)); + rJacobian[9][8] = -(mDt * (var_x101 + var_x114)); + rJacobian[9][9] = 1.0 - (mDt * (var_x116 + var_x117)); + rJacobian[9][10] = -(mDt * (var_x114)); + rJacobian[9][11] = -(mDt * (var_x114)); + rJacobian[9][12] = -(mDt * (var_x110 + var_x114)); + rJacobian[9][13] = -(mDt * (var_x114)); + rJacobian[9][14] = -(mDt * (var_x114)); + rJacobian[9][15] = -(mDt * (var_x114)); rJacobian[9][16] = 0.0; rJacobian[9][17] = 0.0; rJacobian[9][18] = 0.0; @@ -871,11 +875,11 @@ rJacobian[10][7] = 0.0; rJacobian[10][8] = 0.0; rJacobian[10][9] = 0.0; - rJacobian[10][10] = 1.0 - (mDt * (var_x114 - var_x116)); - rJacobian[10][11] = -(mDt * (var_x117)); + rJacobian[10][10] = 1.0 - (mDt * (var_x118 - var_x120)); + rJacobian[10][11] = -(mDt * (var_x121)); rJacobian[10][12] = 0.0; rJacobian[10][13] = 0.0; - rJacobian[10][14] = -(mDt * (var_x118)); + rJacobian[10][14] = -(mDt * (var_x122)); rJacobian[10][15] = 0.0; rJacobian[10][16] = 0.0; rJacobian[10][17] = 0.0; @@ -897,8 +901,8 @@ rJacobian[11][7] = 0.0; rJacobian[11][8] = 0.0; rJacobian[11][9] = 0.0; - rJacobian[11][10] = -(mDt * (var_x116)); - rJacobian[11][11] = 1.0 - (mDt * (-var_x117)); + rJacobian[11][10] = -(mDt * (var_x120)); + rJacobian[11][11] = 1.0 - (mDt * (-var_x121)); rJacobian[11][12] = 0.0; rJacobian[11][13] = 0.0; rJacobian[11][14] = 0.0; @@ -922,12 +926,12 @@ rJacobian[12][6] = 0.0; rJacobian[12][7] = 0.0; rJacobian[12][8] = 0.0; - rJacobian[12][9] = -(mDt * (var_x119)); + rJacobian[12][9] = -(mDt * (var_x123)); rJacobian[12][10] = 0.0; rJacobian[12][11] = 0.0; - rJacobian[12][12] = 1.0 - (mDt * (var_x112 + var_x114)); - rJacobian[12][13] = -(mDt * (var_x109)); - rJacobian[12][14] = -(mDt * (var_x97)); + rJacobian[12][12] = 1.0 - (mDt * (var_x116 + var_x118)); + rJacobian[12][13] = -(mDt * (var_x113)); + rJacobian[12][14] = -(mDt * (var_x101)); rJacobian[12][15] = 0.0; rJacobian[12][16] = 0.0; rJacobian[12][17] = 0.0; @@ -947,14 +951,14 @@ rJacobian[13][5] = 0.0; rJacobian[13][6] = 0.0; rJacobian[13][7] = 0.0; - rJacobian[13][8] = -(mDt * (var_x103)); - rJacobian[13][9] = -(mDt * (var_x103)); - rJacobian[13][10] = -(mDt * (var_x103)); - rJacobian[13][11] = -(mDt * (var_x103)); - rJacobian[13][12] = -(mDt * (var_x103 + var_x111)); - rJacobian[13][13] = 1.0 - (mDt * (var_x113 + var_x114)); - rJacobian[13][14] = -(mDt * (var_x103)); - rJacobian[13][15] = -(mDt * (var_x103)); + rJacobian[13][8] = -(mDt * (var_x107)); + rJacobian[13][9] = -(mDt * (var_x107)); + rJacobian[13][10] = -(mDt * (var_x107)); + rJacobian[13][11] = -(mDt * (var_x107)); + rJacobian[13][12] = -(mDt * (var_x107 + var_x115)); + rJacobian[13][13] = 1.0 - (mDt * (var_x117 + var_x118)); + rJacobian[13][14] = -(mDt * (var_x107)); + rJacobian[13][15] = -(mDt * (var_x107)); rJacobian[13][16] = 0.0; rJacobian[13][17] = 0.0; rJacobian[13][18] = 0.0; @@ -973,14 +977,14 @@ rJacobian[14][5] = 0.0; rJacobian[14][6] = 0.0; rJacobian[14][7] = 0.0; - rJacobian[14][8] = -(mDt * (var_x119)); + rJacobian[14][8] = -(mDt * (var_x123)); rJacobian[14][9] = 0.0; - rJacobian[14][10] = -(mDt * (var_x106)); + rJacobian[14][10] = -(mDt * (var_x110)); rJacobian[14][11] = 0.0; - rJacobian[14][12] = -(mDt * (var_x104)); + rJacobian[14][12] = -(mDt * (var_x108)); rJacobian[14][13] = 0.0; - rJacobian[14][14] = 1.0 - (mDt * (var_x114 + var_x98 - var_x118 - var_x120)); - rJacobian[14][15] = -(mDt * (var_x121)); + rJacobian[14][14] = 1.0 - (mDt * (var_x102 + var_x118 - var_x122 - var_x124)); + rJacobian[14][15] = -(mDt * (var_x125)); rJacobian[14][16] = 0.0; rJacobian[14][17] = 0.0; rJacobian[14][18] = 0.0; @@ -999,14 +1003,14 @@ rJacobian[15][5] = 0.0; rJacobian[15][6] = 0.0; rJacobian[15][7] = 0.0; - rJacobian[15][8] = -(mDt * (var_x101)); + rJacobian[15][8] = -(mDt * (var_x105)); rJacobian[15][9] = 0.0; rJacobian[15][10] = 0.0; rJacobian[15][11] = 0.0; rJacobian[15][12] = 0.0; rJacobian[15][13] = 0.0; - rJacobian[15][14] = -(mDt * (var_x120)); - rJacobian[15][15] = 1.0 - (mDt * (-var_x108 - var_x121)); + rJacobian[15][14] = -(mDt * (var_x124)); + rJacobian[15][15] = 1.0 - (mDt * (-var_x112 - var_x125)); rJacobian[15][16] = 0.0; rJacobian[15][17] = 0.0; rJacobian[15][18] = 0.0; @@ -1059,16 +1063,16 @@ rJacobian[17][13] = 0.0; rJacobian[17][14] = 0.0; rJacobian[17][15] = 0.0; - rJacobian[17][16] = -(mDt * (var_x127 * var_x128 * (var_x122 + var_x126))); - rJacobian[17][17] = 1.0 - (mDt * ((-1.7331439082928402 * var_x130 - 1.7331439082928402 * var_x134 / var_x133 - var_x128 * var_x131 * var_chaste_interface__non_inactivating_steady_state_K_I__iKss - var_x131 * pow(var_chaste_interface__slow_delayed_rectifier_K_I__nKs, 2) * mParameters[10] - 0.43328597707321004 * var_x123 * var_chaste_interface__ultra_rapidly_activating_delayed_rectifier_K_I__aur * var_chaste_interface__ultra_rapidly_activating_delayed_rectifier_K_I__iur - 0.92671204776418159 * var_x123 * pow(var_chaste_interface__fast_transient_outward_K_I__ato_f, 3) * var_chaste_interface__fast_transient_outward_K_I__ito_f + 0.15528969418303848 * var_x132 * var_x134 * (-var_x126 + var_chaste_interface__cell__V) / pow(var_x133, 2)) * mParameters[5])); + rJacobian[17][16] = -(mDt * (var_x131 * var_x132 * (var_x126 + var_x130))); + rJacobian[17][17] = 1.0 - (mDt * ((-1.7331439082928402 * var_x134 - 1.7331439082928402 * var_x138 / var_x137 - var_x132 * var_x135 * var_chaste_interface__non_inactivating_steady_state_K_I__iKss - var_x135 * pow(var_chaste_interface__slow_delayed_rectifier_K_I__nKs, 2) * mParameters[10] - 0.43328597707321004 * var_x127 * var_chaste_interface__ultra_rapidly_activating_delayed_rectifier_K_I__aur * var_chaste_interface__ultra_rapidly_activating_delayed_rectifier_K_I__iur - 0.92671204776418159 * var_x127 * pow(var_chaste_interface__fast_transient_outward_K_I__ato_f, 3) * var_chaste_interface__fast_transient_outward_K_I__ito_f + 0.15528969418303848 * var_x136 * var_x138 * (-var_x130 + var_chaste_interface__cell__V) / pow(var_x137, 2)) * mParameters[5])); rJacobian[17][18] = 0.0; rJacobian[17][19] = 0.0; rJacobian[17][20] = 0.0; - rJacobian[17][21] = -(mDt * (var_x127 * (var_x122 + 26.535875647668394 * log(var_x129 * (mParameters[2] + 0.020408163265306124 * mParameters[3]))) * mParameters[9])); + rJacobian[17][21] = -(mDt * (var_x131 * (var_x126 + 26.535875647668394 * log(var_x133 * (mParameters[2] + 0.020408163265306124 * mParameters[3]))) * mParameters[9])); rJacobian[17][22] = 0.0; rJacobian[17][23] = 0.0; rJacobian[17][24] = 0.0; - rJacobian[17][25] = -(mDt * ((5.8007500451501034e-11 * var_x137 - 0.035370283842711021 * var_x130) * mParameters[5])); + rJacobian[17][25] = -(mDt * ((5.8007500451501034e-11 * var_x141 - 0.035370283842711021 * var_x134) * mParameters[5])); rJacobian[18][0] = 0.0; rJacobian[18][1] = 0.0; rJacobian[18][2] = 0.0; @@ -1087,10 +1091,10 @@ rJacobian[18][15] = 0.0; rJacobian[18][16] = 0.0; rJacobian[18][17] = 0.0; - rJacobian[18][18] = 1.0 - (mDt * (-0.023761000000000001 + var_x138 - 0.047002000000000002 * exp(-0.063100000000000003 * var_chaste_interface__cell__V))); - rJacobian[18][19] = -(mDt * (0.036777999999999998 + var_x138)); - rJacobian[18][20] = -(mDt * (var_x138)); - rJacobian[18][21] = -(mDt * (var_x138)); + rJacobian[18][18] = 1.0 - (mDt * (-0.023761000000000001 + var_x142 - 0.047002000000000002 * exp(-0.063100000000000003 * var_chaste_interface__cell__V))); + rJacobian[18][19] = -(mDt * (0.036777999999999998 + var_x142)); + rJacobian[18][20] = -(mDt * (var_x142)); + rJacobian[18][21] = -(mDt * (var_x142)); rJacobian[18][22] = 0.0; rJacobian[18][23] = 0.0; rJacobian[18][24] = 0.0; @@ -1114,9 +1118,9 @@ rJacobian[19][16] = 0.0; rJacobian[19][17] = 0.0; rJacobian[19][18] = -(mDt * (0.023761000000000001)); - rJacobian[19][19] = 1.0 - (mDt * (-0.036777999999999998 - var_x139)); + rJacobian[19][19] = 1.0 - (mDt * (-0.036777999999999998 - var_x143)); rJacobian[19][20] = 0.0; - rJacobian[19][21] = -(mDt * (var_x140)); + rJacobian[19][21] = -(mDt * (var_x144)); rJacobian[19][22] = 0.0; rJacobian[19][23] = 0.0; rJacobian[19][24] = 0.0; @@ -1141,8 +1145,8 @@ rJacobian[20][17] = 0.0; rJacobian[20][18] = 0.0; rJacobian[20][19] = 0.0; - rJacobian[20][20] = 1.0 - (mDt * (-var_x141)); - rJacobian[20][21] = -(mDt * (var_x142)); + rJacobian[20][20] = 1.0 - (mDt * (-var_x145)); + rJacobian[20][21] = -(mDt * (var_x146)); rJacobian[20][22] = 0.0; rJacobian[20][23] = 0.0; rJacobian[20][24] = 0.0; @@ -1166,9 +1170,9 @@ rJacobian[21][16] = 0.0; rJacobian[21][17] = 0.0; rJacobian[21][18] = 0.0; - rJacobian[21][19] = -(mDt * (var_x139)); - rJacobian[21][20] = -(mDt * (var_x141)); - rJacobian[21][21] = 1.0 - (mDt * (-var_x140 - var_x142)); + rJacobian[21][19] = -(mDt * (var_x143)); + rJacobian[21][20] = -(mDt * (var_x145)); + rJacobian[21][21] = 1.0 - (mDt * (-var_x144 - var_x146)); rJacobian[21][22] = 0.0; rJacobian[21][23] = 0.0; rJacobian[21][24] = 0.0; @@ -1204,7 +1208,7 @@ rJacobian[23][2] = 0.0; rJacobian[23][3] = 0.0; rJacobian[23][4] = 0.0; - rJacobian[23][5] = -(mDt * (-var_x144 + 0.024299999999999999 * var_x143 * (1 + var_x17 - var_chaste_interface__ryanodine_receptors__P_C2))); + rJacobian[23][5] = -(mDt * (-var_x148 + 0.024299999999999999 * var_x147 * (1 + var_x17 - var_chaste_interface__ryanodine_receptors__P_C2))); rJacobian[23][6] = 0.0; rJacobian[23][7] = 0.0; rJacobian[23][8] = 0.0; @@ -1221,16 +1225,16 @@ rJacobian[23][19] = 0.0; rJacobian[23][20] = 0.0; rJacobian[23][21] = 0.0; - rJacobian[23][22] = -(mDt * (0.00080000000000000004 + var_x145)); - rJacobian[23][23] = 1.0 - (mDt * (-0.080249999999999988 + var_x145 - var_x146)); - rJacobian[23][24] = -(mDt * (0.96499999999999997 + var_x145)); + rJacobian[23][22] = -(mDt * (0.00080000000000000004 + var_x149)); + rJacobian[23][23] = 1.0 - (mDt * (-0.080249999999999988 + var_x149 - var_x150)); + rJacobian[23][24] = -(mDt * (0.96499999999999997 + var_x149)); rJacobian[23][25] = 0.0; rJacobian[24][0] = 0.0; rJacobian[24][1] = 0.0; rJacobian[24][2] = 0.0; rJacobian[24][3] = 0.0; rJacobian[24][4] = 0.0; - rJacobian[24][5] = -(mDt * (var_x144)); + rJacobian[24][5] = -(mDt * (var_x148)); rJacobian[24][6] = 0.0; rJacobian[24][7] = 0.0; rJacobian[24][8] = 0.0; @@ -1248,14 +1252,14 @@ rJacobian[24][20] = 0.0; rJacobian[24][21] = 0.0; rJacobian[24][22] = 0.0; - rJacobian[24][23] = -(mDt * (var_x146)); + rJacobian[24][23] = -(mDt * (var_x150)); rJacobian[24][24] = 1.0 - (mDt * (-0.96499999999999997)); rJacobian[24][25] = 0.0; rJacobian[25][0] = 0.0; rJacobian[25][1] = 0.0; rJacobian[25][2] = 0.0; rJacobian[25][3] = 0.0; - rJacobian[25][4] = -(mDt * ((195.93970796043337 * var_x70 - var_x147 * var_x56) * mParameters[5])); + rJacobian[25][4] = -(mDt * ((195.93970796043337 * var_x70 - var_x151 * var_x56) * mParameters[5])); rJacobian[25][5] = 0.0; rJacobian[25][6] = 0.0; rJacobian[25][7] = 0.0; @@ -1266,9 +1270,9 @@ rJacobian[25][12] = 0.0; rJacobian[25][13] = 0.0; rJacobian[25][14] = 0.0; - rJacobian[25][15] = -(mDt * (var_x127 * (var_x122 + 26.535875647668394 * log(var_x148 * (mParameters[3] + 0.1111111111111111 * mParameters[2]))) * mParameters[6])); + rJacobian[25][15] = -(mDt * (var_x131 * (var_x126 + 26.535875647668394 * log(var_x152 * (mParameters[3] + 0.1111111111111111 * mParameters[2]))) * mParameters[6])); rJacobian[25][16] = 0.0; - rJacobian[25][17] = -(mDt * ((-0.0005006860179512649 * var_x148 - 0.19257154536587112 * var_x149) * mParameters[5])); + rJacobian[25][17] = -(mDt * ((-0.0005006860179512649 * var_x152 - 0.19257154536587112 * var_x153) * mParameters[5])); rJacobian[25][18] = 0.0; rJacobian[25][19] = 0.0; rJacobian[25][20] = 0.0; @@ -1276,7 +1280,7 @@ rJacobian[25][22] = 0.0; rJacobian[25][23] = 0.0; rJacobian[25][24] = 0.0; - rJacobian[25][25] = 1.0 - (mDt * ((-1.7331439082928402 * var_x149 - 0.004506174161561384 * var_x148 - 0.58781912388130009 * var_x74 - 8.7011250677251544e-11 * var_x137 - var_x147 * var_x73) * mParameters[5])); + rJacobian[25][25] = 1.0 - (mDt * ((-1.7331439082928402 * var_x153 - 0.004506174161561384 * var_x152 - 0.58781912388130009 * var_x74 - 8.7011250677251544e-11 * var_x141 - var_x151 * var_x73) * mParameters[5])); } void Cellli_mouse_2010FromCellMLBackwardEuler::UpdateTransmembranePotential(double var_chaste_interface__environment__time) diff --git a/chaste_codegen/data/tests/chaste_reference_models/BEopt/bondarenko_szigeti_bett_kim_rasmusson_2004_apical.cpp b/chaste_codegen/data/tests/chaste_reference_models/BEopt/bondarenko_szigeti_bett_kim_rasmusson_2004_apical.cpp index 0bffba1c..5ffcb3c3 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/BEopt/bondarenko_szigeti_bett_kim_rasmusson_2004_apical.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/BEopt/bondarenko_szigeti_bett_kim_rasmusson_2004_apical.cpp @@ -461,7 +461,7 @@ class Cellbondarenko_szigeti_bett_kim_rasmusson_2004_apicalFromCellMLBackwardEul for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -26.500000781250002) && (var_chaste_interface__membrane__V <= -26.499999218749998)) ? (0.00010137404180680451 + 2.4064113653459901e-6 * var_chaste_interface__membrane__V) : (4.8133299999999997e-6 * (26.5 + var_chaste_interface__membrane__V) / (1 - 0.033641326918204616 * exp(-0.128 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -26.500000781250002) && (var_chaste_interface__membrane__V <= -26.499999218749998)) ? (-3.7604140624912359e-12 / (1 - exp(9.9999999999766942e-8)) + 640000.00000149151 * (26.500000781250002 + var_chaste_interface__membrane__V) * (3.7604140624912359e-12 / (1 - exp(9.9999999999766942e-8)) + 3.7604140624912359e-12 / (1 - exp(-9.9999999999766942e-8)))) : (4.8133299999999997e-6 * (26.5 + var_chaste_interface__membrane__V) / (1 - exp(-3.3919999999999999 - 0.128 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -2291,7 +2291,7 @@ std::shared_ptr= -26.500000781250002) && (var_chaste_interface__membrane__V <= -26.499999218749998)) ? (-3.7604140624912359e-12 / (1 - exp(9.9999999999766942e-8)) + 640000.00000149151 * (26.500000781250002 + var_chaste_interface__membrane__V) * (3.7604140624912359e-12 / (1 - exp(9.9999999999766942e-8)) + 3.7604140624912359e-12 / (1 - exp(-9.9999999999766942e-8)))) : (4.8133299999999997e-6 * (26.5 + var_chaste_interface__membrane__V) / (1 - exp(-3.3919999999999999 - 0.128 * var_chaste_interface__membrane__V)))); + const double var_slow_delayed_rectifier_potassium_current__alpha_n = _lt_0_row[29]; const double var_slow_delayed_rectifier_potassium_current__beta_n = 9.5333299999999997e-5 * _lt_0_row[30]; const double var_slow_transient_outward_potassium_current__ass = _lt_0_row[31]; const double var_slow_transient_outward_potassium_current__iss = _lt_0_row[33]; diff --git a/chaste_codegen/data/tests/chaste_reference_models/BEopt/bondarenko_szigeti_bett_kim_rasmusson_2004_apical.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/BEopt/bondarenko_szigeti_bett_kim_rasmusson_2004_apical.cpp_alt index 2b0ac965..4012f535 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/BEopt/bondarenko_szigeti_bett_kim_rasmusson_2004_apical.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/BEopt/bondarenko_szigeti_bett_kim_rasmusson_2004_apical.cpp_alt @@ -461,7 +461,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -26.500000781250002) && (var_chaste_interface__membrane__V <= -26.499999218749998)) ? (0.00010137404180680451 + 2.4064113653459901e-6 * var_chaste_interface__membrane__V) : (4.8133299999999997e-6 * (26.5 + var_chaste_interface__membrane__V) / (1 - 0.033641326918204616 * exp(-0.128 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -26.500000781250002) && (var_chaste_interface__membrane__V <= -26.499999218749998)) ? (-3.7604140624912359e-12 / (1 - exp(9.9999999999766942e-8)) + 640000.00000149151 * (26.500000781250002 + var_chaste_interface__membrane__V) * (3.7604140624912359e-12 / (1 - exp(9.9999999999766942e-8)) + 3.7604140624912359e-12 / (1 - exp(-9.9999999999766942e-8)))) : (4.8133299999999997e-6 * (26.5 + var_chaste_interface__membrane__V) / (1 - exp(-3.3919999999999999 - 0.128 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -2298,7 +2298,7 @@ std::shared_ptr= -26.500000781250002) && (var_chaste_interface__membrane__V <= -26.499999218749998)) ? (-3.7604140624912359e-12 / (1 - exp(9.9999999999766942e-8)) + 640000.00000149151 * (26.500000781250002 + var_chaste_interface__membrane__V) * (3.7604140624912359e-12 / (1 - exp(9.9999999999766942e-8)) + 3.7604140624912359e-12 / (1 - exp(-9.9999999999766942e-8)))) : (4.8133299999999997e-6 * (26.5 + var_chaste_interface__membrane__V) / (1 - exp(-3.3919999999999999 - 0.128 * var_chaste_interface__membrane__V)))); + const double var_slow_delayed_rectifier_potassium_current__alpha_n = _lt_0_row[29]; const double var_slow_delayed_rectifier_potassium_current__beta_n = 9.5333299999999997e-5 * _lt_0_row[30]; const double var_slow_transient_outward_potassium_current__ass = _lt_0_row[31]; const double var_slow_transient_outward_potassium_current__iss = _lt_0_row[33]; diff --git a/chaste_codegen/data/tests/chaste_reference_models/BEopt/decker_2009.cpp b/chaste_codegen/data/tests/chaste_reference_models/BEopt/decker_2009.cpp index 225e3ad6..ce752f9a 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/BEopt/decker_2009.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/BEopt/decker_2009.cpp @@ -439,7 +439,7 @@ class Celldecker_2009FromCellMLBackwardEulerOpt_LookupTables : public AbstractLo for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return (((var_chaste_interface__membrane__Vm >= -38.360800657030218) && (var_chaste_interface__membrane__Vm >= 1.7383992647058824) && (var_chaste_interface__membrane__Vm <= -38.360799342969777) && (var_chaste_interface__membrane__Vm <= 1.7384007352941175)) ? (0.00010728719650357499 + 0.00015002322300925781 * var_chaste_interface__membrane__Vm) : (((var_chaste_interface__membrane__Vm >= -38.360800657030218) && (var_chaste_interface__membrane__Vm <= -38.360799342969777)) ? (-0.0037829220022600053 - 0.00014999720215504254 * var_chaste_interface__membrane__Vm + 0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - 1.2667092551679247 * exp(-0.13600000000000001 * var_chaste_interface__membrane__Vm))) : (((var_chaste_interface__membrane__Vm >= 1.7383992647058824) && (var_chaste_interface__membrane__Vm <= 1.7384007352941175)) ? (0.0038902091987635802 + 0.00030002042516430038 * var_chaste_interface__membrane__Vm + 0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + 343.26878155836141 * exp(0.1522 * var_chaste_interface__membrane__Vm))) : (0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + 343.26878155836141 * exp(0.1522 * var_chaste_interface__membrane__Vm)) + 0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - 1.2667092551679247 * exp(-0.13600000000000001 * var_chaste_interface__membrane__Vm)))))); + return (((var_chaste_interface__membrane__Vm >= -38.360800657030218) && (var_chaste_interface__membrane__Vm >= 1.7383992647058824) && (var_chaste_interface__membrane__Vm <= -38.360799342969777) && (var_chaste_interface__membrane__Vm <= 1.7384007352941175)) ? (-1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)) - 4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 680000.00000016927 * (-1.7383992647058824 + var_chaste_interface__membrane__Vm) * (4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 4.4117647058812543e-10 / (1 - exp(-9.9999999999975114e-8))) + 760999.99999526795 * (38.360800657030218 + var_chaste_interface__membrane__Vm) * (1.9710906701830842e-10 / (-1 + exp(1.0000000000062181e-7)) + 1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)))) : (((var_chaste_interface__membrane__Vm >= -38.360800657030218) && (var_chaste_interface__membrane__Vm <= -38.360799342969777)) ? (-1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)) + 0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - exp(0.2364224 - 0.13600000000000001 * var_chaste_interface__membrane__Vm)) + 760999.99999526795 * (38.360800657030218 + var_chaste_interface__membrane__Vm) * (1.9710906701830842e-10 / (-1 + exp(1.0000000000062181e-7)) + 1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)))) : (((var_chaste_interface__membrane__Vm >= 1.7383992647058824) && (var_chaste_interface__membrane__Vm <= 1.7384007352941175)) ? (-4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + exp(5.8385137599999997 + 0.1522 * var_chaste_interface__membrane__Vm)) + 680000.00000016927 * (-1.7383992647058824 + var_chaste_interface__membrane__Vm) * (4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 4.4117647058812543e-10 / (1 - exp(-9.9999999999975114e-8)))) : (0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + exp(5.8385137599999997 + 0.1522 * var_chaste_interface__membrane__Vm)) + 0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - exp(0.2364224 - 0.13600000000000001 * var_chaste_interface__membrane__Vm)))))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -472,7 +472,7 @@ class Celldecker_2009FromCellMLBackwardEulerOpt_LookupTables : public AbstractLo for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return (((var_chaste_interface__membrane__Vm >= -47.130001) && (var_chaste_interface__membrane__Vm <= -47.129999000000005)) ? (10.740659346572018 + 0.15999701562822261 * var_chaste_interface__membrane__Vm) : (0.32000000000000001 * (47.130000000000003 + var_chaste_interface__membrane__Vm) / (1 - 0.00897780373069724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__Vm)))); + return (((var_chaste_interface__membrane__Vm >= -47.130001) && (var_chaste_interface__membrane__Vm <= -47.129999000000005)) ? (-3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 499999.99998562218 * (47.130001 + var_chaste_interface__membrane__Vm) * (3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 3.200000000092018e-7 / (1 - exp(-1.0000000000287557e-7)))) : (0.32000000000000001 * (47.130000000000003 + var_chaste_interface__membrane__Vm) / (1 - exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__Vm)))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -505,7 +505,7 @@ class Celldecker_2009FromCellMLBackwardEulerOpt_LookupTables : public AbstractLo for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return ((var_chaste_interface__membrane__Vm >= -40) ? (0) : (1.0495108254269646e-6 * exp(-0.14705882352941177 * var_chaste_interface__membrane__Vm))); + return ((var_chaste_interface__membrane__Vm >= -40) ? (0) : (0.13500000000000001 * exp(-11.764705882352942 - 0.14705882352941177 * var_chaste_interface__membrane__Vm))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -527,7 +527,7 @@ class Celldecker_2009FromCellMLBackwardEulerOpt_LookupTables : public AbstractLo for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return ((var_chaste_interface__membrane__Vm >= -40) ? (7.6923076923076916 / (1 + 0.38275493141491301 * exp(-0.0900900900900901 * var_chaste_interface__membrane__Vm))) : (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__Vm) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__Vm))); + return ((var_chaste_interface__membrane__Vm >= -40) ? (7.6923076923076916 / (1 + exp(-0.96036036036036043 - 0.0900900900900901 * var_chaste_interface__membrane__Vm))) : (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__Vm) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__Vm))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -549,7 +549,7 @@ class Celldecker_2009FromCellMLBackwardEulerOpt_LookupTables : public AbstractLo for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return ((var_chaste_interface__membrane__Vm >= -40) ? (0) : ((37.780000000000001 + var_chaste_interface__membrane__Vm) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__Vm) - 6.9480000000000006e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__Vm)) / (1 + 50262745825.953949 * exp(0.311 * var_chaste_interface__membrane__Vm)))); + return ((var_chaste_interface__membrane__Vm >= -40) ? (0) : ((37.780000000000001 + var_chaste_interface__membrane__Vm) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__Vm) - 6.9480000000000006e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__Vm)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__Vm)))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -571,7 +571,7 @@ class Celldecker_2009FromCellMLBackwardEulerOpt_LookupTables : public AbstractLo for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return ((var_chaste_interface__membrane__Vm >= -40) ? (0.29999999999999999 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__Vm) / (1 + 0.040762203978366211 * exp(-0.10000000000000001 * var_chaste_interface__membrane__Vm))) : (0.1212 * exp(-0.01052 * var_chaste_interface__membrane__Vm) / (1 + 0.0039608683399042569 * exp(-0.13780000000000001 * var_chaste_interface__membrane__Vm)))); + return ((var_chaste_interface__membrane__Vm >= -40) ? (0.29999999999999999 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__Vm) / (1 + exp(-3.2000000000000002 - 0.10000000000000001 * var_chaste_interface__membrane__Vm))) : (0.1212 * exp(-0.01052 * var_chaste_interface__membrane__Vm) / (1 + exp(-5.5312920000000005 - 0.13780000000000001 * var_chaste_interface__membrane__Vm)))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -977,11 +977,11 @@ std::shared_ptr Celldeck const double var_INaCa__INaCa_ss_sr = 0.20000000000000001 * (pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] * _lt_0_row[0] - pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr * _lt_0_row[1]) * mParameters[17] / ((_lt_0_row[2]) * (1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_ss_sr, 2)) * (669921.875 * var_chaste_interface__Ca__Ca_ss_sr + 1.3 * pow(var_chaste_interface__Na__Na_ss_sr, 3) + pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr + 0.0035999999999999999 * pow(mParameters[5], 3) * (1 + 0.00053738391835633597 * pow(var_chaste_interface__Na__Na_ss_sr, 3)) + 1860.8670000000004 * (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_ss_sr) * mParameters[3])); // uA_per_uF const double var_INaCa__INaCa = 0.80000000000000004 * (pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] * _lt_0_row[0] - pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i * _lt_0_row[1]) * mParameters[17] / ((_lt_0_row[2]) * (1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_i, 2)) * (669921.875 * var_chaste_interface__Ca__Ca_i + 1.3 * pow(var_chaste_interface__Na__Na_i, 3) + pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i + 0.0035999999999999999 * pow(mParameters[5], 3) * (1 + 0.00053738391835633597 * pow(var_chaste_interface__Na__Na_i, 3)) + 1860.8670000000004 * (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_i) * mParameters[3])) + var_INaCa__INaCa_ss_sr; // uA_per_uF const double var_INaK__INaK = 0.056895766954938545 * pow(var_chaste_interface__Na__Na_i, 3) * mParameters[18] * mParameters[4] / (pow((1 + 0.38461538461538458 * var_chaste_interface__Na__Na_i), 3) * (_lt_0_row[3]) * (1.5 + mParameters[4])); // uA_per_uF - const double var_membrane__caiont = -2 * var_INaCa__INaCa - 2 * var_INaCa__INaCa_ss_sr + (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))) + var_chaste_interface__Ca__Ca_i * mParameters[10] / (0.00050000000000000001 + var_chaste_interface__Ca__Ca_i) + (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF - const double var_membrane__clont = (26.712338705498265 * log(100 / var_chaste_interface__Cl__Cl_i) + var_chaste_interface__membrane__Vm) * mParameters[8] + (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19] - 96484.995175157921 * (-100.0000100000005 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) - 96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF + const double var_membrane__caiont = -2 * var_INaCa__INaCa - 2 * var_INaCa__INaCa_ss_sr + (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))) + var_chaste_interface__Ca__Ca_i * mParameters[10] / (0.00050000000000000001 + var_chaste_interface__Ca__Ca_i) + (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_membrane__clont = (26.712338705498265 * log(100 / var_chaste_interface__Cl__Cl_i) + var_chaste_interface__membrane__Vm) * mParameters[8] + (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF const double var_reversal_potentials__EK = 26.712338705498265 * log(mParameters[4] / var_chaste_interface__K__K_i); // mV const double var_reversal_potentials__ENa = 26.712338705498265 * log(mParameters[5] / var_chaste_interface__Na__Na_i); // mV - const double var_membrane__naiont = 3 * var_INaCa__INaCa + 3 * var_INaCa__INaCa_ss_sr + 3 * var_INaK__INaK + pow(var_chaste_interface__INaL_mL_gate__mL, 3) * (-var_reversal_potentials__ENa + var_chaste_interface__membrane__Vm) * mParameters[13] * var_chaste_interface__INaL_hL_gate__hL + pow(var_chaste_interface__INa_m_gate__m, 3) * (-var_reversal_potentials__ENa + var_chaste_interface__membrane__Vm) * mParameters[11] * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j + (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96484.995175157921 * (-mParameters[5] + 1.0000001000000049 * var_chaste_interface__Na__Na_i) * mParameters[9] - 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) + 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF + const double var_membrane__naiont = 3 * var_INaCa__INaCa + 3 * var_INaCa__INaCa_ss_sr + 3 * var_INaK__INaK + pow(var_chaste_interface__INaL_mL_gate__mL, 3) * (-var_reversal_potentials__ENa + var_chaste_interface__membrane__Vm) * mParameters[13] * var_chaste_interface__INaL_hL_gate__hL + pow(var_chaste_interface__INa_m_gate__m, 3) * (-var_reversal_potentials__ENa + var_chaste_interface__membrane__Vm) * mParameters[11] * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j + (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF const double var_membrane__kiont = -2 * var_INaK__INaK + (-var_reversal_potentials__EK + var_chaste_interface__membrane__Vm) * mParameters[14] / (_lt_0_row[10]) + (1 + 0.59999999999999998 / (1 + 6.4818210260626455e-7 * pow((1 / var_chaste_interface__Ca__Ca_i), 1.3999999999999999))) * (-26.712338705498265 * log((0.018329999999999999 * mParameters[5] + mParameters[4]) / (0.018329999999999999 * var_chaste_interface__Na__Na_i + var_chaste_interface__K__K_i)) + var_chaste_interface__membrane__Vm) * (1 - var_chaste_interface__IKs__C1 - var_chaste_interface__IKs__C10 - var_chaste_interface__IKs__C11 - var_chaste_interface__IKs__C12 - var_chaste_interface__IKs__C13 - var_chaste_interface__IKs__C14 - var_chaste_interface__IKs__C15 - var_chaste_interface__IKs__C2 - var_chaste_interface__IKs__C3 - var_chaste_interface__IKs__C4 - var_chaste_interface__IKs__C5 - var_chaste_interface__IKs__C6 - var_chaste_interface__IKs__C7 - var_chaste_interface__IKs__C8 - var_chaste_interface__IKs__C9) * mParameters[16] + 0.43033148291193518 * sqrt(mParameters[4]) * (-var_reversal_potentials__EK + var_chaste_interface__membrane__Vm) * mParameters[15] * var_chaste_interface__IKr_xr_gate__xr / (_lt_0_row[11]) + 0.4389381125701739 * sqrt(mParameters[4]) * (-var_reversal_potentials__EK + var_chaste_interface__membrane__Vm) * mParameters[12] / ((1 + exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__Vm - 0.23849999999999999 * var_reversal_potentials__EK)) * (1.02 / (1 + exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__Vm - 0.23849999999999999 * var_reversal_potentials__EK)) + (0.49124000000000001 * exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__Vm - 0.080320000000000003 * var_reversal_potentials__EK) + exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__Vm - 0.061749999999999999 * var_reversal_potentials__EK)) / (1 + exp(-2.4444678999999998 + 0.51429999999999998 * var_reversal_potentials__EK - 0.51429999999999998 * var_chaste_interface__membrane__Vm)))) + pow(var_chaste_interface__Ito1_a_gate__a, 3) * (-var_reversal_potentials__EK + var_chaste_interface__membrane__Vm) * mParameters[20] * var_chaste_interface__Ito1_i1f_gate__i1f * var_chaste_interface__Ito1_i1s_gate__i1s * _lt_0_row[12]; // uA_per_uF const double var_chaste_interface__i_ionic = (var_membrane__caiont + var_membrane__clont + var_membrane__kiont + var_membrane__naiont) * HeartConfig::Instance()->GetCapacitance(); // uA_per_cm2 @@ -1103,15 +1103,15 @@ std::shared_ptr Celldeck const double d_dt_chaste_interface_var_ICaL__CI = 9.9999999999999995e-7 * var_chaste_interface__ICaL__CI_star + (-var_ICaL__alpha - var_ICaL__delta_I - var_ICaL__x) * var_chaste_interface__ICaL__CI + var_chaste_interface__ICaL__C * var_ICaL__y + var_chaste_interface__ICaL__OI * var_ICaL__beta; // 1 / ms const double d_dt_chaste_interface_var_ICaL__CI_star = (-9.9999999999999995e-7 - var_ICaL__alpha - var_ICaL__x_star) * var_chaste_interface__ICaL__CI_star + var_chaste_interface__ICaL__CI * var_ICaL__delta_I + var_chaste_interface__ICaL__C_star * var_ICaL__y_star + var_ICaL__OI_star * var_ICaL__beta; // 1 / ms const double d_dt_chaste_interface_var_ICaL__OI = 9.9999999999999995e-7 * var_ICaL__OI_star + (-var_ICaL__beta - var_ICaL__delta_I - var_ICaL__x) * var_chaste_interface__ICaL__OI + var_chaste_interface__ICaL__CI * var_ICaL__alpha + var_chaste_interface__ICaL__O * var_ICaL__y; // 1 / ms - const double var_Ito2__Ito2 = (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19] - 96484.995175157921 * (-100.0000100000005 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) - 96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF + const double var_Ito2__Ito2 = (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF const double var_membrane__i_Stim = GetIntracellularAreaStimulus(var_chaste_interface__environment__time) / HeartConfig::Instance()->GetCapacitance(); // uA_per_uF - const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF - const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF const double d_dt_chaste_interface_var_Irel__Irel = (1 + 0.0123 / var_chaste_interface__Ca__Ca_JSR) * (-var_chaste_interface__Irel__Irel - var_ICaL__ICaL * var_Irel__beta_tau * mParameters[1] / (1 + pow((1 / var_chaste_interface__Ca__Ca_JSR), 8))) / var_Irel__beta_tau; // mM_per_ms / ms const double var_cell_geometry__AF = 5.0619267243613002e-10 * M_PI; // uF_mole_per_C const double d_dt_chaste_interface_var_Ca__Ca_ss_CaL = -(250 * var_ICaL__ICaL * var_cell_geometry__AF / var_cell_geometry__vcell - 500 * var_Ca__Idiff_ss * var_cell_geometry__Vss_sr / var_cell_geometry__vcell) / (1 + 0.0097788000000000007 / pow((0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_CaL), 2) + 4.0890000000000003e-5 / pow((0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_CaL), 2)); // mM / ms const double d_dt_chaste_interface_var_Cl__Cl_ss = -var_Cl__Idiff_Cl + var_Ito2__Ito2 * var_cell_geometry__AF / var_cell_geometry__Vss_sr; // mM / ms - const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96484.995175157921 * (-mParameters[5] + 1.0000001000000049 * var_chaste_interface__Na__Na_i) * mParameters[9] - 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) + 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF + const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF const double var_IKs__alpha = _lt_0_row[35]; // per_ms const double var_IKs__beta = _lt_0_row[36]; // per_ms const double d_dt_chaste_interface_var_IKs__C1 = var_chaste_interface__IKs__C2 * var_IKs__beta - 4 * var_chaste_interface__IKs__C1 * var_IKs__alpha; // 1 / ms @@ -1301,242 +1301,260 @@ std::shared_ptr Celldeck const double var_x37 = 1 / var_x36; const double var_x38 = var_x37; const double var_x39 = 0.0054277286135693209 * mParameters[0]; - const double var_x40 = 0.0096478430926936198 + 7223.5106023927301 * var_chaste_interface__membrane__Vm; - const double var_x41 = (var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6); - const double var_x42 = _lt_0_row[4]; - const double var_x43 = 14448.004881001343 * var_chaste_interface__membrane__Vm / (-1 + var_x42); - const double var_x44 = var_x43 * mParameters[7]; - const double var_x45 = 3.0851110000007915e-5 * mParameters[10] / var_x34; - const double var_x46 = 0.081415929203539822 * var_x23 * var_x27; - const double var_x47 = 1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_i, 2); + const double var_x40 = 0.5 + 374358.83507802623 * var_chaste_interface__membrane__Vm; + const double var_x41 = 0.019296999999999998 * mParameters[7]; + const double var_x42 = exp(9.9999999999999995e-8); + const double var_x43 = -1 + var_x42; + const double var_x44 = 1 / var_x43; + const double var_x45 = var_x42 * var_x44; + const double var_x46 = exp(-9.9999999999999995e-8); + const double var_x47 = -1 + var_x46; const double var_x48 = 1 / var_x47; - const double var_x49 = pow(var_chaste_interface__Na__Na_i, 3); - const double var_x50 = var_x49 * mParameters[3]; - const double var_x51 = pow(mParameters[5], 3); - const double var_x52 = var_x51 * var_chaste_interface__Ca__Ca_i; - const double var_x53 = var_x51 * (1 + 0.00053738391835633597 * var_x49); - const double var_x54 = (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_i) * mParameters[3]; - const double var_x55 = 1 / (var_x50 + var_x52 + 669921.875 * var_chaste_interface__Ca__Ca_i + 0.0035999999999999999 * var_x53 + 1.3 * var_x49 + 1860.8670000000004 * var_x54); - const double var_x56 = 4.9361776000012672e-5 * var_x55; - const double var_x57 = _lt_0_row[1]; - const double var_x58 = 1 / (1 + 0.32000000000000001 * var_x57); - const double var_x59 = var_x58 * mParameters[17]; - const double var_x60 = var_x51 * var_x57 * var_x59; - const double var_x61 = pow((1.9405247813411081e-6 * var_x49 + 1.4927113702623908e-6 * var_x50 + 1.4927113702623908e-6 * var_x52 + 0.0027777373294460648 * var_x54 + 5.3737609329446059e-9 * var_x53 + var_chaste_interface__Ca__Ca_i), (-2)); - const double var_x62 = _lt_0_row[0]; - const double var_x63 = -var_x52 * var_x57 + var_x49 * var_x62 * mParameters[3]; - const double var_x64 = -669921.875 - var_x51 - 516907.50000000012 * mParameters[3]; - const double var_x65 = pow(var_x47, (-2)); - const double var_x66 = pow(var_chaste_interface__Ca__Ca_i, (-3)); - const double var_x67 = -0.34100000000000003 * mParameters[3]; - const double var_x68 = 192970.00964862964 * (var_x67 + 0.99999990000000505 * var_chaste_interface__Ca__Ca_i) * mParameters[7]; - const double var_x69 = 0.5 + 374358.83507802623 * var_chaste_interface__membrane__Vm; - const double var_x70 = var_x42; - const double var_x71 = pow(var_chaste_interface__Na__Na_ss_sr, 3); - const double var_x72 = var_x71 * mParameters[3]; - const double var_x73 = var_x51 * var_chaste_interface__Ca__Ca_ss_sr; - const double var_x74 = var_x51 * (1 + 0.00053738391835633597 * var_x71); - const double var_x75 = (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_ss_sr) * mParameters[3]; - const double var_x76 = 1 / (var_x72 + var_x73 + 669921.875 * var_chaste_interface__Ca__Ca_ss_sr + 0.0035999999999999999 * var_x74 + 1.3 * var_x71 + 1860.8670000000004 * var_x75); - const double var_x77 = 1 + 1.5624999999999999e-8 * var_x8; - const double var_x78 = 1 / var_x77; - const double var_x79 = -var_x57 * var_x73 + var_x62 * var_x71 * mParameters[3]; - const double var_x80 = var_x59 * var_x78 * var_x79; - const double var_x81 = var_x76 * var_x80; - const double var_x82 = var_x48 * var_x59 * var_x63; - const double var_x83 = var_x60 * var_x76 * var_x78; - const double var_x84 = pow((1.9405247813411081e-6 * var_x71 + 1.4927113702623908e-6 * var_x72 + 1.4927113702623908e-6 * var_x73 + 0.0027777373294460648 * var_x75 + 5.3737609329446059e-9 * var_x74 + var_chaste_interface__Ca__Ca_ss_sr), (-2)); - const double var_x85 = pow(var_x77, (-2)); - const double var_x86 = pow(var_chaste_interface__Ca__Ca_ss_sr, (-3)); - const double var_x87 = pow(var_chaste_interface__Na__Na_i, 2); - const double var_x88 = 3 * mParameters[3]; - const double var_x89 = 5.8037463182484285e-6 * var_x51; - const double var_x90 = -3.9000000000000004 * var_x87 - var_x87 * var_x88 - var_x87 * var_x89; - const double var_x91 = var_x61 * var_x82; - const double var_x92 = var_x55 * var_x59; - const double var_x93 = var_x48 * var_x92; - const double var_x94 = var_x62 * mParameters[3]; - const double var_x95 = var_x87 * var_x94; - const double var_x96 = pow(var_chaste_interface__Na__Na_ss_sr, 2); - const double var_x97 = -3.9000000000000004 * var_x96 - var_x88 * var_x96 - var_x89 * var_x96; - const double var_x98 = var_x80 * var_x84; - const double var_x99 = var_x59 * var_x76; - const double var_x100 = var_x78 * var_x94 * var_x96 * var_x99; - const double var_x101 = 0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_CaL; - const double var_x102 = 0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_CaL; - const double var_x103 = 1 + 0.0097788000000000007 / pow(var_x101, 2) + 4.0890000000000003e-5 / pow(var_x102, 2); - const double var_x104 = 1 / var_x103; - const double var_x105 = var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star; - const double var_x106 = var_x43 * mParameters[6]; - const double var_x107 = ((var_x41) ? (var_x105 * (192969.99035162965 * mParameters[6] + var_x40 * mParameters[6])) : (var_x105 * var_x106 * var_x42)); - const double var_x108 = 192970.00964862964 * (var_x67 + 0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL) * mParameters[6]; - const double var_x109 = var_x108 + var_x69 * (-var_x108 + 192969.99035031584 * (var_x67 + 1.0000001000000049 * var_chaste_interface__Ca__Ca_ss_CaL) * mParameters[6]); - const double var_x110 = var_x106 * (var_x67 + var_x70 * var_chaste_interface__Ca__Ca_ss_CaL); - const double var_x111 = ((var_x41) ? (var_x105 * var_x109) : (var_x105 * var_x110)); - const double var_x112 = ((var_x41) ? (var_x109) : (var_x110)); - const double var_x113 = -0.010458526290002684 * var_x104 * var_x112; - const double var_x114 = 0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_sr; - const double var_x115 = 0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_sr; - const double var_x116 = 1 + 0.0097788000000000007 / pow(var_x114, 2) + 4.0890000000000003e-5 / pow(var_x115, 2); - const double var_x117 = 1 / var_x116; - const double var_x118 = var_x79 * var_x85 * var_x86 * var_x99; - const double var_x119 = 9.3214219101444593e-16 * var_x98; - const double var_x120 = var_x117; - const double var_x121 = 1 / var_chaste_interface__Cl__Cl_i; - const double var_x122 = log(100 * var_x121); - const double var_x123 = 1 / var_chaste_interface__K__K_i; - const double var_x124 = log(var_x123 * mParameters[4]); - const double var_x125 = 26.712338705498265 * var_x124; - const double var_x126 = var_x125 + 26.712338705498265 * var_x122; - const double var_x127 = 0.00047280839508731927 / (87.825100000000006 + var_x126); - const double var_x128 = var_x121 * var_x127; - const double var_x129 = pow((1 + 0.30415380916729118 * var_x122 + 0.30415380916729118 * var_x124), (-2)); - const double var_x130 = 1 / var_chaste_interface__Na__Na_i; - const double var_x131 = var_x122 + log(var_x130 * mParameters[5]); - const double var_x132 = pow(var_x131, 4); - const double var_x133 = 50.122574928945262 * pow(var_x131, 3) / (59494197.640692554 + 509152.231225166 * var_x132); - const double var_x134 = pow((1 + 0.0085580149227345564 * var_x132), (-2)); - const double var_x135 = pow(var_x131, 7); - const double var_x136 = var_x121 * var_x133 - 7.2099425022651882e-9 * var_x121 * var_x134 * var_x135; - const double var_x137 = var_x123 * var_x127; - const double var_x138 = 6.1298221377044294e-8 * var_x126 * var_x129; - const double var_x139 = var_x130 * var_x133 - 7.2099425022651882e-9 * var_x130 * var_x134 * var_x135; - const double var_x140 = 96485.004824314819 * mParameters[19]; - const double var_x141 = 0.5 + 187179.41753901311 * var_chaste_interface__membrane__Vm; - const double var_x142 = pow(var_chaste_interface__Irel__Irel, 2); - const double var_x143 = (1 - 1 / (1 + 6.2499999999999991 * var_x142)) * var_chaste_interface__Ito2_i2f_gate__i2f; - const double var_x144 = (var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6); - const double var_x145 = 3612.0012202503358 * var_chaste_interface__membrane__Vm; - const double var_x146 = 0.037435883507802616 * var_chaste_interface__membrane__Vm; - const double var_x147 = exp(var_x146); - const double var_x148 = -1 + var_x147; - const double var_x149 = -mParameters[19] / var_x148; - const double var_x150 = var_x140 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i); - const double var_x151 = var_chaste_interface__Irel__Irel * var_chaste_interface__Ito2_i2f_gate__i2f / pow((0.16000000000000003 + var_x142), 2); - const double var_x152 = 1 + 8.1000000000000005e-11 / pow(var_chaste_interface__Ca__Ca_ss_CaL, 4); - const double var_x153 = 1 / (pow(var_x152, 2) * pow(var_chaste_interface__Ca__Ca_ss_CaL, 5)); - const double var_x154 = 9.7200000000000016e-10 * var_x153; - const double var_x155 = var_x154 * var_chaste_interface__ICaL__C; - const double var_x156 = 1 / (_lt_0_row[14]); - const double var_x157 = _lt_0_row[13]; - const double var_x158 = var_x156 * var_x157; - const double var_x159 = 1 / (_lt_0_row[42]); - const double var_x160 = 0.80000000000000004 * var_x159; - const double var_x161 = 0.80000000000000004 - var_x160; - const double var_x162 = _lt_0_row[19]; - const double var_x163 = 1 / (_lt_0_row[18]); - const double var_x164 = var_x162 + 0.032730010146303147 * var_x163; - const double var_x165 = var_x161 * var_x164; - const double var_x166 = 1 / var_x152; - const double var_x167 = 3 * var_x166; - const double var_x168 = var_x165 + var_x167; - const double var_x169 = 0.20000000000000001 + var_x160; - const double var_x170 = var_x164 * var_x169; - const double var_x171 = var_x156 * (1 - var_x157); - const double var_x172 = 0.99990000999900008 * var_x159; - const double var_x173 = 0.99990000999900008 - var_x172; - const double var_x174 = 9.9990000999900015e-5 + var_x172; - const double var_x175 = var_x169 * var_x173 / (var_x161 * var_x174); - const double var_x176 = 9.7200000000000002e-16 * var_x153 * var_x175; - const double var_x177 = var_x176 * var_chaste_interface__ICaL__CI; - const double var_x178 = 3.0000000000000001e-6 * var_x166 * var_x175; - const double var_x179 = var_x170 + var_x178; - const double var_x180 = 9.0720000000000001e-12 * var_x153 * var_x163 / pow((1 - 0.69999999999999996 * var_x166), 2); - const double var_x181 = var_x180 * var_chaste_interface__ICaL__C_star; - const double var_x182 = var_x180 * var_chaste_interface__ICaL__CI_star; - const double var_x183 = -var_x171; - const double var_x184 = var_x162 + var_x163 / (25 - 17.5 * var_x166); - const double var_x185 = var_x174 * var_x184; - const double var_x186 = 9.9999999999999995e-7 + var_x171; - const double var_x187 = var_x173 * var_x184; - const double var_x188 = -var_x173; - const double var_x189 = 1 + var_x187; - const double var_x190 = var_x154 * var_chaste_interface__ICaL__O; - const double var_x191 = -var_x158; - const double var_x192 = -var_x185; - const double var_x193 = _lt_0_row[43]; - const double var_x194 = 0.059458391923439997 * var_x193; - const double var_x195 = _lt_0_row[44]; - const double var_x196 = 0.083986312199829993 * var_x195; - const double var_x197 = _lt_0_row[45]; - const double var_x198 = 0.0062346537747999999 * var_x197; - const double var_x199 = 0.029729195961719999 * var_x193; - const double var_x200 = _lt_0_row[46]; - const double var_x201 = 0.01460066118316 * var_x200; - const double var_x202 = 0.014864597980859999 * var_x193; - const double var_x203 = var_x196 + var_x201; - const double var_x204 = 0.16797262439965999 * var_x195; - const double var_x205 = 0.009351980662199999 * var_x197; - const double var_x206 = 0.02920132236632 * var_x200; - const double var_x207 = var_x204 + var_x206; - const double var_x208 = 0.043801983549479999 * var_x200; - const double var_x209 = 0.0124693075496 * var_x197; - const double var_x210 = _lt_0_row[38]; - const double var_x211 = 0.04459379394258 * var_x193; - const double var_x212 = 0.0031173268874 * var_x197; - const double var_x213 = 0.25195893659948998 * var_x195; - const double var_x214 = var_x208 + var_x213; - const double var_x215 = 0.33594524879931997 * var_x195; - const double var_x216 = 0.058402644732640001 * var_x200; - const double var_x217 = _lt_0_row[47]; - const double var_x218 = -var_x217; - const double var_x219 = 1 / var_x5; - const double var_x220 = pow(var_x219, 10); - const double var_x221 = 1 + 2.9619676669542428e-6 * var_x220; - const double var_x222 = var_x219 * var_x220 / pow(var_x221, 2); - const double var_x223 = -var_x222 * var_x7; - const double var_x224 = 1 / var_chaste_interface__Ca__Ca_JSR; - const double var_x225 = 1 + 0.0123 * var_x224; - const double var_x226 = 1 / var_x221; - const double var_x227 = 4.75 + 4.75 * var_x226; - const double var_x228 = pow(var_x224, 8); - const double var_x229 = 1 + var_x228; - const double var_x230 = mParameters[1] / var_x229; - const double var_x231 = var_x111 * var_x230; - const double var_x232 = -var_chaste_interface__Irel__Irel - var_x227 * var_x231; - const double var_x233 = var_x225 * var_x232 / pow((1 + var_x226), 2); - const double var_x234 = 1 / var_x227; - const double var_x235 = var_x225 * var_x234; - const double var_x236 = var_x231 * var_x235; - const double var_x237 = var_x225 * var_x230; - const double var_x238 = var_x10 * var_x222; - const double var_x239 = -var_x112 * var_x237; - const double var_x240 = 1 / var_chaste_interface__Ca__Ca_i; - const double var_x241 = pow(var_x240, 1.3999999999999999); - const double var_x242 = 1 + 6.4818210260626455e-7 * var_x241; - const double var_x243 = 1 / (0.018329999999999999 * var_chaste_interface__Na__Na_i + var_chaste_interface__K__K_i); - const double var_x244 = -26.712338705498265 * log(var_x243 * (0.018329999999999999 * mParameters[5] + mParameters[4])) + var_chaste_interface__membrane__Vm; - const double var_x245 = 1 - var_chaste_interface__IKs__C1 - var_chaste_interface__IKs__C10 - var_chaste_interface__IKs__C11 - var_chaste_interface__IKs__C12 - var_chaste_interface__IKs__C13 - var_chaste_interface__IKs__C14 - var_chaste_interface__IKs__C15 - var_chaste_interface__IKs__C2 - var_chaste_interface__IKs__C3 - var_chaste_interface__IKs__C4 - var_chaste_interface__IKs__C5 - var_chaste_interface__IKs__C6 - var_chaste_interface__IKs__C7 - var_chaste_interface__IKs__C8 - var_chaste_interface__IKs__C9; - const double var_x246 = -6.1702220000015831e-5 - 3.7021332000009499e-5 / var_x242; - const double var_x247 = var_x246 * mParameters[16]; - const double var_x248 = -var_x244 * var_x247; - const double var_x249 = 0.0016482105995215921 * var_x123; - const double var_x250 = sqrt(mParameters[4]); - const double var_x251 = var_x123 * var_x250; - const double var_x252 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__Vm - 6.3708927812613361 * var_x124); - const double var_x253 = 1 + var_x252; - const double var_x254 = 1 / var_x253; - const double var_x255 = exp(-2.4444678999999998 + 13.738155796237757 * var_x124 - 0.51429999999999998 * var_chaste_interface__membrane__Vm); - const double var_x256 = 1 + var_x255; - const double var_x257 = 1 / var_x256; - const double var_x258 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__Vm - 2.1455350448256207 * var_x124); - const double var_x259 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__Vm - 1.6494869150645177 * var_x124); - const double var_x260 = var_x259 + 0.49124000000000001 * var_x258; - const double var_x261 = var_x257 * var_x260; - const double var_x262 = 1 / (var_x261 + 1.02 * var_x254); - const double var_x263 = var_x254 * mParameters[12]; - const double var_x264 = pow(var_x253, (-2)); - const double var_x265 = -var_x125 + var_chaste_interface__membrane__Vm; - const double var_x266 = 1 + 0.38461538461538458 * var_chaste_interface__Na__Na_i; - const double var_x267 = 1 / (1 + exp(-3.444101282717841 - var_x146)); - const double var_x268 = 1 / (1.5 + mParameters[4]); - const double var_x269 = var_x267 * var_x268 * mParameters[18] * mParameters[4]; - const double var_x270 = var_x269 * var_x87 / pow(var_x266, 3); - const double var_x271 = pow(var_x266, (-4)); - const double var_x272 = 3.299618375272375e-16 * var_x91; - const double var_x273 = 8.2490459381809375e-17 * var_x98; - const double var_x274 = 0.0016482105995215921 * var_x130; - const double var_x275 = 2.796426573043338e-15 * var_x98; + const double var_x49 = var_x41 * var_x48; + const double var_x50 = var_x46 * var_x49; + const double var_x51 = (var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6); + const double var_x52 = _lt_0_row[4]; + const double var_x53 = 14448.004881001343 * var_chaste_interface__membrane__Vm / (-1 + var_x52); + const double var_x54 = var_x53 * mParameters[7]; + const double var_x55 = 3.0851110000007915e-5 * mParameters[10] / var_x34; + const double var_x56 = 0.081415929203539822 * var_x23 * var_x27; + const double var_x57 = 1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_i, 2); + const double var_x58 = 1 / var_x57; + const double var_x59 = pow(var_chaste_interface__Na__Na_i, 3); + const double var_x60 = var_x59 * mParameters[3]; + const double var_x61 = pow(mParameters[5], 3); + const double var_x62 = var_x61 * var_chaste_interface__Ca__Ca_i; + const double var_x63 = var_x61 * (1 + 0.00053738391835633597 * var_x59); + const double var_x64 = (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_i) * mParameters[3]; + const double var_x65 = 1 / (var_x60 + var_x62 + 669921.875 * var_chaste_interface__Ca__Ca_i + 0.0035999999999999999 * var_x63 + 1.3 * var_x59 + 1860.8670000000004 * var_x64); + const double var_x66 = 4.9361776000012672e-5 * var_x65; + const double var_x67 = _lt_0_row[1]; + const double var_x68 = 1 / (1 + 0.32000000000000001 * var_x67); + const double var_x69 = var_x68 * mParameters[17]; + const double var_x70 = var_x61 * var_x67 * var_x69; + const double var_x71 = pow((1.9405247813411081e-6 * var_x59 + 1.4927113702623908e-6 * var_x60 + 1.4927113702623908e-6 * var_x62 + 0.0027777373294460648 * var_x64 + 5.3737609329446059e-9 * var_x63 + var_chaste_interface__Ca__Ca_i), (-2)); + const double var_x72 = _lt_0_row[0]; + const double var_x73 = -var_x62 * var_x67 + var_x59 * var_x72 * mParameters[3]; + const double var_x74 = -669921.875 - var_x61 - 516907.50000000012 * mParameters[3]; + const double var_x75 = pow(var_x57, (-2)); + const double var_x76 = pow(var_chaste_interface__Ca__Ca_i, (-3)); + const double var_x77 = 1.3356169352749131e-6 + var_chaste_interface__membrane__Vm; + const double var_x78 = -0.34100000000000003 * mParameters[3]; + const double var_x79 = var_chaste_interface__Ca__Ca_i; + const double var_x80 = var_x49 * (var_x78 + var_x46 * var_x79); + const double var_x81 = pow(var_chaste_interface__Na__Na_ss_sr, 3); + const double var_x82 = var_x81 * mParameters[3]; + const double var_x83 = var_x61 * var_chaste_interface__Ca__Ca_ss_sr; + const double var_x84 = var_x61 * (1 + 0.00053738391835633597 * var_x81); + const double var_x85 = (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_ss_sr) * mParameters[3]; + const double var_x86 = 1 / (var_x82 + var_x83 + 669921.875 * var_chaste_interface__Ca__Ca_ss_sr + 0.0035999999999999999 * var_x84 + 1.3 * var_x81 + 1860.8670000000004 * var_x85); + const double var_x87 = 1 + 1.5624999999999999e-8 * var_x8; + const double var_x88 = 1 / var_x87; + const double var_x89 = -var_x67 * var_x83 + var_x72 * var_x81 * mParameters[3]; + const double var_x90 = var_x69 * var_x88 * var_x89; + const double var_x91 = var_x86 * var_x90; + const double var_x92 = var_x58 * var_x69 * var_x73; + const double var_x93 = var_x70 * var_x86 * var_x88; + const double var_x94 = pow((1.9405247813411081e-6 * var_x81 + 1.4927113702623908e-6 * var_x82 + 1.4927113702623908e-6 * var_x83 + 0.0027777373294460648 * var_x85 + 5.3737609329446059e-9 * var_x84 + var_chaste_interface__Ca__Ca_ss_sr), (-2)); + const double var_x95 = pow(var_x87, (-2)); + const double var_x96 = pow(var_chaste_interface__Ca__Ca_ss_sr, (-3)); + const double var_x97 = pow(var_chaste_interface__Na__Na_i, 2); + const double var_x98 = 3 * mParameters[3]; + const double var_x99 = 5.8037463182484285e-6 * var_x61; + const double var_x100 = -3.9000000000000004 * var_x97 - var_x97 * var_x98 - var_x97 * var_x99; + const double var_x101 = var_x71 * var_x92; + const double var_x102 = var_x65 * var_x69; + const double var_x103 = var_x102 * var_x58; + const double var_x104 = var_x72 * mParameters[3]; + const double var_x105 = var_x104 * var_x97; + const double var_x106 = pow(var_chaste_interface__Na__Na_ss_sr, 2); + const double var_x107 = -3.9000000000000004 * var_x106 - var_x106 * var_x98 - var_x106 * var_x99; + const double var_x108 = var_x90 * var_x94; + const double var_x109 = var_x69 * var_x86; + const double var_x110 = var_x104 * var_x106 * var_x109 * var_x88; + const double var_x111 = 0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_CaL; + const double var_x112 = 0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_CaL; + const double var_x113 = 1 + 0.0097788000000000007 / pow(var_x111, 2) + 4.0890000000000003e-5 / pow(var_x112, 2); + const double var_x114 = 1 / var_x113; + const double var_x115 = 0.019296999999999998 * mParameters[6]; + const double var_x116 = var_x115 * var_x48; + const double var_x117 = var_x116 * var_x46; + const double var_x118 = var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star; + const double var_x119 = var_x53 * mParameters[6]; + const double var_x120 = ((var_x51) ? (var_x118 * (-var_x117 + var_x40 * (var_x117 + var_x115 * var_x45))) : (var_x118 * var_x119 * var_x52)); + const double var_x121 = var_chaste_interface__Ca__Ca_ss_CaL; + const double var_x122 = var_x116 * (var_x78 + var_x121 * var_x46); + const double var_x123 = -var_x122 + 374358.83507802623 * var_x77 * (var_x122 + var_x115 * var_x44 * (var_x78 + var_x121 * var_x42)); + const double var_x124 = var_x119 * (var_x78 + var_x121 * var_x52); + const double var_x125 = ((var_x51) ? (var_x118 * var_x123) : (var_x118 * var_x124)); + const double var_x126 = ((var_x51) ? (var_x123) : (var_x124)); + const double var_x127 = -0.010458526290002684 * var_x114 * var_x126; + const double var_x128 = 0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_sr; + const double var_x129 = 0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_sr; + const double var_x130 = 1 + 0.0097788000000000007 / pow(var_x128, 2) + 4.0890000000000003e-5 / pow(var_x129, 2); + const double var_x131 = 1 / var_x130; + const double var_x132 = var_x109 * var_x89 * var_x95 * var_x96; + const double var_x133 = 9.3214219101444593e-16 * var_x108; + const double var_x134 = var_x131; + const double var_x135 = 1 / var_chaste_interface__Cl__Cl_i; + const double var_x136 = log(100 * var_x135); + const double var_x137 = 1 / var_chaste_interface__K__K_i; + const double var_x138 = log(var_x137 * mParameters[4]); + const double var_x139 = 26.712338705498265 * var_x138; + const double var_x140 = var_x139 + 26.712338705498265 * var_x136; + const double var_x141 = 0.00047280839508731927 / (87.825100000000006 + var_x140); + const double var_x142 = var_x135 * var_x141; + const double var_x143 = pow((1 + 0.30415380916729118 * var_x136 + 0.30415380916729118 * var_x138), (-2)); + const double var_x144 = 1 / var_chaste_interface__Na__Na_i; + const double var_x145 = var_x136 + log(var_x144 * mParameters[5]); + const double var_x146 = pow(var_x145, 4); + const double var_x147 = 50.122574928945262 * pow(var_x145, 3) / (59494197.640692554 + 509152.231225166 * var_x146); + const double var_x148 = pow((1 + 0.0085580149227345564 * var_x146), (-2)); + const double var_x149 = pow(var_x145, 7); + const double var_x150 = var_x135 * var_x147 - 7.2099425022651882e-9 * var_x135 * var_x148 * var_x149; + const double var_x151 = var_x137 * var_x141; + const double var_x152 = 6.1298221377044294e-8 * var_x140 * var_x143; + const double var_x153 = var_x144 * var_x147 - 7.2099425022651882e-9 * var_x144 * var_x148 * var_x149; + const double var_x154 = 0.5 + 187179.41753901311 * var_chaste_interface__membrane__Vm; + const double var_x155 = 0.0096484999999999991 * mParameters[19]; + const double var_x156 = -var_x155 / var_x43; + const double var_x157 = -var_x155 / var_x47; + const double var_x158 = pow(var_chaste_interface__Irel__Irel, 2); + const double var_x159 = (1 - 1 / (1 + 6.2499999999999991 * var_x158)) * var_chaste_interface__Ito2_i2f_gate__i2f; + const double var_x160 = (var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6); + const double var_x161 = 3612.0012202503358 * var_chaste_interface__membrane__Vm; + const double var_x162 = 0.037435883507802616 * var_chaste_interface__membrane__Vm; + const double var_x163 = exp(var_x162); + const double var_x164 = -1 + var_x163; + const double var_x165 = -mParameters[19] / var_x164; + const double var_x166 = var_x157 * (-100 * var_x46 + var_chaste_interface__Cl__Cl_i); + const double var_x167 = var_chaste_interface__Irel__Irel * var_chaste_interface__Ito2_i2f_gate__i2f / pow((0.16000000000000003 + var_x158), 2); + const double var_x168 = 1 + 8.1000000000000005e-11 / pow(var_chaste_interface__Ca__Ca_ss_CaL, 4); + const double var_x169 = 1 / (pow(var_x168, 2) * pow(var_chaste_interface__Ca__Ca_ss_CaL, 5)); + const double var_x170 = 9.7200000000000016e-10 * var_x169; + const double var_x171 = var_x170 * var_chaste_interface__ICaL__C; + const double var_x172 = 1 / (_lt_0_row[14]); + const double var_x173 = _lt_0_row[13]; + const double var_x174 = var_x172 * var_x173; + const double var_x175 = 1 / (_lt_0_row[42]); + const double var_x176 = 0.80000000000000004 * var_x175; + const double var_x177 = 0.80000000000000004 - var_x176; + const double var_x178 = _lt_0_row[19]; + const double var_x179 = 1 / (_lt_0_row[18]); + const double var_x180 = var_x178 + 0.032730010146303147 * var_x179; + const double var_x181 = var_x177 * var_x180; + const double var_x182 = 1 / var_x168; + const double var_x183 = 3 * var_x182; + const double var_x184 = var_x181 + var_x183; + const double var_x185 = 0.20000000000000001 + var_x176; + const double var_x186 = var_x180 * var_x185; + const double var_x187 = var_x172 * (1 - var_x173); + const double var_x188 = 0.99990000999900008 * var_x175; + const double var_x189 = 0.99990000999900008 - var_x188; + const double var_x190 = 9.9990000999900015e-5 + var_x188; + const double var_x191 = var_x185 * var_x189 / (var_x177 * var_x190); + const double var_x192 = 9.7200000000000002e-16 * var_x169 * var_x191; + const double var_x193 = var_x192 * var_chaste_interface__ICaL__CI; + const double var_x194 = 3.0000000000000001e-6 * var_x182 * var_x191; + const double var_x195 = var_x186 + var_x194; + const double var_x196 = 9.0720000000000001e-12 * var_x169 * var_x179 / pow((1 - 0.69999999999999996 * var_x182), 2); + const double var_x197 = var_x196 * var_chaste_interface__ICaL__C_star; + const double var_x198 = var_x196 * var_chaste_interface__ICaL__CI_star; + const double var_x199 = -var_x187; + const double var_x200 = var_x178 + var_x179 / (25 - 17.5 * var_x182); + const double var_x201 = var_x190 * var_x200; + const double var_x202 = 9.9999999999999995e-7 + var_x187; + const double var_x203 = var_x189 * var_x200; + const double var_x204 = -var_x189; + const double var_x205 = 1 + var_x203; + const double var_x206 = var_x170 * var_chaste_interface__ICaL__O; + const double var_x207 = -var_x174; + const double var_x208 = -var_x201; + const double var_x209 = _lt_0_row[43]; + const double var_x210 = 0.059458391923439997 * var_x209; + const double var_x211 = _lt_0_row[44]; + const double var_x212 = 0.083986312199829993 * var_x211; + const double var_x213 = _lt_0_row[45]; + const double var_x214 = 0.0062346537747999999 * var_x213; + const double var_x215 = 0.029729195961719999 * var_x209; + const double var_x216 = _lt_0_row[46]; + const double var_x217 = 0.01460066118316 * var_x216; + const double var_x218 = 0.014864597980859999 * var_x209; + const double var_x219 = var_x212 + var_x217; + const double var_x220 = 0.16797262439965999 * var_x211; + const double var_x221 = 0.009351980662199999 * var_x213; + const double var_x222 = 0.02920132236632 * var_x216; + const double var_x223 = var_x220 + var_x222; + const double var_x224 = 0.043801983549479999 * var_x216; + const double var_x225 = 0.0124693075496 * var_x213; + const double var_x226 = _lt_0_row[38]; + const double var_x227 = 0.04459379394258 * var_x209; + const double var_x228 = 0.0031173268874 * var_x213; + const double var_x229 = 0.25195893659948998 * var_x211; + const double var_x230 = var_x224 + var_x229; + const double var_x231 = 0.33594524879931997 * var_x211; + const double var_x232 = 0.058402644732640001 * var_x216; + const double var_x233 = _lt_0_row[47]; + const double var_x234 = -var_x233; + const double var_x235 = 1 / var_x5; + const double var_x236 = pow(var_x235, 10); + const double var_x237 = 1 + 2.9619676669542428e-6 * var_x236; + const double var_x238 = var_x235 * var_x236 / pow(var_x237, 2); + const double var_x239 = -var_x238 * var_x7; + const double var_x240 = 1 / var_chaste_interface__Ca__Ca_JSR; + const double var_x241 = 1 + 0.0123 * var_x240; + const double var_x242 = 1 / var_x237; + const double var_x243 = 4.75 + 4.75 * var_x242; + const double var_x244 = pow(var_x240, 8); + const double var_x245 = 1 + var_x244; + const double var_x246 = mParameters[1] / var_x245; + const double var_x247 = var_x125 * var_x246; + const double var_x248 = -var_chaste_interface__Irel__Irel - var_x243 * var_x247; + const double var_x249 = var_x241 * var_x248 / pow((1 + var_x242), 2); + const double var_x250 = 1 / var_x243; + const double var_x251 = var_x241 * var_x250; + const double var_x252 = var_x247 * var_x251; + const double var_x253 = var_x241 * var_x246; + const double var_x254 = var_x10 * var_x238; + const double var_x255 = -var_x126 * var_x253; + const double var_x256 = 1 / var_chaste_interface__Ca__Ca_i; + const double var_x257 = pow(var_x256, 1.3999999999999999); + const double var_x258 = 1 + 6.4818210260626455e-7 * var_x257; + const double var_x259 = 1 / (0.018329999999999999 * var_chaste_interface__Na__Na_i + var_chaste_interface__K__K_i); + const double var_x260 = -26.712338705498265 * log(var_x259 * (0.018329999999999999 * mParameters[5] + mParameters[4])) + var_chaste_interface__membrane__Vm; + const double var_x261 = 1 - var_chaste_interface__IKs__C1 - var_chaste_interface__IKs__C10 - var_chaste_interface__IKs__C11 - var_chaste_interface__IKs__C12 - var_chaste_interface__IKs__C13 - var_chaste_interface__IKs__C14 - var_chaste_interface__IKs__C15 - var_chaste_interface__IKs__C2 - var_chaste_interface__IKs__C3 - var_chaste_interface__IKs__C4 - var_chaste_interface__IKs__C5 - var_chaste_interface__IKs__C6 - var_chaste_interface__IKs__C7 - var_chaste_interface__IKs__C8 - var_chaste_interface__IKs__C9; + const double var_x262 = -6.1702220000015831e-5 - 3.7021332000009499e-5 / var_x258; + const double var_x263 = var_x262 * mParameters[16]; + const double var_x264 = -var_x260 * var_x263; + const double var_x265 = 0.0016482105995215921 * var_x137; + const double var_x266 = sqrt(mParameters[4]); + const double var_x267 = var_x137 * var_x266; + const double var_x268 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__Vm - 6.3708927812613361 * var_x138); + const double var_x269 = 1 + var_x268; + const double var_x270 = 1 / var_x269; + const double var_x271 = exp(-2.4444678999999998 + 13.738155796237757 * var_x138 - 0.51429999999999998 * var_chaste_interface__membrane__Vm); + const double var_x272 = 1 + var_x271; + const double var_x273 = 1 / var_x272; + const double var_x274 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__Vm - 2.1455350448256207 * var_x138); + const double var_x275 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__Vm - 1.6494869150645177 * var_x138); + const double var_x276 = var_x275 + 0.49124000000000001 * var_x274; + const double var_x277 = var_x273 * var_x276; + const double var_x278 = 1 / (var_x277 + 1.02 * var_x270); + const double var_x279 = var_x270 * mParameters[12]; + const double var_x280 = pow(var_x269, (-2)); + const double var_x281 = -var_x139 + var_chaste_interface__membrane__Vm; + const double var_x282 = 1 + 0.38461538461538458 * var_chaste_interface__Na__Na_i; + const double var_x283 = 1 / (1 + exp(-3.444101282717841 - var_x162)); + const double var_x284 = 1 / (1.5 + mParameters[4]); + const double var_x285 = var_x283 * var_x284 * mParameters[18] * mParameters[4]; + const double var_x286 = var_x285 * var_x97 / pow(var_x282, 3); + const double var_x287 = pow(var_x282, (-4)); + const double var_x288 = 3.299618375272375e-16 * var_x101; + const double var_x289 = 8.2490459381809375e-17 * var_x108; + const double var_x290 = 0.0096484999999999991 * mParameters[9]; + const double var_x291 = var_x290 * var_x46 * var_x48; + const double var_x292 = 0.0016482105995215921 * var_x144; + const double var_x293 = 2.796426573043338e-15 * var_x108; rJacobian[0][0] = 1.0 - (mDt * (-0.00068000000000000005 - 0.0025000000000000005 * var_x2 * var_x5 + 0.0025000000000000005 * var_x0 * var_x2 * var_x7)); @@ -1647,9 +1665,9 @@ std::shared_ptr Celldeck rJacobian[3][0] = -(mDt * (var_x38 * (-0.081415929203539822 * var_x25 - 0.081415929203539822 * var_x29))); rJacobian[3][1] = 0.0; rJacobian[3][2] = -(mDt * (var_x37 * var_x39)); - rJacobian[3][3] = 1.0 - (mDt * (var_x38 * (-0.14749262536873156 - var_x45 - var_x46 - 3.0851110000007915e-5 * ((var_x41) ? (192969.99035162965 * mParameters[7] + var_x40 * mParameters[7]) : (var_x42 * var_x44)) - var_x48 * var_x56 * var_x60 + 3.0851110000007915e-5 * var_x35 * var_chaste_interface__Ca__Ca_i * mParameters[10] + 0.081415929203539822 * var_x26 * var_x27 * var_chaste_interface__Ca__Ca_i * mParameters[2] + 1.0998727917574584e-16 * var_x48 * var_x58 * var_x61 * var_x63 * var_x64 * mParameters[17] + 1.5425555000003961e-12 * var_x55 * var_x58 * var_x63 * var_x65 * var_x66 * mParameters[17]) + (0.00023800000000000004 / pow(var_x33, 3) + 7.0000000000000007e-5 / pow(var_x34, 3)) * (0.14749262536873156 * var_chaste_interface__Ca__Ca_ss_sr + 1.2340444000003168e-5 * var_x81 - 0.14749262536873156 * var_chaste_interface__Ca__Ca_i - 3.0851110000007915e-5 * ((var_x41) ? (var_x68 + var_x69 * (-var_x68 + 192969.99035031584 * (var_x67 + 1.0000001000000049 * var_chaste_interface__Ca__Ca_i) * mParameters[7])) : (var_x44 * (var_x67 + var_x70 * var_chaste_interface__Ca__Ca_i))) + var_x39 * var_chaste_interface__Ca__Ca_NSR + var_x56 * var_x82 - var_x45 * var_chaste_interface__Ca__Ca_i - var_x46 * var_chaste_interface__Ca__Ca_i) / pow(var_x36, 2))); + rJacobian[3][3] = 1.0 - (mDt * (var_x38 * (-0.14749262536873156 - var_x55 - var_x56 - 3.0851110000007915e-5 * ((var_x51) ? (-var_x50 + var_x40 * (var_x50 + var_x41 * var_x45)) : (var_x52 * var_x54)) - var_x58 * var_x66 * var_x70 + 3.0851110000007915e-5 * var_x35 * var_chaste_interface__Ca__Ca_i * mParameters[10] + 0.081415929203539822 * var_x26 * var_x27 * var_chaste_interface__Ca__Ca_i * mParameters[2] + 1.0998727917574584e-16 * var_x58 * var_x68 * var_x71 * var_x73 * var_x74 * mParameters[17] + 1.5425555000003961e-12 * var_x65 * var_x68 * var_x73 * var_x75 * var_x76 * mParameters[17]) + (0.00023800000000000004 / pow(var_x33, 3) + 7.0000000000000007e-5 / pow(var_x34, 3)) * (0.14749262536873156 * var_chaste_interface__Ca__Ca_ss_sr + 1.2340444000003168e-5 * var_x91 - 0.14749262536873156 * var_chaste_interface__Ca__Ca_i - 3.0851110000007915e-5 * ((var_x51) ? (-var_x80 + 374358.83507802623 * var_x77 * (var_x80 + var_x41 * var_x44 * (var_x78 + var_x42 * var_x79))) : (var_x54 * (var_x78 + var_x52 * var_x79))) + var_x39 * var_chaste_interface__Ca__Ca_NSR + var_x66 * var_x92 - var_x55 * var_chaste_interface__Ca__Ca_i - var_x56 * var_chaste_interface__Ca__Ca_i) / pow(var_x36, 2))); rJacobian[3][4] = 0.0; - rJacobian[3][5] = -(mDt * (var_x38 * (0.14749262536873156 - 1.2340444000003168e-5 * var_x83 - 0.081415929203539822 * var_x31 - 0.081415929203539822 * var_x32 + 2.7496819793936459e-17 * var_x58 * var_x64 * var_x78 * var_x79 * var_x84 * mParameters[17] + 3.8563887500009902e-13 * var_x58 * var_x76 * var_x79 * var_x85 * var_x86 * mParameters[17]))); + rJacobian[3][5] = -(mDt * (var_x38 * (0.14749262536873156 - 1.2340444000003168e-5 * var_x93 - 0.081415929203539822 * var_x31 - 0.081415929203539822 * var_x32 + 2.7496819793936459e-17 * var_x68 * var_x74 * var_x88 * var_x89 * var_x94 * mParameters[17] + 3.8563887500009902e-13 * var_x68 * var_x86 * var_x89 * var_x95 * var_x96 * mParameters[17]))); rJacobian[3][6] = 0.0; rJacobian[3][7] = 0.0; rJacobian[3][8] = 0.0; @@ -1677,23 +1695,23 @@ std::shared_ptr Celldeck rJacobian[3][30] = 0.0; rJacobian[3][31] = 0.0; rJacobian[3][32] = 0.0; - rJacobian[3][33] = -(mDt * (var_x38 * (1.0998727917574584e-16 * var_x90 * var_x91 + 0.00014808532800003802 * var_x93 * var_x95))); - rJacobian[3][34] = -(mDt * (var_x38 * (3.7021332000009505e-5 * var_x100 + 2.7496819793936459e-17 * var_x97 * var_x98))); + rJacobian[3][33] = -(mDt * (var_x38 * (1.0998727917574584e-16 * var_x100 * var_x101 + 0.00014808532800003802 * var_x103 * var_x105))); + rJacobian[3][34] = -(mDt * (var_x38 * (3.7021332000009505e-5 * var_x110 + 2.7496819793936459e-17 * var_x107 * var_x108))); rJacobian[4][0] = 0.0; rJacobian[4][1] = 0.0; rJacobian[4][2] = 0.0; rJacobian[4][3] = 0.0; - rJacobian[4][4] = 1.0 - (mDt * (-var_x104 * (5 + 0.010458526290002684 * var_x107) - (0.019557600000000001 / pow(var_x101, 3) + 8.1780000000000006e-5 / pow(var_x102, 3)) * (5 * var_chaste_interface__Ca__Ca_ss_CaL + 0.010458526290002684 * var_x111 - 5 * var_chaste_interface__Ca__Ca_ss_sr) / pow(var_x103, 2))); - rJacobian[4][5] = -(mDt * (5 * var_x104)); + rJacobian[4][4] = 1.0 - (mDt * (-var_x114 * (5 + 0.010458526290002684 * var_x120) - (0.019557600000000001 / pow(var_x111, 3) + 8.1780000000000006e-5 / pow(var_x112, 3)) * (5 * var_chaste_interface__Ca__Ca_ss_CaL + 0.010458526290002684 * var_x125 - 5 * var_chaste_interface__Ca__Ca_ss_sr) / pow(var_x113, 2))); + rJacobian[4][5] = -(mDt * (5 * var_x114)); rJacobian[4][6] = 0.0; rJacobian[4][7] = 0.0; rJacobian[4][8] = 0.0; rJacobian[4][9] = 0.0; rJacobian[4][10] = 0.0; rJacobian[4][11] = 0.0; - rJacobian[4][12] = -(mDt * (var_x113)); + rJacobian[4][12] = -(mDt * (var_x127)); rJacobian[4][13] = 0.0; - rJacobian[4][14] = -(mDt * (var_x113)); + rJacobian[4][14] = -(mDt * (var_x127)); rJacobian[4][15] = 0.0; rJacobian[4][16] = 0.0; rJacobian[4][17] = 0.0; @@ -1717,9 +1735,9 @@ std::shared_ptr Celldeck rJacobian[5][0] = 0.0; rJacobian[5][1] = 0.0; rJacobian[5][2] = 0.0; - rJacobian[5][3] = -(mDt * (5 * var_x117)); - rJacobian[5][4] = -(mDt * (0.5 * var_x117)); - rJacobian[5][5] = 1.0 - (mDt * (-var_x120 * (5.5 + 0.0004183410516001074 * var_x83 - 1.3073157862503357e-11 * var_x118 - var_x119 * var_x64) - (0.019557600000000001 / pow(var_x114, 3) + 8.1780000000000006e-5 / pow(var_x115, 3)) * (5.5 * var_chaste_interface__Ca__Ca_ss_sr - 0.5 * var_chaste_interface__Ca__Ca_ss_CaL - 0.23999999999999996 * var_chaste_interface__Irel__Irel - 5 * var_chaste_interface__Ca__Ca_i - 0.0004183410516001074 * var_x81) / pow(var_x116, 2))); + rJacobian[5][3] = -(mDt * (5 * var_x131)); + rJacobian[5][4] = -(mDt * (0.5 * var_x131)); + rJacobian[5][5] = 1.0 - (mDt * (-var_x134 * (5.5 + 0.0004183410516001074 * var_x93 - 1.3073157862503357e-11 * var_x132 - var_x133 * var_x74) - (0.019557600000000001 / pow(var_x128, 3) + 8.1780000000000006e-5 / pow(var_x129, 3)) * (5.5 * var_chaste_interface__Ca__Ca_ss_sr - 0.5 * var_chaste_interface__Ca__Ca_ss_CaL - 0.23999999999999996 * var_chaste_interface__Irel__Irel - 5 * var_chaste_interface__Ca__Ca_i - 0.0004183410516001074 * var_x91) / pow(var_x130, 2))); rJacobian[5][6] = 0.0; rJacobian[5][7] = 0.0; rJacobian[5][8] = 0.0; @@ -1745,17 +1763,17 @@ std::shared_ptr Celldeck rJacobian[5][28] = 0.0; rJacobian[5][29] = 0.0; rJacobian[5][30] = 0.0; - rJacobian[5][31] = -(mDt * (0.23999999999999996 * var_x117)); + rJacobian[5][31] = -(mDt * (0.23999999999999996 * var_x131)); rJacobian[5][32] = 0.0; rJacobian[5][33] = 0.0; - rJacobian[5][34] = -(mDt * (-var_x120 * (-0.0012550231548003222 * var_x100 - var_x119 * var_x97))); + rJacobian[5][34] = -(mDt * (-var_x134 * (-0.0012550231548003222 * var_x110 - var_x107 * var_x133))); rJacobian[6][0] = 0.0; rJacobian[6][1] = 0.0; rJacobian[6][2] = 0.0; rJacobian[6][3] = 0.0; rJacobian[6][4] = 0.0; rJacobian[6][5] = 0.0; - rJacobian[6][6] = 1.0 - (mDt * (-0.14749262536873156 - var_x128 - var_x136 - 0.0016482105995215921 * var_x121 * mParameters[8] + 6.1298221377044294e-8 * var_x121 * var_x126 * var_x129)); + rJacobian[6][6] = 1.0 - (mDt * (-0.14749262536873156 - var_x142 - var_x150 - 0.0016482105995215921 * var_x135 * mParameters[8] + 6.1298221377044294e-8 * var_x135 * var_x140 * var_x143)); rJacobian[6][7] = -(mDt * (0.14749262536873156)); rJacobian[6][8] = 0.0; rJacobian[6][9] = 0.0; @@ -1781,8 +1799,8 @@ std::shared_ptr Celldeck rJacobian[6][29] = 0.0; rJacobian[6][30] = 0.0; rJacobian[6][31] = 0.0; - rJacobian[6][32] = -(mDt * (-var_x137 + var_x123 * var_x138)); - rJacobian[6][33] = -(mDt * (-var_x139)); + rJacobian[6][32] = -(mDt * (-var_x151 + var_x137 * var_x152)); + rJacobian[6][33] = -(mDt * (-var_x153)); rJacobian[6][34] = 0.0; rJacobian[7][0] = 0.0; rJacobian[7][1] = 0.0; @@ -1790,7 +1808,7 @@ std::shared_ptr Celldeck rJacobian[7][3] = 0.0; rJacobian[7][4] = 0.0; rJacobian[7][5] = 0.0; - rJacobian[7][6] = -(mDt * (5 + 0.0020917052580005369 * ((var_x144) ? (var_x143 * (-var_x140 + 0.0096491569073577921 * var_x141 * mParameters[19])) : (var_x143 * var_x145 * var_x149)))); + rJacobian[7][6] = -(mDt * (5 + 0.0020917052580005369 * ((var_x160) ? (var_x159 * (-var_x157 + var_x154 * (var_x156 + var_x157))) : (var_x159 * var_x161 * var_x165)))); rJacobian[7][7] = 1.0 - (mDt * (-5)); rJacobian[7][8] = 0.0; rJacobian[7][9] = 0.0; @@ -1815,7 +1833,7 @@ std::shared_ptr Celldeck rJacobian[7][28] = 0.0; rJacobian[7][29] = 0.0; rJacobian[7][30] = 0.0; - rJacobian[7][31] = -(mDt * (0.0020917052580005369 * ((var_x144) ? (0.32000000000000006 * var_x151 * (-var_x150 + 187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (var_x150 - 96484.995175157921 * (-100.0000100000005 + var_chaste_interface__Cl__Cl_i) * mParameters[19]))) : (1155.8403904801075 * var_x149 * var_x151 * (-100 * var_x147 + var_chaste_interface__Cl__Cl_i) * var_chaste_interface__membrane__Vm)))); + rJacobian[7][31] = -(mDt * (0.0020917052580005369 * ((var_x160) ? (0.32000000000000006 * var_x167 * (-var_x166 + 187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (var_x166 + var_x156 * (-100 * var_x42 + var_chaste_interface__Cl__Cl_i)))) : (1155.8403904801075 * var_x165 * var_x167 * (-100 * var_x163 + var_chaste_interface__Cl__Cl_i) * var_chaste_interface__membrane__Vm)))); rJacobian[7][32] = 0.0; rJacobian[7][33] = 0.0; rJacobian[7][34] = 0.0; @@ -1823,15 +1841,15 @@ std::shared_ptr Celldeck rJacobian[8][1] = 0.0; rJacobian[8][2] = 0.0; rJacobian[8][3] = 0.0; - rJacobian[8][4] = -(mDt * (-var_x155)); + rJacobian[8][4] = -(mDt * (-var_x171)); rJacobian[8][5] = 0.0; rJacobian[8][6] = 0.0; rJacobian[8][7] = 0.0; - rJacobian[8][8] = 1.0 - (mDt * (-var_x158 - var_x168)); - rJacobian[8][9] = -(mDt * (var_x170)); + rJacobian[8][8] = 1.0 - (mDt * (-var_x174 - var_x184)); + rJacobian[8][9] = -(mDt * (var_x186)); rJacobian[8][10] = 0.0; rJacobian[8][11] = -(mDt * (1)); - rJacobian[8][12] = -(mDt * (var_x171)); + rJacobian[8][12] = -(mDt * (var_x187)); rJacobian[8][13] = 0.0; rJacobian[8][14] = 0.0; rJacobian[8][15] = 0.0; @@ -1858,16 +1876,16 @@ std::shared_ptr Celldeck rJacobian[9][1] = 0.0; rJacobian[9][2] = 0.0; rJacobian[9][3] = 0.0; - rJacobian[9][4] = -(mDt * (-var_x177)); + rJacobian[9][4] = -(mDt * (-var_x193)); rJacobian[9][5] = 0.0; rJacobian[9][6] = 0.0; rJacobian[9][7] = 0.0; - rJacobian[9][8] = -(mDt * (var_x165)); - rJacobian[9][9] = 1.0 - (mDt * (-var_x158 - var_x179)); + rJacobian[9][8] = -(mDt * (var_x181)); + rJacobian[9][9] = 1.0 - (mDt * (-var_x174 - var_x195)); rJacobian[9][10] = -(mDt * (9.9999999999999995e-7)); rJacobian[9][11] = 0.0; rJacobian[9][12] = 0.0; - rJacobian[9][13] = -(mDt * (var_x171)); + rJacobian[9][13] = -(mDt * (var_x187)); rJacobian[9][14] = 0.0; rJacobian[9][15] = 0.0; rJacobian[9][16] = 0.0; @@ -1893,17 +1911,17 @@ std::shared_ptr Celldeck rJacobian[10][1] = 0.0; rJacobian[10][2] = 0.0; rJacobian[10][3] = 0.0; - rJacobian[10][4] = -(mDt * (var_x177 + var_x173 * var_x181 - var_x174 * var_x182)); + rJacobian[10][4] = -(mDt * (var_x193 + var_x189 * var_x197 - var_x190 * var_x198)); rJacobian[10][5] = 0.0; rJacobian[10][6] = 0.0; rJacobian[10][7] = 0.0; - rJacobian[10][8] = -(mDt * (var_x183)); - rJacobian[10][9] = -(mDt * (var_x178 - var_x171)); - rJacobian[10][10] = 1.0 - (mDt * (-var_x158 - var_x185 - var_x186)); - rJacobian[10][11] = -(mDt * (var_x183 + var_x187)); - rJacobian[10][12] = -(mDt * (var_x183)); - rJacobian[10][13] = -(mDt * (var_x183)); - rJacobian[10][14] = -(mDt * (var_x183)); + rJacobian[10][8] = -(mDt * (var_x199)); + rJacobian[10][9] = -(mDt * (var_x194 - var_x187)); + rJacobian[10][10] = 1.0 - (mDt * (-var_x174 - var_x201 - var_x202)); + rJacobian[10][11] = -(mDt * (var_x199 + var_x203)); + rJacobian[10][12] = -(mDt * (var_x199)); + rJacobian[10][13] = -(mDt * (var_x199)); + rJacobian[10][14] = -(mDt * (var_x199)); rJacobian[10][15] = 0.0; rJacobian[10][16] = 0.0; rJacobian[10][17] = 0.0; @@ -1928,17 +1946,17 @@ std::shared_ptr Celldeck rJacobian[11][1] = 0.0; rJacobian[11][2] = 0.0; rJacobian[11][3] = 0.0; - rJacobian[11][4] = -(mDt * (var_x155 + var_x174 * var_x182 + var_x181 * var_x188)); + rJacobian[11][4] = -(mDt * (var_x171 + var_x190 * var_x198 + var_x197 * var_x204)); rJacobian[11][5] = 0.0; rJacobian[11][6] = 0.0; rJacobian[11][7] = 0.0; - rJacobian[11][8] = -(mDt * (var_x167)); + rJacobian[11][8] = -(mDt * (var_x183)); rJacobian[11][9] = 0.0; - rJacobian[11][10] = -(mDt * (var_x185)); - rJacobian[11][11] = 1.0 - (mDt * (-var_x158 - var_x189)); + rJacobian[11][10] = -(mDt * (var_x201)); + rJacobian[11][11] = 1.0 - (mDt * (-var_x174 - var_x205)); rJacobian[11][12] = 0.0; rJacobian[11][13] = 0.0; - rJacobian[11][14] = -(mDt * (var_x171)); + rJacobian[11][14] = -(mDt * (var_x187)); rJacobian[11][15] = 0.0; rJacobian[11][16] = 0.0; rJacobian[11][17] = 0.0; @@ -1963,16 +1981,16 @@ std::shared_ptr Celldeck rJacobian[12][1] = 0.0; rJacobian[12][2] = 0.0; rJacobian[12][3] = 0.0; - rJacobian[12][4] = -(mDt * (-var_x190)); + rJacobian[12][4] = -(mDt * (-var_x206)); rJacobian[12][5] = 0.0; rJacobian[12][6] = 0.0; rJacobian[12][7] = 0.0; - rJacobian[12][8] = -(mDt * (var_x158)); + rJacobian[12][8] = -(mDt * (var_x174)); rJacobian[12][9] = 0.0; rJacobian[12][10] = 0.0; rJacobian[12][11] = 0.0; - rJacobian[12][12] = 1.0 - (mDt * (-var_x168 - var_x171)); - rJacobian[12][13] = -(mDt * (var_x170)); + rJacobian[12][12] = 1.0 - (mDt * (-var_x184 - var_x187)); + rJacobian[12][13] = -(mDt * (var_x186)); rJacobian[12][14] = -(mDt * (1)); rJacobian[12][15] = 0.0; rJacobian[12][16] = 0.0; @@ -1998,16 +2016,16 @@ std::shared_ptr Celldeck rJacobian[13][1] = 0.0; rJacobian[13][2] = 0.0; rJacobian[13][3] = 0.0; - rJacobian[13][4] = -(mDt * (-var_x176 * var_chaste_interface__ICaL__OI)); + rJacobian[13][4] = -(mDt * (-var_x192 * var_chaste_interface__ICaL__OI)); rJacobian[13][5] = 0.0; rJacobian[13][6] = 0.0; rJacobian[13][7] = 0.0; rJacobian[13][8] = -(mDt * (-9.9999999999999995e-7)); - rJacobian[13][9] = -(mDt * (-9.9999999999999995e-7 - var_x191)); + rJacobian[13][9] = -(mDt * (-9.9999999999999995e-7 - var_x207)); rJacobian[13][10] = -(mDt * (-9.9999999999999995e-7)); rJacobian[13][11] = -(mDt * (-9.9999999999999995e-7)); - rJacobian[13][12] = -(mDt * (-9.9999999999999995e-7 + var_x165)); - rJacobian[13][13] = 1.0 - (mDt * (-var_x179 - var_x186)); + rJacobian[13][12] = -(mDt * (-9.9999999999999995e-7 + var_x181)); + rJacobian[13][13] = 1.0 - (mDt * (-var_x195 - var_x202)); rJacobian[13][14] = -(mDt * (-9.9999999999999995e-7)); rJacobian[13][15] = 0.0; rJacobian[13][16] = 0.0; @@ -2033,17 +2051,17 @@ std::shared_ptr Celldeck rJacobian[14][1] = 0.0; rJacobian[14][2] = 0.0; rJacobian[14][3] = 0.0; - rJacobian[14][4] = -(mDt * (var_x190 + var_x174 * var_x180 * (1 - var_x105 - var_chaste_interface__ICaL__C - var_chaste_interface__ICaL__CI - var_chaste_interface__ICaL__CI_star - var_chaste_interface__ICaL__C_star - var_chaste_interface__ICaL__OI) + var_x180 * var_x188 * var_chaste_interface__ICaL__O_star)); + rJacobian[14][4] = -(mDt * (var_x206 + var_x190 * var_x196 * (1 - var_x118 - var_chaste_interface__ICaL__C - var_chaste_interface__ICaL__CI - var_chaste_interface__ICaL__CI_star - var_chaste_interface__ICaL__C_star - var_chaste_interface__ICaL__OI) + var_x196 * var_x204 * var_chaste_interface__ICaL__O_star)); rJacobian[14][5] = 0.0; rJacobian[14][6] = 0.0; rJacobian[14][7] = 0.0; - rJacobian[14][8] = -(mDt * (var_x192)); - rJacobian[14][9] = -(mDt * (var_x192)); - rJacobian[14][10] = -(mDt * (var_x192)); - rJacobian[14][11] = -(mDt * (-var_x185 - var_x191)); - rJacobian[14][12] = -(mDt * (var_x167 - var_x185)); - rJacobian[14][13] = -(mDt * (var_x192)); - rJacobian[14][14] = 1.0 - (mDt * (-var_x171 - var_x185 - var_x189)); + rJacobian[14][8] = -(mDt * (var_x208)); + rJacobian[14][9] = -(mDt * (var_x208)); + rJacobian[14][10] = -(mDt * (var_x208)); + rJacobian[14][11] = -(mDt * (-var_x201 - var_x207)); + rJacobian[14][12] = -(mDt * (var_x183 - var_x201)); + rJacobian[14][13] = -(mDt * (var_x208)); + rJacobian[14][14] = 1.0 - (mDt * (-var_x187 - var_x201 - var_x205)); rJacobian[14][15] = 0.0; rJacobian[14][16] = 0.0; rJacobian[14][17] = 0.0; @@ -2079,14 +2097,14 @@ std::shared_ptr Celldeck rJacobian[15][12] = 0.0; rJacobian[15][13] = 0.0; rJacobian[15][14] = 0.0; - rJacobian[15][15] = 1.0 - (mDt * (-var_x194)); + rJacobian[15][15] = 1.0 - (mDt * (-var_x210)); rJacobian[15][16] = 0.0; rJacobian[15][17] = 0.0; rJacobian[15][18] = 0.0; rJacobian[15][19] = 0.0; rJacobian[15][20] = 0.0; rJacobian[15][21] = 0.0; - rJacobian[15][22] = -(mDt * (var_x196)); + rJacobian[15][22] = -(mDt * (var_x212)); rJacobian[15][23] = 0.0; rJacobian[15][24] = 0.0; rJacobian[15][25] = 0.0; @@ -2115,8 +2133,8 @@ std::shared_ptr Celldeck rJacobian[16][13] = 0.0; rJacobian[16][14] = 0.0; rJacobian[16][15] = 0.0; - rJacobian[16][16] = 1.0 - (mDt * (-var_x198 - var_x199)); - rJacobian[16][17] = -(mDt * (var_x196)); + rJacobian[16][16] = 1.0 - (mDt * (-var_x214 - var_x215)); + rJacobian[16][17] = -(mDt * (var_x212)); rJacobian[16][18] = 0.0; rJacobian[16][19] = 0.0; rJacobian[16][20] = 0.0; @@ -2126,7 +2144,7 @@ std::shared_ptr Celldeck rJacobian[16][24] = 0.0; rJacobian[16][25] = 0.0; rJacobian[16][26] = 0.0; - rJacobian[16][27] = -(mDt * (var_x201)); + rJacobian[16][27] = -(mDt * (var_x217)); rJacobian[16][28] = 0.0; rJacobian[16][29] = 0.0; rJacobian[16][30] = 0.0; @@ -2150,10 +2168,10 @@ std::shared_ptr Celldeck rJacobian[17][13] = 0.0; rJacobian[17][14] = 0.0; rJacobian[17][15] = 0.0; - rJacobian[17][16] = -(mDt * (var_x199)); - rJacobian[17][17] = 1.0 - (mDt * (-var_x198 - var_x202 - var_x203)); - rJacobian[17][18] = -(mDt * (var_x204)); - rJacobian[17][19] = -(mDt * (var_x205)); + rJacobian[17][16] = -(mDt * (var_x215)); + rJacobian[17][17] = 1.0 - (mDt * (-var_x214 - var_x218 - var_x219)); + rJacobian[17][18] = -(mDt * (var_x220)); + rJacobian[17][19] = -(mDt * (var_x221)); rJacobian[17][20] = 0.0; rJacobian[17][21] = 0.0; rJacobian[17][22] = 0.0; @@ -2162,7 +2180,7 @@ std::shared_ptr Celldeck rJacobian[17][25] = 0.0; rJacobian[17][26] = 0.0; rJacobian[17][27] = 0.0; - rJacobian[17][28] = -(mDt * (var_x206)); + rJacobian[17][28] = -(mDt * (var_x222)); rJacobian[17][29] = 0.0; rJacobian[17][30] = 0.0; rJacobian[17][31] = 0.0; @@ -2186,10 +2204,10 @@ std::shared_ptr Celldeck rJacobian[18][14] = 0.0; rJacobian[18][15] = 0.0; rJacobian[18][16] = 0.0; - rJacobian[18][17] = -(mDt * (var_x202)); - rJacobian[18][18] = 1.0 - (mDt * (-var_x198 - var_x207)); + rJacobian[18][17] = -(mDt * (var_x218)); + rJacobian[18][18] = 1.0 - (mDt * (-var_x214 - var_x223)); rJacobian[18][19] = 0.0; - rJacobian[18][20] = -(mDt * (var_x205)); + rJacobian[18][20] = -(mDt * (var_x221)); rJacobian[18][21] = 0.0; rJacobian[18][22] = 0.0; rJacobian[18][23] = 0.0; @@ -2198,7 +2216,7 @@ std::shared_ptr Celldeck rJacobian[18][26] = 0.0; rJacobian[18][27] = 0.0; rJacobian[18][28] = 0.0; - rJacobian[18][29] = -(mDt * (var_x208)); + rJacobian[18][29] = -(mDt * (var_x224)); rJacobian[18][30] = 0.0; rJacobian[18][31] = 0.0; rJacobian[18][32] = 0.0; @@ -2221,10 +2239,10 @@ std::shared_ptr Celldeck rJacobian[19][14] = 0.0; rJacobian[19][15] = 0.0; rJacobian[19][16] = 0.0; - rJacobian[19][17] = -(mDt * (var_x201)); + rJacobian[19][17] = -(mDt * (var_x217)); rJacobian[19][18] = 0.0; - rJacobian[19][19] = 1.0 - (mDt * (-var_x202 - var_x205)); - rJacobian[19][20] = -(mDt * (var_x196)); + rJacobian[19][19] = 1.0 - (mDt * (-var_x218 - var_x221)); + rJacobian[19][20] = -(mDt * (var_x212)); rJacobian[19][21] = 0.0; rJacobian[19][22] = 0.0; rJacobian[19][23] = 0.0; @@ -2257,10 +2275,10 @@ std::shared_ptr Celldeck rJacobian[20][15] = 0.0; rJacobian[20][16] = 0.0; rJacobian[20][17] = 0.0; - rJacobian[20][18] = -(mDt * (var_x206)); - rJacobian[20][19] = -(mDt * (var_x202)); - rJacobian[20][20] = 1.0 - (mDt * (-var_x203 - var_x205)); - rJacobian[20][21] = -(mDt * (var_x209)); + rJacobian[20][18] = -(mDt * (var_x222)); + rJacobian[20][19] = -(mDt * (var_x218)); + rJacobian[20][20] = 1.0 - (mDt * (-var_x219 - var_x221)); + rJacobian[20][21] = -(mDt * (var_x225)); rJacobian[20][22] = 0.0; rJacobian[20][23] = 0.0; rJacobian[20][24] = 0.0; @@ -2294,8 +2312,8 @@ std::shared_ptr Celldeck rJacobian[21][17] = 0.0; rJacobian[21][18] = 0.0; rJacobian[21][19] = 0.0; - rJacobian[21][20] = -(mDt * (var_x201)); - rJacobian[21][21] = 1.0 - (mDt * (-0.089538306411019994 - var_x209)); + rJacobian[21][20] = -(mDt * (var_x217)); + rJacobian[21][21] = 1.0 - (mDt * (-0.089538306411019994 - var_x225)); rJacobian[21][22] = 0.0; rJacobian[21][23] = 0.0; rJacobian[21][24] = 0.0; @@ -2304,7 +2322,7 @@ std::shared_ptr Celldeck rJacobian[21][27] = 0.0; rJacobian[21][28] = 0.0; rJacobian[21][29] = 0.0; - rJacobian[21][30] = -(mDt * (var_x210)); + rJacobian[21][30] = -(mDt * (var_x226)); rJacobian[21][31] = 0.0; rJacobian[21][32] = 0.0; rJacobian[21][33] = 0.0; @@ -2324,18 +2342,18 @@ std::shared_ptr Celldeck rJacobian[22][12] = 0.0; rJacobian[22][13] = 0.0; rJacobian[22][14] = 0.0; - rJacobian[22][15] = -(mDt * (var_x194)); + rJacobian[22][15] = -(mDt * (var_x210)); rJacobian[22][16] = 0.0; rJacobian[22][17] = 0.0; rJacobian[22][18] = 0.0; rJacobian[22][19] = 0.0; rJacobian[22][20] = 0.0; rJacobian[22][21] = 0.0; - rJacobian[22][22] = 1.0 - (mDt * (-var_x203 - var_x211)); - rJacobian[22][23] = -(mDt * (var_x204)); + rJacobian[22][22] = 1.0 - (mDt * (-var_x219 - var_x227)); + rJacobian[22][23] = -(mDt * (var_x220)); rJacobian[22][24] = 0.0; rJacobian[22][25] = 0.0; - rJacobian[22][26] = -(mDt * (var_x212)); + rJacobian[22][26] = -(mDt * (var_x228)); rJacobian[22][27] = 0.0; rJacobian[22][28] = 0.0; rJacobian[22][29] = 0.0; @@ -2366,12 +2384,12 @@ std::shared_ptr Celldeck rJacobian[23][19] = 0.0; rJacobian[23][20] = 0.0; rJacobian[23][21] = 0.0; - rJacobian[23][22] = -(mDt * (var_x211)); - rJacobian[23][23] = 1.0 - (mDt * (-var_x199 - var_x207)); - rJacobian[23][24] = -(mDt * (var_x213)); + rJacobian[23][22] = -(mDt * (var_x227)); + rJacobian[23][23] = 1.0 - (mDt * (-var_x215 - var_x223)); + rJacobian[23][24] = -(mDt * (var_x229)); rJacobian[23][25] = 0.0; rJacobian[23][26] = 0.0; - rJacobian[23][27] = -(mDt * (var_x212)); + rJacobian[23][27] = -(mDt * (var_x228)); rJacobian[23][28] = 0.0; rJacobian[23][29] = 0.0; rJacobian[23][30] = 0.0; @@ -2402,12 +2420,12 @@ std::shared_ptr Celldeck rJacobian[24][20] = 0.0; rJacobian[24][21] = 0.0; rJacobian[24][22] = 0.0; - rJacobian[24][23] = -(mDt * (var_x199)); - rJacobian[24][24] = 1.0 - (mDt * (-var_x202 - var_x214)); - rJacobian[24][25] = -(mDt * (var_x215)); + rJacobian[24][23] = -(mDt * (var_x215)); + rJacobian[24][24] = 1.0 - (mDt * (-var_x218 - var_x230)); + rJacobian[24][25] = -(mDt * (var_x231)); rJacobian[24][26] = 0.0; rJacobian[24][27] = 0.0; - rJacobian[24][28] = -(mDt * (var_x212)); + rJacobian[24][28] = -(mDt * (var_x228)); rJacobian[24][29] = 0.0; rJacobian[24][30] = 0.0; rJacobian[24][31] = 0.0; @@ -2438,12 +2456,12 @@ std::shared_ptr Celldeck rJacobian[25][21] = 0.0; rJacobian[25][22] = 0.0; rJacobian[25][23] = 0.0; - rJacobian[25][24] = -(mDt * (var_x202)); - rJacobian[25][25] = 1.0 - (mDt * (-var_x215 - var_x216)); + rJacobian[25][24] = -(mDt * (var_x218)); + rJacobian[25][25] = 1.0 - (mDt * (-var_x231 - var_x232)); rJacobian[25][26] = 0.0; rJacobian[25][27] = 0.0; rJacobian[25][28] = 0.0; - rJacobian[25][29] = -(mDt * (var_x212)); + rJacobian[25][29] = -(mDt * (var_x228)); rJacobian[25][30] = 0.0; rJacobian[25][31] = 0.0; rJacobian[25][32] = 0.0; @@ -2471,12 +2489,12 @@ std::shared_ptr Celldeck rJacobian[26][19] = 0.0; rJacobian[26][20] = 0.0; rJacobian[26][21] = 0.0; - rJacobian[26][22] = -(mDt * (var_x201)); + rJacobian[26][22] = -(mDt * (var_x217)); rJacobian[26][23] = 0.0; rJacobian[26][24] = 0.0; rJacobian[26][25] = 0.0; - rJacobian[26][26] = 1.0 - (mDt * (-var_x211 - var_x212)); - rJacobian[26][27] = -(mDt * (var_x196)); + rJacobian[26][26] = 1.0 - (mDt * (-var_x227 - var_x228)); + rJacobian[26][27] = -(mDt * (var_x212)); rJacobian[26][28] = 0.0; rJacobian[26][29] = 0.0; rJacobian[26][30] = 0.0; @@ -2500,19 +2518,19 @@ std::shared_ptr Celldeck rJacobian[27][13] = 0.0; rJacobian[27][14] = 0.0; rJacobian[27][15] = 0.0; - rJacobian[27][16] = -(mDt * (var_x198)); + rJacobian[27][16] = -(mDt * (var_x214)); rJacobian[27][17] = 0.0; rJacobian[27][18] = 0.0; rJacobian[27][19] = 0.0; rJacobian[27][20] = 0.0; rJacobian[27][21] = 0.0; rJacobian[27][22] = 0.0; - rJacobian[27][23] = -(mDt * (var_x206)); + rJacobian[27][23] = -(mDt * (var_x222)); rJacobian[27][24] = 0.0; rJacobian[27][25] = 0.0; - rJacobian[27][26] = -(mDt * (var_x211)); - rJacobian[27][27] = 1.0 - (mDt * (-var_x199 - var_x203 - var_x212)); - rJacobian[27][28] = -(mDt * (var_x204)); + rJacobian[27][26] = -(mDt * (var_x227)); + rJacobian[27][27] = 1.0 - (mDt * (-var_x215 - var_x219 - var_x228)); + rJacobian[27][28] = -(mDt * (var_x220)); rJacobian[27][29] = 0.0; rJacobian[27][30] = 0.0; rJacobian[27][31] = 0.0; @@ -2536,19 +2554,19 @@ std::shared_ptr Celldeck rJacobian[28][14] = 0.0; rJacobian[28][15] = 0.0; rJacobian[28][16] = 0.0; - rJacobian[28][17] = -(mDt * (var_x198)); + rJacobian[28][17] = -(mDt * (var_x214)); rJacobian[28][18] = 0.0; rJacobian[28][19] = 0.0; rJacobian[28][20] = 0.0; rJacobian[28][21] = 0.0; rJacobian[28][22] = 0.0; rJacobian[28][23] = 0.0; - rJacobian[28][24] = -(mDt * (var_x208)); + rJacobian[28][24] = -(mDt * (var_x224)); rJacobian[28][25] = 0.0; rJacobian[28][26] = 0.0; - rJacobian[28][27] = -(mDt * (var_x199)); - rJacobian[28][28] = 1.0 - (mDt * (-var_x202 - var_x207 - var_x212)); - rJacobian[28][29] = -(mDt * (var_x213)); + rJacobian[28][27] = -(mDt * (var_x215)); + rJacobian[28][28] = 1.0 - (mDt * (-var_x218 - var_x223 - var_x228)); + rJacobian[28][29] = -(mDt * (var_x229)); rJacobian[28][30] = 0.0; rJacobian[28][31] = 0.0; rJacobian[28][32] = 0.0; @@ -2572,18 +2590,18 @@ std::shared_ptr Celldeck rJacobian[29][15] = 0.0; rJacobian[29][16] = 0.0; rJacobian[29][17] = 0.0; - rJacobian[29][18] = -(mDt * (var_x198)); + rJacobian[29][18] = -(mDt * (var_x214)); rJacobian[29][19] = 0.0; rJacobian[29][20] = 0.0; rJacobian[29][21] = 0.0; rJacobian[29][22] = 0.0; rJacobian[29][23] = 0.0; rJacobian[29][24] = 0.0; - rJacobian[29][25] = -(mDt * (var_x216)); + rJacobian[29][25] = -(mDt * (var_x232)); rJacobian[29][26] = 0.0; rJacobian[29][27] = 0.0; - rJacobian[29][28] = -(mDt * (var_x202)); - rJacobian[29][29] = 1.0 - (mDt * (-var_x212 - var_x214)); + rJacobian[29][28] = -(mDt * (var_x218)); + rJacobian[29][29] = 1.0 - (mDt * (-var_x228 - var_x230)); rJacobian[29][30] = 0.0; rJacobian[29][31] = 0.0; rJacobian[29][32] = 0.0; @@ -2604,41 +2622,41 @@ std::shared_ptr Celldeck rJacobian[30][12] = 0.0; rJacobian[30][13] = 0.0; rJacobian[30][14] = 0.0; - rJacobian[30][15] = -(mDt * (var_x218)); - rJacobian[30][16] = -(mDt * (var_x218)); - rJacobian[30][17] = -(mDt * (var_x218)); - rJacobian[30][18] = -(mDt * (var_x218)); - rJacobian[30][19] = -(mDt * (var_x218)); - rJacobian[30][20] = -(mDt * (var_x218)); - rJacobian[30][21] = -(mDt * (0.089538306411019994 - var_x217)); - rJacobian[30][22] = -(mDt * (var_x218)); - rJacobian[30][23] = -(mDt * (var_x218)); - rJacobian[30][24] = -(mDt * (var_x218)); - rJacobian[30][25] = -(mDt * (var_x218)); - rJacobian[30][26] = -(mDt * (var_x218)); - rJacobian[30][27] = -(mDt * (var_x218)); - rJacobian[30][28] = -(mDt * (var_x218)); - rJacobian[30][29] = -(mDt * (var_x218)); - rJacobian[30][30] = 1.0 - (mDt * (-var_x210 - var_x217 + _lt_0_row[40])); + rJacobian[30][15] = -(mDt * (var_x234)); + rJacobian[30][16] = -(mDt * (var_x234)); + rJacobian[30][17] = -(mDt * (var_x234)); + rJacobian[30][18] = -(mDt * (var_x234)); + rJacobian[30][19] = -(mDt * (var_x234)); + rJacobian[30][20] = -(mDt * (var_x234)); + rJacobian[30][21] = -(mDt * (0.089538306411019994 - var_x233)); + rJacobian[30][22] = -(mDt * (var_x234)); + rJacobian[30][23] = -(mDt * (var_x234)); + rJacobian[30][24] = -(mDt * (var_x234)); + rJacobian[30][25] = -(mDt * (var_x234)); + rJacobian[30][26] = -(mDt * (var_x234)); + rJacobian[30][27] = -(mDt * (var_x234)); + rJacobian[30][28] = -(mDt * (var_x234)); + rJacobian[30][29] = -(mDt * (var_x234)); + rJacobian[30][30] = 1.0 - (mDt * (-var_x226 - var_x233 + _lt_0_row[40])); rJacobian[30][31] = 0.0; rJacobian[30][32] = 0.0; rJacobian[30][33] = 0.0; rJacobian[30][34] = 0.0; - rJacobian[31][0] = -(mDt * (6.2357214041141957e-6 * var_x223 * var_x233 + 0.00014069346418032653 * var_x223 * var_x236)); - rJacobian[31][1] = -(mDt * (-0.0123 * var_x232 * var_x234 / pow(var_chaste_interface__Ca__Ca_JSR, 2) - 8 * var_x111 * var_x224 * var_x225 * var_x228 * mParameters[1] / pow(var_x229, 2))); + rJacobian[31][0] = -(mDt * (6.2357214041141957e-6 * var_x239 * var_x249 + 0.00014069346418032653 * var_x239 * var_x252)); + rJacobian[31][1] = -(mDt * (-0.0123 * var_x248 * var_x250 / pow(var_chaste_interface__Ca__Ca_JSR, 2) - 8 * var_x125 * var_x240 * var_x241 * var_x244 * mParameters[1] / pow(var_x245, 2))); rJacobian[31][2] = 0.0; rJacobian[31][3] = 0.0; - rJacobian[31][4] = -(mDt * (-var_x107 * var_x237)); - rJacobian[31][5] = -(mDt * (-4.6767910530856466e-10 * var_x233 * var_x238 - 1.0552009813524491e-8 * var_x236 * var_x238)); + rJacobian[31][4] = -(mDt * (-var_x120 * var_x253)); + rJacobian[31][5] = -(mDt * (-4.6767910530856466e-10 * var_x249 * var_x254 - 1.0552009813524491e-8 * var_x252 * var_x254)); rJacobian[31][6] = 0.0; rJacobian[31][7] = 0.0; rJacobian[31][8] = 0.0; rJacobian[31][9] = 0.0; rJacobian[31][10] = 0.0; rJacobian[31][11] = 0.0; - rJacobian[31][12] = -(mDt * (var_x239)); + rJacobian[31][12] = -(mDt * (var_x255)); rJacobian[31][13] = 0.0; - rJacobian[31][14] = -(mDt * (var_x239)); + rJacobian[31][14] = -(mDt * (var_x255)); rJacobian[31][15] = 0.0; rJacobian[31][16] = 0.0; rJacobian[31][17] = 0.0; @@ -2655,17 +2673,17 @@ std::shared_ptr Celldeck rJacobian[31][28] = 0.0; rJacobian[31][29] = 0.0; rJacobian[31][30] = 0.0; - rJacobian[31][31] = 1.0 - (mDt * (-var_x235)); + rJacobian[31][31] = 1.0 - (mDt * (-var_x251)); rJacobian[31][32] = 0.0; rJacobian[31][33] = 0.0; rJacobian[31][34] = 0.0; rJacobian[32][0] = 0.0; rJacobian[32][1] = 0.0; rJacobian[32][2] = 0.0; - rJacobian[32][3] = -(mDt * (-3.3595190743871034e-11 * var_x240 * var_x241 * var_x244 * var_x245 * mParameters[16] / pow(var_x242, 2))); + rJacobian[32][3] = -(mDt * (-3.3595190743871034e-11 * var_x256 * var_x257 * var_x260 * var_x261 * mParameters[16] / pow(var_x258, 2))); rJacobian[32][4] = 0.0; rJacobian[32][5] = 0.0; - rJacobian[32][6] = -(mDt * (-var_x128 + var_x121 * var_x138)); + rJacobian[32][6] = -(mDt * (-var_x142 + var_x135 * var_x152)); rJacobian[32][7] = 0.0; rJacobian[32][8] = 0.0; rJacobian[32][9] = 0.0; @@ -2674,33 +2692,33 @@ std::shared_ptr Celldeck rJacobian[32][12] = 0.0; rJacobian[32][13] = 0.0; rJacobian[32][14] = 0.0; - rJacobian[32][15] = -(mDt * (var_x248)); - rJacobian[32][16] = -(mDt * (var_x248)); - rJacobian[32][17] = -(mDt * (var_x248)); - rJacobian[32][18] = -(mDt * (var_x248)); - rJacobian[32][19] = -(mDt * (var_x248)); - rJacobian[32][20] = -(mDt * (var_x248)); - rJacobian[32][21] = -(mDt * (var_x248)); - rJacobian[32][22] = -(mDt * (var_x248)); - rJacobian[32][23] = -(mDt * (var_x248)); - rJacobian[32][24] = -(mDt * (var_x248)); - rJacobian[32][25] = -(mDt * (var_x248)); - rJacobian[32][26] = -(mDt * (var_x248)); - rJacobian[32][27] = -(mDt * (var_x248)); - rJacobian[32][28] = -(mDt * (var_x248)); - rJacobian[32][29] = -(mDt * (var_x248)); + rJacobian[32][15] = -(mDt * (var_x264)); + rJacobian[32][16] = -(mDt * (var_x264)); + rJacobian[32][17] = -(mDt * (var_x264)); + rJacobian[32][18] = -(mDt * (var_x264)); + rJacobian[32][19] = -(mDt * (var_x264)); + rJacobian[32][20] = -(mDt * (var_x264)); + rJacobian[32][21] = -(mDt * (var_x264)); + rJacobian[32][22] = -(mDt * (var_x264)); + rJacobian[32][23] = -(mDt * (var_x264)); + rJacobian[32][24] = -(mDt * (var_x264)); + rJacobian[32][25] = -(mDt * (var_x264)); + rJacobian[32][26] = -(mDt * (var_x264)); + rJacobian[32][27] = -(mDt * (var_x264)); + rJacobian[32][28] = -(mDt * (var_x264)); + rJacobian[32][29] = -(mDt * (var_x264)); rJacobian[32][30] = 0.0; rJacobian[32][31] = 0.0; - rJacobian[32][32] = 1.0 - (mDt * (-var_x137 - var_x249 * mParameters[14] / (_lt_0_row[10]) + 6.1298221377044294e-8 * var_x123 * var_x126 * var_x129 - 0.00072346244967216237 * var_x251 * var_x262 * var_x263 + 26.712338705498265 * var_x243 * var_x245 * var_x246 * mParameters[16] - 0.00070927691144329649 * var_x251 * mParameters[15] * var_chaste_interface__IKr_xr_gate__xr / (_lt_0_row[11]) - 2.6031772383887529e-5 * var_x250 * var_x263 * var_x265 * (-var_x257 * (1.053972635420138 * var_x123 * var_x258 + 1.6494869150645177 * var_x123 * var_x259) + 6.4983106368865622 * var_x123 * var_x252 * var_x264 - 13.738155796237757 * var_x123 * var_x255 * var_x260 / pow(var_x256, 2)) / pow((var_x254 + 0.98039215686274506 * var_x261), 2) - var_x249 * pow(var_chaste_interface__Ito1_a_gate__a, 3) * mParameters[20] * var_chaste_interface__Ito1_i1f_gate__i1f * var_chaste_interface__Ito1_i1s_gate__i1s * _lt_0_row[12] + 0.00017254579424681073 * var_x123 * var_x250 * var_x252 * var_x262 * var_x264 * var_x265 * mParameters[12])); - rJacobian[32][33] = -(mDt * (2.1063570778339494e-5 * var_x270 + 0.48963716847178318 * var_x243 * var_x245 * var_x247 - 8.1013733762844218e-6 * var_x269 * var_x271 * var_x49)); + rJacobian[32][32] = 1.0 - (mDt * (-var_x151 - var_x265 * mParameters[14] / (_lt_0_row[10]) + 6.1298221377044294e-8 * var_x137 * var_x140 * var_x143 - 0.00072346244967216237 * var_x267 * var_x278 * var_x279 + 26.712338705498265 * var_x259 * var_x261 * var_x262 * mParameters[16] - 0.00070927691144329649 * var_x267 * mParameters[15] * var_chaste_interface__IKr_xr_gate__xr / (_lt_0_row[11]) - 2.6031772383887529e-5 * var_x266 * var_x279 * var_x281 * (-var_x273 * (1.053972635420138 * var_x137 * var_x274 + 1.6494869150645177 * var_x137 * var_x275) + 6.4983106368865622 * var_x137 * var_x268 * var_x280 - 13.738155796237757 * var_x137 * var_x271 * var_x276 / pow(var_x272, 2)) / pow((var_x270 + 0.98039215686274506 * var_x277), 2) - var_x265 * pow(var_chaste_interface__Ito1_a_gate__a, 3) * mParameters[20] * var_chaste_interface__Ito1_i1f_gate__i1f * var_chaste_interface__Ito1_i1s_gate__i1s * _lt_0_row[12] + 0.00017254579424681073 * var_x137 * var_x266 * var_x268 * var_x278 * var_x280 * var_x281 * mParameters[12])); + rJacobian[32][33] = -(mDt * (2.1063570778339494e-5 * var_x286 + 0.48963716847178318 * var_x259 * var_x261 * var_x263 - 8.1013733762844218e-6 * var_x285 * var_x287 * var_x59)); rJacobian[32][34] = 0.0; rJacobian[33][0] = 0.0; rJacobian[33][1] = 0.0; rJacobian[33][2] = 0.0; - rJacobian[33][3] = -(mDt * (-var_x272 * var_x64 - 4.6276665000011881e-12 * var_x63 * var_x65 * var_x66 * var_x92 + 0.00014808532800003802 * var_x48 * var_x51 * var_x55 * var_x57 * var_x58 * mParameters[17])); + rJacobian[33][3] = -(mDt * (-var_x288 * var_x74 - 4.6276665000011881e-12 * var_x102 * var_x73 * var_x75 * var_x76 + 0.00014808532800003802 * var_x58 * var_x61 * var_x65 * var_x67 * var_x68 * mParameters[17])); rJacobian[33][4] = 0.0; - rJacobian[33][5] = -(mDt * (-1.156916625000297e-12 * var_x118 - var_x273 * var_x64 + 3.7021332000009505e-5 * var_x51 * var_x57 * var_x58 * var_x76 * var_x78 * mParameters[17])); - rJacobian[33][6] = -(mDt * (-var_x136)); + rJacobian[33][5] = -(mDt * (-1.156916625000297e-12 * var_x132 - var_x289 * var_x74 + 3.7021332000009505e-5 * var_x61 * var_x67 * var_x68 * var_x86 * var_x88 * mParameters[17])); + rJacobian[33][6] = -(mDt * (-var_x150)); rJacobian[33][7] = 0.0; rJacobian[33][8] = 0.0; rJacobian[33][9] = 0.0; @@ -2727,14 +2745,14 @@ std::shared_ptr Celldeck rJacobian[33][30] = 0.0; rJacobian[33][31] = 0.0; rJacobian[33][32] = 0.0; - rJacobian[33][33] = 1.0 - (mDt * (-0.14749262536873156 - var_x139 - 3.1595356167509241e-5 * var_x270 - 6.1702220000015831e-5 * ((var_x144) ? (96484.995175814824 * mParameters[9] + 0.0096478430926936198 * var_x141 * mParameters[9]) : (var_x145 * var_x147 * mParameters[9] / var_x148)) - var_x272 * var_x90 - 0.00044425598400011404 * var_x93 * var_x95 - var_x274 * pow(var_chaste_interface__INaL_mL_gate__mL, 3) * mParameters[13] * var_chaste_interface__INaL_hL_gate__hL - var_x274 * pow(var_chaste_interface__INa_m_gate__m, 3) * mParameters[11] * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j + 1.2152060064426631e-5 * var_x267 * var_x268 * var_x271 * var_x49 * mParameters[18] * mParameters[4])); - rJacobian[33][34] = -(mDt * (0.14749262536873156 - 0.00011106399600002851 * var_x100 - var_x273 * var_x97)); + rJacobian[33][33] = 1.0 - (mDt * (-0.14749262536873156 - var_x153 - 3.1595356167509241e-5 * var_x286 - 6.1702220000015831e-5 * ((var_x160) ? (-var_x291 + var_x154 * (var_x291 + var_x290 * var_x45)) : (var_x161 * var_x163 * mParameters[9] / var_x164)) - var_x100 * var_x288 - 0.00044425598400011404 * var_x103 * var_x105 - var_x292 * pow(var_chaste_interface__INaL_mL_gate__mL, 3) * mParameters[13] * var_chaste_interface__INaL_hL_gate__hL - var_x292 * pow(var_chaste_interface__INa_m_gate__m, 3) * mParameters[11] * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j + 1.2152060064426631e-5 * var_x283 * var_x284 * var_x287 * var_x59 * mParameters[18] * mParameters[4])); + rJacobian[33][34] = -(mDt * (0.14749262536873156 - 0.00011106399600002851 * var_x110 - var_x107 * var_x289)); rJacobian[34][0] = 0.0; rJacobian[34][1] = 0.0; rJacobian[34][2] = 0.0; rJacobian[34][3] = 0.0; rJacobian[34][4] = 0.0; - rJacobian[34][5] = -(mDt * (-3.9219473587510072e-11 * var_x118 - var_x275 * var_x64 + 0.0012550231548003222 * var_x51 * var_x57 * var_x58 * var_x76 * var_x78 * mParameters[17])); + rJacobian[34][5] = -(mDt * (-3.9219473587510072e-11 * var_x132 - var_x293 * var_x74 + 0.0012550231548003222 * var_x61 * var_x67 * var_x68 * var_x86 * var_x88 * mParameters[17])); rJacobian[34][6] = 0.0; rJacobian[34][7] = 0.0; rJacobian[34][8] = 0.0; @@ -2763,7 +2781,7 @@ std::shared_ptr Celldeck rJacobian[34][31] = 0.0; rJacobian[34][32] = 0.0; rJacobian[34][33] = -(mDt * (5)); - rJacobian[34][34] = 1.0 - (mDt * (-5 - 0.0037650694644009667 * var_x100 - var_x275 * var_x97)); + rJacobian[34][34] = 1.0 - (mDt * (-5 - 0.0037650694644009667 * var_x110 - var_x107 * var_x293)); } void Celldecker_2009FromCellMLBackwardEulerOpt::UpdateTransmembranePotential(double var_chaste_interface__environment__time) @@ -2855,11 +2873,11 @@ std::shared_ptr Celldeck const double var_IKs__O2 = 1 - var_chaste_interface__IKs__C1 - var_chaste_interface__IKs__C10 - var_chaste_interface__IKs__C11 - var_chaste_interface__IKs__C12 - var_chaste_interface__IKs__C13 - var_chaste_interface__IKs__C14 - var_chaste_interface__IKs__C15 - var_chaste_interface__IKs__C2 - var_chaste_interface__IKs__C3 - var_chaste_interface__IKs__C4 - var_chaste_interface__IKs__C5 - var_chaste_interface__IKs__C6 - var_chaste_interface__IKs__C7 - var_chaste_interface__IKs__C8 - var_chaste_interface__IKs__C9 - var_chaste_interface__IKs__O1; // dimensionless const double var_IpCa__IpCa = var_chaste_interface__Ca__Ca_i * mParameters[10] / (0.00050000000000000001 + var_chaste_interface__Ca__Ca_i); // uA_per_uF - const double var_Ito2__Ito2 = (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19] - 96484.995175157921 * (-100.0000100000005 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) - 96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF + const double var_Ito2__Ito2 = (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF const double var_membrane__i_Stim = GetIntracellularAreaStimulus(var_chaste_interface__environment__time) / HeartConfig::Instance()->GetCapacitance(); // uA_per_uF - const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF - const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF - const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96484.995175157921 * (-mParameters[5] + 1.0000001000000049 * var_chaste_interface__Na__Na_i) * mParameters[9] - 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) + 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF + const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF const double var_INaCa__INaCa_ss_sr = 0.20000000000000001 * (pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] * _lt_0_row[0] - pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr * _lt_0_row[1]) * mParameters[17] / ((_lt_0_row[2]) * (1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_ss_sr, 2)) * (669921.875 * var_chaste_interface__Ca__Ca_ss_sr + 1.3 * pow(var_chaste_interface__Na__Na_ss_sr, 3) + pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr + 0.0035999999999999999 * pow(mParameters[5], 3) * (1 + 0.00053738391835633597 * pow(var_chaste_interface__Na__Na_ss_sr, 3)) + 1860.8670000000004 * (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_ss_sr) * mParameters[3])); // uA_per_uF const double var_INaCa__INaCa = 0.80000000000000004 * (pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] * _lt_0_row[0] - pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i * _lt_0_row[1]) * mParameters[17] / ((_lt_0_row[2]) * (1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_i, 2)) * (669921.875 * var_chaste_interface__Ca__Ca_i + 1.3 * pow(var_chaste_interface__Na__Na_i, 3) + pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i + 0.0035999999999999999 * pow(mParameters[5], 3) * (1 + 0.00053738391835633597 * pow(var_chaste_interface__Na__Na_i, 3)) + 1860.8670000000004 * (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_i) * mParameters[3])) + var_INaCa__INaCa_ss_sr; // uA_per_uF const double var_INaK__INaK = 0.056895766954938545 * pow(var_chaste_interface__Na__Na_i, 3) * mParameters[18] * mParameters[4] / (pow((1 + 0.38461538461538458 * var_chaste_interface__Na__Na_i), 3) * (_lt_0_row[3]) * (1.5 + mParameters[4])); // uA_per_uF @@ -2919,13 +2937,13 @@ std::shared_ptr Celldeck const double var_IKr_xr_gate__tau_xr = 1 / ((((var_chaste_interface__membrane__Vm >= -38.360800657030218) && (var_chaste_interface__membrane__Vm <= -38.360799342969777)) ? (-1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)) + 760999.99999526795 * (38.360800657030218 + var_chaste_interface__membrane__Vm) * (1.9710906701830842e-10 / (-1 + exp(1.0000000000062181e-7)) + 1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)))) : (0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + exp(5.8385137599999997 + 0.1522 * var_chaste_interface__membrane__Vm)))) + (((var_chaste_interface__membrane__Vm >= 1.7383992647058824) && (var_chaste_interface__membrane__Vm <= 1.7384007352941175)) ? (-4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 680000.00000016927 * (-1.7383992647058824 + var_chaste_interface__membrane__Vm) * (4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 4.4117647058812543e-10 / (1 - exp(-9.9999999999975114e-8)))) : (0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - exp(0.2364224 - 0.13600000000000001 * var_chaste_interface__membrane__Vm))))); const double var_IKr_xr_gate__xr_infinity = _lt_0_row[20]; const double var_INaL_hL_gate__hL_infinity = 1 / (1 + exp(14.918032786885247 + 0.16393442622950821 * var_chaste_interface__membrane__Vm)); - const double var_INaL_mL_gate__amL = (((var_chaste_interface__membrane__Vm >= -47.130001) && (var_chaste_interface__membrane__Vm <= -47.129999000000005)) ? (-3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 499999.99998562218 * (47.130001 + var_chaste_interface__membrane__Vm) * (3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 3.200000000092018e-7 / (1 - exp(-1.0000000000287557e-7)))) : (0.32000000000000001 * (47.130000000000003 + var_chaste_interface__membrane__Vm) / (1 - exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__Vm)))); + const double var_INaL_mL_gate__amL = _lt_0_row[23]; const double var_INaL_mL_gate__bmL = 0.080000000000000002 * _lt_0_row[24]; - const double var_INa_h_gate__ah = ((var_chaste_interface__membrane__Vm >= -40) ? (0) : (0.13500000000000001 * exp(-11.764705882352942 - 0.14705882352941177 * var_chaste_interface__membrane__Vm))); - const double var_INa_h_gate__bh = ((var_chaste_interface__membrane__Vm >= -40) ? (7.6923076923076916 / (1 + exp(-0.96036036036036043 - 0.0900900900900901 * var_chaste_interface__membrane__Vm))) : (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__Vm) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__Vm))); - const double var_INa_j_gate__aj = ((var_chaste_interface__membrane__Vm >= -40) ? (0) : ((37.780000000000001 + var_chaste_interface__membrane__Vm) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__Vm) - 6.9480000000000006e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__Vm)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__Vm)))); - const double var_INa_j_gate__bj = ((var_chaste_interface__membrane__Vm >= -40) ? (0.29999999999999999 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__Vm) / (1 + exp(-3.2000000000000002 - 0.10000000000000001 * var_chaste_interface__membrane__Vm))) : (0.1212 * exp(-0.01052 * var_chaste_interface__membrane__Vm) / (1 + exp(-5.5312920000000005 - 0.13780000000000001 * var_chaste_interface__membrane__Vm)))); - const double var_INa_m_gate__am = (((var_chaste_interface__membrane__Vm >= -47.130001) && (var_chaste_interface__membrane__Vm <= -47.129999000000005)) ? (-3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 499999.99998562218 * (47.130001 + var_chaste_interface__membrane__Vm) * (3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 3.200000000092018e-7 / (1 - exp(-1.0000000000287557e-7)))) : (0.32000000000000001 * (47.130000000000003 + var_chaste_interface__membrane__Vm) / (1 - exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__Vm)))); + const double var_INa_h_gate__ah = _lt_0_row[25]; + const double var_INa_h_gate__bh = _lt_0_row[26]; + const double var_INa_j_gate__aj = _lt_0_row[27]; + const double var_INa_j_gate__bj = _lt_0_row[28]; + const double var_INa_m_gate__am = _lt_0_row[23]; const double var_INa_m_gate__bm = 0.080000000000000002 * _lt_0_row[24]; const double var_Ito1_a_gate__a_infinity = _lt_0_row[29]; const double var_Ito1_a_gate__alpha_a = 0.82719827942757873 / (1 + exp(0.62658348478969694 - 0.034035137876343539 * var_chaste_interface__membrane__Vm)); @@ -3121,14 +3139,14 @@ std::shared_ptr Celldeck const double var_IKp__Kp = 1 / (_lt_0_row[10]); // dimensionless const double var_IKr_r_gate__r = 1 / (_lt_0_row[11]); // dimensionless const double var_Ito1__rto1 = _lt_0_row[12]; // dimensionless - const double var_Ito2__Ito2_max = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-100 * exp(0.037435883507802616 * var_chaste_interface__membrane__Vm) + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (1 - exp(0.037435883507802616 * var_chaste_interface__membrane__Vm)))); // uA_per_uF + const double var_Ito2__Ito2_max = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))); // uA_per_uF const double var_Ito2__Ito2 = var_Ito2__Ito2_max * var_Ito2__Ito2_max_scaling_factor * var_Ito2__KCa_ito2 * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF const double var_Ito2__Ito2_converted = HeartConfig::Instance()->GetCapacitance() * var_Ito2__Ito2; // uA_per_cm2 const double var_membrane__i_Stim_converted = GetIntracellularAreaStimulus(var_chaste_interface__environment__time); // uA_per_cm2 - const double var_ICaL__ICaL_max = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(0.074871767015605231 * var_chaste_interface__membrane__Vm)) * mParameters[6] * var_chaste_interface__membrane__Vm / (-1 + exp(0.074871767015605231 * var_chaste_interface__membrane__Vm)))); // uA_per_uF + const double var_ICaL__ICaL_max = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * var_ICaL__ICaL_max; // uA_per_uF const double var_ICaL__ICaL_converted = HeartConfig::Instance()->GetCapacitance() * var_ICaL__ICaL; // uA_per_cm2 - const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(0.074871767015605231 * var_chaste_interface__membrane__Vm)) * mParameters[7] * var_chaste_interface__membrane__Vm / (-1 + exp(0.074871767015605231 * var_chaste_interface__membrane__Vm)))); // uA_per_uF + const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF const double var_ICab__ICab_converted = HeartConfig::Instance()->GetCapacitance() * var_ICab__ICab; // uA_per_cm2 const double var_INaCa__denom_3 = pow(var_INaCa__KmNao, 3) * var_chaste_interface__Ca__Ca_i + pow(var_chaste_interface__Na__Na_i, 3) * var_INaCa__KmCao + pow(var_INaCa__KmNai, 3) * (1 + var_chaste_interface__Ca__Ca_i / var_INaCa__KmCai) * mParameters[3]; // mM4 const double var_INaCa__denom_ss_3 = pow(var_INaCa__KmNao, 3) * var_chaste_interface__Ca__Ca_ss_sr + pow(var_chaste_interface__Na__Na_ss_sr, 3) * var_INaCa__KmCao + pow(var_INaCa__KmNai, 3) * (1 + var_chaste_interface__Ca__Ca_ss_sr / var_INaCa__KmCai) * mParameters[3]; // mM4 @@ -3139,7 +3157,7 @@ std::shared_ptr Celldeck const double var_INaK__PK = mParameters[4] / (var_INaK__kmko + mParameters[4]); // dimensionless const double var_INaCa__denom_4 = pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i + pow(mParameters[5], 3) * (1 + pow(var_chaste_interface__Na__Na_i, 3) / pow(var_INaCa__KmNai, 3)) * var_INaCa__KmCai; // mM4 const double var_INaCa__denom_ss_4 = pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr + pow(mParameters[5], 3) * (1 + pow(var_chaste_interface__Na__Na_ss_sr, 3) / pow(var_INaCa__KmNai, 3)) * var_INaCa__KmCai; // mM4 - const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(0.037435883507802616 * var_chaste_interface__membrane__Vm)) * mParameters[9] * var_chaste_interface__membrane__Vm / (-1 + exp(0.037435883507802616 * var_chaste_interface__membrane__Vm)))); // uA_per_uF + const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF const double var_INab__INab_converted = HeartConfig::Instance()->GetCapacitance() * var_INab__INab; // uA_per_cm2 const double var_model_parameters__R = 8314; // J_per_kmole_K const double var_model_parameters__T = 310; // kelvin diff --git a/chaste_codegen/data/tests/chaste_reference_models/BEopt/decker_2009.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/BEopt/decker_2009.cpp_alt index 4cff0454..cb95c2f8 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/BEopt/decker_2009.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/BEopt/decker_2009.cpp_alt @@ -439,7 +439,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return (((var_chaste_interface__membrane__Vm >= -38.360800657030218) && (var_chaste_interface__membrane__Vm <= -38.360799342969777)) ? (-0.0037829220022600053 - 0.00014999720215504254 * var_chaste_interface__membrane__Vm + 0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - 1.2667092551679247 * exp(-0.13600000000000001 * var_chaste_interface__membrane__Vm))) : (((var_chaste_interface__membrane__Vm >= 1.7383992647058824) && (var_chaste_interface__membrane__Vm <= 1.7384007352941175)) ? (0.0038902091987635802 + 0.00030002042516430038 * var_chaste_interface__membrane__Vm + 0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + 343.26878155836141 * exp(0.1522 * var_chaste_interface__membrane__Vm))) : (0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + 343.26878155836141 * exp(0.1522 * var_chaste_interface__membrane__Vm)) + 0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - 1.2667092551679247 * exp(-0.13600000000000001 * var_chaste_interface__membrane__Vm))))); + return (((var_chaste_interface__membrane__Vm >= -38.360800657030218) && (var_chaste_interface__membrane__Vm <= -38.360799342969777)) ? (-1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)) + 0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - exp(0.2364224 - 0.13600000000000001 * var_chaste_interface__membrane__Vm)) + 760999.99999526795 * (38.360800657030218 + var_chaste_interface__membrane__Vm) * (1.9710906701830842e-10 / (-1 + exp(1.0000000000062181e-7)) + 1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)))) : (((var_chaste_interface__membrane__Vm >= 1.7383992647058824) && (var_chaste_interface__membrane__Vm <= 1.7384007352941175)) ? (-4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + exp(5.8385137599999997 + 0.1522 * var_chaste_interface__membrane__Vm)) + 680000.00000016927 * (-1.7383992647058824 + var_chaste_interface__membrane__Vm) * (4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 4.4117647058812543e-10 / (1 - exp(-9.9999999999975114e-8)))) : (0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + exp(5.8385137599999997 + 0.1522 * var_chaste_interface__membrane__Vm)) + 0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - exp(0.2364224 - 0.13600000000000001 * var_chaste_interface__membrane__Vm))))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -472,7 +472,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return (((var_chaste_interface__membrane__Vm >= -47.130001) && (var_chaste_interface__membrane__Vm <= -47.129999000000005)) ? (10.740659346572018 + 0.15999701562822261 * var_chaste_interface__membrane__Vm) : (0.32000000000000001 * (47.130000000000003 + var_chaste_interface__membrane__Vm) / (1 - 0.00897780373069724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__Vm)))); + return (((var_chaste_interface__membrane__Vm >= -47.130001) && (var_chaste_interface__membrane__Vm <= -47.129999000000005)) ? (-3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 499999.99998562218 * (47.130001 + var_chaste_interface__membrane__Vm) * (3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 3.200000000092018e-7 / (1 - exp(-1.0000000000287557e-7)))) : (0.32000000000000001 * (47.130000000000003 + var_chaste_interface__membrane__Vm) / (1 - exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__Vm)))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -505,7 +505,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return ((var_chaste_interface__membrane__Vm >= -40) ? (0) : (1.0495108254269646e-6 * exp(-0.14705882352941177 * var_chaste_interface__membrane__Vm))); + return ((var_chaste_interface__membrane__Vm >= -40) ? (0) : (0.13500000000000001 * exp(-11.764705882352942 - 0.14705882352941177 * var_chaste_interface__membrane__Vm))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -527,7 +527,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return ((var_chaste_interface__membrane__Vm >= -40) ? (7.6923076923076916 / (1 + 0.38275493141491301 * exp(-0.0900900900900901 * var_chaste_interface__membrane__Vm))) : (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__Vm) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__Vm))); + return ((var_chaste_interface__membrane__Vm >= -40) ? (7.6923076923076916 / (1 + exp(-0.96036036036036043 - 0.0900900900900901 * var_chaste_interface__membrane__Vm))) : (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__Vm) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__Vm))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -549,7 +549,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return ((var_chaste_interface__membrane__Vm >= -40) ? (0) : ((37.780000000000001 + var_chaste_interface__membrane__Vm) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__Vm) - 6.9480000000000006e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__Vm)) / (1 + 50262745825.953949 * exp(0.311 * var_chaste_interface__membrane__Vm)))); + return ((var_chaste_interface__membrane__Vm >= -40) ? (0) : ((37.780000000000001 + var_chaste_interface__membrane__Vm) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__Vm) - 6.9480000000000006e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__Vm)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__Vm)))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -571,7 +571,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__Vm) { - return ((var_chaste_interface__membrane__Vm >= -40) ? (0.29999999999999999 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__Vm) / (1 + 0.040762203978366211 * exp(-0.10000000000000001 * var_chaste_interface__membrane__Vm))) : (0.1212 * exp(-0.01052 * var_chaste_interface__membrane__Vm) / (1 + 0.0039608683399042569 * exp(-0.13780000000000001 * var_chaste_interface__membrane__Vm)))); + return ((var_chaste_interface__membrane__Vm >= -40) ? (0.29999999999999999 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__Vm) / (1 + exp(-3.2000000000000002 - 0.10000000000000001 * var_chaste_interface__membrane__Vm))) : (0.1212 * exp(-0.01052 * var_chaste_interface__membrane__Vm) / (1 + exp(-5.5312920000000005 - 0.13780000000000001 * var_chaste_interface__membrane__Vm)))); }; const double var_chaste_interface__membrane__Vm = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__Vm); @@ -977,11 +977,11 @@ std::shared_ptr Celldeck const double var_INaCa__INaCa_ss_sr = 0.20000000000000001 * (pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] * _lt_0_row[0] - pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr * _lt_0_row[1]) * mParameters[17] / ((_lt_0_row[2]) * (1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_ss_sr, 2)) * (669921.875 * var_chaste_interface__Ca__Ca_ss_sr + 1.3 * pow(var_chaste_interface__Na__Na_ss_sr, 3) + pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr + 0.0035999999999999999 * pow(mParameters[5], 3) * (1 + 0.00053738391835633597 * pow(var_chaste_interface__Na__Na_ss_sr, 3)) + 1860.8670000000004 * (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_ss_sr) * mParameters[3])); // uA_per_uF const double var_INaCa__INaCa = 0.80000000000000004 * (pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] * _lt_0_row[0] - pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i * _lt_0_row[1]) * mParameters[17] / ((_lt_0_row[2]) * (1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_i, 2)) * (669921.875 * var_chaste_interface__Ca__Ca_i + 1.3 * pow(var_chaste_interface__Na__Na_i, 3) + pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i + 0.0035999999999999999 * pow(mParameters[5], 3) * (1 + 0.00053738391835633597 * pow(var_chaste_interface__Na__Na_i, 3)) + 1860.8670000000004 * (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_i) * mParameters[3])) + var_INaCa__INaCa_ss_sr; // uA_per_uF const double var_INaK__INaK = 0.056895766954938545 * pow(var_chaste_interface__Na__Na_i, 3) * mParameters[18] * mParameters[4] / (pow((1 + 0.38461538461538458 * var_chaste_interface__Na__Na_i), 3) * (_lt_0_row[3]) * (1.5 + mParameters[4])); // uA_per_uF - const double var_membrane__caiont = -2 * var_INaCa__INaCa - 2 * var_INaCa__INaCa_ss_sr + (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))) + var_chaste_interface__Ca__Ca_i * mParameters[10] / (0.00050000000000000001 + var_chaste_interface__Ca__Ca_i) + (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF - const double var_membrane__clont = (26.712338705498265 * log(100 / var_chaste_interface__Cl__Cl_i) + var_chaste_interface__membrane__Vm) * mParameters[8] + (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19] - 96484.995175157921 * (-100.0000100000005 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) - 96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF + const double var_membrane__caiont = -2 * var_INaCa__INaCa - 2 * var_INaCa__INaCa_ss_sr + (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))) + var_chaste_interface__Ca__Ca_i * mParameters[10] / (0.00050000000000000001 + var_chaste_interface__Ca__Ca_i) + (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_membrane__clont = (26.712338705498265 * log(100 / var_chaste_interface__Cl__Cl_i) + var_chaste_interface__membrane__Vm) * mParameters[8] + (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF const double var_reversal_potentials__EK = 26.712338705498265 * log(mParameters[4] / var_chaste_interface__K__K_i); // mV const double var_reversal_potentials__ENa = 26.712338705498265 * log(mParameters[5] / var_chaste_interface__Na__Na_i); // mV - const double var_membrane__naiont = 3 * var_INaCa__INaCa + 3 * var_INaCa__INaCa_ss_sr + 3 * var_INaK__INaK + pow(var_chaste_interface__INaL_mL_gate__mL, 3) * (-var_reversal_potentials__ENa + var_chaste_interface__membrane__Vm) * mParameters[13] * var_chaste_interface__INaL_hL_gate__hL + pow(var_chaste_interface__INa_m_gate__m, 3) * (-var_reversal_potentials__ENa + var_chaste_interface__membrane__Vm) * mParameters[11] * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j + (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96484.995175157921 * (-mParameters[5] + 1.0000001000000049 * var_chaste_interface__Na__Na_i) * mParameters[9] - 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) + 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF + const double var_membrane__naiont = 3 * var_INaCa__INaCa + 3 * var_INaCa__INaCa_ss_sr + 3 * var_INaK__INaK + pow(var_chaste_interface__INaL_mL_gate__mL, 3) * (-var_reversal_potentials__ENa + var_chaste_interface__membrane__Vm) * mParameters[13] * var_chaste_interface__INaL_hL_gate__hL + pow(var_chaste_interface__INa_m_gate__m, 3) * (-var_reversal_potentials__ENa + var_chaste_interface__membrane__Vm) * mParameters[11] * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j + (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF const double var_membrane__kiont = -2 * var_INaK__INaK + (-var_reversal_potentials__EK + var_chaste_interface__membrane__Vm) * mParameters[14] / (_lt_0_row[10]) + (1 + 0.59999999999999998 / (1 + 6.4818210260626455e-7 * pow((1 / var_chaste_interface__Ca__Ca_i), 1.3999999999999999))) * (-26.712338705498265 * log((0.018329999999999999 * mParameters[5] + mParameters[4]) / (0.018329999999999999 * var_chaste_interface__Na__Na_i + var_chaste_interface__K__K_i)) + var_chaste_interface__membrane__Vm) * (1 - var_chaste_interface__IKs__C1 - var_chaste_interface__IKs__C10 - var_chaste_interface__IKs__C11 - var_chaste_interface__IKs__C12 - var_chaste_interface__IKs__C13 - var_chaste_interface__IKs__C14 - var_chaste_interface__IKs__C15 - var_chaste_interface__IKs__C2 - var_chaste_interface__IKs__C3 - var_chaste_interface__IKs__C4 - var_chaste_interface__IKs__C5 - var_chaste_interface__IKs__C6 - var_chaste_interface__IKs__C7 - var_chaste_interface__IKs__C8 - var_chaste_interface__IKs__C9) * mParameters[16] + 0.43033148291193518 * sqrt(mParameters[4]) * (-var_reversal_potentials__EK + var_chaste_interface__membrane__Vm) * mParameters[15] * var_chaste_interface__IKr_xr_gate__xr / (_lt_0_row[11]) + 0.4389381125701739 * sqrt(mParameters[4]) * (-var_reversal_potentials__EK + var_chaste_interface__membrane__Vm) * mParameters[12] / ((1 + exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__Vm - 0.23849999999999999 * var_reversal_potentials__EK)) * (1.02 / (1 + exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__Vm - 0.23849999999999999 * var_reversal_potentials__EK)) + (0.49124000000000001 * exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__Vm - 0.080320000000000003 * var_reversal_potentials__EK) + exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__Vm - 0.061749999999999999 * var_reversal_potentials__EK)) / (1 + exp(-2.4444678999999998 + 0.51429999999999998 * var_reversal_potentials__EK - 0.51429999999999998 * var_chaste_interface__membrane__Vm)))) + pow(var_chaste_interface__Ito1_a_gate__a, 3) * (-var_reversal_potentials__EK + var_chaste_interface__membrane__Vm) * mParameters[20] * var_chaste_interface__Ito1_i1f_gate__i1f * var_chaste_interface__Ito1_i1s_gate__i1s * _lt_0_row[12]; // uA_per_uF const double var_chaste_interface__i_ionic = (var_membrane__caiont + var_membrane__clont + var_membrane__kiont + var_membrane__naiont) * HeartConfig::Instance()->GetCapacitance(); // uA_per_cm2 @@ -1103,15 +1103,15 @@ std::shared_ptr Celldeck const double d_dt_chaste_interface_var_ICaL__CI = 9.9999999999999995e-7 * var_chaste_interface__ICaL__CI_star + (-var_ICaL__alpha - var_ICaL__delta_I - var_ICaL__x) * var_chaste_interface__ICaL__CI + var_chaste_interface__ICaL__C * var_ICaL__y + var_chaste_interface__ICaL__OI * var_ICaL__beta; // 1 / ms const double d_dt_chaste_interface_var_ICaL__CI_star = (-9.9999999999999995e-7 - var_ICaL__alpha - var_ICaL__x_star) * var_chaste_interface__ICaL__CI_star + var_chaste_interface__ICaL__CI * var_ICaL__delta_I + var_chaste_interface__ICaL__C_star * var_ICaL__y_star + var_ICaL__OI_star * var_ICaL__beta; // 1 / ms const double d_dt_chaste_interface_var_ICaL__OI = 9.9999999999999995e-7 * var_ICaL__OI_star + (-var_ICaL__beta - var_ICaL__delta_I - var_ICaL__x) * var_chaste_interface__ICaL__OI + var_chaste_interface__ICaL__CI * var_ICaL__alpha + var_chaste_interface__ICaL__O * var_ICaL__y; // 1 / ms - const double var_Ito2__Ito2 = (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19] - 96484.995175157921 * (-100.0000100000005 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) - 96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF + const double var_Ito2__Ito2 = (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF const double var_membrane__i_Stim = GetIntracellularAreaStimulus(var_chaste_interface__environment__time) / HeartConfig::Instance()->GetCapacitance(); // uA_per_uF - const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF - const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF const double d_dt_chaste_interface_var_Irel__Irel = (1 + 0.0123 / var_chaste_interface__Ca__Ca_JSR) * (-var_chaste_interface__Irel__Irel - var_ICaL__ICaL * var_Irel__beta_tau * mParameters[1] / (1 + pow((1 / var_chaste_interface__Ca__Ca_JSR), 8))) / var_Irel__beta_tau; // mM_per_ms / ms const double var_cell_geometry__AF = 5.0619267243613002e-10 * M_PI; // uF_mole_per_C const double d_dt_chaste_interface_var_Ca__Ca_ss_CaL = -(250 * var_ICaL__ICaL * var_cell_geometry__AF / var_cell_geometry__vcell - 500 * var_Ca__Idiff_ss * var_cell_geometry__Vss_sr / var_cell_geometry__vcell) / (1 + 0.0097788000000000007 / pow((0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_CaL), 2) + 4.0890000000000003e-5 / pow((0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_CaL), 2)); // mM / ms const double d_dt_chaste_interface_var_Cl__Cl_ss = -var_Cl__Idiff_Cl + var_Ito2__Ito2 * var_cell_geometry__AF / var_cell_geometry__Vss_sr; // mM / ms - const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96484.995175157921 * (-mParameters[5] + 1.0000001000000049 * var_chaste_interface__Na__Na_i) * mParameters[9] - 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) + 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF + const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF const double var_IKs__alpha = _lt_0_row[35]; // per_ms const double var_IKs__beta = _lt_0_row[36]; // per_ms const double d_dt_chaste_interface_var_IKs__C1 = var_chaste_interface__IKs__C2 * var_IKs__beta - 4 * var_chaste_interface__IKs__C1 * var_IKs__alpha; // 1 / ms @@ -1301,241 +1301,257 @@ std::shared_ptr Celldeck const double var_x37 = 1 / var_x36; const double var_x38 = var_x37; const double var_x39 = 0.0054277286135693209 * mParameters[0]; - const double var_x40 = 0.0096478430926936198 + 7223.5106023927301 * var_chaste_interface__membrane__Vm; - const double var_x41 = (var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6); - const double var_x42 = _lt_0_row[4]; - const double var_x43 = 14448.004881001343 * var_chaste_interface__membrane__Vm / (-1 + var_x42); - const double var_x44 = var_x43 * mParameters[7]; - const double var_x45 = 3.0851110000007915e-5 * mParameters[10]; - const double var_x46 = var_x45 / var_x34; - const double var_x47 = 0.081415929203539822 * var_x28; - const double var_x48 = pow(mParameters[5], 3); - const double var_x49 = -669921.875 - var_x48 - 516907.50000000012 * mParameters[3]; - const double var_x50 = pow(var_chaste_interface__Na__Na_i, 3); - const double var_x51 = var_x50 * mParameters[3]; - const double var_x52 = var_x48 * var_chaste_interface__Ca__Ca_i; - const double var_x53 = (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_i) * mParameters[3]; - const double var_x54 = var_x48 * (1 + 0.00053738391835633597 * var_x50); - const double var_x55 = 1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_i, 2); - const double var_x56 = 1 / var_x55; - const double var_x57 = _lt_0_row[0]; - const double var_x58 = _lt_0_row[1]; - const double var_x59 = var_x51 * var_x57 - var_x52 * var_x58; - const double var_x60 = mParameters[17] / (1 + 0.32000000000000001 * var_x58); - const double var_x61 = var_x56 * var_x59 * var_x60; - const double var_x62 = var_x61 / pow((1.9405247813411081e-6 * var_x50 + 1.4927113702623908e-6 * var_x51 + 1.4927113702623908e-6 * var_x52 + 0.0027777373294460648 * var_x53 + 5.3737609329446059e-9 * var_x54 + var_chaste_interface__Ca__Ca_i), 2); - const double var_x63 = 1.0998727917574584e-16 * var_x62; - const double var_x64 = 1 / (var_x51 + var_x52 + 669921.875 * var_chaste_interface__Ca__Ca_i + 0.0035999999999999999 * var_x54 + 1.3 * var_x50 + 1860.8670000000004 * var_x53); - const double var_x65 = var_x60 * var_x64; - const double var_x66 = var_x59 * var_x65 / (pow(var_x55, 2) * pow(var_chaste_interface__Ca__Ca_i, 3)); - const double var_x67 = 4.9361776000012672e-5 * var_x64; - const double var_x68 = var_x48 * var_x58 * var_x60; - const double var_x69 = -0.34100000000000003 * mParameters[3]; - const double var_x70 = 192970.00964862964 * (var_x69 + 0.99999990000000505 * var_chaste_interface__Ca__Ca_i) * mParameters[7]; - const double var_x71 = 0.5 + 374358.83507802623 * var_chaste_interface__membrane__Vm; - const double var_x72 = var_x42; - const double var_x73 = pow(var_chaste_interface__Na__Na_ss_sr, 3); - const double var_x74 = var_x73 * mParameters[3]; - const double var_x75 = var_x48 * var_chaste_interface__Ca__Ca_ss_sr; - const double var_x76 = var_x48 * (1 + 0.00053738391835633597 * var_x73); - const double var_x77 = (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_ss_sr) * mParameters[3]; - const double var_x78 = 1 / (var_x74 + var_x75 + 669921.875 * var_chaste_interface__Ca__Ca_ss_sr + 0.0035999999999999999 * var_x76 + 1.3 * var_x73 + 1860.8670000000004 * var_x77); - const double var_x79 = 1 + 1.5624999999999999e-8 * var_x8; - const double var_x80 = 1 / var_x79; - const double var_x81 = var_x57 * var_x74 - var_x58 * var_x75; - const double var_x82 = var_x60 * var_x80 * var_x81; - const double var_x83 = var_x78 * var_x82; - const double var_x84 = var_x82 / pow((1.9405247813411081e-6 * var_x73 + 1.4927113702623908e-6 * var_x74 + 1.4927113702623908e-6 * var_x75 + 0.0027777373294460648 * var_x77 + 5.3737609329446059e-9 * var_x76 + var_chaste_interface__Ca__Ca_ss_sr), 2); - const double var_x85 = 2.7496819793936459e-17 * var_x84; - const double var_x86 = var_x60 * var_x78; - const double var_x87 = var_x81 * var_x86 / (pow(var_x79, 2) * pow(var_chaste_interface__Ca__Ca_ss_sr, 3)); - const double var_x88 = var_x68 * var_x78 * var_x80; - const double var_x89 = pow(var_chaste_interface__Na__Na_i, 2); - const double var_x90 = 3 * mParameters[3]; - const double var_x91 = 5.8037463182484285e-6 * var_x48; - const double var_x92 = -3.9000000000000004 * var_x89 - var_x89 * var_x90 - var_x89 * var_x91; - const double var_x93 = var_x56 * var_x65; - const double var_x94 = 0.00014808532800003802 * var_x93; - const double var_x95 = var_x57 * mParameters[3]; - const double var_x96 = var_x89 * var_x95; - const double var_x97 = pow(var_chaste_interface__Na__Na_ss_sr, 2); - const double var_x98 = -3.9000000000000004 * var_x97 - var_x90 * var_x97 - var_x91 * var_x97; - const double var_x99 = var_x80 * var_x86 * var_x95 * var_x97; - const double var_x100 = 0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_CaL; - const double var_x101 = 0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_CaL; - const double var_x102 = 1 + 0.0097788000000000007 / pow(var_x100, 2) + 4.0890000000000003e-5 / pow(var_x101, 2); - const double var_x103 = 1 / var_x102; - const double var_x104 = var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star; - const double var_x105 = var_x43 * mParameters[6]; - const double var_x106 = ((var_x41) ? (var_x104 * (192969.99035162965 * mParameters[6] + var_x40 * mParameters[6])) : (var_x104 * var_x105 * var_x42)); - const double var_x107 = 192970.00964862964 * (var_x69 + 0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL) * mParameters[6]; - const double var_x108 = var_x107 + var_x71 * (-var_x107 + 192969.99035031584 * (var_x69 + 1.0000001000000049 * var_chaste_interface__Ca__Ca_ss_CaL) * mParameters[6]); - const double var_x109 = var_x105 * (var_x69 + var_x72 * var_chaste_interface__Ca__Ca_ss_CaL); - const double var_x110 = ((var_x41) ? (var_x104 * var_x108) : (var_x104 * var_x109)); - const double var_x111 = ((var_x41) ? (var_x108) : (var_x109)); - const double var_x112 = -0.010458526290002684 * var_x103 * var_x111; - const double var_x113 = 0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_sr; - const double var_x114 = 0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_sr; - const double var_x115 = 1 + 0.0097788000000000007 / pow(var_x113, 2) + 4.0890000000000003e-5 / pow(var_x114, 2); - const double var_x116 = 1 / var_x115; - const double var_x117 = 9.3214219101444593e-16 * var_x84; - const double var_x118 = var_x116; - const double var_x119 = 1 / var_chaste_interface__Cl__Cl_i; - const double var_x120 = log(100 * var_x119); - const double var_x121 = 1 / var_chaste_interface__K__K_i; - const double var_x122 = log(var_x121 * mParameters[4]); - const double var_x123 = 26.712338705498265 * var_x122; - const double var_x124 = var_x123 + 26.712338705498265 * var_x120; - const double var_x125 = 0.00047280839508731927 / (87.825100000000006 + var_x124); - const double var_x126 = 6.1298221377044294e-8 * var_x124 / pow((1 + 0.30415380916729118 * var_x120 + 0.30415380916729118 * var_x122), 2); - const double var_x127 = var_x119 * var_x126 - var_x119 * var_x125; - const double var_x128 = 1 / var_chaste_interface__Na__Na_i; - const double var_x129 = var_x120 + log(var_x128 * mParameters[5]); - const double var_x130 = pow(var_x129, 4); - const double var_x131 = 7.2099425022651882e-9 * pow(var_x129, 7) / pow((1 + 0.0085580149227345564 * var_x130), 2); - const double var_x132 = 50.122574928945262 * pow(var_x129, 3) / (59494197.640692554 + 509152.231225166 * var_x130); - const double var_x133 = var_x119 * var_x131 - var_x119 * var_x132; - const double var_x134 = var_x121 * var_x126 - var_x121 * var_x125; - const double var_x135 = var_x128 * var_x131 - var_x128 * var_x132; - const double var_x136 = 96485.004824314819 * mParameters[19]; - const double var_x137 = 0.5 + 187179.41753901311 * var_chaste_interface__membrane__Vm; - const double var_x138 = pow(var_chaste_interface__Irel__Irel, 2); - const double var_x139 = (1 - 1 / (1 + 6.2499999999999991 * var_x138)) * var_chaste_interface__Ito2_i2f_gate__i2f; - const double var_x140 = (var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6); - const double var_x141 = 3612.0012202503358 * var_chaste_interface__membrane__Vm; - const double var_x142 = 0.037435883507802616 * var_chaste_interface__membrane__Vm; - const double var_x143 = exp(var_x142); - const double var_x144 = mParameters[19] / (1 - var_x143); - const double var_x145 = var_x136 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i); - const double var_x146 = var_chaste_interface__Irel__Irel * var_chaste_interface__Ito2_i2f_gate__i2f / pow((0.16000000000000003 + var_x138), 2); - const double var_x147 = 1 + 8.1000000000000005e-11 / pow(var_chaste_interface__Ca__Ca_ss_CaL, 4); - const double var_x148 = 1 / (pow(var_x147, 2) * pow(var_chaste_interface__Ca__Ca_ss_CaL, 5)); - const double var_x149 = 9.7200000000000016e-10 * var_x148; - const double var_x150 = var_x149 * var_chaste_interface__ICaL__C; - const double var_x151 = 1 / (_lt_0_row[14]); - const double var_x152 = _lt_0_row[13]; - const double var_x153 = var_x151 * var_x152; - const double var_x154 = -var_x153; - const double var_x155 = 1 / var_x147; - const double var_x156 = 3 * var_x155; - const double var_x157 = 1 / (_lt_0_row[42]); - const double var_x158 = 0.80000000000000004 * var_x157; - const double var_x159 = 0.80000000000000004 - var_x158; - const double var_x160 = _lt_0_row[19]; - const double var_x161 = 1 / (_lt_0_row[18]); - const double var_x162 = var_x160 + 0.032730010146303147 * var_x161; - const double var_x163 = var_x159 * var_x162; - const double var_x164 = -var_x156 - var_x163; - const double var_x165 = 0.20000000000000001 + var_x158; - const double var_x166 = var_x162 * var_x165; - const double var_x167 = var_x151 * (1 - var_x152); - const double var_x168 = 0.99990000999900008 * var_x157; - const double var_x169 = -var_x168; - const double var_x170 = 0.99990000999900008 + var_x169; - const double var_x171 = 9.9990000999900015e-5 + var_x168; - const double var_x172 = var_x165 * var_x170 / (var_x159 * var_x171); - const double var_x173 = 9.7200000000000002e-16 * var_x148 * var_x172; - const double var_x174 = var_x173 * var_chaste_interface__ICaL__CI; - const double var_x175 = 3.0000000000000001e-6 * var_x155 * var_x172; - const double var_x176 = -var_x166 - var_x175; - const double var_x177 = 9.0720000000000001e-12 * var_x148 * var_x161 / pow((1 - 0.69999999999999996 * var_x155), 2); - const double var_x178 = var_x177 * var_chaste_interface__ICaL__C_star; - const double var_x179 = var_x177 * var_chaste_interface__ICaL__CI_star; - const double var_x180 = -var_x167; - const double var_x181 = var_x160 + var_x161 / (25 - 17.5 * var_x155); - const double var_x182 = var_x171 * var_x181; + const double var_x40 = 0.5 + 374358.83507802623 * var_chaste_interface__membrane__Vm; + const double var_x41 = 0.019296999999999998 * mParameters[7]; + const double var_x42 = exp(9.9999999999999995e-8); + const double var_x43 = 1 / (-1 + var_x42); + const double var_x44 = var_x42 * var_x43; + const double var_x45 = exp(-9.9999999999999995e-8); + const double var_x46 = 1 / (-1 + var_x45); + const double var_x47 = var_x41 * var_x46; + const double var_x48 = var_x45 * var_x47; + const double var_x49 = (var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6); + const double var_x50 = _lt_0_row[4]; + const double var_x51 = 14448.004881001343 * var_chaste_interface__membrane__Vm / (-1 + var_x50); + const double var_x52 = var_x51 * mParameters[7]; + const double var_x53 = 3.0851110000007915e-5 * mParameters[10]; + const double var_x54 = var_x53 / var_x34; + const double var_x55 = 0.081415929203539822 * var_x28; + const double var_x56 = pow(mParameters[5], 3); + const double var_x57 = -669921.875 - var_x56 - 516907.50000000012 * mParameters[3]; + const double var_x58 = pow(var_chaste_interface__Na__Na_i, 3); + const double var_x59 = var_x58 * mParameters[3]; + const double var_x60 = var_x56 * var_chaste_interface__Ca__Ca_i; + const double var_x61 = (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_i) * mParameters[3]; + const double var_x62 = var_x56 * (1 + 0.00053738391835633597 * var_x58); + const double var_x63 = 1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_i, 2); + const double var_x64 = 1 / var_x63; + const double var_x65 = _lt_0_row[0]; + const double var_x66 = _lt_0_row[1]; + const double var_x67 = var_x59 * var_x65 - var_x60 * var_x66; + const double var_x68 = mParameters[17] / (1 + 0.32000000000000001 * var_x66); + const double var_x69 = var_x64 * var_x67 * var_x68; + const double var_x70 = var_x69 / pow((1.9405247813411081e-6 * var_x58 + 1.4927113702623908e-6 * var_x59 + 1.4927113702623908e-6 * var_x60 + 0.0027777373294460648 * var_x61 + 5.3737609329446059e-9 * var_x62 + var_chaste_interface__Ca__Ca_i), 2); + const double var_x71 = 1.0998727917574584e-16 * var_x70; + const double var_x72 = 1 / (var_x59 + var_x60 + 669921.875 * var_chaste_interface__Ca__Ca_i + 0.0035999999999999999 * var_x62 + 1.3 * var_x58 + 1860.8670000000004 * var_x61); + const double var_x73 = var_x68 * var_x72; + const double var_x74 = var_x67 * var_x73 / (pow(var_x63, 2) * pow(var_chaste_interface__Ca__Ca_i, 3)); + const double var_x75 = 4.9361776000012672e-5 * var_x72; + const double var_x76 = var_x56 * var_x66 * var_x68; + const double var_x77 = -0.34100000000000003 * mParameters[3]; + const double var_x78 = var_chaste_interface__Ca__Ca_i; + const double var_x79 = var_x47 * (var_x77 + var_x45 * var_x78); + const double var_x80 = 0.5 + 374358.83507802623 * var_chaste_interface__membrane__Vm; + const double var_x81 = pow(var_chaste_interface__Na__Na_ss_sr, 3); + const double var_x82 = var_x81 * mParameters[3]; + const double var_x83 = var_x56 * var_chaste_interface__Ca__Ca_ss_sr; + const double var_x84 = var_x56 * (1 + 0.00053738391835633597 * var_x81); + const double var_x85 = (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_ss_sr) * mParameters[3]; + const double var_x86 = 1 / (var_x82 + var_x83 + 669921.875 * var_chaste_interface__Ca__Ca_ss_sr + 0.0035999999999999999 * var_x84 + 1.3 * var_x81 + 1860.8670000000004 * var_x85); + const double var_x87 = 1 + 1.5624999999999999e-8 * var_x8; + const double var_x88 = 1 / var_x87; + const double var_x89 = var_x65 * var_x82 - var_x66 * var_x83; + const double var_x90 = var_x68 * var_x88 * var_x89; + const double var_x91 = var_x86 * var_x90; + const double var_x92 = var_x90 / pow((1.9405247813411081e-6 * var_x81 + 1.4927113702623908e-6 * var_x82 + 1.4927113702623908e-6 * var_x83 + 0.0027777373294460648 * var_x85 + 5.3737609329446059e-9 * var_x84 + var_chaste_interface__Ca__Ca_ss_sr), 2); + const double var_x93 = 2.7496819793936459e-17 * var_x92; + const double var_x94 = var_x68 * var_x86; + const double var_x95 = var_x89 * var_x94 / (pow(var_x87, 2) * pow(var_chaste_interface__Ca__Ca_ss_sr, 3)); + const double var_x96 = var_x76 * var_x86 * var_x88; + const double var_x97 = pow(var_chaste_interface__Na__Na_i, 2); + const double var_x98 = 3 * mParameters[3]; + const double var_x99 = 5.8037463182484285e-6 * var_x56; + const double var_x100 = -3.9000000000000004 * var_x97 - var_x97 * var_x98 - var_x97 * var_x99; + const double var_x101 = var_x64 * var_x73; + const double var_x102 = 0.00014808532800003802 * var_x101; + const double var_x103 = var_x65 * mParameters[3]; + const double var_x104 = var_x103 * var_x97; + const double var_x105 = pow(var_chaste_interface__Na__Na_ss_sr, 2); + const double var_x106 = -3.9000000000000004 * var_x105 - var_x105 * var_x98 - var_x105 * var_x99; + const double var_x107 = var_x103 * var_x105 * var_x88 * var_x94; + const double var_x108 = 0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_CaL; + const double var_x109 = 0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_CaL; + const double var_x110 = 1 + 0.0097788000000000007 / pow(var_x108, 2) + 4.0890000000000003e-5 / pow(var_x109, 2); + const double var_x111 = 1 / var_x110; + const double var_x112 = 0.019296999999999998 * mParameters[6]; + const double var_x113 = var_x112 * var_x46; + const double var_x114 = var_x113 * var_x45; + const double var_x115 = var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star; + const double var_x116 = var_x51 * mParameters[6]; + const double var_x117 = ((var_x49) ? (var_x115 * (-var_x114 + var_x40 * (var_x114 + var_x112 * var_x44))) : (var_x115 * var_x116 * var_x50)); + const double var_x118 = var_chaste_interface__Ca__Ca_ss_CaL; + const double var_x119 = var_x113 * (var_x77 + var_x118 * var_x45); + const double var_x120 = -var_x119 + var_x80 * (var_x119 + var_x112 * var_x43 * (var_x77 + var_x118 * var_x42)); + const double var_x121 = var_x116 * (var_x77 + var_x118 * var_x50); + const double var_x122 = ((var_x49) ? (var_x115 * var_x120) : (var_x115 * var_x121)); + const double var_x123 = ((var_x49) ? (var_x120) : (var_x121)); + const double var_x124 = -0.010458526290002684 * var_x111 * var_x123; + const double var_x125 = 0.0086999999999999994 + var_chaste_interface__Ca__Ca_ss_sr; + const double var_x126 = 0.00087000000000000001 + var_chaste_interface__Ca__Ca_ss_sr; + const double var_x127 = 1 + 0.0097788000000000007 / pow(var_x125, 2) + 4.0890000000000003e-5 / pow(var_x126, 2); + const double var_x128 = 1 / var_x127; + const double var_x129 = 9.3214219101444593e-16 * var_x92; + const double var_x130 = var_x128; + const double var_x131 = 1 / var_chaste_interface__Cl__Cl_i; + const double var_x132 = log(100 * var_x131); + const double var_x133 = 1 / var_chaste_interface__K__K_i; + const double var_x134 = log(var_x133 * mParameters[4]); + const double var_x135 = 26.712338705498265 * var_x134; + const double var_x136 = var_x135 + 26.712338705498265 * var_x132; + const double var_x137 = 0.00047280839508731927 / (87.825100000000006 + var_x136); + const double var_x138 = 6.1298221377044294e-8 * var_x136 / pow((1 + 0.30415380916729118 * var_x132 + 0.30415380916729118 * var_x134), 2); + const double var_x139 = var_x131 * var_x138 - var_x131 * var_x137; + const double var_x140 = 1 / var_chaste_interface__Na__Na_i; + const double var_x141 = var_x132 + log(var_x140 * mParameters[5]); + const double var_x142 = pow(var_x141, 4); + const double var_x143 = 7.2099425022651882e-9 * pow(var_x141, 7) / pow((1 + 0.0085580149227345564 * var_x142), 2); + const double var_x144 = 50.122574928945262 * pow(var_x141, 3) / (59494197.640692554 + 509152.231225166 * var_x142); + const double var_x145 = var_x131 * var_x143 - var_x131 * var_x144; + const double var_x146 = var_x133 * var_x138 - var_x133 * var_x137; + const double var_x147 = var_x140 * var_x143 - var_x140 * var_x144; + const double var_x148 = 0.5 + 187179.41753901311 * var_chaste_interface__membrane__Vm; + const double var_x149 = 0.0096484999999999991 * mParameters[19]; + const double var_x150 = var_x149 / (1 - var_x42); + const double var_x151 = var_x149 / (1 - var_x45); + const double var_x152 = pow(var_chaste_interface__Irel__Irel, 2); + const double var_x153 = (1 - 1 / (1 + 6.2499999999999991 * var_x152)) * var_chaste_interface__Ito2_i2f_gate__i2f; + const double var_x154 = (var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6); + const double var_x155 = 3612.0012202503358 * var_chaste_interface__membrane__Vm; + const double var_x156 = 0.037435883507802616 * var_chaste_interface__membrane__Vm; + const double var_x157 = exp(var_x156); + const double var_x158 = mParameters[19] / (1 - var_x157); + const double var_x159 = var_x151 * (-100 * var_x45 + var_chaste_interface__Cl__Cl_i); + const double var_x160 = var_chaste_interface__Irel__Irel * var_chaste_interface__Ito2_i2f_gate__i2f / pow((0.16000000000000003 + var_x152), 2); + const double var_x161 = 1 + 8.1000000000000005e-11 / pow(var_chaste_interface__Ca__Ca_ss_CaL, 4); + const double var_x162 = 1 / (pow(var_x161, 2) * pow(var_chaste_interface__Ca__Ca_ss_CaL, 5)); + const double var_x163 = 9.7200000000000016e-10 * var_x162; + const double var_x164 = var_x163 * var_chaste_interface__ICaL__C; + const double var_x165 = 1 / (_lt_0_row[14]); + const double var_x166 = _lt_0_row[13]; + const double var_x167 = var_x165 * var_x166; + const double var_x168 = -var_x167; + const double var_x169 = 1 / var_x161; + const double var_x170 = 3 * var_x169; + const double var_x171 = 1 / (_lt_0_row[42]); + const double var_x172 = 0.80000000000000004 * var_x171; + const double var_x173 = 0.80000000000000004 - var_x172; + const double var_x174 = _lt_0_row[19]; + const double var_x175 = 1 / (_lt_0_row[18]); + const double var_x176 = var_x174 + 0.032730010146303147 * var_x175; + const double var_x177 = var_x173 * var_x176; + const double var_x178 = -var_x170 - var_x177; + const double var_x179 = 0.20000000000000001 + var_x172; + const double var_x180 = var_x176 * var_x179; + const double var_x181 = var_x165 * (1 - var_x166); + const double var_x182 = 0.99990000999900008 * var_x171; const double var_x183 = -var_x182; - const double var_x184 = -9.9999999999999995e-7 + var_x180; - const double var_x185 = var_x170 * var_x181; - const double var_x186 = -0.99990000999900008 + var_x168; - const double var_x187 = -1 - var_x185; - const double var_x188 = var_x149 * var_chaste_interface__ICaL__O; - const double var_x189 = _lt_0_row[43]; - const double var_x190 = 0.059458391923439997 * var_x189; - const double var_x191 = _lt_0_row[44]; - const double var_x192 = 0.083986312199829993 * var_x191; - const double var_x193 = _lt_0_row[45]; - const double var_x194 = 0.0062346537747999999 * var_x193; - const double var_x195 = -var_x194; - const double var_x196 = 0.029729195961719999 * var_x189; + const double var_x184 = 0.99990000999900008 + var_x183; + const double var_x185 = 9.9990000999900015e-5 + var_x182; + const double var_x186 = var_x179 * var_x184 / (var_x173 * var_x185); + const double var_x187 = 9.7200000000000002e-16 * var_x162 * var_x186; + const double var_x188 = var_x187 * var_chaste_interface__ICaL__CI; + const double var_x189 = 3.0000000000000001e-6 * var_x169 * var_x186; + const double var_x190 = -var_x180 - var_x189; + const double var_x191 = 9.0720000000000001e-12 * var_x162 * var_x175 / pow((1 - 0.69999999999999996 * var_x169), 2); + const double var_x192 = var_x191 * var_chaste_interface__ICaL__C_star; + const double var_x193 = var_x191 * var_chaste_interface__ICaL__CI_star; + const double var_x194 = -var_x181; + const double var_x195 = var_x174 + var_x175 / (25 - 17.5 * var_x169); + const double var_x196 = var_x185 * var_x195; const double var_x197 = -var_x196; - const double var_x198 = _lt_0_row[46]; - const double var_x199 = 0.01460066118316 * var_x198; - const double var_x200 = 0.014864597980859999 * var_x189; - const double var_x201 = -var_x200; - const double var_x202 = -var_x192 - var_x199; - const double var_x203 = 0.16797262439965999 * var_x191; - const double var_x204 = 0.009351980662199999 * var_x193; - const double var_x205 = 0.02920132236632 * var_x198; - const double var_x206 = -var_x203 - var_x205; - const double var_x207 = 0.043801983549479999 * var_x198; - const double var_x208 = -var_x204; - const double var_x209 = 0.0124693075496 * var_x193; - const double var_x210 = _lt_0_row[38]; - const double var_x211 = 0.04459379394258 * var_x189; - const double var_x212 = -var_x211; - const double var_x213 = 0.0031173268874 * var_x193; - const double var_x214 = 0.25195893659948998 * var_x191; - const double var_x215 = -var_x207 - var_x214; - const double var_x216 = 0.33594524879931997 * var_x191; - const double var_x217 = 0.058402644732640001 * var_x198; - const double var_x218 = -var_x213; - const double var_x219 = _lt_0_row[47]; - const double var_x220 = 1 / var_x5; - const double var_x221 = pow(var_x220, 10); - const double var_x222 = 1 + 2.9619676669542428e-6 * var_x221; - const double var_x223 = var_x220 * var_x221 / pow(var_x222, 2); - const double var_x224 = var_x223 * (-1 + var_x3); - const double var_x225 = 1 / var_chaste_interface__Ca__Ca_JSR; - const double var_x226 = 1 + 0.0123 * var_x225; - const double var_x227 = 1 / var_x222; - const double var_x228 = 4.75 + 4.75 * var_x227; - const double var_x229 = pow(var_x225, 8); - const double var_x230 = 1 + var_x229; - const double var_x231 = mParameters[1] / var_x230; - const double var_x232 = var_x110 * var_x231; - const double var_x233 = var_x14 - var_x228 * var_x232; - const double var_x234 = var_x226 * var_x233 / pow((1 + var_x227), 2); - const double var_x235 = 1 / var_x228; - const double var_x236 = var_x226 * var_x235; - const double var_x237 = var_x232 * var_x236; - const double var_x238 = var_x226 * var_x231; - const double var_x239 = var_x223 * var_x9; - const double var_x240 = -var_x111 * var_x238; - const double var_x241 = 1 / var_chaste_interface__Ca__Ca_i; - const double var_x242 = pow(var_x241, 1.3999999999999999); - const double var_x243 = 1 + 6.4818210260626455e-7 * var_x242; - const double var_x244 = 1 / (0.018329999999999999 * var_chaste_interface__Na__Na_i + var_chaste_interface__K__K_i); - const double var_x245 = -26.712338705498265 * log(var_x244 * (0.018329999999999999 * mParameters[5] + mParameters[4])) + var_chaste_interface__membrane__Vm; - const double var_x246 = 1 - var_chaste_interface__IKs__C1 - var_chaste_interface__IKs__C10 - var_chaste_interface__IKs__C11 - var_chaste_interface__IKs__C12 - var_chaste_interface__IKs__C13 - var_chaste_interface__IKs__C14 - var_chaste_interface__IKs__C15 - var_chaste_interface__IKs__C2 - var_chaste_interface__IKs__C3 - var_chaste_interface__IKs__C4 - var_chaste_interface__IKs__C5 - var_chaste_interface__IKs__C6 - var_chaste_interface__IKs__C7 - var_chaste_interface__IKs__C8 - var_chaste_interface__IKs__C9; - const double var_x247 = (-6.1702220000015831e-5 - 3.7021332000009499e-5 / var_x243) * mParameters[16]; - const double var_x248 = -var_x245 * var_x247; - const double var_x249 = 0.0016482105995215921 * var_x121; - const double var_x250 = var_x244 * var_x246 * var_x247; - const double var_x251 = sqrt(mParameters[4]); - const double var_x252 = var_x121 * var_x251; - const double var_x253 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__Vm - 6.3708927812613361 * var_x122); - const double var_x254 = 1 + var_x253; - const double var_x255 = 1 / var_x254; - const double var_x256 = exp(-2.4444678999999998 + 13.738155796237757 * var_x122 - 0.51429999999999998 * var_chaste_interface__membrane__Vm); - const double var_x257 = 1 + var_x256; - const double var_x258 = 1 / var_x257; - const double var_x259 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__Vm - 2.1455350448256207 * var_x122); - const double var_x260 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__Vm - 1.6494869150645177 * var_x122); - const double var_x261 = var_x260 + 0.49124000000000001 * var_x259; - const double var_x262 = var_x258 * var_x261; - const double var_x263 = 1 / (var_x262 + 1.02 * var_x255); - const double var_x264 = var_x255 * mParameters[12]; - const double var_x265 = var_x121 * var_x253 / pow(var_x254, 2); - const double var_x266 = var_x251 * (-var_x123 + var_chaste_interface__membrane__Vm); - const double var_x267 = 1 + 0.38461538461538458 * var_chaste_interface__Na__Na_i; - const double var_x268 = mParameters[18] * mParameters[4] / ((1 + exp(-3.444101282717841 - var_x142)) * (1.5 + mParameters[4])); - const double var_x269 = var_x268 * var_x89 / pow(var_x267, 3); - const double var_x270 = var_x268 * var_x50 / pow(var_x267, 4); - const double var_x271 = 3.299618375272375e-16 * var_x62; - const double var_x272 = 8.2490459381809375e-17 * var_x84; - const double var_x273 = 0.0016482105995215921 * var_x128; - const double var_x274 = 2.796426573043338e-15 * var_x84; + const double var_x198 = -9.9999999999999995e-7 + var_x194; + const double var_x199 = var_x184 * var_x195; + const double var_x200 = -0.99990000999900008 + var_x182; + const double var_x201 = -1 - var_x199; + const double var_x202 = var_x163 * var_chaste_interface__ICaL__O; + const double var_x203 = _lt_0_row[43]; + const double var_x204 = 0.059458391923439997 * var_x203; + const double var_x205 = _lt_0_row[44]; + const double var_x206 = 0.083986312199829993 * var_x205; + const double var_x207 = _lt_0_row[45]; + const double var_x208 = 0.0062346537747999999 * var_x207; + const double var_x209 = -var_x208; + const double var_x210 = 0.029729195961719999 * var_x203; + const double var_x211 = -var_x210; + const double var_x212 = _lt_0_row[46]; + const double var_x213 = 0.01460066118316 * var_x212; + const double var_x214 = 0.014864597980859999 * var_x203; + const double var_x215 = -var_x214; + const double var_x216 = -var_x206 - var_x213; + const double var_x217 = 0.16797262439965999 * var_x205; + const double var_x218 = 0.009351980662199999 * var_x207; + const double var_x219 = 0.02920132236632 * var_x212; + const double var_x220 = -var_x217 - var_x219; + const double var_x221 = 0.043801983549479999 * var_x212; + const double var_x222 = -var_x218; + const double var_x223 = 0.0124693075496 * var_x207; + const double var_x224 = _lt_0_row[38]; + const double var_x225 = 0.04459379394258 * var_x203; + const double var_x226 = -var_x225; + const double var_x227 = 0.0031173268874 * var_x207; + const double var_x228 = 0.25195893659948998 * var_x205; + const double var_x229 = -var_x221 - var_x228; + const double var_x230 = 0.33594524879931997 * var_x205; + const double var_x231 = 0.058402644732640001 * var_x212; + const double var_x232 = -var_x227; + const double var_x233 = _lt_0_row[47]; + const double var_x234 = 1 / var_x5; + const double var_x235 = pow(var_x234, 10); + const double var_x236 = 1 + 2.9619676669542428e-6 * var_x235; + const double var_x237 = var_x234 * var_x235 / pow(var_x236, 2); + const double var_x238 = var_x237 * (-1 + var_x3); + const double var_x239 = 1 / var_chaste_interface__Ca__Ca_JSR; + const double var_x240 = 1 + 0.0123 * var_x239; + const double var_x241 = 1 / var_x236; + const double var_x242 = 4.75 + 4.75 * var_x241; + const double var_x243 = pow(var_x239, 8); + const double var_x244 = 1 + var_x243; + const double var_x245 = mParameters[1] / var_x244; + const double var_x246 = var_x122 * var_x245; + const double var_x247 = var_x14 - var_x242 * var_x246; + const double var_x248 = var_x240 * var_x247 / pow((1 + var_x241), 2); + const double var_x249 = 1 / var_x242; + const double var_x250 = var_x240 * var_x249; + const double var_x251 = var_x246 * var_x250; + const double var_x252 = var_x240 * var_x245; + const double var_x253 = var_x237 * var_x9; + const double var_x254 = -var_x123 * var_x252; + const double var_x255 = 1 / var_chaste_interface__Ca__Ca_i; + const double var_x256 = pow(var_x255, 1.3999999999999999); + const double var_x257 = 1 + 6.4818210260626455e-7 * var_x256; + const double var_x258 = 1 / (0.018329999999999999 * var_chaste_interface__Na__Na_i + var_chaste_interface__K__K_i); + const double var_x259 = -26.712338705498265 * log(var_x258 * (0.018329999999999999 * mParameters[5] + mParameters[4])) + var_chaste_interface__membrane__Vm; + const double var_x260 = 1 - var_chaste_interface__IKs__C1 - var_chaste_interface__IKs__C10 - var_chaste_interface__IKs__C11 - var_chaste_interface__IKs__C12 - var_chaste_interface__IKs__C13 - var_chaste_interface__IKs__C14 - var_chaste_interface__IKs__C15 - var_chaste_interface__IKs__C2 - var_chaste_interface__IKs__C3 - var_chaste_interface__IKs__C4 - var_chaste_interface__IKs__C5 - var_chaste_interface__IKs__C6 - var_chaste_interface__IKs__C7 - var_chaste_interface__IKs__C8 - var_chaste_interface__IKs__C9; + const double var_x261 = (-6.1702220000015831e-5 - 3.7021332000009499e-5 / var_x257) * mParameters[16]; + const double var_x262 = -var_x259 * var_x261; + const double var_x263 = 0.0016482105995215921 * var_x133; + const double var_x264 = var_x258 * var_x260 * var_x261; + const double var_x265 = sqrt(mParameters[4]); + const double var_x266 = var_x133 * var_x265; + const double var_x267 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__Vm - 6.3708927812613361 * var_x134); + const double var_x268 = 1 + var_x267; + const double var_x269 = 1 / var_x268; + const double var_x270 = exp(-2.4444678999999998 + 13.738155796237757 * var_x134 - 0.51429999999999998 * var_chaste_interface__membrane__Vm); + const double var_x271 = 1 + var_x270; + const double var_x272 = 1 / var_x271; + const double var_x273 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__Vm - 2.1455350448256207 * var_x134); + const double var_x274 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__Vm - 1.6494869150645177 * var_x134); + const double var_x275 = var_x274 + 0.49124000000000001 * var_x273; + const double var_x276 = var_x272 * var_x275; + const double var_x277 = 1 / (var_x276 + 1.02 * var_x269); + const double var_x278 = var_x269 * mParameters[12]; + const double var_x279 = var_x133 * var_x267 / pow(var_x268, 2); + const double var_x280 = var_x265 * (-var_x135 + var_chaste_interface__membrane__Vm); + const double var_x281 = 1 + 0.38461538461538458 * var_chaste_interface__Na__Na_i; + const double var_x282 = mParameters[18] * mParameters[4] / ((1 + exp(-3.444101282717841 - var_x156)) * (1.5 + mParameters[4])); + const double var_x283 = var_x282 * var_x97 / pow(var_x281, 3); + const double var_x284 = var_x282 * var_x58 / pow(var_x281, 4); + const double var_x285 = 3.299618375272375e-16 * var_x70; + const double var_x286 = 8.2490459381809375e-17 * var_x92; + const double var_x287 = 0.0096484999999999991 * mParameters[9]; + const double var_x288 = var_x287 * var_x45 * var_x46; + const double var_x289 = 0.0016482105995215921 * var_x140; + const double var_x290 = 2.796426573043338e-15 * var_x92; rJacobian[0][0] = 1.0 - (mDt * (-0.00068000000000000005 - var_x5 * var_x6 + var_x0 * var_x6 * var_x7)); @@ -1646,9 +1662,9 @@ std::shared_ptr Celldeck rJacobian[3][0] = -(mDt * (var_x38 * (-0.081415929203539822 * var_x24 - 0.081415929203539822 * var_x27))); rJacobian[3][1] = 0.0; rJacobian[3][2] = -(mDt * (var_x37 * var_x39)); - rJacobian[3][3] = 1.0 - (mDt * (var_x38 * (-0.14749262536873156 - var_x46 - var_x47 + 0.081415929203539822 * var_x26 + 1.5425555000003961e-12 * var_x66 - 3.0851110000007915e-5 * ((var_x41) ? (192969.99035162965 * mParameters[7] + var_x40 * mParameters[7]) : (var_x42 * var_x44)) + var_x49 * var_x63 + var_x35 * var_x45 * var_chaste_interface__Ca__Ca_i - var_x56 * var_x67 * var_x68) + (0.00023800000000000004 / pow(var_x33, 3) + 7.0000000000000007e-5 / pow(var_x34, 3)) * (0.14749262536873156 * var_chaste_interface__Ca__Ca_ss_sr + 1.2340444000003168e-5 * var_x83 - 0.14749262536873156 * var_chaste_interface__Ca__Ca_i - 3.0851110000007915e-5 * ((var_x41) ? (var_x70 + var_x71 * (-var_x70 + 192969.99035031584 * (var_x69 + 1.0000001000000049 * var_chaste_interface__Ca__Ca_i) * mParameters[7])) : (var_x44 * (var_x69 + var_x72 * var_chaste_interface__Ca__Ca_i))) + var_x39 * var_chaste_interface__Ca__Ca_NSR + var_x61 * var_x67 - var_x46 * var_chaste_interface__Ca__Ca_i - var_x47 * var_chaste_interface__Ca__Ca_i) / pow(var_x36, 2))); + rJacobian[3][3] = 1.0 - (mDt * (var_x38 * (-0.14749262536873156 - var_x54 - var_x55 + 0.081415929203539822 * var_x26 + 1.5425555000003961e-12 * var_x74 - 3.0851110000007915e-5 * ((var_x49) ? (-var_x48 + var_x40 * (var_x48 + var_x41 * var_x44)) : (var_x50 * var_x52)) + var_x57 * var_x71 + var_x35 * var_x53 * var_chaste_interface__Ca__Ca_i - var_x64 * var_x75 * var_x76) + (0.00023800000000000004 / pow(var_x33, 3) + 7.0000000000000007e-5 / pow(var_x34, 3)) * (0.14749262536873156 * var_chaste_interface__Ca__Ca_ss_sr + 1.2340444000003168e-5 * var_x91 - 0.14749262536873156 * var_chaste_interface__Ca__Ca_i - 3.0851110000007915e-5 * ((var_x49) ? (-var_x79 + var_x80 * (var_x79 + var_x41 * var_x43 * (var_x77 + var_x42 * var_x78))) : (var_x52 * (var_x77 + var_x50 * var_x78))) + var_x39 * var_chaste_interface__Ca__Ca_NSR + var_x69 * var_x75 - var_x54 * var_chaste_interface__Ca__Ca_i - var_x55 * var_chaste_interface__Ca__Ca_i) / pow(var_x36, 2))); rJacobian[3][4] = 0.0; - rJacobian[3][5] = -(mDt * (var_x38 * (0.14749262536873156 + 3.8563887500009902e-13 * var_x87 - 1.2340444000003168e-5 * var_x88 - 0.081415929203539822 * var_x31 - 0.081415929203539822 * var_x32 + var_x49 * var_x85))); + rJacobian[3][5] = -(mDt * (var_x38 * (0.14749262536873156 + 3.8563887500009902e-13 * var_x95 - 1.2340444000003168e-5 * var_x96 - 0.081415929203539822 * var_x31 - 0.081415929203539822 * var_x32 + var_x57 * var_x93))); rJacobian[3][6] = 0.0; rJacobian[3][7] = 0.0; rJacobian[3][8] = 0.0; @@ -1676,23 +1692,23 @@ std::shared_ptr Celldeck rJacobian[3][30] = 0.0; rJacobian[3][31] = 0.0; rJacobian[3][32] = 0.0; - rJacobian[3][33] = -(mDt * (var_x38 * (var_x63 * var_x92 + var_x94 * var_x96))); - rJacobian[3][34] = -(mDt * (var_x38 * (3.7021332000009505e-5 * var_x99 + var_x85 * var_x98))); + rJacobian[3][33] = -(mDt * (var_x38 * (var_x100 * var_x71 + var_x102 * var_x104))); + rJacobian[3][34] = -(mDt * (var_x38 * (3.7021332000009505e-5 * var_x107 + var_x106 * var_x93))); rJacobian[4][0] = 0.0; rJacobian[4][1] = 0.0; rJacobian[4][2] = 0.0; rJacobian[4][3] = 0.0; - rJacobian[4][4] = 1.0 - (mDt * (-var_x103 * (5 + 0.010458526290002684 * var_x106) - (0.019557600000000001 / pow(var_x100, 3) + 8.1780000000000006e-5 / pow(var_x101, 3)) * (5 * var_chaste_interface__Ca__Ca_ss_CaL + 0.010458526290002684 * var_x110 - 5 * var_chaste_interface__Ca__Ca_ss_sr) / pow(var_x102, 2))); - rJacobian[4][5] = -(mDt * (5 * var_x103)); + rJacobian[4][4] = 1.0 - (mDt * (-var_x111 * (5 + 0.010458526290002684 * var_x117) - (0.019557600000000001 / pow(var_x108, 3) + 8.1780000000000006e-5 / pow(var_x109, 3)) * (5 * var_chaste_interface__Ca__Ca_ss_CaL + 0.010458526290002684 * var_x122 - 5 * var_chaste_interface__Ca__Ca_ss_sr) / pow(var_x110, 2))); + rJacobian[4][5] = -(mDt * (5 * var_x111)); rJacobian[4][6] = 0.0; rJacobian[4][7] = 0.0; rJacobian[4][8] = 0.0; rJacobian[4][9] = 0.0; rJacobian[4][10] = 0.0; rJacobian[4][11] = 0.0; - rJacobian[4][12] = -(mDt * (var_x112)); + rJacobian[4][12] = -(mDt * (var_x124)); rJacobian[4][13] = 0.0; - rJacobian[4][14] = -(mDt * (var_x112)); + rJacobian[4][14] = -(mDt * (var_x124)); rJacobian[4][15] = 0.0; rJacobian[4][16] = 0.0; rJacobian[4][17] = 0.0; @@ -1716,9 +1732,9 @@ std::shared_ptr Celldeck rJacobian[5][0] = 0.0; rJacobian[5][1] = 0.0; rJacobian[5][2] = 0.0; - rJacobian[5][3] = -(mDt * (5 * var_x116)); - rJacobian[5][4] = -(mDt * (0.5 * var_x116)); - rJacobian[5][5] = 1.0 - (mDt * (-var_x118 * (5.5 + 0.0004183410516001074 * var_x88 - 1.3073157862503357e-11 * var_x87 - var_x117 * var_x49) - (0.019557600000000001 / pow(var_x113, 3) + 8.1780000000000006e-5 / pow(var_x114, 3)) * (5.5 * var_chaste_interface__Ca__Ca_ss_sr - 0.5 * var_chaste_interface__Ca__Ca_ss_CaL - 0.23999999999999996 * var_chaste_interface__Irel__Irel - 5 * var_chaste_interface__Ca__Ca_i - 0.0004183410516001074 * var_x83) / pow(var_x115, 2))); + rJacobian[5][3] = -(mDt * (5 * var_x128)); + rJacobian[5][4] = -(mDt * (0.5 * var_x128)); + rJacobian[5][5] = 1.0 - (mDt * (-var_x130 * (5.5 + 0.0004183410516001074 * var_x96 - 1.3073157862503357e-11 * var_x95 - var_x129 * var_x57) - (0.019557600000000001 / pow(var_x125, 3) + 8.1780000000000006e-5 / pow(var_x126, 3)) * (5.5 * var_chaste_interface__Ca__Ca_ss_sr - 0.5 * var_chaste_interface__Ca__Ca_ss_CaL - 0.23999999999999996 * var_chaste_interface__Irel__Irel - 5 * var_chaste_interface__Ca__Ca_i - 0.0004183410516001074 * var_x91) / pow(var_x127, 2))); rJacobian[5][6] = 0.0; rJacobian[5][7] = 0.0; rJacobian[5][8] = 0.0; @@ -1744,17 +1760,17 @@ std::shared_ptr Celldeck rJacobian[5][28] = 0.0; rJacobian[5][29] = 0.0; rJacobian[5][30] = 0.0; - rJacobian[5][31] = -(mDt * (0.23999999999999996 * var_x116)); + rJacobian[5][31] = -(mDt * (0.23999999999999996 * var_x128)); rJacobian[5][32] = 0.0; rJacobian[5][33] = 0.0; - rJacobian[5][34] = -(mDt * (-var_x118 * (-0.0012550231548003222 * var_x99 - var_x117 * var_x98))); + rJacobian[5][34] = -(mDt * (-var_x130 * (-0.0012550231548003222 * var_x107 - var_x106 * var_x129))); rJacobian[6][0] = 0.0; rJacobian[6][1] = 0.0; rJacobian[6][2] = 0.0; rJacobian[6][3] = 0.0; rJacobian[6][4] = 0.0; rJacobian[6][5] = 0.0; - rJacobian[6][6] = 1.0 - (mDt * (-0.14749262536873156 + var_x127 + var_x133 - 0.0016482105995215921 * var_x119 * mParameters[8])); + rJacobian[6][6] = 1.0 - (mDt * (-0.14749262536873156 + var_x139 + var_x145 - 0.0016482105995215921 * var_x131 * mParameters[8])); rJacobian[6][7] = -(mDt * (0.14749262536873156)); rJacobian[6][8] = 0.0; rJacobian[6][9] = 0.0; @@ -1780,8 +1796,8 @@ std::shared_ptr Celldeck rJacobian[6][29] = 0.0; rJacobian[6][30] = 0.0; rJacobian[6][31] = 0.0; - rJacobian[6][32] = -(mDt * (var_x134)); - rJacobian[6][33] = -(mDt * (var_x135)); + rJacobian[6][32] = -(mDt * (var_x146)); + rJacobian[6][33] = -(mDt * (var_x147)); rJacobian[6][34] = 0.0; rJacobian[7][0] = 0.0; rJacobian[7][1] = 0.0; @@ -1789,7 +1805,7 @@ std::shared_ptr Celldeck rJacobian[7][3] = 0.0; rJacobian[7][4] = 0.0; rJacobian[7][5] = 0.0; - rJacobian[7][6] = -(mDt * (5 + 0.0020917052580005369 * ((var_x140) ? (var_x139 * (-var_x136 + 0.0096491569073577921 * var_x137 * mParameters[19])) : (var_x139 * var_x141 * var_x144)))); + rJacobian[7][6] = -(mDt * (5 + 0.0020917052580005369 * ((var_x154) ? (var_x153 * (-var_x151 + var_x148 * (var_x150 + var_x151))) : (var_x153 * var_x155 * var_x158)))); rJacobian[7][7] = 1.0 - (mDt * (-5)); rJacobian[7][8] = 0.0; rJacobian[7][9] = 0.0; @@ -1814,7 +1830,7 @@ std::shared_ptr Celldeck rJacobian[7][28] = 0.0; rJacobian[7][29] = 0.0; rJacobian[7][30] = 0.0; - rJacobian[7][31] = -(mDt * (0.0020917052580005369 * ((var_x140) ? (0.32000000000000006 * var_x146 * (-var_x145 + 187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (var_x145 - 96484.995175157921 * (-100.0000100000005 + var_chaste_interface__Cl__Cl_i) * mParameters[19]))) : (1155.8403904801075 * var_x144 * var_x146 * (-100 * var_x143 + var_chaste_interface__Cl__Cl_i) * var_chaste_interface__membrane__Vm)))); + rJacobian[7][31] = -(mDt * (0.0020917052580005369 * ((var_x154) ? (0.32000000000000006 * var_x160 * (-var_x159 + 187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (var_x159 + var_x150 * (-100 * var_x42 + var_chaste_interface__Cl__Cl_i)))) : (1155.8403904801075 * var_x158 * var_x160 * (-100 * var_x157 + var_chaste_interface__Cl__Cl_i) * var_chaste_interface__membrane__Vm)))); rJacobian[7][32] = 0.0; rJacobian[7][33] = 0.0; rJacobian[7][34] = 0.0; @@ -1822,15 +1838,15 @@ std::shared_ptr Celldeck rJacobian[8][1] = 0.0; rJacobian[8][2] = 0.0; rJacobian[8][3] = 0.0; - rJacobian[8][4] = -(mDt * (-var_x150)); + rJacobian[8][4] = -(mDt * (-var_x164)); rJacobian[8][5] = 0.0; rJacobian[8][6] = 0.0; rJacobian[8][7] = 0.0; - rJacobian[8][8] = 1.0 - (mDt * (var_x154 + var_x164)); - rJacobian[8][9] = -(mDt * (var_x166)); + rJacobian[8][8] = 1.0 - (mDt * (var_x168 + var_x178)); + rJacobian[8][9] = -(mDt * (var_x180)); rJacobian[8][10] = 0.0; rJacobian[8][11] = -(mDt * (1)); - rJacobian[8][12] = -(mDt * (var_x167)); + rJacobian[8][12] = -(mDt * (var_x181)); rJacobian[8][13] = 0.0; rJacobian[8][14] = 0.0; rJacobian[8][15] = 0.0; @@ -1857,16 +1873,16 @@ std::shared_ptr Celldeck rJacobian[9][1] = 0.0; rJacobian[9][2] = 0.0; rJacobian[9][3] = 0.0; - rJacobian[9][4] = -(mDt * (-var_x174)); + rJacobian[9][4] = -(mDt * (-var_x188)); rJacobian[9][5] = 0.0; rJacobian[9][6] = 0.0; rJacobian[9][7] = 0.0; - rJacobian[9][8] = -(mDt * (var_x163)); - rJacobian[9][9] = 1.0 - (mDt * (var_x154 + var_x176)); + rJacobian[9][8] = -(mDt * (var_x177)); + rJacobian[9][9] = 1.0 - (mDt * (var_x168 + var_x190)); rJacobian[9][10] = -(mDt * (9.9999999999999995e-7)); rJacobian[9][11] = 0.0; rJacobian[9][12] = 0.0; - rJacobian[9][13] = -(mDt * (var_x167)); + rJacobian[9][13] = -(mDt * (var_x181)); rJacobian[9][14] = 0.0; rJacobian[9][15] = 0.0; rJacobian[9][16] = 0.0; @@ -1892,17 +1908,17 @@ std::shared_ptr Celldeck rJacobian[10][1] = 0.0; rJacobian[10][2] = 0.0; rJacobian[10][3] = 0.0; - rJacobian[10][4] = -(mDt * (var_x174 + var_x170 * var_x178 + var_x179 * (-9.9990000999900015e-5 + var_x169))); + rJacobian[10][4] = -(mDt * (var_x188 + var_x184 * var_x192 + var_x193 * (-9.9990000999900015e-5 + var_x183))); rJacobian[10][5] = 0.0; rJacobian[10][6] = 0.0; rJacobian[10][7] = 0.0; - rJacobian[10][8] = -(mDt * (var_x180)); - rJacobian[10][9] = -(mDt * (var_x175 + var_x180)); - rJacobian[10][10] = 1.0 - (mDt * (var_x154 + var_x183 + var_x184)); - rJacobian[10][11] = -(mDt * (var_x180 + var_x185)); - rJacobian[10][12] = -(mDt * (var_x180)); - rJacobian[10][13] = -(mDt * (var_x180)); - rJacobian[10][14] = -(mDt * (var_x180)); + rJacobian[10][8] = -(mDt * (var_x194)); + rJacobian[10][9] = -(mDt * (var_x189 + var_x194)); + rJacobian[10][10] = 1.0 - (mDt * (var_x168 + var_x197 + var_x198)); + rJacobian[10][11] = -(mDt * (var_x194 + var_x199)); + rJacobian[10][12] = -(mDt * (var_x194)); + rJacobian[10][13] = -(mDt * (var_x194)); + rJacobian[10][14] = -(mDt * (var_x194)); rJacobian[10][15] = 0.0; rJacobian[10][16] = 0.0; rJacobian[10][17] = 0.0; @@ -1927,17 +1943,17 @@ std::shared_ptr Celldeck rJacobian[11][1] = 0.0; rJacobian[11][2] = 0.0; rJacobian[11][3] = 0.0; - rJacobian[11][4] = -(mDt * (var_x150 + var_x171 * var_x179 + var_x178 * var_x186)); + rJacobian[11][4] = -(mDt * (var_x164 + var_x185 * var_x193 + var_x192 * var_x200)); rJacobian[11][5] = 0.0; rJacobian[11][6] = 0.0; rJacobian[11][7] = 0.0; - rJacobian[11][8] = -(mDt * (var_x156)); + rJacobian[11][8] = -(mDt * (var_x170)); rJacobian[11][9] = 0.0; - rJacobian[11][10] = -(mDt * (var_x182)); - rJacobian[11][11] = 1.0 - (mDt * (var_x154 + var_x187)); + rJacobian[11][10] = -(mDt * (var_x196)); + rJacobian[11][11] = 1.0 - (mDt * (var_x168 + var_x201)); rJacobian[11][12] = 0.0; rJacobian[11][13] = 0.0; - rJacobian[11][14] = -(mDt * (var_x167)); + rJacobian[11][14] = -(mDt * (var_x181)); rJacobian[11][15] = 0.0; rJacobian[11][16] = 0.0; rJacobian[11][17] = 0.0; @@ -1962,16 +1978,16 @@ std::shared_ptr Celldeck rJacobian[12][1] = 0.0; rJacobian[12][2] = 0.0; rJacobian[12][3] = 0.0; - rJacobian[12][4] = -(mDt * (-var_x188)); + rJacobian[12][4] = -(mDt * (-var_x202)); rJacobian[12][5] = 0.0; rJacobian[12][6] = 0.0; rJacobian[12][7] = 0.0; - rJacobian[12][8] = -(mDt * (var_x153)); + rJacobian[12][8] = -(mDt * (var_x167)); rJacobian[12][9] = 0.0; rJacobian[12][10] = 0.0; rJacobian[12][11] = 0.0; - rJacobian[12][12] = 1.0 - (mDt * (var_x164 + var_x180)); - rJacobian[12][13] = -(mDt * (var_x166)); + rJacobian[12][12] = 1.0 - (mDt * (var_x178 + var_x194)); + rJacobian[12][13] = -(mDt * (var_x180)); rJacobian[12][14] = -(mDt * (1)); rJacobian[12][15] = 0.0; rJacobian[12][16] = 0.0; @@ -1997,16 +2013,16 @@ std::shared_ptr Celldeck rJacobian[13][1] = 0.0; rJacobian[13][2] = 0.0; rJacobian[13][3] = 0.0; - rJacobian[13][4] = -(mDt * (-var_x173 * var_chaste_interface__ICaL__OI)); + rJacobian[13][4] = -(mDt * (-var_x187 * var_chaste_interface__ICaL__OI)); rJacobian[13][5] = 0.0; rJacobian[13][6] = 0.0; rJacobian[13][7] = 0.0; rJacobian[13][8] = -(mDt * (-9.9999999999999995e-7)); - rJacobian[13][9] = -(mDt * (-9.9999999999999995e-7 + var_x153)); + rJacobian[13][9] = -(mDt * (-9.9999999999999995e-7 + var_x167)); rJacobian[13][10] = -(mDt * (-9.9999999999999995e-7)); rJacobian[13][11] = -(mDt * (-9.9999999999999995e-7)); - rJacobian[13][12] = -(mDt * (-9.9999999999999995e-7 + var_x163)); - rJacobian[13][13] = 1.0 - (mDt * (var_x176 + var_x184)); + rJacobian[13][12] = -(mDt * (-9.9999999999999995e-7 + var_x177)); + rJacobian[13][13] = 1.0 - (mDt * (var_x190 + var_x198)); rJacobian[13][14] = -(mDt * (-9.9999999999999995e-7)); rJacobian[13][15] = 0.0; rJacobian[13][16] = 0.0; @@ -2032,17 +2048,17 @@ std::shared_ptr Celldeck rJacobian[14][1] = 0.0; rJacobian[14][2] = 0.0; rJacobian[14][3] = 0.0; - rJacobian[14][4] = -(mDt * (var_x188 + var_x171 * var_x177 * (1 - var_chaste_interface__ICaL__C - var_chaste_interface__ICaL__CI - var_chaste_interface__ICaL__CI_star - var_chaste_interface__ICaL__C_star - var_chaste_interface__ICaL__O - var_chaste_interface__ICaL__OI - var_chaste_interface__ICaL__O_star) + var_x177 * var_x186 * var_chaste_interface__ICaL__O_star)); + rJacobian[14][4] = -(mDt * (var_x202 + var_x185 * var_x191 * (1 - var_chaste_interface__ICaL__C - var_chaste_interface__ICaL__CI - var_chaste_interface__ICaL__CI_star - var_chaste_interface__ICaL__C_star - var_chaste_interface__ICaL__O - var_chaste_interface__ICaL__OI - var_chaste_interface__ICaL__O_star) + var_x191 * var_x200 * var_chaste_interface__ICaL__O_star)); rJacobian[14][5] = 0.0; rJacobian[14][6] = 0.0; rJacobian[14][7] = 0.0; - rJacobian[14][8] = -(mDt * (var_x183)); - rJacobian[14][9] = -(mDt * (var_x183)); - rJacobian[14][10] = -(mDt * (var_x183)); - rJacobian[14][11] = -(mDt * (var_x153 + var_x183)); - rJacobian[14][12] = -(mDt * (var_x156 + var_x183)); - rJacobian[14][13] = -(mDt * (var_x183)); - rJacobian[14][14] = 1.0 - (mDt * (var_x180 + var_x183 + var_x187)); + rJacobian[14][8] = -(mDt * (var_x197)); + rJacobian[14][9] = -(mDt * (var_x197)); + rJacobian[14][10] = -(mDt * (var_x197)); + rJacobian[14][11] = -(mDt * (var_x167 + var_x197)); + rJacobian[14][12] = -(mDt * (var_x170 + var_x197)); + rJacobian[14][13] = -(mDt * (var_x197)); + rJacobian[14][14] = 1.0 - (mDt * (var_x194 + var_x197 + var_x201)); rJacobian[14][15] = 0.0; rJacobian[14][16] = 0.0; rJacobian[14][17] = 0.0; @@ -2078,14 +2094,14 @@ std::shared_ptr Celldeck rJacobian[15][12] = 0.0; rJacobian[15][13] = 0.0; rJacobian[15][14] = 0.0; - rJacobian[15][15] = 1.0 - (mDt * (-var_x190)); + rJacobian[15][15] = 1.0 - (mDt * (-var_x204)); rJacobian[15][16] = 0.0; rJacobian[15][17] = 0.0; rJacobian[15][18] = 0.0; rJacobian[15][19] = 0.0; rJacobian[15][20] = 0.0; rJacobian[15][21] = 0.0; - rJacobian[15][22] = -(mDt * (var_x192)); + rJacobian[15][22] = -(mDt * (var_x206)); rJacobian[15][23] = 0.0; rJacobian[15][24] = 0.0; rJacobian[15][25] = 0.0; @@ -2114,8 +2130,8 @@ std::shared_ptr Celldeck rJacobian[16][13] = 0.0; rJacobian[16][14] = 0.0; rJacobian[16][15] = 0.0; - rJacobian[16][16] = 1.0 - (mDt * (var_x195 + var_x197)); - rJacobian[16][17] = -(mDt * (var_x192)); + rJacobian[16][16] = 1.0 - (mDt * (var_x209 + var_x211)); + rJacobian[16][17] = -(mDt * (var_x206)); rJacobian[16][18] = 0.0; rJacobian[16][19] = 0.0; rJacobian[16][20] = 0.0; @@ -2125,7 +2141,7 @@ std::shared_ptr Celldeck rJacobian[16][24] = 0.0; rJacobian[16][25] = 0.0; rJacobian[16][26] = 0.0; - rJacobian[16][27] = -(mDt * (var_x199)); + rJacobian[16][27] = -(mDt * (var_x213)); rJacobian[16][28] = 0.0; rJacobian[16][29] = 0.0; rJacobian[16][30] = 0.0; @@ -2149,10 +2165,10 @@ std::shared_ptr Celldeck rJacobian[17][13] = 0.0; rJacobian[17][14] = 0.0; rJacobian[17][15] = 0.0; - rJacobian[17][16] = -(mDt * (var_x196)); - rJacobian[17][17] = 1.0 - (mDt * (var_x195 + var_x201 + var_x202)); - rJacobian[17][18] = -(mDt * (var_x203)); - rJacobian[17][19] = -(mDt * (var_x204)); + rJacobian[17][16] = -(mDt * (var_x210)); + rJacobian[17][17] = 1.0 - (mDt * (var_x209 + var_x215 + var_x216)); + rJacobian[17][18] = -(mDt * (var_x217)); + rJacobian[17][19] = -(mDt * (var_x218)); rJacobian[17][20] = 0.0; rJacobian[17][21] = 0.0; rJacobian[17][22] = 0.0; @@ -2161,7 +2177,7 @@ std::shared_ptr Celldeck rJacobian[17][25] = 0.0; rJacobian[17][26] = 0.0; rJacobian[17][27] = 0.0; - rJacobian[17][28] = -(mDt * (var_x205)); + rJacobian[17][28] = -(mDt * (var_x219)); rJacobian[17][29] = 0.0; rJacobian[17][30] = 0.0; rJacobian[17][31] = 0.0; @@ -2185,10 +2201,10 @@ std::shared_ptr Celldeck rJacobian[18][14] = 0.0; rJacobian[18][15] = 0.0; rJacobian[18][16] = 0.0; - rJacobian[18][17] = -(mDt * (var_x200)); - rJacobian[18][18] = 1.0 - (mDt * (var_x195 + var_x206)); + rJacobian[18][17] = -(mDt * (var_x214)); + rJacobian[18][18] = 1.0 - (mDt * (var_x209 + var_x220)); rJacobian[18][19] = 0.0; - rJacobian[18][20] = -(mDt * (var_x204)); + rJacobian[18][20] = -(mDt * (var_x218)); rJacobian[18][21] = 0.0; rJacobian[18][22] = 0.0; rJacobian[18][23] = 0.0; @@ -2197,7 +2213,7 @@ std::shared_ptr Celldeck rJacobian[18][26] = 0.0; rJacobian[18][27] = 0.0; rJacobian[18][28] = 0.0; - rJacobian[18][29] = -(mDt * (var_x207)); + rJacobian[18][29] = -(mDt * (var_x221)); rJacobian[18][30] = 0.0; rJacobian[18][31] = 0.0; rJacobian[18][32] = 0.0; @@ -2220,10 +2236,10 @@ std::shared_ptr Celldeck rJacobian[19][14] = 0.0; rJacobian[19][15] = 0.0; rJacobian[19][16] = 0.0; - rJacobian[19][17] = -(mDt * (var_x199)); + rJacobian[19][17] = -(mDt * (var_x213)); rJacobian[19][18] = 0.0; - rJacobian[19][19] = 1.0 - (mDt * (var_x201 + var_x208)); - rJacobian[19][20] = -(mDt * (var_x192)); + rJacobian[19][19] = 1.0 - (mDt * (var_x215 + var_x222)); + rJacobian[19][20] = -(mDt * (var_x206)); rJacobian[19][21] = 0.0; rJacobian[19][22] = 0.0; rJacobian[19][23] = 0.0; @@ -2256,10 +2272,10 @@ std::shared_ptr Celldeck rJacobian[20][15] = 0.0; rJacobian[20][16] = 0.0; rJacobian[20][17] = 0.0; - rJacobian[20][18] = -(mDt * (var_x205)); - rJacobian[20][19] = -(mDt * (var_x200)); - rJacobian[20][20] = 1.0 - (mDt * (var_x202 + var_x208)); - rJacobian[20][21] = -(mDt * (var_x209)); + rJacobian[20][18] = -(mDt * (var_x219)); + rJacobian[20][19] = -(mDt * (var_x214)); + rJacobian[20][20] = 1.0 - (mDt * (var_x216 + var_x222)); + rJacobian[20][21] = -(mDt * (var_x223)); rJacobian[20][22] = 0.0; rJacobian[20][23] = 0.0; rJacobian[20][24] = 0.0; @@ -2293,8 +2309,8 @@ std::shared_ptr Celldeck rJacobian[21][17] = 0.0; rJacobian[21][18] = 0.0; rJacobian[21][19] = 0.0; - rJacobian[21][20] = -(mDt * (var_x199)); - rJacobian[21][21] = 1.0 - (mDt * (-0.089538306411019994 - var_x209)); + rJacobian[21][20] = -(mDt * (var_x213)); + rJacobian[21][21] = 1.0 - (mDt * (-0.089538306411019994 - var_x223)); rJacobian[21][22] = 0.0; rJacobian[21][23] = 0.0; rJacobian[21][24] = 0.0; @@ -2303,7 +2319,7 @@ std::shared_ptr Celldeck rJacobian[21][27] = 0.0; rJacobian[21][28] = 0.0; rJacobian[21][29] = 0.0; - rJacobian[21][30] = -(mDt * (var_x210)); + rJacobian[21][30] = -(mDt * (var_x224)); rJacobian[21][31] = 0.0; rJacobian[21][32] = 0.0; rJacobian[21][33] = 0.0; @@ -2323,18 +2339,18 @@ std::shared_ptr Celldeck rJacobian[22][12] = 0.0; rJacobian[22][13] = 0.0; rJacobian[22][14] = 0.0; - rJacobian[22][15] = -(mDt * (var_x190)); + rJacobian[22][15] = -(mDt * (var_x204)); rJacobian[22][16] = 0.0; rJacobian[22][17] = 0.0; rJacobian[22][18] = 0.0; rJacobian[22][19] = 0.0; rJacobian[22][20] = 0.0; rJacobian[22][21] = 0.0; - rJacobian[22][22] = 1.0 - (mDt * (var_x202 + var_x212)); - rJacobian[22][23] = -(mDt * (var_x203)); + rJacobian[22][22] = 1.0 - (mDt * (var_x216 + var_x226)); + rJacobian[22][23] = -(mDt * (var_x217)); rJacobian[22][24] = 0.0; rJacobian[22][25] = 0.0; - rJacobian[22][26] = -(mDt * (var_x213)); + rJacobian[22][26] = -(mDt * (var_x227)); rJacobian[22][27] = 0.0; rJacobian[22][28] = 0.0; rJacobian[22][29] = 0.0; @@ -2365,12 +2381,12 @@ std::shared_ptr Celldeck rJacobian[23][19] = 0.0; rJacobian[23][20] = 0.0; rJacobian[23][21] = 0.0; - rJacobian[23][22] = -(mDt * (var_x211)); - rJacobian[23][23] = 1.0 - (mDt * (var_x197 + var_x206)); - rJacobian[23][24] = -(mDt * (var_x214)); + rJacobian[23][22] = -(mDt * (var_x225)); + rJacobian[23][23] = 1.0 - (mDt * (var_x211 + var_x220)); + rJacobian[23][24] = -(mDt * (var_x228)); rJacobian[23][25] = 0.0; rJacobian[23][26] = 0.0; - rJacobian[23][27] = -(mDt * (var_x213)); + rJacobian[23][27] = -(mDt * (var_x227)); rJacobian[23][28] = 0.0; rJacobian[23][29] = 0.0; rJacobian[23][30] = 0.0; @@ -2401,12 +2417,12 @@ std::shared_ptr Celldeck rJacobian[24][20] = 0.0; rJacobian[24][21] = 0.0; rJacobian[24][22] = 0.0; - rJacobian[24][23] = -(mDt * (var_x196)); - rJacobian[24][24] = 1.0 - (mDt * (var_x201 + var_x215)); - rJacobian[24][25] = -(mDt * (var_x216)); + rJacobian[24][23] = -(mDt * (var_x210)); + rJacobian[24][24] = 1.0 - (mDt * (var_x215 + var_x229)); + rJacobian[24][25] = -(mDt * (var_x230)); rJacobian[24][26] = 0.0; rJacobian[24][27] = 0.0; - rJacobian[24][28] = -(mDt * (var_x213)); + rJacobian[24][28] = -(mDt * (var_x227)); rJacobian[24][29] = 0.0; rJacobian[24][30] = 0.0; rJacobian[24][31] = 0.0; @@ -2437,12 +2453,12 @@ std::shared_ptr Celldeck rJacobian[25][21] = 0.0; rJacobian[25][22] = 0.0; rJacobian[25][23] = 0.0; - rJacobian[25][24] = -(mDt * (var_x200)); - rJacobian[25][25] = 1.0 - (mDt * (-var_x216 - var_x217)); + rJacobian[25][24] = -(mDt * (var_x214)); + rJacobian[25][25] = 1.0 - (mDt * (-var_x230 - var_x231)); rJacobian[25][26] = 0.0; rJacobian[25][27] = 0.0; rJacobian[25][28] = 0.0; - rJacobian[25][29] = -(mDt * (var_x213)); + rJacobian[25][29] = -(mDt * (var_x227)); rJacobian[25][30] = 0.0; rJacobian[25][31] = 0.0; rJacobian[25][32] = 0.0; @@ -2470,12 +2486,12 @@ std::shared_ptr Celldeck rJacobian[26][19] = 0.0; rJacobian[26][20] = 0.0; rJacobian[26][21] = 0.0; - rJacobian[26][22] = -(mDt * (var_x199)); + rJacobian[26][22] = -(mDt * (var_x213)); rJacobian[26][23] = 0.0; rJacobian[26][24] = 0.0; rJacobian[26][25] = 0.0; - rJacobian[26][26] = 1.0 - (mDt * (var_x212 + var_x218)); - rJacobian[26][27] = -(mDt * (var_x192)); + rJacobian[26][26] = 1.0 - (mDt * (var_x226 + var_x232)); + rJacobian[26][27] = -(mDt * (var_x206)); rJacobian[26][28] = 0.0; rJacobian[26][29] = 0.0; rJacobian[26][30] = 0.0; @@ -2499,19 +2515,19 @@ std::shared_ptr Celldeck rJacobian[27][13] = 0.0; rJacobian[27][14] = 0.0; rJacobian[27][15] = 0.0; - rJacobian[27][16] = -(mDt * (var_x194)); + rJacobian[27][16] = -(mDt * (var_x208)); rJacobian[27][17] = 0.0; rJacobian[27][18] = 0.0; rJacobian[27][19] = 0.0; rJacobian[27][20] = 0.0; rJacobian[27][21] = 0.0; rJacobian[27][22] = 0.0; - rJacobian[27][23] = -(mDt * (var_x205)); + rJacobian[27][23] = -(mDt * (var_x219)); rJacobian[27][24] = 0.0; rJacobian[27][25] = 0.0; - rJacobian[27][26] = -(mDt * (var_x211)); - rJacobian[27][27] = 1.0 - (mDt * (var_x197 + var_x202 + var_x218)); - rJacobian[27][28] = -(mDt * (var_x203)); + rJacobian[27][26] = -(mDt * (var_x225)); + rJacobian[27][27] = 1.0 - (mDt * (var_x211 + var_x216 + var_x232)); + rJacobian[27][28] = -(mDt * (var_x217)); rJacobian[27][29] = 0.0; rJacobian[27][30] = 0.0; rJacobian[27][31] = 0.0; @@ -2535,19 +2551,19 @@ std::shared_ptr Celldeck rJacobian[28][14] = 0.0; rJacobian[28][15] = 0.0; rJacobian[28][16] = 0.0; - rJacobian[28][17] = -(mDt * (var_x194)); + rJacobian[28][17] = -(mDt * (var_x208)); rJacobian[28][18] = 0.0; rJacobian[28][19] = 0.0; rJacobian[28][20] = 0.0; rJacobian[28][21] = 0.0; rJacobian[28][22] = 0.0; rJacobian[28][23] = 0.0; - rJacobian[28][24] = -(mDt * (var_x207)); + rJacobian[28][24] = -(mDt * (var_x221)); rJacobian[28][25] = 0.0; rJacobian[28][26] = 0.0; - rJacobian[28][27] = -(mDt * (var_x196)); - rJacobian[28][28] = 1.0 - (mDt * (var_x201 + var_x206 + var_x218)); - rJacobian[28][29] = -(mDt * (var_x214)); + rJacobian[28][27] = -(mDt * (var_x210)); + rJacobian[28][28] = 1.0 - (mDt * (var_x215 + var_x220 + var_x232)); + rJacobian[28][29] = -(mDt * (var_x228)); rJacobian[28][30] = 0.0; rJacobian[28][31] = 0.0; rJacobian[28][32] = 0.0; @@ -2571,18 +2587,18 @@ std::shared_ptr Celldeck rJacobian[29][15] = 0.0; rJacobian[29][16] = 0.0; rJacobian[29][17] = 0.0; - rJacobian[29][18] = -(mDt * (var_x194)); + rJacobian[29][18] = -(mDt * (var_x208)); rJacobian[29][19] = 0.0; rJacobian[29][20] = 0.0; rJacobian[29][21] = 0.0; rJacobian[29][22] = 0.0; rJacobian[29][23] = 0.0; rJacobian[29][24] = 0.0; - rJacobian[29][25] = -(mDt * (var_x217)); + rJacobian[29][25] = -(mDt * (var_x231)); rJacobian[29][26] = 0.0; rJacobian[29][27] = 0.0; - rJacobian[29][28] = -(mDt * (var_x200)); - rJacobian[29][29] = 1.0 - (mDt * (var_x215 + var_x218)); + rJacobian[29][28] = -(mDt * (var_x214)); + rJacobian[29][29] = 1.0 - (mDt * (var_x229 + var_x232)); rJacobian[29][30] = 0.0; rJacobian[29][31] = 0.0; rJacobian[29][32] = 0.0; @@ -2603,41 +2619,41 @@ std::shared_ptr Celldeck rJacobian[30][12] = 0.0; rJacobian[30][13] = 0.0; rJacobian[30][14] = 0.0; - rJacobian[30][15] = -(mDt * (var_x219)); - rJacobian[30][16] = -(mDt * (var_x219)); - rJacobian[30][17] = -(mDt * (var_x219)); - rJacobian[30][18] = -(mDt * (var_x219)); - rJacobian[30][19] = -(mDt * (var_x219)); - rJacobian[30][20] = -(mDt * (var_x219)); - rJacobian[30][21] = -(mDt * (0.089538306411019994 + var_x219)); - rJacobian[30][22] = -(mDt * (var_x219)); - rJacobian[30][23] = -(mDt * (var_x219)); - rJacobian[30][24] = -(mDt * (var_x219)); - rJacobian[30][25] = -(mDt * (var_x219)); - rJacobian[30][26] = -(mDt * (var_x219)); - rJacobian[30][27] = -(mDt * (var_x219)); - rJacobian[30][28] = -(mDt * (var_x219)); - rJacobian[30][29] = -(mDt * (var_x219)); - rJacobian[30][30] = 1.0 - (mDt * (var_x219 - var_x210 + _lt_0_row[40])); + rJacobian[30][15] = -(mDt * (var_x233)); + rJacobian[30][16] = -(mDt * (var_x233)); + rJacobian[30][17] = -(mDt * (var_x233)); + rJacobian[30][18] = -(mDt * (var_x233)); + rJacobian[30][19] = -(mDt * (var_x233)); + rJacobian[30][20] = -(mDt * (var_x233)); + rJacobian[30][21] = -(mDt * (0.089538306411019994 + var_x233)); + rJacobian[30][22] = -(mDt * (var_x233)); + rJacobian[30][23] = -(mDt * (var_x233)); + rJacobian[30][24] = -(mDt * (var_x233)); + rJacobian[30][25] = -(mDt * (var_x233)); + rJacobian[30][26] = -(mDt * (var_x233)); + rJacobian[30][27] = -(mDt * (var_x233)); + rJacobian[30][28] = -(mDt * (var_x233)); + rJacobian[30][29] = -(mDt * (var_x233)); + rJacobian[30][30] = 1.0 - (mDt * (var_x233 - var_x224 + _lt_0_row[40])); rJacobian[30][31] = 0.0; rJacobian[30][32] = 0.0; rJacobian[30][33] = 0.0; rJacobian[30][34] = 0.0; - rJacobian[31][0] = -(mDt * (6.2357214041141957e-6 * var_x224 * var_x234 + 0.00014069346418032653 * var_x224 * var_x237)); - rJacobian[31][1] = -(mDt * (-0.0123 * var_x233 * var_x235 / pow(var_chaste_interface__Ca__Ca_JSR, 2) - 8 * var_x110 * var_x225 * var_x226 * var_x229 * mParameters[1] / pow(var_x230, 2))); + rJacobian[31][0] = -(mDt * (6.2357214041141957e-6 * var_x238 * var_x248 + 0.00014069346418032653 * var_x238 * var_x251)); + rJacobian[31][1] = -(mDt * (-0.0123 * var_x247 * var_x249 / pow(var_chaste_interface__Ca__Ca_JSR, 2) - 8 * var_x122 * var_x239 * var_x240 * var_x243 * mParameters[1] / pow(var_x244, 2))); rJacobian[31][2] = 0.0; rJacobian[31][3] = 0.0; - rJacobian[31][4] = -(mDt * (-var_x106 * var_x238)); - rJacobian[31][5] = -(mDt * (-4.6767910530856466e-10 * var_x234 * var_x239 - 1.0552009813524491e-8 * var_x237 * var_x239)); + rJacobian[31][4] = -(mDt * (-var_x117 * var_x252)); + rJacobian[31][5] = -(mDt * (-4.6767910530856466e-10 * var_x248 * var_x253 - 1.0552009813524491e-8 * var_x251 * var_x253)); rJacobian[31][6] = 0.0; rJacobian[31][7] = 0.0; rJacobian[31][8] = 0.0; rJacobian[31][9] = 0.0; rJacobian[31][10] = 0.0; rJacobian[31][11] = 0.0; - rJacobian[31][12] = -(mDt * (var_x240)); + rJacobian[31][12] = -(mDt * (var_x254)); rJacobian[31][13] = 0.0; - rJacobian[31][14] = -(mDt * (var_x240)); + rJacobian[31][14] = -(mDt * (var_x254)); rJacobian[31][15] = 0.0; rJacobian[31][16] = 0.0; rJacobian[31][17] = 0.0; @@ -2654,17 +2670,17 @@ std::shared_ptr Celldeck rJacobian[31][28] = 0.0; rJacobian[31][29] = 0.0; rJacobian[31][30] = 0.0; - rJacobian[31][31] = 1.0 - (mDt * (-var_x236)); + rJacobian[31][31] = 1.0 - (mDt * (-var_x250)); rJacobian[31][32] = 0.0; rJacobian[31][33] = 0.0; rJacobian[31][34] = 0.0; rJacobian[32][0] = 0.0; rJacobian[32][1] = 0.0; rJacobian[32][2] = 0.0; - rJacobian[32][3] = -(mDt * (-3.3595190743871034e-11 * var_x241 * var_x242 * var_x245 * var_x246 * mParameters[16] / pow(var_x243, 2))); + rJacobian[32][3] = -(mDt * (-3.3595190743871034e-11 * var_x255 * var_x256 * var_x259 * var_x260 * mParameters[16] / pow(var_x257, 2))); rJacobian[32][4] = 0.0; rJacobian[32][5] = 0.0; - rJacobian[32][6] = -(mDt * (var_x127)); + rJacobian[32][6] = -(mDt * (var_x139)); rJacobian[32][7] = 0.0; rJacobian[32][8] = 0.0; rJacobian[32][9] = 0.0; @@ -2673,33 +2689,33 @@ std::shared_ptr Celldeck rJacobian[32][12] = 0.0; rJacobian[32][13] = 0.0; rJacobian[32][14] = 0.0; - rJacobian[32][15] = -(mDt * (var_x248)); - rJacobian[32][16] = -(mDt * (var_x248)); - rJacobian[32][17] = -(mDt * (var_x248)); - rJacobian[32][18] = -(mDt * (var_x248)); - rJacobian[32][19] = -(mDt * (var_x248)); - rJacobian[32][20] = -(mDt * (var_x248)); - rJacobian[32][21] = -(mDt * (var_x248)); - rJacobian[32][22] = -(mDt * (var_x248)); - rJacobian[32][23] = -(mDt * (var_x248)); - rJacobian[32][24] = -(mDt * (var_x248)); - rJacobian[32][25] = -(mDt * (var_x248)); - rJacobian[32][26] = -(mDt * (var_x248)); - rJacobian[32][27] = -(mDt * (var_x248)); - rJacobian[32][28] = -(mDt * (var_x248)); - rJacobian[32][29] = -(mDt * (var_x248)); + rJacobian[32][15] = -(mDt * (var_x262)); + rJacobian[32][16] = -(mDt * (var_x262)); + rJacobian[32][17] = -(mDt * (var_x262)); + rJacobian[32][18] = -(mDt * (var_x262)); + rJacobian[32][19] = -(mDt * (var_x262)); + rJacobian[32][20] = -(mDt * (var_x262)); + rJacobian[32][21] = -(mDt * (var_x262)); + rJacobian[32][22] = -(mDt * (var_x262)); + rJacobian[32][23] = -(mDt * (var_x262)); + rJacobian[32][24] = -(mDt * (var_x262)); + rJacobian[32][25] = -(mDt * (var_x262)); + rJacobian[32][26] = -(mDt * (var_x262)); + rJacobian[32][27] = -(mDt * (var_x262)); + rJacobian[32][28] = -(mDt * (var_x262)); + rJacobian[32][29] = -(mDt * (var_x262)); rJacobian[32][30] = 0.0; rJacobian[32][31] = 0.0; - rJacobian[32][32] = 1.0 - (mDt * (var_x134 + 26.712338705498265 * var_x250 - var_x249 * mParameters[14] / (_lt_0_row[10]) - 0.00072346244967216237 * var_x252 * var_x263 * var_x264 + 0.00017254579424681073 * var_x263 * var_x265 * var_x266 * mParameters[12] - 0.00070927691144329649 * var_x252 * mParameters[15] * var_chaste_interface__IKr_xr_gate__xr / (_lt_0_row[11]) - 2.6031772383887529e-5 * var_x264 * var_x266 * (6.4983106368865622 * var_x265 - var_x258 * (1.053972635420138 * var_x121 * var_x259 + 1.6494869150645177 * var_x121 * var_x260) - 13.738155796237757 * var_x121 * var_x256 * var_x261 / pow(var_x257, 2)) / pow((var_x255 + 0.98039215686274506 * var_x262), 2) - var_x249 * pow(var_chaste_interface__Ito1_a_gate__a, 3) * mParameters[20] * var_chaste_interface__Ito1_i1f_gate__i1f * var_chaste_interface__Ito1_i1s_gate__i1s * _lt_0_row[12])); - rJacobian[32][33] = -(mDt * (2.1063570778339494e-5 * var_x269 + 0.48963716847178318 * var_x250 - 8.1013733762844218e-6 * var_x270)); + rJacobian[32][32] = 1.0 - (mDt * (var_x146 + 26.712338705498265 * var_x264 - var_x263 * mParameters[14] / (_lt_0_row[10]) - 0.00072346244967216237 * var_x266 * var_x277 * var_x278 + 0.00017254579424681073 * var_x277 * var_x279 * var_x280 * mParameters[12] - 0.00070927691144329649 * var_x266 * mParameters[15] * var_chaste_interface__IKr_xr_gate__xr / (_lt_0_row[11]) - 2.6031772383887529e-5 * var_x278 * var_x280 * (6.4983106368865622 * var_x279 - var_x272 * (1.053972635420138 * var_x133 * var_x273 + 1.6494869150645177 * var_x133 * var_x274) - 13.738155796237757 * var_x133 * var_x270 * var_x275 / pow(var_x271, 2)) / pow((var_x269 + 0.98039215686274506 * var_x276), 2) - var_x263 * pow(var_chaste_interface__Ito1_a_gate__a, 3) * mParameters[20] * var_chaste_interface__Ito1_i1f_gate__i1f * var_chaste_interface__Ito1_i1s_gate__i1s * _lt_0_row[12])); + rJacobian[32][33] = -(mDt * (2.1063570778339494e-5 * var_x283 + 0.48963716847178318 * var_x264 - 8.1013733762844218e-6 * var_x284)); rJacobian[32][34] = 0.0; rJacobian[33][0] = 0.0; rJacobian[33][1] = 0.0; rJacobian[33][2] = 0.0; - rJacobian[33][3] = -(mDt * (-4.6276665000011881e-12 * var_x66 - var_x271 * var_x49 + var_x48 * var_x58 * var_x94)); + rJacobian[33][3] = -(mDt * (-4.6276665000011881e-12 * var_x74 - var_x285 * var_x57 + var_x102 * var_x56 * var_x66)); rJacobian[33][4] = 0.0; - rJacobian[33][5] = -(mDt * (3.7021332000009505e-5 * var_x88 - 1.156916625000297e-12 * var_x87 - var_x272 * var_x49)); - rJacobian[33][6] = -(mDt * (var_x133)); + rJacobian[33][5] = -(mDt * (3.7021332000009505e-5 * var_x96 - 1.156916625000297e-12 * var_x95 - var_x286 * var_x57)); + rJacobian[33][6] = -(mDt * (var_x145)); rJacobian[33][7] = 0.0; rJacobian[33][8] = 0.0; rJacobian[33][9] = 0.0; @@ -2726,14 +2742,14 @@ std::shared_ptr Celldeck rJacobian[33][30] = 0.0; rJacobian[33][31] = 0.0; rJacobian[33][32] = 0.0; - rJacobian[33][33] = 1.0 - (mDt * (-0.14749262536873156 + var_x135 + 1.2152060064426631e-5 * var_x270 - 3.1595356167509241e-5 * var_x269 - 6.1702220000015831e-5 * ((var_x140) ? (96484.995175814824 * mParameters[9] + 0.0096478430926936198 * var_x137 * mParameters[9]) : (var_x141 * var_x143 * mParameters[9] / (-1 + var_x143))) - var_x271 * var_x92 - 0.00044425598400011404 * var_x93 * var_x96 - var_x273 * pow(var_chaste_interface__INaL_mL_gate__mL, 3) * mParameters[13] * var_chaste_interface__INaL_hL_gate__hL - var_x273 * pow(var_chaste_interface__INa_m_gate__m, 3) * mParameters[11] * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j)); - rJacobian[33][34] = -(mDt * (0.14749262536873156 - 0.00011106399600002851 * var_x99 - var_x272 * var_x98)); + rJacobian[33][33] = 1.0 - (mDt * (-0.14749262536873156 + var_x147 + 1.2152060064426631e-5 * var_x284 - 3.1595356167509241e-5 * var_x283 - 6.1702220000015831e-5 * ((var_x154) ? (-var_x288 + var_x148 * (var_x288 + var_x287 * var_x44)) : (var_x155 * var_x157 * mParameters[9] / (-1 + var_x157))) - var_x100 * var_x285 - 0.00044425598400011404 * var_x101 * var_x104 - var_x289 * pow(var_chaste_interface__INaL_mL_gate__mL, 3) * mParameters[13] * var_chaste_interface__INaL_hL_gate__hL - var_x289 * pow(var_chaste_interface__INa_m_gate__m, 3) * mParameters[11] * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j)); + rJacobian[33][34] = -(mDt * (0.14749262536873156 - 0.00011106399600002851 * var_x107 - var_x106 * var_x286)); rJacobian[34][0] = 0.0; rJacobian[34][1] = 0.0; rJacobian[34][2] = 0.0; rJacobian[34][3] = 0.0; rJacobian[34][4] = 0.0; - rJacobian[34][5] = -(mDt * (0.0012550231548003222 * var_x88 - 3.9219473587510072e-11 * var_x87 - var_x274 * var_x49)); + rJacobian[34][5] = -(mDt * (0.0012550231548003222 * var_x96 - 3.9219473587510072e-11 * var_x95 - var_x290 * var_x57)); rJacobian[34][6] = 0.0; rJacobian[34][7] = 0.0; rJacobian[34][8] = 0.0; @@ -2762,7 +2778,7 @@ std::shared_ptr Celldeck rJacobian[34][31] = 0.0; rJacobian[34][32] = 0.0; rJacobian[34][33] = -(mDt * (5)); - rJacobian[34][34] = 1.0 - (mDt * (-5 - 0.0037650694644009667 * var_x99 - var_x274 * var_x98)); + rJacobian[34][34] = 1.0 - (mDt * (-5 - 0.0037650694644009667 * var_x107 - var_x106 * var_x290)); } void Celldecker_2009FromCellMLBackwardEulerOpt::UpdateTransmembranePotential(double var_chaste_interface__environment__time) @@ -2854,11 +2870,11 @@ std::shared_ptr Celldeck const double var_IKs__O2 = 1 - var_chaste_interface__IKs__C1 - var_chaste_interface__IKs__C10 - var_chaste_interface__IKs__C11 - var_chaste_interface__IKs__C12 - var_chaste_interface__IKs__C13 - var_chaste_interface__IKs__C14 - var_chaste_interface__IKs__C15 - var_chaste_interface__IKs__C2 - var_chaste_interface__IKs__C3 - var_chaste_interface__IKs__C4 - var_chaste_interface__IKs__C5 - var_chaste_interface__IKs__C6 - var_chaste_interface__IKs__C7 - var_chaste_interface__IKs__C8 - var_chaste_interface__IKs__C9 - var_chaste_interface__IKs__O1; // dimensionless const double var_IpCa__IpCa = var_chaste_interface__Ca__Ca_i * mParameters[10] / (0.00050000000000000001 + var_chaste_interface__Ca__Ca_i); // uA_per_uF - const double var_Ito2__Ito2 = (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19] - 96484.995175157921 * (-100.0000100000005 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) - 96485.004824314819 * (-99.999990000000494 + var_chaste_interface__Cl__Cl_i) * mParameters[19]) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF + const double var_Ito2__Ito2 = (1 - 1 / (1 + 6.2499999999999991 * pow(var_chaste_interface__Irel__Irel, 2))) * (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))) * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF const double var_membrane__i_Stim = GetIntracellularAreaStimulus(var_chaste_interface__environment__time) / HeartConfig::Instance()->GetCapacitance(); // uA_per_uF - const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_ss_CaL - 0.34100000000000003 * mParameters[3]) * mParameters[6]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF - const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (192969.99035031584 * (1.0000001000000049 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7] - 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) + 192970.00964862964 * (0.99999990000000505 * var_chaste_interface__Ca__Ca_i - 0.34100000000000003 * mParameters[3]) * mParameters[7]) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF - const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (96484.995175157921 * (-mParameters[5] + 1.0000001000000049 * var_chaste_interface__Na__Na_i) * mParameters[9] - 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) + 96485.004824314819 * (-mParameters[5] + 0.99999990000000505 * var_chaste_interface__Na__Na_i) * mParameters[9]) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF + const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF + const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF const double var_INaCa__INaCa_ss_sr = 0.20000000000000001 * (pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] * _lt_0_row[0] - pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr * _lt_0_row[1]) * mParameters[17] / ((_lt_0_row[2]) * (1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_ss_sr, 2)) * (669921.875 * var_chaste_interface__Ca__Ca_ss_sr + 1.3 * pow(var_chaste_interface__Na__Na_ss_sr, 3) + pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr + 0.0035999999999999999 * pow(mParameters[5], 3) * (1 + 0.00053738391835633597 * pow(var_chaste_interface__Na__Na_ss_sr, 3)) + 1860.8670000000004 * (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_ss_sr) * mParameters[3])); // uA_per_uF const double var_INaCa__INaCa = 0.80000000000000004 * (pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] * _lt_0_row[0] - pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i * _lt_0_row[1]) * mParameters[17] / ((_lt_0_row[2]) * (1 + 1.5624999999999999e-8 / pow(var_chaste_interface__Ca__Ca_i, 2)) * (669921.875 * var_chaste_interface__Ca__Ca_i + 1.3 * pow(var_chaste_interface__Na__Na_i, 3) + pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i + 0.0035999999999999999 * pow(mParameters[5], 3) * (1 + 0.00053738391835633597 * pow(var_chaste_interface__Na__Na_i, 3)) + 1860.8670000000004 * (1 + 277.77777777777777 * var_chaste_interface__Ca__Ca_i) * mParameters[3])) + var_INaCa__INaCa_ss_sr; // uA_per_uF const double var_INaK__INaK = 0.056895766954938545 * pow(var_chaste_interface__Na__Na_i, 3) * mParameters[18] * mParameters[4] / (pow((1 + 0.38461538461538458 * var_chaste_interface__Na__Na_i), 3) * (_lt_0_row[3]) * (1.5 + mParameters[4])); // uA_per_uF @@ -2918,13 +2934,13 @@ std::shared_ptr Celldeck const double var_IKr_xr_gate__tau_xr = 1 / ((((var_chaste_interface__membrane__Vm >= -38.360800657030218) && (var_chaste_interface__membrane__Vm <= -38.360799342969777)) ? (-1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)) + 760999.99999526795 * (38.360800657030218 + var_chaste_interface__membrane__Vm) * (1.9710906701830842e-10 / (-1 + exp(1.0000000000062181e-7)) + 1.9710906701830842e-10 / (-1 + exp(-1.0000000000062181e-7)))) : (0.00029999999999999997 * (38.360799999999998 + var_chaste_interface__membrane__Vm) / (-1 + exp(5.8385137599999997 + 0.1522 * var_chaste_interface__membrane__Vm)))) + (((var_chaste_interface__membrane__Vm >= 1.7383992647058824) && (var_chaste_interface__membrane__Vm <= 1.7384007352941175)) ? (-4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 680000.00000016927 * (-1.7383992647058824 + var_chaste_interface__membrane__Vm) * (4.4117647058812543e-10 / (1 - exp(9.9999999999975114e-8)) + 4.4117647058812543e-10 / (1 - exp(-9.9999999999975114e-8)))) : (0.00059999999999999995 * (-1.7383999999999999 + var_chaste_interface__membrane__Vm) / (1 - exp(0.2364224 - 0.13600000000000001 * var_chaste_interface__membrane__Vm))))); const double var_IKr_xr_gate__xr_infinity = _lt_0_row[20]; const double var_INaL_hL_gate__hL_infinity = 1 / (1 + exp(14.918032786885247 + 0.16393442622950821 * var_chaste_interface__membrane__Vm)); - const double var_INaL_mL_gate__amL = (((var_chaste_interface__membrane__Vm >= -47.130001) && (var_chaste_interface__membrane__Vm <= -47.129999000000005)) ? (-3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 499999.99998562218 * (47.130001 + var_chaste_interface__membrane__Vm) * (3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 3.200000000092018e-7 / (1 - exp(-1.0000000000287557e-7)))) : (0.32000000000000001 * (47.130000000000003 + var_chaste_interface__membrane__Vm) / (1 - exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__Vm)))); + const double var_INaL_mL_gate__amL = _lt_0_row[23]; const double var_INaL_mL_gate__bmL = 0.080000000000000002 * _lt_0_row[24]; - const double var_INa_h_gate__ah = ((var_chaste_interface__membrane__Vm >= -40) ? (0) : (0.13500000000000001 * exp(-11.764705882352942 - 0.14705882352941177 * var_chaste_interface__membrane__Vm))); - const double var_INa_h_gate__bh = ((var_chaste_interface__membrane__Vm >= -40) ? (7.6923076923076916 / (1 + exp(-0.96036036036036043 - 0.0900900900900901 * var_chaste_interface__membrane__Vm))) : (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__Vm) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__Vm))); - const double var_INa_j_gate__aj = ((var_chaste_interface__membrane__Vm >= -40) ? (0) : ((37.780000000000001 + var_chaste_interface__membrane__Vm) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__Vm) - 6.9480000000000006e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__Vm)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__Vm)))); - const double var_INa_j_gate__bj = ((var_chaste_interface__membrane__Vm >= -40) ? (0.29999999999999999 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__Vm) / (1 + exp(-3.2000000000000002 - 0.10000000000000001 * var_chaste_interface__membrane__Vm))) : (0.1212 * exp(-0.01052 * var_chaste_interface__membrane__Vm) / (1 + exp(-5.5312920000000005 - 0.13780000000000001 * var_chaste_interface__membrane__Vm)))); - const double var_INa_m_gate__am = (((var_chaste_interface__membrane__Vm >= -47.130001) && (var_chaste_interface__membrane__Vm <= -47.129999000000005)) ? (-3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 499999.99998562218 * (47.130001 + var_chaste_interface__membrane__Vm) * (3.200000000092018e-7 / (1 - exp(1.0000000000287557e-7)) + 3.200000000092018e-7 / (1 - exp(-1.0000000000287557e-7)))) : (0.32000000000000001 * (47.130000000000003 + var_chaste_interface__membrane__Vm) / (1 - exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__Vm)))); + const double var_INa_h_gate__ah = _lt_0_row[25]; + const double var_INa_h_gate__bh = _lt_0_row[26]; + const double var_INa_j_gate__aj = _lt_0_row[27]; + const double var_INa_j_gate__bj = _lt_0_row[28]; + const double var_INa_m_gate__am = _lt_0_row[23]; const double var_INa_m_gate__bm = 0.080000000000000002 * _lt_0_row[24]; const double var_Ito1_a_gate__a_infinity = _lt_0_row[29]; const double var_Ito1_a_gate__alpha_a = 0.82719827942757873 / (1 + exp(0.62658348478969694 - 0.034035137876343539 * var_chaste_interface__membrane__Vm)); @@ -3120,14 +3136,14 @@ std::shared_ptr Celldeck const double var_IKp__Kp = 1 / (_lt_0_row[10]); // dimensionless const double var_IKr_r_gate__r = 1 / (_lt_0_row[11]); // dimensionless const double var_Ito1__rto1 = _lt_0_row[12]; // dimensionless - const double var_Ito2__Ito2_max = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-100 * exp(0.037435883507802616 * var_chaste_interface__membrane__Vm) + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (1 - exp(0.037435883507802616 * var_chaste_interface__membrane__Vm)))); // uA_per_uF + const double var_Ito2__Ito2_max = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-100 * exp(9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-100 * exp(-9.9999999999999995e-8) + var_chaste_interface__Cl__Cl_i) * mParameters[19] / (1 - exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (_lt_0_row[6] + var_chaste_interface__Cl__Cl_i) * mParameters[19] * var_chaste_interface__membrane__Vm / (_lt_0_row[7]))); // uA_per_uF const double var_Ito2__Ito2 = var_Ito2__Ito2_max * var_Ito2__Ito2_max_scaling_factor * var_Ito2__KCa_ito2 * var_chaste_interface__Ito2_i2f_gate__i2f; // uA_per_uF const double var_Ito2__Ito2_converted = HeartConfig::Instance()->GetCapacitance() * var_Ito2__Ito2; // uA_per_cm2 const double var_membrane__i_Stim_converted = GetIntracellularAreaStimulus(var_chaste_interface__environment__time); // uA_per_cm2 - const double var_ICaL__ICaL_max = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(0.074871767015605231 * var_chaste_interface__membrane__Vm)) * mParameters[6] * var_chaste_interface__membrane__Vm / (-1 + exp(0.074871767015605231 * var_chaste_interface__membrane__Vm)))); // uA_per_uF + const double var_ICaL__ICaL_max = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * exp(-9.9999999999999995e-8)) * mParameters[6] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_ss_CaL * _lt_0_row[4]) * mParameters[6] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF const double var_ICaL__ICaL = (var_chaste_interface__ICaL__O + var_chaste_interface__ICaL__O_star) * var_ICaL__ICaL_max; // uA_per_uF const double var_ICaL__ICaL_converted = HeartConfig::Instance()->GetCapacitance() * var_ICaL__ICaL; // uA_per_cm2 - const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(0.074871767015605231 * var_chaste_interface__membrane__Vm)) * mParameters[7] * var_chaste_interface__membrane__Vm / (-1 + exp(0.074871767015605231 * var_chaste_interface__membrane__Vm)))); // uA_per_uF + const double var_ICab__ICab = (((var_chaste_interface__membrane__Vm >= -1.3356169352749131e-6) && (var_chaste_interface__membrane__Vm <= 1.3356169352749131e-6)) ? (374358.83507802623 * (1.3356169352749131e-6 + var_chaste_interface__membrane__Vm) * (0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(9.9999999999999995e-8)) + 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) - 0.019296999999999998 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * exp(-9.9999999999999995e-8)) * mParameters[7] / (-1 + exp(-9.9999999999999995e-8))) : (14448.004881001343 * (-0.34100000000000003 * mParameters[3] + var_chaste_interface__Ca__Ca_i * _lt_0_row[4]) * mParameters[7] * var_chaste_interface__membrane__Vm / (_lt_0_row[5]))); // uA_per_uF const double var_ICab__ICab_converted = HeartConfig::Instance()->GetCapacitance() * var_ICab__ICab; // uA_per_cm2 const double var_INaCa__denom_3 = pow(var_INaCa__KmNao, 3) * var_chaste_interface__Ca__Ca_i + pow(var_chaste_interface__Na__Na_i, 3) * var_INaCa__KmCao + pow(var_INaCa__KmNai, 3) * (1 + var_chaste_interface__Ca__Ca_i / var_INaCa__KmCai) * mParameters[3]; // mM4 const double var_INaCa__denom_ss_3 = pow(var_INaCa__KmNao, 3) * var_chaste_interface__Ca__Ca_ss_sr + pow(var_chaste_interface__Na__Na_ss_sr, 3) * var_INaCa__KmCao + pow(var_INaCa__KmNai, 3) * (1 + var_chaste_interface__Ca__Ca_ss_sr / var_INaCa__KmCai) * mParameters[3]; // mM4 @@ -3138,7 +3154,7 @@ std::shared_ptr Celldeck const double var_INaK__PK = mParameters[4] / (var_INaK__kmko + mParameters[4]); // dimensionless const double var_INaCa__denom_4 = pow(var_chaste_interface__Na__Na_i, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_i + pow(mParameters[5], 3) * (1 + pow(var_chaste_interface__Na__Na_i, 3) / pow(var_INaCa__KmNai, 3)) * var_INaCa__KmCai; // mM4 const double var_INaCa__denom_ss_4 = pow(var_chaste_interface__Na__Na_ss_sr, 3) * mParameters[3] + pow(mParameters[5], 3) * var_chaste_interface__Ca__Ca_ss_sr + pow(mParameters[5], 3) * (1 + pow(var_chaste_interface__Na__Na_ss_sr, 3) / pow(var_INaCa__KmNai, 3)) * var_INaCa__KmCai; // mM4 - const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(0.037435883507802616 * var_chaste_interface__membrane__Vm)) * mParameters[9] * var_chaste_interface__membrane__Vm / (-1 + exp(0.037435883507802616 * var_chaste_interface__membrane__Vm)))); // uA_per_uF + const double var_INab__INab = (((var_chaste_interface__membrane__Vm >= -2.6712338705498262e-6) && (var_chaste_interface__membrane__Vm <= 2.6712338705498262e-6)) ? (187179.41753901311 * (2.6712338705498262e-6 + var_chaste_interface__membrane__Vm) * (0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(9.9999999999999995e-8)) + 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) - 0.0096484999999999991 * (-mParameters[5] + var_chaste_interface__Na__Na_i * exp(-9.9999999999999995e-8)) * mParameters[9] / (-1 + exp(-9.9999999999999995e-8))) : (3612.0012202503358 * (-mParameters[5] + var_chaste_interface__Na__Na_i * _lt_0_row[8]) * mParameters[9] * var_chaste_interface__membrane__Vm / (_lt_0_row[9]))); // uA_per_uF const double var_INab__INab_converted = HeartConfig::Instance()->GetCapacitance() * var_INab__INab; // uA_per_cm2 const double var_model_parameters__R = 8314; // J_per_kmole_K const double var_model_parameters__T = 310; // kelvin diff --git a/chaste_codegen/data/tests/chaste_reference_models/CVODE_DATA_CLAMP_OPT/grandi_pasqualini_bers_2010_ssCvodeDataClampOpt.cpp b/chaste_codegen/data/tests/chaste_reference_models/CVODE_DATA_CLAMP_OPT/grandi_pasqualini_bers_2010_ssCvodeDataClampOpt.cpp index 79358b88..293f25f1 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/CVODE_DATA_CLAMP_OPT/grandi_pasqualini_bers_2010_ssCvodeDataClampOpt.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/CVODE_DATA_CLAMP_OPT/grandi_pasqualini_bers_2010_ssCvodeDataClampOpt.cpp @@ -645,8 +645,8 @@ std::shared_ptr= -40) ? (0) : (4.4312679295805168e-7 * exp(0.14705882352941177 * NV_Ith_S(mParameters, 15) - 0.14705882352941177 * var_chaste_interface__membrane_potential__V_m))) + ((var_chaste_interface__membrane_potential__V_m >= -40) ? (5.9230769230769234 / (1 + 0.38275493141491301 * exp(0.0900900900900901 * NV_Ith_S(mParameters, 15) - 0.0900900900900901 * var_chaste_interface__membrane_potential__V_m))) : (310000 * exp(0.34849999999999998 * var_chaste_interface__membrane_potential__V_m - 0.34849999999999998 * NV_Ith_S(mParameters, 15)) + 2.7000000000000002 * exp(0.079000000000000001 * var_chaste_interface__membrane_potential__V_m - 0.079000000000000001 * NV_Ith_S(mParameters, 15))))) * (-var_chaste_interface__I_Na__h + 0.01 * NV_Ith_S(mParameters, 14) + (1 - 0.01 * NV_Ith_S(mParameters, 14)) / pow((1 + exp(9.6298788694481825 + 0.13458950201884254 * var_chaste_interface__membrane_potential__V_m - 0.13458950201884254 * NV_Ith_S(mParameters, 15))), 2)); // 1 / msec - const double d_dt_chaste_interface_var_I_Na__j = (((var_chaste_interface__membrane_potential__V_m >= -40) ? (0) : ((37.780000000000001 + var_chaste_interface__membrane_potential__V_m) * (-25428 * exp(0.24440000000000001 * var_chaste_interface__membrane_potential__V_m - 0.24440000000000001 * NV_Ith_S(mParameters, 15)) - 6.9480000000000002e-6 * exp(0.043909999999999998 * NV_Ith_S(mParameters, 15) - 0.043909999999999998 * var_chaste_interface__membrane_potential__V_m)) / (1 + 50262745825.953949 * exp(0.311 * var_chaste_interface__membrane_potential__V_m - 0.311 * NV_Ith_S(mParameters, 15))))) + ((var_chaste_interface__membrane_potential__V_m >= -40) ? (0.59999999999999998 * exp(0.057000000000000002 * var_chaste_interface__membrane_potential__V_m - 0.057000000000000002 * NV_Ith_S(mParameters, 15)) / (1 + 0.040762203978366211 * exp(0.10000000000000001 * NV_Ith_S(mParameters, 15) - 0.10000000000000001 * var_chaste_interface__membrane_potential__V_m))) : (0.024240000000000001 * exp(0.01052 * NV_Ith_S(mParameters, 15) - 0.01052 * var_chaste_interface__membrane_potential__V_m) / (1 + 0.0039608683399042569 * exp(0.13780000000000001 * NV_Ith_S(mParameters, 15) - 0.13780000000000001 * var_chaste_interface__membrane_potential__V_m))))) * (-var_chaste_interface__I_Na__j + 0.01 * NV_Ith_S(mParameters, 14) + (1 - 0.01 * NV_Ith_S(mParameters, 14)) / pow((1 + exp(9.6298788694481825 + 0.13458950201884254 * var_chaste_interface__membrane_potential__V_m - 0.13458950201884254 * NV_Ith_S(mParameters, 15))), 2)); // 1 / msec + const double d_dt_chaste_interface_var_I_Na__h = (((var_chaste_interface__membrane_potential__V_m >= -40) ? (0) : (0.057000000000000002 * exp(-11.764705882352942 + 0.14705882352941177 * NV_Ith_S(mParameters, 15) - 0.14705882352941177 * var_chaste_interface__membrane_potential__V_m))) + ((var_chaste_interface__membrane_potential__V_m >= -40) ? (5.9230769230769234 / (1 + exp(-0.96036036036036043 + 0.0900900900900901 * NV_Ith_S(mParameters, 15) - 0.0900900900900901 * var_chaste_interface__membrane_potential__V_m))) : (310000 * exp(0.34849999999999998 * var_chaste_interface__membrane_potential__V_m - 0.34849999999999998 * NV_Ith_S(mParameters, 15)) + 2.7000000000000002 * exp(0.079000000000000001 * var_chaste_interface__membrane_potential__V_m - 0.079000000000000001 * NV_Ith_S(mParameters, 15))))) * (-var_chaste_interface__I_Na__h + 0.01 * NV_Ith_S(mParameters, 14) + (1 - 0.01 * NV_Ith_S(mParameters, 14)) / pow((1 + exp(9.6298788694481825 + 0.13458950201884254 * var_chaste_interface__membrane_potential__V_m - 0.13458950201884254 * NV_Ith_S(mParameters, 15))), 2)); // 1 / msec + const double d_dt_chaste_interface_var_I_Na__j = (((var_chaste_interface__membrane_potential__V_m >= -40) ? (0) : ((37.780000000000001 + var_chaste_interface__membrane_potential__V_m) * (-25428 * exp(0.24440000000000001 * var_chaste_interface__membrane_potential__V_m - 0.24440000000000001 * NV_Ith_S(mParameters, 15)) - 6.9480000000000002e-6 * exp(0.043909999999999998 * NV_Ith_S(mParameters, 15) - 0.043909999999999998 * var_chaste_interface__membrane_potential__V_m)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane_potential__V_m - 0.311 * NV_Ith_S(mParameters, 15))))) + ((var_chaste_interface__membrane_potential__V_m >= -40) ? (0.59999999999999998 * exp(0.057000000000000002 * var_chaste_interface__membrane_potential__V_m - 0.057000000000000002 * NV_Ith_S(mParameters, 15)) / (1 + exp(-3.2000000000000002 + 0.10000000000000001 * NV_Ith_S(mParameters, 15) - 0.10000000000000001 * var_chaste_interface__membrane_potential__V_m))) : (0.024240000000000001 * exp(0.01052 * NV_Ith_S(mParameters, 15) - 0.01052 * var_chaste_interface__membrane_potential__V_m) / (1 + exp(-5.5312920000000005 + 0.13780000000000001 * NV_Ith_S(mParameters, 15) - 0.13780000000000001 * var_chaste_interface__membrane_potential__V_m))))) * (-var_chaste_interface__I_Na__j + 0.01 * NV_Ith_S(mParameters, 14) + (1 - 0.01 * NV_Ith_S(mParameters, 14)) / pow((1 + exp(9.6298788694481825 + 0.13458950201884254 * var_chaste_interface__membrane_potential__V_m - 0.13458950201884254 * NV_Ith_S(mParameters, 15))), 2)); // 1 / msec const double d_dt_chaste_interface_var_I_Na__m = (-var_chaste_interface__I_Na__m + _lt_0_row[11]) / (_lt_0_row[12]); // 1 / msec const double var_I_to__xtoss = _lt_0_row[13]; // dimensionless const double d_dt_chaste_interface_var_I_to__x_to_f = (-var_chaste_interface__I_to__x_to_f + var_I_to__xtoss) / (_lt_0_row[14]); // 1 / msec diff --git a/chaste_codegen/data/tests/chaste_reference_models/CVODE_DATA_CLAMP_OPT/hodgkin_huxley_squid_axon_model_1952_modified.cpp b/chaste_codegen/data/tests/chaste_reference_models/CVODE_DATA_CLAMP_OPT/hodgkin_huxley_squid_axon_model_1952_modified.cpp index d3fa4645..478b2298 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/CVODE_DATA_CLAMP_OPT/hodgkin_huxley_squid_axon_model_1952_modified.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/CVODE_DATA_CLAMP_OPT/hodgkin_huxley_squid_axon_model_1952_modified.cpp @@ -142,7 +142,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLCvodeDataClampO for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + 0.0015034391929775724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287556e-8 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + exp(-6.5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -197,7 +197,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLCvodeDataClampO for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + 0.006737946999085467 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-7 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + exp(-5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt/dynamic_aslanidi_Purkinje_model_2009.cpp b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt/dynamic_aslanidi_Purkinje_model_2009.cpp index b8c7011b..0d819b3f 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt/dynamic_aslanidi_Purkinje_model_2009.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt/dynamic_aslanidi_Purkinje_model_2009.cpp @@ -886,11 +886,11 @@ std::shared_ptrCalc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); // per_millisecond - const double var_i_Na_h_gate__beta_h = ((var_chaste_interface__membrane__V < -40) ? (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V - 0.34999999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time)) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__V - 0.079000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time))) : (7.6923076923076916 / (1 + 0.38275493141491301 * exp(0.0900900900900901 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.0900900900900901 * var_chaste_interface__membrane__V)))); // per_millisecond + const double var_i_Na_h_gate__alpha_h = ((var_chaste_interface__membrane__V < -40) ? (0.13500000000000001 * exp(-11.764705882352942 + 0.14705882352941177 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); // per_millisecond + const double var_i_Na_h_gate__beta_h = ((var_chaste_interface__membrane__V < -40) ? (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V - 0.34999999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time)) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__V - 0.079000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time))) : (7.6923076923076916 / (1 + exp(-0.96036036036036043 + 0.0900900900900901 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.0900900900900901 * var_chaste_interface__membrane__V)))); // per_millisecond const double d_dt_chaste_interface_var_i_Na_h_gate__h = (var_i_Na_h_gate__alpha_h + var_i_Na_h_gate__beta_h) * (-var_chaste_interface__i_Na_h_gate__h + 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(NV_Ith_S(mParameters, 9), var_chaste_interface__environment__time) + (1 - 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(NV_Ith_S(mParameters, 9), var_chaste_interface__environment__time)) * var_i_Na_h_gate__alpha_h / (var_i_Na_h_gate__alpha_h + var_i_Na_h_gate__beta_h)); // 1 / millisecond - const double var_i_Na_j_gate__alpha_j = ((var_chaste_interface__membrane__V < -40) ? ((37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V - 0.24440000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time)) - 3.4740000000000003e-5 * exp(0.043909999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + 50262745825.953949 * exp(0.311 * var_chaste_interface__membrane__V - 0.311 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time)))) : (0)); // per_millisecond - const double var_i_Na_j_gate__beta_j = ((var_chaste_interface__membrane__V < -40) ? (0.1212 * exp(0.01052 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.01052 * var_chaste_interface__membrane__V) / (1 + 0.0039608683399042569 * exp(0.13780000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.13780000000000001 * var_chaste_interface__membrane__V))) : (0.29999999999999999 * exp(2.5349999999999999e-7 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + 0.040762203978366211 * exp(0.10000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.10000000000000001 * var_chaste_interface__membrane__V)))); // per_millisecond + const double var_i_Na_j_gate__alpha_j = ((var_chaste_interface__membrane__V < -40) ? ((37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V - 0.24440000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time)) - 3.4740000000000003e-5 * exp(0.043909999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V - 0.311 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time)))) : (0)); // per_millisecond + const double var_i_Na_j_gate__beta_j = ((var_chaste_interface__membrane__V < -40) ? (0.1212 * exp(0.01052 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.01052 * var_chaste_interface__membrane__V) / (1 + exp(-5.5312920000000005 + 0.13780000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.13780000000000001 * var_chaste_interface__membrane__V))) : (0.29999999999999999 * exp(2.5349999999999999e-7 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + exp(-3.2000000000000002 + 0.10000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(NV_Ith_S(mParameters, 10), var_chaste_interface__environment__time) - 0.10000000000000001 * var_chaste_interface__membrane__V)))); // per_millisecond const double d_dt_chaste_interface_var_i_Na_j_gate__j = (var_i_Na_j_gate__alpha_j + var_i_Na_j_gate__beta_j) * (-var_chaste_interface__i_Na_j_gate__j + 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(NV_Ith_S(mParameters, 9), var_chaste_interface__environment__time) + (1 - 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(NV_Ith_S(mParameters, 9), var_chaste_interface__environment__time)) * var_i_Na_j_gate__alpha_j / (var_i_Na_j_gate__alpha_j + var_i_Na_j_gate__beta_j)); // 1 / millisecond const double var_i_Na_m_gate__alpha_m = _lt_0_row[27]; // per_millisecond const double var_i_Na_m_gate__beta_m = _lt_0_row[28]; // per_millisecond diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt/hilgemann_noble_model_1987.cpp b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt/hilgemann_noble_model_1987.cpp index 3d376041..8d2b2856 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt/hilgemann_noble_model_1987.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt/hilgemann_noble_model_1987.cpp @@ -164,7 +164,7 @@ class Cellhilgemann_noble_model_1987FromCellMLCvodeOpt_LookupTables : public Abs for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return exp(-0.037433890822745473 * var_chaste_interface__membrane__V); + return exp(1.8716945411372736 - 0.037433890822745473 * var_chaste_interface__membrane__V); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -186,7 +186,7 @@ class Cellhilgemann_noble_model_1987FromCellMLCvodeOpt_LookupTables : public Abs for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return 1 - 6.4993004051833205 * exp(-0.037433890822745473 * var_chaste_interface__membrane__V); + return 1 - exp(1.8716945411372736 - 0.037433890822745473 * var_chaste_interface__membrane__V); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -208,7 +208,7 @@ class Cellhilgemann_noble_model_1987FromCellMLCvodeOpt_LookupTables : public Abs for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return exp(-0.074867781645490947 * var_chaste_interface__membrane__V); + return exp(3.7433890822745473 - 0.074867781645490947 * var_chaste_interface__membrane__V); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -230,7 +230,7 @@ class Cellhilgemann_noble_model_1987FromCellMLCvodeOpt_LookupTables : public Abs for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return 1 - 42.240905756816076 * exp(-0.074867781645490947 * var_chaste_interface__membrane__V); + return 1 - exp(3.7433890822745473 - 0.074867781645490947 * var_chaste_interface__membrane__V); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -263,7 +263,7 @@ class Cellhilgemann_noble_model_1987FromCellMLCvodeOpt_LookupTables : public Abs for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -41.000000999999997) && (var_chaste_interface__membrane__V <= -40.999999000000003)) ? (6099.9235254615414 + 99.998134767143 * var_chaste_interface__membrane__V) : (200 * (41 + var_chaste_interface__membrane__V) / (1 - 0.016572675401761244 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -41.000000999999997) && (var_chaste_interface__membrane__V <= -40.999999000000003)) ? (-0.00020000000000575113 / (1 - exp(1.0000000000287557e-7)) + 499999.99998562218 * (41.000000999999997 + var_chaste_interface__membrane__V) * (0.00020000000000575113 / (1 - exp(1.0000000000287557e-7)) + 0.00020000000000575113 / (1 - exp(-1.0000000000287557e-7)))) : (200 * (41 + var_chaste_interface__membrane__V) / (1 - exp(-4.1000000000000005 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -296,7 +296,7 @@ class Cellhilgemann_noble_model_1987FromCellMLCvodeOpt_LookupTables : public Abs for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -19.000000400000001) && (var_chaste_interface__membrane__V <= -18.999999599999999)) ? (404.99468408919864 + 14.999720215193575 * var_chaste_interface__membrane__V) : (30 * (19 + var_chaste_interface__membrane__V) / (1 - 0.0086516952031206341 * exp(-0.25 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -19.000000400000001) && (var_chaste_interface__membrane__V <= -18.999999599999999)) ? (-1.2000000000345068e-5 / (1 - exp(1.0000000000287557e-7)) + 1249999.9999640554 * (19.000000400000001 + var_chaste_interface__membrane__V) * (1.2000000000345068e-5 / (1 - exp(1.0000000000287557e-7)) + 1.2000000000345068e-5 / (1 - exp(-1.0000000000287557e-7)))) : (30 * (19 + var_chaste_interface__membrane__V) / (1 - exp(-4.75 - 0.25 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -318,7 +318,7 @@ class Cellhilgemann_noble_model_1987FromCellMLCvodeOpt_LookupTables : public Abs for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -19.000001000000001) && (var_chaste_interface__membrane__V <= -18.999998999999999)) ? (5.9942160172560808 - 6.000304420127998 * var_chaste_interface__membrane__V) : (12 * (19 + var_chaste_interface__membrane__V) / (-1 + 6.6858944422792694 * exp(0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -19.000001000000001) && (var_chaste_interface__membrane__V <= -18.999998999999999)) ? (-1.1999999999678934e-5 / (-1 + exp(-9.9999999997324457e-8)) + 500000.00000643887 * (19.000001000000001 + var_chaste_interface__membrane__V) * (1.1999999999678934e-5 / (-1 + exp(-9.9999999997324457e-8)) + 1.2000000000012001e-5 / (-1 + exp(1.0000000000010001e-7)))) : (12 * (19 + var_chaste_interface__membrane__V) / (-1 + exp(1.8999999999999999 + 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -351,7 +351,7 @@ class Cellhilgemann_noble_model_1987FromCellMLCvodeOpt_LookupTables : public Abs for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -34.000000399999998) && (var_chaste_interface__membrane__V <= -33.999999600000002)) ? (-81.248018190452797 - 3.1249417114870965 * var_chaste_interface__membrane__V) : (6.25 * (34 + var_chaste_interface__membrane__V) / (-1 + 4914.7688402991344 * exp(0.25 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -34.000000399999998) && (var_chaste_interface__membrane__V <= -33.999999600000002)) ? (-2.5000000000718892e-6 / (-1 + exp(-1.0000000000287557e-7)) + 1249999.9999640554 * (34.000000399999998 + var_chaste_interface__membrane__V) * (2.5000000000718892e-6 / (-1 + exp(1.0000000000287557e-7)) + 2.5000000000718892e-6 / (-1 + exp(-1.0000000000287557e-7)))) : (6.25 * (34 + var_chaste_interface__membrane__V) / (-1 + exp(8.5 + 0.25 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -499,7 +499,7 @@ std::shared_ptr C const double var_Na_Ca_exchanger__i_NaCa_converted = 0.001 * (pow(var_chaste_interface__intracellular_sodium_concentration__Na_i, 3) * var_chaste_interface__extracellular_calcium_concentration__Ca_o * _lt_0_row[0] - pow(NV_Ith_S(mParameters, 6), 3) * var_chaste_interface__intracellular_calcium_concentration__Ca_i * _lt_0_row[1]) * HeartConfig::Instance()->GetCapacitance() * NV_Ith_S(mParameters, 13) / ((1 + 144.92753623188406 * var_chaste_interface__intracellular_calcium_concentration__Ca_i) * (1 + 0.0001 * pow(NV_Ith_S(mParameters, 6), 3) * var_chaste_interface__intracellular_calcium_concentration__Ca_i + 0.0001 * pow(var_chaste_interface__intracellular_sodium_concentration__Na_i, 3) * var_chaste_interface__extracellular_calcium_concentration__Ca_o) * NV_Ith_S(mParameters, 8)); // uA_per_cm2 const double var_calcium_background_current__i_b_Ca = 0.0050000000000000001 * var_chaste_interface__membrane__V - 0.066784401649239128 * log(var_chaste_interface__extracellular_calcium_concentration__Ca_o / var_chaste_interface__intracellular_calcium_concentration__Ca_i); // nanoA const double var_fast_sodium_current__i_Na_converted = 0.001 * pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3) * (-26.713760659695652 * log((NV_Ith_S(mParameters, 6) + 0.12 * NV_Ith_S(mParameters, 5)) / (var_chaste_interface__intracellular_sodium_concentration__Na_i + 0.12 * var_chaste_interface__intracellular_potassium_concentration__K_i)) + var_chaste_interface__membrane__V) * HeartConfig::Instance()->GetCapacitance() * NV_Ith_S(mParameters, 9) * var_chaste_interface__fast_sodium_current_h_gate__h / NV_Ith_S(mParameters, 8); // uA_per_cm2 - const double var_second_inward_calcium_current__i_si_converted = 0.001 * ((((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (0.0020000000999985186 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_potassium_concentration__K_i - 0.99999990000000505 * NV_Ith_S(mParameters, 5)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d - 0.0019999998999849018 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_potassium_concentration__K_i - 1.0000001000000049 * NV_Ith_S(mParameters, 5)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) + 0.0019999998999849018 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_potassium_concentration__K_i - 1.0000001000000049 * NV_Ith_S(mParameters, 5)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) : (7.4867781645490941e-5 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (6.4993004051833205 * var_chaste_interface__intracellular_potassium_concentration__K_i - 6.4993004051833205 * NV_Ith_S(mParameters, 5) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))) + (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (0.010000000499992593 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_sodium_concentration__Na_i - 0.99999990000000505 * NV_Ith_S(mParameters, 6)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d - 0.0099999994999245088 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_sodium_concentration__Na_i - 1.0000001000000049 * NV_Ith_S(mParameters, 6)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) + 0.0099999994999245088 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_sodium_concentration__Na_i - 1.0000001000000049 * NV_Ith_S(mParameters, 6)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) : (0.00037433890822745472 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (6.4993004051833205 * var_chaste_interface__intracellular_sodium_concentration__Na_i - 6.4993004051833205 * NV_Ith_S(mParameters, 6) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))) + (((var_chaste_interface__membrane__V >= 49.999998664311967) && (var_chaste_interface__membrane__V <= 50.000001335688033)) ? (374338.90823576227 * (-49.999998664311967 + var_chaste_interface__membrane__V) * (2.0000000999916532 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (42.240905756816076 * var_chaste_interface__intracellular_calcium_concentration__Ca_i - 0.99999990000000505 * var_chaste_interface__extracellular_calcium_concentration__Ca_o) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d - 1.9999999000127309 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (42.240905756816076 * var_chaste_interface__intracellular_calcium_concentration__Ca_i - 1.0000001000000049 * var_chaste_interface__extracellular_calcium_concentration__Ca_o) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) + 1.9999999000127309 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (42.240905756816076 * var_chaste_interface__intracellular_calcium_concentration__Ca_i - 1.0000001000000049 * var_chaste_interface__extracellular_calcium_concentration__Ca_o) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) : (0.14973556329098189 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (42.240905756816076 * var_chaste_interface__intracellular_calcium_concentration__Ca_i - 42.240905756816076 * var_chaste_interface__extracellular_calcium_concentration__Ca_o * _lt_0_row[4]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[5])))) * HeartConfig::Instance()->GetCapacitance() / NV_Ith_S(mParameters, 8); // uA_per_cm2 + const double var_second_inward_calcium_current__i_si_converted = 0.001 * ((((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8)) + 9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(-9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999999858739e-8))) - 9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8))) : (0.00037433890822745472 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))) + (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8)) + 1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(-9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999999858739e-8))) - 1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8))) : (7.4867781645490941e-5 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))) + (((var_chaste_interface__membrane__V >= 49.999998664311967) && (var_chaste_interface__membrane__V <= 50.000001335688033)) ? (374338.90823576227 * (-49.999998664311967 + var_chaste_interface__membrane__V) * (1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999997780743e-8)) + 1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(-9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999997780743e-8))) - 1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999997780743e-8))) : (0.14973556329098189 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * _lt_0_row[4]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[5])))) * HeartConfig::Instance()->GetCapacitance() / NV_Ith_S(mParameters, 8); // uA_per_cm2 const double var_sodium_background_current__i_b_Na = 0.012 * var_chaste_interface__membrane__V - 0.32056512791634778 * log(NV_Ith_S(mParameters, 6) / var_chaste_interface__intracellular_sodium_concentration__Na_i); // nanoA const double var_sodium_potassium_pump__i_NaK = 14 * NV_Ith_S(mParameters, 5) * var_chaste_interface__intracellular_sodium_concentration__Na_i / ((1 + NV_Ith_S(mParameters, 5)) * (40 + var_chaste_interface__intracellular_sodium_concentration__Na_i)); // nanoA const double var_time_independent_potassium_current__E_K = 26.713760659695652 * log(NV_Ith_S(mParameters, 5) / var_chaste_interface__intracellular_potassium_concentration__K_i); // millivolt @@ -582,11 +582,11 @@ std::shared_ptr C const double var_sarcoplasmic_reticulum_calcium_pump__i_up = (3 * var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.00041999999999999996 + 0.00023999999999999998 * var_chaste_interface__intracellular_calcium_concentration__Ca_up + var_chaste_interface__intracellular_calcium_concentration__Ca_i) - 5.52e-5 * var_chaste_interface__intracellular_calcium_concentration__Ca_up / (0.00041999999999999996 + 0.00023999999999999998 * var_chaste_interface__intracellular_calcium_concentration__Ca_up + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * NV_Ith_S(mParameters, 3); // millimolar_per_second const double d_dt_chaste_interface_var_intracellular_calcium_concentration__Ca_up = 0.048999999999999995 * var_sarcoplasmic_reticulum_calcium_pump__i_up - 0.001 * var_calcium_translocation__i_trans; // millimolar / millisecond const double d_dt_chaste_interface_var_second_inward_calcium_current_d_gate__d = 0.001 * (1 - var_chaste_interface__second_inward_calcium_current_d_gate__d) * _lt_0_row[9] - 0.001 * _lt_0_row[10] * var_chaste_interface__second_inward_calcium_current_d_gate__d; // 1 / millisecond - const double var_second_inward_calcium_current__i_siCa = (((var_chaste_interface__membrane__V >= 49.999998664311967) && (var_chaste_interface__membrane__V <= 50.000001335688033)) ? (374338.90823576227 * (-49.999998664311967 + var_chaste_interface__membrane__V) * (2.0000000999916532 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (42.240905756816076 * var_chaste_interface__intracellular_calcium_concentration__Ca_i - 0.99999990000000505 * var_chaste_interface__extracellular_calcium_concentration__Ca_o) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d - 1.9999999000127309 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (42.240905756816076 * var_chaste_interface__intracellular_calcium_concentration__Ca_i - 1.0000001000000049 * var_chaste_interface__extracellular_calcium_concentration__Ca_o) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) + 1.9999999000127309 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (42.240905756816076 * var_chaste_interface__intracellular_calcium_concentration__Ca_i - 1.0000001000000049 * var_chaste_interface__extracellular_calcium_concentration__Ca_o) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) : (0.14973556329098189 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (42.240905756816076 * var_chaste_interface__intracellular_calcium_concentration__Ca_i - 42.240905756816076 * var_chaste_interface__extracellular_calcium_concentration__Ca_o * _lt_0_row[4]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[5]))); // nanoA + const double var_second_inward_calcium_current__i_siCa = (((var_chaste_interface__membrane__V >= 49.999998664311967) && (var_chaste_interface__membrane__V <= 50.000001335688033)) ? (374338.90823576227 * (-49.999998664311967 + var_chaste_interface__membrane__V) * (1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999997780743e-8)) + 1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(-9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999997780743e-8))) - 1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999997780743e-8))) : (0.14973556329098189 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * _lt_0_row[4]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[5]))); // nanoA const double d_dt_chaste_interface_var_extracellular_calcium_concentration__Ca_o = 0.001 * (0.001 - 0.00050000000000000001 * var_chaste_interface__extracellular_calcium_concentration__Ca_o - 0.0080543192715385042 * var_Na_Ca_exchanger__i_NaCa - 0.0080543192715385042 * var_calcium_background_current__i_b_Ca - 0.0080543192715385042 * var_second_inward_calcium_current__i_siCa) * NV_Ith_S(mParameters, 4); // millimolar / millisecond const double d_dt_chaste_interface_var_intracellular_calcium_concentration__Ca_i = 0.00020408163265306126 * var_calcium_release__i_rel + 1.3149909014756744e-5 * var_Na_Ca_exchanger__i_NaCa - 0.001 * var_intracellular_calcium_concentration__Ca_Calmod_orig_deriv - 0.001 * var_intracellular_calcium_concentration__Ca_Trop_orig_deriv - 0.001 * var_sarcoplasmic_reticulum_calcium_pump__i_up - 6.5749545073783721e-6 * var_calcium_background_current__i_b_Ca - 6.5749545073783721e-6 * var_second_inward_calcium_current__i_siCa; // millimolar / millisecond - const double var_second_inward_calcium_current__i_siK = (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (0.0020000000999985186 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_potassium_concentration__K_i - 0.99999990000000505 * NV_Ith_S(mParameters, 5)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d - 0.0019999998999849018 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_potassium_concentration__K_i - 1.0000001000000049 * NV_Ith_S(mParameters, 5)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) + 0.0019999998999849018 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_potassium_concentration__K_i - 1.0000001000000049 * NV_Ith_S(mParameters, 5)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) : (7.4867781645490941e-5 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (6.4993004051833205 * var_chaste_interface__intracellular_potassium_concentration__K_i - 6.4993004051833205 * NV_Ith_S(mParameters, 5) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))); // nanoA - const double var_second_inward_calcium_current__i_siNa = (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (0.010000000499992593 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_sodium_concentration__Na_i - 0.99999990000000505 * NV_Ith_S(mParameters, 6)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d - 0.0099999994999245088 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_sodium_concentration__Na_i - 1.0000001000000049 * NV_Ith_S(mParameters, 6)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) + 0.0099999994999245088 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (6.4993004051833205 * var_chaste_interface__intracellular_sodium_concentration__Na_i - 1.0000001000000049 * NV_Ith_S(mParameters, 6)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d) : (0.00037433890822745472 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (6.4993004051833205 * var_chaste_interface__intracellular_sodium_concentration__Na_i - 6.4993004051833205 * NV_Ith_S(mParameters, 6) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))); // nanoA + const double var_second_inward_calcium_current__i_siK = (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8)) + 1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(-9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999999858739e-8))) - 1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8))) : (7.4867781645490941e-5 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))); // nanoA + const double var_second_inward_calcium_current__i_siNa = (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8)) + 9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(-9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999999858739e-8))) - 9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8))) : (0.00037433890822745472 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))); // nanoA const double d_dt_chaste_interface_var_second_inward_calcium_current_f_Ca_gate__f_Ca = 0.012 * ((1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) + 120 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) / (_lt_0_row[11]) - 0.001 * _lt_0_row[12] * var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca; // 1 / millisecond const double var_sodium_background_current__i_b_Na = 0.012 * var_chaste_interface__membrane__V - 0.32056512791634778 * log(NV_Ith_S(mParameters, 6) / var_chaste_interface__intracellular_sodium_concentration__Na_i); // nanoA const double var_sodium_potassium_pump__i_NaK = 14 * NV_Ith_S(mParameters, 5) * var_chaste_interface__intracellular_sodium_concentration__Na_i / ((1 + NV_Ith_S(mParameters, 5)) * (40 + var_chaste_interface__intracellular_sodium_concentration__Na_i)); // nanoA @@ -675,11 +675,11 @@ std::shared_ptr C const double var_fast_sodium_current_h_gate__beta_h = 2000 / (1 + 320 * exp(-7.5 + 0.10000000000000001 * NV_Ith_S(mParameters, 11) - 0.10000000000000001 * var_chaste_interface__membrane__V)); // per_second const double var_fast_sodium_current_h_gate__tau_h = 1 / (var_fast_sodium_current_h_gate__alpha_h + var_fast_sodium_current_h_gate__beta_h); // second const double var_membrane__i_Stim_converted = GetIntracellularAreaStimulus(var_chaste_interface__environment__time_converted); // uA_per_cm2 - const double var_second_inward_calcium_current_f_Ca_gate__alpha_f_Ca = (((var_chaste_interface__membrane__V >= -34.000000399999998) && (var_chaste_interface__membrane__V <= -33.999999600000002)) ? (-2.5000000000718892e-6 / (-1 + exp(-1.0000000000287557e-7)) + 1249999.9999640554 * (34.000000399999998 + var_chaste_interface__membrane__V) * (2.5000000000718892e-6 / (-1 + exp(1.0000000000287557e-7)) + 2.5000000000718892e-6 / (-1 + exp(-1.0000000000287557e-7)))) : (6.25 * (34 + var_chaste_interface__membrane__V) / (-1 + exp(8.5 + 0.25 * var_chaste_interface__membrane__V)))); // per_second + const double var_second_inward_calcium_current_f_Ca_gate__alpha_f_Ca = _lt_0_row[12]; // per_second const double var_second_inward_calcium_current_f_Ca_gate__beta_f_Ca = 12 / (_lt_0_row[11]); // per_second - const double var_second_inward_calcium_current__i_siCa = (((var_chaste_interface__membrane__V >= 49.999998664311967) && (var_chaste_interface__membrane__V <= 50.000001335688033)) ? (374338.90823576227 * (-49.999998664311967 + var_chaste_interface__membrane__V) * (1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999997780743e-8)) + 1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(-9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999997780743e-8))) - 1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999997780743e-8))) : (0.14973556329098189 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(3.7433890822745473 - 0.074867781645490947 * var_chaste_interface__membrane__V)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(3.7433890822745473 - 0.074867781645490947 * var_chaste_interface__membrane__V)))); // nanoA - const double var_second_inward_calcium_current__i_siK = (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8)) + 1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(-9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999999858739e-8))) - 1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8))) : (7.4867781645490941e-5 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(1.8716945411372736 - 0.037433890822745473 * var_chaste_interface__membrane__V)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(1.8716945411372736 - 0.037433890822745473 * var_chaste_interface__membrane__V)))); // nanoA - const double var_second_inward_calcium_current__i_siNa = (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8)) + 9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(-9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999999858739e-8))) - 9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8))) : (0.00037433890822745472 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(1.8716945411372736 - 0.037433890822745473 * var_chaste_interface__membrane__V)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(1.8716945411372736 - 0.037433890822745473 * var_chaste_interface__membrane__V)))); // nanoA + const double var_second_inward_calcium_current__i_siCa = (((var_chaste_interface__membrane__V >= 49.999998664311967) && (var_chaste_interface__membrane__V <= 50.000001335688033)) ? (374338.90823576227 * (-49.999998664311967 + var_chaste_interface__membrane__V) * (1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999997780743e-8)) + 1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(-9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999997780743e-8))) - 1.9999999999556149e-7 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * exp(9.9999999997780743e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999997780743e-8))) : (0.14973556329098189 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_calcium_concentration__Ca_i * exp(3.7433890822745473) - var_chaste_interface__extracellular_calcium_concentration__Ca_o * _lt_0_row[4]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[5]))); // nanoA + const double var_second_inward_calcium_current__i_siK = (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8)) + 1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(-9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999999858739e-8))) - 1.999999999997175e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8))) : (7.4867781645490941e-5 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_potassium_concentration__K_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 5) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))); // nanoA + const double var_second_inward_calcium_current__i_siNa = (((var_chaste_interface__membrane__V >= 49.999997328623934) && (var_chaste_interface__membrane__V <= 50.000002671376066)) ? (187169.45411399176 * (-49.999997328623934 + var_chaste_interface__membrane__V) * (9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8)) + 9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(-9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(-9.9999999999858739e-8))) - 9.9999999999858744e-10 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * exp(9.9999999999858739e-8)) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (1 - exp(9.9999999999858739e-8))) : (0.00037433890822745472 * (1 - var_chaste_interface__second_inward_calcium_current_f_Ca_gate__f_Ca) * (1 - var_chaste_interface__intracellular_calcium_concentration__Ca_i / (0.001 + var_chaste_interface__intracellular_calcium_concentration__Ca_i)) * (-50 + var_chaste_interface__membrane__V) * (var_chaste_interface__intracellular_sodium_concentration__Na_i * exp(1.8716945411372736) - NV_Ith_S(mParameters, 6) * _lt_0_row[2]) * NV_Ith_S(mParameters, 7) * var_chaste_interface__second_inward_calcium_current_d_gate__d / (_lt_0_row[3]))); // nanoA const double var_second_inward_calcium_current__i_si = var_second_inward_calcium_current__i_siCa + var_second_inward_calcium_current__i_siK + var_second_inward_calcium_current__i_siNa; // nanoA const double var_second_inward_calcium_current__i_si_converted = 0.001 * HeartConfig::Instance()->GetCapacitance() * var_second_inward_calcium_current__i_si / NV_Ith_S(mParameters, 8); // uA_per_cm2 const double var_second_inward_calcium_current_f_Ca_gate__tau_f_Ca = 1 / (var_second_inward_calcium_current_f_Ca_gate__alpha_f_Ca + var_second_inward_calcium_current_f_Ca_gate__beta_f_Ca); // second diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/dynamic_Shannon2004.cpp b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/dynamic_Shannon2004.cpp deleted file mode 100644 index 335cb8e3..00000000 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/dynamic_Shannon2004.cpp +++ /dev/null @@ -1,2106 +0,0 @@ -#ifdef CHASTE_CVODE -//! @file -//! -//! This source file was generated from CellML by chaste_codegen version (version omitted as unimportant) -//! -//! Model: shannon_wang_puglisi_weber_bers_2004_model_updated -//! -//! Processed by chaste_codegen: https://github.com/ModellingWebLab/chaste-codegen -//! (translator: chaste_codegen, model type: AnalyticCvode) -//! on (date omitted as unimportant) -//! -//! - -#include "dynamic_Shannon2004.hpp" -#include -#include -#include -#include "Exception.hpp" -#include "OdeSystemInformation.hpp" -#include "RegularStimulus.hpp" -#include "HeartConfig.hpp" -#include "IsNan.hpp" -#include "MathsCustomFunctions.hpp" -#include "ModelFactory.hpp" - -AbstractCvodeCell* Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::CreateMethod(boost::shared_ptr p_solver, boost::shared_ptr p_stimulus) { - return new Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode(p_solver, p_stimulus); -} - -bool Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::registered = ModelFactory::Register("dynamic_Shannon2004", "AnalyticCvode", (ModelFactory::TCreateMethod)Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::CreateMethod); - - - - boost::shared_ptr Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::UseCellMLDefaultStimulus() - { - // Use the default stimulus specified by CellML metadata - const double var_chaste_interface__cell__stim_amplitude_converted = -9.5 * HeartConfig::Instance()->GetCapacitance(); // uA_per_cm2 - const double var_chaste_interface__cell__stim_duration = 5; // millisecond - const double var_chaste_interface__cell__stim_period = 1000; // millisecond - const double var_chaste_interface__cell__stim_start = 100; // millisecond - boost::shared_ptr p_cellml_stim(new RegularStimulus( - -fabs(var_chaste_interface__cell__stim_amplitude_converted), - var_chaste_interface__cell__stim_duration, - var_chaste_interface__cell__stim_period, - var_chaste_interface__cell__stim_start - )); - mpIntracellularStimulus = p_cellml_stim; - return p_cellml_stim; - } - - double Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::GetIntracellularCalciumConcentration() - { - return NV_Ith_S(mStateVariables, 1); - } - - Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode(boost::shared_ptr pOdeSolver /* unused; should be empty */, boost::shared_ptr pIntracellularStimulus) - : AbstractCvodeCell( - pOdeSolver, - 45, - 0, - pIntracellularStimulus) - { - // Time units: millisecond - // - this->mpSystemInfo = OdeSystemInformation::Instance(); - Init(); - - // We have a default stimulus specified in the CellML file metadata - this->mHasDefaultStimulusFromCellML = true; - mUseAnalyticJacobian = true; - mHasAnalyticJacobian = true; - - NV_Ith_S(this->mParameters, 0) = 5.3480000000000003e-6; // (var_Jleak_SR__KSRleak) [per_millisecond] - NV_Ith_S(this->mParameters, 1) = 25; // (var_Jrel_SR__ks) [per_millisecond] - NV_Ith_S(this->mParameters, 2) = 0.00028600000000000001; // (var_Jpump_SR__V_max) [millimolar_per_millisecond] - NV_Ith_S(this->mParameters, 3) = 1; // (var_Na_buffer__conc_clamp) [dimensionless] - NV_Ith_S(this->mParameters, 4) = 15; // (var_model_parameters__Cli) [millimolar] - NV_Ith_S(this->mParameters, 5) = 135; // (var_model_parameters__Ki) [millimolar] - NV_Ith_S(this->mParameters, 6) = 1.8; // (var_model_parameters__Cao) [millimolar] - NV_Ith_S(this->mParameters, 7) = 150; // (var_model_parameters__Clo) [millimolar] - NV_Ith_S(this->mParameters, 8) = 5.4000000000000004; // (var_model_parameters__Ko) [millimolar] - NV_Ith_S(this->mParameters, 9) = 140; // (var_model_parameters__Nao) [millimolar] - NV_Ith_S(this->mParameters, 10) = 96486.699999999997; // (var_model_parameters__F) [coulomb_per_mole] - NV_Ith_S(this->mParameters, 11) = 8314.2999999999993; // (var_model_parameters__R) [joule_per_kilomole_kelvin] - NV_Ith_S(this->mParameters, 12) = 0.00054000000000000001; // (var_ICaL__PCa) [litre_per_farad_millisecond] - NV_Ith_S(this->mParameters, 13) = 0.0089999999999999993; // (var_IClb__G_ClBk) [milliS_per_microF] - NV_Ith_S(this->mParameters, 14) = 16; // (var_INa__G_INa) [milliS_per_microF] - NV_Ith_S(this->mParameters, 15) = 0; // (var_INa__perc_reduced_inact_for_IpNa) [dimensionless] - NV_Ith_S(this->mParameters, 16) = 0; // (var_INa__shift_INa_inact) [millivolt] - NV_Ith_S(this->mParameters, 17) = 0.02; // (var_Itof__G_tof) [milliS_per_microF] - NV_Ith_S(this->mParameters, 18) = 0.90000000000000002; // (var_IK1__G_K1_max) [milliS_per_microF] - NV_Ith_S(this->mParameters, 19) = 0.029999999999999999; // (var_IKr__G_IKr_const) [milliS_per_microF] - NV_Ith_S(this->mParameters, 20) = 0.070000000000000007; // (var_IKs__G_Ks_max) [milliS_per_microF] - NV_Ith_S(this->mParameters, 21) = 0.059999999999999998; // (var_Itos__G_tos) [milliS_per_microF] - NV_Ith_S(this->mParameters, 22) = 9; // (var_INaCa__V_max) [microA_per_microF] - NV_Ith_S(this->mParameters, 23) = 310; // (var_model_parameters__T) [kelvin] - } - - Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::~Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode() - { - } - - - double Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::GetIIonic(const std::vector* pStateVariables) - { - // For state variable interpolation (SVI) we read in interpolated state variables, - // otherwise for ionic current interpolation (ICI) we use the state variables of this model (node). - N_Vector rY; - bool made_new_cvode_vector = false; - if (!pStateVariables) - { - rY = rGetStateVariables(); - } - else - { - made_new_cvode_vector = true; - rY = MakeNVector(*pStateVariables); - } - double var_chaste_interface__cell__V = (mSetVoltageDerivativeToZero ? this->mFixedVoltage : NV_Ith_S(rY, 0)); - // Units: millivolt; Initial value: -85.721630473733 - double var_chaste_interface__INa_h_gate__h = NV_Ith_S(rY, 2); - // Units: dimensionless; Initial value: 0.98714602875678 - double var_chaste_interface__INa_j_gate__j = NV_Ith_S(rY, 3); - // Units: dimensionless; Initial value: 0.991826348770428 - double var_chaste_interface__INa_m_gate__m = NV_Ith_S(rY, 4); - // Units: dimensionless; Initial value: 0.0013702407736465 - double var_chaste_interface__IKr_Xr_gate__Xr = NV_Ith_S(rY, 5); - // Units: dimensionless; Initial value: 0.00846906175020028 - double var_chaste_interface__IKs_Xs_gate__Xs = NV_Ith_S(rY, 6); - // Units: dimensionless; Initial value: 0.00613557812033723 - double var_chaste_interface__Itos_X_gate__X_tos = NV_Ith_S(rY, 7); - // Units: dimensionless; Initial value: 0.00401072468238921 - double var_chaste_interface__Itos_Y_gate__Y_tos = NV_Ith_S(rY, 8); - // Units: dimensionless; Initial value: 0.31555225368514 - double var_chaste_interface__Itos_R_gate__R_tos = NV_Ith_S(rY, 9); - // Units: dimensionless; Initial value: 0.402577243036347 - double var_chaste_interface__Itof_X_gate__X_tof = NV_Ith_S(rY, 10); - // Units: dimensionless; Initial value: 0.00401068798369438 - double var_chaste_interface__Itof_Y_gate__Y_tof = NV_Ith_S(rY, 11); - // Units: dimensionless; Initial value: 0.994632857675454 - double var_chaste_interface__ICaL_d_gate__d = NV_Ith_S(rY, 12); - // Units: dimensionless; Initial value: 6.99526086177479e-06 - double var_chaste_interface__ICaL_f_gate__f = NV_Ith_S(rY, 13); - // Units: dimensionless; Initial value: 1.00067601563206 - double var_chaste_interface__ICaL_fCa_gate__fCaB_SL = NV_Ith_S(rY, 14); - // Units: dimensionless; Initial value: 0.0150193299768419 - double var_chaste_interface__ICaL_fCa_gate__fCaB_jct = NV_Ith_S(rY, 15); - // Units: dimensionless; Initial value: 0.0244048782575591 - double var_chaste_interface__Na_buffer__Na_SL = NV_Ith_S(rY, 19); - // Units: millimolar; Initial value: 8.87161932058707 - double var_chaste_interface__Na_buffer__Na_jct = NV_Ith_S(rY, 20); - // Units: millimolar; Initial value: 8.87031835089116 - double var_chaste_interface__Na_buffer__Nai = NV_Ith_S(rY, 23); - // Units: millimolar; Initial value: 8.87200572571131 - double var_chaste_interface__Ca_buffer__Ca_SL = NV_Ith_S(rY, 25); - // Units: millimolar; Initial value: 0.000104971310105451 - double var_chaste_interface__Ca_buffer__Ca_jct = NV_Ith_S(rY, 26); - // Units: millimolar; Initial value: 0.000174045152623969 - - const double var_ICaL__Fx_ICaL_SL = 0.10000000000000001; // dimensionless - const double var_ICaL__Fx_ICaL_jct = 0.90000000000000002; // dimensionless - const double var_ICaL__PK = 2.7000000000000001e-7; // litre_per_farad_millisecond - const double var_ICaL__PNa = 1.4999999999999999e-8; // litre_per_farad_millisecond - const double var_ICaL__Q10_CaL = 1.8; // dimensionless - const double var_ICaL__gamma_Cai = 0.34100000000000003; // dimensionless - const double var_ICaL__gamma_Cao = 0.34100000000000003; // dimensionless - const double var_ICaL__gamma_Ki = 0.75; // dimensionless - const double var_ICaL__gamma_Ko = 0.75; // dimensionless - const double var_ICaL__gamma_Nai = 0.75; // dimensionless - const double var_ICaL__gamma_Nao = 0.75; // dimensionless - const double var_ICaL_fCa_gate__fCa_SL = 1 - var_chaste_interface__ICaL_fCa_gate__fCaB_SL; // dimensionless - const double var_ICaL_fCa_gate__fCa_jct = 1 - var_chaste_interface__ICaL_fCa_gate__fCaB_jct; // dimensionless - const double var_ICab__Fx_CaBk_SL = 0.89000000000000001; // dimensionless - const double var_ICab__Fx_CaBk_jct = 0.11; // dimensionless - const double var_ICab__G_CaBk = 0.00025129999999999998; // milliS_per_microF - const double var_ICap__Fx_SLCaP_SL = 0.89000000000000001; // dimensionless - const double var_ICap__Fx_SLCaP_jct = 0.11; // dimensionless - const double var_ICap__H = 1.6000000000000001; // dimensionless - const double var_ICap__Km = 0.00050000000000000001; // millimolar - const double var_ICap__Q10_SLCaP = 2.3500000000000001; // dimensionless - const double var_ICap__V_maxAF = 0.067299999999999999; // microA_per_microF - const double var_ICl_Ca__Fx_Cl_SL = 0.89000000000000001; // dimensionless - const double var_ICl_Ca__Fx_Cl_jct = 0.11; // dimensionless - const double var_ICl_Ca__G_Cl = 0.109625; // milliS_per_microF - const double var_ICl_Ca__Kd_ClCa = 0.10000000000000001; // millimolar - const double var_IKs__Fx_Ks_SL = 0.89000000000000001; // dimensionless - const double var_IKs__Fx_Ks_jct = 0.11; // dimensionless - const double var_IKs__pCa_SL = 3 - log10(var_chaste_interface__Ca_buffer__Ca_SL); // dimensionless - const double var_IKs__G_Ks_SL = (0.057000000000000002 + 0.19 / (1 + exp(-12 + 1.6666666666666667 * var_IKs__pCa_SL))) * NV_Ith_S(mParameters, 20); // milliS_per_microF - const double var_IKs__pCa_jct = 3 - log10(var_chaste_interface__Ca_buffer__Ca_jct); // dimensionless - const double var_IKs__G_Ks_jct = (0.057000000000000002 + 0.19 / (1 + exp(-12 + 1.6666666666666667 * var_IKs__pCa_jct))) * NV_Ith_S(mParameters, 20); // milliS_per_microF - const double var_IKs__pKNa = 0.018329999999999999; // dimensionless - const double var_INa__Fx_Na_SL = 0.89000000000000001; // dimensionless - const double var_INa__Fx_Na_jct = 0.11; // dimensionless - const double var_INaCa__Fx_NCX_SL = 0.89000000000000001; // dimensionless - const double var_INaCa__Fx_NCX_jct = 0.11; // dimensionless - const double var_INaCa__HNa = 3; // dimensionless - const double var_INaCa__K_mCai = 0.0035899999999999999; // millimolar - const double var_INaCa__K_mCao = 1.3; // millimolar - const double var_INaCa__K_mNai = 12.289999999999999; // millimolar - const double var_INaCa__K_mNao = 87.5; // millimolar - const double var_INaCa__Kd_act = 0.00025599999999999999; // millimolar - const double var_INaCa__Ka_SL = 1 / (1 + pow(var_INaCa__Kd_act, 3) / pow(var_chaste_interface__Ca_buffer__Ca_SL, 3)); // dimensionless - const double var_INaCa__Ka_jct = 1 / (1 + pow(var_INaCa__Kd_act, 3) / pow(var_chaste_interface__Ca_buffer__Ca_jct, 3)); // dimensionless - const double var_INaCa__Q10_NCX = 1.5700000000000001; // dimensionless - const double var_INaCa__eta = 0.34999999999999998; // dimensionless - const double var_INaCa__ksat = 0.27000000000000002; // dimensionless - const double var_INaK__Fx_NaK_SL = 0.89000000000000001; // dimensionless - const double var_INaK__Fx_NaK_jct = 0.11; // dimensionless - const double var_INaK__H_NaK = 4; // dimensionless - const double var_INaK__I_NaK_max = 1.9099999999999999; // microA_per_microF - const double var_INaK__Km_Ko = 1.5; // millimolar - const double var_INaK__Km_Nai = 11; // millimolar - const double var_INaK__Q10_Km_Nai = 1.49; // dimensionless - const double var_INaK__Q10_NaK = 1.6299999999999999; // dimensionless - const double var_INa__openProb = pow(var_chaste_interface__INa_m_gate__m, 3) * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j; // dimensionless - const double var_INab__Fx_NaBk_SL = 0.89000000000000001; // dimensionless - const double var_INab__Fx_NaBk_jct = 0.11; // dimensionless - const double var_INab__G_NaBk = 0.00029700000000000001; // milliS_per_microF - const double var_IKr_Rr_gate__Rr = 1 / (1 + exp(1.4732142857142858 + 0.044642857142857144 * var_chaste_interface__cell__V)); // dimensionless - const double var_IK1__G_K1 = 0.43033148291193518 * sqrt(NV_Ith_S(mParameters, 8)) * NV_Ith_S(mParameters, 18); // milliS_per_microF - const double var_IKr__G_IKr = 0.43033148291193518 * sqrt(NV_Ith_S(mParameters, 8)) * NV_Ith_S(mParameters, 19); // milliS_per_microF - const double var_INaK__sigma = -0.14285714285714285 + 0.14285714285714285 * exp(0.01485884101040119 * NV_Ith_S(mParameters, 9)); // dimensionless - const double var_ICaL__Q_CaL = pow(var_ICaL__Q10_CaL, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_ICaL__temp = 0.45000000000000001 * pow(NV_Ith_S(mParameters, 10), 2) * var_ICaL__Q_CaL * var_chaste_interface__ICaL_d_gate__d * var_chaste_interface__ICaL_f_gate__f * var_chaste_interface__cell__V / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)); // coulomb_per_mole - const double var_ICaL__i_CaL_Ca_SL = 4 * (-var_ICaL__gamma_Cao * NV_Ith_S(mParameters, 6) + var_chaste_interface__Ca_buffer__Ca_SL * var_ICaL__gamma_Cai * exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_SL * NV_Ith_S(mParameters, 12) * var_ICaL__temp * var_ICaL_fCa_gate__fCa_SL / (-1 + exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Ca_jct = 4 * (-var_ICaL__gamma_Cao * NV_Ith_S(mParameters, 6) + var_chaste_interface__Ca_buffer__Ca_jct * var_ICaL__gamma_Cai * exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_jct * NV_Ith_S(mParameters, 12) * var_ICaL__temp * var_ICaL_fCa_gate__fCa_jct / (-1 + exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_K = (var_ICaL__Fx_ICaL_SL * var_ICaL_fCa_gate__fCa_SL + var_ICaL__Fx_ICaL_jct * var_ICaL_fCa_gate__fCa_jct) * (-var_ICaL__gamma_Ko * NV_Ith_S(mParameters, 8) + var_ICaL__gamma_Ki * NV_Ith_S(mParameters, 5) * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__PK * var_ICaL__temp / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Na_SL = (-var_ICaL__gamma_Nao * NV_Ith_S(mParameters, 9) + var_ICaL__gamma_Nai * var_chaste_interface__Na_buffer__Na_SL * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_SL * var_ICaL__PNa * var_ICaL__temp * var_ICaL_fCa_gate__fCa_SL / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Na_jct = (-var_ICaL__gamma_Nao * NV_Ith_S(mParameters, 9) + var_ICaL__gamma_Nai * var_chaste_interface__Na_buffer__Na_jct * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_jct * var_ICaL__PNa * var_ICaL__temp * var_ICaL_fCa_gate__fCa_jct / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL = var_ICaL__i_CaL_Ca_SL + var_ICaL__i_CaL_Ca_jct + var_ICaL__i_CaL_K + var_ICaL__i_CaL_Na_SL + var_ICaL__i_CaL_Na_jct; // microA_per_microF - const double var_ICaL__i_CaL_converted = HeartConfig::Instance()->GetCapacitance() * var_ICaL__i_CaL; // uA_per_cm2 - const double var_ICap__Q_SLCaP = pow(var_ICap__Q10_SLCaP, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_ICap__i_Cap_SL = var_ICap__Fx_SLCaP_SL * var_ICap__Q_SLCaP * var_ICap__V_maxAF / (1 + pow((var_ICap__Km / var_chaste_interface__Ca_buffer__Ca_SL), var_ICap__H)); // microA_per_microF - const double var_ICap__i_Cap_jct = var_ICap__Fx_SLCaP_jct * var_ICap__Q_SLCaP * var_ICap__V_maxAF / (1 + pow((var_ICap__Km / var_chaste_interface__Ca_buffer__Ca_jct), var_ICap__H)); // microA_per_microF - const double var_ICap__i_Cap = var_ICap__i_Cap_SL + var_ICap__i_Cap_jct; // microA_per_microF - const double var_ICap__i_Cap_converted = HeartConfig::Instance()->GetCapacitance() * var_ICap__i_Cap; // uA_per_cm2 - const double var_IKs__E_Ks = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log((var_IKs__pKNa * NV_Ith_S(mParameters, 9) + NV_Ith_S(mParameters, 8)) / (var_IKs__pKNa * var_chaste_interface__Na_buffer__Nai + NV_Ith_S(mParameters, 5))) / NV_Ith_S(mParameters, 10); // millivolt - const double var_IKs__i_Ks_SL = pow(var_chaste_interface__IKs_Xs_gate__Xs, 2) * (-var_IKs__E_Ks + var_chaste_interface__cell__V) * var_IKs__Fx_Ks_SL * var_IKs__G_Ks_SL; // microA_per_microF - const double var_IKs__i_Ks_jct = pow(var_chaste_interface__IKs_Xs_gate__Xs, 2) * (-var_IKs__E_Ks + var_chaste_interface__cell__V) * var_IKs__Fx_Ks_jct * var_IKs__G_Ks_jct; // microA_per_microF - const double var_IKs__i_Ks = var_IKs__i_Ks_SL + var_IKs__i_Ks_jct; // microA_per_microF - const double var_IKs__i_Ks_converted = HeartConfig::Instance()->GetCapacitance() * var_IKs__i_Ks; // uA_per_cm2 - const double var_INaCa__Q_NCX = pow(var_INaCa__Q10_NCX, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_INaCa__temp_SL = (pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) * exp(var_INaCa__eta * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))) - pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_SL * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) / (1 + var_INaCa__ksat * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // millimolar4 - const double var_INaCa__i_NaCa_SL = var_INaCa__Fx_NCX_SL * var_INaCa__Ka_SL * var_INaCa__Q_NCX * NV_Ith_S(mParameters, 22) * var_INaCa__temp_SL / (pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * var_INaCa__K_mCao + pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_SL + pow(var_INaCa__K_mNao, var_INaCa__HNa) * (1 + var_chaste_interface__Ca_buffer__Ca_SL / var_INaCa__K_mCai) * var_chaste_interface__Ca_buffer__Ca_SL + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * (1 + pow((var_chaste_interface__Na_buffer__Na_SL / var_INaCa__K_mNai), var_INaCa__HNa)) * var_INaCa__K_mCai); // microA_per_microF - const double var_INaCa__temp_jct = (pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) * exp(var_INaCa__eta * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))) - pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_jct * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) / (1 + var_INaCa__ksat * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // millimolar4 - const double var_INaCa__i_NaCa_jct = var_INaCa__Fx_NCX_jct * var_INaCa__Ka_jct * var_INaCa__Q_NCX * NV_Ith_S(mParameters, 22) * var_INaCa__temp_jct / (pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * var_INaCa__K_mCao + pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_jct + pow(var_INaCa__K_mNao, var_INaCa__HNa) * (1 + var_chaste_interface__Ca_buffer__Ca_jct / var_INaCa__K_mCai) * var_chaste_interface__Ca_buffer__Ca_jct + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * (1 + pow((var_chaste_interface__Na_buffer__Na_jct / var_INaCa__K_mNai), var_INaCa__HNa)) * var_INaCa__K_mCai); // microA_per_microF - const double var_INaCa__i_NaCa = var_INaCa__i_NaCa_SL + var_INaCa__i_NaCa_jct; // microA_per_microF - const double var_INaCa__i_NaCa_converted = HeartConfig::Instance()->GetCapacitance() * var_INaCa__i_NaCa; // uA_per_cm2 - const double var_INaK__Q_Km_Nai = pow(var_INaK__Q10_Km_Nai, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_INaK__Q_NaK = pow(var_INaK__Q10_NaK, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_INaK__f_NaK = 1 / (1 + 0.1245 * exp(-0.10000000000000001 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))) + 0.036499999999999998 * var_INaK__sigma * exp(-var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // dimensionless - const double var_INaK__i_NaK_SL = var_INaK__Fx_NaK_SL * var_INaK__I_NaK_max * var_INaK__Q_NaK * var_INaK__f_NaK * NV_Ith_S(mParameters, 8) / ((1 + pow((var_INaK__Km_Nai * var_INaK__Q_Km_Nai / var_chaste_interface__Na_buffer__Na_SL), var_INaK__H_NaK)) * (var_INaK__Km_Ko + NV_Ith_S(mParameters, 8))); // microA_per_microF - const double var_INaK__i_NaK_jct = var_INaK__Fx_NaK_jct * var_INaK__I_NaK_max * var_INaK__Q_NaK * var_INaK__f_NaK * NV_Ith_S(mParameters, 8) / ((1 + pow((var_INaK__Km_Nai * var_INaK__Q_Km_Nai / var_chaste_interface__Na_buffer__Na_jct), var_INaK__H_NaK)) * (var_INaK__Km_Ko + NV_Ith_S(mParameters, 8))); // microA_per_microF - const double var_INaK__i_NaK = var_INaK__i_NaK_SL + var_INaK__i_NaK_jct; // microA_per_microF - const double var_reversal_potentials__E_Ca_SL = 0.5 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 6) / var_chaste_interface__Ca_buffer__Ca_SL) / NV_Ith_S(mParameters, 10); // millivolt - const double var_ICab__i_Cab_SL = (-var_reversal_potentials__E_Ca_SL + var_chaste_interface__cell__V) * var_ICab__Fx_CaBk_SL * var_ICab__G_CaBk; // microA_per_microF - const double var_reversal_potentials__E_Ca_jct = 0.5 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 6) / var_chaste_interface__Ca_buffer__Ca_jct) / NV_Ith_S(mParameters, 10); // millivolt - const double var_ICab__i_Cab_jct = (-var_reversal_potentials__E_Ca_jct + var_chaste_interface__cell__V) * var_ICab__Fx_CaBk_jct * var_ICab__G_CaBk; // microA_per_microF - const double var_ICab__i_Cab = var_ICab__i_Cab_SL + var_ICab__i_Cab_jct; // microA_per_microF - const double var_ICab__i_Cab_converted = HeartConfig::Instance()->GetCapacitance() * var_ICab__i_Cab; // uA_per_cm2 - const double var_reversal_potentials__E_Cl = -NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 7) / NV_Ith_S(mParameters, 4)) / NV_Ith_S(mParameters, 10); // millivolt - const double var_ICl_Ca__i_Cl_Ca = (-var_reversal_potentials__E_Cl + var_chaste_interface__cell__V) * (var_ICl_Ca__Fx_Cl_SL / (1 + var_ICl_Ca__Kd_ClCa / var_chaste_interface__Ca_buffer__Ca_SL) + var_ICl_Ca__Fx_Cl_jct / (1 + var_ICl_Ca__Kd_ClCa / var_chaste_interface__Ca_buffer__Ca_jct)) * var_ICl_Ca__G_Cl; // microA_per_microF - const double var_IClb__i_Clb = (-var_reversal_potentials__E_Cl + var_chaste_interface__cell__V) * NV_Ith_S(mParameters, 13); // microA_per_microF - const double var_IClb__i_Clb_converted = HeartConfig::Instance()->GetCapacitance() * var_IClb__i_Clb; // uA_per_cm2 - const double var_reversal_potentials__E_K = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 8) / NV_Ith_S(mParameters, 5)) / NV_Ith_S(mParameters, 10); // millivolt - const double var_IK1_K1_gate__alpha_K1 = 1.02 / (1 + exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__cell__V - 0.23849999999999999 * var_reversal_potentials__E_K)); // per_millisecond - const double var_IK1_K1_gate__beta_K1 = (exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__cell__V - 0.061749999999999999 * var_reversal_potentials__E_K) + 0.49124000000000001 * exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__cell__V - 0.080320000000000003 * var_reversal_potentials__E_K)) / (1 + exp(-2.4444678999999998 + 0.51429999999999998 * var_reversal_potentials__E_K - 0.51429999999999998 * var_chaste_interface__cell__V)); // per_millisecond - const double var_IK1_K1_gate__K1_infinity = var_IK1_K1_gate__alpha_K1 / (var_IK1_K1_gate__alpha_K1 + var_IK1_K1_gate__beta_K1); // dimensionless - const double var_IK1__i_K1 = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * var_IK1__G_K1 * var_IK1_K1_gate__K1_infinity; // microA_per_microF - const double var_IK1__i_K1_converted = HeartConfig::Instance()->GetCapacitance() * var_IK1__i_K1; // uA_per_cm2 - const double var_IKr__i_Kr = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * var_IKr__G_IKr * var_IKr_Rr_gate__Rr * var_chaste_interface__IKr_Xr_gate__Xr; // microA_per_microF - const double var_IKr__i_Kr_converted = HeartConfig::Instance()->GetCapacitance() * var_IKr__i_Kr; // uA_per_cm2 - const double var_Itof__i_tof = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * NV_Ith_S(mParameters, 17) * var_chaste_interface__Itof_X_gate__X_tof * var_chaste_interface__Itof_Y_gate__Y_tof; // microA_per_microF - const double var_Itof__i_tof_converted = HeartConfig::Instance()->GetCapacitance() * var_Itof__i_tof; // uA_per_cm2 - const double var_Itos__i_tos = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * (0.5 * var_chaste_interface__Itos_R_gate__R_tos + var_chaste_interface__Itos_Y_gate__Y_tos) * NV_Ith_S(mParameters, 21) * var_chaste_interface__Itos_X_gate__X_tos; // microA_per_microF - const double var_Itos__i_tos_converted = HeartConfig::Instance()->GetCapacitance() * var_Itos__i_tos; // uA_per_cm2 - const double var_reversal_potentials__E_Na_SL = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 9) / var_chaste_interface__Na_buffer__Na_SL) / NV_Ith_S(mParameters, 10); // millivolt - const double var_INa__i_Na_SL = (-var_reversal_potentials__E_Na_SL + var_chaste_interface__cell__V) * var_INa__Fx_Na_SL * NV_Ith_S(mParameters, 14) * var_INa__openProb; // microA_per_microF - const double var_INab__i_Nab_SL = (-var_reversal_potentials__E_Na_SL + var_chaste_interface__cell__V) * var_INab__Fx_NaBk_SL * var_INab__G_NaBk; // microA_per_microF - const double var_reversal_potentials__E_Na_jct = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 9) / var_chaste_interface__Na_buffer__Na_jct) / NV_Ith_S(mParameters, 10); // millivolt - const double var_INa__i_Na_jct = (-var_reversal_potentials__E_Na_jct + var_chaste_interface__cell__V) * var_INa__Fx_Na_jct * NV_Ith_S(mParameters, 14) * var_INa__openProb; // microA_per_microF - const double var_INa__i_Na = var_INa__i_Na_SL + var_INa__i_Na_jct; // microA_per_microF - const double var_INa__i_Na_converted = HeartConfig::Instance()->GetCapacitance() * var_INa__i_Na; // uA_per_cm2 - const double var_INab__i_Nab_jct = (-var_reversal_potentials__E_Na_jct + var_chaste_interface__cell__V) * var_INab__Fx_NaBk_jct * var_INab__G_NaBk; // microA_per_microF - const double var_INab__i_Nab = var_INab__i_Nab_SL + var_INab__i_Nab_jct; // microA_per_microF - const double var_INab__i_Nab_converted = HeartConfig::Instance()->GetCapacitance() * var_INab__i_Nab; // uA_per_cm2 - const double var_chaste_interface__i_ionic = HeartConfig::Instance()->GetCapacitance() * var_ICl_Ca__i_Cl_Ca + HeartConfig::Instance()->GetCapacitance() * var_INaK__i_NaK + var_ICaL__i_CaL_converted + var_ICab__i_Cab_converted + var_ICap__i_Cap_converted + var_IClb__i_Clb_converted + var_IK1__i_K1_converted + var_IKr__i_Kr_converted + var_IKs__i_Ks_converted + var_INa__i_Na_converted + var_INaCa__i_NaCa_converted + var_INab__i_Nab_converted + var_Itof__i_tof_converted + var_Itos__i_tos_converted; // uA_per_cm2 - - const double i_ionic = var_chaste_interface__i_ionic; - if (made_new_cvode_vector) - { - DeleteVector(rY); - } - EXCEPT_IF_NOT(!std::isnan(i_ionic)); - return i_ionic; - } - - void Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::EvaluateYDerivatives(double var_chaste_interface__environment__time, const N_Vector rY, N_Vector rDY) - { - // Inputs: - // Time units: millisecond - double var_chaste_interface__cell__V = (mSetVoltageDerivativeToZero ? this->mFixedVoltage : NV_Ith_S(rY, 0)); - // Units: millivolt; Initial value: -85.721630473733 - double var_chaste_interface__Ca_buffer__Cai = NV_Ith_S(rY, 1); - // Units: millimolar; Initial value: 8.6504944644883e-05 - double var_chaste_interface__INa_h_gate__h = NV_Ith_S(rY, 2); - // Units: dimensionless; Initial value: 0.98714602875678 - double var_chaste_interface__INa_j_gate__j = NV_Ith_S(rY, 3); - // Units: dimensionless; Initial value: 0.991826348770428 - double var_chaste_interface__INa_m_gate__m = NV_Ith_S(rY, 4); - // Units: dimensionless; Initial value: 0.0013702407736465 - double var_chaste_interface__IKr_Xr_gate__Xr = NV_Ith_S(rY, 5); - // Units: dimensionless; Initial value: 0.00846906175020028 - double var_chaste_interface__IKs_Xs_gate__Xs = NV_Ith_S(rY, 6); - // Units: dimensionless; Initial value: 0.00613557812033723 - double var_chaste_interface__Itos_X_gate__X_tos = NV_Ith_S(rY, 7); - // Units: dimensionless; Initial value: 0.00401072468238921 - double var_chaste_interface__Itos_Y_gate__Y_tos = NV_Ith_S(rY, 8); - // Units: dimensionless; Initial value: 0.31555225368514 - double var_chaste_interface__Itos_R_gate__R_tos = NV_Ith_S(rY, 9); - // Units: dimensionless; Initial value: 0.402577243036347 - double var_chaste_interface__Itof_X_gate__X_tof = NV_Ith_S(rY, 10); - // Units: dimensionless; Initial value: 0.00401068798369438 - double var_chaste_interface__Itof_Y_gate__Y_tof = NV_Ith_S(rY, 11); - // Units: dimensionless; Initial value: 0.994632857675454 - double var_chaste_interface__ICaL_d_gate__d = NV_Ith_S(rY, 12); - // Units: dimensionless; Initial value: 6.99526086177479e-06 - double var_chaste_interface__ICaL_f_gate__f = NV_Ith_S(rY, 13); - // Units: dimensionless; Initial value: 1.00067601563206 - double var_chaste_interface__ICaL_fCa_gate__fCaB_SL = NV_Ith_S(rY, 14); - // Units: dimensionless; Initial value: 0.0150193299768419 - double var_chaste_interface__ICaL_fCa_gate__fCaB_jct = NV_Ith_S(rY, 15); - // Units: dimensionless; Initial value: 0.0244048782575591 - double var_chaste_interface__Jrel_SR__R = NV_Ith_S(rY, 16); - // Units: dimensionless; Initial value: 0.890917121306535 - double var_chaste_interface__Jrel_SR__I = NV_Ith_S(rY, 17); - // Units: dimensionless; Initial value: 8.71752603681652e-08 - double var_chaste_interface__Jrel_SR__O = NV_Ith_S(rY, 18); - // Units: dimensionless; Initial value: 7.1199533741995e-07 - double var_chaste_interface__Na_buffer__Na_SL = NV_Ith_S(rY, 19); - // Units: millimolar; Initial value: 8.87161932058707 - double var_chaste_interface__Na_buffer__Na_jct = NV_Ith_S(rY, 20); - // Units: millimolar; Initial value: 8.87031835089116 - double var_chaste_interface__Na_buffer__Na_SL_buf = NV_Ith_S(rY, 21); - // Units: millimolar; Initial value: 0.77606800956492 - double var_chaste_interface__Na_buffer__Na_jct_buf = NV_Ith_S(rY, 22); - // Units: millimolar; Initial value: 3.55668431730337 - double var_chaste_interface__Na_buffer__Nai = NV_Ith_S(rY, 23); - // Units: millimolar; Initial value: 8.87200572571131 - double var_chaste_interface__Ca_buffer__Ca_SR = NV_Ith_S(rY, 24); - // Units: millimolar; Initial value: 0.547125831028543 - double var_chaste_interface__Ca_buffer__Ca_SL = NV_Ith_S(rY, 25); - // Units: millimolar; Initial value: 0.000104971310105451 - double var_chaste_interface__Ca_buffer__Ca_jct = NV_Ith_S(rY, 26); - // Units: millimolar; Initial value: 0.000174045152623969 - double var_chaste_interface__Ca_buffer__Ca_SLB_SL = NV_Ith_S(rY, 27); - // Units: millimolar; Initial value: 0.00973710481246467 - double var_chaste_interface__Ca_buffer__Ca_SLB_jct = NV_Ith_S(rY, 28); - // Units: millimolar; Initial value: 0.00774564218017916 - double var_chaste_interface__Ca_buffer__Ca_SLHigh_SL = NV_Ith_S(rY, 29); - // Units: millimolar; Initial value: 0.113168405274355 - double var_chaste_interface__Ca_buffer__Ca_SLHigh_jct = NV_Ith_S(rY, 30); - // Units: millimolar; Initial value: 0.0772568134367606 - double var_chaste_interface__Ca_buffer__Ca_Calsequestrin = NV_Ith_S(rY, 31); - // Units: millimolar; Initial value: 1.18828527890062 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC = NV_Ith_S(rY, 32); - // Units: millimolar; Initial value: 0.00886665040283094 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg = NV_Ith_S(rY, 33); - // Units: millimolar; Initial value: 0.117873278193472 - double var_chaste_interface__cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg = NV_Ith_S(rY, 34); - // Units: millimolar; Initial value: 0.0103906683506505 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_Calmodulin = NV_Ith_S(rY, 35); - // Units: millimolar; Initial value: 0.000293073957804278 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_Myosin = NV_Ith_S(rY, 36); - // Units: millimolar; Initial value: 0.00195899238146509 - double var_chaste_interface__cytosolic_Ca_buffer__Mg_Myosin = NV_Ith_S(rY, 37); - // Units: millimolar; Initial value: 0.137523520981802 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_SRB = NV_Ith_S(rY, 38); - // Units: millimolar; Initial value: 0.00215728901718264 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol = NV_Ith_S(rY, 39); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL = NV_Ith_S(rY, 40); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct = NV_Ith_S(rY, 41); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol = NV_Ith_S(rY, 42); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL = NV_Ith_S(rY, 43); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct = NV_Ith_S(rY, 44); - // Units: millimolar; Initial value: 0.0 - - // Mathematics - double d_dt_chaste_interface_var_cell__V; - const double var_Ca_buffer__Bmax_Calsequestrin = 0.14000000000000001; // millimolar - const double var_Ca_buffer__Bmax_SLB_SL = 0.037400000000000003; // millimolar - const double var_Ca_buffer__Bmax_SLB_jct = 0.0045999999999999999; // millimolar - const double var_Ca_buffer__Bmax_SLHigh_SL = 0.0134; // millimolar - const double var_Ca_buffer__Bmax_SLHigh_jct = 0.00165; // millimolar - const double var_Ca_buffer__koff_Calsequestrin = 65; // per_millisecond - const double var_Ca_buffer__koff_SLB = 1.3; // per_millisecond - const double var_Ca_buffer__koff_SLHigh = 0.029999999999999999; // per_millisecond - const double var_Ca_buffer__kon_Calsequestrin = 100; // per_millimolar_per_millisecond - const double var_Ca_buffer__kon_SL = 100; // per_millimolar_per_millisecond - const double var_ICaL__Fx_ICaL_SL = 0.10000000000000001; // dimensionless - const double var_ICaL__Fx_ICaL_jct = 0.90000000000000002; // dimensionless - const double var_ICaL__PNa = 1.4999999999999999e-8; // litre_per_farad_millisecond - const double var_ICaL__Q10_CaL = 1.8; // dimensionless - const double var_ICaL__gamma_Cai = 0.34100000000000003; // dimensionless - const double var_ICaL__gamma_Cao = 0.34100000000000003; // dimensionless - const double var_ICaL__gamma_Nai = 0.75; // dimensionless - const double var_ICaL__gamma_Nao = 0.75; // dimensionless - const double d_dt_chaste_interface_var_ICaL_fCa_gate__fCaB_SL = -0.011900000000000001 * var_chaste_interface__ICaL_fCa_gate__fCaB_SL + 1.7 * (1 - var_chaste_interface__ICaL_fCa_gate__fCaB_SL) * var_chaste_interface__Ca_buffer__Ca_SL; // 1 / millisecond - const double d_dt_chaste_interface_var_ICaL_fCa_gate__fCaB_jct = -0.011900000000000001 * var_chaste_interface__ICaL_fCa_gate__fCaB_jct + 1.7 * (1 - var_chaste_interface__ICaL_fCa_gate__fCaB_jct) * var_chaste_interface__Ca_buffer__Ca_jct; // 1 / millisecond - const double var_ICaL_fCa_gate__fCa_SL = 1 - var_chaste_interface__ICaL_fCa_gate__fCaB_SL; // dimensionless - const double var_ICaL_fCa_gate__fCa_jct = 1 - var_chaste_interface__ICaL_fCa_gate__fCaB_jct; // dimensionless - const double var_ICab__Fx_CaBk_SL = 0.89000000000000001; // dimensionless - const double var_ICab__Fx_CaBk_jct = 0.11; // dimensionless - const double var_ICab__G_CaBk = 0.00025129999999999998; // milliS_per_microF - const double var_ICap__Fx_SLCaP_SL = 0.89000000000000001; // dimensionless - const double var_ICap__Fx_SLCaP_jct = 0.11; // dimensionless - const double var_ICap__H = 1.6000000000000001; // dimensionless - const double var_ICap__Km = 0.00050000000000000001; // millimolar - const double var_ICap__Q10_SLCaP = 2.3500000000000001; // dimensionless - const double var_ICap__V_maxAF = 0.067299999999999999; // microA_per_microF - const double var_INa__Fx_Na_SL = 0.89000000000000001; // dimensionless - const double var_INa__Fx_Na_jct = 0.11; // dimensionless - const double var_INaCa__Fx_NCX_SL = 0.89000000000000001; // dimensionless - const double var_INaCa__Fx_NCX_jct = 0.11; // dimensionless - const double var_INaCa__HNa = 3; // dimensionless - const double var_INaCa__K_mCai = 0.0035899999999999999; // millimolar - const double var_INaCa__K_mCao = 1.3; // millimolar - const double var_INaCa__K_mNai = 12.289999999999999; // millimolar - const double var_INaCa__K_mNao = 87.5; // millimolar - const double var_INaCa__Kd_act = 0.00025599999999999999; // millimolar - const double var_INaCa__Ka_SL = 1 / (1 + pow(var_INaCa__Kd_act, 3) / pow(var_chaste_interface__Ca_buffer__Ca_SL, 3)); // dimensionless - const double var_INaCa__Ka_jct = 1 / (1 + pow(var_INaCa__Kd_act, 3) / pow(var_chaste_interface__Ca_buffer__Ca_jct, 3)); // dimensionless - const double var_INaCa__Q10_NCX = 1.5700000000000001; // dimensionless - const double var_INaCa__eta = 0.34999999999999998; // dimensionless - const double var_INaCa__ksat = 0.27000000000000002; // dimensionless - const double var_INaK__Fx_NaK_SL = 0.89000000000000001; // dimensionless - const double var_INaK__Fx_NaK_jct = 0.11; // dimensionless - const double var_INaK__H_NaK = 4; // dimensionless - const double var_INaK__I_NaK_max = 1.9099999999999999; // microA_per_microF - const double var_INaK__Km_Ko = 1.5; // millimolar - const double var_INaK__Km_Nai = 11; // millimolar - const double var_INaK__Q10_Km_Nai = 1.49; // dimensionless - const double var_INaK__Q10_NaK = 1.6299999999999999; // dimensionless - const double var_INa__openProb = pow(var_chaste_interface__INa_m_gate__m, 3) * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j; // dimensionless - const double var_INab__Fx_NaBk_SL = 0.89000000000000001; // dimensionless - const double var_INab__Fx_NaBk_jct = 0.11; // dimensionless - const double var_INab__G_NaBk = 0.00029700000000000001; // milliS_per_microF - const double var_Jleak_SR__j_leak_SR = (-var_chaste_interface__Ca_buffer__Ca_jct + var_chaste_interface__Ca_buffer__Ca_SR) * NV_Ith_S(mParameters, 0); // millimolar_per_millisecond - const double var_Jpump_SR__H = 1.7869999999999999; // dimensionless - const double var_Jpump_SR__Kmf = 0.00024600000000000002; // millimolar - const double var_Jpump_SR__Kmr = 1.7; // millimolar - const double var_Jpump_SR__Q10_SRCaP = 2.6000000000000001; // dimensionless - const double var_Jrel_SR__EC50_SR = 0.45000000000000001; // millimolar - const double var_Jrel_SR__HSR = 2.5; // dimensionless - const double var_Jrel_SR__Max_SR = 15; // dimensionless - const double var_Jrel_SR__Min_SR = 1; // dimensionless - const double var_Jrel_SR__RI = 1 - var_chaste_interface__Jrel_SR__I - var_chaste_interface__Jrel_SR__O - var_chaste_interface__Jrel_SR__R; // dimensionless - const double var_Jrel_SR__kCaSR = -(-var_Jrel_SR__Min_SR + var_Jrel_SR__Max_SR) / (1 + pow((var_Jrel_SR__EC50_SR / var_chaste_interface__Ca_buffer__Ca_SR), var_Jrel_SR__HSR)) + var_Jrel_SR__Max_SR; // dimensionless - const double var_Jrel_SR__kiCa = 0.5; // per_millimolar_per_millisecond - const double var_Jrel_SR__kiSRCa = var_Jrel_SR__kCaSR * var_Jrel_SR__kiCa; // per_millimolar_per_millisecond - const double var_Jrel_SR__kim = 0.0050000000000000001; // per_millisecond - const double var_Jrel_SR__koCa = 10; // per_millimolar2_per_millisecond - const double var_Jrel_SR__koSRCa = var_Jrel_SR__koCa / var_Jrel_SR__kCaSR; // per_millimolar2_per_millisecond - const double var_Jrel_SR__kom = 0.059999999999999998; // per_millisecond - const double d_dt_chaste_interface_var_Jrel_SR__I = -var_chaste_interface__Jrel_SR__I * var_Jrel_SR__kim - var_chaste_interface__Jrel_SR__I * var_Jrel_SR__kom + pow(var_chaste_interface__Ca_buffer__Ca_jct, 2) * var_Jrel_SR__RI * var_Jrel_SR__koSRCa + var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__O * var_Jrel_SR__kiSRCa; // 1 / millisecond - const double d_dt_chaste_interface_var_Jrel_SR__O = var_chaste_interface__Jrel_SR__I * var_Jrel_SR__kim - var_chaste_interface__Jrel_SR__O * var_Jrel_SR__kom + pow(var_chaste_interface__Ca_buffer__Ca_jct, 2) * var_chaste_interface__Jrel_SR__R * var_Jrel_SR__koSRCa - var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__O * var_Jrel_SR__kiSRCa; // 1 / millisecond - const double d_dt_chaste_interface_var_Jrel_SR__R = var_chaste_interface__Jrel_SR__O * var_Jrel_SR__kom + var_Jrel_SR__RI * var_Jrel_SR__kim - pow(var_chaste_interface__Ca_buffer__Ca_jct, 2) * var_chaste_interface__Jrel_SR__R * var_Jrel_SR__koSRCa - var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R * var_Jrel_SR__kiSRCa; // 1 / millisecond - const double var_Jrel_SR__j_rel_SR = (-var_chaste_interface__Ca_buffer__Ca_jct + var_chaste_interface__Ca_buffer__Ca_SR) * var_chaste_interface__Jrel_SR__O * NV_Ith_S(mParameters, 1); // millimolar_per_millisecond - const double var_Na_buffer__Bmax_SL = 1.6499999999999999; // millimolar - const double var_Na_buffer__Bmax_jct = 7.5609999999999999; // millimolar - const double var_Na_buffer__koff = 0.001; // per_millisecond - const double var_Na_buffer__kon = 0.0001; // per_millimolar_per_millisecond - const double var_Na_buffer__dNa_SL_buf = -var_chaste_interface__Na_buffer__Na_SL_buf * var_Na_buffer__koff + (-var_chaste_interface__Na_buffer__Na_SL_buf + var_Na_buffer__Bmax_SL) * var_chaste_interface__Na_buffer__Na_SL * var_Na_buffer__kon; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_Na_buffer__Na_SL_buf = var_Na_buffer__dNa_SL_buf; // millimolar / millisecond - const double var_Na_buffer__dNa_jct_buf = -var_chaste_interface__Na_buffer__Na_jct_buf * var_Na_buffer__koff + (-var_chaste_interface__Na_buffer__Na_jct_buf + var_Na_buffer__Bmax_jct) * var_chaste_interface__Na_buffer__Na_jct * var_Na_buffer__kon; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_Na_buffer__Na_jct_buf = var_Na_buffer__dNa_jct_buf; // millimolar / millisecond - const double var_ICaL_d_gate__d_infinity = 1 / (1 + exp(-2.4166666666666665 - 0.16666666666666666 * var_chaste_interface__cell__V)); // dimensionless - const double var_ICaL_d_gate__tau_d = 28.571428571428569 * (1 - exp(-2.4166666666666665 - 0.16666666666666666 * var_chaste_interface__cell__V)) * var_ICaL_d_gate__d_infinity / (14.5 + var_chaste_interface__cell__V); // millisecond - const double d_dt_chaste_interface_var_ICaL_d_gate__d = (-var_chaste_interface__ICaL_d_gate__d + var_ICaL_d_gate__d_infinity) / var_ICaL_d_gate__tau_d; // 1 / millisecond - const double var_ICaL_f_gate__f_infinity = 1 / (1 + exp(9.7388888888888889 + 0.27777777777777779 * var_chaste_interface__cell__V)) + 0.59999999999999998 / (1 + exp(2.5 - 0.050000000000000003 * var_chaste_interface__cell__V)); // dimensionless - const double var_ICaL_f_gate__tau_f = 1 / (0.02 + 0.019699999999999999 * exp(-0.23877882250000002 * pow((1 + 0.068965517241379309 * var_chaste_interface__cell__V), 2))); // millisecond - const double d_dt_chaste_interface_var_ICaL_f_gate__f = (-var_chaste_interface__ICaL_f_gate__f + var_ICaL_f_gate__f_infinity) / var_ICaL_f_gate__tau_f; // 1 / millisecond - const double var_IKr_Xr_gate__Xr_infinity = 1 / (1 + exp(-6.666666666666667 - 0.13333333333333333 * var_chaste_interface__cell__V)); // dimensionless - const double var_IKr_Xr_gate__tau_Xr = 1 / (0.00060999999999999997 * (10 + var_chaste_interface__cell__V) / (-1 + exp(1.45 + 0.14499999999999999 * var_chaste_interface__cell__V)) + 0.0013799999999999999 * (7 + var_chaste_interface__cell__V) / (1 - exp(-0.86099999999999999 - 0.123 * var_chaste_interface__cell__V))); // millisecond - const double d_dt_chaste_interface_var_IKr_Xr_gate__Xr = (-var_chaste_interface__IKr_Xr_gate__Xr + var_IKr_Xr_gate__Xr_infinity) / var_IKr_Xr_gate__tau_Xr; // 1 / millisecond - const double var_IKs_Xs_gate__Xs_infinity = 1 / (1 + exp(0.089820359281437126 - 0.059880239520958084 * var_chaste_interface__cell__V)); // dimensionless - const double var_IKs_Xs_gate__tau_Xs = 1 / (0.00013100000000000001 * (30 + var_chaste_interface__cell__V) / (-1 + exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__cell__V)) + 7.1899999999999999e-5 * (30 + var_chaste_interface__cell__V) / (1 - exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__cell__V))); // millisecond - const double d_dt_chaste_interface_var_IKs_Xs_gate__Xs = (-var_chaste_interface__IKs_Xs_gate__Xs + var_IKs_Xs_gate__Xs_infinity) / var_IKs_Xs_gate__tau_Xs; // 1 / millisecond - const double var_INa_h_gate__alpha_h = ((var_chaste_interface__cell__V < -40) ? (0.13500000000000001 * exp(-11.764705882352942 + 0.14705882352941177 * NV_Ith_S(mParameters, 16) - 0.14705882352941177 * var_chaste_interface__cell__V)) : (0)); // per_millisecond - const double var_INa_h_gate__beta_h = ((var_chaste_interface__cell__V < -40) ? (310000 * exp(0.34999999999999998 * var_chaste_interface__cell__V - 0.34999999999999998 * NV_Ith_S(mParameters, 16)) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__cell__V - 0.079000000000000001 * NV_Ith_S(mParameters, 16))) : (7.6923076923076916 / (1 + exp(-0.96036036036036043 + 0.0900900900900901 * NV_Ith_S(mParameters, 16) - 0.0900900900900901 * var_chaste_interface__cell__V)))); // per_millisecond - const double var_INa_h_gate__h_infinity = 0.01 * NV_Ith_S(mParameters, 15) + (1 - 0.01 * NV_Ith_S(mParameters, 15)) * var_INa_h_gate__alpha_h / (var_INa_h_gate__alpha_h + var_INa_h_gate__beta_h); // dimensionless - const double var_INa_h_gate__tau_h = 1 / (var_INa_h_gate__alpha_h + var_INa_h_gate__beta_h); // millisecond - const double d_dt_chaste_interface_var_INa_h_gate__h = (-var_chaste_interface__INa_h_gate__h + var_INa_h_gate__h_infinity) / var_INa_h_gate__tau_h; // 1 / millisecond - const double var_INa_j_gate__alpha_j = ((var_chaste_interface__cell__V < -40) ? ((37.780000000000001 + var_chaste_interface__cell__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__cell__V - 0.24440000000000001 * NV_Ith_S(mParameters, 16)) - 3.4740000000000003e-5 * exp(0.043909999999999998 * NV_Ith_S(mParameters, 16) - 0.043909999999999998 * var_chaste_interface__cell__V)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__cell__V - 0.311 * NV_Ith_S(mParameters, 16)))) : (0)); // per_millisecond - const double var_INa_j_gate__beta_j = ((var_chaste_interface__cell__V < -40) ? (0.1212 * exp(0.01052 * NV_Ith_S(mParameters, 16) - 0.01052 * var_chaste_interface__cell__V) / (1 + exp(-5.5312920000000005 + 0.13780000000000001 * NV_Ith_S(mParameters, 16) - 0.13780000000000001 * var_chaste_interface__cell__V))) : (0.29999999999999999 * exp(2.5349999999999999e-7 * NV_Ith_S(mParameters, 16) - 2.5349999999999999e-7 * var_chaste_interface__cell__V) / (1 + exp(-3.2000000000000002 + 0.10000000000000001 * NV_Ith_S(mParameters, 16) - 0.10000000000000001 * var_chaste_interface__cell__V)))); // per_millisecond - const double var_INa_j_gate__j_infinity = 0.01 * NV_Ith_S(mParameters, 15) + (1 - 0.01 * NV_Ith_S(mParameters, 15)) * var_INa_j_gate__alpha_j / (var_INa_j_gate__alpha_j + var_INa_j_gate__beta_j); // dimensionless - const double var_INa_j_gate__tau_j = 1 / (var_INa_j_gate__alpha_j + var_INa_j_gate__beta_j); // millisecond - const double d_dt_chaste_interface_var_INa_j_gate__j = (-var_chaste_interface__INa_j_gate__j + var_INa_j_gate__j_infinity) / var_INa_j_gate__tau_j; // 1 / millisecond - const double var_INa_m_gate__alpha_m = 0.32000000000000001 * (47.130000000000003 + var_chaste_interface__cell__V) / (1 - exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__cell__V)); // per_millisecond - const double var_INa_m_gate__beta_m = 0.080000000000000002 * exp(-0.090909090909090912 * var_chaste_interface__cell__V); // per_millisecond - const double var_INa_m_gate__m_infinity = var_INa_m_gate__alpha_m / (var_INa_m_gate__alpha_m + var_INa_m_gate__beta_m); // dimensionless - const double var_INa_m_gate__tau_m = 1 / (var_INa_m_gate__alpha_m + var_INa_m_gate__beta_m); // millisecond - const double d_dt_chaste_interface_var_INa_m_gate__m = (-var_chaste_interface__INa_m_gate__m + var_INa_m_gate__m_infinity) / var_INa_m_gate__tau_m; // 1 / millisecond - const double var_Itof_X_gate__X_tof_infinity = 1 / (1 + exp(-0.20000000000000001 - 0.066666666666666666 * var_chaste_interface__cell__V)); // dimensionless - const double var_Itof_X_gate__tau_X_tof = 1.5 + 3.5 * exp(-0.0011111111111111111 * pow(var_chaste_interface__cell__V, 2)); // millisecond - const double d_dt_chaste_interface_var_Itof_X_gate__X_tof = (-var_chaste_interface__Itof_X_gate__X_tof + var_Itof_X_gate__X_tof_infinity) / var_Itof_X_gate__tau_X_tof; // 1 / millisecond - const double var_Itof_Y_gate__Y_tof_infinity = 1 / (1 + exp(3.3500000000000001 + 0.10000000000000001 * var_chaste_interface__cell__V)); // dimensionless - const double var_Itof_Y_gate__tau_Y_tof = 20 + 20 / (1 + exp(3.3500000000000001 + 0.10000000000000001 * var_chaste_interface__cell__V)); // millisecond - const double d_dt_chaste_interface_var_Itof_Y_gate__Y_tof = (-var_chaste_interface__Itof_Y_gate__Y_tof + var_Itof_Y_gate__Y_tof_infinity) / var_Itof_Y_gate__tau_Y_tof; // 1 / millisecond - const double var_Itos_R_gate__R_tos_infinity = 1 / (1 + exp(3.3500000000000001 + 0.10000000000000001 * var_chaste_interface__cell__V)); // dimensionless - const double var_Itos_R_gate__tau_R_tos = 220 + 2800 / (1 + exp(6 + 0.10000000000000001 * var_chaste_interface__cell__V)); // millisecond - const double d_dt_chaste_interface_var_Itos_R_gate__R_tos = (-var_chaste_interface__Itos_R_gate__R_tos + var_Itos_R_gate__R_tos_infinity) / var_Itos_R_gate__tau_R_tos; // 1 / millisecond - const double var_Itos_X_gate__X_tos_infinity = 1 / (1 + exp(-0.20000000000000001 - 0.066666666666666666 * var_chaste_interface__cell__V)); // dimensionless - const double var_Itos_X_gate__tau_X_tos = 0.5 + 9 / (1 + exp(0.20000000000000001 + 0.066666666666666666 * var_chaste_interface__cell__V)); // millisecond - const double d_dt_chaste_interface_var_Itos_X_gate__X_tos = (-var_chaste_interface__Itos_X_gate__X_tos + var_Itos_X_gate__X_tos_infinity) / var_Itos_X_gate__tau_X_tos; // 1 / millisecond - const double var_Itos_Y_gate__Y_tos_infinity = 1 / (1 + exp(3.3500000000000001 + 0.10000000000000001 * var_chaste_interface__cell__V)); // dimensionless - const double var_Itos_Y_gate__tau_Y_tos = 30 + 3000 / (1 + exp(6 + 0.10000000000000001 * var_chaste_interface__cell__V)); // millisecond - const double d_dt_chaste_interface_var_Itos_Y_gate__Y_tos = (-var_chaste_interface__Itos_Y_gate__Y_tos + var_Itos_Y_gate__Y_tos_infinity) / var_Itos_Y_gate__tau_Y_tos; // 1 / millisecond - const double var_cytosolic_Ca_buffer__Bmax_Calmodulin = 0.024; // millimolar - const double var_cytosolic_Ca_buffer__Bmax_Myosin_Ca = 0.14000000000000001; // millimolar - const double var_cytosolic_Ca_buffer__Bmax_Myosin_Mg = 0.14000000000000001; // millimolar - const double var_cytosolic_Ca_buffer__Bmax_SRB = 0.017100000000000001; // millimolar - const double var_cytosolic_Ca_buffer__Bmax_TroponinC = 0.070000000000000007; // millimolar - const double var_cytosolic_Ca_buffer__Bmax_TroponinC_Ca_Mg_Ca = 0.14000000000000001; // millimolar - const double var_cytosolic_Ca_buffer__Bmax_TroponinC_Ca_Mg_Mg = 0.14000000000000001; // millimolar - const double var_cytosolic_Ca_buffer__koff_Calmodulin = 0.23799999999999999; // per_millisecond - const double var_cytosolic_Ca_buffer__koff_Myosin_Ca = 0.00046000000000000001; // per_millisecond - const double var_cytosolic_Ca_buffer__koff_Myosin_Mg = 5.7000000000000003e-5; // per_millisecond - const double var_cytosolic_Ca_buffer__koff_SRB = 0.059999999999999998; // per_millisecond - const double var_cytosolic_Ca_buffer__koff_TroponinC = 0.019599999999999999; // per_millisecond - const double var_cytosolic_Ca_buffer__koff_TroponinC_Ca_Mg_Ca = 3.1999999999999999e-5; // per_millisecond - const double var_cytosolic_Ca_buffer__koff_TroponinC_Ca_Mg_Mg = 0.0033300000000000001; // per_millisecond - const double var_cytosolic_Ca_buffer__kon_Calmodulin = 34; // per_millimolar_per_millisecond - const double var_cytosolic_Ca_buffer__dCa_Calmodulin = -var_chaste_interface__cytosolic_Ca_buffer__Ca_Calmodulin * var_cytosolic_Ca_buffer__koff_Calmodulin + (-var_chaste_interface__cytosolic_Ca_buffer__Ca_Calmodulin + var_cytosolic_Ca_buffer__Bmax_Calmodulin) * var_chaste_interface__Ca_buffer__Cai * var_cytosolic_Ca_buffer__kon_Calmodulin; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_Calmodulin = var_cytosolic_Ca_buffer__dCa_Calmodulin; // millimolar / millisecond - const double var_cytosolic_Ca_buffer__kon_Myosin_Ca = 13.800000000000001; // per_millimolar_per_millisecond - const double var_cytosolic_Ca_buffer__dCa_Myosin = -var_chaste_interface__cytosolic_Ca_buffer__Ca_Myosin * var_cytosolic_Ca_buffer__koff_Myosin_Ca + (-var_chaste_interface__cytosolic_Ca_buffer__Ca_Myosin - var_chaste_interface__cytosolic_Ca_buffer__Mg_Myosin + var_cytosolic_Ca_buffer__Bmax_Myosin_Ca) * var_chaste_interface__Ca_buffer__Cai * var_cytosolic_Ca_buffer__kon_Myosin_Ca; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_Myosin = var_cytosolic_Ca_buffer__dCa_Myosin; // millimolar / millisecond - const double var_cytosolic_Ca_buffer__kon_Myosin_Mg = 0.015699999999999999; // per_millimolar_per_millisecond - const double var_cytosolic_Ca_buffer__kon_SRB = 100; // per_millimolar_per_millisecond - const double var_cytosolic_Ca_buffer__dCa_SRB = -var_chaste_interface__cytosolic_Ca_buffer__Ca_SRB * var_cytosolic_Ca_buffer__koff_SRB + (-var_chaste_interface__cytosolic_Ca_buffer__Ca_SRB + var_cytosolic_Ca_buffer__Bmax_SRB) * var_chaste_interface__Ca_buffer__Cai * var_cytosolic_Ca_buffer__kon_SRB; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_SRB = var_cytosolic_Ca_buffer__dCa_SRB; // millimolar / millisecond - const double var_cytosolic_Ca_buffer__kon_TroponinC = 32.700000000000003; // per_millimolar_per_millisecond - const double var_cytosolic_Ca_buffer__dCa_TroponinC = -var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC * var_cytosolic_Ca_buffer__koff_TroponinC + (-var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC + var_cytosolic_Ca_buffer__Bmax_TroponinC) * var_chaste_interface__Ca_buffer__Cai * var_cytosolic_Ca_buffer__kon_TroponinC; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_TroponinC = var_cytosolic_Ca_buffer__dCa_TroponinC; // millimolar / millisecond - const double var_cytosolic_Ca_buffer__kon_TroponinC_Ca_Mg_Ca = 2.3700000000000001; // per_millimolar_per_millisecond - const double var_cytosolic_Ca_buffer__dCa_TroponinC_Ca_Mg = -var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg * var_cytosolic_Ca_buffer__koff_TroponinC_Ca_Mg_Ca + (-var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg - var_chaste_interface__cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg + var_cytosolic_Ca_buffer__Bmax_TroponinC_Ca_Mg_Ca) * var_chaste_interface__Ca_buffer__Cai * var_cytosolic_Ca_buffer__kon_TroponinC_Ca_Mg_Ca; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg = var_cytosolic_Ca_buffer__dCa_TroponinC_Ca_Mg; // millimolar / millisecond - const double var_cytosolic_Ca_buffer__kon_TroponinC_Ca_Mg_Mg = 0.0030000000000000001; // per_millimolar_per_millisecond - const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_Cytosol = 0.025000000000000001; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_SL = 0.00076999999999999996; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_jct = 2.0000000000000002e-5; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_Cytosol = 0.025000000000000001; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_SL = 0.00076999999999999996; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_jct = 2.0000000000000002e-5; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__Fluo3 = 0; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__Indo1 = 0; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__koff_Fluo3 = 0.11; // per_millisecond - const double var_indo_fluo_Ca_buffer_not_connected__koff_Indo1 = 0.059999999999999998; // per_millisecond - const double var_indo_fluo_Ca_buffer_not_connected__kon_Fluo3 = 100; // per_millimolar2_per_millisecond - const double var_indo_fluo_Ca_buffer_not_connected__kon_Indo1 = 100; // per_millimolar2_per_millisecond - const double var_ion_diffusion__J_Ca_SL_cytosol = 3.7243000000000002e-12 * var_chaste_interface__Ca_buffer__Ca_SL - 3.7243000000000002e-12 * var_chaste_interface__Ca_buffer__Cai; // millimole_per_millisecond - const double var_ion_diffusion__J_Ca_jct_SL = 8.2413000000000004e-13 * var_chaste_interface__Ca_buffer__Ca_jct - 8.2413000000000004e-13 * var_chaste_interface__Ca_buffer__Ca_SL; // millimole_per_millisecond - const double var_ion_diffusion__J_Na_SL_cytosol = 1.6385999999999999e-12 * var_chaste_interface__Na_buffer__Na_SL - 1.6385999999999999e-12 * var_chaste_interface__Na_buffer__Nai; // millimole_per_millisecond - const double var_ion_diffusion__J_Na_jct_SL = 1.8312999999999999e-14 * var_chaste_interface__Na_buffer__Na_jct - 1.8312999999999999e-14 * var_chaste_interface__Na_buffer__Na_SL; // millimole_per_millisecond - const double var_model_parameters__Cm_per_area = 1.9999999999999999e-6; // farad_per_cm2 - const double var_model_parameters__Mgi = 1; // millimolar - const double var_cytosolic_Ca_buffer__dMg_Myosin = -var_chaste_interface__cytosolic_Ca_buffer__Mg_Myosin * var_cytosolic_Ca_buffer__koff_Myosin_Mg + (-var_chaste_interface__cytosolic_Ca_buffer__Ca_Myosin - var_chaste_interface__cytosolic_Ca_buffer__Mg_Myosin + var_cytosolic_Ca_buffer__Bmax_Myosin_Mg) * var_cytosolic_Ca_buffer__kon_Myosin_Mg * var_model_parameters__Mgi; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_cytosolic_Ca_buffer__Mg_Myosin = var_cytosolic_Ca_buffer__dMg_Myosin; // millimolar / millisecond - const double var_cytosolic_Ca_buffer__dMg_TroponinC_Ca_Mg = -var_chaste_interface__cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg * var_cytosolic_Ca_buffer__koff_TroponinC_Ca_Mg_Mg + (-var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg - var_chaste_interface__cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg + var_cytosolic_Ca_buffer__Bmax_TroponinC_Ca_Mg_Mg) * var_cytosolic_Ca_buffer__kon_TroponinC_Ca_Mg_Mg * var_model_parameters__Mgi; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg = var_cytosolic_Ca_buffer__dMg_TroponinC_Ca_Mg; // millimolar / millisecond - const double var_cytosolic_Ca_buffer__dCa_cytosol_tot_bound = var_cytosolic_Ca_buffer__dCa_Calmodulin + var_cytosolic_Ca_buffer__dCa_Myosin + var_cytosolic_Ca_buffer__dCa_SRB + var_cytosolic_Ca_buffer__dCa_TroponinC + var_cytosolic_Ca_buffer__dCa_TroponinC_Ca_Mg + var_cytosolic_Ca_buffer__dMg_Myosin + var_cytosolic_Ca_buffer__dMg_TroponinC_Ca_Mg; // millimolar_per_millisecond - const double var_INaK__sigma = -0.14285714285714285 + 0.14285714285714285 * exp(0.01485884101040119 * NV_Ith_S(mParameters, 9)); // dimensionless - const double var_ICaL__Q_CaL = pow(var_ICaL__Q10_CaL, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_ICaL__temp = 0.45000000000000001 * pow(NV_Ith_S(mParameters, 10), 2) * var_ICaL__Q_CaL * var_chaste_interface__ICaL_d_gate__d * var_chaste_interface__ICaL_f_gate__f * var_chaste_interface__cell__V / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)); // coulomb_per_mole - const double var_ICaL__i_CaL_Ca_SL = 4 * (-var_ICaL__gamma_Cao * NV_Ith_S(mParameters, 6) + var_chaste_interface__Ca_buffer__Ca_SL * var_ICaL__gamma_Cai * exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_SL * NV_Ith_S(mParameters, 12) * var_ICaL__temp * var_ICaL_fCa_gate__fCa_SL / (-1 + exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Ca_jct = 4 * (-var_ICaL__gamma_Cao * NV_Ith_S(mParameters, 6) + var_chaste_interface__Ca_buffer__Ca_jct * var_ICaL__gamma_Cai * exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_jct * NV_Ith_S(mParameters, 12) * var_ICaL__temp * var_ICaL_fCa_gate__fCa_jct / (-1 + exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Na_SL = (-var_ICaL__gamma_Nao * NV_Ith_S(mParameters, 9) + var_ICaL__gamma_Nai * var_chaste_interface__Na_buffer__Na_SL * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_SL * var_ICaL__PNa * var_ICaL__temp * var_ICaL_fCa_gate__fCa_SL / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Na_jct = (-var_ICaL__gamma_Nao * NV_Ith_S(mParameters, 9) + var_ICaL__gamma_Nai * var_chaste_interface__Na_buffer__Na_jct * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_jct * var_ICaL__PNa * var_ICaL__temp * var_ICaL_fCa_gate__fCa_jct / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICap__Q_SLCaP = pow(var_ICap__Q10_SLCaP, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_ICap__i_Cap_SL = var_ICap__Fx_SLCaP_SL * var_ICap__Q_SLCaP * var_ICap__V_maxAF / (1 + pow((var_ICap__Km / var_chaste_interface__Ca_buffer__Ca_SL), var_ICap__H)); // microA_per_microF - const double var_ICap__i_Cap_jct = var_ICap__Fx_SLCaP_jct * var_ICap__Q_SLCaP * var_ICap__V_maxAF / (1 + pow((var_ICap__Km / var_chaste_interface__Ca_buffer__Ca_jct), var_ICap__H)); // microA_per_microF - const double var_INaCa__Q_NCX = pow(var_INaCa__Q10_NCX, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_INaCa__temp_SL = (pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) * exp(var_INaCa__eta * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))) - pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_SL * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) / (1 + var_INaCa__ksat * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // millimolar4 - const double var_INaCa__i_NaCa_SL = var_INaCa__Fx_NCX_SL * var_INaCa__Ka_SL * var_INaCa__Q_NCX * NV_Ith_S(mParameters, 22) * var_INaCa__temp_SL / (pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * var_INaCa__K_mCao + pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_SL + pow(var_INaCa__K_mNao, var_INaCa__HNa) * (1 + var_chaste_interface__Ca_buffer__Ca_SL / var_INaCa__K_mCai) * var_chaste_interface__Ca_buffer__Ca_SL + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * (1 + pow((var_chaste_interface__Na_buffer__Na_SL / var_INaCa__K_mNai), var_INaCa__HNa)) * var_INaCa__K_mCai); // microA_per_microF - const double var_INaCa__temp_jct = (pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) * exp(var_INaCa__eta * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))) - pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_jct * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) / (1 + var_INaCa__ksat * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // millimolar4 - const double var_INaCa__i_NaCa_jct = var_INaCa__Fx_NCX_jct * var_INaCa__Ka_jct * var_INaCa__Q_NCX * NV_Ith_S(mParameters, 22) * var_INaCa__temp_jct / (pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * var_INaCa__K_mCao + pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_jct + pow(var_INaCa__K_mNao, var_INaCa__HNa) * (1 + var_chaste_interface__Ca_buffer__Ca_jct / var_INaCa__K_mCai) * var_chaste_interface__Ca_buffer__Ca_jct + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * (1 + pow((var_chaste_interface__Na_buffer__Na_jct / var_INaCa__K_mNai), var_INaCa__HNa)) * var_INaCa__K_mCai); // microA_per_microF - const double var_INaK__Q_Km_Nai = pow(var_INaK__Q10_Km_Nai, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_INaK__Q_NaK = pow(var_INaK__Q10_NaK, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_INaK__f_NaK = 1 / (1 + 0.1245 * exp(-0.10000000000000001 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))) + 0.036499999999999998 * var_INaK__sigma * exp(-var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // dimensionless - const double var_INaK__i_NaK_SL = var_INaK__Fx_NaK_SL * var_INaK__I_NaK_max * var_INaK__Q_NaK * var_INaK__f_NaK * NV_Ith_S(mParameters, 8) / ((1 + pow((var_INaK__Km_Nai * var_INaK__Q_Km_Nai / var_chaste_interface__Na_buffer__Na_SL), var_INaK__H_NaK)) * (var_INaK__Km_Ko + NV_Ith_S(mParameters, 8))); // microA_per_microF - const double var_INaK__i_NaK_jct = var_INaK__Fx_NaK_jct * var_INaK__I_NaK_max * var_INaK__Q_NaK * var_INaK__f_NaK * NV_Ith_S(mParameters, 8) / ((1 + pow((var_INaK__Km_Nai * var_INaK__Q_Km_Nai / var_chaste_interface__Na_buffer__Na_jct), var_INaK__H_NaK)) * (var_INaK__Km_Ko + NV_Ith_S(mParameters, 8))); // microA_per_microF - const double var_Jpump_SR__Q_SRCaP = pow(var_Jpump_SR__Q10_SRCaP, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_model_parameters__cell_length = 100; // micrometre - const double var_model_parameters__cell_radius = 10.25; // micrometre - const double var_model_parameters__Cm = 2.0e-8 * M_PI * var_model_parameters__Cm_per_area * var_model_parameters__cell_length * var_model_parameters__cell_radius; // farad - const double var_model_parameters__Vol_Cell = 3.1415926540000002e-15 * pow(var_model_parameters__cell_radius, 2) * var_model_parameters__cell_length; // liter - const double var_model_parameters__Vol_SL = 0.02 * var_model_parameters__Vol_Cell; // liter - const double var_model_parameters__Vol_SR = 0.035000000000000003 * var_model_parameters__Vol_Cell; // liter - const double var_model_parameters__Vol_cytosol = 0.65000000000000002 * var_model_parameters__Vol_Cell; // liter - const double var_Ca_buffer__dCa_SLB_SL = -var_chaste_interface__Ca_buffer__Ca_SLB_SL * var_Ca_buffer__koff_SLB + (-var_chaste_interface__Ca_buffer__Ca_SLB_SL + var_Ca_buffer__Bmax_SLB_SL * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_SL) * var_chaste_interface__Ca_buffer__Ca_SL * var_Ca_buffer__kon_SL; // millimolar_per_millisecond - const double var_Ca_buffer__dCa_SLHigh_SL = -var_chaste_interface__Ca_buffer__Ca_SLHigh_SL * var_Ca_buffer__koff_SLHigh + (-var_chaste_interface__Ca_buffer__Ca_SLHigh_SL + var_Ca_buffer__Bmax_SLHigh_SL * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_SL) * var_chaste_interface__Ca_buffer__Ca_SL * var_Ca_buffer__kon_SL; // millimolar_per_millisecond - const double var_Ca_buffer__dCa_SL_tot_bound = var_Ca_buffer__dCa_SLB_SL + var_Ca_buffer__dCa_SLHigh_SL; // millimolar_per_millisecond - const double var_Ca_buffer__dCalsequestrin = -var_chaste_interface__Ca_buffer__Ca_Calsequestrin * var_Ca_buffer__koff_Calsequestrin + (-var_chaste_interface__Ca_buffer__Ca_Calsequestrin + var_Ca_buffer__Bmax_Calsequestrin * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_SR) * var_chaste_interface__Ca_buffer__Ca_SR * var_Ca_buffer__kon_Calsequestrin; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_Ca_buffer__Ca_Calsequestrin = var_Ca_buffer__dCalsequestrin; // millimolar / millisecond - const double d_dt_chaste_interface_var_Ca_buffer__Ca_SLB_SL = var_Ca_buffer__dCa_SLB_SL; // millimolar / millisecond - const double d_dt_chaste_interface_var_Ca_buffer__Ca_SLHigh_SL = var_Ca_buffer__dCa_SLHigh_SL; // millimolar / millisecond - const double d_dt_chaste_interface_var_Na_buffer__Nai = NV_Ith_S(mParameters, 3) * var_ion_diffusion__J_Na_SL_cytosol / var_model_parameters__Vol_cytosol; // millimolar / millisecond - const double var_Jpump_SR__j_pump_SR = (pow((var_chaste_interface__Ca_buffer__Cai / var_Jpump_SR__Kmf), var_Jpump_SR__H) - pow((var_chaste_interface__Ca_buffer__Ca_SR / var_Jpump_SR__Kmr), var_Jpump_SR__H)) * var_Jpump_SR__Q_SRCaP * NV_Ith_S(mParameters, 2) * var_model_parameters__Vol_cytosol / ((1 + pow((var_chaste_interface__Ca_buffer__Cai / var_Jpump_SR__Kmf), var_Jpump_SR__H) + pow((var_chaste_interface__Ca_buffer__Ca_SR / var_Jpump_SR__Kmr), var_Jpump_SR__H)) * var_model_parameters__Vol_SR); // millimolar_per_millisecond - const double d_dt_chaste_interface_var_Ca_buffer__Ca_SR = -var_Ca_buffer__dCalsequestrin - var_Jrel_SR__j_rel_SR - var_Jleak_SR__j_leak_SR * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_SR + var_Jpump_SR__j_pump_SR; // millimolar / millisecond - const double d_dt_chaste_interface_var_Ca_buffer__Cai = -var_cytosolic_Ca_buffer__dCa_cytosol_tot_bound + var_ion_diffusion__J_Ca_SL_cytosol / var_model_parameters__Vol_cytosol - var_Jpump_SR__j_pump_SR * var_model_parameters__Vol_SR / var_model_parameters__Vol_cytosol; // millimolar / millisecond - const double var_model_parameters__Vol_jct = 0.00051000000000000004 * var_model_parameters__Vol_Cell; // liter - const double var_Ca_buffer__dCa_SLB_jct = -var_chaste_interface__Ca_buffer__Ca_SLB_jct * var_Ca_buffer__koff_SLB + (-var_chaste_interface__Ca_buffer__Ca_SLB_jct + 0.10000000000000001 * var_Ca_buffer__Bmax_SLB_jct * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_jct) * var_chaste_interface__Ca_buffer__Ca_jct * var_Ca_buffer__kon_SL; // millimolar_per_millisecond - const double var_Ca_buffer__dCa_SLHigh_jct = -var_chaste_interface__Ca_buffer__Ca_SLHigh_jct * var_Ca_buffer__koff_SLHigh + (-var_chaste_interface__Ca_buffer__Ca_SLHigh_jct + 0.10000000000000001 * var_Ca_buffer__Bmax_SLHigh_jct * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_jct) * var_chaste_interface__Ca_buffer__Ca_jct * var_Ca_buffer__kon_SL; // millimolar_per_millisecond - const double var_Ca_buffer__dCa_jct_tot_bound = var_Ca_buffer__dCa_SLB_jct + var_Ca_buffer__dCa_SLHigh_jct; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_Ca_buffer__Ca_SLB_jct = var_Ca_buffer__dCa_SLB_jct; // millimolar / millisecond - const double d_dt_chaste_interface_var_Ca_buffer__Ca_SLHigh_jct = var_Ca_buffer__dCa_SLHigh_jct; // millimolar / millisecond - const double var_indo_fluo_Ca_buffer_not_connected__Fluo3Bound = var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL * var_model_parameters__Vol_SL / var_model_parameters__Vol_cytosol + var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct * var_model_parameters__Vol_jct / var_model_parameters__Vol_cytosol + var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__Indo1Bound = var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL * var_model_parameters__Vol_SL / var_model_parameters__Vol_cytosol + var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct * var_model_parameters__Vol_jct / var_model_parameters__Vol_cytosol + var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol; // millimolar - const double var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_Cytosol = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol * var_indo_fluo_Ca_buffer_not_connected__koff_Fluo3 + (-var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol + var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_Cytosol) * (-var_indo_fluo_Ca_buffer_not_connected__Fluo3Bound + var_indo_fluo_Ca_buffer_not_connected__Fluo3) * var_chaste_interface__Ca_buffer__Cai * var_indo_fluo_Ca_buffer_not_connected__kon_Fluo3; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol = var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_Cytosol; // millimolar / millisecond - const double var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_SL = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL * var_indo_fluo_Ca_buffer_not_connected__koff_Fluo3 + (-var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL + var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_SL * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_SL) * (-var_indo_fluo_Ca_buffer_not_connected__Fluo3Bound + var_indo_fluo_Ca_buffer_not_connected__Fluo3) * var_chaste_interface__Ca_buffer__Ca_SL * var_indo_fluo_Ca_buffer_not_connected__kon_Fluo3; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL = var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_SL; // millimolar / millisecond - const double var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_jct = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct * var_indo_fluo_Ca_buffer_not_connected__koff_Fluo3 + (-var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct + var_indo_fluo_Ca_buffer_not_connected__Bmax_Fluo3_jct * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_jct) * (-var_indo_fluo_Ca_buffer_not_connected__Fluo3Bound + var_indo_fluo_Ca_buffer_not_connected__Fluo3) * var_chaste_interface__Ca_buffer__Ca_jct * var_indo_fluo_Ca_buffer_not_connected__kon_Fluo3; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct = var_indo_fluo_Ca_buffer_not_connected__dCa_Fluo3_jct; // millimolar / millisecond - const double var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_Cytosol = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol * var_indo_fluo_Ca_buffer_not_connected__koff_Indo1 + (-var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol + var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_Cytosol) * (-var_indo_fluo_Ca_buffer_not_connected__Indo1Bound + var_indo_fluo_Ca_buffer_not_connected__Indo1) * var_chaste_interface__Ca_buffer__Cai * var_indo_fluo_Ca_buffer_not_connected__kon_Indo1; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol = var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_Cytosol; // millimolar / millisecond - const double var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_SL = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL * var_indo_fluo_Ca_buffer_not_connected__koff_Indo1 + (-var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL + var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_SL * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_SL) * (-var_indo_fluo_Ca_buffer_not_connected__Indo1Bound + var_indo_fluo_Ca_buffer_not_connected__Indo1) * var_chaste_interface__Ca_buffer__Ca_SL * var_indo_fluo_Ca_buffer_not_connected__kon_Indo1; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL = var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_SL; // millimolar / millisecond - const double var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_jct = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct * var_indo_fluo_Ca_buffer_not_connected__koff_Indo1 + (-var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct + var_indo_fluo_Ca_buffer_not_connected__Bmax_Indo1_jct * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_jct) * (-var_indo_fluo_Ca_buffer_not_connected__Indo1Bound + var_indo_fluo_Ca_buffer_not_connected__Indo1) * var_chaste_interface__Ca_buffer__Ca_jct * var_indo_fluo_Ca_buffer_not_connected__kon_Indo1; // millimolar_per_millisecond - const double d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct = var_indo_fluo_Ca_buffer_not_connected__dCa_Indo1_jct; // millimolar / millisecond - const double var_reversal_potentials__E_Ca_SL = 0.5 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 6) / var_chaste_interface__Ca_buffer__Ca_SL) / NV_Ith_S(mParameters, 10); // millivolt - const double var_ICab__i_Cab_SL = (-var_reversal_potentials__E_Ca_SL + var_chaste_interface__cell__V) * var_ICab__Fx_CaBk_SL * var_ICab__G_CaBk; // microA_per_microF - const double var_Ca_buffer__i_Ca_SL_tot = -2 * var_INaCa__i_NaCa_SL + var_ICaL__i_CaL_Ca_SL + var_ICab__i_Cab_SL + var_ICap__i_Cap_SL; // microA_per_microF - const double d_dt_chaste_interface_var_Ca_buffer__Ca_SL = -var_Ca_buffer__dCa_SL_tot_bound + (-var_ion_diffusion__J_Ca_SL_cytosol + var_ion_diffusion__J_Ca_jct_SL) / var_model_parameters__Vol_SL - 0.5 * var_Ca_buffer__i_Ca_SL_tot * var_model_parameters__Cm / (NV_Ith_S(mParameters, 10) * var_model_parameters__Vol_SL); // millimolar / millisecond - const double var_reversal_potentials__E_Ca_jct = 0.5 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 6) / var_chaste_interface__Ca_buffer__Ca_jct) / NV_Ith_S(mParameters, 10); // millivolt - const double var_ICab__i_Cab_jct = (-var_reversal_potentials__E_Ca_jct + var_chaste_interface__cell__V) * var_ICab__Fx_CaBk_jct * var_ICab__G_CaBk; // microA_per_microF - const double var_Ca_buffer__i_Ca_jct_tot = -2 * var_INaCa__i_NaCa_jct + var_ICaL__i_CaL_Ca_jct + var_ICab__i_Cab_jct + var_ICap__i_Cap_jct; // microA_per_microF - const double d_dt_chaste_interface_var_Ca_buffer__Ca_jct = -var_Ca_buffer__dCa_jct_tot_bound - var_ion_diffusion__J_Ca_jct_SL / var_model_parameters__Vol_jct + var_Jleak_SR__j_leak_SR * var_model_parameters__Vol_cytosol / var_model_parameters__Vol_jct + var_Jrel_SR__j_rel_SR * var_model_parameters__Vol_SR / var_model_parameters__Vol_jct - 0.5 * var_Ca_buffer__i_Ca_jct_tot * var_model_parameters__Cm / (NV_Ith_S(mParameters, 10) * var_model_parameters__Vol_jct); // millimolar / millisecond - const double var_reversal_potentials__E_Na_SL = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 9) / var_chaste_interface__Na_buffer__Na_SL) / NV_Ith_S(mParameters, 10); // millivolt - const double var_INa__i_Na_SL = (-var_reversal_potentials__E_Na_SL + var_chaste_interface__cell__V) * var_INa__Fx_Na_SL * NV_Ith_S(mParameters, 14) * var_INa__openProb; // microA_per_microF - const double var_INab__i_Nab_SL = (-var_reversal_potentials__E_Na_SL + var_chaste_interface__cell__V) * var_INab__Fx_NaBk_SL * var_INab__G_NaBk; // microA_per_microF - const double d_dt_chaste_interface_var_Na_buffer__Na_SL = (-var_Na_buffer__dNa_SL_buf + (-var_ion_diffusion__J_Na_SL_cytosol + var_ion_diffusion__J_Na_jct_SL) / var_model_parameters__Vol_SL - (3 * var_INaCa__i_NaCa_SL + 3 * var_INaK__i_NaK_SL + var_ICaL__i_CaL_Na_SL + var_INa__i_Na_SL + var_INab__i_Nab_SL) * var_model_parameters__Cm / (NV_Ith_S(mParameters, 10) * var_model_parameters__Vol_SL)) * NV_Ith_S(mParameters, 3); // millimolar / millisecond - const double var_reversal_potentials__E_Na_jct = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 9) / var_chaste_interface__Na_buffer__Na_jct) / NV_Ith_S(mParameters, 10); // millivolt - const double var_INa__i_Na_jct = (-var_reversal_potentials__E_Na_jct + var_chaste_interface__cell__V) * var_INa__Fx_Na_jct * NV_Ith_S(mParameters, 14) * var_INa__openProb; // microA_per_microF - const double var_INab__i_Nab_jct = (-var_reversal_potentials__E_Na_jct + var_chaste_interface__cell__V) * var_INab__Fx_NaBk_jct * var_INab__G_NaBk; // microA_per_microF - const double d_dt_chaste_interface_var_Na_buffer__Na_jct = (-var_Na_buffer__dNa_jct_buf - var_ion_diffusion__J_Na_jct_SL / var_model_parameters__Vol_jct - (3 * var_INaCa__i_NaCa_jct + 3 * var_INaK__i_NaK_jct + var_ICaL__i_CaL_Na_jct + var_INa__i_Na_jct + var_INab__i_Nab_jct) * var_model_parameters__Cm / (NV_Ith_S(mParameters, 10) * var_model_parameters__Vol_jct)) * NV_Ith_S(mParameters, 3); // millimolar / millisecond - - if (mSetVoltageDerivativeToZero) - { - d_dt_chaste_interface_var_cell__V = 0.0; - } - else - { - const double var_ICaL__PK = 2.7000000000000001e-7; // litre_per_farad_millisecond - const double var_ICaL__gamma_Ki = 0.75; // dimensionless - const double var_ICaL__gamma_Ko = 0.75; // dimensionless - const double var_ICl_Ca__Fx_Cl_SL = 0.89000000000000001; // dimensionless - const double var_ICl_Ca__Fx_Cl_jct = 0.11; // dimensionless - const double var_ICl_Ca__G_Cl = 0.109625; // milliS_per_microF - const double var_ICl_Ca__Kd_ClCa = 0.10000000000000001; // millimolar - const double var_IKs__Fx_Ks_SL = 0.89000000000000001; // dimensionless - const double var_IKs__Fx_Ks_jct = 0.11; // dimensionless - const double var_IKs__pCa_SL = 3 - log10(var_chaste_interface__Ca_buffer__Ca_SL); // dimensionless - const double var_IKs__G_Ks_SL = (0.057000000000000002 + 0.19 / (1 + exp(-12 + 1.6666666666666667 * var_IKs__pCa_SL))) * NV_Ith_S(mParameters, 20); // milliS_per_microF - const double var_IKs__pCa_jct = 3 - log10(var_chaste_interface__Ca_buffer__Ca_jct); // dimensionless - const double var_IKs__G_Ks_jct = (0.057000000000000002 + 0.19 / (1 + exp(-12 + 1.6666666666666667 * var_IKs__pCa_jct))) * NV_Ith_S(mParameters, 20); // milliS_per_microF - const double var_IKs__pKNa = 0.018329999999999999; // dimensionless - const double var_IKr_Rr_gate__Rr = 1 / (1 + exp(1.4732142857142858 + 0.044642857142857144 * var_chaste_interface__cell__V)); // dimensionless - const double var_cell__i_Stim_converted = GetIntracellularAreaStimulus(var_chaste_interface__environment__time); // uA_per_cm2 - const double var_cell__i_Stim = var_cell__i_Stim_converted / HeartConfig::Instance()->GetCapacitance(); // microA_per_microF - const double var_IK1__G_K1 = 0.43033148291193518 * sqrt(NV_Ith_S(mParameters, 8)) * NV_Ith_S(mParameters, 18); // milliS_per_microF - const double var_IKr__G_IKr = 0.43033148291193518 * sqrt(NV_Ith_S(mParameters, 8)) * NV_Ith_S(mParameters, 19); // milliS_per_microF - const double var_ICaL__i_CaL_K = (var_ICaL__Fx_ICaL_SL * var_ICaL_fCa_gate__fCa_SL + var_ICaL__Fx_ICaL_jct * var_ICaL_fCa_gate__fCa_jct) * (-var_ICaL__gamma_Ko * NV_Ith_S(mParameters, 8) + var_ICaL__gamma_Ki * NV_Ith_S(mParameters, 5) * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__PK * var_ICaL__temp / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL = var_ICaL__i_CaL_Ca_SL + var_ICaL__i_CaL_Ca_jct + var_ICaL__i_CaL_K + var_ICaL__i_CaL_Na_SL + var_ICaL__i_CaL_Na_jct; // microA_per_microF - const double var_ICap__i_Cap = var_ICap__i_Cap_SL + var_ICap__i_Cap_jct; // microA_per_microF - const double var_IKs__E_Ks = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log((var_IKs__pKNa * NV_Ith_S(mParameters, 9) + NV_Ith_S(mParameters, 8)) / (var_IKs__pKNa * var_chaste_interface__Na_buffer__Nai + NV_Ith_S(mParameters, 5))) / NV_Ith_S(mParameters, 10); // millivolt - const double var_IKs__i_Ks_SL = pow(var_chaste_interface__IKs_Xs_gate__Xs, 2) * (-var_IKs__E_Ks + var_chaste_interface__cell__V) * var_IKs__Fx_Ks_SL * var_IKs__G_Ks_SL; // microA_per_microF - const double var_IKs__i_Ks_jct = pow(var_chaste_interface__IKs_Xs_gate__Xs, 2) * (-var_IKs__E_Ks + var_chaste_interface__cell__V) * var_IKs__Fx_Ks_jct * var_IKs__G_Ks_jct; // microA_per_microF - const double var_IKs__i_Ks = var_IKs__i_Ks_SL + var_IKs__i_Ks_jct; // microA_per_microF - const double var_INaCa__i_NaCa = var_INaCa__i_NaCa_SL + var_INaCa__i_NaCa_jct; // microA_per_microF - const double var_INaK__i_NaK = var_INaK__i_NaK_SL + var_INaK__i_NaK_jct; // microA_per_microF - const double var_ICab__i_Cab = var_ICab__i_Cab_SL + var_ICab__i_Cab_jct; // microA_per_microF - const double var_reversal_potentials__E_Cl = -NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 7) / NV_Ith_S(mParameters, 4)) / NV_Ith_S(mParameters, 10); // millivolt - const double var_ICl_Ca__i_Cl_Ca = (-var_reversal_potentials__E_Cl + var_chaste_interface__cell__V) * (var_ICl_Ca__Fx_Cl_SL / (1 + var_ICl_Ca__Kd_ClCa / var_chaste_interface__Ca_buffer__Ca_SL) + var_ICl_Ca__Fx_Cl_jct / (1 + var_ICl_Ca__Kd_ClCa / var_chaste_interface__Ca_buffer__Ca_jct)) * var_ICl_Ca__G_Cl; // microA_per_microF - const double var_IClb__i_Clb = (-var_reversal_potentials__E_Cl + var_chaste_interface__cell__V) * NV_Ith_S(mParameters, 13); // microA_per_microF - const double var_reversal_potentials__E_K = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 8) / NV_Ith_S(mParameters, 5)) / NV_Ith_S(mParameters, 10); // millivolt - const double var_IK1_K1_gate__alpha_K1 = 1.02 / (1 + exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__cell__V - 0.23849999999999999 * var_reversal_potentials__E_K)); // per_millisecond - const double var_IK1_K1_gate__beta_K1 = (exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__cell__V - 0.061749999999999999 * var_reversal_potentials__E_K) + 0.49124000000000001 * exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__cell__V - 0.080320000000000003 * var_reversal_potentials__E_K)) / (1 + exp(-2.4444678999999998 + 0.51429999999999998 * var_reversal_potentials__E_K - 0.51429999999999998 * var_chaste_interface__cell__V)); // per_millisecond - const double var_IK1_K1_gate__K1_infinity = var_IK1_K1_gate__alpha_K1 / (var_IK1_K1_gate__alpha_K1 + var_IK1_K1_gate__beta_K1); // dimensionless - const double var_IK1__i_K1 = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * var_IK1__G_K1 * var_IK1_K1_gate__K1_infinity; // microA_per_microF - const double var_IKr__i_Kr = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * var_IKr__G_IKr * var_IKr_Rr_gate__Rr * var_chaste_interface__IKr_Xr_gate__Xr; // microA_per_microF - const double var_Itof__i_tof = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * NV_Ith_S(mParameters, 17) * var_chaste_interface__Itof_X_gate__X_tof * var_chaste_interface__Itof_Y_gate__Y_tof; // microA_per_microF - const double var_Itos__i_tos = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * (0.5 * var_chaste_interface__Itos_R_gate__R_tos + var_chaste_interface__Itos_Y_gate__Y_tos) * NV_Ith_S(mParameters, 21) * var_chaste_interface__Itos_X_gate__X_tos; // microA_per_microF - const double var_INa__i_Na = var_INa__i_Na_SL + var_INa__i_Na_jct; // microA_per_microF - const double var_INab__i_Nab = var_INab__i_Nab_SL + var_INab__i_Nab_jct; // microA_per_microF - d_dt_chaste_interface_var_cell__V = -var_ICaL__i_CaL - var_ICab__i_Cab - var_ICap__i_Cap - var_ICl_Ca__i_Cl_Ca - var_IClb__i_Clb - var_IK1__i_K1 - var_IKr__i_Kr - var_IKs__i_Ks - var_INa__i_Na - var_INaCa__i_NaCa - var_INaK__i_NaK - var_INab__i_Nab - var_Itof__i_tof - var_Itos__i_tos - var_cell__i_Stim; // millivolt / millisecond - } - - NV_Ith_S(rDY,0) = d_dt_chaste_interface_var_cell__V; - NV_Ith_S(rDY,1) = d_dt_chaste_interface_var_Ca_buffer__Cai; - NV_Ith_S(rDY,2) = d_dt_chaste_interface_var_INa_h_gate__h; - NV_Ith_S(rDY,3) = d_dt_chaste_interface_var_INa_j_gate__j; - NV_Ith_S(rDY,4) = d_dt_chaste_interface_var_INa_m_gate__m; - NV_Ith_S(rDY,5) = d_dt_chaste_interface_var_IKr_Xr_gate__Xr; - NV_Ith_S(rDY,6) = d_dt_chaste_interface_var_IKs_Xs_gate__Xs; - NV_Ith_S(rDY,7) = d_dt_chaste_interface_var_Itos_X_gate__X_tos; - NV_Ith_S(rDY,8) = d_dt_chaste_interface_var_Itos_Y_gate__Y_tos; - NV_Ith_S(rDY,9) = d_dt_chaste_interface_var_Itos_R_gate__R_tos; - NV_Ith_S(rDY,10) = d_dt_chaste_interface_var_Itof_X_gate__X_tof; - NV_Ith_S(rDY,11) = d_dt_chaste_interface_var_Itof_Y_gate__Y_tof; - NV_Ith_S(rDY,12) = d_dt_chaste_interface_var_ICaL_d_gate__d; - NV_Ith_S(rDY,13) = d_dt_chaste_interface_var_ICaL_f_gate__f; - NV_Ith_S(rDY,14) = d_dt_chaste_interface_var_ICaL_fCa_gate__fCaB_SL; - NV_Ith_S(rDY,15) = d_dt_chaste_interface_var_ICaL_fCa_gate__fCaB_jct; - NV_Ith_S(rDY,16) = d_dt_chaste_interface_var_Jrel_SR__R; - NV_Ith_S(rDY,17) = d_dt_chaste_interface_var_Jrel_SR__I; - NV_Ith_S(rDY,18) = d_dt_chaste_interface_var_Jrel_SR__O; - NV_Ith_S(rDY,19) = d_dt_chaste_interface_var_Na_buffer__Na_SL; - NV_Ith_S(rDY,20) = d_dt_chaste_interface_var_Na_buffer__Na_jct; - NV_Ith_S(rDY,21) = d_dt_chaste_interface_var_Na_buffer__Na_SL_buf; - NV_Ith_S(rDY,22) = d_dt_chaste_interface_var_Na_buffer__Na_jct_buf; - NV_Ith_S(rDY,23) = d_dt_chaste_interface_var_Na_buffer__Nai; - NV_Ith_S(rDY,24) = d_dt_chaste_interface_var_Ca_buffer__Ca_SR; - NV_Ith_S(rDY,25) = d_dt_chaste_interface_var_Ca_buffer__Ca_SL; - NV_Ith_S(rDY,26) = d_dt_chaste_interface_var_Ca_buffer__Ca_jct; - NV_Ith_S(rDY,27) = d_dt_chaste_interface_var_Ca_buffer__Ca_SLB_SL; - NV_Ith_S(rDY,28) = d_dt_chaste_interface_var_Ca_buffer__Ca_SLB_jct; - NV_Ith_S(rDY,29) = d_dt_chaste_interface_var_Ca_buffer__Ca_SLHigh_SL; - NV_Ith_S(rDY,30) = d_dt_chaste_interface_var_Ca_buffer__Ca_SLHigh_jct; - NV_Ith_S(rDY,31) = d_dt_chaste_interface_var_Ca_buffer__Ca_Calsequestrin; - NV_Ith_S(rDY,32) = d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_TroponinC; - NV_Ith_S(rDY,33) = d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg; - NV_Ith_S(rDY,34) = d_dt_chaste_interface_var_cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg; - NV_Ith_S(rDY,35) = d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_Calmodulin; - NV_Ith_S(rDY,36) = d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_Myosin; - NV_Ith_S(rDY,37) = d_dt_chaste_interface_var_cytosolic_Ca_buffer__Mg_Myosin; - NV_Ith_S(rDY,38) = d_dt_chaste_interface_var_cytosolic_Ca_buffer__Ca_SRB; - NV_Ith_S(rDY,39) = d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol; - NV_Ith_S(rDY,40) = d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; - NV_Ith_S(rDY,41) = d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - NV_Ith_S(rDY,42) = d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol; - NV_Ith_S(rDY,43) = d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; - NV_Ith_S(rDY,44) = d_dt_chaste_interface_var_indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; - } - - void Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::EvaluateAnalyticJacobian(double var_chaste_interface__environment__time, N_Vector rY, N_Vector rDY, CHASTE_CVODE_DENSE_MATRIX rJacobian, N_Vector rTmp1, N_Vector rTmp2, N_Vector rTmp3) - { - double var_chaste_interface__cell__V = (mSetVoltageDerivativeToZero ? this->mFixedVoltage : NV_Ith_S(rY, 0)); - // Units: millivolt; Initial value: -85.721630473733 - double var_chaste_interface__Ca_buffer__Cai = NV_Ith_S(rY, 1); - // Units: millimolar; Initial value: 8.6504944644883e-05 - double var_chaste_interface__INa_h_gate__h = NV_Ith_S(rY, 2); - // Units: dimensionless; Initial value: 0.98714602875678 - double var_chaste_interface__INa_j_gate__j = NV_Ith_S(rY, 3); - // Units: dimensionless; Initial value: 0.991826348770428 - double var_chaste_interface__INa_m_gate__m = NV_Ith_S(rY, 4); - // Units: dimensionless; Initial value: 0.0013702407736465 - double var_chaste_interface__IKr_Xr_gate__Xr = NV_Ith_S(rY, 5); - // Units: dimensionless; Initial value: 0.00846906175020028 - double var_chaste_interface__IKs_Xs_gate__Xs = NV_Ith_S(rY, 6); - // Units: dimensionless; Initial value: 0.00613557812033723 - double var_chaste_interface__Itos_X_gate__X_tos = NV_Ith_S(rY, 7); - // Units: dimensionless; Initial value: 0.00401072468238921 - double var_chaste_interface__Itos_Y_gate__Y_tos = NV_Ith_S(rY, 8); - // Units: dimensionless; Initial value: 0.31555225368514 - double var_chaste_interface__Itos_R_gate__R_tos = NV_Ith_S(rY, 9); - // Units: dimensionless; Initial value: 0.402577243036347 - double var_chaste_interface__Itof_X_gate__X_tof = NV_Ith_S(rY, 10); - // Units: dimensionless; Initial value: 0.00401068798369438 - double var_chaste_interface__Itof_Y_gate__Y_tof = NV_Ith_S(rY, 11); - // Units: dimensionless; Initial value: 0.994632857675454 - double var_chaste_interface__ICaL_d_gate__d = NV_Ith_S(rY, 12); - // Units: dimensionless; Initial value: 6.99526086177479e-06 - double var_chaste_interface__ICaL_f_gate__f = NV_Ith_S(rY, 13); - // Units: dimensionless; Initial value: 1.00067601563206 - double var_chaste_interface__ICaL_fCa_gate__fCaB_SL = NV_Ith_S(rY, 14); - // Units: dimensionless; Initial value: 0.0150193299768419 - double var_chaste_interface__ICaL_fCa_gate__fCaB_jct = NV_Ith_S(rY, 15); - // Units: dimensionless; Initial value: 0.0244048782575591 - double var_chaste_interface__Jrel_SR__R = NV_Ith_S(rY, 16); - // Units: dimensionless; Initial value: 0.890917121306535 - double var_chaste_interface__Jrel_SR__I = NV_Ith_S(rY, 17); - // Units: dimensionless; Initial value: 8.71752603681652e-08 - double var_chaste_interface__Jrel_SR__O = NV_Ith_S(rY, 18); - // Units: dimensionless; Initial value: 7.1199533741995e-07 - double var_chaste_interface__Na_buffer__Na_SL = NV_Ith_S(rY, 19); - // Units: millimolar; Initial value: 8.87161932058707 - double var_chaste_interface__Na_buffer__Na_jct = NV_Ith_S(rY, 20); - // Units: millimolar; Initial value: 8.87031835089116 - double var_chaste_interface__Na_buffer__Na_SL_buf = NV_Ith_S(rY, 21); - // Units: millimolar; Initial value: 0.77606800956492 - double var_chaste_interface__Na_buffer__Na_jct_buf = NV_Ith_S(rY, 22); - // Units: millimolar; Initial value: 3.55668431730337 - double var_chaste_interface__Na_buffer__Nai = NV_Ith_S(rY, 23); - // Units: millimolar; Initial value: 8.87200572571131 - double var_chaste_interface__Ca_buffer__Ca_SR = NV_Ith_S(rY, 24); - // Units: millimolar; Initial value: 0.547125831028543 - double var_chaste_interface__Ca_buffer__Ca_SL = NV_Ith_S(rY, 25); - // Units: millimolar; Initial value: 0.000104971310105451 - double var_chaste_interface__Ca_buffer__Ca_jct = NV_Ith_S(rY, 26); - // Units: millimolar; Initial value: 0.000174045152623969 - double var_chaste_interface__Ca_buffer__Ca_SLB_SL = NV_Ith_S(rY, 27); - // Units: millimolar; Initial value: 0.00973710481246467 - double var_chaste_interface__Ca_buffer__Ca_SLB_jct = NV_Ith_S(rY, 28); - // Units: millimolar; Initial value: 0.00774564218017916 - double var_chaste_interface__Ca_buffer__Ca_SLHigh_SL = NV_Ith_S(rY, 29); - // Units: millimolar; Initial value: 0.113168405274355 - double var_chaste_interface__Ca_buffer__Ca_SLHigh_jct = NV_Ith_S(rY, 30); - // Units: millimolar; Initial value: 0.0772568134367606 - double var_chaste_interface__Ca_buffer__Ca_Calsequestrin = NV_Ith_S(rY, 31); - // Units: millimolar; Initial value: 1.18828527890062 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC = NV_Ith_S(rY, 32); - // Units: millimolar; Initial value: 0.00886665040283094 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg = NV_Ith_S(rY, 33); - // Units: millimolar; Initial value: 0.117873278193472 - double var_chaste_interface__cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg = NV_Ith_S(rY, 34); - // Units: millimolar; Initial value: 0.0103906683506505 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_Calmodulin = NV_Ith_S(rY, 35); - // Units: millimolar; Initial value: 0.000293073957804278 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_Myosin = NV_Ith_S(rY, 36); - // Units: millimolar; Initial value: 0.00195899238146509 - double var_chaste_interface__cytosolic_Ca_buffer__Mg_Myosin = NV_Ith_S(rY, 37); - // Units: millimolar; Initial value: 0.137523520981802 - double var_chaste_interface__cytosolic_Ca_buffer__Ca_SRB = NV_Ith_S(rY, 38); - // Units: millimolar; Initial value: 0.00215728901718264 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol = NV_Ith_S(rY, 39); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL = NV_Ith_S(rY, 40); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct = NV_Ith_S(rY, 41); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol = NV_Ith_S(rY, 42); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL = NV_Ith_S(rY, 43); - // Units: millimolar; Initial value: 0.0 - double var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct = NV_Ith_S(rY, 44); - // Units: millimolar; Initial value: 0.0 - const double var_x0 = 1 / var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x1 = 1 + 0.10000000000000001 * var_x0; - const double var_x2 = 1 / var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x3 = 1 + 0.10000000000000001 * var_x2; - const double var_x4 = NV_Ith_S(mParameters, 17) * var_chaste_interface__Itof_Y_gate__Y_tof; - const double var_x5 = -var_chaste_interface__Itos_Y_gate__Y_tos - 0.5 * var_chaste_interface__Itos_R_gate__R_tos; - const double var_x6 = exp(-7.0000000000000009 - 1.6666666666666667 * log10(var_chaste_interface__Ca_buffer__Ca_jct)); - const double var_x7 = 1 + var_x6; - const double var_x8 = 0.057000000000000002 + 0.19 / var_x7; - const double var_x9 = pow(var_chaste_interface__IKs_Xs_gate__Xs, 2) * NV_Ith_S(mParameters, 20); - const double var_x10 = var_x8 * var_x9; - const double var_x11 = exp(-7.0000000000000009 - 1.6666666666666667 * log10(var_chaste_interface__Ca_buffer__Ca_SL)); - const double var_x12 = 1 + var_x11; - const double var_x13 = 0.057000000000000002 + 0.19 / var_x12; - const double var_x14 = var_x13 * var_x9; - const double var_x15 = sqrt(NV_Ith_S(mParameters, 8)); - const double var_x16 = exp(1.4732142857142858 + 0.044642857142857144 * var_chaste_interface__cell__V); - const double var_x17 = 1 + var_x16; - const double var_x18 = 0.43033148291193518 / var_x17; - const double var_x19 = pow(var_chaste_interface__INa_m_gate__m, 3); - const double var_x20 = var_x19 * NV_Ith_S(mParameters, 14) * var_chaste_interface__INa_j_gate__j; - const double var_x21 = var_x20 * var_chaste_interface__INa_h_gate__h; - const double var_x22 = log(NV_Ith_S(mParameters, 8) / NV_Ith_S(mParameters, 5)); - const double var_x23 = 1 / NV_Ith_S(mParameters, 10); - const double var_x24 = var_x23 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23); - const double var_x25 = var_x22 * var_x24; - const double var_x26 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__cell__V - 0.23849999999999999 * var_x25); - const double var_x27 = 1 + var_x26; - const double var_x28 = 1 / var_x27; - const double var_x29 = exp(-2.4444678999999998 - 0.51429999999999998 * var_chaste_interface__cell__V + 0.51429999999999998 * var_x22 * var_x23 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)); - const double var_x30 = 1 + var_x29; - const double var_x31 = 1 / var_x30; - const double var_x32 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__cell__V - 0.061749999999999999 * var_x25); - const double var_x33 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__cell__V - 0.080320000000000003 * var_x25); - const double var_x34 = var_x32 + 0.49124000000000001 * var_x33; - const double var_x35 = var_x31 * var_x34; - const double var_x36 = 1 / (var_x35 + 1.02 * var_x28); - const double var_x37 = 1 / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)); - const double var_x38 = var_x37 * NV_Ith_S(mParameters, 10); - const double var_x39 = exp(0.34999999999999998 * var_x38 * var_chaste_interface__cell__V); - const double var_x40 = pow(var_chaste_interface__Na_buffer__Na_jct, 3); - const double var_x41 = var_x40 * NV_Ith_S(mParameters, 6); - const double var_x42 = var_x39 * var_x41; - const double var_x43 = 0.34999999999999998 * var_x38; - const double var_x44 = var_x38 * var_chaste_interface__cell__V; - const double var_x45 = exp(-0.65000000000000002 * var_x44); - const double var_x46 = pow(NV_Ith_S(mParameters, 9), 3); - const double var_x47 = var_x46 * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x48 = var_x45 * var_x47; - const double var_x49 = 0.65000000000000002 * var_x38; - const double var_x50 = (1 + 278.55153203342621 * var_chaste_interface__Ca_buffer__Ca_jct) * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x51 = 1 + 0.00053869674493876331 * var_x40; - const double var_x52 = 0.0035899999999999999 * var_x46; - const double var_x53 = 1 / (var_x41 + var_x47 + 669921.875 * var_x50 + 1.3 * var_x40 + var_x51 * var_x52); - const double var_x54 = 1 + 1.6777215999999998e-11 / pow(var_chaste_interface__Ca_buffer__Ca_jct, 3); - const double var_x55 = 1 / var_x54; - const double var_x56 = 1 + 0.27000000000000002 * var_x45; - const double var_x57 = 1 / var_x56; - const double var_x58 = -31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23); - const double var_x59 = pow(1.5700000000000001, var_x58); - const double var_x60 = var_x59 * NV_Ith_S(mParameters, 22); - const double var_x61 = var_x57 * var_x60; - const double var_x62 = var_x55 * var_x61; - const double var_x63 = var_x53 * var_x62; - const double var_x64 = var_x63 * (var_x42 * var_x43 + var_x48 * var_x49); - const double var_x65 = pow(var_chaste_interface__Na_buffer__Na_SL, 3); - const double var_x66 = var_x65 * NV_Ith_S(mParameters, 6); - const double var_x67 = var_x39 * var_x66; - const double var_x68 = var_x46 * var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x69 = var_x45 * var_x68; - const double var_x70 = (1 + 278.55153203342621 * var_chaste_interface__Ca_buffer__Ca_SL) * var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x71 = 1 + 0.00053869674493876331 * var_x65; - const double var_x72 = 1 / (var_x66 + var_x68 + 669921.875 * var_x70 + 1.3 * var_x65 + var_x52 * var_x71); - const double var_x73 = 1 + 1.6777215999999998e-11 / pow(var_chaste_interface__Ca_buffer__Ca_SL, 3); - const double var_x74 = 1 / var_x73; - const double var_x75 = var_x61 * var_x74; - const double var_x76 = var_x72 * var_x75; - const double var_x77 = var_x76 * (var_x43 * var_x67 + var_x49 * var_x69); - const double var_x78 = pow(var_x27, (-2)); - const double var_x79 = -var_x25 + var_chaste_interface__cell__V; - const double var_x80 = var_x15 * var_x79; - const double var_x81 = pow(1.49, (-124 + 0.40000000000000002 * NV_Ith_S(mParameters, 23))); - const double var_x82 = 1 / var_chaste_interface__Na_buffer__Na_jct; - const double var_x83 = var_x81 * pow(var_x82, 4); - const double var_x84 = 0.10000000000000001 * var_chaste_interface__cell__V; - const double var_x85 = exp(-var_x38 * var_x84); - const double var_x86 = exp(0.01485884101040119 * NV_Ith_S(mParameters, 9)); - const double var_x87 = exp(-var_x44); - const double var_x88 = 1 + 0.1245 * var_x85 + 0.036499999999999998 * var_x87 * (-0.14285714285714285 + 0.14285714285714285 * var_x86); - const double var_x89 = pow(1.6299999999999999, var_x58) * NV_Ith_S(mParameters, 8) / (1.5 + NV_Ith_S(mParameters, 8)); - const double var_x90 = var_x89 * (0.012450000000000001 * var_x38 * var_x85 + var_x38 * var_x87 * (-0.0052142857142857138 + 0.0052142857142857138 * var_x86)) / pow(var_x88, 2); - const double var_x91 = var_x90 / (1 + 14641 * var_x83); - const double var_x92 = 1 / var_chaste_interface__Na_buffer__Na_SL; - const double var_x93 = var_x81 * pow(var_x92, 4); - const double var_x94 = var_x90 / (1 + 14641 * var_x93); - const double var_x95 = exp(var_x44); - const double var_x96 = 0.75 * var_x95; - const double var_x97 = -0.75 * NV_Ith_S(mParameters, 8) + var_x96 * NV_Ith_S(mParameters, 5); - const double var_x98 = var_x37 * pow(NV_Ith_S(mParameters, 10), 2); - const double var_x99 = -1 + var_x95; - const double var_x100 = 1 / var_x99; - const double var_x101 = pow(1.8, var_x58); - const double var_x102 = var_x101 * var_chaste_interface__ICaL_f_gate__f; - const double var_x103 = var_x102 * var_chaste_interface__ICaL_d_gate__d; - const double var_x104 = var_x100 * var_x103; - const double var_x105 = var_x104 * var_x98; - const double var_x106 = var_x105 * var_x97; - const double var_x107 = 1 - 0.10000000000000001 * var_chaste_interface__ICaL_fCa_gate__fCaB_SL - 0.90000000000000002 * var_chaste_interface__ICaL_fCa_gate__fCaB_jct; - const double var_x108 = 1.215e-7 * var_x107; - const double var_x109 = var_x67 - var_x69; - const double var_x110 = var_x109 * var_x72; - const double var_x111 = var_x38 * var_x45 * var_x60 / pow(var_x56, 2); - const double var_x112 = var_x110 * var_x111 * var_x74; - const double var_x113 = var_x42 - var_x48; - const double var_x114 = var_x113 * var_x53; - const double var_x115 = var_x111 * var_x114 * var_x55; - const double var_x116 = 1 - var_chaste_interface__ICaL_fCa_gate__fCaB_SL; - const double var_x117 = exp(2 * var_x44); - const double var_x118 = -1 + var_x117; - const double var_x119 = NV_Ith_S(mParameters, 12) / var_x118; - const double var_x120 = var_x103 * var_x119; - const double var_x121 = var_x116 * var_x120; - const double var_x122 = -0.34100000000000003 * NV_Ith_S(mParameters, 6); - const double var_x123 = 0.34100000000000003 * var_x117; - const double var_x124 = var_x122 + var_x123 * var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x125 = 0.18000000000000002 * var_x124; - const double var_x126 = var_x121 * var_x125 * var_x98; - const double var_x127 = 1 - var_chaste_interface__ICaL_fCa_gate__fCaB_jct; - const double var_x128 = var_x127 * var_x98; - const double var_x129 = var_x120 * var_x128; - const double var_x130 = var_x122 + var_x123 * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x131 = 1.6200000000000001 * var_x130; - const double var_x132 = var_x129 * var_x131; - const double var_x133 = var_x104 * var_x95; - const double var_x134 = pow(NV_Ith_S(mParameters, 10), 3); - const double var_x135 = pow(NV_Ith_S(mParameters, 11), (-2)); - const double var_x136 = pow(NV_Ith_S(mParameters, 23), (-2)); - const double var_x137 = var_x134 * var_x135 * var_x136 * var_chaste_interface__cell__V; - const double var_x138 = pow(var_x99, (-2)); - const double var_x139 = var_x127 * var_x137; - const double var_x140 = 1.10484 * var_x117 * var_x120 * var_x139 * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x141 = var_x117 * var_x121; - const double var_x142 = 0.12276000000000002 * var_x137 * var_x141 * var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x143 = var_x103 * var_x137; - const double var_x144 = var_x117 * var_x143 * NV_Ith_S(mParameters, 12) / pow(var_x118, 2); - const double var_x145 = 0.36000000000000004 * var_x116 * var_x124 * var_x144; - const double var_x146 = var_x127 * var_x130; - const double var_x147 = 3.2400000000000002 * var_x144 * var_x146; - const double var_x148 = -0.75 * NV_Ith_S(mParameters, 9); - const double var_x149 = var_x148 + var_x96 * var_chaste_interface__Na_buffer__Na_SL; - const double var_x150 = var_x116 * var_x149; - const double var_x151 = 6.7499999999999994e-10 * var_x150; - const double var_x152 = 5.0624999999999998e-10 * var_x116 * var_x95; - const double var_x153 = var_x138 * var_x143 * var_x95; - const double var_x154 = var_x105 * var_x151 - var_x151 * var_x153 + var_x104 * var_x137 * var_x152 * var_chaste_interface__Na_buffer__Na_SL; - const double var_x155 = var_x148 + var_x96 * var_chaste_interface__Na_buffer__Na_jct; - const double var_x156 = var_x104 * var_x155; - const double var_x157 = 6.0749999999999998e-9 * var_x128; - const double var_x158 = 4.5562499999999999e-9 * var_x133; - const double var_x159 = var_x127 * var_x155; - const double var_x160 = var_x156 * var_x157 - 6.0749999999999998e-9 * var_x153 * var_x159 + var_x139 * var_x158 * var_chaste_interface__Na_buffer__Na_jct; - const double var_x161 = -var_x24 * log(var_x82 * NV_Ith_S(mParameters, 9)) + var_chaste_interface__cell__V; - const double var_x162 = 0.11 * var_x161; - const double var_x163 = -var_x24 * log(var_x92 * NV_Ith_S(mParameters, 9)) + var_chaste_interface__cell__V; - const double var_x164 = 0.89000000000000001 * var_x163; - const double var_x165 = NV_Ith_S(mParameters, 14) * var_chaste_interface__INa_h_gate__h; - const double var_x166 = var_x165 * var_x19; - const double var_x167 = var_x165 * pow(var_chaste_interface__INa_m_gate__m, 2) * var_chaste_interface__INa_j_gate__j; - const double var_x168 = var_x161 * var_x167; - const double var_x169 = var_x163 * var_x167; - const double var_x170 = 1 / (0.018329999999999999 * var_chaste_interface__Na_buffer__Nai + NV_Ith_S(mParameters, 5)); - const double var_x171 = -var_x24 * log(var_x170 * (0.018329999999999999 * NV_Ith_S(mParameters, 9) + NV_Ith_S(mParameters, 8))) + var_chaste_interface__cell__V; - const double var_x172 = var_x171 * NV_Ith_S(mParameters, 20) * var_chaste_interface__IKs_Xs_gate__Xs; - const double var_x173 = -var_x79; - const double var_x174 = NV_Ith_S(mParameters, 21) * var_chaste_interface__Itos_X_gate__X_tos; - const double var_x175 = var_x100 * var_chaste_interface__cell__V; - const double var_x176 = var_x102 * var_x175; - const double var_x177 = var_x155 * var_x157; - const double var_x178 = var_x176 * var_x98; - const double var_x179 = var_x108 * var_x97; - const double var_x180 = var_x98 * var_chaste_interface__cell__V; - const double var_x181 = var_x125 * var_x180; - const double var_x182 = var_x102 * var_x119; - const double var_x183 = var_x116 * var_x182; - const double var_x184 = var_x128 * var_chaste_interface__cell__V; - const double var_x185 = var_x131 * var_x184; - const double var_x186 = var_x101 * var_chaste_interface__ICaL_d_gate__d; - const double var_x187 = var_x175 * var_x186; - const double var_x188 = var_x187 * var_x98; - const double var_x189 = var_x119 * var_x186; - const double var_x190 = var_x116 * var_x189; - const double var_x191 = var_x105 * var_chaste_interface__cell__V; - const double var_x192 = var_x106 * var_chaste_interface__cell__V; - const double var_x193 = pow(var_chaste_interface__Na_buffer__Na_SL, 2); - const double var_x194 = 3 * NV_Ith_S(mParameters, 6); - const double var_x195 = 5.8017639429904805e-6 * var_x46; - const double var_x196 = -3.9000000000000004 * var_x193 - var_x193 * var_x194 - var_x193 * var_x195; - const double var_x197 = 5.3588338192419823e-9 * var_x46; - const double var_x198 = var_x109 * var_x75 / pow((var_x70 + 1.9405247813411081e-6 * var_x65 + 1.4927113702623908e-6 * var_x66 + 1.4927113702623908e-6 * var_x68 + var_x197 * var_x71), 2); - const double var_x199 = 1.9830866390704556e-12 * var_x198; - const double var_x200 = var_x39 * NV_Ith_S(mParameters, 6); - const double var_x201 = var_x193 * var_x200 * var_x76; - const double var_x202 = var_x89 / var_x88; - const double var_x203 = var_x202 * var_x92 * var_x93 / pow((6.8301345536507063e-5 + var_x93), 2); - const double var_x204 = var_x24 * var_x92; - const double var_x205 = 0.89000000000000001 * var_x21; - const double var_x206 = 0.00026433000000000001 * var_x204 + var_x152 * var_x191 + var_x204 * var_x205; - const double var_x207 = pow(var_chaste_interface__Na_buffer__Na_jct, 2); - const double var_x208 = -3.9000000000000004 * var_x207 - var_x194 * var_x207 - var_x195 * var_x207; - const double var_x209 = var_x113 * var_x62 / pow((var_x50 + 1.9405247813411081e-6 * var_x40 + 1.4927113702623908e-6 * var_x41 + 1.4927113702623908e-6 * var_x47 + var_x197 * var_x51), 2); - const double var_x210 = 2.4510059584016866e-13 * var_x209; - const double var_x211 = var_x200 * var_x207 * var_x63; - const double var_x212 = var_x202 * var_x82 * var_x83 / pow((6.8301345536507063e-5 + var_x83), 2); - const double var_x213 = var_x24 * var_x82; - const double var_x214 = 0.11 * var_x21; - const double var_x215 = 3.2670000000000004e-5 * var_x213 + var_x158 * var_x184 + var_x213 * var_x214; - const double var_x216 = var_x170 * var_x24; - const double var_x217 = var_x24 * log(NV_Ith_S(mParameters, 7) / NV_Ith_S(mParameters, 4)) + var_chaste_interface__cell__V; - const double var_x218 = var_x171 * var_x9 / log(10); - const double var_x219 = var_x110 * var_x61 / (pow(var_x73, 2) * pow(var_chaste_interface__Ca_buffer__Ca_SL, 4)); - const double var_x220 = 669921.875 + var_x46; - const double var_x221 = -var_x220 - 373215529.24791086 * var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x222 = pow(2.3500000000000001, var_x58); - const double var_x223 = pow(var_x2, 1.6000000000000001); - const double var_x224 = 0.00011182849999999999 * var_x2 * var_x24 + 0.061380000000000011 * var_x141 * var_x180 + 5.0104537825247566e-7 * var_x2 * var_x222 * var_x223 / pow((1 + 5.2281977629563632e-6 * var_x223), 2); - const double var_x225 = pow(var_chaste_interface__Ca_buffer__Ca_jct, 2); - const double var_x226 = -var_x220 - 373215529.24791086 * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x227 = var_x114 * var_x61 / (pow(var_x54, 2) * pow(var_chaste_interface__Ca_buffer__Ca_jct, 4)); - const double var_x228 = pow(var_x0, 1.6000000000000001); - const double var_x229 = 1.38215e-5 * var_x0 * var_x24 + 0.55242000000000002 * var_x117 * var_x129 * var_chaste_interface__cell__V + 6.1926956862665531e-8 * var_x0 * var_x222 * var_x228 / pow((1 + 5.2281977629563632e-6 * var_x228), 2); - const double var_x230 = 32.700000000000003 * var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC; - const double var_x231 = 34 * var_chaste_interface__cytosolic_Ca_buffer__Ca_Calmodulin; - const double var_x232 = 100 * var_chaste_interface__cytosolic_Ca_buffer__Ca_SRB; - const double var_x233 = pow(var_chaste_interface__Ca_buffer__Cai, 0.78699999999999992); - const double var_x234 = pow(var_chaste_interface__Ca_buffer__Ca_SR, 1.7869999999999999); - const double var_x235 = 0.38742512113256738 * var_x234; - const double var_x236 = pow(var_chaste_interface__Ca_buffer__Cai, 1.7869999999999999); - const double var_x237 = 1 / (1 + var_x235 + 2814485.1633595936 * var_x236); - const double var_x238 = pow(2.6000000000000001, var_x58); - const double var_x239 = var_x238 * NV_Ith_S(mParameters, 2); - const double var_x240 = var_x237 * var_x239; - const double var_x241 = var_x239 * (-var_x235 + 2814485.1633595936 * var_x236) / pow((3.5530476870814998e-7 + var_x236 + 1.3765399305573384e-7 * var_x234), 2); - const double var_x242 = var_x233 * var_x241; - const double var_x243 = 2.3700000000000001 * var_chaste_interface__cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg + 2.3700000000000001 * var_chaste_interface__cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg; - const double var_x244 = 13.800000000000001 * var_chaste_interface__cytosolic_Ca_buffer__Ca_Myosin + 13.800000000000001 * var_chaste_interface__cytosolic_Ca_buffer__Mg_Myosin; - const double var_x245 = pow(var_chaste_interface__Ca_buffer__Ca_SR, 0.78699999999999992); - const double var_x246 = var_x240 * var_x245; - const double var_x247 = var_x241 * var_x245; - const double var_x248 = 0.019599999999999999 + 32.700000000000003 * var_chaste_interface__Ca_buffer__Cai; - const double var_x249 = 2.3700000000000001 * var_chaste_interface__Ca_buffer__Cai; - const double var_x250 = 0.23799999999999999 + 34 * var_chaste_interface__Ca_buffer__Cai; - const double var_x251 = 13.800000000000001 * var_chaste_interface__Ca_buffer__Cai; - const double var_x252 = 0.059999999999999998 + 100 * var_chaste_interface__Ca_buffer__Cai; - const double var_x253 = exp(0.14705882352941177 * NV_Ith_S(mParameters, 16) - 0.14705882352941177 * var_chaste_interface__cell__V); - const double var_x254 = var_chaste_interface__cell__V < -40; - const double var_x255 = ((var_x254) ? (1.0495108254269646e-6 * var_x253) : (0)); - const double var_x256 = exp(0.34999999999999998 * var_chaste_interface__cell__V - 0.34999999999999998 * NV_Ith_S(mParameters, 16)); - const double var_x257 = exp(0.079000000000000001 * var_chaste_interface__cell__V - 0.079000000000000001 * NV_Ith_S(mParameters, 16)); - const double var_x258 = exp(0.0900900900900901 * NV_Ith_S(mParameters, 16) - 0.0900900900900901 * var_chaste_interface__cell__V); - const double var_x259 = 1 + 0.38275493141491301 * var_x258; - const double var_x260 = ((var_x254) ? (310000 * var_x256 + 3.5600000000000001 * var_x257) : (7.6923076923076916 / var_x259)); - const double var_x261 = var_x255 + var_x260; - const double var_x262 = ((var_x254) ? (-1.5433982726867125e-7 * var_x253) : (0)); - const double var_x263 = var_x255 + var_x260; - const double var_x264 = 0.01 * NV_Ith_S(mParameters, 15); - const double var_x265 = 1 - var_x264; - const double var_x266 = var_x265 / var_x263; - const double var_x267 = ((var_x254) ? (0.28123999999999999 * var_x257 + 108500 * var_x256) : (0.26524943271996743 * var_x258 / pow(var_x259, 2))); - const double var_x268 = exp(0.13780000000000001 * NV_Ith_S(mParameters, 16) - 0.13780000000000001 * var_chaste_interface__cell__V); - const double var_x269 = 1 + 0.0039608683399042569 * var_x268; - const double var_x270 = exp(0.01052 * NV_Ith_S(mParameters, 16) - 0.01052 * var_chaste_interface__cell__V); - const double var_x271 = var_x270 / var_x269; - const double var_x272 = exp(-var_x84 + 0.10000000000000001 * NV_Ith_S(mParameters, 16)); - const double var_x273 = 1 + 0.040762203978366211 * var_x272; - const double var_x274 = exp(2.5349999999999999e-7 * NV_Ith_S(mParameters, 16) - 2.5349999999999999e-7 * var_chaste_interface__cell__V); - const double var_x275 = var_x274 / var_x273; - const double var_x276 = ((var_x254) ? (0.1212 * var_x271) : (0.29999999999999999 * var_x275)); - const double var_x277 = 37.780000000000001 + var_chaste_interface__cell__V; - const double var_x278 = exp(0.24440000000000001 * var_chaste_interface__cell__V - 0.24440000000000001 * NV_Ith_S(mParameters, 16)); - const double var_x279 = exp(0.043909999999999998 * NV_Ith_S(mParameters, 16) - 0.043909999999999998 * var_chaste_interface__cell__V); - const double var_x280 = -127140 * var_x278 - 3.4740000000000003e-5 * var_x279; - const double var_x281 = exp(0.311 * var_chaste_interface__cell__V - 0.311 * NV_Ith_S(mParameters, 16)); - const double var_x282 = 1 / (1 + 50262745825.953949 * var_x281); - const double var_x283 = var_x280 * var_x282; - const double var_x284 = ((var_x254) ? (var_x277 * var_x283) : (0)); - const double var_x285 = var_x276 + var_x284; - const double var_x286 = ((var_x254) ? (var_x283 + var_x277 * var_x282 * (1.5254334000000001e-6 * var_x279 - 31073.016 * var_x278) - 6.1874852813833003e-12 * var_x277 * var_x280 * var_x281 / pow((1.989545106554116e-11 + var_x281), 2)) : (0)); - const double var_x287 = var_x276 + var_x284; - const double var_x288 = var_x265 / var_x287; - const double var_x289 = ((var_x254) ? (-0.001275024 * var_x271 + 6.6151888057343371e-5 * var_x268 * var_x270 / pow(var_x269, 2)) : (-7.6049999999999996e-8 * var_x275 + 0.0012228661193509863 * var_x272 * var_x274 / pow(var_x273, 2))); - const double var_x290 = exp(-4.7130000000000001 - var_x84); - const double var_x291 = 1 - var_x290; - const double var_x292 = 1 / var_x291; - const double var_x293 = exp(-0.090909090909090912 * var_chaste_interface__cell__V); - const double var_x294 = 47.130000000000003 + var_chaste_interface__cell__V; - const double var_x295 = 0.32000000000000001 * var_x292; - const double var_x296 = 0.080000000000000002 * var_x293 + var_x294 * var_x295; - const double var_x297 = 1 / var_x296; - const double var_x298 = 0.032000000000000001 * var_x290 * var_x294 / pow(var_x291, 2); - const double var_x299 = var_x298 + 0.0072727272727272727 * var_x293 - 0.32000000000000001 * var_x292; - const double var_x300 = var_x292 * var_x294; - const double var_x301 = exp(-6.666666666666667 - 0.13333333333333333 * var_chaste_interface__cell__V); - const double var_x302 = 1 + var_x301; - const double var_x303 = exp(1.45 + 0.14499999999999999 * var_chaste_interface__cell__V); - const double var_x304 = -1 + var_x303; - const double var_x305 = 1 / var_x304; - const double var_x306 = exp(-0.86099999999999999 - 0.123 * var_chaste_interface__cell__V); - const double var_x307 = 1 - var_x306; - const double var_x308 = 1 / var_x307; - const double var_x309 = 7 + var_chaste_interface__cell__V; - const double var_x310 = 10 + var_chaste_interface__cell__V; - const double var_x311 = 0.00060999999999999997 * var_x305 * var_x310 + 0.0013799999999999999 * var_x308 * var_x309; - const double var_x312 = exp(0.089820359281437126 - 0.059880239520958084 * var_chaste_interface__cell__V); - const double var_x313 = 1 + var_x312; - const double var_x314 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__cell__V); - const double var_x315 = -1 + var_x314; - const double var_x316 = 1 / var_x315; - const double var_x317 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__cell__V); - const double var_x318 = 1 - var_x317; - const double var_x319 = 1 / var_x318; - const double var_x320 = 30 + var_chaste_interface__cell__V; - const double var_x321 = 0.00013100000000000001 * var_x316 * var_x320 + 7.1899999999999999e-5 * var_x319 * var_x320; - const double var_x322 = 0.20000000000000001 + 0.066666666666666666 * var_chaste_interface__cell__V; - const double var_x323 = exp(var_x322); - const double var_x324 = 1 + var_x323; - const double var_x325 = 1 / var_x324; - const double var_x326 = 1 / (0.5 + 9 * var_x325); - const double var_x327 = exp(-var_x322); - const double var_x328 = 1 + var_x327; - const double var_x329 = 0.066666666666666666 * var_x327 / pow(var_x328, 2); - const double var_x330 = -1 / var_x328; - const double var_x331 = 0.10000000000000001 * var_chaste_interface__cell__V; - const double var_x332 = exp(6 + var_x331); - const double var_x333 = 1 + var_x332; - const double var_x334 = 1 / var_x333; - const double var_x335 = 1 / (30 + 3000 * var_x334); - const double var_x336 = exp(3.3500000000000001 + var_x331); - const double var_x337 = 1 + var_x336; - const double var_x338 = pow(var_x337, (-2)); - const double var_x339 = 0.10000000000000001 * var_x336 * var_x338; - const double var_x340 = pow(var_x333, (-2)); - const double var_x341 = 1 / var_x337; - const double var_x342 = -var_x341; - const double var_x343 = 1 / (220 + 2800 * var_x334); - const double var_x344 = exp(-0.0011111111111111111 * pow(var_chaste_interface__cell__V, 2)); - const double var_x345 = 1 / (1.5 + 3.5 * var_x344); - const double var_x346 = 1 / (20 + 20 * var_x341); - const double var_x347 = exp(-2.4166666666666665 - 0.16666666666666666 * var_chaste_interface__cell__V); - const double var_x348 = 1 - var_x347; - const double var_x349 = 1 / var_x348; - const double var_x350 = 1 + var_x347; - const double var_x351 = 1 / var_x350; - const double var_x352 = -var_chaste_interface__ICaL_d_gate__d + var_x351; - const double var_x353 = 14.5 + var_chaste_interface__cell__V; - const double var_x354 = 0.0058333333333333336 * var_x347 * var_x353; - const double var_x355 = 0.019699999999999999 * exp(-0.23877882250000002 * pow((1 + 0.068965517241379309 * var_chaste_interface__cell__V), 2)); - const double var_x356 = 0.02 + var_x355; - const double var_x357 = exp(9.7388888888888889 + 0.27777777777777779 * var_chaste_interface__cell__V); - const double var_x358 = 1 + var_x357; - const double var_x359 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__cell__V); - const double var_x360 = 1 + var_x359; - const double var_x361 = 1 / var_chaste_interface__Ca_buffer__Ca_SR; - const double var_x362 = pow(var_x361, 2.5); - const double var_x363 = 1 + 0.13584112963311223 * var_x362; - const double var_x364 = 1 / var_x363; - const double var_x365 = 7.5 - 7 * var_x364; - const double var_x366 = -var_x365; - const double var_x367 = 1 / (15 - 14 * var_x364); - const double var_x368 = 10 * var_x225 * var_x367; - const double var_x369 = pow(var_x363, (-2)); - const double var_x370 = var_x361 * var_x362 * var_x369; - const double var_x371 = 0.21130842387373014 * var_x225 * var_x370 / pow((1 - 0.93333333333333335 * var_x364), 2); - const double var_x372 = var_x371 * var_chaste_interface__Jrel_SR__R; - const double var_x373 = 20 * var_x367; - const double var_x374 = var_x373 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R; - const double var_x375 = 2.3772197685794643 * var_x370 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__O; - const double var_x376 = 1 - var_chaste_interface__Jrel_SR__I - var_chaste_interface__Jrel_SR__O - var_chaste_interface__Jrel_SR__R; - const double var_x377 = M_PI * var_x23; - const double var_x378 = 62.109246076532294 * var_x377; - const double var_x379 = var_x378 * NV_Ith_S(mParameters, 3); - const double var_x380 = var_x377 * NV_Ith_S(mParameters, 3); - const double var_x381 = var_x20 * var_x380; - const double var_x382 = 55.277229008113743 * var_x163; - const double var_x383 = var_x166 * var_x380; - const double var_x384 = var_x100 * var_x102; - const double var_x385 = M_PI * var_x44; - const double var_x386 = var_x385 * NV_Ith_S(mParameters, 3); - const double var_x387 = 4.1923741101659298e-8 * var_x386; - const double var_x388 = var_x150 * var_x387; - const double var_x389 = var_x100 * var_x186; - const double var_x390 = 0.0001 * var_chaste_interface__Na_buffer__Na_SL_buf; - const double var_x391 = 5.9492599172113663e-12 * var_x198; - const double var_x392 = 0.001 + 0.0001 * var_chaste_interface__Na_buffer__Na_SL; - const double var_x393 = var_x45 * var_x46; - const double var_x394 = var_x393 * var_x76; - const double var_x395 = 2435.6567088836191 * var_x377; - const double var_x396 = var_x395 * NV_Ith_S(mParameters, 3); - const double var_x397 = 267.92223797719811 * var_x161; - const double var_x398 = 1.4796614506467986e-5 * var_x386; - const double var_x399 = var_x159 * var_x398; - const double var_x400 = 0.0001 * var_chaste_interface__Na_buffer__Na_jct_buf; - const double var_x401 = 7.3530178752050587e-13 * var_x209; - const double var_x402 = 0.001 + 0.0001 * var_chaste_interface__Na_buffer__Na_jct; - const double var_x403 = var_x393 * var_x63; - const double var_x404 = 0.076376893524206985 * NV_Ith_S(mParameters, 3); - const double var_x405 = 100 * var_chaste_interface__Ca_buffer__Ca_Calsequestrin; - const double var_x406 = var_chaste_interface__Jrel_SR__O * NV_Ith_S(mParameters, 1); - const double var_x407 = var_x406 + 18.571428571428569 * NV_Ith_S(mParameters, 0); - const double var_x408 = 65 + 100 * var_chaste_interface__Ca_buffer__Ca_SR; - const double var_x409 = 31.054623038266147 * var_x377; - const double var_x410 = 5.5898321468879066 * var_x124 * var_x385; - const double var_x411 = 3.9661732781409111e-12 * var_x198; - const double var_x412 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_SL; - const double var_x413 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_SL; - const double var_x414 = 100 * var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x415 = 1.3 + var_x414; - const double var_x416 = 0.029999999999999999 + var_x414; - const double var_x417 = 1217.8283544418096 * var_x377; - const double var_x418 = 1972.8819341957317 * var_x385; - const double var_x419 = var_x146 * var_x418; - const double var_x420 = 4.9020119168033731e-13 * var_x209; - const double var_x421 = 68.627450980392155 * var_x406 + 1274.5098039215686 * NV_Ith_S(mParameters, 0); - const double var_x422 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_jct; - const double var_x423 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_jct; - const double var_x424 = 100 * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x425 = 1.3 + var_x424; - const double var_x426 = 0.029999999999999999 + var_x424; - const double var_x427 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol; - const double var_x428 = -2.5 + var_x427; - const double var_x429 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x430 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x431 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; - const double var_x432 = var_x427 + var_x430 + var_x431; - const double var_x433 = -2.5024999999999999 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; - const double var_x434 = -2.5490196078431375 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x435 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol; - const double var_x436 = -2.5 + var_x435; - const double var_x437 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; - const double var_x438 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; - const double var_x439 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; - const double var_x440 = var_x435 + var_x438 + var_x439; - const double var_x441 = -2.5024999999999999 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; - const double var_x442 = -2.5490196078431375 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; - - // Matrix entries - IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (-0.00054830000000000005 + var_x145 + var_x147 - var_x126 - var_x132 - var_x140 - var_x142 - var_x154 - var_x160 - NV_Ith_S(mParameters, 13) - 0.11 * var_x10 - 0.11 * var_x64 - 0.89000000000000001 * var_x14 - 0.89000000000000001 * var_x77 - 0.15619500000000003 * var_x112 - 1 * var_x21 - 0.01205875 / var_x1 - 0.019305000000000003 * var_x115 - 0.097566250000000007 / var_x3 - 0.21009999999999998 * var_x91 - 1.6999 * var_x94 - var_x106 * var_x108 - var_x4 * var_chaste_interface__Itof_X_gate__X_tof + var_x5 * NV_Ith_S(mParameters, 21) * var_chaste_interface__Itos_X_gate__X_tos - var_x15 * var_x18 * NV_Ith_S(mParameters, 19) * var_chaste_interface__IKr_Xr_gate__Xr - 9.1125000000000004e-8 * var_x107 * var_x133 * var_x137 * NV_Ith_S(mParameters, 5) - 0.4389381125701739 * var_x15 * var_x28 * var_x36 * NV_Ith_S(mParameters, 18) - 0.42189361069797565 * var_x28 * var_x80 * (-var_x31 * (0.061749999999999999 * var_x32 + 0.039456396800000001 * var_x33) + 0.24326999999999999 * var_x26 * var_x78 - 0.51429999999999998 * var_x29 * var_x34 / pow(var_x30, 2)) * NV_Ith_S(mParameters, 18) / pow((var_x28 + 0.98039215686274506 * var_x35), 2) + 0.10468673984798647 * var_x15 * var_x26 * var_x36 * var_x78 * var_x79 * NV_Ith_S(mParameters, 18) + 0.019211226915711394 * var_x15 * var_x16 * var_x79 * NV_Ith_S(mParameters, 19) * var_chaste_interface__IKr_Xr_gate__Xr / pow(var_x17, 2) + 1.215e-7 * var_x101 * var_x107 * var_x134 * var_x135 * var_x136 * var_x138 * var_x95 * var_x97 * var_chaste_interface__ICaL_d_gate__d * var_chaste_interface__ICaL_f_gate__f * var_chaste_interface__cell__V); - IJth(rJacobian, 2, 0) = var_x261 * (var_x262 * var_x266 + var_x255 * var_x265 * (-var_x262 - var_x267) / pow(var_x263, 2)) + (var_x262 + var_x267) * (var_x264 - var_chaste_interface__INa_h_gate__h + var_x255 * var_x266); - IJth(rJacobian, 3, 0) = var_x285 * (var_x286 * var_x288 + var_x265 * var_x284 * (-var_x286 - var_x289) / pow(var_x287, 2)) + (var_x286 + var_x289) * (var_x264 - var_chaste_interface__INa_j_gate__j + var_x284 * var_x288); - IJth(rJacobian, 4, 0) = var_x296 * (var_x295 * var_x297 - var_x297 * var_x298 + 3.125 * var_x299 * var_x300 / pow((var_x300 + 0.25 * var_x293), 2)) - var_x299 * (-var_chaste_interface__INa_m_gate__m + 0.32000000000000001 * var_x292 * var_x294 * var_x297); - IJth(rJacobian, 5, 0) = (-var_chaste_interface__IKr_Xr_gate__Xr + 1 / var_x302) * (0.00060999999999999997 * var_x305 + 0.0013799999999999999 * var_x308 - 0.00016973999999999998 * var_x306 * var_x309 / pow(var_x307, 2) - 8.8449999999999995e-5 * var_x303 * var_x310 / pow(var_x304, 2)) + 0.13333333333333333 * var_x301 * var_x311 / pow(var_x302, 2); - IJth(rJacobian, 6, 0) = (-var_chaste_interface__IKs_Xs_gate__Xs + 1 / var_x313) * (0.00013100000000000001 * var_x316 + 7.1899999999999999e-5 * var_x319 - 8.9997000000000013e-6 * var_x314 * var_x320 / pow(var_x315, 2) - 1.0641199999999999e-5 * var_x317 * var_x320 / pow(var_x318, 2)) + 0.059880239520958084 * var_x312 * var_x321 / pow(var_x313, 2); - IJth(rJacobian, 7, 0) = var_x326 * var_x329 + 0.0074074074074074077 * var_x323 * (-var_x330 - var_chaste_interface__Itos_X_gate__X_tos) / (pow(var_x324, 2) * pow((0.055555555555555552 + var_x325), 2)); - IJth(rJacobian, 8, 0) = -var_x335 * var_x339 + 3.3333333333333335e-5 * var_x332 * var_x340 * (-var_x342 - var_chaste_interface__Itos_Y_gate__Y_tos) / pow((0.01 + var_x334), 2); - IJth(rJacobian, 9, 0) = -var_x339 * var_x343 + 3.5714285714285717e-5 * var_x332 * var_x340 * (-var_x342 - var_chaste_interface__Itos_R_gate__R_tos) / pow((0.07857142857142857 + var_x334), 2); - IJth(rJacobian, 10, 0) = var_x329 * var_x345 + 0.00063492063492063492 * var_x344 * (-var_x330 - var_chaste_interface__Itof_X_gate__X_tof) * var_chaste_interface__cell__V / pow((0.42857142857142855 + var_x344), 2); - IJth(rJacobian, 11, 0) = -var_x339 * var_x346 + 0.0050000000000000001 * var_x336 * var_x338 * (-var_x342 - var_chaste_interface__Itof_Y_gate__Y_tof) / pow((1 + var_x341), 2); - IJth(rJacobian, 12, 0) = -var_x349 * var_x352 * var_x354 + 0.035000000000000003 * var_x349 * var_x350 * var_x352 - var_x350 * var_x352 * var_x354 / pow(var_x348, 2) + 0.0058333333333333336 * var_x347 * var_x349 * var_x351 * var_x353; - IJth(rJacobian, 13, 0) = var_x356 * (0.029999999999999999 * var_x359 / pow(var_x360, 2) - 0.27777777777777779 * var_x357 / pow(var_x358, 2)) + var_x355 * (-0.032935010000000001 - 0.0022713799999999999 * var_chaste_interface__cell__V) * (-var_chaste_interface__ICaL_f_gate__f + 1 / var_x358 + 0.59999999999999998 / var_x360); - IJth(rJacobian, 19, 0) = -var_x379 * (0.00026433000000000001 + var_x154 + var_x205 + 2.6699999999999999 * var_x77 + 5.0996999999999995 * var_x94 + 0.46858500000000003 * var_x112); - IJth(rJacobian, 20, 0) = -var_x396 * (3.2670000000000004e-5 + var_x160 + var_x214 + 0.33000000000000002 * var_x64 + 0.63029999999999997 * var_x91 + 0.057915000000000008 * var_x115); - IJth(rJacobian, 25, 0) = -var_x409 * (0.00022365699999999999 + var_x126 + var_x142 - var_x145 - 1.78 * var_x77 - 0.31239000000000006 * var_x112); - IJth(rJacobian, 26, 0) = -var_x417 * (2.7642999999999999e-5 + var_x132 + var_x140 - var_x147 - 0.22 * var_x64 - 0.038610000000000005 * var_x115); - IJth(rJacobian, 1, 1) = -7.2523935948689155 + var_x230 + var_x231 + var_x232 + var_x243 + var_x244 + 6.3492962168146398e-7 * var_x242 - 5029484.9869235931 * var_x233 * var_x240; - IJth(rJacobian, 24, 1) = -1.1791550116941473e-5 * var_x242 + 93404721.185723871 * var_x233 * var_x237 * var_x238 * NV_Ith_S(mParameters, 2); - IJth(rJacobian, 25, 1) = 5.6417918332397381; - IJth(rJacobian, 32, 1) = 2.2890000000000006 - var_x230; - IJth(rJacobian, 33, 1) = 0.33180000000000004 - var_x243; - IJth(rJacobian, 35, 1) = 0.81600000000000006 - var_x231; - IJth(rJacobian, 36, 1) = 1.9320000000000004 - var_x244; - IJth(rJacobian, 38, 1) = 1.71 - var_x232; - IJth(rJacobian, 39, 1) = -var_x428 * var_x429; - IJth(rJacobian, 42, 1) = -var_x436 * var_x437; - IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x162 * var_x20 - var_x164 * var_x20); - IJth(rJacobian, 2, 2) = -var_x261; - IJth(rJacobian, 19, 2) = -var_x381 * var_x382; - IJth(rJacobian, 20, 2) = -var_x381 * var_x397; - IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x162 * var_x166 - var_x164 * var_x166); - IJth(rJacobian, 3, 3) = -var_x285; - IJth(rJacobian, 19, 3) = -var_x382 * var_x383; - IJth(rJacobian, 20, 3) = -var_x383 * var_x397; - IJth(rJacobian, 0, 4) = mSetVoltageDerivativeToZero ? 0.0 : (-0.33000000000000002 * var_x168 - 2.6699999999999999 * var_x169); - IJth(rJacobian, 4, 4) = -var_x296; - IJth(rJacobian, 19, 4) = -165.83168702434122 * var_x169 * var_x380; - IJth(rJacobian, 20, 4) = -803.76671393159438 * var_x168 * var_x380; - IJth(rJacobian, 0, 5) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x18 * var_x80 * NV_Ith_S(mParameters, 19)); - IJth(rJacobian, 5, 5) = -var_x311; - IJth(rJacobian, 0, 6) = mSetVoltageDerivativeToZero ? 0.0 : (-0.22 * var_x172 * var_x8 - 1.78 * var_x13 * var_x172); - IJth(rJacobian, 6, 6) = -var_x321; - IJth(rJacobian, 0, 7) = mSetVoltageDerivativeToZero ? 0.0 : (var_x5 * var_x79 * NV_Ith_S(mParameters, 21)); - IJth(rJacobian, 7, 7) = -var_x326; - IJth(rJacobian, 0, 8) = mSetVoltageDerivativeToZero ? 0.0 : (var_x173 * var_x174); - IJth(rJacobian, 8, 8) = -var_x335; - IJth(rJacobian, 0, 9) = mSetVoltageDerivativeToZero ? 0.0 : (var_x174 * (-0.5 * var_chaste_interface__cell__V + 0.5 * var_x22 * var_x23 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))); - IJth(rJacobian, 9, 9) = -var_x343; - IJth(rJacobian, 0, 10) = mSetVoltageDerivativeToZero ? 0.0 : (var_x173 * var_x4); - IJth(rJacobian, 10, 10) = -var_x345; - IJth(rJacobian, 0, 11) = mSetVoltageDerivativeToZero ? 0.0 : (var_x173 * NV_Ith_S(mParameters, 17) * var_chaste_interface__Itof_X_gate__X_tof); - IJth(rJacobian, 11, 11) = -var_x346; - IJth(rJacobian, 0, 12) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x151 * var_x178 - var_x176 * var_x177 - var_x178 * var_x179 - var_x181 * var_x183 - var_x182 * var_x185); - IJth(rJacobian, 12, 12) = -0.035000000000000003 * var_x349 * var_x350 * var_x353; - IJth(rJacobian, 19, 12) = -var_x384 * var_x388; - IJth(rJacobian, 20, 12) = -var_x384 * var_x399; - IJth(rJacobian, 25, 12) = -var_x183 * var_x410; - IJth(rJacobian, 26, 12) = -var_x182 * var_x419; - IJth(rJacobian, 0, 13) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x151 * var_x188 - var_x177 * var_x187 - var_x179 * var_x188 - var_x181 * var_x190 - var_x185 * var_x189); - IJth(rJacobian, 13, 13) = -var_x356; - IJth(rJacobian, 19, 13) = -var_x388 * var_x389; - IJth(rJacobian, 20, 13) = -var_x389 * var_x399; - IJth(rJacobian, 25, 13) = -var_x190 * var_x410; - IJth(rJacobian, 26, 13) = -var_x189 * var_x419; - IJth(rJacobian, 0, 14) = mSetVoltageDerivativeToZero ? 0.0 : (1.2150000000000001e-8 * var_x192 + var_x120 * var_x181 + 6.7499999999999994e-10 * var_x149 * var_x191); - IJth(rJacobian, 14, 14) = -0.011900000000000001 - 1.7 * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 19, 14) = var_x104 * var_x149 * var_x387; - IJth(rJacobian, 25, 14) = var_x120 * var_x410; - IJth(rJacobian, 0, 15) = mSetVoltageDerivativeToZero ? 0.0 : (1.0935000000000001e-7 * var_x192 + 6.0749999999999998e-9 * var_x156 * var_x180 + var_x120 * var_x131 * var_x180); - IJth(rJacobian, 15, 15) = -0.011900000000000001 - 1.7 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 20, 15) = var_x156 * var_x398; - IJth(rJacobian, 26, 15) = var_x120 * var_x130 * var_x418; - IJth(rJacobian, 16, 16) = -0.0050000000000000001 - var_x368 + var_x366 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 17, 16) = -var_x368; - IJth(rJacobian, 18, 16) = var_x368; - IJth(rJacobian, 16, 17) = -0.0050000000000000001; - IJth(rJacobian, 17, 17) = -0.065000000000000002 - var_x368; - IJth(rJacobian, 18, 17) = 0.0050000000000000001; - IJth(rJacobian, 16, 18) = 0.055; - IJth(rJacobian, 17, 18) = -var_x368 + var_x365 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 18, 18) = -0.059999999999999998 + var_x366 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 24, 18) = (-var_chaste_interface__Ca_buffer__Ca_SR + var_chaste_interface__Ca_buffer__Ca_jct) * NV_Ith_S(mParameters, 1); - IJth(rJacobian, 26, 18) = (68.627450980392155 * var_chaste_interface__Ca_buffer__Ca_SR - 68.627450980392155 * var_chaste_interface__Ca_buffer__Ca_jct) * NV_Ith_S(mParameters, 1); - IJth(rJacobian, 0, 19) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x206 - 2.6699999999999999 * var_x201 - 0.00046442182911003347 * var_x203 - var_x196 * var_x199); - IJth(rJacobian, 19, 19) = (-2.5101556644976917 + var_x390 - var_x378 * (var_x206 + 8.0099999999999998 * var_x201 + 0.0013932654873301004 * var_x203 + var_x196 * var_x391)) * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 20, 19) = 1.0879068612142859 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 21, 19) = 0.000165 - var_x390; - IJth(rJacobian, 23, 19) = var_x404; - IJth(rJacobian, 25, 19) = -var_x409 * (-5.3399999999999999 * var_x201 - var_x196 * var_x411); - IJth(rJacobian, 0, 20) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x215 - 0.33000000000000002 * var_x211 - 5.7400450788880541e-5 * var_x212 - var_x208 * var_x210); - IJth(rJacobian, 19, 20) = 0.02774162496096429 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 20, 20) = (-1.0886629612142857 + var_x400 - var_x395 * (var_x215 + 0.98999999999999999 * var_x211 + 0.00017220135236664162 * var_x212 + var_x208 * var_x401)) * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 22, 20) = 0.0007561 - var_x400; - IJth(rJacobian, 26, 20) = -var_x417 * (-0.66000000000000003 * var_x211 - var_x208 * var_x420); - IJth(rJacobian, 19, 21) = var_x392 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 21, 21) = -var_x392; - IJth(rJacobian, 20, 22) = var_x402 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 22, 22) = -var_x402; - IJth(rJacobian, 0, 23) = mSetVoltageDerivativeToZero ? 0.0 : (-0.0020162999999999999 * var_x10 * var_x216 - 0.0163137 * var_x14 * var_x216); - IJth(rJacobian, 19, 23) = 2.4822490395367272 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 23, 23) = -var_x404; - IJth(rJacobian, 1, 24) = 0.69232869146389786 * var_x246 + 8.7400597733819945e-14 * var_x247; - IJth(rJacobian, 16, 24) = -var_x372 + 2.3772197685794643 * var_x361 * var_x362 * var_x369 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R; - IJth(rJacobian, 17, 24) = -var_x375 + var_x371 * var_x376; - IJth(rJacobian, 18, 24) = var_x372 + var_x375; - IJth(rJacobian, 24, 24) = -260 + var_x405 - var_x407 - 1.6231539579137989e-12 * var_x247 - 12.857532841472388 * var_x246; - IJth(rJacobian, 26, 24) = var_x421; - IJth(rJacobian, 31, 24) = 260 - var_x405; - IJth(rJacobian, 0, 25) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x224 - 4.4795166719999994e-11 * var_x219 - var_x199 * var_x221 - 0.0097566250000000014 * var_x217 / (pow(var_x3, 2) * pow(var_chaste_interface__Ca_buffer__Ca_SL, 2)) - 0.28183333333333332 * var_x11 * var_x2 * var_x218 / pow(var_x12, 2) + 0.89000000000000001 * var_x45 * var_x46 * var_x57 * var_x59 * var_x72 * var_x74 * NV_Ith_S(mParameters, 22)); - IJth(rJacobian, 1, 25) = 0.17359359486891501; - IJth(rJacobian, 14, 25) = 1.7 - 1.7 * var_chaste_interface__ICaL_fCa_gate__fCaB_SL; - IJth(rJacobian, 19, 25) = -var_x379 * (1.3438550016e-10 * var_x219 - 2.6699999999999999 * var_x394 + var_x221 * var_x391); - IJth(rJacobian, 25, 25) = -171.99023312516786 + var_x412 + var_x413 - var_x409 * (var_x224 + 1.78 * var_x394 - 8.9590333439999989e-11 * var_x219 - var_x221 * var_x411); - IJth(rJacobian, 26, 25) = 48.958482036396518; - IJth(rJacobian, 27, 25) = 121.55000000000001 - var_x412; - IJth(rJacobian, 29, 25) = 43.550000000000004 - var_x413; - IJth(rJacobian, 40, 25) = -var_x429 * var_x433; - IJth(rJacobian, 43, 25) = -var_x437 * var_x441; - IJth(rJacobian, 0, 26) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x229 - 5.5364812799999996e-12 * var_x227 - var_x210 * var_x226 - 0.0012058750000000001 * var_x217 / (pow(var_x1, 2) * var_x225) - 0.034833333333333334 * var_x0 * var_x218 * var_x6 / pow(var_x7, 2) + 0.11 * var_x45 * var_x46 * var_x53 * var_x55 * var_x57 * var_x59 * NV_Ith_S(mParameters, 22)); - IJth(rJacobian, 15, 26) = 1.7 - 1.7 * var_chaste_interface__ICaL_fCa_gate__fCaB_jct; - IJth(rJacobian, 16, 26) = -var_x374 + var_x366 * var_chaste_interface__Jrel_SR__R; - IJth(rJacobian, 17, 26) = var_x365 * var_chaste_interface__Jrel_SR__O + var_x373 * var_x376 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 18, 26) = var_x374 + var_x366 * var_chaste_interface__Jrel_SR__O; - IJth(rJacobian, 20, 26) = -var_x396 * (1.6609443839999999e-11 * var_x227 - 0.33000000000000002 * var_x403 + var_x226 * var_x401); - IJth(rJacobian, 24, 26) = var_x407; - IJth(rJacobian, 25, 26) = 1.2484412919281114; - IJth(rJacobian, 26, 26) = -128.61534478149457 + var_x422 + var_x423 - var_x421 - var_x417 * (var_x229 + 0.22 * var_x403 - 1.1072962559999999e-11 * var_x227 - var_x226 * var_x420); - IJth(rJacobian, 28, 26) = 58.627450980392155 - var_x422; - IJth(rJacobian, 30, 26) = 21.029411764705884 - var_x423; - IJth(rJacobian, 41, 26) = -var_x429 * var_x434; - IJth(rJacobian, 44, 26) = -var_x437 * var_x442; - IJth(rJacobian, 25, 27) = var_x415; - IJth(rJacobian, 27, 27) = -var_x415; - IJth(rJacobian, 26, 28) = var_x425; - IJth(rJacobian, 28, 28) = -var_x425; - IJth(rJacobian, 25, 29) = var_x416; - IJth(rJacobian, 29, 29) = -var_x416; - IJth(rJacobian, 26, 30) = var_x426; - IJth(rJacobian, 30, 30) = -var_x426; - IJth(rJacobian, 24, 31) = var_x408; - IJth(rJacobian, 31, 31) = -var_x408; - IJth(rJacobian, 1, 32) = var_x248; - IJth(rJacobian, 32, 32) = -var_x248; - IJth(rJacobian, 1, 33) = 0.003032 + var_x249; - IJth(rJacobian, 33, 33) = -3.1999999999999999e-5 - var_x249; - IJth(rJacobian, 34, 33) = -0.0030000000000000001; - IJth(rJacobian, 1, 34) = 0.0063300000000000006 + var_x249; - IJth(rJacobian, 33, 34) = -var_x249; - IJth(rJacobian, 34, 34) = -0.0063300000000000006; - IJth(rJacobian, 1, 35) = var_x250; - IJth(rJacobian, 35, 35) = -var_x250; - IJth(rJacobian, 1, 36) = 0.016159999999999997 + var_x251; - IJth(rJacobian, 36, 36) = -0.00046000000000000001 - var_x251; - IJth(rJacobian, 37, 36) = -0.015699999999999999; - IJth(rJacobian, 1, 37) = 0.015757 + var_x251; - IJth(rJacobian, 36, 37) = -var_x251; - IJth(rJacobian, 37, 37) = -0.015757; - IJth(rJacobian, 1, 38) = var_x252; - IJth(rJacobian, 38, 38) = -var_x252; - IJth(rJacobian, 39, 39) = -0.059999999999999998 + var_x428 * var_chaste_interface__Ca_buffer__Cai + var_x432 * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 40, 39) = var_x433 * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 41, 39) = var_x434 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 39, 40) = (-0.076923076923076927 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 40, 40) = -0.059999999999999998 + var_x432 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x431) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 41, 40) = (-0.078431372549019607 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct) * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 39, 41) = (-0.0019615384615384616 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 40, 41) = (-0.0019635 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 41, 41) = -0.059999999999999998 + var_x432 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x430) * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 42, 42) = -0.11 + var_x436 * var_chaste_interface__Ca_buffer__Cai + var_x440 * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 43, 42) = var_x441 * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 44, 42) = var_x442 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 42, 43) = (-0.076923076923076927 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 43, 43) = -0.11 + var_x440 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x439) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 44, 43) = (-0.078431372549019607 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct) * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 42, 44) = (-0.0019615384615384616 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 43, 44) = (-0.0019635 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 44, 44) = -0.11 + var_x440 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x438) * var_chaste_interface__Ca_buffer__Ca_jct; - } - - N_Vector Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::ComputeDerivedQuantities(double var_chaste_interface__environment__time, const N_Vector & rY) - { - // Inputs: - // Time units: millisecond - double var_chaste_interface__cell__V = (mSetVoltageDerivativeToZero ? this->mFixedVoltage : NV_Ith_S(rY, 0)); - // Units: millivolt; Initial value: -85.721630473733 - double var_chaste_interface__INa_h_gate__h = NV_Ith_S(rY, 2); - // Units: dimensionless; Initial value: 0.98714602875678 - double var_chaste_interface__INa_j_gate__j = NV_Ith_S(rY, 3); - // Units: dimensionless; Initial value: 0.991826348770428 - double var_chaste_interface__INa_m_gate__m = NV_Ith_S(rY, 4); - // Units: dimensionless; Initial value: 0.0013702407736465 - double var_chaste_interface__IKr_Xr_gate__Xr = NV_Ith_S(rY, 5); - // Units: dimensionless; Initial value: 0.00846906175020028 - double var_chaste_interface__IKs_Xs_gate__Xs = NV_Ith_S(rY, 6); - // Units: dimensionless; Initial value: 0.00613557812033723 - double var_chaste_interface__Itos_X_gate__X_tos = NV_Ith_S(rY, 7); - // Units: dimensionless; Initial value: 0.00401072468238921 - double var_chaste_interface__Itos_Y_gate__Y_tos = NV_Ith_S(rY, 8); - // Units: dimensionless; Initial value: 0.31555225368514 - double var_chaste_interface__Itos_R_gate__R_tos = NV_Ith_S(rY, 9); - // Units: dimensionless; Initial value: 0.402577243036347 - double var_chaste_interface__Itof_X_gate__X_tof = NV_Ith_S(rY, 10); - // Units: dimensionless; Initial value: 0.00401068798369438 - double var_chaste_interface__Itof_Y_gate__Y_tof = NV_Ith_S(rY, 11); - // Units: dimensionless; Initial value: 0.994632857675454 - double var_chaste_interface__ICaL_d_gate__d = NV_Ith_S(rY, 12); - // Units: dimensionless; Initial value: 6.99526086177479e-06 - double var_chaste_interface__ICaL_f_gate__f = NV_Ith_S(rY, 13); - // Units: dimensionless; Initial value: 1.00067601563206 - double var_chaste_interface__ICaL_fCa_gate__fCaB_SL = NV_Ith_S(rY, 14); - // Units: dimensionless; Initial value: 0.0150193299768419 - double var_chaste_interface__ICaL_fCa_gate__fCaB_jct = NV_Ith_S(rY, 15); - // Units: dimensionless; Initial value: 0.0244048782575591 - double var_chaste_interface__Jrel_SR__O = NV_Ith_S(rY, 18); - // Units: dimensionless; Initial value: 7.1199533741995e-07 - double var_chaste_interface__Na_buffer__Na_SL = NV_Ith_S(rY, 19); - // Units: millimolar; Initial value: 8.87161932058707 - double var_chaste_interface__Na_buffer__Na_jct = NV_Ith_S(rY, 20); - // Units: millimolar; Initial value: 8.87031835089116 - double var_chaste_interface__Na_buffer__Nai = NV_Ith_S(rY, 23); - // Units: millimolar; Initial value: 8.87200572571131 - double var_chaste_interface__Ca_buffer__Ca_SR = NV_Ith_S(rY, 24); - // Units: millimolar; Initial value: 0.547125831028543 - double var_chaste_interface__Ca_buffer__Ca_SL = NV_Ith_S(rY, 25); - // Units: millimolar; Initial value: 0.000104971310105451 - double var_chaste_interface__Ca_buffer__Ca_jct = NV_Ith_S(rY, 26); - // Units: millimolar; Initial value: 0.000174045152623969 - - // Mathematics - const double var_ICaL__Fx_ICaL_SL = 0.10000000000000001; // dimensionless - const double var_ICaL__Fx_ICaL_jct = 0.90000000000000002; // dimensionless - const double var_ICaL__PK = 2.7000000000000001e-7; // litre_per_farad_millisecond - const double var_ICaL__PNa = 1.4999999999999999e-8; // litre_per_farad_millisecond - const double var_ICaL__Q10_CaL = 1.8; // dimensionless - const double var_ICaL__gamma_Cai = 0.34100000000000003; // dimensionless - const double var_ICaL__gamma_Cao = 0.34100000000000003; // dimensionless - const double var_ICaL__gamma_Ki = 0.75; // dimensionless - const double var_ICaL__gamma_Ko = 0.75; // dimensionless - const double var_ICaL__gamma_Nai = 0.75; // dimensionless - const double var_ICaL__gamma_Nao = 0.75; // dimensionless - const double var_ICaL_fCa_gate__fCa_SL = 1 - var_chaste_interface__ICaL_fCa_gate__fCaB_SL; // dimensionless - const double var_ICaL_fCa_gate__fCa_jct = 1 - var_chaste_interface__ICaL_fCa_gate__fCaB_jct; // dimensionless - const double var_ICab__Fx_CaBk_SL = 0.89000000000000001; // dimensionless - const double var_ICab__Fx_CaBk_jct = 0.11; // dimensionless - const double var_ICab__G_CaBk = 0.00025129999999999998; // milliS_per_microF - const double var_ICap__Fx_SLCaP_SL = 0.89000000000000001; // dimensionless - const double var_ICap__Fx_SLCaP_jct = 0.11; // dimensionless - const double var_ICap__H = 1.6000000000000001; // dimensionless - const double var_ICap__Km = 0.00050000000000000001; // millimolar - const double var_ICap__Q10_SLCaP = 2.3500000000000001; // dimensionless - const double var_ICap__V_maxAF = 0.067299999999999999; // microA_per_microF - const double var_IKs__Fx_Ks_SL = 0.89000000000000001; // dimensionless - const double var_IKs__Fx_Ks_jct = 0.11; // dimensionless - const double var_IKs__pCa_SL = 3 - log10(var_chaste_interface__Ca_buffer__Ca_SL); // dimensionless - const double var_IKs__G_Ks_SL = (0.057000000000000002 + 0.19 / (1 + exp(-12 + 1.6666666666666667 * var_IKs__pCa_SL))) * NV_Ith_S(mParameters, 20); // milliS_per_microF - const double var_IKs__pCa_jct = 3 - log10(var_chaste_interface__Ca_buffer__Ca_jct); // dimensionless - const double var_IKs__G_Ks_jct = (0.057000000000000002 + 0.19 / (1 + exp(-12 + 1.6666666666666667 * var_IKs__pCa_jct))) * NV_Ith_S(mParameters, 20); // milliS_per_microF - const double var_IKs__pKNa = 0.018329999999999999; // dimensionless - const double var_INa__Fx_Na_SL = 0.89000000000000001; // dimensionless - const double var_INa__Fx_Na_jct = 0.11; // dimensionless - const double var_INaCa__Fx_NCX_SL = 0.89000000000000001; // dimensionless - const double var_INaCa__Fx_NCX_jct = 0.11; // dimensionless - const double var_INaCa__HNa = 3; // dimensionless - const double var_INaCa__K_mCai = 0.0035899999999999999; // millimolar - const double var_INaCa__K_mCao = 1.3; // millimolar - const double var_INaCa__K_mNai = 12.289999999999999; // millimolar - const double var_INaCa__K_mNao = 87.5; // millimolar - const double var_INaCa__Kd_act = 0.00025599999999999999; // millimolar - const double var_INaCa__Ka_SL = 1 / (1 + pow(var_INaCa__Kd_act, 3) / pow(var_chaste_interface__Ca_buffer__Ca_SL, 3)); // dimensionless - const double var_INaCa__Ka_jct = 1 / (1 + pow(var_INaCa__Kd_act, 3) / pow(var_chaste_interface__Ca_buffer__Ca_jct, 3)); // dimensionless - const double var_INaCa__Q10_NCX = 1.5700000000000001; // dimensionless - const double var_INaCa__eta = 0.34999999999999998; // dimensionless - const double var_INaCa__ksat = 0.27000000000000002; // dimensionless - const double var_INa__openProb = pow(var_chaste_interface__INa_m_gate__m, 3) * var_chaste_interface__INa_h_gate__h * var_chaste_interface__INa_j_gate__j; // dimensionless - const double var_INab__Fx_NaBk_SL = 0.89000000000000001; // dimensionless - const double var_INab__Fx_NaBk_jct = 0.11; // dimensionless - const double var_INab__G_NaBk = 0.00029700000000000001; // milliS_per_microF - const double var_Jrel_SR__j_rel_SR = (-var_chaste_interface__Ca_buffer__Ca_jct + var_chaste_interface__Ca_buffer__Ca_SR) * var_chaste_interface__Jrel_SR__O * NV_Ith_S(mParameters, 1); // millimolar_per_millisecond - const double var_ICaL_f_gate__tau_f = 1 / (0.02 + 0.019699999999999999 * exp(-0.23877882250000002 * pow((1 + 0.068965517241379309 * var_chaste_interface__cell__V), 2))); // millisecond - const double var_IKr_Rr_gate__Rr = 1 / (1 + exp(1.4732142857142858 + 0.044642857142857144 * var_chaste_interface__cell__V)); // dimensionless - const double var_INa_h_gate__alpha_h = ((var_chaste_interface__cell__V < -40) ? (0.13500000000000001 * exp(-11.764705882352942 + 0.14705882352941177 * NV_Ith_S(mParameters, 16) - 0.14705882352941177 * var_chaste_interface__cell__V)) : (0)); // per_millisecond - const double var_INa_h_gate__beta_h = ((var_chaste_interface__cell__V < -40) ? (310000 * exp(0.34999999999999998 * var_chaste_interface__cell__V - 0.34999999999999998 * NV_Ith_S(mParameters, 16)) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__cell__V - 0.079000000000000001 * NV_Ith_S(mParameters, 16))) : (7.6923076923076916 / (1 + exp(-0.96036036036036043 + 0.0900900900900901 * NV_Ith_S(mParameters, 16) - 0.0900900900900901 * var_chaste_interface__cell__V)))); // per_millisecond - const double var_INa_h_gate__tau_h = 1 / (var_INa_h_gate__alpha_h + var_INa_h_gate__beta_h); // millisecond - const double var_INa_j_gate__alpha_j = ((var_chaste_interface__cell__V < -40) ? ((37.780000000000001 + var_chaste_interface__cell__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__cell__V - 0.24440000000000001 * NV_Ith_S(mParameters, 16)) - 3.4740000000000003e-5 * exp(0.043909999999999998 * NV_Ith_S(mParameters, 16) - 0.043909999999999998 * var_chaste_interface__cell__V)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__cell__V - 0.311 * NV_Ith_S(mParameters, 16)))) : (0)); // per_millisecond - const double var_INa_j_gate__beta_j = ((var_chaste_interface__cell__V < -40) ? (0.1212 * exp(0.01052 * NV_Ith_S(mParameters, 16) - 0.01052 * var_chaste_interface__cell__V) / (1 + exp(-5.5312920000000005 + 0.13780000000000001 * NV_Ith_S(mParameters, 16) - 0.13780000000000001 * var_chaste_interface__cell__V))) : (0.29999999999999999 * exp(2.5349999999999999e-7 * NV_Ith_S(mParameters, 16) - 2.5349999999999999e-7 * var_chaste_interface__cell__V) / (1 + exp(-3.2000000000000002 + 0.10000000000000001 * NV_Ith_S(mParameters, 16) - 0.10000000000000001 * var_chaste_interface__cell__V)))); // per_millisecond - const double var_INa_j_gate__tau_j = 1 / (var_INa_j_gate__alpha_j + var_INa_j_gate__beta_j); // millisecond - const double var_cell__i_Stim_converted = GetIntracellularAreaStimulus(var_chaste_interface__environment__time); // uA_per_cm2 - const double var_model_parameters__Cm_per_area = 1.9999999999999999e-6; // farad_per_cm2 - const double var_IK1__G_K1 = 0.43033148291193518 * sqrt(NV_Ith_S(mParameters, 8)) * NV_Ith_S(mParameters, 18); // milliS_per_microF - const double var_IKr__G_IKr = 0.43033148291193518 * sqrt(NV_Ith_S(mParameters, 8)) * NV_Ith_S(mParameters, 19); // milliS_per_microF - const double var_ICaL__Q_CaL = pow(var_ICaL__Q10_CaL, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_ICaL__temp = 0.45000000000000001 * pow(NV_Ith_S(mParameters, 10), 2) * var_ICaL__Q_CaL * var_chaste_interface__ICaL_d_gate__d * var_chaste_interface__ICaL_f_gate__f * var_chaste_interface__cell__V / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)); // coulomb_per_mole - const double var_ICaL__i_CaL_Ca_SL = 4 * (-var_ICaL__gamma_Cao * NV_Ith_S(mParameters, 6) + var_chaste_interface__Ca_buffer__Ca_SL * var_ICaL__gamma_Cai * exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_SL * NV_Ith_S(mParameters, 12) * var_ICaL__temp * var_ICaL_fCa_gate__fCa_SL / (-1 + exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Ca_jct = 4 * (-var_ICaL__gamma_Cao * NV_Ith_S(mParameters, 6) + var_chaste_interface__Ca_buffer__Ca_jct * var_ICaL__gamma_Cai * exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_jct * NV_Ith_S(mParameters, 12) * var_ICaL__temp * var_ICaL_fCa_gate__fCa_jct / (-1 + exp(2 * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_K = (var_ICaL__Fx_ICaL_SL * var_ICaL_fCa_gate__fCa_SL + var_ICaL__Fx_ICaL_jct * var_ICaL_fCa_gate__fCa_jct) * (-var_ICaL__gamma_Ko * NV_Ith_S(mParameters, 8) + var_ICaL__gamma_Ki * NV_Ith_S(mParameters, 5) * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__PK * var_ICaL__temp / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Na_SL = (-var_ICaL__gamma_Nao * NV_Ith_S(mParameters, 9) + var_ICaL__gamma_Nai * var_chaste_interface__Na_buffer__Na_SL * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_SL * var_ICaL__PNa * var_ICaL__temp * var_ICaL_fCa_gate__fCa_SL / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL_Na_jct = (-var_ICaL__gamma_Nao * NV_Ith_S(mParameters, 9) + var_ICaL__gamma_Nai * var_chaste_interface__Na_buffer__Na_jct * exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) * var_ICaL__Fx_ICaL_jct * var_ICaL__PNa * var_ICaL__temp * var_ICaL_fCa_gate__fCa_jct / (-1 + exp(var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // microA_per_microF - const double var_ICaL__i_CaL = var_ICaL__i_CaL_Ca_SL + var_ICaL__i_CaL_Ca_jct + var_ICaL__i_CaL_K + var_ICaL__i_CaL_Na_SL + var_ICaL__i_CaL_Na_jct; // microA_per_microF - const double var_ICaL__i_CaL_converted = HeartConfig::Instance()->GetCapacitance() * var_ICaL__i_CaL; // uA_per_cm2 - const double var_ICap__Q_SLCaP = pow(var_ICap__Q10_SLCaP, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_ICap__i_Cap_SL = var_ICap__Fx_SLCaP_SL * var_ICap__Q_SLCaP * var_ICap__V_maxAF / (1 + pow((var_ICap__Km / var_chaste_interface__Ca_buffer__Ca_SL), var_ICap__H)); // microA_per_microF - const double var_ICap__i_Cap_jct = var_ICap__Fx_SLCaP_jct * var_ICap__Q_SLCaP * var_ICap__V_maxAF / (1 + pow((var_ICap__Km / var_chaste_interface__Ca_buffer__Ca_jct), var_ICap__H)); // microA_per_microF - const double var_ICap__i_Cap = var_ICap__i_Cap_SL + var_ICap__i_Cap_jct; // microA_per_microF - const double var_ICap__i_Cap_converted = HeartConfig::Instance()->GetCapacitance() * var_ICap__i_Cap; // uA_per_cm2 - const double var_IKs__E_Ks = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log((var_IKs__pKNa * NV_Ith_S(mParameters, 9) + NV_Ith_S(mParameters, 8)) / (var_IKs__pKNa * var_chaste_interface__Na_buffer__Nai + NV_Ith_S(mParameters, 5))) / NV_Ith_S(mParameters, 10); // millivolt - const double var_IKs__i_Ks_SL = pow(var_chaste_interface__IKs_Xs_gate__Xs, 2) * (-var_IKs__E_Ks + var_chaste_interface__cell__V) * var_IKs__Fx_Ks_SL * var_IKs__G_Ks_SL; // microA_per_microF - const double var_IKs__i_Ks_jct = pow(var_chaste_interface__IKs_Xs_gate__Xs, 2) * (-var_IKs__E_Ks + var_chaste_interface__cell__V) * var_IKs__Fx_Ks_jct * var_IKs__G_Ks_jct; // microA_per_microF - const double var_IKs__i_Ks = var_IKs__i_Ks_SL + var_IKs__i_Ks_jct; // microA_per_microF - const double var_IKs__i_Ks_converted = HeartConfig::Instance()->GetCapacitance() * var_IKs__i_Ks; // uA_per_cm2 - const double var_INaCa__Q_NCX = pow(var_INaCa__Q10_NCX, (-31 + 0.10000000000000001 * NV_Ith_S(mParameters, 23))); // dimensionless - const double var_INaCa__temp_SL = (pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) * exp(var_INaCa__eta * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))) - pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_SL * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) / (1 + var_INaCa__ksat * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // millimolar4 - const double var_INaCa__i_NaCa_SL = var_INaCa__Fx_NCX_SL * var_INaCa__Ka_SL * var_INaCa__Q_NCX * NV_Ith_S(mParameters, 22) * var_INaCa__temp_SL / (pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * var_INaCa__K_mCao + pow(var_chaste_interface__Na_buffer__Na_SL, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_SL + pow(var_INaCa__K_mNao, var_INaCa__HNa) * (1 + var_chaste_interface__Ca_buffer__Ca_SL / var_INaCa__K_mCai) * var_chaste_interface__Ca_buffer__Ca_SL + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * (1 + pow((var_chaste_interface__Na_buffer__Na_SL / var_INaCa__K_mNai), var_INaCa__HNa)) * var_INaCa__K_mCai); // microA_per_microF - const double var_INaCa__temp_jct = (pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) * exp(var_INaCa__eta * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))) - pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_jct * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))) / (1 + var_INaCa__ksat * exp((-1 + var_INaCa__eta) * var_chaste_interface__cell__V * NV_Ith_S(mParameters, 10) / (NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23)))); // millimolar4 - const double var_INaCa__i_NaCa_jct = var_INaCa__Fx_NCX_jct * var_INaCa__Ka_jct * var_INaCa__Q_NCX * NV_Ith_S(mParameters, 22) * var_INaCa__temp_jct / (pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * var_INaCa__K_mCao + pow(var_chaste_interface__Na_buffer__Na_jct, var_INaCa__HNa) * NV_Ith_S(mParameters, 6) + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * var_chaste_interface__Ca_buffer__Ca_jct + pow(var_INaCa__K_mNao, var_INaCa__HNa) * (1 + var_chaste_interface__Ca_buffer__Ca_jct / var_INaCa__K_mCai) * var_chaste_interface__Ca_buffer__Ca_jct + pow(NV_Ith_S(mParameters, 9), var_INaCa__HNa) * (1 + pow((var_chaste_interface__Na_buffer__Na_jct / var_INaCa__K_mNai), var_INaCa__HNa)) * var_INaCa__K_mCai); // microA_per_microF - const double var_INaCa__i_NaCa = var_INaCa__i_NaCa_SL + var_INaCa__i_NaCa_jct; // microA_per_microF - const double var_INaCa__i_NaCa_converted = HeartConfig::Instance()->GetCapacitance() * var_INaCa__i_NaCa; // uA_per_cm2 - const double var_model_parameters__cell_length = 100; // micrometre - const double var_model_parameters__cell_radius = 10.25; // micrometre - const double var_model_parameters__Cm = 2.0e-8 * M_PI * var_model_parameters__Cm_per_area * var_model_parameters__cell_length * var_model_parameters__cell_radius; // farad - const double var_model_parameters__Cm_converted = 1000000 * var_model_parameters__Cm; // uF - const double var_reversal_potentials__E_Ca_SL = 0.5 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 6) / var_chaste_interface__Ca_buffer__Ca_SL) / NV_Ith_S(mParameters, 10); // millivolt - const double var_ICab__i_Cab_SL = (-var_reversal_potentials__E_Ca_SL + var_chaste_interface__cell__V) * var_ICab__Fx_CaBk_SL * var_ICab__G_CaBk; // microA_per_microF - const double var_reversal_potentials__E_Ca_jct = 0.5 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 6) / var_chaste_interface__Ca_buffer__Ca_jct) / NV_Ith_S(mParameters, 10); // millivolt - const double var_ICab__i_Cab_jct = (-var_reversal_potentials__E_Ca_jct + var_chaste_interface__cell__V) * var_ICab__Fx_CaBk_jct * var_ICab__G_CaBk; // microA_per_microF - const double var_ICab__i_Cab = var_ICab__i_Cab_SL + var_ICab__i_Cab_jct; // microA_per_microF - const double var_ICab__i_Cab_converted = HeartConfig::Instance()->GetCapacitance() * var_ICab__i_Cab; // uA_per_cm2 - const double var_reversal_potentials__E_Cl = -NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 7) / NV_Ith_S(mParameters, 4)) / NV_Ith_S(mParameters, 10); // millivolt - const double var_IClb__i_Clb = (-var_reversal_potentials__E_Cl + var_chaste_interface__cell__V) * NV_Ith_S(mParameters, 13); // microA_per_microF - const double var_IClb__i_Clb_converted = HeartConfig::Instance()->GetCapacitance() * var_IClb__i_Clb; // uA_per_cm2 - const double var_reversal_potentials__E_K = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 8) / NV_Ith_S(mParameters, 5)) / NV_Ith_S(mParameters, 10); // millivolt - const double var_IK1_K1_gate__alpha_K1 = 1.02 / (1 + exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__cell__V - 0.23849999999999999 * var_reversal_potentials__E_K)); // per_millisecond - const double var_IK1_K1_gate__beta_K1 = (exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__cell__V - 0.061749999999999999 * var_reversal_potentials__E_K) + 0.49124000000000001 * exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__cell__V - 0.080320000000000003 * var_reversal_potentials__E_K)) / (1 + exp(-2.4444678999999998 + 0.51429999999999998 * var_reversal_potentials__E_K - 0.51429999999999998 * var_chaste_interface__cell__V)); // per_millisecond - const double var_IK1_K1_gate__K1_infinity = var_IK1_K1_gate__alpha_K1 / (var_IK1_K1_gate__alpha_K1 + var_IK1_K1_gate__beta_K1); // dimensionless - const double var_IK1__i_K1 = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * var_IK1__G_K1 * var_IK1_K1_gate__K1_infinity; // microA_per_microF - const double var_IK1__i_K1_converted = HeartConfig::Instance()->GetCapacitance() * var_IK1__i_K1; // uA_per_cm2 - const double var_IKr__i_Kr = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * var_IKr__G_IKr * var_IKr_Rr_gate__Rr * var_chaste_interface__IKr_Xr_gate__Xr; // microA_per_microF - const double var_IKr__i_Kr_converted = HeartConfig::Instance()->GetCapacitance() * var_IKr__i_Kr; // uA_per_cm2 - const double var_Itof__i_tof = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * NV_Ith_S(mParameters, 17) * var_chaste_interface__Itof_X_gate__X_tof * var_chaste_interface__Itof_Y_gate__Y_tof; // microA_per_microF - const double var_Itof__i_tof_converted = HeartConfig::Instance()->GetCapacitance() * var_Itof__i_tof; // uA_per_cm2 - const double var_Itos__i_tos = (-var_reversal_potentials__E_K + var_chaste_interface__cell__V) * (0.5 * var_chaste_interface__Itos_R_gate__R_tos + var_chaste_interface__Itos_Y_gate__Y_tos) * NV_Ith_S(mParameters, 21) * var_chaste_interface__Itos_X_gate__X_tos; // microA_per_microF - const double var_Itos__i_tos_converted = HeartConfig::Instance()->GetCapacitance() * var_Itos__i_tos; // uA_per_cm2 - const double var_reversal_potentials__E_Na_SL = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 9) / var_chaste_interface__Na_buffer__Na_SL) / NV_Ith_S(mParameters, 10); // millivolt - const double var_INa__i_Na_SL = (-var_reversal_potentials__E_Na_SL + var_chaste_interface__cell__V) * var_INa__Fx_Na_SL * NV_Ith_S(mParameters, 14) * var_INa__openProb; // microA_per_microF - const double var_INab__i_Nab_SL = (-var_reversal_potentials__E_Na_SL + var_chaste_interface__cell__V) * var_INab__Fx_NaBk_SL * var_INab__G_NaBk; // microA_per_microF - const double var_reversal_potentials__E_Na_jct = NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23) * log(NV_Ith_S(mParameters, 9) / var_chaste_interface__Na_buffer__Na_jct) / NV_Ith_S(mParameters, 10); // millivolt - const double var_INa__i_Na_jct = (-var_reversal_potentials__E_Na_jct + var_chaste_interface__cell__V) * var_INa__Fx_Na_jct * NV_Ith_S(mParameters, 14) * var_INa__openProb; // microA_per_microF - const double var_INa__i_Na = var_INa__i_Na_SL + var_INa__i_Na_jct; // microA_per_microF - const double var_INa__i_Na_converted = HeartConfig::Instance()->GetCapacitance() * var_INa__i_Na; // uA_per_cm2 - const double var_INab__i_Nab_jct = (-var_reversal_potentials__E_Na_jct + var_chaste_interface__cell__V) * var_INab__Fx_NaBk_jct * var_INab__G_NaBk; // microA_per_microF - const double var_INab__i_Nab = var_INab__i_Nab_SL + var_INab__i_Nab_jct; // microA_per_microF - const double var_INab__i_Nab_converted = HeartConfig::Instance()->GetCapacitance() * var_INab__i_Nab; // uA_per_cm2 - - N_Vector dqs = N_VNew_Serial(23); - NV_Ith_S(dqs, 0) = var_Jrel_SR__j_rel_SR; - NV_Ith_S(dqs, 1) = var_reversal_potentials__E_Cl; - NV_Ith_S(dqs, 2) = var_ICaL__i_CaL_converted; - NV_Ith_S(dqs, 3) = var_ICaL_fCa_gate__fCa_SL; - NV_Ith_S(dqs, 4) = var_ICaL_f_gate__tau_f; - NV_Ith_S(dqs, 5) = var_ICab__i_Cab_converted; - NV_Ith_S(dqs, 6) = var_IClb__i_Clb_converted; - NV_Ith_S(dqs, 7) = var_INab__i_Nab_converted; - NV_Ith_S(dqs, 8) = var_ICap__i_Cap_converted; - NV_Ith_S(dqs, 9) = var_model_parameters__Cm_converted; - NV_Ith_S(dqs, 10) = var_INa__i_Na_converted; - NV_Ith_S(dqs, 11) = var_INa_h_gate__tau_h; - NV_Ith_S(dqs, 12) = var_INa_j_gate__tau_j; - NV_Ith_S(dqs, 13) = var_Itof__i_tof_converted; - NV_Ith_S(dqs, 14) = var_IK1__i_K1_converted; - NV_Ith_S(dqs, 15) = var_IK1__G_K1; - NV_Ith_S(dqs, 16) = var_IKr__i_Kr_converted; - NV_Ith_S(dqs, 17) = var_IKs__i_Ks_converted; - NV_Ith_S(dqs, 18) = var_Itos__i_tos_converted; - NV_Ith_S(dqs, 19) = var_INaCa__i_NaCa_converted; - NV_Ith_S(dqs, 20) = var_cell__i_Stim_converted; - NV_Ith_S(dqs, 21) = var_reversal_potentials__E_K; - NV_Ith_S(dqs, 22) = var_chaste_interface__environment__time; - return dqs; - } - -template<> -void OdeSystemInformation::Initialise(void) -{ - this->mSystemName = "shannon_wang_puglisi_weber_bers_2004_model_updated"; - this->mFreeVariableName = "time"; - this->mFreeVariableUnits = "millisecond"; - - // NV_Ith_S(rY, 0): - this->mVariableNames.push_back("membrane_voltage"); - this->mVariableUnits.push_back("millivolt"); - this->mInitialConditions.push_back(-85.721630473733); - - // NV_Ith_S(rY, 1): - this->mVariableNames.push_back("cytosolic_calcium_concentration"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(8.6504944644883e-05); - - // NV_Ith_S(rY, 2): - this->mVariableNames.push_back("membrane_fast_sodium_current_h_gate"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.98714602875678); - - // NV_Ith_S(rY, 3): - this->mVariableNames.push_back("membrane_fast_sodium_current_j_gate"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.991826348770428); - - // NV_Ith_S(rY, 4): - this->mVariableNames.push_back("membrane_fast_sodium_current_m_gate"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.0013702407736465); - - // NV_Ith_S(rY, 5): - this->mVariableNames.push_back("IKr_Xr_gate__Xr"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.00846906175020028); - - // NV_Ith_S(rY, 6): - this->mVariableNames.push_back("IKs_Xs_gate__Xs"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.00613557812033723); - - // NV_Ith_S(rY, 7): - this->mVariableNames.push_back("Itos_X_gate__X_tos"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.00401072468238921); - - // NV_Ith_S(rY, 8): - this->mVariableNames.push_back("Itos_Y_gate__Y_tos"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.31555225368514); - - // NV_Ith_S(rY, 9): - this->mVariableNames.push_back("Itos_R_gate__R_tos"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.402577243036347); - - // NV_Ith_S(rY, 10): - this->mVariableNames.push_back("Itof_X_gate__X_tof"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.00401068798369438); - - // NV_Ith_S(rY, 11): - this->mVariableNames.push_back("Itof_Y_gate__Y_tof"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.994632857675454); - - // NV_Ith_S(rY, 12): - this->mVariableNames.push_back("membrane_L_type_calcium_current_d_gate"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(6.99526086177479e-06); - - // NV_Ith_S(rY, 13): - this->mVariableNames.push_back("membrane_L_type_calcium_current_f_gate"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(1.00067601563206); - - // NV_Ith_S(rY, 14): - this->mVariableNames.push_back("ICaL_fCa_gate__fCaB_SL"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.0150193299768419); - - // NV_Ith_S(rY, 15): - this->mVariableNames.push_back("ICaL_fCa_gate__fCaB_jct"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.0244048782575591); - - // NV_Ith_S(rY, 16): - this->mVariableNames.push_back("Jrel_SR__R"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(0.890917121306535); - - // NV_Ith_S(rY, 17): - this->mVariableNames.push_back("Jrel_SR__I"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(8.71752603681652e-08); - - // NV_Ith_S(rY, 18): - this->mVariableNames.push_back("Jrel_SR__O"); - this->mVariableUnits.push_back("dimensionless"); - this->mInitialConditions.push_back(7.1199533741995e-07); - - // NV_Ith_S(rY, 19): - this->mVariableNames.push_back("submembrane_space_sodium_concentration"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(8.87161932058707); - - // NV_Ith_S(rY, 20): - this->mVariableNames.push_back("dyadic_space_sodium_concentration"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(8.87031835089116); - - // NV_Ith_S(rY, 21): - this->mVariableNames.push_back("Na_buffer__Na_SL_buf"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.77606800956492); - - // NV_Ith_S(rY, 22): - this->mVariableNames.push_back("Na_buffer__Na_jct_buf"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(3.55668431730337); - - // NV_Ith_S(rY, 23): - this->mVariableNames.push_back("cytosolic_sodium_concentration"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(8.87200572571131); - - // NV_Ith_S(rY, 24): - this->mVariableNames.push_back("JSR_calcium_concentration"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.547125831028543); - - // NV_Ith_S(rY, 25): - this->mVariableNames.push_back("submembrane_space_calcium_concentration"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.000104971310105451); - - // NV_Ith_S(rY, 26): - this->mVariableNames.push_back("dyadic_space_calcium_concentration"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.000174045152623969); - - // NV_Ith_S(rY, 27): - this->mVariableNames.push_back("Ca_buffer__Ca_SLB_SL"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.00973710481246467); - - // NV_Ith_S(rY, 28): - this->mVariableNames.push_back("Ca_buffer__Ca_SLB_jct"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.00774564218017916); - - // NV_Ith_S(rY, 29): - this->mVariableNames.push_back("Ca_buffer__Ca_SLHigh_SL"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.113168405274355); - - // NV_Ith_S(rY, 30): - this->mVariableNames.push_back("Ca_buffer__Ca_SLHigh_jct"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.0772568134367606); - - // NV_Ith_S(rY, 31): - this->mVariableNames.push_back("Ca_buffer__Ca_Calsequestrin"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(1.18828527890062); - - // NV_Ith_S(rY, 32): - this->mVariableNames.push_back("cytosolic_Ca_buffer__Ca_TroponinC"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.00886665040283094); - - // NV_Ith_S(rY, 33): - this->mVariableNames.push_back("cytosolic_Ca_buffer__Ca_TroponinC_Ca_Mg"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.117873278193472); - - // NV_Ith_S(rY, 34): - this->mVariableNames.push_back("cytosolic_Ca_buffer__Mg_TroponinC_Ca_Mg"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.0103906683506505); - - // NV_Ith_S(rY, 35): - this->mVariableNames.push_back("cytosolic_Ca_buffer__Ca_Calmodulin"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.000293073957804278); - - // NV_Ith_S(rY, 36): - this->mVariableNames.push_back("cytosolic_Ca_buffer__Ca_Myosin"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.00195899238146509); - - // NV_Ith_S(rY, 37): - this->mVariableNames.push_back("cytosolic_Ca_buffer__Mg_Myosin"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.137523520981802); - - // NV_Ith_S(rY, 38): - this->mVariableNames.push_back("cytosolic_Ca_buffer__Ca_SRB"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.00215728901718264); - - // NV_Ith_S(rY, 39): - this->mVariableNames.push_back("indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.0); - - // NV_Ith_S(rY, 40): - this->mVariableNames.push_back("indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.0); - - // NV_Ith_S(rY, 41): - this->mVariableNames.push_back("indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.0); - - // NV_Ith_S(rY, 42): - this->mVariableNames.push_back("indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.0); - - // NV_Ith_S(rY, 43): - this->mVariableNames.push_back("indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.0); - - // NV_Ith_S(rY, 44): - this->mVariableNames.push_back("indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct"); - this->mVariableUnits.push_back("millimolar"); - this->mInitialConditions.push_back(0.0); - - // mParameters[0]: - this->mParameterNames.push_back("SR_leak_current_max"); - this->mParameterUnits.push_back("per_millisecond"); - - // mParameters[1]: - this->mParameterNames.push_back("SR_release_current_max"); - this->mParameterUnits.push_back("per_millisecond"); - - // mParameters[2]: - this->mParameterNames.push_back("SR_uptake_current_max"); - this->mParameterUnits.push_back("millimolar_per_millisecond"); - - // mParameters[3]: - this->mParameterNames.push_back("concentration_clamp_onoff"); - this->mParameterUnits.push_back("dimensionless"); - - // mParameters[4]: - this->mParameterNames.push_back("cytosolic_chloride_concentration"); - this->mParameterUnits.push_back("millimolar"); - - // mParameters[5]: - this->mParameterNames.push_back("cytosolic_potassium_concentration"); - this->mParameterUnits.push_back("millimolar"); - - // mParameters[6]: - this->mParameterNames.push_back("extracellular_calcium_concentration"); - this->mParameterUnits.push_back("millimolar"); - - // mParameters[7]: - this->mParameterNames.push_back("extracellular_chloride_concentration"); - this->mParameterUnits.push_back("millimolar"); - - // mParameters[8]: - this->mParameterNames.push_back("extracellular_potassium_concentration"); - this->mParameterUnits.push_back("millimolar"); - - // mParameters[9]: - this->mParameterNames.push_back("extracellular_sodium_concentration"); - this->mParameterUnits.push_back("millimolar"); - - // mParameters[10]: - this->mParameterNames.push_back("faraday_constant"); - this->mParameterUnits.push_back("coulomb_per_mole"); - - // mParameters[11]: - this->mParameterNames.push_back("gas_constant"); - this->mParameterUnits.push_back("joule_per_kilomole_kelvin"); - - // mParameters[12]: - this->mParameterNames.push_back("membrane_L_type_calcium_current_conductance"); - this->mParameterUnits.push_back("litre_per_farad_millisecond"); - - // mParameters[13]: - this->mParameterNames.push_back("membrane_background_chloride_current_conductance"); - this->mParameterUnits.push_back("milliS_per_microF"); - - // mParameters[14]: - this->mParameterNames.push_back("membrane_fast_sodium_current_conductance"); - this->mParameterUnits.push_back("milliS_per_microF"); - - // mParameters[15]: - this->mParameterNames.push_back("membrane_fast_sodium_current_reduced_inactivation"); - this->mParameterUnits.push_back("dimensionless"); - - // mParameters[16]: - this->mParameterNames.push_back("membrane_fast_sodium_current_shift_inactivation"); - this->mParameterUnits.push_back("millivolt"); - - // mParameters[17]: - this->mParameterNames.push_back("membrane_fast_transient_outward_current_conductance"); - this->mParameterUnits.push_back("milliS_per_microF"); - - // mParameters[18]: - this->mParameterNames.push_back("membrane_inward_rectifier_potassium_current_conductance_scaling_factor"); - this->mParameterUnits.push_back("milliS_per_microF"); - - // mParameters[19]: - this->mParameterNames.push_back("membrane_rapid_delayed_rectifier_potassium_current_conductance"); - this->mParameterUnits.push_back("milliS_per_microF"); - - // mParameters[20]: - this->mParameterNames.push_back("membrane_slow_delayed_rectifier_potassium_current_conductance"); - this->mParameterUnits.push_back("milliS_per_microF"); - - // mParameters[21]: - this->mParameterNames.push_back("membrane_slow_transient_outward_current_conductance"); - this->mParameterUnits.push_back("milliS_per_microF"); - - // mParameters[22]: - this->mParameterNames.push_back("membrane_sodium_calcium_exchanger_current_conductance"); - this->mParameterUnits.push_back("microA_per_microF"); - - // mParameters[23]: - this->mParameterNames.push_back("temperature"); - this->mParameterUnits.push_back("kelvin"); - - // Derived Quantity index [0]: - this->mDerivedQuantityNames.push_back("SR_release_current"); - this->mDerivedQuantityUnits.push_back("millimolar_per_millisecond"); - - // Derived Quantity index [1]: - this->mDerivedQuantityNames.push_back("chloride_reversal_potential"); - this->mDerivedQuantityUnits.push_back("millivolt"); - - // Derived Quantity index [2]: - this->mDerivedQuantityNames.push_back("membrane_L_type_calcium_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [3]: - this->mDerivedQuantityNames.push_back("membrane_L_type_calcium_current_fCa_gate"); - this->mDerivedQuantityUnits.push_back("dimensionless"); - - // Derived Quantity index [4]: - this->mDerivedQuantityNames.push_back("membrane_L_type_calcium_current_f_gate_tau"); - this->mDerivedQuantityUnits.push_back("millisecond"); - - // Derived Quantity index [5]: - this->mDerivedQuantityNames.push_back("membrane_background_calcium_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [6]: - this->mDerivedQuantityNames.push_back("membrane_background_chloride_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [7]: - this->mDerivedQuantityNames.push_back("membrane_background_sodium_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [8]: - this->mDerivedQuantityNames.push_back("membrane_calcium_pump_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [9]: - this->mDerivedQuantityNames.push_back("membrane_capacitance"); - this->mDerivedQuantityUnits.push_back("uF"); - - // Derived Quantity index [10]: - this->mDerivedQuantityNames.push_back("membrane_fast_sodium_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [11]: - this->mDerivedQuantityNames.push_back("membrane_fast_sodium_current_h_gate_tau"); - this->mDerivedQuantityUnits.push_back("millisecond"); - - // Derived Quantity index [12]: - this->mDerivedQuantityNames.push_back("membrane_fast_sodium_current_j_gate_tau"); - this->mDerivedQuantityUnits.push_back("millisecond"); - - // Derived Quantity index [13]: - this->mDerivedQuantityNames.push_back("membrane_fast_transient_outward_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [14]: - this->mDerivedQuantityNames.push_back("membrane_inward_rectifier_potassium_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [15]: - this->mDerivedQuantityNames.push_back("membrane_inward_rectifier_potassium_current_conductance"); - this->mDerivedQuantityUnits.push_back("milliS_per_microF"); - - // Derived Quantity index [16]: - this->mDerivedQuantityNames.push_back("membrane_rapid_delayed_rectifier_potassium_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [17]: - this->mDerivedQuantityNames.push_back("membrane_slow_delayed_rectifier_potassium_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [18]: - this->mDerivedQuantityNames.push_back("membrane_slow_transient_outward_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [19]: - this->mDerivedQuantityNames.push_back("membrane_sodium_calcium_exchanger_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [20]: - this->mDerivedQuantityNames.push_back("membrane_stimulus_current"); - this->mDerivedQuantityUnits.push_back("uA_per_cm2"); - - // Derived Quantity index [21]: - this->mDerivedQuantityNames.push_back("potassium_reversal_potential"); - this->mDerivedQuantityUnits.push_back("millivolt"); - - // Derived Quantity index [22]: - this->mDerivedQuantityNames.push_back("time"); - this->mDerivedQuantityUnits.push_back("millisecond"); - - this->mInitialised = true; -} - -// Serialization for Boost >= 1.36 -#include "SerializationExportWrapperForCpp.hpp" -CHASTE_CLASS_EXPORT(Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode) -extern "C" -{ - AbstractCardiacCellInterface* MakeCardiacCell( - boost::shared_ptr pSolver, - boost::shared_ptr pStimulus) - { - return new Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode(pSolver, pStimulus); - } - -} -#endif // CHASTE_CVODE diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/dynamic_Shannon2004.hpp b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/dynamic_Shannon2004.hpp deleted file mode 100644 index 2daa77bf..00000000 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/dynamic_Shannon2004.hpp +++ /dev/null @@ -1,86 +0,0 @@ -#ifdef CHASTE_CVODE -#ifndef DYNAMICSHANNON_WANG_PUGLISI_WEBER_BERS_2004FROMCELLMLCVODE_HPP_ -#define DYNAMICSHANNON_WANG_PUGLISI_WEBER_BERS_2004FROMCELLMLCVODE_HPP_ - -//! @file -//! -//! This source file was generated from CellML by chaste_codegen version (version omitted as unimportant) -//! -//! Model: shannon_wang_puglisi_weber_bers_2004_model_updated -//! -//! Processed by chaste_codegen: https://github.com/ModellingWebLab/chaste-codegen -//! (translator: chaste_codegen, model type: AnalyticCvode) -//! on (date omitted as unimportant) -//! -//! - -#include "ChasteSerialization.hpp" -#include -#include "AbstractDynamicallyLoadableEntity.hpp" -#include "AbstractStimulusFunction.hpp" -#include "AbstractCvodeCell.hpp" - -class Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode : public AbstractCvodeCell, public AbstractDynamicallyLoadableEntity -{ - friend class boost::serialization::access; - template - void serialize(Archive & archive, const unsigned int version) - { - archive & boost::serialization::base_object(*this); - archive & boost::serialization::base_object(*this); - } - - // - // Settable parameters and readable variables - // - -private: - static AbstractCvodeCell* CreateMethod(boost::shared_ptr p_solver, boost::shared_ptr p_stimulus); - static bool registered; -public: - - boost::shared_ptr UseCellMLDefaultStimulus(); - double GetIntracellularCalciumConcentration(); - Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode(boost::shared_ptr pOdeSolver /* unused; should be empty */, boost::shared_ptr pIntracellularStimulus); - ~Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode(); - double GetIIonic(const std::vector* pStateVariables=NULL); - void EvaluateYDerivatives(double var_chaste_interface__environment__time, const N_Vector rY, N_Vector rDY); - N_Vector ComputeDerivedQuantities(double var_chaste_interface__environment__time, const N_Vector & rY); - void EvaluateAnalyticJacobian(double var_chaste_interface__environment__time, N_Vector rY, N_Vector rDY, CHASTE_CVODE_DENSE_MATRIX rJacobian, N_Vector rTmp1, N_Vector rTmp2, N_Vector rTmp3); -}; - -// Needs to be included last -#include "SerializationExportWrapper.hpp" -CHASTE_CLASS_EXPORT(Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode) - -namespace boost -{ - namespace serialization - { - template - inline void save_construct_data( - Archive & ar, const Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode * t, const unsigned int fileVersion) - { - const boost::shared_ptr p_solver = t->GetSolver(); - const boost::shared_ptr p_stimulus = t->GetStimulusFunction(); - ar << p_solver; - ar << p_stimulus; - } - - template - inline void load_construct_data( - Archive & ar, Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode * t, const unsigned int fileVersion) - { - boost::shared_ptr p_solver; - boost::shared_ptr p_stimulus; - ar >> p_solver; - ar >> p_stimulus; - ::new(t)Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode(p_solver, p_stimulus); - } - - } - -} - -#endif // DYNAMICSHANNON_WANG_PUGLISI_WEBER_BERS_2004FROMCELLMLCVODE_HPP_ -#endif // CHASTE_CVODE \ No newline at end of file diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp index e8487951..56ff6857 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp @@ -142,7 +142,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLCvodeOpt_Lookup for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + 0.0015034391929775724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287556e-8 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + exp(-6.5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -197,7 +197,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLCvodeOpt_Lookup for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + 0.006737946999085467 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-7 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + exp(-5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -400,38 +400,43 @@ std::shared_ptr= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x5 = 1 - var_chaste_interface__sodium_channel_m_gate__m; - const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x7 = exp(-var_x6); - const double var_x8 = -1 + 0.006737946999085467 * var_x7; - const double var_x9 = 1 / var_x8; - const double var_x10 = 50 + var_chaste_interface__membrane__V; - const double var_x11 = 0.062015414396037277 * var_x3; - const double var_x12 = _lt_0_row[2]; - const double var_x13 = exp(-4.5 - var_x6); - const double var_x14 = 1 + var_x13; - const double var_x15 = exp(0.012500000000000001 * var_chaste_interface__membrane__V); - const double var_x16 = 0.0039899835282233235 * var_x15 * var_chaste_interface__potassium_channel_n_gate__n; - const double var_x17 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x3 = 1 - var_chaste_interface__sodium_channel_m_gate__m; + const double var_x4 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x5 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x6 = _lt_0_row[5]; + const double var_x7 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x8 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x9 = exp(-5 - var_x8); + const double var_x10 = -1 + var_x9; + const double var_x11 = 0.10000000000000001 / var_x10; + const double var_x12 = 50 + var_chaste_interface__membrane__V; + const double var_x13 = 4 * var_x6; + const double var_x14 = 1.0000000000287557e-7 * var_x4; + const double var_x15 = _lt_0_row[2]; + const double var_x16 = exp(-4.5 - var_x8); + const double var_x17 = 1 + var_x16; const double var_x18 = 1 - var_chaste_interface__potassium_channel_n_gate__n; - const double var_x19 = -1 + 0.0015034391929775724 * var_x7; - const double var_x20 = 1 / var_x19; - const double var_x21 = 65 + var_chaste_interface__membrane__V; - const double var_x22 = 0.31919868225786585 * var_x15; + const double var_x19 = _lt_0_row[1]; + const double var_x20 = 0.0015625000000000001 * var_x19 * var_chaste_interface__potassium_channel_n_gate__n; + const double var_x21 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x22 = exp(-6.5 - var_x8); + const double var_x23 = -1 + var_x22; + const double var_x24 = 0.01 / var_x23; + const double var_x25 = 65 + var_chaste_interface__membrane__V; + const double var_x26 = 0.125 * var_x19; + const double var_x27 = 1.0000000000287556e-8 * var_x4; // Matrix entries IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (var_x0 * (-NV_Ith_S(mParameters, 2) - var_x1 * var_chaste_interface__sodium_channel_h_gate__h - pow(var_chaste_interface__potassium_channel_n_gate__n, 4) * NV_Ith_S(mParameters, 3))); - IJth(rJacobian, 1, 0) = ((var_x4) ? (0.049999067384036401 - 0.049999067384036401 * var_chaste_interface__sodium_channel_m_gate__m + 0.0034453007997798488 * var_x3 * var_chaste_interface__sodium_channel_m_gate__m) : (0.0034453007997798488 * var_x3 * var_chaste_interface__sodium_channel_m_gate__m - 0.10000000000000001 * var_x5 * var_x9 - 6.7379469990854672e-5 * var_x10 * var_x5 * var_x7 / pow(var_x8, 2))); - IJth(rJacobian, 2, 0) = -0.050000000000000003 * var_x12 * (0.070000000000000007 - 0.070000000000000007 * var_chaste_interface__sodium_channel_h_gate__h) - 0.10000000000000001 * var_x13 * var_chaste_interface__sodium_channel_h_gate__h / pow(var_x14, 2); - IJth(rJacobian, 3, 0) = ((var_x17) ? (0.0049999067383819564 - var_x16 - 0.0049999067383819564 * var_chaste_interface__potassium_channel_n_gate__n) : (-var_x16 - 0.01 * var_x18 * var_x20 - 1.5034391929775725e-6 * var_x18 * var_x21 * var_x7 / pow(var_x19, 2))); + IJth(rJacobian, 1, 0) = ((var_x7) ? (var_x3 * (-0.050000000000000003 * var_x4 - 0.050000000000000003 * var_x5) + 0.22222222222222221 * var_x6 * var_chaste_interface__sodium_channel_m_gate__m) : (-var_x11 * var_x3 + 0.22222222222222221 * var_x6 * var_chaste_interface__sodium_channel_m_gate__m - 0.01 * var_x12 * var_x3 * var_x9 / pow(var_x10, 2))); + IJth(rJacobian, 2, 0) = -0.050000000000000003 * var_x15 * (0.070000000000000007 - 0.070000000000000007 * var_chaste_interface__sodium_channel_h_gate__h) - 0.10000000000000001 * var_x16 * var_chaste_interface__sodium_channel_h_gate__h / pow(var_x17, 2); + IJth(rJacobian, 3, 0) = ((var_x21) ? (-var_x20 + var_x18 * (-0.0050000000000000001 * var_x4 - 0.0050000000000000001 * var_x5)) : (-var_x20 - var_x18 * var_x24 - 0.001 * var_x18 * var_x22 * var_x25 / pow(var_x23, 2))); IJth(rJacobian, 0, 1) = mSetVoltageDerivativeToZero ? 0.0 : (-3 * var_x2 * pow(var_chaste_interface__sodium_channel_m_gate__m, 2) * NV_Ith_S(mParameters, 1) * var_chaste_interface__sodium_channel_h_gate__h); - IJth(rJacobian, 1, 1) = ((var_x4) ? (-3.4999533692061595 - var_x11 - 0.049999067384036401 * var_chaste_interface__membrane__V) : (-var_x11 + 0.10000000000000001 * var_x10 * var_x9)); + IJth(rJacobian, 1, 1) = ((var_x7) ? (-var_x13 - var_x14 - 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-var_x14 - 1.0000000000287557e-7 * var_x5)) : (-var_x13 + var_x11 * var_x12)); IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x1 * var_x2); - IJth(rJacobian, 2, 2) = -1 / var_x14 - 0.070000000000000007 * var_x12; + IJth(rJacobian, 2, 2) = -1 / var_x17 - 0.070000000000000007 * var_x15; IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-4 * var_x0 * pow(var_chaste_interface__potassium_channel_n_gate__n, 3) * (87 + var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3)); - IJth(rJacobian, 3, 3) = ((var_x17) ? (-0.42499393799526108 - var_x22 - 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-var_x22 + 0.01 * var_x20 * var_x21)); + IJth(rJacobian, 3, 3) = ((var_x21) ? (-var_x26 - var_x27 - 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-var_x27 - 1.0000000000287556e-8 * var_x5)) : (-var_x26 + var_x24 * var_x25)); } N_Vector Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLCvodeOpt::ComputeDerivedQuantities(double var_chaste_interface__environment__time, const N_Vector & rY) diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt index 1ecf164f..398966af 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_opt_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt @@ -142,7 +142,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + 0.0015034391929775724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287556e-8 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + exp(-6.5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -197,7 +197,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + 0.006737946999085467 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-7 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + exp(-5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -400,39 +400,44 @@ std::shared_ptr= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x6 = 1 - var_chaste_interface__sodium_channel_m_gate__m; - const double var_x7 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x8 = exp(var_x7); - const double var_x9 = -1 + 0.006737946999085467 * var_x8; - const double var_x10 = 0.10000000000000001 / var_x9; - const double var_x11 = 50 + var_chaste_interface__membrane__V; - const double var_x12 = -0.062015414396037277 * var_x3; - const double var_x13 = _lt_0_row[2]; - const double var_x14 = exp(-4.5 + var_x7); - const double var_x15 = 1 + var_x14; - const double var_x16 = exp(0.012500000000000001 * var_chaste_interface__membrane__V); - const double var_x17 = -0.0039899835282233235 * var_x16 * var_chaste_interface__potassium_channel_n_gate__n; - const double var_x18 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x3 = 1 - var_chaste_interface__sodium_channel_m_gate__m; + const double var_x4 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x5 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x6 = _lt_0_row[5]; + const double var_x7 = 0.22222222222222221 * var_x6 * var_chaste_interface__sodium_channel_m_gate__m; + const double var_x8 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x9 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x10 = exp(-5 + var_x9); + const double var_x11 = -1 + var_x10; + const double var_x12 = 0.10000000000000001 / var_x11; + const double var_x13 = 50 + var_chaste_interface__membrane__V; + const double var_x14 = -4 * var_x6; + const double var_x15 = -1.0000000000287557e-7 * var_x4; + const double var_x16 = _lt_0_row[2]; + const double var_x17 = exp(-4.5 + var_x9); + const double var_x18 = 1 + var_x17; const double var_x19 = 1 - var_chaste_interface__potassium_channel_n_gate__n; - const double var_x20 = -1 + 0.0015034391929775724 * var_x8; - const double var_x21 = 0.01 / var_x20; - const double var_x22 = 65 + var_chaste_interface__membrane__V; - const double var_x23 = -0.31919868225786585 * var_x16; + const double var_x20 = _lt_0_row[1]; + const double var_x21 = -0.0015625000000000001 * var_x20 * var_chaste_interface__potassium_channel_n_gate__n; + const double var_x22 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x23 = exp(-6.5 + var_x9); + const double var_x24 = -1 + var_x23; + const double var_x25 = 0.01 / var_x24; + const double var_x26 = 65 + var_chaste_interface__membrane__V; + const double var_x27 = -0.125 * var_x20; + const double var_x28 = -1.0000000000287556e-8 * var_x4; // Matrix entries IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (var_x0 * (-NV_Ith_S(mParameters, 2) - var_x1 * var_chaste_interface__sodium_channel_h_gate__h - pow(var_chaste_interface__potassium_channel_n_gate__n, 4) * NV_Ith_S(mParameters, 3))); - IJth(rJacobian, 1, 0) = ((var_x5) ? (0.049999067384036401 + var_x4 - 0.049999067384036401 * var_chaste_interface__sodium_channel_m_gate__m) : (var_x4 - var_x10 * var_x6 - 6.7379469990854672e-5 * var_x11 * var_x6 * var_x8 / pow(var_x9, 2))); - IJth(rJacobian, 2, 0) = -0.050000000000000003 * var_x13 * (0.070000000000000007 - 0.070000000000000007 * var_chaste_interface__sodium_channel_h_gate__h) - 0.10000000000000001 * var_x14 * var_chaste_interface__sodium_channel_h_gate__h / pow(var_x15, 2); - IJth(rJacobian, 3, 0) = ((var_x18) ? (0.0049999067383819564 + var_x17 - 0.0049999067383819564 * var_chaste_interface__potassium_channel_n_gate__n) : (var_x17 - var_x19 * var_x21 - 1.5034391929775725e-6 * var_x19 * var_x22 * var_x8 / pow(var_x20, 2))); + IJth(rJacobian, 1, 0) = ((var_x8) ? (var_x7 + var_x3 * (-0.050000000000000003 * var_x4 - 0.050000000000000003 * var_x5)) : (var_x7 - var_x12 * var_x3 - 0.01 * var_x10 * var_x13 * var_x3 / pow(var_x11, 2))); + IJth(rJacobian, 2, 0) = -0.050000000000000003 * var_x16 * (0.070000000000000007 - 0.070000000000000007 * var_chaste_interface__sodium_channel_h_gate__h) - 0.10000000000000001 * var_x17 * var_chaste_interface__sodium_channel_h_gate__h / pow(var_x18, 2); + IJth(rJacobian, 3, 0) = ((var_x22) ? (var_x21 + var_x19 * (-0.0050000000000000001 * var_x4 - 0.0050000000000000001 * var_x5)) : (var_x21 - var_x19 * var_x25 - 0.001 * var_x19 * var_x23 * var_x26 / pow(var_x24, 2))); IJth(rJacobian, 0, 1) = mSetVoltageDerivativeToZero ? 0.0 : (-3 * var_x2 * pow(var_chaste_interface__sodium_channel_m_gate__m, 2) * NV_Ith_S(mParameters, 1) * var_chaste_interface__sodium_channel_h_gate__h); - IJth(rJacobian, 1, 1) = ((var_x5) ? (-3.4999533692061595 + var_x12 - 0.049999067384036401 * var_chaste_interface__membrane__V) : (var_x12 + var_x10 * var_x11)); + IJth(rJacobian, 1, 1) = ((var_x8) ? (var_x14 + var_x15 - 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (var_x15 - 1.0000000000287557e-7 * var_x5)) : (var_x14 + var_x12 * var_x13)); IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x1 * var_x2); - IJth(rJacobian, 2, 2) = -1 / var_x15 - 0.070000000000000007 * var_x13; + IJth(rJacobian, 2, 2) = -1 / var_x18 - 0.070000000000000007 * var_x16; IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-4 * var_x0 * pow(var_chaste_interface__potassium_channel_n_gate__n, 3) * (87 + var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3)); - IJth(rJacobian, 3, 3) = ((var_x18) ? (-0.42499393799526108 + var_x23 - 0.0049999067383819564 * var_chaste_interface__membrane__V) : (var_x23 + var_x21 * var_x22)); + IJth(rJacobian, 3, 3) = ((var_x22) ? (var_x27 + var_x28 - 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (var_x28 - 1.0000000000287556e-8 * var_x5)) : (var_x27 + var_x25 * var_x26)); } N_Vector Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLCvodeOpt::ComputeDerivedQuantities(double var_chaste_interface__environment__time, const N_Vector & rY) diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/aslanidi_atrial_model_2009.cpp b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/aslanidi_atrial_model_2009.cpp index 9f547318..5da9c669 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/aslanidi_atrial_model_2009.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/aslanidi_atrial_model_2009.cpp @@ -526,43 +526,43 @@ double var_chaste_interface__Ca_handling_by_the_SR__F2 = NV_Ith_S(rY, 27); // Units: dimensionless; Initial value: 0.002262 const double var_x0 = 0.083333333333333329 * var_chaste_interface__membrane__V; - const double var_x1 = exp(-var_x0); - const double var_x2 = 1 / (1 + 6.7982597932038811 * var_x1); - const double var_x3 = var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; - const double var_x4 = NV_Ith_S(mParameters, 8) * var_chaste_interface__delayed_rectifier_K_current_z_gate__z; - const double var_x5 = var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; - const double var_x6 = exp(0.016955889611951675 * var_chaste_interface__membrane__V); - const double var_x7 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 3) * NV_Ith_S(mParameters, 1); - const double var_x8 = var_x6 * var_x7; - const double var_x9 = exp(-0.02072386508127427 * var_chaste_interface__membrane__V); - const double var_x10 = pow(NV_Ith_S(mParameters, 2), 3); - const double var_x11 = var_x10 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x12 = var_x11 * var_x9; - const double var_x13 = 1 + 0.00029999999999999997 * var_x11 + 0.00029999999999999997 * var_x7; - const double var_x14 = 1 / var_x13; - const double var_x15 = var_x14 * NV_Ith_S(mParameters, 9); - const double var_x16 = var_x15 * (0.016955889611951675 * var_x8 + 0.02072386508127427 * var_x12); - const double var_x17 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3, 6); - const double var_x18 = 0.00400016 + 0.0060002399999999996 * var_x17; - const double var_x19 = 0.58999999999999997 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1, 3) + 0.40999999999999998 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2, 3); - const double var_x20 = var_x19 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; - const double var_x21 = var_x18 * var_x20; - const double var_x22 = NV_Ith_S(mParameters, 7) * var_chaste_interface__delayed_rectifier_K_current_pi_gate__p_i; - const double var_x23 = var_x22 * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; - const double var_x24 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 3); - const double var_x25 = 1 / var_chaste_interface__intracellular_ion_concentrations__K_i; - const double var_x26 = var_x25 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x27 = pow(var_x26, (-1.393)); - const double var_x28 = exp(0.052487898287663745 * var_chaste_interface__membrane__V); - const double var_x29 = var_x27 * var_x28; - const double var_x30 = 1 / (1 + 1.207988323918572 * var_x29); + const double var_x1 = exp(1.9166666666666667 - var_x0); + const double var_x2 = 1 + var_x1; + const double var_x3 = 1 / var_x2; + const double var_x4 = var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; + const double var_x5 = NV_Ith_S(mParameters, 8) * var_chaste_interface__delayed_rectifier_K_current_z_gate__z; + const double var_x6 = var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; + const double var_x7 = exp(0.016955889611951675 * var_chaste_interface__membrane__V); + const double var_x8 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 3) * NV_Ith_S(mParameters, 1); + const double var_x9 = var_x7 * var_x8; + const double var_x10 = exp(-0.02072386508127427 * var_chaste_interface__membrane__V); + const double var_x11 = pow(NV_Ith_S(mParameters, 2), 3); + const double var_x12 = var_x11 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x13 = var_x10 * var_x12; + const double var_x14 = 1 + 0.00029999999999999997 * var_x12 + 0.00029999999999999997 * var_x8; + const double var_x15 = 1 / var_x14; + const double var_x16 = var_x15 * NV_Ith_S(mParameters, 9); + const double var_x17 = var_x16 * (0.016955889611951675 * var_x9 + 0.02072386508127427 * var_x13); + const double var_x18 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3, 6); + const double var_x19 = 0.00400016 + 0.0060002399999999996 * var_x18; + const double var_x20 = 0.58999999999999997 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1, 3) + 0.40999999999999998 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2, 3); + const double var_x21 = var_x20 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; + const double var_x22 = var_x19 * var_x21; + const double var_x23 = NV_Ith_S(mParameters, 7) * var_chaste_interface__delayed_rectifier_K_current_pi_gate__p_i; + const double var_x24 = var_x23 * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; + const double var_x25 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 3); + const double var_x26 = 1 / var_chaste_interface__intracellular_ion_concentrations__K_i; + const double var_x27 = log(var_x26 * var_chaste_interface__cleft_space_ion_concentrations__K_c); + const double var_x28 = exp(0.18895643383558949 + 0.052487898287663745 * var_chaste_interface__membrane__V - 1.393 * var_x27); + const double var_x29 = 1 + var_x28; + const double var_x30 = 1 / var_x29; const double var_x31 = 0.58999999999999997 + var_chaste_interface__cleft_space_ion_concentrations__K_c; const double var_x32 = pow(var_x31, (-3)); const double var_x33 = var_x32 * NV_Ith_S(mParameters, 6); const double var_x34 = var_x30 * var_x33; - const double var_x35 = var_x24 * var_x34; + const double var_x35 = var_x25 * var_x34; const double var_x36 = (-90 + 1.8 * var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3); - const double var_x37 = 0.012258038949414735 * var_x1 / pow((0.14709646739297683 + var_x1), 2); + const double var_x37 = 0.083333333333333329 * var_x1 / pow(var_x2, 2); const double var_x38 = exp(-1.5 - 0.025000000000000001 * var_chaste_interface__membrane__V); const double var_x39 = 1 + var_chaste_interface__cleft_space_ion_concentrations__K_c; const double var_x40 = 1 / var_x39; @@ -571,374 +571,400 @@ const double var_x43 = 1 / (36.4828726939094 + var_x42); const double var_x44 = var_x42 * var_x43 * var_chaste_interface__cleft_space_ion_concentrations__K_c; const double var_x45 = var_x38 * var_x40 * var_x41 * var_x44; - const double var_x46 = log(var_x26); - const double var_x47 = -26.53945091048535 * var_x46 + var_chaste_interface__membrane__V; - const double var_x48 = pow((0.82782257096336631 + var_x29), (-2)); - const double var_x49 = var_x29 * var_x33 * var_x47 * var_x48; - const double var_x50 = var_x24 * var_x49; - const double var_x51 = 0.36499999999999999 * var_chaste_interface__sodium_current_h2_gate__h2 + 0.63500000000000001 * var_chaste_interface__sodium_current_h1_gate__h1; - const double var_x52 = 1 / var_chaste_interface__intracellular_ion_concentrations__Na_i; - const double var_x53 = var_x52 * NV_Ith_S(mParameters, 2); - const double var_x54 = pow(var_x53, (-1)); - const double var_x55 = -1 + 0.99999990000000505 * var_x54; - const double var_x56 = pow(var_chaste_interface__sodium_current_m_gate__m, 3); - const double var_x57 = NV_Ith_S(mParameters, 2) * NV_Ith_S(mParameters, 5); - const double var_x58 = var_x56 * var_x57; - const double var_x59 = var_x55 * var_x58; - const double var_x60 = -1 + 1.0000001000000049 * var_x54; - const double var_x61 = (var_chaste_interface__membrane__V >= -2.6539450910485349e-6) && (var_chaste_interface__membrane__V <= 2.6539450910485349e-6); - const double var_x62 = exp(0.037679754693225945 * var_chaste_interface__membrane__V); - const double var_x63 = -1 + var_x62; - const double var_x64 = 1 / var_x63; - const double var_x65 = var_x54 * var_x62; - const double var_x66 = -1 + var_x65; - const double var_x67 = var_x64 * var_x66; - const double var_x68 = var_x58 * var_x67; - const double var_x69 = 3635.606491085292 * var_x51; - const double var_x70 = var_x64 * var_x65 * var_chaste_interface__membrane__V; - const double var_x71 = 136.98876074519373 * var_x51 * var_x58; - const double var_x72 = ((var_x61) ? (-18178033364.340294 * var_x51 * var_x59 + 18178031546.413288 * var_x51 * var_x56 * var_x60 * NV_Ith_S(mParameters, 2) * NV_Ith_S(mParameters, 5)) : (var_x68 * var_x69 + var_x70 * var_x71 - var_x62 * var_x66 * var_x71 * var_chaste_interface__membrane__V / pow(var_x63, 2))); - const double var_x73 = 1 / NV_Ith_S(mParameters, 4); - const double var_x74 = 0.001 * var_x73; - const double var_x75 = 0.00020000000000000001 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x76 = 1 / var_x75; - const double var_x77 = 1 / var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x78 = pow(var_x75, (-2)); - const double var_x79 = var_x10 * var_x15 * var_x9; - const double var_x80 = pow(var_x13, (-2)); - const double var_x81 = var_x8 - var_x12; - const double var_x82 = var_x80 * var_x81 * NV_Ith_S(mParameters, 9); - const double var_x83 = var_x10 * var_x82; - const double var_x84 = 0.5 + 188398.77346612973 * var_chaste_interface__membrane__V; - const double var_x85 = pow(var_chaste_interface__sodium_current_m_gate__m, 2); - const double var_x86 = var_x51 * var_x57 * var_x85; - const double var_x87 = 289461.01447324449 * var_x55 * var_x86; - const double var_x88 = ((var_x61) ? (var_x87 + var_x84 * (-var_x87 + 289460.98552517372 * var_x51 * var_x60 * var_x85 * NV_Ith_S(mParameters, 2) * NV_Ith_S(mParameters, 5))) : (10906.819473255875 * var_x67 * var_x86 * var_chaste_interface__membrane__V)); - const double var_x89 = 61269.248063503415 * var_x59; - const double var_x90 = var_x68 * var_chaste_interface__membrane__V; - const double var_x91 = ((var_x61) ? (var_x89 + var_x84 * (-var_x89 + 61269.241936161772 * var_x56 * var_x60 * NV_Ith_S(mParameters, 2) * NV_Ith_S(mParameters, 5))) : (2308.6101218391605 * var_x90)); - const double var_x92 = 35217.756760911412 * var_x59; - const double var_x93 = ((var_x61) ? (var_x92 + var_x84 * (-var_x92 + 35217.753238896134 * var_x56 * var_x60 * NV_Ith_S(mParameters, 2) * NV_Ith_S(mParameters, 5))) : (1326.9963692461315 * var_x90)); - const double var_x94 = 0.001 * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; - const double var_x95 = var_x36 * var_x73; - const double var_x96 = 0.001 * var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L; - const double var_x97 = 0.001 * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; - const double var_x98 = var_x73 * (-0.22800000000000001 + 0.0060000000000000001 * var_chaste_interface__membrane__V); - const double var_x99 = 0.001 * var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T; - const double var_x100 = var_x19 * var_x47; - const double var_x101 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1, 2); - const double var_x102 = var_x47 * var_x73; - const double var_x103 = var_x102 * var_x18 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; - const double var_x104 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2, 2); - const double var_x105 = var_x20 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3, 5); - const double var_x106 = 0.001 * var_chaste_interface__delayed_rectifier_K_current_pi_gate__p_i; - const double var_x107 = var_x102 * NV_Ith_S(mParameters, 7); - const double var_x108 = 0.001 * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; - const double var_x109 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2); - const double var_x110 = var_x109 * NV_Ith_S(mParameters, 1); - const double var_x111 = var_x110 * var_x15 * var_x6; - const double var_x112 = 1 / (1.5 + var_x38); - const double var_x113 = var_x112 * var_x40; - const double var_x114 = var_x113 * var_x43; - const double var_x115 = var_x114 * sqrt(var_chaste_interface__intracellular_ion_concentrations__Na_i) * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x116 = var_x110 * var_x82; - const double var_x117 = pow((1 + 0.027410122234342148 * var_x42), (-2)); - const double var_x118 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2); - const double var_x119 = var_x113 * var_x117 * var_x118 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x120 = var_x53 * var_x56 * NV_Ith_S(mParameters, 5); - const double var_x121 = var_x120 * var_x51 * var_x54; - const double var_x122 = ((var_x61) ? (96486.995175714823 * var_x121 + 0.0096480430789824823 * var_x121 * var_x84) : (var_x120 * var_x69 * var_x70)); - const double var_x123 = 26.53945091048535 * var_x4; - const double var_x124 = 26.53945091048535 * var_x25; - const double var_x125 = var_x25 * var_x35; - const double var_x126 = var_x25 * var_x50; - const double var_x127 = 1 / var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x128 = 26.53945091048535 * var_x127; - const double var_x129 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 2); - const double var_x130 = var_x129 * var_x34; - const double var_x131 = var_x24 * var_x30 * NV_Ith_S(mParameters, 6) / pow(var_x31, 4); - const double var_x132 = pow(var_x39, (-2)); - const double var_x133 = var_x112 * var_x132 * var_x44; - const double var_x134 = (0.079263098651550096 - 0.001585261973031002 * var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3); - const double var_x135 = 1 / (1.3999999999999999 + 0.80000000000000004 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up + 3333.3333333333335 * var_chaste_interface__intracellular_ion_concentrations__Ca_i); - const double var_x136 = pow((0.00041999999999999996 + 0.00023999999999999998 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up + var_chaste_interface__intracellular_ion_concentrations__Ca_i), (-2)); - const double var_x137 = 3333.3333333333335 * var_chaste_interface__intracellular_ion_concentrations__Ca_i - 0.32000000000000006 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up; - const double var_x138 = pow(var_chaste_interface__Ca_handling_by_the_SR__F2, 2); - const double var_x139 = 0.25 + var_chaste_interface__Ca_handling_by_the_SR__F2; - const double var_x140 = pow(var_x139, (-2)); - const double var_x141 = var_x140 * NV_Ith_S(mParameters, 0); - const double var_x142 = var_x138 * var_x141; - const double var_x143 = 0.00088070109612833447 * var_x142; - const double var_x144 = 0.00020079984991726025 - 5.2842065767700066e-6 * var_chaste_interface__membrane__V; - const double var_x145 = 32 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x146 = var_x136 * var_x137; - const double var_x147 = -var_chaste_interface__intracellular_ion_concentrations__Ca_i + var_chaste_interface__Ca_handling_by_the_SR__Ca_rel; - const double var_x148 = var_x138 * NV_Ith_S(mParameters, 0) / pow(var_x139, 3); - const double var_x149 = (var_chaste_interface__membrane__V >= -44.400001267299999) && (var_chaste_interface__membrane__V <= -44.399998732699999); - const double var_x150 = 0.078907914463820727 * var_chaste_interface__membrane__V; - const double var_x151 = exp(-var_x150); - const double var_x152 = -1 + 0.030091534212260941 * var_x151; - const double var_x153 = 460 / var_x152; - const double var_x154 = 44.399999999999999 + var_chaste_interface__membrane__V; - const double var_x155 = exp(-3.5035114021936398 - var_x150); - const double var_x156 = exp(-7.333333333333333 - 0.077519379844961239 * var_chaste_interface__membrane__V); - const double var_x157 = 1 / (1 + 323.30000000000001 * var_x156); - const double var_x158 = exp(-12.010771992818672 - 0.17953321364452424 * var_chaste_interface__membrane__V); - const double var_x159 = 1 / (1491 * var_x157 + 44.899999999999999 * var_x158); - const double var_x160 = 8.0610412926391373 * var_x158; - const double var_x161 = -var_x159 * var_x160 + 2.019719479407183e-5 * var_x158 * (var_x160 - 0.35750508923240704 * var_x156 / pow((0.0030931023816888337 + var_x156), 2)) / pow((var_x157 + 0.030114017437961098 * var_x158), 2); - const double var_x162 = exp(6.666666666666667 + 0.16666666666666666 * var_chaste_interface__membrane__V); - const double var_x163 = 1 + var_x162; - const double var_x164 = 1 / var_x163; - const double var_x165 = 0.001 / (0.00014999999999999999 + 0.029999999999999999 * var_x164); - const double var_x166 = -44.899999999999999 * var_x158 * var_x159; - const double var_x167 = exp(30 + 0.5 * var_chaste_interface__membrane__V); - const double var_x168 = 1 + var_x167; - const double var_x169 = 1 / var_x168; - const double var_x170 = 0.001 / (0.00044999999999999999 + 0.12 * var_x169); - const double var_x171 = (var_chaste_interface__membrane__V >= -5.0000002500000003) && (var_chaste_interface__membrane__V <= -4.9999997499999997); - const double var_x172 = 0.40000000000000002 * var_chaste_interface__membrane__V; - const double var_x173 = exp(var_x172); - const double var_x174 = 1 / (-1 + 7.3890560989306504 * var_x173); - const double var_x175 = 5 + var_chaste_interface__membrane__V; - const double var_x176 = var_chaste_interface__membrane__V >= -45.000000249999999; - const double var_x177 = var_chaste_interface__membrane__V >= -10.000000480800001; - const double var_x178 = var_chaste_interface__membrane__V <= -44.999999750000001; - const double var_x179 = var_chaste_interface__membrane__V <= -9.9999995191999993; - const double var_x180 = (var_x176) && (var_x177) && (var_x178) && (var_x179); - const double var_x181 = exp(-0.20798668885191349 * var_chaste_interface__membrane__V); - const double var_x182 = -1 + 0.12494684295098046 * var_x181; - const double var_x183 = 50 / var_x182; - const double var_x184 = 10 + var_chaste_interface__membrane__V; - const double var_x185 = var_x183 + 1.2993640073937236 * var_x181 * var_x184 / pow(var_x182, 2); - const double var_x186 = (var_x176) && (var_x178); - const double var_x187 = exp(-var_x172); - const double var_x188 = -1 + 1.5229979744712629e-8 * var_x187; - const double var_x189 = 16.719999999999999 / var_x188; - const double var_x190 = 45 + var_chaste_interface__membrane__V; - const double var_x191 = var_x189 + 1.0185810453263805e-7 * var_x187 * var_x190 / pow(var_x188, 2); - const double var_x192 = (var_x177) && (var_x179); - const double var_x193 = exp(-1.6590909090909092 - 0.15151515151515152 * var_chaste_interface__membrane__V); - const double var_x194 = 1 + var_x193; - const double var_x195 = ((var_x171) ? (-0.00076253941769037492 - 2.240152507879658 * var_chaste_interface__membrane__V) : (4.4800000000000004 * var_x174 * var_x175)); - const double var_x196 = var_x183 * var_x184; - const double var_x197 = var_x189 * var_x190; - const double var_x198 = ((var_x180) ? (908.42247429897986 + 33.36127045727622 * var_chaste_interface__membrane__V) : ((var_x186) ? (418.01256107817733 - var_x196 + 8.3602791350706056 * var_chaste_interface__membrane__V) : ((var_x192) ? (490.40991322080254 - var_x197 + 25.000991322205618 * var_chaste_interface__membrane__V) : (-var_x196 - var_x197)))); - const double var_x199 = (var_chaste_interface__membrane__V >= -18.000000400000001) && (var_chaste_interface__membrane__V <= -17.999999599999999); - const double var_x200 = 0.25 * var_chaste_interface__membrane__V; - const double var_x201 = exp(var_x200); - const double var_x202 = 1 / (-1 + 90.017131300521811 * var_x201); - const double var_x203 = 18 + var_chaste_interface__membrane__V; - const double var_x204 = ((var_x199) ? (-4.2449208209089404) : (8.4900000000000002 * var_x202 - 0.023578845152419297 * var_x201 * var_x203 / pow((-0.011108996538242306 + var_x201), 2))); - const double var_x205 = exp(-4.5 - var_x200); - const double var_x206 = 1 + var_x205; - const double var_x207 = 16.980499999999999 * var_x205 / pow(var_x206, 2); - const double var_x208 = 1 / var_x206; - const double var_x209 = 67.921999999999997 * var_x208; - const double var_x210 = ((var_x199) ? (-42.448574776213569 - 4.2449208209089404 * var_chaste_interface__membrane__V) : (8.4900000000000002 * var_x202 * var_x203)); - const double var_x211 = 1 / (var_x209 + var_x210); - const double var_x212 = exp(-3.7704918032786887 - 0.16393442622950821 * var_chaste_interface__membrane__V); - const double var_x213 = 1 + var_x212; - const double var_x214 = 0.77666666666666673 + 0.033333333333333333 * var_chaste_interface__membrane__V; - const double var_x215 = exp(-var_x214); - const double var_x216 = exp(var_x214); - const double var_x217 = exp(4.876462938881664 + 0.065019505851755519 * var_chaste_interface__membrane__V); - const double var_x218 = exp(-0.9003601440576231 - 0.012004801920768308 * var_chaste_interface__membrane__V); - const double var_x219 = 9.6370000000000005 * var_x217 + 9.6370000000000005 * var_x218; - const double var_x220 = 1 / var_x219; - const double var_x221 = 0.11569027611044419 * var_x218 - 0.62659297789336799 * var_x217; - const double var_x222 = exp(-2.6628794603230959 - 0.17752529735487307 * var_chaste_interface__membrane__V); - const double var_x223 = 1 + var_x222; - const double var_x224 = exp(-0.1388888888888889 * var_chaste_interface__membrane__V); - const double var_x225 = exp(var_x0); - const double var_x226 = 0.00040000000000000002 + 1 / (8.0109999999999992 * var_x224 + 386.60000000000002 * var_x225); + const double var_x46 = -26.53945091048535 * var_x27 + var_chaste_interface__membrane__V; + const double var_x47 = pow(var_x29, (-2)); + const double var_x48 = var_x28 * var_x33 * var_x46 * var_x47; + const double var_x49 = var_x25 * var_x48; + const double var_x50 = 1 / (-1 + exp(9.9999999999999995e-8)); + const double var_x51 = 1 / var_chaste_interface__intracellular_ion_concentrations__Na_i; + const double var_x52 = var_x51 * NV_Ith_S(mParameters, 2); + const double var_x53 = log(var_x52); + const double var_x54 = exp(9.9999999999999995e-8 - var_x53); + const double var_x55 = var_x50 * (-1 + var_x54); + const double var_x56 = 0.36499999999999999 * var_chaste_interface__sodium_current_h2_gate__h2 + 0.63500000000000001 * var_chaste_interface__sodium_current_h1_gate__h1; + const double var_x57 = pow(var_chaste_interface__sodium_current_m_gate__m, 3); + const double var_x58 = NV_Ith_S(mParameters, 2) * NV_Ith_S(mParameters, 5); + const double var_x59 = var_x57 * var_x58; + const double var_x60 = var_x56 * var_x59; + const double var_x61 = 1817.803245542646 * var_x60; + const double var_x62 = 1 / (-1 + exp(-9.9999999999999995e-8)); + const double var_x63 = exp(-9.9999999999999995e-8 - var_x53); + const double var_x64 = var_x62 * (-1 + var_x63); + const double var_x65 = (var_chaste_interface__membrane__V >= -2.6539450910485349e-6) && (var_chaste_interface__membrane__V <= 2.6539450910485349e-6); + const double var_x66 = 0.037679754693225945 * var_chaste_interface__membrane__V; + const double var_x67 = exp(var_x66); + const double var_x68 = -1 + var_x67; + const double var_x69 = 1 / var_x68; + const double var_x70 = exp(var_x66 - var_x53); + const double var_x71 = -1 + var_x70; + const double var_x72 = var_x69 * var_x71; + const double var_x73 = 136.98876074519373 * var_x60 * var_chaste_interface__membrane__V; + const double var_x74 = var_x69 * var_x70; + const double var_x75 = ((var_x65) ? (var_x55 * var_x61 + var_x61 * var_x64) : (var_x73 * var_x74 + 3635.606491085292 * var_x60 * var_x72 - var_x67 * var_x71 * var_x73 / pow(var_x68, 2))); + const double var_x76 = 1 / NV_Ith_S(mParameters, 4); + const double var_x77 = 0.001 * var_x76; + const double var_x78 = 0.00020000000000000001 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x79 = 1 / var_x78; + const double var_x80 = 1 / var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x81 = pow(var_x78, (-2)); + const double var_x82 = var_x10 * var_x11 * var_x16; + const double var_x83 = pow(var_x14, (-2)); + const double var_x84 = var_x9 - var_x13; + const double var_x85 = var_x83 * var_x84 * NV_Ith_S(mParameters, 9); + const double var_x86 = var_x11 * var_x85; + const double var_x87 = 0.5 + 188398.77346612973 * var_chaste_interface__membrane__V; + const double var_x88 = var_x56 * var_x58 * pow(var_chaste_interface__sodium_current_m_gate__m, 2); + const double var_x89 = 0.028946099999999999 * var_x88; + const double var_x90 = var_x64 * var_x89; + const double var_x91 = var_x72 * var_chaste_interface__membrane__V; + const double var_x92 = ((var_x65) ? (-var_x90 + var_x87 * (var_x90 + var_x55 * var_x89)) : (10906.819473255875 * var_x88 * var_x91)); + const double var_x93 = 0.0061269244999999995 * var_x59; + const double var_x94 = var_x64 * var_x93; + const double var_x95 = var_x59 * var_x91; + const double var_x96 = ((var_x65) ? (-var_x94 + var_x87 * (var_x94 + var_x55 * var_x93)) : (2308.6101218391605 * var_x95)); + const double var_x97 = 0.0035217754999999997 * var_x59; + const double var_x98 = var_x64 * var_x97; + const double var_x99 = ((var_x65) ? (-var_x98 + var_x87 * (var_x98 + var_x55 * var_x97)) : (1326.9963692461315 * var_x95)); + const double var_x100 = 0.001 * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; + const double var_x101 = var_x36 * var_x76; + const double var_x102 = 0.001 * var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L; + const double var_x103 = 0.001 * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; + const double var_x104 = var_x76 * (-0.22800000000000001 + 0.0060000000000000001 * var_chaste_interface__membrane__V); + const double var_x105 = 0.001 * var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T; + const double var_x106 = var_x20 * var_x46; + const double var_x107 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1, 2); + const double var_x108 = var_x46 * var_x76; + const double var_x109 = var_x108 * var_x19 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; + const double var_x110 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2, 2); + const double var_x111 = var_x21 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3, 5); + const double var_x112 = 0.001 * var_chaste_interface__delayed_rectifier_K_current_pi_gate__p_i; + const double var_x113 = var_x108 * NV_Ith_S(mParameters, 7); + const double var_x114 = 0.001 * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; + const double var_x115 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2); + const double var_x116 = var_x115 * NV_Ith_S(mParameters, 1); + const double var_x117 = var_x116 * var_x16 * var_x7; + const double var_x118 = 1 / (1.5 + var_x38); + const double var_x119 = var_x118 * var_x40; + const double var_x120 = var_x119 * var_x43; + const double var_x121 = var_x120 * sqrt(var_chaste_interface__intracellular_ion_concentrations__Na_i) * var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x122 = var_x116 * var_x85; + const double var_x123 = pow((1 + 0.027410122234342148 * var_x42), (-2)); + const double var_x124 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2); + const double var_x125 = var_x119 * var_x123 * var_x124 * var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x126 = var_x52 * var_x56 * var_x57 * NV_Ith_S(mParameters, 5); + const double var_x127 = 0.0096486999999999996 * var_x126; + const double var_x128 = var_x127 * var_x62 * var_x63; + const double var_x129 = ((var_x65) ? (-var_x128 + var_x87 * (var_x128 + var_x127 * var_x50 * var_x54)) : (3635.606491085292 * var_x126 * var_x74 * var_chaste_interface__membrane__V)); + const double var_x130 = 26.53945091048535 * var_x5; + const double var_x131 = 26.53945091048535 * var_x26; + const double var_x132 = var_x26 * var_x35; + const double var_x133 = var_x26 * var_x49; + const double var_x134 = 1 / var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x135 = 26.53945091048535 * var_x134; + const double var_x136 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 2); + const double var_x137 = var_x136 * var_x34; + const double var_x138 = var_x25 * var_x30 * NV_Ith_S(mParameters, 6) / pow(var_x31, 4); + const double var_x139 = pow(var_x39, (-2)); + const double var_x140 = var_x118 * var_x139 * var_x44; + const double var_x141 = (0.079263098651550096 - 0.001585261973031002 * var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3); + const double var_x142 = 1 / (1.3999999999999999 + 0.80000000000000004 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up + 3333.3333333333335 * var_chaste_interface__intracellular_ion_concentrations__Ca_i); + const double var_x143 = pow((0.00041999999999999996 + 0.00023999999999999998 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up + var_chaste_interface__intracellular_ion_concentrations__Ca_i), (-2)); + const double var_x144 = 3333.3333333333335 * var_chaste_interface__intracellular_ion_concentrations__Ca_i - 0.32000000000000006 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up; + const double var_x145 = pow(var_chaste_interface__Ca_handling_by_the_SR__F2, 2); + const double var_x146 = 0.25 + var_chaste_interface__Ca_handling_by_the_SR__F2; + const double var_x147 = pow(var_x146, (-2)); + const double var_x148 = var_x147 * NV_Ith_S(mParameters, 0); + const double var_x149 = var_x145 * var_x148; + const double var_x150 = 0.00088070109612833447 * var_x149; + const double var_x151 = 0.00020079984991726025 - 5.2842065767700066e-6 * var_chaste_interface__membrane__V; + const double var_x152 = 32 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x153 = var_x143 * var_x144; + const double var_x154 = -var_chaste_interface__intracellular_ion_concentrations__Ca_i + var_chaste_interface__Ca_handling_by_the_SR__Ca_rel; + const double var_x155 = var_x145 * NV_Ith_S(mParameters, 0) / pow(var_x146, 3); + const double var_x156 = 1 / (-1 + exp(9.9999999999708629e-8)); + const double var_x157 = 1 / (-1 + exp(-9.9999999999708629e-8)); + const double var_x158 = (var_chaste_interface__membrane__V >= -44.400001267299999) && (var_chaste_interface__membrane__V <= -44.399998732699999); + const double var_x159 = exp(-3.5035114021936398 - 0.078907914463820727 * var_chaste_interface__membrane__V); + const double var_x160 = -1 + var_x159; + const double var_x161 = 460 / var_x160; + const double var_x162 = 44.399999999999999 + var_chaste_interface__membrane__V; + const double var_x163 = 0.00058295799999830145 * var_x156; + const double var_x164 = exp(-7.333333333333333 - 0.077519379844961239 * var_chaste_interface__membrane__V); + const double var_x165 = 1 / (1 + 323.30000000000001 * var_x164); + const double var_x166 = exp(-12.010771992818672 - 0.17953321364452424 * var_chaste_interface__membrane__V); + const double var_x167 = 1 / (1491 * var_x165 + 44.899999999999999 * var_x166); + const double var_x168 = 8.0610412926391373 * var_x166; + const double var_x169 = -var_x167 * var_x168 + 2.019719479407183e-5 * var_x166 * (var_x168 - 0.35750508923240704 * var_x164 / pow((0.0030931023816888337 + var_x164), 2)) / pow((var_x165 + 0.030114017437961098 * var_x166), 2); + const double var_x170 = exp(6.666666666666667 + 0.16666666666666666 * var_chaste_interface__membrane__V); + const double var_x171 = 1 + var_x170; + const double var_x172 = 1 / var_x171; + const double var_x173 = 0.001 / (0.00014999999999999999 + 0.029999999999999999 * var_x172); + const double var_x174 = -44.899999999999999 * var_x166 * var_x167; + const double var_x175 = exp(30 + 0.5 * var_chaste_interface__membrane__V); + const double var_x176 = 1 + var_x175; + const double var_x177 = 1 / var_x176; + const double var_x178 = 0.001 / (0.00044999999999999999 + 0.12 * var_x177); + const double var_x179 = 1 / (-1 + exp(1.0000000000010001e-7)); + const double var_x180 = 1 / (-1 + exp(-1.0000000000010001e-7)); + const double var_x181 = (var_chaste_interface__membrane__V >= -5.0000002500000003) && (var_chaste_interface__membrane__V <= -4.9999997499999997); + const double var_x182 = 0.40000000000000002 * var_chaste_interface__membrane__V; + const double var_x183 = exp(2 + var_x182); + const double var_x184 = -1 + var_x183; + const double var_x185 = 1 / var_x184; + const double var_x186 = 5 + var_chaste_interface__membrane__V; + const double var_x187 = 1 / (-1 + exp(-1.000000000139778e-7)); + const double var_x188 = 1 / (-1 + exp(9.9999999991773334e-8)); + const double var_x189 = 8.3600000009281459 * var_x187 + 8.359999999071853 * var_x188; + const double var_x190 = 1 / (-1 + exp(-9.9999999998742257e-8)); + const double var_x191 = 1 / (-1 + exp(1.0000000000162864e-7)); + const double var_x192 = 24.999999999639201 * var_x190 + 25.000000000360799 * var_x191; + const double var_x193 = var_chaste_interface__membrane__V >= -45.000000249999999; + const double var_x194 = var_chaste_interface__membrane__V >= -10.000000480800001; + const double var_x195 = var_chaste_interface__membrane__V <= -44.999999750000001; + const double var_x196 = var_chaste_interface__membrane__V <= -9.9999995191999993; + const double var_x197 = (var_x193) && (var_x194) && (var_x195) && (var_x196); + const double var_x198 = exp(-2.0798668885191347 - 0.20798668885191349 * var_chaste_interface__membrane__V); + const double var_x199 = -1 + var_x198; + const double var_x200 = 50 / var_x199; + const double var_x201 = 10 + var_chaste_interface__membrane__V; + const double var_x202 = var_x200 + 10.399334442595674 * var_x198 * var_x201 / pow(var_x199, 2); + const double var_x203 = (var_x193) && (var_x195); + const double var_x204 = exp(-18 - var_x182); + const double var_x205 = -1 + var_x204; + const double var_x206 = 16.719999999999999 / var_x205; + const double var_x207 = 45 + var_chaste_interface__membrane__V; + const double var_x208 = var_x206 + 6.6879999999999997 * var_x204 * var_x207 / pow(var_x205, 2); + const double var_x209 = (var_x194) && (var_x196); + const double var_x210 = exp(-1.6590909090909092 - 0.15151515151515152 * var_chaste_interface__membrane__V); + const double var_x211 = 1 + var_x210; + const double var_x212 = 1.1200000000011203e-6 * var_x180; + const double var_x213 = ((var_x181) ? (-var_x212 + 1999999.9999979998 * (5.0000002500000003 + var_chaste_interface__membrane__V) * (var_x212 + 1.1200000000011203e-6 * var_x179)) : (4.4800000000000004 * var_x185 * var_x186)); + const double var_x214 = 4.1799999996561256e-6 * var_x188; + const double var_x215 = var_x214 + 1999999.9999424887 * (45.000000249999999 + var_chaste_interface__membrane__V) * (-var_x214 - 4.1800000005842713e-6 * var_x187); + const double var_x216 = 2.4040000000391526e-5 * var_x191; + const double var_x217 = var_x216 + 1039933.4442576389 * (10.000000480800001 + var_chaste_interface__membrane__V) * (-var_x216 - 2.4039999999697637e-5 * var_x190); + const double var_x218 = var_x200 * var_x201; + const double var_x219 = var_x206 * var_x207; + const double var_x220 = ((var_x197) ? (var_x215 + var_x217) : ((var_x203) ? (var_x215 - var_x218) : ((var_x209) ? (var_x217 - var_x219) : (-var_x218 - var_x219)))); + const double var_x221 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x222 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x223 = (var_chaste_interface__membrane__V >= -18.000000400000001) && (var_chaste_interface__membrane__V <= -17.999999599999999); + const double var_x224 = 4.5 + 0.25 * var_chaste_interface__membrane__V; + const double var_x225 = exp(var_x224); + const double var_x226 = -1 + var_x225; const double var_x227 = 1 / var_x226; - const double var_x228 = exp(327.99999999999994 + 10 * var_chaste_interface__membrane__V); - const double var_x229 = 1 + var_x228; - const double var_x230 = 1 / var_x229; - const double var_x231 = 1 / (0.020400000000000001 + 0.54659999999999997 * var_x230); - const double var_x232 = exp(4.0070821529745047 + 0.14164305949008499 * var_chaste_interface__membrane__V); - const double var_x233 = 1 + var_x232; - const double var_x234 = 0.000141643059490085 * var_x232 / pow(var_x233, 2); - const double var_x235 = -1 / var_x233; - const double var_x236 = var_x228 / pow(var_x229, 2); - const double var_x237 = exp(0.96921975662133131 - 0.071581961345740866 * var_chaste_interface__membrane__V); - const double var_x238 = 1 + var_x237; - const double var_x239 = 1 / var_x238; - const double var_x240 = 1 / (5.75 * var_x230 + 0.45000000000000001 * var_x239); - const double var_x241 = exp(46 + 2 * var_chaste_interface__membrane__V); - const double var_x242 = 1 + var_x241; - const double var_x243 = 1 / var_x242; - const double var_x244 = 1 / (0.5 + 7.5 * var_x243); - const double var_x245 = exp(1.8506208911614319 + 0.036523009495982472 * var_chaste_interface__membrane__V); - const double var_x246 = 1 + var_x245; - const double var_x247 = exp(0.065217391304347824 - 0.072463768115942032 * var_chaste_interface__membrane__V); - const double var_x248 = 1 + var_x247; - const double var_x249 = exp(-0.045816915605241454 * var_chaste_interface__membrane__V); - const double var_x250 = exp(0.014398433450440593 * var_chaste_interface__membrane__V); - const double var_x251 = 0.059999999999999998 + 1 / (0.29999999999999999 * var_x249 + 1.6599999999999999 * var_x250); - const double var_x252 = 1 / var_x251; - const double var_x253 = exp(-0.68918918918918914 - 0.13513513513513511 * var_chaste_interface__membrane__V); - const double var_x254 = 1 + var_x253; - const double var_x255 = exp(-0.076769537847382163 * var_chaste_interface__membrane__V); - const double var_x256 = exp(0.03941508020968823 * var_chaste_interface__membrane__V); - const double var_x257 = exp(-0.018299935950224173 * var_chaste_interface__membrane__V); - const double var_x258 = exp(0.009420009985210585 * var_chaste_interface__membrane__V); - const double var_x259 = exp(2.539728728905752 + 0.05358970648917756 * var_chaste_interface__membrane__V); - const double var_x260 = 1 + var_x259; - const double var_x261 = var_x114 * var_x42; - const double var_x262 = -3.290319067574035e-6 - 4.9354786013610522e-6 * var_x17; - const double var_x263 = var_x47 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; - const double var_x264 = var_x262 * var_x263; - const double var_x265 = 1.77 * var_x101; - const double var_x266 = 1.23 * var_x104; - const double var_x267 = var_x105 * var_x47; - const double var_x268 = 0.021829942145742926 * var_x46 - 0.00082254686501890791 * var_chaste_interface__membrane__V; - const double var_x269 = NV_Ith_S(mParameters, 7) * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; - const double var_x270 = 0.021829942145742926 * var_x4; - const double var_x271 = 0.021829942145742926 * var_x23; - const double var_x272 = 0.0049352811901134472 * var_x47; - const double var_x273 = 200 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x274 = 1.6583208100573134e-5 + 2.4874812150859699e-5 * var_x17; - const double var_x275 = var_x20 * var_x274; - const double var_x276 = var_x263 * var_x274; - const double var_x277 = 0.0041456361996952953 * var_chaste_interface__membrane__V - 0.11002290841454433 * var_x46; - const double var_x278 = 0.11002290841454433 * var_x4; - const double var_x279 = 0.11002290841454433 * var_x23; - const double var_x280 = 0.11777375567316183 * var_x142; - const double var_x281 = 0.23554751134632365 * var_x147; - const double var_x282 = exp(-1.6000000000000001 + 0.080000000000000002 * var_chaste_interface__membrane__V); - const double var_x283 = 0.019200000000000002 * var_x282 * var_chaste_interface__Ca_handling_by_the_SR__F1; - const double var_x284 = 0.00029999999999999997 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x285 = pow(var_chaste_interface__intracellular_ion_concentrations__Ca_i, 4); - const double var_x286 = var_x285 / pow(var_x284, 5); - const double var_x287 = pow(var_x284, (-4)); - const double var_x288 = var_x287 * pow(var_chaste_interface__intracellular_ion_concentrations__Ca_i, 3); - const double var_x289 = 0.81520000000000004 * var_x286 - 0.81520000000000004 * var_x288; - const double var_x290 = var_x285 * var_x287; - const double var_x291 = 0.20380000000000001 * var_x290 + 0.23999999999999999 * var_x282; - const double var_x292 = 1.3584000000000001 * var_x286 - 1.3584000000000001 * var_x288; - const double var_x293 = 0.033960000000000004 + 0.33960000000000001 * var_x290; + const double var_x228 = 18 + var_chaste_interface__membrane__V; + const double var_x229 = ((var_x223) ? (4.2450000000000001 * var_x221 + 4.2450000000000001 * var_x222) : (8.4900000000000002 * var_x227 - 2.1225000000000001 * var_x225 * var_x228 / pow(var_x226, 2))); + const double var_x230 = exp(-var_x224); + const double var_x231 = 1 + var_x230; + const double var_x232 = 16.980499999999999 * var_x230 / pow(var_x231, 2); + const double var_x233 = 1 / var_x231; + const double var_x234 = 67.921999999999997 * var_x233; + const double var_x235 = 3.3960000000976542e-6 * var_x222; + const double var_x236 = ((var_x223) ? (-var_x235 + 1249999.9999640554 * (18.000000400000001 + var_chaste_interface__membrane__V) * (var_x235 + 3.3960000000976542e-6 * var_x221)) : (8.4900000000000002 * var_x227 * var_x228)); + const double var_x237 = 1 / (var_x234 + var_x236); + const double var_x238 = exp(-3.7704918032786887 - 0.16393442622950821 * var_chaste_interface__membrane__V); + const double var_x239 = 1 + var_x238; + const double var_x240 = 0.77666666666666673 + 0.033333333333333333 * var_chaste_interface__membrane__V; + const double var_x241 = exp(-var_x240); + const double var_x242 = exp(var_x240); + const double var_x243 = exp(4.876462938881664 + 0.065019505851755519 * var_chaste_interface__membrane__V); + const double var_x244 = exp(-0.9003601440576231 - 0.012004801920768308 * var_chaste_interface__membrane__V); + const double var_x245 = 9.6370000000000005 * var_x243 + 9.6370000000000005 * var_x244; + const double var_x246 = 1 / var_x245; + const double var_x247 = 0.11569027611044419 * var_x244 - 0.62659297789336799 * var_x243; + const double var_x248 = exp(-2.6628794603230959 - 0.17752529735487307 * var_chaste_interface__membrane__V); + const double var_x249 = 1 + var_x248; + const double var_x250 = exp(-0.1388888888888889 * var_chaste_interface__membrane__V); + const double var_x251 = exp(var_x0); + const double var_x252 = 0.00040000000000000002 + 1 / (8.0109999999999992 * var_x250 + 386.60000000000002 * var_x251); + const double var_x253 = 1 / var_x252; + const double var_x254 = exp(327.99999999999994 + 10 * var_chaste_interface__membrane__V); + const double var_x255 = 1 + var_x254; + const double var_x256 = 1 / var_x255; + const double var_x257 = 1 / (0.020400000000000001 + 0.54659999999999997 * var_x256); + const double var_x258 = exp(4.0070821529745047 + 0.14164305949008499 * var_chaste_interface__membrane__V); + const double var_x259 = 1 + var_x258; + const double var_x260 = 0.000141643059490085 * var_x258 / pow(var_x259, 2); + const double var_x261 = -1 / var_x259; + const double var_x262 = var_x254 / pow(var_x255, 2); + const double var_x263 = exp(0.96921975662133131 - 0.071581961345740866 * var_chaste_interface__membrane__V); + const double var_x264 = 1 + var_x263; + const double var_x265 = 1 / var_x264; + const double var_x266 = 1 / (5.75 * var_x256 + 0.45000000000000001 * var_x265); + const double var_x267 = exp(46 + 2 * var_chaste_interface__membrane__V); + const double var_x268 = 1 + var_x267; + const double var_x269 = 1 / var_x268; + const double var_x270 = 1 / (0.5 + 7.5 * var_x269); + const double var_x271 = exp(1.8506208911614319 + 0.036523009495982472 * var_chaste_interface__membrane__V); + const double var_x272 = 1 + var_x271; + const double var_x273 = exp(0.065217391304347824 - 0.072463768115942032 * var_chaste_interface__membrane__V); + const double var_x274 = 1 + var_x273; + const double var_x275 = exp(-0.045816915605241454 * var_chaste_interface__membrane__V); + const double var_x276 = exp(0.014398433450440593 * var_chaste_interface__membrane__V); + const double var_x277 = 0.059999999999999998 + 1 / (0.29999999999999999 * var_x275 + 1.6599999999999999 * var_x276); + const double var_x278 = 1 / var_x277; + const double var_x279 = exp(-0.68918918918918914 - 0.13513513513513511 * var_chaste_interface__membrane__V); + const double var_x280 = 1 + var_x279; + const double var_x281 = exp(-0.076769537847382163 * var_chaste_interface__membrane__V); + const double var_x282 = exp(0.03941508020968823 * var_chaste_interface__membrane__V); + const double var_x283 = exp(-0.018299935950224173 * var_chaste_interface__membrane__V); + const double var_x284 = exp(0.009420009985210585 * var_chaste_interface__membrane__V); + const double var_x285 = exp(2.539728728905752 + 0.05358970648917756 * var_chaste_interface__membrane__V); + const double var_x286 = 1 + var_x285; + const double var_x287 = var_x120 * var_x42; + const double var_x288 = -3.290319067574035e-6 - 4.9354786013610522e-6 * var_x18; + const double var_x289 = var_x46 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; + const double var_x290 = var_x288 * var_x289; + const double var_x291 = 1.77 * var_x107; + const double var_x292 = 1.23 * var_x110; + const double var_x293 = var_x111 * var_x46; + const double var_x294 = 0.021829942145742926 * var_x27 - 0.00082254686501890791 * var_chaste_interface__membrane__V; + const double var_x295 = NV_Ith_S(mParameters, 7) * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; + const double var_x296 = 0.021829942145742926 * var_x5; + const double var_x297 = 0.021829942145742926 * var_x24; + const double var_x298 = 0.0049352811901134472 * var_x46; + const double var_x299 = 200 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x300 = 1.6583208100573134e-5 + 2.4874812150859699e-5 * var_x18; + const double var_x301 = var_x21 * var_x300; + const double var_x302 = var_x289 * var_x300; + const double var_x303 = 0.0041456361996952953 * var_chaste_interface__membrane__V - 0.11002290841454433 * var_x27; + const double var_x304 = 0.11002290841454433 * var_x5; + const double var_x305 = 0.11002290841454433 * var_x24; + const double var_x306 = 0.11777375567316183 * var_x149; + const double var_x307 = 0.23554751134632365 * var_x154; + const double var_x308 = exp(-1.6000000000000001 + 0.080000000000000002 * var_chaste_interface__membrane__V); + const double var_x309 = 0.019200000000000002 * var_x308 * var_chaste_interface__Ca_handling_by_the_SR__F1; + const double var_x310 = 0.00029999999999999997 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x311 = pow(var_chaste_interface__intracellular_ion_concentrations__Ca_i, 4); + const double var_x312 = var_x311 / pow(var_x310, 5); + const double var_x313 = pow(var_x310, (-4)); + const double var_x314 = var_x313 * pow(var_chaste_interface__intracellular_ion_concentrations__Ca_i, 3); + const double var_x315 = 0.81520000000000004 * var_x312 - 0.81520000000000004 * var_x314; + const double var_x316 = var_x311 * var_x313; + const double var_x317 = 0.20380000000000001 * var_x316 + 0.23999999999999999 * var_x308; + const double var_x318 = 1.3584000000000001 * var_x312 - 1.3584000000000001 * var_x314; + const double var_x319 = 0.033960000000000004 + 0.33960000000000001 * var_x316; // Matrix entries - IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x74 * (0.0014400000000000001 + var_x16 + var_x21 + var_x23 + var_x4 + var_x72 + 2 * var_x35 + 0.0060000000000000001 * var_x5 + 0.0011450666666666667 * var_x45 - 0.086901333809914952 * var_x50 + var_x36 * var_x37 + (1.8 * var_x2 + 1.8 * var_x3) * NV_Ith_S(mParameters, 3))); - IJth(rJacobian, 1, 0) = -1.7614021922566692e-8 + 0.0017614021922566689 * var_x16 - 5.2842065767700066e-6 * var_x5 + var_x134 * var_x37 + (-0.001585261973031002 * var_x2 - 0.001585261973031002 * var_x3) * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 2, 0) = (0.001 - 0.001 * var_chaste_interface__sodium_current_m_gate__m) * ((var_x149) ? (229.97576066014508) : (-var_x153 - 1.0922516955448618 * var_x151 * var_x154 / pow(var_x152, 2))) + 1.4519056261343013 * var_x155 * var_chaste_interface__sodium_current_m_gate__m; - IJth(rJacobian, 3, 0) = var_x161 * var_x165 + 0.0055555555555555558 * var_x162 * (-var_x166 - var_chaste_interface__sodium_current_h1_gate__h1) / (pow(var_x163, 2) * pow((0.0050000000000000001 + var_x164), 2)); - IJth(rJacobian, 4, 0) = var_x161 * var_x170 + 0.0041666666666666666 * var_x167 * (-var_x166 - var_chaste_interface__sodium_current_h2_gate__h2) / (pow(var_x168, 2) * pow((0.0037499999999999999 + var_x169), 2)); - IJth(rJacobian, 5, 0) = (-var_x96 + 0.001 / var_x194) * (((var_x171) ? (-2.240152507879658) : (4.4800000000000004 * var_x174 - 0.24252082756000998 * var_x173 * var_x175 / pow((-0.1353352832366127 + var_x173), 2))) + ((var_x180) ? (33.36127045727622) : ((var_x186) ? (8.3602791350706056 - var_x185) : ((var_x192) ? (25.000991322205618 - var_x191) : (-var_x185 - var_x191))))) + 0.00015151515151515152 * var_x193 * (var_x195 + var_x198) / pow(var_x194, 2); - IJth(rJacobian, 6, 0) = (var_x207 + var_x204) * (-var_x94 + 0.001 * var_x210 * var_x211) + (var_x209 + var_x210) * (0.001 * var_x204 * var_x211 + 2.1675996343523e-7 * var_x210 * (-var_x204 - var_x207) / pow((var_x208 + 0.014722770236447691 * var_x210), 2)); - IJth(rJacobian, 7, 0) = (-var_x99 + 0.001 / var_x213) * (22.472433333333335 * var_x216 - 22.472433333333335 * var_x215) + 0.0001639344262295082 * var_x212 * (674.173 * var_x215 + 674.173 * var_x216) / pow(var_x213, 2); - IJth(rJacobian, 8, 0) = var_x219 * (-0.00011569027611044419 * var_x218 * var_x220 + 0.00010376673238559718 * var_x218 * var_x221 / pow((var_x217 + var_x218), 2)) - var_x221 * (-var_x97 + 0.0096369999999999997 * var_x218 * var_x220); - IJth(rJacobian, 9, 0) = 0.00017752529735487306 * var_x222 * var_x227 / pow(var_x223, 2) - 6.6907730760079843e-9 * (-var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 1 / var_x223) * (1.1126388888888887 * var_x224 - 32.216666666666669 * var_x225) / (pow(var_x226, 2) * pow((var_x225 + 0.020721676151060523 * var_x224), 2)); - IJth(rJacobian, 10, 0) = -var_x231 * var_x234 + 0.018294914013904134 * var_x236 * (-var_x235 - var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1) / pow((0.037321624588364438 + var_x230), 2); - IJth(rJacobian, 11, 0) = -var_x234 * var_x240 + 3.0245746691871456e-5 * (-var_x235 - var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2) * (57.5 * var_x236 - 0.032211882605583393 * var_x237 / pow(var_x238, 2)) / pow((var_x230 + 0.078260869565217397 * var_x239), 2); - IJth(rJacobian, 12, 0) = -2.1922574727480476e-5 * var_x244 * var_x245 / pow(var_x246, 2) + 0.00026666666666666668 * var_x241 * (0.39975990396158467 - var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3 + 0.60024009603841544 / var_x246) / (pow(var_x242, 2) * pow((0.066666666666666666 + var_x243), 2)); - IJth(rJacobian, 13, 0) = 7.2463768115942027e-5 * var_x247 * var_x252 / pow(var_x248, 2) - 0.00036289737262302222 * (-var_chaste_interface__delayed_rectifier_K_current_z_gate__z + 1 / var_x248) * (0.013745074681572435 * var_x249 - 0.023901399527731383 * var_x250) / (pow(var_x251, 2) * pow((var_x250 + 0.18072289156626506 * var_x249), 2)); - IJth(rJacobian, 14, 0) = (-var_x108 + 0.001 / var_x254) * (0.35473572188719404 * var_x256 - 0.099800399201596807 * var_x255) + 0.00013513513513513514 * var_x253 * (9 * var_x256 + 1.3 * var_x255) / pow(var_x254, 2); - IJth(rJacobian, 15, 0) = (-var_x106 + 0.001 / var_x260) * (6.1795265502981431 * var_x258 - 1.8299935950224173 * var_x257) - 5.3589706489177562e-5 * var_x259 * (100 * var_x257 + 656 * var_x258) / pow(var_x260, 2); - IJth(rJacobian, 16, 0) = -1.6450937300378158e-8 - 0.0024676405950567236 * var_x16 - 2.8256129907129523e-6 * var_x45 - 0.00082254686501890791 * var_x72; - IJth(rJacobian, 17, 0) = -1.151565611026471e-6 - 0.00082254686501890791 * var_x23 - 0.00082254686501890791 * var_x4 - 0.0016450937300378158 * var_x35 + var_x19 * var_x262 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 1.8837419938086349e-6 * var_x38 * var_x40 * var_x41 * var_x42 * var_x43 * var_chaste_interface__cleft_space_ion_concentrations__K_c + 7.1480419691307166e-5 * var_x24 * var_x27 * var_x28 * var_x32 * var_x47 * var_x48 * NV_Ith_S(mParameters, 6); - IJth(rJacobian, 22, 0) = 5.8038906795734136e-6 + var_x275 + 0.0041456361996952953 * var_x23 + 0.0041456361996952953 * var_x4 + 0.0082912723993905906 * var_x35 - 9.4940596487955185e-6 * var_x45 - 0.00036026131524418808 * var_x50; - IJth(rJacobian, 26, 0) = -var_x283; - IJth(rJacobian, 27, 0) = var_x283; - IJth(rJacobian, 0, 1) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x74 * (-var_x79 + 0.0095090000000000001 * var_x76 + 0.0002653945091048535 * var_x77 - 0.00029999999999999997 * var_x83 - 0.0095090000000000001 * var_x78 * var_chaste_interface__intracellular_ion_concentrations__Ca_i)); - IJth(rJacobian, 1, 1) = -47.271999999999998 - var_x143 + 6.2720000000000002 * var_chaste_interface__intracellular_Ca_buffering__O_TC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg + 9 * var_chaste_interface__intracellular_Ca_buffering__O_C - 8.3745867230843319e-6 * var_x76 - 5.2842065767700058e-7 * var_x83 - 8.2198768971977874 * var_x135 - 0.0017614021922566689 * var_x79 - 2.3373323507508574e-7 * var_x77 + 8.3745867230843319e-6 * var_x78 * var_chaste_interface__intracellular_ion_concentrations__Ca_i + 7.3978892074780085e-7 * var_x136 * var_x137; - IJth(rJacobian, 16, 1) = 0.0024676405950567236 * var_x79 + 7.4029217851701709e-7 * var_x83; + IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x77 * (0.0014400000000000001 + var_x17 + var_x22 + var_x24 + var_x5 + var_x75 + 2 * var_x35 + 0.0060000000000000001 * var_x6 + 0.0011450666666666667 * var_x45 - 0.10497579657532749 * var_x49 + var_x36 * var_x37 + (1.8 * var_x3 + 1.8 * var_x4) * NV_Ith_S(mParameters, 3))); + IJth(rJacobian, 1, 0) = -1.7614021922566692e-8 + 0.0017614021922566689 * var_x17 - 5.2842065767700066e-6 * var_x6 + var_x141 * var_x37 + (-0.001585261973031002 * var_x3 - 0.001585261973031002 * var_x4) * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 2, 0) = (0.001 - 0.001 * var_chaste_interface__sodium_current_m_gate__m) * ((var_x158) ? (-230 * var_x156 - 230 * var_x157) : (-var_x161 - 36.297640653357533 * var_x159 * var_x162 / pow(var_x160, 2))) + 1.4519056261343013 * var_x159 * var_chaste_interface__sodium_current_m_gate__m; + IJth(rJacobian, 3, 0) = var_x169 * var_x173 + 0.0055555555555555558 * var_x170 * (-var_x174 - var_chaste_interface__sodium_current_h1_gate__h1) / (pow(var_x171, 2) * pow((0.0050000000000000001 + var_x172), 2)); + IJth(rJacobian, 4, 0) = var_x169 * var_x178 + 0.0041666666666666666 * var_x175 * (-var_x174 - var_chaste_interface__sodium_current_h2_gate__h2) / (pow(var_x176, 2) * pow((0.0037499999999999999 + var_x177), 2)); + IJth(rJacobian, 5, 0) = (-var_x102 + 0.001 / var_x211) * (((var_x181) ? (2.2400000000000002 * var_x179 + 2.2400000000000002 * var_x180) : (4.4800000000000004 * var_x185 - 1.7920000000000003 * var_x183 * var_x186 / pow(var_x184, 2))) + ((var_x197) ? (-var_x189 - var_x192) : ((var_x203) ? (-var_x189 - var_x202) : ((var_x209) ? (-var_x192 - var_x208) : (-var_x202 - var_x208))))) + 0.00015151515151515152 * var_x210 * (var_x213 + var_x220) / pow(var_x211, 2); + IJth(rJacobian, 6, 0) = (var_x232 + var_x229) * (-var_x100 + 0.001 * var_x236 * var_x237) + (var_x234 + var_x236) * (0.001 * var_x229 * var_x237 + 2.1675996343523e-7 * var_x236 * (-var_x229 - var_x232) / pow((var_x233 + 0.014722770236447691 * var_x236), 2)); + IJth(rJacobian, 7, 0) = (-var_x105 + 0.001 / var_x239) * (22.472433333333335 * var_x242 - 22.472433333333335 * var_x241) + 0.0001639344262295082 * var_x238 * (674.173 * var_x241 + 674.173 * var_x242) / pow(var_x239, 2); + IJth(rJacobian, 8, 0) = var_x245 * (-0.00011569027611044419 * var_x244 * var_x246 + 0.00010376673238559718 * var_x244 * var_x247 / pow((var_x243 + var_x244), 2)) - var_x247 * (-var_x103 + 0.0096369999999999997 * var_x244 * var_x246); + IJth(rJacobian, 9, 0) = 0.00017752529735487306 * var_x248 * var_x253 / pow(var_x249, 2) - 6.6907730760079843e-9 * (-var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 1 / var_x249) * (1.1126388888888887 * var_x250 - 32.216666666666669 * var_x251) / (pow(var_x252, 2) * pow((var_x251 + 0.020721676151060523 * var_x250), 2)); + IJth(rJacobian, 10, 0) = -var_x257 * var_x260 + 0.018294914013904134 * var_x262 * (-var_x261 - var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1) / pow((0.037321624588364438 + var_x256), 2); + IJth(rJacobian, 11, 0) = -var_x260 * var_x266 + 3.0245746691871456e-5 * (-var_x261 - var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2) * (57.5 * var_x262 - 0.032211882605583393 * var_x263 / pow(var_x264, 2)) / pow((var_x256 + 0.078260869565217397 * var_x265), 2); + IJth(rJacobian, 12, 0) = -2.1922574727480476e-5 * var_x270 * var_x271 / pow(var_x272, 2) + 0.00026666666666666668 * var_x267 * (0.39975990396158467 - var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3 + 0.60024009603841544 / var_x272) / (pow(var_x268, 2) * pow((0.066666666666666666 + var_x269), 2)); + IJth(rJacobian, 13, 0) = 7.2463768115942027e-5 * var_x273 * var_x278 / pow(var_x274, 2) - 0.00036289737262302222 * (-var_chaste_interface__delayed_rectifier_K_current_z_gate__z + 1 / var_x274) * (0.013745074681572435 * var_x275 - 0.023901399527731383 * var_x276) / (pow(var_x277, 2) * pow((var_x276 + 0.18072289156626506 * var_x275), 2)); + IJth(rJacobian, 14, 0) = (-var_x114 + 0.001 / var_x280) * (0.35473572188719404 * var_x282 - 0.099800399201596807 * var_x281) + 0.00013513513513513514 * var_x279 * (9 * var_x282 + 1.3 * var_x281) / pow(var_x280, 2); + IJth(rJacobian, 15, 0) = (-var_x112 + 0.001 / var_x286) * (6.1795265502981431 * var_x284 - 1.8299935950224173 * var_x283) - 5.3589706489177562e-5 * var_x285 * (100 * var_x283 + 656 * var_x284) / pow(var_x286, 2); + IJth(rJacobian, 16, 0) = -1.6450937300378158e-8 - 0.0024676405950567236 * var_x17 - 2.8256129907129523e-6 * var_x45 - 0.00082254686501890791 * var_x75; + IJth(rJacobian, 17, 0) = -1.151565611026471e-6 - 0.00082254686501890791 * var_x24 - 0.00082254686501890791 * var_x5 - 0.0016450937300378158 * var_x35 + var_x20 * var_x288 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 8.6347512375898239e-5 * var_x25 * var_x28 * var_x32 * var_x46 * var_x47 * NV_Ith_S(mParameters, 6) + 1.8837419938086349e-6 * var_x38 * var_x40 * var_x41 * var_x42 * var_x43 * var_chaste_interface__cleft_space_ion_concentrations__K_c; + IJth(rJacobian, 22, 0) = 5.8038906795734136e-6 + var_x301 + 0.0041456361996952953 * var_x24 + 0.0041456361996952953 * var_x5 + 0.0082912723993905906 * var_x35 - 9.4940596487955185e-6 * var_x45 - 0.00043519146237452704 * var_x49; + IJth(rJacobian, 26, 0) = -var_x309; + IJth(rJacobian, 27, 0) = var_x309; + IJth(rJacobian, 0, 1) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x77 * (-var_x82 + 0.0095090000000000001 * var_x79 + 0.0002653945091048535 * var_x80 - 0.00029999999999999997 * var_x86 - 0.0095090000000000001 * var_x81 * var_chaste_interface__intracellular_ion_concentrations__Ca_i)); + IJth(rJacobian, 1, 1) = -47.271999999999998 - var_x150 + 6.2720000000000002 * var_chaste_interface__intracellular_Ca_buffering__O_TC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg + 9 * var_chaste_interface__intracellular_Ca_buffering__O_C - 8.3745867230843319e-6 * var_x79 - 5.2842065767700058e-7 * var_x86 - 8.2198768971977874 * var_x142 - 0.0017614021922566689 * var_x82 - 2.3373323507508574e-7 * var_x80 + 8.3745867230843319e-6 * var_x81 * var_chaste_interface__intracellular_ion_concentrations__Ca_i + 7.3978892074780085e-7 * var_x143 * var_x144; + IJth(rJacobian, 16, 1) = 0.0024676405950567236 * var_x82 + 7.4029217851701709e-7 * var_x86; IJth(rJacobian, 18, 1) = 200 - 200 * var_chaste_interface__intracellular_Ca_buffering__O_C; IJth(rJacobian, 19, 1) = 78.400000000000006 - 78.400000000000006 * var_chaste_interface__intracellular_Ca_buffering__O_TC; IJth(rJacobian, 20, 1) = 200 - 200 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC - 200 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg; - IJth(rJacobian, 23, 1) = var_x280; - IJth(rJacobian, 24, 1) = 121.85879481761599 * var_x135 - 1.0967291533585437e-5 * var_x146; - IJth(rJacobian, 26, 1) = var_x289 * var_chaste_interface__Ca_handling_by_the_SR__F1; - IJth(rJacobian, 27, 1) = var_x292 * var_chaste_interface__Ca_handling_by_the_SR__F2 - var_x289 * var_chaste_interface__Ca_handling_by_the_SR__F1; - IJth(rJacobian, 28, 1) = -var_x292 * var_chaste_interface__Ca_handling_by_the_SR__F2; - IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x74 * var_x88); - IJth(rJacobian, 2, 2) = -0.001 * ((var_x149) ? (16040.503773328091 + 229.97576066014508 * var_chaste_interface__membrane__V) : (-var_x153 * var_x154)) - 18.399999999999999 * var_x155; - IJth(rJacobian, 16, 2) = -0.00082254686501890791 * var_x88; - IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x74 * var_x91); - IJth(rJacobian, 3, 3) = -var_x165; - IJth(rJacobian, 16, 3) = -0.00082254686501890791 * var_x91; - IJth(rJacobian, 0, 4) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x74 * var_x93); - IJth(rJacobian, 4, 4) = -var_x170; - IJth(rJacobian, 16, 4) = -0.00082254686501890791 * var_x93; - IJth(rJacobian, 0, 5) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x94 * var_x95); - IJth(rJacobian, 1, 5) = var_x134 * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; - IJth(rJacobian, 5, 5) = -0.001 * var_x195 - 0.001 * var_x198; - IJth(rJacobian, 0, 6) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x95 * var_x96); - IJth(rJacobian, 1, 6) = var_x134 * var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L; - IJth(rJacobian, 6, 6) = -0.001 * var_x210 - 0.067921999999999996 * var_x208; - IJth(rJacobian, 0, 7) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x97 * var_x98); - IJth(rJacobian, 1, 7) = var_x144 * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; - IJth(rJacobian, 7, 7) = -0.67417300000000002 * var_x215 - 0.67417300000000002 * var_x216; - IJth(rJacobian, 0, 8) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x98 * var_x99); - IJth(rJacobian, 1, 8) = var_x144 * var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T; - IJth(rJacobian, 8, 8) = -0.0096369999999999997 * var_x217 - 0.0096369999999999997 * var_x218; - IJth(rJacobian, 0, 9) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x100 * var_x18 * var_x74); - IJth(rJacobian, 9, 9) = -0.001 * var_x227; - IJth(rJacobian, 17, 9) = var_x100 * var_x262; - IJth(rJacobian, 22, 9) = var_x100 * var_x274; - IJth(rJacobian, 0, 10) = mSetVoltageDerivativeToZero ? 0.0 : (-0.0017699999999999999 * var_x101 * var_x103); - IJth(rJacobian, 10, 10) = -0.001 * var_x231; - IJth(rJacobian, 17, 10) = var_x264 * var_x265; - IJth(rJacobian, 22, 10) = var_x265 * var_x276; - IJth(rJacobian, 0, 11) = mSetVoltageDerivativeToZero ? 0.0 : (-0.00123 * var_x103 * var_x104); - IJth(rJacobian, 11, 11) = -0.001 * var_x240; - IJth(rJacobian, 17, 11) = var_x264 * var_x266; - IJth(rJacobian, 22, 11) = var_x266 * var_x276; - IJth(rJacobian, 0, 12) = mSetVoltageDerivativeToZero ? 0.0 : (-3.600144e-5 * var_x102 * var_x105); - IJth(rJacobian, 12, 12) = -0.001 * var_x244; - IJth(rJacobian, 17, 12) = -2.9612871608166312e-5 * var_x267; - IJth(rJacobian, 22, 12) = 0.00014924887290515819 * var_x267; - IJth(rJacobian, 0, 13) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x47 * var_x74 * NV_Ith_S(mParameters, 8)); - IJth(rJacobian, 13, 13) = -0.001 * var_x252; - IJth(rJacobian, 17, 13) = var_x268 * NV_Ith_S(mParameters, 8); - IJth(rJacobian, 22, 13) = var_x277 * NV_Ith_S(mParameters, 8); - IJth(rJacobian, 0, 14) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x106 * var_x107); - IJth(rJacobian, 14, 14) = -0.0089999999999999993 * var_x256 - 0.0012999999999999999 * var_x255; - IJth(rJacobian, 17, 14) = var_x22 * var_x268; - IJth(rJacobian, 22, 14) = var_x22 * var_x277; - IJth(rJacobian, 0, 15) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x107 * var_x108); - IJth(rJacobian, 15, 15) = -0.65600000000000003 * var_x258 - 0.10000000000000001 * var_x257; - IJth(rJacobian, 17, 15) = var_x268 * var_x269; - IJth(rJacobian, 22, 15) = var_x269 * var_x277; - IJth(rJacobian, 0, 16) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x74 * (var_x122 + 3 * var_x111 + 0.00053078901820970701 * var_x52 + 0.154584 * var_x115 - 0.00089999999999999998 * var_x116 - 0.0001161412471825695 * var_x119)); - IJth(rJacobian, 1, 16) = -1.5852619730310017e-6 * var_x116 + 0.0052842065767700064 * var_x109 * var_x14 * var_x6 * NV_Ith_S(mParameters, 9) * NV_Ith_S(mParameters, 1); - IJth(rJacobian, 16, 16) = -0.00038145775374624855 * var_x115 - 4.3659884291485854e-7 * var_x52 - 0.00082254686501890791 * var_x122 - 0.0074029217851701709 * var_x111 + 2.2208765355510512e-6 * var_x109 * var_x80 * var_x81 * NV_Ith_S(mParameters, 9) * NV_Ith_S(mParameters, 1) + 2.8659485630822583e-7 * var_x112 * var_x117 * var_x118 * var_x40 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - IJth(rJacobian, 17, 16) = 0.00025430516916416572 * var_x115 - 1.9106323753881723e-7 * var_x119; - IJth(rJacobian, 22, 16) = -0.0012816980525873951 * var_x115 + 9.6295871719563877e-7 * var_x112 * var_x117 * var_x118 * var_x40 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - IJth(rJacobian, 0, 17) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x74 * (53.0789018209707 * var_x125 - 2.3063136827039386 * var_x126 + var_x123 * var_x25 + var_x124 * var_x21 + var_x124 * var_x23)); - IJth(rJacobian, 17, 17) = -0.043659884291485852 * var_x125 - var_x25 * var_x270 - var_x25 * var_x271 + 26.53945091048535 * var_x19 * var_x25 * var_x262 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 0.0018970510894583371 * var_x24 * var_x25 * var_x27 * var_x28 * var_x32 * var_x47 * var_x48 * NV_Ith_S(mParameters, 6); - IJth(rJacobian, 22, 17) = 0.22004581682908866 * var_x125 - 0.0095611374908700173 * var_x126 + var_x124 * var_x275 + var_x25 * var_x278 + var_x25 * var_x279; + IJth(rJacobian, 23, 1) = var_x306; + IJth(rJacobian, 24, 1) = 121.85879481761599 * var_x142 - 1.0967291533585437e-5 * var_x153; + IJth(rJacobian, 26, 1) = var_x315 * var_chaste_interface__Ca_handling_by_the_SR__F1; + IJth(rJacobian, 27, 1) = var_x318 * var_chaste_interface__Ca_handling_by_the_SR__F2 - var_x315 * var_chaste_interface__Ca_handling_by_the_SR__F1; + IJth(rJacobian, 28, 1) = -var_x318 * var_chaste_interface__Ca_handling_by_the_SR__F2; + IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x77 * var_x92); + IJth(rJacobian, 2, 2) = -0.001 * ((var_x158) ? (var_x163 + 394539.57232025318 * (44.400001267299999 + var_chaste_interface__membrane__V) * (-var_x163 - 0.00058295799999830145 * var_x157)) : (-var_x161 * var_x162)) - 18.399999999999999 * var_x159; + IJth(rJacobian, 16, 2) = -0.00082254686501890791 * var_x92; + IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x77 * var_x96); + IJth(rJacobian, 3, 3) = -var_x173; + IJth(rJacobian, 16, 3) = -0.00082254686501890791 * var_x96; + IJth(rJacobian, 0, 4) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x77 * var_x99); + IJth(rJacobian, 4, 4) = -var_x178; + IJth(rJacobian, 16, 4) = -0.00082254686501890791 * var_x99; + IJth(rJacobian, 0, 5) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x100 * var_x101); + IJth(rJacobian, 1, 5) = var_x141 * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; + IJth(rJacobian, 5, 5) = -0.001 * var_x213 - 0.001 * var_x220; + IJth(rJacobian, 0, 6) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x101 * var_x102); + IJth(rJacobian, 1, 6) = var_x141 * var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L; + IJth(rJacobian, 6, 6) = -0.001 * var_x236 - 0.067921999999999996 * var_x233; + IJth(rJacobian, 0, 7) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x103 * var_x104); + IJth(rJacobian, 1, 7) = var_x151 * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; + IJth(rJacobian, 7, 7) = -0.67417300000000002 * var_x241 - 0.67417300000000002 * var_x242; + IJth(rJacobian, 0, 8) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x104 * var_x105); + IJth(rJacobian, 1, 8) = var_x151 * var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T; + IJth(rJacobian, 8, 8) = -0.0096369999999999997 * var_x243 - 0.0096369999999999997 * var_x244; + IJth(rJacobian, 0, 9) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x106 * var_x19 * var_x77); + IJth(rJacobian, 9, 9) = -0.001 * var_x253; + IJth(rJacobian, 17, 9) = var_x106 * var_x288; + IJth(rJacobian, 22, 9) = var_x106 * var_x300; + IJth(rJacobian, 0, 10) = mSetVoltageDerivativeToZero ? 0.0 : (-0.0017699999999999999 * var_x107 * var_x109); + IJth(rJacobian, 10, 10) = -0.001 * var_x257; + IJth(rJacobian, 17, 10) = var_x290 * var_x291; + IJth(rJacobian, 22, 10) = var_x291 * var_x302; + IJth(rJacobian, 0, 11) = mSetVoltageDerivativeToZero ? 0.0 : (-0.00123 * var_x109 * var_x110); + IJth(rJacobian, 11, 11) = -0.001 * var_x266; + IJth(rJacobian, 17, 11) = var_x290 * var_x292; + IJth(rJacobian, 22, 11) = var_x292 * var_x302; + IJth(rJacobian, 0, 12) = mSetVoltageDerivativeToZero ? 0.0 : (-3.600144e-5 * var_x108 * var_x111); + IJth(rJacobian, 12, 12) = -0.001 * var_x270; + IJth(rJacobian, 17, 12) = -2.9612871608166312e-5 * var_x293; + IJth(rJacobian, 22, 12) = 0.00014924887290515819 * var_x293; + IJth(rJacobian, 0, 13) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x46 * var_x77 * NV_Ith_S(mParameters, 8)); + IJth(rJacobian, 13, 13) = -0.001 * var_x278; + IJth(rJacobian, 17, 13) = var_x294 * NV_Ith_S(mParameters, 8); + IJth(rJacobian, 22, 13) = var_x303 * NV_Ith_S(mParameters, 8); + IJth(rJacobian, 0, 14) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x112 * var_x113); + IJth(rJacobian, 14, 14) = -0.0089999999999999993 * var_x282 - 0.0012999999999999999 * var_x281; + IJth(rJacobian, 17, 14) = var_x23 * var_x294; + IJth(rJacobian, 22, 14) = var_x23 * var_x303; + IJth(rJacobian, 0, 15) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x113 * var_x114); + IJth(rJacobian, 15, 15) = -0.65600000000000003 * var_x284 - 0.10000000000000001 * var_x283; + IJth(rJacobian, 17, 15) = var_x294 * var_x295; + IJth(rJacobian, 22, 15) = var_x295 * var_x303; + IJth(rJacobian, 0, 16) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x77 * (var_x129 + 3 * var_x117 + 0.00053078901820970701 * var_x51 + 0.154584 * var_x121 - 0.00089999999999999998 * var_x122 - 0.0001161412471825695 * var_x125)); + IJth(rJacobian, 1, 16) = -1.5852619730310017e-6 * var_x122 + 0.0052842065767700064 * var_x115 * var_x15 * var_x7 * NV_Ith_S(mParameters, 9) * NV_Ith_S(mParameters, 1); + IJth(rJacobian, 16, 16) = -0.00038145775374624855 * var_x121 - 4.3659884291485854e-7 * var_x51 - 0.00082254686501890791 * var_x129 - 0.0074029217851701709 * var_x117 + 2.2208765355510512e-6 * var_x115 * var_x83 * var_x84 * NV_Ith_S(mParameters, 9) * NV_Ith_S(mParameters, 1) + 2.8659485630822583e-7 * var_x118 * var_x123 * var_x124 * var_x40 * var_chaste_interface__cleft_space_ion_concentrations__K_c; + IJth(rJacobian, 17, 16) = 0.00025430516916416572 * var_x121 - 1.9106323753881723e-7 * var_x125; + IJth(rJacobian, 22, 16) = -0.0012816980525873951 * var_x121 + 9.6295871719563877e-7 * var_x118 * var_x123 * var_x124 * var_x40 * var_chaste_interface__cleft_space_ion_concentrations__K_c; + IJth(rJacobian, 0, 17) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x77 * (53.0789018209707 * var_x132 - 2.786 * var_x133 + var_x130 * var_x26 + var_x131 * var_x22 + var_x131 * var_x24)); + IJth(rJacobian, 17, 17) = -0.043659884291485852 * var_x132 - var_x26 * var_x296 - var_x26 * var_x297 + 26.53945091048535 * var_x20 * var_x26 * var_x288 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 0.0022916155659426776 * var_x25 * var_x26 * var_x28 * var_x32 * var_x46 * var_x47 * NV_Ith_S(mParameters, 6); + IJth(rJacobian, 22, 17) = 0.22004581682908866 * var_x132 - 0.011549742452351092 * var_x133 + var_x131 * var_x301 + var_x26 * var_x304 + var_x26 * var_x305; IJth(rJacobian, 1, 18) = 0.021419999999999998 + 9 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - IJth(rJacobian, 18, 18) = -0.47599999999999998 - var_x273; + IJth(rJacobian, 18, 18) = -0.47599999999999998 - var_x299; IJth(rJacobian, 1, 19) = 0.031359999999999999 + 6.2720000000000002 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; IJth(rJacobian, 19, 19) = -0.39200000000000002 - 78.400000000000006 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - IJth(rJacobian, 1, 20) = 0.0010559999999999999 + var_x145; - IJth(rJacobian, 20, 20) = -0.0066 - var_x273; + IJth(rJacobian, 1, 20) = 0.0010559999999999999 + var_x152; + IJth(rJacobian, 20, 20) = -0.0066 - var_x299; IJth(rJacobian, 21, 20) = -5; - IJth(rJacobian, 1, 21) = var_x145; - IJth(rJacobian, 20, 21) = -var_x273; + IJth(rJacobian, 1, 21) = var_x152; + IJth(rJacobian, 20, 21) = -var_x299; IJth(rJacobian, 21, 21) = -5.6660000000000004; - IJth(rJacobian, 0, 22) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x74 * (-53.0789018209707 * var_x130 - 0.10305599999999999 * var_x133 - var_x123 * var_x127 - var_x128 * var_x21 - var_x128 * var_x23 - 6 * var_x131 * var_x47 + 0.10305599999999999 * var_x112 * var_x40 * var_x42 * var_x43 + 6 * var_x129 * var_x30 * var_x32 * var_x47 * NV_Ith_S(mParameters, 6) + 2.3063136827039386 * var_x129 * var_x27 * var_x28 * var_x32 * var_x47 * var_x48 * NV_Ith_S(mParameters, 6))); - IJth(rJacobian, 16, 22) = 0.00025430516916416572 * var_x133 - 0.00025430516916416572 * var_x261; - IJth(rJacobian, 17, 22) = 0.043659884291485852 * var_x130 + 0.00016953677944277714 * var_x261 - 0.00016953677944277714 * var_x133 + var_x127 * var_x270 + var_x127 * var_x271 + var_x131 * var_x272 - var_x130 * var_x272 - 0.0018970510894583371 * var_x129 * var_x49 - var_x128 * var_x20 * var_x262; - IJth(rJacobian, 22, 22) = -0.00085446536839159674 * var_x261 - 0.22004581682908866 * var_x130 - var_x127 * var_x278 - var_x127 * var_x279 - var_x128 * var_x275 - 0.024873817198171774 * var_x131 * var_x47 + 0.024873817198171774 * var_x129 * var_x30 * var_x32 * var_x47 * NV_Ith_S(mParameters, 6) + 0.00085446536839159674 * var_x112 * var_x132 * var_x42 * var_x43 * var_chaste_interface__cleft_space_ion_concentrations__K_c + 0.0095611374908700173 * var_x129 * var_x27 * var_x28 * var_x32 * var_x47 * var_x48 * NV_Ith_S(mParameters, 6); - IJth(rJacobian, 1, 23) = var_x143; - IJth(rJacobian, 23, 23) = -14.98 - var_x280 + 14.880000000000001 * var_chaste_interface__Ca_handling_by_the_SR__O_Calse; + IJth(rJacobian, 0, 22) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x77 * (-53.0789018209707 * var_x137 - 0.10305599999999999 * var_x140 - var_x130 * var_x134 - var_x135 * var_x22 - var_x135 * var_x24 - 6 * var_x138 * var_x46 + 0.10305599999999999 * var_x118 * var_x40 * var_x42 * var_x43 + 6 * var_x136 * var_x30 * var_x32 * var_x46 * NV_Ith_S(mParameters, 6) + 2.786 * var_x136 * var_x28 * var_x32 * var_x46 * var_x47 * NV_Ith_S(mParameters, 6))); + IJth(rJacobian, 16, 22) = 0.00025430516916416572 * var_x140 - 0.00025430516916416572 * var_x287; + IJth(rJacobian, 17, 22) = 0.043659884291485852 * var_x137 + 0.00016953677944277714 * var_x287 - 0.00016953677944277714 * var_x140 + var_x134 * var_x296 + var_x134 * var_x297 + var_x138 * var_x298 - var_x137 * var_x298 - 0.0022916155659426776 * var_x136 * var_x48 - var_x135 * var_x21 * var_x288; + IJth(rJacobian, 22, 22) = -0.00085446536839159674 * var_x287 - 0.22004581682908866 * var_x137 - var_x134 * var_x304 - var_x134 * var_x305 - var_x135 * var_x301 - 0.024873817198171774 * var_x138 * var_x46 + 0.024873817198171774 * var_x136 * var_x30 * var_x32 * var_x46 * NV_Ith_S(mParameters, 6) + 0.00085446536839159674 * var_x118 * var_x139 * var_x42 * var_x43 * var_chaste_interface__cleft_space_ion_concentrations__K_c + 0.011549742452351092 * var_x136 * var_x28 * var_x32 * var_x46 * var_x47 * NV_Ith_S(mParameters, 6); + IJth(rJacobian, 1, 23) = var_x150; + IJth(rJacobian, 23, 23) = -14.98 - var_x306 + 14.880000000000001 * var_chaste_interface__Ca_handling_by_the_SR__O_Calse; IJth(rJacobian, 24, 23) = 0.011085915847820609; IJth(rJacobian, 25, 23) = 0.47999999999999998 - 0.47999999999999998 * var_chaste_interface__Ca_handling_by_the_SR__O_Calse; - IJth(rJacobian, 1, 24) = 1.7754934097947219e-10 * var_x146 + 0.00078910818213098765 * var_x135; + IJth(rJacobian, 1, 24) = 1.7754934097947219e-10 * var_x153 + 0.00078910818213098765 * var_x142; IJth(rJacobian, 23, 24) = 0.099999999999999992; - IJth(rJacobian, 24, 24) = -0.011085915847820609 - 2.6321499680605046e-9 * var_x146 - 0.011698444302491135 * var_x135; + IJth(rJacobian, 24, 24) = -0.011085915847820609 - 2.6321499680605046e-9 * var_x153 - 0.011698444302491135 * var_x142; IJth(rJacobian, 23, 25) = 12.4 + 14.880000000000001 * var_chaste_interface__Ca_handling_by_the_SR__Ca_rel; IJth(rJacobian, 25, 25) = -0.40000000000000002 - 0.47999999999999998 * var_chaste_interface__Ca_handling_by_the_SR__Ca_rel; - IJth(rJacobian, 26, 26) = -var_x291; - IJth(rJacobian, 27, 26) = var_x291; - IJth(rJacobian, 1, 27) = -0.0017614021922566689 * var_x147 * var_x148 + 0.0017614021922566689 * var_x140 * var_x147 * var_chaste_interface__Ca_handling_by_the_SR__F2 * NV_Ith_S(mParameters, 0); - IJth(rJacobian, 23, 27) = var_x148 * var_x281 - var_x141 * var_x281 * var_chaste_interface__Ca_handling_by_the_SR__F2; - IJth(rJacobian, 27, 27) = -var_x293; - IJth(rJacobian, 28, 27) = var_x293; + IJth(rJacobian, 26, 26) = -var_x317; + IJth(rJacobian, 27, 26) = var_x317; + IJth(rJacobian, 1, 27) = -0.0017614021922566689 * var_x154 * var_x155 + 0.0017614021922566689 * var_x147 * var_x154 * var_chaste_interface__Ca_handling_by_the_SR__F2 * NV_Ith_S(mParameters, 0); + IJth(rJacobian, 23, 27) = var_x155 * var_x307 - var_x148 * var_x307 * var_chaste_interface__Ca_handling_by_the_SR__F2; + IJth(rJacobian, 27, 27) = -var_x319; + IJth(rJacobian, 28, 27) = var_x319; IJth(rJacobian, 26, 28) = 0.00081499999999999997; IJth(rJacobian, 28, 28) = -0.00081499999999999997; } diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/aslanidi_atrial_model_2009.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/aslanidi_atrial_model_2009.cpp_alt index 585ddd33..359e79be 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/aslanidi_atrial_model_2009.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/aslanidi_atrial_model_2009.cpp_alt @@ -526,413 +526,437 @@ double var_chaste_interface__Ca_handling_by_the_SR__F2 = NV_Ith_S(rY, 27); // Units: dimensionless; Initial value: 0.002262 const double var_x0 = 0.083333333333333329 * var_chaste_interface__membrane__V; - const double var_x1 = exp(-var_x0); - const double var_x2 = 1 / (1 + 6.7982597932038811 * var_x1); - const double var_x3 = var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; - const double var_x4 = NV_Ith_S(mParameters, 8) * var_chaste_interface__delayed_rectifier_K_current_z_gate__z; - const double var_x5 = var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; - const double var_x6 = exp(0.016955889611951675 * var_chaste_interface__membrane__V); - const double var_x7 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 3) * NV_Ith_S(mParameters, 1); - const double var_x8 = var_x6 * var_x7; - const double var_x9 = exp(-0.02072386508127427 * var_chaste_interface__membrane__V); - const double var_x10 = pow(NV_Ith_S(mParameters, 2), 3); - const double var_x11 = var_x10 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x12 = var_x11 * var_x9; - const double var_x13 = 1 + 0.00029999999999999997 * var_x11 + 0.00029999999999999997 * var_x7; - const double var_x14 = NV_Ith_S(mParameters, 9) / var_x13; - const double var_x15 = var_x14 * (0.016955889611951675 * var_x8 + 0.02072386508127427 * var_x12); - const double var_x16 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3, 6); - const double var_x17 = 0.00400016 + 0.0060002399999999996 * var_x16; - const double var_x18 = 0.58999999999999997 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1, 3) + 0.40999999999999998 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2, 3); - const double var_x19 = var_x18 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; - const double var_x20 = var_x17 * var_x19; - const double var_x21 = NV_Ith_S(mParameters, 7) * var_chaste_interface__delayed_rectifier_K_current_pi_gate__p_i; - const double var_x22 = var_x21 * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; - const double var_x23 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 3); - const double var_x24 = 1 / var_chaste_interface__intracellular_ion_concentrations__K_i; - const double var_x25 = var_x24 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x26 = pow(var_x25, (-1.393)) * exp(0.052487898287663745 * var_chaste_interface__membrane__V); - const double var_x27 = 1 / (1 + 1.207988323918572 * var_x26); - const double var_x28 = 0.58999999999999997 + var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x29 = NV_Ith_S(mParameters, 6) / pow(var_x28, 3); - const double var_x30 = var_x27 * var_x29; - const double var_x31 = var_x23 * var_x30; - const double var_x32 = (-90 + 1.8 * var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3); - const double var_x33 = 0.012258038949414735 * var_x1 / pow((0.14709646739297683 + var_x1), 2); - const double var_x34 = exp(-1.5 - 0.025000000000000001 * var_chaste_interface__membrane__V); - const double var_x35 = 1 + var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x36 = 1 / var_x35; - const double var_x37 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 1.5); - const double var_x38 = 1 / (36.4828726939094 + var_x37); - const double var_x39 = var_x37 * var_x38 * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x40 = var_x34 * var_x36 * var_x39 / pow((1 + 0.66666666666666663 * var_x34), 2); - const double var_x41 = log(var_x25); - const double var_x42 = -26.53945091048535 * var_x41 + var_chaste_interface__membrane__V; - const double var_x43 = var_x26 * var_x29 * var_x42 / pow((0.82782257096336631 + var_x26), 2); - const double var_x44 = var_x23 * var_x43; - const double var_x45 = 0.36499999999999999 * var_chaste_interface__sodium_current_h2_gate__h2 + 0.63500000000000001 * var_chaste_interface__sodium_current_h1_gate__h1; - const double var_x46 = 1 / var_chaste_interface__intracellular_ion_concentrations__Na_i; - const double var_x47 = var_x46 * NV_Ith_S(mParameters, 2); - const double var_x48 = pow(var_x47, (-1)); - const double var_x49 = -1 + 1.0000001000000049 * var_x48; - const double var_x50 = pow(var_chaste_interface__sodium_current_m_gate__m, 3); - const double var_x51 = NV_Ith_S(mParameters, 2) * NV_Ith_S(mParameters, 5); - const double var_x52 = var_x50 * var_x51; - const double var_x53 = var_x49 * var_x52; - const double var_x54 = -1 + 0.99999990000000505 * var_x48; - const double var_x55 = var_x52 * var_x54; - const double var_x56 = (var_chaste_interface__membrane__V >= -2.6539450910485349e-6) && (var_chaste_interface__membrane__V <= 2.6539450910485349e-6); - const double var_x57 = exp(0.037679754693225945 * var_chaste_interface__membrane__V); - const double var_x58 = -1 + var_x57; - const double var_x59 = 1 / var_x58; - const double var_x60 = var_x48 * var_x57; - const double var_x61 = -1 + var_x60; - const double var_x62 = var_x59 * var_x61; - const double var_x63 = var_x52 * var_x62; - const double var_x64 = 3635.606491085292 * var_x45; - const double var_x65 = var_x59 * var_x60 * var_chaste_interface__membrane__V; - const double var_x66 = 136.98876074519373 * var_x45 * var_x52; - const double var_x67 = ((var_x56) ? (18178031546.413288 * var_x45 * var_x53 - 18178033364.340294 * var_x45 * var_x55) : (var_x63 * var_x64 + var_x65 * var_x66 - var_x57 * var_x61 * var_x66 * var_chaste_interface__membrane__V / pow(var_x58, 2))); - const double var_x68 = 1 / NV_Ith_S(mParameters, 4); - const double var_x69 = 0.001 * var_x68; - const double var_x70 = 0.00020000000000000001 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x71 = 1 / var_x70; - const double var_x72 = 1 / var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x73 = var_chaste_interface__intracellular_ion_concentrations__Ca_i / pow(var_x70, 2); - const double var_x74 = var_x10 * var_x14 * var_x9; - const double var_x75 = (var_x8 - var_x12) * NV_Ith_S(mParameters, 9) / pow(var_x13, 2); - const double var_x76 = var_x10 * var_x75; - const double var_x77 = 0.5 + 188398.77346612973 * var_chaste_interface__membrane__V; - const double var_x78 = var_x45 * var_x51 * pow(var_chaste_interface__sodium_current_m_gate__m, 2); - const double var_x79 = 289461.01447324449 * var_x54 * var_x78; - const double var_x80 = ((var_x56) ? (var_x79 + var_x77 * (-var_x79 + 289460.98552517372 * var_x49 * var_x78)) : (10906.819473255875 * var_x62 * var_x78 * var_chaste_interface__membrane__V)); - const double var_x81 = 61269.248063503415 * var_x55; - const double var_x82 = var_x63 * var_chaste_interface__membrane__V; - const double var_x83 = ((var_x56) ? (var_x81 + var_x77 * (-var_x81 + 61269.241936161772 * var_x53)) : (2308.6101218391605 * var_x82)); - const double var_x84 = 35217.756760911412 * var_x55; - const double var_x85 = ((var_x56) ? (var_x84 + var_x77 * (-var_x84 + 35217.753238896134 * var_x53)) : (1326.9963692461315 * var_x82)); - const double var_x86 = 0.001 * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; - const double var_x87 = var_x32 * var_x68; - const double var_x88 = 0.001 * var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L; - const double var_x89 = 0.001 * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; - const double var_x90 = var_x68 * (-0.22800000000000001 + 0.0060000000000000001 * var_chaste_interface__membrane__V); - const double var_x91 = 0.001 * var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T; - const double var_x92 = var_x18 * var_x42; - const double var_x93 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1, 2); - const double var_x94 = var_x42 * var_x68; - const double var_x95 = var_x17 * var_x94 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; - const double var_x96 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2, 2); - const double var_x97 = var_x19 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3, 5); - const double var_x98 = 0.001 * var_chaste_interface__delayed_rectifier_K_current_pi_gate__p_i; - const double var_x99 = var_x94 * NV_Ith_S(mParameters, 7); - const double var_x100 = 0.001 * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; - const double var_x101 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2) * NV_Ith_S(mParameters, 1); - const double var_x102 = var_x101 * var_x14 * var_x6; - const double var_x103 = 1 / (1.5 + var_x34); - const double var_x104 = var_x103 * var_x36; - const double var_x105 = var_x104 * var_x38; - const double var_x106 = var_x105 * sqrt(var_chaste_interface__intracellular_ion_concentrations__Na_i) * var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x107 = var_x101 * var_x75; - const double var_x108 = var_x104 * pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2) * var_chaste_interface__cleft_space_ion_concentrations__K_c / pow((1 + 0.027410122234342148 * var_x37), 2); - const double var_x109 = var_x47 * var_x50 * NV_Ith_S(mParameters, 5); - const double var_x110 = var_x109 * var_x45 * var_x48; - const double var_x111 = ((var_x56) ? (96486.995175714823 * var_x110 + 0.0096480430789824823 * var_x110 * var_x77) : (var_x109 * var_x64 * var_x65)); - const double var_x112 = 26.53945091048535 * var_x4; - const double var_x113 = 26.53945091048535 * var_x24; - const double var_x114 = var_x24 * var_x31; - const double var_x115 = var_x24 * var_x44; - const double var_x116 = 1 / var_chaste_interface__cleft_space_ion_concentrations__K_c; - const double var_x117 = var_x105 * var_x37; - const double var_x118 = 26.53945091048535 * var_x116; - const double var_x119 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 2); - const double var_x120 = var_x119 * var_x30; - const double var_x121 = 6 * var_x42; - const double var_x122 = var_x23 * var_x27 * NV_Ith_S(mParameters, 6) / pow(var_x28, 4); - const double var_x123 = var_x103 * var_x39 / pow(var_x35, 2); - const double var_x124 = var_x119 * var_x43; - const double var_x125 = (0.079263098651550096 - 0.001585261973031002 * var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3); - const double var_x126 = 3333.3333333333335 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x127 = 1 / (1.3999999999999999 + var_x126 + 0.80000000000000004 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up); - const double var_x128 = (var_x126 - 0.32000000000000006 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up) / pow((0.00041999999999999996 + 0.00023999999999999998 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up + var_chaste_interface__intracellular_ion_concentrations__Ca_i), 2); - const double var_x129 = pow(var_chaste_interface__Ca_handling_by_the_SR__F2, 2); - const double var_x130 = 0.25 + var_chaste_interface__Ca_handling_by_the_SR__F2; - const double var_x131 = NV_Ith_S(mParameters, 0) / pow(var_x130, 2); - const double var_x132 = var_x129 * var_x131; - const double var_x133 = 0.00088070109612833447 * var_x132; - const double var_x134 = 0.00020079984991726025 - 5.2842065767700066e-6 * var_chaste_interface__membrane__V; - const double var_x135 = 32 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x136 = -var_chaste_interface__intracellular_ion_concentrations__Ca_i + var_chaste_interface__Ca_handling_by_the_SR__Ca_rel; - const double var_x137 = 0.0017614021922566689 * var_x136; - const double var_x138 = var_x131 * var_chaste_interface__Ca_handling_by_the_SR__F2; - const double var_x139 = var_x129 * NV_Ith_S(mParameters, 0) / pow(var_x130, 3); - const double var_x140 = (var_chaste_interface__membrane__V >= -44.400001267299999) && (var_chaste_interface__membrane__V <= -44.399998732699999); - const double var_x141 = -0.078907914463820727 * var_chaste_interface__membrane__V; - const double var_x142 = exp(var_x141); - const double var_x143 = -1 + 0.030091534212260941 * var_x142; - const double var_x144 = 460 / var_x143; - const double var_x145 = 44.399999999999999 + var_chaste_interface__membrane__V; - const double var_x146 = exp(-3.5035114021936398 + var_x141); - const double var_x147 = exp(-7.333333333333333 - 0.077519379844961239 * var_chaste_interface__membrane__V); - const double var_x148 = 1 / (1 + 323.30000000000001 * var_x147); - const double var_x149 = exp(-12.010771992818672 - 0.17953321364452424 * var_chaste_interface__membrane__V); - const double var_x150 = 44.899999999999999 * var_x149; - const double var_x151 = 1 / (var_x150 + 1491 * var_x148); - const double var_x152 = 8.0610412926391373 * var_x149; - const double var_x153 = -var_x151 * var_x152 + 2.019719479407183e-5 * var_x149 * (var_x152 - 0.35750508923240704 * var_x147 / pow((0.0030931023816888337 + var_x147), 2)) / pow((var_x148 + 0.030114017437961098 * var_x149), 2); - const double var_x154 = exp(6.666666666666667 + 0.16666666666666666 * var_chaste_interface__membrane__V); - const double var_x155 = 1 + var_x154; - const double var_x156 = 1 / var_x155; - const double var_x157 = 0.001 / (0.00014999999999999999 + 0.029999999999999999 * var_x156); - const double var_x158 = var_x150 * var_x151; - const double var_x159 = exp(30 + 0.5 * var_chaste_interface__membrane__V); - const double var_x160 = 1 + var_x159; - const double var_x161 = 1 / var_x160; - const double var_x162 = 0.001 / (0.00044999999999999999 + 0.12 * var_x161); - const double var_x163 = (var_chaste_interface__membrane__V >= -5.0000002500000003) && (var_chaste_interface__membrane__V <= -4.9999997499999997); - const double var_x164 = 0.40000000000000002 * var_chaste_interface__membrane__V; - const double var_x165 = exp(var_x164); - const double var_x166 = 4.4800000000000004 / (-1 + 7.3890560989306504 * var_x165); - const double var_x167 = 5 + var_chaste_interface__membrane__V; - const double var_x168 = exp(-0.20798668885191349 * var_chaste_interface__membrane__V); - const double var_x169 = -1 + 0.12494684295098046 * var_x168; - const double var_x170 = 50 / var_x169; - const double var_x171 = 10 + var_chaste_interface__membrane__V; - const double var_x172 = -var_x170 - 1.2993640073937236 * var_x168 * var_x171 / pow(var_x169, 2); - const double var_x173 = (var_chaste_interface__membrane__V >= -45.000000249999999) && (var_chaste_interface__membrane__V <= -44.999999750000001); - const double var_x174 = exp(-var_x164); - const double var_x175 = -1 + 1.5229979744712629e-8 * var_x174; - const double var_x176 = 16.719999999999999 / var_x175; - const double var_x177 = 45 + var_chaste_interface__membrane__V; - const double var_x178 = -var_x176 - 1.0185810453263805e-7 * var_x174 * var_x177 / pow(var_x175, 2); - const double var_x179 = (var_chaste_interface__membrane__V >= -10.000000480800001) && (var_chaste_interface__membrane__V <= -9.9999995191999993); - const double var_x180 = exp(-1.6590909090909092 - 0.15151515151515152 * var_chaste_interface__membrane__V); - const double var_x181 = 1 + var_x180; - const double var_x182 = ((var_x163) ? (-0.00076253941769037492 - 2.240152507879658 * var_chaste_interface__membrane__V) : (var_x166 * var_x167)); - const double var_x183 = -var_x170 * var_x171; - const double var_x184 = -var_x176 * var_x177; - const double var_x185 = ((var_x173) ? (418.01256107817733 + var_x183 + 8.3602791350706056 * var_chaste_interface__membrane__V) : ((var_x179) ? (490.40991322080254 + var_x184 + 25.000991322205618 * var_chaste_interface__membrane__V) : (var_x183 + var_x184))); - const double var_x186 = (var_chaste_interface__membrane__V >= -18.000000400000001) && (var_chaste_interface__membrane__V <= -17.999999599999999); - const double var_x187 = 0.25 * var_chaste_interface__membrane__V; - const double var_x188 = exp(var_x187); - const double var_x189 = 8.4900000000000002 / (-1 + 90.017131300521811 * var_x188); - const double var_x190 = 18 + var_chaste_interface__membrane__V; - const double var_x191 = ((var_x186) ? (-4.2449208209089404) : (var_x189 - 0.023578845152419297 * var_x188 * var_x190 / pow((-0.011108996538242306 + var_x188), 2))); - const double var_x192 = exp(-4.5 - var_x187); - const double var_x193 = 1 + var_x192; - const double var_x194 = 16.980499999999999 * var_x192 / pow(var_x193, 2); - const double var_x195 = 1 / var_x193; - const double var_x196 = 67.921999999999997 * var_x195; - const double var_x197 = ((var_x186) ? (-42.448574776213569 - 4.2449208209089404 * var_chaste_interface__membrane__V) : (var_x189 * var_x190)); - const double var_x198 = 1 / (var_x196 + var_x197); - const double var_x199 = 0.001 * var_x197; - const double var_x200 = exp(-3.7704918032786887 - 0.16393442622950821 * var_chaste_interface__membrane__V); - const double var_x201 = 1 + var_x200; - const double var_x202 = 0.033333333333333333 * var_chaste_interface__membrane__V; - const double var_x203 = exp(0.77666666666666673 + var_x202); - const double var_x204 = exp(-0.77666666666666673 - var_x202); - const double var_x205 = exp(4.876462938881664 + 0.065019505851755519 * var_chaste_interface__membrane__V); - const double var_x206 = exp(-0.9003601440576231 - 0.012004801920768308 * var_chaste_interface__membrane__V); - const double var_x207 = 9.6370000000000005 * var_x205 + 9.6370000000000005 * var_x206; - const double var_x208 = 1 / var_x207; - const double var_x209 = 0.11569027611044419 * var_x206; - const double var_x210 = 0.62659297789336799 * var_x205; - const double var_x211 = 0.0096369999999999997 * var_x206; - const double var_x212 = exp(-2.6628794603230959 - 0.17752529735487307 * var_chaste_interface__membrane__V); - const double var_x213 = 1 + var_x212; - const double var_x214 = exp(-0.1388888888888889 * var_chaste_interface__membrane__V); - const double var_x215 = exp(var_x0); - const double var_x216 = 0.00040000000000000002 + 1 / (8.0109999999999992 * var_x214 + 386.60000000000002 * var_x215); - const double var_x217 = 1 / var_x216; - const double var_x218 = exp(327.99999999999994 + 10 * var_chaste_interface__membrane__V); - const double var_x219 = 1 + var_x218; - const double var_x220 = 1 / var_x219; - const double var_x221 = 1 / (0.020400000000000001 + 0.54659999999999997 * var_x220); - const double var_x222 = exp(4.0070821529745047 + 0.14164305949008499 * var_chaste_interface__membrane__V); - const double var_x223 = 1 + var_x222; - const double var_x224 = 0.000141643059490085 * var_x222 / pow(var_x223, 2); - const double var_x225 = 1 / var_x223; - const double var_x226 = var_x218 / pow(var_x219, 2); - const double var_x227 = exp(0.96921975662133131 - 0.071581961345740866 * var_chaste_interface__membrane__V); - const double var_x228 = 1 + var_x227; - const double var_x229 = 1 / var_x228; - const double var_x230 = 1 / (5.75 * var_x220 + 0.45000000000000001 * var_x229); - const double var_x231 = exp(46 + 2 * var_chaste_interface__membrane__V); - const double var_x232 = 1 + var_x231; - const double var_x233 = 1 / var_x232; - const double var_x234 = 1 / (0.5 + 7.5 * var_x233); - const double var_x235 = exp(1.8506208911614319 + 0.036523009495982472 * var_chaste_interface__membrane__V); - const double var_x236 = 1 + var_x235; - const double var_x237 = exp(0.065217391304347824 - 0.072463768115942032 * var_chaste_interface__membrane__V); - const double var_x238 = 1 + var_x237; - const double var_x239 = exp(-0.045816915605241454 * var_chaste_interface__membrane__V); - const double var_x240 = exp(0.014398433450440593 * var_chaste_interface__membrane__V); - const double var_x241 = 0.059999999999999998 + 1 / (0.29999999999999999 * var_x239 + 1.6599999999999999 * var_x240); - const double var_x242 = 1 / var_x241; - const double var_x243 = exp(-0.68918918918918914 - 0.13513513513513511 * var_chaste_interface__membrane__V); - const double var_x244 = 1 + var_x243; - const double var_x245 = exp(0.03941508020968823 * var_chaste_interface__membrane__V); - const double var_x246 = exp(-0.076769537847382163 * var_chaste_interface__membrane__V); - const double var_x247 = exp(0.009420009985210585 * var_chaste_interface__membrane__V); - const double var_x248 = exp(-0.018299935950224173 * var_chaste_interface__membrane__V); - const double var_x249 = exp(2.539728728905752 + 0.05358970648917756 * var_chaste_interface__membrane__V); - const double var_x250 = 1 + var_x249; - const double var_x251 = -3.290319067574035e-6 - 4.9354786013610522e-6 * var_x16; - const double var_x252 = var_x19 * var_x251; - const double var_x253 = var_x42 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; - const double var_x254 = var_x251 * var_x253; - const double var_x255 = 1.77 * var_x93; - const double var_x256 = 1.23 * var_x96; - const double var_x257 = var_x42 * var_x97; - const double var_x258 = 0.021829942145742926 * var_x41 - 0.00082254686501890791 * var_chaste_interface__membrane__V; - const double var_x259 = NV_Ith_S(mParameters, 7) * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; - const double var_x260 = 0.021829942145742926 * var_x4; - const double var_x261 = 0.021829942145742926 * var_x22; - const double var_x262 = 0.0049352811901134472 * var_x42; - const double var_x263 = -200 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x264 = 1.6583208100573134e-5 + 2.4874812150859699e-5 * var_x16; - const double var_x265 = var_x19 * var_x264; - const double var_x266 = var_x253 * var_x264; - const double var_x267 = 0.0041456361996952953 * var_chaste_interface__membrane__V - 0.11002290841454433 * var_x41; - const double var_x268 = 0.11002290841454433 * var_x4; - const double var_x269 = 0.11002290841454433 * var_x22; - const double var_x270 = 0.024873817198171774 * var_x42; - const double var_x271 = 0.11777375567316183 * var_x132; - const double var_x272 = 0.23554751134632365 * var_x136; - const double var_x273 = exp(-1.6000000000000001 + 0.080000000000000002 * var_chaste_interface__membrane__V); - const double var_x274 = 0.019200000000000002 * var_x273 * var_chaste_interface__Ca_handling_by_the_SR__F1; - const double var_x275 = 0.00029999999999999997 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; - const double var_x276 = pow(var_chaste_interface__intracellular_ion_concentrations__Ca_i, 4); - const double var_x277 = var_x276 / pow(var_x275, 5); - const double var_x278 = 0.81520000000000004 * var_x277; - const double var_x279 = pow(var_x275, (-4)); - const double var_x280 = var_x279 * pow(var_chaste_interface__intracellular_ion_concentrations__Ca_i, 3); - const double var_x281 = 0.81520000000000004 * var_x280; - const double var_x282 = 0.23999999999999999 * var_x273; - const double var_x283 = var_x276 * var_x279; - const double var_x284 = 0.20380000000000001 * var_x283; - const double var_x285 = 1.3584000000000001 * var_x277; - const double var_x286 = 1.3584000000000001 * var_x280; - const double var_x287 = 0.33960000000000001 * var_x283; + const double var_x1 = exp(1.9166666666666667 - var_x0); + const double var_x2 = 1 + var_x1; + const double var_x3 = 1 / var_x2; + const double var_x4 = var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; + const double var_x5 = NV_Ith_S(mParameters, 8) * var_chaste_interface__delayed_rectifier_K_current_z_gate__z; + const double var_x6 = var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; + const double var_x7 = exp(0.016955889611951675 * var_chaste_interface__membrane__V); + const double var_x8 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 3) * NV_Ith_S(mParameters, 1); + const double var_x9 = var_x7 * var_x8; + const double var_x10 = exp(-0.02072386508127427 * var_chaste_interface__membrane__V); + const double var_x11 = pow(NV_Ith_S(mParameters, 2), 3); + const double var_x12 = var_x11 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x13 = var_x10 * var_x12; + const double var_x14 = 1 + 0.00029999999999999997 * var_x12 + 0.00029999999999999997 * var_x8; + const double var_x15 = NV_Ith_S(mParameters, 9) / var_x14; + const double var_x16 = var_x15 * (0.016955889611951675 * var_x9 + 0.02072386508127427 * var_x13); + const double var_x17 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3, 6); + const double var_x18 = 0.00400016 + 0.0060002399999999996 * var_x17; + const double var_x19 = 0.58999999999999997 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1, 3) + 0.40999999999999998 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2, 3); + const double var_x20 = var_x19 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; + const double var_x21 = var_x18 * var_x20; + const double var_x22 = NV_Ith_S(mParameters, 7) * var_chaste_interface__delayed_rectifier_K_current_pi_gate__p_i; + const double var_x23 = var_x22 * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; + const double var_x24 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 3); + const double var_x25 = 1 / var_chaste_interface__intracellular_ion_concentrations__K_i; + const double var_x26 = log(var_x25 * var_chaste_interface__cleft_space_ion_concentrations__K_c); + const double var_x27 = exp(0.18895643383558949 + 0.052487898287663745 * var_chaste_interface__membrane__V - 1.393 * var_x26); + const double var_x28 = 1 + var_x27; + const double var_x29 = 1 / var_x28; + const double var_x30 = 0.58999999999999997 + var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x31 = NV_Ith_S(mParameters, 6) / pow(var_x30, 3); + const double var_x32 = var_x29 * var_x31; + const double var_x33 = var_x24 * var_x32; + const double var_x34 = (-90 + 1.8 * var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3); + const double var_x35 = 0.083333333333333329 * var_x1 / pow(var_x2, 2); + const double var_x36 = exp(-1.5 - 0.025000000000000001 * var_chaste_interface__membrane__V); + const double var_x37 = 1 + var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x38 = 1 / var_x37; + const double var_x39 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 1.5); + const double var_x40 = 1 / (36.4828726939094 + var_x39); + const double var_x41 = var_x39 * var_x40 * var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x42 = var_x36 * var_x38 * var_x41 / pow((1 + 0.66666666666666663 * var_x36), 2); + const double var_x43 = -26.53945091048535 * var_x26 + var_chaste_interface__membrane__V; + const double var_x44 = var_x27 * var_x31 * var_x43 / pow(var_x28, 2); + const double var_x45 = var_x24 * var_x44; + const double var_x46 = 1 / (-1 + exp(9.9999999999999995e-8)); + const double var_x47 = 1 / var_chaste_interface__intracellular_ion_concentrations__Na_i; + const double var_x48 = var_x47 * NV_Ith_S(mParameters, 2); + const double var_x49 = -log(var_x48); + const double var_x50 = exp(9.9999999999999995e-8 + var_x49); + const double var_x51 = var_x46 * (-1 + var_x50); + const double var_x52 = 0.36499999999999999 * var_chaste_interface__sodium_current_h2_gate__h2 + 0.63500000000000001 * var_chaste_interface__sodium_current_h1_gate__h1; + const double var_x53 = pow(var_chaste_interface__sodium_current_m_gate__m, 3); + const double var_x54 = NV_Ith_S(mParameters, 2) * NV_Ith_S(mParameters, 5); + const double var_x55 = var_x53 * var_x54; + const double var_x56 = var_x52 * var_x55; + const double var_x57 = 1817.803245542646 * var_x56; + const double var_x58 = 1 / (-1 + exp(-9.9999999999999995e-8)); + const double var_x59 = exp(-9.9999999999999995e-8 + var_x49); + const double var_x60 = var_x58 * (-1 + var_x59); + const double var_x61 = (var_chaste_interface__membrane__V >= -2.6539450910485349e-6) && (var_chaste_interface__membrane__V <= 2.6539450910485349e-6); + const double var_x62 = 0.037679754693225945 * var_chaste_interface__membrane__V; + const double var_x63 = exp(var_x62); + const double var_x64 = -1 + var_x63; + const double var_x65 = 1 / var_x64; + const double var_x66 = exp(var_x49 + var_x62); + const double var_x67 = -1 + var_x66; + const double var_x68 = var_x65 * var_x67; + const double var_x69 = 136.98876074519373 * var_x56 * var_chaste_interface__membrane__V; + const double var_x70 = var_x65 * var_x66; + const double var_x71 = ((var_x61) ? (var_x51 * var_x57 + var_x57 * var_x60) : (var_x69 * var_x70 + 3635.606491085292 * var_x56 * var_x68 - var_x63 * var_x67 * var_x69 / pow(var_x64, 2))); + const double var_x72 = 1 / NV_Ith_S(mParameters, 4); + const double var_x73 = 0.001 * var_x72; + const double var_x74 = 0.00020000000000000001 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x75 = 1 / var_x74; + const double var_x76 = 1 / var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x77 = var_chaste_interface__intracellular_ion_concentrations__Ca_i / pow(var_x74, 2); + const double var_x78 = var_x10 * var_x11 * var_x15; + const double var_x79 = (var_x9 - var_x13) * NV_Ith_S(mParameters, 9) / pow(var_x14, 2); + const double var_x80 = var_x11 * var_x79; + const double var_x81 = 0.5 + 188398.77346612973 * var_chaste_interface__membrane__V; + const double var_x82 = var_x52 * var_x54 * pow(var_chaste_interface__sodium_current_m_gate__m, 2); + const double var_x83 = 0.028946099999999999 * var_x82; + const double var_x84 = var_x60 * var_x83; + const double var_x85 = var_x68 * var_chaste_interface__membrane__V; + const double var_x86 = ((var_x61) ? (-var_x84 + var_x81 * (var_x84 + var_x51 * var_x83)) : (10906.819473255875 * var_x82 * var_x85)); + const double var_x87 = 0.0061269244999999995 * var_x55; + const double var_x88 = var_x60 * var_x87; + const double var_x89 = var_x55 * var_x85; + const double var_x90 = ((var_x61) ? (-var_x88 + var_x81 * (var_x88 + var_x51 * var_x87)) : (2308.6101218391605 * var_x89)); + const double var_x91 = 0.0035217754999999997 * var_x55; + const double var_x92 = var_x60 * var_x91; + const double var_x93 = ((var_x61) ? (-var_x92 + var_x81 * (var_x92 + var_x51 * var_x91)) : (1326.9963692461315 * var_x89)); + const double var_x94 = 0.001 * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; + const double var_x95 = var_x34 * var_x72; + const double var_x96 = 0.001 * var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L; + const double var_x97 = 0.001 * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; + const double var_x98 = var_x72 * (-0.22800000000000001 + 0.0060000000000000001 * var_chaste_interface__membrane__V); + const double var_x99 = 0.001 * var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T; + const double var_x100 = var_x19 * var_x43; + const double var_x101 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1, 2); + const double var_x102 = var_x43 * var_x72; + const double var_x103 = var_x102 * var_x18 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; + const double var_x104 = pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2, 2); + const double var_x105 = var_x20 * pow(var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3, 5); + const double var_x106 = 0.001 * var_chaste_interface__delayed_rectifier_K_current_pi_gate__p_i; + const double var_x107 = var_x102 * NV_Ith_S(mParameters, 7); + const double var_x108 = 0.001 * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; + const double var_x109 = pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2) * NV_Ith_S(mParameters, 1); + const double var_x110 = var_x109 * var_x15 * var_x7; + const double var_x111 = 1 / (1.5 + var_x36); + const double var_x112 = var_x111 * var_x38; + const double var_x113 = var_x112 * var_x40; + const double var_x114 = var_x113 * sqrt(var_chaste_interface__intracellular_ion_concentrations__Na_i) * var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x115 = var_x109 * var_x79; + const double var_x116 = var_x112 * pow(var_chaste_interface__intracellular_ion_concentrations__Na_i, 2) * var_chaste_interface__cleft_space_ion_concentrations__K_c / pow((1 + 0.027410122234342148 * var_x39), 2); + const double var_x117 = var_x48 * var_x52 * var_x53 * NV_Ith_S(mParameters, 5); + const double var_x118 = 0.0096486999999999996 * var_x117; + const double var_x119 = var_x118 * var_x58 * var_x59; + const double var_x120 = ((var_x61) ? (-var_x119 + var_x81 * (var_x119 + var_x118 * var_x46 * var_x50)) : (3635.606491085292 * var_x117 * var_x70 * var_chaste_interface__membrane__V)); + const double var_x121 = 26.53945091048535 * var_x5; + const double var_x122 = 26.53945091048535 * var_x25; + const double var_x123 = var_x25 * var_x33; + const double var_x124 = var_x25 * var_x45; + const double var_x125 = 1 / var_chaste_interface__cleft_space_ion_concentrations__K_c; + const double var_x126 = var_x113 * var_x39; + const double var_x127 = 26.53945091048535 * var_x125; + const double var_x128 = pow(var_chaste_interface__cleft_space_ion_concentrations__K_c, 2); + const double var_x129 = var_x128 * var_x32; + const double var_x130 = 6 * var_x43; + const double var_x131 = var_x24 * var_x29 * NV_Ith_S(mParameters, 6) / pow(var_x30, 4); + const double var_x132 = var_x111 * var_x41 / pow(var_x37, 2); + const double var_x133 = var_x128 * var_x44; + const double var_x134 = (0.079263098651550096 - 0.001585261973031002 * var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3); + const double var_x135 = 3333.3333333333335 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x136 = 1 / (1.3999999999999999 + var_x135 + 0.80000000000000004 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up); + const double var_x137 = (var_x135 - 0.32000000000000006 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up) / pow((0.00041999999999999996 + 0.00023999999999999998 * var_chaste_interface__Ca_handling_by_the_SR__Ca_up + var_chaste_interface__intracellular_ion_concentrations__Ca_i), 2); + const double var_x138 = pow(var_chaste_interface__Ca_handling_by_the_SR__F2, 2); + const double var_x139 = 0.25 + var_chaste_interface__Ca_handling_by_the_SR__F2; + const double var_x140 = NV_Ith_S(mParameters, 0) / pow(var_x139, 2); + const double var_x141 = var_x138 * var_x140; + const double var_x142 = 0.00088070109612833447 * var_x141; + const double var_x143 = 0.00020079984991726025 - 5.2842065767700066e-6 * var_chaste_interface__membrane__V; + const double var_x144 = 32 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x145 = -var_chaste_interface__intracellular_ion_concentrations__Ca_i + var_chaste_interface__Ca_handling_by_the_SR__Ca_rel; + const double var_x146 = 0.0017614021922566689 * var_x145; + const double var_x147 = var_x140 * var_chaste_interface__Ca_handling_by_the_SR__F2; + const double var_x148 = var_x138 * NV_Ith_S(mParameters, 0) / pow(var_x139, 3); + const double var_x149 = 1 / (-1 + exp(9.9999999999708629e-8)); + const double var_x150 = 1 / (-1 + exp(-9.9999999999708629e-8)); + const double var_x151 = (var_chaste_interface__membrane__V >= -44.400001267299999) && (var_chaste_interface__membrane__V <= -44.399998732699999); + const double var_x152 = exp(-3.5035114021936398 - 0.078907914463820727 * var_chaste_interface__membrane__V); + const double var_x153 = -1 + var_x152; + const double var_x154 = 460 / var_x153; + const double var_x155 = 44.399999999999999 + var_chaste_interface__membrane__V; + const double var_x156 = 0.00058295799999830145 * var_x149; + const double var_x157 = exp(-7.333333333333333 - 0.077519379844961239 * var_chaste_interface__membrane__V); + const double var_x158 = 1 / (1 + 323.30000000000001 * var_x157); + const double var_x159 = exp(-12.010771992818672 - 0.17953321364452424 * var_chaste_interface__membrane__V); + const double var_x160 = 44.899999999999999 * var_x159; + const double var_x161 = 1 / (var_x160 + 1491 * var_x158); + const double var_x162 = 8.0610412926391373 * var_x159; + const double var_x163 = -var_x161 * var_x162 + 2.019719479407183e-5 * var_x159 * (var_x162 - 0.35750508923240704 * var_x157 / pow((0.0030931023816888337 + var_x157), 2)) / pow((var_x158 + 0.030114017437961098 * var_x159), 2); + const double var_x164 = exp(6.666666666666667 + 0.16666666666666666 * var_chaste_interface__membrane__V); + const double var_x165 = 1 + var_x164; + const double var_x166 = 1 / var_x165; + const double var_x167 = 0.001 / (0.00014999999999999999 + 0.029999999999999999 * var_x166); + const double var_x168 = var_x160 * var_x161; + const double var_x169 = exp(30 + 0.5 * var_chaste_interface__membrane__V); + const double var_x170 = 1 + var_x169; + const double var_x171 = 1 / var_x170; + const double var_x172 = 0.001 / (0.00044999999999999999 + 0.12 * var_x171); + const double var_x173 = 1 / (-1 + exp(1.0000000000010001e-7)); + const double var_x174 = 1 / (-1 + exp(-1.0000000000010001e-7)); + const double var_x175 = (var_chaste_interface__membrane__V >= -5.0000002500000003) && (var_chaste_interface__membrane__V <= -4.9999997499999997); + const double var_x176 = 0.40000000000000002 * var_chaste_interface__membrane__V; + const double var_x177 = exp(2 + var_x176); + const double var_x178 = -1 + var_x177; + const double var_x179 = 4.4800000000000004 / var_x178; + const double var_x180 = 5 + var_chaste_interface__membrane__V; + const double var_x181 = 1 / (-1 + exp(-1.000000000139778e-7)); + const double var_x182 = 1 / (-1 + exp(9.9999999991773334e-8)); + const double var_x183 = exp(-2.0798668885191347 - 0.20798668885191349 * var_chaste_interface__membrane__V); + const double var_x184 = -1 + var_x183; + const double var_x185 = 50 / var_x184; + const double var_x186 = 10 + var_chaste_interface__membrane__V; + const double var_x187 = -var_x185 - 10.399334442595674 * var_x183 * var_x186 / pow(var_x184, 2); + const double var_x188 = (var_chaste_interface__membrane__V >= -45.000000249999999) && (var_chaste_interface__membrane__V <= -44.999999750000001); + const double var_x189 = 1 / (-1 + exp(-9.9999999998742257e-8)); + const double var_x190 = 1 / (-1 + exp(1.0000000000162864e-7)); + const double var_x191 = exp(-18 - var_x176); + const double var_x192 = -1 + var_x191; + const double var_x193 = 16.719999999999999 / var_x192; + const double var_x194 = 45 + var_chaste_interface__membrane__V; + const double var_x195 = -var_x193 - 6.6879999999999997 * var_x191 * var_x194 / pow(var_x192, 2); + const double var_x196 = (var_chaste_interface__membrane__V >= -10.000000480800001) && (var_chaste_interface__membrane__V <= -9.9999995191999993); + const double var_x197 = exp(-1.6590909090909092 - 0.15151515151515152 * var_chaste_interface__membrane__V); + const double var_x198 = 1 + var_x197; + const double var_x199 = 1.1200000000011203e-6 * var_x174; + const double var_x200 = ((var_x175) ? (-var_x199 + 1999999.9999979998 * (5.0000002500000003 + var_chaste_interface__membrane__V) * (var_x199 + 1.1200000000011203e-6 * var_x173)) : (var_x179 * var_x180)); + const double var_x201 = 4.1799999996561256e-6 * var_x182; + const double var_x202 = -var_x185 * var_x186; + const double var_x203 = 2.4040000000391526e-5 * var_x190; + const double var_x204 = -var_x193 * var_x194; + const double var_x205 = ((var_x188) ? (var_x201 + var_x202 + 1999999.9999424887 * (45.000000249999999 + var_chaste_interface__membrane__V) * (-var_x201 - 4.1800000005842713e-6 * var_x181)) : ((var_x196) ? (var_x203 + var_x204 + 1039933.4442576389 * (10.000000480800001 + var_chaste_interface__membrane__V) * (-var_x203 - 2.4039999999697637e-5 * var_x189)) : (var_x202 + var_x204))); + const double var_x206 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x207 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x208 = (var_chaste_interface__membrane__V >= -18.000000400000001) && (var_chaste_interface__membrane__V <= -17.999999599999999); + const double var_x209 = 0.25 * var_chaste_interface__membrane__V; + const double var_x210 = exp(4.5 + var_x209); + const double var_x211 = -1 + var_x210; + const double var_x212 = 8.4900000000000002 / var_x211; + const double var_x213 = 18 + var_chaste_interface__membrane__V; + const double var_x214 = ((var_x208) ? (4.2450000000000001 * var_x206 + 4.2450000000000001 * var_x207) : (var_x212 - 2.1225000000000001 * var_x210 * var_x213 / pow(var_x211, 2))); + const double var_x215 = exp(-4.5 - var_x209); + const double var_x216 = 1 + var_x215; + const double var_x217 = 16.980499999999999 * var_x215 / pow(var_x216, 2); + const double var_x218 = 1 / var_x216; + const double var_x219 = 67.921999999999997 * var_x218; + const double var_x220 = 3.3960000000976542e-6 * var_x207; + const double var_x221 = ((var_x208) ? (-var_x220 + 1249999.9999640554 * (18.000000400000001 + var_chaste_interface__membrane__V) * (var_x220 + 3.3960000000976542e-6 * var_x206)) : (var_x212 * var_x213)); + const double var_x222 = 1 / (var_x219 + var_x221); + const double var_x223 = 0.001 * var_x221; + const double var_x224 = exp(-3.7704918032786887 - 0.16393442622950821 * var_chaste_interface__membrane__V); + const double var_x225 = 1 + var_x224; + const double var_x226 = 0.033333333333333333 * var_chaste_interface__membrane__V; + const double var_x227 = exp(0.77666666666666673 + var_x226); + const double var_x228 = exp(-0.77666666666666673 - var_x226); + const double var_x229 = exp(4.876462938881664 + 0.065019505851755519 * var_chaste_interface__membrane__V); + const double var_x230 = exp(-0.9003601440576231 - 0.012004801920768308 * var_chaste_interface__membrane__V); + const double var_x231 = 9.6370000000000005 * var_x229 + 9.6370000000000005 * var_x230; + const double var_x232 = 1 / var_x231; + const double var_x233 = 0.11569027611044419 * var_x230; + const double var_x234 = 0.62659297789336799 * var_x229; + const double var_x235 = 0.0096369999999999997 * var_x230; + const double var_x236 = exp(-2.6628794603230959 - 0.17752529735487307 * var_chaste_interface__membrane__V); + const double var_x237 = 1 + var_x236; + const double var_x238 = exp(-0.1388888888888889 * var_chaste_interface__membrane__V); + const double var_x239 = exp(var_x0); + const double var_x240 = 0.00040000000000000002 + 1 / (8.0109999999999992 * var_x238 + 386.60000000000002 * var_x239); + const double var_x241 = 1 / var_x240; + const double var_x242 = exp(327.99999999999994 + 10 * var_chaste_interface__membrane__V); + const double var_x243 = 1 + var_x242; + const double var_x244 = 1 / var_x243; + const double var_x245 = 1 / (0.020400000000000001 + 0.54659999999999997 * var_x244); + const double var_x246 = exp(4.0070821529745047 + 0.14164305949008499 * var_chaste_interface__membrane__V); + const double var_x247 = 1 + var_x246; + const double var_x248 = 0.000141643059490085 * var_x246 / pow(var_x247, 2); + const double var_x249 = 1 / var_x247; + const double var_x250 = var_x242 / pow(var_x243, 2); + const double var_x251 = exp(0.96921975662133131 - 0.071581961345740866 * var_chaste_interface__membrane__V); + const double var_x252 = 1 + var_x251; + const double var_x253 = 1 / var_x252; + const double var_x254 = 1 / (5.75 * var_x244 + 0.45000000000000001 * var_x253); + const double var_x255 = exp(46 + 2 * var_chaste_interface__membrane__V); + const double var_x256 = 1 + var_x255; + const double var_x257 = 1 / var_x256; + const double var_x258 = 1 / (0.5 + 7.5 * var_x257); + const double var_x259 = exp(1.8506208911614319 + 0.036523009495982472 * var_chaste_interface__membrane__V); + const double var_x260 = 1 + var_x259; + const double var_x261 = exp(0.065217391304347824 - 0.072463768115942032 * var_chaste_interface__membrane__V); + const double var_x262 = 1 + var_x261; + const double var_x263 = exp(-0.045816915605241454 * var_chaste_interface__membrane__V); + const double var_x264 = exp(0.014398433450440593 * var_chaste_interface__membrane__V); + const double var_x265 = 0.059999999999999998 + 1 / (0.29999999999999999 * var_x263 + 1.6599999999999999 * var_x264); + const double var_x266 = 1 / var_x265; + const double var_x267 = exp(-0.68918918918918914 - 0.13513513513513511 * var_chaste_interface__membrane__V); + const double var_x268 = 1 + var_x267; + const double var_x269 = exp(0.03941508020968823 * var_chaste_interface__membrane__V); + const double var_x270 = exp(-0.076769537847382163 * var_chaste_interface__membrane__V); + const double var_x271 = exp(0.009420009985210585 * var_chaste_interface__membrane__V); + const double var_x272 = exp(-0.018299935950224173 * var_chaste_interface__membrane__V); + const double var_x273 = exp(2.539728728905752 + 0.05358970648917756 * var_chaste_interface__membrane__V); + const double var_x274 = 1 + var_x273; + const double var_x275 = -3.290319067574035e-6 - 4.9354786013610522e-6 * var_x17; + const double var_x276 = var_x20 * var_x275; + const double var_x277 = var_x43 * var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r; + const double var_x278 = var_x275 * var_x277; + const double var_x279 = 1.77 * var_x101; + const double var_x280 = 1.23 * var_x104; + const double var_x281 = var_x105 * var_x43; + const double var_x282 = 0.021829942145742926 * var_x26 - 0.00082254686501890791 * var_chaste_interface__membrane__V; + const double var_x283 = NV_Ith_S(mParameters, 7) * var_chaste_interface__delayed_rectifier_K_current_pa_gate__p_a; + const double var_x284 = 0.021829942145742926 * var_x5; + const double var_x285 = 0.021829942145742926 * var_x23; + const double var_x286 = 0.0049352811901134472 * var_x43; + const double var_x287 = -200 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x288 = 1.6583208100573134e-5 + 2.4874812150859699e-5 * var_x17; + const double var_x289 = var_x20 * var_x288; + const double var_x290 = var_x277 * var_x288; + const double var_x291 = 0.0041456361996952953 * var_chaste_interface__membrane__V - 0.11002290841454433 * var_x26; + const double var_x292 = 0.11002290841454433 * var_x5; + const double var_x293 = 0.11002290841454433 * var_x23; + const double var_x294 = 0.024873817198171774 * var_x43; + const double var_x295 = 0.11777375567316183 * var_x141; + const double var_x296 = 0.23554751134632365 * var_x145; + const double var_x297 = exp(-1.6000000000000001 + 0.080000000000000002 * var_chaste_interface__membrane__V); + const double var_x298 = 0.019200000000000002 * var_x297 * var_chaste_interface__Ca_handling_by_the_SR__F1; + const double var_x299 = 0.00029999999999999997 + var_chaste_interface__intracellular_ion_concentrations__Ca_i; + const double var_x300 = pow(var_chaste_interface__intracellular_ion_concentrations__Ca_i, 4); + const double var_x301 = var_x300 / pow(var_x299, 5); + const double var_x302 = 0.81520000000000004 * var_x301; + const double var_x303 = pow(var_x299, (-4)); + const double var_x304 = var_x303 * pow(var_chaste_interface__intracellular_ion_concentrations__Ca_i, 3); + const double var_x305 = 0.81520000000000004 * var_x304; + const double var_x306 = 0.23999999999999999 * var_x297; + const double var_x307 = var_x300 * var_x303; + const double var_x308 = 0.20380000000000001 * var_x307; + const double var_x309 = 1.3584000000000001 * var_x301; + const double var_x310 = 1.3584000000000001 * var_x304; + const double var_x311 = 0.33960000000000001 * var_x307; // Matrix entries - IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x69 * (0.0014400000000000001 + var_x15 + var_x20 + var_x22 + var_x4 + var_x67 + 2 * var_x31 + 0.0060000000000000001 * var_x5 + 0.0011450666666666667 * var_x40 - 0.086901333809914952 * var_x44 + var_x32 * var_x33 + (1.8 * var_x2 + 1.8 * var_x3) * NV_Ith_S(mParameters, 3))); - IJth(rJacobian, 1, 0) = -1.7614021922566692e-8 + 0.0017614021922566689 * var_x15 - 5.2842065767700066e-6 * var_x5 + var_x125 * var_x33 + (-0.001585261973031002 * var_x2 - 0.001585261973031002 * var_x3) * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 2, 0) = (0.001 - 0.001 * var_chaste_interface__sodium_current_m_gate__m) * ((var_x140) ? (229.97576066014508) : (-var_x144 - 1.0922516955448618 * var_x142 * var_x145 / pow(var_x143, 2))) + 1.4519056261343013 * var_x146 * var_chaste_interface__sodium_current_m_gate__m; - IJth(rJacobian, 3, 0) = var_x153 * var_x157 + 0.0055555555555555558 * var_x154 * (var_x158 - var_chaste_interface__sodium_current_h1_gate__h1) / (pow(var_x155, 2) * pow((0.0050000000000000001 + var_x156), 2)); - IJth(rJacobian, 4, 0) = var_x153 * var_x162 + 0.0041666666666666666 * var_x159 * (var_x158 - var_chaste_interface__sodium_current_h2_gate__h2) / (pow(var_x160, 2) * pow((0.0037499999999999999 + var_x161), 2)); - IJth(rJacobian, 5, 0) = (-var_x88 + 0.001 / var_x181) * (((var_x163) ? (-2.240152507879658) : (var_x166 - 0.24252082756000998 * var_x165 * var_x167 / pow((-0.1353352832366127 + var_x165), 2))) + ((var_x173) ? (8.3602791350706056 + var_x172) : ((var_x179) ? (25.000991322205618 + var_x178) : (var_x172 + var_x178)))) + 0.00015151515151515152 * var_x180 * (var_x182 + var_x185) / pow(var_x181, 2); - IJth(rJacobian, 6, 0) = (var_x194 + var_x191) * (-var_x86 + var_x198 * var_x199) + (var_x196 + var_x197) * (0.001 * var_x191 * var_x198 + 2.1675996343523e-7 * var_x197 * (-var_x191 - var_x194) / pow((var_x195 + 0.014722770236447691 * var_x197), 2)); - IJth(rJacobian, 7, 0) = (-var_x91 + 0.001 / var_x201) * (22.472433333333335 * var_x203 - 22.472433333333335 * var_x204) + 0.0001639344262295082 * var_x200 * (674.173 * var_x203 + 674.173 * var_x204) / pow(var_x201, 2); - IJth(rJacobian, 8, 0) = var_x207 * (-0.00011569027611044419 * var_x206 * var_x208 + 0.00010376673238559718 * var_x206 * (var_x209 - var_x210) / pow((var_x205 + var_x206), 2)) + (var_x210 - var_x209) * (-var_x89 + var_x208 * var_x211); - IJth(rJacobian, 9, 0) = 0.00017752529735487306 * var_x212 * var_x217 / pow(var_x213, 2) - 6.6907730760079843e-9 * (-var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 1 / var_x213) * (1.1126388888888887 * var_x214 - 32.216666666666669 * var_x215) / (pow(var_x216, 2) * pow((var_x215 + 0.020721676151060523 * var_x214), 2)); - IJth(rJacobian, 10, 0) = -var_x221 * var_x224 + 0.018294914013904134 * var_x226 * (var_x225 - var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1) / pow((0.037321624588364438 + var_x220), 2); - IJth(rJacobian, 11, 0) = -var_x224 * var_x230 + 3.0245746691871456e-5 * (var_x225 - var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2) * (57.5 * var_x226 - 0.032211882605583393 * var_x227 / pow(var_x228, 2)) / pow((var_x220 + 0.078260869565217397 * var_x229), 2); - IJth(rJacobian, 12, 0) = -2.1922574727480476e-5 * var_x234 * var_x235 / pow(var_x236, 2) + 0.00026666666666666668 * var_x231 * (0.39975990396158467 - var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3 + 0.60024009603841544 / var_x236) / (pow(var_x232, 2) * pow((0.066666666666666666 + var_x233), 2)); - IJth(rJacobian, 13, 0) = 7.2463768115942027e-5 * var_x237 * var_x242 / pow(var_x238, 2) - 0.00036289737262302222 * (-var_chaste_interface__delayed_rectifier_K_current_z_gate__z + 1 / var_x238) * (0.013745074681572435 * var_x239 - 0.023901399527731383 * var_x240) / (pow(var_x241, 2) * pow((var_x240 + 0.18072289156626506 * var_x239), 2)); - IJth(rJacobian, 14, 0) = (-var_x100 + 0.001 / var_x244) * (0.35473572188719404 * var_x245 - 0.099800399201596807 * var_x246) + 0.00013513513513513514 * var_x243 * (9 * var_x245 + 1.3 * var_x246) / pow(var_x244, 2); - IJth(rJacobian, 15, 0) = (-var_x98 + 0.001 / var_x250) * (6.1795265502981431 * var_x247 - 1.8299935950224173 * var_x248) - 5.3589706489177562e-5 * var_x249 * (100 * var_x248 + 656 * var_x247) / pow(var_x250, 2); - IJth(rJacobian, 16, 0) = -1.6450937300378158e-8 - 0.0024676405950567236 * var_x15 - 2.8256129907129523e-6 * var_x40 - 0.00082254686501890791 * var_x67; - IJth(rJacobian, 17, 0) = -1.151565611026471e-6 + var_x252 + 7.1480419691307166e-5 * var_x44 + 1.8837419938086349e-6 * var_x40 - 0.00082254686501890791 * var_x22 - 0.00082254686501890791 * var_x4 - 0.0016450937300378158 * var_x31; - IJth(rJacobian, 22, 0) = 5.8038906795734136e-6 + var_x265 + 0.0041456361996952953 * var_x22 + 0.0041456361996952953 * var_x4 + 0.0082912723993905906 * var_x31 - 9.4940596487955185e-6 * var_x40 - 0.00036026131524418808 * var_x44; - IJth(rJacobian, 26, 0) = -var_x274; - IJth(rJacobian, 27, 0) = var_x274; - IJth(rJacobian, 0, 1) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x69 * (-var_x74 + 0.0095090000000000001 * var_x71 + 0.0002653945091048535 * var_x72 - 0.0095090000000000001 * var_x73 - 0.00029999999999999997 * var_x76)); - IJth(rJacobian, 1, 1) = -47.271999999999998 - var_x133 + 8.3745867230843319e-6 * var_x73 + 6.2720000000000002 * var_chaste_interface__intracellular_Ca_buffering__O_TC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg + 9 * var_chaste_interface__intracellular_Ca_buffering__O_C + 7.3978892074780085e-7 * var_x128 - 8.3745867230843319e-6 * var_x71 - 5.2842065767700058e-7 * var_x76 - 8.2198768971977874 * var_x127 - 0.0017614021922566689 * var_x74 - 2.3373323507508574e-7 * var_x72; - IJth(rJacobian, 16, 1) = 0.0024676405950567236 * var_x74 + 7.4029217851701709e-7 * var_x76; + IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x73 * (0.0014400000000000001 + var_x16 + var_x21 + var_x23 + var_x5 + var_x71 + 2 * var_x33 + 0.0060000000000000001 * var_x6 + 0.0011450666666666667 * var_x42 - 0.10497579657532749 * var_x45 + var_x34 * var_x35 + (1.8 * var_x3 + 1.8 * var_x4) * NV_Ith_S(mParameters, 3))); + IJth(rJacobian, 1, 0) = -1.7614021922566692e-8 + 0.0017614021922566689 * var_x16 - 5.2842065767700066e-6 * var_x6 + var_x134 * var_x35 + (-0.001585261973031002 * var_x3 - 0.001585261973031002 * var_x4) * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 2, 0) = (0.001 - 0.001 * var_chaste_interface__sodium_current_m_gate__m) * ((var_x151) ? (-230 * var_x149 - 230 * var_x150) : (-var_x154 - 36.297640653357533 * var_x152 * var_x155 / pow(var_x153, 2))) + 1.4519056261343013 * var_x152 * var_chaste_interface__sodium_current_m_gate__m; + IJth(rJacobian, 3, 0) = var_x163 * var_x167 + 0.0055555555555555558 * var_x164 * (var_x168 - var_chaste_interface__sodium_current_h1_gate__h1) / (pow(var_x165, 2) * pow((0.0050000000000000001 + var_x166), 2)); + IJth(rJacobian, 4, 0) = var_x163 * var_x172 + 0.0041666666666666666 * var_x169 * (var_x168 - var_chaste_interface__sodium_current_h2_gate__h2) / (pow(var_x170, 2) * pow((0.0037499999999999999 + var_x171), 2)); + IJth(rJacobian, 5, 0) = (-var_x96 + 0.001 / var_x198) * (((var_x175) ? (2.2400000000000002 * var_x173 + 2.2400000000000002 * var_x174) : (var_x179 - 1.7920000000000003 * var_x177 * var_x180 / pow(var_x178, 2))) + ((var_x188) ? (var_x187 - 8.3600000009281459 * var_x181 - 8.359999999071853 * var_x182) : ((var_x196) ? (var_x195 - 24.999999999639201 * var_x189 - 25.000000000360799 * var_x190) : (var_x187 + var_x195)))) + 0.00015151515151515152 * var_x197 * (var_x200 + var_x205) / pow(var_x198, 2); + IJth(rJacobian, 6, 0) = (var_x217 + var_x214) * (-var_x94 + var_x222 * var_x223) + (var_x219 + var_x221) * (0.001 * var_x214 * var_x222 + 2.1675996343523e-7 * var_x221 * (-var_x214 - var_x217) / pow((var_x218 + 0.014722770236447691 * var_x221), 2)); + IJth(rJacobian, 7, 0) = (-var_x99 + 0.001 / var_x225) * (22.472433333333335 * var_x227 - 22.472433333333335 * var_x228) + 0.0001639344262295082 * var_x224 * (674.173 * var_x227 + 674.173 * var_x228) / pow(var_x225, 2); + IJth(rJacobian, 8, 0) = var_x231 * (-0.00011569027611044419 * var_x230 * var_x232 + 0.00010376673238559718 * var_x230 * (var_x233 - var_x234) / pow((var_x229 + var_x230), 2)) + (var_x234 - var_x233) * (-var_x97 + var_x232 * var_x235); + IJth(rJacobian, 9, 0) = 0.00017752529735487306 * var_x236 * var_x241 / pow(var_x237, 2) - 6.6907730760079843e-9 * (-var_chaste_interface__Ca_independent_transient_outward_K_current_r_gate__r + 1 / var_x237) * (1.1126388888888887 * var_x238 - 32.216666666666669 * var_x239) / (pow(var_x240, 2) * pow((var_x239 + 0.020721676151060523 * var_x238), 2)); + IJth(rJacobian, 10, 0) = -var_x245 * var_x248 + 0.018294914013904134 * var_x250 * (var_x249 - var_chaste_interface__Ca_independent_transient_outward_K_current_s1_gate__s1) / pow((0.037321624588364438 + var_x244), 2); + IJth(rJacobian, 11, 0) = -var_x248 * var_x254 + 3.0245746691871456e-5 * (var_x249 - var_chaste_interface__Ca_independent_transient_outward_K_current_s2_gate__s2) * (57.5 * var_x250 - 0.032211882605583393 * var_x251 / pow(var_x252, 2)) / pow((var_x244 + 0.078260869565217397 * var_x253), 2); + IJth(rJacobian, 12, 0) = -2.1922574727480476e-5 * var_x258 * var_x259 / pow(var_x260, 2) + 0.00026666666666666668 * var_x255 * (0.39975990396158467 - var_chaste_interface__Ca_independent_transient_outward_K_current_s3_gate__s3 + 0.60024009603841544 / var_x260) / (pow(var_x256, 2) * pow((0.066666666666666666 + var_x257), 2)); + IJth(rJacobian, 13, 0) = 7.2463768115942027e-5 * var_x261 * var_x266 / pow(var_x262, 2) - 0.00036289737262302222 * (-var_chaste_interface__delayed_rectifier_K_current_z_gate__z + 1 / var_x262) * (0.013745074681572435 * var_x263 - 0.023901399527731383 * var_x264) / (pow(var_x265, 2) * pow((var_x264 + 0.18072289156626506 * var_x263), 2)); + IJth(rJacobian, 14, 0) = (-var_x108 + 0.001 / var_x268) * (0.35473572188719404 * var_x269 - 0.099800399201596807 * var_x270) + 0.00013513513513513514 * var_x267 * (9 * var_x269 + 1.3 * var_x270) / pow(var_x268, 2); + IJth(rJacobian, 15, 0) = (-var_x106 + 0.001 / var_x274) * (6.1795265502981431 * var_x271 - 1.8299935950224173 * var_x272) - 5.3589706489177562e-5 * var_x273 * (100 * var_x272 + 656 * var_x271) / pow(var_x274, 2); + IJth(rJacobian, 16, 0) = -1.6450937300378158e-8 - 0.0024676405950567236 * var_x16 - 2.8256129907129523e-6 * var_x42 - 0.00082254686501890791 * var_x71; + IJth(rJacobian, 17, 0) = -1.151565611026471e-6 + var_x276 + 8.6347512375898239e-5 * var_x45 + 1.8837419938086349e-6 * var_x42 - 0.00082254686501890791 * var_x23 - 0.00082254686501890791 * var_x5 - 0.0016450937300378158 * var_x33; + IJth(rJacobian, 22, 0) = 5.8038906795734136e-6 + var_x289 + 0.0041456361996952953 * var_x23 + 0.0041456361996952953 * var_x5 + 0.0082912723993905906 * var_x33 - 9.4940596487955185e-6 * var_x42 - 0.00043519146237452704 * var_x45; + IJth(rJacobian, 26, 0) = -var_x298; + IJth(rJacobian, 27, 0) = var_x298; + IJth(rJacobian, 0, 1) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x73 * (-var_x78 + 0.0095090000000000001 * var_x75 + 0.0002653945091048535 * var_x76 - 0.0095090000000000001 * var_x77 - 0.00029999999999999997 * var_x80)); + IJth(rJacobian, 1, 1) = -47.271999999999998 - var_x142 + 8.3745867230843319e-6 * var_x77 + 6.2720000000000002 * var_chaste_interface__intracellular_Ca_buffering__O_TC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC + 32 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg + 9 * var_chaste_interface__intracellular_Ca_buffering__O_C + 7.3978892074780085e-7 * var_x137 - 8.3745867230843319e-6 * var_x75 - 5.2842065767700058e-7 * var_x80 - 8.2198768971977874 * var_x136 - 0.0017614021922566689 * var_x78 - 2.3373323507508574e-7 * var_x76; + IJth(rJacobian, 16, 1) = 0.0024676405950567236 * var_x78 + 7.4029217851701709e-7 * var_x80; IJth(rJacobian, 18, 1) = 200 - 200 * var_chaste_interface__intracellular_Ca_buffering__O_C; IJth(rJacobian, 19, 1) = 78.400000000000006 - 78.400000000000006 * var_chaste_interface__intracellular_Ca_buffering__O_TC; IJth(rJacobian, 20, 1) = 200 - 200 * var_chaste_interface__intracellular_Ca_buffering__O_TMgC - 200 * var_chaste_interface__intracellular_Ca_buffering__O_TMgMg; - IJth(rJacobian, 23, 1) = var_x271; - IJth(rJacobian, 24, 1) = 121.85879481761599 * var_x127 - 1.0967291533585437e-5 * var_x128; - IJth(rJacobian, 26, 1) = (var_x278 - var_x281) * var_chaste_interface__Ca_handling_by_the_SR__F1; - IJth(rJacobian, 27, 1) = (var_x281 - var_x278) * var_chaste_interface__Ca_handling_by_the_SR__F1 + (var_x285 - var_x286) * var_chaste_interface__Ca_handling_by_the_SR__F2; - IJth(rJacobian, 28, 1) = (var_x286 - var_x285) * var_chaste_interface__Ca_handling_by_the_SR__F2; - IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x69 * var_x80); - IJth(rJacobian, 2, 2) = -0.001 * ((var_x140) ? (16040.503773328091 + 229.97576066014508 * var_chaste_interface__membrane__V) : (-var_x144 * var_x145)) - 18.399999999999999 * var_x146; - IJth(rJacobian, 16, 2) = -0.00082254686501890791 * var_x80; - IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x69 * var_x83); - IJth(rJacobian, 3, 3) = -var_x157; - IJth(rJacobian, 16, 3) = -0.00082254686501890791 * var_x83; - IJth(rJacobian, 0, 4) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x69 * var_x85); - IJth(rJacobian, 4, 4) = -var_x162; - IJth(rJacobian, 16, 4) = -0.00082254686501890791 * var_x85; - IJth(rJacobian, 0, 5) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x86 * var_x87); - IJth(rJacobian, 1, 5) = var_x125 * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; - IJth(rJacobian, 5, 5) = -0.001 * var_x182 - 0.001 * var_x185; - IJth(rJacobian, 0, 6) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x87 * var_x88); - IJth(rJacobian, 1, 6) = var_x125 * var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L; - IJth(rJacobian, 6, 6) = -var_x199 - 0.067921999999999996 * var_x195; - IJth(rJacobian, 0, 7) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x89 * var_x90); - IJth(rJacobian, 1, 7) = var_x134 * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; - IJth(rJacobian, 7, 7) = -0.67417300000000002 * var_x203 - 0.67417300000000002 * var_x204; - IJth(rJacobian, 0, 8) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x90 * var_x91); - IJth(rJacobian, 1, 8) = var_x134 * var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T; - IJth(rJacobian, 8, 8) = -var_x211 - 0.0096369999999999997 * var_x205; - IJth(rJacobian, 0, 9) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x17 * var_x69 * var_x92); - IJth(rJacobian, 9, 9) = -0.001 * var_x217; - IJth(rJacobian, 17, 9) = var_x251 * var_x92; - IJth(rJacobian, 22, 9) = var_x264 * var_x92; - IJth(rJacobian, 0, 10) = mSetVoltageDerivativeToZero ? 0.0 : (-0.0017699999999999999 * var_x93 * var_x95); - IJth(rJacobian, 10, 10) = -0.001 * var_x221; - IJth(rJacobian, 17, 10) = var_x254 * var_x255; - IJth(rJacobian, 22, 10) = var_x255 * var_x266; - IJth(rJacobian, 0, 11) = mSetVoltageDerivativeToZero ? 0.0 : (-0.00123 * var_x95 * var_x96); - IJth(rJacobian, 11, 11) = -0.001 * var_x230; - IJth(rJacobian, 17, 11) = var_x254 * var_x256; - IJth(rJacobian, 22, 11) = var_x256 * var_x266; - IJth(rJacobian, 0, 12) = mSetVoltageDerivativeToZero ? 0.0 : (-3.600144e-5 * var_x94 * var_x97); - IJth(rJacobian, 12, 12) = -0.001 * var_x234; - IJth(rJacobian, 17, 12) = -2.9612871608166312e-5 * var_x257; - IJth(rJacobian, 22, 12) = 0.00014924887290515819 * var_x257; - IJth(rJacobian, 0, 13) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x42 * var_x69 * NV_Ith_S(mParameters, 8)); - IJth(rJacobian, 13, 13) = -0.001 * var_x242; - IJth(rJacobian, 17, 13) = var_x258 * NV_Ith_S(mParameters, 8); - IJth(rJacobian, 22, 13) = var_x267 * NV_Ith_S(mParameters, 8); - IJth(rJacobian, 0, 14) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x98 * var_x99); - IJth(rJacobian, 14, 14) = -0.0089999999999999993 * var_x245 - 0.0012999999999999999 * var_x246; - IJth(rJacobian, 17, 14) = var_x21 * var_x258; - IJth(rJacobian, 22, 14) = var_x21 * var_x267; - IJth(rJacobian, 0, 15) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x100 * var_x99); - IJth(rJacobian, 15, 15) = -0.65600000000000003 * var_x247 - 0.10000000000000001 * var_x248; - IJth(rJacobian, 17, 15) = var_x258 * var_x259; - IJth(rJacobian, 22, 15) = var_x259 * var_x267; - IJth(rJacobian, 0, 16) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x69 * (var_x111 + 3 * var_x102 + 0.00053078901820970701 * var_x46 + 0.154584 * var_x106 - 0.00089999999999999998 * var_x107 - 0.0001161412471825695 * var_x108)); - IJth(rJacobian, 1, 16) = 0.0052842065767700064 * var_x102 - 1.5852619730310017e-6 * var_x107; - IJth(rJacobian, 16, 16) = 2.2208765355510512e-6 * var_x107 + 2.8659485630822583e-7 * var_x108 - 0.00038145775374624855 * var_x106 - 4.3659884291485854e-7 * var_x46 - 0.00082254686501890791 * var_x111 - 0.0074029217851701709 * var_x102; - IJth(rJacobian, 17, 16) = 0.00025430516916416572 * var_x106 - 1.9106323753881723e-7 * var_x108; - IJth(rJacobian, 22, 16) = 9.6295871719563877e-7 * var_x108 - 0.0012816980525873951 * var_x106; - IJth(rJacobian, 0, 17) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x69 * (53.0789018209707 * var_x114 - 2.3063136827039386 * var_x115 + var_x112 * var_x24 + var_x113 * var_x20 + var_x113 * var_x22)); - IJth(rJacobian, 17, 17) = 0.0018970510894583371 * var_x115 - 0.043659884291485852 * var_x114 + var_x113 * var_x252 - var_x24 * var_x260 - var_x24 * var_x261; - IJth(rJacobian, 22, 17) = 0.22004581682908866 * var_x114 - 0.0095611374908700173 * var_x115 + var_x113 * var_x265 + var_x24 * var_x268 + var_x24 * var_x269; + IJth(rJacobian, 23, 1) = var_x295; + IJth(rJacobian, 24, 1) = 121.85879481761599 * var_x136 - 1.0967291533585437e-5 * var_x137; + IJth(rJacobian, 26, 1) = (var_x302 - var_x305) * var_chaste_interface__Ca_handling_by_the_SR__F1; + IJth(rJacobian, 27, 1) = (var_x305 - var_x302) * var_chaste_interface__Ca_handling_by_the_SR__F1 + (var_x309 - var_x310) * var_chaste_interface__Ca_handling_by_the_SR__F2; + IJth(rJacobian, 28, 1) = (var_x310 - var_x309) * var_chaste_interface__Ca_handling_by_the_SR__F2; + IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x73 * var_x86); + IJth(rJacobian, 2, 2) = -0.001 * ((var_x151) ? (var_x156 + 394539.57232025318 * (44.400001267299999 + var_chaste_interface__membrane__V) * (-var_x156 - 0.00058295799999830145 * var_x150)) : (-var_x154 * var_x155)) - 18.399999999999999 * var_x152; + IJth(rJacobian, 16, 2) = -0.00082254686501890791 * var_x86; + IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x73 * var_x90); + IJth(rJacobian, 3, 3) = -var_x167; + IJth(rJacobian, 16, 3) = -0.00082254686501890791 * var_x90; + IJth(rJacobian, 0, 4) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x73 * var_x93); + IJth(rJacobian, 4, 4) = -var_x172; + IJth(rJacobian, 16, 4) = -0.00082254686501890791 * var_x93; + IJth(rJacobian, 0, 5) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x94 * var_x95); + IJth(rJacobian, 1, 5) = var_x134 * var_chaste_interface__L_type_Ca_channel_f_L_gate__f_L; + IJth(rJacobian, 5, 5) = -0.001 * var_x200 - 0.001 * var_x205; + IJth(rJacobian, 0, 6) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x95 * var_x96); + IJth(rJacobian, 1, 6) = var_x134 * var_chaste_interface__L_type_Ca_channel_d_L_gate__d_L; + IJth(rJacobian, 6, 6) = -var_x223 - 0.067921999999999996 * var_x218; + IJth(rJacobian, 0, 7) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x97 * var_x98); + IJth(rJacobian, 1, 7) = var_x143 * var_chaste_interface__T_type_Ca_channel_f_T_gate__f_T; + IJth(rJacobian, 7, 7) = -0.67417300000000002 * var_x227 - 0.67417300000000002 * var_x228; + IJth(rJacobian, 0, 8) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x98 * var_x99); + IJth(rJacobian, 1, 8) = var_x143 * var_chaste_interface__T_type_Ca_channel_d_T_gate__d_T; + IJth(rJacobian, 8, 8) = -var_x235 - 0.0096369999999999997 * var_x229; + IJth(rJacobian, 0, 9) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x100 * var_x18 * var_x73); + IJth(rJacobian, 9, 9) = -0.001 * var_x241; + IJth(rJacobian, 17, 9) = var_x100 * var_x275; + IJth(rJacobian, 22, 9) = var_x100 * var_x288; + IJth(rJacobian, 0, 10) = mSetVoltageDerivativeToZero ? 0.0 : (-0.0017699999999999999 * var_x101 * var_x103); + IJth(rJacobian, 10, 10) = -0.001 * var_x245; + IJth(rJacobian, 17, 10) = var_x278 * var_x279; + IJth(rJacobian, 22, 10) = var_x279 * var_x290; + IJth(rJacobian, 0, 11) = mSetVoltageDerivativeToZero ? 0.0 : (-0.00123 * var_x103 * var_x104); + IJth(rJacobian, 11, 11) = -0.001 * var_x254; + IJth(rJacobian, 17, 11) = var_x278 * var_x280; + IJth(rJacobian, 22, 11) = var_x280 * var_x290; + IJth(rJacobian, 0, 12) = mSetVoltageDerivativeToZero ? 0.0 : (-3.600144e-5 * var_x102 * var_x105); + IJth(rJacobian, 12, 12) = -0.001 * var_x258; + IJth(rJacobian, 17, 12) = -2.9612871608166312e-5 * var_x281; + IJth(rJacobian, 22, 12) = 0.00014924887290515819 * var_x281; + IJth(rJacobian, 0, 13) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x43 * var_x73 * NV_Ith_S(mParameters, 8)); + IJth(rJacobian, 13, 13) = -0.001 * var_x266; + IJth(rJacobian, 17, 13) = var_x282 * NV_Ith_S(mParameters, 8); + IJth(rJacobian, 22, 13) = var_x291 * NV_Ith_S(mParameters, 8); + IJth(rJacobian, 0, 14) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x106 * var_x107); + IJth(rJacobian, 14, 14) = -0.0089999999999999993 * var_x269 - 0.0012999999999999999 * var_x270; + IJth(rJacobian, 17, 14) = var_x22 * var_x282; + IJth(rJacobian, 22, 14) = var_x22 * var_x291; + IJth(rJacobian, 0, 15) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x107 * var_x108); + IJth(rJacobian, 15, 15) = -0.65600000000000003 * var_x271 - 0.10000000000000001 * var_x272; + IJth(rJacobian, 17, 15) = var_x282 * var_x283; + IJth(rJacobian, 22, 15) = var_x283 * var_x291; + IJth(rJacobian, 0, 16) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x73 * (var_x120 + 3 * var_x110 + 0.00053078901820970701 * var_x47 + 0.154584 * var_x114 - 0.00089999999999999998 * var_x115 - 0.0001161412471825695 * var_x116)); + IJth(rJacobian, 1, 16) = 0.0052842065767700064 * var_x110 - 1.5852619730310017e-6 * var_x115; + IJth(rJacobian, 16, 16) = 2.2208765355510512e-6 * var_x115 + 2.8659485630822583e-7 * var_x116 - 0.00038145775374624855 * var_x114 - 4.3659884291485854e-7 * var_x47 - 0.00082254686501890791 * var_x120 - 0.0074029217851701709 * var_x110; + IJth(rJacobian, 17, 16) = 0.00025430516916416572 * var_x114 - 1.9106323753881723e-7 * var_x116; + IJth(rJacobian, 22, 16) = 9.6295871719563877e-7 * var_x116 - 0.0012816980525873951 * var_x114; + IJth(rJacobian, 0, 17) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x73 * (53.0789018209707 * var_x123 - 2.786 * var_x124 + var_x121 * var_x25 + var_x122 * var_x21 + var_x122 * var_x23)); + IJth(rJacobian, 17, 17) = 0.0022916155659426776 * var_x124 - 0.043659884291485852 * var_x123 + var_x122 * var_x276 - var_x25 * var_x284 - var_x25 * var_x285; + IJth(rJacobian, 22, 17) = 0.22004581682908866 * var_x123 - 0.011549742452351092 * var_x124 + var_x122 * var_x289 + var_x25 * var_x292 + var_x25 * var_x293; IJth(rJacobian, 1, 18) = 0.021419999999999998 + 9 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - IJth(rJacobian, 18, 18) = -0.47599999999999998 + var_x263; + IJth(rJacobian, 18, 18) = -0.47599999999999998 + var_x287; IJth(rJacobian, 1, 19) = 0.031359999999999999 + 6.2720000000000002 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; IJth(rJacobian, 19, 19) = -0.39200000000000002 - 78.400000000000006 * var_chaste_interface__intracellular_ion_concentrations__Ca_i; - IJth(rJacobian, 1, 20) = 0.0010559999999999999 + var_x135; - IJth(rJacobian, 20, 20) = -0.0066 + var_x263; + IJth(rJacobian, 1, 20) = 0.0010559999999999999 + var_x144; + IJth(rJacobian, 20, 20) = -0.0066 + var_x287; IJth(rJacobian, 21, 20) = -5; - IJth(rJacobian, 1, 21) = var_x135; - IJth(rJacobian, 20, 21) = var_x263; + IJth(rJacobian, 1, 21) = var_x144; + IJth(rJacobian, 20, 21) = var_x287; IJth(rJacobian, 21, 21) = -5.6660000000000004; - IJth(rJacobian, 0, 22) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x69 * (2.3063136827039386 * var_x124 + 0.10305599999999999 * var_x117 - 53.0789018209707 * var_x120 - 0.10305599999999999 * var_x123 + var_x120 * var_x121 - var_x112 * var_x116 - var_x118 * var_x20 - var_x118 * var_x22 - var_x121 * var_x122)); - IJth(rJacobian, 16, 22) = 0.00025430516916416572 * var_x123 - 0.00025430516916416572 * var_x117; - IJth(rJacobian, 17, 22) = 0.043659884291485852 * var_x120 + 0.00016953677944277714 * var_x117 - 0.00016953677944277714 * var_x123 - 0.0018970510894583371 * var_x124 + var_x116 * var_x260 + var_x116 * var_x261 + var_x122 * var_x262 - var_x118 * var_x252 - var_x120 * var_x262; - IJth(rJacobian, 22, 22) = 0.0095611374908700173 * var_x124 + 0.00085446536839159674 * var_x123 - 0.00085446536839159674 * var_x117 - 0.22004581682908866 * var_x120 + var_x120 * var_x270 - var_x116 * var_x268 - var_x116 * var_x269 - var_x118 * var_x265 - var_x122 * var_x270; - IJth(rJacobian, 1, 23) = var_x133; - IJth(rJacobian, 23, 23) = -14.98 - var_x271 + 14.880000000000001 * var_chaste_interface__Ca_handling_by_the_SR__O_Calse; + IJth(rJacobian, 0, 22) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x73 * (2.786 * var_x133 + 0.10305599999999999 * var_x126 - 53.0789018209707 * var_x129 - 0.10305599999999999 * var_x132 + var_x129 * var_x130 - var_x121 * var_x125 - var_x127 * var_x21 - var_x127 * var_x23 - var_x130 * var_x131)); + IJth(rJacobian, 16, 22) = 0.00025430516916416572 * var_x132 - 0.00025430516916416572 * var_x126; + IJth(rJacobian, 17, 22) = 0.043659884291485852 * var_x129 + 0.00016953677944277714 * var_x126 - 0.0022916155659426776 * var_x133 - 0.00016953677944277714 * var_x132 + var_x125 * var_x284 + var_x125 * var_x285 + var_x131 * var_x286 - var_x127 * var_x276 - var_x129 * var_x286; + IJth(rJacobian, 22, 22) = 0.011549742452351092 * var_x133 + 0.00085446536839159674 * var_x132 - 0.00085446536839159674 * var_x126 - 0.22004581682908866 * var_x129 + var_x129 * var_x294 - var_x125 * var_x292 - var_x125 * var_x293 - var_x127 * var_x289 - var_x131 * var_x294; + IJth(rJacobian, 1, 23) = var_x142; + IJth(rJacobian, 23, 23) = -14.98 - var_x295 + 14.880000000000001 * var_chaste_interface__Ca_handling_by_the_SR__O_Calse; IJth(rJacobian, 24, 23) = 0.011085915847820609; IJth(rJacobian, 25, 23) = 0.47999999999999998 - 0.47999999999999998 * var_chaste_interface__Ca_handling_by_the_SR__O_Calse; - IJth(rJacobian, 1, 24) = 1.7754934097947219e-10 * var_x128 + 0.00078910818213098765 * var_x127; + IJth(rJacobian, 1, 24) = 1.7754934097947219e-10 * var_x137 + 0.00078910818213098765 * var_x136; IJth(rJacobian, 23, 24) = 0.099999999999999992; - IJth(rJacobian, 24, 24) = -0.011085915847820609 - 2.6321499680605046e-9 * var_x128 - 0.011698444302491135 * var_x127; + IJth(rJacobian, 24, 24) = -0.011085915847820609 - 2.6321499680605046e-9 * var_x137 - 0.011698444302491135 * var_x136; IJth(rJacobian, 23, 25) = 12.4 + 14.880000000000001 * var_chaste_interface__Ca_handling_by_the_SR__Ca_rel; IJth(rJacobian, 25, 25) = -0.40000000000000002 - 0.47999999999999998 * var_chaste_interface__Ca_handling_by_the_SR__Ca_rel; - IJth(rJacobian, 26, 26) = -var_x282 - var_x284; - IJth(rJacobian, 27, 26) = var_x282 + var_x284; - IJth(rJacobian, 1, 27) = var_x137 * var_x138 - var_x137 * var_x139; - IJth(rJacobian, 23, 27) = var_x139 * var_x272 - var_x138 * var_x272; - IJth(rJacobian, 27, 27) = -0.033960000000000004 - var_x287; - IJth(rJacobian, 28, 27) = 0.033960000000000004 + var_x287; + IJth(rJacobian, 26, 26) = -var_x306 - var_x308; + IJth(rJacobian, 27, 26) = var_x306 + var_x308; + IJth(rJacobian, 1, 27) = var_x146 * var_x147 - var_x146 * var_x148; + IJth(rJacobian, 23, 27) = var_x148 * var_x296 - var_x147 * var_x296; + IJth(rJacobian, 27, 27) = -0.033960000000000004 - var_x311; + IJth(rJacobian, 28, 27) = 0.033960000000000004 + var_x311; IJth(rJacobian, 26, 28) = 0.00081499999999999997; IJth(rJacobian, 28, 28) = -0.00081499999999999997; } diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/dynamic_Shannon2004.cpp b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/dynamic_Shannon2004.cpp index 335cb8e3..1d136c6f 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/dynamic_Shannon2004.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/dynamic_Shannon2004.cpp @@ -1095,27 +1095,27 @@ bool Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::registered = Mo const double var_x250 = 0.23799999999999999 + 34 * var_chaste_interface__Ca_buffer__Cai; const double var_x251 = 13.800000000000001 * var_chaste_interface__Ca_buffer__Cai; const double var_x252 = 0.059999999999999998 + 100 * var_chaste_interface__Ca_buffer__Cai; - const double var_x253 = exp(0.14705882352941177 * NV_Ith_S(mParameters, 16) - 0.14705882352941177 * var_chaste_interface__cell__V); + const double var_x253 = exp(-11.764705882352942 + 0.14705882352941177 * NV_Ith_S(mParameters, 16) - 0.14705882352941177 * var_chaste_interface__cell__V); const double var_x254 = var_chaste_interface__cell__V < -40; - const double var_x255 = ((var_x254) ? (1.0495108254269646e-6 * var_x253) : (0)); + const double var_x255 = ((var_x254) ? (0.13500000000000001 * var_x253) : (0)); const double var_x256 = exp(0.34999999999999998 * var_chaste_interface__cell__V - 0.34999999999999998 * NV_Ith_S(mParameters, 16)); const double var_x257 = exp(0.079000000000000001 * var_chaste_interface__cell__V - 0.079000000000000001 * NV_Ith_S(mParameters, 16)); - const double var_x258 = exp(0.0900900900900901 * NV_Ith_S(mParameters, 16) - 0.0900900900900901 * var_chaste_interface__cell__V); - const double var_x259 = 1 + 0.38275493141491301 * var_x258; + const double var_x258 = exp(-0.96036036036036043 + 0.0900900900900901 * NV_Ith_S(mParameters, 16) - 0.0900900900900901 * var_chaste_interface__cell__V); + const double var_x259 = 1 + var_x258; const double var_x260 = ((var_x254) ? (310000 * var_x256 + 3.5600000000000001 * var_x257) : (7.6923076923076916 / var_x259)); const double var_x261 = var_x255 + var_x260; - const double var_x262 = ((var_x254) ? (-1.5433982726867125e-7 * var_x253) : (0)); + const double var_x262 = ((var_x254) ? (-0.019852941176470591 * var_x253) : (0)); const double var_x263 = var_x255 + var_x260; const double var_x264 = 0.01 * NV_Ith_S(mParameters, 15); const double var_x265 = 1 - var_x264; const double var_x266 = var_x265 / var_x263; - const double var_x267 = ((var_x254) ? (0.28123999999999999 * var_x257 + 108500 * var_x256) : (0.26524943271996743 * var_x258 / pow(var_x259, 2))); - const double var_x268 = exp(0.13780000000000001 * NV_Ith_S(mParameters, 16) - 0.13780000000000001 * var_chaste_interface__cell__V); - const double var_x269 = 1 + 0.0039608683399042569 * var_x268; + const double var_x267 = ((var_x254) ? (0.28123999999999999 * var_x257 + 108500 * var_x256) : (0.693000693000693 * var_x258 / pow(var_x259, 2))); + const double var_x268 = exp(-5.5312920000000005 + 0.13780000000000001 * NV_Ith_S(mParameters, 16) - 0.13780000000000001 * var_chaste_interface__cell__V); + const double var_x269 = 1 + var_x268; const double var_x270 = exp(0.01052 * NV_Ith_S(mParameters, 16) - 0.01052 * var_chaste_interface__cell__V); const double var_x271 = var_x270 / var_x269; - const double var_x272 = exp(-var_x84 + 0.10000000000000001 * NV_Ith_S(mParameters, 16)); - const double var_x273 = 1 + 0.040762203978366211 * var_x272; + const double var_x272 = exp(-3.2000000000000002 - var_x84 + 0.10000000000000001 * NV_Ith_S(mParameters, 16)); + const double var_x273 = 1 + var_x272; const double var_x274 = exp(2.5349999999999999e-7 * NV_Ith_S(mParameters, 16) - 2.5349999999999999e-7 * var_chaste_interface__cell__V); const double var_x275 = var_x274 / var_x273; const double var_x276 = ((var_x254) ? (0.1212 * var_x271) : (0.29999999999999999 * var_x275)); @@ -1123,187 +1123,188 @@ bool Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::registered = Mo const double var_x278 = exp(0.24440000000000001 * var_chaste_interface__cell__V - 0.24440000000000001 * NV_Ith_S(mParameters, 16)); const double var_x279 = exp(0.043909999999999998 * NV_Ith_S(mParameters, 16) - 0.043909999999999998 * var_chaste_interface__cell__V); const double var_x280 = -127140 * var_x278 - 3.4740000000000003e-5 * var_x279; - const double var_x281 = exp(0.311 * var_chaste_interface__cell__V - 0.311 * NV_Ith_S(mParameters, 16)); - const double var_x282 = 1 / (1 + 50262745825.953949 * var_x281); - const double var_x283 = var_x280 * var_x282; - const double var_x284 = ((var_x254) ? (var_x277 * var_x283) : (0)); - const double var_x285 = var_x276 + var_x284; - const double var_x286 = ((var_x254) ? (var_x283 + var_x277 * var_x282 * (1.5254334000000001e-6 * var_x279 - 31073.016 * var_x278) - 6.1874852813833003e-12 * var_x277 * var_x280 * var_x281 / pow((1.989545106554116e-11 + var_x281), 2)) : (0)); - const double var_x287 = var_x276 + var_x284; - const double var_x288 = var_x265 / var_x287; - const double var_x289 = ((var_x254) ? (-0.001275024 * var_x271 + 6.6151888057343371e-5 * var_x268 * var_x270 / pow(var_x269, 2)) : (-7.6049999999999996e-8 * var_x275 + 0.0012228661193509863 * var_x272 * var_x274 / pow(var_x273, 2))); - const double var_x290 = exp(-4.7130000000000001 - var_x84); - const double var_x291 = 1 - var_x290; - const double var_x292 = 1 / var_x291; - const double var_x293 = exp(-0.090909090909090912 * var_chaste_interface__cell__V); - const double var_x294 = 47.130000000000003 + var_chaste_interface__cell__V; - const double var_x295 = 0.32000000000000001 * var_x292; - const double var_x296 = 0.080000000000000002 * var_x293 + var_x294 * var_x295; - const double var_x297 = 1 / var_x296; - const double var_x298 = 0.032000000000000001 * var_x290 * var_x294 / pow(var_x291, 2); - const double var_x299 = var_x298 + 0.0072727272727272727 * var_x293 - 0.32000000000000001 * var_x292; - const double var_x300 = var_x292 * var_x294; - const double var_x301 = exp(-6.666666666666667 - 0.13333333333333333 * var_chaste_interface__cell__V); - const double var_x302 = 1 + var_x301; - const double var_x303 = exp(1.45 + 0.14499999999999999 * var_chaste_interface__cell__V); - const double var_x304 = -1 + var_x303; - const double var_x305 = 1 / var_x304; - const double var_x306 = exp(-0.86099999999999999 - 0.123 * var_chaste_interface__cell__V); - const double var_x307 = 1 - var_x306; - const double var_x308 = 1 / var_x307; - const double var_x309 = 7 + var_chaste_interface__cell__V; - const double var_x310 = 10 + var_chaste_interface__cell__V; - const double var_x311 = 0.00060999999999999997 * var_x305 * var_x310 + 0.0013799999999999999 * var_x308 * var_x309; - const double var_x312 = exp(0.089820359281437126 - 0.059880239520958084 * var_chaste_interface__cell__V); - const double var_x313 = 1 + var_x312; - const double var_x314 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__cell__V); - const double var_x315 = -1 + var_x314; - const double var_x316 = 1 / var_x315; - const double var_x317 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__cell__V); - const double var_x318 = 1 - var_x317; - const double var_x319 = 1 / var_x318; - const double var_x320 = 30 + var_chaste_interface__cell__V; - const double var_x321 = 0.00013100000000000001 * var_x316 * var_x320 + 7.1899999999999999e-5 * var_x319 * var_x320; - const double var_x322 = 0.20000000000000001 + 0.066666666666666666 * var_chaste_interface__cell__V; - const double var_x323 = exp(var_x322); - const double var_x324 = 1 + var_x323; - const double var_x325 = 1 / var_x324; - const double var_x326 = 1 / (0.5 + 9 * var_x325); - const double var_x327 = exp(-var_x322); - const double var_x328 = 1 + var_x327; - const double var_x329 = 0.066666666666666666 * var_x327 / pow(var_x328, 2); - const double var_x330 = -1 / var_x328; - const double var_x331 = 0.10000000000000001 * var_chaste_interface__cell__V; - const double var_x332 = exp(6 + var_x331); - const double var_x333 = 1 + var_x332; - const double var_x334 = 1 / var_x333; - const double var_x335 = 1 / (30 + 3000 * var_x334); - const double var_x336 = exp(3.3500000000000001 + var_x331); - const double var_x337 = 1 + var_x336; - const double var_x338 = pow(var_x337, (-2)); - const double var_x339 = 0.10000000000000001 * var_x336 * var_x338; - const double var_x340 = pow(var_x333, (-2)); - const double var_x341 = 1 / var_x337; - const double var_x342 = -var_x341; - const double var_x343 = 1 / (220 + 2800 * var_x334); - const double var_x344 = exp(-0.0011111111111111111 * pow(var_chaste_interface__cell__V, 2)); - const double var_x345 = 1 / (1.5 + 3.5 * var_x344); - const double var_x346 = 1 / (20 + 20 * var_x341); - const double var_x347 = exp(-2.4166666666666665 - 0.16666666666666666 * var_chaste_interface__cell__V); - const double var_x348 = 1 - var_x347; - const double var_x349 = 1 / var_x348; - const double var_x350 = 1 + var_x347; - const double var_x351 = 1 / var_x350; - const double var_x352 = -var_chaste_interface__ICaL_d_gate__d + var_x351; - const double var_x353 = 14.5 + var_chaste_interface__cell__V; - const double var_x354 = 0.0058333333333333336 * var_x347 * var_x353; - const double var_x355 = 0.019699999999999999 * exp(-0.23877882250000002 * pow((1 + 0.068965517241379309 * var_chaste_interface__cell__V), 2)); - const double var_x356 = 0.02 + var_x355; - const double var_x357 = exp(9.7388888888888889 + 0.27777777777777779 * var_chaste_interface__cell__V); - const double var_x358 = 1 + var_x357; - const double var_x359 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__cell__V); - const double var_x360 = 1 + var_x359; - const double var_x361 = 1 / var_chaste_interface__Ca_buffer__Ca_SR; - const double var_x362 = pow(var_x361, 2.5); - const double var_x363 = 1 + 0.13584112963311223 * var_x362; - const double var_x364 = 1 / var_x363; - const double var_x365 = 7.5 - 7 * var_x364; - const double var_x366 = -var_x365; - const double var_x367 = 1 / (15 - 14 * var_x364); - const double var_x368 = 10 * var_x225 * var_x367; - const double var_x369 = pow(var_x363, (-2)); - const double var_x370 = var_x361 * var_x362 * var_x369; - const double var_x371 = 0.21130842387373014 * var_x225 * var_x370 / pow((1 - 0.93333333333333335 * var_x364), 2); - const double var_x372 = var_x371 * var_chaste_interface__Jrel_SR__R; - const double var_x373 = 20 * var_x367; - const double var_x374 = var_x373 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R; - const double var_x375 = 2.3772197685794643 * var_x370 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__O; - const double var_x376 = 1 - var_chaste_interface__Jrel_SR__I - var_chaste_interface__Jrel_SR__O - var_chaste_interface__Jrel_SR__R; - const double var_x377 = M_PI * var_x23; - const double var_x378 = 62.109246076532294 * var_x377; - const double var_x379 = var_x378 * NV_Ith_S(mParameters, 3); - const double var_x380 = var_x377 * NV_Ith_S(mParameters, 3); - const double var_x381 = var_x20 * var_x380; - const double var_x382 = 55.277229008113743 * var_x163; - const double var_x383 = var_x166 * var_x380; - const double var_x384 = var_x100 * var_x102; - const double var_x385 = M_PI * var_x44; - const double var_x386 = var_x385 * NV_Ith_S(mParameters, 3); - const double var_x387 = 4.1923741101659298e-8 * var_x386; - const double var_x388 = var_x150 * var_x387; - const double var_x389 = var_x100 * var_x186; - const double var_x390 = 0.0001 * var_chaste_interface__Na_buffer__Na_SL_buf; - const double var_x391 = 5.9492599172113663e-12 * var_x198; - const double var_x392 = 0.001 + 0.0001 * var_chaste_interface__Na_buffer__Na_SL; - const double var_x393 = var_x45 * var_x46; - const double var_x394 = var_x393 * var_x76; - const double var_x395 = 2435.6567088836191 * var_x377; - const double var_x396 = var_x395 * NV_Ith_S(mParameters, 3); - const double var_x397 = 267.92223797719811 * var_x161; - const double var_x398 = 1.4796614506467986e-5 * var_x386; - const double var_x399 = var_x159 * var_x398; - const double var_x400 = 0.0001 * var_chaste_interface__Na_buffer__Na_jct_buf; - const double var_x401 = 7.3530178752050587e-13 * var_x209; - const double var_x402 = 0.001 + 0.0001 * var_chaste_interface__Na_buffer__Na_jct; - const double var_x403 = var_x393 * var_x63; - const double var_x404 = 0.076376893524206985 * NV_Ith_S(mParameters, 3); - const double var_x405 = 100 * var_chaste_interface__Ca_buffer__Ca_Calsequestrin; - const double var_x406 = var_chaste_interface__Jrel_SR__O * NV_Ith_S(mParameters, 1); - const double var_x407 = var_x406 + 18.571428571428569 * NV_Ith_S(mParameters, 0); - const double var_x408 = 65 + 100 * var_chaste_interface__Ca_buffer__Ca_SR; - const double var_x409 = 31.054623038266147 * var_x377; - const double var_x410 = 5.5898321468879066 * var_x124 * var_x385; - const double var_x411 = 3.9661732781409111e-12 * var_x198; - const double var_x412 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_SL; - const double var_x413 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_SL; - const double var_x414 = 100 * var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x415 = 1.3 + var_x414; - const double var_x416 = 0.029999999999999999 + var_x414; - const double var_x417 = 1217.8283544418096 * var_x377; - const double var_x418 = 1972.8819341957317 * var_x385; - const double var_x419 = var_x146 * var_x418; - const double var_x420 = 4.9020119168033731e-13 * var_x209; - const double var_x421 = 68.627450980392155 * var_x406 + 1274.5098039215686 * NV_Ith_S(mParameters, 0); - const double var_x422 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_jct; - const double var_x423 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_jct; - const double var_x424 = 100 * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x425 = 1.3 + var_x424; - const double var_x426 = 0.029999999999999999 + var_x424; - const double var_x427 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol; - const double var_x428 = -2.5 + var_x427; - const double var_x429 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x430 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x431 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; - const double var_x432 = var_x427 + var_x430 + var_x431; - const double var_x433 = -2.5024999999999999 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; - const double var_x434 = -2.5490196078431375 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x435 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol; - const double var_x436 = -2.5 + var_x435; - const double var_x437 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; - const double var_x438 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; - const double var_x439 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; - const double var_x440 = var_x435 + var_x438 + var_x439; - const double var_x441 = -2.5024999999999999 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; - const double var_x442 = -2.5490196078431375 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; + const double var_x281 = exp(24.640530000000002 + 0.311 * var_chaste_interface__cell__V - 0.311 * NV_Ith_S(mParameters, 16)); + const double var_x282 = 1 + var_x281; + const double var_x283 = 1 / var_x282; + const double var_x284 = var_x280 * var_x283; + const double var_x285 = ((var_x254) ? (var_x277 * var_x284) : (0)); + const double var_x286 = var_x276 + var_x285; + const double var_x287 = ((var_x254) ? (var_x284 + var_x277 * var_x283 * (1.5254334000000001e-6 * var_x279 - 31073.016 * var_x278) - 0.311 * var_x277 * var_x280 * var_x281 / pow(var_x282, 2)) : (0)); + const double var_x288 = var_x276 + var_x285; + const double var_x289 = var_x265 / var_x288; + const double var_x290 = ((var_x254) ? (-0.001275024 * var_x271 + 0.016701360000000002 * var_x268 * var_x270 / pow(var_x269, 2)) : (-7.6049999999999996e-8 * var_x275 + 0.029999999999999999 * var_x272 * var_x274 / pow(var_x273, 2))); + const double var_x291 = exp(-4.7130000000000001 - var_x84); + const double var_x292 = 1 - var_x291; + const double var_x293 = 1 / var_x292; + const double var_x294 = exp(-0.090909090909090912 * var_chaste_interface__cell__V); + const double var_x295 = 47.130000000000003 + var_chaste_interface__cell__V; + const double var_x296 = 0.32000000000000001 * var_x293; + const double var_x297 = 0.080000000000000002 * var_x294 + var_x295 * var_x296; + const double var_x298 = 1 / var_x297; + const double var_x299 = 0.032000000000000001 * var_x291 * var_x295 / pow(var_x292, 2); + const double var_x300 = var_x299 + 0.0072727272727272727 * var_x294 - 0.32000000000000001 * var_x293; + const double var_x301 = var_x293 * var_x295; + const double var_x302 = exp(-6.666666666666667 - 0.13333333333333333 * var_chaste_interface__cell__V); + const double var_x303 = 1 + var_x302; + const double var_x304 = exp(1.45 + 0.14499999999999999 * var_chaste_interface__cell__V); + const double var_x305 = -1 + var_x304; + const double var_x306 = 1 / var_x305; + const double var_x307 = exp(-0.86099999999999999 - 0.123 * var_chaste_interface__cell__V); + const double var_x308 = 1 - var_x307; + const double var_x309 = 1 / var_x308; + const double var_x310 = 7 + var_chaste_interface__cell__V; + const double var_x311 = 10 + var_chaste_interface__cell__V; + const double var_x312 = 0.00060999999999999997 * var_x306 * var_x311 + 0.0013799999999999999 * var_x309 * var_x310; + const double var_x313 = exp(0.089820359281437126 - 0.059880239520958084 * var_chaste_interface__cell__V); + const double var_x314 = 1 + var_x313; + const double var_x315 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__cell__V); + const double var_x316 = -1 + var_x315; + const double var_x317 = 1 / var_x316; + const double var_x318 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__cell__V); + const double var_x319 = 1 - var_x318; + const double var_x320 = 1 / var_x319; + const double var_x321 = 30 + var_chaste_interface__cell__V; + const double var_x322 = 0.00013100000000000001 * var_x317 * var_x321 + 7.1899999999999999e-5 * var_x320 * var_x321; + const double var_x323 = 0.20000000000000001 + 0.066666666666666666 * var_chaste_interface__cell__V; + const double var_x324 = exp(var_x323); + const double var_x325 = 1 + var_x324; + const double var_x326 = 1 / var_x325; + const double var_x327 = 1 / (0.5 + 9 * var_x326); + const double var_x328 = exp(-var_x323); + const double var_x329 = 1 + var_x328; + const double var_x330 = 0.066666666666666666 * var_x328 / pow(var_x329, 2); + const double var_x331 = -1 / var_x329; + const double var_x332 = 0.10000000000000001 * var_chaste_interface__cell__V; + const double var_x333 = exp(6 + var_x332); + const double var_x334 = 1 + var_x333; + const double var_x335 = 1 / var_x334; + const double var_x336 = 1 / (30 + 3000 * var_x335); + const double var_x337 = exp(3.3500000000000001 + var_x332); + const double var_x338 = 1 + var_x337; + const double var_x339 = pow(var_x338, (-2)); + const double var_x340 = 0.10000000000000001 * var_x337 * var_x339; + const double var_x341 = pow(var_x334, (-2)); + const double var_x342 = 1 / var_x338; + const double var_x343 = -var_x342; + const double var_x344 = 1 / (220 + 2800 * var_x335); + const double var_x345 = exp(-0.0011111111111111111 * pow(var_chaste_interface__cell__V, 2)); + const double var_x346 = 1 / (1.5 + 3.5 * var_x345); + const double var_x347 = 1 / (20 + 20 * var_x342); + const double var_x348 = exp(-2.4166666666666665 - 0.16666666666666666 * var_chaste_interface__cell__V); + const double var_x349 = 1 - var_x348; + const double var_x350 = 1 / var_x349; + const double var_x351 = 1 + var_x348; + const double var_x352 = 1 / var_x351; + const double var_x353 = -var_chaste_interface__ICaL_d_gate__d + var_x352; + const double var_x354 = 14.5 + var_chaste_interface__cell__V; + const double var_x355 = 0.0058333333333333336 * var_x348 * var_x354; + const double var_x356 = 0.019699999999999999 * exp(-0.23877882250000002 * pow((1 + 0.068965517241379309 * var_chaste_interface__cell__V), 2)); + const double var_x357 = 0.02 + var_x356; + const double var_x358 = exp(9.7388888888888889 + 0.27777777777777779 * var_chaste_interface__cell__V); + const double var_x359 = 1 + var_x358; + const double var_x360 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__cell__V); + const double var_x361 = 1 + var_x360; + const double var_x362 = 1 / var_chaste_interface__Ca_buffer__Ca_SR; + const double var_x363 = pow(var_x362, 2.5); + const double var_x364 = 1 + 0.13584112963311223 * var_x363; + const double var_x365 = 1 / var_x364; + const double var_x366 = 7.5 - 7 * var_x365; + const double var_x367 = -var_x366; + const double var_x368 = 1 / (15 - 14 * var_x365); + const double var_x369 = 10 * var_x225 * var_x368; + const double var_x370 = pow(var_x364, (-2)); + const double var_x371 = var_x362 * var_x363 * var_x370; + const double var_x372 = 0.21130842387373014 * var_x225 * var_x371 / pow((1 - 0.93333333333333335 * var_x365), 2); + const double var_x373 = var_x372 * var_chaste_interface__Jrel_SR__R; + const double var_x374 = 20 * var_x368; + const double var_x375 = var_x374 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R; + const double var_x376 = 2.3772197685794643 * var_x371 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__O; + const double var_x377 = 1 - var_chaste_interface__Jrel_SR__I - var_chaste_interface__Jrel_SR__O - var_chaste_interface__Jrel_SR__R; + const double var_x378 = M_PI * var_x23; + const double var_x379 = 62.109246076532294 * var_x378; + const double var_x380 = var_x379 * NV_Ith_S(mParameters, 3); + const double var_x381 = var_x378 * NV_Ith_S(mParameters, 3); + const double var_x382 = var_x20 * var_x381; + const double var_x383 = 55.277229008113743 * var_x163; + const double var_x384 = var_x166 * var_x381; + const double var_x385 = var_x100 * var_x102; + const double var_x386 = M_PI * var_x44; + const double var_x387 = var_x386 * NV_Ith_S(mParameters, 3); + const double var_x388 = 4.1923741101659298e-8 * var_x387; + const double var_x389 = var_x150 * var_x388; + const double var_x390 = var_x100 * var_x186; + const double var_x391 = 0.0001 * var_chaste_interface__Na_buffer__Na_SL_buf; + const double var_x392 = 5.9492599172113663e-12 * var_x198; + const double var_x393 = 0.001 + 0.0001 * var_chaste_interface__Na_buffer__Na_SL; + const double var_x394 = var_x45 * var_x46; + const double var_x395 = var_x394 * var_x76; + const double var_x396 = 2435.6567088836191 * var_x378; + const double var_x397 = var_x396 * NV_Ith_S(mParameters, 3); + const double var_x398 = 267.92223797719811 * var_x161; + const double var_x399 = 1.4796614506467986e-5 * var_x387; + const double var_x400 = var_x159 * var_x399; + const double var_x401 = 0.0001 * var_chaste_interface__Na_buffer__Na_jct_buf; + const double var_x402 = 7.3530178752050587e-13 * var_x209; + const double var_x403 = 0.001 + 0.0001 * var_chaste_interface__Na_buffer__Na_jct; + const double var_x404 = var_x394 * var_x63; + const double var_x405 = 0.076376893524206985 * NV_Ith_S(mParameters, 3); + const double var_x406 = 100 * var_chaste_interface__Ca_buffer__Ca_Calsequestrin; + const double var_x407 = var_chaste_interface__Jrel_SR__O * NV_Ith_S(mParameters, 1); + const double var_x408 = var_x407 + 18.571428571428569 * NV_Ith_S(mParameters, 0); + const double var_x409 = 65 + 100 * var_chaste_interface__Ca_buffer__Ca_SR; + const double var_x410 = 31.054623038266147 * var_x378; + const double var_x411 = 5.5898321468879066 * var_x124 * var_x386; + const double var_x412 = 3.9661732781409111e-12 * var_x198; + const double var_x413 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_SL; + const double var_x414 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_SL; + const double var_x415 = 100 * var_chaste_interface__Ca_buffer__Ca_SL; + const double var_x416 = 1.3 + var_x415; + const double var_x417 = 0.029999999999999999 + var_x415; + const double var_x418 = 1217.8283544418096 * var_x378; + const double var_x419 = 1972.8819341957317 * var_x386; + const double var_x420 = var_x146 * var_x419; + const double var_x421 = 4.9020119168033731e-13 * var_x209; + const double var_x422 = 68.627450980392155 * var_x407 + 1274.5098039215686 * NV_Ith_S(mParameters, 0); + const double var_x423 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_jct; + const double var_x424 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_jct; + const double var_x425 = 100 * var_chaste_interface__Ca_buffer__Ca_jct; + const double var_x426 = 1.3 + var_x425; + const double var_x427 = 0.029999999999999999 + var_x425; + const double var_x428 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol; + const double var_x429 = -2.5 + var_x428; + const double var_x430 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; + const double var_x431 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; + const double var_x432 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; + const double var_x433 = var_x428 + var_x431 + var_x432; + const double var_x434 = -2.5024999999999999 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; + const double var_x435 = -2.5490196078431375 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; + const double var_x436 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol; + const double var_x437 = -2.5 + var_x436; + const double var_x438 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; + const double var_x439 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; + const double var_x440 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; + const double var_x441 = var_x436 + var_x439 + var_x440; + const double var_x442 = -2.5024999999999999 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; + const double var_x443 = -2.5490196078431375 + 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; // Matrix entries IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (-0.00054830000000000005 + var_x145 + var_x147 - var_x126 - var_x132 - var_x140 - var_x142 - var_x154 - var_x160 - NV_Ith_S(mParameters, 13) - 0.11 * var_x10 - 0.11 * var_x64 - 0.89000000000000001 * var_x14 - 0.89000000000000001 * var_x77 - 0.15619500000000003 * var_x112 - 1 * var_x21 - 0.01205875 / var_x1 - 0.019305000000000003 * var_x115 - 0.097566250000000007 / var_x3 - 0.21009999999999998 * var_x91 - 1.6999 * var_x94 - var_x106 * var_x108 - var_x4 * var_chaste_interface__Itof_X_gate__X_tof + var_x5 * NV_Ith_S(mParameters, 21) * var_chaste_interface__Itos_X_gate__X_tos - var_x15 * var_x18 * NV_Ith_S(mParameters, 19) * var_chaste_interface__IKr_Xr_gate__Xr - 9.1125000000000004e-8 * var_x107 * var_x133 * var_x137 * NV_Ith_S(mParameters, 5) - 0.4389381125701739 * var_x15 * var_x28 * var_x36 * NV_Ith_S(mParameters, 18) - 0.42189361069797565 * var_x28 * var_x80 * (-var_x31 * (0.061749999999999999 * var_x32 + 0.039456396800000001 * var_x33) + 0.24326999999999999 * var_x26 * var_x78 - 0.51429999999999998 * var_x29 * var_x34 / pow(var_x30, 2)) * NV_Ith_S(mParameters, 18) / pow((var_x28 + 0.98039215686274506 * var_x35), 2) + 0.10468673984798647 * var_x15 * var_x26 * var_x36 * var_x78 * var_x79 * NV_Ith_S(mParameters, 18) + 0.019211226915711394 * var_x15 * var_x16 * var_x79 * NV_Ith_S(mParameters, 19) * var_chaste_interface__IKr_Xr_gate__Xr / pow(var_x17, 2) + 1.215e-7 * var_x101 * var_x107 * var_x134 * var_x135 * var_x136 * var_x138 * var_x95 * var_x97 * var_chaste_interface__ICaL_d_gate__d * var_chaste_interface__ICaL_f_gate__f * var_chaste_interface__cell__V); IJth(rJacobian, 2, 0) = var_x261 * (var_x262 * var_x266 + var_x255 * var_x265 * (-var_x262 - var_x267) / pow(var_x263, 2)) + (var_x262 + var_x267) * (var_x264 - var_chaste_interface__INa_h_gate__h + var_x255 * var_x266); - IJth(rJacobian, 3, 0) = var_x285 * (var_x286 * var_x288 + var_x265 * var_x284 * (-var_x286 - var_x289) / pow(var_x287, 2)) + (var_x286 + var_x289) * (var_x264 - var_chaste_interface__INa_j_gate__j + var_x284 * var_x288); - IJth(rJacobian, 4, 0) = var_x296 * (var_x295 * var_x297 - var_x297 * var_x298 + 3.125 * var_x299 * var_x300 / pow((var_x300 + 0.25 * var_x293), 2)) - var_x299 * (-var_chaste_interface__INa_m_gate__m + 0.32000000000000001 * var_x292 * var_x294 * var_x297); - IJth(rJacobian, 5, 0) = (-var_chaste_interface__IKr_Xr_gate__Xr + 1 / var_x302) * (0.00060999999999999997 * var_x305 + 0.0013799999999999999 * var_x308 - 0.00016973999999999998 * var_x306 * var_x309 / pow(var_x307, 2) - 8.8449999999999995e-5 * var_x303 * var_x310 / pow(var_x304, 2)) + 0.13333333333333333 * var_x301 * var_x311 / pow(var_x302, 2); - IJth(rJacobian, 6, 0) = (-var_chaste_interface__IKs_Xs_gate__Xs + 1 / var_x313) * (0.00013100000000000001 * var_x316 + 7.1899999999999999e-5 * var_x319 - 8.9997000000000013e-6 * var_x314 * var_x320 / pow(var_x315, 2) - 1.0641199999999999e-5 * var_x317 * var_x320 / pow(var_x318, 2)) + 0.059880239520958084 * var_x312 * var_x321 / pow(var_x313, 2); - IJth(rJacobian, 7, 0) = var_x326 * var_x329 + 0.0074074074074074077 * var_x323 * (-var_x330 - var_chaste_interface__Itos_X_gate__X_tos) / (pow(var_x324, 2) * pow((0.055555555555555552 + var_x325), 2)); - IJth(rJacobian, 8, 0) = -var_x335 * var_x339 + 3.3333333333333335e-5 * var_x332 * var_x340 * (-var_x342 - var_chaste_interface__Itos_Y_gate__Y_tos) / pow((0.01 + var_x334), 2); - IJth(rJacobian, 9, 0) = -var_x339 * var_x343 + 3.5714285714285717e-5 * var_x332 * var_x340 * (-var_x342 - var_chaste_interface__Itos_R_gate__R_tos) / pow((0.07857142857142857 + var_x334), 2); - IJth(rJacobian, 10, 0) = var_x329 * var_x345 + 0.00063492063492063492 * var_x344 * (-var_x330 - var_chaste_interface__Itof_X_gate__X_tof) * var_chaste_interface__cell__V / pow((0.42857142857142855 + var_x344), 2); - IJth(rJacobian, 11, 0) = -var_x339 * var_x346 + 0.0050000000000000001 * var_x336 * var_x338 * (-var_x342 - var_chaste_interface__Itof_Y_gate__Y_tof) / pow((1 + var_x341), 2); - IJth(rJacobian, 12, 0) = -var_x349 * var_x352 * var_x354 + 0.035000000000000003 * var_x349 * var_x350 * var_x352 - var_x350 * var_x352 * var_x354 / pow(var_x348, 2) + 0.0058333333333333336 * var_x347 * var_x349 * var_x351 * var_x353; - IJth(rJacobian, 13, 0) = var_x356 * (0.029999999999999999 * var_x359 / pow(var_x360, 2) - 0.27777777777777779 * var_x357 / pow(var_x358, 2)) + var_x355 * (-0.032935010000000001 - 0.0022713799999999999 * var_chaste_interface__cell__V) * (-var_chaste_interface__ICaL_f_gate__f + 1 / var_x358 + 0.59999999999999998 / var_x360); - IJth(rJacobian, 19, 0) = -var_x379 * (0.00026433000000000001 + var_x154 + var_x205 + 2.6699999999999999 * var_x77 + 5.0996999999999995 * var_x94 + 0.46858500000000003 * var_x112); - IJth(rJacobian, 20, 0) = -var_x396 * (3.2670000000000004e-5 + var_x160 + var_x214 + 0.33000000000000002 * var_x64 + 0.63029999999999997 * var_x91 + 0.057915000000000008 * var_x115); - IJth(rJacobian, 25, 0) = -var_x409 * (0.00022365699999999999 + var_x126 + var_x142 - var_x145 - 1.78 * var_x77 - 0.31239000000000006 * var_x112); - IJth(rJacobian, 26, 0) = -var_x417 * (2.7642999999999999e-5 + var_x132 + var_x140 - var_x147 - 0.22 * var_x64 - 0.038610000000000005 * var_x115); + IJth(rJacobian, 3, 0) = var_x286 * (var_x287 * var_x289 + var_x265 * var_x285 * (-var_x287 - var_x290) / pow(var_x288, 2)) + (var_x287 + var_x290) * (var_x264 - var_chaste_interface__INa_j_gate__j + var_x285 * var_x289); + IJth(rJacobian, 4, 0) = var_x297 * (var_x296 * var_x298 - var_x298 * var_x299 + 3.125 * var_x300 * var_x301 / pow((var_x301 + 0.25 * var_x294), 2)) - var_x300 * (-var_chaste_interface__INa_m_gate__m + 0.32000000000000001 * var_x293 * var_x295 * var_x298); + IJth(rJacobian, 5, 0) = (-var_chaste_interface__IKr_Xr_gate__Xr + 1 / var_x303) * (0.00060999999999999997 * var_x306 + 0.0013799999999999999 * var_x309 - 0.00016973999999999998 * var_x307 * var_x310 / pow(var_x308, 2) - 8.8449999999999995e-5 * var_x304 * var_x311 / pow(var_x305, 2)) + 0.13333333333333333 * var_x302 * var_x312 / pow(var_x303, 2); + IJth(rJacobian, 6, 0) = (-var_chaste_interface__IKs_Xs_gate__Xs + 1 / var_x314) * (0.00013100000000000001 * var_x317 + 7.1899999999999999e-5 * var_x320 - 8.9997000000000013e-6 * var_x315 * var_x321 / pow(var_x316, 2) - 1.0641199999999999e-5 * var_x318 * var_x321 / pow(var_x319, 2)) + 0.059880239520958084 * var_x313 * var_x322 / pow(var_x314, 2); + IJth(rJacobian, 7, 0) = var_x327 * var_x330 + 0.0074074074074074077 * var_x324 * (-var_x331 - var_chaste_interface__Itos_X_gate__X_tos) / (pow(var_x325, 2) * pow((0.055555555555555552 + var_x326), 2)); + IJth(rJacobian, 8, 0) = -var_x336 * var_x340 + 3.3333333333333335e-5 * var_x333 * var_x341 * (-var_x343 - var_chaste_interface__Itos_Y_gate__Y_tos) / pow((0.01 + var_x335), 2); + IJth(rJacobian, 9, 0) = -var_x340 * var_x344 + 3.5714285714285717e-5 * var_x333 * var_x341 * (-var_x343 - var_chaste_interface__Itos_R_gate__R_tos) / pow((0.07857142857142857 + var_x335), 2); + IJth(rJacobian, 10, 0) = var_x330 * var_x346 + 0.00063492063492063492 * var_x345 * (-var_x331 - var_chaste_interface__Itof_X_gate__X_tof) * var_chaste_interface__cell__V / pow((0.42857142857142855 + var_x345), 2); + IJth(rJacobian, 11, 0) = -var_x340 * var_x347 + 0.0050000000000000001 * var_x337 * var_x339 * (-var_x343 - var_chaste_interface__Itof_Y_gate__Y_tof) / pow((1 + var_x342), 2); + IJth(rJacobian, 12, 0) = -var_x350 * var_x353 * var_x355 + 0.035000000000000003 * var_x350 * var_x351 * var_x353 - var_x351 * var_x353 * var_x355 / pow(var_x349, 2) + 0.0058333333333333336 * var_x348 * var_x350 * var_x352 * var_x354; + IJth(rJacobian, 13, 0) = var_x357 * (0.029999999999999999 * var_x360 / pow(var_x361, 2) - 0.27777777777777779 * var_x358 / pow(var_x359, 2)) + var_x356 * (-0.032935010000000001 - 0.0022713799999999999 * var_chaste_interface__cell__V) * (-var_chaste_interface__ICaL_f_gate__f + 1 / var_x359 + 0.59999999999999998 / var_x361); + IJth(rJacobian, 19, 0) = -var_x380 * (0.00026433000000000001 + var_x154 + var_x205 + 2.6699999999999999 * var_x77 + 5.0996999999999995 * var_x94 + 0.46858500000000003 * var_x112); + IJth(rJacobian, 20, 0) = -var_x397 * (3.2670000000000004e-5 + var_x160 + var_x214 + 0.33000000000000002 * var_x64 + 0.63029999999999997 * var_x91 + 0.057915000000000008 * var_x115); + IJth(rJacobian, 25, 0) = -var_x410 * (0.00022365699999999999 + var_x126 + var_x142 - var_x145 - 1.78 * var_x77 - 0.31239000000000006 * var_x112); + IJth(rJacobian, 26, 0) = -var_x418 * (2.7642999999999999e-5 + var_x132 + var_x140 - var_x147 - 0.22 * var_x64 - 0.038610000000000005 * var_x115); IJth(rJacobian, 1, 1) = -7.2523935948689155 + var_x230 + var_x231 + var_x232 + var_x243 + var_x244 + 6.3492962168146398e-7 * var_x242 - 5029484.9869235931 * var_x233 * var_x240; IJth(rJacobian, 24, 1) = -1.1791550116941473e-5 * var_x242 + 93404721.185723871 * var_x233 * var_x237 * var_x238 * NV_Ith_S(mParameters, 2); IJth(rJacobian, 25, 1) = 5.6417918332397381; @@ -1312,123 +1313,123 @@ bool Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::registered = Mo IJth(rJacobian, 35, 1) = 0.81600000000000006 - var_x231; IJth(rJacobian, 36, 1) = 1.9320000000000004 - var_x244; IJth(rJacobian, 38, 1) = 1.71 - var_x232; - IJth(rJacobian, 39, 1) = -var_x428 * var_x429; - IJth(rJacobian, 42, 1) = -var_x436 * var_x437; + IJth(rJacobian, 39, 1) = -var_x429 * var_x430; + IJth(rJacobian, 42, 1) = -var_x437 * var_x438; IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x162 * var_x20 - var_x164 * var_x20); IJth(rJacobian, 2, 2) = -var_x261; - IJth(rJacobian, 19, 2) = -var_x381 * var_x382; - IJth(rJacobian, 20, 2) = -var_x381 * var_x397; + IJth(rJacobian, 19, 2) = -var_x382 * var_x383; + IJth(rJacobian, 20, 2) = -var_x382 * var_x398; IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x162 * var_x166 - var_x164 * var_x166); - IJth(rJacobian, 3, 3) = -var_x285; - IJth(rJacobian, 19, 3) = -var_x382 * var_x383; - IJth(rJacobian, 20, 3) = -var_x383 * var_x397; + IJth(rJacobian, 3, 3) = -var_x286; + IJth(rJacobian, 19, 3) = -var_x383 * var_x384; + IJth(rJacobian, 20, 3) = -var_x384 * var_x398; IJth(rJacobian, 0, 4) = mSetVoltageDerivativeToZero ? 0.0 : (-0.33000000000000002 * var_x168 - 2.6699999999999999 * var_x169); - IJth(rJacobian, 4, 4) = -var_x296; - IJth(rJacobian, 19, 4) = -165.83168702434122 * var_x169 * var_x380; - IJth(rJacobian, 20, 4) = -803.76671393159438 * var_x168 * var_x380; + IJth(rJacobian, 4, 4) = -var_x297; + IJth(rJacobian, 19, 4) = -165.83168702434122 * var_x169 * var_x381; + IJth(rJacobian, 20, 4) = -803.76671393159438 * var_x168 * var_x381; IJth(rJacobian, 0, 5) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x18 * var_x80 * NV_Ith_S(mParameters, 19)); - IJth(rJacobian, 5, 5) = -var_x311; + IJth(rJacobian, 5, 5) = -var_x312; IJth(rJacobian, 0, 6) = mSetVoltageDerivativeToZero ? 0.0 : (-0.22 * var_x172 * var_x8 - 1.78 * var_x13 * var_x172); - IJth(rJacobian, 6, 6) = -var_x321; + IJth(rJacobian, 6, 6) = -var_x322; IJth(rJacobian, 0, 7) = mSetVoltageDerivativeToZero ? 0.0 : (var_x5 * var_x79 * NV_Ith_S(mParameters, 21)); - IJth(rJacobian, 7, 7) = -var_x326; + IJth(rJacobian, 7, 7) = -var_x327; IJth(rJacobian, 0, 8) = mSetVoltageDerivativeToZero ? 0.0 : (var_x173 * var_x174); - IJth(rJacobian, 8, 8) = -var_x335; + IJth(rJacobian, 8, 8) = -var_x336; IJth(rJacobian, 0, 9) = mSetVoltageDerivativeToZero ? 0.0 : (var_x174 * (-0.5 * var_chaste_interface__cell__V + 0.5 * var_x22 * var_x23 * NV_Ith_S(mParameters, 11) * NV_Ith_S(mParameters, 23))); - IJth(rJacobian, 9, 9) = -var_x343; + IJth(rJacobian, 9, 9) = -var_x344; IJth(rJacobian, 0, 10) = mSetVoltageDerivativeToZero ? 0.0 : (var_x173 * var_x4); - IJth(rJacobian, 10, 10) = -var_x345; + IJth(rJacobian, 10, 10) = -var_x346; IJth(rJacobian, 0, 11) = mSetVoltageDerivativeToZero ? 0.0 : (var_x173 * NV_Ith_S(mParameters, 17) * var_chaste_interface__Itof_X_gate__X_tof); - IJth(rJacobian, 11, 11) = -var_x346; + IJth(rJacobian, 11, 11) = -var_x347; IJth(rJacobian, 0, 12) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x151 * var_x178 - var_x176 * var_x177 - var_x178 * var_x179 - var_x181 * var_x183 - var_x182 * var_x185); - IJth(rJacobian, 12, 12) = -0.035000000000000003 * var_x349 * var_x350 * var_x353; - IJth(rJacobian, 19, 12) = -var_x384 * var_x388; - IJth(rJacobian, 20, 12) = -var_x384 * var_x399; - IJth(rJacobian, 25, 12) = -var_x183 * var_x410; - IJth(rJacobian, 26, 12) = -var_x182 * var_x419; + IJth(rJacobian, 12, 12) = -0.035000000000000003 * var_x350 * var_x351 * var_x354; + IJth(rJacobian, 19, 12) = -var_x385 * var_x389; + IJth(rJacobian, 20, 12) = -var_x385 * var_x400; + IJth(rJacobian, 25, 12) = -var_x183 * var_x411; + IJth(rJacobian, 26, 12) = -var_x182 * var_x420; IJth(rJacobian, 0, 13) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x151 * var_x188 - var_x177 * var_x187 - var_x179 * var_x188 - var_x181 * var_x190 - var_x185 * var_x189); - IJth(rJacobian, 13, 13) = -var_x356; - IJth(rJacobian, 19, 13) = -var_x388 * var_x389; - IJth(rJacobian, 20, 13) = -var_x389 * var_x399; - IJth(rJacobian, 25, 13) = -var_x190 * var_x410; - IJth(rJacobian, 26, 13) = -var_x189 * var_x419; + IJth(rJacobian, 13, 13) = -var_x357; + IJth(rJacobian, 19, 13) = -var_x389 * var_x390; + IJth(rJacobian, 20, 13) = -var_x390 * var_x400; + IJth(rJacobian, 25, 13) = -var_x190 * var_x411; + IJth(rJacobian, 26, 13) = -var_x189 * var_x420; IJth(rJacobian, 0, 14) = mSetVoltageDerivativeToZero ? 0.0 : (1.2150000000000001e-8 * var_x192 + var_x120 * var_x181 + 6.7499999999999994e-10 * var_x149 * var_x191); IJth(rJacobian, 14, 14) = -0.011900000000000001 - 1.7 * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 19, 14) = var_x104 * var_x149 * var_x387; - IJth(rJacobian, 25, 14) = var_x120 * var_x410; + IJth(rJacobian, 19, 14) = var_x104 * var_x149 * var_x388; + IJth(rJacobian, 25, 14) = var_x120 * var_x411; IJth(rJacobian, 0, 15) = mSetVoltageDerivativeToZero ? 0.0 : (1.0935000000000001e-7 * var_x192 + 6.0749999999999998e-9 * var_x156 * var_x180 + var_x120 * var_x131 * var_x180); IJth(rJacobian, 15, 15) = -0.011900000000000001 - 1.7 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 20, 15) = var_x156 * var_x398; - IJth(rJacobian, 26, 15) = var_x120 * var_x130 * var_x418; - IJth(rJacobian, 16, 16) = -0.0050000000000000001 - var_x368 + var_x366 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 17, 16) = -var_x368; - IJth(rJacobian, 18, 16) = var_x368; + IJth(rJacobian, 20, 15) = var_x156 * var_x399; + IJth(rJacobian, 26, 15) = var_x120 * var_x130 * var_x419; + IJth(rJacobian, 16, 16) = -0.0050000000000000001 - var_x369 + var_x367 * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 17, 16) = -var_x369; + IJth(rJacobian, 18, 16) = var_x369; IJth(rJacobian, 16, 17) = -0.0050000000000000001; - IJth(rJacobian, 17, 17) = -0.065000000000000002 - var_x368; + IJth(rJacobian, 17, 17) = -0.065000000000000002 - var_x369; IJth(rJacobian, 18, 17) = 0.0050000000000000001; IJth(rJacobian, 16, 18) = 0.055; - IJth(rJacobian, 17, 18) = -var_x368 + var_x365 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 18, 18) = -0.059999999999999998 + var_x366 * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 17, 18) = -var_x369 + var_x366 * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 18, 18) = -0.059999999999999998 + var_x367 * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 24, 18) = (-var_chaste_interface__Ca_buffer__Ca_SR + var_chaste_interface__Ca_buffer__Ca_jct) * NV_Ith_S(mParameters, 1); IJth(rJacobian, 26, 18) = (68.627450980392155 * var_chaste_interface__Ca_buffer__Ca_SR - 68.627450980392155 * var_chaste_interface__Ca_buffer__Ca_jct) * NV_Ith_S(mParameters, 1); IJth(rJacobian, 0, 19) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x206 - 2.6699999999999999 * var_x201 - 0.00046442182911003347 * var_x203 - var_x196 * var_x199); - IJth(rJacobian, 19, 19) = (-2.5101556644976917 + var_x390 - var_x378 * (var_x206 + 8.0099999999999998 * var_x201 + 0.0013932654873301004 * var_x203 + var_x196 * var_x391)) * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 19, 19) = (-2.5101556644976917 + var_x391 - var_x379 * (var_x206 + 8.0099999999999998 * var_x201 + 0.0013932654873301004 * var_x203 + var_x196 * var_x392)) * NV_Ith_S(mParameters, 3); IJth(rJacobian, 20, 19) = 1.0879068612142859 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 21, 19) = 0.000165 - var_x390; - IJth(rJacobian, 23, 19) = var_x404; - IJth(rJacobian, 25, 19) = -var_x409 * (-5.3399999999999999 * var_x201 - var_x196 * var_x411); + IJth(rJacobian, 21, 19) = 0.000165 - var_x391; + IJth(rJacobian, 23, 19) = var_x405; + IJth(rJacobian, 25, 19) = -var_x410 * (-5.3399999999999999 * var_x201 - var_x196 * var_x412); IJth(rJacobian, 0, 20) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x215 - 0.33000000000000002 * var_x211 - 5.7400450788880541e-5 * var_x212 - var_x208 * var_x210); IJth(rJacobian, 19, 20) = 0.02774162496096429 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 20, 20) = (-1.0886629612142857 + var_x400 - var_x395 * (var_x215 + 0.98999999999999999 * var_x211 + 0.00017220135236664162 * var_x212 + var_x208 * var_x401)) * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 22, 20) = 0.0007561 - var_x400; - IJth(rJacobian, 26, 20) = -var_x417 * (-0.66000000000000003 * var_x211 - var_x208 * var_x420); - IJth(rJacobian, 19, 21) = var_x392 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 21, 21) = -var_x392; - IJth(rJacobian, 20, 22) = var_x402 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 22, 22) = -var_x402; + IJth(rJacobian, 20, 20) = (-1.0886629612142857 + var_x401 - var_x396 * (var_x215 + 0.98999999999999999 * var_x211 + 0.00017220135236664162 * var_x212 + var_x208 * var_x402)) * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 22, 20) = 0.0007561 - var_x401; + IJth(rJacobian, 26, 20) = -var_x418 * (-0.66000000000000003 * var_x211 - var_x208 * var_x421); + IJth(rJacobian, 19, 21) = var_x393 * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 21, 21) = -var_x393; + IJth(rJacobian, 20, 22) = var_x403 * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 22, 22) = -var_x403; IJth(rJacobian, 0, 23) = mSetVoltageDerivativeToZero ? 0.0 : (-0.0020162999999999999 * var_x10 * var_x216 - 0.0163137 * var_x14 * var_x216); IJth(rJacobian, 19, 23) = 2.4822490395367272 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 23, 23) = -var_x404; + IJth(rJacobian, 23, 23) = -var_x405; IJth(rJacobian, 1, 24) = 0.69232869146389786 * var_x246 + 8.7400597733819945e-14 * var_x247; - IJth(rJacobian, 16, 24) = -var_x372 + 2.3772197685794643 * var_x361 * var_x362 * var_x369 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R; - IJth(rJacobian, 17, 24) = -var_x375 + var_x371 * var_x376; - IJth(rJacobian, 18, 24) = var_x372 + var_x375; - IJth(rJacobian, 24, 24) = -260 + var_x405 - var_x407 - 1.6231539579137989e-12 * var_x247 - 12.857532841472388 * var_x246; - IJth(rJacobian, 26, 24) = var_x421; - IJth(rJacobian, 31, 24) = 260 - var_x405; + IJth(rJacobian, 16, 24) = -var_x373 + 2.3772197685794643 * var_x362 * var_x363 * var_x370 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R; + IJth(rJacobian, 17, 24) = -var_x376 + var_x372 * var_x377; + IJth(rJacobian, 18, 24) = var_x373 + var_x376; + IJth(rJacobian, 24, 24) = -260 + var_x406 - var_x408 - 1.6231539579137989e-12 * var_x247 - 12.857532841472388 * var_x246; + IJth(rJacobian, 26, 24) = var_x422; + IJth(rJacobian, 31, 24) = 260 - var_x406; IJth(rJacobian, 0, 25) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x224 - 4.4795166719999994e-11 * var_x219 - var_x199 * var_x221 - 0.0097566250000000014 * var_x217 / (pow(var_x3, 2) * pow(var_chaste_interface__Ca_buffer__Ca_SL, 2)) - 0.28183333333333332 * var_x11 * var_x2 * var_x218 / pow(var_x12, 2) + 0.89000000000000001 * var_x45 * var_x46 * var_x57 * var_x59 * var_x72 * var_x74 * NV_Ith_S(mParameters, 22)); IJth(rJacobian, 1, 25) = 0.17359359486891501; IJth(rJacobian, 14, 25) = 1.7 - 1.7 * var_chaste_interface__ICaL_fCa_gate__fCaB_SL; - IJth(rJacobian, 19, 25) = -var_x379 * (1.3438550016e-10 * var_x219 - 2.6699999999999999 * var_x394 + var_x221 * var_x391); - IJth(rJacobian, 25, 25) = -171.99023312516786 + var_x412 + var_x413 - var_x409 * (var_x224 + 1.78 * var_x394 - 8.9590333439999989e-11 * var_x219 - var_x221 * var_x411); + IJth(rJacobian, 19, 25) = -var_x380 * (1.3438550016e-10 * var_x219 - 2.6699999999999999 * var_x395 + var_x221 * var_x392); + IJth(rJacobian, 25, 25) = -171.99023312516786 + var_x413 + var_x414 - var_x410 * (var_x224 + 1.78 * var_x395 - 8.9590333439999989e-11 * var_x219 - var_x221 * var_x412); IJth(rJacobian, 26, 25) = 48.958482036396518; - IJth(rJacobian, 27, 25) = 121.55000000000001 - var_x412; - IJth(rJacobian, 29, 25) = 43.550000000000004 - var_x413; - IJth(rJacobian, 40, 25) = -var_x429 * var_x433; - IJth(rJacobian, 43, 25) = -var_x437 * var_x441; + IJth(rJacobian, 27, 25) = 121.55000000000001 - var_x413; + IJth(rJacobian, 29, 25) = 43.550000000000004 - var_x414; + IJth(rJacobian, 40, 25) = -var_x430 * var_x434; + IJth(rJacobian, 43, 25) = -var_x438 * var_x442; IJth(rJacobian, 0, 26) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x229 - 5.5364812799999996e-12 * var_x227 - var_x210 * var_x226 - 0.0012058750000000001 * var_x217 / (pow(var_x1, 2) * var_x225) - 0.034833333333333334 * var_x0 * var_x218 * var_x6 / pow(var_x7, 2) + 0.11 * var_x45 * var_x46 * var_x53 * var_x55 * var_x57 * var_x59 * NV_Ith_S(mParameters, 22)); IJth(rJacobian, 15, 26) = 1.7 - 1.7 * var_chaste_interface__ICaL_fCa_gate__fCaB_jct; - IJth(rJacobian, 16, 26) = -var_x374 + var_x366 * var_chaste_interface__Jrel_SR__R; - IJth(rJacobian, 17, 26) = var_x365 * var_chaste_interface__Jrel_SR__O + var_x373 * var_x376 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 18, 26) = var_x374 + var_x366 * var_chaste_interface__Jrel_SR__O; - IJth(rJacobian, 20, 26) = -var_x396 * (1.6609443839999999e-11 * var_x227 - 0.33000000000000002 * var_x403 + var_x226 * var_x401); - IJth(rJacobian, 24, 26) = var_x407; + IJth(rJacobian, 16, 26) = -var_x375 + var_x367 * var_chaste_interface__Jrel_SR__R; + IJth(rJacobian, 17, 26) = var_x366 * var_chaste_interface__Jrel_SR__O + var_x374 * var_x377 * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 18, 26) = var_x375 + var_x367 * var_chaste_interface__Jrel_SR__O; + IJth(rJacobian, 20, 26) = -var_x397 * (1.6609443839999999e-11 * var_x227 - 0.33000000000000002 * var_x404 + var_x226 * var_x402); + IJth(rJacobian, 24, 26) = var_x408; IJth(rJacobian, 25, 26) = 1.2484412919281114; - IJth(rJacobian, 26, 26) = -128.61534478149457 + var_x422 + var_x423 - var_x421 - var_x417 * (var_x229 + 0.22 * var_x403 - 1.1072962559999999e-11 * var_x227 - var_x226 * var_x420); - IJth(rJacobian, 28, 26) = 58.627450980392155 - var_x422; - IJth(rJacobian, 30, 26) = 21.029411764705884 - var_x423; - IJth(rJacobian, 41, 26) = -var_x429 * var_x434; - IJth(rJacobian, 44, 26) = -var_x437 * var_x442; - IJth(rJacobian, 25, 27) = var_x415; - IJth(rJacobian, 27, 27) = -var_x415; - IJth(rJacobian, 26, 28) = var_x425; - IJth(rJacobian, 28, 28) = -var_x425; - IJth(rJacobian, 25, 29) = var_x416; - IJth(rJacobian, 29, 29) = -var_x416; - IJth(rJacobian, 26, 30) = var_x426; - IJth(rJacobian, 30, 30) = -var_x426; - IJth(rJacobian, 24, 31) = var_x408; - IJth(rJacobian, 31, 31) = -var_x408; + IJth(rJacobian, 26, 26) = -128.61534478149457 + var_x423 + var_x424 - var_x422 - var_x418 * (var_x229 + 0.22 * var_x404 - 1.1072962559999999e-11 * var_x227 - var_x226 * var_x421); + IJth(rJacobian, 28, 26) = 58.627450980392155 - var_x423; + IJth(rJacobian, 30, 26) = 21.029411764705884 - var_x424; + IJth(rJacobian, 41, 26) = -var_x430 * var_x435; + IJth(rJacobian, 44, 26) = -var_x438 * var_x443; + IJth(rJacobian, 25, 27) = var_x416; + IJth(rJacobian, 27, 27) = -var_x416; + IJth(rJacobian, 26, 28) = var_x426; + IJth(rJacobian, 28, 28) = -var_x426; + IJth(rJacobian, 25, 29) = var_x417; + IJth(rJacobian, 29, 29) = -var_x417; + IJth(rJacobian, 26, 30) = var_x427; + IJth(rJacobian, 30, 30) = -var_x427; + IJth(rJacobian, 24, 31) = var_x409; + IJth(rJacobian, 31, 31) = -var_x409; IJth(rJacobian, 1, 32) = var_x248; IJth(rJacobian, 32, 32) = -var_x248; IJth(rJacobian, 1, 33) = 0.003032 + var_x249; @@ -1447,24 +1448,24 @@ bool Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::registered = Mo IJth(rJacobian, 37, 37) = -0.015757; IJth(rJacobian, 1, 38) = var_x252; IJth(rJacobian, 38, 38) = -var_x252; - IJth(rJacobian, 39, 39) = -0.059999999999999998 + var_x428 * var_chaste_interface__Ca_buffer__Cai + var_x432 * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 40, 39) = var_x433 * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 41, 39) = var_x434 * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 39, 39) = -0.059999999999999998 + var_x429 * var_chaste_interface__Ca_buffer__Cai + var_x433 * var_chaste_interface__Ca_buffer__Cai; + IJth(rJacobian, 40, 39) = var_x434 * var_chaste_interface__Ca_buffer__Ca_SL; + IJth(rJacobian, 41, 39) = var_x435 * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 39, 40) = (-0.076923076923076927 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 40, 40) = -0.059999999999999998 + var_x432 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x431) * var_chaste_interface__Ca_buffer__Ca_SL; + IJth(rJacobian, 40, 40) = -0.059999999999999998 + var_x433 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x432) * var_chaste_interface__Ca_buffer__Ca_SL; IJth(rJacobian, 41, 40) = (-0.078431372549019607 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct) * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 39, 41) = (-0.0019615384615384616 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol) * var_chaste_interface__Ca_buffer__Cai; IJth(rJacobian, 40, 41) = (-0.0019635 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 41, 41) = -0.059999999999999998 + var_x432 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x430) * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 42, 42) = -0.11 + var_x436 * var_chaste_interface__Ca_buffer__Cai + var_x440 * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 43, 42) = var_x441 * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 44, 42) = var_x442 * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 41, 41) = -0.059999999999999998 + var_x433 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x431) * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 42, 42) = -0.11 + var_x437 * var_chaste_interface__Ca_buffer__Cai + var_x441 * var_chaste_interface__Ca_buffer__Cai; + IJth(rJacobian, 43, 42) = var_x442 * var_chaste_interface__Ca_buffer__Ca_SL; + IJth(rJacobian, 44, 42) = var_x443 * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 42, 43) = (-0.076923076923076927 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 43, 43) = -0.11 + var_x440 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x439) * var_chaste_interface__Ca_buffer__Ca_SL; + IJth(rJacobian, 43, 43) = -0.11 + var_x441 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x440) * var_chaste_interface__Ca_buffer__Ca_SL; IJth(rJacobian, 44, 43) = (-0.078431372549019607 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct) * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 42, 44) = (-0.0019615384615384616 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol) * var_chaste_interface__Ca_buffer__Cai; IJth(rJacobian, 43, 44) = (-0.0019635 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 44, 44) = -0.11 + var_x440 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x438) * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 44, 44) = -0.11 + var_x441 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x439) * var_chaste_interface__Ca_buffer__Ca_jct; } N_Vector Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::ComputeDerivedQuantities(double var_chaste_interface__environment__time, const N_Vector & rY) diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/dynamic_Shannon2004.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/dynamic_Shannon2004.cpp_alt index 1d69b0d3..576ee0de 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/dynamic_Shannon2004.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/dynamic_Shannon2004.cpp_alt @@ -1108,29 +1108,29 @@ bool Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::registered = Mo const double var_x263 = 34 * var_chaste_interface__Ca_buffer__Cai; const double var_x264 = 13.800000000000001 * var_chaste_interface__Ca_buffer__Cai; const double var_x265 = 100 * var_chaste_interface__Ca_buffer__Cai; - const double var_x266 = exp(0.14705882352941177 * NV_Ith_S(mParameters, 16) - 0.14705882352941177 * var_chaste_interface__cell__V); + const double var_x266 = exp(-11.764705882352942 + 0.14705882352941177 * NV_Ith_S(mParameters, 16) - 0.14705882352941177 * var_chaste_interface__cell__V); const double var_x267 = var_chaste_interface__cell__V < -40; - const double var_x268 = ((var_x267) ? (1.0495108254269646e-6 * var_x266) : (0)); + const double var_x268 = ((var_x267) ? (0.13500000000000001 * var_x266) : (0)); const double var_x269 = var_x268; const double var_x270 = exp(var_x40 - 0.34999999999999998 * NV_Ith_S(mParameters, 16)); const double var_x271 = exp(0.079000000000000001 * var_chaste_interface__cell__V - 0.079000000000000001 * NV_Ith_S(mParameters, 16)); - const double var_x272 = exp(0.0900900900900901 * NV_Ith_S(mParameters, 16) - 0.0900900900900901 * var_chaste_interface__cell__V); - const double var_x273 = 1 + 0.38275493141491301 * var_x272; + const double var_x272 = exp(-0.96036036036036043 + 0.0900900900900901 * NV_Ith_S(mParameters, 16) - 0.0900900900900901 * var_chaste_interface__cell__V); + const double var_x273 = 1 + var_x272; const double var_x274 = ((var_x267) ? (310000 * var_x270 + 3.5600000000000001 * var_x271) : (7.6923076923076916 / var_x273)); const double var_x275 = var_x274; - const double var_x276 = ((var_x267) ? (-1.5433982726867125e-7 * var_x266) : (0)); + const double var_x276 = ((var_x267) ? (-0.019852941176470591 * var_x266) : (0)); const double var_x277 = var_x268 + var_x274; const double var_x278 = 0.01 * NV_Ith_S(mParameters, 15); const double var_x279 = 1 - var_x278; const double var_x280 = var_x279 / var_x277; - const double var_x281 = ((var_x267) ? (0.28123999999999999 * var_x271 + 108500 * var_x270) : (0.26524943271996743 * var_x272 / pow(var_x273, 2))); - const double var_x282 = exp(0.13780000000000001 * NV_Ith_S(mParameters, 16) - 0.13780000000000001 * var_chaste_interface__cell__V); - const double var_x283 = 1 + 0.0039608683399042569 * var_x282; + const double var_x281 = ((var_x267) ? (0.28123999999999999 * var_x271 + 108500 * var_x270) : (0.693000693000693 * var_x272 / pow(var_x273, 2))); + const double var_x282 = exp(-5.5312920000000005 + 0.13780000000000001 * NV_Ith_S(mParameters, 16) - 0.13780000000000001 * var_chaste_interface__cell__V); + const double var_x283 = 1 + var_x282; const double var_x284 = exp(0.01052 * NV_Ith_S(mParameters, 16) - 0.01052 * var_chaste_interface__cell__V); const double var_x285 = var_x284 / var_x283; const double var_x286 = -var_x84; - const double var_x287 = exp(var_x286 + 0.10000000000000001 * NV_Ith_S(mParameters, 16)); - const double var_x288 = 1 + 0.040762203978366211 * var_x287; + const double var_x287 = exp(-3.2000000000000002 + var_x286 + 0.10000000000000001 * NV_Ith_S(mParameters, 16)); + const double var_x288 = 1 + var_x287; const double var_x289 = exp(2.5349999999999999e-7 * NV_Ith_S(mParameters, 16) - 2.5349999999999999e-7 * var_chaste_interface__cell__V); const double var_x290 = var_x289 / var_x288; const double var_x291 = ((var_x267) ? (0.1212 * var_x285) : (0.29999999999999999 * var_x290)); @@ -1139,194 +1139,195 @@ bool Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::registered = Mo const double var_x294 = exp(0.24440000000000001 * var_chaste_interface__cell__V - 0.24440000000000001 * NV_Ith_S(mParameters, 16)); const double var_x295 = exp(0.043909999999999998 * NV_Ith_S(mParameters, 16) - 0.043909999999999998 * var_chaste_interface__cell__V); const double var_x296 = -127140 * var_x294 - 3.4740000000000003e-5 * var_x295; - const double var_x297 = exp(0.311 * var_chaste_interface__cell__V - 0.311 * NV_Ith_S(mParameters, 16)); - const double var_x298 = 1 / (1 + 50262745825.953949 * var_x297); - const double var_x299 = var_x296 * var_x298; - const double var_x300 = ((var_x267) ? (var_x293 * var_x299) : (0)); - const double var_x301 = var_x300; - const double var_x302 = ((var_x267) ? (var_x299 + var_x293 * var_x298 * (1.5254334000000001e-6 * var_x295 - 31073.016 * var_x294) - 6.1874852813833003e-12 * var_x293 * var_x296 * var_x297 / pow((1.989545106554116e-11 + var_x297), 2)) : (0)); - const double var_x303 = var_x291 + var_x300; - const double var_x304 = var_x279 / var_x303; - const double var_x305 = ((var_x267) ? (-0.001275024 * var_x285 + 6.6151888057343371e-5 * var_x282 * var_x284 / pow(var_x283, 2)) : (-7.6049999999999996e-8 * var_x290 + 0.0012228661193509863 * var_x287 * var_x289 / pow(var_x288, 2))); - const double var_x306 = exp(-0.090909090909090912 * var_chaste_interface__cell__V); - const double var_x307 = 0.080000000000000002 * var_x306; - const double var_x308 = 47.130000000000003 + var_chaste_interface__cell__V; - const double var_x309 = exp(-4.7130000000000001 + var_x286); - const double var_x310 = 1 - var_x309; - const double var_x311 = 1 / var_x310; - const double var_x312 = 0.32000000000000001 * var_x311; - const double var_x313 = var_x308 * var_x312; - const double var_x314 = var_x307 + var_x313; - const double var_x315 = 1 / var_x314; - const double var_x316 = 0.0072727272727272727 * var_x306; - const double var_x317 = 0.032000000000000001 * var_x308 * var_x309 / pow(var_x310, 2); - const double var_x318 = var_x308 * var_x311; - const double var_x319 = exp(-6.666666666666667 - 0.13333333333333333 * var_chaste_interface__cell__V); - const double var_x320 = 1 + var_x319; - const double var_x321 = exp(1.45 + 0.14499999999999999 * var_chaste_interface__cell__V); - const double var_x322 = -1 + var_x321; - const double var_x323 = 0.00060999999999999997 / var_x322; - const double var_x324 = exp(-0.86099999999999999 - 0.123 * var_chaste_interface__cell__V); - const double var_x325 = 1 - var_x324; - const double var_x326 = 0.0013799999999999999 / var_x325; - const double var_x327 = 7 + var_chaste_interface__cell__V; - const double var_x328 = 10 + var_chaste_interface__cell__V; - const double var_x329 = var_x323 * var_x328; - const double var_x330 = var_x326 * var_x327; - const double var_x331 = exp(0.089820359281437126 - 0.059880239520958084 * var_chaste_interface__cell__V); - const double var_x332 = 1 + var_x331; - const double var_x333 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__cell__V); - const double var_x334 = -1 + var_x333; - const double var_x335 = 0.00013100000000000001 / var_x334; - const double var_x336 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__cell__V); - const double var_x337 = 1 - var_x336; - const double var_x338 = 7.1899999999999999e-5 / var_x337; - const double var_x339 = 30 + var_chaste_interface__cell__V; - const double var_x340 = var_x335 * var_x339; - const double var_x341 = var_x338 * var_x339; - const double var_x342 = 0.066666666666666666 * var_chaste_interface__cell__V; - const double var_x343 = exp(0.20000000000000001 + var_x342); - const double var_x344 = 1 + var_x343; - const double var_x345 = 1 / var_x344; - const double var_x346 = 1 / (0.5 + 9 * var_x345); - const double var_x347 = exp(-0.20000000000000001 - var_x342); - const double var_x348 = 1 + var_x347; - const double var_x349 = 0.066666666666666666 * var_x347 / pow(var_x348, 2); - const double var_x350 = 1 / var_x348; - const double var_x351 = 0.10000000000000001 * var_chaste_interface__cell__V; - const double var_x352 = exp(6 + var_x351); - const double var_x353 = 1 + var_x352; - const double var_x354 = 1 / var_x353; - const double var_x355 = 1 / (30 + 3000 * var_x354); - const double var_x356 = exp(3.3500000000000001 + var_x351); - const double var_x357 = 1 + var_x356; - const double var_x358 = var_x356 / pow(var_x357, 2); - const double var_x359 = 0.10000000000000001 * var_x358; - const double var_x360 = 1 / var_x357; - const double var_x361 = var_x360; - const double var_x362 = var_x352 / pow(var_x353, 2); - const double var_x363 = 1 / (220 + 2800 * var_x354); - const double var_x364 = exp(-0.0011111111111111111 * pow(var_chaste_interface__cell__V, 2)); - const double var_x365 = 1 / (1.5 + 3.5 * var_x364); - const double var_x366 = 1 / (20 + 20 * var_x360); - const double var_x367 = exp(-2.4166666666666665 - 0.16666666666666666 * var_chaste_interface__cell__V); - const double var_x368 = 1 - var_x367; - const double var_x369 = 1 / var_x368; - const double var_x370 = 1 + var_x367; - const double var_x371 = 1 / var_x370; - const double var_x372 = -var_chaste_interface__ICaL_d_gate__d + var_x371; - const double var_x373 = var_x369 * var_x372; - const double var_x374 = 0.035000000000000003 * var_x370; - const double var_x375 = 14.5 + var_chaste_interface__cell__V; - const double var_x376 = var_x369 * var_x375; - const double var_x377 = 0.0058333333333333336 * var_x367; - const double var_x378 = var_x375 * var_x377; - const double var_x379 = 0.019699999999999999 * exp(-0.23877882250000002 * pow((1 + 0.068965517241379309 * var_chaste_interface__cell__V), 2)); - const double var_x380 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__cell__V); - const double var_x381 = 1 + var_x380; - const double var_x382 = exp(9.7388888888888889 + 0.27777777777777779 * var_chaste_interface__cell__V); - const double var_x383 = 1 + var_x382; - const double var_x384 = 1 / var_chaste_interface__Ca_buffer__Ca_SR; - const double var_x385 = pow(var_x384, 2.5); - const double var_x386 = 1 + 0.13584112963311223 * var_x385; - const double var_x387 = 1 / var_x386; - const double var_x388 = 7 * var_x387; - const double var_x389 = -7.5 + var_x388; - const double var_x390 = var_x389 * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x391 = 1 / (15 - 14 * var_x387); - const double var_x392 = 10 * var_x233 * var_x391; - const double var_x393 = -var_x392; - const double var_x394 = var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R; - const double var_x395 = var_x384 * var_x385 / pow(var_x386, 2); - const double var_x396 = 2.3772197685794643 * var_x395; - const double var_x397 = 0.21130842387373014 * var_x233 * var_x395 / pow((1 - 0.93333333333333335 * var_x387), 2); - const double var_x398 = var_x397 * var_chaste_interface__Jrel_SR__R; - const double var_x399 = 20 * var_x391; - const double var_x400 = var_x394 * var_x399; - const double var_x401 = 7.5 - var_x388; - const double var_x402 = var_x396 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__O; - const double var_x403 = 1 - var_chaste_interface__Jrel_SR__I - var_chaste_interface__Jrel_SR__O - var_chaste_interface__Jrel_SR__R; - const double var_x404 = M_PI * var_x24; - const double var_x405 = 62.109246076532294 * var_x404; - const double var_x406 = var_x405 * NV_Ith_S(mParameters, 3); - const double var_x407 = var_x404 * NV_Ith_S(mParameters, 3); - const double var_x408 = var_x22 * var_x407; - const double var_x409 = 55.277229008113743 * var_x164; - const double var_x410 = var_x167 * var_x407; - const double var_x411 = var_x100 * var_x102; - const double var_x412 = M_PI * var_x48; - const double var_x413 = var_x412 * NV_Ith_S(mParameters, 3); - const double var_x414 = 4.1923741101659298e-8 * var_x413; - const double var_x415 = var_x114 * var_x414; - const double var_x416 = var_x100 * var_x186; - const double var_x417 = 0.0001 * var_chaste_interface__Na_buffer__Na_SL_buf; - const double var_x418 = 5.9492599172113663e-12 * var_x200; - const double var_x419 = 0.0001 * var_chaste_interface__Na_buffer__Na_SL; - const double var_x420 = 2435.6567088836191 * var_x404; - const double var_x421 = var_x420 * NV_Ith_S(mParameters, 3); - const double var_x422 = 267.92223797719811 * var_x162; - const double var_x423 = 1.4796614506467986e-5 * var_x413; - const double var_x424 = var_x142 * var_x423; - const double var_x425 = 0.0001 * var_chaste_interface__Na_buffer__Na_jct_buf; - const double var_x426 = 7.3530178752050587e-13 * var_x213; - const double var_x427 = 0.0001 * var_chaste_interface__Na_buffer__Na_jct; - const double var_x428 = 0.076376893524206985 * NV_Ith_S(mParameters, 3); - const double var_x429 = 100 * var_chaste_interface__Ca_buffer__Ca_Calsequestrin; - const double var_x430 = 18.571428571428569 * NV_Ith_S(mParameters, 0); - const double var_x431 = var_chaste_interface__Jrel_SR__O * NV_Ith_S(mParameters, 1); - const double var_x432 = 100 * var_chaste_interface__Ca_buffer__Ca_SR; - const double var_x433 = 31.054623038266147 * var_x404; - const double var_x434 = 5.5898321468879066 * var_x135 * var_x412; - const double var_x435 = 3.9661732781409111e-12 * var_x200; - const double var_x436 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_SL; - const double var_x437 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_SL; - const double var_x438 = 100 * var_chaste_interface__Ca_buffer__Ca_SL; - const double var_x439 = 1217.8283544418096 * var_x404; - const double var_x440 = 1972.8819341957317 * var_x412; - const double var_x441 = var_x157 * var_x440; - const double var_x442 = 4.9020119168033731e-13 * var_x213; - const double var_x443 = 1274.5098039215686 * NV_Ith_S(mParameters, 0); - const double var_x444 = 68.627450980392155 * var_x431; - const double var_x445 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_jct; - const double var_x446 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_jct; - const double var_x447 = 100 * var_chaste_interface__Ca_buffer__Ca_jct; - const double var_x448 = -var_x438; - const double var_x449 = -var_x447; - const double var_x450 = -var_x262; - const double var_x451 = -var_x264; - const double var_x452 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol; - const double var_x453 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x454 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x455 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; - const double var_x456 = var_x452 + var_x454 + var_x455; - const double var_x457 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; - const double var_x458 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; - const double var_x459 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol; - const double var_x460 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; - const double var_x461 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; - const double var_x462 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; - const double var_x463 = var_x459 + var_x461 + var_x462; - const double var_x464 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; - const double var_x465 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; + const double var_x297 = exp(24.640530000000002 + 0.311 * var_chaste_interface__cell__V - 0.311 * NV_Ith_S(mParameters, 16)); + const double var_x298 = 1 + var_x297; + const double var_x299 = 1 / var_x298; + const double var_x300 = var_x296 * var_x299; + const double var_x301 = ((var_x267) ? (var_x293 * var_x300) : (0)); + const double var_x302 = var_x301; + const double var_x303 = ((var_x267) ? (var_x300 + var_x293 * var_x299 * (1.5254334000000001e-6 * var_x295 - 31073.016 * var_x294) - 0.311 * var_x293 * var_x296 * var_x297 / pow(var_x298, 2)) : (0)); + const double var_x304 = var_x291 + var_x301; + const double var_x305 = var_x279 / var_x304; + const double var_x306 = ((var_x267) ? (-0.001275024 * var_x285 + 0.016701360000000002 * var_x282 * var_x284 / pow(var_x283, 2)) : (-7.6049999999999996e-8 * var_x290 + 0.029999999999999999 * var_x287 * var_x289 / pow(var_x288, 2))); + const double var_x307 = exp(-0.090909090909090912 * var_chaste_interface__cell__V); + const double var_x308 = 0.080000000000000002 * var_x307; + const double var_x309 = 47.130000000000003 + var_chaste_interface__cell__V; + const double var_x310 = exp(-4.7130000000000001 + var_x286); + const double var_x311 = 1 - var_x310; + const double var_x312 = 1 / var_x311; + const double var_x313 = 0.32000000000000001 * var_x312; + const double var_x314 = var_x309 * var_x313; + const double var_x315 = var_x308 + var_x314; + const double var_x316 = 1 / var_x315; + const double var_x317 = 0.0072727272727272727 * var_x307; + const double var_x318 = 0.032000000000000001 * var_x309 * var_x310 / pow(var_x311, 2); + const double var_x319 = var_x309 * var_x312; + const double var_x320 = exp(-6.666666666666667 - 0.13333333333333333 * var_chaste_interface__cell__V); + const double var_x321 = 1 + var_x320; + const double var_x322 = exp(1.45 + 0.14499999999999999 * var_chaste_interface__cell__V); + const double var_x323 = -1 + var_x322; + const double var_x324 = 0.00060999999999999997 / var_x323; + const double var_x325 = exp(-0.86099999999999999 - 0.123 * var_chaste_interface__cell__V); + const double var_x326 = 1 - var_x325; + const double var_x327 = 0.0013799999999999999 / var_x326; + const double var_x328 = 7 + var_chaste_interface__cell__V; + const double var_x329 = 10 + var_chaste_interface__cell__V; + const double var_x330 = var_x324 * var_x329; + const double var_x331 = var_x327 * var_x328; + const double var_x332 = exp(0.089820359281437126 - 0.059880239520958084 * var_chaste_interface__cell__V); + const double var_x333 = 1 + var_x332; + const double var_x334 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__cell__V); + const double var_x335 = -1 + var_x334; + const double var_x336 = 0.00013100000000000001 / var_x335; + const double var_x337 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__cell__V); + const double var_x338 = 1 - var_x337; + const double var_x339 = 7.1899999999999999e-5 / var_x338; + const double var_x340 = 30 + var_chaste_interface__cell__V; + const double var_x341 = var_x336 * var_x340; + const double var_x342 = var_x339 * var_x340; + const double var_x343 = 0.066666666666666666 * var_chaste_interface__cell__V; + const double var_x344 = exp(0.20000000000000001 + var_x343); + const double var_x345 = 1 + var_x344; + const double var_x346 = 1 / var_x345; + const double var_x347 = 1 / (0.5 + 9 * var_x346); + const double var_x348 = exp(-0.20000000000000001 - var_x343); + const double var_x349 = 1 + var_x348; + const double var_x350 = 0.066666666666666666 * var_x348 / pow(var_x349, 2); + const double var_x351 = 1 / var_x349; + const double var_x352 = 0.10000000000000001 * var_chaste_interface__cell__V; + const double var_x353 = exp(6 + var_x352); + const double var_x354 = 1 + var_x353; + const double var_x355 = 1 / var_x354; + const double var_x356 = 1 / (30 + 3000 * var_x355); + const double var_x357 = exp(3.3500000000000001 + var_x352); + const double var_x358 = 1 + var_x357; + const double var_x359 = var_x357 / pow(var_x358, 2); + const double var_x360 = 0.10000000000000001 * var_x359; + const double var_x361 = 1 / var_x358; + const double var_x362 = var_x361; + const double var_x363 = var_x353 / pow(var_x354, 2); + const double var_x364 = 1 / (220 + 2800 * var_x355); + const double var_x365 = exp(-0.0011111111111111111 * pow(var_chaste_interface__cell__V, 2)); + const double var_x366 = 1 / (1.5 + 3.5 * var_x365); + const double var_x367 = 1 / (20 + 20 * var_x361); + const double var_x368 = exp(-2.4166666666666665 - 0.16666666666666666 * var_chaste_interface__cell__V); + const double var_x369 = 1 - var_x368; + const double var_x370 = 1 / var_x369; + const double var_x371 = 1 + var_x368; + const double var_x372 = 1 / var_x371; + const double var_x373 = -var_chaste_interface__ICaL_d_gate__d + var_x372; + const double var_x374 = var_x370 * var_x373; + const double var_x375 = 0.035000000000000003 * var_x371; + const double var_x376 = 14.5 + var_chaste_interface__cell__V; + const double var_x377 = var_x370 * var_x376; + const double var_x378 = 0.0058333333333333336 * var_x368; + const double var_x379 = var_x376 * var_x378; + const double var_x380 = 0.019699999999999999 * exp(-0.23877882250000002 * pow((1 + 0.068965517241379309 * var_chaste_interface__cell__V), 2)); + const double var_x381 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__cell__V); + const double var_x382 = 1 + var_x381; + const double var_x383 = exp(9.7388888888888889 + 0.27777777777777779 * var_chaste_interface__cell__V); + const double var_x384 = 1 + var_x383; + const double var_x385 = 1 / var_chaste_interface__Ca_buffer__Ca_SR; + const double var_x386 = pow(var_x385, 2.5); + const double var_x387 = 1 + 0.13584112963311223 * var_x386; + const double var_x388 = 1 / var_x387; + const double var_x389 = 7 * var_x388; + const double var_x390 = -7.5 + var_x389; + const double var_x391 = var_x390 * var_chaste_interface__Ca_buffer__Ca_jct; + const double var_x392 = 1 / (15 - 14 * var_x388); + const double var_x393 = 10 * var_x233 * var_x392; + const double var_x394 = -var_x393; + const double var_x395 = var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__R; + const double var_x396 = var_x385 * var_x386 / pow(var_x387, 2); + const double var_x397 = 2.3772197685794643 * var_x396; + const double var_x398 = 0.21130842387373014 * var_x233 * var_x396 / pow((1 - 0.93333333333333335 * var_x388), 2); + const double var_x399 = var_x398 * var_chaste_interface__Jrel_SR__R; + const double var_x400 = 20 * var_x392; + const double var_x401 = var_x395 * var_x400; + const double var_x402 = 7.5 - var_x389; + const double var_x403 = var_x397 * var_chaste_interface__Ca_buffer__Ca_jct * var_chaste_interface__Jrel_SR__O; + const double var_x404 = 1 - var_chaste_interface__Jrel_SR__I - var_chaste_interface__Jrel_SR__O - var_chaste_interface__Jrel_SR__R; + const double var_x405 = M_PI * var_x24; + const double var_x406 = 62.109246076532294 * var_x405; + const double var_x407 = var_x406 * NV_Ith_S(mParameters, 3); + const double var_x408 = var_x405 * NV_Ith_S(mParameters, 3); + const double var_x409 = var_x22 * var_x408; + const double var_x410 = 55.277229008113743 * var_x164; + const double var_x411 = var_x167 * var_x408; + const double var_x412 = var_x100 * var_x102; + const double var_x413 = M_PI * var_x48; + const double var_x414 = var_x413 * NV_Ith_S(mParameters, 3); + const double var_x415 = 4.1923741101659298e-8 * var_x414; + const double var_x416 = var_x114 * var_x415; + const double var_x417 = var_x100 * var_x186; + const double var_x418 = 0.0001 * var_chaste_interface__Na_buffer__Na_SL_buf; + const double var_x419 = 5.9492599172113663e-12 * var_x200; + const double var_x420 = 0.0001 * var_chaste_interface__Na_buffer__Na_SL; + const double var_x421 = 2435.6567088836191 * var_x405; + const double var_x422 = var_x421 * NV_Ith_S(mParameters, 3); + const double var_x423 = 267.92223797719811 * var_x162; + const double var_x424 = 1.4796614506467986e-5 * var_x414; + const double var_x425 = var_x142 * var_x424; + const double var_x426 = 0.0001 * var_chaste_interface__Na_buffer__Na_jct_buf; + const double var_x427 = 7.3530178752050587e-13 * var_x213; + const double var_x428 = 0.0001 * var_chaste_interface__Na_buffer__Na_jct; + const double var_x429 = 0.076376893524206985 * NV_Ith_S(mParameters, 3); + const double var_x430 = 100 * var_chaste_interface__Ca_buffer__Ca_Calsequestrin; + const double var_x431 = 18.571428571428569 * NV_Ith_S(mParameters, 0); + const double var_x432 = var_chaste_interface__Jrel_SR__O * NV_Ith_S(mParameters, 1); + const double var_x433 = 100 * var_chaste_interface__Ca_buffer__Ca_SR; + const double var_x434 = 31.054623038266147 * var_x405; + const double var_x435 = 5.5898321468879066 * var_x135 * var_x413; + const double var_x436 = 3.9661732781409111e-12 * var_x200; + const double var_x437 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_SL; + const double var_x438 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_SL; + const double var_x439 = 100 * var_chaste_interface__Ca_buffer__Ca_SL; + const double var_x440 = 1217.8283544418096 * var_x405; + const double var_x441 = 1972.8819341957317 * var_x413; + const double var_x442 = var_x157 * var_x441; + const double var_x443 = 4.9020119168033731e-13 * var_x213; + const double var_x444 = 1274.5098039215686 * NV_Ith_S(mParameters, 0); + const double var_x445 = 68.627450980392155 * var_x432; + const double var_x446 = 100 * var_chaste_interface__Ca_buffer__Ca_SLB_jct; + const double var_x447 = 100 * var_chaste_interface__Ca_buffer__Ca_SLHigh_jct; + const double var_x448 = 100 * var_chaste_interface__Ca_buffer__Ca_jct; + const double var_x449 = -var_x439; + const double var_x450 = -var_x448; + const double var_x451 = -var_x262; + const double var_x452 = -var_x264; + const double var_x453 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol; + const double var_x454 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; + const double var_x455 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; + const double var_x456 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; + const double var_x457 = var_x453 + var_x455 + var_x456; + const double var_x458 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL; + const double var_x459 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct; + const double var_x460 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol; + const double var_x461 = -var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol - 0.030769230769230767 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL - 0.00078461538461538469 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; + const double var_x462 = 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; + const double var_x463 = 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; + const double var_x464 = var_x460 + var_x462 + var_x463; + const double var_x465 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL; + const double var_x466 = 100 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct; // Matrix entries IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (-0.00054830000000000005 + var_x146 + var_x147 + var_x156 + var_x158 - var_x110 - var_x116 - var_x137 - var_x141 - var_x151 - var_x154 - var_x159 - var_x161 - NV_Ith_S(mParameters, 13) - 0.11 * var_x11 - 0.11 * var_x66 - 0.89000000000000001 * var_x15 - 0.89000000000000001 * var_x79 - 0.15619500000000003 * var_x124 - 1 * var_x23 - 0.01205875 / var_x1 - 0.019305000000000003 * var_x127 - 0.097566250000000007 / var_x3 - 0.21009999999999998 * var_x91 - 1.6999 * var_x94 + var_x145 * var_x148 + var_x5 * var_chaste_interface__Itos_X_gate__X_tos - var_x118 * var_x120 - var_x17 * var_x20 - var_x6 * var_chaste_interface__Itof_X_gate__X_tof - 0.4389381125701739 * var_x29 * var_x37 + 0.10468673984798647 * var_x37 * var_x38 * var_x39 + 0.019211226915711394 * var_x17 * var_x18 * var_x38 / pow(var_x19, 2) - 9.1125000000000004e-8 * var_x119 * var_x143 * var_x149 * NV_Ith_S(mParameters, 5) - 0.42189361069797565 * var_x29 * var_x80 * (0.24326999999999999 * var_x39 - var_x32 * (0.061749999999999999 * var_x33 + 0.039456396800000001 * var_x34) - 0.51429999999999998 * var_x30 * var_x35 / pow(var_x31, 2)) * NV_Ith_S(mParameters, 18) / pow((var_x29 + 0.98039215686274506 * var_x36), 2)); IJth(rJacobian, 2, 0) = (var_x269 + var_x275) * (var_x276 * var_x280 + var_x268 * var_x279 * (-var_x276 - var_x281) / pow(var_x277, 2)) + (var_x276 + var_x281) * (var_x278 - var_chaste_interface__INa_h_gate__h + var_x268 * var_x280); - IJth(rJacobian, 3, 0) = (var_x292 + var_x301) * (var_x302 * var_x304 + var_x279 * var_x300 * (-var_x302 - var_x305) / pow(var_x303, 2)) + (var_x302 + var_x305) * (var_x278 - var_chaste_interface__INa_j_gate__j + var_x300 * var_x304); - IJth(rJacobian, 4, 0) = var_x314 * (var_x312 * var_x315 - var_x315 * var_x317 + 3.125 * var_x318 * (var_x316 + var_x317 - var_x312) / pow((var_x318 + 0.25 * var_x306), 2)) + (-var_chaste_interface__INa_m_gate__m + var_x313 * var_x315) * (var_x312 - var_x316 - var_x317); - IJth(rJacobian, 5, 0) = (-var_chaste_interface__IKr_Xr_gate__Xr + 1 / var_x320) * (var_x323 + var_x326 - 0.00016973999999999998 * var_x324 * var_x327 / pow(var_x325, 2) - 8.8449999999999995e-5 * var_x321 * var_x328 / pow(var_x322, 2)) + 0.13333333333333333 * var_x319 * (var_x329 + var_x330) / pow(var_x320, 2); - IJth(rJacobian, 6, 0) = (-var_chaste_interface__IKs_Xs_gate__Xs + 1 / var_x332) * (var_x335 + var_x338 - 8.9997000000000013e-6 * var_x333 * var_x339 / pow(var_x334, 2) - 1.0641199999999999e-5 * var_x336 * var_x339 / pow(var_x337, 2)) + 0.059880239520958084 * var_x331 * (var_x340 + var_x341) / pow(var_x332, 2); - IJth(rJacobian, 7, 0) = var_x346 * var_x349 + 0.0074074074074074077 * var_x343 * (var_x350 - var_chaste_interface__Itos_X_gate__X_tos) / (pow(var_x344, 2) * pow((0.055555555555555552 + var_x345), 2)); - IJth(rJacobian, 8, 0) = -var_x355 * var_x359 + 3.3333333333333335e-5 * var_x362 * (var_x361 + var_x4) / pow((0.01 + var_x354), 2); - IJth(rJacobian, 9, 0) = -var_x359 * var_x363 + 3.5714285714285717e-5 * var_x362 * (var_x361 - var_chaste_interface__Itos_R_gate__R_tos) / pow((0.07857142857142857 + var_x354), 2); - IJth(rJacobian, 10, 0) = var_x349 * var_x365 + 0.00063492063492063492 * var_x364 * (var_x350 - var_chaste_interface__Itof_X_gate__X_tof) * var_chaste_interface__cell__V / pow((0.42857142857142855 + var_x364), 2); - IJth(rJacobian, 11, 0) = -var_x359 * var_x366 + 0.0050000000000000001 * var_x358 * (var_x361 - var_chaste_interface__Itof_Y_gate__Y_tof) / pow((1 + var_x360), 2); - IJth(rJacobian, 12, 0) = var_x373 * var_x374 - var_x373 * var_x378 + var_x371 * var_x376 * var_x377 - var_x370 * var_x372 * var_x378 / pow(var_x368, 2); - IJth(rJacobian, 13, 0) = (0.02 + var_x379) * (0.029999999999999999 * var_x380 / pow(var_x381, 2) - 0.27777777777777779 * var_x382 / pow(var_x383, 2)) + var_x379 * (-0.032935010000000001 - 0.0022713799999999999 * var_chaste_interface__cell__V) * (-var_chaste_interface__ICaL_f_gate__f + 1 / var_x383 + 0.59999999999999998 / var_x381); - IJth(rJacobian, 19, 0) = -var_x406 * (0.00026433000000000001 + var_x116 + var_x151 + var_x202 - var_x147 + 2.6699999999999999 * var_x79 + 5.0996999999999995 * var_x94 + 0.46858500000000003 * var_x124); - IJth(rJacobian, 20, 0) = -var_x421 * (3.2670000000000004e-5 + var_x110 + var_x154 + var_x215 - var_x146 + 0.33000000000000002 * var_x66 + 0.63029999999999997 * var_x91 + 0.057915000000000008 * var_x127); - IJth(rJacobian, 25, 0) = -var_x433 * (0.00022365699999999999 + var_x137 + var_x161 - var_x156 - 1.78 * var_x79 - 0.31239000000000006 * var_x124); - IJth(rJacobian, 26, 0) = -var_x439 * (2.7642999999999999e-5 + var_x141 + var_x159 - var_x158 - 0.22 * var_x66 - 0.038610000000000005 * var_x127); + IJth(rJacobian, 3, 0) = (var_x292 + var_x302) * (var_x303 * var_x305 + var_x279 * var_x301 * (-var_x303 - var_x306) / pow(var_x304, 2)) + (var_x303 + var_x306) * (var_x278 - var_chaste_interface__INa_j_gate__j + var_x301 * var_x305); + IJth(rJacobian, 4, 0) = var_x315 * (var_x313 * var_x316 - var_x316 * var_x318 + 3.125 * var_x319 * (var_x317 + var_x318 - var_x313) / pow((var_x319 + 0.25 * var_x307), 2)) + (-var_chaste_interface__INa_m_gate__m + var_x314 * var_x316) * (var_x313 - var_x317 - var_x318); + IJth(rJacobian, 5, 0) = (-var_chaste_interface__IKr_Xr_gate__Xr + 1 / var_x321) * (var_x324 + var_x327 - 0.00016973999999999998 * var_x325 * var_x328 / pow(var_x326, 2) - 8.8449999999999995e-5 * var_x322 * var_x329 / pow(var_x323, 2)) + 0.13333333333333333 * var_x320 * (var_x330 + var_x331) / pow(var_x321, 2); + IJth(rJacobian, 6, 0) = (-var_chaste_interface__IKs_Xs_gate__Xs + 1 / var_x333) * (var_x336 + var_x339 - 8.9997000000000013e-6 * var_x334 * var_x340 / pow(var_x335, 2) - 1.0641199999999999e-5 * var_x337 * var_x340 / pow(var_x338, 2)) + 0.059880239520958084 * var_x332 * (var_x341 + var_x342) / pow(var_x333, 2); + IJth(rJacobian, 7, 0) = var_x347 * var_x350 + 0.0074074074074074077 * var_x344 * (var_x351 - var_chaste_interface__Itos_X_gate__X_tos) / (pow(var_x345, 2) * pow((0.055555555555555552 + var_x346), 2)); + IJth(rJacobian, 8, 0) = -var_x356 * var_x360 + 3.3333333333333335e-5 * var_x363 * (var_x362 + var_x4) / pow((0.01 + var_x355), 2); + IJth(rJacobian, 9, 0) = -var_x360 * var_x364 + 3.5714285714285717e-5 * var_x363 * (var_x362 - var_chaste_interface__Itos_R_gate__R_tos) / pow((0.07857142857142857 + var_x355), 2); + IJth(rJacobian, 10, 0) = var_x350 * var_x366 + 0.00063492063492063492 * var_x365 * (var_x351 - var_chaste_interface__Itof_X_gate__X_tof) * var_chaste_interface__cell__V / pow((0.42857142857142855 + var_x365), 2); + IJth(rJacobian, 11, 0) = -var_x360 * var_x367 + 0.0050000000000000001 * var_x359 * (var_x362 - var_chaste_interface__Itof_Y_gate__Y_tof) / pow((1 + var_x361), 2); + IJth(rJacobian, 12, 0) = var_x374 * var_x375 - var_x374 * var_x379 + var_x372 * var_x377 * var_x378 - var_x371 * var_x373 * var_x379 / pow(var_x369, 2); + IJth(rJacobian, 13, 0) = (0.02 + var_x380) * (0.029999999999999999 * var_x381 / pow(var_x382, 2) - 0.27777777777777779 * var_x383 / pow(var_x384, 2)) + var_x380 * (-0.032935010000000001 - 0.0022713799999999999 * var_chaste_interface__cell__V) * (-var_chaste_interface__ICaL_f_gate__f + 1 / var_x384 + 0.59999999999999998 / var_x382); + IJth(rJacobian, 19, 0) = -var_x407 * (0.00026433000000000001 + var_x116 + var_x151 + var_x202 - var_x147 + 2.6699999999999999 * var_x79 + 5.0996999999999995 * var_x94 + 0.46858500000000003 * var_x124); + IJth(rJacobian, 20, 0) = -var_x422 * (3.2670000000000004e-5 + var_x110 + var_x154 + var_x215 - var_x146 + 0.33000000000000002 * var_x66 + 0.63029999999999997 * var_x91 + 0.057915000000000008 * var_x127); + IJth(rJacobian, 25, 0) = -var_x434 * (0.00022365699999999999 + var_x137 + var_x161 - var_x156 - 1.78 * var_x79 - 0.31239000000000006 * var_x124); + IJth(rJacobian, 26, 0) = -var_x440 * (2.7642999999999999e-5 + var_x141 + var_x159 - var_x158 - 0.22 * var_x66 - 0.038610000000000005 * var_x127); IJth(rJacobian, 1, 1) = -7.2523935948689155 + var_x241 + var_x242 + var_x243 + var_x244 + var_x245 + var_x246 + var_x247 + 6.3492962168146398e-7 * var_x257 - 5029484.9869235931 * var_x255; IJth(rJacobian, 24, 1) = 93404721.185723871 * var_x255 - 1.1791550116941473e-5 * var_x257; IJth(rJacobian, 25, 1) = 5.6417918332397381; @@ -1335,159 +1336,159 @@ bool Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::registered = Mo IJth(rJacobian, 35, 1) = 0.81600000000000006 - var_x241; IJth(rJacobian, 36, 1) = 1.9320000000000004 - var_x246 - var_x247; IJth(rJacobian, 38, 1) = 1.71 - var_x242; - IJth(rJacobian, 39, 1) = var_x453 * (2.5 - var_x452); - IJth(rJacobian, 42, 1) = var_x460 * (2.5 - var_x459); + IJth(rJacobian, 39, 1) = var_x454 * (2.5 - var_x453); + IJth(rJacobian, 42, 1) = var_x461 * (2.5 - var_x460); IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x163 * var_x22 - var_x165 * var_x22); IJth(rJacobian, 2, 2) = -var_x269 - var_x275; - IJth(rJacobian, 19, 2) = -var_x408 * var_x409; - IJth(rJacobian, 20, 2) = -var_x408 * var_x422; + IJth(rJacobian, 19, 2) = -var_x409 * var_x410; + IJth(rJacobian, 20, 2) = -var_x409 * var_x423; IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x163 * var_x167 - var_x165 * var_x167); - IJth(rJacobian, 3, 3) = -var_x292 - var_x301; - IJth(rJacobian, 19, 3) = -var_x409 * var_x410; - IJth(rJacobian, 20, 3) = -var_x410 * var_x422; + IJth(rJacobian, 3, 3) = -var_x292 - var_x302; + IJth(rJacobian, 19, 3) = -var_x410 * var_x411; + IJth(rJacobian, 20, 3) = -var_x411 * var_x423; IJth(rJacobian, 0, 4) = mSetVoltageDerivativeToZero ? 0.0 : (-0.33000000000000002 * var_x169 - 2.6699999999999999 * var_x170); - IJth(rJacobian, 4, 4) = -var_x307 - var_x313; - IJth(rJacobian, 19, 4) = -165.83168702434122 * var_x170 * var_x407; - IJth(rJacobian, 20, 4) = -803.76671393159438 * var_x169 * var_x407; + IJth(rJacobian, 4, 4) = -var_x308 - var_x314; + IJth(rJacobian, 19, 4) = -165.83168702434122 * var_x170 * var_x408; + IJth(rJacobian, 20, 4) = -803.76671393159438 * var_x169 * var_x408; IJth(rJacobian, 0, 5) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x20 * var_x80 * NV_Ith_S(mParameters, 19)); - IJth(rJacobian, 5, 5) = -var_x329 - var_x330; + IJth(rJacobian, 5, 5) = -var_x330 - var_x331; IJth(rJacobian, 0, 6) = mSetVoltageDerivativeToZero ? 0.0 : (-0.22 * var_x173 * var_x9 - 1.78 * var_x14 * var_x173); - IJth(rJacobian, 6, 6) = -var_x340 - var_x341; + IJth(rJacobian, 6, 6) = -var_x341 - var_x342; IJth(rJacobian, 0, 7) = mSetVoltageDerivativeToZero ? 0.0 : (var_x38 * var_x5); - IJth(rJacobian, 7, 7) = -var_x346; + IJth(rJacobian, 7, 7) = -var_x347; IJth(rJacobian, 0, 8) = mSetVoltageDerivativeToZero ? 0.0 : (var_x174 * var_x175); - IJth(rJacobian, 8, 8) = -var_x355; + IJth(rJacobian, 8, 8) = -var_x356; IJth(rJacobian, 0, 9) = mSetVoltageDerivativeToZero ? 0.0 : (var_x175 * (0.5 * var_x26 - 0.5 * var_chaste_interface__cell__V)); - IJth(rJacobian, 9, 9) = -var_x363; + IJth(rJacobian, 9, 9) = -var_x364; IJth(rJacobian, 0, 10) = mSetVoltageDerivativeToZero ? 0.0 : (var_x174 * var_x6); - IJth(rJacobian, 10, 10) = -var_x365; + IJth(rJacobian, 10, 10) = -var_x366; IJth(rJacobian, 0, 11) = mSetVoltageDerivativeToZero ? 0.0 : (var_x174 * NV_Ith_S(mParameters, 17) * var_chaste_interface__Itof_X_gate__X_tof); - IJth(rJacobian, 11, 11) = -var_x366; + IJth(rJacobian, 11, 11) = -var_x367; IJth(rJacobian, 0, 12) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x115 * var_x179 - var_x148 * var_x179 - var_x177 * var_x178 - var_x181 * var_x183 - var_x182 * var_x185); - IJth(rJacobian, 12, 12) = -var_x374 * var_x376; - IJth(rJacobian, 19, 12) = -var_x411 * var_x415; - IJth(rJacobian, 20, 12) = -var_x411 * var_x424; - IJth(rJacobian, 25, 12) = -var_x183 * var_x434; - IJth(rJacobian, 26, 12) = -var_x182 * var_x441; + IJth(rJacobian, 12, 12) = -var_x375 * var_x377; + IJth(rJacobian, 19, 12) = -var_x412 * var_x416; + IJth(rJacobian, 20, 12) = -var_x412 * var_x425; + IJth(rJacobian, 25, 12) = -var_x183 * var_x435; + IJth(rJacobian, 26, 12) = -var_x182 * var_x442; IJth(rJacobian, 0, 13) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x115 * var_x188 - var_x148 * var_x188 - var_x178 * var_x187 - var_x181 * var_x190 - var_x185 * var_x189); - IJth(rJacobian, 13, 13) = -0.02 - var_x379; - IJth(rJacobian, 19, 13) = -var_x415 * var_x416; - IJth(rJacobian, 20, 13) = -var_x416 * var_x424; - IJth(rJacobian, 25, 13) = -var_x190 * var_x434; - IJth(rJacobian, 26, 13) = -var_x189 * var_x441; + IJth(rJacobian, 13, 13) = -0.02 - var_x380; + IJth(rJacobian, 19, 13) = -var_x416 * var_x417; + IJth(rJacobian, 20, 13) = -var_x417 * var_x425; + IJth(rJacobian, 25, 13) = -var_x190 * var_x435; + IJth(rJacobian, 26, 13) = -var_x189 * var_x442; IJth(rJacobian, 0, 14) = mSetVoltageDerivativeToZero ? 0.0 : (1.2150000000000001e-8 * var_x192 + var_x131 * var_x181 + 6.7499999999999994e-10 * var_x113 * var_x191); IJth(rJacobian, 14, 14) = -0.011900000000000001 - 1.7 * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 19, 14) = var_x104 * var_x113 * var_x414; - IJth(rJacobian, 25, 14) = var_x131 * var_x434; + IJth(rJacobian, 19, 14) = var_x104 * var_x113 * var_x415; + IJth(rJacobian, 25, 14) = var_x131 * var_x435; IJth(rJacobian, 0, 15) = mSetVoltageDerivativeToZero ? 0.0 : (1.0935000000000001e-7 * var_x192 + 6.0749999999999998e-9 * var_x105 * var_x180 + var_x131 * var_x140 * var_x180); IJth(rJacobian, 15, 15) = -0.011900000000000001 - 1.7 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 20, 15) = var_x105 * var_x423; - IJth(rJacobian, 26, 15) = var_x131 * var_x139 * var_x440; - IJth(rJacobian, 16, 16) = -0.0050000000000000001 + var_x390 + var_x393; - IJth(rJacobian, 17, 16) = var_x393; - IJth(rJacobian, 18, 16) = var_x392; + IJth(rJacobian, 20, 15) = var_x105 * var_x424; + IJth(rJacobian, 26, 15) = var_x131 * var_x139 * var_x441; + IJth(rJacobian, 16, 16) = -0.0050000000000000001 + var_x391 + var_x394; + IJth(rJacobian, 17, 16) = var_x394; + IJth(rJacobian, 18, 16) = var_x393; IJth(rJacobian, 16, 17) = -0.0050000000000000001; - IJth(rJacobian, 17, 17) = -0.065000000000000002 + var_x393; + IJth(rJacobian, 17, 17) = -0.065000000000000002 + var_x394; IJth(rJacobian, 18, 17) = 0.0050000000000000001; IJth(rJacobian, 16, 18) = 0.055; - IJth(rJacobian, 17, 18) = var_x393 + var_x401 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 18, 18) = -0.059999999999999998 + var_x390; + IJth(rJacobian, 17, 18) = var_x394 + var_x402 * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 18, 18) = -0.059999999999999998 + var_x391; IJth(rJacobian, 24, 18) = (-var_chaste_interface__Ca_buffer__Ca_SR + var_chaste_interface__Ca_buffer__Ca_jct) * NV_Ith_S(mParameters, 1); IJth(rJacobian, 26, 18) = (68.627450980392155 * var_chaste_interface__Ca_buffer__Ca_SR - 68.627450980392155 * var_chaste_interface__Ca_buffer__Ca_jct) * NV_Ith_S(mParameters, 1); IJth(rJacobian, 0, 19) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x194 - var_x203 - var_x208 - 2.6699999999999999 * var_x205 - 0.00046442182911003347 * var_x207 - var_x198 * var_x201); - IJth(rJacobian, 19, 19) = (-2.5101556644976917 + var_x417 - var_x405 * (var_x194 + var_x203 + var_x208 + 8.0099999999999998 * var_x205 + 0.0013932654873301004 * var_x207 + var_x198 * var_x418)) * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 19, 19) = (-2.5101556644976917 + var_x418 - var_x406 * (var_x194 + var_x203 + var_x208 + 8.0099999999999998 * var_x205 + 0.0013932654873301004 * var_x207 + var_x198 * var_x419)) * NV_Ith_S(mParameters, 3); IJth(rJacobian, 20, 19) = 1.0879068612142859 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 21, 19) = 0.000165 - var_x417; - IJth(rJacobian, 23, 19) = var_x428; - IJth(rJacobian, 25, 19) = -var_x433 * (-5.3399999999999999 * var_x205 - var_x198 * var_x435); + IJth(rJacobian, 21, 19) = 0.000165 - var_x418; + IJth(rJacobian, 23, 19) = var_x429; + IJth(rJacobian, 25, 19) = -var_x434 * (-5.3399999999999999 * var_x205 - var_x198 * var_x436); IJth(rJacobian, 0, 20) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x210 - var_x216 - var_x219 - 0.33000000000000002 * var_x217 - 5.7400450788880541e-5 * var_x218 - var_x212 * var_x214); IJth(rJacobian, 19, 20) = 0.02774162496096429 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 20, 20) = (-1.0886629612142857 + var_x425 - var_x420 * (var_x210 + var_x216 + var_x219 + 0.98999999999999999 * var_x217 + 0.00017220135236664162 * var_x218 + var_x212 * var_x426)) * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 22, 20) = 0.0007561 - var_x425; - IJth(rJacobian, 26, 20) = -var_x439 * (-0.66000000000000003 * var_x217 - var_x212 * var_x442); - IJth(rJacobian, 19, 21) = (0.001 + var_x419) * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 21, 21) = -0.001 - var_x419; - IJth(rJacobian, 20, 22) = (0.001 + var_x427) * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 22, 22) = -0.001 - var_x427; + IJth(rJacobian, 20, 20) = (-1.0886629612142857 + var_x426 - var_x421 * (var_x210 + var_x216 + var_x219 + 0.98999999999999999 * var_x217 + 0.00017220135236664162 * var_x218 + var_x212 * var_x427)) * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 22, 20) = 0.0007561 - var_x426; + IJth(rJacobian, 26, 20) = -var_x440 * (-0.66000000000000003 * var_x217 - var_x212 * var_x443); + IJth(rJacobian, 19, 21) = (0.001 + var_x420) * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 21, 21) = -0.001 - var_x420; + IJth(rJacobian, 20, 22) = (0.001 + var_x428) * NV_Ith_S(mParameters, 3); + IJth(rJacobian, 22, 22) = -0.001 - var_x428; IJth(rJacobian, 0, 23) = mSetVoltageDerivativeToZero ? 0.0 : (-0.0020162999999999999 * var_x11 * var_x220 - 0.0163137 * var_x15 * var_x220); IJth(rJacobian, 19, 23) = 2.4822490395367272 * NV_Ith_S(mParameters, 3); - IJth(rJacobian, 23, 23) = -var_x428; + IJth(rJacobian, 23, 23) = -var_x429; IJth(rJacobian, 1, 24) = 0.69232869146389786 * var_x259 + 8.7400597733819945e-14 * var_x260; - IJth(rJacobian, 16, 24) = -var_x398 + var_x394 * var_x396; - IJth(rJacobian, 17, 24) = -var_x402 + var_x397 * var_x403; - IJth(rJacobian, 18, 24) = var_x398 + var_x402; - IJth(rJacobian, 24, 24) = -260 + var_x429 - var_x430 - var_x431 - 1.6231539579137989e-12 * var_x260 - 12.857532841472388 * var_x259; - IJth(rJacobian, 26, 24) = var_x443 + var_x444; - IJth(rJacobian, 31, 24) = 260 - var_x429; + IJth(rJacobian, 16, 24) = -var_x399 + var_x395 * var_x397; + IJth(rJacobian, 17, 24) = -var_x403 + var_x398 * var_x404; + IJth(rJacobian, 18, 24) = var_x399 + var_x403; + IJth(rJacobian, 24, 24) = -260 + var_x430 - var_x431 - var_x432 - 1.6231539579137989e-12 * var_x260 - 12.857532841472388 * var_x259; + IJth(rJacobian, 26, 24) = var_x444 + var_x445; + IJth(rJacobian, 31, 24) = 260 - var_x430; IJth(rJacobian, 0, 25) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x224 - var_x225 - var_x232 + 0.89000000000000001 * var_x227 - 4.4795166719999994e-11 * var_x229 - var_x201 * var_x231 - 0.0097566250000000014 * var_x221 / (pow(var_x3, 2) * pow(var_chaste_interface__Ca_buffer__Ca_SL, 2)) - 0.28183333333333332 * var_x12 * var_x2 * var_x228 / pow(var_x13, 2)); IJth(rJacobian, 1, 25) = 0.17359359486891501; IJth(rJacobian, 14, 25) = 1.7 - 1.7 * var_chaste_interface__ICaL_fCa_gate__fCaB_SL; - IJth(rJacobian, 19, 25) = -var_x406 * (1.3438550016e-10 * var_x229 - 2.6699999999999999 * var_x227 + var_x231 * var_x418); - IJth(rJacobian, 25, 25) = -171.99023312516786 + var_x436 + var_x437 - var_x433 * (var_x224 + var_x225 + var_x232 + 1.78 * var_x227 - 8.9590333439999989e-11 * var_x229 - var_x231 * var_x435); + IJth(rJacobian, 19, 25) = -var_x407 * (1.3438550016e-10 * var_x229 - 2.6699999999999999 * var_x227 + var_x231 * var_x419); + IJth(rJacobian, 25, 25) = -171.99023312516786 + var_x437 + var_x438 - var_x434 * (var_x224 + var_x225 + var_x232 + 1.78 * var_x227 - 8.9590333439999989e-11 * var_x229 - var_x231 * var_x436); IJth(rJacobian, 26, 25) = 48.958482036396518; - IJth(rJacobian, 27, 25) = 121.55000000000001 - var_x436; - IJth(rJacobian, 29, 25) = 43.550000000000004 - var_x437; - IJth(rJacobian, 40, 25) = var_x453 * (2.5024999999999999 - var_x457); - IJth(rJacobian, 43, 25) = var_x460 * (2.5024999999999999 - var_x464); + IJth(rJacobian, 27, 25) = 121.55000000000001 - var_x437; + IJth(rJacobian, 29, 25) = 43.550000000000004 - var_x438; + IJth(rJacobian, 40, 25) = var_x454 * (2.5024999999999999 - var_x458); + IJth(rJacobian, 43, 25) = var_x461 * (2.5024999999999999 - var_x465); IJth(rJacobian, 0, 26) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x234 - var_x236 - var_x240 + 0.11 * var_x237 - 5.5364812799999996e-12 * var_x239 - var_x214 * var_x238 - 0.0012058750000000001 * var_x221 / (pow(var_x1, 2) * var_x233) - 0.034833333333333334 * var_x0 * var_x228 * var_x7 / pow(var_x8, 2)); IJth(rJacobian, 15, 26) = 1.7 - 1.7 * var_chaste_interface__ICaL_fCa_gate__fCaB_jct; - IJth(rJacobian, 16, 26) = -var_x400 + var_x389 * var_chaste_interface__Jrel_SR__R; - IJth(rJacobian, 17, 26) = var_x401 * var_chaste_interface__Jrel_SR__O + var_x399 * var_x403 * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 18, 26) = var_x400 + var_x389 * var_chaste_interface__Jrel_SR__O; - IJth(rJacobian, 20, 26) = -var_x421 * (1.6609443839999999e-11 * var_x239 - 0.33000000000000002 * var_x237 + var_x238 * var_x426); - IJth(rJacobian, 24, 26) = var_x430 + var_x431; + IJth(rJacobian, 16, 26) = -var_x401 + var_x390 * var_chaste_interface__Jrel_SR__R; + IJth(rJacobian, 17, 26) = var_x402 * var_chaste_interface__Jrel_SR__O + var_x400 * var_x404 * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 18, 26) = var_x401 + var_x390 * var_chaste_interface__Jrel_SR__O; + IJth(rJacobian, 20, 26) = -var_x422 * (1.6609443839999999e-11 * var_x239 - 0.33000000000000002 * var_x237 + var_x238 * var_x427); + IJth(rJacobian, 24, 26) = var_x431 + var_x432; IJth(rJacobian, 25, 26) = 1.2484412919281114; - IJth(rJacobian, 26, 26) = -128.61534478149457 + var_x445 + var_x446 - var_x443 - var_x444 - var_x439 * (var_x234 + var_x236 + var_x240 + 0.22 * var_x237 - 1.1072962559999999e-11 * var_x239 - var_x238 * var_x442); - IJth(rJacobian, 28, 26) = 58.627450980392155 - var_x445; - IJth(rJacobian, 30, 26) = 21.029411764705884 - var_x446; - IJth(rJacobian, 41, 26) = var_x453 * (2.5490196078431375 - var_x458); - IJth(rJacobian, 44, 26) = var_x460 * (2.5490196078431375 - var_x465); - IJth(rJacobian, 25, 27) = 1.3 + var_x438; - IJth(rJacobian, 27, 27) = -1.3 + var_x448; - IJth(rJacobian, 26, 28) = 1.3 + var_x447; - IJth(rJacobian, 28, 28) = -1.3 + var_x449; - IJth(rJacobian, 25, 29) = 0.029999999999999999 + var_x438; - IJth(rJacobian, 29, 29) = -0.029999999999999999 + var_x448; - IJth(rJacobian, 26, 30) = 0.029999999999999999 + var_x447; - IJth(rJacobian, 30, 30) = -0.029999999999999999 + var_x449; - IJth(rJacobian, 24, 31) = 65 + var_x432; - IJth(rJacobian, 31, 31) = -65 - var_x432; + IJth(rJacobian, 26, 26) = -128.61534478149457 + var_x446 + var_x447 - var_x444 - var_x445 - var_x440 * (var_x234 + var_x236 + var_x240 + 0.22 * var_x237 - 1.1072962559999999e-11 * var_x239 - var_x238 * var_x443); + IJth(rJacobian, 28, 26) = 58.627450980392155 - var_x446; + IJth(rJacobian, 30, 26) = 21.029411764705884 - var_x447; + IJth(rJacobian, 41, 26) = var_x454 * (2.5490196078431375 - var_x459); + IJth(rJacobian, 44, 26) = var_x461 * (2.5490196078431375 - var_x466); + IJth(rJacobian, 25, 27) = 1.3 + var_x439; + IJth(rJacobian, 27, 27) = -1.3 + var_x449; + IJth(rJacobian, 26, 28) = 1.3 + var_x448; + IJth(rJacobian, 28, 28) = -1.3 + var_x450; + IJth(rJacobian, 25, 29) = 0.029999999999999999 + var_x439; + IJth(rJacobian, 29, 29) = -0.029999999999999999 + var_x449; + IJth(rJacobian, 26, 30) = 0.029999999999999999 + var_x448; + IJth(rJacobian, 30, 30) = -0.029999999999999999 + var_x450; + IJth(rJacobian, 24, 31) = 65 + var_x433; + IJth(rJacobian, 31, 31) = -65 - var_x433; IJth(rJacobian, 1, 32) = 0.019599999999999999 + var_x261; IJth(rJacobian, 32, 32) = -0.019599999999999999 - var_x261; IJth(rJacobian, 1, 33) = 0.003032 + var_x262; - IJth(rJacobian, 33, 33) = -3.1999999999999999e-5 + var_x450; + IJth(rJacobian, 33, 33) = -3.1999999999999999e-5 + var_x451; IJth(rJacobian, 34, 33) = -0.0030000000000000001; IJth(rJacobian, 1, 34) = 0.0063300000000000006 + var_x262; - IJth(rJacobian, 33, 34) = var_x450; + IJth(rJacobian, 33, 34) = var_x451; IJth(rJacobian, 34, 34) = -0.0063300000000000006; IJth(rJacobian, 1, 35) = 0.23799999999999999 + var_x263; IJth(rJacobian, 35, 35) = -0.23799999999999999 - var_x263; IJth(rJacobian, 1, 36) = 0.016159999999999997 + var_x264; - IJth(rJacobian, 36, 36) = -0.00046000000000000001 + var_x451; + IJth(rJacobian, 36, 36) = -0.00046000000000000001 + var_x452; IJth(rJacobian, 37, 36) = -0.015699999999999999; IJth(rJacobian, 1, 37) = 0.015757 + var_x264; - IJth(rJacobian, 36, 37) = var_x451; + IJth(rJacobian, 36, 37) = var_x452; IJth(rJacobian, 37, 37) = -0.015757; IJth(rJacobian, 1, 38) = 0.059999999999999998 + var_x265; IJth(rJacobian, 38, 38) = -0.059999999999999998 - var_x265; - IJth(rJacobian, 39, 39) = -0.059999999999999998 + var_x456 * var_chaste_interface__Ca_buffer__Cai + (-2.5 + var_x452) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 40, 39) = (-2.5024999999999999 + var_x457) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 41, 39) = (-2.5490196078431375 + var_x458) * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 39, 39) = -0.059999999999999998 + var_x457 * var_chaste_interface__Ca_buffer__Cai + (-2.5 + var_x453) * var_chaste_interface__Ca_buffer__Cai; + IJth(rJacobian, 40, 39) = (-2.5024999999999999 + var_x458) * var_chaste_interface__Ca_buffer__Ca_SL; + IJth(rJacobian, 41, 39) = (-2.5490196078431375 + var_x459) * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 39, 40) = (-0.076923076923076927 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 40, 40) = -0.059999999999999998 + var_x456 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x455) * var_chaste_interface__Ca_buffer__Ca_SL; + IJth(rJacobian, 40, 40) = -0.059999999999999998 + var_x457 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x456) * var_chaste_interface__Ca_buffer__Ca_SL; IJth(rJacobian, 41, 40) = (-0.078431372549019607 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_jct) * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 39, 41) = (-0.0019615384615384616 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_Cytosol) * var_chaste_interface__Ca_buffer__Cai; IJth(rJacobian, 40, 41) = (-0.0019635 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Indo1_SL) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 41, 41) = -0.059999999999999998 + var_x456 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x454) * var_chaste_interface__Ca_buffer__Ca_jct; - IJth(rJacobian, 42, 42) = -0.11 + var_x463 * var_chaste_interface__Ca_buffer__Cai + (-2.5 + var_x459) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 43, 42) = (-2.5024999999999999 + var_x464) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 44, 42) = (-2.5490196078431375 + var_x465) * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 41, 41) = -0.059999999999999998 + var_x457 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x455) * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 42, 42) = -0.11 + var_x464 * var_chaste_interface__Ca_buffer__Cai + (-2.5 + var_x460) * var_chaste_interface__Ca_buffer__Cai; + IJth(rJacobian, 43, 42) = (-2.5024999999999999 + var_x465) * var_chaste_interface__Ca_buffer__Ca_SL; + IJth(rJacobian, 44, 42) = (-2.5490196078431375 + var_x466) * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 42, 43) = (-0.076923076923076927 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol) * var_chaste_interface__Ca_buffer__Cai; - IJth(rJacobian, 43, 43) = -0.11 + var_x463 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x462) * var_chaste_interface__Ca_buffer__Ca_SL; + IJth(rJacobian, 43, 43) = -0.11 + var_x464 * var_chaste_interface__Ca_buffer__Ca_SL + (-0.076999999999999999 + var_x463) * var_chaste_interface__Ca_buffer__Ca_SL; IJth(rJacobian, 44, 43) = (-0.078431372549019607 + 3.0769230769230771 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_jct) * var_chaste_interface__Ca_buffer__Ca_jct; IJth(rJacobian, 42, 44) = (-0.0019615384615384616 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_Cytosol) * var_chaste_interface__Ca_buffer__Cai; IJth(rJacobian, 43, 44) = (-0.0019635 + 0.078461538461538471 * var_chaste_interface__indo_fluo_Ca_buffer_not_connected__Ca_Fluo3_SL) * var_chaste_interface__Ca_buffer__Ca_SL; - IJth(rJacobian, 44, 44) = -0.11 + var_x463 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x461) * var_chaste_interface__Ca_buffer__Ca_jct; + IJth(rJacobian, 44, 44) = -0.11 + var_x464 * var_chaste_interface__Ca_buffer__Ca_jct + (-0.002 + var_x462) * var_chaste_interface__Ca_buffer__Ca_jct; } N_Vector Dynamicshannon_wang_puglisi_weber_bers_2004FromCellMLCvode::ComputeDerivedQuantities(double var_chaste_interface__environment__time, const N_Vector & rY) diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp index 4842892c..cf63e160 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp @@ -173,33 +173,38 @@ const double var_x0 = 1 / NV_Ith_S(mParameters, 0); const double var_x1 = pow(var_chaste_interface__sodium_channel_m_gate__m, 3) * NV_Ith_S(mParameters, 1); const double var_x2 = var_x0 * (-40 + var_chaste_interface__membrane__V); - const double var_x3 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x4 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(-var_x4); - const double var_x6 = -1 + 0.006737946999085467 * var_x5; - const double var_x7 = 0.10000000000000001 / var_x6; - const double var_x8 = 50 + var_chaste_interface__membrane__V; - const double var_x9 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); - const double var_x10 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x11 = exp(-4.5 - var_x4); - const double var_x12 = 1 + var_x11; - const double var_x13 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); - const double var_x14 = -1 + 0.0015034391929775724 * var_x5; - const double var_x15 = 0.01 / var_x14; - const double var_x16 = 65 + var_chaste_interface__membrane__V; - const double var_x17 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x5 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x7 = exp(-5 - var_x6); + const double var_x8 = -1 + var_x7; + const double var_x9 = 0.10000000000000001 / var_x8; + const double var_x10 = 50 + var_chaste_interface__membrane__V; + const double var_x11 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x12 = 1.0000000000287557e-7 * var_x3; + const double var_x13 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x14 = exp(-4.5 - var_x6); + const double var_x15 = 1 + var_x14; + const double var_x16 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x17 = exp(-6.5 - var_x6); + const double var_x18 = -1 + var_x17; + const double var_x19 = 0.01 / var_x18; + const double var_x20 = 65 + var_chaste_interface__membrane__V; + const double var_x21 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x22 = 1.0000000000287556e-8 * var_x3; // Matrix entries IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (var_x0 * (-NV_Ith_S(mParameters, 2) - var_x1 * var_chaste_interface__sodium_channel_h_gate__h - pow(var_chaste_interface__potassium_channel_n_gate__n, 4) * NV_Ith_S(mParameters, 3))); - IJth(rJacobian, 1, 0) = (1 - var_chaste_interface__sodium_channel_m_gate__m) * ((var_x3) ? (0.049999067384036401) : (-var_x7 - 6.7379469990854672e-5 * var_x5 * var_x8 / pow(var_x6, 2))) + 0.22222222222222221 * var_x9 * var_chaste_interface__sodium_channel_m_gate__m; - IJth(rJacobian, 2, 0) = -0.050000000000000003 * var_x10 * (0.070000000000000007 - 0.070000000000000007 * var_chaste_interface__sodium_channel_h_gate__h) - 0.10000000000000001 * var_x11 * var_chaste_interface__sodium_channel_h_gate__h / pow(var_x12, 2); - IJth(rJacobian, 3, 0) = (1 - var_chaste_interface__potassium_channel_n_gate__n) * ((var_x13) ? (0.0049999067383819564) : (-var_x15 - 1.5034391929775725e-6 * var_x16 * var_x5 / pow(var_x14, 2))) - 0.0015625000000000001 * var_x17 * var_chaste_interface__potassium_channel_n_gate__n; + IJth(rJacobian, 1, 0) = (1 - var_chaste_interface__sodium_channel_m_gate__m) * ((var_x5) ? (-0.050000000000000003 * var_x3 - 0.050000000000000003 * var_x4) : (-var_x9 - 0.01 * var_x10 * var_x7 / pow(var_x8, 2))) + 0.22222222222222221 * var_x11 * var_chaste_interface__sodium_channel_m_gate__m; + IJth(rJacobian, 2, 0) = -0.050000000000000003 * var_x13 * (0.070000000000000007 - 0.070000000000000007 * var_chaste_interface__sodium_channel_h_gate__h) - 0.10000000000000001 * var_x14 * var_chaste_interface__sodium_channel_h_gate__h / pow(var_x15, 2); + IJth(rJacobian, 3, 0) = (1 - var_chaste_interface__potassium_channel_n_gate__n) * ((var_x16) ? (-0.0050000000000000001 * var_x3 - 0.0050000000000000001 * var_x4) : (-var_x19 - 0.001 * var_x17 * var_x20 / pow(var_x18, 2))) - 0.0015625000000000001 * var_x21 * var_chaste_interface__potassium_channel_n_gate__n; IJth(rJacobian, 0, 1) = mSetVoltageDerivativeToZero ? 0.0 : (-3 * var_x2 * pow(var_chaste_interface__sodium_channel_m_gate__m, 2) * NV_Ith_S(mParameters, 1) * var_chaste_interface__sodium_channel_h_gate__h); - IJth(rJacobian, 1, 1) = -((var_x3) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-var_x7 * var_x8)) - 4 * var_x9; + IJth(rJacobian, 1, 1) = -((var_x5) ? (var_x12 + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-var_x12 - 1.0000000000287557e-7 * var_x4)) : (-var_x10 * var_x9)) - 4 * var_x11; IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x1 * var_x2); - IJth(rJacobian, 2, 2) = -1 / var_x12 - 0.070000000000000007 * var_x10; + IJth(rJacobian, 2, 2) = -1 / var_x15 - 0.070000000000000007 * var_x13; IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-4 * var_x0 * pow(var_chaste_interface__potassium_channel_n_gate__n, 3) * (87 + var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3)); - IJth(rJacobian, 3, 3) = -((var_x13) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-var_x15 * var_x16)) - 0.125 * var_x17; + IJth(rJacobian, 3, 3) = -((var_x16) ? (var_x22 + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-var_x22 - 1.0000000000287556e-8 * var_x4)) : (-var_x19 * var_x20)) - 0.125 * var_x21; } N_Vector Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLCvode::ComputeDerivedQuantities(double var_chaste_interface__environment__time, const N_Vector & rY) diff --git a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt index b65c309f..b56efb4d 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/Cvode_with_jacobian/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt @@ -173,33 +173,38 @@ const double var_x0 = 1 / NV_Ith_S(mParameters, 0); const double var_x1 = pow(var_chaste_interface__sodium_channel_m_gate__m, 3) * NV_Ith_S(mParameters, 1); const double var_x2 = var_x0 * (-40 + var_chaste_interface__membrane__V); - const double var_x3 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x4 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(var_x4); - const double var_x6 = -1 + 0.006737946999085467 * var_x5; - const double var_x7 = 0.10000000000000001 / var_x6; - const double var_x8 = 50 + var_chaste_interface__membrane__V; - const double var_x9 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); - const double var_x10 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x11 = exp(-4.5 + var_x4); - const double var_x12 = 1 + var_x11; - const double var_x13 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); - const double var_x14 = -1 + 0.0015034391929775724 * var_x5; - const double var_x15 = 0.01 / var_x14; - const double var_x16 = 65 + var_chaste_interface__membrane__V; - const double var_x17 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x5 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x6 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x7 = exp(-5 + var_x6); + const double var_x8 = -1 + var_x7; + const double var_x9 = 0.10000000000000001 / var_x8; + const double var_x10 = 50 + var_chaste_interface__membrane__V; + const double var_x11 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x12 = 1.0000000000287557e-7 * var_x3; + const double var_x13 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x14 = exp(-4.5 + var_x6); + const double var_x15 = 1 + var_x14; + const double var_x16 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x17 = exp(-6.5 + var_x6); + const double var_x18 = -1 + var_x17; + const double var_x19 = 0.01 / var_x18; + const double var_x20 = 65 + var_chaste_interface__membrane__V; + const double var_x21 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x22 = 1.0000000000287556e-8 * var_x3; // Matrix entries IJth(rJacobian, 0, 0) = mSetVoltageDerivativeToZero ? 0.0 : (var_x0 * (-NV_Ith_S(mParameters, 2) - var_x1 * var_chaste_interface__sodium_channel_h_gate__h - pow(var_chaste_interface__potassium_channel_n_gate__n, 4) * NV_Ith_S(mParameters, 3))); - IJth(rJacobian, 1, 0) = (1 - var_chaste_interface__sodium_channel_m_gate__m) * ((var_x3) ? (0.049999067384036401) : (-var_x7 - 6.7379469990854672e-5 * var_x5 * var_x8 / pow(var_x6, 2))) + 0.22222222222222221 * var_x9 * var_chaste_interface__sodium_channel_m_gate__m; - IJth(rJacobian, 2, 0) = -0.050000000000000003 * var_x10 * (0.070000000000000007 - 0.070000000000000007 * var_chaste_interface__sodium_channel_h_gate__h) - 0.10000000000000001 * var_x11 * var_chaste_interface__sodium_channel_h_gate__h / pow(var_x12, 2); - IJth(rJacobian, 3, 0) = (1 - var_chaste_interface__potassium_channel_n_gate__n) * ((var_x13) ? (0.0049999067383819564) : (-var_x15 - 1.5034391929775725e-6 * var_x16 * var_x5 / pow(var_x14, 2))) - 0.0015625000000000001 * var_x17 * var_chaste_interface__potassium_channel_n_gate__n; + IJth(rJacobian, 1, 0) = (1 - var_chaste_interface__sodium_channel_m_gate__m) * ((var_x5) ? (-0.050000000000000003 * var_x3 - 0.050000000000000003 * var_x4) : (-var_x9 - 0.01 * var_x10 * var_x7 / pow(var_x8, 2))) + 0.22222222222222221 * var_x11 * var_chaste_interface__sodium_channel_m_gate__m; + IJth(rJacobian, 2, 0) = -0.050000000000000003 * var_x13 * (0.070000000000000007 - 0.070000000000000007 * var_chaste_interface__sodium_channel_h_gate__h) - 0.10000000000000001 * var_x14 * var_chaste_interface__sodium_channel_h_gate__h / pow(var_x15, 2); + IJth(rJacobian, 3, 0) = (1 - var_chaste_interface__potassium_channel_n_gate__n) * ((var_x16) ? (-0.0050000000000000001 * var_x3 - 0.0050000000000000001 * var_x4) : (-var_x19 - 0.001 * var_x17 * var_x20 / pow(var_x18, 2))) - 0.0015625000000000001 * var_x21 * var_chaste_interface__potassium_channel_n_gate__n; IJth(rJacobian, 0, 1) = mSetVoltageDerivativeToZero ? 0.0 : (-3 * var_x2 * pow(var_chaste_interface__sodium_channel_m_gate__m, 2) * NV_Ith_S(mParameters, 1) * var_chaste_interface__sodium_channel_h_gate__h); - IJth(rJacobian, 1, 1) = -((var_x3) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-var_x7 * var_x8)) - 4 * var_x9; + IJth(rJacobian, 1, 1) = -((var_x5) ? (var_x12 + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-var_x12 - 1.0000000000287557e-7 * var_x4)) : (-var_x10 * var_x9)) - 4 * var_x11; IJth(rJacobian, 0, 2) = mSetVoltageDerivativeToZero ? 0.0 : (-var_x1 * var_x2); - IJth(rJacobian, 2, 2) = -1 / var_x12 - 0.070000000000000007 * var_x10; + IJth(rJacobian, 2, 2) = -1 / var_x15 - 0.070000000000000007 * var_x13; IJth(rJacobian, 0, 3) = mSetVoltageDerivativeToZero ? 0.0 : (-4 * var_x0 * pow(var_chaste_interface__potassium_channel_n_gate__n, 3) * (87 + var_chaste_interface__membrane__V) * NV_Ith_S(mParameters, 3)); - IJth(rJacobian, 3, 3) = -((var_x13) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-var_x15 * var_x16)) - 0.125 * var_x17; + IJth(rJacobian, 3, 3) = -((var_x16) ? (var_x22 + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-var_x22 - 1.0000000000287556e-8 * var_x4)) : (-var_x19 * var_x20)) - 0.125 * var_x21; } N_Vector Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLCvode::ComputeDerivedQuantities(double var_chaste_interface__environment__time, const N_Vector & rY) diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL1/hodgkin_huxley_squid_axon_model_1952_modified.cpp b/chaste_codegen/data/tests/chaste_reference_models/GRL1/hodgkin_huxley_squid_axon_model_1952_modified.cpp index 9a03c4a6..9df144b3 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL1/hodgkin_huxley_squid_axon_model_1952_modified.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL1/hodgkin_huxley_squid_axon_model_1952_modified.cpp @@ -284,15 +284,18 @@ // Units: millivolt; Initial value: -75.0 - const double var_x3 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x4 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(-var_x4); - const double var_x6 = -1 + 0.006737946999085467 * var_x5; - const double var_x7 = 0.10000000000000001 / var_x6; - const double var_x8 = 50 + var_chaste_interface__membrane__V; - const double var_x9 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x5 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x7 = exp(-5 - var_x6); + const double var_x8 = -1 + var_x7; + const double var_x9 = 0.10000000000000001 / var_x8; + const double var_x10 = 50 + var_chaste_interface__membrane__V; + const double var_x11 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x12 = 1.0000000000287557e-7 * var_x3; - partialF = -((var_x3) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-var_x7 * var_x8)) - 4 * var_x9; + partialF = -((var_x5) ? (var_x12 + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-var_x12 - 1.0000000000287557e-7 * var_x4)) : (-var_x10 * var_x9)) - 4 * var_x11; } else { @@ -330,12 +333,12 @@ // Units: millivolt; Initial value: -75.0 - const double var_x4 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x10 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x11 = exp(-4.5 - var_x4); - const double var_x12 = 1 + var_x11; + const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x13 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x14 = exp(-4.5 - var_x6); + const double var_x15 = 1 + var_x14; - partialF = -1 / var_x12 - 0.070000000000000007 * var_x10; + partialF = -1 / var_x15 - 0.070000000000000007 * var_x13; } else { @@ -373,15 +376,18 @@ // Units: millivolt; Initial value: -75.0 - const double var_x4 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(-var_x4); - const double var_x13 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); - const double var_x14 = -1 + 0.0015034391929775724 * var_x5; - const double var_x15 = 0.01 / var_x14; - const double var_x16 = 65 + var_chaste_interface__membrane__V; - const double var_x17 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x16 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x17 = exp(-6.5 - var_x6); + const double var_x18 = -1 + var_x17; + const double var_x19 = 0.01 / var_x18; + const double var_x20 = 65 + var_chaste_interface__membrane__V; + const double var_x21 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x22 = 1.0000000000287556e-8 * var_x3; - partialF = -((var_x13) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-var_x15 * var_x16)) - 0.125 * var_x17; + partialF = -((var_x16) ? (var_x22 + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-var_x22 - 1.0000000000287556e-8 * var_x4)) : (-var_x19 * var_x20)) - 0.125 * var_x21; } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL1/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/GRL1/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt index f59e0ffc..2fced226 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL1/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL1/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt @@ -284,15 +284,18 @@ // Units: millivolt; Initial value: -75.0 - const double var_x3 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x4 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(var_x4); - const double var_x6 = -1 + 0.006737946999085467 * var_x5; - const double var_x7 = 0.10000000000000001 / var_x6; - const double var_x8 = 50 + var_chaste_interface__membrane__V; - const double var_x9 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x5 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x6 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x7 = exp(-5 + var_x6); + const double var_x8 = -1 + var_x7; + const double var_x9 = 0.10000000000000001 / var_x8; + const double var_x10 = 50 + var_chaste_interface__membrane__V; + const double var_x11 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x12 = 1.0000000000287557e-7 * var_x3; - partialF = -((var_x3) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-var_x7 * var_x8)) - 4 * var_x9; + partialF = -((var_x5) ? (var_x12 + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-var_x12 - 1.0000000000287557e-7 * var_x4)) : (-var_x10 * var_x9)) - 4 * var_x11; } else { @@ -330,12 +333,12 @@ // Units: millivolt; Initial value: -75.0 - const double var_x4 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x10 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x11 = exp(-4.5 + var_x4); - const double var_x12 = 1 + var_x11; + const double var_x6 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x13 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x14 = exp(-4.5 + var_x6); + const double var_x15 = 1 + var_x14; - partialF = -1 / var_x12 - 0.070000000000000007 * var_x10; + partialF = -1 / var_x15 - 0.070000000000000007 * var_x13; } else { @@ -373,15 +376,18 @@ // Units: millivolt; Initial value: -75.0 - const double var_x4 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(var_x4); - const double var_x13 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); - const double var_x14 = -1 + 0.0015034391929775724 * var_x5; - const double var_x15 = 0.01 / var_x14; - const double var_x16 = 65 + var_chaste_interface__membrane__V; - const double var_x17 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x6 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x16 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x17 = exp(-6.5 + var_x6); + const double var_x18 = -1 + var_x17; + const double var_x19 = 0.01 / var_x18; + const double var_x20 = 65 + var_chaste_interface__membrane__V; + const double var_x21 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x22 = 1.0000000000287556e-8 * var_x3; - partialF = -((var_x13) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-var_x15 * var_x16)) - 0.125 * var_x17; + partialF = -((var_x16) ? (var_x22 + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-var_x22 - 1.0000000000287556e-8 * var_x4)) : (-var_x19 * var_x20)) - 0.125 * var_x21; } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL1Opt/beeler_reuter_model_1977.cpp b/chaste_codegen/data/tests/chaste_reference_models/GRL1Opt/beeler_reuter_model_1977.cpp index 8e68f46b..a74ba384 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL1Opt/beeler_reuter_model_1977.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL1Opt/beeler_reuter_model_1977.cpp @@ -163,7 +163,7 @@ class Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables : public Abstra for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return 7.2999570997221346 + 0.099998134770640151 * var_chaste_interface__membrane__V + 4 * (-1 + 29.964100047397014 * exp(0.040000000000000001 * var_chaste_interface__membrane__V)) / (8.3311374876876929 * exp(0.040000000000000001 * var_chaste_interface__membrane__V) + 69.407851838755192 * exp(0.080000000000000002 * var_chaste_interface__membrane__V)); + return -5.0000000000327567e-7 / (1 - exp(1.0000000000065512e-7)) + 4 * (-1 + exp(3.3999999999999999 + 0.040000000000000001 * var_chaste_interface__membrane__V)) / (exp(2.1200000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V) + exp(4.2400000000000002 + 0.080000000000000002 * var_chaste_interface__membrane__V)) + 199999.99999868975 * (23.000002500000001 + var_chaste_interface__membrane__V) * (5.0000000000327567e-7 / (1 - exp(1.0000000000065512e-7)) + 5.0000000000327567e-7 / (1 - exp(-1.0000000000065512e-7))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -185,7 +185,7 @@ class Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables : public Abstra for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return 4 * (-1 + 29.964100047397014 * exp(0.040000000000000001 * var_chaste_interface__membrane__V)) / (8.3311374876876929 * exp(0.040000000000000001 * var_chaste_interface__membrane__V) + 69.407851838755192 * exp(0.080000000000000002 * var_chaste_interface__membrane__V)) + 0.20000000000000001 * (23 + var_chaste_interface__membrane__V) / (1 - 0.39851904108451419 * exp(-0.040000000000000001 * var_chaste_interface__membrane__V)); + return 4 * (-1 + exp(3.3999999999999999 + 0.040000000000000001 * var_chaste_interface__membrane__V)) / (exp(2.1200000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V) + exp(4.2400000000000002 + 0.080000000000000002 * var_chaste_interface__membrane__V)) + 0.20000000000000001 * (23 + var_chaste_interface__membrane__V) / (1 - exp(-0.92000000000000004 - 0.040000000000000001 * var_chaste_interface__membrane__V)); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -295,7 +295,7 @@ class Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables : public Abstra for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -47.000000999999997) && (var_chaste_interface__membrane__V <= -46.999999000000003)) ? (33.499561670622036 + 0.49999067384209878 * var_chaste_interface__membrane__V) : (-(47 + var_chaste_interface__membrane__V) / (-1 + 0.0090952771016958155 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -47.000000999999997) && (var_chaste_interface__membrane__V <= -46.999999000000003)) ? (1.0000000000287557e-6 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (47.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-6 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-6 / (-1 + exp(-1.0000000000287557e-7)))) : (-(47 + var_chaste_interface__membrane__V) / (-1 + exp(-4.7000000000000002 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -730,20 +730,24 @@ std::shared_ptr Cell const double var_x0 = 1 / mParameters[1]; const double var_x1 = 0.040000000000000001 * var_chaste_interface__membrane__V; - const double var_x2 = exp(var_x1); - const double var_x3 = exp(0.080000000000000002 * var_chaste_interface__membrane__V); - const double var_x4 = 4.794256007583523 * var_x2 / (8.3311374876876929 * var_x2 + 69.407851838755192 * var_x3) + 0.00083031481087087031 * (-1 + 29.964100047397014 * var_x2) * (-0.3332454995075077 * var_x2 - 5.5526281471004157 * var_x3) / pow((var_x3 + 0.12003162851145673 * var_x2), 2); - const double var_x5 = mParameters[6] * var_chaste_interface__time_dependent_outward_current_x1_gate__x1; - const double var_x6 = mParameters[0] * var_chaste_interface__slow_inward_current_f_gate__f; - const double var_x7 = var_x6 * var_chaste_interface__slow_inward_current_d_gate__d; - const double var_x8 = pow(var_chaste_interface__sodium_current_m_gate__m, 3); - const double var_x9 = var_x8 * mParameters[2] * var_chaste_interface__sodium_current_j_gate__j; - const double var_x10 = exp(-var_x1); - const double var_x11 = var_x10 * (0.24659696394160646 - 5.3655559711219754 * var_x2); - const double var_x12 = 3.0000000000000001e-5 + var_x7 + 0.21462223884487899 * var_x5 + var_x9 * var_chaste_interface__sodium_current_h_gate__h + 0.040000000000000001 * var_x11 * var_x5; - const double var_x13 = 1 - 0.39851904108451419 * var_x10; + const double var_x2 = exp(2.1200000000000001 + var_x1); + const double var_x3 = exp(4.2400000000000002 + 0.080000000000000002 * var_chaste_interface__membrane__V); + const double var_x4 = var_x2 + var_x3; + const double var_x5 = exp(3.3999999999999999 + var_x1); + const double var_x6 = 0.16 * var_x5 / var_x4 + 4 * (-1 + var_x5) * (-0.040000000000000001 * var_x2 - 0.080000000000000002 * var_x3) / pow(var_x4, 2); + const double var_x7 = mParameters[0] * var_chaste_interface__slow_inward_current_f_gate__f; + const double var_x8 = var_x7 * var_chaste_interface__slow_inward_current_d_gate__d; + const double var_x9 = pow(var_chaste_interface__sodium_current_m_gate__m, 3); + const double var_x10 = var_x9 * mParameters[2] * var_chaste_interface__sodium_current_j_gate__j; + const double var_x11 = exp(3.0800000000000001 + var_x1); + const double var_x12 = 1 / exp(1.4000000000000001 + var_x1); + const double var_x13 = var_x12 * mParameters[6]; + const double var_x14 = -1 + var_x11; + const double var_x15 = 3.0000000000000001e-5 + var_x8 + var_x10 * var_chaste_interface__sodium_current_h_gate__h + 0.040000000000000001 * var_x11 * var_x13 * var_chaste_interface__time_dependent_outward_current_x1_gate__x1 - 0.040000000000000001 * var_x12 * var_x14 * mParameters[6] * var_chaste_interface__time_dependent_outward_current_x1_gate__x1; + const double var_x16 = exp(-0.92000000000000004 - var_x1); + const double var_x17 = 1 - var_x16; - partialF = (((var_chaste_interface__membrane__V >= -23.000002500000001) && (var_chaste_interface__membrane__V <= -22.999997499999999)) ? (var_x0 * (-var_x12 + (-0.099998134770640151 - var_x4) * mParameters[5])) : (var_x0 * (-var_x12 + (-var_x4 - 0.20000000000000001 / var_x13 + 0.0031881523286761138 * var_x10 * (23 + var_chaste_interface__membrane__V) / pow(var_x13, 2)) * mParameters[5]))); + partialF = (((var_chaste_interface__membrane__V >= -23.000002500000001) && (var_chaste_interface__membrane__V <= -22.999997499999999)) ? (var_x0 * (-var_x15 + (-var_x6 - 0.10000000000000001 / (1 - exp(1.0000000000065512e-7)) - 0.10000000000000001 / (1 - exp(-1.0000000000065512e-7))) * mParameters[5])) : (var_x0 * (-var_x15 + (-var_x6 - 0.20000000000000001 / var_x17 + 0.0080000000000000002 * var_x16 * (23 + var_chaste_interface__membrane__V) / pow(var_x17, 2)) * mParameters[5]))); } else { @@ -790,11 +794,11 @@ std::shared_ptr Cell - const double var_x6 = mParameters[0] * var_chaste_interface__slow_inward_current_f_gate__f; - const double var_x7 = var_x6 * var_chaste_interface__slow_inward_current_d_gate__d; - const double var_x14 = var_x7 / var_chaste_interface__slow_inward_current__Cai; + const double var_x7 = mParameters[0] * var_chaste_interface__slow_inward_current_f_gate__f; + const double var_x8 = var_x7 * var_chaste_interface__slow_inward_current_d_gate__d; + const double var_x18 = var_x8 / var_chaste_interface__slow_inward_current__Cai; - partialF = -0.070000000000000007 - 0.13028700000000001 * var_x14; + partialF = -0.070000000000000007 - 0.13028700000000001 * var_x18; } else { @@ -838,17 +842,27 @@ std::shared_ptr Cell // Units: mV; Initial value: -84.624 + // Lookup table indexing + const bool _oob_0 = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->CheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x21 = exp(-0.056000000000000001 * var_chaste_interface__membrane__V); - const double var_x22 = (var_chaste_interface__membrane__V >= -47.000000999999997) && (var_chaste_interface__membrane__V <= -46.999999000000003); - const double var_x23 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x24 = exp(-var_x23); - const double var_x25 = -1 + 0.0090952771016958155 * var_x24; - const double var_x26 = 1 / var_x25; - const double var_x28 = 47 + var_chaste_interface__membrane__V; - const double var_x29 = 0.70955267274899092 * var_x21; + const double var_x26 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x27 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x28 = _lt_0_row[13]; + const double var_x29 = (var_chaste_interface__membrane__V >= -47.000000999999997) && (var_chaste_interface__membrane__V <= -46.999999000000003); + const double var_x30 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x31 = exp(-4.7000000000000002 - var_x30); + const double var_x32 = -1 + var_x31; + const double var_x33 = 1 / var_x32; + const double var_x34 = 47 + var_chaste_interface__membrane__V; + const double var_x35 = 40 * var_x28; + const double var_x36 = 1.0000000000287557e-6 * var_x26; - partialF = ((var_x22) ? (-33.499561670622036 - var_x29 - 0.49999067384209878 * var_chaste_interface__membrane__V) : (-var_x29 + var_x26 * var_x28)); + partialF = ((var_x29) ? (-var_x35 - var_x36 - 499999.99998562218 * (47.000000999999997 + var_chaste_interface__membrane__V) * (-var_x36 - 1.0000000000287557e-6 * var_x27)) : (-var_x35 + var_x33 * var_x34)); } else { @@ -888,15 +902,15 @@ std::shared_ptr Cell - const double var_x30 = 0.25 * var_chaste_interface__membrane__V - 0.25 * mParameters[4]; - const double var_x31 = exp(-19.25 - var_x30); - const double var_x32 = 0.126 * var_x31; - const double var_x33 = exp(-1.845 + 0.082000000000000003 * mParameters[4] - 0.082000000000000003 * var_chaste_interface__membrane__V); - const double var_x34 = 1 + var_x33; - const double var_x35 = 1 / var_x34; - const double var_x36 = var_x32 + 1.7 * var_x35; + const double var_x37 = 0.25 * var_chaste_interface__membrane__V - 0.25 * mParameters[4]; + const double var_x38 = exp(-19.25 - var_x37); + const double var_x39 = 0.126 * var_x38; + const double var_x40 = exp(-1.845 + 0.082000000000000003 * mParameters[4] - 0.082000000000000003 * var_chaste_interface__membrane__V); + const double var_x41 = 1 + var_x40; + const double var_x42 = 1 / var_x41; + const double var_x43 = var_x39 + 1.7 * var_x42; - partialF = -var_x36; + partialF = -var_x43; } else { @@ -936,20 +950,20 @@ std::shared_ptr Cell - const double var_x23 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x30 = 0.25 * var_chaste_interface__membrane__V - 0.25 * mParameters[4]; - const double var_x42 = exp(-3.2000000000000002 - var_x23 + 0.10000000000000001 * mParameters[4]); - const double var_x43 = 1 + var_x42; - const double var_x44 = 1 / var_x43; - const double var_x45 = exp(-15.600000000000001 + 0.20000000000000001 * mParameters[4] - 0.20000000000000001 * var_chaste_interface__membrane__V); - const double var_x46 = 1 + var_x45; - const double var_x47 = 1 / var_x46; - const double var_x48 = exp(-19.5 - var_x30); - const double var_x49 = var_x47 * var_x48; - const double var_x50 = 0.055 * var_x49; - const double var_x51 = var_x50 + 0.29999999999999999 * var_x44; + const double var_x30 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x37 = 0.25 * var_chaste_interface__membrane__V - 0.25 * mParameters[4]; + const double var_x49 = exp(-3.2000000000000002 - var_x30 + 0.10000000000000001 * mParameters[4]); + const double var_x50 = 1 + var_x49; + const double var_x51 = 1 / var_x50; + const double var_x52 = exp(-15.600000000000001 + 0.20000000000000001 * mParameters[4] - 0.20000000000000001 * var_chaste_interface__membrane__V); + const double var_x53 = 1 + var_x52; + const double var_x54 = 1 / var_x53; + const double var_x55 = exp(-19.5 - var_x37); + const double var_x56 = var_x54 * var_x55; + const double var_x57 = 0.055 * var_x56; + const double var_x58 = var_x57 + 0.29999999999999999 * var_x51; - partialF = -var_x51; + partialF = -var_x58; } else { @@ -1001,16 +1015,16 @@ std::shared_ptr Cell // LCOV_EXCL_STOP const double* const _lt_0_row = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x55 = exp(2.2000000000000002 + 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x56 = 1 + var_x55; - const double var_x57 = _lt_0_row[7]; - const double var_x58 = var_x57 / var_x56; - const double var_x60 = exp(0.35997120230381568 - 0.071994240460763137 * var_chaste_interface__membrane__V); - const double var_x61 = 1 + var_x60; - const double var_x62 = _lt_0_row[5]; - const double var_x63 = var_x62 / var_x61; + const double var_x62 = exp(2.2000000000000002 + 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x63 = 1 + var_x62; + const double var_x64 = _lt_0_row[7]; + const double var_x65 = var_x64 / var_x63; + const double var_x67 = exp(0.35997120230381568 - 0.071994240460763137 * var_chaste_interface__membrane__V); + const double var_x68 = 1 + var_x67; + const double var_x69 = _lt_0_row[5]; + const double var_x70 = var_x69 / var_x68; - partialF = -0.070000000000000007 * var_x58 - 0.095000000000000001 * var_x63; + partialF = -0.070000000000000007 * var_x65 - 0.095000000000000001 * var_x70; } else { @@ -1062,16 +1076,16 @@ std::shared_ptr Cell // LCOV_EXCL_STOP const double* const _lt_0_row = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x65 = exp(4.197901049475262 + 0.14992503748125938 * var_chaste_interface__membrane__V); - const double var_x66 = 1 + var_x65; - const double var_x67 = _lt_0_row[9]; - const double var_x68 = var_x67 / var_x66; - const double var_x69 = exp(-6 - 0.20000000000000001 * var_chaste_interface__membrane__V); - const double var_x70 = 1 + var_x69; - const double var_x71 = 1 / var_x70; - const double var_x72 = _lt_0_row[11]; + const double var_x72 = exp(4.197901049475262 + 0.14992503748125938 * var_chaste_interface__membrane__V); + const double var_x73 = 1 + var_x72; + const double var_x74 = _lt_0_row[9]; + const double var_x75 = var_x74 / var_x73; + const double var_x76 = exp(-6 - 0.20000000000000001 * var_chaste_interface__membrane__V); + const double var_x77 = 1 + var_x76; + const double var_x78 = 1 / var_x77; + const double var_x79 = _lt_0_row[11]; - partialF = -0.012 * var_x68 - 0.0064999999999999997 * var_x71 * var_x72; + partialF = -0.012 * var_x75 - 0.0064999999999999997 * var_x78 * var_x79; } else { @@ -1123,16 +1137,16 @@ std::shared_ptr Cell // LCOV_EXCL_STOP const double* const _lt_0_row = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x73 = exp(-0.80000000000000004 - 0.040000000000000001 * var_chaste_interface__membrane__V); - const double var_x74 = 1 + var_x73; - const double var_x75 = _lt_0_row[17]; - const double var_x76 = var_x75 / var_x74; - const double var_x78 = exp(2.8571428571428572 + 0.057142857142857141 * var_chaste_interface__membrane__V); - const double var_x79 = 1 + var_x78; - const double var_x80 = _lt_0_row[15]; - const double var_x81 = var_x80 / var_x79; + const double var_x80 = exp(-0.80000000000000004 - 0.040000000000000001 * var_chaste_interface__membrane__V); + const double var_x81 = 1 + var_x80; + const double var_x82 = _lt_0_row[17]; + const double var_x83 = var_x82 / var_x81; + const double var_x85 = exp(2.8571428571428572 + 0.057142857142857141 * var_chaste_interface__membrane__V); + const double var_x86 = 1 + var_x85; + const double var_x87 = _lt_0_row[15]; + const double var_x88 = var_x87 / var_x86; - partialF = -0.00050000000000000001 * var_x81 - 0.0012999999999999999 * var_x76; + partialF = -0.00050000000000000001 * var_x88 - 0.0012999999999999999 * var_x83; } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL1Opt/beeler_reuter_model_1977.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/GRL1Opt/beeler_reuter_model_1977.cpp_alt index 859742fa..d4c9c812 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL1Opt/beeler_reuter_model_1977.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL1Opt/beeler_reuter_model_1977.cpp_alt @@ -163,7 +163,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return 7.2999570997221346 + 0.099998134770640151 * var_chaste_interface__membrane__V + 4 * (-1 + 29.964100047397014 * exp(0.040000000000000001 * var_chaste_interface__membrane__V)) / (8.3311374876876929 * exp(0.040000000000000001 * var_chaste_interface__membrane__V) + 69.407851838755192 * exp(0.080000000000000002 * var_chaste_interface__membrane__V)); + return -5.0000000000327567e-7 / (1 - exp(1.0000000000065512e-7)) + 4 * (-1 + exp(3.3999999999999999 + 0.040000000000000001 * var_chaste_interface__membrane__V)) / (exp(2.1200000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V) + exp(4.2400000000000002 + 0.080000000000000002 * var_chaste_interface__membrane__V)) + 199999.99999868975 * (23.000002500000001 + var_chaste_interface__membrane__V) * (5.0000000000327567e-7 / (1 - exp(1.0000000000065512e-7)) + 5.0000000000327567e-7 / (1 - exp(-1.0000000000065512e-7))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -185,7 +185,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return 4 * (-1 + 29.964100047397014 * exp(0.040000000000000001 * var_chaste_interface__membrane__V)) / (8.3311374876876929 * exp(0.040000000000000001 * var_chaste_interface__membrane__V) + 69.407851838755192 * exp(0.080000000000000002 * var_chaste_interface__membrane__V)) + 0.20000000000000001 * (23 + var_chaste_interface__membrane__V) / (1 - 0.39851904108451419 * exp(-0.040000000000000001 * var_chaste_interface__membrane__V)); + return 4 * (-1 + exp(3.3999999999999999 + 0.040000000000000001 * var_chaste_interface__membrane__V)) / (exp(2.1200000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V) + exp(4.2400000000000002 + 0.080000000000000002 * var_chaste_interface__membrane__V)) + 0.20000000000000001 * (23 + var_chaste_interface__membrane__V) / (1 - exp(-0.92000000000000004 - 0.040000000000000001 * var_chaste_interface__membrane__V)); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -295,7 +295,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -47.000000999999997) && (var_chaste_interface__membrane__V <= -46.999999000000003)) ? (33.499561670622036 + 0.49999067384209878 * var_chaste_interface__membrane__V) : (-(47 + var_chaste_interface__membrane__V) / (-1 + 0.0090952771016958155 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -47.000000999999997) && (var_chaste_interface__membrane__V <= -46.999999000000003)) ? (1.0000000000287557e-6 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (47.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-6 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-6 / (-1 + exp(-1.0000000000287557e-7)))) : (-(47 + var_chaste_interface__membrane__V) / (-1 + exp(-4.7000000000000002 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -730,20 +730,24 @@ std::shared_ptr Cell const double var_x0 = 1 / mParameters[1]; const double var_x1 = 0.040000000000000001 * var_chaste_interface__membrane__V; - const double var_x2 = exp(var_x1); - const double var_x3 = exp(0.080000000000000002 * var_chaste_interface__membrane__V); - const double var_x4 = -4.794256007583523 * var_x2 / (8.3311374876876929 * var_x2 + 69.407851838755192 * var_x3) - 0.00083031481087087031 * (-1 + 29.964100047397014 * var_x2) * (-0.3332454995075077 * var_x2 - 5.5526281471004157 * var_x3) / pow((var_x3 + 0.12003162851145673 * var_x2), 2); - const double var_x5 = mParameters[6] * var_chaste_interface__time_dependent_outward_current_x1_gate__x1; - const double var_x6 = mParameters[0] * var_chaste_interface__slow_inward_current_f_gate__f; - const double var_x7 = var_x6 * var_chaste_interface__slow_inward_current_d_gate__d; - const double var_x8 = pow(var_chaste_interface__sodium_current_m_gate__m, 3); - const double var_x9 = var_x8 * mParameters[2] * var_chaste_interface__sodium_current_j_gate__j; - const double var_x10 = exp(-var_x1); - const double var_x11 = var_x10 * (0.24659696394160646 - 5.3655559711219754 * var_x2); - const double var_x12 = -3.0000000000000001e-5 - var_x7 - 0.21462223884487899 * var_x5 - var_x9 * var_chaste_interface__sodium_current_h_gate__h - 0.040000000000000001 * var_x11 * var_x5; - const double var_x13 = 1 - 0.39851904108451419 * var_x10; + const double var_x2 = exp(2.1200000000000001 + var_x1); + const double var_x3 = exp(4.2400000000000002 + 0.080000000000000002 * var_chaste_interface__membrane__V); + const double var_x4 = var_x2 + var_x3; + const double var_x5 = exp(3.3999999999999999 + var_x1); + const double var_x6 = -0.16 * var_x5 / var_x4 - 4 * (-1 + var_x5) * (-0.040000000000000001 * var_x2 - 0.080000000000000002 * var_x3) / pow(var_x4, 2); + const double var_x7 = mParameters[0] * var_chaste_interface__slow_inward_current_f_gate__f; + const double var_x8 = var_x7 * var_chaste_interface__slow_inward_current_d_gate__d; + const double var_x9 = pow(var_chaste_interface__sodium_current_m_gate__m, 3); + const double var_x10 = var_x9 * mParameters[2] * var_chaste_interface__sodium_current_j_gate__j; + const double var_x11 = exp(3.0800000000000001 + var_x1); + const double var_x12 = mParameters[6] / exp(1.4000000000000001 + var_x1); + const double var_x13 = var_x12 * (-1 + var_x11); + const double var_x14 = 0.040000000000000001 * var_chaste_interface__time_dependent_outward_current_x1_gate__x1; + const double var_x15 = -3.0000000000000001e-5 - var_x8 + var_x13 * var_x14 - var_x10 * var_chaste_interface__sodium_current_h_gate__h - var_x11 * var_x12 * var_x14; + const double var_x16 = exp(-0.92000000000000004 - var_x1); + const double var_x17 = 1 - var_x16; - partialF = (((var_chaste_interface__membrane__V >= -23.000002500000001) && (var_chaste_interface__membrane__V <= -22.999997499999999)) ? (var_x0 * (var_x12 + (-0.099998134770640151 + var_x4) * mParameters[5])) : (var_x0 * (var_x12 + (var_x4 - 0.20000000000000001 / var_x13 + 0.0031881523286761138 * var_x10 * (23 + var_chaste_interface__membrane__V) / pow(var_x13, 2)) * mParameters[5]))); + partialF = (((var_chaste_interface__membrane__V >= -23.000002500000001) && (var_chaste_interface__membrane__V <= -22.999997499999999)) ? (var_x0 * (var_x15 + (var_x6 - 0.10000000000000001 / (1 - exp(1.0000000000065512e-7)) - 0.10000000000000001 / (1 - exp(-1.0000000000065512e-7))) * mParameters[5])) : (var_x0 * (var_x15 + (var_x6 - 0.20000000000000001 / var_x17 + 0.0080000000000000002 * var_x16 * (23 + var_chaste_interface__membrane__V) / pow(var_x17, 2)) * mParameters[5]))); } else { @@ -790,11 +794,11 @@ std::shared_ptr Cell - const double var_x6 = mParameters[0] * var_chaste_interface__slow_inward_current_f_gate__f; - const double var_x7 = var_x6 * var_chaste_interface__slow_inward_current_d_gate__d; - const double var_x14 = var_x7 / var_chaste_interface__slow_inward_current__Cai; + const double var_x7 = mParameters[0] * var_chaste_interface__slow_inward_current_f_gate__f; + const double var_x8 = var_x7 * var_chaste_interface__slow_inward_current_d_gate__d; + const double var_x18 = var_x8 / var_chaste_interface__slow_inward_current__Cai; - partialF = -0.070000000000000007 - 0.13028700000000001 * var_x14; + partialF = -0.070000000000000007 - 0.13028700000000001 * var_x18; } else { @@ -838,17 +842,27 @@ std::shared_ptr Cell // Units: mV; Initial value: -84.624 + // Lookup table indexing + const bool _oob_0 = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->CheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x21 = exp(-0.056000000000000001 * var_chaste_interface__membrane__V); - const double var_x23 = (var_chaste_interface__membrane__V >= -47.000000999999997) && (var_chaste_interface__membrane__V <= -46.999999000000003); - const double var_x24 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x25 = exp(var_x24); - const double var_x26 = -1 + 0.0090952771016958155 * var_x25; - const double var_x27 = 1 / var_x26; - const double var_x29 = 47 + var_chaste_interface__membrane__V; - const double var_x30 = -0.70955267274899092 * var_x21; + const double var_x26 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x27 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x28 = _lt_0_row[13]; + const double var_x30 = (var_chaste_interface__membrane__V >= -47.000000999999997) && (var_chaste_interface__membrane__V <= -46.999999000000003); + const double var_x31 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x32 = exp(-4.7000000000000002 + var_x31); + const double var_x33 = -1 + var_x32; + const double var_x34 = 1 / var_x33; + const double var_x35 = 47 + var_chaste_interface__membrane__V; + const double var_x36 = -40 * var_x28; + const double var_x37 = -1.0000000000287557e-6 * var_x26; - partialF = ((var_x23) ? (-33.499561670622036 + var_x30 - 0.49999067384209878 * var_chaste_interface__membrane__V) : (var_x30 + var_x27 * var_x29)); + partialF = ((var_x30) ? (var_x36 + var_x37 - 499999.99998562218 * (47.000000999999997 + var_chaste_interface__membrane__V) * (var_x37 - 1.0000000000287557e-6 * var_x27)) : (var_x36 + var_x34 * var_x35)); } else { @@ -888,15 +902,15 @@ std::shared_ptr Cell - const double var_x31 = 0.25 * mParameters[4] - 0.25 * var_chaste_interface__membrane__V; - const double var_x32 = exp(-19.25 + var_x31); - const double var_x33 = 0.126 * var_x32; - const double var_x34 = exp(-1.845 + 0.082000000000000003 * mParameters[4] - 0.082000000000000003 * var_chaste_interface__membrane__V); - const double var_x35 = 1 + var_x34; - const double var_x36 = 1 / var_x35; - const double var_x37 = 1.7 * var_x36; + const double var_x38 = 0.25 * mParameters[4] - 0.25 * var_chaste_interface__membrane__V; + const double var_x39 = exp(-19.25 + var_x38); + const double var_x40 = 0.126 * var_x39; + const double var_x41 = exp(-1.845 + 0.082000000000000003 * mParameters[4] - 0.082000000000000003 * var_chaste_interface__membrane__V); + const double var_x42 = 1 + var_x41; + const double var_x43 = 1 / var_x42; + const double var_x44 = 1.7 * var_x43; - partialF = -var_x33 - var_x37; + partialF = -var_x40 - var_x44; } else { @@ -936,19 +950,19 @@ std::shared_ptr Cell - const double var_x24 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x31 = 0.25 * mParameters[4] - 0.25 * var_chaste_interface__membrane__V; - const double var_x44 = exp(-3.2000000000000002 + var_x24 + 0.10000000000000001 * mParameters[4]); - const double var_x45 = 1 + var_x44; - const double var_x46 = 1 / var_x45; - const double var_x47 = 0.29999999999999999 * var_x46; - const double var_x48 = exp(-15.600000000000001 + 0.20000000000000001 * mParameters[4] - 0.20000000000000001 * var_chaste_interface__membrane__V); - const double var_x49 = 1 + var_x48; - const double var_x50 = exp(-19.5 + var_x31); - const double var_x51 = var_x50 / var_x49; - const double var_x52 = 0.055 * var_x51; + const double var_x31 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x38 = 0.25 * mParameters[4] - 0.25 * var_chaste_interface__membrane__V; + const double var_x51 = exp(-3.2000000000000002 + var_x31 + 0.10000000000000001 * mParameters[4]); + const double var_x52 = 1 + var_x51; + const double var_x53 = 1 / var_x52; + const double var_x54 = 0.29999999999999999 * var_x53; + const double var_x55 = exp(-15.600000000000001 + 0.20000000000000001 * mParameters[4] - 0.20000000000000001 * var_chaste_interface__membrane__V); + const double var_x56 = 1 + var_x55; + const double var_x57 = exp(-19.5 + var_x38); + const double var_x58 = var_x57 / var_x56; + const double var_x59 = 0.055 * var_x58; - partialF = -var_x47 - var_x52; + partialF = -var_x54 - var_x59; } else { @@ -1000,16 +1014,16 @@ std::shared_ptr Cell // LCOV_EXCL_STOP const double* const _lt_0_row = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x58 = exp(2.2000000000000002 + 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x59 = 1 + var_x58; - const double var_x60 = _lt_0_row[7]; - const double var_x61 = var_x60 / var_x59; - const double var_x63 = exp(0.35997120230381568 - 0.071994240460763137 * var_chaste_interface__membrane__V); - const double var_x64 = 1 + var_x63; - const double var_x65 = _lt_0_row[5]; - const double var_x66 = var_x65 / var_x64; + const double var_x65 = exp(2.2000000000000002 + 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x66 = 1 + var_x65; + const double var_x67 = _lt_0_row[7]; + const double var_x68 = var_x67 / var_x66; + const double var_x70 = exp(0.35997120230381568 - 0.071994240460763137 * var_chaste_interface__membrane__V); + const double var_x71 = 1 + var_x70; + const double var_x72 = _lt_0_row[5]; + const double var_x73 = var_x72 / var_x71; - partialF = -0.070000000000000007 * var_x61 - 0.095000000000000001 * var_x66; + partialF = -0.070000000000000007 * var_x68 - 0.095000000000000001 * var_x73; } else { @@ -1061,16 +1075,16 @@ std::shared_ptr Cell // LCOV_EXCL_STOP const double* const _lt_0_row = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x67 = exp(-6 - 0.20000000000000001 * var_chaste_interface__membrane__V); - const double var_x68 = 1 + var_x67; - const double var_x69 = _lt_0_row[11]; - const double var_x70 = var_x69 / var_x68; - const double var_x72 = exp(4.197901049475262 + 0.14992503748125938 * var_chaste_interface__membrane__V); - const double var_x73 = 1 + var_x72; - const double var_x74 = _lt_0_row[9]; - const double var_x75 = var_x74 / var_x73; + const double var_x74 = exp(-6 - 0.20000000000000001 * var_chaste_interface__membrane__V); + const double var_x75 = 1 + var_x74; + const double var_x76 = _lt_0_row[11]; + const double var_x77 = var_x76 / var_x75; + const double var_x79 = exp(4.197901049475262 + 0.14992503748125938 * var_chaste_interface__membrane__V); + const double var_x80 = 1 + var_x79; + const double var_x81 = _lt_0_row[9]; + const double var_x82 = var_x81 / var_x80; - partialF = -0.012 * var_x75 - 0.0064999999999999997 * var_x70; + partialF = -0.012 * var_x82 - 0.0064999999999999997 * var_x77; } else { @@ -1122,16 +1136,16 @@ std::shared_ptr Cell // LCOV_EXCL_STOP const double* const _lt_0_row = Cellbeeler_reuter_model_1977FromCellMLGRL1Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x76 = exp(-0.80000000000000004 - 0.040000000000000001 * var_chaste_interface__membrane__V); - const double var_x77 = 1 + var_x76; - const double var_x78 = _lt_0_row[17]; - const double var_x79 = var_x78 / var_x77; - const double var_x81 = exp(2.8571428571428572 + 0.057142857142857141 * var_chaste_interface__membrane__V); - const double var_x82 = 1 + var_x81; - const double var_x83 = _lt_0_row[15]; - const double var_x84 = var_x83 / var_x82; + const double var_x83 = exp(-0.80000000000000004 - 0.040000000000000001 * var_chaste_interface__membrane__V); + const double var_x84 = 1 + var_x83; + const double var_x85 = _lt_0_row[17]; + const double var_x86 = var_x85 / var_x84; + const double var_x88 = exp(2.8571428571428572 + 0.057142857142857141 * var_chaste_interface__membrane__V); + const double var_x89 = 1 + var_x88; + const double var_x90 = _lt_0_row[15]; + const double var_x91 = var_x90 / var_x89; - partialF = -0.00050000000000000001 * var_x84 - 0.0012999999999999999 * var_x79; + partialF = -0.00050000000000000001 * var_x91 - 0.0012999999999999999 * var_x86; } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL2/dynamic_winslow_model_1999.cpp b/chaste_codegen/data/tests/chaste_reference_models/GRL2/dynamic_winslow_model_1999.cpp index 4c16dd0f..2d17ab4c 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL2/dynamic_winslow_model_1999.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL2/dynamic_winslow_model_1999.cpp @@ -1265,9 +1265,9 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x128 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x129 = exp(var_x128); - const double var_x130 = 1 - 0.00897780373069724 * var_x129; + const double var_x128 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x129 = exp(-4.7130000000000001 - var_x128); + const double var_x130 = 1 - var_x129; const double var_x131 = 320 / var_x130; const double var_x132 = exp(-0.090909090909090912 * var_chaste_interface__membrane__V); const double var_x133 = 47.130000000000003 + var_chaste_interface__membrane__V; @@ -1314,13 +1314,13 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x135 = exp(0.14705882352941177 * mParameters[10] - 0.14705882352941177 * var_chaste_interface__membrane__V); + const double var_x135 = exp(-11.764705882352942 + 0.14705882352941177 * mParameters[10] - 0.14705882352941177 * var_chaste_interface__membrane__V); const double var_x136 = var_chaste_interface__membrane__V < -40; - const double var_x137 = ((var_x136) ? (0.0010495108254269644 * var_x135) : (0)); + const double var_x137 = ((var_x136) ? (135 * var_x135) : (0)); const double var_x138 = exp(0.079000000000000001 * var_chaste_interface__membrane__V - 0.079000000000000001 * mParameters[10]); const double var_x139 = exp(0.34999999999999998 * var_chaste_interface__membrane__V - 0.34999999999999998 * mParameters[10]); - const double var_x140 = exp(0.0900900900900901 * mParameters[10] - 0.0900900900900901 * var_chaste_interface__membrane__V); - const double var_x141 = 1 + 0.38275493141491301 * var_x140; + const double var_x140 = exp(-0.96036036036036043 + 0.0900900900900901 * mParameters[10] - 0.0900900900900901 * var_chaste_interface__membrane__V); + const double var_x141 = 1 + var_x140; const double var_x142 = ((var_x136) ? (3560 * var_x138 + 310000 * var_x139) : (7692.3076923076924 / var_x141)); const double var_x143 = 0.001 * var_x137 + 0.001 * var_x142; @@ -1365,14 +1365,14 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x128 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x128 = 0.10000000000000001 * var_chaste_interface__membrane__V; const double var_x136 = var_chaste_interface__membrane__V < -40; - const double var_x150 = exp(0.13780000000000001 * mParameters[10] - 0.13780000000000001 * var_chaste_interface__membrane__V); - const double var_x151 = 1 + 0.0039608683399042569 * var_x150; + const double var_x150 = exp(-5.5312920000000005 + 0.13780000000000001 * mParameters[10] - 0.13780000000000001 * var_chaste_interface__membrane__V); + const double var_x151 = 1 + var_x150; const double var_x152 = exp(0.01052 * mParameters[10] - 0.01052 * var_chaste_interface__membrane__V); const double var_x153 = var_x152 / var_x151; - const double var_x154 = exp(var_x128 + 0.10000000000000001 * mParameters[10]); - const double var_x155 = 1 + 0.040762203978366211 * var_x154; + const double var_x154 = exp(-3.2000000000000002 - var_x128 + 0.10000000000000001 * mParameters[10]); + const double var_x155 = 1 + var_x154; const double var_x156 = exp(2.5349999999999999e-7 * mParameters[10] - 2.5349999999999999e-7 * var_chaste_interface__membrane__V); const double var_x157 = var_x156 / var_x155; const double var_x158 = ((var_x136) ? (121.2 * var_x153) : (300 * var_x157)); @@ -1380,13 +1380,14 @@ const double var_x160 = exp(0.24440000000000001 * var_chaste_interface__membrane__V - 0.24440000000000001 * mParameters[10]); const double var_x161 = exp(0.043909999999999998 * mParameters[10] - 0.043909999999999998 * var_chaste_interface__membrane__V); const double var_x162 = -127140 * var_x160 - 3.4740000000000003e-5 * var_x161; - const double var_x163 = exp(0.311 * var_chaste_interface__membrane__V - 0.311 * mParameters[10]); - const double var_x164 = 1000 / (1 + 50262745825.953949 * var_x163); - const double var_x165 = var_x162 * var_x164; - const double var_x166 = ((var_x136) ? (var_x159 * var_x165) : (0)); - const double var_x167 = 0.001 * var_x158 + 0.001 * var_x166; + const double var_x163 = exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V - 0.311 * mParameters[10]); + const double var_x164 = 1 + var_x163; + const double var_x165 = 1000 / var_x164; + const double var_x166 = var_x162 * var_x165; + const double var_x167 = ((var_x136) ? (var_x159 * var_x166) : (0)); + const double var_x168 = 0.001 * var_x158 + 0.001 * var_x167; - partialF = -var_x167; + partialF = -var_x168; } else { @@ -1428,13 +1429,13 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x172 = exp(-7.6769999999999996 - 0.012800000000000001 * var_chaste_interface__membrane__V); - const double var_x173 = exp(-5.4950000000000001 + 0.1691 * var_chaste_interface__membrane__V); - const double var_x174 = var_x172 + var_x173; - const double var_x175 = 1 / var_x174; - const double var_x176 = 1 / (0.027 + 0.001 * var_x175); + const double var_x173 = exp(-7.6769999999999996 - 0.012800000000000001 * var_chaste_interface__membrane__V); + const double var_x174 = exp(-5.4950000000000001 + 0.1691 * var_chaste_interface__membrane__V); + const double var_x175 = var_x173 + var_x174; + const double var_x176 = 1 / var_x175; + const double var_x177 = 1 / (0.027 + 0.001 * var_x176); - partialF = -0.001 * var_x176; + partialF = -0.001 * var_x177; } else { @@ -1473,15 +1474,15 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x181 = exp(-0.68699999999999994 + 0.068699999999999997 * var_chaste_interface__membrane__V); - const double var_x182 = -1 + var_x181; - const double var_x183 = 1 / var_x182; - const double var_x184 = exp(1.48 - 0.14799999999999999 * var_chaste_interface__membrane__V); - const double var_x185 = 1 - var_x184; - const double var_x186 = 1 / var_x185; - const double var_x187 = -10 + var_chaste_interface__membrane__V; + const double var_x182 = exp(-0.68699999999999994 + 0.068699999999999997 * var_chaste_interface__membrane__V); + const double var_x183 = -1 + var_x182; + const double var_x184 = 1 / var_x183; + const double var_x185 = exp(1.48 - 0.14799999999999999 * var_chaste_interface__membrane__V); + const double var_x186 = 1 - var_x185; + const double var_x187 = 1 / var_x186; + const double var_x188 = -10 + var_chaste_interface__membrane__V; - partialF = -0.00013100000000000001 * var_x183 * var_x187 - 7.1899999999999999e-5 * var_x186 * var_x187; + partialF = -0.00013100000000000001 * var_x184 * var_x188 - 7.1899999999999999e-5 * var_x187 * var_x188; } else { @@ -1520,10 +1521,10 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x188 = exp(0.035770000000000003 * var_chaste_interface__membrane__V); - const double var_x189 = exp(-0.062370000000000002 * var_chaste_interface__membrane__V); + const double var_x189 = exp(0.035770000000000003 * var_chaste_interface__membrane__V); + const double var_x190 = exp(-0.062370000000000002 * var_chaste_interface__membrane__V); - partialF = -0.045159999999999999 * var_x188 - 0.098900000000000002 * var_x189; + partialF = -0.045159999999999999 * var_x189 - 0.098900000000000002 * var_x190; } else { @@ -1562,16 +1563,16 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x190 = 0.20000000000000001 * var_chaste_interface__membrane__V; - const double var_x191 = 6.7000000000000002 + var_x190; - const double var_x192 = exp(var_x191); - const double var_x193 = 1 + 0.051334999999999999 * var_x192; - const double var_x194 = var_x192 / var_x193; - const double var_x196 = exp(-var_x191); - const double var_x197 = 1 + 0.051334999999999999 * var_x196; - const double var_x198 = var_x196 / var_x197; + const double var_x191 = 0.20000000000000001 * var_chaste_interface__membrane__V; + const double var_x192 = 6.7000000000000002 + var_x191; + const double var_x193 = exp(var_x192); + const double var_x194 = 1 + 0.051334999999999999 * var_x193; + const double var_x195 = var_x193 / var_x194; + const double var_x197 = exp(-var_x192); + const double var_x198 = 1 + 0.051334999999999999 * var_x197; + const double var_x199 = var_x197 / var_x198; - partialF = -0.0054149999999999997 * var_x194 - 0.0054149999999999997 * var_x198; + partialF = -0.0054149999999999997 * var_x195 - 0.0054149999999999997 * var_x199; } else { @@ -1696,11 +1697,11 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x201 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x204 = 1.6000000000000001 * var_x201; - const double var_x205 = 0.10375 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x202 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x205 = 1.6000000000000001 * var_x202; + const double var_x206 = 0.10375 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = -var_x204 - var_x205; + partialF = -var_x205 - var_x206; } else { @@ -1753,13 +1754,13 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x199 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x201 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x206 = 0.050000000000000003 * var_x199; - const double var_x210 = 1.2 * var_x201; - const double var_x211 = 0.20749999999999999 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x200 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x202 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x207 = 0.050000000000000003 * var_x200; + const double var_x211 = 1.2 * var_x202; + const double var_x212 = 0.20749999999999999 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = -var_x206 - var_x210 - var_x211; + partialF = -var_x207 - var_x211 - var_x212; } else { @@ -1812,13 +1813,13 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x199 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x201 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x212 = 0.10000000000000001 * var_x199; - const double var_x216 = 0.80000000000000004 * var_x201; - const double var_x217 = 0.41499999999999998 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x200 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x202 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x213 = 0.10000000000000001 * var_x200; + const double var_x217 = 0.80000000000000004 * var_x202; + const double var_x218 = 0.41499999999999998 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = -var_x212 - var_x216 - var_x217; + partialF = -var_x213 - var_x217 - var_x218; } else { @@ -1871,13 +1872,13 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x199 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x201 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x218 = 0.14999999999999999 * var_x199; - const double var_x222 = 0.40000000000000002 * var_x201; - const double var_x223 = 0.82999999999999996 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x200 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x202 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x219 = 0.14999999999999999 * var_x200; + const double var_x223 = 0.40000000000000002 * var_x202; + const double var_x224 = 0.82999999999999996 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = -var_x218 - var_x222 - var_x223; + partialF = -var_x219 - var_x223 - var_x224; } else { @@ -1932,11 +1933,11 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x199 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x224 = 0.20000000000000001 * var_x199; - const double var_x226 = 1.6599999999999999 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x200 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x225 = 0.20000000000000001 * var_x200; + const double var_x227 = 1.6599999999999999 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = -0.29999999999999999 - var_x224 - var_x226; + partialF = -0.29999999999999999 - var_x225 - var_x227; } else { @@ -1987,10 +1988,10 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x201 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x230 = 3.2000000000000002 * var_x201; + const double var_x202 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x231 = 3.2000000000000002 * var_x202; - partialF = -0.01 - var_x230; + partialF = -0.01 - var_x231; } else { @@ -2043,12 +2044,12 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x199 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x201 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x231 = 0.025000000000000001 * var_x199; - const double var_x233 = 2.3999999999999999 * var_x201; + const double var_x200 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x202 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x232 = 0.025000000000000001 * var_x200; + const double var_x234 = 2.3999999999999999 * var_x202; - partialF = -0.0050000000000000001 - var_x231 - var_x233; + partialF = -0.0050000000000000001 - var_x232 - var_x234; } else { @@ -2101,12 +2102,12 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x199 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x201 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x204 = 1.6000000000000001 * var_x201; - const double var_x206 = 0.050000000000000003 * var_x199; + const double var_x200 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x202 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x205 = 1.6000000000000001 * var_x202; + const double var_x207 = 0.050000000000000003 * var_x200; - partialF = -0.0025000000000000001 - var_x204 - var_x206; + partialF = -0.0025000000000000001 - var_x205 - var_x207; } else { @@ -2159,12 +2160,12 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x199 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x201 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x216 = 0.80000000000000004 * var_x201; - const double var_x234 = 0.074999999999999997 * var_x199; + const double var_x200 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x202 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x217 = 0.80000000000000004 * var_x202; + const double var_x235 = 0.074999999999999997 * var_x200; - partialF = -0.00125 - var_x216 - var_x234; + partialF = -0.00125 - var_x217 - var_x235; } else { @@ -2219,10 +2220,10 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x199 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x212 = 0.10000000000000001 * var_x199; + const double var_x200 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x213 = 0.10000000000000001 * var_x200; - partialF = -0.0076249999999999998 - var_x212; + partialF = -0.0076249999999999998 - var_x213; } else { @@ -2261,12 +2262,12 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x238 = exp(2.1052631578947367 + 0.10526315789473684 * var_chaste_interface__membrane__V); - const double var_x239 = 1 + var_x238; - const double var_x240 = 1 / var_x239; - const double var_x241 = 1 / (0.02 + 0.59999999999999998 * var_x240); + const double var_x239 = exp(2.1052631578947367 + 0.10526315789473684 * var_chaste_interface__membrane__V); + const double var_x240 = 1 + var_x239; + const double var_x241 = 1 / var_x240; + const double var_x242 = 1 / (0.02 + 0.59999999999999998 * var_x241); - partialF = -0.001 * var_x241; + partialF = -0.001 * var_x242; } else { @@ -2317,10 +2318,10 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x242 = pow(var_chaste_interface__intracellular_ion_concentrations__Ca_ss, 3); - const double var_x243 = 4050000 * var_x242; + const double var_x243 = pow(var_chaste_interface__intracellular_ion_concentrations__Ca_ss, 3); + const double var_x244 = 4050000 * var_x243; - partialF = -0.67600000000000005 - var_x243; + partialF = -0.67600000000000005 - var_x244; } else { @@ -2403,9 +2404,9 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x244 = 12150000000.0 * pow(var_chaste_interface__intracellular_ion_concentrations__Ca_ss, 4); + const double var_x245 = 12150000000.0 * pow(var_chaste_interface__intracellular_ion_concentrations__Ca_ss, 4); - partialF = -var_x244; + partialF = -var_x245; } else { @@ -2858,15 +2859,15 @@ const double var_x55 = 0.001 * var_x52 - 0.34100000000000003 * mParameters[3]; const double var_x56 = var_x54 * var_x55 * mParameters[6]; const double var_x57 = var_x56 * var_chaste_interface__membrane__V; - const double var_x253 = 0.0023800000000000002 + var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - const double var_x254 = 1 + 0.00011900000000000002 / pow(var_x253, 2); - const double var_x255 = 1 / var_x254; - const double var_x256 = 0.001 * var_x255; - const double var_x261 = 133.33333333333334 * var_chaste_interface__RyR_channel__P_O1 + 133.33333333333334 * var_chaste_interface__RyR_channel__P_O2; - const double var_x262 = -var_chaste_interface__intracellular_ion_concentrations__Ca_ss + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; - const double var_x263 = var_chaste_interface__RyR_channel__P_O1 + var_chaste_interface__RyR_channel__P_O2; + const double var_x254 = 0.0023800000000000002 + var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x255 = 1 + 0.00011900000000000002 / pow(var_x254, 2); + const double var_x256 = 1 / var_x255; + const double var_x257 = 0.001 * var_x256; + const double var_x262 = 133.33333333333334 * var_chaste_interface__RyR_channel__P_O1 + 133.33333333333334 * var_chaste_interface__RyR_channel__P_O2; + const double var_x263 = -var_chaste_interface__intracellular_ion_concentrations__Ca_ss + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; + const double var_x264 = var_chaste_interface__RyR_channel__P_O1 + var_chaste_interface__RyR_channel__P_O2; - partialF = var_x256 * (-806491.88514357049 - var_x261 * mParameters[0]) + 2.3800000000000004e-7 * (806491.88514357049 * var_chaste_interface__intracellular_ion_concentrations__Cai - 806491.88514357049 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss - 9570598.0870152581 * var_x51 * var_x57 + 133.33333333333334 * var_x262 * var_x263 * mParameters[0]) / (pow(var_x253, 3) * pow(var_x254, 2)); + partialF = var_x257 * (-806491.88514357049 - var_x262 * mParameters[0]) + 2.3800000000000004e-7 * (806491.88514357049 * var_chaste_interface__intracellular_ion_concentrations__Cai - 806491.88514357049 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss - 9570598.0870152581 * var_x51 * var_x57 + 133.33333333333334 * var_x263 * var_x264 * mParameters[0]) / (pow(var_x254, 3) * pow(var_x255, 2)); } else { @@ -2923,15 +2924,15 @@ // Units: millimolar; Initial value: 0.257 - const double var_x262 = -var_chaste_interface__intracellular_ion_concentrations__Ca_ss + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; - const double var_x263 = var_chaste_interface__RyR_channel__P_O1 + var_chaste_interface__RyR_channel__P_O2; - const double var_x264 = 0.80000000000000004 + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; - const double var_x265 = pow(var_x264, (-2)); - const double var_x266 = 1 / (1 + 12 * var_x265); - const double var_x267 = 0.001 * var_x266; - const double var_x269 = var_x263 * mParameters[0]; + const double var_x263 = -var_chaste_interface__intracellular_ion_concentrations__Ca_ss + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; + const double var_x264 = var_chaste_interface__RyR_channel__P_O1 + var_chaste_interface__RyR_channel__P_O2; + const double var_x265 = 0.80000000000000004 + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; + const double var_x266 = pow(var_x265, (-2)); + const double var_x267 = 1 / (1 + 12 * var_x266); + const double var_x268 = 0.001 * var_x267; + const double var_x270 = var_x264 * mParameters[0]; - partialF = var_x267 * (-1740.0382808421784 - var_x263 * mParameters[0]) + 0.00016666666666666666 * (1740.0382808421784 * var_chaste_interface__intracellular_ion_concentrations__Ca_NSR - 1740.0382808421784 * var_chaste_interface__intracellular_ion_concentrations__Ca_JSR - var_x262 * var_x269) / (pow(var_x264, 3) * pow((0.083333333333333329 + var_x265), 2)); + partialF = var_x268 * (-1740.0382808421784 - var_x264 * mParameters[0]) + 0.00016666666666666666 * (1740.0382808421784 * var_chaste_interface__intracellular_ion_concentrations__Ca_NSR - 1740.0382808421784 * var_chaste_interface__intracellular_ion_concentrations__Ca_JSR - var_x263 * var_x270) / (pow(var_x265, 3) * pow((0.083333333333333329 + var_x266), 2)); } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL2/dynamic_winslow_model_1999.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/GRL2/dynamic_winslow_model_1999.cpp_alt index 411e0495..55a4659e 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL2/dynamic_winslow_model_1999.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL2/dynamic_winslow_model_1999.cpp_alt @@ -1256,8 +1256,8 @@ const double var_x119 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x120 = exp(var_x119); - const double var_x121 = 1 - 0.00897780373069724 * var_x120; + const double var_x120 = exp(-4.7130000000000001 + var_x119); + const double var_x121 = 1 - var_x120; const double var_x122 = 320 / var_x121; const double var_x123 = exp(-0.090909090909090912 * var_chaste_interface__membrane__V); const double var_x124 = 47.130000000000003 + var_chaste_interface__membrane__V; @@ -1304,14 +1304,14 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x126 = exp(0.14705882352941177 * mParameters[10] - 0.14705882352941177 * var_chaste_interface__membrane__V); + const double var_x126 = exp(-11.764705882352942 + 0.14705882352941177 * mParameters[10] - 0.14705882352941177 * var_chaste_interface__membrane__V); const double var_x127 = var_chaste_interface__membrane__V < -40; - const double var_x128 = ((var_x127) ? (0.0010495108254269644 * var_x126) : (0)); + const double var_x128 = ((var_x127) ? (135 * var_x126) : (0)); const double var_x129 = 0.001 * var_x128; const double var_x130 = exp(0.079000000000000001 * var_chaste_interface__membrane__V - 0.079000000000000001 * mParameters[10]); const double var_x131 = exp(0.34999999999999998 * var_chaste_interface__membrane__V - 0.34999999999999998 * mParameters[10]); - const double var_x132 = exp(0.0900900900900901 * mParameters[10] - 0.0900900900900901 * var_chaste_interface__membrane__V); - const double var_x133 = 1 + 0.38275493141491301 * var_x132; + const double var_x132 = exp(-0.96036036036036043 + 0.0900900900900901 * mParameters[10] - 0.0900900900900901 * var_chaste_interface__membrane__V); + const double var_x133 = 1 + var_x132; const double var_x134 = ((var_x127) ? (3560 * var_x130 + 310000 * var_x131) : (7692.3076923076924 / var_x133)); const double var_x135 = 0.001 * var_x134; @@ -1358,12 +1358,12 @@ const double var_x119 = -0.10000000000000001 * var_chaste_interface__membrane__V; const double var_x127 = var_chaste_interface__membrane__V < -40; - const double var_x142 = exp(0.13780000000000001 * mParameters[10] - 0.13780000000000001 * var_chaste_interface__membrane__V); - const double var_x143 = 1 + 0.0039608683399042569 * var_x142; + const double var_x142 = exp(-5.5312920000000005 + 0.13780000000000001 * mParameters[10] - 0.13780000000000001 * var_chaste_interface__membrane__V); + const double var_x143 = 1 + var_x142; const double var_x144 = exp(0.01052 * mParameters[10] - 0.01052 * var_chaste_interface__membrane__V); const double var_x145 = var_x144 / var_x143; - const double var_x146 = exp(var_x119 + 0.10000000000000001 * mParameters[10]); - const double var_x147 = 1 + 0.040762203978366211 * var_x146; + const double var_x146 = exp(-3.2000000000000002 + var_x119 + 0.10000000000000001 * mParameters[10]); + const double var_x147 = 1 + var_x146; const double var_x148 = exp(2.5349999999999999e-7 * mParameters[10] - 2.5349999999999999e-7 * var_chaste_interface__membrane__V); const double var_x149 = var_x148 / var_x147; const double var_x150 = ((var_x127) ? (121.2 * var_x145) : (300 * var_x149)); @@ -1372,13 +1372,14 @@ const double var_x153 = exp(0.24440000000000001 * var_chaste_interface__membrane__V - 0.24440000000000001 * mParameters[10]); const double var_x154 = exp(0.043909999999999998 * mParameters[10] - 0.043909999999999998 * var_chaste_interface__membrane__V); const double var_x155 = -127140 * var_x153 - 3.4740000000000003e-5 * var_x154; - const double var_x156 = exp(0.311 * var_chaste_interface__membrane__V - 0.311 * mParameters[10]); - const double var_x157 = 1000 / (1 + 50262745825.953949 * var_x156); - const double var_x158 = var_x155 * var_x157; - const double var_x159 = ((var_x127) ? (var_x152 * var_x158) : (0)); - const double var_x160 = 0.001 * var_x159; + const double var_x156 = exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V - 0.311 * mParameters[10]); + const double var_x157 = 1 + var_x156; + const double var_x158 = 1000 / var_x157; + const double var_x159 = var_x155 * var_x158; + const double var_x160 = ((var_x127) ? (var_x152 * var_x159) : (0)); + const double var_x161 = 0.001 * var_x160; - partialF = -var_x151 - var_x160; + partialF = -var_x151 - var_x161; } else { @@ -1420,13 +1421,13 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x165 = exp(-7.6769999999999996 - 0.012800000000000001 * var_chaste_interface__membrane__V); - const double var_x166 = exp(-5.4950000000000001 + 0.1691 * var_chaste_interface__membrane__V); - const double var_x167 = var_x165 + var_x166; - const double var_x168 = 1 / var_x167; - const double var_x171 = 0.001 / (0.027 + 0.001 * var_x168); + const double var_x166 = exp(-7.6769999999999996 - 0.012800000000000001 * var_chaste_interface__membrane__V); + const double var_x167 = exp(-5.4950000000000001 + 0.1691 * var_chaste_interface__membrane__V); + const double var_x168 = var_x166 + var_x167; + const double var_x169 = 1 / var_x168; + const double var_x172 = 0.001 / (0.027 + 0.001 * var_x169); - partialF = -var_x171; + partialF = -var_x172; } else { @@ -1465,15 +1466,15 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x174 = exp(-0.68699999999999994 + 0.068699999999999997 * var_chaste_interface__membrane__V); - const double var_x175 = -1 + var_x174; - const double var_x176 = 1 / var_x175; - const double var_x178 = exp(1.48 - 0.14799999999999999 * var_chaste_interface__membrane__V); - const double var_x179 = 1 - var_x178; - const double var_x180 = 1 / var_x179; - const double var_x182 = -10 + var_chaste_interface__membrane__V; + const double var_x175 = exp(-0.68699999999999994 + 0.068699999999999997 * var_chaste_interface__membrane__V); + const double var_x176 = -1 + var_x175; + const double var_x177 = 1 / var_x176; + const double var_x179 = exp(1.48 - 0.14799999999999999 * var_chaste_interface__membrane__V); + const double var_x180 = 1 - var_x179; + const double var_x181 = 1 / var_x180; + const double var_x183 = -10 + var_chaste_interface__membrane__V; - partialF = -0.00013100000000000001 * var_x176 * var_x182 - 7.1899999999999999e-5 * var_x180 * var_x182; + partialF = -0.00013100000000000001 * var_x177 * var_x183 - 7.1899999999999999e-5 * var_x181 * var_x183; } else { @@ -1512,10 +1513,10 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x183 = exp(0.035770000000000003 * var_chaste_interface__membrane__V); - const double var_x184 = exp(-0.062370000000000002 * var_chaste_interface__membrane__V); + const double var_x184 = exp(0.035770000000000003 * var_chaste_interface__membrane__V); + const double var_x185 = exp(-0.062370000000000002 * var_chaste_interface__membrane__V); - partialF = -0.045159999999999999 * var_x183 - 0.098900000000000002 * var_x184; + partialF = -0.045159999999999999 * var_x184 - 0.098900000000000002 * var_x185; } else { @@ -1554,15 +1555,15 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x185 = 0.20000000000000001 * var_chaste_interface__membrane__V; - const double var_x186 = exp(6.7000000000000002 + var_x185); - const double var_x187 = 1 + 0.051334999999999999 * var_x186; - const double var_x188 = exp(-6.7000000000000002 - var_x185); - const double var_x189 = 1 + 0.051334999999999999 * var_x188; - const double var_x191 = var_x186 / var_x187; - const double var_x192 = var_x188 / var_x189; + const double var_x186 = 0.20000000000000001 * var_chaste_interface__membrane__V; + const double var_x187 = exp(6.7000000000000002 + var_x186); + const double var_x188 = 1 + 0.051334999999999999 * var_x187; + const double var_x189 = exp(-6.7000000000000002 - var_x186); + const double var_x190 = 1 + 0.051334999999999999 * var_x189; + const double var_x192 = var_x187 / var_x188; + const double var_x193 = var_x189 / var_x190; - partialF = -0.0054149999999999997 * var_x191 - 0.0054149999999999997 * var_x192; + partialF = -0.0054149999999999997 * var_x192 - 0.0054149999999999997 * var_x193; } else { @@ -1687,12 +1688,12 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x195 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x198 = 1.6000000000000001 * var_x195; - const double var_x199 = -var_x198; - const double var_x200 = 0.10375 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x196 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x199 = 1.6000000000000001 * var_x196; + const double var_x200 = -var_x199; + const double var_x201 = 0.10375 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = var_x199 - var_x200; + partialF = var_x200 - var_x201; } else { @@ -1745,14 +1746,14 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x193 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x195 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x201 = 0.050000000000000003 * var_x193; - const double var_x205 = 1.2 * var_x195; - const double var_x206 = -var_x201; - const double var_x207 = 0.20749999999999999 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x194 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x196 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x202 = 0.050000000000000003 * var_x194; + const double var_x206 = 1.2 * var_x196; + const double var_x207 = -var_x202; + const double var_x208 = 0.20749999999999999 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = var_x206 - var_x205 - var_x207; + partialF = var_x207 - var_x206 - var_x208; } else { @@ -1805,15 +1806,15 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x193 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x195 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x208 = 0.10000000000000001 * var_x193; - const double var_x212 = -var_x208; - const double var_x213 = 0.80000000000000004 * var_x195; - const double var_x214 = -var_x213; - const double var_x215 = 0.41499999999999998 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x194 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x196 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x209 = 0.10000000000000001 * var_x194; + const double var_x213 = -var_x209; + const double var_x214 = 0.80000000000000004 * var_x196; + const double var_x215 = -var_x214; + const double var_x216 = 0.41499999999999998 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = var_x212 + var_x214 - var_x215; + partialF = var_x213 + var_x215 - var_x216; } else { @@ -1866,13 +1867,13 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x193 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x195 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x216 = 0.14999999999999999 * var_x193; - const double var_x220 = 0.40000000000000002 * var_x195; - const double var_x221 = 0.82999999999999996 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x194 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x196 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x217 = 0.14999999999999999 * var_x194; + const double var_x221 = 0.40000000000000002 * var_x196; + const double var_x222 = 0.82999999999999996 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = -var_x216 - var_x220 - var_x221; + partialF = -var_x217 - var_x221 - var_x222; } else { @@ -1927,11 +1928,11 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x193 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x222 = 0.20000000000000001 * var_x193; - const double var_x224 = 1.6599999999999999 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x194 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x223 = 0.20000000000000001 * var_x194; + const double var_x225 = 1.6599999999999999 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - partialF = -0.29999999999999999 - var_x222 - var_x224; + partialF = -0.29999999999999999 - var_x223 - var_x225; } else { @@ -1982,10 +1983,10 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x195 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x228 = 3.2000000000000002 * var_x195; + const double var_x196 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x229 = 3.2000000000000002 * var_x196; - partialF = -0.01 - var_x228; + partialF = -0.01 - var_x229; } else { @@ -2038,12 +2039,12 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x193 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x195 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x229 = 0.025000000000000001 * var_x193; - const double var_x231 = 2.3999999999999999 * var_x195; + const double var_x194 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x196 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x230 = 0.025000000000000001 * var_x194; + const double var_x232 = 2.3999999999999999 * var_x196; - partialF = -0.0050000000000000001 - var_x229 - var_x231; + partialF = -0.0050000000000000001 - var_x230 - var_x232; } else { @@ -2096,14 +2097,14 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x193 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x195 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x198 = 1.6000000000000001 * var_x195; - const double var_x199 = -var_x198; - const double var_x201 = 0.050000000000000003 * var_x193; - const double var_x206 = -var_x201; + const double var_x194 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x196 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x199 = 1.6000000000000001 * var_x196; + const double var_x200 = -var_x199; + const double var_x202 = 0.050000000000000003 * var_x194; + const double var_x207 = -var_x202; - partialF = -0.0025000000000000001 + var_x199 + var_x206; + partialF = -0.0025000000000000001 + var_x200 + var_x207; } else { @@ -2156,13 +2157,13 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x193 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x195 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); - const double var_x213 = 0.80000000000000004 * var_x195; - const double var_x214 = -var_x213; - const double var_x232 = 0.074999999999999997 * var_x193; + const double var_x194 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x196 = exp(0.20000000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V); + const double var_x214 = 0.80000000000000004 * var_x196; + const double var_x215 = -var_x214; + const double var_x233 = 0.074999999999999997 * var_x194; - partialF = -0.00125 + var_x214 - var_x232; + partialF = -0.00125 + var_x215 - var_x233; } else { @@ -2217,11 +2218,11 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x193 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); - const double var_x208 = 0.10000000000000001 * var_x193; - const double var_x212 = -var_x208; + const double var_x194 = exp(-0.15384615384615385 - 0.076923076923076927 * var_chaste_interface__membrane__V); + const double var_x209 = 0.10000000000000001 * var_x194; + const double var_x213 = -var_x209; - partialF = -0.0076249999999999998 + var_x212; + partialF = -0.0076249999999999998 + var_x213; } else { @@ -2260,12 +2261,12 @@ // Units: millivolt; Initial value: -96.1638 - const double var_x236 = exp(2.1052631578947367 + 0.10526315789473684 * var_chaste_interface__membrane__V); - const double var_x237 = 1 + var_x236; - const double var_x238 = 1 / var_x237; - const double var_x239 = 1 / (0.02 + 0.59999999999999998 * var_x238); + const double var_x237 = exp(2.1052631578947367 + 0.10526315789473684 * var_chaste_interface__membrane__V); + const double var_x238 = 1 + var_x237; + const double var_x239 = 1 / var_x238; + const double var_x240 = 1 / (0.02 + 0.59999999999999998 * var_x239); - partialF = -0.001 * var_x239; + partialF = -0.001 * var_x240; } else { @@ -2316,10 +2317,10 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x240 = pow(var_chaste_interface__intracellular_ion_concentrations__Ca_ss, 3); - const double var_x241 = 4050000 * var_x240; + const double var_x241 = pow(var_chaste_interface__intracellular_ion_concentrations__Ca_ss, 3); + const double var_x242 = 4050000 * var_x241; - partialF = -0.67600000000000005 - var_x241; + partialF = -0.67600000000000005 - var_x242; } else { @@ -2402,9 +2403,9 @@ // Units: millimolar; Initial value: 0.00011 - const double var_x242 = 12150000000.0 * pow(var_chaste_interface__intracellular_ion_concentrations__Ca_ss, 4); + const double var_x243 = 12150000000.0 * pow(var_chaste_interface__intracellular_ion_concentrations__Ca_ss, 4); - partialF = -var_x242; + partialF = -var_x243; } else { @@ -2850,16 +2851,16 @@ const double var_x46 = 0.001 * var_x43 - 0.34100000000000003 * mParameters[3]; const double var_x47 = var_x45 * var_x46 * mParameters[6]; const double var_x48 = var_x47 * var_chaste_interface__membrane__V; - const double var_x251 = 0.0023800000000000002 + var_chaste_interface__intracellular_ion_concentrations__Ca_ss; - const double var_x252 = 1 + 0.00011900000000000002 / pow(var_x251, 2); - const double var_x253 = 1 / var_x252; - const double var_x254 = 0.001 * var_x253; - const double var_x259 = 133.33333333333334 * var_chaste_interface__RyR_channel__P_O1; - const double var_x260 = 133.33333333333334 * var_chaste_interface__RyR_channel__P_O2; - const double var_x261 = (var_chaste_interface__RyR_channel__P_O1 + var_chaste_interface__RyR_channel__P_O2) * mParameters[0]; - const double var_x262 = var_x261 * (-var_chaste_interface__intracellular_ion_concentrations__Ca_ss + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR); + const double var_x252 = 0.0023800000000000002 + var_chaste_interface__intracellular_ion_concentrations__Ca_ss; + const double var_x253 = 1 + 0.00011900000000000002 / pow(var_x252, 2); + const double var_x254 = 1 / var_x253; + const double var_x255 = 0.001 * var_x254; + const double var_x260 = 133.33333333333334 * var_chaste_interface__RyR_channel__P_O1; + const double var_x261 = 133.33333333333334 * var_chaste_interface__RyR_channel__P_O2; + const double var_x262 = (var_chaste_interface__RyR_channel__P_O1 + var_chaste_interface__RyR_channel__P_O2) * mParameters[0]; + const double var_x263 = var_x262 * (-var_chaste_interface__intracellular_ion_concentrations__Ca_ss + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR); - partialF = var_x254 * (-806491.88514357049 + (-var_x259 - var_x260) * mParameters[0]) + 2.3800000000000004e-7 * (133.33333333333334 * var_x262 + 806491.88514357049 * var_chaste_interface__intracellular_ion_concentrations__Cai - 806491.88514357049 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss - 9570598.0870152581 * var_x42 * var_x48) / (pow(var_x251, 3) * pow(var_x252, 2)); + partialF = var_x255 * (-806491.88514357049 + (-var_x260 - var_x261) * mParameters[0]) + 2.3800000000000004e-7 * (133.33333333333334 * var_x263 + 806491.88514357049 * var_chaste_interface__intracellular_ion_concentrations__Cai - 806491.88514357049 * var_chaste_interface__intracellular_ion_concentrations__Ca_ss - 9570598.0870152581 * var_x42 * var_x48) / (pow(var_x252, 3) * pow(var_x253, 2)); } else { @@ -2916,14 +2917,14 @@ // Units: millimolar; Initial value: 0.257 - const double var_x261 = (var_chaste_interface__RyR_channel__P_O1 + var_chaste_interface__RyR_channel__P_O2) * mParameters[0]; - const double var_x262 = var_x261 * (-var_chaste_interface__intracellular_ion_concentrations__Ca_ss + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR); - const double var_x263 = 0.80000000000000004 + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; - const double var_x264 = pow(var_x263, (-2)); - const double var_x265 = 1 / (1 + 12 * var_x264); - const double var_x266 = 0.001 * var_x265; + const double var_x262 = (var_chaste_interface__RyR_channel__P_O1 + var_chaste_interface__RyR_channel__P_O2) * mParameters[0]; + const double var_x263 = var_x262 * (-var_chaste_interface__intracellular_ion_concentrations__Ca_ss + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR); + const double var_x264 = 0.80000000000000004 + var_chaste_interface__intracellular_ion_concentrations__Ca_JSR; + const double var_x265 = pow(var_x264, (-2)); + const double var_x266 = 1 / (1 + 12 * var_x265); + const double var_x267 = 0.001 * var_x266; - partialF = var_x266 * (-1740.0382808421784 + (-var_chaste_interface__RyR_channel__P_O1 - var_chaste_interface__RyR_channel__P_O2) * mParameters[0]) + 0.00016666666666666666 * (-var_x262 + 1740.0382808421784 * var_chaste_interface__intracellular_ion_concentrations__Ca_NSR - 1740.0382808421784 * var_chaste_interface__intracellular_ion_concentrations__Ca_JSR) / (pow(var_x263, 3) * pow((0.083333333333333329 + var_x264), 2)); + partialF = var_x267 * (-1740.0382808421784 + (-var_chaste_interface__RyR_channel__P_O1 - var_chaste_interface__RyR_channel__P_O2) * mParameters[0]) + 0.00016666666666666666 * (-var_x263 + 1740.0382808421784 * var_chaste_interface__intracellular_ion_concentrations__Ca_NSR - 1740.0382808421784 * var_chaste_interface__intracellular_ion_concentrations__Ca_JSR) / (pow(var_x264, 3) * pow((0.083333333333333329 + var_x265), 2)); } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL2/hodgkin_huxley_squid_axon_model_1952_modified.cpp b/chaste_codegen/data/tests/chaste_reference_models/GRL2/hodgkin_huxley_squid_axon_model_1952_modified.cpp index 6f7f4f9c..419f36f7 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL2/hodgkin_huxley_squid_axon_model_1952_modified.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL2/hodgkin_huxley_squid_axon_model_1952_modified.cpp @@ -341,15 +341,18 @@ // Units: millivolt; Initial value: -75.0 - const double var_x3 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x4 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(-var_x4); - const double var_x6 = -1 + 0.006737946999085467 * var_x5; - const double var_x7 = 0.10000000000000001 / var_x6; - const double var_x8 = 50 + var_chaste_interface__membrane__V; - const double var_x9 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x5 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x7 = exp(-5 - var_x6); + const double var_x8 = -1 + var_x7; + const double var_x9 = 0.10000000000000001 / var_x8; + const double var_x10 = 50 + var_chaste_interface__membrane__V; + const double var_x11 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x12 = 1.0000000000287557e-7 * var_x3; - partialF = -((var_x3) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-var_x7 * var_x8)) - 4 * var_x9; + partialF = -((var_x5) ? (var_x12 + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-var_x12 - 1.0000000000287557e-7 * var_x4)) : (-var_x10 * var_x9)) - 4 * var_x11; } else { @@ -387,12 +390,12 @@ // Units: millivolt; Initial value: -75.0 - const double var_x4 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x10 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x11 = exp(-4.5 - var_x4); - const double var_x12 = 1 + var_x11; + const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x13 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x14 = exp(-4.5 - var_x6); + const double var_x15 = 1 + var_x14; - partialF = -1 / var_x12 - 0.070000000000000007 * var_x10; + partialF = -1 / var_x15 - 0.070000000000000007 * var_x13; } else { @@ -430,15 +433,18 @@ // Units: millivolt; Initial value: -75.0 - const double var_x4 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(-var_x4); - const double var_x13 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); - const double var_x14 = -1 + 0.0015034391929775724 * var_x5; - const double var_x15 = 0.01 / var_x14; - const double var_x16 = 65 + var_chaste_interface__membrane__V; - const double var_x17 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x16 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x17 = exp(-6.5 - var_x6); + const double var_x18 = -1 + var_x17; + const double var_x19 = 0.01 / var_x18; + const double var_x20 = 65 + var_chaste_interface__membrane__V; + const double var_x21 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x22 = 1.0000000000287556e-8 * var_x3; - partialF = -((var_x13) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-var_x15 * var_x16)) - 0.125 * var_x17; + partialF = -((var_x16) ? (var_x22 + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-var_x22 - 1.0000000000287556e-8 * var_x4)) : (-var_x19 * var_x20)) - 0.125 * var_x21; } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL2/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/GRL2/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt index 7aae6049..a93c21bd 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL2/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL2/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt @@ -341,15 +341,18 @@ // Units: millivolt; Initial value: -75.0 - const double var_x3 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x4 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(var_x4); - const double var_x6 = -1 + 0.006737946999085467 * var_x5; - const double var_x7 = 0.10000000000000001 / var_x6; - const double var_x8 = 50 + var_chaste_interface__membrane__V; - const double var_x9 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x5 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x6 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x7 = exp(-5 + var_x6); + const double var_x8 = -1 + var_x7; + const double var_x9 = 0.10000000000000001 / var_x8; + const double var_x10 = 50 + var_chaste_interface__membrane__V; + const double var_x11 = exp(-4.166666666666667 - 0.055555555555555552 * var_chaste_interface__membrane__V); + const double var_x12 = 1.0000000000287557e-7 * var_x3; - partialF = -((var_x3) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-var_x7 * var_x8)) - 4 * var_x9; + partialF = -((var_x5) ? (var_x12 + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-var_x12 - 1.0000000000287557e-7 * var_x4)) : (-var_x10 * var_x9)) - 4 * var_x11; } else { @@ -387,12 +390,12 @@ // Units: millivolt; Initial value: -75.0 - const double var_x4 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x10 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x11 = exp(-4.5 + var_x4); - const double var_x12 = 1 + var_x11; + const double var_x6 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x13 = exp(-3.75 - 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x14 = exp(-4.5 + var_x6); + const double var_x15 = 1 + var_x14; - partialF = -1 / var_x12 - 0.070000000000000007 * var_x10; + partialF = -1 / var_x15 - 0.070000000000000007 * var_x13; } else { @@ -430,15 +433,18 @@ // Units: millivolt; Initial value: -75.0 - const double var_x4 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x5 = exp(var_x4); - const double var_x13 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); - const double var_x14 = -1 + 0.0015034391929775724 * var_x5; - const double var_x15 = 0.01 / var_x14; - const double var_x16 = 65 + var_chaste_interface__membrane__V; - const double var_x17 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x3 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x4 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x6 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x16 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x17 = exp(-6.5 + var_x6); + const double var_x18 = -1 + var_x17; + const double var_x19 = 0.01 / var_x18; + const double var_x20 = 65 + var_chaste_interface__membrane__V; + const double var_x21 = exp(0.9375 + 0.012500000000000001 * var_chaste_interface__membrane__V); + const double var_x22 = 1.0000000000287556e-8 * var_x3; - partialF = -((var_x13) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-var_x15 * var_x16)) - 0.125 * var_x17; + partialF = -((var_x16) ? (var_x22 + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-var_x22 - 1.0000000000287556e-8 * var_x4)) : (-var_x19 * var_x20)) - 0.125 * var_x21; } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/dynamic_viswanathan_model_1999_epi.cpp b/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/dynamic_viswanathan_model_1999_epi.cpp index b506335a..33f46962 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/dynamic_viswanathan_model_1999_epi.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/dynamic_viswanathan_model_1999_epi.cpp @@ -334,7 +334,7 @@ class Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables : public A for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return ((var_chaste_interface__membrane__V < -40) ? (0.0010495108254269644 * exp(-0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); + return ((var_chaste_interface__membrane__V < -40) ? (135 * exp(-11.764705882352942 - 0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -356,7 +356,7 @@ class Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables : public A for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return ((var_chaste_interface__membrane__V < -40) ? (3560 * exp(0.079000000000000001 * var_chaste_interface__membrane__V) + 310000000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V)) : (7692.3076923076933 / (1 + 0.38275493141491301 * exp(-0.0900900900900901 * var_chaste_interface__membrane__V)))); + return ((var_chaste_interface__membrane__V < -40) ? (3560 * exp(0.079000000000000001 * var_chaste_interface__membrane__V) + 310000000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V)) : (7692.3076923076933 / (1 + exp(-0.96036036036036043 - 0.0900900900900901 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -378,7 +378,7 @@ class Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables : public A for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return ((var_chaste_interface__membrane__V < -40) ? (1000 * (37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V) - 3.4740000000000003e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + 50262745825.953949 * exp(0.311 * var_chaste_interface__membrane__V))) : (0)); + return ((var_chaste_interface__membrane__V < -40) ? (1000 * (37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V) - 3.4740000000000003e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V))) : (0)); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -400,7 +400,7 @@ class Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables : public A for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return ((var_chaste_interface__membrane__V < -40) ? (121.2 * exp(-0.01052 * var_chaste_interface__membrane__V) / (1 + 0.0039608683399042569 * exp(-0.13780000000000001 * var_chaste_interface__membrane__V))) : (300 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + 0.040762203978366211 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return ((var_chaste_interface__membrane__V < -40) ? (121.2 * exp(-0.01052 * var_chaste_interface__membrane__V) / (1 + exp(-5.5312920000000005 - 0.13780000000000001 * var_chaste_interface__membrane__V))) : (300 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + exp(-3.2000000000000002 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -1284,129 +1284,122 @@ std::shared_ptr // Units: millimolar; Initial value: 137.6244 + // Lookup table indexing + const bool _oob_0 = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->CheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time_converted)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x0 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); - const double var_x1 = var_x0 * var_chaste_interface__T_type_Ca_channel_g_gate__g; - const double var_x2 = 0.050000000000000003 * var_x1; - const double var_x3 = 1 / var_chaste_interface__calcium_dynamics__Cai; - const double var_x4 = pow(var_x3, 1.3999999999999999); - const double var_x5 = 1 + 6.4818210260626455e-7 * var_x4; - const double var_x6 = 0.433 + 0.25979999999999998 / var_x5; - const double var_x7 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; - const double var_x8 = var_x6 * var_x7; - const double var_x9 = 0.018717941753901308 * var_chaste_interface__membrane__V; - const double var_x10 = exp(var_x9); - const double var_x11 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; - const double var_x12 = var_x10 * var_x11; - const double var_x13 = -var_x9; - const double var_x14 = exp(var_x13); - const double var_x15 = pow(mParameters[2], 3); - const double var_x16 = var_x15 * var_chaste_interface__calcium_dynamics__Cai; - const double var_x17 = var_x14 * var_x16; - const double var_x18 = 0.018717941753901308 * var_x12 + 0.018717941753901308 * var_x17; - const double var_x19 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x20 = 1 + 0.001 * var_x11 + 0.001 * var_x16; - const double var_x21 = 1 / var_x20; - const double var_x22 = var_x19 * var_x21; - const double var_x23 = 0.002 * var_x22; - const double var_x24 = var_x18 * var_x23; - const double var_x25 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); - const double var_x26 = 1 / (1 + 100 * var_x25); - const double var_x27 = 1 / (1.5 + mParameters[1]); - const double var_x28 = var_x27 * mParameters[1]; - const double var_x29 = var_x26 * var_x28; - const double var_x30 = 2 * var_x29; - const double var_x31 = -0.003743588350780262 * var_chaste_interface__membrane__V; - const double var_x32 = exp(var_x31); - const double var_x33 = 0.01485884101040119 * mParameters[2]; - const double var_x34 = exp(var_x33); - const double var_x35 = 0.037435883507802616 * var_chaste_interface__membrane__V; - const double var_x36 = -var_x35; - const double var_x37 = exp(var_x36); - const double var_x38 = 1 + 0.1245 * var_x32 + 0.036499999999999998 * var_x37 * (-0.14285714285714285 + 0.14285714285714285 * var_x34); - const double var_x39 = pow(var_x38, (-2)); - const double var_x40 = 0.00046607674967214262 * var_x32 + 0.037435883507802616 * var_x37 * (-0.0052142857142857138 + 0.0052142857142857138 * var_x34); - const double var_x41 = var_x39 * var_x40; - const double var_x42 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x43 = var_x42 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x44 = var_x43 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x0 = 1 / var_chaste_interface__calcium_dynamics__Cai; + const double var_x1 = pow(var_x0, 1.3999999999999999); + const double var_x2 = 1 + 6.4818210260626455e-7 * var_x1; + const double var_x3 = 0.433 + 0.25979999999999998 / var_x2; + const double var_x4 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; + const double var_x5 = var_x3 * var_x4; + const double var_x6 = 0.018717941753901308 * var_chaste_interface__membrane__V; + const double var_x7 = exp(var_x6); + const double var_x8 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; + const double var_x9 = var_x7 * var_x8; + const double var_x10 = exp(-var_x6); + const double var_x11 = pow(mParameters[2], 3); + const double var_x12 = var_x11 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x13 = var_x10 * var_x12; + const double var_x14 = 0.018717941753901308 * var_x13 + 0.018717941753901308 * var_x9; + const double var_x15 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x16 = 1 + 0.001 * var_x12 + 0.001 * var_x8; + const double var_x17 = 1 / var_x16; + const double var_x18 = var_x15 * var_x17; + const double var_x19 = 0.002 * var_x18; + const double var_x20 = var_x14 * var_x19; + const double var_x21 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); + const double var_x22 = 1 / (1 + 100 * var_x21); + const double var_x23 = 2 * var_x22; + const double var_x24 = 1 / (1.5 + mParameters[1]); + const double var_x25 = exp(-0.003743588350780262 * var_chaste_interface__membrane__V); + const double var_x26 = exp(0.01485884101040119 * mParameters[2]); + const double var_x27 = 0.037435883507802616 * var_chaste_interface__membrane__V; + const double var_x28 = exp(-var_x27); + const double var_x29 = 1 + 0.1245 * var_x25 + 0.036499999999999998 * var_x28 * (-0.14285714285714285 + 0.14285714285714285 * var_x26); + const double var_x30 = pow(var_x29, (-2)); + const double var_x31 = 0.00046607674967214262 * var_x25 + 0.037435883507802616 * var_x28 * (-0.0052142857142857138 + 0.0052142857142857138 * var_x26); + const double var_x32 = var_x24 * var_x30 * var_x31 * mParameters[1]; + const double var_x33 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); + const double var_x34 = var_x33 * var_chaste_interface__T_type_Ca_channel_g_gate__g; + const double var_x35 = 0.050000000000000003 * var_x34; + const double var_x36 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x37 = var_x36 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x38 = var_x37 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x39 = _lt_0_row[0]; + const double var_x40 = -1 + var_x39; + const double var_x41 = 1 / var_x40; + const double var_x42 = var_x39 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x43 = var_x42 - 0.34100000000000003 * mParameters[0]; + const double var_x44 = var_x41 * var_x43; const double var_x45 = 7.8019226357407252 * var_x44; - const double var_x46 = 0.074871767015605231 * var_chaste_interface__membrane__V; - const double var_x47 = exp(var_x46); - const double var_x48 = -1 + var_x47; - const double var_x49 = 1 / var_x48; - const double var_x50 = -0.34100000000000003 * mParameters[0]; - const double var_x51 = var_chaste_interface__calcium_dynamics__Cai; - const double var_x52 = var_x50 + var_x47 * var_x51; - const double var_x53 = var_x49 * var_x52; - const double var_x54 = var_x45 * var_x53; - const double var_x55 = var_x47 * var_chaste_interface__membrane__V; - const double var_x56 = var_x49 * var_x55; - const double var_x57 = 0.58414373385695628 * var_x44; - const double var_x58 = var_x54 + var_x56 * var_x57 * var_chaste_interface__calcium_dynamics__Cai - var_x52 * var_x55 * var_x57 / pow(var_x48, 2); - const double var_x59 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); - const double var_x60 = var_x59 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; - const double var_x61 = var_x60 * var_chaste_interface__fast_sodium_current_h_gate__h; - const double var_x62 = exp(var_x35); - const double var_x63 = -1 + var_x62; - const double var_x64 = 1 / var_x63; - const double var_x65 = var_x44 * var_x64; - const double var_x66 = -0.75 * mParameters[2]; - const double var_x67 = 0.75 * var_x62; - const double var_x68 = var_x66 + var_x67 * var_chaste_interface__ionic_concentrations__Nai; - const double var_x69 = 0.0024381008236689767 * var_x68; - const double var_x70 = var_x62 * var_chaste_interface__membrane__V; - const double var_x71 = var_x65 * var_x70; - const double var_x72 = var_x44 * var_x70 / pow(var_x63, 2); - const double var_x73 = var_x61 + var_x65 * var_x69 + 6.8454343811362063e-5 * var_x71 * var_chaste_interface__ionic_concentrations__Nai - 9.1272458415149417e-5 * var_x68 * var_x72; - const double var_x74 = 0.16722408026755853 * var_chaste_interface__membrane__V; - const double var_x75 = exp(1.2521739130434781 - var_x74); - const double var_x76 = 1 + var_x75; - const double var_x77 = 1 / var_x76; - const double var_x78 = pow(mParameters[1], 0.23999999999999999); - const double var_x79 = 1.921898339896919e-8 * var_x78; - const double var_x80 = 1 / var_chaste_interface__ionic_concentrations__Ki; - const double var_x81 = var_x80 * mParameters[1]; - const double var_x82 = log(var_x81); - const double var_x83 = -26.712338705498265 * var_x82 + var_chaste_interface__membrane__V; - const double var_x84 = 0.044642857142857144 * var_chaste_interface__membrane__V; - const double var_x85 = exp(0.4017857142857143 + var_x84); - const double var_x86 = 1 + var_x85; - const double var_x87 = sqrt(mParameters[1]); - const double var_x88 = var_x87 * mParameters[6] / var_x86; - const double var_x89 = var_x88 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; - const double var_x90 = 438.93811257017387 * var_x87 * mParameters[5]; - const double var_x91 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__V - 6.3708927812613361 * var_x82); - const double var_x92 = 1 + var_x91; - const double var_x93 = 1 / var_x92; - const double var_x94 = 0.51429999999999998 * var_chaste_interface__membrane__V; - const double var_x95 = exp(-2.4444678999999998 - var_x94 + 13.738155796237757 * var_x82); - const double var_x96 = 1 + var_x95; - const double var_x97 = 1 / var_x96; - const double var_x98 = 0.080320000000000003 * var_chaste_interface__membrane__V; - const double var_x99 = exp(0.43983232 + var_x98 - 2.1455350448256207 * var_x82); - const double var_x100 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__V - 1.6494869150645177 * var_x82); - const double var_x101 = var_x100 + 0.49124000000000001 * var_x99; - const double var_x102 = var_x101 * var_x97; - const double var_x103 = 1 / (1000 * var_x102 + 1020 * var_x93); - const double var_x104 = var_x103 * var_x93; - const double var_x105 = -0.75 * mParameters[1]; - const double var_x106 = var_x105 + var_x67 * var_chaste_interface__ionic_concentrations__Ki; - const double var_x107 = 0.00069711623550831479 * var_x106; - const double var_x108 = 1000 * var_x97; - const double var_x109 = pow(var_x92, (-2)); - const double var_x110 = var_x101 * var_x95 / pow(var_x96, 2); - const double var_x111 = var_x87 * mParameters[5]; - const double var_x112 = var_x111 * var_x83; - const double var_x113 = 0.0004218936106979757 * var_x112 * var_x93 / pow((var_x93 + 0.98039215686274506 * var_x102), 2); - const double var_x114 = var_x83 * var_x87 * mParameters[6] * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; - const double var_x115 = var_x109 * var_x91; - const double var_x116 = var_x103 * var_x112; - const double var_x117 = var_x79 + 0.0055199999999999997 * var_x77 + 0.43033148291193518 * var_x89 + var_x104 * var_x90 + var_x107 * var_x65 + var_x113 * (-514.29999999999995 * var_x110 - var_x108 * (0.061749999999999999 * var_x100 + 0.039456396800000001 * var_x99) + 243.26999999999998 * var_x109 * var_x91) + 1.9572871637915374e-5 * var_x71 * var_chaste_interface__ionic_concentrations__Ki - 2.6097162183887167e-5 * var_x106 * var_x72 - 104.68673984798647 * var_x115 * var_x116 + 0.00092307692307692295 * var_x75 * var_x83 / pow(var_x76, 2) - 0.019211226915711394 * var_x114 * var_x85 / pow(var_x86, 2); - const double var_x118 = 1 / mParameters[3]; - const double var_x119 = 0.001 * var_x118; + const double var_x46 = var_x38 * var_x45; + const double var_x47 = var_x38 * var_chaste_interface__membrane__V; + const double var_x48 = var_x41 * var_x47; + const double var_x49 = var_x35 + var_x46 + 0.58414373385695628 * var_x42 * var_x48 - 0.58414373385695628 * var_x39 * var_x43 * var_x47 / pow(var_x40, 2); + const double var_x50 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); + const double var_x51 = var_x50 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; + const double var_x52 = var_x51 * var_chaste_interface__fast_sodium_current_h_gate__h; + const double var_x53 = exp(var_x27); + const double var_x54 = -1 + var_x53; + const double var_x55 = 1 / var_x54; + const double var_x56 = var_x38 * var_x55; + const double var_x57 = 0.75 * var_x53; + const double var_x58 = -0.75 * mParameters[2] + var_x57 * var_chaste_interface__ionic_concentrations__Nai; + const double var_x59 = 0.0024381008236689767 * var_x58; + const double var_x60 = var_x56 * var_x59; + const double var_x61 = var_x53 * var_x56 * var_chaste_interface__membrane__V; + const double var_x62 = var_x47 * var_x53 / pow(var_x54, 2); + const double var_x63 = var_x52 + var_x60 + 6.8454343811362063e-5 * var_x61 * var_chaste_interface__ionic_concentrations__Nai - 9.1272458415149417e-5 * var_x58 * var_x62; + const double var_x64 = exp(1.2521739130434781 - 0.16722408026755853 * var_chaste_interface__membrane__V); + const double var_x65 = 1 + var_x64; + const double var_x66 = 1 / var_x65; + const double var_x67 = 0.0055199999999999997 * var_x66; + const double var_x68 = pow(mParameters[1], 0.23999999999999999); + const double var_x69 = 1.921898339896919e-8 * var_x68; + const double var_x70 = 1 / var_chaste_interface__ionic_concentrations__Ki; + const double var_x71 = log(var_x70 * mParameters[1]); + const double var_x72 = -26.712338705498265 * var_x71 + var_chaste_interface__membrane__V; + const double var_x73 = exp(0.4017857142857143 + 0.044642857142857144 * var_chaste_interface__membrane__V); + const double var_x74 = 1 + var_x73; + const double var_x75 = sqrt(mParameters[1]); + const double var_x76 = var_x75 * mParameters[6] / var_x74; + const double var_x77 = var_x76 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; + const double var_x78 = 0.43033148291193518 * var_x77; + const double var_x79 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__V - 6.3708927812613361 * var_x71); + const double var_x80 = 1 + var_x79; + const double var_x81 = 1 / var_x80; + const double var_x82 = exp(-2.4444678999999998 + 13.738155796237757 * var_x71 - 0.51429999999999998 * var_chaste_interface__membrane__V); + const double var_x83 = 1 + var_x82; + const double var_x84 = 1 / var_x83; + const double var_x85 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__V - 2.1455350448256207 * var_x71); + const double var_x86 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__V - 1.6494869150645177 * var_x71); + const double var_x87 = var_x86 + 0.49124000000000001 * var_x85; + const double var_x88 = var_x84 * var_x87; + const double var_x89 = 1 / (1000 * var_x88 + 1020 * var_x81); + const double var_x90 = var_x75 * var_x81 * mParameters[5]; + const double var_x91 = var_x89 * var_x90; + const double var_x92 = 438.93811257017387 * var_x91; + const double var_x93 = -0.75 * mParameters[1] + var_x57 * var_chaste_interface__ionic_concentrations__Ki; + const double var_x94 = 0.00069711623550831479 * var_x93; + const double var_x95 = var_x56 * var_x94; + const double var_x96 = 1000 * var_x84; + const double var_x97 = pow(var_x80, (-2)); + const double var_x98 = var_x82 * var_x87 / pow(var_x83, 2); + const double var_x99 = 0.0004218936106979757 * var_x72 * var_x90 / pow((var_x81 + 0.98039215686274506 * var_x88), 2); + const double var_x100 = var_x72 * var_x75; + const double var_x101 = var_x79 * var_x97; + const double var_x102 = var_x100 * var_x89 * mParameters[5]; + const double var_x103 = var_x67 + var_x69 + var_x78 + var_x92 + var_x95 + var_x99 * (-514.29999999999995 * var_x98 - var_x96 * (0.061749999999999999 * var_x86 + 0.039456396800000001 * var_x85) + 243.26999999999998 * var_x79 * var_x97) + 1.9572871637915374e-5 * var_x61 * var_chaste_interface__ionic_concentrations__Ki - 2.6097162183887167e-5 * var_x62 * var_x93 - 104.68673984798647 * var_x101 * var_x102 + 0.00092307692307692295 * var_x64 * var_x72 / pow(var_x65, 2) - 0.019211226915711394 * var_x100 * var_x73 * mParameters[6] * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr / pow(var_x74, 2); + const double var_x104 = 1 / mParameters[3]; + const double var_x105 = 0.001 * var_x104; - partialF = -var_x119 * (0.0070159999999999997 + var_x117 + var_x2 + var_x24 + var_x58 + var_x73 + var_x8 + var_x30 * var_x41); + partialF = -var_x105 * (0.0070159999999999997 + var_x103 + var_x20 + var_x49 + var_x5 + var_x63 + var_x23 * var_x32); } else { @@ -1505,85 +1498,87 @@ std::shared_ptr // Units: millimolar; Initial value: 15.6748357 + // Lookup table indexing + const bool _oob_0 = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->CheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time_converted)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x0 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); - const double var_x1 = var_x0 * var_chaste_interface__T_type_Ca_channel_g_gate__g; - const double var_x2 = 0.050000000000000003 * var_x1; - const double var_x3 = 1 / var_chaste_interface__calcium_dynamics__Cai; - const double var_x9 = 0.018717941753901308 * var_chaste_interface__membrane__V; - const double var_x10 = exp(var_x9); - const double var_x11 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; - const double var_x12 = var_x10 * var_x11; - const double var_x13 = -var_x9; - const double var_x14 = exp(var_x13); - const double var_x15 = pow(mParameters[2], 3); - const double var_x16 = var_x15 * var_chaste_interface__calcium_dynamics__Cai; - const double var_x17 = var_x14 * var_x16; - const double var_x19 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x20 = 1 + 0.001 * var_x11 + 0.001 * var_x16; - const double var_x21 = 1 / var_x20; - const double var_x22 = var_x19 * var_x21; - const double var_x23 = 0.002 * var_x22; - const double var_x42 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x43 = var_x42 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x44 = var_x43 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x0 = 1 / var_chaste_interface__calcium_dynamics__Cai; + const double var_x6 = 0.018717941753901308 * var_chaste_interface__membrane__V; + const double var_x7 = exp(var_x6); + const double var_x8 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; + const double var_x9 = var_x7 * var_x8; + const double var_x10 = exp(-var_x6); + const double var_x11 = pow(mParameters[2], 3); + const double var_x12 = var_x11 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x13 = var_x10 * var_x12; + const double var_x15 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x16 = 1 + 0.001 * var_x12 + 0.001 * var_x8; + const double var_x17 = 1 / var_x16; + const double var_x18 = var_x15 * var_x17; + const double var_x19 = 0.002 * var_x18; + const double var_x33 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); + const double var_x34 = var_x33 * var_chaste_interface__T_type_Ca_channel_g_gate__g; + const double var_x35 = 0.050000000000000003 * var_x34; + const double var_x36 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x37 = var_x36 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x38 = var_x37 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x39 = _lt_0_row[0]; + const double var_x40 = -1 + var_x39; + const double var_x41 = 1 / var_x40; + const double var_x42 = var_x39 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x43 = var_x42 - 0.34100000000000003 * mParameters[0]; + const double var_x44 = var_x41 * var_x43; const double var_x45 = 7.8019226357407252 * var_x44; - const double var_x46 = 0.074871767015605231 * var_chaste_interface__membrane__V; - const double var_x47 = exp(var_x46); - const double var_x48 = -1 + var_x47; - const double var_x49 = 1 / var_x48; - const double var_x50 = -0.34100000000000003 * mParameters[0]; - const double var_x51 = var_chaste_interface__calcium_dynamics__Cai; - const double var_x52 = var_x50 + var_x47 * var_x51; - const double var_x53 = var_x49 * var_x52; - const double var_x54 = var_x45 * var_x53; - const double var_x55 = var_x47 * var_chaste_interface__membrane__V; - const double var_x56 = var_x49 * var_x55; - const double var_x120 = var_chaste_interface__L_type_Ca_channel_d_gate__d * var_chaste_interface__membrane__V; - const double var_x121 = var_x120 * var_chaste_interface__L_type_Ca_channel_f_gate__f / pow((0.00059999999999999995 + var_chaste_interface__calcium_dynamics__Cai), 2); - const double var_x124 = 0.00050000000000000001 + var_chaste_interface__calcium_dynamics__Cai; - const double var_x125 = 1 / var_x124; - const double var_x126 = pow(var_x124, (-2)); - const double var_x127 = 1.1499999999999999 * var_x126 * var_chaste_interface__calcium_dynamics__Cai; - const double var_x128 = 0.0046811535814444347 * var_x121; - const double var_x129 = var_x128 * var_x53; - const double var_x133 = var_x12 - var_x17; - const double var_x134 = pow((0.0068999999999999999 + var_chaste_interface__calcium_dynamics__Cai), (-2)); - const double var_x135 = 1.38e-5 * var_x134 * var_x21; - const double var_x136 = var_x15 * var_x23; - const double var_x137 = pow(var_x20, (-2)); - const double var_x138 = var_x137 * var_x19; - const double var_x139 = var_x133 * var_x138; - const double var_x140 = 1.9999999999999999e-6 * var_x15; - const double var_x141 = var_x133 * var_x135 + var_x136 * var_x14 + var_x139 * var_x140; - const double var_x154 = log(var_x3 * mParameters[0]); - const double var_x155 = -13.356169352749133 * var_x154 + var_chaste_interface__membrane__V; - const double var_x174 = 0.0023800000000000002 + var_chaste_interface__calcium_dynamics__Cai; - const double var_x175 = 1 + 0.00011900000000000002 / pow(var_x174, 2) + 3.5000000000000004e-5 * var_x126; - const double var_x176 = 1 / var_x175; - const double var_x177 = 1 / M_PI; - const double var_x180 = 0.00062 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; - const double var_x181 = 1 / var_x180; - const double var_x182 = 1 - var_chaste_interface__calcium_dynamics__APtrack2; - const double var_x183 = -0.00018000000000000001 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; - const double var_x184 = 60000 * var_x181 * var_x182 * var_x183 * var_chaste_interface__calcium_dynamics__APtrack2; - const double var_x185 = var_chaste_interface__calcium_dynamics__Cainfluxtrack > 0.00018000000000000001; - const double var_x186 = 4000 * var_chaste_interface__calcium_dynamics__OVRLDtrack2; - const double var_x187 = -4000 + var_x186; - const double var_x188 = var_chaste_interface__calcium_dynamics__OVRLDtrack2 > 0; - const double var_x189 = ((var_x185) ? (-var_x184) : ((var_x188) ? (var_x187 * var_chaste_interface__calcium_dynamics__OVRLDtrack2) : (0))); - const double var_x190 = 0.00092000000000000003 + var_chaste_interface__calcium_dynamics__Cai; - const double var_x191 = 1 / var_x190; - const double var_x192 = 0.40588235294117642 * var_x191; - const double var_x193 = var_chaste_interface__calcium_dynamics__Cai / pow(var_x190, 2); - const double var_x194 = 1.1499999999999999 * var_x125; - const double var_x195 = var_x194 - var_x127 + 0.040282206767891383 * var_x3 + 0.6678084676374566 * var_x1 * var_x3; - const double var_x196 = 0.090316078310111333 * var_x177; - const double var_x197 = -var_chaste_interface__calcium_dynamics__Cai + var_chaste_interface__calcium_dynamics__Ca_JSR; - const double var_x198 = ((var_x185) ? (var_x184 * var_x197) : ((var_x188) ? (var_x186 * var_x197 * (1 - var_chaste_interface__calcium_dynamics__OVRLDtrack2)) : (0))); - const double var_x199 = -0.040282206767891383 * var_x154 + var_x155 * var_x2 + var_x194 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x46 = var_x38 * var_x45; + const double var_x47 = var_x38 * var_chaste_interface__membrane__V; + const double var_x48 = var_x41 * var_x47; + const double var_x106 = var_chaste_interface__L_type_Ca_channel_d_gate__d * var_chaste_interface__membrane__V; + const double var_x107 = var_x106 * var_chaste_interface__L_type_Ca_channel_f_gate__f / pow((0.00059999999999999995 + var_chaste_interface__calcium_dynamics__Cai), 2); + const double var_x110 = 0.00050000000000000001 + var_chaste_interface__calcium_dynamics__Cai; + const double var_x111 = 1 / var_x110; + const double var_x112 = pow(var_x110, (-2)); + const double var_x113 = 1.1499999999999999 * var_x112 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x114 = 0.0046811535814444347 * var_x107 * var_x44; + const double var_x118 = var_x9 - var_x13; + const double var_x119 = var_x118 * var_x17 / pow((0.0068999999999999999 + var_chaste_interface__calcium_dynamics__Cai), 2); + const double var_x120 = var_x10 * var_x11; + const double var_x121 = pow(var_x16, (-2)); + const double var_x122 = var_x118 * var_x121 * var_x15; + const double var_x123 = var_x11 * var_x122; + const double var_x124 = 1.38e-5 * var_x119 + 1.9999999999999999e-6 * var_x123 + var_x120 * var_x19; + const double var_x136 = log(var_x0 * mParameters[0]); + const double var_x137 = -13.356169352749133 * var_x136 + var_chaste_interface__membrane__V; + const double var_x155 = 0.0023800000000000002 + var_chaste_interface__calcium_dynamics__Cai; + const double var_x156 = 1 + 0.00011900000000000002 / pow(var_x155, 2) + 3.5000000000000004e-5 * var_x112; + const double var_x157 = 1 / var_x156; + const double var_x158 = 1 / M_PI; + const double var_x161 = 0.00062 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; + const double var_x162 = 1 / var_x161; + const double var_x163 = 1 - var_chaste_interface__calcium_dynamics__APtrack2; + const double var_x164 = -0.00018000000000000001 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; + const double var_x165 = 60000 * var_x162 * var_x163 * var_x164 * var_chaste_interface__calcium_dynamics__APtrack2; + const double var_x166 = var_chaste_interface__calcium_dynamics__Cainfluxtrack > 0.00018000000000000001; + const double var_x167 = 4000 * var_chaste_interface__calcium_dynamics__OVRLDtrack2; + const double var_x168 = -4000 + var_x167; + const double var_x169 = var_chaste_interface__calcium_dynamics__OVRLDtrack2 > 0; + const double var_x170 = ((var_x166) ? (-var_x165) : ((var_x169) ? (var_x168 * var_chaste_interface__calcium_dynamics__OVRLDtrack2) : (0))); + const double var_x171 = 0.00092000000000000003 + var_chaste_interface__calcium_dynamics__Cai; + const double var_x172 = 1 / var_x171; + const double var_x173 = 0.40588235294117642 * var_x172; + const double var_x174 = var_chaste_interface__calcium_dynamics__Cai / pow(var_x171, 2); + const double var_x175 = 1.1499999999999999 * var_x111; + const double var_x176 = var_x124 + var_x175 - var_x113 - var_x114 + 0.040282206767891383 * var_x0 + 7.8019226357407252 * var_x39 * var_x48 + 0.6678084676374566 * var_x0 * var_x34; + const double var_x177 = 0.090316078310111333 * var_x158; + const double var_x178 = -var_chaste_interface__calcium_dynamics__Cai + var_chaste_interface__calcium_dynamics__Ca_JSR; + const double var_x179 = ((var_x166) ? (var_x165 * var_x178) : ((var_x169) ? (var_x167 * var_x178 * (1 - var_chaste_interface__calcium_dynamics__OVRLDtrack2)) : (0))); + const double var_x180 = var_x118 * var_x19; + const double var_x181 = -0.040282206767891383 * var_x136 + var_x137 * var_x35 + var_x175 * var_chaste_interface__calcium_dynamics__Cai + var_x46 * var_chaste_interface__membrane__V; - partialF = 0.001 * var_x176 * (-var_x192 + 0.40588235294117642 * var_x193 + 0.0070588235294117632 * var_x189 - var_x196 * (var_x141 + var_x195 - var_x129 + var_x45 * var_x56)) + 0.001 * (0.00023800000000000004 / pow(var_x174, 3) + 7.0000000000000007e-5 / pow(var_x124, 3)) * (0.027058823529411764 * var_chaste_interface__calcium_dynamics__Ca_NSR + 0.0070588235294117632 * var_x198 - var_x192 * var_chaste_interface__calcium_dynamics__Cai - var_x196 * (var_x199 + 0.003016 * var_chaste_interface__membrane__V + var_x54 * var_chaste_interface__membrane__V - var_x133 * var_x23)) / pow(var_x175, 2); + partialF = 0.001 * var_x157 * (-var_x173 + 0.40588235294117642 * var_x174 + 0.0070588235294117632 * var_x170 - var_x176 * var_x177) + 0.001 * (0.00023800000000000004 / pow(var_x155, 3) + 7.0000000000000007e-5 / pow(var_x110, 3)) * (0.027058823529411764 * var_chaste_interface__calcium_dynamics__Ca_NSR + 0.0070588235294117632 * var_x179 - var_x173 * var_chaste_interface__calcium_dynamics__Cai - var_x177 * (var_x181 - var_x180 + 0.003016 * var_chaste_interface__membrane__V)) / pow(var_x156, 2); } else { @@ -1635,14 +1630,14 @@ std::shared_ptr // LCOV_EXCL_STOP const double* const _lt_0_row = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x210 = _lt_0_row[21]; - const double var_x212 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x213 = exp(-4.7130000000000001 - var_x212); - const double var_x214 = 1 - var_x213; - const double var_x215 = 0.32000000000000001 / var_x214; - const double var_x216 = 47.130000000000003 + var_chaste_interface__membrane__V; + const double var_x194 = _lt_0_row[21]; + const double var_x196 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x197 = exp(-4.7130000000000001 - var_x196); + const double var_x198 = 1 - var_x197; + const double var_x199 = 0.32000000000000001 / var_x198; + const double var_x200 = 47.130000000000003 + var_chaste_interface__membrane__V; - partialF = -0.080000000000000002 * var_x210 - var_x215 * var_x216; + partialF = -0.080000000000000002 * var_x194 - var_x199 * var_x200; } else { @@ -1687,14 +1682,14 @@ std::shared_ptr - const double var_x217 = exp(0.34999999999999998 * var_chaste_interface__membrane__V); - const double var_x218 = exp(0.079000000000000001 * var_chaste_interface__membrane__V); - const double var_x219 = exp(-0.14705882352941177 * var_chaste_interface__membrane__V); - const double var_x220 = var_chaste_interface__membrane__V < -40; - const double var_x221 = exp(-0.0900900900900901 * var_chaste_interface__membrane__V); - const double var_x222 = 1 + 0.38275493141491301 * var_x221; + const double var_x201 = exp(0.34999999999999998 * var_chaste_interface__membrane__V); + const double var_x202 = exp(0.079000000000000001 * var_chaste_interface__membrane__V); + const double var_x203 = exp(-11.764705882352942 - 0.14705882352941177 * var_chaste_interface__membrane__V); + const double var_x204 = var_chaste_interface__membrane__V < -40; + const double var_x205 = exp(-0.96036036036036043 - 0.0900900900900901 * var_chaste_interface__membrane__V); + const double var_x206 = 1 + var_x205; - partialF = ((var_x220) ? (-310000 * var_x217 - 1.0495108254269644e-6 * var_x219 - 3.5600000000000001 * var_x218) : (-7.6923076923076934 / var_x222)); + partialF = ((var_x204) ? (-310000 * var_x201 - 0.13500000000000001 * var_x203 - 3.5600000000000001 * var_x202) : (-7.6923076923076934 / var_x206)); } else { @@ -1739,21 +1734,26 @@ std::shared_ptr - const double var_x212 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x220 = var_chaste_interface__membrane__V < -40; - const double var_x224 = exp(0.24440000000000001 * var_chaste_interface__membrane__V); - const double var_x225 = exp(-0.043909999999999998 * var_chaste_interface__membrane__V); - const double var_x226 = -127140 * var_x224 - 3.4740000000000003e-5 * var_x225; - const double var_x228 = exp(0.311 * var_chaste_interface__membrane__V); - const double var_x229 = 1 / (1 + 50262745825.953949 * var_x228); - const double var_x230 = 1 + 0.0039608683399042569 * exp(-0.13780000000000001 * var_chaste_interface__membrane__V); - const double var_x231 = exp(-0.01052 * var_chaste_interface__membrane__V) / var_x230; - const double var_x232 = 37.780000000000001 + var_chaste_interface__membrane__V; - const double var_x233 = var_x229 * var_x232; - const double var_x234 = 1 + 0.040762203978366211 * exp(-var_x212); - const double var_x235 = exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__V) / var_x234; + const double var_x196 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x204 = var_chaste_interface__membrane__V < -40; + const double var_x208 = exp(0.24440000000000001 * var_chaste_interface__membrane__V); + const double var_x209 = exp(-0.043909999999999998 * var_chaste_interface__membrane__V); + const double var_x210 = -127140 * var_x208 - 3.4740000000000003e-5 * var_x209; + const double var_x212 = exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V); + const double var_x213 = 1 + var_x212; + const double var_x214 = 1 / var_x213; + const double var_x215 = exp(-5.5312920000000005 - 0.13780000000000001 * var_chaste_interface__membrane__V); + const double var_x216 = 1 + var_x215; + const double var_x217 = exp(-0.01052 * var_chaste_interface__membrane__V); + const double var_x218 = var_x217 / var_x216; + const double var_x219 = 37.780000000000001 + var_chaste_interface__membrane__V; + const double var_x220 = var_x214 * var_x219; + const double var_x221 = exp(-3.2000000000000002 - var_x196); + const double var_x222 = 1 + var_x221; + const double var_x223 = exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__V); + const double var_x224 = var_x223 / var_x222; - partialF = ((var_x220) ? (-0.1212 * var_x231 - var_x226 * var_x233) : (-0.29999999999999999 * var_x235)); + partialF = ((var_x204) ? (-0.1212 * var_x218 - var_x210 * var_x220) : (-0.29999999999999999 * var_x224)); } else { @@ -1800,18 +1800,18 @@ std::shared_ptr - const double var_x237 = exp(-1.6025641025641024 - 0.16025641025641024 * var_chaste_interface__membrane__V); - const double var_x238 = 1 - var_x237; - const double var_x239 = 1 / var_x238; - const double var_x240 = 0.035000000000000003 * var_x239; - const double var_x241 = 10 + var_chaste_interface__membrane__V; - const double var_x244 = 1 + var_x237; - const double var_x245 = 1 / var_x244; - const double var_x246 = 1 - var_x245; - const double var_x247 = var_x244 * var_x246; - const double var_x250 = var_x240 * var_x241; + const double var_x226 = exp(-1.6025641025641024 - 0.16025641025641024 * var_chaste_interface__membrane__V); + const double var_x227 = 1 - var_x226; + const double var_x228 = 1 / var_x227; + const double var_x229 = 0.035000000000000003 * var_x228; + const double var_x230 = 10 + var_chaste_interface__membrane__V; + const double var_x233 = 1 + var_x226; + const double var_x234 = 1 / var_x233; + const double var_x235 = 1 - var_x234; + const double var_x236 = var_x233 * var_x235; + const double var_x239 = var_x229 * var_x230; - partialF = -var_x250 - var_x247 * var_x250; + partialF = -var_x239 - var_x236 * var_x239; } else { @@ -1858,17 +1858,17 @@ std::shared_ptr - const double var_x251 = exp(-0.113569 * pow((1 + 0.10000000000000001 * var_chaste_interface__membrane__V), 2)); - const double var_x254 = exp(4 + 0.125 * var_chaste_interface__membrane__V); - const double var_x255 = 1 + var_x254; - const double var_x256 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x257 = 1 + var_x256; - const double var_x259 = 0.019699999999999999 * var_x251; - const double var_x260 = -0.02 - var_x259; - const double var_x261 = 1 / var_x255 + 0.59999999999999998 / var_x257; - const double var_x263 = 1 - var_x261; + const double var_x240 = exp(-0.113569 * pow((1 + 0.10000000000000001 * var_chaste_interface__membrane__V), 2)); + const double var_x243 = exp(4 + 0.125 * var_chaste_interface__membrane__V); + const double var_x244 = 1 + var_x243; + const double var_x245 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x246 = 1 + var_x245; + const double var_x248 = 0.019699999999999999 * var_x240; + const double var_x249 = -0.02 - var_x248; + const double var_x250 = 1 / var_x244 + 0.59999999999999998 / var_x246; + const double var_x252 = 1 - var_x250; - partialF = var_x260 * var_x261 + var_x260 * var_x263; + partialF = var_x249 * var_x250 + var_x249 * var_x252; } else { @@ -1913,12 +1913,12 @@ std::shared_ptr - const double var_x266 = exp(5.5555555555555554 + 0.22222222222222221 * var_chaste_interface__membrane__V); - const double var_x267 = 1 + var_x266; - const double var_x268 = 1 / var_x267; - const double var_x269 = 1 / (0.0037000000000000002 + 0.0061000000000000004 * var_x268); + const double var_x255 = exp(5.5555555555555554 + 0.22222222222222221 * var_chaste_interface__membrane__V); + const double var_x256 = 1 + var_x255; + const double var_x257 = 1 / var_x256; + const double var_x258 = 1 / (0.0037000000000000002 + 0.0061000000000000004 * var_x257); - partialF = -0.001 * var_x269; + partialF = -0.001 * var_x258; } else { @@ -1963,10 +1963,10 @@ std::shared_ptr - const double var_x271 = 1 / (0.012 - 0.00087500000000000002 * var_chaste_interface__membrane__V); - const double var_x273 = var_chaste_interface__membrane__V <= 0; + const double var_x261 = 1 / (0.012 - 0.00087500000000000002 * var_chaste_interface__membrane__V); + const double var_x263 = var_chaste_interface__membrane__V <= 0; - partialF = ((var_x273) ? (-0.001 * var_x271) : (-0.083333333333333329)); + partialF = ((var_x263) ? (-0.001 * var_x261) : (-0.083333333333333329)); } else { @@ -2011,16 +2011,16 @@ std::shared_ptr - const double var_x276 = exp(5.6404999999999994 + 0.14499999999999999 * var_chaste_interface__membrane__V); - const double var_x277 = -1 + var_x276; - const double var_x278 = 1 / var_x277; - const double var_x279 = exp(-1.7465999999999999 - 0.123 * var_chaste_interface__membrane__V); - const double var_x280 = 1 - var_x279; - const double var_x281 = 1 / var_x280; - const double var_x282 = 14.199999999999999 + var_chaste_interface__membrane__V; - const double var_x283 = 38.899999999999999 + var_chaste_interface__membrane__V; + const double var_x266 = exp(5.6404999999999994 + 0.14499999999999999 * var_chaste_interface__membrane__V); + const double var_x267 = -1 + var_x266; + const double var_x268 = 1 / var_x267; + const double var_x269 = exp(-1.7465999999999999 - 0.123 * var_chaste_interface__membrane__V); + const double var_x270 = 1 - var_x269; + const double var_x271 = 1 / var_x270; + const double var_x272 = 14.199999999999999 + var_chaste_interface__membrane__V; + const double var_x273 = 38.899999999999999 + var_chaste_interface__membrane__V; - partialF = -0.0013799999999999999 * var_x281 * var_x282 - 0.00060999999999999997 * var_x278 * var_x283; + partialF = -0.0013799999999999999 * var_x271 * var_x272 - 0.00060999999999999997 * var_x268 * var_x273; } else { @@ -2065,17 +2065,17 @@ std::shared_ptr - const double var_x287 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__membrane__V); - const double var_x288 = -1 + var_x287; - const double var_x289 = 1 / var_x288; - const double var_x290 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__membrane__V); - const double var_x291 = 1 - var_x290; - const double var_x292 = 1 / var_x291; - const double var_x293 = 30 + var_chaste_interface__membrane__V; - const double var_x297 = var_x289 * var_x293; - const double var_x298 = var_x292 * var_x293; + const double var_x277 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__membrane__V); + const double var_x278 = -1 + var_x277; + const double var_x279 = 1 / var_x278; + const double var_x280 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__membrane__V); + const double var_x281 = 1 - var_x280; + const double var_x282 = 1 / var_x281; + const double var_x283 = 30 + var_chaste_interface__membrane__V; + const double var_x287 = var_x279 * var_x283; + const double var_x288 = var_x282 * var_x283; - partialF = -0.00013100000000000001 * var_x297 - 7.1899999999999999e-5 * var_x298; + partialF = -0.00013100000000000001 * var_x287 - 7.1899999999999999e-5 * var_x288; } else { @@ -2120,17 +2120,17 @@ std::shared_ptr - const double var_x287 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__membrane__V); - const double var_x288 = -1 + var_x287; - const double var_x289 = 1 / var_x288; - const double var_x290 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__membrane__V); - const double var_x291 = 1 - var_x290; - const double var_x292 = 1 / var_x291; - const double var_x293 = 30 + var_chaste_interface__membrane__V; - const double var_x297 = var_x289 * var_x293; - const double var_x298 = var_x292 * var_x293; + const double var_x277 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__membrane__V); + const double var_x278 = -1 + var_x277; + const double var_x279 = 1 / var_x278; + const double var_x280 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__membrane__V); + const double var_x281 = 1 - var_x280; + const double var_x282 = 1 / var_x281; + const double var_x283 = 30 + var_chaste_interface__membrane__V; + const double var_x287 = var_x279 * var_x283; + const double var_x288 = var_x282 * var_x283; - partialF = -3.2750000000000003e-5 * var_x297 - 1.7975e-5 * var_x298; + partialF = -3.2750000000000003e-5 * var_x287 - 1.7975e-5 * var_x288; } else { @@ -2177,16 +2177,16 @@ std::shared_ptr - const double var_x299 = 0.040000000000000001 * var_chaste_interface__membrane__V; - const double var_x300 = exp(-1.6000000000000001 + var_x299); - const double var_x301 = 1 + var_x300; - const double var_x302 = 1 / var_x301; - const double var_x303 = var_x300 * var_x302; - const double var_x304 = exp(-3.6000000000000001 - var_x299); - const double var_x305 = 1 + var_x304; - const double var_x306 = var_x304 / var_x305; + const double var_x289 = 0.040000000000000001 * var_chaste_interface__membrane__V; + const double var_x290 = exp(-1.6000000000000001 + var_x289); + const double var_x291 = 1 + var_x290; + const double var_x292 = 1 / var_x291; + const double var_x293 = var_x290 * var_x292; + const double var_x294 = exp(-3.6000000000000001 - var_x289); + const double var_x295 = 1 + var_x294; + const double var_x296 = var_x294 / var_x295; - partialF = -10 * var_x303 - 10 * var_x306; + partialF = -10 * var_x293 - 10 * var_x296; } else { @@ -2233,15 +2233,15 @@ std::shared_ptr - const double var_x312 = 0.20000000000000001 * var_chaste_interface__membrane__V; - const double var_x313 = exp(12 + var_x312); - const double var_x314 = 1 + var_x313; - const double var_x315 = 1 / var_x314; - const double var_x316 = exp(5 + var_x312); - const double var_x317 = 1 + var_x316; - const double var_x318 = var_x316 / var_x317; + const double var_x302 = 0.20000000000000001 * var_chaste_interface__membrane__V; + const double var_x303 = exp(12 + var_x302); + const double var_x304 = 1 + var_x303; + const double var_x305 = 1 / var_x304; + const double var_x306 = exp(5 + var_x302); + const double var_x307 = 1 + var_x306; + const double var_x308 = var_x306 / var_x307; - partialF = -0.014999999999999999 * var_x315 - 0.10000000000000001 * var_x318; + partialF = -0.014999999999999999 * var_x305 - 0.10000000000000001 * var_x308; } else { @@ -2299,25 +2299,25 @@ std::shared_ptr - const double var_x180 = 0.00062 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; - const double var_x181 = 1 / var_x180; - const double var_x182 = 1 - var_chaste_interface__calcium_dynamics__APtrack2; - const double var_x183 = -0.00018000000000000001 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; - const double var_x184 = 60000 * var_x181 * var_x182 * var_x183 * var_chaste_interface__calcium_dynamics__APtrack2; - const double var_x185 = var_chaste_interface__calcium_dynamics__Cainfluxtrack > 0.00018000000000000001; - const double var_x186 = 4000 * var_chaste_interface__calcium_dynamics__OVRLDtrack2; - const double var_x187 = -4000 + var_x186; - const double var_x188 = var_chaste_interface__calcium_dynamics__OVRLDtrack2 > 0; - const double var_x197 = -var_chaste_interface__calcium_dynamics__Cai + var_chaste_interface__calcium_dynamics__Ca_JSR; - const double var_x198 = ((var_x185) ? (var_x184 * var_x197) : ((var_x188) ? (var_x186 * var_x197 * (1 - var_chaste_interface__calcium_dynamics__OVRLDtrack2)) : (0))); - const double var_x204 = -var_x187; - const double var_x205 = ((var_x185) ? (var_x184) : ((var_x188) ? (var_x204 * var_chaste_interface__calcium_dynamics__OVRLDtrack2) : (0))); - const double var_x323 = 0.80000000000000004 + var_chaste_interface__calcium_dynamics__Ca_JSR; - const double var_x324 = pow(var_x323, (-2)); - const double var_x325 = 1 / (1 + 8 * var_x324); - const double var_x326 = 0.001 * var_x325; + const double var_x161 = 0.00062 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; + const double var_x162 = 1 / var_x161; + const double var_x163 = 1 - var_chaste_interface__calcium_dynamics__APtrack2; + const double var_x164 = -0.00018000000000000001 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; + const double var_x165 = 60000 * var_x162 * var_x163 * var_x164 * var_chaste_interface__calcium_dynamics__APtrack2; + const double var_x166 = var_chaste_interface__calcium_dynamics__Cainfluxtrack > 0.00018000000000000001; + const double var_x167 = 4000 * var_chaste_interface__calcium_dynamics__OVRLDtrack2; + const double var_x168 = -4000 + var_x167; + const double var_x169 = var_chaste_interface__calcium_dynamics__OVRLDtrack2 > 0; + const double var_x178 = -var_chaste_interface__calcium_dynamics__Cai + var_chaste_interface__calcium_dynamics__Ca_JSR; + const double var_x179 = ((var_x166) ? (var_x165 * var_x178) : ((var_x169) ? (var_x167 * var_x178 * (1 - var_chaste_interface__calcium_dynamics__OVRLDtrack2)) : (0))); + const double var_x187 = -var_x168; + const double var_x188 = ((var_x166) ? (var_x165) : ((var_x169) ? (var_x187 * var_chaste_interface__calcium_dynamics__OVRLDtrack2) : (0))); + const double var_x313 = 0.80000000000000004 + var_chaste_interface__calcium_dynamics__Ca_JSR; + const double var_x314 = pow(var_x313, (-2)); + const double var_x315 = 1 / (1 + 8 * var_x314); + const double var_x316 = 0.001 * var_x315; - partialF = var_x326 * (-5.5555555555555554 - var_x205) + 0.00025000000000000001 * (-var_x198 + 5.5555555555555554 * var_chaste_interface__calcium_dynamics__Ca_NSR - 5.5555555555555554 * var_chaste_interface__calcium_dynamics__Ca_JSR) / (pow(var_x323, 3) * pow((0.125 + var_x324), 2)); + partialF = var_x316 * (-5.5555555555555554 - var_x188) + 0.00025000000000000001 * (-var_x179 + 5.5555555555555554 * var_chaste_interface__calcium_dynamics__Ca_NSR - 5.5555555555555554 * var_chaste_interface__calcium_dynamics__Ca_JSR) / (pow(var_x313, 3) * pow((0.125 + var_x314), 2)); } else { @@ -2482,91 +2482,116 @@ std::shared_ptr // Units: millimolar; Initial value: 137.6244 + // Lookup table indexing + const bool _oob_0 = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->CheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time_converted)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x0 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); - const double var_x1 = var_x0 * var_chaste_interface__T_type_Ca_channel_g_gate__g; - const double var_x2 = 0.050000000000000003 * var_x1; - const double var_x3 = 1 / var_chaste_interface__calcium_dynamics__Cai; - const double var_x4 = pow(var_x3, 1.3999999999999999); - const double var_x5 = 1 + 6.4818210260626455e-7 * var_x4; - const double var_x6 = 0.433 + 0.25979999999999998 / var_x5; - const double var_x7 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; - const double var_x8 = var_x6 * var_x7; - const double var_x9 = 0.018717941753901308 * var_chaste_interface__membrane__V; - const double var_x11 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; - const double var_x13 = -var_x9; - const double var_x15 = pow(mParameters[2], 3); - const double var_x16 = var_x15 * var_chaste_interface__calcium_dynamics__Cai; - const double var_x19 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x20 = 1 + 0.001 * var_x11 + 0.001 * var_x16; - const double var_x21 = 1 / var_x20; - const double var_x22 = var_x19 * var_x21; - const double var_x23 = 0.002 * var_x22; - const double var_x25 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); - const double var_x26 = 1 / (1 + 100 * var_x25); - const double var_x27 = 1 / (1.5 + mParameters[1]); - const double var_x28 = var_x27 * mParameters[1]; - const double var_x29 = var_x26 * var_x28; - const double var_x30 = 2 * var_x29; - const double var_x31 = -0.003743588350780262 * var_chaste_interface__membrane__V; - const double var_x33 = 0.01485884101040119 * mParameters[2]; - const double var_x35 = 0.037435883507802616 * var_chaste_interface__membrane__V; - const double var_x36 = -var_x35; - const double var_x42 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x43 = var_x42 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x44 = var_x43 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x0 = 1 / var_chaste_interface__calcium_dynamics__Cai; + const double var_x1 = pow(var_x0, 1.3999999999999999); + const double var_x2 = 1 + 6.4818210260626455e-7 * var_x1; + const double var_x3 = 0.433 + 0.25979999999999998 / var_x2; + const double var_x4 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; + const double var_x5 = var_x3 * var_x4; + const double var_x6 = 0.018717941753901308 * var_chaste_interface__membrane__V; + const double var_x7 = exp(var_x6); + const double var_x8 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; + const double var_x9 = var_x7 * var_x8; + const double var_x10 = exp(-var_x6); + const double var_x11 = pow(mParameters[2], 3); + const double var_x12 = var_x11 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x13 = var_x10 * var_x12; + const double var_x15 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x16 = 1 + 0.001 * var_x12 + 0.001 * var_x8; + const double var_x17 = 1 / var_x16; + const double var_x18 = var_x15 * var_x17; + const double var_x19 = 0.002 * var_x18; + const double var_x21 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); + const double var_x22 = 1 / (1 + 100 * var_x21); + const double var_x23 = 2 * var_x22; + const double var_x24 = 1 / (1.5 + mParameters[1]); + const double var_x25 = exp(-0.003743588350780262 * var_chaste_interface__membrane__V); + const double var_x26 = exp(0.01485884101040119 * mParameters[2]); + const double var_x27 = 0.037435883507802616 * var_chaste_interface__membrane__V; + const double var_x28 = exp(-var_x27); + const double var_x29 = 1 + 0.1245 * var_x25 + 0.036499999999999998 * var_x28 * (-0.14285714285714285 + 0.14285714285714285 * var_x26); + const double var_x33 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); + const double var_x34 = var_x33 * var_chaste_interface__T_type_Ca_channel_g_gate__g; + const double var_x35 = 0.050000000000000003 * var_x34; + const double var_x36 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x37 = var_x36 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x38 = var_x37 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x39 = _lt_0_row[0]; + const double var_x40 = -1 + var_x39; + const double var_x41 = 1 / var_x40; + const double var_x42 = var_x39 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x43 = var_x42 - 0.34100000000000003 * mParameters[0]; + const double var_x44 = var_x41 * var_x43; const double var_x45 = 7.8019226357407252 * var_x44; - const double var_x46 = 0.074871767015605231 * var_chaste_interface__membrane__V; - const double var_x50 = -0.34100000000000003 * mParameters[0]; - const double var_x51 = var_chaste_interface__calcium_dynamics__Cai; - const double var_x59 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); - const double var_x60 = var_x59 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; - const double var_x61 = var_x60 * var_chaste_interface__fast_sodium_current_h_gate__h; - const double var_x66 = -0.75 * mParameters[2]; - const double var_x74 = 0.16722408026755853 * var_chaste_interface__membrane__V; - const double var_x78 = pow(mParameters[1], 0.23999999999999999); - const double var_x79 = 1.921898339896919e-8 * var_x78; - const double var_x80 = 1 / var_chaste_interface__ionic_concentrations__Ki; - const double var_x81 = var_x80 * mParameters[1]; - const double var_x82 = log(var_x81); - const double var_x83 = -26.712338705498265 * var_x82 + var_chaste_interface__membrane__V; - const double var_x84 = 0.044642857142857144 * var_chaste_interface__membrane__V; - const double var_x87 = sqrt(mParameters[1]); - const double var_x90 = 438.93811257017387 * var_x87 * mParameters[5]; - const double var_x94 = 0.51429999999999998 * var_chaste_interface__membrane__V; - const double var_x98 = 0.080320000000000003 * var_chaste_interface__membrane__V; - const double var_x105 = -0.75 * mParameters[1]; - const double var_x114 = var_x83 * var_x87 * mParameters[6] * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; - const double var_x118 = 1 / mParameters[3]; - const double var_x124 = 0.00050000000000000001 + var_chaste_interface__calcium_dynamics__Cai; - const double var_x125 = 1 / var_x124; - const double var_x130 = 1 / (0.018329999999999999 * var_chaste_interface__ionic_concentrations__Nai + var_chaste_interface__ionic_concentrations__Ki); - const double var_x131 = -26.712338705498265 * log(var_x130 * (0.018329999999999999 * mParameters[2] + mParameters[1])) + var_chaste_interface__membrane__V; - const double var_x142 = 1 / var_chaste_interface__ionic_concentrations__Nai; - const double var_x143 = log(var_x142 * mParameters[2]); - const double var_x144 = -26.712338705498265 * var_x143 + var_chaste_interface__membrane__V; - const double var_x154 = log(var_x3 * mParameters[0]); - const double var_x155 = -13.356169352749133 * var_x154 + var_chaste_interface__membrane__V; - const double var_x194 = 1.1499999999999999 * var_x125; - const double var_x199 = -0.040282206767891383 * var_x154 + var_x155 * var_x2 + var_x194 * var_chaste_interface__calcium_dynamics__Cai; - const double var_x327 = exp(var_x9); - const double var_x328 = var_x11 * var_x327; - const double var_x329 = exp(var_x13); - const double var_x330 = var_x16 * var_x329; - const double var_x331 = var_x328 - var_x330; - const double var_x332 = 1 / (1 + 7.3545425104644573e-7 * pow(var_x81, (-6.3708927812613361)) * exp(0.23849999999999999 * var_chaste_interface__membrane__V)); - const double var_x333 = exp(var_x46); - const double var_x334 = var_x50 + var_x333 * var_x51; - const double var_x335 = -1 + var_x333; - const double var_x336 = 1 / var_x335; - const double var_x337 = var_x336 * var_x45; - const double var_x338 = var_x334 * var_x337; - const double var_x339 = exp(var_x35); - const double var_x340 = 0.75 * var_x339; - const double var_x341 = var_x44 * var_chaste_interface__membrane__V; - const double var_x342 = var_x341 / (-1 + var_x339); + const double var_x46 = var_x38 * var_x45; + const double var_x50 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); + const double var_x51 = var_x50 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; + const double var_x52 = var_x51 * var_chaste_interface__fast_sodium_current_h_gate__h; + const double var_x53 = exp(var_x27); + const double var_x54 = -1 + var_x53; + const double var_x55 = 1 / var_x54; + const double var_x56 = var_x38 * var_x55; + const double var_x57 = 0.75 * var_x53; + const double var_x58 = -0.75 * mParameters[2] + var_x57 * var_chaste_interface__ionic_concentrations__Nai; + const double var_x59 = 0.0024381008236689767 * var_x58; + const double var_x60 = var_x56 * var_x59; + const double var_x64 = exp(1.2521739130434781 - 0.16722408026755853 * var_chaste_interface__membrane__V); + const double var_x65 = 1 + var_x64; + const double var_x66 = 1 / var_x65; + const double var_x67 = 0.0055199999999999997 * var_x66; + const double var_x68 = pow(mParameters[1], 0.23999999999999999); + const double var_x69 = 1.921898339896919e-8 * var_x68; + const double var_x70 = 1 / var_chaste_interface__ionic_concentrations__Ki; + const double var_x71 = log(var_x70 * mParameters[1]); + const double var_x72 = -26.712338705498265 * var_x71 + var_chaste_interface__membrane__V; + const double var_x73 = exp(0.4017857142857143 + 0.044642857142857144 * var_chaste_interface__membrane__V); + const double var_x74 = 1 + var_x73; + const double var_x75 = sqrt(mParameters[1]); + const double var_x76 = var_x75 * mParameters[6] / var_x74; + const double var_x77 = var_x76 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; + const double var_x78 = 0.43033148291193518 * var_x77; + const double var_x79 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__V - 6.3708927812613361 * var_x71); + const double var_x80 = 1 + var_x79; + const double var_x81 = 1 / var_x80; + const double var_x82 = exp(-2.4444678999999998 + 13.738155796237757 * var_x71 - 0.51429999999999998 * var_chaste_interface__membrane__V); + const double var_x83 = 1 + var_x82; + const double var_x84 = 1 / var_x83; + const double var_x85 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__V - 2.1455350448256207 * var_x71); + const double var_x86 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__V - 1.6494869150645177 * var_x71); + const double var_x87 = var_x86 + 0.49124000000000001 * var_x85; + const double var_x88 = var_x84 * var_x87; + const double var_x89 = 1 / (1000 * var_x88 + 1020 * var_x81); + const double var_x90 = var_x75 * var_x81 * mParameters[5]; + const double var_x91 = var_x89 * var_x90; + const double var_x92 = 438.93811257017387 * var_x91; + const double var_x93 = -0.75 * mParameters[1] + var_x57 * var_chaste_interface__ionic_concentrations__Ki; + const double var_x94 = 0.00069711623550831479 * var_x93; + const double var_x95 = var_x56 * var_x94; + const double var_x104 = 1 / mParameters[3]; + const double var_x110 = 0.00050000000000000001 + var_chaste_interface__calcium_dynamics__Cai; + const double var_x111 = 1 / var_x110; + const double var_x115 = 1 / (0.018329999999999999 * var_chaste_interface__ionic_concentrations__Nai + var_chaste_interface__ionic_concentrations__Ki); + const double var_x116 = -26.712338705498265 * log(var_x115 * (0.018329999999999999 * mParameters[2] + mParameters[1])) + var_chaste_interface__membrane__V; + const double var_x118 = var_x9 - var_x13; + const double var_x125 = 1 / var_chaste_interface__ionic_concentrations__Nai; + const double var_x126 = log(var_x125 * mParameters[2]); + const double var_x127 = -26.712338705498265 * var_x126 + var_chaste_interface__membrane__V; + const double var_x136 = log(var_x0 * mParameters[0]); + const double var_x137 = -13.356169352749133 * var_x136 + var_chaste_interface__membrane__V; + const double var_x150 = var_x24 * mParameters[1] / var_x29; + const double var_x175 = 1.1499999999999999 * var_x111; + const double var_x180 = var_x118 * var_x19; + const double var_x181 = -0.040282206767891383 * var_x136 + var_x137 * var_x35 + var_x175 * var_chaste_interface__calcium_dynamics__Cai + var_x46 * var_chaste_interface__membrane__V; - partialF = ((var_x118 * (var_x199 + 0.0070159999999999997 * var_chaste_interface__membrane__V - 0.10684935482199306 * var_x143 + var_x131 * var_x8 + var_x144 * var_x61 + var_x23 * var_x331 + var_x30 / (1 + 0.1245 * exp(var_x31) + 0.036499999999999998 * (-0.14285714285714285 + 0.14285714285714285 * exp(var_x33)) * exp(var_x36)) + var_x338 * var_chaste_interface__membrane__V + var_x79 * var_x83 + GetIntracellularAreaStimulus(var_chaste_interface__environment__time_converted) / HeartConfig::Instance()->GetCapacitance() + 0.0055199999999999997 * var_x83 / (1 + 3.497938913025243 * exp(-var_x74)) + 0.43033148291193518 * var_x114 / (1 + 1.4944910502790945 * exp(var_x84)) + 0.0024381008236689767 * var_x342 * (var_x66 + var_x340 * var_chaste_interface__ionic_concentrations__Nai) + 0.00069711623550831479 * var_x342 * (var_x105 + var_x340 * var_chaste_interface__ionic_concentrations__Ki) + var_x332 * var_x83 * var_x90 / (1020 * var_x332 + 1000 * (0.76262400650630813 * pow(var_x81, (-2.1455350448256207)) * exp(var_x98) + 1.1534056351865583e-16 * pow(var_x81, (-1.6494869150645177)) * exp(0.061749999999999999 * var_chaste_interface__membrane__V)) / (1 + 0.086772294157693303 * pow(var_x81, 13.738155796237757) * exp(-var_x94)))) < -150000) ? (-100.5) : (-0.5)); + partialF = ((var_x104 * (var_x180 + var_x181 + 0.0070159999999999997 * var_chaste_interface__membrane__V - 0.10684935482199306 * var_x126 + var_x116 * var_x5 + var_x127 * var_x52 + var_x150 * var_x23 + var_x60 * var_chaste_interface__membrane__V + var_x67 * var_x72 + var_x69 * var_x72 + var_x72 * var_x78 + var_x72 * var_x92 + var_x95 * var_chaste_interface__membrane__V + GetIntracellularAreaStimulus(var_chaste_interface__environment__time_converted) / HeartConfig::Instance()->GetCapacitance()) < -150000) ? (-100.5) : (-0.5)); } else { @@ -2604,9 +2629,9 @@ std::shared_ptr - const double var_x343 = (var_chaste_interface__calcium_dynamics__APtrack > 0.17999999999999999) && (var_chaste_interface__calcium_dynamics__APtrack < 0.20000000000000001); + const double var_x317 = (var_chaste_interface__calcium_dynamics__APtrack > 0.17999999999999999) && (var_chaste_interface__calcium_dynamics__APtrack < 0.20000000000000001); - partialF = ((var_x343) ? (-100.5) : (-0.5)); + partialF = ((var_x317) ? (-100.5) : (-0.5)); } else { @@ -2644,9 +2669,9 @@ std::shared_ptr - const double var_x343 = (var_chaste_interface__calcium_dynamics__APtrack > 0.17999999999999999) && (var_chaste_interface__calcium_dynamics__APtrack < 0.20000000000000001); + const double var_x317 = (var_chaste_interface__calcium_dynamics__APtrack > 0.17999999999999999) && (var_chaste_interface__calcium_dynamics__APtrack < 0.20000000000000001); - partialF = ((var_x343) ? (-100.5) : (-0.01)); + partialF = ((var_x317) ? (-100.5) : (-0.01)); } else { @@ -2717,9 +2742,9 @@ std::shared_ptr - const double var_x345 = var_chaste_interface__calcium_dynamics__APtrack > 0.20000000000000001; + const double var_x318 = var_chaste_interface__calcium_dynamics__APtrack > 0.20000000000000001; - partialF = (((var_x345) || (var_chaste_interface__calcium_dynamics__APtrack2 > 0.01)) ? (0) : (-0.5)); + partialF = (((var_x318) || (var_chaste_interface__calcium_dynamics__APtrack2 > 0.01)) ? (0) : (-0.5)); } else { @@ -2806,9 +2831,9 @@ std::shared_ptr - const double var_x349 = var_chaste_interface__calcium_dynamics__OVRLDtrack > 0.97999999999999998; + const double var_x319 = var_chaste_interface__calcium_dynamics__OVRLDtrack > 0.97999999999999998; - partialF = (((var_x349) && (var_chaste_interface__calcium_dynamics__OVRLDtrack2 < 0.97999999999999998)) ? (-50) : (-0.5)); + partialF = (((var_x319) && (var_chaste_interface__calcium_dynamics__OVRLDtrack2 < 0.97999999999999998)) ? (-50) : (-0.5)); } else { @@ -2848,9 +2873,9 @@ std::shared_ptr - const double var_x349 = var_chaste_interface__calcium_dynamics__OVRLDtrack > 0.97999999999999998; + const double var_x319 = var_chaste_interface__calcium_dynamics__OVRLDtrack > 0.97999999999999998; - partialF = (((var_x349) && (var_chaste_interface__calcium_dynamics__OVRLDtrack3 < 0.97999999999999998)) ? (-50) : (-0.01)); + partialF = (((var_x319) && (var_chaste_interface__calcium_dynamics__OVRLDtrack3 < 0.97999999999999998)) ? (-50) : (-0.01)); } else { @@ -2931,53 +2956,49 @@ std::shared_ptr - const double var_x9 = 0.018717941753901308 * var_chaste_interface__membrane__V; - const double var_x10 = exp(var_x9); - const double var_x11 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; - const double var_x12 = var_x10 * var_x11; - const double var_x13 = -var_x9; - const double var_x14 = exp(var_x13); - const double var_x15 = pow(mParameters[2], 3); - const double var_x16 = var_x15 * var_chaste_interface__calcium_dynamics__Cai; - const double var_x17 = var_x14 * var_x16; - const double var_x19 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x20 = 1 + 0.001 * var_x11 + 0.001 * var_x16; - const double var_x21 = 1 / var_x20; - const double var_x22 = var_x19 * var_x21; - const double var_x25 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); - const double var_x27 = 1 / (1.5 + mParameters[1]); - const double var_x28 = var_x27 * mParameters[1]; - const double var_x31 = -0.003743588350780262 * var_chaste_interface__membrane__V; - const double var_x32 = exp(var_x31); - const double var_x33 = 0.01485884101040119 * mParameters[2]; - const double var_x34 = exp(var_x33); - const double var_x35 = 0.037435883507802616 * var_chaste_interface__membrane__V; - const double var_x36 = -var_x35; - const double var_x37 = exp(var_x36); - const double var_x38 = 1 + 0.1245 * var_x32 + 0.036499999999999998 * var_x37 * (-0.14285714285714285 + 0.14285714285714285 * var_x34); - const double var_x42 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x43 = var_x42 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x44 = var_x43 * var_chaste_interface__L_type_Ca_channel_d_gate__d; - const double var_x59 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); - const double var_x60 = var_x59 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; - const double var_x61 = var_x60 * var_chaste_interface__fast_sodium_current_h_gate__h; - const double var_x62 = exp(var_x35); - const double var_x63 = -1 + var_x62; - const double var_x64 = 1 / var_x63; - const double var_x65 = var_x44 * var_x64; - const double var_x70 = var_x62 * var_chaste_interface__membrane__V; - const double var_x71 = var_x65 * var_x70; - const double var_x133 = var_x12 - var_x17; - const double var_x137 = pow(var_x20, (-2)); - const double var_x142 = 1 / var_chaste_interface__ionic_concentrations__Nai; - const double var_x164 = pow(var_chaste_interface__ionic_concentrations__Nai, 2); - const double var_x165 = var_x164 * mParameters[0]; - const double var_x168 = var_x28 / (var_x38 * pow((0.01 + var_x25), 2) * pow(var_chaste_interface__ionic_concentrations__Nai, 3)); - const double var_x171 = 0.10684935482199306 * var_x142 + 0.0018285756177517324 * var_x71 + 26.712338705498265 * var_x142 * var_x61; - const double var_x177 = 1 / M_PI; - const double var_x350 = 0.00018063215662022267 * var_x177; + const double var_x6 = 0.018717941753901308 * var_chaste_interface__membrane__V; + const double var_x7 = exp(var_x6); + const double var_x8 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; + const double var_x9 = var_x7 * var_x8; + const double var_x10 = exp(-var_x6); + const double var_x11 = pow(mParameters[2], 3); + const double var_x12 = var_x11 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x13 = var_x10 * var_x12; + const double var_x15 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x16 = 1 + 0.001 * var_x12 + 0.001 * var_x8; + const double var_x17 = 1 / var_x16; + const double var_x18 = var_x15 * var_x17; + const double var_x21 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); + const double var_x24 = 1 / (1.5 + mParameters[1]); + const double var_x25 = exp(-0.003743588350780262 * var_chaste_interface__membrane__V); + const double var_x26 = exp(0.01485884101040119 * mParameters[2]); + const double var_x27 = 0.037435883507802616 * var_chaste_interface__membrane__V; + const double var_x28 = exp(-var_x27); + const double var_x29 = 1 + 0.1245 * var_x25 + 0.036499999999999998 * var_x28 * (-0.14285714285714285 + 0.14285714285714285 * var_x26); + const double var_x36 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x37 = var_x36 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x38 = var_x37 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x50 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); + const double var_x51 = var_x50 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; + const double var_x52 = var_x51 * var_chaste_interface__fast_sodium_current_h_gate__h; + const double var_x53 = exp(var_x27); + const double var_x54 = -1 + var_x53; + const double var_x55 = 1 / var_x54; + const double var_x56 = var_x38 * var_x55; + const double var_x61 = var_x53 * var_x56 * var_chaste_interface__membrane__V; + const double var_x118 = var_x9 - var_x13; + const double var_x121 = pow(var_x16, (-2)); + const double var_x125 = 1 / var_chaste_interface__ionic_concentrations__Nai; + const double var_x146 = pow(var_chaste_interface__ionic_concentrations__Nai, 2); + const double var_x147 = var_x146 * mParameters[0]; + const double var_x148 = var_x147 * var_x7; + const double var_x150 = var_x24 * mParameters[1] / var_x29; + const double var_x151 = var_x150 / (pow((0.01 + var_x21), 2) * pow(var_chaste_interface__ionic_concentrations__Nai, 3)); + const double var_x153 = 0.10684935482199306 * var_x125 + 0.0018285756177517324 * var_x61 + 26.712338705498265 * var_x125 * var_x52; + const double var_x158 = 1 / M_PI; + const double var_x320 = 0.00018063215662022267 * var_x158; - partialF = var_x350 * (-var_x171 - 0.12 * var_x168 - 0.018000000000000002 * var_x10 * var_x165 * var_x22 + 1.8e-5 * var_x133 * var_x137 * var_x164 * var_x19 * mParameters[0]); + partialF = var_x320 * (-var_x153 - 0.12 * var_x151 - 0.018000000000000002 * var_x148 * var_x18 + 1.8e-5 * var_x118 * var_x121 * var_x146 * var_x15 * mParameters[0]); } else { @@ -3065,64 +3086,58 @@ std::shared_ptr - const double var_x3 = 1 / var_chaste_interface__calcium_dynamics__Cai; - const double var_x4 = pow(var_x3, 1.3999999999999999); - const double var_x5 = 1 + 6.4818210260626455e-7 * var_x4; - const double var_x6 = 0.433 + 0.25979999999999998 / var_x5; - const double var_x35 = 0.037435883507802616 * var_chaste_interface__membrane__V; - const double var_x42 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x43 = var_x42 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x44 = var_x43 * var_chaste_interface__L_type_Ca_channel_d_gate__d; - const double var_x62 = exp(var_x35); - const double var_x63 = -1 + var_x62; - const double var_x64 = 1 / var_x63; - const double var_x65 = var_x44 * var_x64; - const double var_x70 = var_x62 * var_chaste_interface__membrane__V; - const double var_x71 = var_x65 * var_x70; - const double var_x74 = 0.16722408026755853 * var_chaste_interface__membrane__V; - const double var_x75 = exp(1.2521739130434781 - var_x74); - const double var_x76 = 1 + var_x75; - const double var_x77 = 1 / var_x76; - const double var_x78 = pow(mParameters[1], 0.23999999999999999); - const double var_x80 = 1 / var_chaste_interface__ionic_concentrations__Ki; - const double var_x81 = var_x80 * mParameters[1]; - const double var_x82 = log(var_x81); - const double var_x83 = -26.712338705498265 * var_x82 + var_chaste_interface__membrane__V; - const double var_x84 = 0.044642857142857144 * var_chaste_interface__membrane__V; - const double var_x85 = exp(0.4017857142857143 + var_x84); - const double var_x86 = 1 + var_x85; - const double var_x87 = sqrt(mParameters[1]); - const double var_x88 = var_x87 * mParameters[6] / var_x86; - const double var_x89 = var_x88 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; - const double var_x91 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__V - 6.3708927812613361 * var_x82); - const double var_x92 = 1 + var_x91; - const double var_x93 = 1 / var_x92; - const double var_x94 = 0.51429999999999998 * var_chaste_interface__membrane__V; - const double var_x95 = exp(-2.4444678999999998 - var_x94 + 13.738155796237757 * var_x82); - const double var_x96 = 1 + var_x95; - const double var_x97 = 1 / var_x96; - const double var_x98 = 0.080320000000000003 * var_chaste_interface__membrane__V; - const double var_x99 = exp(0.43983232 + var_x98 - 2.1455350448256207 * var_x82); - const double var_x100 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__V - 1.6494869150645177 * var_x82); - const double var_x101 = var_x100 + 0.49124000000000001 * var_x99; - const double var_x102 = var_x101 * var_x97; - const double var_x103 = 1 / (1000 * var_x102 + 1020 * var_x93); - const double var_x104 = var_x103 * var_x93; - const double var_x108 = 1000 * var_x97; - const double var_x109 = pow(var_x92, (-2)); - const double var_x110 = var_x101 * var_x95 / pow(var_x96, 2); - const double var_x111 = var_x87 * mParameters[5]; - const double var_x112 = var_x111 * var_x83; - const double var_x113 = 0.0004218936106979757 * var_x112 * var_x93 / pow((var_x93 + 0.98039215686274506 * var_x102), 2); - const double var_x115 = var_x109 * var_x91; - const double var_x116 = var_x103 * var_x112; - const double var_x130 = 1 / (0.018329999999999999 * var_chaste_interface__ionic_concentrations__Nai + var_chaste_interface__ionic_concentrations__Ki); - const double var_x172 = 0.00052283717663123607 * var_x71 + var_x113 * (-var_x108 * (1.053972635420138 * var_x80 * var_x99 + 1.6494869150645177 * var_x100 * var_x80) - 13738.155796237757 * var_x110 * var_x80 + 6498.310636886562 * var_x109 * var_x80 * var_x91) + 11.495160327182951 * var_x80 * var_x89 + 5.1338399412861326e-7 * var_x78 * var_x80 + 0.14745210965435041 * var_x77 * var_x80 + 11725.06353372661 * var_x104 * var_x111 * var_x80 - 2796.4276527937964 * var_x115 * var_x116 * var_x80; - const double var_x177 = 1 / M_PI; - const double var_x350 = 0.00018063215662022267 * var_x177; - const double var_x355 = -var_x6; + const double var_x0 = 1 / var_chaste_interface__calcium_dynamics__Cai; + const double var_x1 = pow(var_x0, 1.3999999999999999); + const double var_x2 = 1 + 6.4818210260626455e-7 * var_x1; + const double var_x3 = 0.433 + 0.25979999999999998 / var_x2; + const double var_x27 = 0.037435883507802616 * var_chaste_interface__membrane__V; + const double var_x36 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x37 = var_x36 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x38 = var_x37 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x53 = exp(var_x27); + const double var_x54 = -1 + var_x53; + const double var_x55 = 1 / var_x54; + const double var_x56 = var_x38 * var_x55; + const double var_x61 = var_x53 * var_x56 * var_chaste_interface__membrane__V; + const double var_x64 = exp(1.2521739130434781 - 0.16722408026755853 * var_chaste_interface__membrane__V); + const double var_x65 = 1 + var_x64; + const double var_x66 = 1 / var_x65; + const double var_x68 = pow(mParameters[1], 0.23999999999999999); + const double var_x70 = 1 / var_chaste_interface__ionic_concentrations__Ki; + const double var_x71 = log(var_x70 * mParameters[1]); + const double var_x72 = -26.712338705498265 * var_x71 + var_chaste_interface__membrane__V; + const double var_x73 = exp(0.4017857142857143 + 0.044642857142857144 * var_chaste_interface__membrane__V); + const double var_x74 = 1 + var_x73; + const double var_x75 = sqrt(mParameters[1]); + const double var_x76 = var_x75 * mParameters[6] / var_x74; + const double var_x77 = var_x76 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; + const double var_x79 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__V - 6.3708927812613361 * var_x71); + const double var_x80 = 1 + var_x79; + const double var_x81 = 1 / var_x80; + const double var_x82 = exp(-2.4444678999999998 + 13.738155796237757 * var_x71 - 0.51429999999999998 * var_chaste_interface__membrane__V); + const double var_x83 = 1 + var_x82; + const double var_x84 = 1 / var_x83; + const double var_x85 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__V - 2.1455350448256207 * var_x71); + const double var_x86 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__V - 1.6494869150645177 * var_x71); + const double var_x87 = var_x86 + 0.49124000000000001 * var_x85; + const double var_x88 = var_x84 * var_x87; + const double var_x89 = 1 / (1000 * var_x88 + 1020 * var_x81); + const double var_x90 = var_x75 * var_x81 * mParameters[5]; + const double var_x91 = var_x89 * var_x90; + const double var_x96 = 1000 * var_x84; + const double var_x97 = pow(var_x80, (-2)); + const double var_x98 = var_x82 * var_x87 / pow(var_x83, 2); + const double var_x99 = 0.0004218936106979757 * var_x72 * var_x90 / pow((var_x81 + 0.98039215686274506 * var_x88), 2); + const double var_x100 = var_x72 * var_x75; + const double var_x101 = var_x79 * var_x97; + const double var_x102 = var_x100 * var_x89 * mParameters[5]; + const double var_x115 = 1 / (0.018329999999999999 * var_chaste_interface__ionic_concentrations__Nai + var_chaste_interface__ionic_concentrations__Ki); + const double var_x154 = 0.00052283717663123607 * var_x61 + var_x99 * (-var_x96 * (1.053972635420138 * var_x70 * var_x85 + 1.6494869150645177 * var_x70 * var_x86) - 13738.155796237757 * var_x70 * var_x98 + 6498.310636886562 * var_x70 * var_x79 * var_x97) + 11.495160327182951 * var_x70 * var_x77 + 5.1338399412861326e-7 * var_x68 * var_x70 + 0.14745210965435041 * var_x66 * var_x70 + 11725.06353372661 * var_x70 * var_x91 - 2796.4276527937964 * var_x101 * var_x102 * var_x70; + const double var_x158 = 1 / M_PI; + const double var_x320 = 0.00018063215662022267 * var_x158; + const double var_x325 = -var_x3; - partialF = var_x350 * (-var_x172 + 26.712338705498265 * var_x130 * var_x355 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2); + partialF = var_x320 * (-var_x154 + 26.712338705498265 * var_x115 * var_x325 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2); } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/dynamic_viswanathan_model_1999_epi.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/dynamic_viswanathan_model_1999_epi.cpp_alt index adb5e962..a751b7cc 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/dynamic_viswanathan_model_1999_epi.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/dynamic_viswanathan_model_1999_epi.cpp_alt @@ -334,7 +334,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return ((var_chaste_interface__membrane__V < -40) ? (0.0010495108254269644 * exp(-0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); + return ((var_chaste_interface__membrane__V < -40) ? (135 * exp(-11.764705882352942 - 0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -356,7 +356,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return ((var_chaste_interface__membrane__V < -40) ? (3560 * exp(0.079000000000000001 * var_chaste_interface__membrane__V) + 310000000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V)) : (7692.3076923076933 / (1 + 0.38275493141491301 * exp(-0.0900900900900901 * var_chaste_interface__membrane__V)))); + return ((var_chaste_interface__membrane__V < -40) ? (3560 * exp(0.079000000000000001 * var_chaste_interface__membrane__V) + 310000000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V)) : (7692.3076923076933 / (1 + exp(-0.96036036036036043 - 0.0900900900900901 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -378,7 +378,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return ((var_chaste_interface__membrane__V < -40) ? (1000 * (37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V) - 3.4740000000000003e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + 50262745825.953949 * exp(0.311 * var_chaste_interface__membrane__V))) : (0)); + return ((var_chaste_interface__membrane__V < -40) ? (1000 * (37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V) - 3.4740000000000003e-5 * exp(-0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V))) : (0)); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -400,7 +400,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return ((var_chaste_interface__membrane__V < -40) ? (121.2 * exp(-0.01052 * var_chaste_interface__membrane__V) / (1 + 0.0039608683399042569 * exp(-0.13780000000000001 * var_chaste_interface__membrane__V))) : (300 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + 0.040762203978366211 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return ((var_chaste_interface__membrane__V < -40) ? (121.2 * exp(-0.01052 * var_chaste_interface__membrane__V) / (1 + exp(-5.5312920000000005 - 0.13780000000000001 * var_chaste_interface__membrane__V))) : (300 * exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + exp(-3.2000000000000002 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -1284,138 +1284,126 @@ std::shared_ptr // Units: millimolar; Initial value: 137.6244 + // Lookup table indexing + const bool _oob_0 = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->CheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time_converted)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x0 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); - const double var_x1 = var_x0 * var_chaste_interface__T_type_Ca_channel_g_gate__g; - const double var_x2 = 0.050000000000000003 * var_x1; - const double var_x3 = -0.16722408026755853 * var_chaste_interface__membrane__V; - const double var_x4 = exp(1.2521739130434781 + var_x3); - const double var_x5 = 1 + var_x4; - const double var_x6 = 1 / var_x5; - const double var_x7 = 0.0055199999999999997 * var_x6; - const double var_x8 = pow(mParameters[1], 0.23999999999999999); - const double var_x9 = 1.921898339896919e-8 * var_x8; - const double var_x10 = 1 / var_chaste_interface__calcium_dynamics__Cai; - const double var_x11 = pow(var_x10, 1.3999999999999999); - const double var_x12 = 1 + 6.4818210260626455e-7 * var_x11; - const double var_x13 = 0.25979999999999998 / var_x12; - const double var_x14 = 0.433 + var_x13; - const double var_x15 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; + const double var_x0 = exp(1.2521739130434781 - 0.16722408026755853 * var_chaste_interface__membrane__V); + const double var_x1 = 1 + var_x0; + const double var_x2 = 1 / var_x1; + const double var_x3 = 0.0055199999999999997 * var_x2; + const double var_x4 = pow(mParameters[1], 0.23999999999999999); + const double var_x5 = 1.921898339896919e-8 * var_x4; + const double var_x6 = 1 / var_chaste_interface__calcium_dynamics__Cai; + const double var_x7 = pow(var_x6, 1.3999999999999999); + const double var_x8 = 1 + 6.4818210260626455e-7 * var_x7; + const double var_x9 = 0.25979999999999998 / var_x8; + const double var_x10 = 0.433 + var_x9; + const double var_x11 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; + const double var_x12 = var_x10 * var_x11; + const double var_x13 = 0.018717941753901308 * var_chaste_interface__membrane__V; + const double var_x14 = exp(var_x13); + const double var_x15 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; const double var_x16 = var_x14 * var_x15; - const double var_x17 = 0.018717941753901308 * var_chaste_interface__membrane__V; - const double var_x18 = exp(var_x17); - const double var_x19 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; - const double var_x20 = var_x18 * var_x19; - const double var_x21 = -var_x17; - const double var_x22 = exp(var_x21); - const double var_x23 = pow(mParameters[2], 3); - const double var_x24 = var_x23 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x17 = exp(-var_x13); + const double var_x18 = pow(mParameters[2], 3); + const double var_x19 = var_x18 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x20 = var_x17 * var_x19; + const double var_x21 = 0.018717941753901308 * var_x16 + 0.018717941753901308 * var_x20; + const double var_x22 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x23 = 1 + 0.001 * var_x15 + 0.001 * var_x19; + const double var_x24 = 1 / var_x23; const double var_x25 = var_x22 * var_x24; - const double var_x26 = 0.018717941753901308 * var_x20 + 0.018717941753901308 * var_x25; - const double var_x27 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x28 = 1 + 0.001 * var_x19 + 0.001 * var_x24; - const double var_x29 = 1 / var_x28; - const double var_x30 = var_x27 * var_x29; - const double var_x31 = 0.002 * var_x30; - const double var_x32 = var_x26 * var_x31; - const double var_x33 = 1 / var_chaste_interface__ionic_concentrations__Ki; - const double var_x34 = var_x33 * mParameters[1]; - const double var_x35 = log(var_x34); - const double var_x36 = -26.712338705498265 * var_x35 + var_chaste_interface__membrane__V; - const double var_x37 = 0.00092307692307692295 * var_x36 * var_x4 / pow(var_x5, 2); - const double var_x38 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); - const double var_x39 = var_x38 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; - const double var_x40 = var_x39 * var_chaste_interface__fast_sodium_current_h_gate__h; - const double var_x41 = 0.044642857142857144 * var_chaste_interface__membrane__V; - const double var_x42 = exp(0.4017857142857143 + var_x41); - const double var_x43 = 1 + var_x42; - const double var_x44 = sqrt(mParameters[1]); - const double var_x45 = var_x44 * mParameters[6] / var_x43; - const double var_x46 = var_x45 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; - const double var_x47 = 0.43033148291193518 * var_x46; - const double var_x48 = 438.93811257017387 * var_x44 * mParameters[5]; - const double var_x49 = 0.23849999999999999 * var_chaste_interface__membrane__V; - const double var_x50 = exp(-14.1227775 + var_x49 - 6.3708927812613361 * var_x35); - const double var_x51 = 1 + var_x50; - const double var_x52 = 1 / var_x51; - const double var_x53 = -0.51429999999999998 * var_chaste_interface__membrane__V; - const double var_x54 = exp(-2.4444678999999998 + var_x53 + 13.738155796237757 * var_x35); - const double var_x55 = 1 + var_x54; - const double var_x56 = 1 / var_x55; - const double var_x57 = 0.080320000000000003 * var_chaste_interface__membrane__V; - const double var_x58 = exp(0.43983232 + var_x57 - 2.1455350448256207 * var_x35); - const double var_x59 = 0.061749999999999999 * var_chaste_interface__membrane__V; - const double var_x60 = exp(-36.698642499999998 + var_x59 - 1.6494869150645177 * var_x35); - const double var_x61 = var_x60 + 0.49124000000000001 * var_x58; - const double var_x62 = var_x56 * var_x61; - const double var_x63 = 1 / (1000 * var_x62 + 1020 * var_x52); - const double var_x64 = var_x52 * var_x63; - const double var_x65 = var_x48 * var_x64; - const double var_x66 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); - const double var_x67 = mParameters[1] / (1.5 + mParameters[1]); - const double var_x68 = var_x67 / (1 + 100 * var_x66); - const double var_x69 = 2 * var_x68; - const double var_x70 = -0.003743588350780262 * var_chaste_interface__membrane__V; - const double var_x71 = exp(var_x70); - const double var_x72 = 0.01485884101040119 * mParameters[2]; - const double var_x73 = exp(var_x72); - const double var_x74 = 0.037435883507802616 * var_chaste_interface__membrane__V; - const double var_x75 = -var_x74; - const double var_x76 = exp(var_x75); - const double var_x77 = 1 + 0.1245 * var_x71 + 0.036499999999999998 * var_x76 * (-0.14285714285714285 + 0.14285714285714285 * var_x73); - const double var_x78 = (0.00046607674967214262 * var_x71 + 0.037435883507802616 * var_x76 * (-0.0052142857142857138 + 0.0052142857142857138 * var_x73)) / pow(var_x77, 2); - const double var_x79 = exp(var_x74); - const double var_x80 = -1 + var_x79; - const double var_x81 = 1 / var_x80; - const double var_x82 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x83 = var_x82 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x84 = var_x83 * var_chaste_interface__L_type_Ca_channel_d_gate__d; - const double var_x85 = var_x81 * var_x84; - const double var_x86 = -0.75 * mParameters[2]; - const double var_x87 = 0.75 * var_x79; - const double var_x88 = var_x86 + var_x87 * var_chaste_interface__ionic_concentrations__Nai; - const double var_x89 = 0.0024381008236689767 * var_x88; - const double var_x90 = var_x85 * var_x89; - const double var_x91 = -0.75 * mParameters[1]; - const double var_x92 = var_x91 + var_x87 * var_chaste_interface__ionic_concentrations__Ki; - const double var_x93 = 0.00069711623550831479 * var_x92; - const double var_x94 = var_x85 * var_x93; - const double var_x95 = var_x50 / pow(var_x51, 2); - const double var_x96 = 1000 * var_x56; - const double var_x97 = var_x54 * var_x61 / pow(var_x55, 2); - const double var_x98 = var_x44 * mParameters[5]; - const double var_x99 = var_x36 * var_x98; - const double var_x100 = 0.0004218936106979757 * var_x52 * var_x99 / pow((var_x52 + 0.98039215686274506 * var_x62), 2); - const double var_x101 = var_x100 * (243.26999999999998 * var_x95 - 514.29999999999995 * var_x97 - var_x96 * (0.061749999999999999 * var_x60 + 0.039456396800000001 * var_x58)); - const double var_x102 = var_x36 * var_x44 * mParameters[6] * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; - const double var_x103 = 0.019211226915711394 * var_x102 * var_x42 / pow(var_x43, 2); - const double var_x104 = var_x63 * var_x99; - const double var_x105 = 104.68673984798647 * var_x104 * var_x95; - const double var_x106 = var_x79 * var_chaste_interface__membrane__V; - const double var_x107 = var_x106 * var_x85; - const double var_x108 = 6.8454343811362063e-5 * var_x107 * var_chaste_interface__ionic_concentrations__Nai; - const double var_x109 = 1.9572871637915374e-5 * var_x107 * var_chaste_interface__ionic_concentrations__Ki; - const double var_x110 = var_x106 * var_x84 / pow(var_x80, 2); - const double var_x111 = 2.6097162183887167e-5 * var_x110 * var_x92; - const double var_x112 = 9.1272458415149417e-5 * var_x110 * var_x88; - const double var_x113 = 7.8019226357407252 * var_x84; - const double var_x114 = 0.074871767015605231 * var_chaste_interface__membrane__V; - const double var_x115 = exp(var_x114); - const double var_x116 = -1 + var_x115; - const double var_x117 = 1 / var_x116; - const double var_x118 = -0.34100000000000003 * mParameters[0]; - const double var_x119 = var_chaste_interface__calcium_dynamics__Cai; - const double var_x120 = var_x118 + var_x115 * var_x119; - const double var_x121 = var_x117 * var_x120; - const double var_x122 = var_x113 * var_x121; - const double var_x123 = var_x115 * var_chaste_interface__membrane__V; - const double var_x124 = var_x117 * var_x123; - const double var_x125 = 0.58414373385695628 * var_x84; - const double var_x126 = var_x122 + var_x124 * var_x125 * var_chaste_interface__calcium_dynamics__Cai - var_x120 * var_x123 * var_x125 / pow(var_x116, 2); - const double var_x127 = 1 / mParameters[3]; - const double var_x128 = 0.001 * var_x127; + const double var_x26 = 0.002 * var_x25; + const double var_x27 = var_x21 * var_x26; + const double var_x28 = 1 / var_chaste_interface__ionic_concentrations__Ki; + const double var_x29 = log(var_x28 * mParameters[1]); + const double var_x30 = -26.712338705498265 * var_x29 + var_chaste_interface__membrane__V; + const double var_x31 = 0.00092307692307692295 * var_x0 * var_x30 / pow(var_x1, 2); + const double var_x32 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); + const double var_x33 = var_x32 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; + const double var_x34 = var_x33 * var_chaste_interface__fast_sodium_current_h_gate__h; + const double var_x35 = exp(0.4017857142857143 + 0.044642857142857144 * var_chaste_interface__membrane__V); + const double var_x36 = 1 + var_x35; + const double var_x37 = sqrt(mParameters[1]); + const double var_x38 = var_x37 * mParameters[6] / var_x36; + const double var_x39 = var_x38 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; + const double var_x40 = 0.43033148291193518 * var_x39; + const double var_x41 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__V - 6.3708927812613361 * var_x29); + const double var_x42 = 1 + var_x41; + const double var_x43 = 1 / var_x42; + const double var_x44 = exp(-2.4444678999999998 + 13.738155796237757 * var_x29 - 0.51429999999999998 * var_chaste_interface__membrane__V); + const double var_x45 = 1 + var_x44; + const double var_x46 = 1 / var_x45; + const double var_x47 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__V - 2.1455350448256207 * var_x29); + const double var_x48 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__V - 1.6494869150645177 * var_x29); + const double var_x49 = var_x48 + 0.49124000000000001 * var_x47; + const double var_x50 = var_x46 * var_x49; + const double var_x51 = 1 / (1000 * var_x50 + 1020 * var_x43); + const double var_x52 = var_x37 * var_x43 * mParameters[5]; + const double var_x53 = var_x51 * var_x52; + const double var_x54 = 438.93811257017387 * var_x53; + const double var_x55 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); + const double var_x56 = 1 / (1 + 100 * var_x55); + const double var_x57 = 2 * var_x56; + const double var_x58 = 1 / (1.5 + mParameters[1]); + const double var_x59 = exp(-0.003743588350780262 * var_chaste_interface__membrane__V); + const double var_x60 = exp(0.01485884101040119 * mParameters[2]); + const double var_x61 = 0.037435883507802616 * var_chaste_interface__membrane__V; + const double var_x62 = exp(-var_x61); + const double var_x63 = 1 + 0.1245 * var_x59 + 0.036499999999999998 * var_x62 * (-0.14285714285714285 + 0.14285714285714285 * var_x60); + const double var_x64 = var_x58 * (0.00046607674967214262 * var_x59 + 0.037435883507802616 * var_x62 * (-0.0052142857142857138 + 0.0052142857142857138 * var_x60)) * mParameters[1] / pow(var_x63, 2); + const double var_x65 = exp(var_x61); + const double var_x66 = -1 + var_x65; + const double var_x67 = 1 / var_x66; + const double var_x68 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x69 = var_x68 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x70 = var_x69 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x71 = var_x67 * var_x70; + const double var_x72 = 0.75 * var_x65; + const double var_x73 = -0.75 * mParameters[2] + var_x72 * var_chaste_interface__ionic_concentrations__Nai; + const double var_x74 = 0.0024381008236689767 * var_x73; + const double var_x75 = var_x71 * var_x74; + const double var_x76 = -0.75 * mParameters[1] + var_x72 * var_chaste_interface__ionic_concentrations__Ki; + const double var_x77 = 0.00069711623550831479 * var_x76; + const double var_x78 = var_x71 * var_x77; + const double var_x79 = var_x41 / pow(var_x42, 2); + const double var_x80 = 1000 * var_x46; + const double var_x81 = var_x44 * var_x49 / pow(var_x45, 2); + const double var_x82 = 0.0004218936106979757 * var_x30 * var_x52 / pow((var_x43 + 0.98039215686274506 * var_x50), 2); + const double var_x83 = var_x82 * (243.26999999999998 * var_x79 - 514.29999999999995 * var_x81 - var_x80 * (0.061749999999999999 * var_x48 + 0.039456396800000001 * var_x47)); + const double var_x84 = var_x30 * var_x37; + const double var_x85 = 0.019211226915711394 * var_x35 * var_x84 * mParameters[6] * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr / pow(var_x36, 2); + const double var_x86 = var_x51 * var_x84 * mParameters[5]; + const double var_x87 = 104.68673984798647 * var_x79 * var_x86; + const double var_x88 = var_x65 * var_x71 * var_chaste_interface__membrane__V; + const double var_x89 = 6.8454343811362063e-5 * var_x88 * var_chaste_interface__ionic_concentrations__Nai; + const double var_x90 = 1.9572871637915374e-5 * var_x88 * var_chaste_interface__ionic_concentrations__Ki; + const double var_x91 = var_x70 * var_chaste_interface__membrane__V; + const double var_x92 = var_x65 * var_x91 / pow(var_x66, 2); + const double var_x93 = 2.6097162183887167e-5 * var_x76 * var_x92; + const double var_x94 = 9.1272458415149417e-5 * var_x73 * var_x92; + const double var_x95 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); + const double var_x96 = var_x95 * var_chaste_interface__T_type_Ca_channel_g_gate__g; + const double var_x97 = 0.050000000000000003 * var_x96; + const double var_x98 = _lt_0_row[0]; + const double var_x99 = -1 + var_x98; + const double var_x100 = 1 / var_x99; + const double var_x101 = var_x98 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x102 = var_x101 - 0.34100000000000003 * mParameters[0]; + const double var_x103 = var_x100 * var_x102; + const double var_x104 = 7.8019226357407252 * var_x103; + const double var_x105 = var_x104 * var_x70; + const double var_x106 = var_x100 * var_x91; + const double var_x107 = var_x105 + var_x97 + 0.58414373385695628 * var_x101 * var_x106 - 0.58414373385695628 * var_x102 * var_x91 * var_x98 / pow(var_x99, 2); + const double var_x108 = 1 / mParameters[3]; + const double var_x109 = 0.001 * var_x108; - partialF = -var_x128 * (0.0070159999999999997 + var_x101 + var_x108 + var_x109 + var_x126 + var_x16 + var_x2 + var_x32 + var_x37 + var_x40 + var_x47 + var_x65 + var_x7 + var_x9 + var_x90 + var_x94 - var_x103 - var_x105 - var_x111 - var_x112 + var_x69 * var_x78); + partialF = -var_x109 * (0.0070159999999999997 + var_x107 + var_x12 + var_x27 + var_x3 + var_x31 + var_x34 + var_x40 + var_x5 + var_x54 + var_x75 + var_x78 + var_x83 + var_x89 + var_x90 - var_x85 - var_x87 - var_x93 - var_x94 + var_x57 * var_x64); } else { @@ -1514,84 +1502,86 @@ std::shared_ptr // Units: millimolar; Initial value: 15.6748357 + // Lookup table indexing + const bool _oob_0 = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->CheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time_converted)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x0 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); - const double var_x1 = var_x0 * var_chaste_interface__T_type_Ca_channel_g_gate__g; - const double var_x2 = 0.050000000000000003 * var_x1; - const double var_x10 = 1 / var_chaste_interface__calcium_dynamics__Cai; - const double var_x17 = 0.018717941753901308 * var_chaste_interface__membrane__V; - const double var_x18 = exp(var_x17); - const double var_x19 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; - const double var_x20 = var_x18 * var_x19; - const double var_x21 = -var_x17; - const double var_x22 = exp(var_x21); - const double var_x23 = pow(mParameters[2], 3); - const double var_x24 = var_x23 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x6 = 1 / var_chaste_interface__calcium_dynamics__Cai; + const double var_x13 = 0.018717941753901308 * var_chaste_interface__membrane__V; + const double var_x14 = exp(var_x13); + const double var_x15 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; + const double var_x16 = var_x14 * var_x15; + const double var_x17 = exp(-var_x13); + const double var_x18 = pow(mParameters[2], 3); + const double var_x19 = var_x18 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x20 = var_x17 * var_x19; + const double var_x22 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x23 = 1 + 0.001 * var_x15 + 0.001 * var_x19; + const double var_x24 = 1 / var_x23; const double var_x25 = var_x22 * var_x24; - const double var_x27 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x28 = 1 + 0.001 * var_x19 + 0.001 * var_x24; - const double var_x29 = 1 / var_x28; - const double var_x30 = var_x27 * var_x29; - const double var_x31 = 0.002 * var_x30; - const double var_x82 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x83 = var_x82 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x84 = var_x83 * var_chaste_interface__L_type_Ca_channel_d_gate__d; - const double var_x113 = 7.8019226357407252 * var_x84; - const double var_x114 = 0.074871767015605231 * var_chaste_interface__membrane__V; - const double var_x115 = exp(var_x114); - const double var_x116 = -1 + var_x115; - const double var_x117 = 1 / var_x116; - const double var_x118 = -0.34100000000000003 * mParameters[0]; - const double var_x119 = var_chaste_interface__calcium_dynamics__Cai; - const double var_x120 = var_x118 + var_x115 * var_x119; - const double var_x121 = var_x117 * var_x120; - const double var_x122 = var_x113 * var_x121; - const double var_x123 = var_x115 * var_chaste_interface__membrane__V; - const double var_x124 = var_x117 * var_x123; - const double var_x129 = var_x20 - var_x25; - const double var_x130 = pow((0.0068999999999999999 + var_chaste_interface__calcium_dynamics__Cai), (-2)); - const double var_x131 = 1.38e-5 * var_x130 * var_x29; - const double var_x132 = var_x129 * var_x131; - const double var_x133 = var_x23 * var_x31; - const double var_x134 = var_x133 * var_x22; - const double var_x135 = var_x27 / pow(var_x28, 2); - const double var_x136 = var_x129 * var_x135; - const double var_x137 = 1.9999999999999999e-6 * var_x23; - const double var_x138 = var_x136 * var_x137; - const double var_x142 = var_chaste_interface__L_type_Ca_channel_d_gate__d * var_chaste_interface__membrane__V; - const double var_x143 = var_x142 * var_chaste_interface__L_type_Ca_channel_f_gate__f / pow((0.00059999999999999995 + var_chaste_interface__calcium_dynamics__Cai), 2); - const double var_x147 = 0.0046811535814444347 * var_x143; - const double var_x148 = 0.00050000000000000001 + var_chaste_interface__calcium_dynamics__Cai; - const double var_x149 = 1.1499999999999999 / var_x148; - const double var_x150 = pow(var_x148, (-2)); - const double var_x151 = var_x149 + 0.040282206767891383 * var_x10 + 0.6678084676374566 * var_x1 * var_x10 - 1.1499999999999999 * var_x150 * var_chaste_interface__calcium_dynamics__Cai; - const double var_x152 = var_x151 + var_x113 * var_x124 - var_x121 * var_x147; - const double var_x165 = log(var_x10 * mParameters[0]); - const double var_x166 = -13.356169352749133 * var_x165 + var_chaste_interface__membrane__V; - const double var_x193 = 0.0023800000000000002 + var_chaste_interface__calcium_dynamics__Cai; - const double var_x194 = 1 + 0.00011900000000000002 / pow(var_x193, 2) + 3.5000000000000004e-5 * var_x150; - const double var_x195 = 1 / var_x194; - const double var_x196 = 1 / M_PI; - const double var_x199 = 0.00062 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; - const double var_x200 = 1 / var_x199; - const double var_x201 = 1 - var_chaste_interface__calcium_dynamics__APtrack2; - const double var_x202 = -0.00018000000000000001 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; - const double var_x203 = 60000 * var_x200 * var_x201 * var_x202; - const double var_x204 = var_x203 * var_chaste_interface__calcium_dynamics__APtrack2; - const double var_x205 = var_chaste_interface__calcium_dynamics__Cainfluxtrack > 0.00018000000000000001; - const double var_x206 = 4000 * var_chaste_interface__calcium_dynamics__OVRLDtrack2; - const double var_x207 = var_chaste_interface__calcium_dynamics__OVRLDtrack2 > 0; - const double var_x208 = ((var_x205) ? (-var_x204) : ((var_x207) ? ((-4000 + var_x206) * var_chaste_interface__calcium_dynamics__OVRLDtrack2) : (0))); - const double var_x209 = 0.00092000000000000003 + var_chaste_interface__calcium_dynamics__Cai; - const double var_x210 = 1 / var_x209; - const double var_x211 = 0.40588235294117642 * var_x210; - const double var_x212 = var_chaste_interface__calcium_dynamics__Cai / pow(var_x209, 2); - const double var_x213 = 0.090316078310111333 * var_x196; - const double var_x214 = -var_chaste_interface__calcium_dynamics__Cai + var_chaste_interface__calcium_dynamics__Ca_JSR; - const double var_x215 = ((var_x205) ? (var_x204 * var_x214) : ((var_x207) ? (var_x206 * var_x214 * (1 - var_chaste_interface__calcium_dynamics__OVRLDtrack2)) : (0))); - const double var_x216 = -0.040282206767891383 * var_x165 + var_x149 * var_chaste_interface__calcium_dynamics__Cai + var_x166 * var_x2; + const double var_x26 = 0.002 * var_x25; + const double var_x68 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x69 = var_x68 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x70 = var_x69 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x91 = var_x70 * var_chaste_interface__membrane__V; + const double var_x95 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); + const double var_x96 = var_x95 * var_chaste_interface__T_type_Ca_channel_g_gate__g; + const double var_x97 = 0.050000000000000003 * var_x96; + const double var_x98 = _lt_0_row[0]; + const double var_x99 = -1 + var_x98; + const double var_x100 = 1 / var_x99; + const double var_x101 = var_x98 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x102 = var_x101 - 0.34100000000000003 * mParameters[0]; + const double var_x103 = var_x100 * var_x102; + const double var_x104 = 7.8019226357407252 * var_x103; + const double var_x105 = var_x104 * var_x70; + const double var_x106 = var_x100 * var_x91; + const double var_x110 = var_x16 - var_x20; + const double var_x111 = var_x110 * var_x24 / pow((0.0068999999999999999 + var_chaste_interface__calcium_dynamics__Cai), 2); + const double var_x112 = 1.38e-5 * var_x111; + const double var_x113 = var_x17 * var_x18; + const double var_x114 = var_x113 * var_x26; + const double var_x115 = var_x110 * var_x22 / pow(var_x23, 2); + const double var_x116 = var_x115 * var_x18; + const double var_x117 = 1.9999999999999999e-6 * var_x116; + const double var_x121 = var_chaste_interface__L_type_Ca_channel_d_gate__d * var_chaste_interface__membrane__V; + const double var_x122 = var_x121 * var_chaste_interface__L_type_Ca_channel_f_gate__f / pow((0.00059999999999999995 + var_chaste_interface__calcium_dynamics__Cai), 2); + const double var_x126 = 0.00050000000000000001 + var_chaste_interface__calcium_dynamics__Cai; + const double var_x127 = 1.1499999999999999 / var_x126; + const double var_x128 = pow(var_x126, (-2)); + const double var_x129 = var_x127 + 0.040282206767891383 * var_x6 + 7.8019226357407252 * var_x106 * var_x98 + 0.6678084676374566 * var_x6 * var_x96 - 1.1499999999999999 * var_x128 * var_chaste_interface__calcium_dynamics__Cai - 0.0046811535814444347 * var_x103 * var_x122; + const double var_x141 = log(var_x6 * mParameters[0]); + const double var_x142 = -13.356169352749133 * var_x141 + var_chaste_interface__membrane__V; + const double var_x169 = 0.0023800000000000002 + var_chaste_interface__calcium_dynamics__Cai; + const double var_x170 = 1 + 0.00011900000000000002 / pow(var_x169, 2) + 3.5000000000000004e-5 * var_x128; + const double var_x171 = 1 / var_x170; + const double var_x172 = 1 / M_PI; + const double var_x175 = 0.00062 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; + const double var_x176 = 1 / var_x175; + const double var_x177 = 1 - var_chaste_interface__calcium_dynamics__APtrack2; + const double var_x178 = -0.00018000000000000001 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; + const double var_x179 = 60000 * var_x176 * var_x177 * var_x178; + const double var_x180 = var_x179 * var_chaste_interface__calcium_dynamics__APtrack2; + const double var_x181 = var_chaste_interface__calcium_dynamics__Cainfluxtrack > 0.00018000000000000001; + const double var_x182 = 4000 * var_chaste_interface__calcium_dynamics__OVRLDtrack2; + const double var_x183 = var_chaste_interface__calcium_dynamics__OVRLDtrack2 > 0; + const double var_x184 = ((var_x181) ? (-var_x180) : ((var_x183) ? ((-4000 + var_x182) * var_chaste_interface__calcium_dynamics__OVRLDtrack2) : (0))); + const double var_x185 = 0.00092000000000000003 + var_chaste_interface__calcium_dynamics__Cai; + const double var_x186 = 1 / var_x185; + const double var_x187 = 0.40588235294117642 * var_x186; + const double var_x188 = var_chaste_interface__calcium_dynamics__Cai / pow(var_x185, 2); + const double var_x189 = var_x112 + var_x114 + var_x117 + var_x129; + const double var_x190 = 0.090316078310111333 * var_x172; + const double var_x191 = -var_chaste_interface__calcium_dynamics__Cai + var_chaste_interface__calcium_dynamics__Ca_JSR; + const double var_x192 = ((var_x181) ? (var_x180 * var_x191) : ((var_x183) ? (var_x182 * var_x191 * (1 - var_chaste_interface__calcium_dynamics__OVRLDtrack2)) : (0))); + const double var_x193 = var_x110 * var_x26; + const double var_x194 = -0.040282206767891383 * var_x141 + var_x105 * var_chaste_interface__membrane__V + var_x127 * var_chaste_interface__calcium_dynamics__Cai + var_x142 * var_x97; - partialF = 0.001 * var_x195 * (-var_x211 + 0.40588235294117642 * var_x212 + 0.0070588235294117632 * var_x208 - var_x213 * (var_x132 + var_x134 + var_x138 + var_x152)) + 0.001 * (0.00023800000000000004 / pow(var_x193, 3) + 7.0000000000000007e-5 / pow(var_x148, 3)) * (0.027058823529411764 * var_chaste_interface__calcium_dynamics__Ca_NSR + 0.0070588235294117632 * var_x215 - var_x211 * var_chaste_interface__calcium_dynamics__Cai - var_x213 * (var_x216 + 0.003016 * var_chaste_interface__membrane__V + var_x122 * var_chaste_interface__membrane__V - var_x129 * var_x31)) / pow(var_x194, 2); + partialF = 0.001 * var_x171 * (-var_x187 + 0.40588235294117642 * var_x188 + 0.0070588235294117632 * var_x184 - var_x189 * var_x190) + 0.001 * (0.00023800000000000004 / pow(var_x169, 3) + 7.0000000000000007e-5 / pow(var_x126, 3)) * (0.027058823529411764 * var_chaste_interface__calcium_dynamics__Ca_NSR + 0.0070588235294117632 * var_x192 - var_x187 * var_chaste_interface__calcium_dynamics__Cai - var_x190 * (var_x194 - var_x193 + 0.003016 * var_chaste_interface__membrane__V)) / pow(var_x170, 2); } else { @@ -1643,14 +1633,14 @@ std::shared_ptr // LCOV_EXCL_STOP const double* const _lt_0_row = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x228 = _lt_0_row[21]; - const double var_x230 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x231 = exp(-4.7130000000000001 + var_x230); - const double var_x232 = 1 - var_x231; - const double var_x233 = 0.32000000000000001 / var_x232; - const double var_x234 = 47.130000000000003 + var_chaste_interface__membrane__V; + const double var_x208 = _lt_0_row[21]; + const double var_x210 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x211 = exp(-4.7130000000000001 + var_x210); + const double var_x212 = 1 - var_x211; + const double var_x213 = 0.32000000000000001 / var_x212; + const double var_x214 = 47.130000000000003 + var_chaste_interface__membrane__V; - partialF = -0.080000000000000002 * var_x228 - var_x233 * var_x234; + partialF = -0.080000000000000002 * var_x208 - var_x213 * var_x214; } else { @@ -1695,14 +1685,14 @@ std::shared_ptr - const double var_x235 = exp(0.34999999999999998 * var_chaste_interface__membrane__V); - const double var_x236 = exp(0.079000000000000001 * var_chaste_interface__membrane__V); - const double var_x237 = exp(-0.14705882352941177 * var_chaste_interface__membrane__V); - const double var_x238 = var_chaste_interface__membrane__V < -40; - const double var_x239 = exp(-0.0900900900900901 * var_chaste_interface__membrane__V); - const double var_x240 = 1 + 0.38275493141491301 * var_x239; + const double var_x215 = exp(0.34999999999999998 * var_chaste_interface__membrane__V); + const double var_x216 = exp(0.079000000000000001 * var_chaste_interface__membrane__V); + const double var_x217 = exp(-11.764705882352942 - 0.14705882352941177 * var_chaste_interface__membrane__V); + const double var_x218 = var_chaste_interface__membrane__V < -40; + const double var_x219 = exp(-0.96036036036036043 - 0.0900900900900901 * var_chaste_interface__membrane__V); + const double var_x220 = 1 + var_x219; - partialF = ((var_x238) ? (-310000 * var_x235 - 1.0495108254269644e-6 * var_x237 - 3.5600000000000001 * var_x236) : (-7.6923076923076934 / var_x240)); + partialF = ((var_x218) ? (-310000 * var_x215 - 0.13500000000000001 * var_x217 - 3.5600000000000001 * var_x216) : (-7.6923076923076934 / var_x220)); } else { @@ -1747,21 +1737,26 @@ std::shared_ptr - const double var_x230 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x238 = var_chaste_interface__membrane__V < -40; - const double var_x242 = exp(0.24440000000000001 * var_chaste_interface__membrane__V); - const double var_x243 = exp(-0.043909999999999998 * var_chaste_interface__membrane__V); - const double var_x244 = -127140 * var_x242 - 3.4740000000000003e-5 * var_x243; - const double var_x246 = exp(0.311 * var_chaste_interface__membrane__V); - const double var_x247 = 1 / (1 + 50262745825.953949 * var_x246); - const double var_x248 = 1 + 0.0039608683399042569 * exp(-0.13780000000000001 * var_chaste_interface__membrane__V); - const double var_x249 = exp(-0.01052 * var_chaste_interface__membrane__V) / var_x248; - const double var_x250 = 37.780000000000001 + var_chaste_interface__membrane__V; - const double var_x251 = var_x247 * var_x250; - const double var_x252 = 1 + 0.040762203978366211 * exp(var_x230); - const double var_x253 = exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__V) / var_x252; + const double var_x210 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x218 = var_chaste_interface__membrane__V < -40; + const double var_x222 = exp(0.24440000000000001 * var_chaste_interface__membrane__V); + const double var_x223 = exp(-0.043909999999999998 * var_chaste_interface__membrane__V); + const double var_x224 = -127140 * var_x222 - 3.4740000000000003e-5 * var_x223; + const double var_x226 = exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V); + const double var_x227 = 1 + var_x226; + const double var_x228 = 1 / var_x227; + const double var_x229 = exp(-5.5312920000000005 - 0.13780000000000001 * var_chaste_interface__membrane__V); + const double var_x230 = 1 + var_x229; + const double var_x231 = exp(-0.01052 * var_chaste_interface__membrane__V); + const double var_x232 = var_x231 / var_x230; + const double var_x233 = 37.780000000000001 + var_chaste_interface__membrane__V; + const double var_x234 = var_x228 * var_x233; + const double var_x235 = exp(-3.2000000000000002 + var_x210); + const double var_x236 = 1 + var_x235; + const double var_x237 = exp(-2.5349999999999999e-7 * var_chaste_interface__membrane__V); + const double var_x238 = var_x237 / var_x236; - partialF = ((var_x238) ? (-0.1212 * var_x249 - var_x244 * var_x251) : (-0.29999999999999999 * var_x253)); + partialF = ((var_x218) ? (-0.1212 * var_x232 - var_x224 * var_x234) : (-0.29999999999999999 * var_x238)); } else { @@ -1808,18 +1803,18 @@ std::shared_ptr - const double var_x255 = exp(-1.6025641025641024 - 0.16025641025641024 * var_chaste_interface__membrane__V); - const double var_x256 = 1 - var_x255; - const double var_x257 = 1 / var_x256; - const double var_x258 = 0.035000000000000003 * var_x257; - const double var_x259 = 10 + var_chaste_interface__membrane__V; - const double var_x262 = 1 + var_x255; - const double var_x263 = 1 / var_x262; - const double var_x264 = 1 - var_x263; - const double var_x265 = var_x262 * var_x264; - const double var_x268 = var_x258 * var_x259; + const double var_x240 = exp(-1.6025641025641024 - 0.16025641025641024 * var_chaste_interface__membrane__V); + const double var_x241 = 1 - var_x240; + const double var_x242 = 1 / var_x241; + const double var_x243 = 0.035000000000000003 * var_x242; + const double var_x244 = 10 + var_chaste_interface__membrane__V; + const double var_x247 = 1 + var_x240; + const double var_x248 = 1 / var_x247; + const double var_x249 = 1 - var_x248; + const double var_x250 = var_x247 * var_x249; + const double var_x253 = var_x243 * var_x244; - partialF = -var_x268 - var_x265 * var_x268; + partialF = -var_x253 - var_x250 * var_x253; } else { @@ -1866,19 +1861,19 @@ std::shared_ptr - const double var_x269 = exp(-0.113569 * pow((1 + 0.10000000000000001 * var_chaste_interface__membrane__V), 2)); - const double var_x272 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__membrane__V); - const double var_x273 = 1 + var_x272; - const double var_x275 = exp(4 + 0.125 * var_chaste_interface__membrane__V); - const double var_x276 = 1 + var_x275; - const double var_x278 = 0.019699999999999999 * var_x269; - const double var_x279 = -0.02 - var_x278; - const double var_x280 = 1 / var_x276; - const double var_x281 = 0.59999999999999998 / var_x273; - const double var_x282 = var_x280 + var_x281; - const double var_x284 = 1 - var_x280 - var_x281; + const double var_x254 = exp(-0.113569 * pow((1 + 0.10000000000000001 * var_chaste_interface__membrane__V), 2)); + const double var_x257 = exp(2.5 - 0.050000000000000003 * var_chaste_interface__membrane__V); + const double var_x258 = 1 + var_x257; + const double var_x260 = exp(4 + 0.125 * var_chaste_interface__membrane__V); + const double var_x261 = 1 + var_x260; + const double var_x263 = 0.019699999999999999 * var_x254; + const double var_x264 = -0.02 - var_x263; + const double var_x265 = 1 / var_x261; + const double var_x266 = 0.59999999999999998 / var_x258; + const double var_x267 = var_x265 + var_x266; + const double var_x269 = 1 - var_x265 - var_x266; - partialF = var_x279 * var_x282 + var_x279 * var_x284; + partialF = var_x264 * var_x267 + var_x264 * var_x269; } else { @@ -1923,12 +1918,12 @@ std::shared_ptr - const double var_x287 = exp(5.5555555555555554 + 0.22222222222222221 * var_chaste_interface__membrane__V); - const double var_x288 = 1 + var_x287; - const double var_x289 = 1 / var_x288; - const double var_x290 = 1 / (0.0037000000000000002 + 0.0061000000000000004 * var_x289); + const double var_x272 = exp(5.5555555555555554 + 0.22222222222222221 * var_chaste_interface__membrane__V); + const double var_x273 = 1 + var_x272; + const double var_x274 = 1 / var_x273; + const double var_x275 = 1 / (0.0037000000000000002 + 0.0061000000000000004 * var_x274); - partialF = -0.001 * var_x290; + partialF = -0.001 * var_x275; } else { @@ -1973,10 +1968,10 @@ std::shared_ptr - const double var_x292 = 1 / (0.012 - 0.00087500000000000002 * var_chaste_interface__membrane__V); - const double var_x294 = var_chaste_interface__membrane__V <= 0; + const double var_x278 = 1 / (0.012 - 0.00087500000000000002 * var_chaste_interface__membrane__V); + const double var_x280 = var_chaste_interface__membrane__V <= 0; - partialF = ((var_x294) ? (-0.001 * var_x292) : (-0.083333333333333329)); + partialF = ((var_x280) ? (-0.001 * var_x278) : (-0.083333333333333329)); } else { @@ -2021,16 +2016,16 @@ std::shared_ptr - const double var_x297 = exp(5.6404999999999994 + 0.14499999999999999 * var_chaste_interface__membrane__V); - const double var_x298 = -1 + var_x297; - const double var_x299 = 1 / var_x298; - const double var_x301 = exp(-1.7465999999999999 - 0.123 * var_chaste_interface__membrane__V); - const double var_x302 = 1 - var_x301; - const double var_x303 = 1 / var_x302; - const double var_x305 = 14.199999999999999 + var_chaste_interface__membrane__V; - const double var_x306 = 38.899999999999999 + var_chaste_interface__membrane__V; + const double var_x283 = exp(5.6404999999999994 + 0.14499999999999999 * var_chaste_interface__membrane__V); + const double var_x284 = -1 + var_x283; + const double var_x285 = 1 / var_x284; + const double var_x287 = exp(-1.7465999999999999 - 0.123 * var_chaste_interface__membrane__V); + const double var_x288 = 1 - var_x287; + const double var_x289 = 1 / var_x288; + const double var_x291 = 14.199999999999999 + var_chaste_interface__membrane__V; + const double var_x292 = 38.899999999999999 + var_chaste_interface__membrane__V; - partialF = -0.0013799999999999999 * var_x303 * var_x305 - 0.00060999999999999997 * var_x299 * var_x306; + partialF = -0.0013799999999999999 * var_x289 * var_x291 - 0.00060999999999999997 * var_x285 * var_x292; } else { @@ -2075,17 +2070,17 @@ std::shared_ptr - const double var_x310 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__membrane__V); - const double var_x311 = -1 + var_x310; - const double var_x312 = 1 / var_x311; - const double var_x314 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__membrane__V); - const double var_x315 = 1 - var_x314; - const double var_x316 = 1 / var_x315; - const double var_x318 = 30 + var_chaste_interface__membrane__V; - const double var_x322 = var_x312 * var_x318; - const double var_x323 = var_x316 * var_x318; + const double var_x296 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__membrane__V); + const double var_x297 = -1 + var_x296; + const double var_x298 = 1 / var_x297; + const double var_x300 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__membrane__V); + const double var_x301 = 1 - var_x300; + const double var_x302 = 1 / var_x301; + const double var_x304 = 30 + var_chaste_interface__membrane__V; + const double var_x308 = var_x298 * var_x304; + const double var_x309 = var_x302 * var_x304; - partialF = -0.00013100000000000001 * var_x322 - 7.1899999999999999e-5 * var_x323; + partialF = -0.00013100000000000001 * var_x308 - 7.1899999999999999e-5 * var_x309; } else { @@ -2130,17 +2125,17 @@ std::shared_ptr - const double var_x310 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__membrane__V); - const double var_x311 = -1 + var_x310; - const double var_x312 = 1 / var_x311; - const double var_x314 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__membrane__V); - const double var_x315 = 1 - var_x314; - const double var_x316 = 1 / var_x315; - const double var_x318 = 30 + var_chaste_interface__membrane__V; - const double var_x322 = var_x312 * var_x318; - const double var_x323 = var_x316 * var_x318; + const double var_x296 = exp(2.0609999999999999 + 0.068699999999999997 * var_chaste_interface__membrane__V); + const double var_x297 = -1 + var_x296; + const double var_x298 = 1 / var_x297; + const double var_x300 = exp(-4.4399999999999995 - 0.14799999999999999 * var_chaste_interface__membrane__V); + const double var_x301 = 1 - var_x300; + const double var_x302 = 1 / var_x301; + const double var_x304 = 30 + var_chaste_interface__membrane__V; + const double var_x308 = var_x298 * var_x304; + const double var_x309 = var_x302 * var_x304; - partialF = -3.2750000000000003e-5 * var_x322 - 1.7975e-5 * var_x323; + partialF = -3.2750000000000003e-5 * var_x308 - 1.7975e-5 * var_x309; } else { @@ -2187,16 +2182,16 @@ std::shared_ptr - const double var_x326 = 0.040000000000000001 * var_chaste_interface__membrane__V; - const double var_x327 = exp(-1.6000000000000001 + var_x326); - const double var_x328 = 1 + var_x327; - const double var_x329 = var_x327 / var_x328; - const double var_x330 = exp(-3.6000000000000001 - var_x326); - const double var_x331 = 1 + var_x330; - const double var_x332 = var_x330 / var_x331; - const double var_x335 = 10 * var_x329; + const double var_x312 = 0.040000000000000001 * var_chaste_interface__membrane__V; + const double var_x313 = exp(-1.6000000000000001 + var_x312); + const double var_x314 = 1 + var_x313; + const double var_x315 = var_x313 / var_x314; + const double var_x316 = exp(-3.6000000000000001 - var_x312); + const double var_x317 = 1 + var_x316; + const double var_x318 = var_x316 / var_x317; + const double var_x321 = 10 * var_x315; - partialF = -var_x335 - 10 * var_x332; + partialF = -var_x321 - 10 * var_x318; } else { @@ -2243,16 +2238,16 @@ std::shared_ptr - const double var_x342 = 0.20000000000000001 * var_chaste_interface__membrane__V; - const double var_x343 = exp(12 + var_x342); - const double var_x344 = 1 + var_x343; - const double var_x345 = 1 / var_x344; - const double var_x346 = exp(5 + var_x342); - const double var_x347 = 1 + var_x346; - const double var_x348 = var_x346 / var_x347; - const double var_x355 = 0.014999999999999999 * var_x345; + const double var_x328 = 0.20000000000000001 * var_chaste_interface__membrane__V; + const double var_x329 = exp(12 + var_x328); + const double var_x330 = 1 + var_x329; + const double var_x331 = 1 / var_x330; + const double var_x332 = exp(5 + var_x328); + const double var_x333 = 1 + var_x332; + const double var_x334 = var_x332 / var_x333; + const double var_x341 = 0.014999999999999999 * var_x331; - partialF = -var_x355 - 0.10000000000000001 * var_x348; + partialF = -var_x341 - 0.10000000000000001 * var_x334; } else { @@ -2310,25 +2305,25 @@ std::shared_ptr - const double var_x199 = 0.00062 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; - const double var_x200 = 1 / var_x199; - const double var_x201 = 1 - var_chaste_interface__calcium_dynamics__APtrack2; - const double var_x202 = -0.00018000000000000001 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; - const double var_x203 = 60000 * var_x200 * var_x201 * var_x202; - const double var_x204 = var_x203 * var_chaste_interface__calcium_dynamics__APtrack2; - const double var_x205 = var_chaste_interface__calcium_dynamics__Cainfluxtrack > 0.00018000000000000001; - const double var_x206 = 4000 * var_chaste_interface__calcium_dynamics__OVRLDtrack2; - const double var_x207 = var_chaste_interface__calcium_dynamics__OVRLDtrack2 > 0; - const double var_x214 = -var_chaste_interface__calcium_dynamics__Cai + var_chaste_interface__calcium_dynamics__Ca_JSR; - const double var_x215 = ((var_x205) ? (var_x204 * var_x214) : ((var_x207) ? (var_x206 * var_x214 * (1 - var_chaste_interface__calcium_dynamics__OVRLDtrack2)) : (0))); - const double var_x221 = 4000 - var_x206; - const double var_x222 = ((var_x205) ? (var_x204) : ((var_x207) ? (var_x221 * var_chaste_interface__calcium_dynamics__OVRLDtrack2) : (0))); - const double var_x356 = 0.80000000000000004 + var_chaste_interface__calcium_dynamics__Ca_JSR; - const double var_x357 = pow(var_x356, (-2)); - const double var_x358 = 1 / (1 + 8 * var_x357); - const double var_x359 = 0.001 * var_x358; + const double var_x175 = 0.00062 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; + const double var_x176 = 1 / var_x175; + const double var_x177 = 1 - var_chaste_interface__calcium_dynamics__APtrack2; + const double var_x178 = -0.00018000000000000001 + var_chaste_interface__calcium_dynamics__Cainfluxtrack; + const double var_x179 = 60000 * var_x176 * var_x177 * var_x178; + const double var_x180 = var_x179 * var_chaste_interface__calcium_dynamics__APtrack2; + const double var_x181 = var_chaste_interface__calcium_dynamics__Cainfluxtrack > 0.00018000000000000001; + const double var_x182 = 4000 * var_chaste_interface__calcium_dynamics__OVRLDtrack2; + const double var_x183 = var_chaste_interface__calcium_dynamics__OVRLDtrack2 > 0; + const double var_x191 = -var_chaste_interface__calcium_dynamics__Cai + var_chaste_interface__calcium_dynamics__Ca_JSR; + const double var_x192 = ((var_x181) ? (var_x180 * var_x191) : ((var_x183) ? (var_x182 * var_x191 * (1 - var_chaste_interface__calcium_dynamics__OVRLDtrack2)) : (0))); + const double var_x200 = 4000 - var_x182; + const double var_x201 = ((var_x181) ? (var_x180) : ((var_x183) ? (var_x200 * var_chaste_interface__calcium_dynamics__OVRLDtrack2) : (0))); + const double var_x342 = 0.80000000000000004 + var_chaste_interface__calcium_dynamics__Ca_JSR; + const double var_x343 = pow(var_x342, (-2)); + const double var_x344 = 1 / (1 + 8 * var_x343); + const double var_x345 = 0.001 * var_x344; - partialF = var_x359 * (-5.5555555555555554 - var_x222) + 0.00025000000000000001 * (-var_x215 + 5.5555555555555554 * var_chaste_interface__calcium_dynamics__Ca_NSR - 5.5555555555555554 * var_chaste_interface__calcium_dynamics__Ca_JSR) / (pow(var_x356, 3) * pow((0.125 + var_x357), 2)); + partialF = var_x345 * (-5.5555555555555554 - var_x201) + 0.00025000000000000001 * (-var_x192 + 5.5555555555555554 * var_chaste_interface__calcium_dynamics__Ca_NSR - 5.5555555555555554 * var_chaste_interface__calcium_dynamics__Ca_JSR) / (pow(var_x342, 3) * pow((0.125 + var_x343), 2)); } else { @@ -2493,91 +2488,116 @@ std::shared_ptr // Units: millimolar; Initial value: 137.6244 + // Lookup table indexing + const bool _oob_0 = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->CheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time_converted)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Dynamicviswanathan_model_1999_epiFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x0 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); - const double var_x1 = var_x0 * var_chaste_interface__T_type_Ca_channel_g_gate__g; - const double var_x2 = 0.050000000000000003 * var_x1; - const double var_x3 = -0.16722408026755853 * var_chaste_interface__membrane__V; - const double var_x8 = pow(mParameters[1], 0.23999999999999999); - const double var_x9 = 1.921898339896919e-8 * var_x8; - const double var_x10 = 1 / var_chaste_interface__calcium_dynamics__Cai; - const double var_x11 = pow(var_x10, 1.3999999999999999); - const double var_x12 = 1 + 6.4818210260626455e-7 * var_x11; - const double var_x13 = 0.25979999999999998 / var_x12; - const double var_x14 = 0.433 + var_x13; - const double var_x15 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; + const double var_x0 = exp(1.2521739130434781 - 0.16722408026755853 * var_chaste_interface__membrane__V); + const double var_x1 = 1 + var_x0; + const double var_x2 = 1 / var_x1; + const double var_x3 = 0.0055199999999999997 * var_x2; + const double var_x4 = pow(mParameters[1], 0.23999999999999999); + const double var_x5 = 1.921898339896919e-8 * var_x4; + const double var_x6 = 1 / var_chaste_interface__calcium_dynamics__Cai; + const double var_x7 = pow(var_x6, 1.3999999999999999); + const double var_x8 = 1 + 6.4818210260626455e-7 * var_x7; + const double var_x9 = 0.25979999999999998 / var_x8; + const double var_x10 = 0.433 + var_x9; + const double var_x11 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; + const double var_x12 = var_x10 * var_x11; + const double var_x13 = 0.018717941753901308 * var_chaste_interface__membrane__V; + const double var_x14 = exp(var_x13); + const double var_x15 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; const double var_x16 = var_x14 * var_x15; - const double var_x17 = 0.018717941753901308 * var_chaste_interface__membrane__V; - const double var_x19 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; - const double var_x21 = -var_x17; - const double var_x23 = pow(mParameters[2], 3); - const double var_x24 = var_x23 * var_chaste_interface__calcium_dynamics__Cai; - const double var_x27 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x28 = 1 + 0.001 * var_x19 + 0.001 * var_x24; - const double var_x29 = 1 / var_x28; - const double var_x30 = var_x27 * var_x29; - const double var_x31 = 0.002 * var_x30; - const double var_x33 = 1 / var_chaste_interface__ionic_concentrations__Ki; - const double var_x34 = var_x33 * mParameters[1]; - const double var_x35 = log(var_x34); - const double var_x36 = -26.712338705498265 * var_x35 + var_chaste_interface__membrane__V; - const double var_x38 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); - const double var_x39 = var_x38 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; - const double var_x40 = var_x39 * var_chaste_interface__fast_sodium_current_h_gate__h; - const double var_x41 = 0.044642857142857144 * var_chaste_interface__membrane__V; - const double var_x44 = sqrt(mParameters[1]); - const double var_x48 = 438.93811257017387 * var_x44 * mParameters[5]; - const double var_x49 = 0.23849999999999999 * var_chaste_interface__membrane__V; - const double var_x53 = -0.51429999999999998 * var_chaste_interface__membrane__V; - const double var_x57 = 0.080320000000000003 * var_chaste_interface__membrane__V; - const double var_x59 = 0.061749999999999999 * var_chaste_interface__membrane__V; - const double var_x66 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); - const double var_x67 = mParameters[1] / (1.5 + mParameters[1]); - const double var_x68 = var_x67 / (1 + 100 * var_x66); - const double var_x69 = 2 * var_x68; - const double var_x70 = -0.003743588350780262 * var_chaste_interface__membrane__V; - const double var_x72 = 0.01485884101040119 * mParameters[2]; - const double var_x74 = 0.037435883507802616 * var_chaste_interface__membrane__V; - const double var_x75 = -var_x74; - const double var_x82 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x83 = var_x82 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x84 = var_x83 * var_chaste_interface__L_type_Ca_channel_d_gate__d; - const double var_x86 = -0.75 * mParameters[2]; - const double var_x91 = -0.75 * mParameters[1]; - const double var_x102 = var_x36 * var_x44 * mParameters[6] * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; - const double var_x113 = 7.8019226357407252 * var_x84; - const double var_x114 = 0.074871767015605231 * var_chaste_interface__membrane__V; - const double var_x118 = -0.34100000000000003 * mParameters[0]; - const double var_x119 = var_chaste_interface__calcium_dynamics__Cai; - const double var_x127 = 1 / mParameters[3]; - const double var_x139 = 1 / (0.018329999999999999 * var_chaste_interface__ionic_concentrations__Nai + var_chaste_interface__ionic_concentrations__Ki); - const double var_x140 = -26.712338705498265 * log(var_x139 * (0.018329999999999999 * mParameters[2] + mParameters[1])) + var_chaste_interface__membrane__V; - const double var_x148 = 0.00050000000000000001 + var_chaste_interface__calcium_dynamics__Cai; - const double var_x149 = 1.1499999999999999 / var_x148; - const double var_x153 = 1 / var_chaste_interface__ionic_concentrations__Nai; - const double var_x154 = log(var_x153 * mParameters[2]); - const double var_x155 = -26.712338705498265 * var_x154 + var_chaste_interface__membrane__V; - const double var_x165 = log(var_x10 * mParameters[0]); - const double var_x166 = -13.356169352749133 * var_x165 + var_chaste_interface__membrane__V; - const double var_x216 = -0.040282206767891383 * var_x165 + var_x149 * var_chaste_interface__calcium_dynamics__Cai + var_x166 * var_x2; - const double var_x360 = exp(var_x17); - const double var_x361 = var_x19 * var_x360; - const double var_x362 = exp(var_x21); - const double var_x363 = var_x24 * var_x362; - const double var_x364 = var_x361 - var_x363; - const double var_x365 = 1 / (1 + 7.3545425104644573e-7 * pow(var_x34, (-6.3708927812613361)) * exp(var_x49)); - const double var_x366 = exp(var_x114); - const double var_x367 = var_x118 + var_x119 * var_x366; - const double var_x368 = -1 + var_x366; - const double var_x369 = 1 / var_x368; - const double var_x370 = var_x113 * var_x369; - const double var_x371 = var_x367 * var_x370; - const double var_x372 = exp(var_x74); - const double var_x373 = 0.75 * var_x372; - const double var_x374 = var_x84 * var_chaste_interface__membrane__V; - const double var_x375 = var_x374 / (-1 + var_x372); + const double var_x17 = exp(-var_x13); + const double var_x18 = pow(mParameters[2], 3); + const double var_x19 = var_x18 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x20 = var_x17 * var_x19; + const double var_x22 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x23 = 1 + 0.001 * var_x15 + 0.001 * var_x19; + const double var_x24 = 1 / var_x23; + const double var_x25 = var_x22 * var_x24; + const double var_x26 = 0.002 * var_x25; + const double var_x28 = 1 / var_chaste_interface__ionic_concentrations__Ki; + const double var_x29 = log(var_x28 * mParameters[1]); + const double var_x30 = -26.712338705498265 * var_x29 + var_chaste_interface__membrane__V; + const double var_x32 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); + const double var_x33 = var_x32 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; + const double var_x34 = var_x33 * var_chaste_interface__fast_sodium_current_h_gate__h; + const double var_x35 = exp(0.4017857142857143 + 0.044642857142857144 * var_chaste_interface__membrane__V); + const double var_x36 = 1 + var_x35; + const double var_x37 = sqrt(mParameters[1]); + const double var_x38 = var_x37 * mParameters[6] / var_x36; + const double var_x39 = var_x38 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; + const double var_x40 = 0.43033148291193518 * var_x39; + const double var_x41 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__V - 6.3708927812613361 * var_x29); + const double var_x42 = 1 + var_x41; + const double var_x43 = 1 / var_x42; + const double var_x44 = exp(-2.4444678999999998 + 13.738155796237757 * var_x29 - 0.51429999999999998 * var_chaste_interface__membrane__V); + const double var_x45 = 1 + var_x44; + const double var_x46 = 1 / var_x45; + const double var_x47 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__V - 2.1455350448256207 * var_x29); + const double var_x48 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__V - 1.6494869150645177 * var_x29); + const double var_x49 = var_x48 + 0.49124000000000001 * var_x47; + const double var_x50 = var_x46 * var_x49; + const double var_x51 = 1 / (1000 * var_x50 + 1020 * var_x43); + const double var_x52 = var_x37 * var_x43 * mParameters[5]; + const double var_x53 = var_x51 * var_x52; + const double var_x54 = 438.93811257017387 * var_x53; + const double var_x55 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); + const double var_x56 = 1 / (1 + 100 * var_x55); + const double var_x57 = 2 * var_x56; + const double var_x58 = 1 / (1.5 + mParameters[1]); + const double var_x59 = exp(-0.003743588350780262 * var_chaste_interface__membrane__V); + const double var_x60 = exp(0.01485884101040119 * mParameters[2]); + const double var_x61 = 0.037435883507802616 * var_chaste_interface__membrane__V; + const double var_x62 = exp(-var_x61); + const double var_x63 = 1 + 0.1245 * var_x59 + 0.036499999999999998 * var_x62 * (-0.14285714285714285 + 0.14285714285714285 * var_x60); + const double var_x65 = exp(var_x61); + const double var_x66 = -1 + var_x65; + const double var_x67 = 1 / var_x66; + const double var_x68 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x69 = var_x68 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x70 = var_x69 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x71 = var_x67 * var_x70; + const double var_x72 = 0.75 * var_x65; + const double var_x73 = -0.75 * mParameters[2] + var_x72 * var_chaste_interface__ionic_concentrations__Nai; + const double var_x74 = 0.0024381008236689767 * var_x73; + const double var_x75 = var_x71 * var_x74; + const double var_x76 = -0.75 * mParameters[1] + var_x72 * var_chaste_interface__ionic_concentrations__Ki; + const double var_x77 = 0.00069711623550831479 * var_x76; + const double var_x78 = var_x71 * var_x77; + const double var_x95 = pow(var_chaste_interface__T_type_Ca_channel_b_gate__b, 2); + const double var_x96 = var_x95 * var_chaste_interface__T_type_Ca_channel_g_gate__g; + const double var_x97 = 0.050000000000000003 * var_x96; + const double var_x98 = _lt_0_row[0]; + const double var_x99 = -1 + var_x98; + const double var_x100 = 1 / var_x99; + const double var_x101 = var_x98 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x102 = var_x101 - 0.34100000000000003 * mParameters[0]; + const double var_x103 = var_x100 * var_x102; + const double var_x104 = 7.8019226357407252 * var_x103; + const double var_x105 = var_x104 * var_x70; + const double var_x108 = 1 / mParameters[3]; + const double var_x110 = var_x16 - var_x20; + const double var_x118 = 1 / (0.018329999999999999 * var_chaste_interface__ionic_concentrations__Nai + var_chaste_interface__ionic_concentrations__Ki); + const double var_x119 = -26.712338705498265 * log(var_x118 * (0.018329999999999999 * mParameters[2] + mParameters[1])) + var_chaste_interface__membrane__V; + const double var_x126 = 0.00050000000000000001 + var_chaste_interface__calcium_dynamics__Cai; + const double var_x127 = 1.1499999999999999 / var_x126; + const double var_x130 = 1 / var_chaste_interface__ionic_concentrations__Nai; + const double var_x131 = log(var_x130 * mParameters[2]); + const double var_x132 = -26.712338705498265 * var_x131 + var_chaste_interface__membrane__V; + const double var_x141 = log(var_x6 * mParameters[0]); + const double var_x142 = -13.356169352749133 * var_x141 + var_chaste_interface__membrane__V; + const double var_x155 = var_x58 * mParameters[1] / var_x63; + const double var_x193 = var_x110 * var_x26; + const double var_x194 = -0.040282206767891383 * var_x141 + var_x105 * var_chaste_interface__membrane__V + var_x127 * var_chaste_interface__calcium_dynamics__Cai + var_x142 * var_x97; - partialF = ((var_x127 * (var_x216 + 0.0070159999999999997 * var_chaste_interface__membrane__V - 0.10684935482199306 * var_x154 + var_x140 * var_x16 + var_x155 * var_x40 + var_x31 * var_x364 + var_x36 * var_x9 + var_x371 * var_chaste_interface__membrane__V + var_x69 / (1 + 0.1245 * exp(var_x70) + 0.036499999999999998 * (-0.14285714285714285 + 0.14285714285714285 * exp(var_x72)) * exp(var_x75)) + GetIntracellularAreaStimulus(var_chaste_interface__environment__time_converted) / HeartConfig::Instance()->GetCapacitance() + 0.0055199999999999997 * var_x36 / (1 + 3.497938913025243 * exp(var_x3)) + 0.43033148291193518 * var_x102 / (1 + 1.4944910502790945 * exp(var_x41)) + 0.0024381008236689767 * var_x375 * (var_x86 + var_x373 * var_chaste_interface__ionic_concentrations__Nai) + 0.00069711623550831479 * var_x375 * (var_x91 + var_x373 * var_chaste_interface__ionic_concentrations__Ki) + var_x36 * var_x365 * var_x48 / (1020 * var_x365 + 1000 * (0.76262400650630813 * pow(var_x34, (-2.1455350448256207)) * exp(var_x57) + 1.1534056351865583e-16 * pow(var_x34, (-1.6494869150645177)) * exp(var_x59)) / (1 + 0.086772294157693303 * pow(var_x34, 13.738155796237757) * exp(var_x53)))) < -150000) ? (-100.5) : (-0.5)); + partialF = ((var_x108 * (var_x193 + var_x194 + 0.0070159999999999997 * var_chaste_interface__membrane__V - 0.10684935482199306 * var_x131 + var_x119 * var_x12 + var_x132 * var_x34 + var_x155 * var_x57 + var_x3 * var_x30 + var_x30 * var_x40 + var_x30 * var_x5 + var_x30 * var_x54 + var_x75 * var_chaste_interface__membrane__V + var_x78 * var_chaste_interface__membrane__V + GetIntracellularAreaStimulus(var_chaste_interface__environment__time_converted) / HeartConfig::Instance()->GetCapacitance()) < -150000) ? (-100.5) : (-0.5)); } else { @@ -2615,9 +2635,9 @@ std::shared_ptr - const double var_x376 = (var_chaste_interface__calcium_dynamics__APtrack > 0.17999999999999999) && (var_chaste_interface__calcium_dynamics__APtrack < 0.20000000000000001); + const double var_x346 = (var_chaste_interface__calcium_dynamics__APtrack > 0.17999999999999999) && (var_chaste_interface__calcium_dynamics__APtrack < 0.20000000000000001); - partialF = ((var_x376) ? (-100.5) : (-0.5)); + partialF = ((var_x346) ? (-100.5) : (-0.5)); } else { @@ -2655,9 +2675,9 @@ std::shared_ptr - const double var_x376 = (var_chaste_interface__calcium_dynamics__APtrack > 0.17999999999999999) && (var_chaste_interface__calcium_dynamics__APtrack < 0.20000000000000001); + const double var_x346 = (var_chaste_interface__calcium_dynamics__APtrack > 0.17999999999999999) && (var_chaste_interface__calcium_dynamics__APtrack < 0.20000000000000001); - partialF = ((var_x376) ? (-100.5) : (-0.01)); + partialF = ((var_x346) ? (-100.5) : (-0.01)); } else { @@ -2728,9 +2748,9 @@ std::shared_ptr - const double var_x378 = var_chaste_interface__calcium_dynamics__APtrack > 0.20000000000000001; + const double var_x347 = var_chaste_interface__calcium_dynamics__APtrack > 0.20000000000000001; - partialF = (((var_x378) || (var_chaste_interface__calcium_dynamics__APtrack2 > 0.01)) ? (0) : (-0.5)); + partialF = (((var_x347) || (var_chaste_interface__calcium_dynamics__APtrack2 > 0.01)) ? (0) : (-0.5)); } else { @@ -2817,9 +2837,9 @@ std::shared_ptr - const double var_x382 = var_chaste_interface__calcium_dynamics__OVRLDtrack > 0.97999999999999998; + const double var_x348 = var_chaste_interface__calcium_dynamics__OVRLDtrack > 0.97999999999999998; - partialF = (((var_x382) && (var_chaste_interface__calcium_dynamics__OVRLDtrack2 < 0.97999999999999998)) ? (-50) : (-0.5)); + partialF = (((var_x348) && (var_chaste_interface__calcium_dynamics__OVRLDtrack2 < 0.97999999999999998)) ? (-50) : (-0.5)); } else { @@ -2859,9 +2879,9 @@ std::shared_ptr - const double var_x382 = var_chaste_interface__calcium_dynamics__OVRLDtrack > 0.97999999999999998; + const double var_x348 = var_chaste_interface__calcium_dynamics__OVRLDtrack > 0.97999999999999998; - partialF = (((var_x382) && (var_chaste_interface__calcium_dynamics__OVRLDtrack3 < 0.97999999999999998)) ? (-50) : (-0.01)); + partialF = (((var_x348) && (var_chaste_interface__calcium_dynamics__OVRLDtrack3 < 0.97999999999999998)) ? (-50) : (-0.01)); } else { @@ -2942,54 +2962,51 @@ std::shared_ptr - const double var_x17 = 0.018717941753901308 * var_chaste_interface__membrane__V; - const double var_x18 = exp(var_x17); - const double var_x19 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; - const double var_x20 = var_x18 * var_x19; - const double var_x21 = -var_x17; - const double var_x22 = exp(var_x21); - const double var_x23 = pow(mParameters[2], 3); - const double var_x24 = var_x23 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x13 = 0.018717941753901308 * var_chaste_interface__membrane__V; + const double var_x14 = exp(var_x13); + const double var_x15 = pow(var_chaste_interface__ionic_concentrations__Nai, 3) * mParameters[0]; + const double var_x16 = var_x14 * var_x15; + const double var_x17 = exp(-var_x13); + const double var_x18 = pow(mParameters[2], 3); + const double var_x19 = var_x18 * var_chaste_interface__calcium_dynamics__Cai; + const double var_x20 = var_x17 * var_x19; + const double var_x22 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x23 = 1 + 0.001 * var_x15 + 0.001 * var_x19; + const double var_x24 = 1 / var_x23; const double var_x25 = var_x22 * var_x24; - const double var_x27 = 1 / (1 + 144.92753623188406 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x28 = 1 + 0.001 * var_x19 + 0.001 * var_x24; - const double var_x29 = 1 / var_x28; - const double var_x30 = var_x27 * var_x29; - const double var_x38 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); - const double var_x39 = var_x38 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; - const double var_x40 = var_x39 * var_chaste_interface__fast_sodium_current_h_gate__h; - const double var_x66 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); - const double var_x67 = mParameters[1] / (1.5 + mParameters[1]); - const double var_x70 = -0.003743588350780262 * var_chaste_interface__membrane__V; - const double var_x71 = exp(var_x70); - const double var_x72 = 0.01485884101040119 * mParameters[2]; - const double var_x73 = exp(var_x72); - const double var_x74 = 0.037435883507802616 * var_chaste_interface__membrane__V; - const double var_x75 = -var_x74; - const double var_x76 = exp(var_x75); - const double var_x77 = 1 + 0.1245 * var_x71 + 0.036499999999999998 * var_x76 * (-0.14285714285714285 + 0.14285714285714285 * var_x73); - const double var_x79 = exp(var_x74); - const double var_x80 = -1 + var_x79; - const double var_x81 = 1 / var_x80; - const double var_x82 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x83 = var_x82 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x84 = var_x83 * var_chaste_interface__L_type_Ca_channel_d_gate__d; - const double var_x85 = var_x81 * var_x84; - const double var_x106 = var_x79 * var_chaste_interface__membrane__V; - const double var_x107 = var_x106 * var_x85; - const double var_x129 = var_x20 - var_x25; - const double var_x135 = var_x27 / pow(var_x28, 2); - const double var_x136 = var_x129 * var_x135; - const double var_x153 = 1 / var_chaste_interface__ionic_concentrations__Nai; - const double var_x173 = 0.10684935482199306 * var_x153; - const double var_x176 = pow(var_chaste_interface__ionic_concentrations__Nai, 2) * mParameters[0]; - const double var_x179 = var_x67 / (var_x77 * pow((0.01 + var_x66), 2) * pow(var_chaste_interface__ionic_concentrations__Nai, 3)); - const double var_x180 = 26.712338705498265 * var_x153 * var_x40; - const double var_x183 = 0.0018285756177517324 * var_x107; - const double var_x196 = 1 / M_PI; - const double var_x384 = 0.00018063215662022267 * var_x196; + const double var_x32 = pow(var_chaste_interface__fast_sodium_current_m_gate__m, 3); + const double var_x33 = var_x32 * mParameters[4] * var_chaste_interface__fast_sodium_current_j_gate__j; + const double var_x34 = var_x33 * var_chaste_interface__fast_sodium_current_h_gate__h; + const double var_x55 = pow(var_chaste_interface__ionic_concentrations__Nai, (-2)); + const double var_x58 = 1 / (1.5 + mParameters[1]); + const double var_x59 = exp(-0.003743588350780262 * var_chaste_interface__membrane__V); + const double var_x60 = exp(0.01485884101040119 * mParameters[2]); + const double var_x61 = 0.037435883507802616 * var_chaste_interface__membrane__V; + const double var_x62 = exp(-var_x61); + const double var_x63 = 1 + 0.1245 * var_x59 + 0.036499999999999998 * var_x62 * (-0.14285714285714285 + 0.14285714285714285 * var_x60); + const double var_x65 = exp(var_x61); + const double var_x66 = -1 + var_x65; + const double var_x67 = 1 / var_x66; + const double var_x68 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x69 = var_x68 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x70 = var_x69 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x71 = var_x67 * var_x70; + const double var_x88 = var_x65 * var_x71 * var_chaste_interface__membrane__V; + const double var_x110 = var_x16 - var_x20; + const double var_x115 = var_x110 * var_x22 / pow(var_x23, 2); + const double var_x130 = 1 / var_chaste_interface__ionic_concentrations__Nai; + const double var_x149 = 0.10684935482199306 * var_x130; + const double var_x152 = pow(var_chaste_interface__ionic_concentrations__Nai, 2) * mParameters[0]; + const double var_x153 = var_x14 * var_x152; + const double var_x155 = var_x58 * mParameters[1] / var_x63; + const double var_x156 = var_x155 / (pow((0.01 + var_x55), 2) * pow(var_chaste_interface__ionic_concentrations__Nai, 3)); + const double var_x157 = 26.712338705498265 * var_x130 * var_x34; + const double var_x158 = var_x115 * var_x152; + const double var_x160 = 0.0018285756177517324 * var_x88; + const double var_x172 = 1 / M_PI; + const double var_x350 = 0.00018063215662022267 * var_x172; - partialF = var_x384 * (-var_x173 - var_x180 - var_x183 - 0.12 * var_x179 + 1.8e-5 * var_x136 * var_x176 - 0.018000000000000002 * var_x176 * var_x18 * var_x30); + partialF = var_x350 * (-var_x149 - var_x157 - var_x160 + 1.8e-5 * var_x158 - 0.12 * var_x156 - 0.018000000000000002 * var_x153 * var_x25); } else { @@ -3077,75 +3094,67 @@ std::shared_ptr - const double var_x3 = -0.16722408026755853 * var_chaste_interface__membrane__V; - const double var_x4 = exp(1.2521739130434781 + var_x3); - const double var_x5 = 1 + var_x4; - const double var_x6 = 1 / var_x5; - const double var_x8 = pow(mParameters[1], 0.23999999999999999); - const double var_x10 = 1 / var_chaste_interface__calcium_dynamics__Cai; - const double var_x11 = pow(var_x10, 1.3999999999999999); - const double var_x12 = 1 + 6.4818210260626455e-7 * var_x11; - const double var_x13 = 0.25979999999999998 / var_x12; - const double var_x15 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; - const double var_x33 = 1 / var_chaste_interface__ionic_concentrations__Ki; - const double var_x34 = var_x33 * mParameters[1]; - const double var_x35 = log(var_x34); - const double var_x36 = -26.712338705498265 * var_x35 + var_chaste_interface__membrane__V; - const double var_x41 = 0.044642857142857144 * var_chaste_interface__membrane__V; - const double var_x42 = exp(0.4017857142857143 + var_x41); - const double var_x43 = 1 + var_x42; - const double var_x44 = sqrt(mParameters[1]); - const double var_x45 = var_x44 * mParameters[6] / var_x43; - const double var_x46 = var_x45 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; - const double var_x49 = 0.23849999999999999 * var_chaste_interface__membrane__V; - const double var_x50 = exp(-14.1227775 + var_x49 - 6.3708927812613361 * var_x35); - const double var_x51 = 1 + var_x50; - const double var_x52 = 1 / var_x51; - const double var_x53 = -0.51429999999999998 * var_chaste_interface__membrane__V; - const double var_x54 = exp(-2.4444678999999998 + var_x53 + 13.738155796237757 * var_x35); - const double var_x55 = 1 + var_x54; - const double var_x56 = 1 / var_x55; - const double var_x57 = 0.080320000000000003 * var_chaste_interface__membrane__V; - const double var_x58 = exp(0.43983232 + var_x57 - 2.1455350448256207 * var_x35); - const double var_x59 = 0.061749999999999999 * var_chaste_interface__membrane__V; - const double var_x60 = exp(-36.698642499999998 + var_x59 - 1.6494869150645177 * var_x35); - const double var_x61 = var_x60 + 0.49124000000000001 * var_x58; - const double var_x62 = var_x56 * var_x61; - const double var_x63 = 1 / (1000 * var_x62 + 1020 * var_x52); - const double var_x64 = var_x52 * var_x63; - const double var_x74 = 0.037435883507802616 * var_chaste_interface__membrane__V; - const double var_x79 = exp(var_x74); - const double var_x80 = -1 + var_x79; - const double var_x81 = 1 / var_x80; - const double var_x82 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); - const double var_x83 = var_x82 * var_chaste_interface__L_type_Ca_channel_f_gate__f; - const double var_x84 = var_x83 * var_chaste_interface__L_type_Ca_channel_d_gate__d; - const double var_x85 = var_x81 * var_x84; - const double var_x95 = var_x50 / pow(var_x51, 2); - const double var_x96 = 1000 * var_x56; - const double var_x97 = var_x54 * var_x61 / pow(var_x55, 2); - const double var_x98 = var_x44 * mParameters[5]; - const double var_x99 = var_x36 * var_x98; - const double var_x100 = 0.0004218936106979757 * var_x52 * var_x99 / pow((var_x52 + 0.98039215686274506 * var_x62), 2); - const double var_x104 = var_x63 * var_x99; - const double var_x106 = var_x79 * var_chaste_interface__membrane__V; - const double var_x107 = var_x106 * var_x85; - const double var_x139 = 1 / (0.018329999999999999 * var_chaste_interface__ionic_concentrations__Nai + var_chaste_interface__ionic_concentrations__Ki); - const double var_x184 = 5.1338399412861326e-7 * var_x33 * var_x8; - const double var_x185 = 0.14745210965435041 * var_x33 * var_x6; - const double var_x186 = 11.495160327182951 * var_x33 * var_x46; - const double var_x187 = 11725.06353372661 * var_x33 * var_x64 * var_x98; - const double var_x188 = 0.00052283717663123607 * var_x107; - const double var_x189 = var_x33 * var_x95; - const double var_x190 = var_x100 * (6498.310636886562 * var_x189 - var_x96 * (1.053972635420138 * var_x33 * var_x58 + 1.6494869150645177 * var_x33 * var_x60) - 13738.155796237757 * var_x33 * var_x97); - const double var_x191 = 2796.4276527937964 * var_x104 * var_x189; - const double var_x196 = 1 / M_PI; - const double var_x384 = 0.00018063215662022267 * var_x196; - const double var_x389 = -0.433 - var_x13; - const double var_x390 = var_x15 * var_x389; - const double var_x393 = var_x139 * var_x390; + const double var_x0 = exp(1.2521739130434781 - 0.16722408026755853 * var_chaste_interface__membrane__V); + const double var_x1 = 1 + var_x0; + const double var_x2 = 1 / var_x1; + const double var_x4 = pow(mParameters[1], 0.23999999999999999); + const double var_x6 = 1 / var_chaste_interface__calcium_dynamics__Cai; + const double var_x7 = pow(var_x6, 1.3999999999999999); + const double var_x8 = 1 + 6.4818210260626455e-7 * var_x7; + const double var_x9 = 0.25979999999999998 / var_x8; + const double var_x11 = var_chaste_interface__slow_delayed_rectifier_potassium_current_xs1_gate__xs1 * var_chaste_interface__slow_delayed_rectifier_potassium_current_xs2_gate__xs2; + const double var_x28 = 1 / var_chaste_interface__ionic_concentrations__Ki; + const double var_x29 = log(var_x28 * mParameters[1]); + const double var_x30 = -26.712338705498265 * var_x29 + var_chaste_interface__membrane__V; + const double var_x35 = exp(0.4017857142857143 + 0.044642857142857144 * var_chaste_interface__membrane__V); + const double var_x36 = 1 + var_x35; + const double var_x37 = sqrt(mParameters[1]); + const double var_x38 = var_x37 * mParameters[6] / var_x36; + const double var_x39 = var_x38 * var_chaste_interface__rapid_delayed_rectifier_potassium_current_xr_gate__xr; + const double var_x41 = exp(-14.1227775 + 0.23849999999999999 * var_chaste_interface__membrane__V - 6.3708927812613361 * var_x29); + const double var_x42 = 1 + var_x41; + const double var_x43 = 1 / var_x42; + const double var_x44 = exp(-2.4444678999999998 + 13.738155796237757 * var_x29 - 0.51429999999999998 * var_chaste_interface__membrane__V); + const double var_x45 = 1 + var_x44; + const double var_x46 = 1 / var_x45; + const double var_x47 = exp(0.43983232 + 0.080320000000000003 * var_chaste_interface__membrane__V - 2.1455350448256207 * var_x29); + const double var_x48 = exp(-36.698642499999998 + 0.061749999999999999 * var_chaste_interface__membrane__V - 1.6494869150645177 * var_x29); + const double var_x49 = var_x48 + 0.49124000000000001 * var_x47; + const double var_x50 = var_x46 * var_x49; + const double var_x51 = 1 / (1000 * var_x50 + 1020 * var_x43); + const double var_x52 = var_x37 * var_x43 * mParameters[5]; + const double var_x53 = var_x51 * var_x52; + const double var_x61 = 0.037435883507802616 * var_chaste_interface__membrane__V; + const double var_x65 = exp(var_x61); + const double var_x66 = -1 + var_x65; + const double var_x67 = 1 / var_x66; + const double var_x68 = 1 / (1 + 1666.6666666666667 * var_chaste_interface__calcium_dynamics__Cai); + const double var_x69 = var_x68 * var_chaste_interface__L_type_Ca_channel_f_gate__f; + const double var_x70 = var_x69 * var_chaste_interface__L_type_Ca_channel_d_gate__d; + const double var_x71 = var_x67 * var_x70; + const double var_x79 = var_x41 / pow(var_x42, 2); + const double var_x80 = 1000 * var_x46; + const double var_x81 = var_x44 * var_x49 / pow(var_x45, 2); + const double var_x82 = 0.0004218936106979757 * var_x30 * var_x52 / pow((var_x43 + 0.98039215686274506 * var_x50), 2); + const double var_x84 = var_x30 * var_x37; + const double var_x86 = var_x51 * var_x84 * mParameters[5]; + const double var_x88 = var_x65 * var_x71 * var_chaste_interface__membrane__V; + const double var_x118 = 1 / (0.018329999999999999 * var_chaste_interface__ionic_concentrations__Nai + var_chaste_interface__ionic_concentrations__Ki); + const double var_x161 = 5.1338399412861326e-7 * var_x28 * var_x4; + const double var_x162 = 0.14745210965435041 * var_x2 * var_x28; + const double var_x163 = 11.495160327182951 * var_x28 * var_x39; + const double var_x164 = 11725.06353372661 * var_x28 * var_x53; + const double var_x165 = 0.00052283717663123607 * var_x88; + const double var_x166 = var_x28 * var_x79; + const double var_x167 = var_x82 * (6498.310636886562 * var_x166 - var_x80 * (1.053972635420138 * var_x28 * var_x47 + 1.6494869150645177 * var_x28 * var_x48) - 13738.155796237757 * var_x28 * var_x81); + const double var_x168 = 2796.4276527937964 * var_x166 * var_x86; + const double var_x172 = 1 / M_PI; + const double var_x350 = 0.00018063215662022267 * var_x172; + const double var_x355 = -0.433 - var_x9; + const double var_x356 = var_x11 * var_x355; + const double var_x359 = var_x118 * var_x356; - partialF = var_x384 * (var_x191 - var_x184 - var_x185 - var_x186 - var_x187 - var_x188 - var_x190 + 26.712338705498265 * var_x393); + partialF = var_x350 * (var_x168 - var_x161 - var_x162 - var_x163 - var_x164 - var_x165 - var_x167 + 26.712338705498265 * var_x359); } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp b/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp index 958ee95b..abef2c13 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp @@ -141,7 +141,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLGRL2Opt_LookupT for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + 0.0015034391929775724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287556e-8 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + exp(-6.5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -196,7 +196,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLGRL2Opt_LookupT for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + 0.006737946999085467 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-7 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + exp(-5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -553,17 +553,27 @@ std::shared_ptrCheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x3 = exp(-0.055555555555555552 * var_chaste_interface__membrane__V); - const double var_x4 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x7 = exp(-var_x6); - const double var_x8 = -1 + 0.006737946999085467 * var_x7; - const double var_x9 = 1 / var_x8; - const double var_x10 = 50 + var_chaste_interface__membrane__V; - const double var_x11 = 0.062015414396037277 * var_x3; + const double var_x4 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x5 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x6 = _lt_0_row[5]; + const double var_x7 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x8 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x9 = exp(-5 - var_x8); + const double var_x10 = -1 + var_x9; + const double var_x11 = 0.10000000000000001 / var_x10; + const double var_x12 = 50 + var_chaste_interface__membrane__V; + const double var_x13 = 4 * var_x6; + const double var_x14 = 1.0000000000287557e-7 * var_x4; - partialF = ((var_x4) ? (-3.4999533692061595 - var_x11 - 0.049999067384036401 * var_chaste_interface__membrane__V) : (-var_x11 + 0.10000000000000001 * var_x10 * var_x9)); + partialF = ((var_x7) ? (-var_x13 - var_x14 - 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-var_x14 - 1.0000000000287557e-7 * var_x5)) : (-var_x13 + var_x11 * var_x12)); } else { @@ -615,12 +625,12 @@ std::shared_ptrIndexTable0(var_chaste_interface__membrane__V); - const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x12 = _lt_0_row[2]; - const double var_x13 = exp(-4.5 - var_x6); - const double var_x14 = 1 + var_x13; + const double var_x8 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x15 = _lt_0_row[2]; + const double var_x16 = exp(-4.5 - var_x8); + const double var_x17 = 1 + var_x16; - partialF = -1 / var_x14 - 0.070000000000000007 * var_x12; + partialF = -1 / var_x17 - 0.070000000000000007 * var_x15; } else { @@ -664,17 +674,27 @@ std::shared_ptrCheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x6 = 0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x7 = exp(-var_x6); - const double var_x15 = exp(0.012500000000000001 * var_chaste_interface__membrane__V); - const double var_x17 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); - const double var_x19 = -1 + 0.0015034391929775724 * var_x7; - const double var_x20 = 1 / var_x19; - const double var_x21 = 65 + var_chaste_interface__membrane__V; - const double var_x22 = 0.31919868225786585 * var_x15; + const double var_x4 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x5 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x8 = 0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x19 = _lt_0_row[1]; + const double var_x21 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x22 = exp(-6.5 - var_x8); + const double var_x23 = -1 + var_x22; + const double var_x24 = 0.01 / var_x23; + const double var_x25 = 65 + var_chaste_interface__membrane__V; + const double var_x26 = 0.125 * var_x19; + const double var_x27 = 1.0000000000287556e-8 * var_x4; - partialF = ((var_x17) ? (-0.42499393799526108 - var_x22 - 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-var_x22 + 0.01 * var_x20 * var_x21)); + partialF = ((var_x21) ? (-var_x26 - var_x27 - 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-var_x27 - 1.0000000000287556e-8 * var_x5)) : (-var_x26 + var_x24 * var_x25)); } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt b/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt index 1c9d2cf7..9f05e9c7 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt +++ b/chaste_codegen/data/tests/chaste_reference_models/GRL2Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp_alt @@ -141,7 +141,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + 0.0015034391929775724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287556e-8 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + exp(-6.5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -196,7 +196,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + 0.006737946999085467 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-7 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + exp(-5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -553,17 +553,27 @@ std::shared_ptrCheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x3 = exp(-0.055555555555555552 * var_chaste_interface__membrane__V); - const double var_x5 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); - const double var_x7 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x8 = exp(var_x7); - const double var_x9 = -1 + 0.006737946999085467 * var_x8; - const double var_x10 = 0.10000000000000001 / var_x9; - const double var_x11 = 50 + var_chaste_interface__membrane__V; - const double var_x12 = -0.062015414396037277 * var_x3; + const double var_x4 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x5 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x6 = _lt_0_row[5]; + const double var_x8 = (var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003); + const double var_x9 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x10 = exp(-5 + var_x9); + const double var_x11 = -1 + var_x10; + const double var_x12 = 0.10000000000000001 / var_x11; + const double var_x13 = 50 + var_chaste_interface__membrane__V; + const double var_x14 = -4 * var_x6; + const double var_x15 = -1.0000000000287557e-7 * var_x4; - partialF = ((var_x5) ? (-3.4999533692061595 + var_x12 - 0.049999067384036401 * var_chaste_interface__membrane__V) : (var_x12 + var_x10 * var_x11)); + partialF = ((var_x8) ? (var_x14 + var_x15 - 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (var_x15 - 1.0000000000287557e-7 * var_x5)) : (var_x14 + var_x12 * var_x13)); } else { @@ -615,12 +625,12 @@ std::shared_ptrIndexTable0(var_chaste_interface__membrane__V); - const double var_x7 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x13 = _lt_0_row[2]; - const double var_x14 = exp(-4.5 + var_x7); - const double var_x15 = 1 + var_x14; + const double var_x9 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x16 = _lt_0_row[2]; + const double var_x17 = exp(-4.5 + var_x9); + const double var_x18 = 1 + var_x17; - partialF = -1 / var_x15 - 0.070000000000000007 * var_x13; + partialF = -1 / var_x18 - 0.070000000000000007 * var_x16; } else { @@ -664,17 +674,27 @@ std::shared_ptrCheckIndex0(var_chaste_interface__membrane__V); +// LCOV_EXCL_START + if (_oob_0) + EXCEPTION(DumpState("membrane_voltage outside lookup table range", rY , var_chaste_interface__environment__time)); +// LCOV_EXCL_STOP + const double* const _lt_0_row = Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLGRL2Opt_LookupTables::Instance()->IndexTable0(var_chaste_interface__membrane__V); - const double var_x7 = -0.10000000000000001 * var_chaste_interface__membrane__V; - const double var_x8 = exp(var_x7); - const double var_x16 = exp(0.012500000000000001 * var_chaste_interface__membrane__V); - const double var_x18 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); - const double var_x20 = -1 + 0.0015034391929775724 * var_x8; - const double var_x21 = 0.01 / var_x20; - const double var_x22 = 65 + var_chaste_interface__membrane__V; - const double var_x23 = -0.31919868225786585 * var_x16; + const double var_x4 = 1 / (-1 + exp(1.0000000000287557e-7)); + const double var_x5 = 1 / (-1 + exp(-1.0000000000287557e-7)); + const double var_x9 = -0.10000000000000001 * var_chaste_interface__membrane__V; + const double var_x20 = _lt_0_row[1]; + const double var_x22 = (var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003); + const double var_x23 = exp(-6.5 + var_x9); + const double var_x24 = -1 + var_x23; + const double var_x25 = 0.01 / var_x24; + const double var_x26 = 65 + var_chaste_interface__membrane__V; + const double var_x27 = -0.125 * var_x20; + const double var_x28 = -1.0000000000287556e-8 * var_x4; - partialF = ((var_x18) ? (-0.42499393799526108 + var_x23 - 0.0049999067383819564 * var_chaste_interface__membrane__V) : (var_x23 + var_x21 * var_x22)); + partialF = ((var_x22) ? (var_x27 + var_x28 - 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (var_x28 - 1.0000000000287556e-8 * var_x5)) : (var_x27 + var_x25 * var_x26)); } else { diff --git a/chaste_codegen/data/tests/chaste_reference_models/Normal/test_luo_rudy_1991_with_range_cap_dimensionless.cpp b/chaste_codegen/data/tests/chaste_reference_models/Normal/test_luo_rudy_1991_with_range_cap_dimensionless.cpp index 42cd5824..9d4a2aa1 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Normal/test_luo_rudy_1991_with_range_cap_dimensionless.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Normal/test_luo_rudy_1991_with_range_cap_dimensionless.cpp @@ -141,7 +141,7 @@ class Celltest_luo_rudy_1991_with_range_cap_dimensionlessFromCellMLOpt_LookupTab for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V > -100) && (3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V >= -9.9999999999999995e-8) && (3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V <= 9.9999999999999995e-8)) ? (0.24659696394160646 * (0.28823920000000003 + 0.0022696000000000001 * var_chaste_interface__membrane__V) * exp(-0.040000000000000001 * var_chaste_interface__membrane__V)) : ((var_chaste_interface__membrane__V > -100) ? (0.027983823468093506 * (-1 + 21.758402396197081 * exp(0.040000000000000001 * var_chaste_interface__membrane__V)) * exp(-0.040000000000000001 * var_chaste_interface__membrane__V) / (3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V)) : (1))); + return (((var_chaste_interface__membrane__V > -100) && (3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V >= -9.9999999999999995e-8) && (3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V <= 9.9999999999999995e-8)) ? ((0.28823920000000003 + 0.0022696000000000001 * var_chaste_interface__membrane__V) / exp(1.4000000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V)) : ((var_chaste_interface__membrane__V > -100) ? (0.11348000000000001 * (-1 + exp(3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V)) / ((3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V) * exp(1.4000000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V))) : (1))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -174,7 +174,7 @@ class Celltest_luo_rudy_1991_with_range_cap_dimensionlessFromCellMLOpt_LookupTab for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((4.7130000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V >= -9.9999999999999995e-8) && (4.7130000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V <= 9.9999999999999995e-8)) ? (10.7408 + 0.16 * var_chaste_interface__membrane__V) : (-3.1999999999999997 * (4.7130000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V) / (-1 + 0.00897780373069724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((4.7130000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V >= -9.9999999999999995e-8) && (4.7130000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V <= 9.9999999999999995e-8)) ? (10.7408 + 0.16 * var_chaste_interface__membrane__V) : (-3.1999999999999997 * (4.7130000000000001 + 0.10000000000000001 * var_chaste_interface__membrane__V) / (-1 + exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -509,11 +509,11 @@ std::shared_ptr= -77.000002499999994) && (var_chaste_interface__membrane__V <= -76.999997500000006)) ? (0.24659696394160646 * (0.28823920000000003 + 0.0022696000000000001 * var_chaste_interface__membrane__V) * exp(-0.040000000000000001 * var_chaste_interface__membrane__V)) : ((var_chaste_interface__membrane__V > -100) ? (0.027983823468093506 * (-1 + 21.758402396197081 * exp(0.040000000000000001 * var_chaste_interface__membrane__V)) * exp(-0.040000000000000001 * var_chaste_interface__membrane__V) / (3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V)) : (1))); + return (((var_chaste_interface__membrane__V >= -77.000002499999994) && (var_chaste_interface__membrane__V <= -76.999997500000006)) ? ((0.28823920000000003 + 0.0022696000000000001 * var_chaste_interface__membrane__V) / exp(1.4000000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V)) : ((var_chaste_interface__membrane__V > -100) ? (0.11348000000000001 * (-1 + exp(3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V)) / ((3.0800000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V) * exp(1.4000000000000001 + 0.040000000000000001 * var_chaste_interface__membrane__V))) : (1))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -174,7 +174,7 @@ protected: for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -47.130001) && (var_chaste_interface__membrane__V <= -47.129999000000005)) ? (10.7408 + 0.16 * var_chaste_interface__membrane__V) : (3.1999999999999997 * (-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__V) / (-1 + 0.00897780373069724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -47.130001) && (var_chaste_interface__membrane__V <= -47.129999000000005)) ? (10.7408 + 0.16 * var_chaste_interface__membrane__V) : (3.1999999999999997 * (-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__V) / (-1 + exp(-4.7130000000000001 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -509,11 +509,11 @@ std::shared_ptr D const double var_i_Na_L_m_L_gate__alpha_m_L = _lt_0_row[27]; // per_millisecond const double var_i_Na_L_m_L_gate__beta_m_L = _lt_0_row[28]; // per_millisecond const double d_dt_chaste_interface_var_i_Na_L_m_L_gate__m_L = (-var_chaste_interface__i_Na_L_m_L_gate__m_L + var_i_Na_L_m_L_gate__alpha_m_L / (var_i_Na_L_m_L_gate__alpha_m_L + var_i_Na_L_m_L_gate__beta_m_L)) * (var_i_Na_L_m_L_gate__alpha_m_L + var_i_Na_L_m_L_gate__beta_m_L); // 1 / millisecond - const double var_i_Na_h_gate__alpha_h = ((var_chaste_interface__membrane__V < -40) ? (1.0495108254269646e-6 * exp(0.14705882352941177 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); // per_millisecond - const double var_i_Na_h_gate__beta_h = ((var_chaste_interface__membrane__V < -40) ? (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V - 0.34999999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__V - 0.079000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time))) : (7.6923076923076916 / (1 + 0.38275493141491301 * exp(0.0900900900900901 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.0900900900900901 * var_chaste_interface__membrane__V)))); // per_millisecond + const double var_i_Na_h_gate__alpha_h = ((var_chaste_interface__membrane__V < -40) ? (0.13500000000000001 * exp(-11.764705882352942 + 0.14705882352941177 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); // per_millisecond + const double var_i_Na_h_gate__beta_h = ((var_chaste_interface__membrane__V < -40) ? (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V - 0.34999999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__V - 0.079000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time))) : (7.6923076923076916 / (1 + exp(-0.96036036036036043 + 0.0900900900900901 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.0900900900900901 * var_chaste_interface__membrane__V)))); // per_millisecond const double d_dt_chaste_interface_var_i_Na_h_gate__h = (var_i_Na_h_gate__alpha_h + var_i_Na_h_gate__beta_h) * (-var_chaste_interface__i_Na_h_gate__h + 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(mParameters[9], var_chaste_interface__environment__time) + (1 - 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(mParameters[9], var_chaste_interface__environment__time)) * var_i_Na_h_gate__alpha_h / (var_i_Na_h_gate__alpha_h + var_i_Na_h_gate__beta_h)); // 1 / millisecond - const double var_i_Na_j_gate__alpha_j = ((var_chaste_interface__membrane__V < -40) ? ((37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V - 0.24440000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)) - 3.4740000000000003e-5 * exp(0.043909999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + 50262745825.953949 * exp(0.311 * var_chaste_interface__membrane__V - 0.311 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)))) : (0)); // per_millisecond - const double var_i_Na_j_gate__beta_j = ((var_chaste_interface__membrane__V < -40) ? (0.1212 * exp(0.01052 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.01052 * var_chaste_interface__membrane__V) / (1 + 0.0039608683399042569 * exp(0.13780000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.13780000000000001 * var_chaste_interface__membrane__V))) : (0.29999999999999999 * exp(2.5349999999999999e-7 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + 0.040762203978366211 * exp(0.10000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.10000000000000001 * var_chaste_interface__membrane__V)))); // per_millisecond + const double var_i_Na_j_gate__alpha_j = ((var_chaste_interface__membrane__V < -40) ? ((37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V - 0.24440000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)) - 3.4740000000000003e-5 * exp(0.043909999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V - 0.311 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)))) : (0)); // per_millisecond + const double var_i_Na_j_gate__beta_j = ((var_chaste_interface__membrane__V < -40) ? (0.1212 * exp(0.01052 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.01052 * var_chaste_interface__membrane__V) / (1 + exp(-5.5312920000000005 + 0.13780000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.13780000000000001 * var_chaste_interface__membrane__V))) : (0.29999999999999999 * exp(2.5349999999999999e-7 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + exp(-3.2000000000000002 + 0.10000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.10000000000000001 * var_chaste_interface__membrane__V)))); // per_millisecond const double d_dt_chaste_interface_var_i_Na_j_gate__j = (var_i_Na_j_gate__alpha_j + var_i_Na_j_gate__beta_j) * (-var_chaste_interface__i_Na_j_gate__j + 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(mParameters[9], var_chaste_interface__environment__time) + (1 - 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(mParameters[9], var_chaste_interface__environment__time)) * var_i_Na_j_gate__alpha_j / (var_i_Na_j_gate__alpha_j + var_i_Na_j_gate__beta_j)); // 1 / millisecond const double var_i_Na_m_gate__alpha_m = _lt_0_row[27]; // per_millisecond const double var_i_Na_m_gate__beta_m = _lt_0_row[28]; // per_millisecond diff --git a/chaste_codegen/data/tests/chaste_reference_models/Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp b/chaste_codegen/data/tests/chaste_reference_models/Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp index 85235b92..8203d215 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Opt/hodgkin_huxley_squid_axon_model_1952_modified.cpp @@ -141,7 +141,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLOpt_LookupTable for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + 0.0015034391929775724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287556e-8 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + exp(-6.5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -196,7 +196,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLOpt_LookupTable for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + 0.006737946999085467 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-7 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + exp(-5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); diff --git a/chaste_codegen/data/tests/chaste_reference_models/Opt/non_dynamic_aslanidi_Purkinje_model_2009.cpp b/chaste_codegen/data/tests/chaste_reference_models/Opt/non_dynamic_aslanidi_Purkinje_model_2009.cpp index 0514c0c1..33eba244 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/Opt/non_dynamic_aslanidi_Purkinje_model_2009.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/Opt/non_dynamic_aslanidi_Purkinje_model_2009.cpp @@ -864,11 +864,11 @@ std::shared_ptr Cell const double var_i_Na_L_m_L_gate__alpha_m_L = _lt_0_row[27]; // per_millisecond const double var_i_Na_L_m_L_gate__beta_m_L = _lt_0_row[28]; // per_millisecond const double d_dt_chaste_interface_var_i_Na_L_m_L_gate__m_L = (-var_chaste_interface__i_Na_L_m_L_gate__m_L + var_i_Na_L_m_L_gate__alpha_m_L / (var_i_Na_L_m_L_gate__alpha_m_L + var_i_Na_L_m_L_gate__beta_m_L)) * (var_i_Na_L_m_L_gate__alpha_m_L + var_i_Na_L_m_L_gate__beta_m_L); // 1 / millisecond - const double var_i_Na_h_gate__alpha_h = ((var_chaste_interface__membrane__V < -40) ? (1.0495108254269646e-6 * exp(0.14705882352941177 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); // per_millisecond - const double var_i_Na_h_gate__beta_h = ((var_chaste_interface__membrane__V < -40) ? (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V - 0.34999999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__V - 0.079000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time))) : (7.6923076923076916 / (1 + 0.38275493141491301 * exp(0.0900900900900901 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.0900900900900901 * var_chaste_interface__membrane__V)))); // per_millisecond + const double var_i_Na_h_gate__alpha_h = ((var_chaste_interface__membrane__V < -40) ? (0.13500000000000001 * exp(-11.764705882352942 + 0.14705882352941177 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.14705882352941177 * var_chaste_interface__membrane__V)) : (0)); // per_millisecond + const double var_i_Na_h_gate__beta_h = ((var_chaste_interface__membrane__V < -40) ? (310000 * exp(0.34999999999999998 * var_chaste_interface__membrane__V - 0.34999999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)) + 3.5600000000000001 * exp(0.079000000000000001 * var_chaste_interface__membrane__V - 0.079000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time))) : (7.6923076923076916 / (1 + exp(-0.96036036036036043 + 0.0900900900900901 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.0900900900900901 * var_chaste_interface__membrane__V)))); // per_millisecond const double d_dt_chaste_interface_var_i_Na_h_gate__h = (var_i_Na_h_gate__alpha_h + var_i_Na_h_gate__beta_h) * (-var_chaste_interface__i_Na_h_gate__h + 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(mParameters[9], var_chaste_interface__environment__time) + (1 - 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(mParameters[9], var_chaste_interface__environment__time)) * var_i_Na_h_gate__alpha_h / (var_i_Na_h_gate__alpha_h + var_i_Na_h_gate__beta_h)); // 1 / millisecond - const double var_i_Na_j_gate__alpha_j = ((var_chaste_interface__membrane__V < -40) ? ((37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V - 0.24440000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)) - 3.4740000000000003e-5 * exp(0.043909999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + 50262745825.953949 * exp(0.311 * var_chaste_interface__membrane__V - 0.311 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)))) : (0)); // per_millisecond - const double var_i_Na_j_gate__beta_j = ((var_chaste_interface__membrane__V < -40) ? (0.1212 * exp(0.01052 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.01052 * var_chaste_interface__membrane__V) / (1 + 0.0039608683399042569 * exp(0.13780000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.13780000000000001 * var_chaste_interface__membrane__V))) : (0.29999999999999999 * exp(2.5349999999999999e-7 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + 0.040762203978366211 * exp(0.10000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.10000000000000001 * var_chaste_interface__membrane__V)))); // per_millisecond + const double var_i_Na_j_gate__alpha_j = ((var_chaste_interface__membrane__V < -40) ? ((37.780000000000001 + var_chaste_interface__membrane__V) * (-127140 * exp(0.24440000000000001 * var_chaste_interface__membrane__V - 0.24440000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)) - 3.4740000000000003e-5 * exp(0.043909999999999998 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.043909999999999998 * var_chaste_interface__membrane__V)) / (1 + exp(24.640530000000002 + 0.311 * var_chaste_interface__membrane__V - 0.311 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time)))) : (0)); // per_millisecond + const double var_i_Na_j_gate__beta_j = ((var_chaste_interface__membrane__V < -40) ? (0.1212 * exp(0.01052 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.01052 * var_chaste_interface__membrane__V) / (1 + exp(-5.5312920000000005 + 0.13780000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.13780000000000001 * var_chaste_interface__membrane__V))) : (0.29999999999999999 * exp(2.5349999999999999e-7 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 2.5349999999999999e-7 * var_chaste_interface__membrane__V) / (1 + exp(-3.2000000000000002 + 0.10000000000000001 * mp_membrane_fast_sodium_current_shift_inactivation_modifier->Calc(mParameters[10], var_chaste_interface__environment__time) - 0.10000000000000001 * var_chaste_interface__membrane__V)))); // per_millisecond const double d_dt_chaste_interface_var_i_Na_j_gate__j = (var_i_Na_j_gate__alpha_j + var_i_Na_j_gate__beta_j) * (-var_chaste_interface__i_Na_j_gate__j + 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(mParameters[9], var_chaste_interface__environment__time) + (1 - 0.01 * mp_membrane_fast_sodium_current_reduced_inactivation_modifier->Calc(mParameters[9], var_chaste_interface__environment__time)) * var_i_Na_j_gate__alpha_j / (var_i_Na_j_gate__alpha_j + var_i_Na_j_gate__beta_j)); // 1 / millisecond const double var_i_Na_m_gate__alpha_m = _lt_0_row[27]; // per_millisecond const double var_i_Na_m_gate__beta_m = _lt_0_row[28]; // per_millisecond diff --git a/chaste_codegen/data/tests/chaste_reference_models/RLopt/hodgkin_huxley_squid_axon_model_1952_modified.cpp b/chaste_codegen/data/tests/chaste_reference_models/RLopt/hodgkin_huxley_squid_axon_model_1952_modified.cpp index 2e0c6231..70687642 100644 --- a/chaste_codegen/data/tests/chaste_reference_models/RLopt/hodgkin_huxley_squid_axon_model_1952_modified.cpp +++ b/chaste_codegen/data/tests/chaste_reference_models/RLopt/hodgkin_huxley_squid_axon_model_1952_modified.cpp @@ -141,7 +141,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLRushLarsenOpt_L for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (0.42499393799526108 + 0.0049999067383819564 * var_chaste_interface__membrane__V) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + 0.0015034391929775724 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287556e-8 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + exp(-6.5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -196,7 +196,7 @@ class Cellhodgkin_huxley_squid_axon_model_1952_modifiedFromCellMLRushLarsenOpt_L for (unsigned i=0 ; i<_table_size_0; i++) { auto f = [](double var_chaste_interface__membrane__V) { - return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (3.4999533692061595 + 0.049999067384036401 * var_chaste_interface__membrane__V) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + 0.006737946999085467 * exp(-0.10000000000000001 * var_chaste_interface__membrane__V)))); + return (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-7 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + exp(-5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); }; const double var_chaste_interface__membrane__V = mTableMins[0] + i*mTableSteps[0]; double val = f(var_chaste_interface__membrane__V); @@ -342,11 +342,11 @@ std::shared_ptr= -65.000000999999997) && (var_chaste_interface__membrane__V <= -64.999999000000003)) ? (1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (65.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287556e-8 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287556e-8 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.01 * (65 + var_chaste_interface__membrane__V) / (-1 + exp(-6.5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); // per_millisecond + const double var_potassium_channel_n_gate__alpha_n = _lt_0_row[0]; // per_millisecond const double var_potassium_channel_n_gate__beta_n = 0.125 * _lt_0_row[1]; // per_millisecond const double var_sodium_channel_h_gate__alpha_h = 0.070000000000000007 * _lt_0_row[2]; // per_millisecond const double var_sodium_channel_h_gate__beta_h = 1 / (_lt_0_row[3]); // per_millisecond - const double var_sodium_channel_m_gate__alpha_m = (((var_chaste_interface__membrane__V >= -50.000000999999997) && (var_chaste_interface__membrane__V <= -49.999999000000003)) ? (1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) + 499999.99998562218 * (50.000000999999997 + var_chaste_interface__membrane__V) * (-1.0000000000287557e-7 / (-1 + exp(1.0000000000287557e-7)) - 1.0000000000287557e-7 / (-1 + exp(-1.0000000000287557e-7)))) : (-0.10000000000000001 * (50 + var_chaste_interface__membrane__V) / (-1 + exp(-5 - 0.10000000000000001 * var_chaste_interface__membrane__V)))); // per_millisecond + const double var_sodium_channel_m_gate__alpha_m = _lt_0_row[4]; // per_millisecond const double var_sodium_channel_m_gate__beta_m = 4 * _lt_0_row[5]; // per_millisecond if (mSetVoltageDerivativeToZero) diff --git a/chaste_codegen/data/tests/test_jacobian_equations_1.txt b/chaste_codegen/data/tests/test_jacobian_equations_1.txt index 8aadffb6..fbcb8550 100644 --- a/chaste_codegen/data/tests/test_jacobian_equations_1.txt +++ b/chaste_codegen/data/tests/test_jacobian_equations_1.txt @@ -1 +1 @@ -[Eq(x0, 120.0*_sodium_channel_m_gate$m**3.0), Eq(x1, _membrane$V - 40.0), Eq(x2, (_membrane$V >= -50.000001) & (_membrane$V <= -49.999999)), Eq(x4, exp(-0.1*_membrane$V)), Eq(x5, -1.0 + 0.0067379469990854671*exp(-0.1*_membrane$V)), Eq(x6, 0.10000000000000001/(-1.0 + 0.0067379469990854671*exp(-0.1*_membrane$V))), Eq(x7, _membrane$V + 50.0), Eq(x8, exp_(-0.055555555555555556*_membrane$V - 4.1666666666666667)), Eq(x9, exp_(-0.05*_membrane$V - 3.75)), Eq(x10, exp_(-0.1*_membrane$V - 4.5)), Eq(x11, exp_(-0.1*_membrane$V - 4.5) + 1.0), Eq(x12, (_membrane$V >= -65.000001) & (_membrane$V <= -64.999999)), Eq(x13, -1.0 + 0.0015034391929775724*exp(-0.1*_membrane$V)), Eq(x14, 0.01/(-1.0 + 0.0015034391929775724*exp(-0.1*_membrane$V))), Eq(x15, _membrane$V + 65.0), Eq(x16, exp_(0.0125*_membrane$V + 0.9375))] \ No newline at end of file +[Eq(x0, 120.0*_sodium_channel_m_gate$m**3.0), Eq(x1, _membrane$V - 40.0), Eq(x2, 1/(exp_(1.0000000000287557e-7) - 1.0)), Eq(x3, 1/(exp_(-1.0000000000287557e-7) - 1.0)), Eq(x4, (_membrane$V >= -50.000001) & (_membrane$V <= -49.999999)), Eq(x6, exp_(-0.1*_membrane$V - 5.0)), Eq(x7, exp_(-0.1*_membrane$V - 5.0) - 1.0), Eq(x8, 0.10000000000000001/(exp_(-0.1*_membrane$V - 5.0) - 1.0)), Eq(x9, _membrane$V + 50.0), Eq(x10, exp_(-0.055555555555555556*_membrane$V - 4.1666666666666667)), Eq(x11, 1.0000000000287557e-7/(exp_(1.0000000000287557e-7) - 1.0)), Eq(x12, exp_(-0.05*_membrane$V - 3.75)), Eq(x13, exp_(-0.1*_membrane$V - 4.5)), Eq(x14, exp_(-0.1*_membrane$V - 4.5) + 1.0), Eq(x15, (_membrane$V >= -65.000001) & (_membrane$V <= -64.999999)), Eq(x16, exp_(-0.1*_membrane$V - 6.5)), Eq(x17, exp_(-0.1*_membrane$V - 6.5) - 1.0), Eq(x18, 0.01/(exp_(-0.1*_membrane$V - 6.5) - 1.0)), Eq(x19, _membrane$V + 65.0), Eq(x20, exp_(0.0125*_membrane$V + 0.9375)), Eq(x21, 1.0000000000287557e-8/(exp_(1.0000000000287557e-7) - 1.0))] \ No newline at end of file diff --git a/chaste_codegen/data/tests/test_jacobian_equations_2.txt b/chaste_codegen/data/tests/test_jacobian_equations_2.txt index 231ce324..3096c71c 100644 --- a/chaste_codegen/data/tests/test_jacobian_equations_2.txt +++ b/chaste_codegen/data/tests/test_jacobian_equations_2.txt @@ -1 +1 @@ -[OrderedDict([('lhs', 'x0'), ('rhs', 'x0120.0*_sodium_channel_m_gate$m**3.0'), ('sympy_lhs', x0)]), OrderedDict([('lhs', 'x1'), ('rhs', 'x1_membrane$V - 40.0'), ('sympy_lhs', x1)]), OrderedDict([('lhs', 'x2'), ('rhs', 'x2(_membrane$V >= -50.000001) & (_membrane$V <= -49.999999)'), ('sympy_lhs', x2)]), OrderedDict([('lhs', 'x4'), ('rhs', 'x4exp(-0.1*_membrane$V)'), ('sympy_lhs', x4)]), OrderedDict([('lhs', 'x5'), ('rhs', 'x5-1.0 + 0.0067379469990854671*exp(-0.1*_membrane$V)'), ('sympy_lhs', x5)]), OrderedDict([('lhs', 'x6'), ('rhs', 'x60.10000000000000001/(-1.0 + 0.0067379469990854671*exp(-0.1*_membrane$V))'), ('sympy_lhs', x6)]), OrderedDict([('lhs', 'x7'), ('rhs', 'x7_membrane$V + 50.0'), ('sympy_lhs', x7)]), OrderedDict([('lhs', 'x8'), ('rhs', 'x8exp_(-0.055555555555555556*_membrane$V - 4.1666666666666667)'), ('sympy_lhs', x8)]), OrderedDict([('lhs', 'x9'), ('rhs', 'x9exp_(-0.05*_membrane$V - 3.75)'), ('sympy_lhs', x9)]), OrderedDict([('lhs', 'x10'), ('rhs', 'x10exp_(-0.1*_membrane$V - 4.5)'), ('sympy_lhs', x10)]), OrderedDict([('lhs', 'x11'), ('rhs', 'x11exp_(-0.1*_membrane$V - 4.5) + 1.0'), ('sympy_lhs', x11)]), OrderedDict([('lhs', 'x12'), ('rhs', 'x12(_membrane$V >= -65.000001) & (_membrane$V <= -64.999999)'), ('sympy_lhs', x12)]), OrderedDict([('lhs', 'x13'), ('rhs', 'x13-1.0 + 0.0015034391929775724*exp(-0.1*_membrane$V)'), ('sympy_lhs', x13)]), OrderedDict([('lhs', 'x14'), ('rhs', 'x140.01/(-1.0 + 0.0015034391929775724*exp(-0.1*_membrane$V))'), ('sympy_lhs', x14)]), OrderedDict([('lhs', 'x15'), ('rhs', 'x15_membrane$V + 65.0'), ('sympy_lhs', x15)]), OrderedDict([('lhs', 'x16'), ('rhs', 'x16exp_(0.0125*_membrane$V + 0.9375)'), ('sympy_lhs', x16)])] \ No newline at end of file +[OrderedDict([('lhs', 'x0'), ('rhs', 'x0120.0*_sodium_channel_m_gate$m**3.0'), ('sympy_lhs', x0)]), OrderedDict([('lhs', 'x1'), ('rhs', 'x1_membrane$V - 40.0'), ('sympy_lhs', x1)]), OrderedDict([('lhs', 'x2'), ('rhs', 'x21/(exp_(1.0000000000287557e-7) - 1.0)'), ('sympy_lhs', x2)]), OrderedDict([('lhs', 'x4'), ('rhs', 'x4(_membrane$V >= -50.000001) & (_membrane$V <= -49.999999)'), ('sympy_lhs', x4)]), OrderedDict([('lhs', 'x6'), ('rhs', 'x6exp_(-0.1*_membrane$V - 5.0)'), ('sympy_lhs', x6)]), OrderedDict([('lhs', 'x7'), ('rhs', 'x7exp_(-0.1*_membrane$V - 5.0) - 1.0'), ('sympy_lhs', x7)]), OrderedDict([('lhs', 'x8'), ('rhs', 'x80.10000000000000001/(exp_(-0.1*_membrane$V - 5.0) - 1.0)'), ('sympy_lhs', x8)]), OrderedDict([('lhs', 'x9'), ('rhs', 'x9_membrane$V + 50.0'), ('sympy_lhs', x9)]), OrderedDict([('lhs', 'x10'), ('rhs', 'x10exp_(-0.055555555555555556*_membrane$V - 4.1666666666666667)'), ('sympy_lhs', x10)]), OrderedDict([('lhs', 'x11'), ('rhs', 'x111.0000000000287557e-7/(exp_(1.0000000000287557e-7) - 1.0)'), ('sympy_lhs', x11)]), OrderedDict([('lhs', 'x12'), ('rhs', 'x12exp_(-0.05*_membrane$V - 3.75)'), ('sympy_lhs', x12)]), OrderedDict([('lhs', 'x13'), ('rhs', 'x13exp_(-0.1*_membrane$V - 4.5)'), ('sympy_lhs', x13)]), OrderedDict([('lhs', 'x14'), ('rhs', 'x14exp_(-0.1*_membrane$V - 4.5) + 1.0'), ('sympy_lhs', x14)]), OrderedDict([('lhs', 'x15'), ('rhs', 'x15(_membrane$V >= -65.000001) & (_membrane$V <= -64.999999)'), ('sympy_lhs', x15)]), OrderedDict([('lhs', 'x16'), ('rhs', 'x16exp_(-0.1*_membrane$V - 6.5)'), ('sympy_lhs', x16)]), OrderedDict([('lhs', 'x17'), ('rhs', 'x17exp_(-0.1*_membrane$V - 6.5) - 1.0'), ('sympy_lhs', x17)]), OrderedDict([('lhs', 'x18'), ('rhs', 'x180.01/(exp_(-0.1*_membrane$V - 6.5) - 1.0)'), ('sympy_lhs', x18)]), OrderedDict([('lhs', 'x19'), ('rhs', 'x19_membrane$V + 65.0'), ('sympy_lhs', x19)]), OrderedDict([('lhs', 'x20'), ('rhs', 'x20exp_(0.0125*_membrane$V + 0.9375)'), ('sympy_lhs', x20)]), OrderedDict([('lhs', 'x21'), ('rhs', 'x211.0000000000287557e-8/(exp_(1.0000000000287557e-7) - 1.0)'), ('sympy_lhs', x21)])] \ No newline at end of file diff --git a/chaste_codegen/data/tests/test_jacobian_matrix_1.txt b/chaste_codegen/data/tests/test_jacobian_matrix_1.txt index 03d817a2..85b70fba 100644 --- a/chaste_codegen/data/tests/test_jacobian_matrix_1.txt +++ b/chaste_codegen/data/tests/test_jacobian_matrix_1.txt @@ -1 +1 @@ -Matrix([[-x0*_sodium_channel_h_gate$h - 36.0*_potassium_channel_n_gate$n**4.0 - 0.29999999999999999, -360.0*x1*_sodium_channel_m_gate$m**2.0*_sodium_channel_h_gate$h, -x0*x1, -144.0*_potassium_channel_n_gate$n**3.0*(_membrane$V + 87.0)], [0.22222222222222222*x8*_sodium_channel_m_gate$m + (1.0 - _sodium_channel_m_gate$m)*Piecewise((0.049999067384036404, x2), (-6.7379469990854675e-5*x4*x7/x5**2 - x6, True)), -4.0*x8 - Piecewise((0.049999067384036404*_membrane$V + 3.4999533692061596, x2), (-x6*x7, True)), 0, 0], [-0.1*x10*_sodium_channel_h_gate$h/x11**2 - 0.05*x9*(0.070000000000000007 - 0.070000000000000007*_sodium_channel_h_gate$h), 0, -0.070000000000000007*x9 - 1.0/x11, 0], [-0.0015625*x16*_potassium_channel_n_gate$n + (1.0 - _potassium_channel_n_gate$n)*Piecewise((0.0049999067383819564, x12), (-x14 - 1.5034391929775725e-6*x15*x4/x13**2, True)), 0, 0, -0.125*x16 - Piecewise((0.0049999067383819564*_membrane$V + 0.4249939379952611, x12), (-x14*x15, True))]]) \ No newline at end of file +Matrix([[-x0*_sodium_channel_h_gate$h - 36.0*_potassium_channel_n_gate$n**4.0 - 0.29999999999999999, -360.0*x1*_sodium_channel_m_gate$m**2.0*_sodium_channel_h_gate$h, -x0*x1, -144.0*_potassium_channel_n_gate$n**3.0*(_membrane$V + 87.0)], [0.22222222222222222*x10*_sodium_channel_m_gate$m + (1.0 - _sodium_channel_m_gate$m)*Piecewise((-0.050000000000000003*x2 - 0.050000000000000003*x3, x4), (-0.010000000000000001*x6*x9/x7**2 - x8, True)), -4.0*x10 - Piecewise((x11 + 499999.99998562217*(-x11 - 1.0000000000287557e-7*x3)*(_membrane$V + 50.000001), x4), (-x8*x9, True)), 0, 0], [-0.05*x12*(0.070000000000000007 - 0.070000000000000007*_sodium_channel_h_gate$h) - 0.1*x13*_sodium_channel_h_gate$h/x14**2, 0, -0.070000000000000007*x12 - 1.0/x14, 0], [-0.0015625*x20*_potassium_channel_n_gate$n + (1.0 - _potassium_channel_n_gate$n)*Piecewise((-0.0050000000000000001*x2 - 0.0050000000000000001*x3, x15), (-0.001*x16*x19/x17**2 - x18, True)), 0, 0, -0.125*x20 - Piecewise((x21 + 499999.99998562217*(-x21 - 1.0000000000287557e-8*x3)*(_membrane$V + 65.000001), x15), (-x18*x19, True))]]) \ No newline at end of file diff --git a/chaste_codegen/data/tests/test_jacobian_matrix_2.txt b/chaste_codegen/data/tests/test_jacobian_matrix_2.txt index 0ff44ece..c704b9dd 100644 --- a/chaste_codegen/data/tests/test_jacobian_matrix_2.txt +++ b/chaste_codegen/data/tests/test_jacobian_matrix_2.txt @@ -1 +1 @@ -[OrderedDict([('i', 0), ('j', 0), ('entry', '-0.29999999999999999 - 36 * pow(potassium_channel_n_gate$n, 4) - x0 * sodium_channel_h_gate$h')]), OrderedDict([('i', 1), ('j', 0), ('entry', '(1 - sodium_channel_m_gate$m) * ((x2) ? (0.049999067384036401) : (-x6 - 6.7379469990854672e-5 * x4 * x7 / pow(x5, 2))) + 0.22222222222222221 * x8 * sodium_channel_m_gate$m')]), OrderedDict([('i', 2), ('j', 0), ('entry', '-0.050000000000000003 * x9 * (0.070000000000000007 - 0.070000000000000007 * sodium_channel_h_gate$h) - 0.10000000000000001 * x10 * sodium_channel_h_gate$h / pow(x11, 2)')]), OrderedDict([('i', 3), ('j', 0), ('entry', '(1 - potassium_channel_n_gate$n) * ((x12) ? (0.0049999067383819564) : (-x14 - 1.5034391929775725e-6 * x15 * x4 / pow(x13, 2))) - 0.0015625000000000001 * x16 * potassium_channel_n_gate$n')]), OrderedDict([('i', 0), ('j', 1), ('entry', '-360 * x1 * pow(sodium_channel_m_gate$m, 2) * sodium_channel_h_gate$h')]), OrderedDict([('i', 1), ('j', 1), ('entry', '-((x2) ? (3.4999533692061595 + 0.049999067384036401 * membrane$V) : (-x6 * x7)) - 4 * x8')]), OrderedDict([('i', 0), ('j', 2), ('entry', '-x0 * x1')]), OrderedDict([('i', 2), ('j', 2), ('entry', '-1 / x11 - 0.070000000000000007 * x9')]), OrderedDict([('i', 0), ('j', 3), ('entry', '-144 * pow(potassium_channel_n_gate$n, 3) * (87 + membrane$V)')]), OrderedDict([('i', 3), ('j', 3), ('entry', '-((x12) ? (0.42499393799526108 + 0.0049999067383819564 * membrane$V) : (-x14 * x15)) - 0.125 * x16')])] \ No newline at end of file +[OrderedDict([('i', 0), ('j', 0), ('entry', '-0.29999999999999999 - 36 * pow(potassium_channel_n_gate$n, 4) - x0 * sodium_channel_h_gate$h')]), OrderedDict([('i', 1), ('j', 0), ('entry', '(1 - sodium_channel_m_gate$m) * ((x4) ? (-0.050000000000000003 * x2 - 0.050000000000000003 * x3) : (-x8 - 0.01 * x6 * x9 / pow(x7, 2))) + 0.22222222222222221 * x10 * sodium_channel_m_gate$m')]), OrderedDict([('i', 2), ('j', 0), ('entry', '-0.050000000000000003 * x12 * (0.070000000000000007 - 0.070000000000000007 * sodium_channel_h_gate$h) - 0.10000000000000001 * x13 * sodium_channel_h_gate$h / pow(x14, 2)')]), OrderedDict([('i', 3), ('j', 0), ('entry', '(1 - potassium_channel_n_gate$n) * ((x15) ? (-0.0050000000000000001 * x2 - 0.0050000000000000001 * x3) : (-x18 - 0.001 * x16 * x19 / pow(x17, 2))) - 0.0015625000000000001 * x20 * potassium_channel_n_gate$n')]), OrderedDict([('i', 0), ('j', 1), ('entry', '-360 * x1 * pow(sodium_channel_m_gate$m, 2) * sodium_channel_h_gate$h')]), OrderedDict([('i', 1), ('j', 1), ('entry', '-((x4) ? (x11 + 499999.99998562218 * (50.000000999999997 + membrane$V) * (-x11 - 1.0000000000287557e-7 * x3)) : (-x8 * x9)) - 4 * x10')]), OrderedDict([('i', 0), ('j', 2), ('entry', '-x0 * x1')]), OrderedDict([('i', 2), ('j', 2), ('entry', '-1 / x14 - 0.070000000000000007 * x12')]), OrderedDict([('i', 0), ('j', 3), ('entry', '-144 * pow(potassium_channel_n_gate$n, 3) * (87 + membrane$V)')]), OrderedDict([('i', 3), ('j', 3), ('entry', '-((x15) ? (x21 + 499999.99998562218 * (65.000000999999997 + membrane$V) * (-x21 - 1.0000000000287556e-8 * x3)) : (-x18 * x19)) - 0.125 * x20')])] \ No newline at end of file diff --git a/chaste_codegen/data/tests/test_partial_eval_derivatives_eqs.txt b/chaste_codegen/data/tests/test_partial_eval_derivatives_eqs.txt index 1c6d5e30..38fcbdad 100644 --- a/chaste_codegen/data/tests/test_partial_eval_derivatives_eqs.txt +++ b/chaste_codegen/data/tests/test_partial_eval_derivatives_eqs.txt @@ -1 +1 @@ -[Eq(Derivative(_potassium_channel_n_gate$n, _environment$time), -0.125*_potassium_channel_n_gate$n*exp_(0.0125*_membrane$V + 0.9375) + (1.0 - _potassium_channel_n_gate$n)*Piecewise((0.0049999067383819564*_membrane$V + 0.4249939379952611, (_membrane$V >= -65.000001) & (_membrane$V <= -64.999999)), (-0.01*(_membrane$V + 65.0)/(-1.0 + 0.0015034391929775724*exp(-0.1*_membrane$V)), True))), Eq(Derivative(_sodium_channel_h_gate$h, _environment$time), -1.0*_sodium_channel_h_gate$h/(exp_(-0.1*_membrane$V - 4.5) + 1.0) + 0.070000000000000007*(1.0 - _sodium_channel_h_gate$h)*exp_(-0.05*_membrane$V - 3.75)), Eq(Derivative(_sodium_channel_m_gate$m, _environment$time), -4.0*_sodium_channel_m_gate$m*exp_(-0.055555555555555556*_membrane$V - 4.1666666666666667) + (1.0 - _sodium_channel_m_gate$m)*Piecewise((0.049999067384036404*_membrane$V + 3.4999533692061596, (_membrane$V >= -50.000001) & (_membrane$V <= -49.999999)), (-0.10000000000000001*(_membrane$V + 50.0)/(-1.0 + 0.0067379469990854671*exp(-0.1*_membrane$V)), True))), Eq(Derivative(_membrane$V, _environment$time), (-_leakage_current$g_L*(_membrane$V + 64.387) - _potassium_channel_n_gate$n**4*_potassium_channel$g_K*(_membrane$V + 87.0) - _sodium_channel_m_gate$m**3*_sodium_channel$g_Na*_sodium_channel_h_gate$h*(_membrane$V - 40.0) - GetIntracellularAreaStimulus(_environment$time))/_membrane$Cm)] \ No newline at end of file +[Eq(Derivative(_potassium_channel_n_gate$n, _environment$time), -0.125*_potassium_channel_n_gate$n*exp_(0.0125*_membrane$V + 0.9375) + (1.0 - _potassium_channel_n_gate$n)*Piecewise((499999.99998562217*(_membrane$V + 65.000001)*(-1.0000000000287557e-8/(exp_(1.0000000000287557e-7) - 1.0) - 1.0000000000287557e-8/(exp_(-1.0000000000287557e-7) - 1.0)) + 1.0000000000287557e-8/(exp_(1.0000000000287557e-7) - 1.0), (_membrane$V >= -65.000001) & (_membrane$V <= -64.999999)), (-0.01*(_membrane$V + 65.0)/(exp_(-0.1*_membrane$V - 6.5) - 1.0), True))), Eq(Derivative(_sodium_channel_h_gate$h, _environment$time), -1.0*_sodium_channel_h_gate$h/(exp_(-0.1*_membrane$V - 4.5) + 1.0) + 0.070000000000000007*(1.0 - _sodium_channel_h_gate$h)*exp_(-0.05*_membrane$V - 3.75)), Eq(Derivative(_sodium_channel_m_gate$m, _environment$time), -4.0*_sodium_channel_m_gate$m*exp_(-0.055555555555555556*_membrane$V - 4.1666666666666667) + (1.0 - _sodium_channel_m_gate$m)*Piecewise((499999.99998562217*(_membrane$V + 50.000001)*(-1.0000000000287557e-7/(exp_(1.0000000000287557e-7) - 1.0) - 1.0000000000287557e-7/(exp_(-1.0000000000287557e-7) - 1.0)) + 1.0000000000287557e-7/(exp_(1.0000000000287557e-7) - 1.0), (_membrane$V >= -50.000001) & (_membrane$V <= -49.999999)), (-0.10000000000000001*(_membrane$V + 50.0)/(exp_(-0.1*_membrane$V - 5.0) - 1.0), True))), Eq(Derivative(_membrane$V, _environment$time), (-_leakage_current$g_L*(_membrane$V + 64.387) - _potassium_channel_n_gate$n**4*_potassium_channel$g_K*(_membrane$V + 87.0) - _sodium_channel_m_gate$m**3*_sodium_channel$g_Na*_sodium_channel_h_gate$h*(_membrane$V - 40.0) - GetIntracellularAreaStimulus(_environment$time))/_membrane$Cm)] \ No newline at end of file diff --git a/chaste_codegen/tests/test_jacobian.py b/chaste_codegen/tests/test_jacobian.py index 3e466e0f..b82cb8ab 100644 --- a/chaste_codegen/tests/test_jacobian.py +++ b/chaste_codegen/tests/test_jacobian.py @@ -40,7 +40,7 @@ def test_get_jacobian(jacobian): expected = open(os.path.join(TESTS_FOLDER, 'test_jacobian_equations_1.txt'), 'r').read() # exclude x5 due to - sign difference between sympy 1.9 and 1.10 eqs = [sp.Eq(*eq) for eq in jacobian_equations] - required = [e.lhs for e in eqs if not str(e.lhs).endswith('x3')] + required = [e.lhs for e in eqs if not str(e.lhs).endswith('x5')] part_eval_jacobian_equations = partial_eval(eqs, required, keep_multiple_usages=False) assert str(part_eval_jacobian_equations) == expected, str(jacobian_equations) diff --git a/chaste_codegen/version.txt b/chaste_codegen/version.txt index e3e18070..7e310bae 100644 --- a/chaste_codegen/version.txt +++ b/chaste_codegen/version.txt @@ -1 +1 @@ -0.9.8 +0.9.9