Personal tools
You are here: Home Model Repository
 
Views

Voltage clamp experiments in striated muscle fibres

Generated code

Programming Language

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
}