Spaces:
Sleeping
Sleeping
File size: 5,087 Bytes
c993983 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | 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]])
|