Personal tools
You are here: Home Model Repository
 
Views

Reconstruction of the action potential of ventricular myocardial fibres

Generated code

Programming Language

Download this code
  • The required array sizes are:
    • VARIABLES[26]
    • CONSTANTS[10]
    • BOUND[1]
    • RATES[8]
  • The following variables are defined:
    • Variable beta_d(VARIABLES[8]; recomputed after rate changes)
    • Variable f(RATES[0] and VARIABLES[0])
    • Variable alpha_f(VARIABLES[9]; recomputed after rate changes)
    • Variable beta_f(VARIABLES[10]; recomputed after rate changes)
    • Variable i_x1(VARIABLES[11]; recomputed after rate changes)
    • Variable x1(RATES[1] and VARIABLES[1])
    • Variable alpha_x1(VARIABLES[12]; recomputed after rate changes)
    • Variable beta_x1(VARIABLES[13]; recomputed after rate changes)
    • Variable i_K1(VARIABLES[14]; recomputed after rate changes)
    • Variable Istim(VARIABLES[15]; recomputed after rate changes)
    • Variable IstimStart(CONSTANTS[0])
    • Variable IstimEnd(CONSTANTS[1])
    • Variable IstimAmplitude(CONSTANTS[2])
    • Variable IstimPeriod(CONSTANTS[3])
    • Variable IstimPulseDuration(CONSTANTS[4])
    • Variable time(BOUND[0])
    • Variable V(RATES[2] and VARIABLES[2])
    • Variable C(CONSTANTS[5])
    • Variable i_Na(VARIABLES[16]; recomputed after rate changes)
    • Variable g_Na(CONSTANTS[6])
    • Variable E_Na(CONSTANTS[7])
    • Variable g_Nac(CONSTANTS[8])
    • Variable m(RATES[3] and VARIABLES[3])
    • Variable alpha_m(VARIABLES[17]; recomputed after rate changes)
    • Variable beta_m(VARIABLES[18]; recomputed after rate changes)
    • Variable h(RATES[4] and VARIABLES[4])
    • Variable alpha_h(VARIABLES[19]; recomputed after rate changes)
    • Variable beta_h(VARIABLES[20]; recomputed after rate changes)
    • Variable j(RATES[5] and VARIABLES[5])
    • Variable alpha_j(VARIABLES[21]; recomputed after rate changes)
    • Variable beta_j(VARIABLES[22]; recomputed after rate changes)
    • Variable i_s(VARIABLES[23]; recomputed after rate changes)
    • Variable g_s(CONSTANTS[9])
    • Variable E_s(VARIABLES[24]; recomputed after rate changes)
    • Variable Cai(RATES[6] and VARIABLES[6])
    • Variable d(RATES[7] and VARIABLES[7])
    • Variable alpha_d(VARIABLES[25]; recomputed after rate changes)
  • No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 10;
CONSTANTS[1] = 50000;
CONSTANTS[2] = 0.5;
CONSTANTS[3] = 1000;
CONSTANTS[4] = 1;
CONSTANTS[5] = 0.01;
CONSTANTS[6] = 0.04;
CONSTANTS[7] = 50;
CONSTANTS[8] = 3e-05;
CONSTANTS[9] = 0.0009;
}

void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[0] = 0.994;
VARIABLES[1] = 0.0001;
VARIABLES[2] = -84.624;
VARIABLES[3] = 0.011;
VARIABLES[4] = 0.988;
VARIABLES[5] = 0.975;
VARIABLES[6] = 0.0001;
VARIABLES[7] = 0.003;
}

