Ejemplo n.º 1
0
 public Port <MaterialStream> FindMaterialPort(string portName)
 {
     return(MaterialPorts.FirstOrDefault(p => p.Name == portName));
 }
Ejemplo n.º 2
0
        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]);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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;
                }
            }
        }