Beispiel #1
0
 internal static double CorrectedCollectionEfficiency(double e0, ParticleTypeGroup particleType, double loading)
 {
     if (particleType == ParticleTypeGroup.A || particleType == ParticleTypeGroup.C)
     {
         return(ChartUtil.GetInterpolatedValue(ceLoadingCorrectionCurvesAC, e0, Math.Log10(loading)));
     }
     else
     {
         return(ChartUtil.GetInterpolatedValue(ceLoadingCorrectionCurvesBD, e0, Math.Log10(loading)));
     }
 }
Beispiel #2
0
        //Perry's Figure 5-10, also see section 7-25 of Handbook of Chemical Engineering Calculations
        //Fist correlation to use to calculate condensing heat transfer coefficient in vertical tubes
        //This correlation can also be used for falling film heat transfer coeeficient. But the result
        //should be multiplied by 0.75
        public static double CalculateVerticalTubeHTC_Dukler(double massFlowRate, double diameter, double liqDensity, double vapDensity, double liqViscosity, double vapViscosity, double liqThermalCond, double liqSpecificHeat)
        {
            double gamma = massFlowRate / (Math.PI * diameter);
            double Re    = 4 * gamma / liqViscosity;
            double Pr    = liqSpecificHeat * liqViscosity / liqThermalCond;
            double temp  = Math.Pow(liqViscosity * liqViscosity / (liqDensity * liqDensity * liqThermalCond * liqThermalCond * liqThermalCond * 9.8065), 1 / 3);
            double h     = ChartUtil.GetInterpolatedValue(duklerCurves, Re, Pr);

            h = h / temp;
            //Handbook of Chemical Engineering Calculations--page 7-50 table (the only table on this page)
            double Ad = 0.25 * Math.Pow(liqViscosity, 1.173) * Math.Pow(vapViscosity, 0.16) / (Math.Pow(9.8065, 2.0 / 3.0) * diameter * diameter * Math.Pow(liqDensity, 0.553) * Math.Pow(vapDensity, 0.78));
            double correctionCoeff = ChartUtil.GetInterpolatedValue(duklerCorrectionCurves, Re, Ad);

            return(correctionCoeff * h);
        }
Beispiel #3
0
 public static double GetSpecificHeatRatio(double t, double p)
 {
     return(ChartUtil.GetInterpolatedValue(ratioCurves, p, t));
 }
Beispiel #4
0
        public static double CalculateBoilingPointElevation(DryingMaterial dryingMaterial, double concentrationValue, double pressureValue)
        {
            SolutionType solutionType       = dryingMaterial.SolutionType;
            double       deltaT             = 0;
            Substance    s                  = dryingMaterial.Moisture;
            double       solventMolarWeight = s.MolarWeight;

            s = dryingMaterial.AbsoluteDryMaterial;
            double soluteMolarWeight = s.MolarWeight;
            double tEvap             = 0.0;

            /*if (solutionType == SolutionType.Raoult) {
             * //Unit Operations in Food Engieering Eq. 18.13
             * double soluteMassRatio = 1.0/owner.MoistureContentDryBase.Value;
             * double boilingConstant = 1.0;
             * deltaT = 1000 * boilingConstant * soluteMassRatio/soluteMolarWeight;
             * }
             * else if (solutionType == SolutionType.Aqueous) {
             * //Unit Operations in Food Engieering Eq. 18.14
             * double molarConcentration = concentrationValue/soluteMolarWeight/(concentrationValue/soluteMolarWeight+(1-concentrationValue)/solventMolarWeight);
             * deltaT = 0.52 * molarConcentration;
             * }
             * else if (solutionType == SolutionType.InorganicSalts) {
             * //Unit Operations in Food Engieering Eq. 18.17
             * double molarConcentration = concentrationValue/soluteMolarWeight/(concentrationValue/soluteMolarWeight+(1-concentrationValue)/solventMolarWeight);
             * deltaT = 104.9 * Math.Pow(molarConcentration, 1.14);
             * }
             * else if (solutionType == SolutionType.Ideal) {
             * //Unit Operations in Food Engieering Eq. 18.15
             * double tEvap = ThermalPropCalculator.CalculateTemperatureFromWaterVaporPressure(pressureValue);
             * double evapHeat = owner.GetEvaporationHeat(tEvap);
             * double solventMassFraction = 1.0/owner.MoistureContentWetBase.Value;
             * deltaT = -tEvap/(1.0 + (evapHeat/(8.314*tEvap*Math.Log(solventMassFraction))));
             * }*/
            if (solutionType == SolutionType.Sucrose)
            {
                //Unit Operations in Food Engieering Eq. 18.17
                pressureValue = pressureValue / 100; //note: pressure unit is mbar
                deltaT        = 3.061 * Math.Pow(concentrationValue, 0.094) * Math.Pow(pressureValue, 0.136) * Math.Exp(5.328 * concentrationValue);
            }
            else if (solutionType == SolutionType.ReducingSugars)
            {
                //Unit Operations in Food Engieering Eq. 18.17
                pressureValue = pressureValue / 100; //note: pressure unit is mbar
                deltaT        = 2.227 * Math.Pow(concentrationValue, 0.588) * Math.Pow(pressureValue, 0.119) * Math.Exp(3.593 * concentrationValue);
            }
            else if (solutionType == SolutionType.Juices)
            {
                //Unit Operations in Food Engieering Eq. 18.17
                pressureValue = pressureValue / 100; //note: pressure unit is mbar
                //deltaT = 0.04904 * Math.Pow(concentration, 0.029)*Math.Pow(pressureValue, 0.113)*Math.Exp(-0.03899*concentration + 6.52e-4*concentration*concentration);
                deltaT = 1.36 * Math.Pow(concentrationValue, 0.749) * Math.Pow(pressureValue, 0.106) * Math.Exp(3.39 * concentrationValue);
            }
            else if (solutionType == SolutionType.Unknown)
            {
                //Duhring rules
                tEvap = ThermalPropCalculator.CalculateWaterSaturationTemperature(pressureValue);
                CurveF[] duhringLines = dryingMaterial.DuhringLines;
                if (duhringLines != null)
                {
                    double tEvapReal = ChartUtil.GetInterpolatedValue(duhringLines, concentrationValue, tEvap);
                    deltaT = tEvapReal - tEvap;
                }

                /*double correctionCoeff = 1.0;
                 * if (duhringLines.VarValue == Constants.NO_VALUE && Math.Abs(pressureValue-1.0132685e5) < 1.0e-3) {
                 * double evapHeat = GetEvaporationHeat(tEvap);
                 * correctionCoeff = 0.0162*tEvap*tEvap/evapHeat;  //Chemical Engineering Eq. 7-15 at p.310
                 * deltaT *= correctionCoeff;
                 * }*/
            }
            return(deltaT);
        }