diff options
author | brenda-br | 2023-03-02 15:49:11 +0530 |
---|---|---|
committer | brenda-br | 2023-03-02 15:49:11 +0530 |
commit | 7af3526e105cc330422f8742ec5edec1c4a0a98f (patch) | |
tree | c00e283eaa3f67c64f66c828f518bb74abe55752 /src/main/python/utils/Bin_Phase_env.py | |
parent | 78624489cbff516cc4d15b0df738c6c2fe4f8a8d (diff) | |
download | Chemical-Simulator-GUI-7af3526e105cc330422f8742ec5edec1c4a0a98f.tar.gz Chemical-Simulator-GUI-7af3526e105cc330422f8742ec5edec1c4a0a98f.tar.bz2 Chemical-Simulator-GUI-7af3526e105cc330422f8742ec5edec1c4a0a98f.zip |
Restructuring Finalized for App Bundling
Diffstat (limited to 'src/main/python/utils/Bin_Phase_env.py')
-rw-r--r-- | src/main/python/utils/Bin_Phase_env.py | 241 |
1 files changed, 0 insertions, 241 deletions
diff --git a/src/main/python/utils/Bin_Phase_env.py b/src/main/python/utils/Bin_Phase_env.py deleted file mode 100644 index dd6f938..0000000 --- a/src/main/python/utils/Bin_Phase_env.py +++ /dev/null @@ -1,241 +0,0 @@ -import sys -import pandas as pd -import numpy as np -import os -import csv -from subprocess import Popen, PIPE - -from PyQt5.QtCore import * -from PyQt5.QtWidgets import * -from PyQt5.QtGui import * -import PyQt5.QtGui as QtGui -import PyQt5.QtCore as QtCore -import PyQt5.QtWidgets as QtWidgets -from PyQt5.uic import loadUiType - - -import pyqtgraph as pg -import pyqtgraph.exporters - -current = os.path.dirname(os.path.realpath(__file__)) -parent = os.path.dirname(current) -parentPath = os.path.dirname(parent) -sys.path.append(parentPath) - -ui_dialog,_ = loadUiType(parentPath+'/ui/utils/Binary_Phase_Env.ui') -pg.CONFIG_OPTIONS['crashWarning'] = False - -class BinPhaseEnv(QWidget,ui_dialog): - def __init__(self,comp): - QWidget.__init__(self) - self.setupUi(self) - - self.comp = comp - self.compunds = self.comp.get_compounds() - - for i in self.compunds: - self.comboBox.addItem(str(i)) - - for i in range(len(self.compunds)): - if i!=0: - self.comboBox_2.addItem(str(self.compunds[i])) - - self.comboBox_2.addItem(str(self.compunds[0])) - - self.lines = [line.rstrip('\n') for line in open(parentPath+'/python/utils/thermopackage.txt')] - for j in self.lines: - self.comboBox_3.addItem(str(j)) - - self.radioButton.setChecked(False) - self.radioButton_2.setChecked(False) - - self.button_handler() - self.counter = 1 - - def button_handler(self): - self.radioButton.clicked.connect(lambda:self.T_xy()) - self.radioButton_2.clicked.connect(lambda:self.P_xy()) - self.pushButton_2.clicked.connect(lambda:self.plot()) - - def T_xy(self): - self.radioButton.setChecked(True) - self.radioButton_2.setChecked(False) - for i in reversed(range(self.formLayout.count())): - self.formLayout.itemAt(i).widget().setParent(None) - - self.first = QLineEdit() - self.type = "P" - self.other = "T" - self.otherunit = "(K)" - self.formLayout.addRow(QLabel("P(Pa)"),self.first) - self.points = QLineEdit() - self.points.setText("40") - self.formLayout.addRow(QLabel("Number of data points"),self.points) - - def P_xy(self): - self.radioButton_2.setChecked(True) - self.radioButton.setChecked(False) - for i in reversed(range(self.formLayout.count())): - self.formLayout.itemAt(i).widget().setParent(None) - - self.first = QLineEdit() - self.type = "T" - self.other = "P" - self.otherunit = "(Pa)" - self.points = QLineEdit() - self.points.setText("40") - self.formLayout.addRow(QLabel("T(K)"),self.first) - self.formLayout.addRow(QLabel("Number of data points"),self.points) - - def get_omc_path(self): - try: - self.omhome = os.environ.get('OPENMODELICAHOME') - if self.omhome is None: - self.omhome = os.path.split(os.path.split(os.path.realpath(spawn.find_executable("omc")))[0])[0] - elif os.path.exists('/opt/local/bin/omc'): - self.omhome = '/opt/local' - elif os.path.exists('/usr/bin/omc'): - self.omhome = '/usr' - return os.path.join(self.omhome, 'bin', 'omc') - except BaseException: - #print("The OpenModelica compiler is missing in the System path please install it" ) - raise - - def plot(self): - try: - val = int(self.first.text(),10) - except: - val = 0 - try: - data_points = int(self.points.text(),10) - except: - data_points = 0 - - self.curr_path = os.getcwd() - self.sim_dir_path = os.path.join(self.curr_path,'./../Simulator') - self.Graphmo_path = os.path.join(self.sim_dir_path,'Graph.mo') - self.plot_mos_path = os.path.join(self.sim_dir_path,'PlotGraph.mos') - - self.data = [] - - self.comp1 = self.comboBox.currentText() - self.comp2 = self.comboBox_2.currentText() - self.comp_1 = self.comboBox.currentText().split('(')[0] - self.comp_2 = self.comboBox_2.currentText().split('(')[0] - - self.thermoPack = self.comboBox_3.currentText() - - self.data.append("model Graph\n") - self.data.append("import data = Simulator.Files.ChemsepDatabase;\n") - self.data.append("parameter data."+self.comp_1+" comp1;\n") - self.data.append("parameter data."+self.comp_2+" comp2;\n") - self.data.append("extends BinaryEnvelopes."+self.thermoPack+"(Nc = 2, data_points = "+str(data_points)+ ", comp = { comp1, comp2 }, "+self.type+" = fill( "+str(val)+", "+str(data_points)+"));\n") - self.data.append("end Graph;") - - with open(self.Graphmo_path, 'w') as txtfile: - for d in self.data: - txtfile.write(str(d)) - - with open(self.plot_mos_path, 'w') as mosFile: - mosFile.write("loadModel(Modelica);\n") - mosFile.write("loadFile(\"Simulator/package.mo\");\n") - mosFile.write("loadFile(\"BinaryEnvelopes.mo\");\n") - mosFile.write("loadFile(\"Graph.mo\");\n") - mosFile.write("simulate(Graph, outputFormat=\"csv\", stopTime=1.0, numberOfIntervals=1);\n") - - self.resdata = [] - self.omc_path = self.get_omc_path() - simpath = self.plot_mos_path - os.chdir(self.sim_dir_path) - - process = Popen([self.omc_path, '-s',simpath], stdout=PIPE, stderr=PIPE) - self.stdout, self.stderr = process.communicate() - - os.chdir(self.curr_path) - - csvpath = os.path.join(self.sim_dir_path,'Graph_res.csv') - - self.datay = [] - self.datax1 = [] - self.datax2 = [] - self.rows = [] - - with open (csvpath,'r') as resultFile: - self.resdata = [] - csvreader = csv.reader(resultFile,delimiter=',') - for row in csvreader: - self.resdata.append(row) - self.rows.append(row) - - if self.type=='T': - for k in range(len(self.rows[0])): - if self.rows[0][k][0]=='P': - self.datay.append(float(self.rows[1][k])) - length = len(self.rows[0][k]) - if self.rows[0][k][0]=='x' and self.rows[0][k][length-2]=='1': - self.datax1.append(float(self.rows[1][k])) - if self.rows[0][k][0]=='y' and self.rows[0][k][length-2]=='1': - self.datax2.append(float(self.rows[1][k])) - else: - for k in range(len(self.rows[0])): - if self.rows[0][k][0]=='T': - self.datay.append(float(self.rows[1][k])) - length = len(self.rows[0][k]) - if self.rows[0][k][0]=='x' and self.rows[0][k][length-2]=='1': - self.datax1.append(float(self.rows[1][k])) - - if self.rows[0][k][0]=='y' and self.rows[0][k][length-2]=='1': - self.datax2.append(float(self.rows[1][k])) - - plt = pg.PlotWidget() - plt.showGrid(x=True,y=True) - plt.addLegend() - plt.setXRange(0,1) - - c1 = plt.plot(self.datax1, self.datay,pen=pg.mkPen('b',width = 1), name='dew points') - c2 = plt.plot(self.datax2, self.datay,pen=pg.mkPen('r',width = 1), name='bubble points') - view_box = plt.plotItem.vb - self.tool_tip = "" - - def press_event(evt): - a = 10 - pos = evt - mousepoint = view_box.mapSceneToView(pos) - roi = pg.ROI(pos) - find_color = plt.mapToGlobal(pos.toPoint()) - - screen = QGuiApplication.primaryScreen() - image = screen.grabWindow(QApplication.desktop().winId()).toImage() - colour = QtGui.QColor(image.pixel(find_color.x(),find_color.y())) - - if colour.red()==255 or colour.blue()==255: - self.lineEdit_x.setText(str(round(mousepoint.x(),3))) - self.lineEdit_y.setText(str(round(mousepoint.y(),3))) - self.tool_tip = str(round(mousepoint.x(),3)) + ", " + str(round(mousepoint.y(),3)) - QApplication.setOverrideCursor(QCursor(QtCore.Qt.CrossCursor)) - else: - self.lineEdit_x.setText("") - self.lineEdit_y.setText("") - self.tool_tip = "" - QApplication.setOverrideCursor(QCursor(QtCore.Qt.ArrowCursor)) - - def entered(items): - for i in items: - if i.__class__.__name__ =="LegendItem": - self.lineEdit_x.setText("") - self.lineEdit_y.setText("") - QApplication.setOverrideCursor(QCursor(QtCore.Qt.ArrowCursor)) - else: - i.setToolTip(self.tool_tip) - - plt.scene().sigMouseMoved.connect(press_event) - plt.scene().sigMouseHover.connect(entered) - - plt.setLabel('left',self.other+self.otherunit,units = '') - plt.setLabel('bottom',self.comp1+'(mol. frac.)',units = '') - - self.new_tab = plt - self.new_tab.setObjectName("Plot "+str(self.counter)) - - self.tabWidget.addTab(self.new_tab,"Plot "+str(self.counter)) - self.counter+=1 |