Spaces:
Sleeping
Sleeping
| import os | |
| import csv | |
| class PinchExport: | |
| def __init__(self): | |
| pass | |
| def csv_problem_table(self, problem_table, _temperatures, newpath): | |
| colLabels = ['$Interval: S_i - S_{i+1}$', '$\\Delta T (\\degree C)$', '$\\Delta CP (kW / \\degree C)$', '$\\Delta H (kW)$', ''] | |
| cellText = [] | |
| i = 1 | |
| for interval in problem_table: | |
| cellRow = [] | |
| cellRow.extend(['{}: {} - {}'.format(i, _temperatures[i - 1], _temperatures[i]), | |
| interval['deltaS'], interval['deltaCP'], interval['deltaH']]) | |
| if interval['deltaH'] > 0: | |
| cellRow.append('Surplus') | |
| elif interval['deltaH'] == 0: | |
| cellRow.append('-') | |
| else: | |
| cellRow.append('Deficit') | |
| cellText.append(cellRow) | |
| i = i + 1 | |
| if not os.path.exists(newpath): | |
| os.makedirs(newpath) | |
| fileName = 'ProblemTable.csv' | |
| path = os.path.join(newpath, fileName) | |
| with open(path, 'w', newline='') as f: | |
| writer = csv.writer(f, delimiter=',') | |
| writer.writerow(['Interval: S1 - S2', 'delta T (degC)', 'delta CP (kW / degC)', 'delta H (kW)', '']) | |
| for rowText in cellText: | |
| writer.writerow(rowText) | |
| def csv_heat_cascade(self, unfeasible_heat_cascade, hot_utility, heat_cascade, pinch_temperature, newpath): | |
| cellText = [['Unfeasible Heat Cascade: ']] | |
| cellText.append(['', '', 'Hot Utility: 0 kW']) | |
| cellText.append(['Interval', 'Delta H (kW)', 'Exit H (total kW)']) | |
| i = 1 | |
| for interval in unfeasible_heat_cascade: | |
| cellText.append([str(i), interval['deltaH'], interval['exitH']]) | |
| i = i + 1 | |
| cellText.append(['', '', 'Cold Utility: {} kW'.format(unfeasible_heat_cascade[-1]['exitH'])]) | |
| cellText.append(['']) | |
| cellText.append(['Feasible Heat Cascade: ']) | |
| cellText.append(['', '', 'Hot Utility: {} kW'.format(hot_utility)]) | |
| cellText.append(['Interval', 'Delta H (kW)', 'Exit H (total kW)']) | |
| i = 1 | |
| for interval in heat_cascade: | |
| cellText.append([str(i), interval['deltaH'], interval['exitH']]) | |
| i = i + 1 | |
| cellText.append(['', '', 'Cold Utility: {} kW'.format(heat_cascade[-1]['exitH'])]) | |
| cellText.append(['','', 'Pinch Temperature: {} degC'.format(pinch_temperature)]) | |
| if not os.path.exists(newpath): | |
| os.makedirs(newpath) | |
| fileName = 'HeatCascade.csv' | |
| path = os.path.join(newpath, fileName) | |
| with open(path, 'w', newline='') as f: | |
| writer = csv.writer(f, delimiter=',') | |
| for rowText in cellText: | |
| writer.writerow(rowText) | |
| def csv_shifted_composite_diagram(self, newpath, shifted_composite_diagram): | |
| if not os.path.exists(newpath): | |
| os.makedirs(newpath) | |
| fileName = 'ShiftedCompositeDiagram.csv' | |
| path = os.path.join(newpath, fileName) | |
| with open(path, 'w', newline='') as f: | |
| writer = csv.writer(f, delimiter=',') | |
| writer.writerow(['Hot H', 'Hot T']) | |
| for i in range(0, len(shifted_composite_diagram['hot']['H'])): | |
| writer.writerow([shifted_composite_diagram['hot']['H'][i], | |
| shifted_composite_diagram['hot']['T'][i]]) | |
| writer.writerow(['']) | |
| writer.writerow(['Cold H', 'Cold T']) | |
| for i in range(0, len(shifted_composite_diagram['cold']['H'])): | |
| writer.writerow([shifted_composite_diagram['cold']['H'][i], | |
| shifted_composite_diagram['cold']['T'][i]]) | |
| def csv_composite_diagram(self, newpath, composite_diagram): | |
| if not os.path.exists(newpath): | |
| os.makedirs(newpath) | |
| fileName = 'CompositeDiagram.csv' | |
| path = os.path.join(newpath, fileName) | |
| with open(path, 'w', newline='') as f: | |
| writer = csv.writer(f, delimiter=',') | |
| writer.writerow(['Hot H', 'Hot T']) | |
| for i in range(0, len(composite_diagram['hot']['H'])): | |
| writer.writerow([composite_diagram['hot']['H'][i], | |
| composite_diagram['hot']['T'][i]]) | |
| writer.writerow(['']) | |
| writer.writerow(['Cold H', 'Cold T']) | |
| for i in range(0, len(composite_diagram['cold']['H'])): | |
| writer.writerow([composite_diagram['cold']['H'][i], | |
| composite_diagram['cold']['T'][i]]) | |
| def csv_grand_composite_curve(self, newpath, grand_composite_curve): | |
| if not os.path.exists(newpath): | |
| os.makedirs(newpath) | |
| fileName = 'GrandCompositeCurve.csv' | |
| path = os.path.join(newpath, fileName) | |
| with open(path, 'w', newline='') as f: | |
| writer = csv.writer(f, delimiter=',') | |
| writer.writerow(['Net H (kW)', 'T(degC)']) | |
| for i in range(0, len(grand_composite_curve['H'])): | |
| writer.writerow([grand_composite_curve['H'][i], | |
| grand_composite_curve['T'][i]]) | |