public FiniteComponentReactor(ConstantInputModel constants, FiniteComponentInputModel component)
        {
            this.component = component;
            this.constants = constants;

            this.omega      = CalcOmega();
            this.beta       = CalcBeta();
            this.N          = component.M - 5;
            this.nparameter = CalcNParameter();

            cH2  = new double[component.EndTime];
            cCO  = new double[component.EndTime];
            cCO2 = new double[component.EndTime];
            cH2O = new double[component.EndTime];

            x = new double[component.M, component.EndTime];
            y = new double[component.M, component.EndTime];

            reactorPress     = new double[component.EndTime];
            cLiquidComponent = new double[component.M, component.EndTime];
            cGasComponent    = new double[component.M, component.EndTime];
        }
Exemple #2
0
        private void btnCalc_Click(object sender, EventArgs e)
        {
            if (ValidateReactorParameters())
            {
                MessageBox.Show("Please enter all reactor model parameters.");
                return;
            }
            if (ValidateReactorConstatants())
            {
                MessageBox.Show("Please enter all reactor model constatants or use default.");
                return;
            }
            lblPress.Text = "Press in reactor, MPa: ";
            lblBeta.Text  = "Beta: ";

            constantInputModel = new ConstantInputModel
            {
                K1  = Convert.ToDouble(txtK1.Text),
                K2  = Convert.ToDouble(txtK2.Text),
                K3  = Convert.ToDouble(txtK3.Text),
                K4  = Convert.ToDouble(txtK4.Text),
                K5  = Convert.ToDouble(txtK5.Text),
                K   = Convert.ToDouble(txtK.Text),
                B1  = Convert.ToDouble(txtB1.Text),
                B2  = Convert.ToDouble(txtB2.Text),
                B3  = Convert.ToDouble(txtB3.Text),
                B4  = Convert.ToDouble(txtB4.Text),
                B5  = Convert.ToDouble(txtB5.Text),
                B   = Convert.ToDouble(txtB.Text),
                B0  = Convert.ToDouble(txtB0.Text),
                Eft = Convert.ToDouble(txtEft.Text),
                Esh = Convert.ToDouble(txtEsh.Text),
                Kft = Convert.ToDouble(txtKft.Text),
                Ksh = Convert.ToDouble(txtKsh.Text)
            };
            componentInputModel = new FiniteComponentInputModel
            {
                Alfa    = Convert.ToDouble(txtAlfa.Text),
                Density = Convert.ToDouble(txtDensity.Text),
                EndTime = Convert.ToInt32(txtTime.Text),
                G1      = Convert.ToDouble(txtG1.Text),
                G2      = Convert.ToDouble(txtG2.Text),
                Gama    = Convert.ToDouble(txtGama.Text),
                M       = Convert.ToInt32(txtComponents.Text),
                T       = Convert.ToDouble(txtT.Text)
            };

            slurryReactor = new FiniteComponentReactor(constantInputModel, componentInputModel);
            slurryReactor.StartCalc();

            btnLiquidConcentration.Enabled = true;
            btnGasConcentration.Enabled    = true;
            btnGasRate.Enabled             = true;
            btnLiquidRate.Enabled          = true;
            btnLiquidData.Enabled          = true;
            btnGasData.Enabled             = true;

            lblPress.Text += slurryReactor.reactorPress[1] / Math.Pow(10, 6);
            lblBeta.Text  += slurryReactor.beta;
            grbCalculatedParameters.Visible = true;

            using (FileStream fs = File.OpenWrite("ConcentrationH2.txt"))
            {
                using (StreamWriter sw = new StreamWriter(fs))
                {
                    for (int i = 0; i < componentInputModel.EndTime; i++)
                    {
                        sw.WriteLine(slurryReactor.cLiquidComponent[0, i]);
                    }
                }
            }

            using (FileStream fs = File.OpenWrite("ConcentrationCO.txt"))
            {
                using (StreamWriter sw = new StreamWriter(fs))
                {
                    for (int i = 0; i < componentInputModel.EndTime; i++)
                    {
                        sw.WriteLine(slurryReactor.cLiquidComponent[1, i]);
                    }
                }
            }
        }