From 7b8e2551b97b4d18a3769ee3a9bc6409f27427d8 Mon Sep 17 00:00:00 2001
From: pravindalve
Date: Wed, 24 Jun 2020 13:59:35 +0530
Subject: issue with updating database while creating new file fixed
---
Container.py | 1 -
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6125 -> 6125 bytes
.../DockWidgetCompoundSeparator.cpython-37.pyc | Bin 3187 -> 3187 bytes
.../DockWidgetDistillationColumn.cpython-37.pyc | Bin 4204 -> 4204 bytes
.../__pycache__/DockWidgetFlash.cpython-37.pyc | Bin 2913 -> 2913 bytes
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 8757 -> 8757 bytes
.../__pycache__/DockWidgetMixer.cpython-37.pyc | Bin 2233 -> 2233 bytes
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 3382 -> 3382 bytes
.../__pycache__/DockWidgetSplitter.cpython-37.pyc | Bin 2764 -> 2764 bytes
Undo.dat | Bin 64582 -> 107976 bytes
mainApp.py | 2 +-
11 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/Container.py b/Container.py
index 26f6250..5469de2 100644
--- a/Container.py
+++ b/Container.py
@@ -190,7 +190,6 @@ class Container():
try:
DockWidget.show_result(NodeItem.get_dock_widget())
except AttributeError:
- print(NodeItem.name + ' does not have dockwidget')
pass
def flat_list(lst):
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index 80d0ae1..73e3283 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc
index e5023b1..a017f6c 100644
Binary files a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc
index 0584a29..9edcc3b 100644
Binary files a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc
index 7eaaef7..634882d 100644
Binary files a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index a99f092..ad1e8f3 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
index 52a0ca1..fa45bf4 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
index 85449f8..7e4a733 100644
Binary files a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc
index 19250d9..ea2d2ea 100644
Binary files a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc differ
diff --git a/Undo.dat b/Undo.dat
index 9adaab5..47f2cf8 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/mainApp.py b/mainApp.py
index e49d4e2..462887f 100644
--- a/mainApp.py
+++ b/mainApp.py
@@ -227,7 +227,7 @@ class MainApp(QMainWindow,ui):
'''
def new(self):
self.undo_redo_helper()
- self.comp.tableWidget.setRowCount(0)
+ self.comp = ComponentSelector(self)
self.textBrowser.append("[" + str(self.current_time()) + "] New flowsheet is created ... ")
dock_widget_lst.clear()
--
cgit
From 304347a14fb0a5d770717e08f10efaed84d51902 Mon Sep 17 00:00:00 2001
From: pravindalve
Date: Thu, 25 Jun 2020 12:51:06 +0530
Subject: Bug fixes for Splitter
---
.gitignore | 3 ++-
DockWidgets/DockWidgetSplitter.py | 14 +++++++-------
.../__pycache__/DockWidgetSplitter.cpython-37.pyc | Bin 2764 -> 2751 bytes
Graphics.py | 2 +-
Undo.dat | Bin 107976 -> 135899 bytes
UnitOperations.py | 19 +++++++++++--------
6 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/.gitignore b/.gitignore
index 7796682..f1134d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,4 +10,5 @@ Simulator/simulateEQN.mos
__pycache__/*
.idea/*
DockWidgets/__pycache__/*
-undo.dat
\ No newline at end of file
+undo.dat
+test.py
diff --git a/DockWidgets/DockWidgetSplitter.py b/DockWidgets/DockWidgetSplitter.py
index 262bd45..c1c0120 100644
--- a/DockWidgets/DockWidgetSplitter.py
+++ b/DockWidgets/DockWidgetSplitter.py
@@ -30,9 +30,9 @@ class DockWidgetSplitter(QDockWidget,ui_dialog):
try:
print("input_params_list ", self.input_dict)
- self.l1.setText(self.obj.variables['NOO']['name']+":")
- self.le1.setText(str(self.obj.variables['NOO']['value']))
- self.u1.setText(self.obj.variables['NOO']['unit'])
+ self.l1.setText(self.obj.variables['No']['name']+":")
+ self.le1.setText(str(self.obj.variables['No']['value']))
+ self.u1.setText(self.obj.variables['No']['unit'])
for i in self.obj.CalcType_modes:
self.cb2.addItem(str(i))
@@ -52,12 +52,12 @@ class DockWidgetSplitter(QDockWidget,ui_dialog):
print(e)
def fun(self):
- if self.cb2.currentText() == 'Mole Flow Specs':
+ if self.cb2.currentText() == 'Molar_Flow':
self.u3.setText('mol/s')
self.u4.setText('mol/s')
- elif self.cb2.currentText() == 'Mass Flow Specs':
- self.u3.setText('kg/s')
- self.u4.setText('kg/s')
+ elif self.cb2.currentText() == 'Mass_Flow':
+ self.u3.setText('g/s')
+ self.u4.setText('g/s')
else:
self.u3.setText('')
self.u4.setText('')
diff --git a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc
index ea2d2ea..045ca3d 100644
Binary files a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc differ
diff --git a/Graphics.py b/Graphics.py
index 0fa3306..fd02d39 100644
--- a/Graphics.py
+++ b/Graphics.py
@@ -472,7 +472,7 @@ class NodeItem(QtWidgets.QGraphicsItem):
if ok and text:
self.nop = int(text)
self.obj.no_of_outputs = self.nop
- self.obj.variables['NOO']['value'] = self.nop
+ self.obj.variables['No']['value'] = self.nop
self.dock_widget = None
lst.append(self)
diff --git a/Undo.dat b/Undo.dat
index 47f2cf8..09e1639 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 006c015..ea7c916 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -131,7 +131,7 @@ class UnitOperation():
for k in self.parameters:
self.OM_data_init += ', '
self.OM_data_init += k + ' = ' + ('"' + self.variables[k]['value'] + '"' if isinstance(self.variables[k]['value'], str)
- else str(self.variables[k]['value']))
+ else str(json.dumps(self.variables[k]['value']).replace('[', '{').replace(']', '}')))
self.OM_data_init += ');\n'
return self.OM_data_init
@@ -153,6 +153,8 @@ class UnitOperation():
self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out[' + str(strcount) + ']);\n')
strcount += 1
else:
+ print(self.input_stms)
+ print(self.output_stms)
self.OM_data_eqn += ('connect(' + self.name + '.Out,' + self.output_stms[0].name + '.In);\n')
if self.mode:
@@ -377,29 +379,30 @@ class Splitter(UnitOperation):
self.no_of_outputs = 3
# self.input_stms = None
- self.CalcType_modes = ['Split Ratios', 'Mole Flow Specs', 'Mass Flow Specs']
+ self.CalcType_modes = ['Split_Ratio', 'Molar_Flow', 'Mass_Flow']
- self.parameters = ['NOO', 'CalcType']#, 'SpecVal_s'
+ self.parameters = ['No', 'CalcType', 'SpecVal_s']
type(self).counter += 1
self.variables = {
- 'NOO' : {'name':'No. of Output', 'value':3, 'unit':''},
+ 'No' : {'name':'No. of Output', 'value':3, 'unit':''},
'CalcType' : {'name':'Calculation Type', 'value':self.CalcType_modes[0], 'unit':''},
'SpecVal_s' : {'name':'Specification Value', 'value':[50,50], 'unit':''}
}
specval = self.variables['SpecVal_s']['value'] # [50,50]
self.specval = json.dumps(specval).replace('[','{').replace(']','}')
+ print(self.specval)
def param_setter(self,params):
print("param_setter ", params)
- self.variables['NOO']['value'] = int(params[0])
+ self.variables['No']['value'] = int(params[0])
self.variables['CalcType']['value'] = params[1]
self.variables['SpecVal_s']['value'] = [float(params[2]), float(params[3])]
- if self.variables['CalcType']['value'] == 'Mole Flow Specs':
+ if self.variables['CalcType']['value'] == 'Molar_Flow':
self.variables['SpecVal_s']['unit'] = 'mol/s'
- elif self.variables['CalcType']['value'] == 'Mass Flow Specs':
- self.variables['SpecVal_s']['unit'] = 'kg/s'
+ elif self.variables['CalcType']['value'] == 'Mass_Flow':
+ self.variables['SpecVal_s']['unit'] = 'g/s'
print(self.variables)
class Mixer(UnitOperation):
--
cgit
From da8e13197c906ee90ba8672567b6670a291eb2c1 Mon Sep 17 00:00:00 2001
From: pravindalve
Date: Thu, 25 Jun 2020 14:56:00 +0530
Subject: Generalization for integer and float variables in
flowsheet_initialization
---
DockWidgets/DockWidgetMixer.py | 2 +-
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6125 -> 6125 bytes
.../__pycache__/DockWidgetMixer.cpython-37.pyc | Bin 2233 -> 2244 bytes
Simulator/Simulator/UnitOperations/Splitter.mo | 4 ++--
Undo.dat | Bin 135899 -> 183065 bytes
UnitOperations.py | 4 ++--
6 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/DockWidgets/DockWidgetMixer.py b/DockWidgets/DockWidgetMixer.py
index 28cbff0..01bfd48 100644
--- a/DockWidgets/DockWidgetMixer.py
+++ b/DockWidgets/DockWidgetMixer.py
@@ -52,7 +52,7 @@ class DockWidgetMixer(QDockWidget,ui_dialog):
try:
self.dict={}
print("param.input_dict ", self.input_dict)
- self.dict = [int(self.input_dict[0].text()),self.input_dict[1].currentText()]
+ self.dict = [int(self.input_dict[0].text()), '"' + self.input_dict[1].currentText() + '"']
print("param ", self.dict)
self.obj.param_setter(self.dict)
self.hide()
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index 73e3283..0733a15 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
index fa45bf4..6bfb174 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc differ
diff --git a/Simulator/Simulator/UnitOperations/Splitter.mo b/Simulator/Simulator/UnitOperations/Splitter.mo
index 8b03997..9871ea7 100644
--- a/Simulator/Simulator/UnitOperations/Splitter.mo
+++ b/Simulator/Simulator/UnitOperations/Splitter.mo
@@ -5,7 +5,7 @@ model Splitter
//Header Files and Parameters
extends Simulator.Files.Icons.Splitter;
parameter Simulator.Files.ChemsepDatabase.GeneralProperties C[Nc];
- parameter Integer Nc = 2 "Number of Components", No = 2 "Number of outlet streams";
+ parameter Integer Nc = 3 "Number of Components", No = 2 "Number of outlet streams";
parameter String CalcType "Split_Ratio, Mass_Flow or Molar_Flow";
//=============================================================================
@@ -21,7 +21,7 @@ model Splitter
Real Pout_s[No](each min = 0, each start = Pg) "Outlet Pressure";
Real Tout_s[No](each min = 0, each start = Tg) "Outlet Temperature";
- Real xout_sc[No, Nc](each min = 0, each max = 1, start = xguess) "Outlet Mixture Molar Fraction";
+ Real xout_sc[No, Nc](each min = 0, each max = 1) "Outlet Mixture Molar Fraction";
Real Fout_c[No](each min = 0, start = Fg) "Outlet Mixture Molar Flow";
Real Fmout_c[No](each min = 0, start = Fg) "Outlet Mixture Mass Flow";
diff --git a/Undo.dat b/Undo.dat
index 09e1639..2fa64d0 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index ea7c916..595a49d 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -130,8 +130,8 @@ class UnitOperation():
for k in self.parameters:
self.OM_data_init += ', '
- self.OM_data_init += k + ' = ' + ('"' + self.variables[k]['value'] + '"' if isinstance(self.variables[k]['value'], str)
- else str(json.dumps(self.variables[k]['value']).replace('[', '{').replace(']', '}')))
+ self.OM_data_init += k + ' = ' + (json.dumps(self.variables[k]['value']) if json.dumps(self.variables[k]['value']).replace('"', '').replace('_', '').isalpha()
+ else json.dumps(self.variables[k]['value']).replace('[', '{').replace(']', '}').replace('"', ''))
self.OM_data_init += ');\n'
return self.OM_data_init
--
cgit
From a69bc3eb0486d949c024bb5b373b14c0618d2220 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Wed, 8 Jul 2020 16:25:01 +0630
Subject: Compound Separator bug fixed.
---
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6125 -> 6107 bytes
.../DockWidgetCompoundSeparator.cpython-37.pyc | Bin 3187 -> 3169 bytes
.../DockWidgetDistillationColumn.cpython-37.pyc | Bin 4204 -> 4186 bytes
.../__pycache__/DockWidgetFlash.cpython-37.pyc | Bin 2913 -> 2895 bytes
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 8757 -> 8739 bytes
.../__pycache__/DockWidgetMixer.cpython-37.pyc | Bin 2244 -> 2226 bytes
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 3382 -> 3364 bytes
.../__pycache__/DockWidgetSplitter.cpython-37.pyc | Bin 2751 -> 2733 bytes
Undo.dat | Bin 183065 -> 64907 bytes
UnitOperations.py | 68 +++++++++++++++------
10 files changed, 51 insertions(+), 17 deletions(-)
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index 0733a15..f1fa8b5 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc
index a017f6c..ecad97b 100644
Binary files a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc
index 9edcc3b..e5f9002 100644
Binary files a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc
index 634882d..c706582 100644
Binary files a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index ad1e8f3..e42b5d7 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
index 6bfb174..ab2fad7 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
index 7e4a733..1c34a04 100644
Binary files a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc
index 045ca3d..bcd36dc 100644
Binary files a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc differ
diff --git a/Undo.dat b/Undo.dat
index 2fa64d0..ebae531 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 595a49d..5a67b2f 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -136,6 +136,7 @@ class UnitOperation():
self.OM_data_init += ');\n'
return self.OM_data_init
+
def OM_Flowsheet_Equation(self):
self.OM_data_eqn = ''
@@ -286,29 +287,62 @@ class CompoundSeparator(UnitOperation):
type(self).counter += 1
self.variables = {
'SepStrm' : {'name':'Separation Stream', 'value':1, 'unit':''},
- #'SepVal' : {'name':'Separation Value', 'value':[], 'unit':''},
- #'SepFact' : {'name':'Separaction Factor', 'value':'', 'unit':''},
+ 'SepVal_c' : {'name':'Separation Value', 'value':[], 'unit':''},
+ 'SepFact_c' : {'name':'Separaction Factor', 'value':[], 'unit':''},
}
-
- for i in self.compounds:
- self.variables[i] = {'name':'SepVal_'+i, 'value':'', 'type':'', 'unit':''}
- # self.SepFact = json.dumps(self.variables['SepFact']['value']).replace('[','{').replace(']','}')
- # self.SepStrm = str(self.variables['SepStrm']['value'])
- # self.SepVal = json.dumps(self.variables['SepVal']['value']).replace('[','{').replace(']','}')
def param_setter(self,params):
- print("param_setter ", params)
- if params[0]:
+ print("param_setter CompSep ", params)
+
+ if (params[0]):
self.variables['SepStrm']['value'] = 1
- elif params[1]:
+ else:
self.variables['SepStrm']['value'] = 2
+
+ for index, i in enumerate(range(2, len(params))):
+ print(index, i)
+ if (i %2 != 0):
+ self.variables['SepVal_c']['value'].append(float(params[i]))
+ else:
+ self.variables['SepFact_c']['value'].append(params[i].split(' ')[0])
+
+ print(self.variables['SepStrm']['value'], self.variables['SepFact_c']['value'], self.variables['SepVal_c']['value'])
- j = 2
- for i in self.compounds:
- self.variables[i]['type'] = params[j]
- self.variables[i]['value'] = float(params[j+1])
- j += 2
- print(self.variables)
+ self.variables['SepFact_c']['value'] = json.dumps(self.variables['SepFact_c']['value']).replace('[','{').replace(']','}')
+ self.variables['SepStrm']['value'] = str(self.variables['SepStrm']['value'])
+ self.variables['SepVal_c']['value'] = json.dumps(self.variables['SepVal_c']['value']).replace('[','{').replace(']','}')
+
+ print(self.variables['SepStrm']['value'], self.variables['SepFact_c']['value'], self.variables['SepVal_c']['value'])
+
+
+ def OM_Flowsheet_Initialize(self):
+ self.OM_data_init = ''
+ comp_count = len(self.compounds)
+ self.OM_data_init = self.OM_data_init + (
+ "Simulator.UnitOperations.CompoundSeparator " + self.name + "(Nc = " + str(comp_count))
+ self.OM_data_init = self.OM_data_init + (", C = {")
+ comp = str(self.compounds).strip('[').strip(']')
+ comp = comp.replace("'", "")
+ self.OM_data_init = self.OM_data_init + comp + ("},")
+ self.OM_data_init = self.OM_data_init + ("SepFact_c = "+self.variables['SepFact_c']['value']+",SepStrm = " + self.variables['SepStrm']['value'] + ");\n") #+ ", sepFactVal = " + self.variables['SepVal_c']['value']
+
+ return self.OM_data_init
+
+
+ def OM_Flowsheet_Equation(self):
+ self.OM_data_eqn = ''
+
+ self.OM_data_eqn += ('connect(' + self.name + '.In,' + self.input_stms[0].name + '.Out);\n')
+
+ strcount = 1
+ for strm in self.output_stms:
+ self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out' + str(strcount) + ');\n')
+ strcount += 1
+
+ self.OM_data_eqn += (self.name + '.SepVal_c ' + '=' + self.variables['SepVal_c']['value'] + ';\n')
+
+ return self.OM_data_eqn
+
class Flash(UnitOperation):
def __init__(self,name='Flash'):
--
cgit
From dafe790599284515c1db8bbf58946aae531bb551 Mon Sep 17 00:00:00 2001
From: pravindalve
Date: Wed, 8 Jul 2020 16:39:05 +0530
Subject: Flash bugs fixed
---
DockWidgets/DockWidgetFlash.py | 2 +-
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6107 -> 6125 bytes
.../DockWidgetCompoundSeparator.cpython-37.pyc | Bin 3169 -> 3187 bytes
.../DockWidgetDistillationColumn.cpython-37.pyc | Bin 4186 -> 4204 bytes
.../__pycache__/DockWidgetFlash.cpython-37.pyc | Bin 2895 -> 2914 bytes
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 8739 -> 8757 bytes
.../__pycache__/DockWidgetMixer.cpython-37.pyc | Bin 2226 -> 2244 bytes
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 3364 -> 3382 bytes
.../__pycache__/DockWidgetSplitter.cpython-37.pyc | Bin 2733 -> 2751 bytes
Undo.dat | Bin 64907 -> 64377 bytes
UnitOperations.py | 33 +++++++++++++++++----
11 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/DockWidgets/DockWidgetFlash.py b/DockWidgets/DockWidgetFlash.py
index 6098b27..1634169 100644
--- a/DockWidgets/DockWidgetFlash.py
+++ b/DockWidgets/DockWidgetFlash.py
@@ -29,7 +29,7 @@ class DockWidgetFlash(QDockWidget,ui_dialog):
try:
print("input_params_list ", self.input_dict)
- self.l1.setText(self.obj.variables['thermoPackage']['name']+":")
+ self.l1.setText(self.obj.variables['thermo_package']['name']+":")
self.lines = [line.rstrip('\n') for line in open('thermopackage.txt')]
for j in self.lines:
self.cb1.addItem(str(j))
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index f1fa8b5..0733a15 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc
index ecad97b..a017f6c 100644
Binary files a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc
index e5f9002..9edcc3b 100644
Binary files a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc
index c706582..7a0568c 100644
Binary files a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index e42b5d7..ad1e8f3 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
index ab2fad7..6bfb174 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
index 1c34a04..7e4a733 100644
Binary files a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc
index bcd36dc..045ca3d 100644
Binary files a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc differ
diff --git a/Undo.dat b/Undo.dat
index ebae531..ea109b2 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 5a67b2f..faf54de 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -38,7 +38,7 @@ class UnitOperation():
self.for_naming = []
self.multidict = []
self.thermo_pack_req = False
- self.thermo_package = None
+ self.thermo_package = 'RaoultsLaw'
def param_getter(self,mode=None):
params = {}
@@ -116,11 +116,18 @@ class UnitOperation():
C = str(self.compounds).strip('[').strip(']')
C = C.replace("'", "")
self.OM_data_init += ',C = {' + C + '}'
-
- for k,v in self.parameters.items():
+
+ # if len(self.parameters) > 0:
+ # for k,v in self.parameters.items():
+ # self.OM_data_init += ', '
+ # self.OM_data_init += k + ' = ' + str(v)
+
+ for k in self.parameters:
self.OM_data_init += ', '
- self.OM_data_init += k + ' = ' + str(v)
- self.OM_data_init += ');\n'
+ self.OM_data_init += k + ' = ' + (json.dumps(self.variables[k]['value']) if json.dumps(self.variables[k]['value']).replace('"', '').replace('_', '').isalpha()
+ else json.dumps(self.variables[k]['value']).replace('[', '{').replace(']', '}').replace('"', ''))
+
+ self.OM_data_init += ');\n'
else:
self.OM_data_init += 'Simulator.UnitOperations.' + self.type + ' ' + self.name + '(Nc = ' + str(len(self.compounds))
@@ -349,11 +356,15 @@ class Flash(UnitOperation):
UnitOperation.__init__(self)
self.name = name + str(Flash.counter)
self.type = 'Flash'
+ self.extra = ['Flash']
+ self.for_naming = ['Flash']
self.no_of_inputs = 1
self.no_of_outputs = 2
self.input_stms = []
self.output_stms = []
self.count = Flash.counter
+ self.thermo_pack_req = True
+ self.parameters = ['BTdef', 'Tdef', 'BPdef', 'Pdef']
type(self).counter += 1
self.variables = {
@@ -372,6 +383,18 @@ class Flash(UnitOperation):
self.variables['Pdef']['value'] = params[4]
print(self.variables)
+ def OM_Flowsheet_Equation(self):
+ self.OM_data_eqn = ''
+
+ self.OM_data_eqn += ('connect(' + self.name + '.In,' + self.input_stms[0].name + '.Out);\n')
+
+ strcount = 1
+ for strm in self.output_stms:
+ self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out' + str(strcount) + ');\n')
+ strcount += 1
+
+ return self.OM_data_eqn
+
class Pump(UnitOperation):
def __init__(self,name='Pump'):
UnitOperation.__init__(self)
--
cgit
From 2cd248a0ae312672d63a55cf6ac72436e515b2e6 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Thu, 9 Jul 2020 15:49:58 +0630
Subject: Fixed connection problems for Valve, ShortcutColumn and
DistillationColumn
---
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6125 -> 6107 bytes
.../DockWidgetCompoundSeparator.cpython-37.pyc | Bin 3187 -> 3169 bytes
.../DockWidgetDistillationColumn.cpython-37.pyc | Bin 4204 -> 4186 bytes
.../__pycache__/DockWidgetFlash.cpython-37.pyc | Bin 2914 -> 2896 bytes
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 8757 -> 8739 bytes
.../__pycache__/DockWidgetMixer.cpython-37.pyc | Bin 2244 -> 2226 bytes
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 3382 -> 3364 bytes
.../__pycache__/DockWidgetSplitter.cpython-37.pyc | Bin 2751 -> 2733 bytes
Undo.dat | Bin 64377 -> 63193 bytes
UnitOperations.py | 6 ------
10 files changed, 6 deletions(-)
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index 0733a15..f1fa8b5 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc
index a017f6c..ecad97b 100644
Binary files a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc
index 9edcc3b..e5f9002 100644
Binary files a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc
index 7a0568c..3054328 100644
Binary files a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index ad1e8f3..e42b5d7 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
index 6bfb174..ab2fad7 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
index 7e4a733..1c34a04 100644
Binary files a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc
index 045ca3d..bcd36dc 100644
Binary files a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc differ
diff --git a/Undo.dat b/Undo.dat
index ea109b2..436d91a 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index faf54de..90111d1 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -177,8 +177,6 @@ class ShortcutColumn(UnitOperation):
self.type = 'ShortcutColumn'
self.no_of_inputs = 1
self.no_of_outputs = 2
- self.input_stms = None
- self.output_stms = None
self.EngStm1 = EngStm(name='EngStm1'+self.name)
self.EngStm2 = EngStm(name='EngStm2'+self.name)
self.count = ShortcutColumn.counter
@@ -225,8 +223,6 @@ class DistillationColumn(UnitOperation):
self.EngStm2 = EngStm(name='EngStm2'+self.name)
self.count = DistillationColumn.counter
- self.input_stms = None
- self.output_stms = None
# self.modes_list = ['RR', 'Nout', 'T']
self.modes_list = []
self.parameters = ['']
@@ -418,8 +414,6 @@ class Valve(UnitOperation):
UnitOperation.__init__(self)
self.name = name + str(Valve.counter)
self.type = 'Valve'
- self.input_stms = None
- self.output_stms = None
self.modes_list = ['Pdel', 'Pout']
type(self).counter += 1
--
cgit
From 4754490bd9f60c89f66f886e399abc9ea91e932a Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Fri, 10 Jul 2020 22:00:01 +0630
Subject: Result issues fixed and optional input for DistillationColumn
---
Container.py | 6 ++----
DockWidgets/DockWidget.py | 7 ++++---
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6107 -> 6155 bytes
Graphics.py | 6 ++++++
Undo.dat | Bin 63193 -> 4777 bytes
UnitOperations.py | 3 ++-
6 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/Container.py b/Container.py
index 5469de2..ec46706 100644
--- a/Container.py
+++ b/Container.py
@@ -186,11 +186,9 @@ class Container():
self.msg_browser()
self.result=self.flowsheet.result_data
print("under Eqn mode simulation")
+ print("710 ", self.result)
- try:
- DockWidget.show_result(NodeItem.get_dock_widget())
- except AttributeError:
- pass
+ DockWidget.show_result(NodeItem.get_dock_widget())
def flat_list(lst):
flat_lst=[]
diff --git a/DockWidgets/DockWidget.py b/DockWidgets/DockWidget.py
index 6fc7731..2b1cdb9 100644
--- a/DockWidgets/DockWidget.py
+++ b/DockWidgets/DockWidget.py
@@ -187,10 +187,11 @@ class DockWidget(QDockWidget,ui_dialog):
@staticmethod
def show_result(lst):
- #DockWidget1.flag = True
for i in lst:
- i.results_category(i.name)
- #i.show()
+ try:
+ i.results_category(i.name)
+ except AttributeError:
+ pass
# result data tab
def results_category(self,name):
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index f1fa8b5..b042722 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/Graphics.py b/Graphics.py
index fd02d39..47aa4ea 100644
--- a/Graphics.py
+++ b/Graphics.py
@@ -473,6 +473,12 @@ class NodeItem(QtWidgets.QGraphicsItem):
self.nop = int(text)
self.obj.no_of_outputs = self.nop
self.obj.variables['No']['value'] = self.nop
+ elif self.obj.type == 'DistillationColumn':
+ text, ok = QInputDialog.getText(self.container.graphicsView, 'DistillationColumn', 'Enter number of input:')
+ if ok and text:
+ self.nin = int(text)
+ self.obj.no_of_inputs = self.nin
+ self.obj.variables['NI']['value'] = self.nin
self.dock_widget = None
lst.append(self)
diff --git a/Undo.dat b/Undo.dat
index 436d91a..b3b7c48 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 90111d1..7105606 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -214,7 +214,7 @@ class DistillationColumn(UnitOperation):
def __init__(self,name='DistillationColumn'):
self.name = name + str(DistillationColumn.counter)
self.type = 'DistillationColumn'
- self.no_of_inputs = 2
+ self.no_of_inputs = 1
self.no_of_outputs = 2
self.compounds = compound_selected
@@ -232,6 +232,7 @@ class DistillationColumn(UnitOperation):
type(self).counter += 1
self.variables = {
+ 'NI' : {'name':'Number of Input', 'value':2, 'unit':''},
'RR' : {'name':'Reflux Ratio', 'value':None, 'unit':''},
'T' : {'name':'Temperature', 'value':300, 'unit':'K'},
'Nout' : {'name':'No of Sidedraws', 'value':None, 'unit':''},
--
cgit
From badd3b0787acaf3cbecdd9a9935d34de886fb5c2 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Thu, 16 Jul 2020 20:45:15 +0630
Subject: Fetching results for input data of MaterialStream
---
DockWidgets/DockWidgetMaterialStream.py | 75 ++++++++++-----------
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6155 -> 6155 bytes
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 8739 -> 8853 bytes
Streams.py | 24 ++++---
Undo.dat | Bin 4777 -> 31950 bytes
5 files changed, 52 insertions(+), 47 deletions(-)
diff --git a/DockWidgets/DockWidgetMaterialStream.py b/DockWidgets/DockWidgetMaterialStream.py
index 78959fc..130b290 100644
--- a/DockWidgets/DockWidgetMaterialStream.py
+++ b/DockWidgets/DockWidgetMaterialStream.py
@@ -40,13 +40,6 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.lTreeWidget.itemClicked.connect(lambda : self.printer(self.lTreeWidget.currentItem()))
self.vTreeWidget.itemClicked.connect(lambda : self.printer(self.vTreeWidget.currentItem()))
-
- # def printer(self, treeItem ):
- # foldername = treeItem.text(0)
- # comment = treeItem.text(1)
- # data = treeItem.text(2)
- # print(foldername , ': ' , comment , ' (' + data + ')')
-
# input data tab
def modes(self):
modes_list = self.obj.modes_list
@@ -69,6 +62,7 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
def input_params_list(self):
try:
print("input_params_list ", self.input_dict)
+
for c,i in enumerate(self.input_dict):
if(i=="thermo_package"):
print("thermo1")
@@ -83,39 +77,31 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.formLayout.addRow(lay)
self.input_dict[i] = combo
print("thermo")
- elif(i=="condType"):
- combo = QComboBox()
- self.lines = ["Total","Partial"]
- for j in self.lines:
- combo.addItem(str(j))
- lay = QGridLayout()
- lay.addWidget(QLabel("Condensor Type :"+":"), 0, 0, alignment=Qt.AlignLeft)
- lay.addWidget(combo, 0, 1, alignment=Qt.AlignCenter)
- self.formLayout.addRow(lay)
- self.input_dict[i] = combo
elif(i=="x_pc"):
noc = len(compound_selected)
print(noc)
self.x_pclist.clear()
-
+
gp = QGroupBox("Mole Fractions")
lay = QGridLayout()
for j in range(noc):
l = QLineEdit()
if self.input_dict[i] != '':
- l.setText(str(self.obj.variables[compound_selected[j]]['value']))
+ l.setText(str(self.obj.variables['x_pc']['value'][j]))
+ print('l = ', str(self.obj.variables['x_pc']['value'][j]))
+
self.input_dict[i] = "x_pc"
lay.addWidget(QLabel(str(compound_selected[j])+":"),j,0, alignment=Qt.AlignLeft)
lay.addWidget(l,j,1, alignment=Qt.AlignCenter)
- self.x_pclist.append(l)
-
+ self.x_pclist.append(l)
gp.setLayout(lay)
- self.formLayout.addRow(gp)
+ self.formLayout.addRow(gp)
else:
print("elseloop")
l = QLineEdit()
if self.input_dict[i] != None:
l.setText(str(self.input_dict[i]))
+
lay = QGridLayout()
lay.addWidget(QLabel(i+":"),0,0, alignment=Qt.AlignLeft)
lay.addWidget(l,0,1, alignment=Qt.AlignCenter)
@@ -124,8 +110,7 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
else:
lay.addWidget(QLabel("mol/s"),0,2, alignment=Qt.AlignCenter)
self.formLayout.addRow(lay)
- self.input_dict[i] = l
-
+ self.input_dict[i] = l
except Exception as e:
print(e)
@@ -144,12 +129,6 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
else:
self.show_error()
break
- elif(i=="condType"):
- if (self.input_dict[i].currentText()):
- self.dict[i] = self.input_dict[i].currentText()
- else:
- self.show_error()
- break
elif(i =="x_pc"):
l=[]
mf = []
@@ -197,6 +176,7 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
result=self.container.result
obj = self.container.fetch_object(name)
+
d = {"Mole Fraction":"x_pc", "Mass Fraction":"xm_pc", "Mole Flow":"F_pc", "Mass Flow":"Fm_pc"}
lst = list(d.keys())
klst = list(d.values())
@@ -206,21 +186,21 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
# Amounts Tab
if obj.type == 'MaterialStream':
- l = [] # list for basis names
+ ll = [] # list for basis names
for basis in d:
propertyname = name + '.' + d[basis]
print("basis ", basis, propertyname)
for i in result[0]:
if (propertyname in i):
- l.append(i)
- print(l)
+ ll.append(i)
+ print(ll)
j = 0
t = 0
namee = klst[j]
print("namee ", namee)
- for i,k in enumerate(l):
+ for i,k in enumerate(ll):
ind = result[0].index(k)
print("index ", ind)
print("str ", k)
@@ -323,10 +303,27 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.mTableWidget.setItem(mrowPosition , 2, QTableWidgetItem(obj.variables[val.split('.')[1]]['unit']))
self.mTableWidget.resizeColumnsToContents()
- print(obj.variables)
- except Exception as e:
- print(e)
-
+ # updating the input data from fetched results from simulation
+ print(self.comboBox.currentText())
+
+ self.input_dict = {}
+ self.input_dict = self.obj.param_getter(self.comboBox.currentText())
+ print("before", self.input_dict)
+ self.input_dict.pop("x_pc")
+ temp = self.input_dict.pop('thermo_package')
+ for i in range(len(compound_selected)):
+ print(i)
+ self.input_dict['x_pc[1,' + str(i+1) + ']'] = self.obj.variables['x_pc[1,' + str(i+1) +']']['value']
+ self.input_dict['thermo_package'] = temp
+ print("after", self.input_dict)
+
+ # chaning index for updating the input data
+ indexx = self.comboBox.currentIndex()
+ self.comboBox.setCurrentIndex(1)
+ self.comboBox.setCurrentIndex(indexx)
+
-
\ No newline at end of file
+
+ except Exception as e:
+ print(e)
\ No newline at end of file
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index b042722..fec7953 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index e42b5d7..16bd08d 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/Streams.py b/Streams.py
index 81586f1..c987b4c 100644
--- a/Streams.py
+++ b/Streams.py
@@ -38,7 +38,7 @@ class MaterialStream():
'xvap' : {'name':'Vapour Phase Mole Fraction', 'value':None, 'unit':'g/s'},
'H_p[1]' : {'name':'Mixture Phase Molar Entalpy', 'value':None, 'unit':'g/s'},
'S_p[1]' : {'name':'Mixture Phase Molar Entropy', 'value':None, 'unit':'g/s'},
- 'F_p[1]' : {'name':'Mixture Molar Flow Rate', 'value':None, 'unit':'g/s'},
+ 'F_p[1]' : {'name':'Mixture Molar Flow Rate', 'value':100, 'unit':'g/s'},
'H_p[2]' : {'name':'Liquid Phase Molar Entalpy', 'value':None, 'unit':'g/s'},
'S_p[2]' : {'name':'Liquid Phase Molar Entropy', 'value':None, 'unit':'g/s'},
@@ -48,7 +48,7 @@ class MaterialStream():
'S_p[3]' : {'name':'Vapour Phase Molar Entropy', 'value':None, 'unit':'g/s'},
'F_p[3]' : {'name':'Vapour Molar Flow Rate', 'value':None, 'unit':'g/s'},
- 'x_pc' : {'name':'Mole Fraction', 'value':1.0, 'unit':'mol/s'},
+ 'x_pc' : {'name':'Mole Fraction', 'value':[], 'unit':'mol/s'},
'xm_pc' : {'name':'Mass Fraction', 'value':None, 'unit':'g/s'},
'F_pc' : {'name':'Mole Flow', 'value':100, 'unit':'mol/s'},
@@ -57,8 +57,9 @@ class MaterialStream():
self.init_variables()
def init_variables(self):
+ Nc = len(self.compound_names)
for i, val in enumerate(self.compound_names):
- self.variables['x_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mole Fraction', 'value':None, 'unit':'mol/s'}
+ self.variables['x_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mole Fraction', 'value':round(1/Nc,4), 'unit':'mol/s'}
self.variables['xm_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mass Fraction', 'value':None, 'unit':'g/s'}
self.variables['F_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mole Flow', 'value':None, 'unit':'mol/s'}
self.variables['Fm_pc[1,'+ str(i+1)+']'] = {'name':val + ' Mixture Mass Flow', 'value':None, 'unit':'g/s'}
@@ -79,31 +80,38 @@ class MaterialStream():
def param_getter(self,mode):
dict = {}
+ temp = []
+ for i, val in enumerate(self.compound_names):
+ temp.append(self.variables['x_pc[1,' + str(i+1) + ']']['value'])
+ self.variables['x_pc']['value'] = temp
+
if(mode=="PT"):
self.mode1 = 'P'
self.mode2 = 'T'
+
dict = {self.mode1:self.variables['P']['value'], self.mode2:self.variables['T']['value'],
- "MolFlow":self.variables['F_pc']['value'],"x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'],"x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+
elif(mode=="PH"):
self.mode1 = 'P'
self.mode2 = 'H_p[1]'
dict = {self.mode1:self.variables['P']['value'], self.mode2:self.variables['H_p[1]']['value'],
- "MolFlow":self.variables['F_pc']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
elif(mode=="PVF"):
self.mode1 = 'P'
self.mode2 = 'xvap'
dict = {self.mode1:self.variables['P']['value'], self.mode2:self.variables['xvap']['value'],
- "MolFlow":self.variables['F_pc']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
elif(mode=="TVF"):
self.mode1 = 'T'
self.mode2 = 'xvap'
dict = {self.mode1:self.variables['T']['value'], self.mode2:self.variables['xvap']['value'],
- "MolFlow":self.variables['F_pc']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
elif(mode=="PS"):
self.mode1 = 'P'
self.mode2 = 'S_p[1]'
dict = {self.mode1:self.variables['P']['value'], self.mode2: self.variables['S_p[1]']['value'],
- "MolFlow":self.variables['F_pc']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
return dict
diff --git a/Undo.dat b/Undo.dat
index b3b7c48..0c1911d 100644
Binary files a/Undo.dat and b/Undo.dat differ
--
cgit
From b43d2c8eef88b48f2db6f118805a3f621a0a13d3 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Fri, 17 Jul 2020 21:30:55 +0630
Subject: Fixed ShortcutColumn
---
DockWidgets/DockWidgetShortcutColumn.py | 39 ++++++++++++++++----
DockWidgets/DockWidgetShortcutColumn.ui | 34 ++++++++++++++++--
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 3364 -> 4160 bytes
Undo.dat | Bin 31950 -> 70485 bytes
UnitOperations.py | 40 +++++++++++++++++++--
5 files changed, 102 insertions(+), 11 deletions(-)
diff --git a/DockWidgets/DockWidgetShortcutColumn.py b/DockWidgets/DockWidgetShortcutColumn.py
index af81441..fc5c34f 100644
--- a/DockWidgets/DockWidgetShortcutColumn.py
+++ b/DockWidgets/DockWidgetShortcutColumn.py
@@ -34,12 +34,13 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
print("input_params_list ", self.input_dict)
self.l1.setText(self.obj.variables['HKey']['name']+":")
+ self.l2.setText(self.obj.variables['LKey']['name']+":")
+
print(self.obj.compounds)
for i in self.obj.compounds:
self.cb1.addItem(str(i))
self.cb2.addItem(str(i))
- self.l2.setText(self.obj.variables['LKey']['name']+":")
self.l3.setText(self.obj.variables['HKey_x_pc']['name']+":")
self.le3.setText(str(self.obj.variables['HKey_x_pc']['value']))
@@ -84,14 +85,40 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
except Exception as e:
print(e)
-
@staticmethod
def show_result(lst):
- #DockWidget1.flag = True
for i in lst:
- i.resultsCategory(i.name)
- #i.show()
+ try:
+ i.results_category(i.name)
+ except AttributeError:
+ pass
# result data tab
def results_category(self,name):
- pass
\ No newline at end of file
+ flag = True
+ try:
+ print("Under result category name ", name)
+ result=self.container.result
+ obj = self.container.fetch_object(name)
+ self.tableWidget.setRowCount(0)
+ variKeys = obj.result_parameters
+ print(variKeys)
+ for i, val in enumerate(variKeys):
+ propertyname = name + '.' + val
+ print(i,val, propertyname)
+ if propertyname in result[0]:
+ ind = result[0].index(propertyname)
+ resultval = str(result[-1][ind])
+ obj.variables[val]['value']= result[-1][ind]
+ print("######Resultsfetch####",val,resultval)
+ rowPosition = self.tableWidget.rowCount()
+ self.tableWidget.insertRow(rowPosition)
+ self.tableWidget.setItem(rowPosition , 0, QTableWidgetItem(obj.variables[val]['name']))
+ self.tableWidget.setItem(rowPosition , 1, QTableWidgetItem(resultval))
+ self.tableWidget.setItem(rowPosition , 2, QTableWidgetItem(obj.variables[val]['unit']))
+ self.tableWidget.resizeColumnsToContents()
+
+ print(obj.variables)
+
+ except Exception as e:
+ print(e)
\ No newline at end of file
diff --git a/DockWidgets/DockWidgetShortcutColumn.ui b/DockWidgets/DockWidgetShortcutColumn.ui
index c66e699..47595ec 100644
--- a/DockWidgets/DockWidgetShortcutColumn.ui
+++ b/DockWidgets/DockWidgetShortcutColumn.ui
@@ -33,8 +33,8 @@
10
40
- 351
- 321
+ 381
+ 611
@@ -287,6 +287,36 @@
Results
+
+ -
+
+
+ 3
+
+
+ 110
+
+
+ true
+
+
+
+ Attribute
+
+
+
+
+ Value
+
+
+
+
+ Unit
+
+
+
+
+
diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
index 1c34a04..560bdac 100644
Binary files a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc differ
diff --git a/Undo.dat b/Undo.dat
index 0c1911d..b2f107b 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 7105606..54f9334 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -123,6 +123,8 @@ class UnitOperation():
# self.OM_data_init += k + ' = ' + str(v)
for k in self.parameters:
+ if(k == 'HKey_x_pc' or k == 'LKey_x_pc'):
+ continue
self.OM_data_init += ', '
self.OM_data_init += k + ' = ' + (json.dumps(self.variables[k]['value']) if json.dumps(self.variables[k]['value']).replace('"', '').replace('_', '').isalpha()
else json.dumps(self.variables[k]['value']).replace('[', '{').replace(']', '}').replace('"', ''))
@@ -181,7 +183,12 @@ class ShortcutColumn(UnitOperation):
self.EngStm2 = EngStm(name='EngStm2'+self.name)
self.count = ShortcutColumn.counter
+ self.extra = ['ShortcutColumn']
+ self.for_naming = ['ShortcutColumn']
+ self.thermo_pack_req = True
+
self.parameters = ['HKey', 'LKey', 'HKey_x_pc', 'LKey_x_pc', 'Ctype', 'Pcond', 'Preb', 'RR']
+ self.result_parameters = ['RRmin', 'Ntmin', 'Nt', 'Intray', 'Fliqstrip', 'Fliqrec', 'Fvapstrip', 'Fvaprec', 'Qc', 'Qr']
type(self).counter += 1
self.variables = {
@@ -190,16 +197,28 @@ class ShortcutColumn(UnitOperation):
'HKey_x_pc' : {'name':'Heavy Key Mole Fraction', 'value':0.01, 'unit':'mol/s'},
'LKey_x_pc' : {'name':'Light Key Mole Fraction', 'value':0.01, 'unit':'mol/s'},
'Ctype' : {'name':'Condensor Type', 'value':None, 'unit':''},
- 'thermo_package' : {'name':'Thermo Package', 'value':'Raoults_Law', 'unit':''},
+ 'thermo_package' : {'name':'Thermo Package', 'value':'Raoults_Law', 'unit':''},
'Pcond' : {'name':'Condensor Pressure', 'value':101325, 'unit':'Pa'},
'Preb' : {'name':'Reboiler Pressure', 'value':101325, 'unit':'Pa'},
'RR' : {'name':'Reflux Ratio', 'value':1.5, 'unit':''},
+
+ 'RRmin' : {'name':'Minimum Reflux Ratio', 'value': None , 'unit':''},
+ 'Ntmin' : {'name':'Minimum Number of Stages', 'value': None, 'unit':''},
+ 'Nt' : {'name':'Actual Number of Stages', 'value': None, 'unit':''},
+ 'Intray' : {'name':'Optimal Feed Stage', 'value': None, 'unit':''},
+ 'Fliqstrip' : {'name':'Stripping Liquid', 'value': None, 'unit':'mol/s'},
+ 'Fliqrec' : {'name':'Rectification Liquid', 'value': None, 'unit':'mol/s'},
+ 'Fvapstrip' : {'name':'Stripping Vapor', 'value': None, 'unit':'mol/s'},
+ 'Fvaprec' : {'name':'Recification Vapour', 'value': None, 'unit':'mol/s'},
+ 'Qc' : {'name':'Conderser Duty', 'value': None, 'unit':'W'},
+ 'Qr' : {'name':'Reboiler Duty', 'value': None, 'unit':'W'},
+
}
def param_setter(self,params):
print("param_setter ", params)
- self.variables['HKey']['value'] = params[0]
- self.variables['LKey']['value'] = params[1]
+ self.variables['HKey']['value'] = self.compounds.index(params[0]) + 1
+ self.variables['LKey']['value'] = self.compounds.index(params[1]) + 1
self.variables['HKey_x_pc']['value'] = params[2]
self.variables['LKey_x_pc']['value'] = params[3]
self.variables['Ctype']['value'] = params[4]
@@ -209,6 +228,21 @@ class ShortcutColumn(UnitOperation):
print(self.variables)
+ def OM_Flowsheet_Equation(self):
+ self.OM_data_eqn = ''
+
+ self.OM_data_eqn += ('connect(' + self.name + '.In,' + self.input_stms[0].name + '.Out);\n')
+
+ strcount = 1
+ for strm in self.output_stms:
+ self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out' + str(strcount) + ');\n')
+ strcount += 1
+
+ self.OM_data_eqn += (self.name + '.x_pc[2, ' + self.name + '.HKey] = ' + str(self.variables['HKey_x_pc']['value']) + ';\n')
+ self.OM_data_eqn += (self.name + '.x_pc[3, ' + self.name + '.LKey] = ' + str(self.variables['LKey_x_pc']['value']) + ';\n')
+
+ return self.OM_data_eqn
+
class DistillationColumn(UnitOperation):
def __init__(self,name='DistillationColumn'):
--
cgit
From 8b296f3d098669a6cb4f20511aaa3b42ac4510ba Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Tue, 21 Jul 2020 22:02:16 +0630
Subject: Fixed updating Tooltip values from fetched results
---
Container.py | 17 ++++++++++++-----
DockWidgets/DockWidget.py | 4 +++-
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6155 -> 6155 bytes
Graphics.py | 13 +++++++++++++
Undo.dat | Bin 70485 -> 31950 bytes
mainApp.py | 2 --
6 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/Container.py b/Container.py
index ec46706..e2b1f29 100644
--- a/Container.py
+++ b/Container.py
@@ -171,25 +171,32 @@ class Container():
self.flowsheet.add_compound_list(self.compounds)
print("######## connection master#########\n",self.conn)
for i in self.unit_operations :
- print("here",i)
- self.flowsheet.add_unit_operations(i)
+ print("here",i)
+ self.flowsheet.add_unit_operations(i)
if mode=='SM':
self.msg.append("["+str(self.current_time())+"] Simulating in Sequential mode ... ")
self.flowsheet.simulate_SM(self.ip,self.op)
self.msg_browser()
self.result=self.flowsheet.result_data
- print("under SEQ mode simulation")
+
elif mode=='EQN':
self.msg.append("["+str(self.current_time())+"] Simulating in equation mode ... ")
self.flowsheet.simulate_EQN()
self.msg_browser()
self.result=self.flowsheet.result_data
print("under Eqn mode simulation")
- print("710 ", self.result)
-
+ print("710 ")
+ print("under SEQ mode simulation")
+
DockWidget.show_result(NodeItem.get_dock_widget())
+ for i in self.graphics.scene.items():
+ if (isinstance(i, NodeItem)):
+ i.update_tooltip()
+
+
+
def flat_list(lst):
flat_lst=[]
for sublist in lst:
diff --git a/DockWidgets/DockWidget.py b/DockWidgets/DockWidget.py
index 2b1cdb9..a32d125 100644
--- a/DockWidgets/DockWidget.py
+++ b/DockWidgets/DockWidget.py
@@ -218,4 +218,6 @@ class DockWidget(QDockWidget,ui_dialog):
self.tableWidget.resizeColumnsToContents()
except Exception as e:
- print(e)
\ No newline at end of file
+ print(e)
+
+
\ No newline at end of file
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index fec7953..81a4e00 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/Graphics.py b/Graphics.py
index 47aa4ea..f013691 100644
--- a/Graphics.py
+++ b/Graphics.py
@@ -41,6 +41,7 @@ class Graphics(QDialog, QtWidgets.QGraphicsItem):
self.graphicsView = graphicsView
self.pos = None
self.unit_operations = unit_operations
+ # self.node_item_list = []
def get_scene(self):
return self.scene
@@ -50,6 +51,9 @@ class Graphics(QDialog, QtWidgets.QGraphicsItem):
def create_node_item(self,unit_operation, container):
print("in create node item function")
+ # node_item = NodeItem(unit_operation, container, self.graphicsView)
+ # self.node_item_list.append(node_item)
+ # return node_item
return NodeItem(unit_operation, container, self.graphicsView)
# def boundingRect(self):
@@ -604,6 +608,15 @@ class NodeItem(QtWidgets.QGraphicsItem):
stack.append(self.dock_widget)
self.graphicsView.setInteractive(True)
+ def update_tooltip(self):
+ default_tooltip = f"{self.name}\n\n"
+ default_tooltip_dict = self.obj.param_getter(self.obj.modes_list[0])
+ for i, j in default_tooltip_dict.items():
+ if j is not None:
+ default_tooltip = default_tooltip + f" {i} : {j}\n"
+ print("default tooltip ", default_tooltip_dict)
+ self.setToolTip(default_tooltip)
+
def findMainWindow(self):
'''
diff --git a/Undo.dat b/Undo.dat
index b2f107b..4a35e7c 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/mainApp.py b/mainApp.py
index 462887f..d8ba5fc 100644
--- a/mainApp.py
+++ b/mainApp.py
@@ -262,8 +262,6 @@ class MainApp(QMainWindow,ui):
self.graphicsView.setMouseTracking(True)
self.graphicsView.keyPressEvent=self.delete_call
-
-
'''
Function for undo
'''
--
cgit
From d2cb7dadd3554586ccd0b88af7418b24877991e8 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Mon, 27 Jul 2020 21:08:14 +0630
Subject: Partially fixed DistillationColumn
---
Container.py | 12 +---
DockWidgets/DockWidgetDistillationColumn.py | 65 +++++++++++++++++----
DockWidgets/DockWidgetDistillationColumn.ui | 36 ++----------
.../DockWidgetDistillationColumn.cpython-37.pyc | Bin 4186 -> 4926 bytes
Graphics.py | 27 +--------
Undo.dat | Bin 31950 -> 1641 bytes
UnitOperations.py | 47 ++++++---------
7 files changed, 84 insertions(+), 103 deletions(-)
diff --git a/Container.py b/Container.py
index e2b1f29..6da3b25 100644
--- a/Container.py
+++ b/Container.py
@@ -93,19 +93,14 @@ class Container():
'''
def delete(self,l):
for item in l:
- print('deleted objects ', item)
self.scene.removeItem(item)
for i in dock_widget_lst:
if i.name == item.name:
i.hide()
del i
break
- for i in dock_widget_lst:
- print(i.name)
- print("delete ", dock_widget_lst)
+
if hasattr(item,'input'):
- print("In input ")
- print(item.input)
for x in item.input:
if x.new_line:
self.scene.removeItem(x.new_line)
@@ -114,8 +109,6 @@ class Container():
self.scene.removeItem(x.other_line)
del x.other_line
if hasattr(item,'output'):
- print("in output ")
- print(item.output)
for x in item.output:
if x.new_line:
self.scene.removeItem(x.new_line)
@@ -171,7 +164,6 @@ class Container():
self.flowsheet.add_compound_list(self.compounds)
print("######## connection master#########\n",self.conn)
for i in self.unit_operations :
- print("here",i)
self.flowsheet.add_unit_operations(i)
if mode=='SM':
@@ -186,8 +178,6 @@ class Container():
self.msg_browser()
self.result=self.flowsheet.result_data
print("under Eqn mode simulation")
- print("710 ")
- print("under SEQ mode simulation")
DockWidget.show_result(NodeItem.get_dock_widget())
diff --git a/DockWidgets/DockWidgetDistillationColumn.py b/DockWidgets/DockWidgetDistillationColumn.py
index 65e9932..a3650e0 100644
--- a/DockWidgets/DockWidgetDistillationColumn.py
+++ b/DockWidgets/DockWidgetDistillationColumn.py
@@ -34,10 +34,20 @@ class DockWidgetDistillationColumn(QDockWidget,ui_dialog):
print("input_params_list ", self.input_dict)
# tab 1
- self.l1.setText(self.obj.variables['Nt']['name']+":")
- self.le1.setText(str(self.obj.variables['Nt']['value']))
- self.l2.setText(self.obj.variables['In_s']['name']+":")
- self.l3.setText(self.obj.variables['InT_s']['name']+":")
+ # self.l1.setText(self.obj.variables['Nt']['name']+":")
+ # self.le1.setText(str(self.obj.variables['Nt']['value']))
+ # self.l2.setText(self.obj.variables['InT_s']['name']+":")
+ l1 = QLineEdit()
+ self.lay1.addWidget(QLabel(self.obj.variables['Nt']['name'] + " :"), 0 ,0, alignment=Qt.AlignLeft)
+ self.lay1.addWidget(l1,0,1, alignment=Qt.AlignCenter)
+ self.input_dict.append(l1)
+
+ for i in range(self.obj.variables['Ni']['value']):
+ print(i)
+ l = QLineEdit()
+ self.lay1.addWidget(QLabel(self.obj.variables['InT_s']['name'] +" " + str(i+1) + " location :"),i+1,0, alignment=Qt.AlignLeft)
+ self.lay1.addWidget(l,i+1,1, alignment=Qt.AlignCenter)
+ self.input_dict.append(l)
# tab 2
self.l4.setText(self.obj.variables['Ctype']['name']+":")
@@ -55,8 +65,13 @@ class DockWidgetDistillationColumn(QDockWidget,ui_dialog):
for j in self.obj.compounds:
self.cb2.addItem(str(j))
self.cb2.setDisabled(True)
- self.cb1.currentIndexChanged.connect(self.fun2)
-
+ self.cb1.currentIndexChanged.connect(self.fun2)
+
+ self.input_dict.append(self.cb5)
+ self.input_dict.append(self.le5)
+ self.input_dict.append(self.cb1)
+ self.input_dict.append(self.cb2)
+ self.input_dict.append(self.le6)
# tab3
self.l8.setText(self.obj.variables['Preb']['name']+":")
@@ -72,7 +87,12 @@ class DockWidgetDistillationColumn(QDockWidget,ui_dialog):
self.cb4.setDisabled(True)
self.cb3.currentIndexChanged.connect(self.fun3)
- self.input_dict = [self.le1, self.le2, self.le3, self.cb5, self.le5, self.cb1, self.cb2, self.le6, self.le7, self.cb3, self.cb4, self.le8]
+ self.input_dict.append(self.le7)
+ self.input_dict.append(self.cb3)
+ self.input_dict.append(self.cb4)
+ self.input_dict.append(self.le8)
+
+ # self.input_dict = [self.le1, self.le2, self.le3, self.cb5, self.le5, self.cb1, self.cb2, self.le6, self.le7, self.cb3, self.cb4, self.le8]
except Exception as e:
print(e)
@@ -95,10 +115,35 @@ class DockWidgetDistillationColumn(QDockWidget,ui_dialog):
def param(self):
try:
self.dict= []
+ temp = 0
print("param.input_dict ", self.input_dict)
- self.dict = [self.input_dict[0].text(),self.input_dict[1].text(), self.input_dict[2].text(), self.input_dict[3].currentText(),
- self.input_dict[4].text(), self.input_dict[5].currentText(), self.input_dict[6].currentText(), self.input_dict[7].text(),
- self.input_dict[8].text(), self.input_dict[9].currentText(), self.input_dict[10].currentText(), self.input_dict[11].text()]
+ self.dict.append(int(self.input_dict[0].text()))
+
+ for i in range(self.obj.variables['Ni']['value']):
+ self.dict.append(int(self.input_dict[i+1].text()))
+ temp = i + 1
+ print(temp)
+
+ print(temp)
+ print(self.input_dict[temp+1])
+ self.dict.append(self.input_dict[temp+1].currentText())
+ print(temp+1)
+ self.dict.append(int(self.input_dict[temp+2].text()))
+ print(temp+2)
+ self.dict.append(self.input_dict[temp+3].currentText())
+ print(temp+3)
+ self.dict.append(self.input_dict[temp+4].currentText())
+ print(temp+4)
+ self.dict.append(int(self.input_dict[temp+5].text()))
+ print(temp+5)
+ self.dict.append(int(self.input_dict[temp+6].text()))
+ print(temp+6)
+ self.dict.append(self.input_dict[temp+7].currentText())
+ print(temp+7)
+ self.dict.append(self.input_dict[temp+8].currentText())
+ print(temp+8)
+ self.dict.append(int(self.input_dict[temp+9].text()))
+ print(temp+9)
print("param ", self.dict)
self.obj.param_setter(self.dict)
diff --git a/DockWidgets/DockWidgetDistillationColumn.ui b/DockWidgets/DockWidgetDistillationColumn.ui
index 0cb1043..e603071 100644
--- a/DockWidgets/DockWidgetDistillationColumn.ui
+++ b/DockWidgets/DockWidgetDistillationColumn.ui
@@ -78,36 +78,12 @@
-
-
-
-
-
- TextLabel
-
-
-
- -
-
-
- -
-
-
- TextLabel
-
-
-
- -
-
-
- -
-
-
- TextLabel
-
-
-
- -
-
-
+
+ QLayout::SetDefaultConstraint
+
+
+ 0
+
diff --git a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc
index e5f9002..e3b2d9e 100644
Binary files a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc differ
diff --git a/Graphics.py b/Graphics.py
index f013691..4b5a3e8 100644
--- a/Graphics.py
+++ b/Graphics.py
@@ -50,7 +50,6 @@ class Graphics(QDialog, QtWidgets.QGraphicsItem):
return ComponentSelector(self)
def create_node_item(self,unit_operation, container):
- print("in create node item function")
# node_item = NodeItem(unit_operation, container, self.graphicsView)
# self.node_item_list.append(node_item)
# return node_item
@@ -61,32 +60,26 @@ class Graphics(QDialog, QtWidgets.QGraphicsItem):
def load_canvas(self, obj, container):
stm = ['MaterialStream','EngStm']
- print('in load canvas')
compounds = obj[-1]
obj.pop()
ComponentSelector.set_compounds(compounds)
for i in obj:
- print("in for loop", i)
if(i in self.unit_operations):
pass
else:
self.unit_operations.append(i)
print(self.unit_operations)
new_box = self.create_node_item(i, container)
- print('after createing node item')
new_box.setPos(i.pos.toPoint().x(), i.pos.toPoint().y())
self.scene.addItem(new_box)
for i in obj:
- print('in i obj line')
if i.type == "MaterialStream":
- print('in i obj line in if')
- # print(eval(i.type))
+ print(eval(i.type))
# eval(i.type).counter += 1
# print(eval(i.type).counter)
elif i.type not in stm:
- print('in i obj line in else')
ip = i.input_stms
op = i.output_stms
print(ip)
@@ -95,7 +88,6 @@ class Graphics(QDialog, QtWidgets.QGraphicsItem):
# eval(i.type).counter += 1
# print(eval(i.type).counter)
for j in ip:
- print('in j in ip')
pointA = NodeItem.get_instances(j.name)
pointB = NodeItem.get_instances(i.name)
rect = pointA.output[0].boundingRect()
@@ -407,7 +399,7 @@ class NodeSocket(QtWidgets.QGraphicsItem):
Container.push('Undo', data)
except Exception as e:
print(e)
-
+
def get_center(self):
rect = self.boundingRect()
center = QtCore.QPointF(rect.x() + rect.width()/2, rect.y() + rect.height()/2)
@@ -415,7 +407,6 @@ class NodeSocket(QtWidgets.QGraphicsItem):
return center
def hoverEnterEvent(self, event):
- print("in hover enter")
cursor = QCursor( Qt.CrossCursor )
QApplication.instance().setOverrideCursor(cursor)
@@ -445,14 +436,12 @@ class NodeItem(QtWidgets.QGraphicsItem):
l = ['Splitter','Mixer', 'DistillationColumn', 'Flash', 'CompoundSeparator', 'ShortcutColumn']
stm = ['MaterialStream', 'EnergyStream']
super(NodeItem, self).__init__()
- print("in node item")
self.obj = unit_operation
self.container = container
self.graphicsView = graphicsView
self.name = self.obj.name
self.type = self.obj.type
- print('Before obj.modes_list')
if (self.obj.modes_list):
default_tooltip = f"{self.name}\n\n"
@@ -464,7 +453,6 @@ class NodeItem(QtWidgets.QGraphicsItem):
self.nin = self.obj.no_of_inputs
self.nop = self.obj.no_of_outputs
- print('Before mixer')
if self.obj.type == 'Mixer':
text, ok = QInputDialog.getText(self.container.graphicsView, 'Mixer', 'Enter number of input:')
if ok and text:
@@ -482,18 +470,16 @@ class NodeItem(QtWidgets.QGraphicsItem):
if ok and text:
self.nin = int(text)
self.obj.no_of_inputs = self.nin
- self.obj.variables['NI']['value'] = self.nin
+ self.obj.variables['Ni']['value'] = self.nin
self.dock_widget = None
lst.append(self)
- print("before DockWidget")
if self.obj.type in l:
self.dock_widget = eval("DockWidget"+self.obj.type)(self.obj.name,self.obj.type,self.obj,self.container)
elif self.obj.type in stm:
self.dock_widget = eval("DockWidget"+self.obj.type)(self.obj.name,self.obj.type,self.obj,self.container)
else:
self.dock_widget = DockWidget(self.obj.name,self.obj.type,self.obj,self.container)
- print('in dockwidget')
dock_widget_lst.append(self.dock_widget)
self.main_window= findMainWindow(self)
self.dock_widget.setFixedWidth(360)
@@ -502,8 +488,6 @@ class NodeItem(QtWidgets.QGraphicsItem):
self.main_window.addDockWidget(Qt.LeftDockWidgetArea, self.dock_widget)
self.dock_widget.hide()
- print("after dockwidget")
-
self.pic=QtGui.QPixmap("Icons/"+self.type+".png")
# self.pic = QIcon("svg/Cooler.svg")
self.rect = QtCore.QRect(0,0,self.pic.width(),self.pic.height())
@@ -538,7 +522,6 @@ class NodeItem(QtWidgets.QGraphicsItem):
# initializing the node sockets
self.input , self.output = self.initialize_sockets(self.type)
- print('after ndoe item')
def shape(self):
path = QtGui.QPainterPath()
@@ -558,7 +541,6 @@ class NodeItem(QtWidgets.QGraphicsItem):
# painter.drawPixmap(self.rect, self.pic.pixmap(QSize(1000,1000)))
def initialize_sockets(self,type):
- print("inside initialization")
if(self.type=="Flash" or self.type=="CompoundSeparator"):
input = [NodeSocket(QtCore.QRect(5,(self.rect.height()*x/(self.nin+1)-2),4,4), self, 'in') for x in range(1,self.nin+1) ]
output = [NodeSocket(QtCore.QRect(self.rect.width()-9,(self.rect.height()*x*1/(self.nop+1)),4,4), self, 'op') for x in range(1,self.nop+1)]
@@ -596,13 +578,11 @@ class NodeItem(QtWidgets.QGraphicsItem):
line.pointB = line.target.get_center()
self.pos = event.scenePos()
self.obj.set_pos(self.pos)
- #print(self.name, self.pos)
def mouseDoubleClickEvent(self, event):
self.graphicsView.setInteractive(False)
if len(stack):
- print(stack)
stack[-1].hide()
self.dock_widget.show()
stack.append(self.dock_widget)
@@ -614,7 +594,6 @@ class NodeItem(QtWidgets.QGraphicsItem):
for i, j in default_tooltip_dict.items():
if j is not None:
default_tooltip = default_tooltip + f" {i} : {j}\n"
- print("default tooltip ", default_tooltip_dict)
self.setToolTip(default_tooltip)
diff --git a/Undo.dat b/Undo.dat
index 4a35e7c..7c599b2 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 54f9334..fbbcce1 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -55,7 +55,6 @@ class UnitOperation():
def param_setter(self,params):
print("param_setter ", params)
for k,v in params.items():
- print(k,v)
if k != self.mode:
self.k = v
self.variables[k]['value'] = v
@@ -66,10 +65,8 @@ class UnitOperation():
def add_connection(self,flag,UnitOpr):
if flag==1: # Input stream if flag is 1
- print("INPUT CONNECTION")
self.input_stms.append(UnitOpr)
else :
- print("OUTPUT CONNECTION")
self.output_stms.append(UnitOpr)
def set_pos(self,pos):
@@ -163,8 +160,6 @@ class UnitOperation():
self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out[' + str(strcount) + ']);\n')
strcount += 1
else:
- print(self.input_stms)
- print(self.output_stms)
self.OM_data_eqn += ('connect(' + self.name + '.Out,' + self.output_stms[0].name + '.In);\n')
if self.mode:
@@ -246,6 +241,7 @@ class ShortcutColumn(UnitOperation):
class DistillationColumn(UnitOperation):
def __init__(self,name='DistillationColumn'):
+ UnitOperation.__init__(self)
self.name = name + str(DistillationColumn.counter)
self.type = 'DistillationColumn'
self.no_of_inputs = 1
@@ -259,20 +255,19 @@ class DistillationColumn(UnitOperation):
# self.modes_list = ['RR', 'Nout', 'T']
self.modes_list = []
- self.parameters = ['']
+ self.parameters = ['Nt', 'Ni', 'InT_s', 'Ctype']
#self.parameters = ['Nt', 'InT_s', 'In_s', 'thermo_package', 'Ctype', 'Pcond', 'Preb']
self.Cspec_list = ['Reflux Ratio','Product Molar Flow (mol/s)', 'Temperature (K)', 'Compound Molar Fraction', 'Compound Molar Flow (mol/s)']
self.Rspec_list = ['Product Molar Flow (mol/s)', 'Temperature (K)', 'Compound Molar Fraction', 'Compound Molar Flow (mol/s)']
type(self).counter += 1
self.variables = {
- 'NI' : {'name':'Number of Input', 'value':2, 'unit':''},
+ 'Ni' : {'name':'Number of Input', 'value':2, 'unit':''},
'RR' : {'name':'Reflux Ratio', 'value':None, 'unit':''},
'T' : {'name':'Temperature', 'value':300, 'unit':'K'},
'Nout' : {'name':'No of Sidedraws', 'value':None, 'unit':''},
'Nt' : {'name':'No of Stages', 'value':12, 'unit':''},
- 'InT_s' : {'name':'No of Feed Stages', 'value':None, 'unit':''},
- 'In_s' : {'name':'No of Feeds', 'value':None, 'unit':''},
+ 'InT_s' : {'name':'Feed Stage', 'value':[], 'unit':''},
'thermo_package' : {'name':'Thermo Package', 'value':'Raoults_Law', 'unit':''},
'Ctype' : {'name':'Condensor Type', 'value':'', 'unit':''},
'Pcond' : {'name':'Condensor Pressure', 'value':101325, 'unit':'Pa'},
@@ -280,22 +275,26 @@ class DistillationColumn(UnitOperation):
'C_Spec': {'name':'Condensor Specification', 'type':'Reflux Ratio', 'value':'', 'comp':'', 'unit':''},
'R_Spec': {'name':'Reboiler Specification', 'type':'', 'value':'', 'comp':'', 'unit':''},
}
+
def param_setter(self,params):
print("param_setter ", params)
+ temp = 0
self.variables['Nt']['value'] = params[0]
- self.variables['In_s']['value'] = params[1]
- self.variables['InT_s']['value'] = params[2]
- self.variables['Ctype']['value'] = params[3]
- self.variables['Pcond']['value'] = params[4]
- self.variables['C_Spec']['type'] = params[5]
+ for i in range(self.variables['Ni']['value']):
+ self.variables['InT_s']['value'].append(params[i+1])
+ temp = i + 1
+
+ self.variables['Ctype']['value'] = params[temp+1]
+ self.variables['Pcond']['value'] = params[temp+2]
+ self.variables['C_Spec']['type'] = params[temp+3]
if 'Compound' in self.variables['C_Spec']['type']:
- self.variables['C_Spec']['comp'] = params[6]
- self.variables['C_Spec']['value'] = params[7]
- self.variables['Preb']['value'] = params[8]
- self.variables['R_Spec']['type'] = params[9]
+ self.variables['C_Spec']['comp'] = params[temp+4]
+ self.variables['C_Spec']['value'] = params[temp+5]
+ self.variables['Preb']['value'] = params[temp+6]
+ self.variables['R_Spec']['type'] = params[temp+7]
if 'Compound' in self.variables['R_Spec']['type']:
- self.variables['R_Spec']['comp'] = params[10]
- self.variables['R_Spec']['value'] = params[11]
+ self.variables['R_Spec']['comp'] = params[temp+8]
+ self.variables['R_Spec']['value'] = params[temp+9]
print(self.variables)
class ConvertionReactor(UnitOperation):
@@ -338,20 +337,15 @@ class CompoundSeparator(UnitOperation):
self.variables['SepStrm']['value'] = 2
for index, i in enumerate(range(2, len(params))):
- print(index, i)
if (i %2 != 0):
self.variables['SepVal_c']['value'].append(float(params[i]))
else:
self.variables['SepFact_c']['value'].append(params[i].split(' ')[0])
-
- print(self.variables['SepStrm']['value'], self.variables['SepFact_c']['value'], self.variables['SepVal_c']['value'])
self.variables['SepFact_c']['value'] = json.dumps(self.variables['SepFact_c']['value']).replace('[','{').replace(']','}')
self.variables['SepStrm']['value'] = str(self.variables['SepStrm']['value'])
self.variables['SepVal_c']['value'] = json.dumps(self.variables['SepVal_c']['value']).replace('[','{').replace(']','}')
- print(self.variables['SepStrm']['value'], self.variables['SepFact_c']['value'], self.variables['SepVal_c']['value'])
-
def OM_Flowsheet_Initialize(self):
self.OM_data_init = ''
@@ -478,7 +472,6 @@ class Splitter(UnitOperation):
specval = self.variables['SpecVal_s']['value'] # [50,50]
self.specval = json.dumps(specval).replace('[','{').replace(']','}')
- print(self.specval)
def param_setter(self,params):
print("param_setter ", params)
@@ -509,9 +502,7 @@ class Mixer(UnitOperation):
'outPress' : {'name':'Outlet Pressure', 'value':'Inlet_Average', 'unit':''},
}
def param_setter(self, params):
- print(self.input_stms, self.output_stms)
self.output_stms = []
- print(self.input_stms, self.output_stms)
print("param_setter ", params)
self.variables['NI']['value'] = int(params[0])
self.variables['outPress']['value'] = params[1]
--
cgit
From df3ccdd24766f725e11bf41495855b9cd974008f Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Wed, 29 Jul 2020 21:09:26 +0630
Subject: Fixed single input Mixer issue
---
Container.py | 10 ++++------
DockWidgets/DockWidgetMixer.py | 2 +-
.../__pycache__/DockWidgetMixer.cpython-37.pyc | Bin 2226 -> 2215 bytes
Undo.dat | Bin 1641 -> 222191 bytes
UnitOperations.py | 16 +++++++++++-----
5 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/Container.py b/Container.py
index 6da3b25..f8daaee 100644
--- a/Container.py
+++ b/Container.py
@@ -137,7 +137,7 @@ class Container():
if(i.name==name):
return i
- def add_aompounds(self,comp):
+ def add_compounds(self,comp):
self.compounds = comp
def add_thermo_package(self,thermo):
@@ -181,11 +181,9 @@ class Container():
DockWidget.show_result(NodeItem.get_dock_widget())
- for i in self.graphics.scene.items():
- if (isinstance(i, NodeItem)):
- i.update_tooltip()
-
-
+ # for i in self.graphics.scene.items():
+ # if (isinstance(i, NodeItem)):
+ # i.update_tooltip()
def flat_list(lst):
flat_lst=[]
diff --git a/DockWidgets/DockWidgetMixer.py b/DockWidgets/DockWidgetMixer.py
index 01bfd48..804cdba 100644
--- a/DockWidgets/DockWidgetMixer.py
+++ b/DockWidgets/DockWidgetMixer.py
@@ -52,7 +52,7 @@ class DockWidgetMixer(QDockWidget,ui_dialog):
try:
self.dict={}
print("param.input_dict ", self.input_dict)
- self.dict = [int(self.input_dict[0].text()), '"' + self.input_dict[1].currentText() + '"']
+ self.dict = [int(self.input_dict[0].text()), self.input_dict[1].currentText()]
print("param ", self.dict)
self.obj.param_setter(self.dict)
self.hide()
diff --git a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
index ab2fad7..3ca772a 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc differ
diff --git a/Undo.dat b/Undo.dat
index 7c599b2..5991aae 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index fbbcce1..0bcff3c 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -68,6 +68,9 @@ class UnitOperation():
self.input_stms.append(UnitOpr)
else :
self.output_stms.append(UnitOpr)
+
+ print("input and output stms : ")
+ print(self.input_stms, self.output_stms)
def set_pos(self,pos):
self.pos = pos
@@ -146,7 +149,7 @@ class UnitOperation():
def OM_Flowsheet_Equation(self):
self.OM_data_eqn = ''
- if len(self.input_stms)>1:
+ if len(self.input_stms)>1 or self.type == 'Mixer':
strcount = 1
for strm in self.input_stms:
self.OM_data_eqn += ('connect(' + strm.name + '.Out,' + self.name + '.In[' + str(strcount) + ']);\n')
@@ -160,6 +163,7 @@ class UnitOperation():
self.OM_data_eqn += ('connect(' + strm.name + '.In,' + self.name + '.Out[' + str(strcount) + ']);\n')
strcount += 1
else:
+ print("self.output_stms ", self.output_stms)
self.OM_data_eqn += ('connect(' + self.name + '.Out,' + self.output_stms[0].name + '.In);\n')
if self.mode:
@@ -492,17 +496,19 @@ class Mixer(UnitOperation):
self.type = 'Mixer'
self.no_of_inputs = 6
- self.Pout_modes = ['Inlet Minimum', 'Inlet Average', 'Inlet Maximum']
+ self.Pout_modes = ['Inlet_Minimum', 'Inlet_Average', 'Inlet_Maximum']
self.parameters = ['NI', 'outPress']
- # self.output_stms = None
type(self).counter += 1
self.variables = {
- 'NI' : {'name':'Number of Input', 'value':6, 'unit':''},
+ 'NI' : {'name':'Number of Input', 'value':6, 'unit':''},
'outPress' : {'name':'Outlet Pressure', 'value':'Inlet_Average', 'unit':''},
}
+
+ print(self.input_stms)
+ print(self.output_stms)
+
def param_setter(self, params):
- self.output_stms = []
print("param_setter ", params)
self.variables['NI']['value'] = int(params[0])
self.variables['outPress']['value'] = params[1]
--
cgit
From 788b7f4bbb7aa51839c0836b1ab163fa831ce8fc Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Thu, 30 Jul 2020 21:19:00 +0630
Subject: Fixed populating the wrong simulation results
---
Container.py | 10 +++++++
DockWidgets/DockWidget.py | 3 +++
DockWidgets/DockWidgetMaterialStream.py | 9 +++++++
DockWidgets/DockWidgetShortcutColumn.py | 5 +++-
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6155 -> 6306 bytes
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 8853 -> 9112 bytes
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 4160 -> 4325 bytes
OMChem/Flowsheet.py | 29 +++++++++++----------
Undo.dat | Bin 222191 -> 106405 bytes
UnitOperations.py | 1 -
10 files changed, 41 insertions(+), 16 deletions(-)
diff --git a/Container.py b/Container.py
index f8daaee..25d5176 100644
--- a/Container.py
+++ b/Container.py
@@ -157,6 +157,14 @@ class Container():
self.msg.append(""+stdout+"")
def simulate(self,mode):
+
+ for i in self.graphics.scene.items():
+ if (isinstance(i, NodeItem)):
+ try:
+ i.dock_widget.clear_results()
+ except AttributeError:
+ pass
+
print("SIMULATE")
print(mode)
self.compounds = compound_selected
@@ -166,6 +174,7 @@ class Container():
for i in self.unit_operations :
self.flowsheet.add_unit_operations(i)
+
if mode=='SM':
self.msg.append("["+str(self.current_time())+"] Simulating in Sequential mode ... ")
self.flowsheet.simulate_SM(self.ip,self.op)
@@ -178,6 +187,7 @@ class Container():
self.msg_browser()
self.result=self.flowsheet.result_data
print("under Eqn mode simulation")
+
DockWidget.show_result(NodeItem.get_dock_widget())
diff --git a/DockWidgets/DockWidget.py b/DockWidgets/DockWidget.py
index a32d125..2087910 100644
--- a/DockWidgets/DockWidget.py
+++ b/DockWidgets/DockWidget.py
@@ -193,6 +193,9 @@ class DockWidget(QDockWidget,ui_dialog):
except AttributeError:
pass
+ def clear_results(self):
+ self.tableWidget.setRowCount(0)
+
# result data tab
def results_category(self,name):
flag = True
diff --git a/DockWidgets/DockWidgetMaterialStream.py b/DockWidgets/DockWidgetMaterialStream.py
index 130b290..f53e331 100644
--- a/DockWidgets/DockWidgetMaterialStream.py
+++ b/DockWidgets/DockWidgetMaterialStream.py
@@ -168,6 +168,15 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
i.results_category(i.name)
#i.show()
+
+ def clear_results(self):
+ self.mTreeWidget.clear()
+ self.mTableWidget.setRowCount(0)
+ self.lTreeWidget.clear()
+ self.lTableWidget.setRowCount(0)
+ self.vTreeWidget.clear()
+ self.vTableWidget.setRowCount(0)
+
# result data tab
def results_category(self,name):
flag = True
diff --git a/DockWidgets/DockWidgetShortcutColumn.py b/DockWidgets/DockWidgetShortcutColumn.py
index fc5c34f..f3a12b7 100644
--- a/DockWidgets/DockWidgetShortcutColumn.py
+++ b/DockWidgets/DockWidgetShortcutColumn.py
@@ -92,7 +92,10 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
i.results_category(i.name)
except AttributeError:
pass
-
+
+ def clear_results(self):
+ self.tableWidget.setRowCount(0)
+
# result data tab
def results_category(self,name):
flag = True
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index 81a4e00..1f3821d 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index 16bd08d..d592243 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
index 560bdac..3201c35 100644
Binary files a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc differ
diff --git a/OMChem/Flowsheet.py b/OMChem/Flowsheet.py
index ab271af..19f1b8e 100644
--- a/OMChem/Flowsheet.py
+++ b/OMChem/Flowsheet.py
@@ -60,23 +60,24 @@ class Flowsheet():
#s = subprocess.check_output([self.omc_path, '-s',simpath])
#print(s)
#print("############### StdOut ################")
- print(self.stdout)
+ print("stdout ", self.stdout)
+ print("stderr ", self.stderr)
os.chdir(self.root_dir)
#os.system(self.omc_path + ' -s ' + simpath)
- print("Hello")
- if self.sim_method == 'Eqn':
- print("hhhh")
- csvpath = os.path.join(self.sim_dir_path,'Flowsheet_res.csv')
- print("csvPath",csvpath)
- with open (csvpath,'r') as resultFile:
+ if ('timeSimulation = 0.0,\n' in self.stdout.decode("utf-8")):
self.result_data = []
- print("opened")
- csvreader = csv.reader(resultFile,delimiter=',')
- for row in csvreader:
- print("124125")
- self.result_data.append(row)
- print(self.result_data)
- #self.ext_data()
+ else:
+ csvpath = os.path.join(self.sim_dir_path,'Flowsheet_res.csv')
+ print("csvPath",csvpath)
+ with open (csvpath,'r') as resultFile:
+ self.result_data = []
+ print("opened")
+ csvreader = csv.reader(resultFile,delimiter=',')
+ for row in csvreader:
+ print("124125")
+ self.result_data.append(row)
+ print(self.result_data)
+ #self.ext_data()
def send_for_simulation_SM(self,unitop):
diff --git a/Undo.dat b/Undo.dat
index 5991aae..67af9b5 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 0bcff3c..45d4259 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -514,7 +514,6 @@ class Mixer(UnitOperation):
self.variables['outPress']['value'] = params[1]
print(self.variables)
-
class Heater(UnitOperation):
def __init__(self, name='Heater'):
--
cgit
From 7a6921b773cf8879cc29c8eb6c0f6ca2a1da961e Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Mon, 3 Aug 2020 20:45:29 +0630
Subject: Add Thermo Package for ShortcutColumn
---
Container.py | 31 ----
DockWidgets/DockWidgetShortcutColumn.py | 11 +-
DockWidgets/DockWidgetShortcutColumn.ui | 187 ++++++++++++---------
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 4325 -> 4661 bytes
OMChem/Flowsheet.py | 10 +-
Undo.dat | Bin 106405 -> 77818 bytes
UnitOperations.py | 1 +
mainApp.py | 3 -
thermopackage.txt | 2 +-
9 files changed, 124 insertions(+), 121 deletions(-)
diff --git a/Container.py b/Container.py
index 25d5176..db8e173 100644
--- a/Container.py
+++ b/Container.py
@@ -40,41 +40,10 @@ class Container():
time = str(now.hour) + ":" + str(now.minute) + ":" +str(now.second)
return time
- # def updateConn(self,key,value):
- # self.conn[key].append(value)
- # self.msg.append("["+str(self.current_time())+"] "+key.name+" output is connected to input of "+value.name +" ")
- #
- # def connection(self):
- # try:
- # self.op.clear()
- # self.ip.clear()
- # self.opl.clear()
- # stm = ['MaterialStream','EngStm']
- # for i in self.conn:
- # if i.type not in stm:
- # self.op[i]=self.conn[i]
- #
- # for j in range(len(self.conn[i])):
- # if self.conn[i][j].type not in stm:
- # self.ip[self.conn[i][j]].append(i)
- #
- # for i in self.op:
- # i.connect(InputStms=self.ip[i],OutputStms=self.op[i])
- #
- # self.opl.append([self.op[i] for i in self.op])
- # self.opl=flat_list(flat_list(self.opl))
- # except Exception as e:
- # print(e)
-
- # @staticmethod
- # def addUnitOpObj(obj):
- # self.unit_operations.append(obj)
-
def add_unit_operation(self, obj):
box = None
self.obj = obj
self.scene = self.graphics.get_scene()
- #self.graphicsView = graphicsView
box = self.graphics.create_node_item(self.obj, self)
self.scene.addItem(box)
box.setPos(2500-30, 2500-30)
diff --git a/DockWidgets/DockWidgetShortcutColumn.py b/DockWidgets/DockWidgetShortcutColumn.py
index f3a12b7..409c051 100644
--- a/DockWidgets/DockWidgetShortcutColumn.py
+++ b/DockWidgets/DockWidgetShortcutColumn.py
@@ -63,7 +63,13 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
self.l8.setText(self.obj.variables['RR']['name']+":")
self.le8.setText(str(self.obj.variables['RR']['value']))
- self.input_dict = [self.cb1, self.cb2, self.le3, self.le4, self.cb5, self.le6, self.le7, self.le8]
+ self.l9.setText("Thermo Package :")
+
+ self.lines = [line.rstrip('\n') for line in open('thermopackage.txt')]
+ for j in self.lines:
+ self.cb6.addItem(str(j))
+
+ self.input_dict = [self.cb1, self.cb2, self.le3, self.le4, self.cb5, self.le6, self.le7, self.le8, self.cb6]
except Exception as e:
print(e)
@@ -76,7 +82,8 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
self.dict=[]
print("param.input_dict ", self.input_dict)
self.dict = [self.input_dict[0].currentText(),self.input_dict[1].currentText(),float(self.input_dict[2].text()), float(self.input_dict[3].text()),
- self.input_dict[4].currentText(), float(self.input_dict[5].text()), float(self.input_dict[6].text()), float(self.input_dict[7].text())]
+ self.input_dict[4].currentText(), float(self.input_dict[5].text()), float(self.input_dict[6].text()), float(self.input_dict[7].text()),
+ self.input_dict[8].currentText()]
print("param ", self.dict)
self.obj.param_setter(self.dict)
diff --git a/DockWidgets/DockWidgetShortcutColumn.ui b/DockWidgets/DockWidgetShortcutColumn.ui
index 47595ec..f79c27e 100644
--- a/DockWidgets/DockWidgetShortcutColumn.ui
+++ b/DockWidgets/DockWidgetShortcutColumn.ui
@@ -50,7 +50,7 @@
8
13
331
- 237
+ 261
@@ -65,8 +65,8 @@
-
-
-
-
+
-
+
0
@@ -75,15 +75,18 @@
- -
-
-
- TextLabel
+
-
+
+
+
+ 0
+ 0
+
- -
-
+
-
+
0
@@ -95,21 +98,25 @@
- -
-
+
-
+
+
+ TextLabel
+
+
+
+ -
+
-
+
0
0
-
- TextLabel
-
- -
-
+
-
+
0
@@ -121,15 +128,8 @@
- -
-
-
- TextLabel
-
-
-
- -
-
+
-
+
0
@@ -138,29 +138,25 @@
- -
-
-
- TextLabel
-
-
-
- -
-
+
-
+
TextLabel
- -
-
-
- TextLabel
+
-
+
+
+
+ 0
+ 0
+
- -
-
+
-
+
0
@@ -169,28 +165,25 @@
- -
-
+
-
+
TextLabel
- -
-
+
-
+
-
+
0
0
-
- TextLabel
-
- -
-
+
-
+
0
@@ -199,18 +192,28 @@
- -
-
+
-
+
+
+ TextLabel
+
+
+
+ -
+
-
+
0
0
+
+ TextLabel
+
- -
-
+
-
+
0
@@ -222,40 +225,37 @@
- -
-
+
-
+
-
+
0
0
+
+ TextLabel
+
- -
-
+
-
+
TextLabel
- -
-
-
-
- 0
- 0
-
+
-
+
+
+ TextLabel
- -
-
-
-
- 0
- 0
-
+
-
+
+
+ TextLabel
@@ -267,7 +267,7 @@
10
- 250
+ 350
331
23
@@ -282,6 +282,41 @@
Submit
+
+
+
+ 10
+ 280
+ 331
+ 61
+
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ -
+
+
-
+
+
+ TextLabel
+
+
+
+ -
+
+
+
+
+
+
diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
index 3201c35..e1adb56 100644
Binary files a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc differ
diff --git a/OMChem/Flowsheet.py b/OMChem/Flowsheet.py
index 19f1b8e..ab4d729 100644
--- a/OMChem/Flowsheet.py
+++ b/OMChem/Flowsheet.py
@@ -57,13 +57,8 @@ class Flowsheet():
self.process = Popen([self.omc_path, '-s',simpath], stdout=PIPE, stderr=PIPE)
self.stdout, self.stderr = self.process.communicate()
- #s = subprocess.check_output([self.omc_path, '-s',simpath])
- #print(s)
- #print("############### StdOut ################")
- print("stdout ", self.stdout)
- print("stderr ", self.stderr)
+
os.chdir(self.root_dir)
- #os.system(self.omc_path + ' -s ' + simpath)
if ('timeSimulation = 0.0,\n' in self.stdout.decode("utf-8")):
self.result_data = []
else:
@@ -74,10 +69,9 @@ class Flowsheet():
print("opened")
csvreader = csv.reader(resultFile,delimiter=',')
for row in csvreader:
- print("124125")
+ print("in reading csvreader")
self.result_data.append(row)
print(self.result_data)
- #self.ext_data()
def send_for_simulation_SM(self,unitop):
diff --git a/Undo.dat b/Undo.dat
index 67af9b5..aef1caa 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 45d4259..4d3a92d 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -224,6 +224,7 @@ class ShortcutColumn(UnitOperation):
self.variables['Pcond']['value'] = params[5]
self.variables['Preb']['value'] = params[6]
self.variables['RR']['value'] = params[7]
+ self.thermo_package = params[8]
print(self.variables)
diff --git a/mainApp.py b/mainApp.py
index d8ba5fc..78bbd98 100644
--- a/mainApp.py
+++ b/mainApp.py
@@ -41,9 +41,6 @@ class MainApp(QMainWindow,ui):
# Loading and setting up style sheet
self.setupUi(self)
- # style = open('cyan.css','r')
- # style = style.read()
- # self.setStyleSheet(style)
# Initializing attributes
self.zoom_count = 0
diff --git a/thermopackage.txt b/thermopackage.txt
index 9ed6616..f9155f5 100644
--- a/thermopackage.txt
+++ b/thermopackage.txt
@@ -1,6 +1,6 @@
RaoultsLaw
NRTL
-INIQUAC
+UNIQUAC
UNIFAC
PengRobinson
GraysonStreed
\ No newline at end of file
--
cgit
From f21a9a6ff969e4472100ee0f2ad498018700d935 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Mon, 3 Aug 2020 21:13:22 +0630
Subject: Update Thermo Package option for MaterialStream DockWidget
---
DockWidgets/DockWidgetMaterialStream.py | 38 ++++++--------
DockWidgets/DockWidgetMaterialStream.ui | 57 ++++++++++++++++++---
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 9112 -> 8936 bytes
Streams.py | 12 ++---
Undo.dat | Bin 77818 -> 4021 bytes
5 files changed, 72 insertions(+), 35 deletions(-)
diff --git a/DockWidgets/DockWidgetMaterialStream.py b/DockWidgets/DockWidgetMaterialStream.py
index f53e331..915bea3 100644
--- a/DockWidgets/DockWidgetMaterialStream.py
+++ b/DockWidgets/DockWidgetMaterialStream.py
@@ -64,20 +64,7 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
print("input_params_list ", self.input_dict)
for c,i in enumerate(self.input_dict):
- if(i=="thermo_package"):
- print("thermo1")
- combo = QComboBox()
- self.lines = [line.rstrip('\n') for line in open('thermopackage.txt')]
- print("thermo2")
- for j in self.lines:
- combo.addItem(str(j))
- lay = QGridLayout()
- lay.addWidget(QLabel(i+":"), 0,0, alignment=Qt.AlignLeft)
- lay.addWidget(combo, 0, 1, alignment=Qt.AlignRight)
- self.formLayout.addRow(lay)
- self.input_dict[i] = combo
- print("thermo")
- elif(i=="x_pc"):
+ if(i=="x_pc"):
noc = len(compound_selected)
print(noc)
self.x_pclist.clear()
@@ -111,6 +98,12 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
lay.addWidget(QLabel("mol/s"),0,2, alignment=Qt.AlignCenter)
self.formLayout.addRow(lay)
self.input_dict[i] = l
+
+ self.lines = [line.rstrip('\n') for line in open('thermopackage.txt')]
+ for j in self.lines:
+ self.cbTP.addItem(str(j))
+ self.input_dict['Thermo Package'] = self.cbTP
+
except Exception as e:
print(e)
@@ -123,13 +116,8 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
print("param.input_dict ", self.input_dict)
for i in self.input_dict:
- if(i=="thermo_package"):
- if (self.input_dict[i].currentText()):
- self.dict[i] = self.input_dict[i].currentText()
- else:
- self.show_error()
- break
- elif(i =="x_pc"):
+ print(i)
+ if(i =="x_pc"):
l=[]
mf = []
total_moles = 0
@@ -145,14 +133,18 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.obj.variables[compound_selected[c]]['value'] = str(float(l[c])/total_moles)
self.x_pclist[c].setText(mf[-1])
self.dict[i] = ",".join(mf)
+ elif (i == "Thermo Package"):
+ self.dict[i] = self.input_dict[i].currentText()
else:
if (self.input_dict[i].text()):
self.dict[i] = self.input_dict[i].text()
else:
- print(self.input_dict[i].text())
+ print(self.input_dict[i])
self.show_error()
break
-
+ # print(self.input_dict[-1].currentText())
+ # self.dict['Thermo Package'] = self.input_dict['Thermo Package'].currentText()
+
print("param ", self.dict)
self.obj.param_setter(self.dict)
self.hide()
diff --git a/DockWidgets/DockWidgetMaterialStream.ui b/DockWidgets/DockWidgetMaterialStream.ui
index 8995ba6..a442eee 100644
--- a/DockWidgets/DockWidgetMaterialStream.ui
+++ b/DockWidgets/DockWidgetMaterialStream.ui
@@ -98,7 +98,7 @@
10
100
331
- 321
+ 221
@@ -114,7 +114,7 @@
10
- 430
+ 390
331
21
@@ -123,6 +123,51 @@
Submit
+
+
+
+ 10
+ 330
+ 331
+ 51
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Thermo Package
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
@@ -273,8 +318,8 @@
0
0
- 335
- 494
+ 151
+ 128
@@ -362,8 +407,8 @@
0
0
- 335
- 494
+ 151
+ 128
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index d592243..16511b3 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/Streams.py b/Streams.py
index c987b4c..bed975d 100644
--- a/Streams.py
+++ b/Streams.py
@@ -90,28 +90,28 @@ class MaterialStream():
self.mode2 = 'T'
dict = {self.mode1:self.variables['P']['value'], self.mode2:self.variables['T']['value'],
- "MolFlow":self.variables['F_p[1]']['value'],"x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'],"x_pc":self.variables['x_pc']['value']}
elif(mode=="PH"):
self.mode1 = 'P'
self.mode2 = 'H_p[1]'
dict = {self.mode1:self.variables['P']['value'], self.mode2:self.variables['H_p[1]']['value'],
- "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value']}
elif(mode=="PVF"):
self.mode1 = 'P'
self.mode2 = 'xvap'
dict = {self.mode1:self.variables['P']['value'], self.mode2:self.variables['xvap']['value'],
- "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value']}
elif(mode=="TVF"):
self.mode1 = 'T'
self.mode2 = 'xvap'
dict = {self.mode1:self.variables['T']['value'], self.mode2:self.variables['xvap']['value'],
- "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value']}
elif(mode=="PS"):
self.mode1 = 'P'
self.mode2 = 'S_p[1]'
dict = {self.mode1:self.variables['P']['value'], self.mode2: self.variables['S_p[1]']['value'],
- "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value'], "thermo_package":self.thermo_package}
+ "MolFlow":self.variables['F_p[1]']['value'], "x_pc":self.variables['x_pc']['value']}
return dict
@@ -120,7 +120,7 @@ class MaterialStream():
print("inside paramsetter ", dict)
self.variables['x_pc']['value'] = dict['x_pc'].split(",")
- self.thermo_package = dict['thermo_package']
+ self.thermo_package = dict['Thermo package']
self.variables['F_p[1]']['value'] = dict['MolFlow']
print("inside")
# self.Prop[self.mode2] = dict[self.mode2]
diff --git a/Undo.dat b/Undo.dat
index aef1caa..7d03ca8 100644
Binary files a/Undo.dat and b/Undo.dat differ
--
cgit
From 62b3c9106e1a3cadb1c570818ca7f1a86dffd914 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Wed, 5 Aug 2020 20:16:55 +0630
Subject: Added DockWidgetCompressorExpander
---
DockWidgets/DockWidget.ui | 4 ++--
DockWidgets/DockWidgetMaterialStream.py | 6 +++---
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 8936 -> 8485 bytes
Graphics.py | 3 +++
Undo.dat | Bin 4021 -> 80258 bytes
UnitOperations.py | 8 ++++++--
6 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/DockWidgets/DockWidget.ui b/DockWidgets/DockWidget.ui
index 5851d71..ba6dc52 100644
--- a/DockWidgets/DockWidget.ui
+++ b/DockWidgets/DockWidget.ui
@@ -101,7 +101,7 @@
10
100
331
- 321
+ 271
@@ -117,7 +117,7 @@
10
- 430
+ 380
331
21
diff --git a/DockWidgets/DockWidgetMaterialStream.py b/DockWidgets/DockWidgetMaterialStream.py
index 915bea3..ee57902 100644
--- a/DockWidgets/DockWidgetMaterialStream.py
+++ b/DockWidgets/DockWidgetMaterialStream.py
@@ -36,9 +36,9 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.lTreeWidget.setHeaderItem(header)
self.vTreeWidget.setHeaderItem(header)
- self.mTreeWidget.itemClicked.connect(lambda : self.printer(self.mTreeWidget.currentItem()))
- self.lTreeWidget.itemClicked.connect(lambda : self.printer(self.lTreeWidget.currentItem()))
- self.vTreeWidget.itemClicked.connect(lambda : self.printer(self.vTreeWidget.currentItem()))
+ # self.mTreeWidget.itemClicked.connect(lambda : self.printer(self.mTreeWidget.currentItem()))
+ # self.lTreeWidget.itemClicked.connect(lambda : self.printer(self.lTreeWidget.currentItem()))
+ # self.vTreeWidget.itemClicked.connect(lambda : self.printer(self.vTreeWidget.currentItem()))
# input data tab
def modes(self):
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index 16511b3..ddd011b 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/Graphics.py b/Graphics.py
index 4b5a3e8..ba034fb 100644
--- a/Graphics.py
+++ b/Graphics.py
@@ -23,6 +23,7 @@ from DockWidgets.DockWidgetMixer import *
from DockWidgets.DockWidgetSplitter import *
from DockWidgets.DockWidgetFlash import *
from DockWidgets.DockWidgetCompoundSeparator import *
+from DockWidgets.DockWidgetCompressorExpander import *
import datetime
@@ -478,6 +479,8 @@ class NodeItem(QtWidgets.QGraphicsItem):
self.dock_widget = eval("DockWidget"+self.obj.type)(self.obj.name,self.obj.type,self.obj,self.container)
elif self.obj.type in stm:
self.dock_widget = eval("DockWidget"+self.obj.type)(self.obj.name,self.obj.type,self.obj,self.container)
+ elif self.obj.type == "AdiabaticCompressor" or self.obj.type == "AdiabaticExpander":
+ self.dock_widget = eval("DockWidgetCompressorExpander")(self.obj.name,self.obj.type,self.obj,self.container)
else:
self.dock_widget = DockWidget(self.obj.name,self.obj.type,self.obj,self.container)
dock_widget_lst.append(self.dock_widget)
diff --git a/Undo.dat b/Undo.dat
index 7d03ca8..b05cceb 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 4d3a92d..1c98f86 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -55,7 +55,11 @@ class UnitOperation():
def param_setter(self,params):
print("param_setter ", params)
for k,v in params.items():
- if k != self.mode:
+ print(k, v)
+ if k == 'Thermo Package':
+ self.thermo_package = v
+ print('haha')
+ elif k != self.mode:
self.k = v
self.variables[k]['value'] = v
else:
@@ -577,7 +581,7 @@ class AdiabaticCompressor(UnitOperation):
self.parameters = ['Eff']
type(self).counter += 1
self.variables = {
- 'Pdel' : {'name':'Pressure Drop', 'value':0, 'unit':'Pa'},
+ 'Pdel' : {'name':'Pressure Increase', 'value':0, 'unit':'Pa'},
'Tdel' : {'name':'Temperature Increase', 'value':0, 'unit':'K'},
'Pout' : {'name':'Outlet Pressure', 'value':101325, 'unit':'Pa'},
'Tout' : {'name':'Outlet Temperature', 'value':298.15, 'unit':'K'},
--
cgit
From 76e58a6e14de583ab9d6694aeef9af215972649a Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Wed, 5 Aug 2020 20:41:35 +0630
Subject: Remove unnecessary codes from DockWidget.py
---
DockWidgets/DockWidget.py | 110 +++-------------------
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 6306 -> 4323 bytes
Undo.dat | Bin 80258 -> 28665 bytes
3 files changed, 11 insertions(+), 99 deletions(-)
diff --git a/DockWidgets/DockWidget.py b/DockWidgets/DockWidget.py
index 2087910..d6813ee 100644
--- a/DockWidgets/DockWidget.py
+++ b/DockWidgets/DockWidget.py
@@ -2,10 +2,7 @@ from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType
-import pandas as pd
-from functools import partial
from ComponentSelector import *
-from collections import defaultdict
from Graphics import *
ui_dialog,_ = loadUiType('DockWidgets/DockWidget.ui')
@@ -20,15 +17,13 @@ class DockWidget(QDockWidget,ui_dialog):
self.obj=obj
self.type = comptype
self.input_dict = {}
- self.x_pclist = []
self.modes()
self.comboBox.currentIndexChanged.connect(self.mode_selection)
print("constructor ", self.input_dict)
self.pushButton_2.clicked.connect(self.param)
- self.dict = {}
- self.name_type = None
+ self.dict = {}
self.container = container
# input data tab
@@ -61,72 +56,18 @@ class DockWidget(QDockWidget,ui_dialog):
try:
print("input_params_list ", self.input_dict)
for c,i in enumerate(self.input_dict):
+ print(i)
if i == None:
continue
- if(i=="thermo_package"):
- print("thermo1")
- combo = QComboBox()
- self.lines = [line.rstrip('\n') for line in open('thermopackage.txt')]
- print("thermo2")
- for j in self.lines:
- combo.addItem(str(j))
- combo.setMinimumContentsLength(15)
- lay = QGridLayout()
- lay.addWidget(QLabel(i+":"), 0,0, alignment=Qt.AlignLeft)
- lay.addWidget(combo, 0, 1, alignment=Qt.AlignCenter)
- lay.addWidget(QLabel(''), 0, 2, alignment = Qt.AlignCenter)
- self.formLayout.addRow(lay)
- self.input_dict[i] = combo
- print("thermo")
- elif(i=="Ctype"):
- combo = QComboBox()
- self.lines = ["Total","Partial"]
- for j in self.lines:
- combo.addItem(str(j))
- combo.setMinimumContentsLength(15)
- lay = QGridLayout()
- lay.addWidget(QLabel("Condensor Type :"), 0, 0, alignment=Qt.AlignLeft)
- lay.addWidget(combo, 0, 1, alignment=Qt.AlignCenter)
- lay.addWidget(QLabel(''), 0, 2, alignment = Qt.AlignCenter)
- self.formLayout.addRow(lay)
- self.input_dict[i] = combo
- elif(i=="x_pc"):
- noc = len(compound_selected)
- print(noc)
- self.x_pclist.clear()
- gp = QGroupBox("Compounds")
- lay = QGridLayout()
- for j in range(noc):
- l = QLineEdit()
- self.input_dict[i] = "x_pc"
- lay.addWidget(QLabel(str(compound_selected[j])+":"),j,0, alignment=Qt.AlignLeft)
- lay.addWidget(l,j,1, alignment=Qt.AlignCenter)
- lay.addWidget(QLabel(self.obj.variables[i]['unit']),j,2, alignment=Qt.AlignCenter)
- self.x_pclist.append(l)
- gp.setLayout(lay)
- self.formLayout.addRow(gp)
- else:
- print("elseloop")
- print(i)
- if i == None:
- continue
- l = QLineEdit()
- if self.input_dict[i] != None:
- l.setText(str(self.input_dict[i]))
- print('before lay')
- lay = QGridLayout()
- lay.addWidget(QLabel(self.obj.variables[i]['name']+":"),0,0, alignment=Qt.AlignLeft) #self.obj.variables[i]['name']
- lay.addWidget(l,0,1, alignment=Qt.AlignCenter)
- print('after lay')
- if(i != 'MolFlow'):
- lay.addWidget(QLabel(self.obj.variables[i]['unit']),0,2, alignment=Qt.AlignCenter)
- else:
- lay.addWidget(QLabel('mol/s'),0,2, alignment=Qt.AlignCenter)
- print('after all')
- self.formLayout.addRow(lay)
- self.input_dict[i] = l
-
-
+ l = QLineEdit()
+ if self.input_dict[i] != None:
+ l.setText(str(self.input_dict[i]))
+ lay = QGridLayout()
+ lay.addWidget(QLabel(self.obj.variables[i]['name']+":"),0,0, alignment=Qt.AlignLeft)
+ lay.addWidget(l,0,1, alignment=Qt.AlignCenter)
+ lay.addWidget(QLabel(self.obj.variables[i]['unit']),0,2, alignment=Qt.AlignCenter)
+ self.formLayout.addRow(lay)
+ self.input_dict[i] = l
except Exception as e:
print(e)
@@ -140,35 +81,6 @@ class DockWidget(QDockWidget,ui_dialog):
for i in self.input_dict:
if (self.input_dict[i] == None):
continue
- if(i=="thermo_package"):
- if (self.input_dict[i].currentText()):
- self.dict[i] = self.input_dict[i].currentText()
- else:
- self.show_error()
- break
- elif(i=="Ctype"):
- if (self.input_dict[i].currentText()):
- self.dict[i] = self.input_dict[i].currentText()
- else:
- self.show_error()
- break
- elif(i =="x_pc"):
- l=[]
- mf = []
- total_moles = 0
- for mol_frac in self.x_pclist:
- if (mol_frac.text()):
- l.append(mol_frac.text())
- total_moles += float(l[-1])
- else:
- self.show_error()
- break
- for c in range(len(compound_selected)):
- mf.append(str(float(l[c])/total_moles))
- self.x_pclist[c].setText(mf[-1])
- self.dict[i] = ",".join(mf)
- elif(i == 'Pout' and self.obj.type == 'Mixer' or i == '' or i == 'HKey' or i == 'LKey'):
- self.dict[i] = self.input_dict[i].currentText()
else:
print(self.input_dict[i], i, self.obj.type)
if (self.input_dict[i].text()):
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index 1f3821d..431c298 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/Undo.dat b/Undo.dat
index b05cceb..b56b18f 100644
Binary files a/Undo.dat and b/Undo.dat differ
--
cgit
From 37a360da5346302eb881071f7db2fe7159f8e643 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Wed, 5 Aug 2020 21:07:37 +0630
Subject: Remove unnecessary codes from all dock widgets
---
DockWidgets/DockWidget.py | 4 ++--
DockWidgets/DockWidgetCompoundSeparator.py | 7 -------
DockWidgets/DockWidgetDistillationColumn.py | 5 +----
DockWidgets/DockWidgetFlash.py | 12 +++---------
DockWidgets/DockWidgetMaterialStream.py | 23 ++---------------------
DockWidgets/DockWidgetMixer.py | 12 +-----------
DockWidgets/DockWidgetShortcutColumn.py | 17 ++---------------
DockWidgets/DockWidgetSplitter.py | 13 +------------
8 files changed, 12 insertions(+), 81 deletions(-)
diff --git a/DockWidgets/DockWidget.py b/DockWidgets/DockWidget.py
index d6813ee..b3845bb 100644
--- a/DockWidgets/DockWidget.py
+++ b/DockWidgets/DockWidget.py
@@ -23,7 +23,7 @@ class DockWidget(QDockWidget,ui_dialog):
print("constructor ", self.input_dict)
self.pushButton_2.clicked.connect(self.param)
- self.dict = {}
+ self.dict = {} # a dictionary
self.container = container
# input data tab
@@ -76,7 +76,7 @@ class DockWidget(QDockWidget,ui_dialog):
def param(self):
try:
- self.dict={}
+ self.dict = {}
print("param.input_dict ", self.input_dict)
for i in self.input_dict:
if (self.input_dict[i] == None):
diff --git a/DockWidgets/DockWidgetCompoundSeparator.py b/DockWidgets/DockWidgetCompoundSeparator.py
index 1818290..6de61a5 100644
--- a/DockWidgets/DockWidgetCompoundSeparator.py
+++ b/DockWidgets/DockWidgetCompoundSeparator.py
@@ -21,18 +21,13 @@ class DockWidgetCompoundSeparator(QDockWidget,ui_dialog):
self.type = comptype
self.input_dict = []
- print("constructor ", self.input_dict)
self.input_params_list()
self.dict = []
def input_params_list(self):
try:
- print("input_params_list ", self.input_dict)
if self.type == 'CompoundSeparator':
-
- # self.gridLayout = QGridLayout()
calculationGroupBox = QGroupBox('Calculation Parameters')
-
calculationLayout = QGridLayout()
r1 = QRadioButton('Stream 1')
@@ -81,7 +76,6 @@ class DockWidgetCompoundSeparator(QDockWidget,ui_dialog):
def param(self):
try:
self.dict=[]
- print("param.input_dict ", self.input_dict)
self.dict = [self.input_dict[0].isChecked(), self.input_dict[1].isChecked()]
j = 2
@@ -91,7 +85,6 @@ class DockWidgetCompoundSeparator(QDockWidget,ui_dialog):
self.dict.append(self.input_dict[j+i+1].text())
j += 1
- print("param ", self.dict)
self.obj.param_setter(self.dict)
self.hide()
diff --git a/DockWidgets/DockWidgetDistillationColumn.py b/DockWidgets/DockWidgetDistillationColumn.py
index a3650e0..3255015 100644
--- a/DockWidgets/DockWidgetDistillationColumn.py
+++ b/DockWidgets/DockWidgetDistillationColumn.py
@@ -20,7 +20,6 @@ class DockWidgetDistillationColumn(QDockWidget,ui_dialog):
self.obj=obj
self.type = comptype
self.input_dict = []
- print("constructor ", self.input_dict)
self.pushButton_2.clicked.connect(self.param)
self.dict = []
self.input_params_list()
@@ -34,9 +33,7 @@ class DockWidgetDistillationColumn(QDockWidget,ui_dialog):
print("input_params_list ", self.input_dict)
# tab 1
- # self.l1.setText(self.obj.variables['Nt']['name']+":")
- # self.le1.setText(str(self.obj.variables['Nt']['value']))
- # self.l2.setText(self.obj.variables['InT_s']['name']+":")
+
l1 = QLineEdit()
self.lay1.addWidget(QLabel(self.obj.variables['Nt']['name'] + " :"), 0 ,0, alignment=Qt.AlignLeft)
self.lay1.addWidget(l1,0,1, alignment=Qt.AlignCenter)
diff --git a/DockWidgets/DockWidgetFlash.py b/DockWidgets/DockWidgetFlash.py
index 1634169..4e1c5e3 100644
--- a/DockWidgets/DockWidgetFlash.py
+++ b/DockWidgets/DockWidgetFlash.py
@@ -2,10 +2,7 @@ from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType
-import pandas as pd
-from functools import partial
from ComponentSelector import *
-from collections import defaultdict
from Graphics import *
ui_dialog,_ = loadUiType('DockWidgets/DockWidgetFlash.ui')
@@ -20,15 +17,12 @@ class DockWidgetFlash(QDockWidget,ui_dialog):
self.obj=obj
self.type = comptype
self.input_dict = []
- print("constructor ", self.input_dict)
self.input_params_list()
self.btn.clicked.connect(self.param)
- self.dict = []
+ self.dict = [] # a list
def input_params_list(self):
- try:
- print("input_params_list ", self.input_dict)
-
+ try:
self.l1.setText(self.obj.variables['thermo_package']['name']+":")
self.lines = [line.rstrip('\n') for line in open('thermopackage.txt')]
for j in self.lines:
@@ -63,7 +57,7 @@ class DockWidgetFlash(QDockWidget,ui_dialog):
def param(self):
try:
- self.dict={}
+ self.dict = []
print("param.input_dict ", self.input_dict)
self.dict = [self.input_dict[0].currentText(),self.input_dict[1].isChecked(), float(self.input_dict[2].text()), self.input_dict[3].isChecked(), float(self.input_dict[4].text())]
print("param ", self.dict)
diff --git a/DockWidgets/DockWidgetMaterialStream.py b/DockWidgets/DockWidgetMaterialStream.py
index ee57902..a661362 100644
--- a/DockWidgets/DockWidgetMaterialStream.py
+++ b/DockWidgets/DockWidgetMaterialStream.py
@@ -2,10 +2,7 @@ from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType
-import pandas as pd
-from functools import partial
from ComponentSelector import *
-from collections import defaultdict
from Graphics import *
ui_dialog,_ = loadUiType('DockWidgets/DockWidgetMaterialStream.ui')
@@ -24,9 +21,8 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.modes()
self.comboBox.currentIndexChanged.connect(self.mode_selection)
- print("constructor ", self.input_dict)
self.pushButton_2.clicked.connect(self.param)
- self.dict = {}
+ self.dict = {} # a dictionary
self.name_type = None
self.container = container
@@ -36,10 +32,6 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.lTreeWidget.setHeaderItem(header)
self.vTreeWidget.setHeaderItem(header)
- # self.mTreeWidget.itemClicked.connect(lambda : self.printer(self.mTreeWidget.currentItem()))
- # self.lTreeWidget.itemClicked.connect(lambda : self.printer(self.lTreeWidget.currentItem()))
- # self.vTreeWidget.itemClicked.connect(lambda : self.printer(self.vTreeWidget.currentItem()))
-
# input data tab
def modes(self):
modes_list = self.obj.modes_list
@@ -60,9 +52,7 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.input_params_list()
def input_params_list(self):
- try:
- print("input_params_list ", self.input_dict)
-
+ try:
for c,i in enumerate(self.input_dict):
if(i=="x_pc"):
noc = len(compound_selected)
@@ -113,7 +103,6 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
def param(self):
try:
self.dict={}
-
print("param.input_dict ", self.input_dict)
for i in self.input_dict:
print(i)
@@ -142,8 +131,6 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
print(self.input_dict[i])
self.show_error()
break
- # print(self.input_dict[-1].currentText())
- # self.dict['Thermo Package'] = self.input_dict['Thermo Package'].currentText()
print("param ", self.dict)
self.obj.param_setter(self.dict)
@@ -152,14 +139,10 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
except Exception as e:
print(e)
-
@staticmethod
def show_result(lst):
- #DockWidget1.flag = True
for i in lst:
i.results_category(i.name)
- #i.show()
-
def clear_results(self):
self.mTreeWidget.clear()
@@ -243,7 +226,6 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
child = QTreeWidgetItem(vroot, [compound_selected[t], str(resultval),obj.variables[k.split('.')[1]]['unit']])
t += 1
flag = False
- #print(obj.variables)
# Phase Properties Tab
phaseResLst = []
@@ -295,7 +277,6 @@ class DockWidgetMaterialStream(QDockWidget,ui_dialog):
self.vTableWidget.setItem(vrowPosition , 2, QTableWidgetItem(obj.variables[val.split('.')[1]]['unit']))
self.vTableWidget.resizeColumnsToContents()
if not '[' in val:
- #print(p[val.split('.')[1]])
print(obj.variables[val.split('.')[1]]['name'])
mrowPosition = self.mTableWidget.rowCount()
self.mTableWidget.insertRow(mrowPosition)
diff --git a/DockWidgets/DockWidgetMixer.py b/DockWidgets/DockWidgetMixer.py
index 804cdba..6c46c39 100644
--- a/DockWidgets/DockWidgetMixer.py
+++ b/DockWidgets/DockWidgetMixer.py
@@ -2,10 +2,7 @@ from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType
-import pandas as pd
-from functools import partial
from ComponentSelector import *
-from collections import defaultdict
from Graphics import *
ui_dialog,_ = loadUiType('DockWidgets/DockWidgetMixer.ui')
@@ -21,16 +18,13 @@ class DockWidgetMixer(QDockWidget,ui_dialog):
self.type = comptype
self.input_dict = []
self.x_pclist = []
- print("constructor ", self.input_dict)
self.input_params_list()
self.btn.clicked.connect(self.param)
self.dict = {}
# input data tab
def input_params_list(self):
- try:
- print("input_params_list ", self.input_dict)
-
+ try:
self.l1.setText(self.obj.variables['NI']['name']+":")
self.le1.setText(str(self.obj.variables['NI']['value']))
self.u1.setText(self.obj.variables['NI']['unit'])
@@ -38,8 +32,6 @@ class DockWidgetMixer(QDockWidget,ui_dialog):
self.cb2.addItem(str(i))
self.l2.setText(self.obj.variables['outPress']['name']+":")
-
-
self.input_dict = [self.le1, self.cb2]
except Exception as e:
@@ -51,9 +43,7 @@ class DockWidgetMixer(QDockWidget,ui_dialog):
def param(self):
try:
self.dict={}
- print("param.input_dict ", self.input_dict)
self.dict = [int(self.input_dict[0].text()), self.input_dict[1].currentText()]
- print("param ", self.dict)
self.obj.param_setter(self.dict)
self.hide()
diff --git a/DockWidgets/DockWidgetShortcutColumn.py b/DockWidgets/DockWidgetShortcutColumn.py
index 409c051..2b7dfae 100644
--- a/DockWidgets/DockWidgetShortcutColumn.py
+++ b/DockWidgets/DockWidgetShortcutColumn.py
@@ -2,10 +2,7 @@ from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType
-import pandas as pd
-from functools import partial
from ComponentSelector import *
-from collections import defaultdict
from Graphics import *
ui_dialog,_ = loadUiType('DockWidgets/DockWidgetShortcutColumn.ui')
@@ -20,7 +17,6 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
self.obj=obj
self.type = comptype
self.input_dict = []
- print("constructor ", self.input_dict)
self.input_params_list()
self.btn.clicked.connect(self.param)
self.dict = []
@@ -30,9 +26,7 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
# input data tab
def input_params_list(self):
- try:
- print("input_params_list ", self.input_dict)
-
+ try:
self.l1.setText(self.obj.variables['HKey']['name']+":")
self.l2.setText(self.obj.variables['LKey']['name']+":")
@@ -41,7 +35,6 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
self.cb1.addItem(str(i))
self.cb2.addItem(str(i))
-
self.l3.setText(self.obj.variables['HKey_x_pc']['name']+":")
self.le3.setText(str(self.obj.variables['HKey_x_pc']['value']))
self.u3.setText(self.obj.variables['HKey_x_pc']['unit'])
@@ -80,12 +73,9 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
def param(self):
try:
self.dict=[]
- print("param.input_dict ", self.input_dict)
self.dict = [self.input_dict[0].currentText(),self.input_dict[1].currentText(),float(self.input_dict[2].text()), float(self.input_dict[3].text()),
self.input_dict[4].currentText(), float(self.input_dict[5].text()), float(self.input_dict[6].text()), float(self.input_dict[7].text()),
- self.input_dict[8].currentText()]
-
- print("param ", self.dict)
+ self.input_dict[8].currentText()]
self.obj.param_setter(self.dict)
self.hide()
@@ -127,8 +117,5 @@ class DockWidgetShortcutColumn(QDockWidget,ui_dialog):
self.tableWidget.setItem(rowPosition , 1, QTableWidgetItem(resultval))
self.tableWidget.setItem(rowPosition , 2, QTableWidgetItem(obj.variables[val]['unit']))
self.tableWidget.resizeColumnsToContents()
-
- print(obj.variables)
-
except Exception as e:
print(e)
\ No newline at end of file
diff --git a/DockWidgets/DockWidgetSplitter.py b/DockWidgets/DockWidgetSplitter.py
index c1c0120..303d166 100644
--- a/DockWidgets/DockWidgetSplitter.py
+++ b/DockWidgets/DockWidgetSplitter.py
@@ -2,10 +2,7 @@ from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.uic import loadUiType
-import pandas as pd
-from functools import partial
from ComponentSelector import *
-from collections import defaultdict
from Graphics import *
ui_dialog,_ = loadUiType('DockWidgets/DockWidgetSplitter.ui')
@@ -20,23 +17,19 @@ class DockWidgetSplitter(QDockWidget,ui_dialog):
self.obj=obj
self.type = comptype
self.input_dict = []
- print("constructor ", self.input_dict)
self.input_params_list()
self.btn.clicked.connect(self.param)
self.dict = {}
# input data tab
def input_params_list(self):
- try:
- print("input_params_list ", self.input_dict)
-
+ try:
self.l1.setText(self.obj.variables['No']['name']+":")
self.le1.setText(str(self.obj.variables['No']['value']))
self.u1.setText(self.obj.variables['No']['unit'])
for i in self.obj.CalcType_modes:
self.cb2.addItem(str(i))
-
self.l2.setText(self.obj.variables['CalcType']['name']+":")
self.l3.setText("Stream 1 :")
@@ -45,7 +38,6 @@ class DockWidgetSplitter(QDockWidget,ui_dialog):
self.u4.setText('')
self.cb2.currentIndexChanged.connect(self.fun)
-
self.input_dict = [self.le1, self.cb2, self.le3, self.le4]
except Exception as e:
@@ -68,11 +60,8 @@ class DockWidgetSplitter(QDockWidget,ui_dialog):
def param(self):
try:
self.dict={}
- print("param.input_dict ", self.input_dict)
self.dict = [int(self.input_dict[0].text()),self.input_dict[1].currentText(), float(self.input_dict[2].text()), float(self.input_dict[3].text())]
- print("param ", self.dict)
self.obj.param_setter(self.dict)
self.hide()
-
except Exception as e:
print(e)
--
cgit
From 4babc3c0fb44e9dc0332e4d0da9bd12ab67b3c57 Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Fri, 7 Aug 2020 21:10:13 +0630
Subject: Clean unnecessary codes from Graphics.py, Container.py and Streams.py
---
Container.py | 18 ++-----
DockWidgets/__pycache__/DockWidget.cpython-37.pyc | Bin 4323 -> 4323 bytes
.../DockWidgetCompoundSeparator.cpython-37.pyc | Bin 3169 -> 3047 bytes
.../DockWidgetDistillationColumn.cpython-37.pyc | Bin 4926 -> 4893 bytes
.../__pycache__/DockWidgetFlash.cpython-37.pyc | Bin 2896 -> 2719 bytes
.../DockWidgetMaterialStream.cpython-37.pyc | Bin 8485 -> 8308 bytes
.../__pycache__/DockWidgetMixer.cpython-37.pyc | Bin 2215 -> 1983 bytes
.../DockWidgetShortcutColumn.cpython-37.pyc | Bin 4661 -> 4417 bytes
.../__pycache__/DockWidgetSplitter.cpython-37.pyc | Bin 2733 -> 2501 bytes
Graphics.py | 50 ++++---------------
Streams.py | 55 +++------------------
ToDoList.txt | 20 --------
Undo.dat | Bin 28665 -> 24066 bytes
UnitOperations.py | 37 ++------------
mainApp.py | 2 +-
15 files changed, 23 insertions(+), 159 deletions(-)
delete mode 100644 ToDoList.txt
diff --git a/Container.py b/Container.py
index db8e173..c77d631 100644
--- a/Container.py
+++ b/Container.py
@@ -1,21 +1,10 @@
-from OMChem.Flowsheet import Flowsheet
-from ComponentSelector import *
from collections import defaultdict
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import *
-from PyQt5.uic import loadUiType
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QGraphicsProxyWidget, QGraphicsObject, QGraphicsEllipseItem ,QGraphicsPixmapItem,QApplication, QGraphicsView, QGraphicsScene, QHBoxLayout, QWidget, QLabel
-from PyQt5.QtGui import QBrush ,QTransform ,QMouseEvent
-import PyQt5.QtCore as QtCore
-import PyQt5.QtWidgets as QtWidgets
import datetime
-import itertools
-import json
import pickle
import os
-import sys
+
+from OMChem.Flowsheet import Flowsheet
+from ComponentSelector import *
from Graphics import *
class Container():
@@ -157,7 +146,6 @@ class Container():
self.result=self.flowsheet.result_data
print("under Eqn mode simulation")
-
DockWidget.show_result(NodeItem.get_dock_widget())
# for i in self.graphics.scene.items():
diff --git a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc
index 431c298..86045c1 100644
Binary files a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc
index ecad97b..08716b1 100644
Binary files a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc
index e3b2d9e..55be9b4 100644
Binary files a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc
index 3054328..6828ab1 100644
Binary files a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc
index ddd011b..a8c9f80 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc
index 3ca772a..460aa1b 100644
Binary files a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc
index e1adb56..13f8328 100644
Binary files a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc differ
diff --git a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc
index bcd36dc..fea33a2 100644
Binary files a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc and b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc differ
diff --git a/Graphics.py b/Graphics.py
index ba034fb..8d7c220 100644
--- a/Graphics.py
+++ b/Graphics.py
@@ -1,20 +1,10 @@
-from functools import partial
-from collections import defaultdict
-import sys
-import numpy as np
-from OMChem.Flowsheet import Flowsheet
-import pandas as pd
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
-from PyQt5.QtGui import QTextDocument ,QTextCursor ,QTextCharFormat ,QFont ,QPixmap
-from PyQt5.uic import loadUiType
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QGraphicsProxyWidget, QGraphicsObject, QGraphicsEllipseItem ,QGraphicsPixmapItem,QApplication, QGraphicsView, QGraphicsScene, QHBoxLayout, QWidget, QLabel
-from PyQt5.QtGui import QBrush ,QTransform ,QMouseEvent, QIcon
+from PyQt5.QtGui import *
import PyQt5.QtGui as QtGui
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
-from ComponentSelector import *
+
from DockWidgets.DockWidget import *
from DockWidgets.DockWidgetMaterialStream import *
from DockWidgets.DockWidgetDistillationColumn import *
@@ -25,12 +15,10 @@ from DockWidgets.DockWidgetFlash import *
from DockWidgets.DockWidgetCompoundSeparator import *
from DockWidgets.DockWidgetCompressorExpander import *
-import datetime
-
from Container import *
-import Container
from Streams import *
from UnitOperations import *
+from ComponentSelector import *
class Graphics(QDialog, QtWidgets.QGraphicsItem):
@@ -42,7 +30,6 @@ class Graphics(QDialog, QtWidgets.QGraphicsItem):
self.graphicsView = graphicsView
self.pos = None
self.unit_operations = unit_operations
- # self.node_item_list = []
def get_scene(self):
return self.scene
@@ -51,13 +38,7 @@ class Graphics(QDialog, QtWidgets.QGraphicsItem):
return ComponentSelector(self)
def create_node_item(self,unit_operation, container):
- # node_item = NodeItem(unit_operation, container, self.graphicsView)
- # self.node_item_list.append(node_item)
- # return node_item
return NodeItem(unit_operation, container, self.graphicsView)
-
- # def boundingRect(self):
- # return QtCore.QRectF(self.rect)
def load_canvas(self, obj, container):
stm = ['MaterialStream','EngStm']
@@ -78,16 +59,9 @@ class Graphics(QDialog, QtWidgets.QGraphicsItem):
for i in obj:
if i.type == "MaterialStream":
print(eval(i.type))
- # eval(i.type).counter += 1
- # print(eval(i.type).counter)
elif i.type not in stm:
ip = i.input_stms
op = i.output_stms
- print(ip)
- print(op)
- # print(eval(i.type))
- # eval(i.type).counter += 1
- # print(eval(i.type).counter)
for j in ip:
pointA = NodeItem.get_instances(j.name)
pointB = NodeItem.get_instances(i.name)
@@ -285,17 +259,16 @@ class NodeSocket(QtWidgets.QGraphicsItem):
self.new_line=None
self.other_line=None
- # Brush.
+ # Brush
self.brush = QtGui.QBrush()
self.brush.setStyle(QtCore.Qt.SolidPattern)
- self.brush.setColor(QtGui.QColor(220,220,220,220)) #180,20,90,255
- # Pen.
+ self.brush.setColor(QtGui.QColor(220,220,220,220))
+ # Pen
self.pen = QtGui.QPen()
self.pen.setStyle(QtCore.Qt.SolidLine)
self.pen.setWidth(1)
- self.pen.setColor(QtGui.QColor(0,70,70,255)) #20,20,20,255
-
- # Lines.
+ self.pen.setColor(QtGui.QColor(0,70,70,255))
+ # Lines
self.out_lines = []
self.in_lines = []
@@ -492,9 +465,7 @@ class NodeItem(QtWidgets.QGraphicsItem):
self.dock_widget.hide()
self.pic=QtGui.QPixmap("Icons/"+self.type+".png")
- # self.pic = QIcon("svg/Cooler.svg")
self.rect = QtCore.QRect(0,0,self.pic.width(),self.pic.height())
- # self.rect = QtCore.QRect(0,0,100,100)
self.text = QGraphicsTextItem(self)
f = QFont()
f.setPointSize(8)
@@ -511,7 +482,7 @@ class NodeItem(QtWidgets.QGraphicsItem):
self.brush = QtGui.QBrush()
self.brush.setStyle(QtCore.Qt.SolidPattern)
self.brush.setColor(QtGui.QColor(80,0,90,255))
- # Pen.
+ # Pen
self.pen = QtGui.QPen()
self.pen.setStyle(QtCore.Qt.SolidLine)
self.pen.setWidth(1)
@@ -525,7 +496,6 @@ class NodeItem(QtWidgets.QGraphicsItem):
# initializing the node sockets
self.input , self.output = self.initialize_sockets(self.type)
-
def shape(self):
path = QtGui.QPainterPath()
path.addRect(self.boundingRect())
@@ -541,7 +511,6 @@ class NodeItem(QtWidgets.QGraphicsItem):
else:
painter.setPen(self.pen)
painter.drawPixmap(self.rect,self.pic)
- # painter.drawPixmap(self.rect, self.pic.pixmap(QSize(1000,1000)))
def initialize_sockets(self,type):
if(self.type=="Flash" or self.type=="CompoundSeparator"):
@@ -598,7 +567,6 @@ class NodeItem(QtWidgets.QGraphicsItem):
if j is not None:
default_tooltip = default_tooltip + f" {i} : {j}\n"
self.setToolTip(default_tooltip)
-
def findMainWindow(self):
'''
diff --git a/Streams.py b/Streams.py
index bed975d..2142e8f 100644
--- a/Streams.py
+++ b/Streams.py
@@ -1,8 +1,6 @@
-# from OMPython import OMCSession
-from PyQt5.QtCore import *
import json
import sys
-from collections import defaultdict
+from PyQt5.QtCore import *
class MaterialStream():
counter = 1
@@ -32,7 +30,7 @@ class MaterialStream():
self.modes_list = ["PT","PH","PVF","TVF","PS"]
self.variables = {
- 'P' : {'name':'Pressure', 'value':101325, 'unit':'Pa'}, # {'Pa':1, 'mmHg':0, 'N/m^2':0}},
+ 'P' : {'name':'Pressure', 'value':101325, 'unit':'Pa'},
'T' : {'name':'Temperature', 'value':300, 'unit':'K'},
'xvap' : {'name':'Vapour Phase Mole Fraction', 'value':None, 'unit':'g/s'},
@@ -117,38 +115,21 @@ class MaterialStream():
def param_setter(self,dict):
- print("inside paramsetter ", dict)
-
self.variables['x_pc']['value'] = dict['x_pc'].split(",")
self.thermo_package = dict['Thermo package']
self.variables['F_p[1]']['value'] = dict['MolFlow']
- print("inside")
- # self.Prop[self.mode2] = dict[self.mode2]
- # self.Prop[self.mode1] = dict[self.mode1]
self.variables[self.mode1]['value'] = dict[self.mode1]
self.variables[self.mode2]['value'] = dict[self.mode2]
-
- print(self.variables)
- print(self.variables['x_pc']['value'])
+
for i in range(len(self.compound_names)):
- print('####### x_pc #########\n',self.variables['x_pc']['value'][i])
- print('x_pc')
if self.variables['x_pc']['value'][i]:
self.variables['x_pc[1,'+str(i+1)+']']['value'] = self.variables['x_pc']['value'][i]
else:
self.variables['x_pc[1,'+str(i+1)+']']['value'] = None
- print('xm_pc')
- # if self.variables['xm_pc']['value'][i]:
- # self.variables['xm_pc[1,'+str(i+1)+']']['value'] = self.variables['xm_pc']['value'][i]
- # else:
self.variables['xm_pc[1,'+str(i+1)+']']['value'] = self.variables['xm_pc']['value']
- print('f_pc')
self.variables['F_pc[1,'+str(i+1)+']']['value'] = None
- print('fm_pc')
self.variables['Fm_pc[1,'+str(i+1)+']']['value'] = None
- print('first for')
- print('secnod for')
for i in range(0,len(self.compound_names)):
self.variables['x_pc[2,'+str(i+1)+']']['value'] = None
self.variables['xm_pc[2,'+str(i+1)+']']['value'] = None
@@ -166,22 +147,12 @@ class MaterialStream():
def get_min_eqn_values(self):
x_pclist = []
for i in range(0,len(self.compound_names)):
- #print(self.Prop['x_pc[1,'+str(i+1)+']'])
- #x_pclist.append(self.Prop['x_pc[1,'+str(i+1)+']'])
x_pclist.append(self.variables['x_pc[1,'+str(i+1)+']']['value'])
- print(x_pclist)
- #x_pclist = list(self.Prop(x_pc[1,1)])
x_pc = json.dumps(x_pclist)
- print(x_pc)
x_pc = x_pc.replace('[','{')
x_pc = x_pc.replace(']','}')
x_pc = x_pc.replace('"','')
- '''
- x_pcstr = json.dumps(self.x_pc)
- x_pcstr = x_pcstr.replace('[','{')
- x_pcstr = x_pcstr.replace(']','}')
- x_pcstr = x_pcstr.replace('"','')
- '''
+
if self.variables[self.mode1]['value']:
self.eqn_dict[self.mode1] = self.variables[self.mode1]['value']
if self.variables[self.mode2]['value']:
@@ -191,13 +162,6 @@ class MaterialStream():
if self.variables['F_pc']['value']:
self.eqn_dict['F_p[1]'] = self.variables['F_pc']['value']
- print("##############$GetMinVEqnValuesStart$##################")
- print("P:",self.variables[self.mode1]['value'])
- print("T:",self.variables[self.mode2]['value'])
- print("x_pc",self.variables['x_pc']['value'])
- print("F_p",self.variables['F_p[1]']['value'])
- print("##############$GetMinVEqnValuesEnd$##################")
-
def get_start_values(self):
try:
if self.variables[self.mode1]['value']:
@@ -333,16 +297,13 @@ class MaterialStream():
self.OM_data_init = self.OM_data_init + ("extends Simulator.Files.ThermodynamicPackages."+self.thermo_package+";\n")
self.OM_data_init = self.OM_data_init + ("end ms"+str(self.count)+";\n")
comp_count = len(addedcomp)
- # self.get_start_values()
-
- #self.OM_data_init = "Simulator.Streams.Mat_Stm_RL " + self.name +"(Nc = " + str(comp_count)
+
self.OM_data_init = self.OM_data_init + "ms"+str(self.count) +" " + self.name +"(Nc = " + str(comp_count)
self.OM_data_init = self.OM_data_init + ",C = {"
C = str(addedcomp).strip('[').strip(']')
C = C.replace("'","")
self.OM_data_init = self.OM_data_init + C + "},"
- #for key, value in self.start_dict.items():
- # self.OM_data_init = self.OM_data_init + key + '(start = ' + str(value) + '),'
+
self.OM_data_init = self.OM_data_init[:-1]
self.OM_data_init = self.OM_data_init + ');\n'
return self.OM_data_init
@@ -357,9 +318,7 @@ class MaterialStream():
if method == 'SM':
self.eqn_dict = {}
self.get_min_eqn_values()
- #self.GetEquationValues()
- #self.GetEquationValues()
-
+
for key,value in self.eqn_dict.items():
self.OM_data_eqn = self.OM_data_eqn + self.name + '.'+ key + ' = ' + str(value) + ';\n'
return self.OM_data_eqn
diff --git a/ToDoList.txt b/ToDoList.txt
deleted file mode 100644
index d5ea56d..0000000
--- a/ToDoList.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Components with Energy Streams
-
-1. Heater
-2. Cooler
-3. CompSep
-4. Pump
-5. Adiabatic Compressor
-6. Adiabatic Expander
-7. Shortcut Column (x2)
-8. Distillation Column (x2)
-9. PFR
-10. Conversion Reactor
-
-Components having Thermo_Packages
-
-1. Adiabatic Compressor
-2. material stream
-3. Shortcut Column
-4. Adiabatic Expander
-5. flash
\ No newline at end of file
diff --git a/Undo.dat b/Undo.dat
index b56b18f..80038db 100644
Binary files a/Undo.dat and b/Undo.dat differ
diff --git a/UnitOperations.py b/UnitOperations.py
index 1c98f86..5c53f59 100644
--- a/UnitOperations.py
+++ b/UnitOperations.py
@@ -1,17 +1,8 @@
from OMChem.Flowsheet import Flowsheet
from OMChem.EngStm import EngStm
-from PyQt5.QtCore import *
-from PyQt5.QtWidgets import *
-from PyQt5.QtGui import QTextDocument ,QTextCursor ,QTextCharFormat ,QFont ,QPixmap
-from PyQt5.uic import loadUiType
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QGraphicsProxyWidget, QGraphicsObject, QGraphicsEllipseItem ,QGraphicsPixmapItem,QApplication, QGraphicsView, QGraphicsScene, QHBoxLayout, QWidget, QLabel
-from PyQt5.QtGui import QBrush ,QTransform ,QMouseEvent
-from PyQt5.QtGui import *
-import PyQt5.QtCore as QtCore
-import PyQt5.QtWidgets as QtWidgets
from ComponentSelector import *
from Container import *
+from PyQt5.QtCore import *
class UnitOperation():
counter = 1
@@ -55,7 +46,6 @@ class UnitOperation():
def param_setter(self,params):
print("param_setter ", params)
for k,v in params.items():
- print(k, v)
if k == 'Thermo Package':
self.thermo_package = v
print('haha')
@@ -65,16 +55,12 @@ class UnitOperation():
else:
self.variables[k]['value'] = v
self.mode_val = params[self.mode]
- print(self.variables)
def add_connection(self,flag,UnitOpr):
if flag==1: # Input stream if flag is 1
self.input_stms.append(UnitOpr)
else :
self.output_stms.append(UnitOpr)
-
- print("input and output stms : ")
- print(self.input_stms, self.output_stms)
def set_pos(self,pos):
self.pos = pos
@@ -121,11 +107,6 @@ class UnitOperation():
C = C.replace("'", "")
self.OM_data_init += ',C = {' + C + '}'
- # if len(self.parameters) > 0:
- # for k,v in self.parameters.items():
- # self.OM_data_init += ', '
- # self.OM_data_init += k + ' = ' + str(v)
-
for k in self.parameters:
if(k == 'HKey_x_pc' or k == 'LKey_x_pc'):
continue
@@ -230,8 +211,6 @@ class ShortcutColumn(UnitOperation):
self.variables['RR']['value'] = params[7]
self.thermo_package = params[8]
- print(self.variables)
-
def OM_Flowsheet_Equation(self):
self.OM_data_eqn = ''
@@ -247,7 +226,6 @@ class ShortcutColumn(UnitOperation):
return self.OM_data_eqn
-
class DistillationColumn(UnitOperation):
def __init__(self,name='DistillationColumn'):
UnitOperation.__init__(self)
@@ -344,7 +322,6 @@ class CompoundSeparator(UnitOperation):
self.variables['SepStrm']['value'] = 1
else:
self.variables['SepStrm']['value'] = 2
-
for index, i in enumerate(range(2, len(params))):
if (i %2 != 0):
self.variables['SepVal_c']['value'].append(float(params[i]))
@@ -384,7 +361,6 @@ class CompoundSeparator(UnitOperation):
return self.OM_data_eqn
-
class Flash(UnitOperation):
def __init__(self,name='Flash'):
UnitOperation.__init__(self)
@@ -408,6 +384,7 @@ class Flash(UnitOperation):
'Tdef' : {'name':'Separation Temperature', 'value':298.15, 'unit':'K'},
'Pdef' : {'name':'Separation Pressure', 'value':101325, 'unit':'Pa'}
}
+
def param_setter(self,params):
print("param_setter ", params)
self.variables['thermo_package']['value'] = params[0]
@@ -415,7 +392,6 @@ class Flash(UnitOperation):
self.variables['Tdef']['value'] = params[2]
self.variables['BPdef']['value'] = params[3]
self.variables['Pdef']['value'] = params[4]
- print(self.variables)
def OM_Flowsheet_Equation(self):
self.OM_data_eqn = ''
@@ -467,7 +443,6 @@ class Splitter(UnitOperation):
self.type = 'Splitter'
self.no_of_outputs = 3
- # self.input_stms = None
self.CalcType_modes = ['Split_Ratio', 'Molar_Flow', 'Mass_Flow']
self.parameters = ['No', 'CalcType', 'SpecVal_s']
@@ -479,7 +454,7 @@ class Splitter(UnitOperation):
'SpecVal_s' : {'name':'Specification Value', 'value':[50,50], 'unit':''}
}
- specval = self.variables['SpecVal_s']['value'] # [50,50]
+ specval = self.variables['SpecVal_s']['value']
self.specval = json.dumps(specval).replace('[','{').replace(']','}')
def param_setter(self,params):
@@ -491,7 +466,6 @@ class Splitter(UnitOperation):
self.variables['SpecVal_s']['unit'] = 'mol/s'
elif self.variables['CalcType']['value'] == 'Mass_Flow':
self.variables['SpecVal_s']['unit'] = 'g/s'
- print(self.variables)
class Mixer(UnitOperation):
@@ -509,15 +483,10 @@ class Mixer(UnitOperation):
'NI' : {'name':'Number of Input', 'value':6, 'unit':''},
'outPress' : {'name':'Outlet Pressure', 'value':'Inlet_Average', 'unit':''},
}
-
- print(self.input_stms)
- print(self.output_stms)
def param_setter(self, params):
- print("param_setter ", params)
self.variables['NI']['value'] = int(params[0])
self.variables['outPress']['value'] = params[1]
- print(self.variables)
class Heater(UnitOperation):
diff --git a/mainApp.py b/mainApp.py
index 78bbd98..e2328dd 100644
--- a/mainApp.py
+++ b/mainApp.py
@@ -47,7 +47,7 @@ class MainApp(QMainWindow,ui):
self.thrd = None
# Creating instances of classes for the main app
- self.container = Container.Container(self.textBrowser, self.graphicsView)
+ self.container = Container(self.textBrowser, self.graphicsView)
self.comp = ComponentSelector(self)
# Setting up interactive canvas
--
cgit
From 4cffaf3d0d29ee1f2d31601dd1571c7de40a8c5f Mon Sep 17 00:00:00 2001
From: lucaszhao19
Date: Tue, 11 Aug 2020 20:06:51 +0630
Subject: Added Adiabatic Expander and Compressor DockWidgets
---
DockWidgets/DockWidgetCompressorExpander.py | 146 +++++++++++++++++++
DockWidgets/DockWidgetCompressorExpander.ui | 214 ++++++++++++++++++++++++++++
2 files changed, 360 insertions(+)
create mode 100644 DockWidgets/DockWidgetCompressorExpander.py
create mode 100644 DockWidgets/DockWidgetCompressorExpander.ui
diff --git a/DockWidgets/DockWidgetCompressorExpander.py b/DockWidgets/DockWidgetCompressorExpander.py
new file mode 100644
index 0000000..841b850
--- /dev/null
+++ b/DockWidgets/DockWidgetCompressorExpander.py
@@ -0,0 +1,146 @@
+from PyQt5.QtCore import *
+from PyQt5.QtWidgets import *
+from PyQt5.QtGui import *
+from PyQt5.uic import loadUiType
+from ComponentSelector import *
+from Graphics import *
+
+ui_dialog,_ = loadUiType('DockWidgets/DockWidgetCompressorExpander.ui')
+
+class DockWidgetCompressorExpander(QDockWidget,ui_dialog):
+
+ def __init__(self,name,comptype,obj,container, parent=None):
+ QDockWidget.__init__(self,parent)
+ self.setupUi(self)
+ self.setWindowTitle(obj.name)
+ self.name=name
+ self.obj=obj
+ self.type = comptype
+ self.input_dict = {}
+ self.x_pclist = []
+ self.modes()
+ self.comboBox.currentIndexChanged.connect(self.mode_selection)
+
+ self.pushButton_2.clicked.connect(self.param)
+ self.dict = {}
+
+ self.name_type = None
+ self.container = container
+
+ # input data tab
+ def modes(self):
+ modes_list = self.obj.modes_list
+ if(modes_list):
+ for j in modes_list:
+ self.comboBox.addItem(str(self.obj.variables[j]['name']))
+ self.mode_selection()
+ else:
+ self.comboBox.setDisabled(True)
+ self.input_dict= {}
+ self.input_dict = self.obj.param_getter()
+ self.input_params_list()
+
+ def mode_selection(self):
+ self.input_dict= {}
+ for i in reversed(range(self.formLayout.count())):
+ self.formLayout.removeRow(i)
+ print(self.comboBox.currentText())
+ for i in self.obj.variables:
+ if self.obj.variables[i]['name'] == self.comboBox.currentText():
+ currentText = i
+ break
+ self.input_dict = self.obj.param_getter(currentText)
+ print('mode selection ', self.input_dict)
+ self.input_params_list()
+
+ def input_params_list(self):
+ try:
+ print("input_params_list ", self.input_dict)
+ for c,i in enumerate(self.input_dict):
+ if i == None:
+ continue
+
+ l = QLineEdit()
+ if self.input_dict[i] != None:
+ l.setText(str(self.input_dict[i]))
+ lay = QGridLayout()
+ lay.addWidget(QLabel(self.obj.variables[i]['name']+":"),0,0, alignment=Qt.AlignLeft)
+ lay.addWidget(l,0,1, alignment=Qt.AlignCenter)
+ lay.addWidget(QLabel(self.obj.variables[i]['unit']),0,2, alignment=Qt.AlignCenter)
+
+ self.formLayout.addRow(lay)
+ self.input_dict[i] = l
+
+ self.lines = [line.rstrip('\n') for line in open('thermopackage.txt')]
+ for j in self.lines:
+ self.cbTP.addItem(str(j))
+ self.input_dict['Thermo Package'] = self.cbTP
+
+ except Exception as e:
+ print(e)
+
+ def show_error(self):
+ QMessageBox.about(self, 'Important', "Please fill all fields with data")
+
+ def param(self):
+ try:
+ self.dict={}
+ for i in self.input_dict:
+ if (self.input_dict[i] == None):
+ continue
+ elif (i == "Thermo Package"):
+ self.dict[i] = self.input_dict[i].currentText()
+ else:
+ print(self.input_dict[i], i, self.obj.type)
+ if (self.input_dict[i].text()):
+ self.dict[i] = self.input_dict[i].text()
+ else:
+ print(self.input_dict[i].text())
+ self.show_error()
+ break
+
+ self.obj.param_setter(self.dict)
+ self.hide()
+
+ except Exception as e:
+ print(e)
+
+ @staticmethod
+ def show_result(lst):
+ for i in lst:
+ try:
+ i.results_category(i.name)
+ except AttributeError:
+ pass
+
+ def clear_results(self):
+ self.tableWidget.setRowCount(0)
+
+ # result data tab
+ def results_category(self,name):
+ flag = True
+ try:
+ print("Under result category name ", name)
+ result=self.container.result
+ obj = self.container.fetch_object(name)
+ self.tableWidget.setRowCount(0)
+ variKeys = list(obj.variables.keys())
+ print(variKeys)
+ for i, val in enumerate(variKeys):
+ propertyname = name + '.' + val
+ print(i,val, propertyname)
+ if propertyname in result[0]:
+ ind = result[0].index(propertyname)
+ resultval = str(result[-1][ind])
+ print("######Resultsfetch####",val,resultval)
+ rowPosition = self.tableWidget.rowCount()
+ self.tableWidget.insertRow(rowPosition)
+ self.tableWidget.setItem(rowPosition , 0, QTableWidgetItem(obj.variables[val]['name']))
+ self.tableWidget.setItem(rowPosition , 1, QTableWidgetItem(resultval))
+ self.tableWidget.setItem(rowPosition , 2, QTableWidgetItem(obj.variables[val]['unit']))
+ self.tableWidget.resizeColumnsToContents()
+
+ except Exception as e:
+ print(e)
+
+
\ No newline at end of file
diff --git a/DockWidgets/DockWidgetCompressorExpander.ui b/DockWidgets/DockWidgetCompressorExpander.ui
new file mode 100644
index 0000000..372fc0b
--- /dev/null
+++ b/DockWidgets/DockWidgetCompressorExpander.ui
@@ -0,0 +1,214 @@
+
+
+ Form
+
+
+ true
+
+
+
+ 0
+ 0
+ 392
+ 700
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 3200
+ 5000
+
+
+
+ Form
+
+
+ false
+
+
+
+
+ 10
+ 30
+ 361
+ 621
+
+
+
+ false
+
+
+ 0
+
+
+
+ Input Data
+
+
+
+
+ 9
+ 9
+ 331
+ 71
+
+
+
+ Mode Selection
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Mode :
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ 10
+ 100
+ 331
+ 111
+
+
+
+ Parameter Selection
+
+
+ -
+
+
+
+
+
+
+
+ 10
+ 280
+ 331
+ 21
+
+
+
+ Submit
+
+
+
+
+
+ 10
+ 220
+ 331
+ 51
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Thermo Package
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ Results
+
+
+ -
+
+
+ 3
+
+
+ 110
+
+
+ true
+
+
+
+ Attribute
+
+
+
+
+ Value
+
+
+
+
+ Unit
+
+
+
+
+
+
+
+
+
+
+
--
cgit