diff options
-rw-r--r-- | Container.py | 18 | ||||
-rw-r--r-- | DockWidgets/__pycache__/DockWidget.cpython-37.pyc | bin | 4323 -> 4323 bytes | |||
-rw-r--r-- | DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc | bin | 3169 -> 3047 bytes | |||
-rw-r--r-- | DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc | bin | 4926 -> 4893 bytes | |||
-rw-r--r-- | DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc | bin | 2896 -> 2719 bytes | |||
-rw-r--r-- | DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc | bin | 8485 -> 8308 bytes | |||
-rw-r--r-- | DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc | bin | 2215 -> 1983 bytes | |||
-rw-r--r-- | DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc | bin | 4661 -> 4417 bytes | |||
-rw-r--r-- | DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc | bin | 2733 -> 2501 bytes | |||
-rw-r--r-- | Graphics.py | 50 | ||||
-rw-r--r-- | Streams.py | 55 | ||||
-rw-r--r-- | ToDoList.txt | 20 | ||||
-rw-r--r-- | Undo.dat | bin | 28665 -> 24066 bytes | |||
-rw-r--r-- | UnitOperations.py | 37 | ||||
-rw-r--r-- | mainApp.py | 2 |
15 files changed, 23 insertions, 159 deletions
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 Binary files differindex 431c298..86045c1 100644 --- a/DockWidgets/__pycache__/DockWidget.cpython-37.pyc +++ b/DockWidgets/__pycache__/DockWidget.cpython-37.pyc diff --git a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc Binary files differindex ecad97b..08716b1 100644 --- a/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc +++ b/DockWidgets/__pycache__/DockWidgetCompoundSeparator.cpython-37.pyc diff --git a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc Binary files differindex e3b2d9e..55be9b4 100644 --- a/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc +++ b/DockWidgets/__pycache__/DockWidgetDistillationColumn.cpython-37.pyc diff --git a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc Binary files differindex 3054328..6828ab1 100644 --- a/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc +++ b/DockWidgets/__pycache__/DockWidgetFlash.cpython-37.pyc diff --git a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc Binary files differindex ddd011b..a8c9f80 100644 --- a/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc +++ b/DockWidgets/__pycache__/DockWidgetMaterialStream.cpython-37.pyc diff --git a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc Binary files differindex 3ca772a..460aa1b 100644 --- a/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc +++ b/DockWidgets/__pycache__/DockWidgetMixer.cpython-37.pyc diff --git a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc Binary files differindex e1adb56..13f8328 100644 --- a/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc +++ b/DockWidgets/__pycache__/DockWidgetShortcutColumn.cpython-37.pyc diff --git a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc Binary files differindex bcd36dc..fea33a2 100644 --- a/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc +++ b/DockWidgets/__pycache__/DockWidgetSplitter.cpython-37.pyc 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): ''' @@ -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 Binary files differdiff --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): @@ -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 |