Views
A Modification of the Hodgkin-Huxley Equations Applicable to Purkinje Fibre Action and Pace-Maker Potentials
Generated code
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
}
