コード例 #1
0
        /// <summary>
        /// Calculate the duct pressure drop with the input data.
        /// </summary>
        /// <param name="data">
        /// The input for the pressure drop calculation. The output are also returned through the data to the caller.
        /// </param>
        public void Calculate(DuctPressureDropData data)
        {
            ConnectorProfileType   eShape = data.Shape;
            SystemCalculationLevel eLevel = data.Level;
            double dWidthOrDiameter       = data.WidthOrDiameter;
            double dHeight = data.Height;

            double dHydraulicDiameter  = 0.0;
            double dEquivalentDiameter = 0.0;
            double dVelocity           = 0.0;
            double dVelocityPressure   = 0.0;
            double dReynoldsNumber     = 0.0;
            double dPressureDrop       = 0.0;
            double dFriction           = 0.0;
            double dCoefficient        = 0.0;

            dHydraulicDiameter  = HydraulicDiameter(eShape, dWidthOrDiameter, dHeight);
            dEquivalentDiameter = EquivalentDiameter(eShape, dWidthOrDiameter, dHeight);

            if (eLevel != SystemCalculationLevel.None)
            {
                double dDensity   = data.Density;
                double dViscosity = data.Viscosity;

                dVelocity         = Velocity(eShape, dWidthOrDiameter, dHeight, data.Flow);
                dVelocityPressure = VelocityPressure(dVelocity, dDensity);
                dReynoldsNumber   = ReynoldsNumber(dHydraulicDiameter, dVelocity, dViscosity);

                if (eLevel == SystemCalculationLevel.All)
                {
                    double dLength = data.Length;

                    double dFrictionFactor = AltshulTsalFrictionFactor(dHydraulicDiameter, data.Roughness, dReynoldsNumber);
                    dPressureDrop = PressureDrop(dHydraulicDiameter, dFrictionFactor, dDensity, dVelocity, dLength);

                    if (!AlmostZero(dLength))
                    {
                        dFriction = dPressureDrop / dLength; // Friction is the pressure drop at the unit length.
                    }
                    if (!AlmostZero(dVelocityPressure))
                    {
                        dCoefficient = dPressureDrop / dVelocityPressure;
                    }
                }
            }

            data.HydraulicDiameter  = dHydraulicDiameter;
            data.EquivalentDiameter = dEquivalentDiameter;
            data.Velocity           = dVelocity;
            data.VelocityPressure   = dVelocityPressure;
            data.ReynoldsNumber     = dReynoldsNumber;
            data.Friction           = dFriction;
            data.PressureDrop       = dPressureDrop;
            data.Coefficient        = dCoefficient;
        }
コード例 #2
0
        /// <summary>
        /// Calculate the duct pressure drop with the input data.
        /// </summary>
        /// <param name="data">
        /// The input for the pressure drop calculation. The output are also returned through the data to the caller. 
        /// </param>
        public void Calculate( DuctPressureDropData data )
        {
            ConnectorProfileType eShape = data.Shape;
              SystemCalculationLevel eLevel = data.Level;
              double dWidthOrDiameter = data.WidthOrDiameter;
              double dHeight = data.Height;

              double dHydraulicDiameter = 0.0;
              double dEquivalentDiameter = 0.0;
              double dVelocity = 0.0;
              double dVelocityPressure = 0.0;
              double dReynoldsNumber = 0.0;
              double dPressureDrop = 0.0;
              double dFriction = 0.0;
              double dCoefficient = 0.0;

              dHydraulicDiameter = HydraulicDiameter( eShape, dWidthOrDiameter, dHeight );
              dEquivalentDiameter = EquivalentDiameter( eShape, dWidthOrDiameter, dHeight );

              if( eLevel != SystemCalculationLevel.None )
              {
            double dDensity = data.Density;
            double dViscosity = data.Viscosity;

            dVelocity = Velocity( eShape, dWidthOrDiameter, dHeight, data.Flow );
            dVelocityPressure = VelocityPressure( dVelocity, dDensity );
            dReynoldsNumber = ReynoldsNumber( dHydraulicDiameter, dVelocity, dViscosity );

            if( eLevel == SystemCalculationLevel.All )
            {
              double dLength = data.Length;

              double dFrictionFactor = AltshulTsalFrictionFactor( dHydraulicDiameter, data.Roughness, dReynoldsNumber );
              dPressureDrop = PressureDrop( dHydraulicDiameter, dFrictionFactor, dDensity, dVelocity, dLength );

              if( !AlmostZero( dLength ) )
            dFriction = dPressureDrop / dLength; // Friction is the pressure drop at the unit length.

              if( !AlmostZero( dVelocityPressure ) )
            dCoefficient = dPressureDrop / dVelocityPressure;
            }
              }

              data.HydraulicDiameter = dHydraulicDiameter;
              data.EquivalentDiameter = dEquivalentDiameter;
              data.Velocity = dVelocity;
              data.VelocityPressure = dVelocityPressure;
              data.ReynoldsNumber = dReynoldsNumber;
              data.Friction = dFriction;
              data.PressureDrop = dPressureDrop;
              data.Coefficient = dCoefficient;
        }