Personal tools
You are here: Home Model Repository
 
Views

The Phantom Burster Model for Pancreatic Beta Cells

Generated code

Programming Language

Download this code
  • The required array sizes are:
    • VARIABLES[14]
    • CONSTANTS[21]
    • BOUND[1]
    • RATES[4]
  • The following variables are defined:
    • Variable Cm(CONSTANTS[0])
    • Variable V(RATES[0] and VARIABLES[0])
    • Variable Vm(CONSTANTS[1])
    • Variable VCa(CONSTANTS[2])
    • Variable gCa(CONSTANTS[3])
    • Variable minf(VARIABLES[4]; recomputed after rate changes)
    • Variable time(BOUND[0])
    • Variable taun(VARIABLES[5]; recomputed after rate changes)
    • Variable ninf(VARIABLES[6]; recomputed after rate changes)
    • Variable Is1(VARIABLES[7]; recomputed after rate changes)
    • Variable gs1(CONSTANTS[4])
    • Variable s1(RATES[1] and VARIABLES[1])
    • Variable s1inf(VARIABLES[8]; recomputed after rate changes)
    • Variable Vs1(CONSTANTS[5])
    • Variable ss1(CONSTANTS[6])
    • Variable taus1(CONSTANTS[7])
    • Variable sm(CONSTANTS[8])
    • Variable ICa(VARIABLES[9]; recomputed after rate changes)
    • Variable IK(VARIABLES[10]; recomputed after rate changes)
    • Variable VK(CONSTANTS[9])
    • Variable gK(CONSTANTS[10])
    • Variable n(RATES[2] and VARIABLES[2])
    • Variable lambda(CONSTANTS[11])
    • Variable tnbar(CONSTANTS[12])
    • Variable Vn(CONSTANTS[13])
    • Variable sn(CONSTANTS[14])
    • Variable Vs2(CONSTANTS[15])
    • Variable s2(RATES[3] and VARIABLES[3])
    • Variable s2inf(VARIABLES[11]; recomputed after rate changes)
    • Variable ss2(CONSTANTS[16])
    • Variable gs2(CONSTANTS[17])
    • Variable taus2(CONSTANTS[18])
    • Variable Is2(VARIABLES[12]; recomputed after rate changes)
    • Variable Il(VARIABLES[13]; recomputed after rate changes)
    • Variable gl(CONSTANTS[19])
    • Variable Vl(CONSTANTS[20])
  • No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 4524;
CONSTANTS[1] = -22;
CONSTANTS[2] = 100;
CONSTANTS[3] = 280;
CONSTANTS[4] = 20;
CONSTANTS[5] = -40;
CONSTANTS[6] = 0.5;
CONSTANTS[7] = 1000;
CONSTANTS[8] = 7.5;
CONSTANTS[9] = -80;
CONSTANTS[10] = 1300;
CONSTANTS[11] = 1.1;
CONSTANTS[12] = 9.09;
CONSTANTS[13] = -9;
CONSTANTS[14] = 10;
CONSTANTS[15] = -42;
CONSTANTS[16] = 0.4;
CONSTANTS[17] = 32;
CONSTANTS[18] = 120000;
CONSTANTS[19] = 25;
CONSTANTS[20] = -40;
}

void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[0] = -43;
VARIABLES[1] = 0.1;
VARIABLES[2] = 0.03;
VARIABLES[3] = 0.434;
}

void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[0] = ((-(VARIABLES[9]+VARIABLES[10]+VARIABLES[13]+VARIABLES[7]+VARIABLES[12]))/CONSTANTS[0]);
RATES[2] = ((CONSTANTS[11]*(VARIABLES[6]-VARIABLES[2]))/(VARIABLES[5]*VARIABLES[0]));
RATES[1] = ((VARIABLES[8]-VARIABLES[1])/CONSTANTS[7]);
RATES[3] = ((VARIABLES[11]-VARIABLES[3])/CONSTANTS[18]);
}

void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[10] = (CONSTANTS[10]*VARIABLES[2]*(VARIABLES[0]-CONSTANTS[9]));
VARIABLES[4] = (1.00000/(1.00000+exp(((CONSTANTS[1]-VARIABLES[0])/CONSTANTS[8]))));
VARIABLES[5] = (CONSTANTS[12]/(1.00000+exp(((VARIABLES[0]-CONSTANTS[13])/CONSTANTS[14]))));
VARIABLES[6] = (1.00000/(1.00000+exp(((CONSTANTS[13]-VARIABLES[0])/CONSTANTS[14]))));
VARIABLES[7] = (CONSTANTS[4]*VARIABLES[1]*(VARIABLES[0]-CONSTANTS[9]));
VARIABLES[8] = (1.00000/(1.00000+exp(((CONSTANTS[5]-VARIABLES[0])/CONSTANTS[6]))));
VARIABLES[9] = (CONSTANTS[3]*VARIABLES[4]*(VARIABLES[0]-CONSTANTS[2]));
VARIABLES[11] = (1.00000/(1.00000+exp(((CONSTANTS[15]-VARIABLES[0])/CONSTANTS[16]))));
VARIABLES[12] = (CONSTANTS[17]*VARIABLES[3]*(VARIABLES[0]-CONSTANTS[9]));
VARIABLES[13] = (CONSTANTS[19]*(VARIABLES[0]-CONSTANTS[20]));
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}