/* There are a total of 40 entries in the algebraic variable array. There are a total of 6 entries in each of the rate and state variable arrays. There are a total of 57 entries in the constant variable array. */ /* * VOI is t in component environment (second). * CONSTANTS[0] is R in component environment (J_per_K_per_mol). * CONSTANTS[1] is T in component environment (kelvin). * CONSTANTS[2] is F in component environment (C_per_mol). * CONSTANTS[3] is C_m in component environment (fF). * CONSTANTS[4] is K_1 in component environment (per_fmol). * CONSTANTS[5] is K_13 in component environment (per_fmol). * CONSTANTS[6] is K_14 in component environment (per_fmol). * CONSTANTS[7] is K_3 in component environment (per_fmol). * CONSTANTS[8] is K_6 in component environment (per_fmol). * CONSTANTS[9] is K_7 in component environment (per_fmol). * CONSTANTS[10] is K_H in component environment (per_fmol). * CONSTANTS[11] is K_Ke in component environment (per_fmol). * CONSTANTS[12] is K_Ki in component environment (per_fmol). * CONSTANTS[13] is K_MgADP in component environment (per_fmol). * CONSTANTS[14] is K_MgATP in component environment (per_fmol). * CONSTANTS[15] is K_Nae in component environment (per_fmol). * CONSTANTS[16] is K_Nai in component environment (per_fmol). * CONSTANTS[17] is K_P in component environment (per_fmol). * CONSTANTS[18] is kappa_1 in component environment (fmol_per_sec). * CONSTANTS[19] is kappa_13 in component environment (fmol_per_sec). * CONSTANTS[20] is kappa_15 in component environment (fmol_per_sec). * CONSTANTS[21] is kappa_3 in component environment (fmol_per_sec). * CONSTANTS[22] is kappa_6 in component environment (fmol_per_sec). * CONSTANTS[23] is kappa_8 in component environment (fmol_per_sec). * CONSTANTS[24] is z_5 in component environment (dimensionless). * CONSTANTS[25] is z_8 in component environment (dimensionless). * CONSTANTS[40] is zF_5 in component environment (C_per_mol). * CONSTANTS[41] is zF_8 in component environment (C_per_mol). * CONSTANTS[39] is x_H in component environment (fmol). * CONSTANTS[37] is x_Ke in component environment (fmol). * CONSTANTS[49] is x_Ki in component environment (fmol). * CONSTANTS[52] is x_MgADP in component environment (fmol). * CONSTANTS[38] is x_MgATP in component environment (fmol). * CONSTANTS[35] is x_Nae in component environment (fmol). * CONSTANTS[36] is x_Nai in component environment (fmol). * STATES[0] is x_P7 in component environment (fmol). * CONSTANTS[55] is x_P_i in component environment (fmol). * CONSTANTS[26] is q_mem in component environment (fC). * STATES[1] is x_P14 in component environment (fmol). * STATES[2] is x_P1 in component environment (fmol). * STATES[3] is x_P3 in component environment (fmol). * STATES[4] is x_P6 in component environment (fmol). * STATES[5] is x_P13 in component environment (fmol). * ALGEBRAIC[0] is x_tot in component environment (fmol). * CONSTANTS[27] is small_C in component environment (mM). * CONSTANTS[28] is W_i in component environment (pL). * CONSTANTS[29] is W_e in component environment (pL). * CONSTANTS[30] is c_Ke in component environment (mM). * CONSTANTS[48] is c_Ki in component environment (mM). * CONSTANTS[51] is c_MgADP in component environment (mM). * CONSTANTS[31] is c_MgATP in component environment (mM). * CONSTANTS[32] is c_Nae in component environment (mM). * CONSTANTS[33] is c_Nai in component environment (mM). * CONSTANTS[54] is c_P_i in component environment (mM). * CONSTANTS[34] is pH in component environment (dimensionless). * CONSTANTS[42] is mu_H in component environment (J_per_mol). * ALGEBRAIC[35] is v_H in component environment (fmol_per_sec). * CONSTANTS[43] is mu_Ke in component environment (J_per_mol). * ALGEBRAIC[17] is v_Ke in component environment (fmol_per_sec). * CONSTANTS[50] is mu_Ki in component environment (J_per_mol). * ALGEBRAIC[18] is v_Ki in component environment (fmol_per_sec). * CONSTANTS[53] is mu_MgADP in component environment (J_per_mol). * ALGEBRAIC[36] is v_MgADP in component environment (fmol_per_sec). * CONSTANTS[44] is mu_MgATP in component environment (J_per_mol). * ALGEBRAIC[37] is v_MgATP in component environment (fmol_per_sec). * CONSTANTS[45] is mu_Nae in component environment (J_per_mol). * ALGEBRAIC[19] is v_Nae in component environment (fmol_per_sec). * CONSTANTS[46] is mu_Nai in component environment (J_per_mol). * ALGEBRAIC[20] is v_Nai in component environment (fmol_per_sec). * ALGEBRAIC[1] is mu_P7 in component environment (J_per_mol). * ALGEBRAIC[38] is v_P7 in component environment (fmol_per_sec). * CONSTANTS[56] is mu_P_i in component environment (J_per_mol). * ALGEBRAIC[39] is v_P_i in component environment (fmol_per_sec). * CONSTANTS[47] is V_mem in component environment (volt). * ALGEBRAIC[21] is I_mem in component environment (fA). * ALGEBRAIC[22] is Af_R13 in component environment (J_per_mol). * ALGEBRAIC[23] is Ar_R13 in component environment (J_per_mol). * ALGEBRAIC[24] is v_R13 in component environment (fmol_per_sec). * ALGEBRAIC[25] is Af_R15 in component environment (J_per_mol). * ALGEBRAIC[26] is Ar_R15 in component environment (J_per_mol). * ALGEBRAIC[27] is v_R15 in component environment (fmol_per_sec). * ALGEBRAIC[28] is Af_R6 in component environment (J_per_mol). * ALGEBRAIC[2] is Ar_R6 in component environment (J_per_mol). * ALGEBRAIC[29] is v_R6 in component environment (fmol_per_sec). * ALGEBRAIC[3] is mu_P14 in component environment (J_per_mol). * ALGEBRAIC[30] is v_P14 in component environment (fmol_per_sec). * ALGEBRAIC[4] is mu_P1 in component environment (J_per_mol). * ALGEBRAIC[31] is v_P1 in component environment (fmol_per_sec). * ALGEBRAIC[5] is mu_P3 in component environment (J_per_mol). * ALGEBRAIC[32] is v_P3 in component environment (fmol_per_sec). * ALGEBRAIC[6] is mu_P6 in component environment (J_per_mol). * ALGEBRAIC[33] is v_P6 in component environment (fmol_per_sec). * ALGEBRAIC[7] is Af_R1 in component environment (J_per_mol). * ALGEBRAIC[8] is Ar_R1 in component environment (J_per_mol). * ALGEBRAIC[9] is v_R1 in component environment (fmol_per_sec). * ALGEBRAIC[10] is Af_R3 in component environment (J_per_mol). * ALGEBRAIC[11] is Ar_R3 in component environment (J_per_mol). * ALGEBRAIC[12] is v_R3 in component environment (fmol_per_sec). * ALGEBRAIC[13] is mu_P13 in component environment (J_per_mol). * ALGEBRAIC[34] is v_P13 in component environment (fmol_per_sec). * ALGEBRAIC[14] is Af_R8 in component environment (J_per_mol). * ALGEBRAIC[15] is Ar_R8 in component environment (J_per_mol). * ALGEBRAIC[16] is v_R8 in component environment (fmol_per_sec). * RATES[0] is d/dt x_P7 in component environment (fmol). * RATES[1] is d/dt x_P14 in component environment (fmol). * RATES[2] is d/dt x_P1 in component environment (fmol). * RATES[3] is d/dt x_P3 in component environment (fmol). * RATES[4] is d/dt x_P6 in component environment (fmol). * RATES[5] is d/dt x_P13 in component environment (fmol). * There are a total of 0 condition variables. */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 8.314; CONSTANTS[1] = 310; CONSTANTS[2] = 96485; CONSTANTS[3] = 153400; CONSTANTS[4] = 13085378.038167767; CONSTANTS[5] = 0.6020622798357556; CONSTANTS[6] = 69.38568269665376; CONSTANTS[7] = 46.24091666474313; CONSTANTS[8] = 79.09015560598799; CONSTANTS[9] = 4239.416835123694; CONSTANTS[10] = 0.04565; CONSTANTS[11] = 0.009236; CONSTANTS[12] = 0.0012595; CONSTANTS[13] = 7.976e-05; CONSTANTS[14] = 2.3715; CONSTANTS[15] = 0.0061242; CONSTANTS[16] = 0.00083514; CONSTANTS[17] = 0.04565; CONSTANTS[18] = 6.973455976480863; CONSTANTS[19] = 475.81557480252013; CONSTANTS[20] = 0.035418056157766185; CONSTANTS[21] = 861399.5138047301; CONSTANTS[22] = 1.4100547742408052; CONSTANTS[23] = 2.2855; CONSTANTS[24] = -0.054951; CONSTANTS[25] = -0.94505; STATES[0] = 0.8590; CONSTANTS[26] = -18408; STATES[1] = 0.0100192141898171; STATES[2] = 6.50836196830909e-10; STATES[3] = 0.00292644413780957; STATES[4] = 0.0154965229998754; STATES[5] = 0.112426414453276; CONSTANTS[27] = 1e-3; CONSTANTS[28] = 38; CONSTANTS[29] = 5.182; CONSTANTS[30] = 5.4; CONSTANTS[31] = 10; CONSTANTS[32] = 150; CONSTANTS[33] = 50; CONSTANTS[34] = 7.4; CONSTANTS[35] = CONSTANTS[32]*CONSTANTS[29]; CONSTANTS[36] = CONSTANTS[33]*CONSTANTS[28]; CONSTANTS[37] = CONSTANTS[30]*CONSTANTS[29]; CONSTANTS[38] = CONSTANTS[31]*CONSTANTS[28]; CONSTANTS[39] = pow(10.0000, - CONSTANTS[34])*1000.00*CONSTANTS[28]; CONSTANTS[40] = CONSTANTS[24]*CONSTANTS[2]; CONSTANTS[41] = CONSTANTS[25]*CONSTANTS[2]; CONSTANTS[42] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[10]*CONSTANTS[39]); CONSTANTS[43] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[11]*CONSTANTS[37]); CONSTANTS[44] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[14]*CONSTANTS[38]); CONSTANTS[45] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[15]*CONSTANTS[35]); CONSTANTS[46] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[16]*CONSTANTS[36]); CONSTANTS[47] = CONSTANTS[26]/CONSTANTS[3]; CONSTANTS[48] = CONSTANTS[27]; CONSTANTS[49] = CONSTANTS[48]*CONSTANTS[28]; CONSTANTS[50] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[12]*CONSTANTS[49]); CONSTANTS[51] = CONSTANTS[27]; CONSTANTS[52] = CONSTANTS[51]*CONSTANTS[28]; CONSTANTS[53] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[13]*CONSTANTS[52]); CONSTANTS[54] = CONSTANTS[27]; CONSTANTS[55] = CONSTANTS[54]*CONSTANTS[28]; CONSTANTS[56] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[17]*CONSTANTS[55]); RATES[0] = 0.1001; RATES[1] = 0.1001; RATES[2] = 0.1001; RATES[3] = 0.1001; RATES[4] = 0.1001; RATES[5] = 0.1001; } void computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { resid[0] = RATES[0] - ALGEBRAIC[38]; resid[1] = RATES[1] - ALGEBRAIC[30]; resid[2] = RATES[2] - ALGEBRAIC[31]; resid[3] = RATES[3] - ALGEBRAIC[32]; resid[4] = RATES[4] - ALGEBRAIC[33]; resid[5] = RATES[5] - ALGEBRAIC[34]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = STATES[2]+STATES[3]+STATES[4]+STATES[5]+STATES[0]+STATES[1]; ALGEBRAIC[17] = - 2.00000*ALGEBRAIC[16]; ALGEBRAIC[18] = 2.00000*ALGEBRAIC[9]; ALGEBRAIC[19] = 3.00000*ALGEBRAIC[16]; ALGEBRAIC[20] = - 3.00000*ALGEBRAIC[12]; ALGEBRAIC[21] = CONSTANTS[40]*ALGEBRAIC[12]+ CONSTANTS[41]*ALGEBRAIC[16]; ALGEBRAIC[35] = ALGEBRAIC[24]; ALGEBRAIC[36] = ALGEBRAIC[29]; ALGEBRAIC[37] = - ALGEBRAIC[27]; ALGEBRAIC[39] = ALGEBRAIC[24]; } void computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[13] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[5]*STATES[5]); ALGEBRAIC[22] = ALGEBRAIC[13]; ALGEBRAIC[3] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[6]*STATES[1]); ALGEBRAIC[23] = ALGEBRAIC[3]+CONSTANTS[56]+CONSTANTS[42]; ALGEBRAIC[24] = CONSTANTS[19]*(exp(ALGEBRAIC[22]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[23]/( CONSTANTS[0]*CONSTANTS[1]))); ALGEBRAIC[25] = ALGEBRAIC[3]+CONSTANTS[44]; ALGEBRAIC[4] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[4]*STATES[2]); ALGEBRAIC[26] = ALGEBRAIC[4]; ALGEBRAIC[27] = CONSTANTS[20]*(exp(ALGEBRAIC[25]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[26]/( CONSTANTS[0]*CONSTANTS[1]))); ALGEBRAIC[30] = ALGEBRAIC[24] - ALGEBRAIC[27]; ALGEBRAIC[7] = ALGEBRAIC[4]; ALGEBRAIC[5] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[7]*STATES[3]); ALGEBRAIC[8] = ALGEBRAIC[5]+ 2.00000*CONSTANTS[50]; ALGEBRAIC[9] = CONSTANTS[18]*(exp(ALGEBRAIC[7]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[8]/( CONSTANTS[0]*CONSTANTS[1]))); ALGEBRAIC[31] = ALGEBRAIC[27] - ALGEBRAIC[9]; ALGEBRAIC[10] = ALGEBRAIC[5]+ 3.00000*CONSTANTS[46]; ALGEBRAIC[6] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[8]*STATES[4]); ALGEBRAIC[11] = CONSTANTS[40]*CONSTANTS[47]+ALGEBRAIC[6]; ALGEBRAIC[12] = CONSTANTS[21]*(exp(ALGEBRAIC[10]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[11]/( CONSTANTS[0]*CONSTANTS[1]))); ALGEBRAIC[32] = ALGEBRAIC[9] - ALGEBRAIC[12]; ALGEBRAIC[28] = ALGEBRAIC[6]; ALGEBRAIC[1] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[9]*STATES[0]); ALGEBRAIC[2] = ALGEBRAIC[1]+CONSTANTS[53]; ALGEBRAIC[29] = CONSTANTS[22]*(exp(ALGEBRAIC[28]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[2]/( CONSTANTS[0]*CONSTANTS[1]))); ALGEBRAIC[33] = ALGEBRAIC[12] - ALGEBRAIC[29]; ALGEBRAIC[14] = ALGEBRAIC[1]+ 2.00000*CONSTANTS[43]; ALGEBRAIC[15] = ALGEBRAIC[13]+ 3.00000*CONSTANTS[45]+ CONSTANTS[41]*CONSTANTS[47]; ALGEBRAIC[16] = CONSTANTS[23]*(exp(ALGEBRAIC[14]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[15]/( CONSTANTS[0]*CONSTANTS[1]))); ALGEBRAIC[34] = ALGEBRAIC[16] - ALGEBRAIC[24]; ALGEBRAIC[38] = ALGEBRAIC[29] - ALGEBRAIC[16]; } 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; } void computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { }