Example #1
0
        private void DataUpdateAction()
        {
            if (this.cb_MsssFlowMethod.SelectedIndex == 0)
            {
                this.massFlowMethond = MassFlowMethond.MassFlowRate;
                this.massRateOrFlux  = this.tb_massFlowRate.Text.ToString();
            }
            else if (this.cb_MsssFlowMethod.SelectedIndex == 1)
            {
                this.massFlowMethond = MassFlowMethond.MassFlowFlux;
                this.massRateOrFlux  = this.tb_massFlowFlux.Text.ToString();
            }
            else
            {
                this.massFlowMethond = MassFlowMethond.MassFluxWithAverageMassFlux;
                this.averageMassFlux = this.tb_averageFlux.Text.ToString();
            }

            if (this.cb_Direction.SelectedIndex == 0)
            {
                this.directionMethod = MO_DirectionMethod.DirectionVector;
            }
            else
            {
                this.directionMethod = MO_DirectionMethod.OutwardNormal;
            }

            this.xyzDirection = new float[] { Convert.ToSingle(this.tb_FlowDirection_X.Text.ToString()),
                                              Convert.ToSingle(this.tb_FlowDirection_Y.Text.ToString()),
                                              Convert.ToSingle(this.tb_FlowDirection_Z.Text.ToString()) };
        }
Example #2
0
        /// <summary>
        /// 质量出口
        /// </summary>
        /// <param name="boundaryName">边界名</param>
        /// <param name="massFlowMethond">指定质量流方法</param>
        /// <param name="directionMethod">指定方向方法</param>
        /// <param name="massRateOrFlux">质量流率或者质量流通量(根据massFlowMethond参数值确定)</param>
        /// <param name="averageMassFlux">[平均质量流通量]massFlowMethond为MassFluxWithAverageMassFlux时 指定</param>
        /// <param name="xyzDirection">[方向分量] directionMethod为DirectionVector时指定</param>
        /// <returns>TUI命令</returns>
        string IEnON_ViscousON_RadiationOFF_SpeciesON.MO(string boundaryName, MassFlowMethond massFlowMethond, MO_DirectionMethod directionMethod, string massRateOrFlux, string averageMassFlux, float[] xyzDirection)
        {
            StringBuilder        sb = new StringBuilder();
            BoundaryConditionImp BC = new BoundaryConditionImp();
            IEnOFF_ViscousOFF    iEnOFF_ViscousOFF = BC;
            //动量TUI
            string TUI = iEnOFF_ViscousOFF.MO(boundaryName, massFlowMethond, directionMethod, massRateOrFlux, averageMassFlux, xyzDirection);

            sb.Append(TUI);
            return(sb.ToString());
        }
Example #3
0
        /// <summary>
        /// 质量出口
        /// </summary>
        /// <param name="boundaryName">边界名</param>
        /// <param name="massFlowMethond">指定质量流方法</param>
        /// <param name="directionMethod">指定方向方法</param>
        /// <param name="massRateOrFlux">质量流率或者质量流通量(根据massFlowMethond参数值确定)</param>
        /// <param name="averageMassFlux">[平均质量流通量]massFlowMethond为MassFluxWithAverageMassFlux时 指定</param>
        /// <param name="xyzDirection">[方向分量] directionMethod为DirectionVector时指定</param>
        /// <returns>TUI命令</returns>
        string IEnOFF_ViscousON.MO(string boundaryName, MassFlowMethond massFlowMethond, MO_DirectionMethod directionMethod, string massRateOrFlux, string averageMassFlux, float[] xyzDirection)
        {
            //质量出口没有湍流项,因此和湍流没有打开的代码一样,直接调用即可。
            StringBuilder        sb = new StringBuilder();
            BoundaryConditionImp BC = new BoundaryConditionImp();
            IEnOFF_ViscousOFF    iEnOFF_ViscousOFF = BC;
            //动量TUI
            string TUI = iEnOFF_ViscousOFF.MO(boundaryName, massFlowMethond, directionMethod, massRateOrFlux, averageMassFlux, xyzDirection);

            sb.Append(TUI);
            return(sb.ToString());
        }
Example #4
0
        /// <summary>
        /// 质量出口
        /// </summary>
        /// <param name="boundaryName">边界名</param>
        /// <param name="massFlowMethond">指定质量流方法</param>
        /// <param name="directionMethod">指定方向方法</param>
        /// <param name="massRateOrFlux">质量流率或者质量流通量(根据massFlowMethond参数值确定)</param>
        /// <param name="averageMassFlux">[平均质量流通量]massFlowMethond为MassFluxWithAverageMassFlux时 指定</param>
        /// <param name="xyzDirection">[方向分量] directionMethod为DirectionVector时指定</param>
        /// <returns>TUI命令</returns>
        string IEnOFF_ViscousOFF.MO(string boundaryName, MassFlowMethond massFlowMethond, MO_DirectionMethod directionMethod, string massRateOrFlux, string averageMassFlux = null, float[] xyzDirection = null)
        {
            string        bounaryType = BoundaryTypeE.mass_flow_outlet.ToString();
            StringBuilder sb          = new StringBuilder();

            if (massFlowMethond == MassFlowMethond.MassFluxWithAverageMassFlux)
            {
                if (averageMassFlux == null)
                {
                    MessageBox.Show("当前质量流方法,averageFlux不能为null");
                }
            }
            if (directionMethod == MO_DirectionMethod.DirectionVector)
            {
                if (xyzDirection == null)
                {
                    MessageBox.Show("当前指定方向的方法,xyzDirction不可为null");
                    return(null);
                }
            }

            sb.Append(m_boundaryConditionInitialTUI + bounaryType + " " + boundaryName + " ");

            sb.Append("y ");

            if ((int)massFlowMethond == 0)
            {
                sb.Append("y n " + massRateOrFlux + " ");
            }
            else if ((int)massFlowMethond == 1)
            {
                sb.Append("n y n " + massRateOrFlux + " ");
            }
            else
            {
                sb.Append("n n y n " + massRateOrFlux + " " + averageMassFlux + " ");
            }

            if ((int)directionMethod == 0)
            {
                sb.Append("y y n " + xyzDirection[0].ToString() + " n " + xyzDirection[1].ToString() + " n " + xyzDirection[2].ToString() + " ");
            }
            else
            {
                sb.Append("n y ");
            }

            return(sb.ToString());
        }
Example #5
0
        /// <summary>
        /// 质量流入口
        /// </summary>
        /// <param name="boundaryName">边界名</param>
        /// <param name="referenceFrame">参考框架</param>
        /// <param name="massFlowMethond">质量流方法</param>
        /// <param name="dirctionMethond">指定方向方法</param>
        /// <param name="massFlowRateOrFlux">质量流率或质量流量</param>
        /// <param name="initialGaugePress">初始表压</param>
        /// <param name="turbulenceSet">湍流设置</param>
        /// <param name="temperature">热量温度设置</param>
        /// <param name="speciesMassFractions">组分质量分数设置</param>
        /// <param name="averageFlux">[平均质量流量]根据质量流方法确定该值是否为null</param>
        /// <param name="xyzDirection">[xyz方向矢量]根据指定方向方法确定确定该值是否为null</param>
        /// <returns>TUI命令</returns>
        string IEnON_ViscousON_RadiationOFF_SpeciesON.MI(string boundaryName, ReferenceFrame referenceFrame, MassFlowMethond massFlowMethond, PI_DirectionMethond directionMethond, string massFlowRateOrFlux, string initialGaugePress, TurbulenceSet turbulenceSet, string temperature, List <string> speciesMassFractions, string averageFlux, float[] xyzDirection)
        {
            string        bounaryType = BoundaryTypeE.mass_flow_inlet.ToString();
            StringBuilder sb          = new StringBuilder();

            if (massFlowMethond == MassFlowMethond.MassFluxWithAverageMassFlux)
            {
                if (averageFlux == null)
                {
                    MessageBox.Show("当前质量流方法,averageFlux不能为null");
                }
            }
            if (directionMethond == PI_DirectionMethond.DirectionVector)
            {
                if (xyzDirection == null)
                {
                    MessageBox.Show("当前指定方向的方法,xyzDirction不可为null");
                    return(null);
                }
            }
            sb.Append(m_boundaryConditionInitialTUI + bounaryType + " " + boundaryName + " ");
            if ((int)referenceFrame == 0)
            {
                sb.Append("y ");
            }
            else
            {
                sb.Append("n y ");
            }

            if ((int)massFlowMethond == 0)
            {
                sb.Append("y " + "n " + massFlowRateOrFlux + " ");
            }
            else if ((int)massFlowMethond == 1)
            {
                sb.Append("n y " + "n " + massFlowRateOrFlux + " ");
            }
            else
            {
                sb.Append("n n y n " + massFlowRateOrFlux + " " + averageFlux + " ");
            }

            //热量TUI
            sb.Append("n " + temperature + " ");

            sb.Append("n " + initialGaugePress + " ");

            if (directionMethond == 0)
            {
                sb.Append("y y n " + xyzDirection[0].ToString() + " n " + xyzDirection[1].ToString() + " n " + xyzDirection[2].ToString() + " ");
            }
            else
            {
                sb.Append("n y ");
            }

            //湍流TUI
            string TUI = TurbulenceSetTUI(turbulenceSet);

            sb.Append(TUI);

            //组分TUI
            sb.Append("n ");
            foreach (string specieMassFractions in speciesMassFractions)
            {
                sb.Append("n " + specieMassFractions + " ");
            }

            return(sb.ToString());
        }
