Generated Code
The following is c code generated by the CellML API from this CellML file. (Back to language selection)
The raw code is available.
/* There are a total of 6 entries in the algebraic variable array. There are a total of 1 entries in each of the rate and state variable arrays. There are a total of 29 entries in the constant variable array. */ /* * VOI is time in component environment (second). * CONSTANTS[0] is k_p1 in component SERCA (second_order_rate_constant). * CONSTANTS[1] is k_p2 in component SERCA (first_order_rate_constant). * CONSTANTS[2] is k_p3 in component SERCA (first_order_rate_constant). * CONSTANTS[3] is k_m1 in component SERCA (first_order_rate_constant). * CONSTANTS[4] is k_m2 in component SERCA (second_order_rate_constant). * CONSTANTS[5] is k_m3 in component SERCA (second_order_rate_constant). * CONSTANTS[6] is kdcai in component SERCA (millimolar). * CONSTANTS[7] is kdcasr in component SERCA (millimolar). * CONSTANTS[8] is kdh1 in component SERCA (millimolar). * CONSTANTS[9] is kdhi in component SERCA (millimolar_squared). * CONSTANTS[10] is kdhsr in component SERCA (millimolar_squared). * CONSTANTS[11] is kdh in component SERCA (millimolar). * CONSTANTS[12] is n in component SERCA (dimensionless). * CONSTANTS[13] is Ca_i in component SERCA (millimolar). * STATES[0] is Ca_sr in component SERCA (millimolar). * CONSTANTS[14] is H_i in component SERCA (millimolar). * CONSTANTS[15] is ATP in component SERCA (millimolar). * CONSTANTS[16] is ADP in component SERCA (millimolar). * CONSTANTS[17] is P_i in component SERCA (millimolar). * CONSTANTS[18] is T_Cai in component SERCA (dimensionless). * ALGEBRAIC[0] is T_Casr in component SERCA (dimensionless). * CONSTANTS[19] is T_H1 in component SERCA (dimensionless). * CONSTANTS[20] is T_Hi in component SERCA (dimensionless). * CONSTANTS[21] is T_Hsr in component SERCA (dimensionless). * CONSTANTS[22] is T_H in component SERCA (dimensionless). * CONSTANTS[23] is a_p1 in component SERCA (first_order_rate_constant). * CONSTANTS[24] is a_p2 in component SERCA (first_order_rate_constant). * ALGEBRAIC[1] is a_p3 in component SERCA (first_order_rate_constant). * CONSTANTS[25] is a_m1 in component SERCA (first_order_rate_constant). * ALGEBRAIC[2] is a_m2 in component SERCA (first_order_rate_constant). * CONSTANTS[26] is a_m3 in component SERCA (first_order_rate_constant). * ALGEBRAIC[3] is s1 in component SERCA (per_second_squared). * ALGEBRAIC[4] is s2 in component SERCA (per_second_squared). * CONSTANTS[27] is s3 in component SERCA (per_second_squared). * ALGEBRAIC[5] is v_cycle in component SERCA (first_order_rate_constant). * RATES[0] is d/dt Ca_sr in component SERCA (millimolar). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 25900; CONSTANTS[1] = 2540; CONSTANTS[2] = 20.5; CONSTANTS[3] = 16; CONSTANTS[4] = 67200; CONSTANTS[5] = 149; CONSTANTS[6] = 0.9; CONSTANTS[7] = 2.24; CONSTANTS[8] = 1.09e-5; CONSTANTS[9] = 3.54e-3; CONSTANTS[10] = 1.05e-8; CONSTANTS[11] = 7.24e-5; CONSTANTS[12] = 2; CONSTANTS[13] = 150e-6; STATES[0] = 0; CONSTANTS[14] = 1e-4; CONSTANTS[15] = 5; CONSTANTS[16] = 36.3e-3; CONSTANTS[17] = 1; CONSTANTS[18] = CONSTANTS[13]/CONSTANTS[6]; CONSTANTS[28] = 1.00000; CONSTANTS[19] = CONSTANTS[14]/CONSTANTS[8]; CONSTANTS[20] = pow(CONSTANTS[14], CONSTANTS[12])/CONSTANTS[9]; CONSTANTS[21] = pow(CONSTANTS[14], CONSTANTS[12])/CONSTANTS[10]; CONSTANTS[22] = CONSTANTS[14]/CONSTANTS[11]; CONSTANTS[23] = CONSTANTS[0]*CONSTANTS[15]; CONSTANTS[24] = ( CONSTANTS[1]*pow(CONSTANTS[18], 2.00000))/(pow(CONSTANTS[18], 2.00000)+ pow(CONSTANTS[18], 2.00000)*CONSTANTS[20]+ CONSTANTS[20]*(1.00000+CONSTANTS[19])); CONSTANTS[25] = ( CONSTANTS[3]*CONSTANTS[20])/(pow(CONSTANTS[18], 2.00000)+ pow(CONSTANTS[18], 2.00000)*CONSTANTS[20]+ CONSTANTS[20]*(1.00000+CONSTANTS[19])); CONSTANTS[26] = CONSTANTS[5]*CONSTANTS[17]; CONSTANTS[27] = CONSTANTS[23]*CONSTANTS[24]+ CONSTANTS[26]*CONSTANTS[25]+ CONSTANTS[26]*CONSTANTS[24]; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { RATES[0] = CONSTANTS[28]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = STATES[0]/CONSTANTS[7]; ALGEBRAIC[1] = ( CONSTANTS[2]*CONSTANTS[21])/( pow(ALGEBRAIC[0], 2.00000)*CONSTANTS[22]+CONSTANTS[22]+ CONSTANTS[21]*(1.00000+CONSTANTS[22])); ALGEBRAIC[2] = ( CONSTANTS[4]*CONSTANTS[16]*pow(ALGEBRAIC[0], 2.00000)*CONSTANTS[22])/( pow(ALGEBRAIC[0], 2.00000)*CONSTANTS[22]+CONSTANTS[22]+ CONSTANTS[21]*(1.00000+CONSTANTS[22])); ALGEBRAIC[3] = CONSTANTS[24]*ALGEBRAIC[1]+ CONSTANTS[25]*ALGEBRAIC[1]+ CONSTANTS[25]*ALGEBRAIC[2]; ALGEBRAIC[4] = CONSTANTS[23]*ALGEBRAIC[1]+ ALGEBRAIC[2]*CONSTANTS[23]+ ALGEBRAIC[2]*CONSTANTS[26]; ALGEBRAIC[5] = ( CONSTANTS[23]*CONSTANTS[24]*ALGEBRAIC[1] - CONSTANTS[25]*ALGEBRAIC[2]*CONSTANTS[26])/(ALGEBRAIC[3]+ALGEBRAIC[4]+CONSTANTS[27]); }