Generated Code
The following is c_ida code generated by the CellML API from this CellML file. (Back to language selection)
The raw code is available.
/*
There are a total of 2 entries in the algebraic variable array.
There are a total of 13 entries in each of the rate and state variable arrays.
There are a total of 65 entries in the constant variable array.
*/
/*
* VOI is time in component environment (ms).
* CONSTANTS[0] is V in component membrane (V).
* ALGEBRAIC[1] is i_Na in component sodium_current (dimensionless).
* CONSTANTS[1] is E_Na in component sodium_current (V).
* CONSTANTS[2] is g_Na in component sodium_current (per_V).
* ALGEBRAIC[0] is P_open in component Markov_model (dimensionless).
* STATES[0] is O1 in component Markov_model (dimensionless).
* STATES[1] is O2 in component Markov_model (dimensionless).
* STATES[2] is C0 in component Markov_model (dimensionless).
* STATES[3] is C1 in component Markov_model (dimensionless).
* STATES[4] is C2 in component Markov_model (dimensionless).
* STATES[5] is C3 in component Markov_model (dimensionless).
* STATES[6] is C4 in component Markov_model (dimensionless).
* STATES[7] is C0I in component Markov_model (dimensionless).
* STATES[8] is C1I in component Markov_model (dimensionless).
* STATES[9] is C2I in component Markov_model (dimensionless).
* STATES[10] is C3I in component Markov_model (dimensionless).
* STATES[11] is C4I in component Markov_model (dimensionless).
* STATES[12] is I in component Markov_model (dimensionless).
* CONSTANTS[3] is a in component Markov_model (dimensionless).
* CONSTANTS[51] is alpha in component rate_constants (first_order_rate_constant).
* CONSTANTS[52] is beta in component rate_constants (first_order_rate_constant).
* CONSTANTS[53] is cf in component rate_constants (first_order_rate_constant).
* CONSTANTS[54] is cn in component rate_constants (first_order_rate_constant).
* CONSTANTS[55] is of in component rate_constants (first_order_rate_constant).
* CONSTANTS[56] is on in component rate_constants (first_order_rate_constant).
* CONSTANTS[57] is eta in component rate_constants (first_order_rate_constant).
* CONSTANTS[58] is gamma in component rate_constants (first_order_rate_constant).
* CONSTANTS[59] is delta in component rate_constants (first_order_rate_constant).
* CONSTANTS[60] is epsilon in component rate_constants (first_order_rate_constant).
* CONSTANTS[61] is omega in component rate_constants (first_order_rate_constant).
* CONSTANTS[62] is v in component rate_constants (first_order_rate_constant).
* CONSTANTS[63] is gamma_gamma in component rate_constants (first_order_rate_constant).
* CONSTANTS[64] is delta_delta in component rate_constants (first_order_rate_constant).
* CONSTANTS[4] is R in component rate_constants (J_mol_K).
* CONSTANTS[5] is T in component rate_constants (K).
* CONSTANTS[6] is F in component rate_constants (C_mol).
* CONSTANTS[7] is k in component rate_constants (J_K).
* CONSTANTS[8] is h in component rate_constants (J_ms).
* CONSTANTS[9] is z_alpha in component rate_constants (dimensionless).
* CONSTANTS[10] is z_beta in component rate_constants (dimensionless).
* CONSTANTS[11] is z_gamma in component rate_constants (dimensionless).
* CONSTANTS[12] is z_delta in component rate_constants (dimensionless).
* CONSTANTS[13] is z_on in component rate_constants (dimensionless).
* CONSTANTS[14] is z_of in component rate_constants (dimensionless).
* CONSTANTS[15] is z_gamma_gamma in component rate_constants (dimensionless).
* CONSTANTS[16] is z_delta_delta in component rate_constants (dimensionless).
* CONSTANTS[17] is z_epsilon in component rate_constants (dimensionless).
* CONSTANTS[18] is z_omega in component rate_constants (dimensionless).
* CONSTANTS[19] is z_eta in component rate_constants (dimensionless).
* CONSTANTS[20] is z_v in component rate_constants (dimensionless).
* CONSTANTS[21] is z_cn in component rate_constants (dimensionless).
* CONSTANTS[22] is z_cf in component rate_constants (dimensionless).
* CONSTANTS[23] is delta_H_alpha in component rate_constants (J_mol).
* CONSTANTS[24] is delta_H_beta in component rate_constants (J_mol).
* CONSTANTS[25] is delta_H_cf in component rate_constants (J_mol).
* CONSTANTS[26] is delta_H_cn in component rate_constants (J_mol).
* CONSTANTS[27] is delta_H_of in component rate_constants (J_mol).
* CONSTANTS[28] is delta_H_on in component rate_constants (J_mol).
* CONSTANTS[29] is delta_H_eta in component rate_constants (J_mol).
* CONSTANTS[30] is delta_H_gamma in component rate_constants (J_mol).
* CONSTANTS[31] is delta_H_delta in component rate_constants (J_mol).
* CONSTANTS[32] is delta_H_epsilon in component rate_constants (J_mol).
* CONSTANTS[33] is delta_H_omega in component rate_constants (J_mol).
* CONSTANTS[34] is delta_H_v in component rate_constants (J_mol).
* CONSTANTS[35] is delta_H_gamma_gamma in component rate_constants (J_mol).
* CONSTANTS[36] is delta_H_delta_delta in component rate_constants (J_mol).
* CONSTANTS[37] is delta_S_alpha in component rate_constants (J_mol_K).
* CONSTANTS[38] is delta_S_beta in component rate_constants (J_mol_K).
* CONSTANTS[39] is delta_S_cf in component rate_constants (J_mol_K).
* CONSTANTS[40] is delta_S_cn in component rate_constants (J_mol_K).
* CONSTANTS[41] is delta_S_of in component rate_constants (J_mol_K).
* CONSTANTS[42] is delta_S_on in component rate_constants (J_mol_K).
* CONSTANTS[43] is delta_S_eta in component rate_constants (J_mol_K).
* CONSTANTS[44] is delta_S_gamma in component rate_constants (J_mol_K).
* CONSTANTS[45] is delta_S_delta in component rate_constants (J_mol_K).
* CONSTANTS[46] is delta_S_epsilon in component rate_constants (J_mol_K).
* CONSTANTS[47] is delta_S_omega in component rate_constants (J_mol_K).
* CONSTANTS[48] is delta_S_v in component rate_constants (J_mol_K).
* CONSTANTS[49] is delta_S_gamma_gamma in component rate_constants (J_mol_K).
* CONSTANTS[50] is delta_S_delta_delta in component rate_constants (J_mol_K).
* RATES[2] is d/dt C0 in component Markov_model (dimensionless).
* RATES[3] is d/dt C1 in component Markov_model (dimensionless).
* RATES[4] is d/dt C2 in component Markov_model (dimensionless).
* RATES[5] is d/dt C3 in component Markov_model (dimensionless).
* RATES[6] is d/dt C4 in component Markov_model (dimensionless).
* RATES[0] is d/dt O1 in component Markov_model (dimensionless).
* RATES[1] is d/dt O2 in component Markov_model (dimensionless).
* RATES[7] is d/dt C0I in component Markov_model (dimensionless).
* RATES[8] is d/dt C1I in component Markov_model (dimensionless).
* RATES[9] is d/dt C2I in component Markov_model (dimensionless).
* RATES[10] is d/dt C3I in component Markov_model (dimensionless).
* RATES[11] is d/dt C4I in component Markov_model (dimensionless).
* RATES[12] is d/dt I in component Markov_model (dimensionless).
* There are a total of 0 condition variables.
*/
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = -0.12;
CONSTANTS[1] = 0.044675;
CONSTANTS[2] = 0.0131;
STATES[0] = 0.0;
STATES[1] = 0.0;
STATES[2] = 1.0;
STATES[3] = 0.0;
STATES[4] = 0.0;
STATES[5] = 0.0;
STATES[6] = 0.0;
STATES[7] = 0.0;
STATES[8] = 0.0;
STATES[9] = 0.0;
STATES[10] = 0.0;
STATES[11] = 0.0;
STATES[12] = 0.0;
CONSTANTS[3] = 2.5218;
CONSTANTS[4] = 8.314472;
CONSTANTS[5] = 286.0;
CONSTANTS[6] = 96500.0;
CONSTANTS[7] = 1.3806504E-23;
CONSTANTS[8] = 6.62607095E-31;
CONSTANTS[9] = 0;
CONSTANTS[10] = -0.9701;
CONSTANTS[11] = 1.5703;
CONSTANTS[12] = -1.3266;
CONSTANTS[13] = 0.6625;
CONSTANTS[14] = 0;
CONSTANTS[15] = 0;
CONSTANTS[16] = -3.5596;
CONSTANTS[17] = 0;
CONSTANTS[18] = 0;
CONSTANTS[19] = 1.5717;
CONSTANTS[20] = -1.3281;
CONSTANTS[21] = 0;
CONSTANTS[22] = 0;
CONSTANTS[23] = 116900;
CONSTANTS[24] = 263870;
CONSTANTS[25] = 57533;
CONSTANTS[26] = 293270;
CONSTANTS[27] = 79035;
CONSTANTS[28] = 62385;
CONSTANTS[29] = 150333;
CONSTANTS[30] = 200240;
CONSTANTS[31] = 127970;
CONSTANTS[32] = 79183;
CONSTANTS[33] = 123020;
CONSTANTS[34] = 121900;
CONSTANTS[35] = -99967;
CONSTANTS[36] = 62555;
CONSTANTS[37] = 224.114;
CONSTANTS[38] = 708.146;
CONSTANTS[39] = 0.00711;
CONSTANTS[40] = 786.217;
CONSTANTS[41] = 1.510;
CONSTANTS[42] = 39.295;
CONSTANTS[43] = 338.915;
CONSTANTS[44] = 529.952;
CONSTANTS[45] = 229.205;
CONSTANTS[46] = 70.078;
CONSTANTS[47] = 225.175;
CONSTANTS[48] = 193.265;
CONSTANTS[49] = -578.317;
CONSTANTS[50] = -130.639;
CONSTANTS[51] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[23]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[37]/CONSTANTS[4]+( CONSTANTS[9]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[52] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[24]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[38]/CONSTANTS[4]+( CONSTANTS[10]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[53] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[25]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[39]/CONSTANTS[4]+( CONSTANTS[22]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[54] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[26]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[40]/CONSTANTS[4]+( CONSTANTS[21]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[55] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[27]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[41]/CONSTANTS[4]+( CONSTANTS[14]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[56] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[28]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[42]/CONSTANTS[4]+( CONSTANTS[13]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[57] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[29]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[43]/CONSTANTS[4]+( CONSTANTS[19]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[58] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[30]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[44]/CONSTANTS[4]+( CONSTANTS[11]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[59] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[31]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[45]/CONSTANTS[4]+( CONSTANTS[12]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[60] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[32]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[46]/CONSTANTS[4]+( CONSTANTS[17]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[61] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[33]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[47]/CONSTANTS[4]+( CONSTANTS[18]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[62] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[34]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[48]/CONSTANTS[4]+( CONSTANTS[20]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[63] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[35]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[49]/CONSTANTS[4]+( CONSTANTS[15]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[64] = (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[36]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[50]/CONSTANTS[4]+( CONSTANTS[16]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
RATES[2] = 0.1001;
RATES[3] = 0.1001;
RATES[4] = 0.1001;
RATES[5] = 0.1001;
RATES[6] = 0.1001;
RATES[0] = 0.1001;
RATES[1] = 0.1001;
RATES[7] = 0.1001;
RATES[8] = 0.1001;
RATES[9] = 0.1001;
RATES[10] = 0.1001;
RATES[11] = 0.1001;
RATES[12] = 0.1001;
}
void
computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
resid[0] = RATES[2] - ( CONSTANTS[52]*STATES[3]+ CONSTANTS[53]*STATES[7]) - (CONSTANTS[54]+ 4.00000*CONSTANTS[51])*STATES[2];
resid[1] = RATES[3] - ( 2.00000*CONSTANTS[52]*STATES[4]+ 4.00000*CONSTANTS[51]*STATES[2]+ (CONSTANTS[53]/CONSTANTS[3])*STATES[8]) - (CONSTANTS[52]+ 3.00000*CONSTANTS[51]+ CONSTANTS[54]*CONSTANTS[3])*STATES[3];
resid[2] = RATES[4] - ( 3.00000*CONSTANTS[52]*STATES[5]+ 3.00000*CONSTANTS[51]*STATES[3]+ (CONSTANTS[53]/pow(CONSTANTS[3], 2.00000))*STATES[9]) - ( 2.00000*CONSTANTS[52]+ 2.00000*CONSTANTS[51]+ CONSTANTS[54]*pow(CONSTANTS[3], 2.00000))*STATES[4];
resid[3] = RATES[5] - ( 4.00000*CONSTANTS[52]*STATES[6]+ 2.00000*CONSTANTS[51]*STATES[4]+ (CONSTANTS[53]/pow(CONSTANTS[3], 3.00000))*STATES[10]) - ( 3.00000*CONSTANTS[52]+CONSTANTS[51]+ CONSTANTS[54]*pow(CONSTANTS[3], 3.00000))*STATES[5];
resid[4] = RATES[6] - ( CONSTANTS[59]*STATES[0]+ CONSTANTS[62]*STATES[1]+ CONSTANTS[51]*STATES[5]+ (CONSTANTS[53]/pow(CONSTANTS[3], 4.00000))*STATES[11]) - ( 4.00000*CONSTANTS[52]+CONSTANTS[58]+CONSTANTS[57]+ CONSTANTS[54]*pow(CONSTANTS[3], 4.00000))*STATES[6];
resid[5] = RATES[0] - ( CONSTANTS[58]*STATES[6]+ CONSTANTS[61]*STATES[1]+ CONSTANTS[55]*STATES[12]) - (CONSTANTS[59]+CONSTANTS[60]+CONSTANTS[56])*STATES[0];
resid[6] = RATES[1] - ( CONSTANTS[60]*STATES[0]+ CONSTANTS[57]*STATES[6]) - (CONSTANTS[62]+CONSTANTS[61])*STATES[1];
resid[7] = RATES[7] - ( (CONSTANTS[52]/CONSTANTS[3])*STATES[8]+ CONSTANTS[54]*STATES[2]) - (CONSTANTS[53]+ 4.00000*CONSTANTS[51]*CONSTANTS[3])*STATES[7];
resid[8] = RATES[8] - ( (( 2.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[9]+ 4.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[7]+ CONSTANTS[54]*CONSTANTS[3]*STATES[3]) - (CONSTANTS[52]/CONSTANTS[3]+ 3.00000*CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/CONSTANTS[3])*STATES[8];
resid[9] = RATES[9] - ( (( 3.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[10]+ 3.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[8]+ CONSTANTS[54]*pow(CONSTANTS[3], 2.00000)*STATES[4]) - (( 2.00000*CONSTANTS[52])/CONSTANTS[3]+ 2.00000*CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/pow(CONSTANTS[3], 2.00000))*STATES[9];
resid[10] = RATES[10] - ( (( 4.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[11]+ 2.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[9]+ CONSTANTS[54]*pow(CONSTANTS[3], 3.00000)*STATES[5]) - (( 3.00000*CONSTANTS[52])/CONSTANTS[3]+ CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/pow(CONSTANTS[3], 3.00000))*STATES[10];
resid[11] = RATES[11] - ( CONSTANTS[64]*STATES[12]+ CONSTANTS[51]*CONSTANTS[3]*STATES[10]+ CONSTANTS[54]*pow(CONSTANTS[3], 4.00000)*STATES[6]) - (( 4.00000*CONSTANTS[52])/CONSTANTS[3]+CONSTANTS[63]+CONSTANTS[53]/pow(CONSTANTS[3], 4.00000))*STATES[11];
resid[12] = RATES[12] - ( CONSTANTS[63]*STATES[11]+ CONSTANTS[56]*STATES[0]) - (CONSTANTS[64]+CONSTANTS[55])*STATES[12];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = STATES[0]+STATES[1];
ALGEBRAIC[1] = CONSTANTS[2]*ALGEBRAIC[0]*(CONSTANTS[0] - CONSTANTS[1]);
}
void
computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
}
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;
SI[8] = 1.0;
SI[9] = 1.0;
SI[10] = 1.0;
SI[11] = 1.0;
SI[12] = 1.0;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
}
