Personal tools
You are here: Home Model Repository
 
Views

Intra- and inter-islet synchronization of metabolically driven insulin secretion

Generated code

Programming Language

Download this code
  • The required array sizes are:
    • VARIABLES[61]
    • CONSTANTS[65]
    • BOUND[1]
    • RATES[11]
  • The following variables are defined:
    • Variable delta_psi(RATES[0] and VARIABLES[0])
    • Variable Cm(CONSTANTS[0])
    • Variable JHres(VARIABLES[11]; recomputed after rate changes)
    • Variable p8(CONSTANTS[1])
    • Variable p9(CONSTANTS[2])
    • Variable p10(CONSTANTS[3])
    • Variable p11(CONSTANTS[4])
    • Variable JF1F0(VARIABLES[12]; recomputed after rate changes)
    • Variable p13(CONSTANTS[5])
    • Variable p14(CONSTANTS[6])
    • Variable p15(CONSTANTS[7])
    • Variable p16(CONSTANTS[8])
    • Variable JHatp(VARIABLES[13]; recomputed after rate changes)
    • Variable JHleak(VARIABLES[14]; recomputed after rate changes)
    • Variable p17(CONSTANTS[9])
    • Variable p18(CONSTANTS[10])
    • Variable JANT(VARIABLES[15]; recomputed after rate changes)
    • Variable p19(CONSTANTS[11])
    • Variable p20(CONSTANTS[12])
    • Variable FRT(CONSTANTS[13])
    • Variable RATm(VARIABLES[16]; recomputed after rate changes)
    • Variable Juni(VARIABLES[17]; recomputed after rate changes)
    • Variable p21(CONSTANTS[14])
    • Variable p22(CONSTANTS[15])
    • Variable JNaCa(VARIABLES[18]; recomputed after rate changes)
    • Variable p23(CONSTANTS[16])
    • Variable p24(CONSTANTS[17])
    • Variable Cam(RATES[1] and VARIABLES[1])
    • Variable fm(CONSTANTS[18])
    • Variable Jm(VARIABLES[19]; recomputed after rate changes)
    • Variable ADPm(RATES[2] and VARIABLES[2])
    • Variable ATPm(VARIABLES[20]; recomputed after rate changes)
    • Variable Amtot(CONSTANTS[19])
    • Variable V(RATES[3] and VARIABLES[3])
    • Variable C(CONSTANTS[20])
    • Variable I_K(VARIABLES[21]; recomputed after rate changes)
    • Variable gK(CONSTANTS[21])
    • Variable n(RATES[4] and VARIABLES[4])
    • Variable n_infinity(VARIABLES[22]; recomputed after rate changes)
    • Variable tau_n(CONSTANTS[22])
    • Variable I_Ca(VARIABLES[23]; recomputed after rate changes)
    • Variable gCa(CONSTANTS[23])
    • Variable m_infinity(VARIABLES[24]; recomputed after rate changes)
    • Variable I_K_Ca(VARIABLES[25]; recomputed after rate changes)
    • Variable gkCa_(CONSTANTS[24])
    • Variable gkCa(VARIABLES[26]; recomputed after rate changes)
    • Variable KD(CONSTANTS[25])
    • Variable I_K_ATP(VARIABLES[27]; recomputed after rate changes)
    • Variable gkATP_(CONSTANTS[26])
    • Variable gkATP(VARIABLES[28]; recomputed after rate changes)
    • Variable o_infinity(VARIABLES[29]; recomputed after rate changes)
    • Variable MgADP(VARIABLES[30]; recomputed after rate changes)
    • Variable ADP3_(VARIABLES[31]; recomputed after rate changes)
    • Variable ATP4_(VARIABLES[32]; recomputed after rate changes)
    • Variable ADPc(RATES[5] and VARIABLES[5])
    • Variable Jhyd(VARIABLES[33]; recomputed after rate changes)
    • Variable khyd(CONSTANTS[27])
    • Variable khydbas(CONSTANTS[28])
    • Variable ATPc(VARIABLES[34]; recomputed after rate changes)
    • Variable Actot(CONSTANTS[29])
    • Variable Cac(RATES[6] and VARIABLES[6])
    • Variable fc(CONSTANTS[30])
    • Variable Jmem(VARIABLES[35]; recomputed after rate changes)
    • Variable kPMCA(CONSTANTS[31])
    • Variable alpha(CONSTANTS[32])
    • Variable Cbas(CONSTANTS[33])
    • Variable Jleak(VARIABLES[36]; recomputed after rate changes)
    • Variable pleak(CONSTANTS[34])
    • Variable JSERCA(VARIABLES[37]; recomputed after rate changes)
    • Variable kSERCA(CONSTANTS[35])
    • Variable Jer(VARIABLES[38]; recomputed after rate changes)
    • Variable Caer(RATES[7] and VARIABLES[7])
    • Variable fer(CONSTANTS[36])
    • Variable Vc_Ver(CONSTANTS[37])
    • Variable gamma(CONSTANTS[38])
    • Variable kappa(CONSTANTS[39])
    • Variable VK(CONSTANTS[40])
    • Variable VCa(CONSTANTS[41])
    • Variable AMP(CONSTANTS[42])
    • Variable time(BOUND[0])
    • Variable JGPDH(VARIABLES[39]; recomputed after rate changes)
    • Variable kGPDH(CONSTANTS[43])
    • Variable G6P(RATES[8] and VARIABLES[8])
    • Variable JGK(CONSTANTS[44])
    • Variable FBP(RATES[9] and VARIABLES[9])
    • Variable F6P(VARIABLES[40]; recomputed after rate changes)
    • Variable JPFK(VARIABLES[41]; recomputed after rate changes)
    • Variable lambda(CONSTANTS[45])
    • Variable Vmax(CONSTANTS[46])
    • Variable w0000(VARIABLES[42]; computed once)
    • Variable w1000(VARIABLES[43]; computed once)
    • Variable w0100(VARIABLES[44]; recomputed after rate changes)
    • Variable w0010(VARIABLES[45]; recomputed after rate changes)
    • Variable w0001(VARIABLES[46]; recomputed after rate changes)
    • Variable w1100(VARIABLES[47]; recomputed after rate changes)
    • Variable w1010(VARIABLES[48]; recomputed after rate changes)
    • Variable w1001(VARIABLES[49]; recomputed after rate changes)
    • Variable w0101(VARIABLES[50]; recomputed after rate changes)
    • Variable w0011(VARIABLES[51]; recomputed after rate changes)
    • Variable w1110(VARIABLES[52]; recomputed after rate changes)
    • Variable w0111(VARIABLES[53]; recomputed after rate changes)
    • Variable w1011(VARIABLES[54]; recomputed after rate changes)
    • Variable w1101(VARIABLES[55]; recomputed after rate changes)
    • Variable w1111(VARIABLES[56]; recomputed after rate changes)
    • Variable w0110(VARIABLES[57]; recomputed after rate changes)
    • Variable f13(CONSTANTS[47])
    • Variable f23(CONSTANTS[48])
    • Variable f41(CONSTANTS[49])
    • Variable f42(CONSTANTS[50])
    • Variable f43(CONSTANTS[51])
    • Variable K1(CONSTANTS[52])
    • Variable K2(CONSTANTS[53])
    • Variable K3(CONSTANTS[54])
    • Variable K4(CONSTANTS[55])
    • Variable JPDH(VARIABLES[58]; recomputed after rate changes)
    • Variable p1(CONSTANTS[56])
    • Variable p2(CONSTANTS[57])
    • Variable p3(CONSTANTS[58])
    • Variable JGPDHbas(CONSTANTS[59])
    • Variable NADHm(RATES[10] and VARIABLES[10])
    • Variable JO(VARIABLES[59]; recomputed after rate changes)
    • Variable p4(CONSTANTS[60])
    • Variable p5(CONSTANTS[61])
    • Variable p6(CONSTANTS[62])
    • Variable p7(CONSTANTS[63])
    • Variable NADm(VARIABLES[60]; recomputed after rate changes)
    • Variable NADtot(CONSTANTS[64])
  • No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 1.8;