void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[2] = ((VARIABLES[15]-(VARIABLES[16]+VARIABLES[23]+VARIABLES[11]+VARIABLES[14]))/CONSTANTS[5]);
RATES[3] = ((VARIABLES[17]*(1.00000-VARIABLES[3]))-(VARIABLES[18]*VARIABLES[3]));
RATES[4] = ((VARIABLES[19]*(1.00000-VARIABLES[4]))-(VARIABLES[20]*VARIABLES[4]));
RATES[5] = ((VARIABLES[21]*(1.00000-VARIABLES[5]))-(VARIABLES[22]*VARIABLES[5]));
RATES[6] = ((((-0.0100000)*VARIABLES[23])/1.00000)+(0.0700000*(0.000100000-VARIABLES[6])));
RATES[7] = ((VARIABLES[25]*(1.00000-VARIABLES[7]))-(VARIABLES[8]*VARIABLES[7]));
RATES[0] = ((VARIABLES[9]*(1.00000-VARIABLES[0]))-(VARIABLES[10]*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[8] = ((0.0700000*exp(((-(VARIABLES[2]+44.0000))/59.0000)))/(1.00000+exp(((VARIABLES[2]+44.0000)/20.0000))));
VARIABLES[9] = ((0.0120000*exp(((-(VARIABLES[2]+28.0000))/125.000)))/(1.00000+exp(((VARIABLES[2]+28.0000)/6.67000))));
VARIABLES[18] = (40.0000*exp(((-0.0560000)*(VARIABLES[2]+72.0000))));
VARIABLES[19] = (0.126000*exp(((-0.250000)*(VARIABLES[2]+77.0000))));
VARIABLES[20] = (1.70000/(exp(((-0.0820000)*(VARIABLES[2]+22.5000)))+1.00000));
VARIABLES[21] = ((0.0550000*exp(((-0.250000)*(VARIABLES[2]+78.0000))))/(exp(((-0.200000)*(VARIABLES[2]+78.0000)))+1.00000));
VARIABLES[22] = (0.300000/(exp(((-0.100000)*(VARIABLES[2]+32.0000)))+1.00000));
VARIABLES[24] = ((-82.3000)-(13.0287*log((VARIABLES[6]*0.00100000))));
VARIABLES[23] = (CONSTANTS[9]*VARIABLES[7]*VARIABLES[0]*(VARIABLES[2]-VARIABLES[24]));
VARIABLES[25] = ((0.0950000*exp(((-(VARIABLES[2]-5.00000))/100.000)))/(1.00000+exp(((-(VARIABLES[2]-5.00000))/13.8900))));
VARIABLES[10] = ((0.00650000*exp(((-(VARIABLES[2]+30.0000))/50.0000)))/(1.00000+exp(((-(VARIABLES[2]+30.0000))/5.00000))));
VARIABLES[11] = ((VARIABLES[1]*0.00800000*(exp((0.0400000*(VARIABLES[2]+77.0000)))-1.00000))/exp((0.0400000*(VARIABLES[2]+35.0000))));
VARIABLES[12] = ((0.000500000*exp(((VARIABLES[2]+50.0000)/12.1000)))/(1.00000+exp(((VARIABLES[2]+50.0000)/17.5000))));
VARIABLES[13] = ((0.00130000*exp(((-(VARIABLES[2]+20.0000))/16.6700)))/(1.00000+exp(((-(VARIABLES[2]+20.0000))/25.0000))));
VARIABLES[14] = (0.00350000*(((4.00000*(exp((0.0400000*(VARIABLES[2]+85.0000)))-1.00000))/(exp((0.0800000*(VARIABLES[2]+53.0000)))+exp((0.0400000*(VARIABLES[2]+53.0000)))))+((0.200000*(VARIABLES[2]+23.0000))/(1.00000-exp(((-0.0400000)*(VARIABLES[2]+23.0000)))))));
VARIABLES[15] = ((((BOUND[0]>=CONSTANTS[0]))&&((BOUND[0]<=CONSTANTS[1]))&&((((BOUND[0]-CONSTANTS[0])-(floor(((BOUND[0]-CONSTANTS[0])/CONSTANTS[3]))*CONSTANTS[3]))<=CONSTANTS[4])))) ? (CONSTANTS[2]) : (0.00000);
VARIABLES[16] = (((CONSTANTS[6]*pow(VARIABLES[3],3.00000)*VARIABLES[4]*VARIABLES[5])+CONSTANTS[8])*(VARIABLES[2]-CONSTANTS[7]));
VARIABLES[17] = (((-1.00000)*(VARIABLES[2]+47.0000))/(exp(((-0.100000)*(VARIABLES[2]+47.0000)))-1.00000));
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}