예제 #1
0
 private void ShowOutputDataObject()
 {
     try
     {
         Text = OutputDataObject.ToString();
     }
     catch (NullReferenceException exp)
     {
         Text = string.Empty;
     }
 }
예제 #2
0
        public static void Process()
        {
            OutputDataObject = new OutputDataObject();
            double Fd, gamma, Q, Qk, qa, qr, coord;
            int    i;
            //int arrSize = (int)(inpDObj.L / inpDObj.step) + 1;
            //if ((arrSize * inpDObj.step) < (inpDObj.L + inpDObj.step / 2))
            //    arrSize++;
            var T  = new List <double>();
            var X  = new List <double>();
            var nu = new List <double>();
            var V  = new List <double>();

            //// Расчеты
            Fd = 0.125 * (InputDataObject.GeometryVector.H / InputDataObject.GeometryVector.W) * (InputDataObject.GeometryVector.H / InputDataObject.GeometryVector.W)
                 - 0.625 * (InputDataObject.GeometryVector.H / InputDataObject.GeometryVector.W) + 1;
            //// скорость диффер. вывода
            gamma = InputDataObject.ModeVector.Vu / InputDataObject.GeometryVector.H;
            //// производительность канала
            Q  = (InputDataObject.GeometryVector.W * InputDataObject.GeometryVector.H / 2) * InputDataObject.ModeVector.Vu * Fd;
            Qk = InputDataObject.MaterialProperties.Ro * Q;
            ////Расчёт удельных тепловых потоков
            qa = InputDataObject.GeometryVector.W * (InputDataObject.EmpiricalVector.alphaU / InputDataObject.EmpiricalVector.b - InputDataObject.EmpiricalVector.alphaU * InputDataObject.ModeVector.Tu
                                                     + InputDataObject.EmpiricalVector.alphaU * InputDataObject.EmpiricalVector.Tgamma);                                            //heatFluxW
            qr = InputDataObject.GeometryVector.W * InputDataObject.GeometryVector.H * InputDataObject.EmpiricalVector.Mu * Math.Pow(gamma, InputDataObject.EmpiricalVector.n + 1); //heatFluxN

            coord = 0;
            i     = 0;
            while (coord < (InputDataObject.GeometryVector.L + InputDataObject.DiscretizationStep / 2))
            {
                X.Add(coord);
                T.Add(Temperature(Q, qa, qr, coord, InputDataObject));
                V.Add(Viscosity(T[i], InputDataObject));
                coord += InputDataObject.DiscretizationStep;
                i++;
            }

            //// Запись данных в объект
            OutputDataObject.lengthCoordinates = X;
            OutputDataObject.temperature       = T;
            OutputDataObject.viscosity         = V;
            OutputDataObject.Qk   = Qk;
            OutputDataObject.Tend = T[i - 1];
            OutputDataObject.Vend = V[i - 1];
        }
 private List <OutputDataObjectView> ConvertOutputDataObjectToOutputDataObjectView(OutputDataObject outputDataObject)
 {
     return(outputDataObject.lengthCoordinates.Select((t, i) => new OutputDataObjectView
     {
         lengthCoordinates = t, temperature = outputDataObject.temperature[i], viscosity = outputDataObject.viscosity[i]
     }).ToList());
 }
예제 #4
0
 public static void Clear()
 {
     InputDataObject  = ConstantInputDataObject;
     OutputDataObject = null;
 }