diff --git a/DWSIM.Interfaces/Enums.vb b/DWSIM.Interfaces/Enums.vb index ba1ad8773..87dfc874f 100644 --- a/DWSIM.Interfaces/Enums.vb +++ b/DWSIM.Interfaces/Enums.vb @@ -455,6 +455,8 @@ Namespace Enums Switches = 14 Inputs = 15 None = 16 + CleanPowerSources = 17 + Electrolyzers = 18 End Enum diff --git a/DWSIM.Interfaces/ISimulationObject.vb b/DWSIM.Interfaces/ISimulationObject.vb index c48b6c76d..7e35bdb7c 100644 --- a/DWSIM.Interfaces/ISimulationObject.vb +++ b/DWSIM.Interfaces/ISimulationObject.vb @@ -242,4 +242,8 @@ Imports DWSIM.Interfaces.Enums Function GetAsObject() As Object + ReadOnly Property IsSource As Boolean + + ReadOnly Property IsSink As Boolean + End Interface diff --git a/DWSIM.SharedClasses/BaseClass/SimulationObjectBaseClasses.vb b/DWSIM.SharedClasses/BaseClass/SimulationObjectBaseClasses.vb index 3edada18a..d555ad641 100644 --- a/DWSIM.SharedClasses/BaseClass/SimulationObjectBaseClasses.vb +++ b/DWSIM.SharedClasses/BaseClass/SimulationObjectBaseClasses.vb @@ -1495,6 +1495,10 @@ Namespace UnitOperations End Get End Property + Public Overridable ReadOnly Property IsSource As Boolean = False Implements ISimulationObject.IsSource + + Public Overridable ReadOnly Property IsSink As Boolean = False Implements ISimulationObject.IsSink + #End Region End Class diff --git a/DWSIM.UnitOperations/DWSIM.UnitOperations.vbproj b/DWSIM.UnitOperations/DWSIM.UnitOperations.vbproj index 35369ee11..96e42b38d 100644 --- a/DWSIM.UnitOperations/DWSIM.UnitOperations.vbproj +++ b/DWSIM.UnitOperations/DWSIM.UnitOperations.vbproj @@ -96,6 +96,10 @@ False ..\DWSIM\References\Cureos.Numerics.dll + + False + ..\DWSIM\References\Eto.Forms\Release\net45\Eto.dll + ..\packages\NetOfficeFw.Excel.1.8.1\lib\net40\ExcelApi.dll False @@ -228,6 +232,12 @@ Form + + EditingForm_AirCooler.vb + + + Form + EditingForm_AnalogGauge.vb @@ -632,7 +642,10 @@ + + + @@ -675,6 +688,9 @@ EditingForm_Adjust.vb + + EditingForm_AirCooler.vb + EditingForm_AnalogGauge.vb @@ -1258,6 +1274,11 @@ {a58eb237-f703-45cf-89f9-e8b91bff76c1} DWSIM.DrawingTools.SkiaSharp.Extended + + {5ba7546b-010c-4197-975e-f462bbea1ec4} + DWSIM.ExtensionMethods.Eto + False + {e4e37bfa-063f-4dba-a1bf-294d392c2ca4} DWSIM.Inspector @@ -1703,6 +1724,7 @@ + diff --git a/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.designer.vb b/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.designer.vb new file mode 100644 index 000000000..54649a328 --- /dev/null +++ b/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.designer.vb @@ -0,0 +1,1412 @@ + +Partial Class EditingForm_AirCooler + + 'Form overrides dispose to clean up the component list. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(EditingForm_AirCooler)) + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.btnCreateAndConnectEnergy = New System.Windows.Forms.Button() + Me.btnDisconnectEnergy = New System.Windows.Forms.Button() + Me.btnCreateAndConnectOutlet1 = New System.Windows.Forms.Button() + Me.Label14 = New System.Windows.Forms.Label() + Me.btnCreateAndConnectInlet1 = New System.Windows.Forms.Button() + Me.cbEnergy = New System.Windows.Forms.ComboBox() + Me.btnDisconnectOutlet1 = New System.Windows.Forms.Button() + Me.btnDisconnect1 = New System.Windows.Forms.Button() + Me.Label7 = New System.Windows.Forms.Label() + Me.cbOutlet1 = New System.Windows.Forms.ComboBox() + Me.cbInlet1 = New System.Windows.Forms.ComboBox() + Me.Label19 = New System.Windows.Forms.Label() + Me.GroupBox5 = New System.Windows.Forms.GroupBox() + Me.lblTag = New System.Windows.Forms.TextBox() + Me.chkActive = New System.Windows.Forms.CheckBox() + Me.lblConnectedTo = New System.Windows.Forms.Label() + Me.lblStatus = New System.Windows.Forms.Label() + Me.Label13 = New System.Windows.Forms.Label() + Me.Label12 = New System.Windows.Forms.Label() + Me.Label11 = New System.Windows.Forms.Label() + Me.GroupBox4 = New System.Windows.Forms.GroupBox() + Me.rtbAnnotations = New Extended.Windows.Forms.RichTextBoxExtended() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.Label1 = New System.Windows.Forms.Label() + Me.tbEff = New System.Windows.Forms.TextBox() + Me.Label9 = New System.Windows.Forms.Label() + Me.Label43 = New System.Windows.Forms.Label() + Me.tbOverallUA = New System.Windows.Forms.TextBox() + Me.Label44 = New System.Windows.Forms.Label() + Me.lblMaximumHeatExchange = New System.Windows.Forms.Label() + Me.tbMaxHeatEx = New System.Windows.Forms.TextBox() + Me.Label42 = New System.Windows.Forms.Label() + Me.lblHeatExchanged = New System.Windows.Forms.Label() + Me.tbHeatingChange = New System.Windows.Forms.TextBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.lblOutletAirTemperature = New System.Windows.Forms.Label() + Me.tbOutletAirTemp = New System.Windows.Forms.TextBox() + Me.Label40 = New System.Windows.Forms.Label() + Me.lblInletAirPressure = New System.Windows.Forms.Label() + Me.tbInletAirPre = New System.Windows.Forms.TextBox() + Me.Label38 = New System.Windows.Forms.Label() + Me.lblInletAirTemperature = New System.Windows.Forms.Label() + Me.tbInletAirTemp = New System.Windows.Forms.TextBox() + Me.Label36 = New System.Windows.Forms.Label() + Me.lblOutletTemperature = New System.Windows.Forms.Label() + Me.lblPressureDrop = New System.Windows.Forms.Label() + Me.tbOutletTemperature = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.tbPressureDrop = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.cbCalcMode = New System.Windows.Forms.ComboBox() + Me.Label8 = New System.Windows.Forms.Label() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.lbuTubeThermalCond = New System.Windows.Forms.Label() + Me.tbTubeThermalCond = New System.Windows.Forms.TextBox() + Me.tbTubeDi = New System.Windows.Forms.TextBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label32 = New System.Windows.Forms.Label() + Me.lbTubeRoughness = New System.Windows.Forms.Label() + Me.lbuTubeDi = New System.Windows.Forms.Label() + Me.tbTubeRoughness = New System.Windows.Forms.TextBox() + Me.Label30 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.tbTubeDe = New System.Windows.Forms.TextBox() + Me.lbuTubePitch = New System.Windows.Forms.Label() + Me.lbTubeDe = New System.Windows.Forms.Label() + Me.tbTubePitch = New System.Windows.Forms.TextBox() + Me.Label28 = New System.Windows.Forms.Label() + Me.Label20 = New System.Windows.Forms.Label() + Me.tbTubeLength = New System.Windows.Forms.TextBox() + Me.tbNumberOfTubesPerShell = New System.Windows.Forms.TextBox() + Me.lbuTubeLength = New System.Windows.Forms.Label() + Me.Label22 = New System.Windows.Forms.Label() + Me.Label26 = New System.Windows.Forms.Label() + Me.tbTubePassesPerShell = New System.Windows.Forms.TextBox() + Me.tbTubeFoulingFactor = New System.Windows.Forms.TextBox() + Me.Label24 = New System.Windows.Forms.Label() + Me.lbuTubeFoulingFactor = New System.Windows.Forms.Label() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.lblElectricalLoad = New System.Windows.Forms.Label() + Me.tbElecLoad = New System.Windows.Forms.TextBox() + Me.Label34 = New System.Windows.Forms.Label() + Me.Label29 = New System.Windows.Forms.Label() + Me.tbElecConv = New System.Windows.Forms.TextBox() + Me.Label31 = New System.Windows.Forms.Label() + Me.lblActualAirFlow = New System.Windows.Forms.Label() + Me.tbActualAF = New System.Windows.Forms.TextBox() + Me.Label27 = New System.Windows.Forms.Label() + Me.Label21 = New System.Windows.Forms.Label() + Me.tbActualR = New System.Windows.Forms.TextBox() + Me.Label23 = New System.Windows.Forms.Label() + Me.lblRefAirFlow = New System.Windows.Forms.Label() + Me.tbRefAF = New System.Windows.Forms.TextBox() + Me.Label18 = New System.Windows.Forms.Label() + Me.Label15 = New System.Windows.Forms.Label() + Me.tbRefR = New System.Windows.Forms.TextBox() + Me.Label16 = New System.Windows.Forms.Label() + Me.ToolTipChangeTag = New System.Windows.Forms.ToolTip(Me.components) + Me.GroupBox1.SuspendLayout() + Me.GroupBox5.SuspendLayout() + Me.GroupBox4.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.TabPage3.SuspendLayout() + Me.SuspendLayout() + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.btnCreateAndConnectEnergy) + Me.GroupBox1.Controls.Add(Me.btnDisconnectEnergy) + Me.GroupBox1.Controls.Add(Me.btnCreateAndConnectOutlet1) + Me.GroupBox1.Controls.Add(Me.Label14) + Me.GroupBox1.Controls.Add(Me.btnCreateAndConnectInlet1) + Me.GroupBox1.Controls.Add(Me.cbEnergy) + Me.GroupBox1.Controls.Add(Me.btnDisconnectOutlet1) + Me.GroupBox1.Controls.Add(Me.btnDisconnect1) + Me.GroupBox1.Controls.Add(Me.Label7) + Me.GroupBox1.Controls.Add(Me.cbOutlet1) + Me.GroupBox1.Controls.Add(Me.cbInlet1) + Me.GroupBox1.Controls.Add(Me.Label19) + Me.GroupBox1.Location = New System.Drawing.Point(7, 105) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(403, 113) + Me.GroupBox1.TabIndex = 12 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Connections" + ' + 'btnCreateAndConnectEnergy + ' + Me.btnCreateAndConnectEnergy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnCreateAndConnectEnergy.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnCreateAndConnectEnergy.Image = CType(resources.GetObject("btnCreateAndConnectEnergy.Image"), System.Drawing.Image) + Me.btnCreateAndConnectEnergy.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.btnCreateAndConnectEnergy.Location = New System.Drawing.Point(347, 77) + Me.btnCreateAndConnectEnergy.Name = "btnCreateAndConnectEnergy" + Me.btnCreateAndConnectEnergy.Size = New System.Drawing.Size(21, 21) + Me.btnCreateAndConnectEnergy.TabIndex = 42 + Me.ToolTipValues.SetToolTip(Me.btnCreateAndConnectEnergy, "Criar e Conectar") + Me.btnCreateAndConnectEnergy.UseVisualStyleBackColor = True + ' + 'btnDisconnectEnergy + ' + Me.btnDisconnectEnergy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnDisconnectEnergy.Image = CType(resources.GetObject("btnDisconnectEnergy.Image"), System.Drawing.Image) + Me.btnDisconnectEnergy.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.btnDisconnectEnergy.Location = New System.Drawing.Point(374, 77) + Me.btnDisconnectEnergy.Name = "btnDisconnectEnergy" + Me.btnDisconnectEnergy.Size = New System.Drawing.Size(21, 21) + Me.btnDisconnectEnergy.TabIndex = 23 + Me.ToolTipValues.SetToolTip(Me.btnDisconnectEnergy, "Desconectar") + Me.btnDisconnectEnergy.UseVisualStyleBackColor = True + ' + 'btnCreateAndConnectOutlet1 + ' + Me.btnCreateAndConnectOutlet1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnCreateAndConnectOutlet1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnCreateAndConnectOutlet1.Image = CType(resources.GetObject("btnCreateAndConnectOutlet1.Image"), System.Drawing.Image) + Me.btnCreateAndConnectOutlet1.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.btnCreateAndConnectOutlet1.Location = New System.Drawing.Point(347, 50) + Me.btnCreateAndConnectOutlet1.Name = "btnCreateAndConnectOutlet1" + Me.btnCreateAndConnectOutlet1.Size = New System.Drawing.Size(21, 21) + Me.btnCreateAndConnectOutlet1.TabIndex = 41 + Me.ToolTipValues.SetToolTip(Me.btnCreateAndConnectOutlet1, "Criar e Conectar") + Me.btnCreateAndConnectOutlet1.UseVisualStyleBackColor = True + ' + 'Label14 + ' + Me.Label14.AutoSize = True + Me.Label14.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label14.Location = New System.Drawing.Point(9, 80) + Me.Label14.Name = "Label14" + Me.Label14.Size = New System.Drawing.Size(76, 13) + Me.Label14.TabIndex = 22 + Me.Label14.Text = "Energy Stream" + ' + 'btnCreateAndConnectInlet1 + ' + Me.btnCreateAndConnectInlet1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnCreateAndConnectInlet1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnCreateAndConnectInlet1.Image = CType(resources.GetObject("btnCreateAndConnectInlet1.Image"), System.Drawing.Image) + Me.btnCreateAndConnectInlet1.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.btnCreateAndConnectInlet1.Location = New System.Drawing.Point(347, 23) + Me.btnCreateAndConnectInlet1.Name = "btnCreateAndConnectInlet1" + Me.btnCreateAndConnectInlet1.Size = New System.Drawing.Size(21, 21) + Me.btnCreateAndConnectInlet1.TabIndex = 40 + Me.ToolTipValues.SetToolTip(Me.btnCreateAndConnectInlet1, "Criar e Conectar") + Me.btnCreateAndConnectInlet1.UseVisualStyleBackColor = True + ' + 'cbEnergy + ' + Me.cbEnergy.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cbEnergy.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbEnergy.FormattingEnabled = True + Me.cbEnergy.Location = New System.Drawing.Point(147, 77) + Me.cbEnergy.Name = "cbEnergy" + Me.cbEnergy.Size = New System.Drawing.Size(194, 21) + Me.cbEnergy.TabIndex = 21 + ' + 'btnDisconnectOutlet1 + ' + Me.btnDisconnectOutlet1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnDisconnectOutlet1.Image = CType(resources.GetObject("btnDisconnectOutlet1.Image"), System.Drawing.Image) + Me.btnDisconnectOutlet1.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.btnDisconnectOutlet1.Location = New System.Drawing.Point(374, 50) + Me.btnDisconnectOutlet1.Name = "btnDisconnectOutlet1" + Me.btnDisconnectOutlet1.Size = New System.Drawing.Size(21, 21) + Me.btnDisconnectOutlet1.TabIndex = 20 + Me.ToolTipValues.SetToolTip(Me.btnDisconnectOutlet1, "Desconectar") + Me.btnDisconnectOutlet1.UseVisualStyleBackColor = True + ' + 'btnDisconnect1 + ' + Me.btnDisconnect1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnDisconnect1.Image = CType(resources.GetObject("btnDisconnect1.Image"), System.Drawing.Image) + Me.btnDisconnect1.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.btnDisconnect1.Location = New System.Drawing.Point(374, 23) + Me.btnDisconnect1.Name = "btnDisconnect1" + Me.btnDisconnect1.Size = New System.Drawing.Size(21, 21) + Me.btnDisconnect1.TabIndex = 14 + Me.ToolTipValues.SetToolTip(Me.btnDisconnect1, "Desconectar") + Me.btnDisconnect1.UseVisualStyleBackColor = True + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label7.Location = New System.Drawing.Point(9, 53) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(71, 13) + Me.Label7.TabIndex = 13 + Me.Label7.Text = "Outlet Stream" + ' + 'cbOutlet1 + ' + Me.cbOutlet1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cbOutlet1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbOutlet1.FormattingEnabled = True + Me.cbOutlet1.Location = New System.Drawing.Point(147, 50) + Me.cbOutlet1.Name = "cbOutlet1" + Me.cbOutlet1.Size = New System.Drawing.Size(194, 21) + Me.cbOutlet1.TabIndex = 8 + ' + 'cbInlet1 + ' + Me.cbInlet1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cbInlet1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbInlet1.FormattingEnabled = True + Me.cbInlet1.Location = New System.Drawing.Point(147, 23) + Me.cbInlet1.Name = "cbInlet1" + Me.cbInlet1.Size = New System.Drawing.Size(194, 21) + Me.cbInlet1.TabIndex = 1 + ' + 'Label19 + ' + Me.Label19.AutoSize = True + Me.Label19.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label19.Location = New System.Drawing.Point(8, 26) + Me.Label19.Name = "Label19" + Me.Label19.Size = New System.Drawing.Size(63, 13) + Me.Label19.TabIndex = 0 + Me.Label19.Text = "Inlet Stream" + ' + 'GroupBox5 + ' + Me.GroupBox5.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox5.Controls.Add(Me.lblTag) + Me.GroupBox5.Controls.Add(Me.chkActive) + Me.GroupBox5.Controls.Add(Me.lblConnectedTo) + Me.GroupBox5.Controls.Add(Me.lblStatus) + Me.GroupBox5.Controls.Add(Me.Label13) + Me.GroupBox5.Controls.Add(Me.Label12) + Me.GroupBox5.Controls.Add(Me.Label11) + Me.GroupBox5.Location = New System.Drawing.Point(7, 5) + Me.GroupBox5.Name = "GroupBox5" + Me.GroupBox5.Size = New System.Drawing.Size(403, 98) + Me.GroupBox5.TabIndex = 11 + Me.GroupBox5.TabStop = False + Me.GroupBox5.Text = "General Info" + ' + 'lblTag + ' + Me.lblTag.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblTag.Location = New System.Drawing.Point(133, 19) + Me.lblTag.Name = "lblTag" + Me.lblTag.Size = New System.Drawing.Size(262, 20) + Me.lblTag.TabIndex = 24 + ' + 'chkActive + ' + Me.chkActive.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.chkActive.Appearance = System.Windows.Forms.Appearance.Button + Me.chkActive.Image = Global.DWSIM.UnitOperations.My.Resources.Resources.bullet_tick + Me.chkActive.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.chkActive.Location = New System.Drawing.Point(374, 43) + Me.chkActive.Name = "chkActive" + Me.chkActive.Size = New System.Drawing.Size(21, 21) + Me.chkActive.TabIndex = 21 + Me.ToolTipValues.SetToolTip(Me.chkActive, "Ativo/Inativo") + Me.chkActive.UseVisualStyleBackColor = True + ' + 'lblConnectedTo + ' + Me.lblConnectedTo.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblConnectedTo.AutoSize = True + Me.lblConnectedTo.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblConnectedTo.Location = New System.Drawing.Point(132, 72) + Me.lblConnectedTo.Name = "lblConnectedTo" + Me.lblConnectedTo.Size = New System.Drawing.Size(38, 13) + Me.lblConnectedTo.TabIndex = 20 + Me.lblConnectedTo.Text = "Objeto" + ' + 'lblStatus + ' + Me.lblStatus.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblStatus.AutoSize = True + Me.lblStatus.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblStatus.Location = New System.Drawing.Point(132, 47) + Me.lblStatus.Name = "lblStatus" + Me.lblStatus.Size = New System.Drawing.Size(38, 13) + Me.lblStatus.TabIndex = 19 + Me.lblStatus.Text = "Objeto" + ' + 'Label13 + ' + Me.Label13.AutoSize = True + Me.Label13.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label13.Location = New System.Drawing.Point(9, 72) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(51, 13) + Me.Label13.TabIndex = 17 + Me.Label13.Text = "Linked to" + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label12.Location = New System.Drawing.Point(9, 47) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(37, 13) + Me.Label12.TabIndex = 16 + Me.Label12.Text = "Status" + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label11.Location = New System.Drawing.Point(9, 22) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(38, 13) + Me.Label11.TabIndex = 14 + Me.Label11.Text = "Object" + ' + 'GroupBox4 + ' + Me.GroupBox4.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox4.Controls.Add(Me.rtbAnnotations) + Me.GroupBox4.Location = New System.Drawing.Point(7, 582) + Me.GroupBox4.Name = "GroupBox4" + Me.GroupBox4.Size = New System.Drawing.Size(403, 156) + Me.GroupBox4.TabIndex = 10 + Me.GroupBox4.TabStop = False + Me.GroupBox4.Text = "Notes" + ' + 'rtbAnnotations + ' + Me.rtbAnnotations.Dock = System.Windows.Forms.DockStyle.Fill + Me.rtbAnnotations.Location = New System.Drawing.Point(3, 16) + Me.rtbAnnotations.Name = "rtbAnnotations" + Me.rtbAnnotations.Rtf = "{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1046{\fonttbl{\f0\fnil Microsoft " & + "Sans Serif;}}" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "{\*\generator Riched20 10.0.18362}\viewkind4\uc1 " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "\pard\f0\fs17\" & + "par" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "}" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) + Me.rtbAnnotations.ShowRedo = False + Me.rtbAnnotations.ShowUndo = False + Me.rtbAnnotations.Size = New System.Drawing.Size(397, 137) + Me.rtbAnnotations.TabIndex = 0 + ' + 'GroupBox2 + ' + Me.GroupBox2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox2.Controls.Add(Me.TabControl1) + Me.GroupBox2.Location = New System.Drawing.Point(7, 221) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(403, 361) + Me.GroupBox2.TabIndex = 13 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Calculation Parameters" + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Controls.Add(Me.TabPage3) + Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.TabControl1.Location = New System.Drawing.Point(3, 16) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(397, 342) + Me.TabControl1.TabIndex = 0 + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.Label1) + Me.TabPage1.Controls.Add(Me.tbEff) + Me.TabPage1.Controls.Add(Me.Label9) + Me.TabPage1.Controls.Add(Me.Label43) + Me.TabPage1.Controls.Add(Me.tbOverallUA) + Me.TabPage1.Controls.Add(Me.Label44) + Me.TabPage1.Controls.Add(Me.lblMaximumHeatExchange) + Me.TabPage1.Controls.Add(Me.tbMaxHeatEx) + Me.TabPage1.Controls.Add(Me.Label42) + Me.TabPage1.Controls.Add(Me.lblHeatExchanged) + Me.TabPage1.Controls.Add(Me.tbHeatingChange) + Me.TabPage1.Controls.Add(Me.Label6) + Me.TabPage1.Controls.Add(Me.lblOutletAirTemperature) + Me.TabPage1.Controls.Add(Me.tbOutletAirTemp) + Me.TabPage1.Controls.Add(Me.Label40) + Me.TabPage1.Controls.Add(Me.lblInletAirPressure) + Me.TabPage1.Controls.Add(Me.tbInletAirPre) + Me.TabPage1.Controls.Add(Me.Label38) + Me.TabPage1.Controls.Add(Me.lblInletAirTemperature) + Me.TabPage1.Controls.Add(Me.tbInletAirTemp) + Me.TabPage1.Controls.Add(Me.Label36) + Me.TabPage1.Controls.Add(Me.lblOutletTemperature) + Me.TabPage1.Controls.Add(Me.lblPressureDrop) + Me.TabPage1.Controls.Add(Me.tbOutletTemperature) + Me.TabPage1.Controls.Add(Me.Label2) + Me.TabPage1.Controls.Add(Me.tbPressureDrop) + Me.TabPage1.Controls.Add(Me.Label3) + Me.TabPage1.Controls.Add(Me.cbCalcMode) + Me.TabPage1.Controls.Add(Me.Label8) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage1.Size = New System.Drawing.Size(389, 316) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Main" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'Label1 + ' + Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(324, 287) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(15, 13) + Me.Label1.TabIndex = 70 + Me.Label1.Text = "%" + ' + 'tbEff + ' + Me.tbEff.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbEff.Location = New System.Drawing.Point(151, 284) + Me.tbEff.Name = "tbEff" + Me.tbEff.ReadOnly = True + Me.tbEff.Size = New System.Drawing.Size(167, 20) + Me.tbEff.TabIndex = 69 + Me.tbEff.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label9.Location = New System.Drawing.Point(12, 287) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(107, 13) + Me.Label9.TabIndex = 68 + Me.Label9.Text = "Exchanger Efficiency" + ' + 'Label43 + ' + Me.Label43.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label43.AutoSize = True + Me.Label43.Location = New System.Drawing.Point(324, 209) + Me.Label43.Name = "Label43" + Me.Label43.Size = New System.Drawing.Size(30, 13) + Me.Label43.TabIndex = 67 + Me.Label43.Text = "W/K" + ' + 'tbOverallUA + ' + Me.tbOverallUA.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbOverallUA.Location = New System.Drawing.Point(151, 206) + Me.tbOverallUA.Name = "tbOverallUA" + Me.tbOverallUA.Size = New System.Drawing.Size(167, 20) + Me.tbOverallUA.TabIndex = 66 + Me.tbOverallUA.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label44 + ' + Me.Label44.AutoSize = True + Me.Label44.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label44.Location = New System.Drawing.Point(12, 209) + Me.Label44.Name = "Label44" + Me.Label44.Size = New System.Drawing.Size(58, 13) + Me.Label44.TabIndex = 65 + Me.Label44.Text = "Overall UA" + ' + 'lblMaximumHeatExchange + ' + Me.lblMaximumHeatExchange.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblMaximumHeatExchange.AutoSize = True + Me.lblMaximumHeatExchange.Location = New System.Drawing.Point(324, 261) + Me.lblMaximumHeatExchange.Name = "lblMaximumHeatExchange" + Me.lblMaximumHeatExchange.Size = New System.Drawing.Size(45, 13) + Me.lblMaximumHeatExchange.TabIndex = 64 + Me.lblMaximumHeatExchange.Text = "Label41" + ' + 'tbMaxHeatEx + ' + Me.tbMaxHeatEx.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbMaxHeatEx.Location = New System.Drawing.Point(151, 258) + Me.tbMaxHeatEx.Name = "tbMaxHeatEx" + Me.tbMaxHeatEx.ReadOnly = True + Me.tbMaxHeatEx.Size = New System.Drawing.Size(167, 20) + Me.tbMaxHeatEx.TabIndex = 63 + Me.tbMaxHeatEx.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label42 + ' + Me.Label42.AutoSize = True + Me.Label42.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label42.Location = New System.Drawing.Point(12, 261) + Me.Label42.Name = "Label42" + Me.Label42.Size = New System.Drawing.Size(128, 13) + Me.Label42.TabIndex = 62 + Me.Label42.Text = "Maximum Heat Exchange" + ' + 'lblHeatExchanged + ' + Me.lblHeatExchanged.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblHeatExchanged.AutoSize = True + Me.lblHeatExchanged.Location = New System.Drawing.Point(324, 235) + Me.lblHeatExchanged.Name = "lblHeatExchanged" + Me.lblHeatExchanged.Size = New System.Drawing.Size(45, 13) + Me.lblHeatExchanged.TabIndex = 61 + Me.lblHeatExchanged.Text = "Label10" + ' + 'tbHeatingChange + ' + Me.tbHeatingChange.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbHeatingChange.Location = New System.Drawing.Point(151, 232) + Me.tbHeatingChange.Name = "tbHeatingChange" + Me.tbHeatingChange.ReadOnly = True + Me.tbHeatingChange.Size = New System.Drawing.Size(167, 20) + Me.tbHeatingChange.TabIndex = 60 + Me.tbHeatingChange.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label6.Location = New System.Drawing.Point(12, 235) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(87, 13) + Me.Label6.TabIndex = 59 + Me.Label6.Text = "Heat Exchanged" + ' + 'lblOutletAirTemperature + ' + Me.lblOutletAirTemperature.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblOutletAirTemperature.AutoSize = True + Me.lblOutletAirTemperature.Location = New System.Drawing.Point(324, 169) + Me.lblOutletAirTemperature.Name = "lblOutletAirTemperature" + Me.lblOutletAirTemperature.Size = New System.Drawing.Size(45, 13) + Me.lblOutletAirTemperature.TabIndex = 58 + Me.lblOutletAirTemperature.Text = "Label39" + ' + 'tbOutletAirTemp + ' + Me.tbOutletAirTemp.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbOutletAirTemp.Location = New System.Drawing.Point(151, 166) + Me.tbOutletAirTemp.Name = "tbOutletAirTemp" + Me.tbOutletAirTemp.ReadOnly = True + Me.tbOutletAirTemp.Size = New System.Drawing.Size(167, 20) + Me.tbOutletAirTemp.TabIndex = 57 + Me.tbOutletAirTemp.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label40 + ' + Me.Label40.AutoSize = True + Me.Label40.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label40.Location = New System.Drawing.Point(12, 169) + Me.Label40.Name = "Label40" + Me.Label40.Size = New System.Drawing.Size(113, 13) + Me.Label40.TabIndex = 56 + Me.Label40.Text = "Outlet Air Temperature" + ' + 'lblInletAirPressure + ' + Me.lblInletAirPressure.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblInletAirPressure.AutoSize = True + Me.lblInletAirPressure.Location = New System.Drawing.Point(324, 143) + Me.lblInletAirPressure.Name = "lblInletAirPressure" + Me.lblInletAirPressure.Size = New System.Drawing.Size(45, 13) + Me.lblInletAirPressure.TabIndex = 55 + Me.lblInletAirPressure.Text = "Label37" + ' + 'tbInletAirPre + ' + Me.tbInletAirPre.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbInletAirPre.Location = New System.Drawing.Point(151, 140) + Me.tbInletAirPre.Name = "tbInletAirPre" + Me.tbInletAirPre.Size = New System.Drawing.Size(167, 20) + Me.tbInletAirPre.TabIndex = 54 + Me.tbInletAirPre.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label38 + ' + Me.Label38.AutoSize = True + Me.Label38.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label38.Location = New System.Drawing.Point(12, 143) + Me.Label38.Name = "Label38" + Me.Label38.Size = New System.Drawing.Size(86, 13) + Me.Label38.TabIndex = 53 + Me.Label38.Text = "Inlet Air Pressure" + ' + 'lblInletAirTemperature + ' + Me.lblInletAirTemperature.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblInletAirTemperature.AutoSize = True + Me.lblInletAirTemperature.Location = New System.Drawing.Point(324, 117) + Me.lblInletAirTemperature.Name = "lblInletAirTemperature" + Me.lblInletAirTemperature.Size = New System.Drawing.Size(45, 13) + Me.lblInletAirTemperature.TabIndex = 52 + Me.lblInletAirTemperature.Text = "Label35" + ' + 'tbInletAirTemp + ' + Me.tbInletAirTemp.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbInletAirTemp.Location = New System.Drawing.Point(151, 114) + Me.tbInletAirTemp.Name = "tbInletAirTemp" + Me.tbInletAirTemp.Size = New System.Drawing.Size(167, 20) + Me.tbInletAirTemp.TabIndex = 51 + Me.tbInletAirTemp.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label36 + ' + Me.Label36.AutoSize = True + Me.Label36.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label36.Location = New System.Drawing.Point(12, 117) + Me.Label36.Name = "Label36" + Me.Label36.Size = New System.Drawing.Size(105, 13) + Me.Label36.TabIndex = 50 + Me.Label36.Text = "Inlet Air Temperature" + ' + 'lblOutletTemperature + ' + Me.lblOutletTemperature.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblOutletTemperature.AutoSize = True + Me.lblOutletTemperature.Location = New System.Drawing.Point(324, 79) + Me.lblOutletTemperature.Name = "lblOutletTemperature" + Me.lblOutletTemperature.Size = New System.Drawing.Size(39, 13) + Me.lblOutletTemperature.TabIndex = 48 + Me.lblOutletTemperature.Text = "Label9" + ' + 'lblPressureDrop + ' + Me.lblPressureDrop.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblPressureDrop.AutoSize = True + Me.lblPressureDrop.Location = New System.Drawing.Point(324, 53) + Me.lblPressureDrop.Name = "lblPressureDrop" + Me.lblPressureDrop.Size = New System.Drawing.Size(39, 13) + Me.lblPressureDrop.TabIndex = 47 + Me.lblPressureDrop.Text = "Label1" + ' + 'tbOutletTemperature + ' + Me.tbOutletTemperature.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbOutletTemperature.Location = New System.Drawing.Point(151, 76) + Me.tbOutletTemperature.Name = "tbOutletTemperature" + Me.tbOutletTemperature.Size = New System.Drawing.Size(167, 20) + Me.tbOutletTemperature.TabIndex = 44 + Me.tbOutletTemperature.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label2.Location = New System.Drawing.Point(12, 79) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(123, 13) + Me.Label2.TabIndex = 43 + Me.Label2.Text = "Outlet Fluid Temperature" + ' + 'tbPressureDrop + ' + Me.tbPressureDrop.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbPressureDrop.Location = New System.Drawing.Point(151, 50) + Me.tbPressureDrop.Name = "tbPressureDrop" + Me.tbPressureDrop.Size = New System.Drawing.Size(167, 20) + Me.tbPressureDrop.TabIndex = 42 + Me.tbPressureDrop.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label3.Location = New System.Drawing.Point(12, 53) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(99, 13) + Me.Label3.TabIndex = 41 + Me.Label3.Text = "Fluid Pressure Drop" + ' + 'cbCalcMode + ' + Me.cbCalcMode.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cbCalcMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbCalcMode.FormattingEnabled = True + Me.cbCalcMode.Items.AddRange(New Object() {"Specify Outlet Temperature", "Specify Tube Geometry", "Specify Overall UA"}) + Me.cbCalcMode.Location = New System.Drawing.Point(151, 15) + Me.cbCalcMode.Name = "cbCalcMode" + Me.cbCalcMode.Size = New System.Drawing.Size(218, 21) + Me.cbCalcMode.TabIndex = 40 + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label8.Location = New System.Drawing.Point(12, 19) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(86, 13) + Me.Label8.TabIndex = 39 + Me.Label8.Text = "Calculation Type" + ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.lbuTubeThermalCond) + Me.TabPage2.Controls.Add(Me.tbTubeThermalCond) + Me.TabPage2.Controls.Add(Me.tbTubeDi) + Me.TabPage2.Controls.Add(Me.Label5) + Me.TabPage2.Controls.Add(Me.Label32) + Me.TabPage2.Controls.Add(Me.lbTubeRoughness) + Me.TabPage2.Controls.Add(Me.lbuTubeDi) + Me.TabPage2.Controls.Add(Me.tbTubeRoughness) + Me.TabPage2.Controls.Add(Me.Label30) + Me.TabPage2.Controls.Add(Me.Label4) + Me.TabPage2.Controls.Add(Me.tbTubeDe) + Me.TabPage2.Controls.Add(Me.lbuTubePitch) + Me.TabPage2.Controls.Add(Me.lbTubeDe) + Me.TabPage2.Controls.Add(Me.tbTubePitch) + Me.TabPage2.Controls.Add(Me.Label28) + Me.TabPage2.Controls.Add(Me.Label20) + Me.TabPage2.Controls.Add(Me.tbTubeLength) + Me.TabPage2.Controls.Add(Me.tbNumberOfTubesPerShell) + Me.TabPage2.Controls.Add(Me.lbuTubeLength) + Me.TabPage2.Controls.Add(Me.Label22) + Me.TabPage2.Controls.Add(Me.Label26) + Me.TabPage2.Controls.Add(Me.tbTubePassesPerShell) + Me.TabPage2.Controls.Add(Me.tbTubeFoulingFactor) + Me.TabPage2.Controls.Add(Me.Label24) + Me.TabPage2.Controls.Add(Me.lbuTubeFoulingFactor) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(389, 316) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "Tubes" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'lbuTubeThermalCond + ' + Me.lbuTubeThermalCond.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lbuTubeThermalCond.AutoSize = True + Me.lbuTubeThermalCond.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lbuTubeThermalCond.Location = New System.Drawing.Point(311, 146) + Me.lbuTubeThermalCond.Name = "lbuTubeThermalCond" + Me.lbuTubeThermalCond.Size = New System.Drawing.Size(45, 13) + Me.lbuTubeThermalCond.TabIndex = 60 + Me.lbuTubeThermalCond.Text = "Label31" + ' + 'tbTubeThermalCond + ' + Me.tbTubeThermalCond.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbTubeThermalCond.Location = New System.Drawing.Point(161, 143) + Me.tbTubeThermalCond.Name = "tbTubeThermalCond" + Me.tbTubeThermalCond.Size = New System.Drawing.Size(144, 20) + Me.tbTubeThermalCond.TabIndex = 59 + Me.tbTubeThermalCond.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'tbTubeDi + ' + Me.tbTubeDi.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbTubeDi.Location = New System.Drawing.Point(161, 13) + Me.tbTubeDi.Name = "tbTubeDi" + Me.tbTubeDi.Size = New System.Drawing.Size(144, 20) + Me.tbTubeDi.TabIndex = 26 + Me.tbTubeDi.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label5.Location = New System.Drawing.Point(14, 146) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(106, 13) + Me.Label5.TabIndex = 58 + Me.Label5.Text = "Thermal Conductivity" + ' + 'Label32 + ' + Me.Label32.AutoSize = True + Me.Label32.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label32.Location = New System.Drawing.Point(13, 16) + Me.Label32.Name = "Label32" + Me.Label32.Size = New System.Drawing.Size(87, 13) + Me.Label32.TabIndex = 25 + Me.Label32.Text = "Internal Diameter" + ' + 'lbTubeRoughness + ' + Me.lbTubeRoughness.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lbTubeRoughness.AutoSize = True + Me.lbTubeRoughness.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lbTubeRoughness.Location = New System.Drawing.Point(312, 120) + Me.lbTubeRoughness.Name = "lbTubeRoughness" + Me.lbTubeRoughness.Size = New System.Drawing.Size(45, 13) + Me.lbTubeRoughness.TabIndex = 54 + Me.lbTubeRoughness.Text = "Label31" + ' + 'lbuTubeDi + ' + Me.lbuTubeDi.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lbuTubeDi.AutoSize = True + Me.lbuTubeDi.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lbuTubeDi.Location = New System.Drawing.Point(311, 16) + Me.lbuTubeDi.Name = "lbuTubeDi" + Me.lbuTubeDi.Size = New System.Drawing.Size(45, 13) + Me.lbuTubeDi.TabIndex = 28 + Me.lbuTubeDi.Text = "Label31" + ' + 'tbTubeRoughness + ' + Me.tbTubeRoughness.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbTubeRoughness.Location = New System.Drawing.Point(161, 117) + Me.tbTubeRoughness.Name = "tbTubeRoughness" + Me.tbTubeRoughness.Size = New System.Drawing.Size(144, 20) + Me.tbTubeRoughness.TabIndex = 53 + Me.tbTubeRoughness.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label30 + ' + Me.Label30.AutoSize = True + Me.Label30.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label30.Location = New System.Drawing.Point(13, 42) + Me.Label30.Name = "Label30" + Me.Label30.Size = New System.Drawing.Size(90, 13) + Me.Label30.TabIndex = 29 + Me.Label30.Text = "External Diameter" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label4.Location = New System.Drawing.Point(13, 120) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(61, 13) + Me.Label4.TabIndex = 52 + Me.Label4.Text = "Roughness" + ' + 'tbTubeDe + ' + Me.tbTubeDe.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbTubeDe.Location = New System.Drawing.Point(161, 39) + Me.tbTubeDe.Name = "tbTubeDe" + Me.tbTubeDe.Size = New System.Drawing.Size(144, 20) + Me.tbTubeDe.TabIndex = 30 + Me.tbTubeDe.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'lbuTubePitch + ' + Me.lbuTubePitch.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lbuTubePitch.AutoSize = True + Me.lbuTubePitch.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lbuTubePitch.Location = New System.Drawing.Point(311, 224) + Me.lbuTubePitch.Name = "lbuTubePitch" + Me.lbuTubePitch.Size = New System.Drawing.Size(45, 13) + Me.lbuTubePitch.TabIndex = 51 + Me.lbuTubePitch.Text = "Label19" + ' + 'lbTubeDe + ' + Me.lbTubeDe.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lbTubeDe.AutoSize = True + Me.lbTubeDe.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lbTubeDe.Location = New System.Drawing.Point(311, 42) + Me.lbTubeDe.Name = "lbTubeDe" + Me.lbTubeDe.Size = New System.Drawing.Size(45, 13) + Me.lbTubeDe.TabIndex = 31 + Me.lbTubeDe.Text = "Label29" + ' + 'tbTubePitch + ' + Me.tbTubePitch.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbTubePitch.Location = New System.Drawing.Point(161, 221) + Me.tbTubePitch.Name = "tbTubePitch" + Me.tbTubePitch.Size = New System.Drawing.Size(144, 20) + Me.tbTubePitch.TabIndex = 50 + Me.tbTubePitch.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label28 + ' + Me.Label28.AutoSize = True + Me.Label28.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label28.Location = New System.Drawing.Point(13, 68) + Me.Label28.Name = "Label28" + Me.Label28.Size = New System.Drawing.Size(40, 13) + Me.Label28.TabIndex = 32 + Me.Label28.Text = "Length" + ' + 'Label20 + ' + Me.Label20.AutoSize = True + Me.Label20.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label20.Location = New System.Drawing.Point(13, 224) + Me.Label20.Name = "Label20" + Me.Label20.Size = New System.Drawing.Size(74, 13) + Me.Label20.TabIndex = 49 + Me.Label20.Text = "Tube Spacing" + ' + 'tbTubeLength + ' + Me.tbTubeLength.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbTubeLength.Location = New System.Drawing.Point(161, 65) + Me.tbTubeLength.Name = "tbTubeLength" + Me.tbTubeLength.Size = New System.Drawing.Size(144, 20) + Me.tbTubeLength.TabIndex = 33 + Me.tbTubeLength.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'tbNumberOfTubesPerShell + ' + Me.tbNumberOfTubesPerShell.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbNumberOfTubesPerShell.Location = New System.Drawing.Point(161, 195) + Me.tbNumberOfTubesPerShell.Name = "tbNumberOfTubesPerShell" + Me.tbNumberOfTubesPerShell.Size = New System.Drawing.Size(144, 20) + Me.tbNumberOfTubesPerShell.TabIndex = 42 + Me.tbNumberOfTubesPerShell.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'lbuTubeLength + ' + Me.lbuTubeLength.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lbuTubeLength.AutoSize = True + Me.lbuTubeLength.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lbuTubeLength.Location = New System.Drawing.Point(311, 68) + Me.lbuTubeLength.Name = "lbuTubeLength" + Me.lbuTubeLength.Size = New System.Drawing.Size(45, 13) + Me.lbuTubeLength.TabIndex = 34 + Me.lbuTubeLength.Text = "Label27" + ' + 'Label22 + ' + Me.Label22.AutoSize = True + Me.Label22.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label22.Location = New System.Drawing.Point(13, 198) + Me.Label22.Name = "Label22" + Me.Label22.Size = New System.Drawing.Size(89, 13) + Me.Label22.TabIndex = 41 + Me.Label22.Text = "Number of Tubes" + ' + 'Label26 + ' + Me.Label26.AutoSize = True + Me.Label26.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label26.Location = New System.Drawing.Point(13, 94) + Me.Label26.Name = "Label26" + Me.Label26.Size = New System.Drawing.Size(74, 13) + Me.Label26.TabIndex = 35 + Me.Label26.Text = "Fouling Factor" + ' + 'tbTubePassesPerShell + ' + Me.tbTubePassesPerShell.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbTubePassesPerShell.Location = New System.Drawing.Point(161, 169) + Me.tbTubePassesPerShell.Name = "tbTubePassesPerShell" + Me.tbTubePassesPerShell.Size = New System.Drawing.Size(144, 20) + Me.tbTubePassesPerShell.TabIndex = 39 + Me.tbTubePassesPerShell.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'tbTubeFoulingFactor + ' + Me.tbTubeFoulingFactor.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbTubeFoulingFactor.Location = New System.Drawing.Point(161, 91) + Me.tbTubeFoulingFactor.Name = "tbTubeFoulingFactor" + Me.tbTubeFoulingFactor.Size = New System.Drawing.Size(144, 20) + Me.tbTubeFoulingFactor.TabIndex = 36 + Me.tbTubeFoulingFactor.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label24 + ' + Me.Label24.AutoSize = True + Me.Label24.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label24.Location = New System.Drawing.Point(13, 172) + Me.Label24.Name = "Label24" + Me.Label24.Size = New System.Drawing.Size(93, 13) + Me.Label24.TabIndex = 38 + Me.Label24.Text = "Number of Passes" + ' + 'lbuTubeFoulingFactor + ' + Me.lbuTubeFoulingFactor.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lbuTubeFoulingFactor.AutoSize = True + Me.lbuTubeFoulingFactor.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lbuTubeFoulingFactor.Location = New System.Drawing.Point(311, 94) + Me.lbuTubeFoulingFactor.Name = "lbuTubeFoulingFactor" + Me.lbuTubeFoulingFactor.Size = New System.Drawing.Size(45, 13) + Me.lbuTubeFoulingFactor.TabIndex = 37 + Me.lbuTubeFoulingFactor.Text = "Label25" + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.lblElectricalLoad) + Me.TabPage3.Controls.Add(Me.tbElecLoad) + Me.TabPage3.Controls.Add(Me.Label34) + Me.TabPage3.Controls.Add(Me.Label29) + Me.TabPage3.Controls.Add(Me.tbElecConv) + Me.TabPage3.Controls.Add(Me.Label31) + Me.TabPage3.Controls.Add(Me.lblActualAirFlow) + Me.TabPage3.Controls.Add(Me.tbActualAF) + Me.TabPage3.Controls.Add(Me.Label27) + Me.TabPage3.Controls.Add(Me.Label21) + Me.TabPage3.Controls.Add(Me.tbActualR) + Me.TabPage3.Controls.Add(Me.Label23) + Me.TabPage3.Controls.Add(Me.lblRefAirFlow) + Me.TabPage3.Controls.Add(Me.tbRefAF) + Me.TabPage3.Controls.Add(Me.Label18) + Me.TabPage3.Controls.Add(Me.Label15) + Me.TabPage3.Controls.Add(Me.tbRefR) + Me.TabPage3.Controls.Add(Me.Label16) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Size = New System.Drawing.Size(389, 316) + Me.TabPage3.TabIndex = 2 + Me.TabPage3.Text = "Fan" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'lblElectricalLoad + ' + Me.lblElectricalLoad.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblElectricalLoad.AutoSize = True + Me.lblElectricalLoad.Location = New System.Drawing.Point(326, 146) + Me.lblElectricalLoad.Name = "lblElectricalLoad" + Me.lblElectricalLoad.Size = New System.Drawing.Size(45, 13) + Me.lblElectricalLoad.TabIndex = 67 + Me.lblElectricalLoad.Text = "Label33" + ' + 'tbElecLoad + ' + Me.tbElecLoad.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbElecLoad.Location = New System.Drawing.Point(151, 143) + Me.tbElecLoad.Name = "tbElecLoad" + Me.tbElecLoad.ReadOnly = True + Me.tbElecLoad.Size = New System.Drawing.Size(167, 20) + Me.tbElecLoad.TabIndex = 66 + Me.tbElecLoad.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label34 + ' + Me.Label34.AutoSize = True + Me.Label34.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label34.Location = New System.Drawing.Point(12, 146) + Me.Label34.Name = "Label34" + Me.Label34.Size = New System.Drawing.Size(110, 13) + Me.Label34.TabIndex = 65 + Me.Label34.Text = "Electrical Power Load" + ' + 'Label29 + ' + Me.Label29.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label29.AutoSize = True + Me.Label29.Location = New System.Drawing.Point(326, 120) + Me.Label29.Name = "Label29" + Me.Label29.Size = New System.Drawing.Size(46, 13) + Me.Label29.TabIndex = 64 + Me.Label29.Text = "kW/rpm" + ' + 'tbElecConv + ' + Me.tbElecConv.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbElecConv.Location = New System.Drawing.Point(190, 117) + Me.tbElecConv.Name = "tbElecConv" + Me.tbElecConv.Size = New System.Drawing.Size(128, 20) + Me.tbElecConv.TabIndex = 63 + Me.tbElecConv.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label31 + ' + Me.Label31.AutoSize = True + Me.Label31.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label31.Location = New System.Drawing.Point(12, 120) + Me.Label31.Name = "Label31" + Me.Label31.Size = New System.Drawing.Size(172, 13) + Me.Label31.TabIndex = 62 + Me.Label31.Text = "Electrical Power Conversion Factor" + ' + 'lblActualAirFlow + ' + Me.lblActualAirFlow.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblActualAirFlow.AutoSize = True + Me.lblActualAirFlow.Location = New System.Drawing.Point(326, 94) + Me.lblActualAirFlow.Name = "lblActualAirFlow" + Me.lblActualAirFlow.Size = New System.Drawing.Size(45, 13) + Me.lblActualAirFlow.TabIndex = 61 + Me.lblActualAirFlow.Text = "Label25" + ' + 'tbActualAF + ' + Me.tbActualAF.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbActualAF.Location = New System.Drawing.Point(151, 91) + Me.tbActualAF.Name = "tbActualAF" + Me.tbActualAF.ReadOnly = True + Me.tbActualAF.Size = New System.Drawing.Size(167, 20) + Me.tbActualAF.TabIndex = 60 + Me.tbActualAF.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label27 + ' + Me.Label27.AutoSize = True + Me.Label27.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label27.Location = New System.Drawing.Point(12, 94) + Me.Label27.Name = "Label27" + Me.Label27.Size = New System.Drawing.Size(77, 13) + Me.Label27.TabIndex = 59 + Me.Label27.Text = "Actual Air Flow" + ' + 'Label21 + ' + Me.Label21.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label21.AutoSize = True + Me.Label21.Location = New System.Drawing.Point(326, 68) + Me.Label21.Name = "Label21" + Me.Label21.Size = New System.Drawing.Size(24, 13) + Me.Label21.TabIndex = 58 + Me.Label21.Text = "rpm" + ' + 'tbActualR + ' + Me.tbActualR.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbActualR.Location = New System.Drawing.Point(151, 65) + Me.tbActualR.Name = "tbActualR" + Me.tbActualR.Size = New System.Drawing.Size(167, 20) + Me.tbActualR.TabIndex = 57 + Me.tbActualR.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label23 + ' + Me.Label23.AutoSize = True + Me.Label23.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label23.Location = New System.Drawing.Point(12, 68) + Me.Label23.Name = "Label23" + Me.Label23.Size = New System.Drawing.Size(80, 13) + Me.Label23.TabIndex = 56 + Me.Label23.Text = "Actual Rotation" + ' + 'lblRefAirFlow + ' + Me.lblRefAirFlow.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblRefAirFlow.AutoSize = True + Me.lblRefAirFlow.Location = New System.Drawing.Point(326, 42) + Me.lblRefAirFlow.Name = "lblRefAirFlow" + Me.lblRefAirFlow.Size = New System.Drawing.Size(45, 13) + Me.lblRefAirFlow.TabIndex = 55 + Me.lblRefAirFlow.Text = "Label17" + ' + 'tbRefAF + ' + Me.tbRefAF.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbRefAF.Location = New System.Drawing.Point(151, 39) + Me.tbRefAF.Name = "tbRefAF" + Me.tbRefAF.Size = New System.Drawing.Size(167, 20) + Me.tbRefAF.TabIndex = 54 + Me.tbRefAF.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label18 + ' + Me.Label18.AutoSize = True + Me.Label18.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label18.Location = New System.Drawing.Point(12, 42) + Me.Label18.Name = "Label18" + Me.Label18.Size = New System.Drawing.Size(97, 13) + Me.Label18.TabIndex = 53 + Me.Label18.Text = "Reference Air Flow" + ' + 'Label15 + ' + Me.Label15.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label15.AutoSize = True + Me.Label15.Location = New System.Drawing.Point(326, 18) + Me.Label15.Name = "Label15" + Me.Label15.Size = New System.Drawing.Size(24, 13) + Me.Label15.TabIndex = 52 + Me.Label15.Text = "rpm" + ' + 'tbRefR + ' + Me.tbRefR.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.tbRefR.Location = New System.Drawing.Point(151, 13) + Me.tbRefR.Name = "tbRefR" + Me.tbRefR.Size = New System.Drawing.Size(167, 20) + Me.tbRefR.TabIndex = 51 + Me.tbRefR.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'Label16 + ' + Me.Label16.AutoSize = True + Me.Label16.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label16.Location = New System.Drawing.Point(12, 16) + Me.Label16.Name = "Label16" + Me.Label16.Size = New System.Drawing.Size(100, 13) + Me.Label16.TabIndex = 50 + Me.Label16.Text = "Reference Rotation" + ' + 'ToolTipChangeTag + ' + Me.ToolTipChangeTag.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info + Me.ToolTipChangeTag.ToolTipTitle = "Info" + ' + 'EditingForm_AirCooler + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.ClientSize = New System.Drawing.Size(418, 750) + Me.Controls.Add(Me.GroupBox2) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.GroupBox5) + Me.Controls.Add(Me.GroupBox4) + Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Name = "EditingForm_AirCooler" + Me.Text = "EditingForm_AirCooler" + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.GroupBox5.ResumeLayout(False) + Me.GroupBox5.PerformLayout() + Me.GroupBox4.ResumeLayout(False) + Me.GroupBox2.ResumeLayout(False) + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + Me.TabPage2.ResumeLayout(False) + Me.TabPage2.PerformLayout() + Me.TabPage3.ResumeLayout(False) + Me.TabPage3.PerformLayout() + Me.ResumeLayout(False) + + End Sub + + Public WithEvents GroupBox1 As Windows.Forms.GroupBox + Public WithEvents btnCreateAndConnectEnergy As Windows.Forms.Button + Public WithEvents btnDisconnectEnergy As Windows.Forms.Button + Public WithEvents btnCreateAndConnectOutlet1 As Windows.Forms.Button + Public WithEvents Label14 As Windows.Forms.Label + Public WithEvents btnCreateAndConnectInlet1 As Windows.Forms.Button + Public WithEvents cbEnergy As Windows.Forms.ComboBox + Public WithEvents btnDisconnectOutlet1 As Windows.Forms.Button + Public WithEvents btnDisconnect1 As Windows.Forms.Button + Public WithEvents Label7 As Windows.Forms.Label + Public WithEvents cbOutlet1 As Windows.Forms.ComboBox + Public WithEvents cbInlet1 As Windows.Forms.ComboBox + Public WithEvents Label19 As Windows.Forms.Label + Public WithEvents GroupBox5 As Windows.Forms.GroupBox + Public WithEvents lblTag As Windows.Forms.TextBox + Public WithEvents chkActive As Windows.Forms.CheckBox + Public WithEvents lblConnectedTo As Windows.Forms.Label + Public WithEvents lblStatus As Windows.Forms.Label + Public WithEvents Label13 As Windows.Forms.Label + Public WithEvents Label12 As Windows.Forms.Label + Public WithEvents Label11 As Windows.Forms.Label + Public WithEvents GroupBox4 As Windows.Forms.GroupBox + Public WithEvents rtbAnnotations As Extended.Windows.Forms.RichTextBoxExtended + Friend WithEvents GroupBox2 As Windows.Forms.GroupBox + Friend WithEvents TabControl1 As Windows.Forms.TabControl + Friend WithEvents TabPage1 As Windows.Forms.TabPage + Friend WithEvents TabPage2 As Windows.Forms.TabPage + Friend WithEvents TabPage3 As Windows.Forms.TabPage + Public WithEvents tbOutletTemperature As Windows.Forms.TextBox + Public WithEvents Label2 As Windows.Forms.Label + Public WithEvents tbPressureDrop As Windows.Forms.TextBox + Public WithEvents Label3 As Windows.Forms.Label + Public WithEvents cbCalcMode As Windows.Forms.ComboBox + Public WithEvents Label8 As Windows.Forms.Label + Public WithEvents lbuTubeThermalCond As Windows.Forms.Label + Public WithEvents tbTubeThermalCond As Windows.Forms.TextBox + Public WithEvents tbTubeDi As Windows.Forms.TextBox + Public WithEvents Label5 As Windows.Forms.Label + Public WithEvents Label32 As Windows.Forms.Label + Public WithEvents lbTubeRoughness As Windows.Forms.Label + Public WithEvents lbuTubeDi As Windows.Forms.Label + Public WithEvents tbTubeRoughness As Windows.Forms.TextBox + Public WithEvents Label30 As Windows.Forms.Label + Public WithEvents Label4 As Windows.Forms.Label + Public WithEvents tbTubeDe As Windows.Forms.TextBox + Public WithEvents lbuTubePitch As Windows.Forms.Label + Public WithEvents lbTubeDe As Windows.Forms.Label + Public WithEvents tbTubePitch As Windows.Forms.TextBox + Public WithEvents Label28 As Windows.Forms.Label + Public WithEvents Label20 As Windows.Forms.Label + Public WithEvents tbTubeLength As Windows.Forms.TextBox + Public WithEvents tbNumberOfTubesPerShell As Windows.Forms.TextBox + Public WithEvents lbuTubeLength As Windows.Forms.Label + Public WithEvents Label22 As Windows.Forms.Label + Public WithEvents Label26 As Windows.Forms.Label + Public WithEvents tbTubePassesPerShell As Windows.Forms.TextBox + Public WithEvents tbTubeFoulingFactor As Windows.Forms.TextBox + Public WithEvents Label24 As Windows.Forms.Label + Public WithEvents lbuTubeFoulingFactor As Windows.Forms.Label + Friend WithEvents lblOutletTemperature As Windows.Forms.Label + Friend WithEvents lblPressureDrop As Windows.Forms.Label + Friend WithEvents lblActualAirFlow As Windows.Forms.Label + Public WithEvents tbActualAF As Windows.Forms.TextBox + Public WithEvents Label27 As Windows.Forms.Label + Friend WithEvents Label21 As Windows.Forms.Label + Public WithEvents tbActualR As Windows.Forms.TextBox + Public WithEvents Label23 As Windows.Forms.Label + Friend WithEvents lblRefAirFlow As Windows.Forms.Label + Public WithEvents tbRefAF As Windows.Forms.TextBox + Public WithEvents Label18 As Windows.Forms.Label + Friend WithEvents Label15 As Windows.Forms.Label + Public WithEvents tbRefR As Windows.Forms.TextBox + Public WithEvents Label16 As Windows.Forms.Label + Friend WithEvents Label29 As Windows.Forms.Label + Public WithEvents tbElecConv As Windows.Forms.TextBox + Public WithEvents Label31 As Windows.Forms.Label + Friend WithEvents lblElectricalLoad As Windows.Forms.Label + Public WithEvents tbElecLoad As Windows.Forms.TextBox + Public WithEvents Label34 As Windows.Forms.Label + Friend WithEvents lblOutletAirTemperature As Windows.Forms.Label + Public WithEvents tbOutletAirTemp As Windows.Forms.TextBox + Public WithEvents Label40 As Windows.Forms.Label + Friend WithEvents lblInletAirPressure As Windows.Forms.Label + Public WithEvents tbInletAirPre As Windows.Forms.TextBox + Public WithEvents Label38 As Windows.Forms.Label + Friend WithEvents lblInletAirTemperature As Windows.Forms.Label + Public WithEvents tbInletAirTemp As Windows.Forms.TextBox + Public WithEvents Label36 As Windows.Forms.Label + Friend WithEvents lblMaximumHeatExchange As Windows.Forms.Label + Public WithEvents tbMaxHeatEx As Windows.Forms.TextBox + Public WithEvents Label42 As Windows.Forms.Label + Friend WithEvents lblHeatExchanged As Windows.Forms.Label + Public WithEvents tbHeatingChange As Windows.Forms.TextBox + Public WithEvents Label6 As Windows.Forms.Label + Friend WithEvents Label43 As Windows.Forms.Label + Public WithEvents tbOverallUA As Windows.Forms.TextBox + Public WithEvents Label44 As Windows.Forms.Label + Friend WithEvents Label1 As Windows.Forms.Label + Public WithEvents tbEff As Windows.Forms.TextBox + Public WithEvents Label9 As Windows.Forms.Label + Friend WithEvents ToolTipChangeTag As Windows.Forms.ToolTip +End Class diff --git a/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.resx b/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.resx new file mode 100644 index 000000000..d84d0aad1 --- /dev/null +++ b/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.resx @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAe + wQAAHsEBw2lUUwAAAAd0SU1FB9cJGwwnHfk+EwAAAAGHSURBVDhPYxiG4O15h8ZXp+3+vzxp8//lcev/ + zw9b/n92wOz/kz0m/5/sMnoDVYYdfLniKPL2ou/Vn68m///2sPz/19tF/7/cqvr/6Vrd/+cHXF483mFo + BVWKHbw5Yxv59UH1z28P8v9/uuj8/wPQFZ+uVvx/fsjv/5MdBnZQZbjB24tBq78/7fn/+Yrr/w9n7P5/ + vlb8/92Z1M9Pd1nHQJXgBkD/Kn64mvLn693c/x/PO/9/f8wa6PwuoM0Wz+6v1553d7XG1NvLVafeWqzc + A9WCCl4csXr55V7D/++PJ/7/er8H6P+u/1+ud/z/eLEJ6Jqa/2+OFPy/t8rox415CspQLajg+SGLCU/3 + m059stt46uPtBkteH0/4/PZgwP+3h5P/P9nq8evuCq0pd5coq0KV4wcPNmgbvD4a//Plwbj/D9db3r67 + QtP9/zFNZqg0fvD/fxDjg42GD57ucP9wZ7na3jtLVbihUsSBe2s0s+6u1rx+d6WGD1SINHBnhboOlDkk + AAMDAByV2EYm9P51AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALISURBVDhPfZJbTFJxHMfZcm6++tQTb61aLVfpkoaX + lrVpxbIyzSHaxWs2xZg51C6SgoqdEkkw5EzFW+TRTMQEEYehzWu1JpIt07w1W72kRQ/fzjkbPRj18Plv + Zzuf//f8vr/DAfBfHju/+Rkc61z9wBpPbVoSVFIfJHdaZz35+jfmzJpxf5+Sl9bhrwENtnVnvWUFtb2f + UN09D4JyQ2Oag5ScQnyZw+xT9EKn5hvsq+gaXUO7YwmNAx+h7Z1DhfEtSgzTiMo3eXyKDHV9y/7E04XN + tqEVkP3zqHziQknza9yon8TdllcQltkQltkh8Sl7oWctVRhnUdPtRnWXC3naMWTcH0aBbhQxed04lNgo + +EtqsNOF6fU6rVZLMs+pxEgRPetmTu1LFJFjuFBqxdVqB8Ivt2D/KQ3vj9js+BJA2j531nVO/jCbzbBa + rVAqlewl9Kz8yGvUhlBmQTphR0qFBQdPa7HnKMH1pvrpLCvuJrqwpsElVNSbflEUBZlMRkql0m1isTiQ + l9zKD44nN07mdSAiuRG7j9xz74xQ+LEXaPqWuaqeRXQ4V9FiXwTR9Q7iqp6fSYqhcFom09PTXSKRaHtQ + jJpPp37fdaSyc0d4WQDjshcoqXmeknoPg20B5UYXap7NsntOKGjyqFQqtLe3Iy4uziUQCALpVC7jeGGP + W80zgpKWGXbHxQ3TuF43Ru95ChLtCBKyyyGXy0HLbB9bYY9czaSkiBYJagZM22mEA0LFAK4o7biosIIf + K/OEnihmP3krnCz1hH+K0umR0T9HITmOQv0Ym5xNryq1yoZjmW3YF12T70tm4CQqhj0Z1U7cbpxA7sMX + OFvYi+NZRoSJmhByRoe9UQ+cdOM+0xk4MUX9ZqF8EOdvPsfhS62ekHhSciD2kSAoWs1j9kw37udL9MKJ + zOkK4KcZzaFJBk/wOb2/r5f+DTi/AcFGp9AV5agvAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAe + wQAAHsEBw2lUUwAAAAd0SU1FB9cJGwwnHfk+EwAAAAGHSURBVDhPYxiG4O15h8ZXp+3+vzxp8//lcev/ + zw9b/n92wOz/kz0m/5/sMnoDVYYdfLniKPL2ou/Vn68m///2sPz/19tF/7/cqvr/6Vrd/+cHXF483mFo + BVWKHbw5Yxv59UH1z28P8v9/uuj8/wPQFZ+uVvx/fsjv/5MdBnZQZbjB24tBq78/7fn/+Yrr/w9n7P5/ + vlb8/92Z1M9Pd1nHQJXgBkD/Kn64mvLn693c/x/PO/9/f8wa6PwuoM0Wz+6v1553d7XG1NvLVafeWqzc + A9WCCl4csXr55V7D/++PJ/7/er8H6P+u/1+ud/z/eLEJ6Jqa/2+OFPy/t8rox415CspQLajg+SGLCU/3 + m059stt46uPtBkteH0/4/PZgwP+3h5P/P9nq8evuCq0pd5coq0KV4wcPNmgbvD4a//Plwbj/D9db3r67 + QtP9/zFNZqg0fvD/fxDjg42GD57ucP9wZ7na3jtLVbihUsSBe2s0s+6u1rx+d6WGD1SINHBnhboOlDkk + AAMDAByV2EYm9P51AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAe + wQAAHsEBw2lUUwAAAAd0SU1FB9cJGwwnHfk+EwAAAAGHSURBVDhPYxiG4O15h8ZXp+3+vzxp8//lcev/ + zw9b/n92wOz/kz0m/5/sMnoDVYYdfLniKPL2ou/Vn68m///2sPz/19tF/7/cqvr/6Vrd/+cHXF483mFo + BVWKHbw5Yxv59UH1z28P8v9/uuj8/wPQFZ+uVvx/fsjv/5MdBnZQZbjB24tBq78/7fn/+Yrr/w9n7P5/ + vlb8/92Z1M9Pd1nHQJXgBkD/Kn64mvLn693c/x/PO/9/f8wa6PwuoM0Wz+6v1553d7XG1NvLVafeWqzc + A9WCCl4csXr55V7D/++PJ/7/er8H6P+u/1+ud/z/eLEJ6Jqa/2+OFPy/t8rox415CspQLajg+SGLCU/3 + m059stt46uPtBkteH0/4/PZgwP+3h5P/P9nq8evuCq0pd5coq0KV4wcPNmgbvD4a//Plwbj/D9db3r67 + QtP9/zFNZqg0fvD/fxDjg42GD57ucP9wZ7na3jtLVbihUsSBe2s0s+6u1rx+d6WGD1SINHBnhboOlDkk + AAMDAByV2EYm9P51AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALISURBVDhPfZJbTFJxHMfZcm6++tQTb61aLVfpkoaX + lrVpxbIyzSHaxWs2xZg51C6SgoqdEkkw5EzFW+TRTMQEEYehzWu1JpIt07w1W72kRQ/fzjkbPRj18Plv + Zzuf//f8vr/DAfBfHju/+Rkc61z9wBpPbVoSVFIfJHdaZz35+jfmzJpxf5+Sl9bhrwENtnVnvWUFtb2f + UN09D4JyQ2Oag5ScQnyZw+xT9EKn5hvsq+gaXUO7YwmNAx+h7Z1DhfEtSgzTiMo3eXyKDHV9y/7E04XN + tqEVkP3zqHziQknza9yon8TdllcQltkQltkh8Sl7oWctVRhnUdPtRnWXC3naMWTcH0aBbhQxed04lNgo + +EtqsNOF6fU6rVZLMs+pxEgRPetmTu1LFJFjuFBqxdVqB8Ivt2D/KQ3vj9js+BJA2j531nVO/jCbzbBa + rVAqlewl9Kz8yGvUhlBmQTphR0qFBQdPa7HnKMH1pvrpLCvuJrqwpsElVNSbflEUBZlMRkql0m1isTiQ + l9zKD44nN07mdSAiuRG7j9xz74xQ+LEXaPqWuaqeRXQ4V9FiXwTR9Q7iqp6fSYqhcFom09PTXSKRaHtQ + jJpPp37fdaSyc0d4WQDjshcoqXmeknoPg20B5UYXap7NsntOKGjyqFQqtLe3Iy4uziUQCALpVC7jeGGP + W80zgpKWGXbHxQ3TuF43Ru95ChLtCBKyyyGXy0HLbB9bYY9czaSkiBYJagZM22mEA0LFAK4o7biosIIf + K/OEnihmP3krnCz1hH+K0umR0T9HITmOQv0Ym5xNryq1yoZjmW3YF12T70tm4CQqhj0Z1U7cbpxA7sMX + OFvYi+NZRoSJmhByRoe9UQ+cdOM+0xk4MUX9ZqF8EOdvPsfhS62ekHhSciD2kSAoWs1j9kw37udL9MKJ + zOkK4KcZzaFJBk/wOb2/r5f+DTi/AcFGp9AV5agvAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALISURBVDhPfZJbTFJxHMfZcm6++tQTb61aLVfpkoaX + lrVpxbIyzSHaxWs2xZg51C6SgoqdEkkw5EzFW+TRTMQEEYehzWu1JpIt07w1W72kRQ/fzjkbPRj18Plv + Zzuf//f8vr/DAfBfHju/+Rkc61z9wBpPbVoSVFIfJHdaZz35+jfmzJpxf5+Sl9bhrwENtnVnvWUFtb2f + UN09D4JyQ2Oag5ScQnyZw+xT9EKn5hvsq+gaXUO7YwmNAx+h7Z1DhfEtSgzTiMo3eXyKDHV9y/7E04XN + tqEVkP3zqHziQknza9yon8TdllcQltkQltkh8Sl7oWctVRhnUdPtRnWXC3naMWTcH0aBbhQxed04lNgo + +EtqsNOF6fU6rVZLMs+pxEgRPetmTu1LFJFjuFBqxdVqB8Ivt2D/KQ3vj9js+BJA2j531nVO/jCbzbBa + rVAqlewl9Kz8yGvUhlBmQTphR0qFBQdPa7HnKMH1pvrpLCvuJrqwpsElVNSbflEUBZlMRkql0m1isTiQ + l9zKD44nN07mdSAiuRG7j9xz74xQ+LEXaPqWuaqeRXQ4V9FiXwTR9Q7iqp6fSYqhcFom09PTXSKRaHtQ + jJpPp37fdaSyc0d4WQDjshcoqXmeknoPg20B5UYXap7NsntOKGjyqFQqtLe3Iy4uziUQCALpVC7jeGGP + W80zgpKWGXbHxQ3TuF43Ru95ChLtCBKyyyGXy0HLbB9bYY9czaSkiBYJagZM22mEA0LFAK4o7biosIIf + K/OEnihmP3krnCz1hH+K0umR0T9HITmOQv0Ym5xNryq1yoZjmW3YF12T70tm4CQqhj0Z1U7cbpxA7sMX + OFvYi+NZRoSJmhByRoe9UQ+cdOM+0xk4MUX9ZqF8EOdvPsfhS62ekHhSciD2kSAoWs1j9kw37udL9MKJ + zOkK4KcZzaFJBk/wOb2/r5f+DTi/AcFGp9AV5agvAAAAAElFTkSuQmCC + + + + 145, 17 + + \ No newline at end of file diff --git a/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.vb b/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.vb new file mode 100644 index 000000000..c5de6597c --- /dev/null +++ b/DWSIM.UnitOperations/EditingForms/EditingForm_AirCooler.vb @@ -0,0 +1,455 @@ +Imports cv = DWSIM.SharedClasses.SystemsOfUnits.Converter +Imports DWSIM.ExtensionMethods +Imports DWSIM.Inspector +Imports System.Windows.Forms +Imports DWSIM.Interfaces.Enums.GraphicObjects + +Public Class EditingForm_AirCooler + + Inherits SharedClasses.ObjectEditorForm + + Public Property SimObject As AirCooler + + Public Loaded As Boolean = False + + Dim units As SharedClasses.SystemsOfUnits.Units + Dim nf As String + + Private Sub EditingForm_AirCooler_Load(sender As Object, e As EventArgs) Handles MyBase.Load + + Me.ShowHint = GlobalSettings.Settings.DefaultEditFormLocation + + UpdateInfo() + + End Sub + + Sub UpdateInfo() + + Loaded = False + + nf = SimObject.FlowSheet.FlowsheetOptions.NumberFormat + + If Host.Items.Where(Function(x) x.Name.Contains(SimObject.GraphicObject.Tag)).Count > 0 Then + If InspReportBar Is Nothing Then + InspReportBar = New SharedClasses.InspectorReportBar + InspReportBar.Dock = DockStyle.Bottom + AddHandler InspReportBar.Button1.Click, Sub() + Dim iwindow As New Inspector.Window2 + iwindow.SelectedObject = SimObject + iwindow.Show(DockPanel) + End Sub + Me.Controls.Add(InspReportBar) + InspReportBar.BringToFront() + End If + Else + If InspReportBar IsNot Nothing Then + Me.Controls.Remove(InspReportBar) + InspReportBar = Nothing + End If + End If + + cbCalcMode.SelectedIndex = SimObject.CalculationMode + + Select Case cbCalcMode.SelectedIndex + Case 0 + TabPage2.Enabled = False + TabPage3.Enabled = True + tbPressureDrop.ReadOnly = False + tbOverallUA.ReadOnly = True + tbOutletTemperature.ReadOnly = False + Case 1 + TabPage2.Enabled = True + TabPage3.Enabled = True + tbPressureDrop.ReadOnly = True + tbOverallUA.ReadOnly = True + tbOutletTemperature.ReadOnly = True + Case 2 + TabPage2.Enabled = False + TabPage3.Enabled = True + tbPressureDrop.ReadOnly = False + tbOverallUA.ReadOnly = False + tbOutletTemperature.ReadOnly = True + End Select + + Dim su = SimObject.FlowSheet.FlowsheetOptions.SelectedUnitSystem + + lbTubeDe.Text = su.diameter + lbuTubeDi.Text = su.diameter + lbTubeRoughness.Text = su.diameter + lbuTubeFoulingFactor.Text = su.foulingfactor + lbuTubeLength.Text = su.distance + lbuTubePitch.Text = su.thickness + lbuTubeThermalCond.Text = su.thermalConductivity + + lblActualAirFlow.Text = su.volumetricFlow + lblElectricalLoad.Text = su.heatflow + lblHeatExchanged.Text = su.heatflow + lblInletAirPressure.Text = su.pressure + lblInletAirTemperature.Text = su.temperature + lblMaximumHeatExchange.Text = su.heatflow + lblOutletAirTemperature.Text = su.temperature + lblOutletTemperature.Text = su.temperature + lblPressureDrop.Text = su.deltaP + lblRefAirFlow.Text = su.volumetricFlow + + With SimObject + + 'first block + + chkActive.Checked = .GraphicObject.Active + + Me.Text = .GraphicObject.Tag & " (" & .GetDisplayName() & ")" + + lblTag.Text = .GraphicObject.Tag + If .Calculated Then + lblStatus.Text = .FlowSheet.GetTranslatedString("Calculado") & " (" & .LastUpdated.ToString & ")" + lblStatus.ForeColor = System.Drawing.Color.Blue + Else + If Not .GraphicObject.Active Then + lblStatus.Text = .FlowSheet.GetTranslatedString("Inativo") + lblStatus.ForeColor = System.Drawing.Color.Gray + ElseIf .ErrorMessage <> "" Then + If .ErrorMessage.Length > 50 Then + lblStatus.Text = .FlowSheet.GetTranslatedString("Erro") & " (" & .ErrorMessage.Substring(50) & "...)" + Else + lblStatus.Text = .FlowSheet.GetTranslatedString("Erro") & " (" & .ErrorMessage & ")" + End If + lblStatus.ForeColor = System.Drawing.Color.Red + Else + lblStatus.Text = .FlowSheet.GetTranslatedString("NoCalculado") + lblStatus.ForeColor = System.Drawing.Color.Black + End If + End If + + lblConnectedTo.Text = "" + + If .IsSpecAttached Then lblConnectedTo.Text = .FlowSheet.SimulationObjects(.AttachedSpecId).GraphicObject.Tag + If .IsAdjustAttached Then lblConnectedTo.Text = .FlowSheet.SimulationObjects(.AttachedAdjustId).GraphicObject.Tag + + 'connections + + Dim mslist As String() = .FlowSheet.GraphicObjects.Values.Where(Function(x) x.ObjectType = ObjectType.MaterialStream).Select(Function(m) m.Tag).ToArray + + cbInlet1.Items.Clear() + cbInlet1.Items.AddRange(mslist) + + cbOutlet1.Items.Clear() + cbOutlet1.Items.AddRange(mslist) + + If .GraphicObject.InputConnectors(0).IsAttached Then cbInlet1.SelectedItem = .GraphicObject.InputConnectors(0).AttachedConnector.AttachedFrom.Tag + If .GraphicObject.OutputConnectors(0).IsAttached Then cbOutlet1.SelectedItem = .GraphicObject.OutputConnectors(0).AttachedConnector.AttachedTo.Tag + + Dim eslist As String() = .FlowSheet.SimulationObjects.Values.Where(Function(x) x.GraphicObject.ObjectType = ObjectType.EnergyStream).Select(Function(m) m.GraphicObject.Tag).ToArray + + cbEnergy.Items.Clear() + cbEnergy.Items.AddRange(eslist) + + If .GraphicObject.InputConnectors(1).IsAttached Then cbEnergy.SelectedItem = .GraphicObject.InputConnectors(1).AttachedConnector.AttachedFrom.Tag + + 'annotation + + Try + rtbAnnotations.Rtf = .Annotation + Catch ex As Exception + + End Try + + 'parameters + + tbActualAF.Text = .ActualAirFlow.ConvertFromSI(su.volumetricFlow).ToString(nf) + tbActualR.Text = .ActualFanSpeed.ToString(nf) + tbEff.Text = .ExchangerEfficiency.ToString(nf) + tbElecConv.Text = .ElectricalPowerConversionFactor.ToString(nf) + tbElecLoad.Text = .ElectricalPowerLoad.ConvertFromSI(su.heatflow).ToString(nf) + tbHeatingChange.Text = .HeatLoad.ConvertFromSI(su.heatflow).ToString(nf) + tbInletAirPre.Text = .AirPressure.ConvertFromSI(su.pressure).ToString(nf) + tbInletAirTemp.Text = .AirInletTemperature.ConvertFromSI(su.temperature).ToString(nf) + tbMaxHeatEx.Text = .MaxHeatExchange.ConvertFromSI(su.heatflow).ToString(nf) + tbOutletAirTemp.Text = .AirOutletTemperature.ConvertFromSI(su.temperature).ToString(nf) + tbOutletTemperature.Text = .OutletTemperature.ConvertFromSI(su.temperature).ToString(nf) + tbOverallUA.Text = .OverallUA.ToString(nf) + tbPressureDrop.Text = .PressureDrop.ConvertFromSI(su.deltaP).ToString(nf) + tbRefAF.Text = .ReferenceAirFlow.ConvertFromSI(su.volumetricFlow).ToString(nf) + tbRefR.Text = .ReferenceFanSpeed.ToString(nf) + + tbNumberOfTubesPerShell.Text = .Tube_NumberPerShell + tbTubeDe.Text = Format(cv.ConvertFromSI(su.diameter, .Tube_De), nf) + tbTubeDi.Text = Format(cv.ConvertFromSI(su.diameter, .Tube_Di), nf) + tbTubeFoulingFactor.Text = cv.ConvertFromSI(su.foulingfactor, .Tube_Fouling) + tbTubeLength.Text = Format(cv.ConvertFromSI(su.distance, .Tube_Length), nf) + tbTubePassesPerShell.Text = .Tube_PassesPerShell + tbTubePitch.Text = Format(cv.ConvertFromSI(su.thickness, .Tube_Pitch), nf) + tbTubeRoughness.Text = cv.ConvertFromSI(su.diameter, .Tube_Roughness) + tbTubeThermalCond.Text = cv.ConvertFromSI(su.thermalConductivity, .Tube_ThermalConductivity) + + End With + + Loaded = True + + End Sub + + Sub UpdateProps() + + Dim su = SimObject.FlowSheet.FlowsheetOptions.SelectedUnitSystem + + With SimObject + + .ActualFanSpeed = tbActualR.Text.ParseExpressionToDouble + .ElectricalPowerConversionFactor = tbElecConv.Text.ParseExpressionToDouble + .HeatLoad = tbHeatingChange.Text.ParseExpressionToDouble.ConvertToSI(su.heatflow) + .AirPressure = tbInletAirPre.Text.ParseExpressionToDouble.ConvertToSI(su.pressure) + .AirInletTemperature = tbInletAirTemp.Text.ParseExpressionToDouble.ConvertToSI(su.temperature) + .OutletTemperature = tbOutletTemperature.Text.ParseExpressionToDouble.ConvertToSI(su.temperature) + .OverallUA = tbOverallUA.Text.ParseExpressionToDouble + .PressureDrop = tbPressureDrop.Text.ParseExpressionToDouble.ConvertToSI(su.deltaP) + .ReferenceAirFlow = tbRefAF.Text.ParseExpressionToDouble.ConvertToSI(su.volumetricFlow) + .ReferenceFanSpeed = tbRefR.Text.ParseExpressionToDouble + + .Tube_NumberPerShell = tbNumberOfTubesPerShell.Text.ParseExpressionToDouble + .Tube_De = cv.ConvertToSI(su.diameter, tbTubeDe.Text.ParseExpressionToDouble) + .Tube_Di = cv.ConvertToSI(su.diameter, tbTubeDi.Text.ParseExpressionToDouble) + .Tube_Roughness = cv.ConvertToSI(su.diameter, tbTubeRoughness.Text.ParseExpressionToDouble) + .Tube_Fouling = cv.ConvertToSI(su.foulingfactor, tbTubeFoulingFactor.Text.ParseExpressionToDouble) + .Tube_Length = cv.ConvertToSI(su.distance, tbTubeLength.Text.ParseExpressionToDouble) + .Tube_PassesPerShell = tbTubePassesPerShell.Text.ParseExpressionToDouble + .Tube_Pitch = cv.ConvertToSI(su.thickness, tbTubePitch.Text.ParseExpressionToDouble) + .Tube_ThermalConductivity = cv.ConvertToSI(su.thermalConductivity, tbTubeThermalCond.Text.ParseExpressionToDouble) + + End With + + End Sub + + Private Sub cbCalcMode_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbCalcMode.SelectedIndexChanged + + If Loaded Then + + Select Case cbCalcMode.SelectedIndex + Case 0 + TabPage2.Enabled = False + TabPage3.Enabled = True + tbPressureDrop.ReadOnly = False + tbOverallUA.ReadOnly = True + tbOutletTemperature.ReadOnly = False + Case 1 + TabPage2.Enabled = True + TabPage3.Enabled = True + tbPressureDrop.ReadOnly = True + tbOverallUA.ReadOnly = True + tbOutletTemperature.ReadOnly = True + Case 2 + TabPage2.Enabled = False + TabPage3.Enabled = True + tbPressureDrop.ReadOnly = False + tbOverallUA.ReadOnly = False + tbOutletTemperature.ReadOnly = True + End Select + SimObject.CalculationMode = cbCalcMode.SelectedIndex + + End If + + End Sub + + Private Sub lblTag_TextChanged(sender As Object, e As EventArgs) Handles lblTag.TextChanged + + If Loaded Then ToolTipChangeTag.Show("Press ENTER to commit changes.", lblTag, New System.Drawing.Point(0, lblTag.Height + 3), 3000) + + End Sub + + Private Sub btnDisconnect1_Click(sender As Object, e As EventArgs) Handles btnDisconnect1.Click + If cbInlet1.SelectedItem IsNot Nothing Then + SimObject.FlowSheet.DisconnectObjects(SimObject.GraphicObject.InputConnectors(0).AttachedConnector.AttachedFrom, SimObject.GraphicObject) + cbInlet1.SelectedItem = Nothing + End If + End Sub + + Private Sub btnDisconnectOutlet1_Click(sender As Object, e As EventArgs) Handles btnDisconnectOutlet1.Click + If cbOutlet1.SelectedItem IsNot Nothing Then + SimObject.FlowSheet.DisconnectObjects(SimObject.GraphicObject, SimObject.GraphicObject.OutputConnectors(0).AttachedConnector.AttachedTo) + cbOutlet1.SelectedItem = Nothing + End If + End Sub + + Private Sub btnDisconnectEnergy_Click(sender As Object, e As EventArgs) Handles btnDisconnectEnergy.Click + If cbEnergy.SelectedItem IsNot Nothing Then + SimObject.FlowSheet.DisconnectObjects(SimObject.GraphicObject.InputConnectors(1).AttachedConnector.AttachedFrom, SimObject.GraphicObject) + cbEnergy.SelectedItem = Nothing + End If + End Sub + + Private Sub cbInlet1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbInlet1.SelectedIndexChanged + + If Loaded Then + + Dim text As String = cbInlet1.Text + + If text <> "" Then + + Dim index As Integer = 0 + + Dim gobj = SimObject.GraphicObject + Dim flowsheet = SimObject.FlowSheet + + If flowsheet.GetFlowsheetSimulationObject(text).GraphicObject.OutputConnectors(0).IsAttached Then + MessageBox.Show(flowsheet.GetTranslatedString("Todasasconexespossve"), flowsheet.GetTranslatedString("Erro"), MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + End If + If gobj.InputConnectors(index).IsAttached Then flowsheet.DisconnectObjects(gobj.InputConnectors(index).AttachedConnector.AttachedFrom, gobj) + flowsheet.ConnectObjects(flowsheet.GetFlowsheetSimulationObject(text).GraphicObject, gobj, 0, index) + + End If + + End If + + End Sub + + Private Sub cbOutlet1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbOutlet1.SelectedIndexChanged + + If Loaded Then + + Dim text As String = cbOutlet1.Text + + If text <> "" Then + + Dim index As Integer = 0 + + Dim gobj = SimObject.GraphicObject + Dim flowsheet = SimObject.FlowSheet + + If flowsheet.GetFlowsheetSimulationObject(text).GraphicObject.InputConnectors(0).IsAttached Then + MessageBox.Show(flowsheet.GetTranslatedString("Todasasconexespossve"), flowsheet.GetTranslatedString("Erro"), MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + End If + If gobj.OutputConnectors(0).IsAttached Then flowsheet.DisconnectObjects(gobj, gobj.OutputConnectors(0).AttachedConnector.AttachedTo) + flowsheet.ConnectObjects(gobj, flowsheet.GetFlowsheetSimulationObject(text).GraphicObject, 0, 0) + + End If + + End If + + End Sub + + Private Sub cbEnergy_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbEnergy.SelectedIndexChanged + + If Loaded Then + + Dim text As String = cbEnergy.Text + + If text <> "" Then + + Dim index As Integer = 1 + + Dim gobj = SimObject.GraphicObject + Dim flowsheet = SimObject.FlowSheet + + If flowsheet.GetFlowsheetSimulationObject(text).GraphicObject.OutputConnectors(0).IsAttached Then + MessageBox.Show(flowsheet.GetTranslatedString("Todasasconexespossve"), flowsheet.GetTranslatedString("Erro"), MessageBoxButtons.OK, MessageBoxIcon.Error) + Exit Sub + End If + If gobj.InputConnectors(index).IsAttached Then flowsheet.DisconnectObjects(gobj.InputConnectors(index).AttachedConnector.AttachedFrom, gobj) + flowsheet.ConnectObjects(flowsheet.GetFlowsheetSimulationObject(text).GraphicObject, gobj, 0, index) + + End If + + End If + + End Sub + + Private Sub rtbAnnotations_RtfChanged(sender As Object, e As EventArgs) Handles rtbAnnotations.RtfChanged + If Loaded Then SimObject.Annotation = rtbAnnotations.Rtf + End Sub + + Private Sub chkActive_CheckedChanged(sender As Object, e As EventArgs) Handles chkActive.CheckedChanged + If Loaded Then SimObject.GraphicObject.Active = chkActive.Checked + End Sub + + Private Sub btnCreateAndConnectInlet1_Click(sender As Object, e As EventArgs) Handles btnCreateAndConnectInlet1.Click, btnCreateAndConnectOutlet1.Click, btnCreateAndConnectEnergy.Click + + Dim sgobj = SimObject.GraphicObject + Dim fs = SimObject.FlowSheet + + If sender Is btnCreateAndConnectInlet1 Then + + Dim obj = fs.AddObject(ObjectType.MaterialStream, sgobj.InputConnectors(0).Position.X - 50, sgobj.InputConnectors(0).Position.Y, "") + + If sgobj.InputConnectors(0).IsAttached Then fs.DisconnectObjects(sgobj.InputConnectors(0).AttachedConnector.AttachedFrom, sgobj) + fs.ConnectObjects(obj.GraphicObject, sgobj, 0, 0) + + ElseIf sender Is btnCreateAndConnectOutlet1 Then + + Dim obj = fs.AddObject(ObjectType.MaterialStream, sgobj.OutputConnectors(0).Position.X + 30, sgobj.OutputConnectors(0).Position.Y, "") + + If sgobj.OutputConnectors(0).IsAttached Then fs.DisconnectObjects(sgobj, sgobj.OutputConnectors(0).AttachedConnector.AttachedTo) + fs.ConnectObjects(sgobj, obj.GraphicObject, 0, 0) + + ElseIf sender Is btnCreateAndConnectEnergy Then + + Dim obj = fs.AddObject(ObjectType.EnergyStream, sgobj.InputConnectors(1).Position.X - 30, sgobj.InputConnectors(1).Position.Y + 30, "") + + If sgobj.InputConnectors(1).IsAttached Then fs.DisconnectObjects(sgobj.InputConnectors(1).AttachedConnector.AttachedFrom, sgobj) + fs.ConnectObjects(obj.GraphicObject, sgobj, 0, 1) + + End If + + UpdateInfo() + RequestCalc() + + End Sub + + Private Sub lblTag_KeyPress(sender As Object, e As KeyEventArgs) Handles lblTag.KeyUp + + If e.KeyCode = Keys.Enter Then + + If Loaded Then SimObject.GraphicObject.Tag = lblTag.Text + If Loaded Then SimObject.FlowSheet.UpdateOpenEditForms() + Me.Text = SimObject.GraphicObject.Tag & " (" & SimObject.GetDisplayName() & ")" + DirectCast(SimObject.FlowSheet, Interfaces.IFlowsheetGUI).UpdateInterface() + + End If + + End Sub + + Sub RequestCalc() + + SimObject.FlowSheet.RequestCalculation(SimObject) + + End Sub + + Private Sub tb_TextChanged(sender As Object, e As EventArgs) Handles tbActualR.TextChanged, tbElecConv.TextChanged, + tbInletAirPre.TextChanged, tbInletAirTemp.TextChanged, tbNumberOfTubesPerShell.TextChanged, + tbOutletTemperature.TextChanged, tbOverallUA.TextChanged, tbPressureDrop.TextChanged, tbRefAF.TextChanged, + tbRefR.TextChanged, tbTubeDe.TextChanged, tbTubeDi.TextChanged, tbTubeFoulingFactor.TextChanged, + tbTubeLength.TextChanged, tbTubePassesPerShell.TextChanged, tbTubePitch.TextChanged, tbTubeRoughness.TextChanged, + tbTubeThermalCond.TextChanged + + Dim tbox = DirectCast(sender, TextBox) + + If tbox.Text.IsValidDoubleExpression Then + tbox.ForeColor = System.Drawing.Color.Blue + Else + tbox.ForeColor = System.Drawing.Color.Red + End If + + End Sub + + Private Sub TextBoxKeyDown(sender As Object, e As KeyEventArgs) Handles tbActualR.KeyDown, tbElecConv.KeyDown, + tbInletAirPre.KeyDown, tbInletAirTemp.KeyDown, tbNumberOfTubesPerShell.KeyDown, + tbOutletTemperature.KeyDown, tbOverallUA.KeyDown, tbPressureDrop.KeyDown, tbRefAF.KeyDown, + tbRefR.KeyDown, tbTubeDe.KeyDown, tbTubeDi.KeyDown, tbTubeFoulingFactor.KeyDown, + tbTubeLength.KeyDown, tbTubePassesPerShell.KeyDown, tbTubePitch.KeyDown, tbTubeRoughness.KeyDown, + tbTubeThermalCond.KeyDown + + If e.KeyCode = Keys.Enter And Loaded And DirectCast(sender, TextBox).ForeColor = System.Drawing.Color.Blue Then + + Try + UpdateProps() + DirectCast(sender, TextBox).SelectAll() + RequestCalc() + Catch ex As Exception + MessageBox.Show("Error updating property. TextBox ID: " & DirectCast(sender, TextBox).Name & ". Error message: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + End Try + + End If + + End Sub + +End Class \ No newline at end of file diff --git a/DWSIM.UnitOperations/My Project/Resources.Designer.vb b/DWSIM.UnitOperations/My Project/Resources.Designer.vb index a33627241..67f3a11eb 100644 --- a/DWSIM.UnitOperations/My Project/Resources.Designer.vb +++ b/DWSIM.UnitOperations/My Project/Resources.Designer.vb @@ -22,7 +22,7 @@ Namespace My.Resources ''' ''' A strongly-typed resource class, for looking up localized strings, etc. ''' - _ @@ -450,6 +450,26 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property icons8_fan() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("icons8_fan", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property icons8_solar_panel() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("icons8_solar_panel", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Looks up a localized resource of type System.Drawing.Bitmap. ''' @@ -460,6 +480,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property icons8_wind_turbine() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("icons8_wind_turbine", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Looks up a localized resource of type System.Drawing.Bitmap. ''' diff --git a/DWSIM.UnitOperations/My Project/Resources.resx b/DWSIM.UnitOperations/My Project/Resources.resx index cac58f587..55f3af8fb 100644 --- a/DWSIM.UnitOperations/My Project/Resources.resx +++ b/DWSIM.UnitOperations/My Project/Resources.resx @@ -490,4 +490,13 @@ ..\Resources\lightning.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons8-fan.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-solar_panel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-wind_turbine.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/DWSIM.UnitOperations/Reactors/PFR.vb b/DWSIM.UnitOperations/Reactors/PFR.vb index 1b53c449c..befd9f0fe 100644 --- a/DWSIM.UnitOperations/Reactors/PFR.vb +++ b/DWSIM.UnitOperations/Reactors/PFR.vb @@ -81,9 +81,9 @@ Namespace Reactors Public Property Diameter As Double = 0.1 - Public Property Volume() As Double + Public Property Volume As Double = 1.0 - Public Property dV() As Double + Public Property dV As Double = 0.01 Public Property CatalystLoading As Double = 0.0# @@ -657,6 +657,8 @@ Namespace Reactors Public Function Calculate_Internal(dVF As Double, Optional ByVal args As Object = Nothing) As Boolean + If dV = 0.0 Then dV = 0.01 + Dim negative As Boolean = False Dim negativeflag As Boolean = False diff --git a/DWSIM.UnitOperations/Resources/icons8-fan.png b/DWSIM.UnitOperations/Resources/icons8-fan.png new file mode 100644 index 000000000..1e3cf4a8e Binary files /dev/null and b/DWSIM.UnitOperations/Resources/icons8-fan.png differ diff --git a/DWSIM.UnitOperations/Resources/icons8-solar_panel.png b/DWSIM.UnitOperations/Resources/icons8-solar_panel.png new file mode 100644 index 000000000..8880b06d6 Binary files /dev/null and b/DWSIM.UnitOperations/Resources/icons8-solar_panel.png differ diff --git a/DWSIM.UnitOperations/Resources/icons8-wind_turbine.png b/DWSIM.UnitOperations/Resources/icons8-wind_turbine.png new file mode 100644 index 000000000..ca816f4cf Binary files /dev/null and b/DWSIM.UnitOperations/Resources/icons8-wind_turbine.png differ diff --git a/DWSIM.UnitOperations/UnitOperations/AirCooler.vb b/DWSIM.UnitOperations/UnitOperations/AirCooler.vb new file mode 100644 index 000000000..1f4c62f7d --- /dev/null +++ b/DWSIM.UnitOperations/UnitOperations/AirCooler.vb @@ -0,0 +1,1495 @@ +Imports DWSIM.Interfaces +Imports DWSIM.Interfaces.Enums +Imports DWSIM.UnitOperations.Streams +Imports DWSIM.Inspector +Imports DWSIM.Drawing.SkiaSharp.GraphicObjects +Imports DWSIM.DrawingTools.Point +Imports DWSIM.Interfaces.Enums.GraphicObjects +Imports DWSIM.ExtensionMethods +Imports SkiaSharp +Imports s = DWSIM.UI.Shared.Common +Imports Eto.Forms +Imports cv = DWSIM.SharedClasses.SystemsOfUnits.Converter +Imports DWSIM.SharedClasses +Imports System.IO +Imports DWSIM.Thermodynamics.Streams +Imports DWSIM.Thermodynamics + +Namespace UnitOperations + + Public Class AirCooler + + Inherits DWSIM.UnitOperations.UnitOperations.UnitOpBaseClass + + Implements DWSIM.Interfaces.IExternalUnitOperation + + Public f As EditingForm_AirCooler + + Private calc As DWSIM.Thermodynamics.CalculatorInterface.Calculator + + Private rpp As DWSIM.Thermodynamics.PropertyPackages.RaoultPropertyPackage + + Private _name = "Air Cooler" + Private _desc = "Air Cooler Model" + + Public Enum CalcMode + SpecifyOutletTemperature = 0 + SpecifyGeometry = 1 + SpecifyUA = 2 + End Enum + + Public Property CalculationMode As CalcMode = CalcMode.SpecifyOutletTemperature + + Public Property PressureDrop As Double = 0.0 + + Public Property OutletTemperature As Double = 300 + + Public Property OverallUA As Double = 500 'W/K + + Public Property ReferenceFanSpeed As Double = 100.0 'rpm + + Public Property ReferenceAirFlow As Double = 1.0 'm3/s + + Public Property ActualFanSpeed As Double = 100.0 'rpm + + Public Property ActualAirFlow As Double = 1.0 'm3/s + + Public Property AirInletTemperature As Double = 273.15 + 25.0 + + Public Property AirPressure As Double = 101325.0 + + Public Property AirOutletTemperature As Double = 273.15 + 25.0 + + Public Property ElectricalPowerConversionFactor As Double = 1.0 'kW/rpm + + Public Property HeatLoad As Double = 0.0 + + Public Property ElectricalPowerLoad As Double = 0.0 + + 'tube internal diameter in mm + Public Property Tube_Di As Double = 50.0 + + 'tube external diameter in mm + Public Property Tube_De As Double = 60.0 + + 'tube length in m + Public Property Tube_Length As Double = 5.0 + + 'tube pitch in mm + Public Property Tube_Pitch As Double = 40.0 + + 'tube fouling in K.m2/W + Public Property Tube_Fouling As Double = 0.0# + + 'number of tube passes per shell, integer + Public Property Tube_PassesPerShell As Integer = 1 + + 'number of tubes per shell, integer + Public Property Tube_NumberPerShell As Integer = 160 + + 'tube material roughness in mm + Public Property Tube_Roughness As Double = 0.000045 * 1000 + + 'tube thermal conductivity + Public Property Tube_ThermalConductivity As Double = 70.0# + + Public Property MaxHeatExchange As Double = 0.0 + + Public Property ExchangerEfficiency As Double = 0.0 + + Public Property LMTD As Double = 0.0 + Public Property LMTD_F As Double = 0.0 + + + Public Overrides Function GetDisplayName() As String + Return _name + End Function + + Public Overrides Function GetDisplayDescription() As String + Return _desc + End Function + + Private ImagePath As String = "" + Private Image As SKImage + + Public Overrides Property ComponentName As String = _name + + Public Overrides Property ComponentDescription As String = _desc + + Private ReadOnly Property IExternalUnitOperation_Name As String = _name Implements IExternalUnitOperation.Name + + Public ReadOnly Property Prefix As String = "AC-" Implements IExternalUnitOperation.Prefix + + Public ReadOnly Property Description As String = _desc Implements IExternalUnitOperation.Description + + Public Overrides Property ObjectClass As SimulationObjectClass = SimulationObjectClass.Exchangers + + Public Overrides ReadOnly Property MobileCompatible As Boolean = False + + Public Function ReturnInstance(typename As String) As Object Implements IExternalUnitOperation.ReturnInstance + + Return New AirCooler() + + End Function + + Public Overrides Sub DisplayEditForm() + + If f Is Nothing Then + f = New EditingForm_AirCooler With {.SimObject = Me} + f.ShowHint = GlobalSettings.Settings.DefaultEditFormLocation + f.Tag = "ObjectEditor" + Me.FlowSheet.DisplayForm(f) + Else + If f.IsDisposed Then + f = New EditingForm_AirCooler With {.SimObject = Me} + f.ShowHint = GlobalSettings.Settings.DefaultEditFormLocation + f.Tag = "ObjectEditor" + Me.FlowSheet.DisplayForm(f) + Else + f.Activate() + End If + End If + + End Sub + + Public Overrides Sub UpdateEditForm() + If f IsNot Nothing Then + If Not f.IsDisposed Then + If f.InvokeRequired Then f.BeginInvoke(Sub() f.UpdateInfo()) + End If + End If + End Sub + + Public Overrides Function GetIconBitmap() As Object + Return My.Resources.icons8_fan + End Function + + Public Overrides Sub CloseEditForm() + If f IsNot Nothing Then + If Not f.IsDisposed Then + f.Close() + f = Nothing + End If + End If + End Sub + + Public Sub Draw(g As Object) Implements IExternalUnitOperation.Draw + + Dim canvas As SKCanvas = DirectCast(g, SKCanvas) + + If Image Is Nothing Then + + ImagePath = System.IO.Path.GetTempFileName() + My.Resources.icons8_fan.Save(ImagePath) + + Using streamBG = New FileStream(ImagePath, FileMode.Open) + Using bitmap = SKBitmap.Decode(streamBG) + Image = SKImage.FromBitmap(bitmap) + End Using + End Using + + Try + File.Delete(ImagePath) + Catch ex As Exception + End Try + + End If + + Using p As New SKPaint With {.IsAntialias = GlobalSettings.Settings.DrawingAntiAlias, .FilterQuality = SKFilterQuality.High} + canvas.DrawImage(Image, New SKRect(GraphicObject.X, GraphicObject.Y, GraphicObject.X + GraphicObject.Width, GraphicObject.Y + GraphicObject.Height), p) + End Using + + End Sub + + Public Sub CreateConnectors() Implements IExternalUnitOperation.CreateConnectors + + Dim myIC1 As New ConnectionPoint + + Dim w, h, x, y As Double + w = GraphicObject.Width + h = GraphicObject.Height + x = GraphicObject.X + y = GraphicObject.Y + + myIC1.Position = New Point(x, y) + myIC1.Type = ConType.ConIn + myIC1.Direction = ConDir.Right + + Dim myIC2 As New ConnectionPoint + + myIC2.Position = New Point(x + 0.5 * w, y + h) + myIC2.Type = ConType.ConEn + myIC2.Direction = ConDir.Up + + Dim myOC1 As New ConnectionPoint + myOC1.Position = New Point(x + w, y) + myOC1.Type = ConType.ConOut + myOC1.Direction = ConDir.Right + + With GraphicObject.InputConnectors + If .Count = 2 Then + .Item(0).Position = New Point(x, y) + .Item(1).Position = New Point(x + 0.5 * w, y + h) + Else + .Add(myIC1) + .Add(myIC2) + End If + .Item(0).ConnectorName = "Fluid Inlet" + .Item(1).ConnectorName = "Power Inlet" + End With + + With GraphicObject.OutputConnectors + If .Count = 1 Then + .Item(0).Position = New Point(x + w, y) + Else + .Add(myOC1) + End If + .Item(0).ConnectorName = "Fluid Outlet" + End With + + Me.GraphicObject.EnergyConnector.Active = False + + End Sub + + Public Overrides Function CloneXML() As Object + Dim obj As ICustomXMLSerialization = New AirCooler() + obj.LoadData(Me.SaveData) + Return obj + End Function + + Public Overrides Function CloneJSON() As Object + Return Newtonsoft.Json.JsonConvert.DeserializeObject(Of AirCooler)(Newtonsoft.Json.JsonConvert.SerializeObject(Me)) + End Function + + Public Overrides Function LoadData(data As System.Collections.Generic.List(Of System.Xml.Linq.XElement)) As Boolean + + Dim ci As Globalization.CultureInfo = Globalization.CultureInfo.InvariantCulture + + XMLSerializer.XMLSerializer.Deserialize(Me, data) + + Return True + + End Function + + Public Overrides Function SaveData() As System.Collections.Generic.List(Of System.Xml.Linq.XElement) + + Dim elements As System.Collections.Generic.List(Of System.Xml.Linq.XElement) = XMLSerializer.XMLSerializer.Serialize(Me) + Dim ci As Globalization.CultureInfo = Globalization.CultureInfo.InvariantCulture + + Return elements + + End Function + + Public Sub New(ByVal Name As String, ByVal Description As String) + + MyBase.CreateNew() + Me.ComponentName = Name + Me.ComponentDescription = Description + + End Sub + + Public Sub New() + + MyBase.New() + + End Sub + + Public Overrides Sub PerformPostCalcValidation() + + End Sub + + Public Overrides Sub Calculate(Optional args As Object = Nothing) + + Dim IObj As Inspector.InspectorItem = Inspector.Host.GetNewInspectorItem() + + Inspector.Host.CheckAndAdd(IObj, "", "Calculate", If(GraphicObject IsNot Nothing, GraphicObject.Tag, "Temporary Object") & " (" & GetDisplayName() & ")", GetDisplayName() & " Calculation Routine", True) + + IObj?.SetCurrent() + + IObj?.Paragraphs.Add("The Air Cooler model is a subset of the Shell and Tube HX model, with air being the 'shell side' fluid.") + + IObj?.Paragraphs.Add("Input Parameters") + + IObj?.Paragraphs.Add("The Air Cooler model in DWSIM has three calculation modes: ") + + IObj?.Paragraphs.Add("1. Specify Outlet Temperature: you must provide the + fluid outlet temperature and DWSIM will calculate Overall UA and Heat Exchanged.") + + IObj?.Paragraphs.Add("2. Specify Tube Geometry: in this mode you must provide + the tube geometry and DWSIM will calculate output + temperatures, pressure drop at the tubes, overall + HTC (U), LMTD, and exchange area. This calculation mode uses a + simplified version of Tinker's method for Shell and Tube + exchanger calculations, with a modification for the outside heat transfer coefficient (convection). ") + + IObj?.Paragraphs.Add("3. Specify Overall UA: in this mode you must provide the Overall UA and DWSIM will + calculate the Heat Exchanged and Outlet Temperature.") + + IObj?.Paragraphs.Add("You can provide the pressure drop for the hot fluid in the exchanger for modes 1 and 3 only.") + + IObj?.Paragraphs.Add("Calculation Mode") + + IObj?.Paragraphs.Add("The heat exchanger in DWSIM is calculated using the simple convection heat equation:") + + IObj?.Paragraphs.Add("Q=UA\Delta T_{ml},") + + IObj?.Paragraphs.Add("where: Q = heat exchanged, A = heat transfer area (external + surface) and \Delta T_{ml} = Logarithmic Mean Temperature + Difference (LMTD). We also remember that:") + + IObj?.Paragraphs.Add("Q=m\Delta H,") + + IObj?.Paragraphs.Add("where: Q = heat transferred from/to the fluid and \Delta H = outlet-inlet enthalpy difference.") + + IObj?.Paragraphs.Add("

Inlet Streams

") + + Dim su = FlowSheet.FlowsheetOptions.SelectedUnitSystem + + Dim Ti1, Ti2, w1, w2, A, Tc1, Th1, Wc, Wh, P1, P2, Th2, Tc2, U As Double + Dim Pc1, Ph1, Pc2, Ph2, DeltaHc, DeltaHh, H1, H2, Hc1, Hh1, Hc2, Hh2, CPC, CPH As Double + Dim StIn0, StIn1, StOut0, StOut1, StInCold, StInHot, StOutHot, StOutCold As MaterialStream + Dim coldidx As Integer = 0 + + 'Validate unitop status. + Me.Validate() + + StIn0 = Me.GetInletMaterialStream(0) + StOut0 = Me.GetOutletMaterialStream(0) + + If calc Is Nothing Then + calc = New Thermodynamics.CalculatorInterface.Calculator() + calc.Initialize() + rpp = New Thermodynamics.PropertyPackages.RaoultPropertyPackage() + End If + + StIn1 = calc.CreateMaterialStream({"Air"}, {1.0}) + StIn1.Phases(0).Properties.temperature = AirInletTemperature + StIn1.Phases(0).Properties.pressure = AirPressure + + ActualAirFlow = ReferenceAirFlow / ReferenceFanSpeed * ActualFanSpeed + + StIn1.Phases(0).Properties.massflow = Nothing + StIn1.Phases(0).Properties.molarflow = Nothing + StIn1.Phases(0).Properties.volumetric_flow = ActualAirFlow + + StOut1 = StIn1.Clone() + + StIn1.PropertyPackage = rpp + StOut1.PropertyPackage = rpp + + IObj?.SetCurrent() + StIn1.Calculate() + + 'First input stream. + Ti1 = StIn0.Phases(0).Properties.temperature.GetValueOrDefault + w1 = StIn0.Phases(0).Properties.massflow.GetValueOrDefault + P1 = StIn0.Phases(0).Properties.pressure.GetValueOrDefault + H1 = StIn0.Phases(0).Properties.enthalpy.GetValueOrDefault + + 'Second input stream. + Ti2 = StIn1.Phases(0).Properties.temperature.GetValueOrDefault + w2 = StIn1.Phases(0).Properties.massflow.GetValueOrDefault + P2 = StIn1.Phases(0).Properties.pressure.GetValueOrDefault + H2 = StIn1.Phases(0).Properties.enthalpy.GetValueOrDefault + + 'Let us use properties at the entrance as an initial implementation. + + 'Input2 is the cold stream. + Tc1 = Ti2 + Th1 = Ti1 + Wc = w2 + Wh = w1 + Pc1 = P2 + Ph1 = P1 + Hc1 = H2 + Hh1 = H1 + coldidx = 1 + 'Identify cold and hot streams. + StInCold = StIn1 + StInHot = StIn0 + StOutCold = StOut1 + StOutHot = StOut0 + + IObj?.Paragraphs.Add(String.Format("

Cold Stream: {0}

", "Ambient Air")) + + IObj?.Paragraphs.Add(String.Format("Temperature: {0} K", StInCold.Phases(0).Properties.temperature.GetValueOrDefault)) + IObj?.Paragraphs.Add(String.Format("Pressure: {0} Pa", StInCold.Phases(0).Properties.pressure.GetValueOrDefault)) + IObj?.Paragraphs.Add(String.Format("Mass Flow: {0} kg/s", StInCold.Phases(0).Properties.massflow.GetValueOrDefault)) + IObj?.Paragraphs.Add(String.Format("Specific Enthalpy: {0} kJ/kg", StInCold.Phases(0).Properties.enthalpy.GetValueOrDefault)) + + IObj?.Paragraphs.Add(String.Format("

Hot Stream: {0}

", StInHot.GraphicObject.Tag)) + + IObj?.Paragraphs.Add(String.Format("Temperature: {0} K", StInHot.Phases(0).Properties.temperature.GetValueOrDefault)) + IObj?.Paragraphs.Add(String.Format("Pressure: {0} Pa", StInHot.Phases(0).Properties.pressure.GetValueOrDefault)) + IObj?.Paragraphs.Add(String.Format("Mass Flow: {0} kg/s", StInHot.Phases(0).Properties.massflow.GetValueOrDefault)) + IObj?.Paragraphs.Add(String.Format("Specific Enthalpy: {0} kJ/kg", StInHot.Phases(0).Properties.enthalpy.GetValueOrDefault)) + + IObj?.Paragraphs.Add("

