47 "Fox 2002 cell model.");
58 pSession->LoadParameter(
"chi",
m_chi);
59 pSession->LoadParameter(
"sigmai",
m_sigmai);
86 for (
unsigned int i = 0; i <
m_nq; ++i)
91 NekDouble var_chaste_interface__membrane__V = inarray[0][i];
93 NekDouble var_chaste_interface__fast_sodium_current_m_gate__m = inarray[1][i];
95 NekDouble var_chaste_interface__fast_sodium_current_h_gate__h = inarray[2][i];
97 NekDouble var_chaste_interface__fast_sodium_current_j_gate__j = inarray[3][i];
99 NekDouble var_chaste_interface__rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__X_kr = inarray[4][i];
101 NekDouble var_chaste_interface__slow_activating_delayed_rectifiyer_K_current_X_ks_gate__X_ks = inarray[5][i];
103 NekDouble var_chaste_interface__transient_outward_potassium_current_X_to_gate__X_to = inarray[6][i];
105 NekDouble var_chaste_interface__transient_outward_potassium_current_Y_to_gate__Y_to = inarray[7][i];
107 NekDouble var_chaste_interface__L_type_Ca_current_f_gate__f = inarray[8][i];
109 NekDouble var_chaste_interface__L_type_Ca_current_d_gate__d = inarray[9][i];
111 NekDouble var_chaste_interface__L_type_Ca_current_f_Ca_gate__f_Ca = inarray[10][i];
113 NekDouble var_chaste_interface__calcium_dynamics__Ca_i = inarray[11][i];
115 NekDouble var_chaste_interface__calcium_dynamics__Ca_SR = inarray[12][i];
120 NekDouble d_dt_chaste_interface__membrane__V;
124 const NekDouble var_fast_sodium_current__j = var_chaste_interface__fast_sodium_current_j_gate__j;
125 const NekDouble var_fast_sodium_current__h = var_chaste_interface__fast_sodium_current_h_gate__h;
126 const NekDouble var_fast_sodium_current__m = var_chaste_interface__fast_sodium_current_m_gate__m;
127 const NekDouble var_fast_sodium_current__V = var_chaste_interface__membrane__V;
128 const NekDouble var_standard_ionic_concentrations__Na_o = 138.0;
129 const NekDouble var_standard_ionic_concentrations__Na_i = 10.0;
130 const NekDouble var_L_type_Ca_current__f = var_chaste_interface__L_type_Ca_current_f_gate__f;
131 const NekDouble var_L_type_Ca_current__f_Ca = var_chaste_interface__L_type_Ca_current_f_Ca_gate__f_Ca;
132 const NekDouble var_L_type_Ca_current__F = var_membrane__F;
133 const NekDouble var_L_type_Ca_current__P_Ca = 1.26e-05;
134 const NekDouble var_L_type_Ca_current__V = var_chaste_interface__membrane__V;
135 const NekDouble var_L_type_Ca_current__C_sc = 1.0;
136 const NekDouble var_L_type_Ca_current__T = var_membrane__T;
137 const NekDouble var_standard_ionic_concentrations__Ca_o = 2000.0;
138 const NekDouble var_L_type_Ca_current__Ca_o = var_standard_ionic_concentrations__Ca_o;
139 const NekDouble var_L_type_Ca_current__R = var_membrane__R;
140 const NekDouble var_L_type_Ca_current__Ca_i = var_chaste_interface__calcium_dynamics__Ca_i;
141 const NekDouble var_L_type_Ca_current__i_Ca_max = ((((var_L_type_Ca_current__P_Ca / var_L_type_Ca_current__C_sc) * 4.0 * var_L_type_Ca_current__V * pow(var_L_type_Ca_current__F, 2.0)) / (var_L_type_Ca_current__R * var_L_type_Ca_current__T)) * ((var_L_type_Ca_current__Ca_i * exp((2.0 * var_L_type_Ca_current__V * var_L_type_Ca_current__F) / (var_L_type_Ca_current__R * var_L_type_Ca_current__T))) - (0.341 * var_L_type_Ca_current__Ca_o))) / (exp((2.0 * var_L_type_Ca_current__V * var_L_type_Ca_current__F) / (var_L_type_Ca_current__R * var_L_type_Ca_current__T)) - 1.0);
142 const NekDouble var_L_type_Ca_current__d = var_chaste_interface__L_type_Ca_current_d_gate__d;
143 const NekDouble var_L_type_Ca_current__i_Ca = var_L_type_Ca_current__i_Ca_max * var_L_type_Ca_current__f * var_L_type_Ca_current__d * var_L_type_Ca_current__f_Ca;
144 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__V = var_chaste_interface__membrane__V;
145 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__X_kr = var_chaste_interface__rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__X_kr;
146 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__V = var_chaste_interface__membrane__V;
147 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__X_ks = var_chaste_interface__slow_activating_delayed_rectifiyer_K_current_X_ks_gate__X_ks;
148 const NekDouble var_transient_outward_potassium_current__Y_to = var_chaste_interface__transient_outward_potassium_current_Y_to_gate__Y_to;
149 const NekDouble var_transient_outward_potassium_current__X_to = var_chaste_interface__transient_outward_potassium_current_X_to_gate__X_to;
150 const NekDouble var_transient_outward_potassium_current__V = var_chaste_interface__membrane__V;
151 const NekDouble var_Na_Ca_exchanger__Na_o = var_standard_ionic_concentrations__Na_o;
152 const NekDouble var_Na_Ca_exchanger__K_sat = 0.2;
153 const NekDouble var_Na_Ca_exchanger__Ca_i = var_chaste_interface__calcium_dynamics__Ca_i;
154 const NekDouble var_Na_Ca_exchanger__K_mNa = 87.5;
155 const NekDouble var_Na_Ca_exchanger__Ca_o = var_standard_ionic_concentrations__Ca_o;
156 const NekDouble var_Na_Ca_exchanger__K_NaCa = 1500.0;
157 const NekDouble var_Na_Ca_exchanger__T = var_membrane__T;
158 const NekDouble var_Na_Ca_exchanger__V = var_chaste_interface__membrane__V;
159 const NekDouble var_Na_Ca_exchanger__Na_i = var_standard_ionic_concentrations__Na_i;
160 const NekDouble var_Na_Ca_exchanger__eta = 0.35;
161 const NekDouble var_Na_Ca_exchanger__K_mCa = 1380.0;
162 const NekDouble var_Na_Ca_exchanger__F = var_membrane__F;
163 const NekDouble var_Na_Ca_exchanger__R = var_membrane__R;
164 const NekDouble var_Na_Ca_exchanger__i_NaCa = (var_Na_Ca_exchanger__K_NaCa / ((pow(var_Na_Ca_exchanger__K_mNa, 3.0) + pow(var_Na_Ca_exchanger__Na_o, 3.0)) * (var_Na_Ca_exchanger__K_mCa + var_Na_Ca_exchanger__Ca_o) * (1.0 + (var_Na_Ca_exchanger__K_sat * exp(((var_Na_Ca_exchanger__eta - 1.0) * var_Na_Ca_exchanger__V * var_Na_Ca_exchanger__F) / (var_Na_Ca_exchanger__R * var_Na_Ca_exchanger__T)))))) * ((exp((var_Na_Ca_exchanger__eta * var_Na_Ca_exchanger__V * var_Na_Ca_exchanger__F) / (var_Na_Ca_exchanger__R * var_Na_Ca_exchanger__T)) * pow(var_Na_Ca_exchanger__Na_i, 3.0) * var_Na_Ca_exchanger__Ca_o) - (exp(((var_Na_Ca_exchanger__eta - 1.0) * var_Na_Ca_exchanger__V * var_Na_Ca_exchanger__F) / (var_Na_Ca_exchanger__R * var_Na_Ca_exchanger__T)) * pow(var_Na_Ca_exchanger__Na_o, 3.0) * var_Na_Ca_exchanger__Ca_i));
165 const NekDouble var_sarcolemmal_calcium_pump__Ca_i = var_chaste_interface__calcium_dynamics__Ca_i;
166 const NekDouble var_sarcolemmal_calcium_pump__i_pCa_max = 0.05;
167 const NekDouble var_sarcolemmal_calcium_pump__K_mpCa = 0.05;
168 const NekDouble var_sarcolemmal_calcium_pump__i_p_Ca = (var_sarcolemmal_calcium_pump__i_pCa_max * var_sarcolemmal_calcium_pump__Ca_i) / (var_sarcolemmal_calcium_pump__K_mpCa + var_sarcolemmal_calcium_pump__Ca_i);
169 const NekDouble var_calcium_background_current__R = var_membrane__R;
170 const NekDouble var_calcium_background_current__Ca_i = var_chaste_interface__calcium_dynamics__Ca_i;
171 const NekDouble var_calcium_background_current__F = var_membrane__F;
172 const NekDouble var_calcium_background_current__T = var_membrane__T;
173 const NekDouble var_calcium_background_current__Ca_o = var_standard_ionic_concentrations__Ca_o;
174 const NekDouble var_calcium_background_current__E_Ca = ((var_calcium_background_current__R * var_calcium_background_current__T) / (2.0 * var_calcium_background_current__F)) * log(var_calcium_background_current__Ca_o / var_calcium_background_current__Ca_i);
175 const NekDouble var_calcium_background_current__g_Cab = 0.0003842;
176 const NekDouble var_calcium_background_current__V = var_chaste_interface__membrane__V;
177 const NekDouble var_calcium_background_current__i_Ca_b = var_calcium_background_current__g_Cab * (var_calcium_background_current__V - var_calcium_background_current__E_Ca);
178 const NekDouble var_fast_sodium_current_m_gate__m = var_fast_sodium_current__m;
179 const NekDouble var_fast_sodium_current_m_gate__V = var_fast_sodium_current__V;
180 const NekDouble var_fast_sodium_current_m_gate__E0_m = var_fast_sodium_current_m_gate__V + 47.13;
181 const NekDouble var_fast_sodium_current_m_gate__alpha_m = (0.32 * var_fast_sodium_current_m_gate__E0_m) / (1.0 - exp((-0.1) * var_fast_sodium_current_m_gate__E0_m));
182 const NekDouble var_fast_sodium_current_m_gate__beta_m = 0.08 * exp((-var_fast_sodium_current_m_gate__V) / 11.0);
183 const NekDouble var_fast_sodium_current_m_gate__d_m_d_environment__time = (var_fast_sodium_current_m_gate__alpha_m * (1.0 - var_fast_sodium_current_m_gate__m)) - (var_fast_sodium_current_m_gate__beta_m * var_fast_sodium_current_m_gate__m);
184 const NekDouble var_fast_sodium_current__fast_sodium_current_m_gate__d_m_d_environment__time = var_fast_sodium_current_m_gate__d_m_d_environment__time;
185 const NekDouble var_fast_sodium_current_h_gate__V = var_fast_sodium_current__V;
186 const NekDouble var_fast_sodium_current_h_gate__beta_h = 7.5 / (1.0 + exp((-0.1) * (var_fast_sodium_current_h_gate__V + 11.0)));
187 const NekDouble var_fast_sodium_current_h_gate__alpha_h = 0.135 * exp((var_fast_sodium_current_h_gate__V + 80.0) / (-6.8));
188 const NekDouble var_fast_sodium_current_h_gate__h = var_fast_sodium_current__h;
189 const NekDouble var_fast_sodium_current_h_gate__d_h_d_environment__time = (var_fast_sodium_current_h_gate__alpha_h * (1.0 - var_fast_sodium_current_h_gate__h)) - (var_fast_sodium_current_h_gate__beta_h * var_fast_sodium_current_h_gate__h);
190 const NekDouble var_fast_sodium_current__fast_sodium_current_h_gate__d_h_d_environment__time = var_fast_sodium_current_h_gate__d_h_d_environment__time;
191 const NekDouble var_fast_sodium_current_j_gate__V = var_fast_sodium_current__V;
192 const NekDouble var_fast_sodium_current_j_gate__alpha_j = (0.175 * exp((var_fast_sodium_current_j_gate__V + 100.0) / (-23.0))) / (1.0 + exp(0.15 * (var_fast_sodium_current_j_gate__V + 79.0)));
193 const NekDouble var_fast_sodium_current_j_gate__beta_j = 0.3 / (1.0 + exp((-0.1) * (var_fast_sodium_current_j_gate__V + 32.0)));
194 const NekDouble var_fast_sodium_current_j_gate__j = var_fast_sodium_current__j;
195 const NekDouble var_fast_sodium_current_j_gate__d_j_d_environment__time = (var_fast_sodium_current_j_gate__alpha_j * (1.0 - var_fast_sodium_current_j_gate__j)) - (var_fast_sodium_current_j_gate__beta_j * var_fast_sodium_current_j_gate__j);
196 const NekDouble var_fast_sodium_current__fast_sodium_current_j_gate__d_j_d_environment__time = var_fast_sodium_current_j_gate__d_j_d_environment__time;
197 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__V = var_rapid_activating_delayed_rectifiyer_K_current__V;
198 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__tau_X_kr = 43.0 + (1.0 / (exp((-5.495) + (0.1691 * var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__V)) + exp((-7.677) - (0.0128 * var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__V))));
199 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__X_kr = var_rapid_activating_delayed_rectifiyer_K_current__X_kr;
200 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__X_kr_inf = 1.0 / (1.0 + exp((-2.182) - (0.1819 * var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__V)));
201 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__d_X_kr_d_environment__time = (var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__X_kr_inf - var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__X_kr) / var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__tau_X_kr;
202 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__d_X_kr_d_environment__time = var_rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__d_X_kr_d_environment__time;
203 const NekDouble var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__V = var_slow_activating_delayed_rectifiyer_K_current__V;
204 const NekDouble var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__tau_X_ks = 1.0 / (((7.19e-05 * (var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__V - 10.0)) / (1.0 - exp((-0.148) * (var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__V - 10.0)))) + ((0.000131 * (var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__V - 10.0)) / (exp(0.0687 * (var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__V - 10.0)) - 1.0)));
205 const NekDouble var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__X_ks_infinity = 1.0 / (1.0 + exp((var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__V - 16.0) / (-13.6)));
206 const NekDouble var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__X_ks = var_slow_activating_delayed_rectifiyer_K_current__X_ks;
207 const NekDouble var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__d_X_ks_d_environment__time = (var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__X_ks_infinity - var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__X_ks) / var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__tau_X_ks;
208 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__slow_activating_delayed_rectifiyer_K_current_X_ks_gate__d_X_ks_d_environment__time = var_slow_activating_delayed_rectifiyer_K_current_X_ks_gate__d_X_ks_d_environment__time;
209 const NekDouble var_transient_outward_potassium_current_X_to_gate__V = var_transient_outward_potassium_current__V;
210 const NekDouble var_transient_outward_potassium_current_X_to_gate__alpha_X_to = 0.04516 * exp(0.03577 * var_transient_outward_potassium_current_X_to_gate__V);
211 const NekDouble var_transient_outward_potassium_current_X_to_gate__X_to = var_transient_outward_potassium_current__X_to;
212 const NekDouble var_transient_outward_potassium_current_X_to_gate__beta_X_to = 0.0989 * exp((-0.06237) * var_transient_outward_potassium_current_X_to_gate__V);
213 const NekDouble var_transient_outward_potassium_current_X_to_gate__d_X_to_d_environment__time = (var_transient_outward_potassium_current_X_to_gate__alpha_X_to * (1.0 - var_transient_outward_potassium_current_X_to_gate__X_to)) - (var_transient_outward_potassium_current_X_to_gate__beta_X_to * var_transient_outward_potassium_current_X_to_gate__X_to);
214 const NekDouble var_transient_outward_potassium_current__transient_outward_potassium_current_X_to_gate__d_X_to_d_environment__time = var_transient_outward_potassium_current_X_to_gate__d_X_to_d_environment__time;
215 const NekDouble var_transient_outward_potassium_current_Y_to_gate__V = var_transient_outward_potassium_current__V;
216 const NekDouble var_transient_outward_potassium_current_Y_to_gate__beta_Y_to = (0.005415 * exp((var_transient_outward_potassium_current_Y_to_gate__V + 33.5) / 5.0)) / (1.0 + (0.051335 * exp((var_transient_outward_potassium_current_Y_to_gate__V + 33.5) / 5.0)));
217 const NekDouble var_transient_outward_potassium_current_Y_to_gate__alpha_Y_to = (0.005415 * exp((var_transient_outward_potassium_current_Y_to_gate__V + 33.5) / (-5.0))) / (1.0 + (0.051335 * exp((var_transient_outward_potassium_current_Y_to_gate__V + 33.5) / (-5.0))));
218 const NekDouble var_transient_outward_potassium_current_Y_to_gate__Y_to = var_transient_outward_potassium_current__Y_to;
219 const NekDouble var_transient_outward_potassium_current_Y_to_gate__d_Y_to_d_environment__time = (var_transient_outward_potassium_current_Y_to_gate__alpha_Y_to * (1.0 - var_transient_outward_potassium_current_Y_to_gate__Y_to)) - (var_transient_outward_potassium_current_Y_to_gate__beta_Y_to * var_transient_outward_potassium_current_Y_to_gate__Y_to);
220 const NekDouble var_transient_outward_potassium_current__transient_outward_potassium_current_Y_to_gate__d_Y_to_d_environment__time = var_transient_outward_potassium_current_Y_to_gate__d_Y_to_d_environment__time;
221 const NekDouble var_L_type_Ca_current_f_gate__V = var_L_type_Ca_current__V;
222 const NekDouble var_L_type_Ca_current_f_gate__tau_f = 30.0 + (200.0 / (1.0 + exp((var_L_type_Ca_current_f_gate__V + 20.0) / 9.5)));
223 const NekDouble var_L_type_Ca_current_f_gate__f = var_L_type_Ca_current__f;
224 const NekDouble var_L_type_Ca_current_f_gate__f_infinity = 1.0 / (1.0 + exp((var_L_type_Ca_current_f_gate__V + 12.5) / 5.0));
225 const NekDouble var_L_type_Ca_current_f_gate__d_f_d_environment__time = (var_L_type_Ca_current_f_gate__f_infinity - var_L_type_Ca_current_f_gate__f) / var_L_type_Ca_current_f_gate__tau_f;
226 const NekDouble var_L_type_Ca_current__L_type_Ca_current_f_gate__d_f_d_environment__time = var_L_type_Ca_current_f_gate__d_f_d_environment__time;
227 const NekDouble var_L_type_Ca_current_d_gate__V = var_L_type_Ca_current__V;
228 const NekDouble var_L_type_Ca_current_d_gate__E0_m = var_L_type_Ca_current_d_gate__V + 40.0;
229 const NekDouble var_L_type_Ca_current_d_gate__tau_d = 1.0 / (((0.25 * exp((-0.01) * var_L_type_Ca_current_d_gate__V)) / (1.0 + exp((-0.07) * var_L_type_Ca_current_d_gate__V))) + ((0.07 * exp((-0.05) * var_L_type_Ca_current_d_gate__E0_m)) / (1.0 + exp(0.05 * var_L_type_Ca_current_d_gate__E0_m))));
230 const NekDouble var_L_type_Ca_current_d_gate__d = var_L_type_Ca_current__d;
231 const NekDouble var_L_type_Ca_current_d_gate__d_infinity = 1.0 / (1.0 + exp((var_L_type_Ca_current_d_gate__V + 10.0) / (-6.24)));
232 const NekDouble var_L_type_Ca_current_d_gate__d_d_d_environment__time = (var_L_type_Ca_current_d_gate__d_infinity - var_L_type_Ca_current_d_gate__d) / var_L_type_Ca_current_d_gate__tau_d;
233 const NekDouble var_L_type_Ca_current__L_type_Ca_current_d_gate__d_d_d_environment__time = var_L_type_Ca_current_d_gate__d_d_d_environment__time;
234 const NekDouble var_L_type_Ca_current_f_Ca_gate__f_Ca = var_L_type_Ca_current__f_Ca;
235 const NekDouble var_L_type_Ca_current_f_Ca_gate__K_mfCa = 0.18;
236 const NekDouble var_L_type_Ca_current_f_Ca_gate__Ca_i = var_L_type_Ca_current__Ca_i;
237 const NekDouble var_L_type_Ca_current_f_Ca_gate__f_Ca_infinity = 1.0 / (1.0 + pow(var_L_type_Ca_current_f_Ca_gate__Ca_i / var_L_type_Ca_current_f_Ca_gate__K_mfCa, 3.0));
238 const NekDouble var_L_type_Ca_current_f_Ca_gate__tau_f_Ca = 30.0;
239 const NekDouble var_L_type_Ca_current_f_Ca_gate__d_f_Ca_d_environment__time = (var_L_type_Ca_current_f_Ca_gate__f_Ca_infinity - var_L_type_Ca_current_f_Ca_gate__f_Ca) / var_L_type_Ca_current_f_Ca_gate__tau_f_Ca;
240 const NekDouble var_L_type_Ca_current__L_type_Ca_current_f_Ca_gate__d_f_Ca_d_environment__time = var_L_type_Ca_current_f_Ca_gate__d_f_Ca_d_environment__time;
241 const NekDouble var_calcium_dynamics__Ca_i = var_chaste_interface__calcium_dynamics__Ca_i;
242 const NekDouble var_calcium_dynamics__CMDN_tot = 10.0;
243 const NekDouble var_calcium_dynamics__K_mCMDN = 2.0;
244 const NekDouble var_calcium_dynamics__beta_i = 1.0 / (1.0 + ((var_calcium_dynamics__CMDN_tot * var_calcium_dynamics__K_mCMDN) / pow(var_calcium_dynamics__K_mCMDN + var_calcium_dynamics__Ca_i, 2.0)));
245 const NekDouble var_calcium_dynamics__V_myo = 2.584e-05;
246 const NekDouble var_calcium_dynamics__F = var_membrane__F;
247 const NekDouble var_calcium_dynamics__C_sc = var_L_type_Ca_current__C_sc;
248 const NekDouble var_calcium_dynamics__A_Cap = 0.0001534;
249 const NekDouble var_calcium_dynamics__Ca_SR = var_chaste_interface__calcium_dynamics__Ca_SR;
250 const NekDouble var_calcium_dynamics__P_rel = 6.0;
251 const NekDouble var_calcium_dynamics__V = var_chaste_interface__membrane__V;
252 const NekDouble var_calcium_dynamics__f_Ca = var_chaste_interface__L_type_Ca_current_f_Ca_gate__f_Ca;
253 const NekDouble var_calcium_dynamics__gamma = 1.0 / (1.0 + pow(2000.0 / var_calcium_dynamics__Ca_SR, 3.0));
254 const NekDouble var_calcium_dynamics__d = var_chaste_interface__L_type_Ca_current_d_gate__d;
255 const NekDouble var_calcium_dynamics__f = var_chaste_interface__L_type_Ca_current_f_gate__f;
256 const NekDouble var_calcium_dynamics__J_rel = (var_calcium_dynamics__P_rel * var_calcium_dynamics__f * var_calcium_dynamics__d * var_calcium_dynamics__f_Ca * ((var_calcium_dynamics__gamma * var_calcium_dynamics__Ca_SR) - var_calcium_dynamics__Ca_i)) / (1.0 + (1.65 * exp(var_calcium_dynamics__V / 20.0)));
257 const NekDouble var_calcium_dynamics__P_leak = 1e-06;
258 const NekDouble var_calcium_dynamics__J_leak = var_calcium_dynamics__P_leak * (var_calcium_dynamics__Ca_SR - var_calcium_dynamics__Ca_i);
259 const NekDouble var_calcium_dynamics__K_mup = 0.32;
260 const NekDouble var_calcium_dynamics__V_up = 0.1;
261 const NekDouble var_calcium_dynamics__J_up = var_calcium_dynamics__V_up / (1.0 + pow(var_calcium_dynamics__K_mup / var_calcium_dynamics__Ca_i, 2.0));
262 const NekDouble var_calcium_dynamics__i_Ca = var_L_type_Ca_current__i_Ca;
263 const NekDouble var_calcium_dynamics__i_Ca_b = var_calcium_background_current__i_Ca_b;
264 const NekDouble var_calcium_dynamics__i_p_Ca = var_sarcolemmal_calcium_pump__i_p_Ca;
265 const NekDouble var_calcium_dynamics__i_NaCa = var_Na_Ca_exchanger__i_NaCa;
266 const NekDouble var_calcium_dynamics__K_mCSQN = 600.0;
267 const NekDouble var_calcium_dynamics__CSQN_tot = 10000.0;
268 const NekDouble var_calcium_dynamics__V_SR = 2e-06;
269 const NekDouble var_calcium_dynamics__beta_SR = 1.0 / (1.0 + ((var_calcium_dynamics__CSQN_tot * var_calcium_dynamics__K_mCSQN) / pow(var_calcium_dynamics__K_mCSQN + var_calcium_dynamics__Ca_SR, 2.0)));
270 const NekDouble var_calcium_dynamics__d_Ca_i_d_environment__time = var_calcium_dynamics__beta_i * (((var_calcium_dynamics__J_rel + var_calcium_dynamics__J_leak) - var_calcium_dynamics__J_up) - (((var_calcium_dynamics__A_Cap * var_calcium_dynamics__C_sc) / (2.0 * var_calcium_dynamics__F * var_calcium_dynamics__V_myo)) * ((var_calcium_dynamics__i_Ca + var_calcium_dynamics__i_Ca_b + var_calcium_dynamics__i_p_Ca) - (2.0 * var_calcium_dynamics__i_NaCa))));
271 const NekDouble var_calcium_dynamics__d_Ca_SR_d_environment__time = (var_calcium_dynamics__beta_SR * ((var_calcium_dynamics__J_up - var_calcium_dynamics__J_leak) - var_calcium_dynamics__J_rel) * var_calcium_dynamics__V_myo) / var_calcium_dynamics__V_SR;
272 const NekDouble var_chaste_interface__fast_sodium_current_m_gate__d_m_d_environment__time = var_fast_sodium_current__fast_sodium_current_m_gate__d_m_d_environment__time;
273 const NekDouble var_chaste_interface__fast_sodium_current_h_gate__d_h_d_environment__time = var_fast_sodium_current__fast_sodium_current_h_gate__d_h_d_environment__time;
274 const NekDouble var_chaste_interface__fast_sodium_current_j_gate__d_j_d_environment__time = var_fast_sodium_current__fast_sodium_current_j_gate__d_j_d_environment__time;
275 const NekDouble var_chaste_interface__rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__d_X_kr_d_environment__time = var_rapid_activating_delayed_rectifiyer_K_current__rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__d_X_kr_d_environment__time;
276 const NekDouble var_chaste_interface__slow_activating_delayed_rectifiyer_K_current_X_ks_gate__d_X_ks_d_environment__time = var_slow_activating_delayed_rectifiyer_K_current__slow_activating_delayed_rectifiyer_K_current_X_ks_gate__d_X_ks_d_environment__time;
277 const NekDouble var_chaste_interface__transient_outward_potassium_current_X_to_gate__d_X_to_d_environment__time = var_transient_outward_potassium_current__transient_outward_potassium_current_X_to_gate__d_X_to_d_environment__time;
278 const NekDouble var_chaste_interface__transient_outward_potassium_current_Y_to_gate__d_Y_to_d_environment__time = var_transient_outward_potassium_current__transient_outward_potassium_current_Y_to_gate__d_Y_to_d_environment__time;
279 const NekDouble var_chaste_interface__L_type_Ca_current_f_gate__d_f_d_environment__time = var_L_type_Ca_current__L_type_Ca_current_f_gate__d_f_d_environment__time;
280 const NekDouble var_chaste_interface__L_type_Ca_current_d_gate__d_d_d_environment__time = var_L_type_Ca_current__L_type_Ca_current_d_gate__d_d_d_environment__time;
281 const NekDouble var_chaste_interface__L_type_Ca_current_f_Ca_gate__d_f_Ca_d_environment__time = var_L_type_Ca_current__L_type_Ca_current_f_Ca_gate__d_f_Ca_d_environment__time;
282 const NekDouble var_chaste_interface__calcium_dynamics__d_Ca_i_d_environment__time = var_calcium_dynamics__d_Ca_i_d_environment__time;
283 const NekDouble var_chaste_interface__calcium_dynamics__d_Ca_SR_d_environment__time = var_calcium_dynamics__d_Ca_SR_d_environment__time;
284 const NekDouble d_dt_chaste_interface__fast_sodium_current_m_gate__m = var_chaste_interface__fast_sodium_current_m_gate__d_m_d_environment__time;
285 const NekDouble d_dt_chaste_interface__fast_sodium_current_h_gate__h = var_chaste_interface__fast_sodium_current_h_gate__d_h_d_environment__time;
286 const NekDouble d_dt_chaste_interface__fast_sodium_current_j_gate__j = var_chaste_interface__fast_sodium_current_j_gate__d_j_d_environment__time;
287 const NekDouble d_dt_chaste_interface__rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__X_kr = var_chaste_interface__rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__d_X_kr_d_environment__time;
288 const NekDouble d_dt_chaste_interface__slow_activating_delayed_rectifiyer_K_current_X_ks_gate__X_ks = var_chaste_interface__slow_activating_delayed_rectifiyer_K_current_X_ks_gate__d_X_ks_d_environment__time;
289 const NekDouble d_dt_chaste_interface__transient_outward_potassium_current_X_to_gate__X_to = var_chaste_interface__transient_outward_potassium_current_X_to_gate__d_X_to_d_environment__time;
290 const NekDouble d_dt_chaste_interface__transient_outward_potassium_current_Y_to_gate__Y_to = var_chaste_interface__transient_outward_potassium_current_Y_to_gate__d_Y_to_d_environment__time;
291 const NekDouble d_dt_chaste_interface__L_type_Ca_current_f_gate__f = var_chaste_interface__L_type_Ca_current_f_gate__d_f_d_environment__time;
292 const NekDouble d_dt_chaste_interface__L_type_Ca_current_d_gate__d = var_chaste_interface__L_type_Ca_current_d_gate__d_d_d_environment__time;
293 const NekDouble d_dt_chaste_interface__L_type_Ca_current_f_Ca_gate__f_Ca = var_chaste_interface__L_type_Ca_current_f_Ca_gate__d_f_Ca_d_environment__time;
294 const NekDouble d_dt_chaste_interface__calcium_dynamics__Ca_i = var_chaste_interface__calcium_dynamics__d_Ca_i_d_environment__time;
295 const NekDouble d_dt_chaste_interface__calcium_dynamics__Ca_SR = var_chaste_interface__calcium_dynamics__d_Ca_SR_d_environment__time;
297 const NekDouble var_fast_sodium_current__g_Na = 12.8;
298 const NekDouble var_fast_sodium_current__R = var_membrane__R;
299 const NekDouble var_fast_sodium_current__Na_o = var_standard_ionic_concentrations__Na_o;
300 const NekDouble var_fast_sodium_current__F = var_membrane__F;
301 const NekDouble var_fast_sodium_current__T = var_membrane__T;
302 const NekDouble var_fast_sodium_current__Na_i = var_standard_ionic_concentrations__Na_i;
303 const NekDouble var_fast_sodium_current__E_Na = ((var_fast_sodium_current__R * var_fast_sodium_current__T) / var_fast_sodium_current__F) * log(var_fast_sodium_current__Na_o / var_fast_sodium_current__Na_i);
304 const NekDouble var_fast_sodium_current__i_Na = var_fast_sodium_current__g_Na * pow(var_fast_sodium_current__m, 3.0) * var_fast_sodium_current__h * var_fast_sodium_current__j * (var_fast_sodium_current__V - var_fast_sodium_current__E_Na);
305 const NekDouble var_membrane__i_Na = var_fast_sodium_current__i_Na;
306 const NekDouble var_membrane__i_Ca = var_L_type_Ca_current__i_Ca;
307 const NekDouble var_L_type_Ca_current__P_CaK = 5.79e-07;
308 const NekDouble var_standard_ionic_concentrations__K_o = 4.0;
309 const NekDouble var_L_type_Ca_current__K_o = var_standard_ionic_concentrations__K_o;
310 const NekDouble var_L_type_Ca_current__i_Ca_half = -0.265;
311 const NekDouble var_standard_ionic_concentrations__K_i = 149.4;
312 const NekDouble var_L_type_Ca_current__K_i = var_standard_ionic_concentrations__K_i;
313 const NekDouble var_L_type_Ca_current__i_CaK = ((((((var_L_type_Ca_current__P_CaK / var_L_type_Ca_current__C_sc) * var_L_type_Ca_current__f * var_L_type_Ca_current__d * var_L_type_Ca_current__f_Ca) / (1.0 + (var_L_type_Ca_current__i_Ca_max / var_L_type_Ca_current__i_Ca_half))) * 1000.0 * var_L_type_Ca_current__V * pow(var_L_type_Ca_current__F, 2.0)) / (var_L_type_Ca_current__R * var_L_type_Ca_current__T)) * ((var_L_type_Ca_current__K_i * exp((var_L_type_Ca_current__V * var_L_type_Ca_current__F) / (var_L_type_Ca_current__R * var_L_type_Ca_current__T))) - var_L_type_Ca_current__K_o)) / (exp((var_L_type_Ca_current__V * var_L_type_Ca_current__F) / (var_L_type_Ca_current__R * var_L_type_Ca_current__T)) - 1.0);
314 const NekDouble var_membrane__i_CaK = var_L_type_Ca_current__i_CaK;
315 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__K_o = var_standard_ionic_concentrations__K_o;
316 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__R = var_membrane__R;
317 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__F = var_membrane__F;
318 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__K_i = var_standard_ionic_concentrations__K_i;
319 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__T = var_membrane__T;
320 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__E_K = ((var_rapid_activating_delayed_rectifiyer_K_current__R * var_rapid_activating_delayed_rectifiyer_K_current__T) / var_rapid_activating_delayed_rectifiyer_K_current__F) * log(var_rapid_activating_delayed_rectifiyer_K_current__K_o / var_rapid_activating_delayed_rectifiyer_K_current__K_i);
321 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__R_V = 1.0 / (1.0 + (2.5 * exp(0.1 * (var_rapid_activating_delayed_rectifiyer_K_current__V + 28.0))));
322 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__g_Kr = 0.0136;
323 const NekDouble var_rapid_activating_delayed_rectifiyer_K_current__i_Kr = var_rapid_activating_delayed_rectifiyer_K_current__g_Kr * var_rapid_activating_delayed_rectifiyer_K_current__R_V * var_rapid_activating_delayed_rectifiyer_K_current__X_kr * sqrt(var_rapid_activating_delayed_rectifiyer_K_current__K_o / 4.0) * (var_rapid_activating_delayed_rectifiyer_K_current__V - var_rapid_activating_delayed_rectifiyer_K_current__E_K);
324 const NekDouble var_membrane__i_Kr = var_rapid_activating_delayed_rectifiyer_K_current__i_Kr;
325 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__g_Ks = 0.0245;
326 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__T = var_membrane__T;
327 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__K_o = var_standard_ionic_concentrations__K_o;
328 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__R = var_membrane__R;
329 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__Na_o = var_standard_ionic_concentrations__Na_o;
330 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__Na_i = var_standard_ionic_concentrations__Na_i;
331 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__K_i = var_standard_ionic_concentrations__K_i;
332 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__F = var_membrane__F;
333 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__E_Ks = ((var_slow_activating_delayed_rectifiyer_K_current__R * var_slow_activating_delayed_rectifiyer_K_current__T) / var_slow_activating_delayed_rectifiyer_K_current__F) * log((var_slow_activating_delayed_rectifiyer_K_current__K_o + (0.01833 * var_slow_activating_delayed_rectifiyer_K_current__Na_o)) / (var_slow_activating_delayed_rectifiyer_K_current__K_i + (0.01833 * var_slow_activating_delayed_rectifiyer_K_current__Na_i)));
334 const NekDouble var_slow_activating_delayed_rectifiyer_K_current__i_Ks = var_slow_activating_delayed_rectifiyer_K_current__g_Ks * pow(var_slow_activating_delayed_rectifiyer_K_current__X_ks, 2.0) * (var_slow_activating_delayed_rectifiyer_K_current__V - var_slow_activating_delayed_rectifiyer_K_current__E_Ks);
335 const NekDouble var_membrane__i_Ks = var_slow_activating_delayed_rectifiyer_K_current__i_Ks;
336 const NekDouble var_transient_outward_potassium_current__g_to = 0.23815;
337 const NekDouble var_transient_outward_potassium_current__E_K = var_rapid_activating_delayed_rectifiyer_K_current__E_K;
338 const NekDouble var_transient_outward_potassium_current__i_to = var_transient_outward_potassium_current__g_to * var_transient_outward_potassium_current__X_to * var_transient_outward_potassium_current__Y_to * (var_transient_outward_potassium_current__V - var_transient_outward_potassium_current__E_K);
339 const NekDouble var_membrane__i_to = var_transient_outward_potassium_current__i_to;
340 const NekDouble var_time_independent_potassium_current__E_K = var_rapid_activating_delayed_rectifiyer_K_current__E_K;
341 const NekDouble var_time_independent_potassium_current__K_o = var_standard_ionic_concentrations__K_o;
342 const NekDouble var_time_independent_potassium_current__g_K1 = 2.8;
343 const NekDouble var_time_independent_potassium_current__F = var_membrane__F;
344 const NekDouble var_time_independent_potassium_current_K1_gate__F = var_time_independent_potassium_current__F;
345 const NekDouble var_time_independent_potassium_current__V = var_chaste_interface__membrane__V;
346 const NekDouble var_time_independent_potassium_current_K1_gate__V = var_time_independent_potassium_current__V;
347 const NekDouble var_time_independent_potassium_current__T = var_membrane__T;
348 const NekDouble var_time_independent_potassium_current_K1_gate__T = var_time_independent_potassium_current__T;
349 const NekDouble var_time_independent_potassium_current_K1_gate__E_K = var_time_independent_potassium_current__E_K;
350 const NekDouble var_time_independent_potassium_current__R = var_membrane__R;
351 const NekDouble var_time_independent_potassium_current_K1_gate__R = var_time_independent_potassium_current__R;
352 const NekDouble var_time_independent_potassium_current_K1_gate__K1_infinity = 1.0 / (2.0 + exp(((1.62 * var_time_independent_potassium_current_K1_gate__F) / (var_time_independent_potassium_current_K1_gate__R * var_time_independent_potassium_current_K1_gate__T)) * (var_time_independent_potassium_current_K1_gate__V - var_time_independent_potassium_current_K1_gate__E_K)));
353 const NekDouble var_time_independent_potassium_current__K1_infinity = var_time_independent_potassium_current_K1_gate__K1_infinity;
354 const NekDouble var_time_independent_potassium_current__K_mK1 = 13.0;
355 const NekDouble var_time_independent_potassium_current__i_K1 = ((var_time_independent_potassium_current__g_K1 * var_time_independent_potassium_current__K1_infinity * var_time_independent_potassium_current__K_o) / (var_time_independent_potassium_current__K_o + var_time_independent_potassium_current__K_mK1)) * (var_time_independent_potassium_current__V - var_time_independent_potassium_current__E_K);
356 const NekDouble var_membrane__i_K1 = var_time_independent_potassium_current__i_K1;
357 const NekDouble var_plateau_potassium_current__g_Kp = 0.002216;
358 const NekDouble var_plateau_potassium_current__V = var_chaste_interface__membrane__V;
359 const NekDouble var_plateau_potassium_current_Kp_gate__V = var_plateau_potassium_current__V;
360 const NekDouble var_plateau_potassium_current_Kp_gate__Kp_V = 1.0 / (1.0 + exp((7.488 - var_plateau_potassium_current_Kp_gate__V) / 5.98));
361 const NekDouble var_plateau_potassium_current__Kp_V = var_plateau_potassium_current_Kp_gate__Kp_V;
362 const NekDouble var_plateau_potassium_current__E_K = var_rapid_activating_delayed_rectifiyer_K_current__E_K;
363 const NekDouble var_plateau_potassium_current__i_Kp = var_plateau_potassium_current__g_Kp * var_plateau_potassium_current__Kp_V * (var_plateau_potassium_current__V - var_plateau_potassium_current__E_K);
364 const NekDouble var_membrane__i_Kp = var_plateau_potassium_current__i_Kp;
365 const NekDouble var_membrane__i_NaCa = var_Na_Ca_exchanger__i_NaCa;
366 const NekDouble var_sodium_potassium_pump__K_mNai = 10.0;
367 const NekDouble var_sodium_potassium_pump__V = var_chaste_interface__membrane__V;
368 const NekDouble var_sodium_potassium_pump__F = var_membrane__F;
369 const NekDouble var_sodium_potassium_pump__T = var_membrane__T;
370 const NekDouble var_sodium_potassium_pump__Na_o = var_standard_ionic_concentrations__Na_o;
371 const NekDouble var_sodium_potassium_pump__sigma = (1.0 / 7.0) * (exp(var_sodium_potassium_pump__Na_o / 67.3) - 1.0);
372 const NekDouble var_sodium_potassium_pump__R = var_membrane__R;
373 const NekDouble var_sodium_potassium_pump__f_NaK = 1.0 / (1.0 + (0.1245 * exp(((-0.1) * var_sodium_potassium_pump__V * var_sodium_potassium_pump__F) / (var_sodium_potassium_pump__R * var_sodium_potassium_pump__T))) + (0.0365 * var_sodium_potassium_pump__sigma * exp(((-var_sodium_potassium_pump__V) * var_sodium_potassium_pump__F) / (var_sodium_potassium_pump__R * var_sodium_potassium_pump__T))));
374 const NekDouble var_sodium_potassium_pump__i_NaK_max = 0.693;
375 const NekDouble var_sodium_potassium_pump__K_o = var_standard_ionic_concentrations__K_o;
376 const NekDouble var_sodium_potassium_pump__Na_i = var_standard_ionic_concentrations__Na_i;
377 const NekDouble var_sodium_potassium_pump__K_mKo = 1.5;
378 const NekDouble var_sodium_potassium_pump__i_NaK = (((var_sodium_potassium_pump__i_NaK_max * var_sodium_potassium_pump__f_NaK) / (1.0 + pow(var_sodium_potassium_pump__K_mNai / var_sodium_potassium_pump__Na_i, 1.5))) * var_sodium_potassium_pump__K_o) / (var_sodium_potassium_pump__K_o + var_sodium_potassium_pump__K_mKo);
379 const NekDouble var_membrane__i_NaK = var_sodium_potassium_pump__i_NaK;
380 const NekDouble var_membrane__i_p_Ca = var_sarcolemmal_calcium_pump__i_p_Ca;
381 const NekDouble var_membrane__i_Ca_b = var_calcium_background_current__i_Ca_b;
382 const NekDouble var_sodium_background_current__g_Nab = 0.0031;
383 const NekDouble var_sodium_background_current__V = var_chaste_interface__membrane__V;
384 const NekDouble var_sodium_background_current__E_Na = var_fast_sodium_current__E_Na;
385 const NekDouble var_sodium_background_current__i_Na_b = var_sodium_background_current__g_Nab * (var_sodium_background_current__V - var_sodium_background_current__E_Na);
386 const NekDouble var_membrane__i_Na_b = var_sodium_background_current__i_Na_b;
387 const NekDouble var_chaste_interface__membrane__i_Stim = 0.0;
388 const NekDouble var_membrane__i_Stim_converter = var_chaste_interface__membrane__i_Stim;
389 const NekDouble var_membrane__chaste_interface__chaste_membrane_capacitance = 1.0;
390 const NekDouble var_membrane__i_Stim = var_membrane__i_Stim_converter / var_membrane__chaste_interface__chaste_membrane_capacitance;
391 const NekDouble var_membrane__d_V_d_environment__time = -(var_membrane__i_Na + var_membrane__i_Ca + var_membrane__i_CaK + var_membrane__i_Kr + var_membrane__i_Ks + var_membrane__i_to + var_membrane__i_K1 + var_membrane__i_Kp + var_membrane__i_NaCa + var_membrane__i_NaK + var_membrane__i_p_Ca + var_membrane__i_Na_b + var_membrane__i_Ca_b + var_membrane__i_Stim);
392 const NekDouble var_chaste_interface__membrane__d_V_d_environment__time = var_membrane__d_V_d_environment__time;
393 d_dt_chaste_interface__membrane__V = var_chaste_interface__membrane__d_V_d_environment__time;
394 outarray[0][i] = d_dt_chaste_interface__membrane__V;
395 outarray[1][i] = d_dt_chaste_interface__fast_sodium_current_m_gate__m;
396 outarray[2][i] = d_dt_chaste_interface__fast_sodium_current_h_gate__h;
397 outarray[3][i] = d_dt_chaste_interface__fast_sodium_current_j_gate__j;
398 outarray[4][i] = d_dt_chaste_interface__rapid_activating_delayed_rectifiyer_K_current_X_kr_gate__X_kr;
399 outarray[5][i] = d_dt_chaste_interface__slow_activating_delayed_rectifiyer_K_current_X_ks_gate__X_ks;
400 outarray[6][i] = d_dt_chaste_interface__transient_outward_potassium_current_X_to_gate__X_to;
401 outarray[7][i] = d_dt_chaste_interface__transient_outward_potassium_current_Y_to_gate__Y_to;
402 outarray[8][i] = d_dt_chaste_interface__L_type_Ca_current_f_gate__f;
403 outarray[9][i] = d_dt_chaste_interface__L_type_Ca_current_d_gate__d;
404 outarray[10][i] = d_dt_chaste_interface__L_type_Ca_current_f_Ca_gate__f_Ca;
405 outarray[11][i] = d_dt_chaste_interface__calcium_dynamics__Ca_i;
406 outarray[12][i] = d_dt_chaste_interface__calcium_dynamics__Ca_SR;
static CellModelSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField)
Creates an instance of this class.
int m_nq
Number of physical points.
virtual void v_Update(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)
Computes the reaction terms $f(u,v)$ and $g(u,v)$.
std::vector< std::pair< std::string, std::string > > SummaryList
void Fill(int n, const T alpha, T *x, const int incx)
Fill a vector with a constant value.
virtual void v_SetInitialConditions()
virtual void v_GenerateSummary(SummaryList &s)
Prints a summary of the model parameters.
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
Fox02(const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField)
Constructor.
std::vector< int > m_concentrations
Indices of cell model variables which are concentrations.
void AddSummaryItem(SummaryList &l, const std::string &name, const std::string &value)
Adds a summary item to the summary info list.
boost::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
Array< OneD, Array< OneD, NekDouble > > m_cellSol
Cell model solution variables.
int m_nvar
Number of variables in cell model (inc. transmembrane voltage)
std::vector< int > m_gates
Indices of cell model variables which are gates.
static std::string className
Name of class.
CellModelFactory & GetCellModelFactory()
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.