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); }
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); }
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); } }