/* There are a total of 12 entries in the algebraic variable array. There are a total of 9 entries in each of the rate and state variable arrays. There are a total of 55 entries in the constant variable array. */ /* * STATES[8] is time in component environment (second). * STATES[0] is p in component p (dimensionless). * CONSTANTS[30] is v1 in component v1 (dimensionless). * ALGEBRAIC[0] is v2 in component v2 (dimensionless). * ALGEBRAIC[5] is v7 in component v7 (dimensionless). * VOI is tau in component normalised_constants (dimensionless). * STATES[1] is a in component a (dimensionless). * ALGEBRAIC[1] is v3 in component v3 (dimensionless). * CONSTANTS[48] is epsilon1 in component normalised_constants (dimensionless). * STATES[2] is c in component c (dimensionless). * ALGEBRAIC[2] is v4 in component v4 (dimensionless). * CONSTANTS[49] is epsilon2 in component normalised_constants (dimensionless). * STATES[3] is k in component k (dimensionless). * ALGEBRAIC[3] is v5 in component v5 (dimensionless). * ALGEBRAIC[4] is v6 in component v6 (dimensionless). * CONSTANTS[50] is epsilon3 in component normalised_constants (dimensionless). * STATES[4] is o in component o (dimensionless). * ALGEBRAIC[6] is v8 in component v8 (dimensionless). * CONSTANTS[51] is epsilon4 in component normalised_constants (dimensionless). * STATES[5] is n in component n (dimensionless). * ALGEBRAIC[9] is vresp in component vresp (dimensionless). * CONSTANTS[52] is epsilon5 in component normalised_constants (dimensionless). * STATES[6] is en in component en (dimensionless). * ALGEBRAIC[11] is vATP in component vATP (dimensionless). * ALGEBRAIC[7] is vANT in component vANT (dimensionless). * CONSTANTS[53] is epsilon6 in component normalised_constants (dimensionless). * STATES[7] is s in component s (dimensionless). * ALGEBRAIC[8] is vleak in component vleak (dimensionless). * CONSTANTS[54] is epsilon7 in component normalised_constants (dimensionless). * CONSTANTS[31] is beta2 in component normalised_constants (dimensionless). * CONSTANTS[32] is beta3 in component normalised_constants (dimensionless). * CONSTANTS[33] is beta4 in component normalised_constants (dimensionless). * CONSTANTS[34] is beta5 in component normalised_constants (dimensionless). * CONSTANTS[35] is delta_6 in component normalised_constants (dimensionless). * CONSTANTS[36] is beta6 in component normalised_constants (dimensionless). * CONSTANTS[37] is beta7 in component normalised_constants (dimensionless). * CONSTANTS[38] is beta8 in component normalised_constants (dimensionless). * CONSTANTS[39] is beta_ANT in component normalised_constants (dimensionless). * CONSTANTS[40] is beta_leak in component normalised_constants (dimensionless). * CONSTANTS[41] is beta_resp in component normalised_constants (dimensionless). * CONSTANTS[42] is delta_r1 in component normalised_constants (dimensionless). * CONSTANTS[43] is delta_r2 in component normalised_constants (dimensionless). * CONSTANTS[44] is beta_ATP in component normalised_constants (dimensionless). * CONSTANTS[45] is delta_atp in component normalised_constants (dimensionless). * ALGEBRAIC[10] is en_crit in component en_crit (dimensionless). * CONSTANTS[46] is Kapp_dash in component normalised_constants (dimensionless). * CONSTANTS[47] is delta_crit in component normalised_constants (dimensionless). * CONSTANTS[0] is At in component normalised_constants (millimolar). * CONSTANTS[1] is Nt in component normalised_constants (millimolar). * CONSTANTS[2] is Pyr_bar in component normalised_constants (dimensionless). * CONSTANTS[3] is Cit_bar in component normalised_constants (dimensionless). * CONSTANTS[4] is AcCoA_bar in component normalised_constants (dimensionless). * CONSTANTS[5] is KG_bar in component normalised_constants (dimensionless). * CONSTANTS[6] is OAA_bar in component normalised_constants (dimensionless). * CONSTANTS[7] is k1 in component normalised_constants (micromolar_per_second). * CONSTANTS[8] is k2 in component normalised_constants (second_order_rate_constant). * CONSTANTS[9] is k3 in component normalised_constants (second_order_rate_constant). * CONSTANTS[10] is k4 in component normalised_constants (second_order_rate_constant). * CONSTANTS[11] is k5 in component normalised_constants (third_order_rate_constant). * CONSTANTS[12] is k6 in component normalised_constants (first_order_rate_constant). * CONSTANTS[13] is k7 in component normalised_constants (second_order_rate_constant). * CONSTANTS[14] is k8 in component normalised_constants (first_order_rate_constant). * CONSTANTS[15] is kresp in component normalised_constants (millimolar_per_second). * CONSTANTS[16] is kATP in component normalised_constants (millimolar_per_second). * CONSTANTS[17] is kANT in component normalised_constants (dimensionless). * CONSTANTS[18] is kleak in component normalised_constants (molar_per_millivolt_per_second). * CONSTANTS[19] is Keq in component normalised_constants (dimensionless). * CONSTANTS[20] is K in component normalised_constants (millimolar). * CONSTANTS[21] is alpha in component normalised_constants (per_millivolt). * CONSTANTS[22] is b in component normalised_constants (per_millimolar). * CONSTANTS[23] is delta_psi_m in component normalised_constants (millivolt). * CONSTANTS[24] is R in component normalised_constants (joule_per_mole_kelvin). * CONSTANTS[25] is T in component normalised_constants (kelvin). * CONSTANTS[26] is F in component normalised_constants (coulomb_per_mole). * CONSTANTS[27] is C in component normalised_constants (millimolar_per_millivolt). * CONSTANTS[28] is Kapp in component normalised_constants (per_millimolar). * CONSTANTS[29] is Pi in component normalised_constants (millimolar). * RATES[0] is d/dt p in component p (dimensionless). * RATES[1] is d/dt a in component a (dimensionless). * RATES[2] is d/dt c in component c (dimensionless). * RATES[3] is d/dt k in component k (dimensionless). * RATES[4] is d/dt o in component o (dimensionless). * RATES[5] is d/dt n in component n (dimensionless). * RATES[6] is d/dt en in component en (dimensionless). * RATES[7] is d/dt s in component s (dimensionless). * There are a total of 0 condition variables. */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = 0.154; STATES[1] = 0.063; STATES[2] = 0.44; STATES[3] = 0.225; STATES[4] = 0.005; STATES[5] = 0.856; STATES[6] = 3.536; STATES[7] = 150.0; CONSTANTS[0] = 4.160; CONSTANTS[1] = 1.070; CONSTANTS[2] = 0.161; CONSTANTS[3] = 0.460; CONSTANTS[4] = 0.105; CONSTANTS[5] = 0.146; CONSTANTS[6] = 0.004; CONSTANTS[7] = 38; CONSTANTS[8] = 152; CONSTANTS[9] = 57142; CONSTANTS[10] = 53; CONSTANTS[11] = 40; CONSTANTS[12] = 82361; CONSTANTS[13] = 3.2e-3; CONSTANTS[14] = 3.6; CONSTANTS[15] = 2.5; CONSTANTS[16] = 131.9; CONSTANTS[17] = 0.1; CONSTANTS[18] = 0.426; CONSTANTS[19] = 0.3975; CONSTANTS[20] = 2; CONSTANTS[21] = 0.100; CONSTANTS[22] = 0.004; CONSTANTS[23] = 150.0; CONSTANTS[24] = 8.314; CONSTANTS[25] = 298; CONSTANTS[26] = 96485; CONSTANTS[27] = 6.75e-06; CONSTANTS[28] = 4.4e-6; CONSTANTS[29] = 2.440; CONSTANTS[30] = 1.00000; CONSTANTS[31] = (CONSTANTS[8]/CONSTANTS[7])*CONSTANTS[1]*CONSTANTS[2]; CONSTANTS[32] = (CONSTANTS[9]/CONSTANTS[7])*CONSTANTS[6]*CONSTANTS[4]; CONSTANTS[33] = (CONSTANTS[10]/CONSTANTS[7])*CONSTANTS[1]*CONSTANTS[3]; CONSTANTS[34] = (CONSTANTS[11]/CONSTANTS[7])*CONSTANTS[1]*CONSTANTS[0]*CONSTANTS[5]; CONSTANTS[35] = CONSTANTS[5]/( CONSTANTS[6]*CONSTANTS[19]); CONSTANTS[36] = (CONSTANTS[12]/CONSTANTS[7])*CONSTANTS[6]; CONSTANTS[37] = (CONSTANTS[13]/CONSTANTS[7])*CONSTANTS[0]*CONSTANTS[2]; CONSTANTS[38] = (CONSTANTS[14]/CONSTANTS[7])*CONSTANTS[6]; CONSTANTS[39] = (CONSTANTS[17]/CONSTANTS[7])*CONSTANTS[0]; CONSTANTS[40] = (CONSTANTS[18]/CONSTANTS[7])*CONSTANTS[23]; CONSTANTS[41] = CONSTANTS[15]/CONSTANTS[7]; CONSTANTS[42] = CONSTANTS[20]/CONSTANTS[1]; CONSTANTS[43] = CONSTANTS[21]*CONSTANTS[23]; CONSTANTS[44] = CONSTANTS[16]/CONSTANTS[7]; CONSTANTS[45] = CONSTANTS[22]*CONSTANTS[0]; CONSTANTS[46] = CONSTANTS[28]*CONSTANTS[29]; CONSTANTS[47] = 3.00000*(( 1.20000*CONSTANTS[26]*CONSTANTS[23])/( CONSTANTS[24]*CONSTANTS[25])); CONSTANTS[48] = CONSTANTS[4]/CONSTANTS[2]; CONSTANTS[49] = CONSTANTS[3]/CONSTANTS[2]; CONSTANTS[50] = CONSTANTS[5]/CONSTANTS[2]; CONSTANTS[51] = CONSTANTS[6]/CONSTANTS[2]; CONSTANTS[52] = CONSTANTS[1]/CONSTANTS[2]; CONSTANTS[53] = CONSTANTS[0]/CONSTANTS[2]; CONSTANTS[54] = (CONSTANTS[23]/CONSTANTS[2])*CONSTANTS[27]; STATES[8] = 0.1001; 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; } void computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { resid[0] = RATES[0] - CONSTANTS[30] - (ALGEBRAIC[0]+ALGEBRAIC[5]); resid[1] = RATES[1] - (ALGEBRAIC[0] - ALGEBRAIC[1])/CONSTANTS[48]; resid[2] = RATES[2] - (ALGEBRAIC[1] - ALGEBRAIC[2])/CONSTANTS[49]; resid[3] = RATES[3] - ((ALGEBRAIC[2]+ALGEBRAIC[4]) - ALGEBRAIC[3])/CONSTANTS[50]; resid[4] = RATES[4] - ((ALGEBRAIC[3]+ALGEBRAIC[5]) - (ALGEBRAIC[1]+ALGEBRAIC[6]+ALGEBRAIC[4]))/CONSTANTS[51]; resid[5] = RATES[5] - (ALGEBRAIC[9] - (ALGEBRAIC[0]+ALGEBRAIC[2]+ 2.00000*ALGEBRAIC[3]))/CONSTANTS[52]; resid[6] = RATES[6] - ((ALGEBRAIC[11]+ALGEBRAIC[3]) - (ALGEBRAIC[7]+ALGEBRAIC[5]))/CONSTANTS[53]; resid[7] = RATES[7] - ( 10.0000*ALGEBRAIC[9] - ( 3.00000*ALGEBRAIC[11]+ALGEBRAIC[8]+ALGEBRAIC[7]))/CONSTANTS[54]; resid[8] = VOI - (CONSTANTS[7]/CONSTANTS[2])*STATES[8]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { } void computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = CONSTANTS[31]*STATES[0]*STATES[5]; ALGEBRAIC[1] = CONSTANTS[32]*STATES[4]*STATES[1]; ALGEBRAIC[2] = CONSTANTS[33]*STATES[2]*STATES[5]; ALGEBRAIC[3] = CONSTANTS[34]*STATES[3]*STATES[5]*(1.00000 - STATES[6]); ALGEBRAIC[4] = CONSTANTS[36]*(STATES[4] - CONSTANTS[35]*STATES[3]); ALGEBRAIC[5] = CONSTANTS[37]*STATES[0]*STATES[6]; ALGEBRAIC[6] = CONSTANTS[38]*STATES[4]; ALGEBRAIC[7] = CONSTANTS[39]*STATES[6]; ALGEBRAIC[8] = CONSTANTS[40]*STATES[7]; ALGEBRAIC[9] = CONSTANTS[41]*((1.00000 - STATES[5])/((CONSTANTS[42]+1.00000) - STATES[5]))*(1.00000/(1.00000+exp( CONSTANTS[43]*(STATES[7] - 1.00000)))); ALGEBRAIC[10] = CONSTANTS[46]/(CONSTANTS[46]+exp( -1.00000*CONSTANTS[47]*STATES[7])); ALGEBRAIC[11] = CONSTANTS[44]*(2.00000/(1.00000+exp( CONSTANTS[45]*(STATES[6] - ALGEBRAIC[10]*STATES[7]))) - 1.00000); } void getStateInformation(double* SI) { SI[8] = 0.0; 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; } void computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { }