/* There are a total of 2 entries in the algebraic variable array. There are a total of 13 entries in each of the rate and state variable arrays. There are a total of 65 entries in the constant variable array. */ /* * VOI is time in component environment (ms). * CONSTANTS[0] is V in component membrane (V). * ALGEBRAIC[1] is i_Na in component sodium_current (dimensionless). * CONSTANTS[1] is E_Na in component sodium_current (V). * CONSTANTS[2] is g_Na in component sodium_current (per_V). * ALGEBRAIC[0] is P_open in component Markov_model (dimensionless). * STATES[0] is O1 in component Markov_model (dimensionless). * STATES[1] is O2 in component Markov_model (dimensionless). * STATES[2] is C0 in component Markov_model (dimensionless). * STATES[3] is C1 in component Markov_model (dimensionless). * STATES[4] is C2 in component Markov_model (dimensionless). * STATES[5] is C3 in component Markov_model (dimensionless). * STATES[6] is C4 in component Markov_model (dimensionless). * STATES[7] is C0I in component Markov_model (dimensionless). * STATES[8] is C1I in component Markov_model (dimensionless). * STATES[9] is C2I in component Markov_model (dimensionless). * STATES[10] is C3I in component Markov_model (dimensionless). * STATES[11] is C4I in component Markov_model (dimensionless). * STATES[12] is I in component Markov_model (dimensionless). * CONSTANTS[3] is a in component Markov_model (dimensionless). * CONSTANTS[51] is alpha in component rate_constants (first_order_rate_constant). * CONSTANTS[52] is beta in component rate_constants (first_order_rate_constant). * CONSTANTS[53] is cf in component rate_constants (first_order_rate_constant). * CONSTANTS[54] is cn in component rate_constants (first_order_rate_constant). * CONSTANTS[55] is of in component rate_constants (first_order_rate_constant). * CONSTANTS[56] is on in component rate_constants (first_order_rate_constant). * CONSTANTS[57] is eta in component rate_constants (first_order_rate_constant). * CONSTANTS[58] is gamma in component rate_constants (first_order_rate_constant). * CONSTANTS[59] is delta in component rate_constants (first_order_rate_constant). * CONSTANTS[60] is epsilon in component rate_constants (first_order_rate_constant). * CONSTANTS[61] is omega in component rate_constants (first_order_rate_constant). * CONSTANTS[62] is v in component rate_constants (first_order_rate_constant). * CONSTANTS[63] is gamma_gamma in component rate_constants (first_order_rate_constant). * CONSTANTS[64] is delta_delta in component rate_constants (first_order_rate_constant). * CONSTANTS[4] is R in component rate_constants (J_mol_K). * CONSTANTS[5] is T in component rate_constants (K). * CONSTANTS[6] is F in component rate_constants (C_mol). * CONSTANTS[7] is k in component rate_constants (J_K). * CONSTANTS[8] is h in component rate_constants (J_ms). * CONSTANTS[9] is z_alpha in component rate_constants (dimensionless). * CONSTANTS[10] is z_beta in component rate_constants (dimensionless). * CONSTANTS[11] is z_gamma in component rate_constants (dimensionless). * CONSTANTS[12] is z_delta in component rate_constants (dimensionless). * CONSTANTS[13] is z_on in component rate_constants (dimensionless). * CONSTANTS[14] is z_of in component rate_constants (dimensionless). * CONSTANTS[15] is z_gamma_gamma in component rate_constants (dimensionless). * CONSTANTS[16] is z_delta_delta in component rate_constants (dimensionless). * CONSTANTS[17] is z_epsilon in component rate_constants (dimensionless). * CONSTANTS[18] is z_omega in component rate_constants (dimensionless). * CONSTANTS[19] is z_eta in component rate_constants (dimensionless). * CONSTANTS[20] is z_v in component rate_constants (dimensionless). * CONSTANTS[21] is z_cn in component rate_constants (dimensionless). * CONSTANTS[22] is z_cf in component rate_constants (dimensionless). * CONSTANTS[23] is delta_H_alpha in component rate_constants (J_mol). * CONSTANTS[24] is delta_H_beta in component rate_constants (J_mol). * CONSTANTS[25] is delta_H_cf in component rate_constants (J_mol). * CONSTANTS[26] is delta_H_cn in component rate_constants (J_mol). * CONSTANTS[27] is delta_H_of in component rate_constants (J_mol). * CONSTANTS[28] is delta_H_on in component rate_constants (J_mol). * CONSTANTS[29] is delta_H_eta in component rate_constants (J_mol). * CONSTANTS[30] is delta_H_gamma in component rate_constants (J_mol). * CONSTANTS[31] is delta_H_delta in component rate_constants (J_mol). * CONSTANTS[32] is delta_H_epsilon in component rate_constants (J_mol). * CONSTANTS[33] is delta_H_omega in component rate_constants (J_mol). * CONSTANTS[34] is delta_H_v in component rate_constants (J_mol). * CONSTANTS[35] is delta_H_gamma_gamma in component rate_constants (J_mol). * CONSTANTS[36] is delta_H_delta_delta in component rate_constants (J_mol). * CONSTANTS[37] is delta_S_alpha in component rate_constants (J_mol_K). * CONSTANTS[38] is delta_S_beta in component rate_constants (J_mol_K). * CONSTANTS[39] is delta_S_cf in component rate_constants (J_mol_K). * CONSTANTS[40] is delta_S_cn in component rate_constants (J_mol_K). * CONSTANTS[41] is delta_S_of in component rate_constants (J_mol_K). * CONSTANTS[42] is delta_S_on in component rate_constants (J_mol_K). * CONSTANTS[43] is delta_S_eta in component rate_constants (J_mol_K). * CONSTANTS[44] is delta_S_gamma in component rate_constants (J_mol_K). * CONSTANTS[45] is delta_S_delta in component rate_constants (J_mol_K). * CONSTANTS[46] is delta_S_epsilon in component rate_constants (J_mol_K). * CONSTANTS[47] is delta_S_omega in component rate_constants (J_mol_K). * CONSTANTS[48] is delta_S_v in component rate_constants (J_mol_K). * CONSTANTS[49] is delta_S_gamma_gamma in component rate_constants (J_mol_K). * CONSTANTS[50] is delta_S_delta_delta in component rate_constants (J_mol_K). * RATES[2] is d/dt C0 in component Markov_model (dimensionless). * RATES[3] is d/dt C1 in component Markov_model (dimensionless). * RATES[4] is d/dt C2 in component Markov_model (dimensionless). * RATES[5] is d/dt C3 in component Markov_model (dimensionless). * RATES[6] is d/dt C4 in component Markov_model (dimensionless). * RATES[0] is d/dt O1 in component Markov_model (dimensionless). * RATES[1] is d/dt O2 in component Markov_model (dimensionless). * RATES[7] is d/dt C0I in component Markov_model (dimensionless). * RATES[8] is d/dt C1I in component Markov_model (dimensionless). * RATES[9] is d/dt C2I in component Markov_model (dimensionless). * RATES[10] is d/dt C3I in component Markov_model (dimensionless). * RATES[11] is d/dt C4I in component Markov_model (dimensionless). * RATES[12] is d/dt I in component Markov_model (dimensionless). * There are a total of 0 condition variables. */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = -0.12; CONSTANTS[1] = 0.044675; CONSTANTS[2] = 0.0131; STATES[0] = 0.0; STATES[1] = 0.0; STATES[2] = 1.0; STATES[3] = 0.0; STATES[4] = 0.0; STATES[5] = 0.0; STATES[6] = 0.0; STATES[7] = 0.0; STATES[8] = 0.0; STATES[9] = 0.0; STATES[10] = 0.0; STATES[11] = 0.0; STATES[12] = 0.0; CONSTANTS[3] = 2.5218; CONSTANTS[4] = 8.314472; CONSTANTS[5] = 286.0; CONSTANTS[6] = 96500.0; CONSTANTS[7] = 1.3806504E-23; CONSTANTS[8] = 6.62607095E-31; CONSTANTS[9] = 0; CONSTANTS[10] = -0.9701; CONSTANTS[11] = 1.5703; CONSTANTS[12] = -1.3266; CONSTANTS[13] = 0.6625; CONSTANTS[14] = 0; CONSTANTS[15] = 0; CONSTANTS[16] = -3.5596; CONSTANTS[17] = 0; CONSTANTS[18] = 0; CONSTANTS[19] = 1.5717; CONSTANTS[20] = -1.3281; CONSTANTS[21] = 0; CONSTANTS[22] = 0; CONSTANTS[23] = 116900; CONSTANTS[24] = 263870; CONSTANTS[25] = 57533; CONSTANTS[26] = 293270; CONSTANTS[27] = 79035; CONSTANTS[28] = 62385; CONSTANTS[29] = 150333; CONSTANTS[30] = 200240; CONSTANTS[31] = 127970; CONSTANTS[32] = 79183; CONSTANTS[33] = 123020; CONSTANTS[34] = 121900; CONSTANTS[35] = -99967; CONSTANTS[36] = 62555; CONSTANTS[37] = 224.114; CONSTANTS[38] = 708.146; CONSTANTS[39] = 0.00711; CONSTANTS[40] = 786.217; CONSTANTS[41] = 1.510; CONSTANTS[42] = 39.295; CONSTANTS[43] = 338.915; CONSTANTS[44] = 529.952; CONSTANTS[45] = 229.205; CONSTANTS[46] = 70.078; CONSTANTS[47] = 225.175; CONSTANTS[48] = 193.265; CONSTANTS[49] = -578.317; CONSTANTS[50] = -130.639; CONSTANTS[51] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[23]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[37]/CONSTANTS[4]+( CONSTANTS[9]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[52] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[24]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[38]/CONSTANTS[4]+( CONSTANTS[10]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[53] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[25]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[39]/CONSTANTS[4]+( CONSTANTS[22]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[54] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[26]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[40]/CONSTANTS[4]+( CONSTANTS[21]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[55] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[27]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[41]/CONSTANTS[4]+( CONSTANTS[14]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[56] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[28]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[42]/CONSTANTS[4]+( CONSTANTS[13]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[57] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[29]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[43]/CONSTANTS[4]+( CONSTANTS[19]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[58] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[30]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[44]/CONSTANTS[4]+( CONSTANTS[11]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[59] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[31]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[45]/CONSTANTS[4]+( CONSTANTS[12]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[60] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[32]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[46]/CONSTANTS[4]+( CONSTANTS[17]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[61] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[33]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[47]/CONSTANTS[4]+( CONSTANTS[18]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[62] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[34]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[48]/CONSTANTS[4]+( CONSTANTS[20]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[63] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[35]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[49]/CONSTANTS[4]+( CONSTANTS[15]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); CONSTANTS[64] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[36]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[50]/CONSTANTS[4]+( CONSTANTS[16]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5])); RATES[2] = 0.1001; RATES[3] = 0.1001; RATES[4] = 0.1001; RATES[5] = 0.1001; RATES[6] = 0.1001; RATES[0] = 0.1001; RATES[1] = 0.1001; RATES[7] = 0.1001; RATES[8] = 0.1001; RATES[9] = 0.1001; RATES[10] = 0.1001; RATES[11] = 0.1001; RATES[12] = 0.1001; } void computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { resid[0] = RATES[2] - ( CONSTANTS[52]*STATES[3]+ CONSTANTS[53]*STATES[7]) - (CONSTANTS[54]+ 4.00000*CONSTANTS[51])*STATES[2]; resid[1] = RATES[3] - ( 2.00000*CONSTANTS[52]*STATES[4]+ 4.00000*CONSTANTS[51]*STATES[2]+ (CONSTANTS[53]/CONSTANTS[3])*STATES[8]) - (CONSTANTS[52]+ 3.00000*CONSTANTS[51]+ CONSTANTS[54]*CONSTANTS[3])*STATES[3]; resid[2] = RATES[4] - ( 3.00000*CONSTANTS[52]*STATES[5]+ 3.00000*CONSTANTS[51]*STATES[3]+ (CONSTANTS[53]/pow(CONSTANTS[3], 2.00000))*STATES[9]) - ( 2.00000*CONSTANTS[52]+ 2.00000*CONSTANTS[51]+ CONSTANTS[54]*pow(CONSTANTS[3], 2.00000))*STATES[4]; resid[3] = RATES[5] - ( 4.00000*CONSTANTS[52]*STATES[6]+ 2.00000*CONSTANTS[51]*STATES[4]+ (CONSTANTS[53]/pow(CONSTANTS[3], 3.00000))*STATES[10]) - ( 3.00000*CONSTANTS[52]+CONSTANTS[51]+ CONSTANTS[54]*pow(CONSTANTS[3], 3.00000))*STATES[5]; resid[4] = RATES[6] - ( CONSTANTS[59]*STATES[0]+ CONSTANTS[62]*STATES[1]+ CONSTANTS[51]*STATES[5]+ (CONSTANTS[53]/pow(CONSTANTS[3], 4.00000))*STATES[11]) - ( 4.00000*CONSTANTS[52]+CONSTANTS[58]+CONSTANTS[57]+ CONSTANTS[54]*pow(CONSTANTS[3], 4.00000))*STATES[6]; resid[5] = RATES[0] - ( CONSTANTS[58]*STATES[6]+ CONSTANTS[61]*STATES[1]+ CONSTANTS[55]*STATES[12]) - (CONSTANTS[59]+CONSTANTS[60]+CONSTANTS[56])*STATES[0]; resid[6] = RATES[1] - ( CONSTANTS[60]*STATES[0]+ CONSTANTS[57]*STATES[6]) - (CONSTANTS[62]+CONSTANTS[61])*STATES[1]; resid[7] = RATES[7] - ( (CONSTANTS[52]/CONSTANTS[3])*STATES[8]+ CONSTANTS[54]*STATES[2]) - (CONSTANTS[53]+ 4.00000*CONSTANTS[51]*CONSTANTS[3])*STATES[7]; resid[8] = RATES[8] - ( (( 2.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[9]+ 4.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[7]+ CONSTANTS[54]*CONSTANTS[3]*STATES[3]) - (CONSTANTS[52]/CONSTANTS[3]+ 3.00000*CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/CONSTANTS[3])*STATES[8]; resid[9] = RATES[9] - ( (( 3.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[10]+ 3.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[8]+ CONSTANTS[54]*pow(CONSTANTS[3], 2.00000)*STATES[4]) - (( 2.00000*CONSTANTS[52])/CONSTANTS[3]+ 2.00000*CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/pow(CONSTANTS[3], 2.00000))*STATES[9]; resid[10] = RATES[10] - ( (( 4.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[11]+ 2.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[9]+ CONSTANTS[54]*pow(CONSTANTS[3], 3.00000)*STATES[5]) - (( 3.00000*CONSTANTS[52])/CONSTANTS[3]+ CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/pow(CONSTANTS[3], 3.00000))*STATES[10]; resid[11] = RATES[11] - ( CONSTANTS[64]*STATES[12]+ CONSTANTS[51]*CONSTANTS[3]*STATES[10]+ CONSTANTS[54]*pow(CONSTANTS[3], 4.00000)*STATES[6]) - (( 4.00000*CONSTANTS[52])/CONSTANTS[3]+CONSTANTS[63]+CONSTANTS[53]/pow(CONSTANTS[3], 4.00000))*STATES[11]; resid[12] = RATES[12] - ( CONSTANTS[63]*STATES[11]+ CONSTANTS[56]*STATES[0]) - (CONSTANTS[64]+CONSTANTS[55])*STATES[12]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = STATES[0]+STATES[1]; ALGEBRAIC[1] = CONSTANTS[2]*ALGEBRAIC[0]*(CONSTANTS[0] - CONSTANTS[1]); } void computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { } void getStateInformation(double* SI) { SI[0] = 1.0; SI[1] = 1.0; SI[2] = 1.0; SI[3] = 1.0; SI[4] = 1.0; SI[5] = 1.0; SI[6] = 1.0; SI[7] = 1.0; SI[8] = 1.0; SI[9] = 1.0; SI[10] = 1.0; SI[11] = 1.0; SI[12] = 1.0; } void computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { }