Views
A Quantitative Description of Membrane Current and its Application to Conduction and Excitation in Nerve
Generated code
Download this code
- The required array sizes are:
- VARIABLES[17]
- CONSTANTS[5]
- BOUND[1]
- RATES[4]
- The following variables are defined:
- Variable time(BOUND[0])
- Variable V(RATES[0] and VARIABLES[0])
- Variable E_R(CONSTANTS[0])
- Variable n(RATES[1] and VARIABLES[1])
- Variable alpha_n(VARIABLES[4]; recomputed after rate changes)
- Variable beta_n(VARIABLES[5]; recomputed after rate changes)
- Variable i_L(VARIABLES[6]; recomputed after rate changes)
- Variable g_L(CONSTANTS[1])
- Variable E_L(VARIABLES[7]; computed once)
- Variable Cm(CONSTANTS[2])
- Variable i_Stim(VARIABLES[8]; recomputed after rate changes)
- Variable i_Na(VARIABLES[9]; recomputed after rate changes)
- Variable g_Na(CONSTANTS[3])
- Variable E_Na(VARIABLES[10]; computed once)
- Variable m(RATES[2] and VARIABLES[2])
- Variable alpha_m(VARIABLES[11]; recomputed after rate changes)
- Variable beta_m(VARIABLES[12]; recomputed after rate changes)
- Variable h(RATES[3] and VARIABLES[3])
- Variable alpha_h(VARIABLES[13]; recomputed after rate changes)
- Variable beta_h(VARIABLES[14]; recomputed after rate changes)
- Variable i_K(VARIABLES[15]; recomputed after rate changes)
- Variable g_K(CONSTANTS[4])
- Variable E_K(VARIABLES[16]; computed once)
- No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 0;
CONSTANTS[1] = 0.3;
CONSTANTS[2] = 1;
CONSTANTS[3] = 120;
CONSTANTS[4] = 36;
}
void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[7] = (CONSTANTS[0]-10.6130);
VARIABLES[10] = (CONSTANTS[0]-115.000);
VARIABLES[16] = (CONSTANTS[0]+12.0000);
VARIABLES[0] = 0.00000;
VARIABLES[1] = 0.325000;
VARIABLES[2] = 0.0500000;
VARIABLES[3] = 0.600000;
}
void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[0] = ((-((-VARIABLES[8])+VARIABLES[9]+VARIABLES[15]+VARIABLES[6]))/CONSTANTS[2]);
RATES[2] = ((VARIABLES[11]*(1.00000-VARIABLES[2]))-(VARIABLES[12]*VARIABLES[2]));
RATES[3] = ((VARIABLES[13]*(1.00000-VARIABLES[3]))-(VARIABLES[14]*VARIABLES[3]));
RATES[1] = ((VARIABLES[4]*(1.00000-VARIABLES[1]))-(VARIABLES[5]*VARIABLES[1]));
}
void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[4] = ((0.0100000*((VARIABLES[0]+10.0000)/1.00000))/(exp(((VARIABLES[0]+10.0000)/10.0000))-1.00000));
VARIABLES[5] = (0.125000*exp((VARIABLES[0]/80.0000)));
VARIABLES[6] = (CONSTANTS[1]*(VARIABLES[0]-VARIABLES[7]));
VARIABLES[8] = ((((BOUND[0]>=10.0000))&&((BOUND[0]<=10.5000)))) ? ((-20.0000)) : (0.00000);
VARIABLES[9] = (CONSTANTS[3]*pow(VARIABLES[2],3.00000)*VARIABLES[3]*(VARIABLES[0]-VARIABLES[10]));
VARIABLES[11] = ((0.100000*((VARIABLES[0]+25.0000)/1.00000))/(exp(((VARIABLES[0]+25.0000)/10.0000))-1.00000));
VARIABLES[12] = (4.00000*exp((VARIABLES[0]/18.0000)));
VARIABLES[13] = (0.0700000*exp((VARIABLES[0]/20.0000)));
VARIABLES[14] = (1.00000/(exp(((VARIABLES[0]+30.0000)/10.0000))+1.00000));
VARIABLES[15] = (CONSTANTS[4]*pow(VARIABLES[1],4.00000)*(VARIABLES[0]-VARIABLES[16]));
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}