CONSTANTS[1] = 7;
CONSTANTS[2] = 0.1;
CONSTANTS[3] = 177;
CONSTANTS[4] = 5;
CONSTANTS[5] = 10;
CONSTANTS[6] = 190;
CONSTANTS[7] = 8.5;
CONSTANTS[8] = 35;
CONSTANTS[9] = 0.002;
CONSTANTS[10] = -0.03;
CONSTANTS[11] = 0.35;
CONSTANTS[12] = 2;
CONSTANTS[13] = 0.037;
CONSTANTS[14] = 0.04;
CONSTANTS[15] = 1.1;
CONSTANTS[16] = 0.01;
CONSTANTS[17] = 0.016;
CONSTANTS[18] = 0.01;
CONSTANTS[19] = 15;
CONSTANTS[20] = 5300;
CONSTANTS[21] = 2700;
CONSTANTS[22] = 20;
CONSTANTS[23] = 1000;
CONSTANTS[24] = 300;
CONSTANTS[25] = 0.5;
CONSTANTS[26] = 16000;
CONSTANTS[27] = 5e-05;
CONSTANTS[28] = 5e-05;
CONSTANTS[29] = 2500;
CONSTANTS[30] = 0.01;
CONSTANTS[31] = 0.1;
CONSTANTS[32] = 4.5e-06;
CONSTANTS[33] = 0.05;
CONSTANTS[34] = 0.0002;
CONSTANTS[35] = 0.4;
CONSTANTS[36] = 0.01;
CONSTANTS[37] = 31;
CONSTANTS[38] = 0.001;
CONSTANTS[39] = 0.07;
CONSTANTS[40] = -75;
CONSTANTS[41] = 25;
CONSTANTS[42] = 500;
CONSTANTS[43] = 0.0005;
CONSTANTS[44] = 0.4;
CONSTANTS[45] = 0.06;
CONSTANTS[46] = 0.005;
CONSTANTS[47] = 0.02;
CONSTANTS[48] = 0.2;
CONSTANTS[49] = 20;
CONSTANTS[50] = 20;
CONSTANTS[51] = 20;
CONSTANTS[52] = 30;
CONSTANTS[53] = 1;
CONSTANTS[54] = 50000;
CONSTANTS[55] = 220;
CONSTANTS[56] = 400;
CONSTANTS[57] = 1;
CONSTANTS[58] = 0.01;
CONSTANTS[59] = 0.0005;
CONSTANTS[60] = 0.6;
CONSTANTS[61] = 0.1;
CONSTANTS[62] = 177;
CONSTANTS[63] = 5;
CONSTANTS[64] = 10;
}

