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 16 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 34 entries in the constant variable array. */ /* * VOI is time in component interface (ms). * STATES[0] is Vm in component interface (mV). * STATES[1] is cMgADP in component interface (concentration). * STATES[2] is cNa_i in component interface (concentration). * ALGEBRAIC[15] is v_cyc in component NaK_pump (rate). * ALGEBRAIC[9] is net_free_energy in component NaK_pump (energy). * CONSTANTS[0] is body_temp in component NaK_pump (kelvin). * CONSTANTS[1] is gas_const in component NaK_pump (gas_constant). * CONSTANTS[2] is faraday_const in component NaK_pump (faraday_constant). * CONSTANTS[3] is k1 in component NaK_pump (rate). * CONSTANTS[4] is minus_k1 in component NaK_pump (minus_k1_rate). * CONSTANTS[5] is k2 in component NaK_pump (rate). * CONSTANTS[6] is minus_k2 in component NaK_pump (rate). * CONSTANTS[7] is k3 in component NaK_pump (rate). * CONSTANTS[8] is minus_k3 in component NaK_pump (minus_k3_rate). * CONSTANTS[9] is k4 in component NaK_pump (rate). * CONSTANTS[10] is minus_k4 in component NaK_pump (rate). * CONSTANTS[11] is eq_Na_base_e in component NaK_pump (concentration). * CONSTANTS[12] is eq_Na_base_i in component NaK_pump (concentration). * CONSTANTS[13] is eq_K_e in component NaK_pump (concentration). * CONSTANTS[14] is eq_K_i in component NaK_pump (concentration). * CONSTANTS[15] is eq_MgATP in component NaK_pump (concentration). * CONSTANTS[16] is eq_HPi in component NaK_pump (concentration). * CONSTANTS[17] is eq_KPi in component NaK_pump (concentration). * CONSTANTS[18] is eq_NaPi in component NaK_pump (concentration). * ALGEBRAIC[3] is dimless_Na_e in component NaK_pump (dimensionless). * ALGEBRAIC[1] is dimless_Na_i in component NaK_pump (dimensionless). * CONSTANTS[27] is dimless_K_e in component NaK_pump (dimensionless). * CONSTANTS[26] is dimless_K_i in component NaK_pump (dimensionless). * CONSTANTS[28] is dimless_MgATP in component NaK_pump (dimensionless). * ALGEBRAIC[5] is alpha1 in component NaK_pump (rate). * CONSTANTS[29] is alpha2 in component NaK_pump (rate). * ALGEBRAIC[7] is alpha3 in component NaK_pump (rate). * CONSTANTS[30] is alpha4 in component NaK_pump (rate). * ALGEBRAIC[10] is minus_alpha1 in component NaK_pump (rate). * ALGEBRAIC[11] is minus_alpha2 in component NaK_pump (rate). * ALGEBRAIC[12] is minus_alpha3 in component NaK_pump (rate). * ALGEBRAIC[13] is minus_alpha4 in component NaK_pump (rate). * CONSTANTS[19] is cNa_e in component NaK_pump (concentration). * CONSTANTS[20] is cK_e in component NaK_pump (concentration). * CONSTANTS[21] is cK_i in component NaK_pump (concentration). * CONSTANTS[22] is cMgATP in component NaK_pump (concentration). * CONSTANTS[23] is cPi_sum in component NaK_pump (concentration). * ALGEBRAIC[0] is cPi in component NaK_pump (concentration). * CONSTANTS[24] is cH in component NaK_pump (concentration). * ALGEBRAIC[2] is dG_Na in component NaK_pump (energy). * ALGEBRAIC[4] is dG_K in component NaK_pump (energy). * ALGEBRAIC[6] is dG_pump in component NaK_pump (energy). * ALGEBRAIC[8] is dG_ATP in component NaK_pump (energy). * CONSTANTS[25] is partition_factor in component NaK_pump (dimensionless). * ALGEBRAIC[14] is diagram_sum in component NaK_pump (rate_diagram_sum). * RATES[0] is d/dt Vm in component interface (mV). * RATES[1] is d/dt cMgADP in component interface (concentration). * RATES[2] is d/dt cNa_i in component interface (concentration). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = -150; STATES[1] = 0.01; STATES[2] = 50.; CONSTANTS[0] = 310.; CONSTANTS[1] = 8.314; CONSTANTS[2] = 96485.; CONSTANTS[3] = 1050.; CONSTANTS[4] = 172.1; CONSTANTS[5] = 481.; CONSTANTS[6] = 40.1; CONSTANTS[7] = 2000.; CONSTANTS[8] = 79287.1; CONSTANTS[9] = 320.; CONSTANTS[10] = 40.1; CONSTANTS[11] = 15.5; CONSTANTS[12] = 2.49; CONSTANTS[13] = 0.213; CONSTANTS[14] = 0.5; CONSTANTS[15] = 2.51; CONSTANTS[16] = 0.000169; CONSTANTS[17] = 292.; CONSTANTS[18] = 224.; CONSTANTS[19] = 150.; CONSTANTS[20] = 5.4; CONSTANTS[21] = 140.; CONSTANTS[22] = 9.8; CONSTANTS[23] = 4.2; CONSTANTS[24] = 0.000081283; CONSTANTS[25] = -0.031288692380984445; CONSTANTS[26] = CONSTANTS[21]/CONSTANTS[14]; CONSTANTS[31] = 1.00000; CONSTANTS[32] = 0.00000; CONSTANTS[33] = 0.00000; CONSTANTS[27] = CONSTANTS[20]/CONSTANTS[13]; CONSTANTS[28] = CONSTANTS[22]/CONSTANTS[15]; CONSTANTS[29] = CONSTANTS[5]; CONSTANTS[30] = ( CONSTANTS[9]*CONSTANTS[28])/(1.00000+CONSTANTS[28]); } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { RATES[0] = CONSTANTS[31]; RATES[1] = CONSTANTS[32]; RATES[2] = CONSTANTS[33]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = CONSTANTS[23]/(1.00000+CONSTANTS[21]/CONSTANTS[17]+CONSTANTS[24]/CONSTANTS[16]+STATES[2]/CONSTANTS[18]); ALGEBRAIC[1] = STATES[2]/( CONSTANTS[12]*exp(( CONSTANTS[25]*CONSTANTS[2]*0.00100000*STATES[0])/( 3.00000*CONSTANTS[1]*CONSTANTS[0]))); ALGEBRAIC[2] = CONSTANTS[1]*CONSTANTS[0]*log(CONSTANTS[19]/STATES[2]) - CONSTANTS[2]*0.00100000*STATES[0]; ALGEBRAIC[3] = CONSTANTS[19]/( CONSTANTS[11]*exp(( (1.00000+CONSTANTS[25])*CONSTANTS[2]*0.00100000*STATES[0])/( 3.00000*CONSTANTS[1]*CONSTANTS[0]))); ALGEBRAIC[4] = CONSTANTS[1]*CONSTANTS[0]*log(CONSTANTS[21]/CONSTANTS[20])+ CONSTANTS[2]*0.00100000*STATES[0]; ALGEBRAIC[5] = ( CONSTANTS[3]*pow(ALGEBRAIC[1], 3.00000))/((pow(1.00000+ALGEBRAIC[1], 3.00000)+pow(1.00000+CONSTANTS[26], 2.00000)) - 1.00000); ALGEBRAIC[6] = 2.00000*ALGEBRAIC[4]+ 3.00000*ALGEBRAIC[2]; ALGEBRAIC[7] = ( CONSTANTS[7]*pow(CONSTANTS[27], 2.00000))/((pow(1.00000+ALGEBRAIC[3], 3.00000)+pow(1.00000+CONSTANTS[27], 2.00000)) - 1.00000); ALGEBRAIC[8] = -29600.0 - CONSTANTS[1]*CONSTANTS[0]*log(CONSTANTS[22]/( 0.00100000*STATES[1]*ALGEBRAIC[0])); ALGEBRAIC[9] = ALGEBRAIC[8]+ALGEBRAIC[6]; ALGEBRAIC[10] = CONSTANTS[4]*STATES[1]; ALGEBRAIC[11] = ( CONSTANTS[6]*pow(ALGEBRAIC[3], 3.00000))/((pow(1.00000+ALGEBRAIC[3], 3.00000)+pow(1.00000+CONSTANTS[27], 2.00000)) - 1.00000); ALGEBRAIC[12] = ( CONSTANTS[8]*ALGEBRAIC[0]*CONSTANTS[24])/(1.00000+CONSTANTS[28]); ALGEBRAIC[13] = ( CONSTANTS[10]*pow(CONSTANTS[26], 2.00000))/((pow(1.00000+ALGEBRAIC[1], 3.00000)+pow(1.00000+CONSTANTS[26], 2.00000)) - 1.00000); ALGEBRAIC[14] = ALGEBRAIC[12]*ALGEBRAIC[11]*ALGEBRAIC[10]+ CONSTANTS[30]*ALGEBRAIC[11]*ALGEBRAIC[10]+ CONSTANTS[30]*CONSTANTS[29]*ALGEBRAIC[7]+ CONSTANTS[30]*ALGEBRAIC[10]*ALGEBRAIC[7]+ ALGEBRAIC[12]*ALGEBRAIC[11]*ALGEBRAIC[5]+ CONSTANTS[30]*ALGEBRAIC[11]*ALGEBRAIC[5]+ CONSTANTS[30]*ALGEBRAIC[5]*ALGEBRAIC[7]+ ALGEBRAIC[12]*ALGEBRAIC[5]*CONSTANTS[29]+ CONSTANTS[30]*ALGEBRAIC[5]*CONSTANTS[29]+ ALGEBRAIC[5]*CONSTANTS[29]*ALGEBRAIC[7]+ ALGEBRAIC[13]*ALGEBRAIC[12]*ALGEBRAIC[10]+ ALGEBRAIC[13]*ALGEBRAIC[12]*CONSTANTS[29]+ ALGEBRAIC[13]*ALGEBRAIC[12]*ALGEBRAIC[11]+ ALGEBRAIC[13]*ALGEBRAIC[10]*ALGEBRAIC[11]+ ALGEBRAIC[13]*CONSTANTS[29]*ALGEBRAIC[7]+ ALGEBRAIC[13]*ALGEBRAIC[10]*ALGEBRAIC[7]; ALGEBRAIC[15] = ( ALGEBRAIC[5]*CONSTANTS[29]*ALGEBRAIC[7]*CONSTANTS[30] - ALGEBRAIC[10]*ALGEBRAIC[11]*ALGEBRAIC[12]*ALGEBRAIC[13])/ALGEBRAIC[14]; }