Personal tools
You are here: Home Model Repository Complex calcium oscillations and the role of mitochondria and cytosolic proteins
 
Views

Complex calcium oscillations and the role of mitochondria and cytosolic proteins

Generated code

Programming Language

Download this code
  • The required array sizes are:
    • VARIABLES[10]
    • CONSTANTS[17]
    • BOUND[1]
    • RATES[3]
  • The following variables are defined:
    • Variable Ca_ER(RATES[0] and VARIABLES[0])
    • Variable rho_ER(CONSTANTS[0])
    • Variable beta_ER(CONSTANTS[1])
    • Variable Ca_m(RATES[1] and VARIABLES[1])
    • Variable rho_m(CONSTANTS[2])
    • Variable beta_m(CONSTANTS[3])
    • Variable J_pump(VARIABLES[3]; recomputed after rate changes)
    • Variable k_pump(CONSTANTS[4])
    • Variable J_ch(VARIABLES[4]; recomputed after rate changes)
    • Variable k_ch(CONSTANTS[5])
    • Variable K1(CONSTANTS[6])
    • Variable J_leak(VARIABLES[5]; recomputed after rate changes)
    • Variable k_leak(CONSTANTS[7])
    • Variable J_in(VARIABLES[6]; recomputed after rate changes)
    • Variable k_in(CONSTANTS[8])
    • Variable K2(CONSTANTS[9])
    • Variable J_out(VARIABLES[7]; recomputed after rate changes)
    • Variable k_out(CONSTANTS[10])
    • Variable k_m(CONSTANTS[11])
    • Variable K3(CONSTANTS[12])
    • Variable Ca_tot(CONSTANTS[13])
    • Variable Ca_Pr(VARIABLES[8]; recomputed after rate changes)
    • Variable Pr(VARIABLES[9]; recomputed after rate changes)
    • Variable Pr_tot(CONSTANTS[14])
    • Variable Ca_cyt(RATES[2] and VARIABLES[2])
    • Variable k_plus(CONSTANTS[15])
    • Variable k_minus(CONSTANTS[16])
    • Variable time(BOUND[0])
    • Equation with cmeta ID no cmeta ID in math with cmeta ID no cmeta ID
    • Equation with cmeta ID no cmeta ID in math with cmeta ID no cmeta ID
double NR_minfunc_1(double* CONSTANTS, double* VARIABLES, double* BOUND)
{
  return (((VARIABLES[2]+((CONSTANTS[0]/CONSTANTS[1])*VARIABLES[0])+((CONSTANTS[2]/CONSTANTS[3])*VARIABLES[1])+VARIABLES[8])) - (CONSTANTS[13]));
}
double NR_minfunc_2(double* CONSTANTS, double* VARIABLES, double* BOUND)
{
  return (((VARIABLES[9]+VARIABLES[8])) - (CONSTANTS[14]));
}
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 0.01;
CONSTANTS[1] = 0.0025;
CONSTANTS[2] = 0.01;
CONSTANTS[3] = 0.0025;
CONSTANTS[4] = 20;
CONSTANTS[5] = 4100;
CONSTANTS[6] = 5;
CONSTANTS[7] = 0.05;
CONSTANTS[8] = 300;
CONSTANTS[9] = 0.8;
CONSTANTS[10] = 125;
CONSTANTS[11] = 0.00625;
CONSTANTS[12] = 5;
CONSTANTS[13] = 90;
CONSTANTS[14] = 120;
CONSTANTS[15] = 0.1;
CONSTANTS[16] = 0.01;
}

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

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

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