Views
Voltage clamp experiments in striated muscle fibres
Generated code
Download this code
- The required array sizes are:
- VARIABLES[18]
- CONSTANTS[30]
- BOUND[1]
- RATES[5]
- The following variables are defined:
- Variable t(BOUND[0])
- Variable Cm(CONSTANTS[0])
- Variable Am(CONSTANTS[1])
- Variable Istim(VARIABLES[5]; recomputed after rate changes)
- Variable IStimC(VARIABLES[6]; recomputed after rate changes)
- Variable AmC(VARIABLES[7]; computed once)
- Variable IstimStart(CONSTANTS[2])
- Variable IstimEnd(CONSTANTS[3])
- Variable IstimAmplitude(CONSTANTS[4])
- Variable IstimPeriod(CONSTANTS[5])
- Variable gNa_max(CONSTANTS[6])
- Variable ENa(CONSTANTS[7])
- Variable m(RATES[0] and VARIABLES[0])
- Variable alpha_m(VARIABLES[8]; recomputed after rate changes)
- Variable beta_m(VARIABLES[9]; recomputed after rate changes)
- Variable alpha_m_max(CONSTANTS[8])
- Variable beta_m_max(CONSTANTS[9])
- Variable Em(CONSTANTS[10])
- Variable v_alpha_m(CONSTANTS[11])
- Variable v_beta_m(CONSTANTS[12])
- Variable h(RATES[1] and VARIABLES[1])
- Variable alpha_h(VARIABLES[10]; recomputed after rate changes)
- Variable beta_h(VARIABLES[11]; recomputed after rate changes)
- Variable alpha_h_max(CONSTANTS[13])
- Variable beta_h_max(CONSTANTS[14])
- Variable Eh(CONSTANTS[15])
- Variable v_alpha_h(CONSTANTS[16])
- Variable v_beta_h(CONSTANTS[17])
- Variable IstimPulseDuration(CONSTANTS[18])
- Variable Vm(RATES[2] and VARIABLES[2])
- Variable INa(VARIABLES[12]; recomputed after rate changes)
- Variable IK(VARIABLES[13]; recomputed after rate changes)
- Variable gK_max(CONSTANTS[19])
- Variable EK(CONSTANTS[20])
- Variable n(RATES[3] and VARIABLES[3])
- Variable alpha_n(VARIABLES[14]; recomputed after rate changes)
- Variable beta_n(VARIABLES[15]; recomputed after rate changes)
- Variable alpha_n_max(CONSTANTS[21])
- Variable beta_n_max(CONSTANTS[22])
- Variable En(CONSTANTS[23])
- Variable v_alpha_n(CONSTANTS[24])
- Variable v_beta_n(CONSTANTS[25])
- Variable IL(VARIABLES[16]; recomputed after rate changes)
- Variable EL(CONSTANTS[26])
- Variable gL_max(CONSTANTS[27])
- Variable IT(VARIABLES[17]; recomputed after rate changes)
- Variable Rs(CONSTANTS[28])
- Variable Vt(RATES[4] and VARIABLES[4])
- Variable Ct(CONSTANTS[29])
- No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 0.009;
CONSTANTS[1] = 200;
CONSTANTS[2] = 10;
CONSTANTS[3] = 50000;
CONSTANTS[4] = 0.5;
CONSTANTS[5] = 1000;
CONSTANTS[6] = 1.8;
CONSTANTS[7] = 50;
CONSTANTS[8] = 0.208;
CONSTANTS[9] = 2.081;
CONSTANTS[10] = -42;
CONSTANTS[11] = 10;
CONSTANTS[12] = 18;
CONSTANTS[13] = 0.0156;
CONSTANTS[14] = 3.382;
CONSTANTS[15] = -41;
CONSTANTS[16] = 14.7;
CONSTANTS[17] = 7.6;
CONSTANTS[18] = 1;
CONSTANTS[19] = 0.415;
CONSTANTS[20] = -70;
CONSTANTS[21] = 0.0229;
CONSTANTS[22] = 0.09616;
CONSTANTS[23] = -40;
CONSTANTS[24] = 7;
CONSTANTS[25] = 40;
CONSTANTS[26] = -95;
CONSTANTS[27] = 0.0024;
CONSTANTS[28] = 15;
CONSTANTS[29] = 0.04;
}
void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[7] = CONSTANTS[1];
VARIABLES[0] = 0;
VARIABLES[1] = 1;
VARIABLES[2] = -95;
VARIABLES[3] = 0;
VARIABLES[4] = -95;
}
void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[2] = ((VARIABLES[5]-(VARIABLES[12]+VARIABLES[13]+VARIABLES[16]+VARIABLES[17]))/CONSTANTS[0]);
RATES[0] = ((VARIABLES[8]*(1.00000-VARIABLES[0]))-(VARIABLES[9]*VARIABLES[0]));
RATES[1] = ((VARIABLES[10]*(1.00000-VARIABLES[1]))-(VARIABLES[11]*VARIABLES[1]));
RATES[3] = ((VARIABLES[14]*(1.00000-VARIABLES[3]))-(VARIABLES[15]*VARIABLES[3]));
RATES[4] = ((VARIABLES[2]-VARIABLES[4])/(CONSTANTS[28]*CONSTANTS[29]));
}
void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[13] = (CONSTANTS[19]*VARIABLES[3]*VARIABLES[3]*VARIABLES[3]*VARIABLES[3]*(VARIABLES[2]-CONSTANTS[20]));
VARIABLES[14] = ((CONSTANTS[21]*(VARIABLES[2]-CONSTANTS[23]))/(1.00000-exp(((CONSTANTS[23]-VARIABLES[2])/CONSTANTS[24]))));
VARIABLES[15] = (CONSTANTS[22]*exp(((CONSTANTS[23]-VARIABLES[2])/CONSTANTS[25])));
VARIABLES[16] = (CONSTANTS[27]*(VARIABLES[2]-CONSTANTS[26]));
VARIABLES[17] = ((VARIABLES[2]-VARIABLES[4])/CONSTANTS[28]);
VARIABLES[5] = ((((BOUND[0]>=CONSTANTS[2]))&&((BOUND[0]<=CONSTANTS[3]))&&((((BOUND[0]-CONSTANTS[2])-(floor(((BOUND[0]-CONSTANTS[2])/CONSTANTS[5]))*CONSTANTS[5]))<=CONSTANTS[18])))) ? (CONSTANTS[4]) : (0.00000);
VARIABLES[8] = ((CONSTANTS[8]*(VARIABLES[2]-CONSTANTS[10]))/(1.00000-exp(((CONSTANTS[10]-VARIABLES[2])/CONSTANTS[11]))));
VARIABLES[9] = (CONSTANTS[9]*exp(((CONSTANTS[10]-VARIABLES[2])/CONSTANTS[12])));
VARIABLES[10] = (CONSTANTS[13]*exp(((CONSTANTS[15]-VARIABLES[2])/CONSTANTS[16])));
VARIABLES[11] = (CONSTANTS[14]/(1.00000+exp(((CONSTANTS[15]-VARIABLES[2])/CONSTANTS[17]))));
VARIABLES[12] = (CONSTANTS[6]*VARIABLES[0]*VARIABLES[0]*VARIABLES[0]*VARIABLES[1]*(VARIABLES[2]-CONSTANTS[7]));
#ifndef VARIABLES_FOR_RATES_ONLY
VARIABLES[6] = VARIABLES[5];
#endif
}
