/* There are a total of 26 entries in the algebraic variable array. There are a total of 17 entries in each of the rate and state variable arrays. There are a total of 49 entries in the constant variable array. */ /* * VOI is time in component environment (second). * STATES[0] is A in component differentials (molar). * STATES[1] is G in component differentials (molar). * STATES[2] is GA in component differentials (molar). * STATES[3] is T in component differentials (molar). * STATES[4] is R in component differentials (molar). * STATES[5] is GT in component differentials (molar). * STATES[6] is GD in component differentials (molar). * STATES[7] is Pi_ in component differentials (molar). * STATES[8] is D in component differentials (molar). * STATES[9] is RG in component differentials (molar). * STATES[10] is RGT in component differentials (molar). * STATES[11] is GAT in component differentials (molar). * STATES[12] is GAD in component differentials (molar). * STATES[13] is RGD in component differentials (molar). * STATES[14] is RGA in component differentials (molar). * STATES[15] is RGAT in component differentials (molar). * STATES[16] is RGAD in component differentials (molar). * ALGEBRAIC[2] is A1 in component A1 (molar_per_second). * ALGEBRAIC[9] is A2 in component A2 (molar_per_second). * ALGEBRAIC[10] is A3 in component A3 (molar_per_second). * ALGEBRAIC[17] is A4 in component A4 (molar_per_second). * ALGEBRAIC[21] is A5 in component A5 (molar_per_second). * ALGEBRAIC[23] is A6 in component A6 (molar_per_second). * ALGEBRAIC[4] is R1 in component R1 (molar_per_second). * ALGEBRAIC[8] is R2 in component R2 (molar_per_second). * ALGEBRAIC[11] is R3 in component R3 (molar_per_second). * ALGEBRAIC[18] is R4 in component R4 (molar_per_second). * ALGEBRAIC[20] is R5 in component R5 (molar_per_second). * ALGEBRAIC[24] is R6 in component R6 (molar_per_second). * ALGEBRAIC[3] is T1 in component T1 (molar_per_second). * ALGEBRAIC[14] is T2 in component T2 (molar_per_second). * ALGEBRAIC[7] is T3 in component T3 (molar_per_second). * ALGEBRAIC[19] is T4 in component T4 (molar_per_second). * ALGEBRAIC[5] is P1 in component P1 (molar_per_second). * ALGEBRAIC[15] is P2 in component P2 (molar_per_second). * ALGEBRAIC[12] is P3 in component P3 (molar_per_second). * ALGEBRAIC[22] is P4 in component P4 (molar_per_second). * ALGEBRAIC[6] is D1 in component D1 (molar_per_second). * ALGEBRAIC[16] is D2 in component D2 (molar_per_second). * ALGEBRAIC[13] is D3 in component D3 (molar_per_second). * ALGEBRAIC[25] is D4 in component D4 (molar_per_second). * ALGEBRAIC[0] is Z in component output (dimensionless). * ALGEBRAIC[1] is v in component output (per_second). * CONSTANTS[0] is G_tot in component output (molar). * CONSTANTS[1] is k1 in component P1 (per_second). * CONSTANTS[2] is k1 in component P2 (per_second). * CONSTANTS[3] is k1 in component P3 (per_second). * CONSTANTS[4] is k1 in component P4 (per_second). * CONSTANTS[5] is k1 in component A1 (per_molar_per_second). * CONSTANTS[6] is k2 in component A1 (per_second). * CONSTANTS[7] is k1 in component T1 (per_molar_per_second). * CONSTANTS[8] is k2 in component T1 (per_second). * CONSTANTS[9] is k1 in component R1 (per_molar_per_second). * CONSTANTS[10] is k2 in component R1 (per_second). * CONSTANTS[11] is k2 in component P1 (per_molar_per_second). * CONSTANTS[12] is k1 in component D1 (per_second). * CONSTANTS[13] is k2 in component D1 (per_molar_per_second). * CONSTANTS[14] is k1 in component T3 (per_molar_per_second). * CONSTANTS[15] is k2 in component T3 (per_second). * CONSTANTS[16] is k1 in component R2 (per_molar_per_second). * CONSTANTS[17] is k2 in component R2 (per_second). * CONSTANTS[18] is k1 in component A2 (per_molar_per_second). * CONSTANTS[19] is k2 in component A2 (per_second). * CONSTANTS[20] is k1 in component A3 (per_molar_per_second). * CONSTANTS[21] is k2 in component A3 (per_second). * CONSTANTS[22] is k1 in component R3 (per_molar_per_second). * CONSTANTS[23] is k2 in component R3 (per_second). * CONSTANTS[24] is k2 in component P3 (per_molar_per_second). * CONSTANTS[25] is k1 in component D3 (per_second). * CONSTANTS[26] is k2 in component D3 (per_molar_per_second). * CONSTANTS[27] is k1 in component T2 (per_molar_per_second). * CONSTANTS[28] is k2 in component T2 (per_second). * CONSTANTS[29] is k2 in component P2 (per_molar_per_second). * CONSTANTS[30] is k1 in component D2 (per_second). * CONSTANTS[31] is k2 in component D2 (per_molar_per_second). * CONSTANTS[32] is k1 in component A4 (per_molar_per_second). * CONSTANTS[33] is k2 in component A4 (per_second). * CONSTANTS[34] is k1 in component R4 (per_molar_per_second). * CONSTANTS[35] is k2 in component R4 (per_second). * CONSTANTS[36] is k1 in component T4 (per_molar_per_second). * CONSTANTS[37] is k2 in component T4 (per_second). * CONSTANTS[38] is k1 in component R5 (per_molar_per_second). * CONSTANTS[39] is k2 in component R5 (per_second). * CONSTANTS[40] is k1 in component A5 (per_molar_per_second). * CONSTANTS[41] is k2 in component A5 (per_second). * CONSTANTS[42] is k2 in component P4 (per_molar_per_second). * CONSTANTS[43] is k1 in component A6 (per_molar_per_second). * CONSTANTS[44] is k2 in component A6 (per_second). * CONSTANTS[45] is k1 in component R6 (per_molar_per_second). * CONSTANTS[46] is k2 in component R6 (per_second). * CONSTANTS[47] is k1 in component D4 (per_second). * CONSTANTS[48] is k2 in component D4 (per_molar_per_second). * RATES[0] is d/dt A in component differentials (molar). * RATES[1] is d/dt G in component differentials (molar). * RATES[2] is d/dt GA in component differentials (molar). * RATES[3] is d/dt T in component differentials (molar). * RATES[4] is d/dt R in component differentials (molar). * RATES[5] is d/dt GT in component differentials (molar). * RATES[6] is d/dt GD in component differentials (molar). * RATES[7] is d/dt Pi_ in component differentials (molar). * RATES[8] is d/dt D in component differentials (molar). * RATES[9] is d/dt RG in component differentials (molar). * RATES[10] is d/dt RGT in component differentials (molar). * RATES[11] is d/dt GAT in component differentials (molar). * RATES[12] is d/dt GAD in component differentials (molar). * RATES[13] is d/dt RGD in component differentials (molar). * RATES[14] is d/dt RGA in component differentials (molar). * RATES[15] is d/dt RGAT in component differentials (molar). * RATES[16] is d/dt RGAD in component differentials (molar). * There are a total of 0 condition variables. */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = 0; STATES[1] = 0; STATES[2] = 0; STATES[3] = 0.000468; STATES[4] = 1e-6; STATES[5] = 0; STATES[6] = 1e-8; STATES[7] = 0.0044; STATES[8] = 0.000149; STATES[9] = 0; STATES[10] = 0; STATES[11] = 0; STATES[12] = 0; STATES[13] = 0; STATES[14] = 0; STATES[15] = 0; STATES[16] = 0; CONSTANTS[0] = 1e-8; CONSTANTS[1] = 0.013; CONSTANTS[2] = 25; CONSTANTS[3] = 0.013; CONSTANTS[4] = 25; CONSTANTS[5] = 8780000; CONSTANTS[6] = 8; CONSTANTS[7] = 529000; CONSTANTS[8] = 8.38e-6; CONSTANTS[9] = 636000000; CONSTANTS[10] = 0.0179; CONSTANTS[11] = 9.03e-7; CONSTANTS[12] = 0.0001; CONSTANTS[13] = 62.3; CONSTANTS[14] = 853000; CONSTANTS[15] = 0.00468; CONSTANTS[16] = 132000000; CONSTANTS[17] = 1.28; CONSTANTS[18] = 386000; CONSTANTS[19] = 0.0408; CONSTANTS[20] = 64100; CONSTANTS[21] = 0.95; CONSTANTS[22] = 94700000; CONSTANTS[23] = 0.00227; CONSTANTS[24] = 2.22e-9; CONSTANTS[25] = 2; CONSTANTS[26] = 1470000; CONSTANTS[27] = 44700; CONSTANTS[28] = 8.32e-8; CONSTANTS[29] = 0.244; CONSTANTS[30] = 0.0001; CONSTANTS[31] = 3.83; CONSTANTS[32] = 74300; CONSTANTS[33] = 0.00572; CONSTANTS[34] = 22800000; CONSTANTS[35] = 5.43e-5; CONSTANTS[36] = 1620000; CONSTANTS[37] = 0.00875; CONSTANTS[38] = 6200000; CONSTANTS[39] = 0.0433; CONSTANTS[40] = 6300000; CONSTANTS[41] = 0.478; CONSTANTS[42] = 0.00297; CONSTANTS[43] = 13000; CONSTANTS[44] = 0.685; CONSTANTS[45] = 49400000; CONSTANTS[46] = 0.00421; CONSTANTS[47] = 2.75; CONSTANTS[48] = 2940; RATES[0] = 0.1001; RATES[1] = 0.1001; RATES[2] = 0.1001; RATES[3] = 0.1001; RATES[4] = 0.1001; RATES[5] = 0.1001; RATES[6] = 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; RATES[13] = 0.1001; RATES[14] = 0.1001; RATES[15] = 0.1001; RATES[16] = 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[2]+ALGEBRAIC[9]+ALGEBRAIC[10]+ALGEBRAIC[17]+ALGEBRAIC[21]+ALGEBRAIC[23]); resid[1] = RATES[1] - ALGEBRAIC[6] - (ALGEBRAIC[2]+ALGEBRAIC[3]+ALGEBRAIC[4]); resid[2] = RATES[2] - ((ALGEBRAIC[2] - ALGEBRAIC[14])+ALGEBRAIC[16]) - ALGEBRAIC[18]; resid[3] = RATES[3] - - (ALGEBRAIC[3]+ALGEBRAIC[7]+ALGEBRAIC[14]+ALGEBRAIC[19]); resid[4] = RATES[4] - - (ALGEBRAIC[4]+ALGEBRAIC[8]+ALGEBRAIC[11]+ALGEBRAIC[18]+ALGEBRAIC[20]+ALGEBRAIC[24]); resid[5] = RATES[5] - ((ALGEBRAIC[3] - ALGEBRAIC[5]) - ALGEBRAIC[8]) - ALGEBRAIC[9]; resid[6] = RATES[6] - ((ALGEBRAIC[5] - ALGEBRAIC[6]) - ALGEBRAIC[10]) - ALGEBRAIC[11]; resid[7] = RATES[7] - ALGEBRAIC[5]+ALGEBRAIC[12]+ALGEBRAIC[15]+ALGEBRAIC[22]; resid[8] = RATES[8] - ALGEBRAIC[6]+ALGEBRAIC[13]+ALGEBRAIC[16]+ALGEBRAIC[25]; resid[9] = RATES[9] - ((ALGEBRAIC[4] - ALGEBRAIC[7])+ALGEBRAIC[13]) - ALGEBRAIC[17]; resid[10] = RATES[10] - ((ALGEBRAIC[7]+ALGEBRAIC[8]) - ALGEBRAIC[12]) - ALGEBRAIC[21]; resid[11] = RATES[11] - ((ALGEBRAIC[9]+ALGEBRAIC[14]) - ALGEBRAIC[15]) - ALGEBRAIC[20]; resid[12] = RATES[12] - ((ALGEBRAIC[10]+ALGEBRAIC[15]) - ALGEBRAIC[16]) - ALGEBRAIC[24]; resid[13] = RATES[13] - ((ALGEBRAIC[11]+ALGEBRAIC[12]) - ALGEBRAIC[13]) - ALGEBRAIC[23]; resid[14] = RATES[14] - ((ALGEBRAIC[17]+ALGEBRAIC[18]) - ALGEBRAIC[19])+ALGEBRAIC[25]; resid[15] = RATES[15] - (ALGEBRAIC[19]+ALGEBRAIC[20]+ALGEBRAIC[21]) - ALGEBRAIC[22]; resid[16] = RATES[16] - (ALGEBRAIC[22]+ALGEBRAIC[23]+ALGEBRAIC[24]) - ALGEBRAIC[25]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = (STATES[5]+STATES[10]+STATES[15]+STATES[11])/CONSTANTS[0]; ALGEBRAIC[1] = ( CONSTANTS[4]*STATES[15]+ CONSTANTS[2]*STATES[11]+ CONSTANTS[3]*STATES[10]+ CONSTANTS[1]*STATES[5])/CONSTANTS[0]; } void computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[2] = CONSTANTS[5]*STATES[1]*STATES[0] - CONSTANTS[6]*STATES[2]; ALGEBRAIC[3] = CONSTANTS[7]*STATES[1]*STATES[3] - CONSTANTS[8]*STATES[5]; ALGEBRAIC[4] = CONSTANTS[9]*STATES[1]*STATES[4] - CONSTANTS[10]*STATES[9]; ALGEBRAIC[5] = CONSTANTS[1]*STATES[5] - CONSTANTS[11]*STATES[6]*STATES[7]; ALGEBRAIC[6] = CONSTANTS[12]*STATES[6] - CONSTANTS[13]*STATES[1]*STATES[8]; ALGEBRAIC[7] = CONSTANTS[14]*STATES[9]*STATES[3] - CONSTANTS[15]*STATES[10]; ALGEBRAIC[8] = CONSTANTS[16]*STATES[5]*STATES[4] - CONSTANTS[17]*STATES[10]; ALGEBRAIC[9] = CONSTANTS[18]*STATES[5]*STATES[0] - CONSTANTS[19]*STATES[11]; ALGEBRAIC[10] = CONSTANTS[20]*STATES[6]*STATES[0] - CONSTANTS[21]*STATES[12]; ALGEBRAIC[11] = CONSTANTS[22]*STATES[6]*STATES[4] - CONSTANTS[23]*STATES[13]; ALGEBRAIC[12] = CONSTANTS[3]*STATES[10] - CONSTANTS[24]*STATES[13]*STATES[7]; ALGEBRAIC[13] = CONSTANTS[25]*STATES[13] - CONSTANTS[26]*STATES[9]*STATES[8]; ALGEBRAIC[14] = CONSTANTS[27]*STATES[2]*STATES[3] - CONSTANTS[28]*STATES[11]; ALGEBRAIC[15] = CONSTANTS[2]*STATES[11] - CONSTANTS[29]*STATES[12]*STATES[7]; ALGEBRAIC[16] = CONSTANTS[30]*STATES[12] - CONSTANTS[31]*STATES[2]*STATES[8]; ALGEBRAIC[17] = CONSTANTS[32]*STATES[9]*STATES[0] - CONSTANTS[33]*STATES[14]; ALGEBRAIC[18] = CONSTANTS[34]*STATES[2]*STATES[4] - CONSTANTS[35]*STATES[14]; ALGEBRAIC[19] = CONSTANTS[36]*STATES[14]*STATES[3] - CONSTANTS[37]*STATES[15]; ALGEBRAIC[20] = CONSTANTS[38]*STATES[11]*STATES[4] - CONSTANTS[39]*STATES[15]; ALGEBRAIC[21] = CONSTANTS[40]*STATES[10]*STATES[0] - CONSTANTS[41]*STATES[15]; ALGEBRAIC[22] = CONSTANTS[4]*STATES[15] - CONSTANTS[42]*STATES[16]*STATES[7]; ALGEBRAIC[23] = CONSTANTS[43]*STATES[13]*STATES[0] - CONSTANTS[44]*STATES[16]; ALGEBRAIC[24] = CONSTANTS[45]*STATES[12]*STATES[4] - CONSTANTS[46]*STATES[16]; ALGEBRAIC[25] = CONSTANTS[47]*STATES[16] - CONSTANTS[48]*STATES[14]*STATES[8]; } 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; SI[13] = 1.0; SI[14] = 1.0; SI[15] = 1.0; SI[16] = 1.0; } void computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { }