/* There are a total of 16 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 23 entries in the constant variable array. */ /* * VOI is time in component environment (second). * ALGEBRAIC[0] is q_L_B1_init in component environment (fmol). * CONSTANTS[0] is q_R_B1_init in component environment (fmol). * CONSTANTS[1] is q_Gs_init in component environment (fmol). * CONSTANTS[2] is q_LR_B1_init in component environment (fmol). * CONSTANTS[3] is q_R_B1Gs_init in component environment (fmol). * CONSTANTS[4] is q_LR_B1Gs_init in component environment (fmol). * CONSTANTS[5] is stimSt in component environment (second). * CONSTANTS[6] is stimDur in component environment (second). * CONSTANTS[7] is tR in component environment (second). * CONSTANTS[8] is stimMag in component environment (fmol). * CONSTANTS[9] is stimHolding in component environment (fmol). * CONSTANTS[22] is m in component environment (fmol_per_sec). * ALGEBRAIC[1] is q_L_B1 in component environment (fmol). * ALGEBRAIC[2] is q_R_B1 in component environment (fmol). * ALGEBRAIC[3] is q_Gs in component environment (fmol). * ALGEBRAIC[4] is q_LR_B1 in component environment (fmol). * ALGEBRAIC[5] is q_R_B1Gs in component environment (fmol). * ALGEBRAIC[6] is q_LR_B1Gs in component environment (fmol). * STATES[0] is q_L_B1 in component LRGbinding_B1AR (fmol). * STATES[1] is q_R_B1 in component LRGbinding_B1AR (fmol). * STATES[2] is q_Gs in component LRGbinding_B1AR (fmol). * STATES[3] is q_LR_B1 in component LRGbinding_B1AR (fmol). * STATES[4] is q_R_B1Gs in component LRGbinding_B1AR (fmol). * STATES[5] is q_LR_B1Gs in component LRGbinding_B1AR (fmol). * CONSTANTS[10] is kappa_R_C_B1 in component LRGbinding_B1AR_parameters (fmol_per_sec). * CONSTANTS[11] is kappa_R_R_B1 in component LRGbinding_B1AR_parameters (fmol_per_sec). * CONSTANTS[12] is kappa_R_L_B1 in component LRGbinding_B1AR_parameters (fmol_per_sec). * CONSTANTS[13] is K_L_B1 in component LRGbinding_B1AR_parameters (per_fmol). * CONSTANTS[14] is K_R_B1 in component LRGbinding_B1AR_parameters (per_fmol). * CONSTANTS[15] is K_Gs in component LRGbinding_B1AR_parameters (per_fmol). * CONSTANTS[16] is K_LR_B1 in component LRGbinding_B1AR_parameters (per_fmol). * CONSTANTS[17] is K_R_B1Gs in component LRGbinding_B1AR_parameters (per_fmol). * CONSTANTS[18] is K_LR_B1Gs in component LRGbinding_B1AR_parameters (per_fmol). * CONSTANTS[19] is R in component constants (J_per_K_per_mol). * CONSTANTS[20] is T in component constants (kelvin). * ALGEBRAIC[7] is mu_L_B1 in component LRGbinding_B1AR (J_per_mol). * ALGEBRAIC[8] is mu_R_B1 in component LRGbinding_B1AR (J_per_mol). * ALGEBRAIC[9] is mu_Gs in component LRGbinding_B1AR (J_per_mol). * ALGEBRAIC[10] is mu_LR_B1 in component LRGbinding_B1AR (J_per_mol). * ALGEBRAIC[11] is mu_R_B1Gs in component LRGbinding_B1AR (J_per_mol). * ALGEBRAIC[12] is mu_LR_B1Gs in component LRGbinding_B1AR (J_per_mol). * ALGEBRAIC[13] is v_R_C_B1 in component LRGbinding_B1AR (fmol_per_sec). * ALGEBRAIC[14] is v_R_R_B1 in component LRGbinding_B1AR (fmol_per_sec). * ALGEBRAIC[15] is v_R_L_B1 in component LRGbinding_B1AR (fmol_per_sec). * CONSTANTS[21] is F in component constants (C_per_mol). * RATES[0] is d/dt q_L_B1 in component LRGbinding_B1AR (fmol). * RATES[1] is d/dt q_R_B1 in component LRGbinding_B1AR (fmol). * RATES[2] is d/dt q_Gs in component LRGbinding_B1AR (fmol). * RATES[3] is d/dt q_LR_B1 in component LRGbinding_B1AR (fmol). * RATES[4] is d/dt q_R_B1Gs in component LRGbinding_B1AR (fmol). * RATES[5] is d/dt q_LR_B1Gs in component LRGbinding_B1AR (fmol). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 0.0004579000; CONSTANTS[1] = 0.1455400000; CONSTANTS[2] = 0; CONSTANTS[3] = 0; CONSTANTS[4] = 0; CONSTANTS[5] = 3.1; CONSTANTS[6] = 0.5e1; CONSTANTS[7] = 0.3e1; CONSTANTS[8] = 1e-7; CONSTANTS[9] = 1e-8; STATES[0] = 1e-16; STATES[1] = 1e-16; STATES[2] = 1e-16; STATES[3] = 1e-16; STATES[4] = 1e-16; STATES[5] = 1e-16; CONSTANTS[10] = 5573.84; CONSTANTS[11] = 641.71; CONSTANTS[12] = 1143.57; CONSTANTS[13] = 0.885956; CONSTANTS[14] = 0.834078; CONSTANTS[15] = 0.18177; CONSTANTS[16] = 7.24472; CONSTANTS[17] = 172.108; CONSTANTS[18] = 2.80863; CONSTANTS[19] = 8.31; CONSTANTS[20] = 310; CONSTANTS[21] = 96485; CONSTANTS[22] = CONSTANTS[8]/CONSTANTS[7]; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[2] = STATES[1]+CONSTANTS[0]; ALGEBRAIC[8] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[14]*ALGEBRAIC[2]); ALGEBRAIC[3] = STATES[2]+CONSTANTS[1]; ALGEBRAIC[9] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[15]*ALGEBRAIC[3]); ALGEBRAIC[5] = STATES[4]+CONSTANTS[3]; ALGEBRAIC[11] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[17]*ALGEBRAIC[5]); ALGEBRAIC[13] = CONSTANTS[10]*exp((ALGEBRAIC[8]+ALGEBRAIC[9])/( CONSTANTS[19]*CONSTANTS[20])) - exp(ALGEBRAIC[11]/( CONSTANTS[19]*CONSTANTS[20])); RATES[4] = ALGEBRAIC[13]; ALGEBRAIC[4] = STATES[3]+CONSTANTS[2]; ALGEBRAIC[10] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[16]*ALGEBRAIC[4]); ALGEBRAIC[6] = STATES[5]+CONSTANTS[4]; ALGEBRAIC[12] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[18]*ALGEBRAIC[6]); ALGEBRAIC[14] = CONSTANTS[11]*exp((ALGEBRAIC[10]+ALGEBRAIC[9])/( CONSTANTS[19]*CONSTANTS[20])) - exp(ALGEBRAIC[12]/( CONSTANTS[19]*CONSTANTS[20])); RATES[2] = - ALGEBRAIC[13] - ALGEBRAIC[14]; RATES[5] = ALGEBRAIC[14]; ALGEBRAIC[0] = (VOICONSTANTS[5] - CONSTANTS[7] ? CONSTANTS[9]+ CONSTANTS[22]*((VOI - CONSTANTS[5])+CONSTANTS[7]) : VOI>=CONSTANTS[5]&&VOI=CONSTANTS[5]+CONSTANTS[6] ? CONSTANTS[9]+ - CONSTANTS[22]*(((VOI - CONSTANTS[5]) - CONSTANTS[7]) - CONSTANTS[6]) : CONSTANTS[9]); ALGEBRAIC[1] = STATES[0]+ALGEBRAIC[0]; ALGEBRAIC[7] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[13]*ALGEBRAIC[1]); ALGEBRAIC[15] = CONSTANTS[12]*exp((ALGEBRAIC[8]+ALGEBRAIC[7])/( CONSTANTS[19]*CONSTANTS[20])) - exp(ALGEBRAIC[10]/( CONSTANTS[19]*CONSTANTS[20])); RATES[0] = - ALGEBRAIC[15]; RATES[1] = - ALGEBRAIC[13] - ALGEBRAIC[15]; RATES[3] = - ALGEBRAIC[14]+ALGEBRAIC[15]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[2] = STATES[1]+CONSTANTS[0]; ALGEBRAIC[8] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[14]*ALGEBRAIC[2]); ALGEBRAIC[3] = STATES[2]+CONSTANTS[1]; ALGEBRAIC[9] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[15]*ALGEBRAIC[3]); ALGEBRAIC[5] = STATES[4]+CONSTANTS[3]; ALGEBRAIC[11] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[17]*ALGEBRAIC[5]); ALGEBRAIC[13] = CONSTANTS[10]*exp((ALGEBRAIC[8]+ALGEBRAIC[9])/( CONSTANTS[19]*CONSTANTS[20])) - exp(ALGEBRAIC[11]/( CONSTANTS[19]*CONSTANTS[20])); ALGEBRAIC[4] = STATES[3]+CONSTANTS[2]; ALGEBRAIC[10] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[16]*ALGEBRAIC[4]); ALGEBRAIC[6] = STATES[5]+CONSTANTS[4]; ALGEBRAIC[12] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[18]*ALGEBRAIC[6]); ALGEBRAIC[14] = CONSTANTS[11]*exp((ALGEBRAIC[10]+ALGEBRAIC[9])/( CONSTANTS[19]*CONSTANTS[20])) - exp(ALGEBRAIC[12]/( CONSTANTS[19]*CONSTANTS[20])); ALGEBRAIC[0] = (VOICONSTANTS[5] - CONSTANTS[7] ? CONSTANTS[9]+ CONSTANTS[22]*((VOI - CONSTANTS[5])+CONSTANTS[7]) : VOI>=CONSTANTS[5]&&VOI=CONSTANTS[5]+CONSTANTS[6] ? CONSTANTS[9]+ - CONSTANTS[22]*(((VOI - CONSTANTS[5]) - CONSTANTS[7]) - CONSTANTS[6]) : CONSTANTS[9]); ALGEBRAIC[1] = STATES[0]+ALGEBRAIC[0]; ALGEBRAIC[7] = CONSTANTS[19]*CONSTANTS[20]*log( CONSTANTS[13]*ALGEBRAIC[1]); ALGEBRAIC[15] = CONSTANTS[12]*exp((ALGEBRAIC[8]+ALGEBRAIC[7])/( CONSTANTS[19]*CONSTANTS[20])) - exp(ALGEBRAIC[10]/( CONSTANTS[19]*CONSTANTS[20])); }