/* There are a total of 7 entries in the algebraic variable array. There are a total of 3 entries in each of the rate and state variable arrays. There are a total of 10 entries in the constant variable array. */ /* * VOI is time in component environment (second). * CONSTANTS[0] is q_Cai_init in component environment (fmol). * CONSTANTS[1] is q_TRPN_init in component environment (fmol). * CONSTANTS[2] is q_Ca_TRPN_init in component environment (fmol). * ALGEBRAIC[0] is q_Cai in component environment (fmol). * ALGEBRAIC[1] is q_TRPN in component environment (fmol). * ALGEBRAIC[2] is q_Ca_TRPN in component environment (fmol). * STATES[0] is q_Cai in component TRPN (fmol). * STATES[1] is q_TRPN in component TRPN (fmol). * STATES[2] is q_Ca_TRPN in component TRPN (fmol). * CONSTANTS[3] is kappa_R_TRPNCa in component TRPN_parameters (fmol_per_sec). * CONSTANTS[4] is K_Cai in component TRPN_parameters (per_fmol). * CONSTANTS[5] is K_TRPN in component TRPN_parameters (per_fmol). * CONSTANTS[6] is K_Ca_TRPN in component TRPN_parameters (per_fmol). * CONSTANTS[7] is R in component constants (J_per_K_per_mol). * CONSTANTS[8] is T in component constants (kelvin). * ALGEBRAIC[3] is mu_Cai in component TRPN (J_per_mol). * ALGEBRAIC[4] is mu_TRPN in component TRPN (J_per_mol). * ALGEBRAIC[5] is mu_Ca_TRPN in component TRPN (J_per_mol). * ALGEBRAIC[6] is v_R_TRPNCa in component TRPN (fmol_per_sec). * CONSTANTS[9] is F in component constants (C_per_mol). * RATES[0] is d/dt q_Cai in component TRPN (fmol). * RATES[1] is d/dt q_TRPN in component TRPN (fmol). * RATES[2] is d/dt q_Ca_TRPN in component TRPN (fmol). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 6.82e-1; CONSTANTS[1] = 2.57; CONSTANTS[2] = 1e-16; STATES[0] = 1e-16; STATES[1] = 1e-16; STATES[2] = 1e-16; CONSTANTS[3] = 83.2553; CONSTANTS[4] = 1.00748; CONSTANTS[5] = 1.00748; CONSTANTS[6] = 0.0698328; CONSTANTS[7] = 8.31; CONSTANTS[8] = 310; CONSTANTS[9] = 96485; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = STATES[0]+CONSTANTS[0]; ALGEBRAIC[3] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[4]*ALGEBRAIC[0]); ALGEBRAIC[1] = STATES[1]+CONSTANTS[1]; ALGEBRAIC[4] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[5]*ALGEBRAIC[1]); ALGEBRAIC[2] = STATES[2]+CONSTANTS[2]; ALGEBRAIC[5] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[6]*ALGEBRAIC[2]); ALGEBRAIC[6] = CONSTANTS[3]*(exp((ALGEBRAIC[3]+ALGEBRAIC[4])/( CONSTANTS[7]*CONSTANTS[8])) - exp(ALGEBRAIC[5]/( CONSTANTS[7]*CONSTANTS[8]))); RATES[0] = - ALGEBRAIC[6]; RATES[1] = - ALGEBRAIC[6]; RATES[2] = ALGEBRAIC[6]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = STATES[0]+CONSTANTS[0]; ALGEBRAIC[3] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[4]*ALGEBRAIC[0]); ALGEBRAIC[1] = STATES[1]+CONSTANTS[1]; ALGEBRAIC[4] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[5]*ALGEBRAIC[1]); ALGEBRAIC[2] = STATES[2]+CONSTANTS[2]; ALGEBRAIC[5] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[6]*ALGEBRAIC[2]); ALGEBRAIC[6] = CONSTANTS[3]*(exp((ALGEBRAIC[3]+ALGEBRAIC[4])/( CONSTANTS[7]*CONSTANTS[8])) - exp(ALGEBRAIC[5]/( CONSTANTS[7]*CONSTANTS[8]))); }