Example #6
0
        /// <summary>
        /// 质量流入口
        /// </summary>
        /// <param name="boundaryName">边界名</param>
        /// <param name="referenceFrame">参考框架</param>
        /// <param name="massFlowMethond">质量流方法</param>
        /// <param name="dirctionMethond">指定方向方法</param>
        /// <param name="massFlowRateOrFlux">质量流率或质量流量</param>
        /// <param name="initialGaugePress">初始表压</param>
        /// <param name="turbulenceSet">湍流设置</param>
        /// <param name="averageFlux">[平均质量流量]根据质量流方法确定该值是否为null</param>
        /// <param name="xyzDirection">[xyz方向矢量]根据指定方向方法确定确定该值是否为null</param>
        /// <returns>TUI命令</returns>
        string IEnOFF_ViscousON.MI(string boundaryName, ReferenceFrame referenceFrame, MassFlowMethond massFlowMethond, PI_DirectionMethond dirctionMethond, string massFlowRateOrFlux, string initialGaugePress, TurbulenceSet turbulenceSet, string averageFlux, float[] xyzDirection)
        {
            StringBuilder sb = new StringBuilder();

            BoundaryConditionImp BC = new BoundaryConditionImp();
            IEnOFF_ViscousOFF    iEnOFF_ViscousOFF = BC;
            //动量TUI
            string TUI = iEnOFF_ViscousOFF.MI(boundaryName, referenceFrame, massFlowMethond, dirctionMethond, massFlowRateOrFlux, initialGaugePress, averageFlux, xyzDirection);

            sb.Append(TUI);
            //湍流TUI
            TUI = TurbulenceSetTUI(turbulenceSet);
            sb.Append(TUI);
            return(sb.ToString());
        }
Example #7
0
        private void DataUpdateAction()
        {
            if (this.cb_ReferenceFrame.SelectedIndex == 0)
            {
                this.referenceFrame = ReferenceFrame.Absolute;
            }
            else
            {
                this.referenceFrame = ReferenceFrame.Relative;
            }

            if (this.cb_MsssFlowMethod.SelectedIndex == 0)
            {
                this.massFlowMethond    = MassFlowMethond.MassFlowRate;
                this.massFlowRateOrFlux = this.tb_massFlowRate.Text.ToString();
            }
            else if (this.cb_MsssFlowMethod.SelectedIndex == 1)
            {
                this.massFlowMethond    = MassFlowMethond.MassFlowFlux;
                this.massFlowRateOrFlux = this.tb_massFlowFlux.Text.ToString();
            }
            else
            {
                this.massFlowMethond = MassFlowMethond.MassFluxWithAverageMassFlux;
            }

            if (this.cb_Direction.SelectedIndex == 0)
            {
                this.dirctionMethond = PI_DirectionMethond.DirectionVector;
            }
            else
            {
                this.dirctionMethond = PI_DirectionMethond.NormalToBoundary;
                this.averageFlux     = this.tb_averageFlux.Text.ToString();
            }

            this.initialGaugePress = this.tb_InitialGaugePressure.Text.ToString();

            this.turbulenceSet            = new TurbulenceSet();
            turbulenceSet.turbulenceOrder = TurbulenceOrder.SecondOrder;
            if (this.cb_TurbulenceMethod.SelectedIndex == 0)
            {
                turbulenceSet.secondOrder_TurbulenceMethod = SecondOrder_TurbulenceMethod.KAndEpsilon;
            }
            else if (this.cb_TurbulenceMethod.SelectedIndex == 1)
            {
                turbulenceSet.secondOrder_TurbulenceMethod = SecondOrder_TurbulenceMethod.IntensityAndLengthScale;
            }
            else if (this.cb_TurbulenceMethod.SelectedIndex == 2)
            {
                turbulenceSet.secondOrder_TurbulenceMethod = SecondOrder_TurbulenceMethod.IntensityAndViscosityRatio;
            }
            else
            {
                turbulenceSet.secondOrder_TurbulenceMethod = SecondOrder_TurbulenceMethod.IntensityAndHydraulicDiameter;
            }
            turbulenceSet.TurbulenceP1 = this.tb_TurbulenceP1.Text.ToString();
            turbulenceSet.TurbulenceP2 = this.tb_TurbulenceP2.Text.ToString();

            this.xyzDirection = new float[] { Convert.ToSingle(this.tb_FlowDirection_X.Text.ToString()),
                                              Convert.ToSingle(this.tb_FlowDirection_Y.Text.ToString()),
                                              Convert.ToSingle(this.tb_FlowDirection_Z.Text.ToString()) };
        }