/* There are a total of 5 entries in the algebraic variable array. There are a total of 2 entries in each of the rate and state variable arrays. There are a total of 20 entries in the constant variable array. */ /* * VOI is time in component environment (minute). * STATES[0] is G in component G (mg_l). * CONSTANTS[0] is Vg in component G (litre). * CONSTANTS[1] is Gin in component G (mg_l_min). * ALGEBRAIC[0] is f2_G in component G (mg_min). * ALGEBRAIC[2] is f3_G in component G (per_l). * ALGEBRAIC[3] is f4_I in component G (mg_min). * ALGEBRAIC[4] is f5_I in component G (mg_min). * CONSTANTS[2] is C2 in component G (mg_l). * CONSTANTS[3] is C3 in component G (mg_l). * CONSTANTS[4] is C4 in component G (mU_l). * CONSTANTS[5] is C5 in component G (mU_l). * CONSTANTS[6] is U0 in component G (mg_min). * CONSTANTS[7] is Um in component G (mg_min). * CONSTANTS[8] is Ub in component G (mg_min). * CONSTANTS[9] is beta in component G (dimensionless). * CONSTANTS[10] is Rg in component G (mg_min). * CONSTANTS[11] is alpha in component G (l_mU). * CONSTANTS[12] is ti in component G (minute). * CONSTANTS[13] is E in component G (l_min). * CONSTANTS[14] is Vp in component G (litre). * CONSTANTS[15] is Vi in component G (litre). * STATES[1] is I in component I (mU_l). * ALGEBRAIC[1] is f1_G in component I (mU_min). * CONSTANTS[16] is Rm in component I (mU_min). * CONSTANTS[17] is C1 in component I (mg_l). * CONSTANTS[18] is a1 in component I (mg_l). * CONSTANTS[19] is di in component I (first_order_rate_constant). * RATES[0] is d/dt G in component G (mg_l). * RATES[1] is d/dt I in component I (mU_l). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = 1000.0; CONSTANTS[0] = 10.0; CONSTANTS[1] = 0.54; CONSTANTS[2] = 144.0; CONSTANTS[3] = 1000.0; CONSTANTS[4] = 80.0; CONSTANTS[5] = 26.0; CONSTANTS[6] = 40.0; CONSTANTS[7] = 940.0; CONSTANTS[8] = 72.0; CONSTANTS[9] = 1.77; CONSTANTS[10] = 180.0; CONSTANTS[11] = 0.29; CONSTANTS[12] = 100; CONSTANTS[13] = 0.2; CONSTANTS[14] = 3.0; CONSTANTS[15] = 11.0; STATES[1] = 9000.0; CONSTANTS[16] = 210.0; CONSTANTS[17] = 2000.0; CONSTANTS[18] = 300.0; CONSTANTS[19] = 0.06; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[1] = CONSTANTS[16]/(1.00000+exp(((CONSTANTS[17] - STATES[0])/( 1.00000*CONSTANTS[0]))/CONSTANTS[18])); RATES[1] = 1.00000*ALGEBRAIC[1] - CONSTANTS[19]*STATES[1]; ALGEBRAIC[0] = CONSTANTS[8]*(1.00000 - exp( 1.00000*(- STATES[0]/( CONSTANTS[2]*CONSTANTS[0])))); ALGEBRAIC[2] = STATES[0]/( CONSTANTS[3]*CONSTANTS[0]); ALGEBRAIC[3] = CONSTANTS[6]+(CONSTANTS[7] - CONSTANTS[6])/(1.00000+exp( - CONSTANTS[9]*log( 1.00000*(STATES[1]/( CONSTANTS[4]*(1.00000/CONSTANTS[15]+1.00000/( CONSTANTS[13]*CONSTANTS[12]))))))); ALGEBRAIC[4] = CONSTANTS[10]/(1.00000+exp( CONSTANTS[11]*(STATES[1]/( 1.00000*CONSTANTS[14] - 1.00000*CONSTANTS[5])))); RATES[0] = CONSTANTS[1]+ 1.00000*ALGEBRAIC[4]+- ( 1.00000*ALGEBRAIC[0]+ ALGEBRAIC[2]*ALGEBRAIC[3]); } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[1] = CONSTANTS[16]/(1.00000+exp(((CONSTANTS[17] - STATES[0])/( 1.00000*CONSTANTS[0]))/CONSTANTS[18])); ALGEBRAIC[0] = CONSTANTS[8]*(1.00000 - exp( 1.00000*(- STATES[0]/( CONSTANTS[2]*CONSTANTS[0])))); ALGEBRAIC[2] = STATES[0]/( CONSTANTS[3]*CONSTANTS[0]); ALGEBRAIC[3] = CONSTANTS[6]+(CONSTANTS[7] - CONSTANTS[6])/(1.00000+exp( - CONSTANTS[9]*log( 1.00000*(STATES[1]/( CONSTANTS[4]*(1.00000/CONSTANTS[15]+1.00000/( CONSTANTS[13]*CONSTANTS[12]))))))); ALGEBRAIC[4] = CONSTANTS[10]/(1.00000+exp( CONSTANTS[11]*(STATES[1]/( 1.00000*CONSTANTS[14] - 1.00000*CONSTANTS[5])))); }