Views
A Bifurcation Analysis of Two Coupled Calcium Oscillators
Generated code
Download this code
- The required array sizes are:
- VARIABLES[17]
- CONSTANTS[14]
- BOUND[1]
- RATES[4]
- The following variables are defined:
- Variable j_pump_c1(VARIABLES[4]; recomputed after rate changes)
- Variable j_pump_c2(VARIABLES[5]; recomputed after rate changes)
- Variable phi1_c1(VARIABLES[6]; recomputed after rate changes)
- Variable phi_1_c1(VARIABLES[7]; recomputed after rate changes)
- Variable phi2_c1(VARIABLES[8]; recomputed after rate changes)
- Variable phi3_c1(VARIABLES[9]; recomputed after rate changes)
- Variable phi1_c2(VARIABLES[10]; recomputed after rate changes)
- Variable phi_1_c2(VARIABLES[11]; recomputed after rate changes)
- Variable phi2_c2(VARIABLES[12]; recomputed after rate changes)
- Variable j_receptor_c1(VARIABLES[13]; recomputed after rate changes)
- Variable j_receptor_c2(VARIABLES[14]; recomputed after rate changes)
- Variable j_diffusion(VARIABLES[15]; recomputed after rate changes)
- Variable c1(RATES[0] and VARIABLES[0])
- Variable c2(RATES[1] and VARIABLES[1])
- Variable kf(CONSTANTS[0])
- Variable Vp(CONSTANTS[1])
- Variable R5(CONSTANTS[2])
- Variable R3(CONSTANTS[3])
- Variable r2(CONSTANTS[4])
- Variable R1(CONSTANTS[5])
- Variable j_leak(CONSTANTS[6])
- Variable Kp(CONSTANTS[7])
- Variable k2(CONSTANTS[8])
- Variable phi3_c2(VARIABLES[16]; recomputed after rate changes)
- Variable time(BOUND[0])
- Variable h1(RATES[2] and VARIABLES[2])
- Variable h2(RATES[3] and VARIABLES[3])
- Variable k1(CONSTANTS[9])
- Variable r4(CONSTANTS[10])
- Variable k3(CONSTANTS[11])
- Variable p(CONSTANTS[12])
- Variable D(CONSTANTS[13])
- No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 28;
CONSTANTS[1] = 1.2;
CONSTANTS[2] = 1.6;
CONSTANTS[3] = 50;
CONSTANTS[4] = 100;
CONSTANTS[5] = 6;
CONSTANTS[6] = 0.2;
CONSTANTS[7] = 0.18;
CONSTANTS[8] = 26.5;
CONSTANTS[9] = 44;
CONSTANTS[10] = 20;
CONSTANTS[11] = 1.6;
CONSTANTS[12] = 0.2778;
CONSTANTS[13] = 0.01;
}
void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[0] = 0.3;
VARIABLES[1] = 0.1;
VARIABLES[2] = 0.8;
VARIABLES[3] = 0.1;
}
void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[2] = ((VARIABLES[9]*(1.00000-VARIABLES[2]))-((VARIABLES[6]*VARIABLES[8]*VARIABLES[2]*CONSTANTS[12])/((VARIABLES[6]*CONSTANTS[12])+VARIABLES[7])));
RATES[3] = ((VARIABLES[16]*(1.00000-VARIABLES[3]))-((VARIABLES[10]*VARIABLES[12]*VARIABLES[3]*CONSTANTS[12])/((VARIABLES[10]*CONSTANTS[12])+VARIABLES[11])));
RATES[0] = ((VARIABLES[13]-VARIABLES[4])+CONSTANTS[6]+VARIABLES[15]);
RATES[1] = ((VARIABLES[14]-VARIABLES[5])+CONSTANTS[6]+VARIABLES[15]);
}
void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[7] = (CONSTANTS[9]/(CONSTANTS[3]+VARIABLES[0]));
VARIABLES[8] = ((CONSTANTS[8]+(CONSTANTS[10]*VARIABLES[0]))/(CONSTANTS[3]+VARIABLES[0]));
VARIABLES[9] = (CONSTANTS[11]/(CONSTANTS[2]+VARIABLES[0]));
VARIABLES[10] = ((CONSTANTS[4]*VARIABLES[1])/(CONSTANTS[5]+VARIABLES[1]));
VARIABLES[11] = (CONSTANTS[9]/(CONSTANTS[3]+VARIABLES[1]));
VARIABLES[12] = ((CONSTANTS[8]+(CONSTANTS[10]*VARIABLES[1]))/(CONSTANTS[3]+VARIABLES[1]));
VARIABLES[6] = ((CONSTANTS[4]*VARIABLES[0])/(CONSTANTS[5]+VARIABLES[0]));
VARIABLES[13] = (CONSTANTS[0]*pow(((CONSTANTS[12]*VARIABLES[2]*VARIABLES[6])/((VARIABLES[6]*CONSTANTS[12])+VARIABLES[7])),4.00000));
VARIABLES[14] = (CONSTANTS[0]*pow(((CONSTANTS[12]*VARIABLES[3]*VARIABLES[10])/((VARIABLES[10]*CONSTANTS[12])+VARIABLES[11])),4.00000));
VARIABLES[15] = (CONSTANTS[13]*(VARIABLES[1]-VARIABLES[0]));
VARIABLES[4] = ((CONSTANTS[1]*pow(VARIABLES[0],2.00000))/(pow(CONSTANTS[7],2.00000)+pow(VARIABLES[0],2.00000)));
VARIABLES[5] = ((CONSTANTS[1]*pow(VARIABLES[1],2.00000))/(pow(CONSTANTS[7],2.00000)+pow(VARIABLES[1],2.00000)));
VARIABLES[16] = (CONSTANTS[11]/(CONSTANTS[2]+VARIABLES[1]));
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}