Maximum Heat Exchange

") + + IObj?.Paragraphs.Add("Calculating maximum theoretical heat exchange...") + + IObj?.Paragraphs.Add("The maximum theoretical heat exchange is calculated as the smallest value from") + + IObj?.Paragraphs.Add("Q_{max,hot}=W_{hot}(H_{hot,in}-H_{hot,c})") + IObj?.Paragraphs.Add("Q_{max,cold}=W_{cold}(H_{cold,in}-H_{cold,h})") + + IObj?.Paragraphs.Add("where") + IObj?.Paragraphs.Add("H_{hot,in} is the hot stream inlet enthalpy") + IObj?.Paragraphs.Add("H_{hot,c} is the hot stream enthalpy at cold stream inlet temperature") + IObj?.Paragraphs.Add("H_{cold,in} is the cold stream inlet enthalpy ") + IObj?.Paragraphs.Add("H_{cold,h} is the cold stream enthalpy at hot stream inlet temperature") + + Pc2 = Pc1 + Ph2 = Ph1 - PressureDrop + + 'calculate maximum theoretical heat exchange + If DebugMode Then AppendDebugLine(String.Format("Doing a PT flash to calculate hot stream outlet enthalpy... P = {0} Pa, T = {1} K", Ph2, Tc1)) + Dim HHx As Double + Dim tmpstr As MaterialStream = StInHot.Clone + tmpstr.PropertyPackage = StInHot.PropertyPackage.Clone + tmpstr.SetFlowsheet(StInHot.FlowSheet) + tmpstr.PropertyPackage.CurrentMaterialStream = tmpstr + tmpstr.Phases("0").Properties.temperature = Tc1 + tmpstr.Phases("0").Properties.pressure = Ph2 + IObj?.SetCurrent() + tmpstr.PropertyPackage.DW_CalcEquilibrium(PropertyPackages.FlashSpec.T, PropertyPackages.FlashSpec.P) + IObj?.SetCurrent() + tmpstr.Calculate(False, True) + HHx = tmpstr.Phases(0).Properties.enthalpy.GetValueOrDefault + DeltaHh = Wh * (Hh1 - HHx) 'kW + + If DebugMode Then AppendDebugLine(String.Format("Doing a PT flash to calculate cold stream outlet enthalpy... P = {0} Pa, T = {1} K", Pc2, Th1)) + tmpstr = StInCold.Clone + tmpstr.PropertyPackage = StInCold.PropertyPackage.Clone + tmpstr.SetFlowsheet(StInHot.FlowSheet) + tmpstr.PropertyPackage.CurrentMaterialStream = tmpstr + tmpstr.Phases("0").Properties.temperature = Th1 + tmpstr.Phases("0").Properties.pressure = Pc2 + IObj?.SetCurrent() + tmpstr.PropertyPackage.DW_CalcEquilibrium(PropertyPackages.FlashSpec.T, PropertyPackages.FlashSpec.P) + IObj?.SetCurrent() + tmpstr.Calculate(False, True) + HHx = tmpstr.Phases(0).Properties.enthalpy.GetValueOrDefault + DeltaHc = Wc * (HHx - Hc1) 'kW + + IObj?.Paragraphs.Add("Q_{cold} = " & DeltaHc & " kW") + + MaxHeatExchange = Math.Min(DeltaHc, DeltaHh) 'kW + + IObj?.Paragraphs.Add("Q_{max} = " & MaxHeatExchange & " kW") + + tmpstr.PropertyPackage = Nothing + tmpstr.Dispose() + tmpstr = Nothing + + If DebugMode Then AppendDebugLine("Maximum possible heat exchange is " & MaxHeatExchange.ToString & " kW.") + + 'Copy properties from the input streams. + StOut0.Assign(StIn0) + StOut1.Assign(StIn1) + + CPC = StInCold.Phases(0).Properties.heatCapacityCp.GetValueOrDefault + CPH = StInHot.Phases(0).Properties.heatCapacityCp.GetValueOrDefault + + IObj?.Paragraphs.Add("