void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[42] = 1.00000;
VARIABLES[43] = pow((CONSTANTS[42]/CONSTANTS[52]),1.00000);
VARIABLES[0] = 164.000;
VARIABLES[1] = 0.200000;
VARIABLES[2] = 11.1000;
VARIABLES[3] = -60.0000;
VARIABLES[4] = 0.00000;
VARIABLES[5] = 1137.00;
VARIABLES[6] = 0.170000;
VARIABLES[7] = 345.000;
VARIABLES[8] = 301.000;
VARIABLES[9] = 2.16000;
VARIABLES[10] = 0.400000;
}

void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[8] = (CONSTANTS[44]-VARIABLES[41]);
RATES[9] = (VARIABLES[41]-(0.500000*VARIABLES[39]));
RATES[10] = (CONSTANTS[38]*(VARIABLES[58]-VARIABLES[59]));
RATES[0] = ((VARIABLES[11]-(VARIABLES[13]+VARIABLES[15]+VARIABLES[14]+VARIABLES[18]+(2.00000*VARIABLES[17])))/CONSTANTS[0]);
RATES[1] = ((-CONSTANTS[18])*VARIABLES[19]);
RATES[2] = (CONSTANTS[38]*(VARIABLES[15]-VARIABLES[12]));
RATES[3] = ((-(VARIABLES[21]+VARIABLES[23]+VARIABLES[25]+VARIABLES[27]))/CONSTANTS[20]);
RATES[4] = ((VARIABLES[22]-VARIABLES[4])/CONSTANTS[22]);
RATES[5] = (VARIABLES[33]-(CONSTANTS[39]*VARIABLES[15]));
RATES[6] = (CONSTANTS[30]*(VARIABLES[35]+VARIABLES[38]+(CONSTANTS[39]*VARIABLES[19])));
RATES[7] = ((-CONSTANTS[36])*CONSTANTS[37]*VARIABLES[38]);
}

