Personal tools
You are here: Home Model Repository
 
Views

Reconstruction of the electrical activity of cardiac Purkinje fibres

Generated code

Programming Language

Download this code
  • The required array sizes are:
    • VARIABLES[41]
    • CONSTANTS[13]
    • BOUND[1]
    • RATES[10]
  • The following variables are defined:
    • Variable q(RATES[0] and VARIABLES[0])
    • Variable alpha_q(VARIABLES[10]; recomputed after rate changes)
    • Variable beta_q(VARIABLES[11]; recomputed after rate changes)
    • Variable r(RATES[1] and VARIABLES[1])
    • Variable alpha_r(VARIABLES[12]; recomputed after rate changes)
    • Variable beta_r(VARIABLES[13]; recomputed after rate changes)
    • Variable i_K1(VARIABLES[14]; recomputed after rate changes)
    • Variable E_K1(CONSTANTS[0])
    • Variable i_Na_b(VARIABLES[15]; recomputed after rate changes)
    • Variable g_Nab(CONSTANTS[1])
    • Variable i_Cl_b(VARIABLES[16]; recomputed after rate changes)
    • Variable g_Clb(CONSTANTS[2])
    • Variable alpha_x1(VARIABLES[17]; recomputed after rate changes)
    • Variable beta_x1(VARIABLES[18]; recomputed after rate changes)
    • Variable i_x2(VARIABLES[19]; recomputed after rate changes)
    • Variable I_x2(VARIABLES[20]; recomputed after rate changes)
    • Variable x2(RATES[2] and VARIABLES[2])
    • Variable alpha_x2(VARIABLES[21]; recomputed after rate changes)
    • Variable beta_x2(VARIABLES[22]; recomputed after rate changes)
    • Variable i_qr(VARIABLES[23]; recomputed after rate changes)
    • Variable E_Cl(CONSTANTS[3])
    • Variable g_qr(CONSTANTS[4])
    • Variable g_Na(CONSTANTS[5])
    • Variable m(RATES[3] and VARIABLES[3])
    • Variable alpha_m(VARIABLES[24]; recomputed after rate changes)
    • Variable beta_m(VARIABLES[25]; recomputed after rate changes)
    • Variable h(RATES[4] and VARIABLES[4])
    • Variable alpha_h(VARIABLES[26]; recomputed after rate changes)
    • Variable beta_h(VARIABLES[27]; recomputed after rate changes)
    • Variable i_si(VARIABLES[28]; recomputed after rate changes)
    • Variable g_si(CONSTANTS[6])
    • Variable g_si_(CONSTANTS[7])
    • Variable E_si(CONSTANTS[8])
    • Variable d(RATES[5] and VARIABLES[5])
    • Variable alpha_d(VARIABLES[29]; recomputed after rate changes)
    • Variable beta_d(VARIABLES[30]; recomputed after rate changes)
    • Variable f(RATES[6] and VARIABLES[6])
    • Variable alpha_f(VARIABLES[31]; recomputed after rate changes)
    • Variable beta_f(VARIABLES[32]; recomputed after rate changes)
    • Variable d1(VARIABLES[33]; recomputed after rate changes)
    • Variable time(BOUND[0])
    • Variable V(RATES[7] and VARIABLES[7])
    • Variable C(CONSTANTS[9])
    • Variable i_Na(VARIABLES[34]; recomputed after rate changes)
    • Variable E_Na(CONSTANTS[10])
    • Variable i_K2(VARIABLES[35]; recomputed after rate changes)
    • Variable I_K2(VARIABLES[36]; recomputed after rate changes)
    • Variable E_K(CONSTANTS[11])
    • Variable s(RATES[8] and VARIABLES[8])
    • Variable alpha_s(VARIABLES[37]; recomputed after rate changes)
    • Variable beta_s(VARIABLES[38]; recomputed after rate changes)
    • Variable E_s(CONSTANTS[12])
    • Variable i_x1(VARIABLES[39]; recomputed after rate changes)
    • Variable I_x1(VARIABLES[40]; recomputed after rate changes)
    • Variable x1(RATES[9] and VARIABLES[9])
  • No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = -30;
CONSTANTS[1] = 0.105;
CONSTANTS[2] = 0.01;
CONSTANTS[3] = -70;
CONSTANTS[4] = 2.5;
CONSTANTS[5] = 150;
CONSTANTS[6] = 0.8;
CONSTANTS[7] = 0.04;
CONSTANTS[8] = 70;
CONSTANTS[9] = 10;
CONSTANTS[10] = 40;
CONSTANTS[11] = -110;
CONSTANTS[12] = -52;
}

void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[0] = 3.11286;
VARIABLES[1] = 0.135001;
VARIABLES[2] = 0.0176854;
VARIABLES[3] = 0.0256685;
VARIABLES[4] = 0.786564;
VARIABLES[5] = 0.00293135;
VARIABLES[6] = 0.808739;
VARIABLES[7] = -78.0414;
VARIABLES[8] = 0.75474;
VARIABLES[9] = 0.0203029;
}