Actual Heat Exchange

") + + IObj?.Paragraphs.Add("Calculating heat exchanged...") + + IObj?.Paragraphs.Add(String.Format("Calculation mode: {0}", [Enum].GetName(CalculationMode.GetType, CalculationMode))) + + Select Case CalculationMode + + Case CalcMode.SpecifyOutletTemperature + + Th2 = OutletTemperature + + StInHot.PropertyPackage.CurrentMaterialStream = StInHot + If DebugMode Then AppendDebugLine(String.Format("Doing a PT flash to calculate hot stream outlet enthalpy... P = {0} Pa, T = K", Ph2, Th2)) + IObj?.SetCurrent() + Dim tmp = StInHot.PropertyPackage.CalculateEquilibrium2(FlashCalculationType.PressureTemperature, Ph2, Th2, 0.0#) + Hh2 = tmp.CalculatedEnthalpy + HeatLoad = -Wh * (Hh2 - Hh1) + + DeltaHc = HeatLoad / Wc + Hc2 = Hc1 + DeltaHc + StInCold.PropertyPackage.CurrentMaterialStream = StInCold + If DebugMode Then AppendDebugLine(String.Format("Doing a PH flash to calculate cold stream outlet temperature... P = {0} Pa, H = {1} kJ/[kg.K]", Pc2, Hc2)) + IObj?.SetCurrent() + tmp = StInCold.PropertyPackage.CalculateEquilibrium2(FlashCalculationType.PressureEnthalpy, Pc2, Hc2, Tc1) + Tc2 = tmp.CalculatedTemperature + If DebugMode Then AppendDebugLine(String.Format("Calculated cold stream outlet temperature T2 = {0} K", Tc2)) + + LMTD = ((Th1 - Tc2) - (Th2 - Tc1)) / Math.Log((Th1 - Tc2) / (Th2 - Tc1)) + + OverallUA = HeatLoad / LMTD * 1000 + + AirOutletTemperature = Tc2 + + If HeatLoad > MaxHeatExchange Then + Throw New Exception("Invalid Outlet Temperature (Heat Exchanged higher than the theoretical maximum)") + End If + + Case CalcMode.SpecifyGeometry + + 'Shell and Tube HX calculation using Tinker's method. + + IObj?.Paragraphs.Add("Shell and Tube HX calculation uses Tinker's method, more details on this link, Chapter 5 (Capitulo 5).") + + Dim Tc2_ant, Th2_ant As Double + Dim U_ant, fx, Fant, F As Double + Dim DTm, Tcm, Thm, R, Sf, P As Double + + 'initial estimates for R and P to calculate outlet temperatures + + R = 0.4 + P = 0.6 + + 'hot + Th2 = P * (Tc1 - Th1) + Th1 + Tc2 = Tc1 - R * (Th2 - Th1) + + If Th2 <= Tc2 Then Th2 = Tc2 * 1.2 + + Pc2 = Pc1 + Ph2 = Ph1 + F = 1.0# + U = 500.0# + + IObj?.Paragraphs.Add("

Initial Estimates

") + + IObj?.Paragraphs.Add("T_{c,out} = " & Tc2 & " K") + IObj?.Paragraphs.Add("T_{h,out} = " & Th2 & " K") + IObj?.Paragraphs.Add("U = " & U & " W/[m2.K]") + + Dim rhoc, muc, kc, rhoh, muh, kh, rt, di, de, L, hi, nt, vt, Ret, Prt As Double + + Dim icnt As Integer = 0 + + Do + + IObj?.Paragraphs.Add("

Convergence Loop #" & icnt & "

