Personal tools
You are here: Home Model Repository
 
Views

A Modification of the Hodgkin-Huxley Equations Applicable to Purkinje Fibre Action and Pace-Maker Potentials

Generated code

Programming Language

Download this code
  • The required array sizes are:
    • VARIABLES[16]
    • CONSTANTS[5]
    • BOUND[1]
    • RATES[4]
  • The following variables are defined:
    • Variable time(BOUND[0])
    • Variable V(RATES[0] and VARIABLES[0])
    • Variable Cm(CONSTANTS[0])
    • Variable i_Na(VARIABLES[4]; recomputed after rate changes)
    • Variable g_Na_max(CONSTANTS[1])
    • Variable g_Na(VARIABLES[5]; recomputed after rate changes)
    • Variable E_Na(CONSTANTS[2])
    • Variable m(RATES[1] and VARIABLES[1])
    • Variable alpha_m(VARIABLES[6]; recomputed after rate changes)
    • Variable beta_m(VARIABLES[7]; recomputed after rate changes)
    • Variable h(RATES[2] and VARIABLES[2])
    • Variable alpha_h(VARIABLES[8]; recomputed after rate changes)
    • Variable beta_h(VARIABLES[9]; recomputed after rate changes)
    • Variable i_K(VARIABLES[10]; recomputed after rate changes)
    • Variable g_K1(VARIABLES[11]; recomputed after rate changes)
    • Variable g_K2(VARIABLES[12]; recomputed after rate changes)
    • Variable n(RATES[3] and VARIABLES[3])
    • Variable alpha_n(VARIABLES[13]; recomputed after rate changes)
    • Variable beta_n(VARIABLES[14]; recomputed after rate changes)
    • Variable i_Leak(VARIABLES[15]; recomputed after rate changes)
    • Variable g_L(CONSTANTS[3])
    • Variable E_L(CONSTANTS[4])
  • No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 12;
CONSTANTS[1] = 400000;
CONSTANTS[2] = 40;
CONSTANTS[3] = 75;
CONSTANTS[4] = -60;
}

void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[0] = -87;
VARIABLES[1] = 0.01;
VARIABLES[2] = 0.8;
VARIABLES[3] = 0.01;
}

void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[0] = ((-(VARIABLES[4]+VARIABLES[10]+VARIABLES[15]))/CONSTANTS[0]);
RATES[1] = ((VARIABLES[6]*(1.00000-VARIABLES[1]))-(VARIABLES[7]*VARIABLES[1]));
RATES[2] = ((VARIABLES[8]*(1.00000-VARIABLES[2]))-(VARIABLES[9]*VARIABLES[2]));
RATES[3] = ((VARIABLES[13]*(1.00000-VARIABLES[3]))-(VARIABLES[14]*VARIABLES[3]));
}

void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[6] = ((100.000*((-VARIABLES[0])-48.0000))/(exp((((-VARIABLES[0])-48.0000)/15.0000))-1.00000));
VARIABLES[7] = ((120.000*(VARIABLES[0]+8.00000))/(exp(((VARIABLES[0]+8.00000)/5.00000))-1.00000));
VARIABLES[8] = (170.000*exp((((-VARIABLES[0])-90.0000)/20.0000)));
VARIABLES[9] = (1000.00/(1.00000+exp((((-VARIABLES[0])-42.0000)/10.0000))));
VARIABLES[11] = ((1200.00*exp((((-VARIABLES[0])-90.0000)/50.0000)))+(15.0000*exp(((VARIABLES[0]+90.0000)/60.0000))));
VARIABLES[12] = (1200.00*pow(VARIABLES[3],4.00000));
VARIABLES[10] = ((VARIABLES[11]+VARIABLES[12])*(VARIABLES[0]+100.000));
VARIABLES[13] = ((0.100000*((-VARIABLES[0])-50.0000))/(exp((((-VARIABLES[0])-50.0000)/10.0000))-1.00000));
VARIABLES[14] = (2.00000*exp((((-VARIABLES[0])-90.0000)/80.0000)));
VARIABLES[15] = (CONSTANTS[3]*(VARIABLES[0]-CONSTANTS[4]));
VARIABLES[5] = (pow(VARIABLES[1],3.00000)*VARIABLES[2]*CONSTANTS[1]);
VARIABLES[4] = ((VARIABLES[5]+140.000)*(VARIABLES[0]-CONSTANTS[2]));
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}