public Port <MaterialStream> FindMaterialPort(string portName) { return(MaterialPorts.FirstOrDefault(p => p.Name == portName)); }
public RateBasedSection(string name, ThermodynamicSystem system, int numberOfElements) : base(name, system) { Class = "RateSection"; NumberOfElements = numberOfElements; Icon.IconType = IconTypes.RateBasedSection; var NC = system.Components.Count; MaterialPorts.Add(new Port <MaterialStream>("VIn", PortDirection.In, 1)); MaterialPorts.Add(new Port <MaterialStream>("LIn", PortDirection.In, 1)); MaterialPorts.Add(new Port <MaterialStream>("VOut", PortDirection.Out, 1)); MaterialPorts.Add(new Port <MaterialStream>("LOut", PortDirection.Out, 1)); for (int i = 0; i < NumberOfElements; i++) { var tray = new NonEquilibriumTray(i + 1, system); _trays.Add(tray); } AddVariables(_trays.Select(t => t.TL).ToArray()); AddVariables(_trays.Select(t => t.TI).ToArray()); AddVariables(_trays.Select(t => t.TV).ToArray()); AddVariables(_trays.Select(t => t.p).ToArray()); AddVariables(_trays.Select(t => t.DP).ToArray()); AddVariables(_trays.Select(t => t.Q).ToArray()); AddVariables(_trays.Select(t => t.E).ToArray()); AddVariables(_trays.Select(t => t.L).ToArray()); AddVariables(_trays.Select(t => t.V).ToArray()); AddVariables(_trays.Select(t => t.HL).ToArray()); AddVariables(_trays.Select(t => t.HV).ToArray()); AddVariables(_trays.Select(t => t.aeff).ToArray()); AddVariables(_trays.Select(t => t.aspez).ToArray()); AddVariables(_trays.Select(t => t.d).ToArray()); AddVariables(_trays.Select(t => t.h).ToArray()); AddVariables(_trays.Select(t => t.dhyd).ToArray()); AddVariables(_trays.Select(t => t.ReV).ToArray()); AddVariables(_trays.Select(t => t.uV).ToArray()); for (int i = 0; i < NumberOfElements; i++) { AddVariables(_trays[i].K); } for (int i = 0; i < NumberOfElements; i++) { AddVariables(_trays[i].x); } for (int i = 0; i < NumberOfElements; i++) { AddVariables(_trays[i].xI); } for (int i = 0; i < NumberOfElements; i++) { AddVariables(_trays[i].y); } for (int i = 0; i < NumberOfElements; i++) { AddVariables(_trays[i].yI); } for (int i = 0; i < NumberOfElements; i++) { AddVariables(_trays[i].N); } for (int n = 0; n < NumberOfElements; n++) { for (int i = 0; i < NC; i++) { for (int j = 0; j < NC; j++) { AddVariables(_trays[n].BetaV[i, j]); } } } }
public TraySection(string name, ThermodynamicSystem system, int numberOfTrays) : base(name, system) { Class = "TraySection"; NumberOfTrays = numberOfTrays; Icon.IconType = IconTypes.ColumnSection; MaterialPorts.Add(new Port <MaterialStream>("Feeds", PortDirection.In, -1)); MaterialPorts.Add(new Port <MaterialStream>("VIn", PortDirection.In, 1)); MaterialPorts.Add(new Port <MaterialStream>("LIn", PortDirection.In, 1)); MaterialPorts.Add(new Port <MaterialStream>("VOut", PortDirection.Out, 1)); MaterialPorts.Add(new Port <MaterialStream>("LOut", PortDirection.Out, 1)); MaterialPorts.Add(new Port <MaterialStream>("Sidestreams", PortDirection.Out, -1)); for (int i = 0; i < NumberOfTrays; i++) { var tray = new EquilibriumTray(i + 1, system); _trays.Add(tray); } AddVariables(_trays.Select(t => t.T).ToArray()); AddVariables(_trays.Select(t => t.TV).ToArray()); AddVariables(_trays.Select(t => t.p).ToArray()); AddVariables(_trays.Select(t => t.DP).ToArray()); AddVariables(_trays.Select(t => t.Q).ToArray()); AddVariables(_trays.Select(t => t.F).ToArray()); AddVariables(_trays.Select(t => t.L).ToArray()); AddVariables(_trays.Select(t => t.V).ToArray()); AddVariables(_trays.Select(t => t.U).ToArray()); AddVariables(_trays.Select(t => t.W).ToArray()); AddVariables(_trays.Select(t => t.RL).ToArray()); AddVariables(_trays.Select(t => t.RV).ToArray()); AddVariables(_trays.Select(t => t.eps).ToArray()); AddVariables(_trays.Select(t => t.HF).ToArray()); AddVariables(_trays.Select(t => t.HL).ToArray()); AddVariables(_trays.Select(t => t.HV).ToArray()); for (int i = 0; i < NumberOfTrays; i++) { AddVariables(_trays[i].K); } for (int i = 0; i < NumberOfTrays; i++) { AddVariables(_trays[i].x); } for (int i = 0; i < NumberOfTrays; i++) { AddVariables(_trays[i].y); } for (int i = 0; i < NumberOfTrays; i++) { AddVariables(_trays[i].yeq); } for (int i = 0; i < NumberOfTrays; i++) { AddVariables(_trays[i].z); } int NC = System.Components.Count; for (var tray = 0; tray < NumberOfTrays; tray++) { _trays[tray].U.FixValue(0); _trays[tray].W.FixValue(0); _trays[tray].RL.FixValue(0); _trays[tray].RV.FixValue(0); _trays[tray].F.FixValue(0); _trays[tray].HF.FixValue(0); /* _trays[tray].U.IsConstant = true; * _trays[tray].W.IsConstant = true; * _trays[tray].RL.IsConstant = true; * _trays[tray].RV.IsConstant = true; * _trays[tray].F.IsConstant = true; * _trays[tray].HF.IsConstant = true;*/ for (var comp = 0; comp < NC; comp++) { _trays[tray].z[comp].FixValue(0); // _trays[tray].z[comp].IsConstant = true; } } }