") + + LMTD = ((Th1 - Tc2) - (Th2 - Tc1)) / Math.Log((Th1 - Tc2) / (Th2 - Tc1)) + + 'hot + R = (Tc1 - Tc2) / (Th2 - Th1) + P = (Th2 - Th1) / (Tc1 - Th1) + + Fant = F + + If R <> 1.0# Then + Dim alpha As Double + alpha = ((1 - R * P) / (1 - P)) + Sf = (alpha - 1) / (alpha - R) + F = (R ^ 2 + 1) ^ 0.5 * Math.Log((1 - Sf) / (1 - R * Sf)) / ((R - 1) * Math.Log((2 - Sf * (R + 1 - (R ^ 2 + 1) ^ 0.5)) / (2 - Sf * (R + 1 + (R ^ 2 + 1) ^ 0.5)))) + Else + Sf = P + F = Sf * 2 ^ 0.5 / ((1 - Sf) * Math.Log((2 * (1 - Sf) + Sf * 2 ^ 0.5) / (2 * (1 - Sf) - Sf * 2 ^ 0.5))) + End If + If Double.IsNaN(F) Then + F = Fant + End If + DTm = F * LMTD + + IObj?.Paragraphs.Add("\Delta T_{ml} = " & LMTD & " K") + + '3 + Tcm = (Tc2 - Tc1) / 2 + Tc1 + Thm = (Th1 - Th2) / 2 + Th2 + + + IObj?.Paragraphs.Add("F = " & F) + IObj?.Paragraphs.Add("\Delta T_m = " & DTm & " K") + IObj?.Paragraphs.Add("T_{c,m} = " & Tcm & " K") + IObj?.Paragraphs.Add("T_{h,m} = " & Thm & " K") + + '4, 5 + + StInCold.PropertyPackage.CurrentMaterialStream = StInCold + Dim tmp = StInCold.PropertyPackage.CalculateEquilibrium2(FlashCalculationType.PressureTemperature, Pc2, Tc2, 0) + Dim tms As MaterialStream = StInCold.Clone + tms.SetFlowsheet(StInCold.FlowSheet) + tms.Phases(0).Properties.temperature = Tcm + With tms.PropertyPackage + .CurrentMaterialStream = tms + IObj?.SetCurrent() + .DW_CalcEquilibrium(PropertyPackages.FlashSpec.T, PropertyPackages.FlashSpec.P) + If tms.Phases(3).Properties.molarfraction.GetValueOrDefault > 0 Then + IObj?.SetCurrent() + .DW_CalcPhaseProps(PropertyPackages.Phase.Liquid1) + Else + IObj?.SetCurrent() + .DW_ZerarPhaseProps(PropertyPackages.Phase.Liquid1) + End If + If tms.Phases(2).Properties.molarfraction.GetValueOrDefault > 0 Then + IObj?.SetCurrent() + .DW_CalcPhaseProps(PropertyPackages.Phase.Vapor) + Else + .DW_ZerarPhaseProps(PropertyPackages.Phase.Vapor) + End If + If tms.Phases(2).Properties.molarfraction.GetValueOrDefault >= 0 And tms.Phases(2).Properties.molarfraction.GetValueOrDefault <= 1 Then + IObj?.SetCurrent() + .DW_CalcPhaseProps(PropertyPackages.Phase.Liquid) + Else + IObj?.SetCurrent() + .DW_ZerarPhaseProps(PropertyPackages.Phase.Liquid) + End If + IObj?.SetCurrent() + tms.PropertyPackage.DW_CalcPhaseProps(PropertyPackages.Phase.Mixture) + End With + rhoc = tms.Phases(0).Properties.density.GetValueOrDefault + CPC = tms.Phases(0).Properties.heatCapacityCp.GetValueOrDefault + kc = tms.Phases(0).Properties.thermalConductivity.GetValueOrDefault + muc = tms.Phases(1).Properties.viscosity.GetValueOrDefault * tms.Phases(1).Properties.molarfraction.GetValueOrDefault + tms.Phases(2).Properties.viscosity.GetValueOrDefault * tms.Phases(2).Properties.molarfraction.GetValueOrDefault + tms = StInHot.Clone + tms.SetFlowsheet(StInHot.FlowSheet) + tms.Phases(0).Properties.temperature = Thm + tms.PropertyPackage.CurrentMaterialStream = tms + With tms.PropertyPackage + .CurrentMaterialStream = tms + IObj?.SetCurrent() + .DW_CalcEquilibrium(PropertyPackages.FlashSpec.T, PropertyPackages.FlashSpec.P) + If tms.Phases(3).Properties.molarfraction.GetValueOrDefault > 0 Then + IObj?.SetCurrent() + .DW_CalcPhaseProps(PropertyPackages.Phase.Liquid1) + Else + IObj?.SetCurrent() + .DW_ZerarPhaseProps(PropertyPackages.Phase.Liquid1) + End If + If tms.Phases(2).Properties.molarfraction.GetValueOrDefault > 0 Then + IObj?.SetCurrent() + .DW_CalcPhaseProps(PropertyPackages.Phase.Vapor) + Else + IObj?.SetCurrent() + .DW_ZerarPhaseProps(PropertyPackages.Phase.Vapor) + End If + If tms.Phases(2).Properties.molarfraction.GetValueOrDefault >= 0 And tms.Phases(2).Properties.molarfraction.GetValueOrDefault <= 1 Then + IObj?.SetCurrent() + .DW_CalcPhaseProps(PropertyPackages.Phase.Liquid) + Else + IObj?.SetCurrent() + .DW_ZerarPhaseProps(PropertyPackages.Phase.Liquid) + End If + IObj?.SetCurrent() + tms.PropertyPackage.DW_CalcPhaseProps(PropertyPackages.Phase.Mixture) + End With + + rhoh = tms.Phases(0).Properties.density.GetValueOrDefault + CPH = tms.Phases(0).Properties.heatCapacityCp.GetValueOrDefault + kh = tms.Phases(0).Properties.thermalConductivity.GetValueOrDefault + muh = tms.Phases(1).Properties.viscosity.GetValueOrDefault * tms.Phases(1).Properties.molarfraction.GetValueOrDefault + tms.Phases(2).Properties.viscosity.GetValueOrDefault * tms.Phases(2).Properties.molarfraction.GetValueOrDefault + + '6 + Dim pitch As Double, n As Integer + + rt = Tube_Fouling + de = Tube_De / 1000 + di = Tube_Di / 1000 + L = Tube_Length + pitch = Tube_Pitch / 1000 + n = Tube_NumberPerShell + nt = n / Tube_PassesPerShell + A = n * Math.PI * de * (L - 2 * de) + + 'If pitch < de Then Throw New Exception("Invalid input: tube spacing (pitch) is smaller than the tube's external diameter.") + + 'hot + vt = Wh / (rhoh * nt * Math.PI * di ^ 2 / 4) + Ret = rhoh * vt * di / muh + Prt = muh * CPH / kh * 1000 + + IObj?.Paragraphs.Add("Re_{tube} = " & Ret) + IObj?.Paragraphs.Add("Pr_{tube} = " & Prt) + + 'calcular DeltaP + + Dim dpt As Double + 'tube + dpt = 0.0# + Dim fric As Double = 0 + Dim epsilon As Double = Tube_Roughness / 1000 + If Ret > 3250 Then + Dim a1 = Math.Log(((epsilon / di) ^ 1.1096) / 2.8257 + (7.149 / Ret) ^ 0.8961) / Math.Log(10.0#) + Dim b1 = -2 * Math.Log((epsilon / di) / 3.7065 - 5.0452 * a1 / Ret) / Math.Log(10.0#) + fric = (1 / b1) ^ 2 + Else + fric = 64 / Ret + End If + + 'hot + dpt = fric * L * Tube_PassesPerShell / di * vt ^ 2 / 2 * rhoh + + IObj?.Paragraphs.Add("\Delta P_{tube} = " & dpt & " Pa") + + 'tube heat transfer coeff + hi = UnitOperations.Pipe.hint_petukhov(kh, di, fric, Ret, Prt) + + IObj?.Paragraphs.Add("h_{int,tube} = " & hi & " W/[m2.K]") + + 'air heat transfer coeff + Dim he As Double = 0.0 + + 'shell internal diameter + Dim Dsi, Dsf, nsc As Double + + nsc = 1.1 * n ^ 0.5 + + Dsf = (nsc - 1) * pitch + de + Dsi = Dsf / 1.075 + + Dim Gsf, Np, Fp, Ss, Ssf, Cb, Ca, Res, Prs, aa, bb, cc, xx, yy, Nh, Y As Double + xx = Dsi / L + yy = pitch / de + aa = 0.9078565328950694 + bb = 0.66331106126564476 + + cc = -4.4329764639656482 + Nh = aa * xx ^ bb * yy ^ cc + aa = 5.3718559074820611 + bb = -0.33416765138071414 + cc = 0.7267144209289168 + Y = aa * xx ^ bb * yy ^ cc + aa = 0.53807650470841084 + bb = 0.3761125784751041 + cc = -3.8741224386187474 + Np = aa * xx ^ bb * yy ^ cc + + Fp = 1 / (0.8 + Np * (Dsi / pitch) ^ 0.5) + Cb = 0.97 + Ca = Cb * (pitch - de) / pitch + Ss = Ca * L * Dsf + Ssf = Ss / Fp + + Gsf = Wc / Ssf + Res = Gsf * de / muc + Prs = muc * CPC / kc * 1000 + + IObj?.Paragraphs.Add("Re_{ext} = " & Res) + IObj?.Paragraphs.Add("Pr_{ext} = " & Prs) + + 'ho*Do/k = 0.287 * (Do * G / mu) ^ 0.61 * (cp * mu / k) ^ 0.33 * Fa + + Dim G = ActualAirFlow / A * rhoc + + he = (1 / de) * kc * 0.287 * (de * G / muc) ^ 0.61 * (CPC * 1000 * muc / kc) ^ 0.33 + + he = UnitOperations.Pipe.hext_holman(kc, de, Res, Prs) + + IObj?.Paragraphs.Add("h_{ext} = " & he & " W/[m2.K]") + + 'global HTC (U) + Dim kt As Double = Tube_ThermalConductivity + Dim f1, f2, f3, f4, f5 As Double + f1 = de / (hi * di) + f2 = rt * de / di + f3 = de / (2 * kt) * Math.Log(de / di) + f4 = 0.0 + f5 = 1 / he + + U_ant = U + U = f1 + f2 + f3 + f4 + f5 + U = 1 / U + + HeatLoad = U * A * F * LMTD / 1000 + If HeatLoad > MaxHeatExchange Then HeatLoad = MaxHeatExchange + + 'hot + DeltaHc = HeatLoad / Wc + DeltaHh = -HeatLoad / Wh + + Hc2 = Hc1 + DeltaHc + Hh2 = Hh1 + DeltaHh + StInCold.PropertyPackage.CurrentMaterialStream = StInCold + IObj?.SetCurrent() + tmp = StInCold.PropertyPackage.CalculateEquilibrium2(FlashCalculationType.PressureEnthalpy, Pc2, Hc2, Tc2) + Tc2_ant = Tc2 + Tc2 = tmp.CalculatedTemperature + Tc2 = 0.1 * Tc2 + 0.9 * Tc2_ant + StInHot.PropertyPackage.CurrentMaterialStream = StInHot + IObj?.SetCurrent() + tmp = StInHot.PropertyPackage.CalculateEquilibrium2(FlashCalculationType.PressureEnthalpy, Ph2, Hh2, Th2) + Th2_ant = Th2 + Th2 = tmp.CalculatedTemperature + Th2 = 0.1 * Th2 + 0.9 * Th2_ant + + Ph2 = Ph1 - dpt + + OverallUA = U * A + + IObj?.Paragraphs.Add("Q = " & HeatLoad & " kW") + IObj?.Paragraphs.Add("U = " & U & " W/[m2.K]") + IObj?.Paragraphs.Add("A = " & A & " m2") + IObj?.Paragraphs.Add("UA = " & OverallUA & " W/K") + + IObj?.Paragraphs.Add("T_{c,out} = " & Tc2 & " K") + IObj?.Paragraphs.Add("T_{h,out} = " & Th2 & " K") + + Me.LMTD_F = F + fx = Math.Abs((Th2 - Th2_ant) ^ 2 + (Tc2 - Tc2_ant) ^ 2) + + IObj?.Paragraphs.Add("Temperature error = " & fx) + + FlowSheet.CheckStatus() + + icnt += 1 + + PressureDrop = dpt + + AirOutletTemperature = Tc2 + + OutletTemperature = Th2 + + Loop Until fx < 0.01 Or icnt > 100 + + Case CalcMode.SpecifyUA + + Dim Qi, Q_old, PIc1, PIc2, PIh1, PIh2 As Double + Dim NTUh, NTUc, WWh, WWc, RRh, RRc, PPh, PPc As Double + Dim tmp As IFlashCalculationResult + Dim count As Integer + Qi = MaxHeatExchange + Q_old = 10000000000.0 + + If DebugMode Then AppendDebugLine(String.Format("Start with Max Heat Exchange Q = {0} KW", Qi)) + + Do + + If DebugMode Then AppendDebugLine(String.Format("======================================================")) + If DebugMode Then AppendDebugLine(String.Format("Iteration loop: {0}", count)) + + Hc2 = Qi / Wc + Hc1 + Hh2 = Hh1 - Qi / Wh + StInCold.PropertyPackage.CurrentMaterialStream = StInCold + IObj?.SetCurrent() + tmp = StInCold.PropertyPackage.CalculateEquilibrium2(FlashCalculationType.PressureEnthalpy, Pc2, Hc2, Tc2) + Tc2 = tmp.CalculatedTemperature + PIc2 = (1 + tmp.GetLiquidPhase1MoleFraction) * (1 + tmp.GetVaporPhaseMoleFraction * (1 + tmp.GetSolidPhaseMoleFraction)) 'phase indicator cold stream + If DebugMode Then AppendDebugLine(String.Format("Doing a PH flash to calculate cold stream outlet temperature... P = {0} Pa, H = {1} kJ/[kg.K] ===> Tc2 = {2} K", Pc2, Hc2, Tc2)) + + StInHot.PropertyPackage.CurrentMaterialStream = StInHot + IObj?.SetCurrent() + tmp = StInHot.PropertyPackage.CalculateEquilibrium2(FlashCalculationType.PressureEnthalpy, Ph2, Hh2, Th2) + Th2 = tmp.CalculatedTemperature + PIh2 = (1 + tmp.GetLiquidPhase1MoleFraction) * (1 + tmp.GetVaporPhaseMoleFraction * (1 + tmp.GetSolidPhaseMoleFraction)) 'phase indicator hot stream + If DebugMode Then AppendDebugLine(String.Format("Doing a PH flash to calculate hot stream outlet temperature... P = {0} Pa, H = {1} kJ/[kg.K] ===> Th2 = {2} K", Ph2, Hh2, Th2)) + + If Math.Abs((Qi - Q_old) / Q_old) < 0.001 Or count > 100 Then Exit Do + + WWc = Wc * (Hc2 - Hc1) / (Tc2 - Tc1) * 1000 'Heat Capacity Rate cold side + WWh = Wh * (Hh2 - Hh1) / (Th2 - Th1) * 1000 'Heat Capacity Rate hot side + NTUc = OverallUA / WWc 'Numbers of transfer units - cold side + NTUh = OverallUA / WWh 'Numbers of transfer units - hot side + RRc = WWc / WWh 'Heat capacity ratio cold side + RRh = WWh / WWc 'Heat capacity ratio hot side + + If DebugMode Then AppendDebugLine(String.Format("Calculating heat exchanger")) + If DebugMode Then AppendDebugLine(String.Format("Number of Transfer Units - NTU_cold :{0} NTU_hot: {1}", NTUc, NTUh)) + If DebugMode Then AppendDebugLine(String.Format("Heat Capacity Rates - W_cold :{0} W_hot: {1}", WWc, WWh)) + If DebugMode Then AppendDebugLine(String.Format("Heat Capacity Ratios - R_cold :{0} R_hot: {1}", RRc, RRh)) + + PPc = (1 - Math.Exp((RRc - 1) * NTUc)) / (1 - RRc * Math.Exp((RRc - 1) * NTUc)) + PPh = (1 - Math.Exp((RRh - 1) * NTUh)) / (1 - RRh * Math.Exp((RRh - 1) * NTUh)) + + If DebugMode Then AppendDebugLine(String.Format("Dimensionless Temp Change - P_cold :{0} P_hot: {1}", PPc, PPh)) + + If Double.IsNaN(PPc) Then PPc = 0 + If Double.IsNaN(PPh) Then PPh = 0 + Tc2 = Tc1 + PPc * (Th1 - Tc1) + Th2 = Th1 - PPh * (Th1 - Tc1) + If DebugMode Then AppendDebugLine(String.Format("Outlet Temperatures - Tc2 :{0} K Th2: {1} K", Tc2, Th2)) + + If (Th1 - Tc2) / (Th2 - Tc1) = 1 Then + LMTD = ((Th1 - Tc2) + (Th2 - Tc1)) / 2 + Else + LMTD = ((Th1 - Tc2) - (Th2 - Tc1)) / Math.Log((Th1 - Tc2) / (Th2 - Tc1)) + End If + + Q_old = Qi + If LMTD > 0 Then + Qi = OverallUA * LMTD / 1000 + Else + Qi = Wh * (Hh1 - Hh2) + LMTD = Qi / OverallUA * 1000 + End If + + If DebugMode Then + AppendDebugLine(String.Format("Logarithmic Temperature Difference :{0} K", LMTD)) + AppendDebugLine(String.Format("Heat Exchange Q = {0} KW", Qi)) + End If + + count += 1 + + Loop + + If HeatLoad > MaxHeatExchange Then + Throw New Exception("Invalid Outlet Temperature (Heat Exchanged higher than the theoretical maximum)") + End If + + AirOutletTemperature = Tc2 + OutletTemperature = Th2 + + HeatLoad = Qi + + If count > 100 Then Throw New Exception("Reached maximum number of iterations! Final Q change: " & Qi - Q_old & " kW ; " & Math.Abs((Qi - Q_old) / Q_old * 100) & " % ") + + PIc1 = (1 + StInCold.Phases(1).Properties.molarfraction.GetValueOrDefault) * (1 + StInCold.Phases(2).Properties.molarfraction.GetValueOrDefault) * (1 + StInCold.Phases(7).Properties.molarfraction.GetValueOrDefault) + PIh1 = (1 + StInHot.Phases(1).Properties.molarfraction.GetValueOrDefault) * (1 + StInHot.Phases(2).Properties.molarfraction.GetValueOrDefault) * (1 + StInHot.Phases(7).Properties.molarfraction.GetValueOrDefault) + + If (PIc1 = 2 And PIc2 > 2) Or (PIc1 > 2 And PIc2 = 2) Then FlowSheet.ShowMessage(Me.GraphicObject.Tag & ": Phase change in cold stream detected! Heat exchange result is an aproximation.", IFlowsheet.MessageType.Warning) + If (PIh1 = 2 And PIh2 > 2) Or (PIh1 > 2 And PIh2 = 2) Then FlowSheet.ShowMessage(Me.GraphicObject.Tag & ": Phase change in hot stream detected! Heat exchange result is an aproximation.", IFlowsheet.MessageType.Warning) + + End Select + + IObj?.Paragraphs.Add("

Results

