/* There are a total of 21 entries in the algebraic variable array. There are a total of 8 entries in each of the rate and state variable arrays. There are a total of 55 entries in the constant variable array. */ /* * VOI is time in component environment (second). * STATES[0] is Vm in component membrane (millivolt). * ALGEBRAIC[17] is I_iCa in component membrane (picoampere). * ALGEBRAIC[18] is I_iNa in component membrane (picoampere). * CONSTANTS[0] is Cm in component membrane (picofarad). * ALGEBRAIC[1] is I_Ca in component I_Ca (picoampere). * ALGEBRAIC[7] is I_Na in component I_Na (picoampere). * ALGEBRAIC[3] is I_NSCC_Ca in component I_NSCC_Ca (picoampere). * ALGEBRAIC[6] is I_PM in component I_PM (picoampere). * ALGEBRAIC[5] is I_NSCC_Na in component I_NSCC_Na (picoampere). * CONSTANTS[1] is gCa in component I_Ca (picosiemens). * ALGEBRAIC[0] is ECa in component I_Ca (millivolt). * CONSTANTS[2] is T in component model_parameters (kelvin). * CONSTANTS[3] is R in component model_parameters (attojoule_per_zeptomole_kelvin). * CONSTANTS[4] is F in component model_parameters (femtocoulomb_per_zeptomole). * CONSTANTS[5] is CO in component model_parameters (micromolar). * STATES[1] is CS1 in component CS1 (micromolar). * CONSTANTS[6] is gNSCC_Ca_ in component I_NSCC_Ca (picosiemens). * ALGEBRAIC[2] is gNSCC_Ca in component I_NSCC_Ca (picosiemens). * CONSTANTS[7] is hNSCC in component model_parameters (dimensionless). * CONSTANTS[8] is ENSCC in component model_parameters (millivolt). * CONSTANTS[9] is KNSCC in component model_parameters (micromolar). * CONSTANTS[10] is gNSCC_Na_ in component I_NSCC_Na (picosiemens). * ALGEBRAIC[4] is gNSCC_Na in component I_NSCC_Na (picosiemens). * CONSTANTS[11] is gPM in component I_PM (femtoampere). * CONSTANTS[12] is KPM in component I_PM (micromolar). * CONSTANTS[13] is gNa in component I_Na (femtoampere). * CONSTANTS[14] is KNa in component I_Na (micromolar). * CONSTANTS[15] is hNa in component I_Na (dimensionless). * STATES[2] is NS1 in component NS1 (micromolar). * ALGEBRAIC[8] is JSERCA in component JSERCA (flux). * CONSTANTS[16] is VSERCA in component JSERCA (first_order_rate_constant). * CONSTANTS[17] is A2 in component JSERCA (dimensionless). * CONSTANTS[18] is A4 in component JSERCA (per_micromolar). * CONSTANTS[19] is A5 in component JSERCA (per_micromolar). * CONSTANTS[20] is A6 in component JSERCA (per_micromolar2). * STATES[3] is CER in component CER (micromolar). * ALGEBRAIC[19] is JMCU in component JMCU (flux). * CONSTANTS[21] is VMCU in component JMCU (flux). * CONSTANTS[22] is KMCU in component JMCU (micromolar). * ALGEBRAIC[9] is epsilon_INH in component JMCU (dimensionless). * CONSTANTS[23] is KINH in component JMCU (micromolar). * CONSTANTS[24] is hINH in component JMCU (dimensionless). * STATES[4] is CS2 in component CS2 (micromolar). * STATES[5] is CMT in component CMT (micromolar). * ALGEBRAIC[10] is JNCX in component JNCX (flux). * CONSTANTS[25] is VNCX in component JNCX (flux). * CONSTANTS[26] is KNCX in component JNCX (micromolar). * ALGEBRAIC[11] is JS1S2 in component JS1S2 (flux). * CONSTANTS[27] is mu_S1S2 in component JS1S2 (first_order_rate_constant). * ALGEBRAIC[20] is JIPR in component JIPR (flux). * CONSTANTS[28] is kIPR in component JIPR (first_order_rate_constant). * CONSTANTS[29] is k_1 in component JIPR (flux). * CONSTANTS[30] is k1 in component JIPR (first_order_rate_constant). * CONSTANTS[31] is k2 in component JIPR (first_order_rate_constant). * CONSTANTS[32] is r2 in component JIPR (first_order_rate_constant). * CONSTANTS[33] is r_2 in component JIPR (flux). * CONSTANTS[34] is r4 in component JIPR (first_order_rate_constant). * CONSTANTS[35] is R1 in component JIPR (micromolar). * CONSTANTS[36] is R3 in component JIPR (micromolar). * ALGEBRAIC[12] is phi1 in component JIPR (first_order_rate_constant). * ALGEBRAIC[13] is phi_1 in component JIPR (flux). * ALGEBRAIC[14] is phi2 in component JIPR (first_order_rate_constant). * STATES[6] is phi3 in component JIPR (first_order_rate_constant). * STATES[7] is H in component JIPR (dimensionless). * CONSTANTS[37] is g_beta in component JIPR (first_order_rate_constant). * CONSTANTS[38] is h_beta in component JIPR (dimensionless). * CONSTANTS[39] is g_alpha in component JIPR (per_second_squared). * CONSTANTS[40] is K_beta in component JIPR (micromolar). * CONSTANTS[50] is alpha_phi3 in component JIPR (per_second_squared). * ALGEBRAIC[15] is beta_phi3 in component JIPR (first_order_rate_constant). * CONSTANTS[41] is P in component model_parameters (micromolar). * CONSTANTS[49] is lambda_MT_S1 in component CS1 (dimensionless). * CONSTANTS[51] is lambda_ER_S1 in component CS1 (dimensionless). * CONSTANTS[42] is delta_s in component model_parameters (micromolar_coulomb). * CONSTANTS[43] is gamma_S1 in component model_parameters (dimensionless). * CONSTANTS[44] is gamma_MT in component model_parameters (dimensionless). * CONSTANTS[45] is gamma_ER in component model_parameters (dimensionless). * CONSTANTS[52] is lambda_MT_S2 in component CS2 (dimensionless). * CONSTANTS[53] is lambda_ER_S2 in component CS2 (dimensionless). * CONSTANTS[54] is lambda_S1_S2 in component CS2 (dimensionless). * CONSTANTS[46] is gamma_S2 in component model_parameters (dimensionless). * ALGEBRAIC[16] is fm in component CMT (dimensionless). * CONSTANTS[47] is Km in component CMT (micromolar). * CONSTANTS[48] is Bm in component CMT (micromolar). * RATES[0] is d/dt Vm in component membrane (millivolt). * RATES[7] is d/dt H in component JIPR (dimensionless). * RATES[6] is d/dt phi3 in component JIPR (first_order_rate_constant). * RATES[1] is d/dt CS1 in component CS1 (micromolar). * RATES[4] is d/dt CS2 in component CS2 (micromolar). * RATES[3] is d/dt CER in component CER (micromolar). * RATES[5] is d/dt CMT in component CMT (micromolar). * RATES[2] is d/dt NS1 in component NS1 (micromolar). * There are a total of 0 condition variables. */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = -70.1; CONSTANTS[0] = 20.0; CONSTANTS[1] = 0.01; CONSTANTS[2] = 310.16; CONSTANTS[3] = 8.314E-3; CONSTANTS[4] = 0.09649; CONSTANTS[5] = 1.8E3; STATES[1] = 0.120; CONSTANTS[6] = 0.12; CONSTANTS[7] = 3.0; CONSTANTS[8] = 0.0; CONSTANTS[9] = 0.12; CONSTANTS[10] = 220.0; CONSTANTS[11] = 420.0; CONSTANTS[12] = 1.0; CONSTANTS[13] = 1.5E4; CONSTANTS[14] = 1.0E4; CONSTANTS[15] = 4.0; STATES[2] = 1.01E4; CONSTANTS[16] = 1.0E5; CONSTANTS[17] = 6E-4; CONSTANTS[18] = 3.57; CONSTANTS[19] = 2.7E-5; CONSTANTS[20] = 2.31E-5; STATES[3] = 203.0; CONSTANTS[21] = 800.0; CONSTANTS[22] = 10.0; CONSTANTS[23] = 10.0; CONSTANTS[24] = 4.0; STATES[4] = 0.023; STATES[5] = 0.220; CONSTANTS[25] = 0.5; CONSTANTS[26] = 0.3; CONSTANTS[27] = 0.04; CONSTANTS[28] = 2000.0; CONSTANTS[29] = 6.4; CONSTANTS[30] = 0.0; CONSTANTS[31] = 4.0; CONSTANTS[32] = 200.0; CONSTANTS[33] = 0.0; CONSTANTS[34] = 750.0; CONSTANTS[35] = 36.0; CONSTANTS[36] = 300.0; STATES[6] = 0.306; STATES[7] = 0.787; CONSTANTS[37] = 300.0; CONSTANTS[38] = 2.0; CONSTANTS[39] = 0.02; CONSTANTS[40] = 2.0; CONSTANTS[41] = 1.0; CONSTANTS[42] = 26.0; CONSTANTS[43] = 100.0; CONSTANTS[44] = 200.0; CONSTANTS[45] = 20.0; CONSTANTS[46] = 1.0; CONSTANTS[47] = 0.01; CONSTANTS[48] = 100.0; CONSTANTS[49] = CONSTANTS[44]/CONSTANTS[43]; CONSTANTS[50] = CONSTANTS[39]; CONSTANTS[51] = CONSTANTS[45]/CONSTANTS[43]; CONSTANTS[52] = CONSTANTS[44]/CONSTANTS[46]; CONSTANTS[53] = CONSTANTS[45]/CONSTANTS[46]; CONSTANTS[54] = CONSTANTS[43]/CONSTANTS[46]; RATES[0] = 0.1001; RATES[7] = 0.1001; RATES[6] = 0.1001; RATES[1] = 0.1001; RATES[4] = 0.1001; RATES[3] = 0.1001; RATES[5] = 0.1001; RATES[2] = 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[17]+ALGEBRAIC[18])/CONSTANTS[0]); resid[1] = RATES[7] - STATES[6]*(1.00000 - STATES[7]) - (( CONSTANTS[41]*ALGEBRAIC[12]*ALGEBRAIC[14])/( CONSTANTS[41]*ALGEBRAIC[12]+ALGEBRAIC[13]))*STATES[7]; resid[2] = RATES[6] - CONSTANTS[50] - ALGEBRAIC[15]*STATES[6]; resid[3] = RATES[1] - (ALGEBRAIC[11]+ CONSTANTS[49]*ALGEBRAIC[10]) - ( (CONSTANTS[42]/2.00000)*ALGEBRAIC[17]+ CONSTANTS[51]*ALGEBRAIC[8]); resid[4] = RATES[4] - CONSTANTS[53]*ALGEBRAIC[20] - ( CONSTANTS[54]*ALGEBRAIC[11]+ CONSTANTS[52]*ALGEBRAIC[19]); resid[5] = RATES[3] - ALGEBRAIC[8] - ALGEBRAIC[20]; resid[6] = RATES[5] - ALGEBRAIC[16]*(ALGEBRAIC[19] - ALGEBRAIC[10]); resid[7] = RATES[2] - - (CONSTANTS[42]/1.00000)*ALGEBRAIC[18]; } 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[8] = ( CONSTANTS[16]*(STATES[1] - CONSTANTS[17]*STATES[3]))/(1.00000+ CONSTANTS[18]*STATES[1]+ CONSTANTS[19]*STATES[3]+ CONSTANTS[20]*STATES[1]*STATES[3]); ALGEBRAIC[10] = CONSTANTS[25]*(STATES[5]/(STATES[5]+CONSTANTS[26])); ALGEBRAIC[11] = CONSTANTS[27]*(STATES[4] - STATES[1]); ALGEBRAIC[12] = ( CONSTANTS[30]*CONSTANTS[35]+ CONSTANTS[32]*STATES[4])/(CONSTANTS[35]+STATES[4]); ALGEBRAIC[13] = ( (CONSTANTS[29]+CONSTANTS[33])*CONSTANTS[36])/(CONSTANTS[36]+STATES[4]); ALGEBRAIC[14] = ( CONSTANTS[31]*CONSTANTS[36]+ CONSTANTS[34]*STATES[4])/(CONSTANTS[36]+STATES[4]); ALGEBRAIC[15] = CONSTANTS[37]*(pow(STATES[4], CONSTANTS[38])/(pow(CONSTANTS[40], CONSTANTS[38])+pow(STATES[4], CONSTANTS[38]))); ALGEBRAIC[16] = 1.00000/(1.00000+( CONSTANTS[47]*CONSTANTS[48])/pow(CONSTANTS[47]+STATES[5], 2.00000)); ALGEBRAIC[0] = (( CONSTANTS[3]*CONSTANTS[2])/( 2.00000*CONSTANTS[4]))*log(CONSTANTS[5]/STATES[1]); ALGEBRAIC[1] = CONSTANTS[1]*(STATES[0] - ALGEBRAIC[0]); ALGEBRAIC[2] = CONSTANTS[6]*(pow(CONSTANTS[9], CONSTANTS[7])/(pow(CONSTANTS[9], CONSTANTS[7])+pow(STATES[1], CONSTANTS[7]))); ALGEBRAIC[3] = ALGEBRAIC[2]*(STATES[0] - CONSTANTS[8]); ALGEBRAIC[6] = CONSTANTS[11]*(pow(STATES[1], 2.00000)/(pow(CONSTANTS[12], 2.00000)+pow(STATES[1], 2.00000))); ALGEBRAIC[17] = ALGEBRAIC[1]+ALGEBRAIC[3]+ALGEBRAIC[6]; ALGEBRAIC[7] = CONSTANTS[13]*(pow(STATES[2], CONSTANTS[15])/(pow(CONSTANTS[14], CONSTANTS[15])+pow(STATES[2], CONSTANTS[15]))); ALGEBRAIC[4] = CONSTANTS[10]*(pow(CONSTANTS[9], CONSTANTS[7])/(pow(CONSTANTS[9], CONSTANTS[7])+pow(STATES[1], CONSTANTS[7]))); ALGEBRAIC[5] = ALGEBRAIC[4]*(STATES[0] - CONSTANTS[8]); ALGEBRAIC[18] = ALGEBRAIC[5]+ALGEBRAIC[7]; ALGEBRAIC[9] = pow(CONSTANTS[23], CONSTANTS[24])/(pow(CONSTANTS[23], CONSTANTS[24])+pow(STATES[5], CONSTANTS[24])); ALGEBRAIC[19] = CONSTANTS[21]*(pow(STATES[4], 2.00000)/(pow(CONSTANTS[22], 2.00000)+pow(STATES[4], 2.00000)))*ALGEBRAIC[9]; ALGEBRAIC[20] = CONSTANTS[28]*pow(( CONSTANTS[41]*ALGEBRAIC[12]*STATES[7])/( CONSTANTS[41]*ALGEBRAIC[12]+ALGEBRAIC[13]), 4.00000)*(STATES[3] - STATES[4]); } 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; } void computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { }