예제 #1
0
        public override double[] DW_CalcFugCoeff(Array Vx, double T, double P, PropertyPackages.State st)
        {
            double[] vz = Vx.Cast <double>().ToArray();
            switch (st)
            {
            case PropertyPackages.State.Liquid:
                return((double[])CalculateProperty(ThermoProperty.FugacityCoeff, vz, "L", T, P, 0, 0));

            case PropertyPackages.State.Vapor:
                return((double[])CalculateProperty(ThermoProperty.FugacityCoeff, vz, "V", T, P, 0, 0));

            default:
                return(RET_NullVector());
            }
        }
예제 #2
0
        public override double DW_CalcEntropy(Array Vx, double T, double P, PropertyPackages.State st)
        {
            double[] vz = Vx.Cast <double>().ToArray();
            if (UseLeeKeslerEnthalpy)
            {
                switch (st)
                {
                case PropertyPackages.State.Liquid:
                    return(lk.S_LK_MIX("L", T, P, vz, RET_VKij(), RET_VTC(), RET_VPC(), RET_VW(), RET_VMM(), RET_Sid(298.15, T, P, vz)));

                case PropertyPackages.State.Vapor:
                    return(lk.S_LK_MIX("V", T, P, vz, RET_VKij(), RET_VTC(), RET_VPC(), RET_VW(), RET_VMM(), RET_Sid(298.15, T, P, vz)));

                case PropertyPackages.State.Solid:
                    return(lk.S_LK_MIX("L", T, P, vz, RET_VKij(), RET_VTC(), RET_VPC(), RET_VW(), RET_VMM(), RET_Sid(298.15, T, P, vz)) - RET_HFUSM(AUX_CONVERT_MOL_TO_MASS(vz), T) / T);

                default:
                    return(0d);
                }
            }
            else
            {
                switch (st)
                {
                case PropertyPackages.State.Liquid:
                    return((double)CalculateProperty(ThermoProperty.Enthalpy, vz, "L", T, P, 0, 0) / T);

                case PropertyPackages.State.Vapor:
                    return((double)CalculateProperty(ThermoProperty.Enthalpy, vz, "V", T, P, 0, 0) / T);

                case PropertyPackages.State.Solid:
                    return((double)CalculateProperty(ThermoProperty.Enthalpy, vz, "L", T, P, 0, 0) / T - RET_HFUSM(AUX_CONVERT_MOL_TO_MASS(vz), T) / T);

                default:
                    return(0d);
                }
            }
        }
예제 #3
0
 public override double DW_CalcEntropyDeparture(Array Vx, double T, double P, PropertyPackages.State st)
 {
     throw new NotImplementedException();
 }