void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[7] = ((-(VARIABLES[34]+VARIABLES[28]+VARIABLES[35]+VARIABLES[39]+VARIABLES[19]+VARIABLES[23]+VARIABLES[14]+VARIABLES[15]+VARIABLES[16]))/CONSTANTS[9]);
RATES[3] = ((VARIABLES[24]*(1.00000-VARIABLES[3]))-(VARIABLES[25]*VARIABLES[3]));
RATES[4] = ((VARIABLES[26]*(1.00000-VARIABLES[4]))-(VARIABLES[27]*VARIABLES[4]));
RATES[5] = ((VARIABLES[29]*(1.00000-VARIABLES[5]))-(VARIABLES[30]*VARIABLES[5]));
RATES[6] = ((VARIABLES[31]*(1.00000-VARIABLES[6]))-(VARIABLES[32]*VARIABLES[6]));
RATES[8] = ((VARIABLES[37]*(1.00000-VARIABLES[8]))-(VARIABLES[38]*VARIABLES[8]));
RATES[9] = ((VARIABLES[17]*(1.00000-VARIABLES[9]))-(VARIABLES[18]*VARIABLES[9]));
RATES[2] = ((VARIABLES[21]*(1.00000-VARIABLES[2]))-(VARIABLES[22]*VARIABLES[2]));
RATES[0] = ((VARIABLES[10]*(1.00000-VARIABLES[0]))-(VARIABLES[11]*VARIABLES[0]));
RATES[1] = ((VARIABLES[12]*(1.00000-VARIABLES[1]))-(VARIABLES[13]*VARIABLES[1]));
}

void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[10] = ((0.00800000*VARIABLES[7])/(1.00000-exp(((-0.100000)*VARIABLES[7]))));
VARIABLES[22] = ((0.000300000*exp(((-(VARIABLES[7]+20.0000))/16.6700)))/(1.00000+exp(((-(VARIABLES[7]+20.0000))/25.0000))));
VARIABLES[23] = (CONSTANTS[4]*VARIABLES[0]*VARIABLES[1]*(VARIABLES[7]-CONSTANTS[3]));
VARIABLES[24] = ((VARIABLES[7]+47.0000)/(1.00000-exp(((-(VARIABLES[7]+47.0000))/10.0000))));
VARIABLES[25] = (40.0000*exp(((-0.0560000)*(VARIABLES[7]+72.0000))));
VARIABLES[26] = (0.00850000*exp(((-0.184000)*(VARIABLES[7]+71.0000))));
VARIABLES[27] = (2.50000/(exp(((-0.0820000)*(VARIABLES[7]+10.0000)))+1.00000));
VARIABLES[33] = (1.00000/(1.00000+exp(((-0.150000)*(VARIABLES[7]+40.0000)))));
VARIABLES[28] = ((CONSTANTS[6]*VARIABLES[5]*VARIABLES[6]*(VARIABLES[7]-CONSTANTS[8]))+(CONSTANTS[7]*VARIABLES[33]*(VARIABLES[7]-CONSTANTS[8])));
VARIABLES[29] = ((0.00200000*(VARIABLES[7]+40.0000))/(1.00000-exp(((-0.100000)*(VARIABLES[7]+40.0000)))));
VARIABLES[30] = (0.0200000*exp(((-0.0888000)*(VARIABLES[7]+40.0000))));
VARIABLES[31] = (0.000987000*exp(((-0.0400000)*(VARIABLES[7]+60.0000))));
VARIABLES[32] = (0.0200000/(exp(((-0.0870000)*(VARIABLES[7]+26.0000)))+1.00000));
VARIABLES[11] = (0.0800000*exp(((-0.0888000)*VARIABLES[7])));
VARIABLES[12] = (3.30000e-05*exp((-(VARIABLES[7]/17.0000))));
VARIABLES[13] = (0.0330000/(exp(((-(VARIABLES[7]+30.0000))/8.00000))+1.00000));
VARIABLES[36] = ((2.80000*(exp(((VARIABLES[7]-CONSTANTS[11])/25.0000))-1.00000))/(exp(((VARIABLES[7]+60.0000)/12.5000))+exp(((VARIABLES[7]+60.0000)/25.0000))));
VARIABLES[14] = ((VARIABLES[36]/2.80000)+((0.200000*(VARIABLES[7]-CONSTANTS[0]))/(1.00000-exp(((-(VARIABLES[7]-CONSTANTS[0]))/25.0000)))));
VARIABLES[15] = (CONSTANTS[1]*(VARIABLES[7]-CONSTANTS[10]));
VARIABLES[16] = (CONSTANTS[2]*(VARIABLES[7]-CONSTANTS[3]));
VARIABLES[17] = ((0.000500000*exp(((VARIABLES[7]+50.0000)/12.1000)))/(1.00000+exp(((VARIABLES[7]+50.0000)/17.5000))));
VARIABLES[18] = ((0.00130000*exp(((-(VARIABLES[7]+20.0000))/16.6700)))/(1.00000+exp(((-(VARIABLES[7]+20.0000))/25.0000))));
VARIABLES[20] = (25.0000+(0.385000*VARIABLES[7]));
VARIABLES[19] = (VARIABLES[2]*VARIABLES[20]);
VARIABLES[21] = ((0.000127000*1.00000)/(1.00000+exp(((-(VARIABLES[7]+19.0000))/5.00000))));
VARIABLES[34] = (CONSTANTS[5]*pow(VARIABLES[3],3.00000)*VARIABLES[4]*(VARIABLES[7]-CONSTANTS[10]));
VARIABLES[35] = (VARIABLES[36]*VARIABLES[8]);
VARIABLES[37] = ((0.00100000*(VARIABLES[7]-CONSTANTS[12]))/(1.00000-exp(((-0.200000)*(VARIABLES[7]-CONSTANTS[12])))));
VARIABLES[38] = (5.00000e-05*exp(((-0.0670000)*(VARIABLES[7]-CONSTANTS[12]))));
VARIABLES[40] = ((1.20000*(exp(((VARIABLES[7]+95.0000)/25.0000))-1.00000))/exp(((VARIABLES[7]+45.0000)/25.0000)));
VARIABLES[39] = (VARIABLES[9]*VARIABLES[40]);
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}