Exemple #1
0
        void OnThicknessSolveStop(ThicknessSolver solver)
        {
            string txt = "厚度求解器结束计算";

            textBox2.Text          += txt;
            textBox2.SelectionStart = textBox2.Text.Length;
            textBox2.ScrollToCaret();
        }
Exemple #2
0
        private void THICKNESS_TUBBIN_C3_COM(object sender, EventArgs e)
        {
            List <Layer>   layers   = CreateTestTubbinessLayers();
            Class3Boundary boundary = new Class3Boundary(10, 0.8, 25 + 273.15, TemperatureCalculate.OutsideArea(layers));

            Model.TemperatureCalculate cal    = new Model.TemperatureCalculate(1600 + 273.15, boundary, layers);
            SolverControlParameter     par    = new SolverControlParameter(SolverControlParameter.ConvergenceCriterionType.RESIDUAL_OR_MAXSTEP, 0.001, 50, 0);
            ThicknessCalculate         tcal   = new ThicknessCalculate(cal, 2, 394.94, par, par);
            ThicknessSolver            solver = ThicknessSolverFactory.CreateSolver(tcal);

            solver.TemperatureSolver.UpdateTemperatureEndEvent += new UpdateTemperatureEndEventHandler(OnTemperatureSolverUpdate);
            solver.SolveStartEvent  += new ThicknessSolverStartEventHandler(OnThicknessSolveStart);
            solver.SolveUpdateEvent += new ThicknessSolverUpdateEventHandler(OnThicknessSolveUpdate);
            solver.SolveStopEvent   += new ThicknessSolverStopEventHandler(OnThicknessSolveStop);
            double lim = solver.LimitValue();

            solver.Solve();
        }
Exemple #3
0
        private void THICKNESS_PLATE_C2(object sender, EventArgs e)
        {
            List <Layer>   layers   = CreateTestLayers();
            Class2Boundary boundary = new Class2Boundary(1038.09, 1);

            Model.TemperatureCalculate cal  = new Model.TemperatureCalculate(1600 + 273.15, boundary, layers);
            SolverControlParameter     par  = new SolverControlParameter(SolverControlParameter.ConvergenceCriterionType.RESIDUAL_OR_MAXSTEP, 0.001, 50, 0);
            ThicknessCalculate         tcal = new ThicknessCalculate(cal, 2, 273.15 + 100, par, par);
            //ThicknessCalculate tcal = new ThicknessCalculate(cal, 2, 273.15 + 900, par, par);
            ThicknessSolver solver = ThicknessSolverFactory.CreateSolver(tcal);

            solver.TemperatureSolver.UpdateTemperatureEndEvent += new UpdateTemperatureEndEventHandler(OnTemperatureSolverUpdate);
            solver.SolveStartEvent  += new ThicknessSolverStartEventHandler(OnThicknessSolveStart);
            solver.SolveUpdateEvent += new ThicknessSolverUpdateEventHandler(OnThicknessSolveUpdate);
            solver.SolveStopEvent   += new ThicknessSolverStopEventHandler(OnThicknessSolveStop);
            double lim = solver.LimitValue();

            solver.Solve();
        }
Exemple #4
0
        void PrintThicknessSolveInformation(ThicknessSolver solver)
        {
            string txt = "";

            txt += String.Format("\r\n---------------第{0}次迭代---------------\r\n", solver.ThicknessSolveStep);
            txt += String.Format("残差:{0:0.0000}\r\n", solver.ThicknessSolverResidual);
            txt += String.Format("热流:{0:0000.00}\r\n", solver.ThicknessCalculate.Calculate.Boundary.Heatflow);
            for (int j = 0; j < solver.ThicknessCalculate.Calculate.LayerList.Count; j++)
            {
                if (solver.ThicknessCalculate.TargetLayerIndex == j)
                {
                    txt += String.Format("**********************************\r\n第{0}层厚度:{1:0.000},热阻:{2:0.000}\r\n**********************************\r\n", j, solver.ThicknessCalculate.Calculate.LayerList[j].Thickness, solver.ThicknessCalculate.Calculate.LayerList[j].HeatResistance);
                }
                else
                {
                    txt += String.Format("第{0}层厚度:{1:0.000},热阻:{2:0.000}\r\n", j, solver.ThicknessCalculate.Calculate.LayerList[j].Thickness, solver.ThicknessCalculate.Calculate.LayerList[j].HeatResistance);
                }
            }
            textBox2.Text += txt;
        }
Exemple #5
0
        void OnThicknessSolveStart(ThicknessSolver solver)
        {
            textBox2.Text = "厚度求解器开始计算";
            chart1.Series.Clear();
            chart2.Series.Clear();
            chart3.Series.Clear();
            Series s1 = new Series("温度求解器残差");
            Series s2 = new Series("厚度求解器残差");
            Series s3 = new Series("所求层厚度");

            s1.ChartType   = SeriesChartType.Spline;
            s1.BorderWidth = 2;
            s2.ChartType   = SeriesChartType.Spline;
            s2.BorderWidth = 2;
            s3.ChartType   = SeriesChartType.Spline;
            s3.BorderWidth = 2;


            chart1.Series.Add(s1);
            chart2.Series.Add(s2);
            chart3.Series.Add(s3);
        }
Exemple #6
0
 void OnThicknessSolveUpdate(ThicknessSolver solver)
 {
     chart2.Series[0].Points.AddY(solver.ThicknessSolverResidual);
     chart3.Series[0].Points.AddY(solver.ThicknessCalculate.Calculate.LayerList[solver.ThicknessCalculate.TargetLayerIndex].Thickness);
     PrintThicknessSolveInformation(solver);
 }