") + + IObj?.Paragraphs.Add("T_{c,out} = " & Tc2 & " K") + IObj?.Paragraphs.Add("T_{h,out} = " & Th2 & " K") + IObj?.Paragraphs.Add("P_{c,out} = " & Pc2 & " Pa") + IObj?.Paragraphs.Add("P_{h,out} = " & Ph2 & " Pa") + + IObj?.Paragraphs.Add("Q = " & HeatLoad & " kW") + + IObj?.Paragraphs.Add("U = " & U & " W/[m2.K]") + + IObj?.Paragraphs.Add("\Delta T_{ml} = " & LMTD & " K") + + ExchangerEfficiency = HeatLoad / MaxHeatExchange * 100 + + IObj?.Paragraphs.Add("Q/Q_{max} = " & ExchangerEfficiency & " %") + + 'ElectricalPowerConversionFactor = HeatLoad / ActualFanSpeed + + If Not DebugMode Then + + ElectricalPowerLoad = ElectricalPowerConversionFactor * ActualFanSpeed + + GetInletEnergyStream(1).EnergyFlow = ElectricalPowerLoad + + 'Define new calculated properties. + StOutHot.Phases(0).Properties.temperature = Th2 + StOutCold.Phases(0).Properties.temperature = Tc2 + StOutHot.Phases(0).Properties.pressure = Ph2 + StOutCold.Phases(0).Properties.pressure = Pc2 + StOutHot.Phases(0).Properties.enthalpy = Hh2 + StOutCold.Phases(0).Properties.enthalpy = Hc2 + + If Th2 < Tc1 Or Tc2 > Th1 Then + FlowSheet.ShowMessage(Me.GraphicObject.Tag & ": Temperature Cross", IFlowsheet.MessageType.Warning) + End If + + Else + + AppendDebugLine("Calculation finished successfully.") + + End If + + + + End Sub + + Public Overrides Sub DeCalculate() + + Dim es As EnergyStream + Dim cp As IConnectionPoint + For Each cp In Me.GraphicObject.OutputConnectors + If cp.IsAttached Then + es = FlowSheet.SimulationObjects(cp.AttachedConnector.AttachedTo.Name) + es.EnergyFlow = Nothing + End If + Next + + End Sub + + Public Sub PopulateEditorPanel(ctner As Object) Implements IExternalUnitOperation.PopulateEditorPanel + + Dim container As DynamicLayout = ctner + + Dim su = GetFlowsheet().FlowsheetOptions.SelectedUnitSystem + Dim nf = GetFlowsheet().FlowsheetOptions.NumberFormat + + Dim cmodes As String() = {"Specify Outlet Temperature", "Specify Tube Geometry", "Specify Overall UA"} + + s.CreateAndAddDropDownRow(container, "Calculation Mode", cmodes.ToList, CalculationMode, Sub(dd, e) + CalculationMode = dd.SelectedIndex + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddLabelRow(container, "Main Properties") + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Pressure Drop ({0})", su.deltaP), + PressureDrop.ConvertFromSI(su.deltaP), + Sub(tb, e) + PressureDrop = tb.Text.ParseExpressionToDouble.ConvertToSI(su.deltaP) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Fluid Outlet Temperature ({0})", su.temperature), + OutletTemperature.ConvertFromSI(su.temperature), + Sub(tb, e) + OutletTemperature = tb.Text.ParseExpressionToDouble.ConvertToSI(su.temperature) + End Sub, Sub() FlowSheet.RequestCalculation()) + + Dim tbx = s.CreateAndAddTextBoxRow(container, nf, String.Format("Heat Load ({0})", su.heatflow), + HeatLoad.ConvertFromSI(su.heatflow), + Sub(tb, e) + End Sub, Sub() FlowSheet.RequestCalculation()) + tbx.ReadOnly = True + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Overall UA ({0})", "W/K"), + OverallUA, + Sub(tb, e) + OverallUA = tb.Text.ParseExpressionToDouble + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Air Inlet Temperature ({0})", su.temperature), + AirInletTemperature.ConvertFromSI(su.temperature), + Sub(tb, e) + AirInletTemperature = tb.Text.ParseExpressionToDouble.ConvertToSI(su.temperature) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Air Inlet Pressure ({0})", su.pressure), + AirPressure.ConvertFromSI(su.temperature), + Sub(tb, e) + AirPressure = tb.Text.ParseExpressionToDouble.ConvertToSI(su.pressure) + End Sub, Sub() FlowSheet.RequestCalculation()) + + Dim tbx2 = s.CreateAndAddTextBoxRow(container, nf, String.Format("Air Outlet Temperature ({0})", su.temperature), + AirOutletTemperature.ConvertFromSI(su.temperature), + Sub(tb, e) + AirOutletTemperature = tb.Text.ParseExpressionToDouble.ConvertToSI(su.temperature) + End Sub, Sub() FlowSheet.RequestCalculation()) + tbx2.ReadOnly = True + + Dim tbx3 = s.CreateAndAddTextBoxRow(container, nf, String.Format("Heat Load ({0})", su.heatflow), + HeatLoad.ConvertFromSI(su.heatflow), + Sub(tb, e) + HeatLoad = tb.Text.ParseExpressionToDouble.ConvertToSI(su.heatflow) + End Sub, Sub() FlowSheet.RequestCalculation()) + tbx3.ReadOnly = True + + Dim tbx4 = s.CreateAndAddTextBoxRow(container, nf, String.Format("Maximum Heat Load ({0})", su.heatflow), + MaxHeatExchange.ConvertFromSI(su.heatflow), + Sub(tb, e) + MaxHeatExchange = tb.Text.ParseExpressionToDouble.ConvertToSI(su.heatflow) + End Sub, Sub() FlowSheet.RequestCalculation()) + tbx4.ReadOnly = True + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Exchanger Efficiency ({0})", "%"), + ExchangerEfficiency, + Sub(tb, e) + ExchangerEfficiency = tb.Text.ParseExpressionToDouble + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddLabelRow(container, "Fan Properties") + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Reference Fan Speed ({0})", "rpm"), + ReferenceFanSpeed, + Sub(tb, e) + ReferenceFanSpeed = tb.Text.ParseExpressionToDouble + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Reference Air Flow ({0})", su.volumetricFlow), + ReferenceAirFlow.ConvertFromSI(su.volumetricFlow), + Sub(tb, e) + ReferenceAirFlow = tb.Text.ParseExpressionToDouble.ConvertToSI(su.volumetricFlow) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Actual Fan Speed ({0})", "rpm"), + ActualFanSpeed, + Sub(tb, e) + ActualFanSpeed = tb.Text.ParseExpressionToDouble + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Actual Air Flow ({0})", su.volumetricFlow), + ActualAirFlow.ConvertFromSI(su.volumetricFlow), + Sub(tb, e) + ActualAirFlow = tb.Text.ParseExpressionToDouble.ConvertToSI(su.volumetricFlow) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Electrical Power Conversion Factor ({0})", "kW/rpm"), + ElectricalPowerConversionFactor, + Sub(tb, e) + ElectricalPowerConversionFactor = tb.Text.ParseExpressionToDouble + End Sub, Sub() FlowSheet.RequestCalculation()) + + Dim tbx5 = s.CreateAndAddTextBoxRow(container, nf, String.Format("Electrical Power Load ({0})", su.heatflow), + ElectricalPowerLoad.ConvertFromSI(su.heatflow), + Sub(tb, e) + ElectricalPowerLoad = tb.Text.ParseExpressionToDouble.ConvertToSI(su.heatflow) + End Sub, Sub() FlowSheet.RequestCalculation()) + tbx5.ReadOnly = True + + s.CreateAndAddLabelRow(container, "Tube Properties") + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Tube Internal Diameter ({0})", su.diameter), + Tube_Di.ConvertFromSI(su.diameter), + Sub(tb, e) + Tube_Di = tb.Text.ParseExpressionToDouble.ConvertToSI(su.diameter) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Tube External Diameter ({0})", su.diameter), + Tube_De.ConvertFromSI(su.diameter), + Sub(tb, e) + Tube_De = tb.Text.ParseExpressionToDouble.ConvertToSI(su.diameter) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Tube Length ({0})", su.distance), + Tube_Length.ConvertFromSI(su.distance), + Sub(tb, e) + Tube_Length = tb.Text.ParseExpressionToDouble.ConvertToSI(su.distance) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Tube Pitch ({0})", su.thickness), + Tube_Pitch.ConvertFromSI(su.thickness), + Sub(tb, e) + Tube_Length = tb.Text.ParseExpressionToDouble.ConvertToSI(su.thickness) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Tube Fouling Factor ({0})", su.foulingfactor), + Tube_Fouling.ConvertFromSI(su.foulingfactor), + Sub(tb, e) + Tube_Fouling = tb.Text.ParseExpressionToDouble.ConvertToSI(su.foulingfactor) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Tube Roughness ({0})", su.distance), + Tube_Roughness.ConvertFromSI(su.distance), + Sub(tb, e) + Tube_Roughness = tb.Text.ParseExpressionToDouble.ConvertToSI(su.distance) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Tube Thermal Conductivity ({0})", su.thermalConductivity), + Tube_ThermalConductivity.ConvertFromSI(su.thermalConductivity), + Sub(tb, e) + Tube_ThermalConductivity = tb.Text.ParseExpressionToDouble.ConvertToSI(su.thermalConductivity) + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Number of Tubes"), + Tube_NumberPerShell, + Sub(tb, e) + Tube_NumberPerShell = tb.Text.ParseExpressionToDouble + End Sub, Sub() FlowSheet.RequestCalculation()) + + s.CreateAndAddTextBoxRow(container, nf, String.Format("Tube Passes"), + Tube_PassesPerShell, + Sub(tb, e) + Tube_PassesPerShell = tb.Text.ParseExpressionToDouble + End Sub, Sub() FlowSheet.RequestCalculation()) + + End Sub + + Private Sub CallSolverIfNeeded() + If GlobalSettings.Settings.CallSolverOnEditorPropertyChanged Then + FlowSheet.RequestCalculation() + End If + End Sub + + Public Overrides Function GetPropertyDescription(p As String) As String + Return p + End Function + + Public Overrides Function GetPropertyValue(ByVal prop As String, Optional ByVal su As Interfaces.IUnitsOfMeasure = Nothing) As Object + + If su Is Nothing Then su = New SystemsOfUnits.SI + + Select Case prop + Case "Pressure Drop" + Return PressureDrop.ConvertFromSI(su.deltaP) + Case "Outlet Temperature" + Return OutletTemperature.ConvertFromSI(su.temperature) + Case "Overall UA" + Return OverallUA + Case "Reference Fan Speed" + Return ReferenceFanSpeed + Case "Reference Air Flow" + Return ReferenceAirFlow.ConvertFromSI(su.volumetricFlow) + Case "Actual Fan Speed" + Return ActualFanSpeed + Case "Actual Air Flow" + Return ActualAirFlow.ConvertFromSI(su.volumetricFlow) + Case "Air Inlet Temperature" + Return AirInletTemperature.ConvertFromSI(su.temperature) + Case "Air Pressure" + Return AirPressure.ConvertFromSI(su.pressure) + Case "Air Outlet Temperature" + Return AirOutletTemperature.ConvertFromSI(su.temperature) + Case "Electrical Power Conversion Factor" + Return ElectricalPowerConversionFactor + Case "Heat Load" + Return HeatLoad.ConvertFromSI(su.heatflow) + Case "Electrical Power Load" + Return ElectricalPowerLoad.ConvertFromSI(su.heatflow) + Case "Tube Internal Diameter" + Return Tube_Di.ConvertFromSI(su.diameter) + Case "Tube External Diameter" + Return Tube_De.ConvertFromSI(su.diameter) + Case "Tube Length" + Return Tube_Length.ConvertFromSI(su.distance) + Case "Tube Pitch" + Return Tube_Pitch.ConvertFromSI(su.thickness) + Case "Tube Fouling" + Return Tube_Fouling.ConvertFromSI(su.foulingfactor) + Case "Tube Passes" + Return Tube_PassesPerShell + Case "Tube Number" + Return Tube_NumberPerShell + Case "Tube Roughness" + Return Tube_Roughness.ConvertFromSI(su.distance) + Case "Tube Thermal Conductivity" + Return Tube_ThermalConductivity.ConvertFromSI(su.thermalConductivity) + Case "Max Heat Exchange" + Return MaxHeatExchange.ConvertFromSI(su.heatflow) + Case "Exchanger Efficiency" + Return ExchangerEfficiency + Case Else + Return 0 + End Select + + End Function + + Public Overloads Overrides Function GetProperties(ByVal proptype As Interfaces.Enums.PropertyType) As String() + + Dim list As New List(Of String) + + list.Add("Pressure Drop") + list.Add("Outlet Temperature") + list.Add("Overall UA") + list.Add("Reference Fan Speed") + list.Add("Reference Air Flow") + list.Add("Actual Fan Speed") + list.Add("Actual Air Flow") + list.Add("Air Inlet Temperature") + list.Add("Air Pressure") + list.Add("Air Outlet Temperature") + list.Add("Electrical Power Conversion Factor") + list.Add("Heat Load") + list.Add("Electrical Power Load") + list.Add("Tube Internal Diameter") + list.Add("Tube External Diameter") + list.Add("Tube Length") + list.Add("Tube Pitch") + list.Add("Tube Fouling") + list.Add("Tube Passes") + list.Add("Tube Number") + list.Add("Tube Roughness") + list.Add("Tube Thermal Conductivity") + list.Add("Max Heat Exchange") + list.Add("Exchanger Efficiency") + + Return list.ToArray + + End Function + + Public Overloads Overrides Function GetDefaultProperties() As String() + + Dim list As New List(Of String) + + list.Add("Outlet Temperature") + list.Add("Overall UA") + list.Add("Heat Load") + list.Add("Electrical Power Load") + list.Add("Actual Air Flow") + list.Add("Air Inlet Temperature") + list.Add("Air Outlet Temperature") + list.Add("Max Heat Exchange") + list.Add("Exchanger Efficiency") + + Return list.ToArray + + End Function + + Public Overrides Function SetPropertyValue(ByVal prop As String, ByVal propval As Object, Optional ByVal su As Interfaces.IUnitsOfMeasure = Nothing) As Boolean + + If su Is Nothing Then su = New SystemsOfUnits.SI + + Select Case prop + Case "Pressure Drop" + PressureDrop = propval.ConvertToSI(su.deltaP) + Case "Outlet Temperature" + OutletTemperature = propval.ConvertToSI(su.temperature) + Case "Overall UA" + OverallUA = propval + Case "Reference Fan Speed" + ReferenceFanSpeed = propval + Case "Reference Air Flow" + ReferenceAirFlow = propval.ConvertToSI(su.volumetricFlow) + Case "Actual Fan Speed" + ActualFanSpeed = propval + Case "Actual Air Flow" + ActualAirFlow = propval.ConvertToSI(su.volumetricFlow) + Case "Air Inlet Temperature" + AirInletTemperature = propval.ConvertToSI(su.temperature) + Case "Air Pressure" + AirPressure = propval.ConvertToSI(su.pressure) + Case "Air Outlet Temperature" + AirOutletTemperature = propval.ConvertToSI(su.temperature) + Case "Electrical Power Conversion Factor" + ElectricalPowerConversionFactor = propval + Case "Heat Load" + HeatLoad = propval.ConvertToSI(su.heatflow) + Case "Electrical Power Load" + ElectricalPowerLoad = propval.ConvertToSI(su.heatflow) + Case "Tube Internal Diameter" + Tube_Di = propval.ConvertToSI(su.diameter) + Case "Tube External Diameter" + Tube_De = propval.ConvertToSI(su.diameter) + Case "Tube Length" + Tube_Length = propval.ConvertToSI(su.distance) + Case "Tube Pitch" + Tube_Pitch = propval.ConvertToSI(su.thickness) + Case "Tube Fouling" + Tube_Fouling = propval.ConvertToSI(su.foulingfactor) + Case "Tube Passes" + Tube_PassesPerShell = propval + Case "Tube Number" + Tube_NumberPerShell = propval + Case "Tube Roughness" + Tube_Roughness = propval.ConvertToSI(su.distance) + Case "Tube Thermal Conductivity" + Tube_ThermalConductivity = propval.ConvertToSI(su.thermalConductivity) + Case "Max Heat Exchange" + MaxHeatExchange = propval.ConvertToSI(su.heatflow) + Case "Exchanger Efficiency" + ExchangerEfficiency = propval + End Select + + Return True + + End Function + + Public Overrides Function GetPropertyUnit(ByVal prop As String, Optional ByVal su As Interfaces.IUnitsOfMeasure = Nothing) As String + + If su Is Nothing Then su = New SystemsOfUnits.SI + + Select Case prop + Case "Pressure Drop" + Return su.deltaP + Case "Outlet Temperature" + Return su.temperature + Case "Overall UA" + Return "W/K" + Case "Reference Fan Speed" + Return "rpm" + Case "Reference Air Flow" + Return su.volumetricFlow + Case "Actual Fan Speed" + Return "rpm" + Case "Actual Air Flow" + Return su.volumetricFlow + Case "Air Inlet Temperature" + Return su.temperature + Case "Air Pressure" + Return su.pressure + Case "Air Outlet Temperature" + Return su.temperature + Case "Electrical Power Conversion Factor" + Return "" + Case "Heat Load" + Return su.heatflow + Case "Electrical Power Load" + Return su.heatflow + Case "Tube Internal Diameter" + Return su.diameter + Case "Tube External Diameter" + Return su.diameter + Case "Tube Length" + Return su.distance + Case "Tube Pitch" + Return su.thickness + Case "Tube Fouling" + Return su.foulingfactor + Case "Tube Passes" + Return "" + Case "Tube Number" + Return "" + Case "Tube Roughness" + Return su.distance + Case "Tube Thermal Conductivity" + Return su.thermalConductivity + Case "Max Heat Exchange" + Return su.heatflow + Case "Exchanger Efficiency" + Return "%" + Case Else + Return "" + End Select + + End Function + + Public Overrides Function GetReport(su As IUnitsOfMeasure, ci As Globalization.CultureInfo, numberformat As String) As String + + Dim str As New Text.StringBuilder + + Dim istr, ostr As MaterialStream + istr = Me.GetInletMaterialStream(0) + ostr = Me.GetOutletMaterialStream(0) + + istr.PropertyPackage.CurrentMaterialStream = istr + + str.AppendLine("Air Cooler: " & Me.GraphicObject.Tag) + str.AppendLine("Property Package: " & Me.PropertyPackage.ComponentName) + str.AppendLine() + str.AppendLine("Inlet conditions") + str.AppendLine() + str.AppendLine(" Temperature: " & SystemsOfUnits.Converter.ConvertFromSI(su.temperature, istr.Phases(0).Properties.temperature.GetValueOrDefault).ToString(numberformat, ci) & " " & su.temperature) + str.AppendLine(" Pressure: " & SystemsOfUnits.Converter.ConvertFromSI(su.pressure, istr.Phases(0).Properties.pressure.GetValueOrDefault).ToString(numberformat, ci) & " " & su.pressure) + str.AppendLine(" Mass flow: " & SystemsOfUnits.Converter.ConvertFromSI(su.massflow, istr.Phases(0).Properties.massflow.GetValueOrDefault).ToString(numberformat, ci) & " " & su.massflow) + str.AppendLine(" Volumetric flow: " & SystemsOfUnits.Converter.ConvertFromSI(su.volumetricFlow, istr.Phases(0).Properties.volumetric_flow.GetValueOrDefault).ToString(numberformat, ci) & " " & su.volumetricFlow) + str.AppendLine(" Vapor fraction: " & istr.Phases(2).Properties.molarfraction.GetValueOrDefault.ToString(numberformat, ci)) + str.AppendLine(" Compounds: " & istr.PropertyPackage.RET_VNAMES.ToArrayString) + str.AppendLine(" Molar composition: " & istr.PropertyPackage.RET_VMOL(PropertyPackages.Phase.Mixture).ToArrayString()) + str.AppendLine() + str.AppendLine("Results") + str.AppendLine() + str.AppendLine(" Pressure drop: " & SystemsOfUnits.Converter.ConvertFromSI(su.pressure, Me.PressureDrop).ToString(numberformat, ci) & " " & su.deltaP) + str.AppendLine(" Fluid outlet temperature: " & SystemsOfUnits.Converter.ConvertFromSI(su.temperature, Me.OutletTemperature).ToString(numberformat, ci) & " " & su.temperature) + str.AppendLine(" Air outlet temperature: " & SystemsOfUnits.Converter.ConvertFromSI(su.temperature, Me.AirOutletTemperature).ToString(numberformat, ci) & " " & su.temperature) + str.AppendLine(" Heat load: " & SystemsOfUnits.Converter.ConvertFromSI(su.heatflow, Me.HeatLoad).ToString(numberformat, ci) & " " & su.heatflow) + + Return str.ToString + + End Function + + Public Overrides Function GetStructuredReport() As List(Of Tuple(Of ReportItemType, String())) + + Dim su As IUnitsOfMeasure = GetFlowsheet().FlowsheetOptions.SelectedUnitSystem + Dim nf = GetFlowsheet().FlowsheetOptions.NumberFormat + + Dim list As New List(Of Tuple(Of ReportItemType, String())) + + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.Label, New String() {"Results Report for Air Cooler '" & Me.GraphicObject.Tag + "'"})) + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.SingleColumn, New String() {"Calculated successfully on " & LastUpdated.ToString})) + + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.Label, New String() {"Calculation Parameters"})) + + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.DoubleColumn, + New String() {"Calculation Mode", + CalculationMode.ToString})) + + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.Label, New String() {"Results"})) + + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.TripleColumn, + New String() {"Pressure Drop", + Me.PressureDrop.ConvertFromSI(su.deltaP).ToString(nf), + su.deltaP})) + + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.TripleColumn, + New String() {"Fluid Outlet Temperature", + Me.OutletTemperature.ConvertFromSI(su.temperature).ToString(nf), + su.temperature})) + + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.TripleColumn, + New String() {"Air Outlet Temperature", + Me.AirOutletTemperature.ConvertFromSI(su.temperature).ToString(nf), + su.temperature})) + + list.Add(New Tuple(Of ReportItemType, String())(ReportItemType.TripleColumn, + New String() {"Heat Load", + Me.HeatLoad.ConvertFromSI(su.heatflow).ToString(nf), + su.heatflow})) + + Return list + + End Function + + +End Class + +End Namespace diff --git a/DWSIM.UnitOperations/UnitOperations/CleanEnergy/CleanEnergyUnitOpBase.vb b/DWSIM.UnitOperations/UnitOperations/CleanEnergy/CleanEnergyUnitOpBase.vb new file mode 100644 index 000000000..77f515847 --- /dev/null +++ b/DWSIM.UnitOperations/UnitOperations/CleanEnergy/CleanEnergyUnitOpBase.vb @@ -0,0 +1,77 @@ +Imports DWSIM.Interfaces +Imports DWSIM.Interfaces.Enums + +Namespace UnitOperations + + Public MustInherit Class CleanEnergyUnitOpBase + + Inherits DWSIM.UnitOperations.UnitOperations.UnitOpBaseClass + + Implements DWSIM.Interfaces.IExternalUnitOperation + + Public Overrides ReadOnly Property IsSource As Boolean + Get + Return True + End Get + End Property + + Private _name = "" + Private _desc = "" + + Public Overrides Function GetDisplayName() As String + Return _name + End Function + + Public Overrides Function GetDisplayDescription() As String + Return _desc + End Function + + Public Overrides Property ComponentName As String = _name + + Public Overrides Property ComponentDescription As String = _desc + + Private ReadOnly Property IExternalUnitOperation_Name As String = _name Implements IExternalUnitOperation.Name + + Public MustOverride Property Prefix As String Implements IExternalUnitOperation.Prefix + + Public ReadOnly Property Description As String = _desc Implements IExternalUnitOperation.Description + + Public Overrides Property ObjectClass As SimulationObjectClass = SimulationObjectClass.CleanPowerSources + + Public Overrides ReadOnly Property MobileCompatible As Boolean = False + + Public MustOverride Function ReturnInstance(typename As String) As Object Implements IExternalUnitOperation.ReturnInstance + + Public MustOverride Sub Draw(g As Object) Implements IExternalUnitOperation.Draw + + Public MustOverride Sub CreateConnectors() Implements IExternalUnitOperation.CreateConnectors + + Public Sub New(ByVal Name As String, ByVal Description As String) + + MyBase.CreateNew() + Me.ComponentName = Name + Me.ComponentDescription = Description + + End Sub + + Public Sub New() + + MyBase.New() + + End Sub + + Public Overrides Sub PerformPostCalcValidation() + + End Sub + + Public MustOverride Sub PopulateEditorPanel(ctner As Object) Implements IExternalUnitOperation.PopulateEditorPanel + + Private Sub CallSolverIfNeeded() + If GlobalSettings.Settings.CallSolverOnEditorPropertyChanged Then + FlowSheet.RequestCalculation() + End If + End Sub + + End Class + +End Namespace diff --git a/DWSIM.UnitOperations/UnitOperations/Electrolyzers/PEMElectrolyzerBase.vb b/DWSIM.UnitOperations/UnitOperations/Electrolyzers/PEMElectrolyzerBase.vb new file mode 100644 index 000000000..eb4610325 --- /dev/null +++ b/DWSIM.UnitOperations/UnitOperations/Electrolyzers/PEMElectrolyzerBase.vb @@ -0,0 +1,79 @@ + +Imports DWSIM.Interfaces.Enums + +Namespace UnitOperations + + Public MustInherit Class PEMElectrolyzerUnitOpBase + + Inherits DWSIM.UnitOperations.UnitOperations.UnitOpBaseClass + + Implements DWSIM.Interfaces.IExternalUnitOperation + + Public Overrides ReadOnly Property IsSource As Boolean + Get + Return True + End Get + End Property + + Private _name = "" + Private _desc = "" + + Public Overrides Function GetDisplayName() As String + Return _name + End Function + + Public Overrides Function GetDisplayDescription() As String + Return _desc + End Function + + Public Overrides Property ComponentName As String = _name + + Public Overrides Property ComponentDescription As String = _desc + + Private ReadOnly Property IExternalUnitOperation_Name As String = _name Implements IExternalUnitOperation.Name + + Public MustOverride Property Prefix As String Implements IExternalUnitOperation.Prefix + + Public ReadOnly Property Description As String = _desc Implements IExternalUnitOperation.Description + + Public Overrides Property ObjectClass As SimulationObjectClass = SimulationObjectClass.CleanPowerSources + + Public Overrides ReadOnly Property MobileCompatible As Boolean = False + + Public MustOverride Function ReturnInstance(typename As String) As Object Implements IExternalUnitOperation.ReturnInstance + + Public MustOverride Sub Draw(g As Object) Implements IExternalUnitOperation.Draw + + Public MustOverride Sub CreateConnectors() Implements IExternalUnitOperation.CreateConnectors + + Public Sub New(ByVal Name As String, ByVal Description As String) + + MyBase.CreateNew() + Me.ComponentName = Name + Me.ComponentDescription = Description + + End Sub + + Public Sub New() + + MyBase.New() + + End Sub + + Public Overrides Sub PerformPostCalcValidation() + + End Sub + + Public MustOverride Sub PopulateEditorPanel(ctner As Object) Implements IExternalUnitOperation.PopulateEditorPanel + + Private Sub CallSolverIfNeeded() + If GlobalSettings.Settings.CallSolverOnEditorPropertyChanged Then + FlowSheet.RequestCalculation() + End If + End Sub + + End Class + + +End Namespace + diff --git a/DWSIM/Forms/FlowsheetComponents/FlowsheetSurfaceSkiaSharp/FlowsheetSurface_SkiaSharp.en.resx b/DWSIM/Forms/FlowsheetComponents/FlowsheetSurfaceSkiaSharp/FlowsheetSurface_SkiaSharp.en.resx index 53beaa756..b8445bc81 100644 --- a/DWSIM/Forms/FlowsheetComponents/FlowsheetSurfaceSkiaSharp/FlowsheetSurface_SkiaSharp.en.resx +++ b/DWSIM/Forms/FlowsheetComponents/FlowsheetSurfaceSkiaSharp/FlowsheetSurface_SkiaSharp.en.resx @@ -286,16 +286,16 @@ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIPSURBVEhL7ZE/aBNRHMcziLuLgULb5OKke72zB4oIgkun - rHYSUYRMTVAsgjg4OKjNnYOLhLo4WFARQpAzIW1Ken/acJfcy70DCx21pjmXYODne+XOyOWdMbbd+oEv - 78G73+f37v1ixxwaqnteVB2hpGHe1Rz+me7yV0zz7En/+P8ZiAUIp45mdsn6Rnf4641t8ZRf8m/8TcwM - mulrbaFK9jnDmT3na4YZWxwOaUKfz9cNODJxQB2JnIqFDG1Sx0KPKWFllJgFHRhplFYxX6hsXfZY4ofv - 78GZrNKfyG5ZCfnH/JTcGW/IXL4rxu/b6PTNCqSyZZiTl+Fl+QY8eLcIqYUKxO/UYPLRF0hKXUjKHiSX - Ov2E5FUTUjeXynvRQ6bi6fxeab+IRtqDycc7MHHXhPjttd/ihOyLQ6FNyDr8ZENiViSaMcUB5A058lGG - NpnKd3phQVRGilnQgZGiNLltgXvR9f4UBrm6/A2efmz+LK4a1kYTzzca2+MNedN2RaWuoRWlBs+LFtx6 - uwMXXn2Ha6+/wlLRhA/ldajqJhgtBwwbg2Ghvma1q2SfMywneshUTIpK+0UkOhGsbVrwaV0n0tpA7J+H - Q5voyB1+srA4MsGNQ4kUBzQQ4vQWztAmqo17LAkrI8Us6MAM20kbLVxQbbR7aGIWiqKcIH91iUifqHYb - kfWz3mxf9I+POSix2C/pbepL8lj/ngAAAABJRU5ErkJggg== + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIPSURBVEhL7ZE/iNNQHMc7iLuLhYNq/zjpfJhoQBFBcHHq + 6k3HoQidbFEUQRwcHPRs4uAi5VwcFPQcSjliS72ebZrUkrTvNS/gwY169RqXYuHne0diJX2xVs/tPvDl + PXj5fX4v7xfZZ8/QnJOSZoulJhGcpi080h3hvGkeP+gd/z1jsQjB1PH8Nl1f6LZwub0pHfJK/ozfiblB + 86NmT6zSfc6wT5/wNJPMLA6GNmHP5+nG/DexTx1LSY2IGdbkAxGHXAkv08Q82MBoo7RGhEKldc7lie++ + uQnHsupoLvvRiivfFo4oX2cbcjI/kKK3ED68VIFUtgyXlBV4Wl6EO69vQ+p6BaLXahC79wkS8gASiguJ + 5f4oLrvVuDzIpfJu+JCZ+Gh+p7RbxCLvQOz+FszdMCF6df2nOK544kBYE7pOPtmEmBeZZUaxD33DJP0o + w5rE8v1hUBCWqWIebGC0KE1vW0g8Gbi/Cv1cWPkCD992vhffG1ajQxba7c3ZhtxCjqTWNfxKrcFy0YIr + L7fg1LM+XHz+GR4XTVgtb0BVN8Ho2mAgAoaJRk2rV6X7nGHZ4UNmYlpU2i2i0algvWXB2oZOpbWx2DsP + hjXRsTP5ZEFxaPwbBxIq9mljnNS7JMOaNBAZ8iS8TBXzYAMzkJ02uqTQQHh7z8Q8VFU9QP/qLJU+0FAP + 0/Wd3umd8Y73+VcikR+h3eo7YxH4agAAAABJRU5ErkJggg== @@ -307,32 +307,32 @@ iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAXESURBVHhe7ZxLTxtXGIbdTSVQty3EmHUSrpG66Q7irqp2 - 2QA2++4bIQQ4Ev+gAjWb7hrZm0YKarmFi1ElFll1AcbwA5pWChgCRJFggTQ9J3yE0fB+4xnPhR7P90jP - BmZkzvNKJhlCUoIgCIIgCIIgCIIgCKnUw9LRWLZ0cDxYOpj77pd/W+nDQlwMFA/Ps6UjK1s61G7ICDFz - Gf/jANZg6XBz4Pn+Z/RpIWqcA8gIMYMGkBFihBtARogJtwG0MkLE1BtAKyNEiJcBtDJCRHgdQBvLCIPF - 028Hiif/ZIvvLOypD098eOzd0luPXsX1Io4OjPYva9lfT1/j8Fei0JwoNCcIzQljI1FoThibcT+6EXB0 - uyg0JwrNCUJzwthIFJoTheasqbejWjRvRzi6XRSaE4XmBKE5YWwkCs2JQnPWPhjJCDi6XRSaE4XmBKE5 - YWwkCs2JQnNeDhDJCDi6XRSaE4XmBKE5YWwkCs2JQnNeD3Dp/sZXv/3dQgmDgaPbRaE5UWhOEJoTxkai - 0JwoNKdzAGWxNksJg4Gj20WhOVFoThCaE8ZGotCcKDTnzQEGnr05SVnWJ5SxcXB0uyg0JwrNCUJzwthI - FJoThea8OUD22Zu3MsANUWhOFJrz5gAPS7UZShgMHN0uCs2JQnOC0JwwNhKF5kShOZ0DyDdhRhSaE4Xm - vI4vfwx1FYXmRKE5I4qvwdHtotCcKDQnCM0JYyNRaE4UmlMeRXgUheZEobGRxdfg6HZRaE4UmhOE5oSx - kSg0J47tNPKfCTyY3LMM8b2y2j+xN9M3uddDX75v/AwQyw9kHIc0wt7J6sWDid2nXdPVT+kYnvE6QGw/ - kkQHNMgNvyN4GSDWnweDQxnm7s90FE/UGyDW+Jp+dQiT7VFvR/3ju910nLq4DRB7fA06lGn2Tez+RMep - CzfArcTX9E/uqkMY7vjODh2nLmiAW4uvgQcyzso7Ok5dnAPcanxN/5Q6QBNIx6mLin9mG+D2f0GjT33x - zSAdpy5fF48eZ5/VatniwYv/xW/HoMOYKB3HPNBhTJSOYx7oMCZKxzEPdBgTpeOYR2duwQrk0O/v07mF - amZkfiYztNDwU8orese3M30TO8sospt0u3nAqI17oXza9ei576eUdroLO529U1XLj3SreTgChmImt7AR - dAQU2U26zTw6c4sqWgSOLPp6SukERXaTbjMPGC8cLzpH/vD8lNIJiuwm3WYeIFxoqrciz08pnaDIbtJt - 5pH5ECoa07lFz08pnfQUqpYf6TbzyOSWVKyIHFny/JTSCYrsJt1mHpmh+dcwXkjSy/gGRXaTbjOPjuGl - b6IcgV7GNyiym3RbcugYXc6ob7LLmbwK7SJd7hsU2U26LVmkh1c6M/llFZqXLvWN+tuw5Ue6LXmg6Hbp - MhYVb6y7sHXuDBrYia2zrkLlMb1M84Ki26XLWFSoIxgwFLcO6WWaFxTdLl3G0lXYmcPxgnt/avsFvUzz - 0pF/ablJl7F8Of1Xq4pVdsYLwc2u6ert/WuHuEDR7dJlrkQwQjLia1B0u3RZXfQI6u2orLQCmpz4GhTd - Ll3miRBGSFZ8TUd+RYXmpcs883GEJyqoH5MYX4Oi26XLfHE5QkWNUFFxPVioJDO+BkW3S5f5xvMISY6v - QdHt0mUNoUe4q0a4r0Ij1eeSHV+Tzq9abtJlDcONIPEJFN0uXRaIzI+vWu492Z69O1k51t6bqszoj9Gn - kw2KbpcuC4kQ/nsYU0nnV8ba8qvnKLIf24aXz9K51eZ/Shk2bfm1o3R+TUUMbtvwy+Z/Shk26dzaXHpU - BQzF1eZ/Shk2d36Yb23PrZRxUB/m1jY/f/Sn/OmlEQKPIPGDcznCuhphXUX1ocQPj6sR7qiwXvxC4oeP - 1xEkfoTUG0Hix8DlCGU1QllFv1bix0jm+1ct7aPl2baR1WNte359Rn+MPi3ER4Kf1QiCIAiCIAiCkHBS - qf8AcF7XQTki50QAAAAASUVORK5CYII= + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAXJSURBVHhe7ZxNTxtXFIbdTSVQt6XEmHUSIBCpm64ocVdV + uywfNvvuGyFqcCT+QQVqNl01lb1ppFAlfJQPo0ossqpEMYYf0LRqiSFAFAkWSNN740MYDe8Zz9gzQ6/n + PNKzgRmZ+7ySSYaQhCAIgiAIgiAIgiAIQiJxr3g4kS7uHw0VX85/+cPf7fRhISoGCwdn6eKhlS4eaDdk + hIipxX83gDVUPNj89PH+B/RpIWycA8gIEYMGkBEihBtARogItwG0MkLI1BtAKyOEiJcBtDJCSHgdQBvJ + CEOFky8GC8d/pQuvLeyJD499eOTd4iuPXsT1Io4ODPcva+kfT17g8Bei0JwoNCcIzQljI1FoThibcT+8 + EXB0uyg0JwrNCUJzwthIFJoTheasqrejajhvRzi6XRSaE4XmBKE5YWwkCs2JQnNW3xrKCDi6XRSaE4Xm + BKE5YWwkCs2JQnPWBghlBBzdLgrNiUJzgtCcMDYSheZEoTkvB6i5v/HJz3+2UcLmwNHtotCcKDQnCM0J + YyNRaE4UmtM5gLJQnaOEzYGj20WhOVFoThCaE8ZGotCcKDTn1QEGf/rnOGFZ71HGxsHR7aLQnCg0JwjN + CWMjUWhOFJrz6gDpR/++kgGuiEJzotCcVwe4V6zOUsLmwNHtotCcKDQnCM0JYyNRaE4UmtM5gHwTZkSh + OVFozsv48sdQV1FoThSaM6T4GhzdLgrNiUJzgtCcMDYSheZEoTnlUYRHUWhOFBobWnwNjm4XheZEoTlB + aE4YG4lCc+LYTkP/mcDdqT3LEN8oKwO5vdn+qb0++vJ942eASH4g4zikEfZNVc7v5nYf9sxU3qdjeMbr + AJH9SBId0CA3/I7gZYBIfx4MDmWYu9/TUTxRb4BI42sG1CFMtle9HQ1M7vbSceriNkDk8TXoUKbZn9v9 + jo5TF26Aa4mvGZjaVYcw3MmdHTpOXdAA1xZfAw9knNuv6Th1cQ5wrfE1A9PqAC0gHacuKv6pbYDr/wWN + fvXFt4J0nLp8Vji8n35UraYLL5/8L347Bh3GROk45oEOY6J0HPNAhzFROo55oMOYKB3HPLozC1ZTDv/y + JplZqKTGns2mRhYafkp5wZ3J7VR/bmcZRXaTbjcPGLVxz5UPe4Yf+35Kaac3v9N9Z7pi+ZFuNQ9HwEBM + ZRY2mh0BRXaTbjOP7syiihaCY4u+nlI6QZHdpNvMA8YLxvPusaeen1I6QZHdpNvMA4QLTPVW5PkppRMU + 2U26zTxSb0OFYzKz6PkppZO+fMXyI91mHqnMkooVkmNLnp9SOkGR3aTbzCM18vQFjBeQ9DK+QZHdpNvM + o2t06fMwR6CX8Q2K7CbdFh+6xpdT6pvsciqrQrtIl/sGRXaTbosXydGV7lR2WYXmpUt9o/42bPmRbosf + KLpduoxFxZvozW+dOYM27bdbpz358n16mdYFRbdLl7H05rYOYcBA/OOAXqZ1QdHt0mUsPfmdeRyveW9P + bz+hl2ldurK/Wm7SZSwfz/zermKVnPECcLNnpnJ9/9ohKlB0u3SZKyGMEI/4GhTdLl1WFz2CejsqKa0m + jU98DYpuly7zRAAjxCu+piu7okLz0mWeeTfCAxXUj3GMr0HR7dJlvqiNUFYjlFVcD+bL8YyvQdHt0mW+ + 8TxCnONrUHS7dFlD6BFuqhFuq9BI9bl4x9cks6uWm3RZw3AjSHwCRbdLlzVF6pvnbbcebM/dzJWPtLem + y7P6Y/TpeIOi26XLAiKA/x7GVJLZlYmO7OoZiuzHjpGl02RmtfWfUgZNR3btMJldUxGbt2N0ufWfUgZN + MrM2nxxXAQNxtfWfUgbNja+ftXdmVko4qA8za5sfDv8mf3pphKZHkPjNUxthXY2wrqL6UOIHx8UIN1RY + L3ZI/ODxOoLED5F6I0j8CKiNUFIjlFT0SyV+hKS+et7WOV6a+2h05UjbmV2f1R+jTwvREeNnNYIgCIIg + CIIgxJxE4j8QV9ch5FNr6wAAAABJRU5ErkJggg== diff --git a/DWSIM/Forms/FlowsheetComponents/FlowsheetSurfaceSkiaSharp/FlowsheetSurface_SkiaSharp.resx b/DWSIM/Forms/FlowsheetComponents/FlowsheetSurfaceSkiaSharp/FlowsheetSurface_SkiaSharp.resx index 6157e680c..84c073d61 100644 --- a/DWSIM/Forms/FlowsheetComponents/FlowsheetSurfaceSkiaSharp/FlowsheetSurface_SkiaSharp.resx +++ b/DWSIM/Forms/FlowsheetComponents/FlowsheetSurfaceSkiaSharp/FlowsheetSurface_SkiaSharp.resx @@ -130,9 +130,6 @@ Conectar a... - - SplitContainerHorizontal - 1 @@ -222,9 +219,6 @@ 338, 22 - - 120, 24 - 100% @@ -261,8 +255,8 @@ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Live Flow + + Inserir Figura 33, 290 @@ -288,6 +282,9 @@ 23, 22 + + False + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -300,9 +297,6 @@ 317 - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ToolStripSeparator14 @@ -381,8 +375,8 @@ 23, 22 - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ToolStripMenuItem6 Inserir Caixa de Texto @@ -462,6 +456,9 @@ True + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + ToolStripMenuItem1 @@ -510,6 +507,9 @@ 40, 27 + + ToolStripContainer1 + HorizontalmenteToolStripMenuItem @@ -552,6 +552,9 @@ Dock Top + + designSurfacePrintDocument + DesconectarDeToolStripMenuItem @@ -567,9 +570,6 @@ tsbControlPanelMode - - 96 - ToolStripSeparator5 @@ -609,6 +609,9 @@ 196, 22 + + 23, 22 + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -624,9 +627,6 @@ False - - SplitToolStripMenuItem - UpgradeDistillationColumnToProToolStripMenuItem @@ -663,6 +663,9 @@ tssepPro2 + + Live Flow + ToolStripButton3 @@ -681,15 +684,15 @@ 116, 22 + + ToolStripLabel1 + Magenta False - - 197, 224 - Magenta @@ -711,8 +714,8 @@ 23, 22 - - Tamanho do Texto + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 0 @@ -729,6 +732,9 @@ ToolStripButton17 + + System.Windows.Forms.PrintPreviewDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -744,8 +750,8 @@ tsbAlignVertical - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -762,9 +768,6 @@ System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - DockTopToolStripMenuItem - 96, 96 @@ -780,6 +783,9 @@ Clonar + + 0, 0, 0, 0 + Mostrar Grid de Encaixe @@ -804,9 +810,6 @@ Flat - - 3, 0 - Desconectar de... @@ -837,8 +840,8 @@ 6, 25 - - ToolStripMenuItem6 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 23, 22 @@ -891,8 +894,8 @@ System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - SplitAndInsertValveTSMI + + 2 Document @@ -900,12 +903,12 @@ 6, 25 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 6, 27 + 3 @@ -954,6 +957,9 @@ System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ToolStripMenuItem13 + Segoe UI, 9pt @@ -990,9 +996,6 @@ False - - Dock Right Auto-Hide - Dock Bottom @@ -1104,6 +1107,9 @@ System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Misturar Correntes + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m @@ -1119,9 +1125,6 @@ srDnTkDWX/RpuzlDyY7pAAAAAElFTkSuQmCC - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 24, 251 @@ -1167,15 +1170,15 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - LayoutAutomaticoToolStripMenuItem - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 tbFontSize + + tsmiLiveFlow + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1233,9 +1236,6 @@ Configurar Página - - 2 - tsbPrint @@ -1287,6 +1287,9 @@ Right + + 1 + False @@ -1326,8 +1329,8 @@ 998, 417 - - 6, 25 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ToolStripButton19 @@ -1380,12 +1383,12 @@ Ativar Modo de Multiseleção - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + False + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1440,11 +1443,8 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3 - - - 0, 0, 0, 0 + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 932, 24 @@ -1476,8 +1476,8 @@ Alinhar centros - - System.Windows.Forms.PrintPreviewDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + SplitToolStripMenuItem ToolStripContainer1 @@ -1485,11 +1485,8 @@ 0 - - 1 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ToolStripSeparator18 Fluxograma @@ -1503,6 +1500,9 @@ Alinhar direitas + + Fill + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1515,8 +1515,8 @@ 196, 22 - - False + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Fill @@ -1539,6 +1539,9 @@ Magenta + + Dividir Corrente e Inserir Reciclo + 183, 24 @@ -1617,9 +1620,6 @@ 121, 23 - - System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1671,6 +1671,9 @@ System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.ToolStripTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 338, 22 @@ -1719,8 +1722,8 @@ Magenta - - tsbAlignMiddles + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Heatmap Layers @@ -1803,12 +1806,6 @@ 140, 27 - - ToolStripSeparator18 - - - Copiar como Imagem (300%) - 338, 22 @@ -1830,8 +1827,8 @@ Fill - - Inserir Figura + + Tamanho do Texto 3 @@ -1851,14 +1848,14 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ToolStripLabel1 + + Dock Right Auto-Hide Magenta - - Dividir Corrente e Inserir Reciclo + + 120, 24 SplitContainerVertical.Panel1 @@ -1905,6 +1902,9 @@ System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + tsbAlignMiddles + 0, 0 @@ -2001,8 +2001,11 @@ DepurarObjetoToolStripMenuItem - - Fill + + False + + + SplitAndInsertValveTSMI tsbAlignCenters @@ -2010,7 +2013,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vQAADr0BR/uQrQAAAgNJREFUOE+lkutLk2EYxvePhJaHShFBUTEPiCieQOmDiEZgrEbpYGiCQxkqA80I + vAAADrwBlbxySQAAAgNJREFUOE+lkutLk2EYxvePhJaHShFBUTEPiCieQOmDiEZgrEbpYGiCQxkqA80I RUkUEZ0YRMS+DDI70MkTmzJnDc8iU8QT2mAEItnle90wHwTDyBduXnie5/rd133Q4ZKfAJqHFs9E08A8 zD1emDpmYXjqRlnTFIrMk8iuGkNaxWekGEaQrHecBfw+/vPXODw6hj9whN2fh/Bt/8LSRgA3cxr/DeBZ 9kvmTNMoHGNbIrYN+3Aj23IxgJkpds0doP3VstgmsNexhutZ9QrAms8T0zYzU5xXM46kcjsmvfvoeL2i @@ -2140,17 +2143,14 @@ 998, 417 - - None + + ToolStripMenuItem12 System.Windows.Forms.ToolStripLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + DockTopToolStripMenuItem System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -2209,11 +2209,11 @@ DockTopAutoHideToolStripMenuItem - - 23, 22 + + LayoutAutomaticoToolStripMenuItem - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + None 196, 22 @@ -2230,11 +2230,11 @@ System.Windows.Forms.ToolStripTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ToolStripContainer1 + + SplitContainerHorizontal - - designSurfacePrintDocument + + 96 0 @@ -2251,8 +2251,8 @@ 335, 6 - - ToolStripMenuItem12 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ToolStripButton20 @@ -2278,14 +2278,14 @@ System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 6, 27 + + 3 Magenta - - tsmiLiveFlow + + System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 False @@ -2305,8 +2305,8 @@ 335, 6 - - Misturar Correntes + + Copiar como Imagem (300%) 338, 22 @@ -2314,14 +2314,14 @@ False - - ToolStripMenuItem13 + + 6, 25 0, 0 - - System.Windows.Forms.ToolStripTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 197, 224 tsbDisplayGrid @@ -2332,8 +2332,8 @@ Manter aspecto - - False + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ToolStripSeparator12 @@ -2362,8 +2362,8 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - False + + 3, 0 23, 22 diff --git a/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.Designer.vb b/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.Designer.vb index fc5d5dadc..3fef745ab 100644 --- a/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.Designer.vb +++ b/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.Designer.vb @@ -42,7 +42,8 @@ Partial Class SimulationObjectsPanel Me.TabPage8 = New System.Windows.Forms.TabPage() Me.PanelSolids = New System.Windows.Forms.FlowLayoutPanel() Me.TabPage9 = New System.Windows.Forms.TabPage() - Me.PanelCO = New System.Windows.Forms.FlowLayoutPanel() + Me.PanelCE = New System.Windows.Forms.FlowLayoutPanel() + Me.TabPage15 = New System.Windows.Forms.TabPage() Me.TabPage10 = New System.Windows.Forms.TabPage() Me.PanelUser = New System.Windows.Forms.FlowLayoutPanel() Me.TabPage11 = New System.Windows.Forms.TabPage() @@ -53,6 +54,7 @@ Partial Class SimulationObjectsPanel Me.PanelControllers = New System.Windows.Forms.FlowLayoutPanel() Me.TabPage12 = New System.Windows.Forms.TabPage() Me.PanelOther = New System.Windows.Forms.FlowLayoutPanel() + Me.PanelELEC = New System.Windows.Forms.FlowLayoutPanel() Me.TabControl1.SuspendLayout() Me.TabPage1.SuspendLayout() Me.TabPage2.SuspendLayout() @@ -63,6 +65,7 @@ Partial Class SimulationObjectsPanel Me.TabPage7.SuspendLayout() Me.TabPage8.SuspendLayout() Me.TabPage9.SuspendLayout() + Me.TabPage15.SuspendLayout() Me.TabPage10.SuspendLayout() Me.TabPage11.SuspendLayout() Me.TabPage13.SuspendLayout() @@ -87,6 +90,7 @@ Partial Class SimulationObjectsPanel Me.TabControl1.Controls.Add(Me.TabPage7) Me.TabControl1.Controls.Add(Me.TabPage8) Me.TabControl1.Controls.Add(Me.TabPage9) + Me.TabControl1.Controls.Add(Me.TabPage15) Me.TabControl1.Controls.Add(Me.TabPage10) Me.TabControl1.Controls.Add(Me.TabPage11) Me.TabControl1.Controls.Add(Me.TabPage13) @@ -189,14 +193,21 @@ Partial Class SimulationObjectsPanel 'TabPage9 ' resources.ApplyResources(Me.TabPage9, "TabPage9") - Me.TabPage9.Controls.Add(Me.PanelCO) + Me.TabPage9.Controls.Add(Me.PanelCE) Me.TabPage9.Name = "TabPage9" Me.TabPage9.UseVisualStyleBackColor = True ' - 'PanelCO + 'PanelCE ' - resources.ApplyResources(Me.PanelCO, "PanelCO") - Me.PanelCO.Name = "PanelCO" + resources.ApplyResources(Me.PanelCE, "PanelCE") + Me.PanelCE.Name = "PanelCE" + ' + 'TabPage15 + ' + resources.ApplyResources(Me.TabPage15, "TabPage15") + Me.TabPage15.Controls.Add(Me.PanelELEC) + Me.TabPage15.Name = "TabPage15" + Me.TabPage15.UseVisualStyleBackColor = True ' 'TabPage10 ' @@ -258,11 +269,15 @@ Partial Class SimulationObjectsPanel resources.ApplyResources(Me.PanelOther, "PanelOther") Me.PanelOther.Name = "PanelOther" ' + 'PanelELEC + ' + resources.ApplyResources(Me.PanelELEC, "PanelELEC") + Me.PanelELEC.Name = "PanelELEC" + ' 'SimulationObjectsPanel ' resources.ApplyResources(Me, "$this") Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi -Me.AutoScaleDimensions = New System.Drawing.SizeF(96, 96) Me.BackColor = System.Drawing.Color.White Me.Controls.Add(Me.TabControl1) Me.Name = "SimulationObjectsPanel" @@ -276,6 +291,7 @@ Me.AutoScaleDimensions = New System.Drawing.SizeF(96, 96) Me.TabPage7.ResumeLayout(False) Me.TabPage8.ResumeLayout(False) Me.TabPage9.ResumeLayout(False) + Me.TabPage15.ResumeLayout(False) Me.TabPage10.ResumeLayout(False) Me.TabPage11.ResumeLayout(False) Me.TabPage13.ResumeLayout(False) @@ -305,7 +321,7 @@ Me.AutoScaleDimensions = New System.Drawing.SizeF(96, 96) Friend WithEvents PanelReactors As FlowLayoutPanel Friend WithEvents PanelColumns As FlowLayoutPanel Friend WithEvents PanelSolids As FlowLayoutPanel - Friend WithEvents PanelCO As FlowLayoutPanel + Friend WithEvents PanelCE As FlowLayoutPanel Friend WithEvents PanelUser As FlowLayoutPanel Friend WithEvents PanelLogical As FlowLayoutPanel Friend WithEvents PanelOther As FlowLayoutPanel @@ -313,4 +329,6 @@ Me.AutoScaleDimensions = New System.Drawing.SizeF(96, 96) Friend WithEvents PanelIndicators As FlowLayoutPanel Friend WithEvents TabPage14 As TabPage Friend WithEvents PanelControllers As FlowLayoutPanel + Friend WithEvents TabPage15 As TabPage + Friend WithEvents PanelELEC As FlowLayoutPanel End Class diff --git a/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.en.resx b/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.en.resx index a0d9be412..c95c1571a 100644 --- a/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.en.resx +++ b/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.en.resx @@ -126,15 +126,12 @@ 7, 6, 7, 6 - 1944, 216 + 1952, 238 True - - 8, 40 - 7, 6, 7, 6 @@ -142,7 +139,7 @@ 7, 6, 7, 6 - 1958, 228 + 1966, 250 Streams @@ -154,14 +151,11 @@ 7, 6, 7, 6 - 1944, 176 + 1952, 238 True - - 8, 40 - 7, 6, 7, 6 @@ -169,7 +163,7 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 Pressure Changers @@ -178,19 +172,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Separators/Tanks @@ -199,19 +190,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Mixers/Splitters @@ -220,19 +208,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Exchangers @@ -241,19 +226,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Reactors @@ -262,19 +244,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Columns @@ -283,58 +262,79 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Solids - - 7, 6, 7, 6 + + True - - 1958, 188 + + Fill - - True + + 7, 6, 7, 6 - - 8, 40 + + 1966, 250 7, 6, 7, 6 - 1958, 188 + 1966, 250 + + + Clean Energy + + + True + + + Fill + + + 0, 0 + + + 7, 6, 7, 6 + + + 1966, 250 + + + 5 + + + 1966, 250 + + + Electrolyzers 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 User Models @@ -343,19 +343,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Logical Blocks @@ -364,19 +361,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Indicators @@ -385,19 +379,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Controllers @@ -406,19 +397,16 @@ 7, 6, 7, 6 - 1958, 188 + 1966, 250 True - - 8, 40 - 7, 6, 7, 6 - 1958, 188 + 1966, 250 Other @@ -429,9 +417,6 @@ 1974, 276 - - 13, 26 - 7, 6, 7, 6 diff --git a/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.resx b/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.resx index 8c3350555..880399b35 100644 --- a/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.resx +++ b/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.resx @@ -117,809 +117,869 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 6 + + Energia Limpa + + + + 1109, 137 - - True + + False - - Separadores/Tanques + + 4, 22 - - 9 + + 1109, 137 - - False + + 11 - - 4 + + 0 - - 4 + + 1109, 137 - - - 4, 22 + + 0 - - PanelMixers + + 0, 0 - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + False - - 903, 92 + + PanelPressure - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 - - 903, 92 + + 3 - - TabPage4 + + TabPage8 - - TabControl1 + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Indicadores + + 3 - - 0 + + True - + 0 - - CAPE-OPEN - - - 903, 92 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Fill - - 3 + + TabControl1 - - 13 + + 0 - - 903, 92 + + Eletrolisadores - - PanelReactors + + Fill - - 0, 0 + + TabControl1 TabControl1 - - 0, 0 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - TabPage11 + + 4, 22 - + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 14 + + + Fill + + 3 - - 903, 92 + + 0, 0 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + TabPage10 - + + Pressão + + + 4, 22 + + 0 - - TabPage13 + + PanelExchangers - - TabPage1 + + Fill - - 0 + + PanelSeparators - - 903, 92 + + TabControl1 - - 903, 92 + + Fill - - 3, 3, 3, 3 + + TabPage12 - - PanelPressure + + 4 - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - - Fill + + 3, 3 - - Outros + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + 0, 0 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 903, 92 + + TabPage12 - - 0 + + 3 - - True + + 3, 3 - - 903, 92 + + 3 - - TabPage9 + + 1109, 137 - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 12 - - False + + TabPage7 - - Fill + + TabPage10 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1117, 163 - - 903, 92 + + Outros - - True + + 11 - + True - - 0 + + Térmicos - - TabControl1 + + True - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + SimulationObjectsPanel - - TabPage5 + + PanelELEC - - 3, 3, 3, 3 + + 0 - - 0, 0 + + 0 - - 96, 96 + + PanelOther - - 903, 92 + + 7 - - 0, 0 + + 1109, 137 - + + TabControl1 + + False - - Fill + + 0 - - TabPage12 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 TabControl1 - - TabPage6 + + True - - TabPage6 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Fill + + 1109, 137 - - 897, 86 + + 3 - - False + + 4, 22 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 6 - - 8 + + 0, 0 - - 1 + + TabControl1 - + Fill - - TabControl1 + + 4 - - TabPage12 + + 10 - + False - - 10 + + False - - 0 + + TabPage9 - - 2 + + 4 - - TabPage1 + + 4, 22 - - False + + 1109, 137 - - 3 + + 10 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1109, 137 - - Misturadores/Divisores + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 0 - - PanelControllers + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - TabPage2 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 PanelStreams - - TabControl1 + + 5 - + + Usuário/CAPE-OPEN + + + 1109, 137 + + + 0 + + + 1103, 131 + + 4, 22 - - 12 + + 0, 0 + + + PanelCE + + + 5 4, 22 - - False + + TabPage8 - - Térmicos + + 8 - - True + + Microsoft Sans Serif, 8.25pt - - True + + 0 - + + TabPage9 + + + PanelControllers + + + 4 + + TabControl1 - - 897, 86 + + 3, 3, 3, 3 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1103, 131 - - SimulationObjectsPanel + + False - + + 5 + + + 1109, 137 + + Fill - + False - - TabPage7 - - + 3 - - TabControl1 + + 96, 96 - + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0 + + 1109, 137 - - 903, 92 + + 3 - - 5 + + PanelMixers - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + $this - - 903, 92 + + 1109, 137 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 - - 10 + + True - - 11 + + Sólidos - - Reatores + + 2 - - 4 + + 1109, 137 - + 4, 22 - - False + + TabPage13 - - Fill + + 2 - - True + + Misturadores/Divisores - - Fill + + 1 - + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 903, 92 + + Reatores - - 0 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 9 - - TabPage14 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3, 3 + + System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 4, 22 + + True - - TabControl1 + + 4 TabPage3 - - 3 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 2 - - 4, 22 + + 12 - - TabControl1 + + TabPage5 - - 3 + + 1117, 163 - - 0 + + 0, 0 - - False + + True - + TabControl1 - - TabPage4 + + 1 - - PanelCO + + 3 - - PanelLogical + + Separadores/Tanques - - 0 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 903, 92 + + TabPage11 - - Microsoft Sans Serif, 8.25pt + + 14 - - 8 + + TabPage5 - + + 4, 22 + + TabPage14 - - 13 + + False - - TabPage11 + + Colunas - - True + + 0, 0 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1109, 137 - - Controladores + + 0, 0 - - TabPage10 + + TabPage3 - - Fill + + False - - 0 + + TabPage4 - - 0, 0 + + 1109, 137 - - 4, 22 + + 1109, 137 - - 0, 0 + + True - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + TabPage2 - - 0, 0 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - TabPage5 + + TabPage2 - - TabControl1 + + 3 - + + False + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - + False - - 911, 118 + + 4 - - 4, 22 + + PanelReactors - + True - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1109, 137 - - PanelOther + + 0, 0 - - TabPage10 + + 0, 0 - - 4, 22 + + 3, 3, 3, 3 - + TabControl1 - - 903, 92 - - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1109, 137 - - TabControl1 + + True - - $this + + TabPage1 - - Sólidos + + 6 - - TabPage9 + + Fill - - System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 - - Colunas + + 6 - - 3, 3 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 903, 92 + + PanelIndicators - - 4, 22 + + 0, 0 - + 0 - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + PanelUser - - 3 + + 4, 22 - - 0 + + TabPage1 - - Pressão + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True + + TabPage4 - - 4 + + 7 - - PanelColumns + + TabPage9 - - 903, 92 + + Fill - - PanelIndicators + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Correntes + + 13 - - True + + TabPage6 - - 903, 92 + + Fill - - TabPage8 + + 4, 22 - + Fill - - 0 + + Fill - - 0, 0 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 903, 92 + + 0 - + + 1109, 137 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Fill + + 13 - - 2 + + 1109, 137 - - 4, 22 + + TabPage15 - - 2 + + 1109, 137 - - TabPage3 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 903, 92 + + Fill - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Fill - + 0, 0 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 0, 0 + + 0 4, 22 - - PanelSolids + + TabPage15 - + + 0, 0 + + + Lógicos + + + False + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 9 + + 1109, 137 - - 911, 118 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - PanelSeparators + + Indicadores - - 11 + + PanelCO 0, 0 - - 4 + + TabPage11 - - 0, 0 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True + + TabPage6 - - False + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + TabControl1 + + False - - 1 + + TabPage13 - - 903, 92 + + 1109, 137 - - 903, 92 + + False - + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3 + + 0, 0 - - Fill + + 0 - - PanelUser + + Controladores - - 7 + + 4, 22 - - System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 - - Fill + + 4, 22 - - 0, 0 + + 1109, 137 - - 6 + + TabControl1 - - Lógicos + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3 + + TabPage14 - - 3 + + PanelColumns - - 7 + + TabControl1 - + + TabControl1 + + 4 - - 5 + + 4, 22 - - 903, 92 + + System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + PanelSolids - - TabPage2 + + 1109, 137 - + True - - 5 - - - TabPage8 + + TabControl1 - + TabPage7 - - 4, 22 - - - TabPage13 - - - 4, 22 + + 8 - - PanelExchangers + + 5 - - 903, 92 + + 1109, 137 - - 0 + + PanelLogical - + TabControl1 - - False - - - Fill + + 1109, 137 - - Usuário + + True - - 903, 92 + + Fill - - 6 + + Correntes - - 12 + + 9 True diff --git a/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.vb b/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.vb index ef92026b8..9126bf9c5 100644 --- a/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.vb +++ b/DWSIM/Forms/FlowsheetComponents/SimulationObjectsPanel.vb @@ -88,7 +88,7 @@ Public Class SimulationObjectsPanel For Each item In litems Select Case DirectCast(item.Tag, Interfaces.Enums.SimulationObjectClass) Case SimulationObjectClass.CAPEOPEN - Me.PanelCO.Controls.Add(item) + Me.PanelUser.Controls.Add(item) Case SimulationObjectClass.Columns Me.PanelColumns.Controls.Add(item) Case SimulationObjectClass.Exchangers @@ -115,6 +115,10 @@ Public Class SimulationObjectsPanel Me.PanelIndicators.Controls.Add(item) Case SimulationObjectClass.Controllers Me.PanelControllers.Controls.Add(item) + Case SimulationObjectClass.CleanPowerSources + Me.PanelCE.Controls.Add(item) + Case SimulationObjectClass.Electrolyzers + Me.PanelELEC.Controls.Add(item) End Select Next