/* There are a total of 9 entries in the algebraic variable array. There are a total of 7 entries in each of the rate and state variable arrays. There are a total of 37 entries in the constant variable array. */ /* * VOI is time in component environment (second). * CONSTANTS[0] is R_T in component Parameters (dimensionless). * CONSTANTS[1] is K_1 in component Parameters (micromolar). * CONSTANTS[2] is K_2 in component Parameters (micromolar). * CONSTANTS[3] is k_r in component Parameters (per_second). * CONSTANTS[4] is k_p in component Parameters (per_second). * CONSTANTS[5] is k_e in component Parameters (per_second). * CONSTANTS[6] is xi in component Parameters (dimensionless). * CONSTANTS[7] is G_T in component Parameters (dimensionless). * CONSTANTS[8] is k_deg in component Parameters (per_second). * CONSTANTS[9] is k_a in component Parameters (per_second). * CONSTANTS[10] is k_d in component Parameters (per_second). * CONSTANTS[11] is PIP_2_T in component Parameters (dimensionless). * CONSTANTS[12] is r_r in component Parameters (per_second). * CONSTANTS[13] is delta in component Parameters (dimensionless). * CONSTANTS[14] is K_c in component Parameters (micromolar). * CONSTANTS[15] is alpha in component Parameters (per_second). * CONSTANTS[16] is N_a in component Parameters (per_micromole). * CONSTANTS[17] is v in component Parameters (litre). * CONSTANTS[18] is epsilon_r in component Parameters (dimensionless). * CONSTANTS[19] is d_1 in component Parameters (micromolar). * CONSTANTS[20] is d_2 in component Parameters (micromolar). * CONSTANTS[21] is d_3 in component Parameters (micromolar). * CONSTANTS[22] is d_5 in component Parameters (micromolar). * CONSTANTS[23] is a_2 in component Parameters (per_micromolar_per_second). * CONSTANTS[24] is B_e in component Parameters (micromolar). * CONSTANTS[25] is K_e in component Parameters (micromolar). * CONSTANTS[26] is B_ER in component Parameters (micromolar). * CONSTANTS[27] is K_ER in component Parameters (micromolar). * CONSTANTS[28] is B_x in component Parameters (micromolar). * CONSTANTS[29] is K_x in component Parameters (micromolar). * CONSTANTS[30] is k_3 in component Parameters (micromolar). * CONSTANTS[31] is eta_1 in component Parameters (per_second). * CONSTANTS[32] is eta_2 in component Parameters (per_second). * CONSTANTS[33] is eta_3 in component Parameters (flux). * CONSTANTS[34] is C_T in component Parameters (micromolar). * CONSTANTS[35] is L in component ligand (micromolar). * STATES[0] is RS in component RS (dimensionless). * STATES[1] is RS_p in component RS_p (dimensionless). * STATES[2] is G in component G_GTP (dimensionless). * ALGEBRAIC[0] is rho_r in component rho_r (dimensionless). * STATES[3] is IP_3 in component IP_3 (micromolar). * STATES[4] is PIP_2 in component PIP_2 (dimensionless). * ALGEBRAIC[1] is r_h in component r_h (per_second). * STATES[5] is C in component C (micromolar). * ALGEBRAIC[8] is C_ER in component C_ER (micromolar). * ALGEBRAIC[4] is beta in component beta (dimensionless). * STATES[6] is h in component h (dimensionless). * ALGEBRAIC[2] is m_infinit in component m_infinit (dimensionless). * ALGEBRAIC[7] is h_infinit in component h_infinit (dimensionless). * ALGEBRAIC[5] is tau_h in component tau_h (second). * ALGEBRAIC[3] is zeta in component zeta (micromolar). * ALGEBRAIC[6] is gamma in component gamma (dimensionless). * CONSTANTS[36] is RS_E in component RS_E (dimensionless). * RATES[0] is d/dt RS in component RS (dimensionless). * RATES[1] is d/dt RS_p in component RS_p (dimensionless). * RATES[2] is d/dt G in component G_GTP (dimensionless). * RATES[3] is d/dt IP_3 in component IP_3 (micromolar). * RATES[4] is d/dt PIP_2 in component PIP_2 (dimensionless). * RATES[5] is d/dt C in component C (micromolar). * RATES[6] is d/dt h in component h (dimensionless). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 2e4; CONSTANTS[1] = 5; CONSTANTS[2] = 100; CONSTANTS[3] = 1.75e-4; CONSTANTS[4] = 0.03; CONSTANTS[5] = 6e-3; CONSTANTS[6] = 0.85; CONSTANTS[7] = 1e5; CONSTANTS[8] = 1.25; CONSTANTS[9] = 0.017; CONSTANTS[10] = 0.15; CONSTANTS[11] = 5e7; CONSTANTS[12] = 10; CONSTANTS[13] = 1.238e-3; CONSTANTS[14] = 0.4; CONSTANTS[15] = 2.781e-5; CONSTANTS[16] = 6.02252e17; CONSTANTS[17] = 5e-13; CONSTANTS[18] = 0.185; CONSTANTS[19] = 0.13; CONSTANTS[20] = 1.05; CONSTANTS[21] = 0.943; CONSTANTS[22] = 0.0823; CONSTANTS[23] = 0.2; CONSTANTS[24] = 150; CONSTANTS[25] = 10; CONSTANTS[26] = 120000; CONSTANTS[27] = 1200; CONSTANTS[28] = 50; CONSTANTS[29] = 0.2; CONSTANTS[30] = 0.4; CONSTANTS[31] = 575; CONSTANTS[32] = 5.2; CONSTANTS[33] = 45; CONSTANTS[34] = 67; CONSTANTS[35] = 1000; STATES[0] = 1.7e4; STATES[1] = 0; STATES[2] = 0; STATES[3] = 0.01; STATES[4] = 49997000; STATES[5] = 0.0961; STATES[6] = 0.6155; CONSTANTS[36] = (( CONSTANTS[3]*(1.00000+( (CONSTANTS[4]/CONSTANTS[5])*(CONSTANTS[2]+CONSTANTS[35]))/(CONSTANTS[1]+CONSTANTS[35])))/(CONSTANTS[3]+( CONSTANTS[4]*CONSTANTS[35])/(CONSTANTS[1]+CONSTANTS[35])+( (( CONSTANTS[3]*CONSTANTS[4])/CONSTANTS[5])*(CONSTANTS[2]+CONSTANTS[35]))/(CONSTANTS[1]+CONSTANTS[35])))*CONSTANTS[6]*CONSTANTS[0]+ (1.00000 - CONSTANTS[6])*CONSTANTS[0]; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { RATES[0] = ( CONSTANTS[3]*CONSTANTS[0] - (CONSTANTS[3]+( CONSTANTS[4]*CONSTANTS[35])/(CONSTANTS[1]+CONSTANTS[35]))*STATES[0]) - CONSTANTS[3]*STATES[1]; RATES[1] = CONSTANTS[35]*(( CONSTANTS[4]*STATES[0])/(CONSTANTS[1]+CONSTANTS[35]) - ( CONSTANTS[5]*STATES[1])/(CONSTANTS[2]+CONSTANTS[35])); ALGEBRAIC[0] = ( CONSTANTS[35]*STATES[0])/( CONSTANTS[6]*CONSTANTS[0]*(CONSTANTS[1]+CONSTANTS[35])); RATES[2] = CONSTANTS[9]*(CONSTANTS[13]+ALGEBRAIC[0])*(CONSTANTS[7] - STATES[2]) - CONSTANTS[10]*STATES[2]; ALGEBRAIC[1] = (( CONSTANTS[15]*STATES[5])/(CONSTANTS[14]+STATES[5]))*STATES[2]; RATES[3] = ( ALGEBRAIC[1]*STATES[4])/( CONSTANTS[16]*CONSTANTS[17]) - CONSTANTS[8]*STATES[3]; RATES[4] = ( - (ALGEBRAIC[1]+CONSTANTS[12])*STATES[4] - CONSTANTS[12]*CONSTANTS[16]*CONSTANTS[17]*STATES[3])+ CONSTANTS[12]*CONSTANTS[11]; ALGEBRAIC[3] = ( CONSTANTS[20]*(STATES[3]+CONSTANTS[19]))/(STATES[3]+CONSTANTS[21]); ALGEBRAIC[7] = ALGEBRAIC[3]/(ALGEBRAIC[3]+STATES[5]); ALGEBRAIC[5] = pow( CONSTANTS[23]*(ALGEBRAIC[3]+STATES[5]), - 1.00000); RATES[6] = (ALGEBRAIC[7] - STATES[6])/ALGEBRAIC[5]; ALGEBRAIC[6] = pow(1.00000+CONSTANTS[24]/(CONSTANTS[25]+STATES[5])+CONSTANTS[28]/(CONSTANTS[29]+STATES[5]), - 1.00000); ALGEBRAIC[8] = (CONSTANTS[27]/( CONSTANTS[26]*CONSTANTS[18]))*(CONSTANTS[34] - STATES[5]/ALGEBRAIC[6]); ALGEBRAIC[4] = pow(1.00000+( CONSTANTS[25]*CONSTANTS[24])/pow(CONSTANTS[25]+STATES[5], 2.00000)+( CONSTANTS[29]*CONSTANTS[28])/pow(CONSTANTS[29]+STATES[5], 2.00000), - 1.00000); ALGEBRAIC[2] = ( (STATES[3]/(CONSTANTS[19]+STATES[3]))*STATES[5])/(CONSTANTS[22]+STATES[5]); RATES[5] = ALGEBRAIC[4]*( CONSTANTS[18]*( CONSTANTS[31]*pow(ALGEBRAIC[2], 3.00000)*pow(STATES[6], 3.00000)+CONSTANTS[32])*(ALGEBRAIC[8] - STATES[5]) - ( CONSTANTS[33]*pow(STATES[5], 2.00000))/(pow(CONSTANTS[30], 2.00000)+pow(STATES[5], 2.00000))); } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = ( CONSTANTS[35]*STATES[0])/( CONSTANTS[6]*CONSTANTS[0]*(CONSTANTS[1]+CONSTANTS[35])); ALGEBRAIC[1] = (( CONSTANTS[15]*STATES[5])/(CONSTANTS[14]+STATES[5]))*STATES[2]; ALGEBRAIC[3] = ( CONSTANTS[20]*(STATES[3]+CONSTANTS[19]))/(STATES[3]+CONSTANTS[21]); ALGEBRAIC[7] = ALGEBRAIC[3]/(ALGEBRAIC[3]+STATES[5]); ALGEBRAIC[5] = pow( CONSTANTS[23]*(ALGEBRAIC[3]+STATES[5]), - 1.00000); ALGEBRAIC[6] = pow(1.00000+CONSTANTS[24]/(CONSTANTS[25]+STATES[5])+CONSTANTS[28]/(CONSTANTS[29]+STATES[5]), - 1.00000); ALGEBRAIC[8] = (CONSTANTS[27]/( CONSTANTS[26]*CONSTANTS[18]))*(CONSTANTS[34] - STATES[5]/ALGEBRAIC[6]); ALGEBRAIC[4] = pow(1.00000+( CONSTANTS[25]*CONSTANTS[24])/pow(CONSTANTS[25]+STATES[5], 2.00000)+( CONSTANTS[29]*CONSTANTS[28])/pow(CONSTANTS[29]+STATES[5], 2.00000), - 1.00000); ALGEBRAIC[2] = ( (STATES[3]/(CONSTANTS[19]+STATES[3]))*STATES[5])/(CONSTANTS[22]+STATES[5]); }