Personal tools
You are here: Home Model Repository
 
Views

Appearance of Phase-locked Wenchbach-like Rhythms, Devil's Staircase and Universality in Intracellular Calcium Spikes in Non-excitable Cell Models

Generated code

Programming Language

Download this code
  • The required array sizes are:
    • VARIABLES[10]
    • CONSTANTS[14]
    • BOUND[1]
    • RATES[5]
  • The following variables are defined:
    • Variable time(BOUND[0])
    • Variable G_alpha_GTP(RATES[0] and VARIABLES[0])
    • Variable kp(VARIABLES[5]; recomputed after rate changes)
    • Variable KD(CONSTANTS[0])
    • Variable kg(CONSTANTS[1])
    • Variable kp_(CONSTANTS[2])
    • Variable hg(CONSTANTS[3])
    • Variable DAG(RATES[1] and VARIABLES[1])
    • Variable kd(VARIABLES[6]; recomputed after rate changes)
    • Variable kd_(CONSTANTS[4])
    • Variable hd(CONSTANTS[5])
    • Variable ld(CONSTANTS[6])
    • Variable Ca_i(RATES[2] and VARIABLES[2])
    • Variable rho_kc(CONSTANTS[7])
    • Variable rho_hc(CONSTANTS[8])
    • Variable rho_lc(CONSTANTS[9])
    • Variable IP3(VARIABLES[7]; recomputed after rate changes)
    • Variable Ks(CONSTANTS[10])
    • Variable PLC_active(RATES[3] and VARIABLES[3])
    • Variable hp(VARIABLES[8]; recomputed after rate changes)
    • Variable hp_(CONSTANTS[11])
    • Variable PLC(VARIABLES[9]; recomputed after rate changes)
    • Variable PLC_total(CONSTANTS[12])
    • Variable G_alpha_GDP(RATES[4] and VARIABLES[4])
    • Variable G_total(CONSTANTS[13])
  • No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 25;
CONSTANTS[1] = 0.005;
CONSTANTS[2] = 2e-07;
CONSTANTS[3] = 0;
CONSTANTS[4] = 700;
CONSTANTS[5] = 100;
CONSTANTS[6] = 250;
CONSTANTS[7] = 90000;
CONSTANTS[8] = 1;
CONSTANTS[9] = 200;
CONSTANTS[10] = 300;
CONSTANTS[11] = 0.5;
CONSTANTS[12] = 10;
CONSTANTS[13] = 200;
}

void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[0] = 0;
VARIABLES[1] = 0;
VARIABLES[2] = 0;
VARIABLES[3] = 0;
VARIABLES[4] = 0;
}

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

void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[5] = (CONSTANTS[2]*(pow(VARIABLES[1],2.00000)/(pow(CONSTANTS[0],2.00000)+pow(VARIABLES[1],2.00000))));
VARIABLES[6] = (CONSTANTS[4]*(pow(VARIABLES[1],2.00000)/(pow(CONSTANTS[0],2.00000)+pow(VARIABLES[1],2.00000))));
VARIABLES[9] = (CONSTANTS[12]-VARIABLES[3]);
VARIABLES[7] = VARIABLES[1];
VARIABLES[8] = (CONSTANTS[11]*(pow(VARIABLES[1],2.00000)/(pow(CONSTANTS[0],2.00000)+pow(VARIABLES[1],2.00000))));
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}