/* * This code is generated by BioUML FrameWork * for BIOMD0000000039.xml diagram at 2008.03.20 15:04:18 */ import biouml.plugins.simulation.ae.NewtonSolver; import biouml.plugins.simulation.java.JavaBaseModel; import ru.biosoft.math.MathRoutines; public class BIOMD0000000039 extends JavaBaseModel { /* * Write rules to calculate equation parameters */ /* * Write rules to calculate equation parameters excluding internal variables. */ public void __internalRateVarInitFunc_0(double time, double[] x) { rate_v1 = Cytosol*(v1_Kch*Math.pow(x[1], 2)*(x[2] - x[1])/(Math.pow(v1_K1, 2) + Math.pow(x[1], 2))); rate_v11 = Cytosol*v11_Kminus*x[0]; rate_v12 = Cytosol*v12_Kplus*x[1]*x[4]; rate_v3 = Cytosol*v3_Kleak*(x[2] - x[1]); rate_v5 = _Cytosol_Endoplasmic_Reticulum_*v5_Kpump*x[1]; rate_v7 = Cytosol*x[3]*(v7_Kout*Math.pow(x[1], 2)/(Math.pow(v7_K3, 2) + Math.pow(x[1], 2)) + v7_Km); rate_v9 = _Cytosol_Mitochondria_*(v9_Kin*Math.pow(x[1], 8)/(Math.pow(v9_K2, 8) + Math.pow(x[1], 8))); } public void Init() { initialValues = getInitialValues(); /* * Initialize variables */ _Cytosol_Endoplasmic_Reticulum_ = 1.0; // initial value of $"Cytosol.Endoplasmic_Reticulum" _Cytosol_Mitochondria_ = 1.0; // initial value of $"Cytosol.Mitochondria" Cytosol = 1.0; // initial value of $Cytosol v11_Kminus = 0.01; // initial value of v11_Kminus v12_Kplus = 0.1; // initial value of v12_Kplus v1_K1 = 5.0; // initial value of v1_K1 v1_Kch = 4100.0; // initial value of v1_Kch v3_Kleak = 0.05; // initial value of v3_Kleak v5_Kpump = 20.0; // initial value of v5_Kpump v7_K3 = 5.0; // initial value of v7_K3 v7_Km = 0.00625; // initial value of v7_Km v7_Kout = 125.0; // initial value of v7_Kout v9_K2 = 0.8; // initial value of v9_K2 v9_Kin = 300.0; // initial value of v9_Kin } /* * Model variables initial values */ protected double _Cytosol_Endoplasmic_Reticulum_; protected double _Cytosol_Mitochondria_; protected double rate_v1; protected double rate_v11; protected double rate_v12; protected double rate_v3; protected double rate_v5; protected double rate_v7; protected double rate_v9; protected double Cytosol; protected double v11_Kminus; protected double v12_Kplus; protected double v1_K1; protected double v1_Kch; protected double v3_Kleak; protected double v5_Kpump; protected double v7_K3; protected double v7_Km; protected double v7_Kout; protected double v9_K2; protected double v9_Kin; public double[] extendResult(double time,double [] x) { this.time = time; double[] y = new double[5]; y[0] = x[0]; y[1] = x[1]; y[2] = x[2]; y[3] = x[3]; y[4] = x[4]; return y; } public double[] getInitialValues() { double [] x = new double[5]; this.time = 0.0; x[0] = 85.45; // - $"Cytosol.CaPr" x[1] = 0.35; // - $"Cytosol.Ca_cyt" x[2] = 0.76; // - $"Cytosol.Endoplasmic_Reticulum.CaER" x[3] = 0.29; // - $"Cytosol.Mitochondria.CaM" x[4] = 34.55; // - $Cytosol.Pr __internalRateVarInitFunc_0(time, x); return x; } /* * code for algebraic rules calculations */ /* * end of code for algebraic rules calculations */ protected void calculateRates(double time, double[] x) { __internalRateVarInitFunc_0(time, x); } /* * calculate dy/dt for 'BIOMD0000000039.xml' model */ public void __internalDyDt_0(double time, double [] x, double[] result) { result[0] = -rate_v11+rate_v12; result[1] = +rate_v11-rate_v12+rate_v1+rate_v3-rate_v5+rate_v7-rate_v9; result[2] = -rate_v1*0.25-rate_v3*0.25+rate_v5*0.25; result[3] = -rate_v7*0.25+rate_v9*0.25; result[4] = +rate_v11-rate_v12; } protected double [] calculateResult(double time, double[] x) { double[] result = new double[5]; __internalDyDt_0(time, x, result); return result; } public double[] dy_dt(double time, double[] x) { this.time = time; calculateRates( time,x ); return calculateResult( time,x ); } } // class ...