void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[11] = (((CONSTANTS[1]*VARIABLES[10])/(CONSTANTS[2]+VARIABLES[10]))*(1.00000/(1.00000+exp(((VARIABLES[0]-CONSTANTS[3])/CONSTANTS[4])))));
VARIABLES[20] = (CONSTANTS[19]-VARIABLES[2]);
VARIABLES[12] = ((CONSTANTS[5]/(CONSTANTS[5]+VARIABLES[20]))*(CONSTANTS[8]/(1.00000+exp(((CONSTANTS[6]-VARIABLES[0])/CONSTANTS[7])))));
VARIABLES[13] = (3.00000*VARIABLES[12]);
VARIABLES[14] = ((CONSTANTS[9]*VARIABLES[0])+CONSTANTS[10]);
VARIABLES[16] = (VARIABLES[20]/VARIABLES[2]);
VARIABLES[15] = (CONSTANTS[11]*(VARIABLES[16]/(VARIABLES[16]+CONSTANTS[12]))*exp((0.500000*CONSTANTS[13]*VARIABLES[0])));
VARIABLES[17] = (((CONSTANTS[14]*VARIABLES[0])-CONSTANTS[15])*pow(VARIABLES[6],2.00000));
VARIABLES[18] = (CONSTANTS[16]*(VARIABLES[1]/VARIABLES[6])*exp((CONSTANTS[17]*VARIABLES[0])));
VARIABLES[19] = (VARIABLES[18]-VARIABLES[17]);
VARIABLES[21] = (CONSTANTS[21]*VARIABLES[4]*(VARIABLES[3]-CONSTANTS[40]));
VARIABLES[22] = (1.00000/(1.00000+exp(((-(VARIABLES[3]+16.0000))/5.00000))));
VARIABLES[24] = (1.00000/(1.00000+exp(((-(VARIABLES[3]+20.0000))/12.0000))));
VARIABLES[23] = (CONSTANTS[23]*VARIABLES[24]*(VARIABLES[3]-CONSTANTS[41]));
VARIABLES[26] = (CONSTANTS[24]*(pow(VARIABLES[6],2.00000)/(pow(CONSTANTS[25],2.00000)+pow(VARIABLES[6],2.00000))));
VARIABLES[25] = (VARIABLES[26]*(VARIABLES[3]-CONSTANTS[40]));
VARIABLES[30] = (0.165000*VARIABLES[5]);
VARIABLES[31] = (0.135000*VARIABLES[5]);
VARIABLES[34] = (CONSTANTS[29]-VARIABLES[5]);
VARIABLES[32] = (0.0500000*VARIABLES[34]);
VARIABLES[29] = (((0.0800000*(1.00000+((2.00000*VARIABLES[30])/17.0000)))+(0.890000*pow((VARIABLES[30]/17.0000),2.00000)))/(pow((1.00000+(VARIABLES[30]/17.0000)),2.00000)*(1.00000+(VARIABLES[31]/26.0000)+(VARIABLES[32]/1.00000))));
VARIABLES[28] = (CONSTANTS[26]*VARIABLES[29]);
VARIABLES[27] = (VARIABLES[28]*(VARIABLES[3]-CONSTANTS[40]));
VARIABLES[33] = (((CONSTANTS[27]*VARIABLES[6])+CONSTANTS[28])*VARIABLES[34]);
VARIABLES[35] = (-((CONSTANTS[32]*VARIABLES[23])+(CONSTANTS[31]*(VARIABLES[6]-CONSTANTS[33]))));
VARIABLES[36] = (CONSTANTS[34]*(VARIABLES[7]-VARIABLES[6]));
VARIABLES[37] = (CONSTANTS[35]*VARIABLES[6]);
VARIABLES[38] = (VARIABLES[36]-VARIABLES[37]);
VARIABLES[39] = (CONSTANTS[43]*pow((VARIABLES[9]/1.00000),0.500000));
VARIABLES[40] = (0.300000*VARIABLES[8]);
VARIABLES[51] = ((1.00000/pow(CONSTANTS[51],(1.00000*1.00000)))*pow((pow(VARIABLES[40],2.00000)/CONSTANTS[54]),1.00000)*pow((pow(VARIABLES[34],2.00000)/CONSTANTS[55]),1.00000));
VARIABLES[53] = ((1.00000/(pow(CONSTANTS[48],(1.00000*1.00000))*pow(CONSTANTS[50],(1.00000*1.00000))*pow(CONSTANTS[51],(1.00000*1.00000))))*pow((VARIABLES[9]/CONSTANTS[53]),1.00000)*pow((pow(VARIABLES[40],2.00000)/CONSTANTS[54]),1.00000)*pow((pow(VARIABLES[34],2.00000)/CONSTANTS[55]),1.00000));
VARIABLES[55] = ((1.00000/(pow(CONSTANTS[49],(1.00000*1.00000))*pow(CONSTANTS[50],(1.00000*1.00000))))*pow((CONSTANTS[42]/CONSTANTS[52]),1.00000)*pow((VARIABLES[9]/CONSTANTS[53]),1.00000)*pow((pow(VARIABLES[34],2.00000)/CONSTANTS[55]),1.00000));
VARIABLES[56] = ((1.00000/(pow(CONSTANTS[47],(1.00000*1.00000))*pow(CONSTANTS[48],(1.00000*1.00000))*pow(CONSTANTS[49],(1.00000*1.00000))*pow(CONSTANTS[50],(1.00000*1.00000))*pow(CONSTANTS[51],(1.00000*1.00000))))*pow((CONSTANTS[42]/CONSTANTS[52]),1.00000)*pow((VARIABLES[9]/CONSTANTS[53]),1.00000)*pow((pow(VARIABLES[40],2.00000)/CONSTANTS[54]),1.00000)*pow((pow(VARIABLES[34],2.00000)/CONSTANTS[55]),1.00000));
VARIABLES[46] = pow((pow(VARIABLES[34],2.00000)/CONSTANTS[55]),1.00000);
VARIABLES[44] = pow((VARIABLES[9]/CONSTANTS[53]),1.00000);
VARIABLES[45] = pow((pow(VARIABLES[40],2.00000)/CONSTANTS[54]),1.00000);
VARIABLES[47] = (pow((CONSTANTS[42]/CONSTANTS[52]),1.00000)*pow((VARIABLES[9]/CONSTANTS[53]),1.00000));
VARIABLES[48] = ((1.00000/pow(CONSTANTS[47],(1.00000*1.00000)))*pow((CONSTANTS[42]/CONSTANTS[52]),1.00000)*pow((pow(VARIABLES[40],2.00000)/CONSTANTS[54]),1.00000));
VARIABLES[57] = ((1.00000/pow(CONSTANTS[48],(1.00000*1.00000)))*pow((VARIABLES[9]/CONSTANTS[53]),1.00000)*pow((pow(VARIABLES[40],2.00000)/CONSTANTS[54]),1.00000));
VARIABLES[52] = ((1.00000/(pow(CONSTANTS[47],(1.00000*1.00000))*pow(CONSTANTS[48],(1.00000*1.00000))))*pow((CONSTANTS[42]/CONSTANTS[52]),1.00000)*pow((VARIABLES[9]/CONSTANTS[53]),1.00000)*pow((pow(VARIABLES[40],2.00000)/CONSTANTS[54]),1.00000));
VARIABLES[49] = ((1.00000/pow(CONSTANTS[49],(1.00000*1.00000)))*pow((CONSTANTS[42]/CONSTANTS[52]),1.00000)*pow((pow(VARIABLES[34],2.00000)/CONSTANTS[55]),1.00000));
VARIABLES[50] = ((1.00000/pow(CONSTANTS[50],(1.00000*1.00000)))*pow((VARIABLES[9]/CONSTANTS[53]),1.00000)*pow((pow(VARIABLES[34],2.00000)/CONSTANTS[55]),1.00000));
VARIABLES[54] = ((1.00000/(pow(CONSTANTS[47],(1.00000*1.00000))*pow(CONSTANTS[49],(1.00000*1.00000))*pow(CONSTANTS[51],(1.00000*1.00000))))*pow((CONSTANTS[42]/CONSTANTS[52]),1.00000)*pow((pow(VARIABLES[40],2.00000)/CONSTANTS[54]),1.00000)*pow((pow(VARIABLES[34],2.00000)/CONSTANTS[55]),1.00000));
VARIABLES[41] = (CONSTANTS[46]*((((1.00000-CONSTANTS[45])*VARIABLES[52])+(CONSTANTS[45]*(VARIABLES[45]+VARIABLES[48]+VARIABLES[51]+VARIABLES[52]+VARIABLES[53]+VARIABLES[54]+VARIABLES[55]+VARIABLES[56])))/(VARIABLES[42]+VARIABLES[43]+VARIABLES[44]+VARIABLES[45]+VARIABLES[46]+VARIABLES[47]+VARIABLES[48]+VARIABLES[49]+VARIABLES[50]+VARIABLES[51]+VARIABLES[57]+VARIABLES[52]+VARIABLES[53]+VARIABLES[54]+VARIABLES[55]+VARIABLES[56])));
VARIABLES[60] = (CONSTANTS[64]-VARIABLES[10]);
VARIABLES[58] = (((CONSTANTS[56]*VARIABLES[60])/((CONSTANTS[57]*VARIABLES[60])+VARIABLES[10]))*(VARIABLES[1]/(CONSTANTS[58]+VARIABLES[1]))*(VARIABLES[39]+CONSTANTS[59]));
VARIABLES[59] = (((CONSTANTS[60]*VARIABLES[10])/(CONSTANTS[61]+VARIABLES[10]))*(1.00000/(1.00000+exp(((VARIABLES[0]-CONSTANTS[62])/CONSTANTS[63])))));
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}