コード例 #1
0
ファイル: FileImporter.cs プロジェクト: shao130/OpenFMSL
        void ParseRKSPure(string[] line)
        {
            int    i     = ParseInteger(line[1]);
            double a     = ParseDouble(line[2]);
            double b     = ParseDouble(line[3]);
            var    comp1 = _currentSystem.Components[i - 1];

            var rksPure = new MethodConstantParameters();

            rksPure.Method = MethodTypes.RKS;
            rksPure.Parameters.Add("A", new Variable("RKSA", a / 1e6));
            rksPure.Parameters.Add("B", new Variable("RKSB", b));
            comp1.MethodParameters.Add(rksPure);
        }
コード例 #2
0
ファイル: FileImporter.cs プロジェクト: shao130/OpenFMSL
        void ParseMODUNIQUACPure(string[] line)
        {
            int i = ParseInteger(line[1]);

            double r  = ParseDouble(line[2]);
            double q  = ParseDouble(line[3]);
            double qp = ParseDouble(line[4]);

            var comp1 = _currentSystem.Components[i - 1];

            var uniquacPure = new MethodConstantParameters();

            uniquacPure.Method = MethodTypes.ModUniquac;
            uniquacPure.Parameters.Add("R", new Variable("ModUniquacR", r));
            uniquacPure.Parameters.Add("Q", new Variable("ModUniquacQ", q));
            uniquacPure.Parameters.Add("Q'", new Variable("ModUniquacQ'", qp));
            comp1.MethodParameters.Add(uniquacPure);
        }
コード例 #3
0
ファイル: Adapter.cs プロジェクト: shao130/OpenFMSL
        public MolecularComponent FindComponent(string name)
        {
            if (db == null)
            {
                db = XElement.Load(".\\data\\chemsep1.xml");
            }

            var comps = from nm in db.Elements("compound")
                        where (string)nm.Element("CompoundID").Attribute("value") == name
                        select nm;


            if (comps.Count() == 1)
            {
                var c         = comps.First();
                var component = new MolecularComponent()
                {
                    Name      = name,
                    ID        = name,
                    CasNumber = (string)c.Element("CAS").Attribute("value")
                };

                component.Constants.Add(GetConstant(c.Element("MolecularWeight"), ConstantProperties.MolarWeight));
                component.Constants.Add(GetConstant(c.Element("CriticalTemperature"), ConstantProperties.CriticalTemperature));
                component.Constants.Add(GetConstant(c.Element("CriticalPressure"), ConstantProperties.CriticalPressure));
                component.Constants.Add(GetConstant(c.Element("AcentricityFactor"), ConstantProperties.AcentricFactor));

                component.Functions.Add(GetFunction(c.Element("VaporPressure"), EvaluatedProperties.VaporPressure));
                component.Functions.Add(GetFunction(c.Element("HeatOfVaporization"), EvaluatedProperties.HeatOfVaporization));

                component.Functions.Add(GetFunction(c.Element("LiquidDensity"), EvaluatedProperties.LiquidDensity));
                component.Functions.Add(GetFunction(c.Element("LiquidHeatCapacityCp"), EvaluatedProperties.LiquidHeatCapacity));
                component.Functions.Add(GetFunction(c.Element("LiquidViscosity"), EvaluatedProperties.LiquidViscosity));
                component.Functions.Add(GetFunction(c.Element("LiquidThermalConductivity"), EvaluatedProperties.LiquidHeatConductivity));

                component.Functions.Add(GetFunction(c.Element("RPPHeatCapacityCp"), EvaluatedProperties.IdealGasHeatCapacity));
                component.Functions.Add(GetFunction(c.Element("VaporViscosity"), EvaluatedProperties.VaporViscosity));
                component.Functions.Add(GetFunction(c.Element("VaporThermalConductivity"), EvaluatedProperties.VaporHeatConductivity));

                component.Functions.Add(GetFunction(c.Element("SurfaceTension"), EvaluatedProperties.SurfaceTension));


                if (c.Element("UniquacR") != null && c.Element("UniquacQ") != null)
                {
                    var r = (double)c.Element("UniquacR").Attribute("value");
                    var q = (double)c.Element("UniquacQ").Attribute("value");

                    var uniquacPure = new MethodConstantParameters();
                    uniquacPure.Method = MethodTypes.Uniquac;
                    uniquacPure.Parameters.Add("R", new Variable("UniquacR", r));
                    uniquacPure.Parameters.Add("Q", new Variable("UniquacQ", q));
                    uniquacPure.Parameters.Add("Q'", new Variable("UniquacQ'", q));
                    component.MethodParameters.Add(uniquacPure);
                }

                /*
                 *   var uniquacPure = new MethodConstantParameters();
                 * uniquacPure.Method = MethodTypes.Uniquac;
                 * uniquacPure.Parameters.Add("R", new Variable("UniquacR", r));
                 * uniquacPure.Parameters.Add("Q", new Variable("UniquacQ", q));
                 * uniquacPure.Parameters.Add("Q'", new Variable("UniquacQ'", qp));
                 * comp1.MethodParameters.Add(uniquacPure);
                 * */
                //CPIG, HVAP, CL, DENL, VP
                return(component);
            }
            else
            {
                throw new ArgumentException("No compound found for name " + name);
            }
        }