Optimization method 2.5 parametric studies

Previously, I obtained reasonable convergence on optima using a two-step strategy: first, simply enforce feasibility and optimize cooling output without regard to cost; then for any given cooling output goal less than the maximum, enforce that as a constraint and optimize system cost (from size and flow parameters). With some art in selecting constraint functions, I implemented this using the COBYLA optimization routine.

Since that method can be made to work, let's do a parametric study in two parameters: temperature for heat rejection (T) and cost (UA). For each heat reject temperature, we will determine the maximum cooling (Q_max), then build a cost vs cooling curve. The data should form a surface of points (T,UA,Q). We can also visualize that surface by projecting and plotting isolines, for example, isolines of UA on a (T,Q) plot.

Setup

In [14]:
%load_ext autoreload
%autoreload 2
In [15]:
import matplotlib
import numpy
from numpy import array, inf, nan
import pandas
from IPython.display import HTML, SVG, clear_output
In [16]:
#matplotlib.use('svg')
%matplotlib notebook
import matplotlib.pyplot as plt
plt.rcParams['svg.fonttype'] = 'none'
plt.rcParams['font.sans-serif'] = 'Arial'
In [17]:
from io import BytesIO
def pltsvg():
    imgdata = BytesIO()
    plt.savefig(imgdata)
    imgdata.seek(0)
    display(SVG(data=imgdata.read()))
In [18]:
import ammonia1
import system_aqua1
import scipy.optimize
In [19]:
def saturate(x, bottom=-numpy.inf, top=0):
    a_bottom = numpy.empty_like(x)
    a_top = numpy.empty_like(x)
    a_bottom.fill(bottom)
    a_top.fill(top)
    return numpy.minimum(a_top,
                         numpy.maximum(a_bottom,
                                       x))

def barrier1(c, length_scale):
    """The domain for B is the feasible set only.
    We want B large near boundary, but small elsewhere.
    Feasible means c > 0 and g < 0. Please input c.
    """
    g = numpy.negative(c)
    b = numpy.exp(g / length_scale)
    return numpy.sum(b)

def decay1(step_number, initial_value = 1., rate = 1.):
    """A decaying function to scale barrier functions.
    step_number: as this increases, I decay.
    initial_value: value when step_number = 0.
    decay_rate: how fast to decay.
    """
    # Magnitude tends to zero, slowly
    mu_B = initial_value * numpy.exp(-rate * step_number)
    return mu_B        

def penalty1(c, length_scale):
    """We want P = 0 for feasible, P > 0 elsewhere
    Feasible means c > 0 and g < 0.
    """
    g = numpy.negative(c)
    g = saturate(g,bottom=0,top=numpy.inf)
    p = (g / length_scale)**2
    return numpy.sum(p)

def grow1(step_number, initial_value = 1., rate = 1.):
    """A growing function to scale penalty functions."""
    # Magnitude tends to infinite, bit more quickly
    mu_P = initial_value * numpy.exp(rate * step_number)
    return mu_P
In [16]:
step_number = numpy.arange(50)
mu_B = decay1(step_number,initial_value=1000,rate=0.2)
mu_P = grow1(step_number,initial_value=1,rate=0.2)
plt.close('all')
plt.figure()
plt.semilogy(step_number,mu_B,'r',label='barrier')
plt.semilogy(step_number,mu_P,'b',label='penalty')
plt.xlabel('Optimization step number')
plt.ylabel('Scaling for constraint function')
plt.legend()
plt.show()

Strategy

An extension of a previous idea, kind of the dual problem -- Perform optimization in two steps: first with no constraint on UA (cost) to determine maximum Q (output). Then for each Q in a set of lesser values, optimize with respect to cost. This will deliver an optimal cost vs output curve.

For the first step, since we are not interested in UA, we can be less strict with the constraints on heat exchange feasibility. Specifically, we can impose them via penalty constraints instead of barrier constraints.

In [8]:
class Problem_2_5_A:
    def __init__(self, bdry, mu=0.1):
        self.bdry = bdry
        self.mu = mu
        self.Ncons = 7
        self.n_calls = 0
        # Soft constraints mode: this is sent to minimizer
        self.constraints = [{'type': 'ineq',
                             'fun': self.constraint,
                             'args': (i,)
                            } for i in range(self.Ncons)]
            
    def objective(self, xC):
        step_number = numpy.floor(self.n_calls / 7)
        self.n_calls += 1
        # print(xC,flush=True)
        Q,B,P = 0.,0.,0.
        try:
            ch = system_aqua1.makeChiller(xC)
            sys = system_aqua1.System(self.bdry, ch)
            
            # Barriers
            # Magnitude tends to zero, slowly
            mu_B = 1000. * numpy.exp(-0.1 * step_number)
            length_scale_b = 1
            # Or ... magnitude fixed, but shape changes
            mu_B = 1000
            length_scale_b = 1 * numpy.exp(-0.1 * step_number)
            
            # These are zero at the boundary ...
            barriers = [ch.check_rectifier_delta_T]                        
            B = mu_B * barrier1(barriers,length_scale_b)
            
            # Penalties
            # Magnitude tends to infinite
            mu_P = 1 * numpy.exp(0.3 * step_number)
            penalties = [deltaT - 0.01
                         for name, deltaT, epsilon, UA, Qhx in sys.data]
            P = mu_P * penalty1(penalties,1)
            
            Q = sys.chiller.Q_evap
        except KeyboardInterrupt as e:
            raise e
        except:
            Q = numpy.inf
        
        print(self.n_calls, step_number, Q, B, P, "\n", flush=True)
        return -Q + B + P
    
    def constraint(self, x, *args):
        cons = [x[0] - 0.1,
                1. - x[0],
                x[2] - x[1] - 1.0,
                x[3] - x[2] - 0.1,
                x[4] - x[1] - 10.0,
                x[5] - x[3] - 1.0,
                x[5] - x[4] - 1.0]
        if len(args) > 0:
            i, = args
            return cons[i]
        else:
            return cons

    def callback(self, x):
        print("Did an iteration at ", x)
In [9]:
class Problem_2_5_B:
    def __init__(self, bdry, Q_goal, mu=0.1):
        self.bdry = bdry
        self.Q_goal = Q_goal
        self.mu = mu
        self.Ncons = 7
        self.n_calls = 0
        # Soft constraints mode: this is sent to minimizer
        self.constraints = [{'type': 'ineq',
                             'fun': self.constraint,
                             'args': (i,)
                            } for i in range(self.Ncons)]
            
    def objective_raw(self, xC):
        try:
            ch = system_aqua1.makeChiller(xC)
            sys = system_aqua1.System(self.bdry, ch)
            UA = sys.totalUA
        except:
            UA = numpy.nan
        return UA

        
    def objective(self, xC):
        step_number = numpy.floor(self.n_calls / 7)
        self.n_calls += 1
        #print(xC,flush=True)
        UA,B,P = 0.,0.,0.
        try:
            ch = system_aqua1.makeChiller(xC)
            sys = system_aqua1.System(self.bdry, ch)
            
            # Barriers
            # Magnitude tends to zero, slowly
            mu_B = 1000. * numpy.exp(-0.1 * step_number)
            length_scale_b = 1
            # Or ... magnitude fixed, but shape changes
            mu_B = 1000
            length_scale_b = 1 * numpy.exp(-0.1 * step_number)
            
            # These are zero at the boundary ...
            barriers = [ch.check_rectifier_delta_T] \
                       + [deltaT
                          for name, deltaT, epsilon, UA, Qhx in sys.data]
            B = mu_B * barrier1(barriers,length_scale_b)
            
            # Penalties
            # Magnitude tends to infinite
            mu_P = 1 * numpy.exp(0.3 * step_number)
            penalties = [ch.Q_evap - self.Q_goal]
            P = mu_P * penalty1(penalties,1)
            
            UA = sys.totalUA
        except KeyboardInterrupt as e:
            raise e
        except:
            UA = numpy.inf
        
        # print(self.n_calls, step_number, UA, B, P, "\n", flush=True)
        return UA + B + P
    
    def constraint(self, x, *args):
        cons = [x[0] - 0.1,
                1. - x[0],
                x[2] - x[1] - 1.0,
                x[3] - x[2] - 0.1,
                x[4] - x[1] - 10.0,
                x[5] - x[3] - 1.0,
                x[5] - x[4] - 1.0]
        if len(args) > 0:
            i, = args
            return cons[i]
        else:
            return cons

    def callback(self, x):
        print("Did an iteration at ", x)

Parametric study across T_heat_reject

In [20]:
def display_result(x):
    try:
        print("X = ")
        display(x)
        ch = system_aqua1.makeChiller(x)
        sys = system_aqua1.System(bdry, ch)
        display(sys)
    except KeyboardInterrupt as e:
        raise e
    except Exception as e:
        display(e)
In [21]:
t_heat_reject_range = 273.15 + numpy.arange(20,61,5)
In [147]:
opts = [None] * len(t_heat_reject_range)

Step one

In [24]:
for i,T_heat_reject in enumerate(t_heat_reject_range):
    if opts[i] is None:
        print("Case {}, T_heat_reject = {} K".format(i, T_heat_reject))
        rT = T_heat_reject
        xB = [400, 1, T_heat_reject, 3, T_heat_reject, 5, 285, 4, T_heat_reject, 0.15]
        bdry = system_aqua1.makeBoundary(xB)
        P = Problem_2_5_A(bdry)
        x = numpy.array([0.05, 278.45, rT+7, rT+8, rT+5, 395.15])
        
        P.n_calls = 7*30
        opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                  constraints=P.constraints, callback=P.callback,
                                  options={'disp':True,'maxiter':50,'rhobeg':0.1})
        x = opt.x
        display("First pass and we have this ... ")
        display_result(x)

        P.n_calls = 7*40
        opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                  constraints=P.constraints, callback=P.callback,
                                  options={'disp':True,'maxiter':50,'rhobeg':0.1})
        x = opt.x
        display("Second pass and we have this ... ")
        display_result(x)

        P.n_calls = 7*50
        opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                  constraints=P.constraints, callback=P.callback,
                                  options={'disp':True,'maxiter':50,'rhobeg':0.01})
        display("Third pass and we have this ... ")
        display_result(x)

        opts[i] = opt
Case 0, T_heat_reject = 293.15 K
C:\Users\nfette\Miniconda3\envs\openACHP\lib\site-packages\scipy\optimize\_minimize.py:403: RuntimeWarning: Method COBYLA does not support callback.
  warn('Method %s does not support callback.' % method, RuntimeWarning)
Note: Absorber inlet is subcooled
C:\Users\nfette\Miniconda3\envs\openACHP\lib\site-packages\scipy\interpolate\_cubic.py:147: RuntimeWarning: divide by zero encountered in true_divide
  mk = (y[1:] - y[:-1]) / hk
C:\Users\nfette\Miniconda3\envs\openACHP\lib\site-packages\scipy\interpolate\_cubic.py:165: RuntimeWarning: invalid value encountered in true_divide
  whmean = (w1/mk[:-1] + w2/mk[1:]) / (w1 + w2)
211 30.0 29.3426607866 8.88824099481e-197 2045.94701491 

Note: Absorber inlet is subcooled
212 30.0 88.0279823597 8.88824099481e-197 2045.95661909 

Note: Absorber inlet is subcooled
213 30.0 88.2479969814 9.83458747162e-196 1914.60615648 

Note: Absorber inlet is subcooled
214 30.0 88.1631796043 1.01618763273e-196 1822.45823884 

Note: Absorber inlet is subcooled
215 30.0 88.1631796043 7.57316972933e-196 1822.45823884 

Note: Absorber inlet is subcooled
216 30.0 87.9564109646 1.14805121731e-197 1280.0294175 

Note: Absorber inlet is subcooled
217 30.0 88.005971887 1.14805121731e-197 1299.88010459 

Note: Absorber inlet is subcooled
218 31.0 93.8320709629 1.33399233081e-219 1108.62680934 

Note: Absorber inlet is subcooled
219 31.0 98.1737330263 6.74568544905e-221 997.074130878 

Note: Absorber inlet is subcooled
220 31.0 100.308567159 9.12443222761e-220 958.766363235 

Note: Absorber inlet is subcooled
221 31.0 71.4845744468 9.15266871564e-220 933.779022092 

Note: Absorber inlet is subcooled
222 31.0 97.0616889387 4.12655677271e-221 741.465219588 

Note: Absorber inlet is subcooled
223 31.0 99.4711228517 1.43570110793e-222 441.739880582 

Note: Absorber inlet is subcooled
224 31.0 66.585058418 4.49320268438e-224 281.583250937 

Note: Absorber inlet is subcooled
225 32.0 81.6062965234 9.4942395904e-249 129.743899363 

Note: Absorber inlet is subcooled
226 32.0 94.6431130724 1.99276117038e-249 21.9105390141 

Note: Absorber inlet is subcooled
227 32.0 105.339610846 9.61061104994e-251 11.0634922466 

Note: Absorber inlet is subcooled
228 32.0 92.0667055501 4.2829654725e-250 9.77152431589 

Note: Absorber inlet is subcooled
229 32.0 128.423482186 3.55672394157e-251 1.53445158618 

Note: Absorber inlet is subcooled
230 32.0 105.769661652 7.78975686634e-252 0.0 

Note: Absorber inlet is subcooled
231 32.0 152.771277626 9.18897359164e-252 31343.0158531 

Note: Absorber inlet is subcooled
232 33.0 124.339725183 2.15963650837e-277 80.5342662624 

Note: Absorber inlet is subcooled
233 33.0 125.424369898 1.2745637334e-277 25.8237491724 

Note: Absorber inlet is subcooled
234 33.0 130.682292756 3.58755998935e-278 254.485401303 

Note: Absorber inlet is subcooled
235 33.0 125.615484595 1.6970950665e-277 27.8505226913 

Note: Absorber inlet is subcooled
236 33.0 134.749503619 3.4861267739e-278 2191.2754173 

Note: Absorber inlet is subcooled
237 33.0 115.511676125 4.71363310181e-277 1.25258699248 

Note: Absorber inlet is subcooled
238 33.0 127.928933738 1.49480437598e-277 1.73293581123 

Note: Absorber inlet is subcooled
239 34.0 131.343312133 2.31594553815e-307 584.793758061 

Note: Absorber inlet is subcooled
240 34.0 122.762848321 3.78050176837e-307 5.45981091741 

Note: Absorber inlet is subcooled
241 34.0 133.591165659 2.16633076863e-307 2189.58295224 

Note: Absorber inlet is subcooled
242 34.0 127.115934167 3.32023123659e-307 1.98040075811 

Note: Absorber inlet is subcooled
243 34.0 126.276557667 3.90732974061e-307 6.73908402049 

Note: Absorber inlet is subcooled
244 34.0 126.336049018 2.12909765101e-307 1.37203870994 

Note: Absorber inlet is subcooled
245 34.0 124.465048986 2.54127361666e-307 5.41017534551 

Note: Absorber inlet is subcooled
246 35.0 127.010024833 0.0 4.56410520399 

Note: Absorber inlet is subcooled
247 35.0 128.485512259 0.0 3.8548891031 

Note: Absorber inlet is subcooled
248 35.0 131.157019529 0.0 677.049011501 

Note: Absorber inlet is subcooled
249 35.0 127.434873599 0.0 4.54720957714 

Note: Absorber inlet is subcooled
250 35.0 127.891633468 0.0 4.8875416279 

Note: Absorber inlet is subcooled
251 35.0 128.073029809 0.0 3.96231695646 

Note: Absorber inlet is subcooled
252 35.0 128.259381171 0.0 3.62680791814 

Note: Absorber inlet is subcooled
253 36.0 129.110673771 0.0 14.3483762411 

Note: Absorber inlet is subcooled
254 36.0 128.619476748 0.0 5.53241839224 

Note: Absorber inlet is subcooled
255 36.0 127.826373349 0.0 5.27012565341 

Note: Absorber inlet is subcooled
256 36.0 128.477899682 0.0 5.17186202632 

Note: Absorber inlet is subcooled
257 36.0 128.159266193 0.0 4.33245166851 

Note: Absorber inlet is subcooled
258 36.0 128.30126289 0.0 5.37536082782 

Note: Absorber inlet is subcooled
259 36.0 128.27361915 0.0 5.1037031302 

Note: Absorber inlet is subcooled
260 37.0 128.366926102 0.0 6.92020705122 

'First pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.89591 0.953251 8.95054180.194
rect 6.16349 0.77556 1.02236 9.72029
abs -0.000194433 1.00002 inf 175.826
cond 1.54541 0.970924 35.4646 123.273
evap 0.0363772 0.995287 89.6341 128.423
total 0 0 inf 0
Note: Absorber inlet is subcooled
281 40.0 128.423482186 0.0 16.914530482 

Note: Absorber inlet is subcooled
282 40.0 186.545908554 0.0 2178629.81334 

Note: Absorber inlet is subcooled
283 40.0 128.744907878 0.0 1390.18056358 

Note: Absorber inlet is subcooled
284 40.0 128.297627118 0.0 0.0 

Note: Absorber inlet is subcooled
285 40.0 128.297627118 0.0 0.0 

Note: Absorber inlet is subcooled
286 40.0 127.996758765 0.0 0.0 

Note: Absorber inlet is subcooled
287 40.0 128.37139887 0.0 0.208133304003 

Note: Absorber inlet is subcooled
288 41.0 70.232060958 0.0 0.0 

Note: Absorber inlet is subcooled
289 41.0 129.379905687 0.0 6.87637500976 

Note: Absorber inlet is subcooled
290 41.0 155.463107725 0.0 565360.303557 

Note: Absorber inlet is subcooled
291 41.0 113.791554212 0.0 0.0 

Note: Absorber inlet is subcooled
292 41.0 128.297627118 0.0 0.0 

Note: Absorber inlet is subcooled
293 41.0 128.335723806 0.0 0.241722009911 

Note: Absorber inlet is subcooled
294 41.0 128.335240285 0.0 12.7062266858 

Note: Absorber inlet is subcooled
295 42.0 135.348003883 0.0 45303.0244111 

Note: Absorber inlet is subcooled
296 42.0 128.288422716 0.0 0.0 

Note: Absorber inlet is subcooled
297 42.0 128.376875459 0.0 88.4994022095 

Note: Absorber inlet is subcooled
298 42.0 129.424998948 0.0 343.270538865 

Note: Absorber inlet is subcooled
299 42.0 128.162859373 0.0 0.0 

Note: Absorber inlet is subcooled
300 42.0 128.495523066 0.0 17.4020241784 

Note: Absorber inlet is subcooled
301 42.0 129.675861523 0.0 704.634087156 

Note: Absorber inlet is subcooled
302 43.0 128.26741462 0.0 0.0 

Note: Absorber inlet is subcooled
303 43.0 124.672360182 0.0 0.0 

Note: Absorber inlet is subcooled
304 43.0 128.346724996 0.0 0.05349012604 

Note: Absorber inlet is subcooled
305 43.0 128.297627118 0.0 0.0 

Note: Absorber inlet is subcooled
306 43.0 126.4852008 0.0 0.0 

Note: Absorber inlet is subcooled
307 43.0 128.298779803 0.0 0.0 

Note: Absorber inlet is subcooled
308 43.0 130.112609166 0.0 2233.25547048 

Note: Absorber inlet is subcooled
309 44.0 127.392556034 0.0 0.0 

Note: Absorber inlet is subcooled
310 44.0 128.315634184 0.0 0.0 

Note: Absorber inlet is subcooled
311 44.0 129.222531052 0.0 230.591083961 

Note: Absorber inlet is subcooled
312 44.0 128.302262585 0.0 0.0 

Note: Absorber inlet is subcooled
313 44.0 127.409499746 0.0 0.0 

Note: Absorber inlet is subcooled
314 44.0 128.323217378 0.0 0.0 

Note: Absorber inlet is subcooled
315 44.0 129.230516184 0.0 241.139624683 

Note: Absorber inlet is subcooled
316 45.0 127.870146938 0.0 0.0 

Note: Absorber inlet is subcooled
317 45.0 128.323217378 0.0 0.0 

Note: Absorber inlet is subcooled
318 45.0 128.776866679 0.0 0.0 

Note: Absorber inlet is subcooled
319 45.0 129.230516184 0.0 325.504461015 

Note: Absorber inlet is subcooled
320 45.0 128.776867748 0.0 0.0 

Note: Absorber inlet is subcooled
321 45.0 128.592439546 0.0 0.0 

Note: Absorber inlet is subcooled
322 45.0 128.51826651 0.0 0.0 

Note: Absorber inlet is subcooled
323 46.0 128.710831206 0.0 0.0 

Note: Absorber inlet is subcooled
324 46.0 128.776870919 0.0 0.0 

Note: Absorber inlet is subcooled
325 46.0 128.629160422 0.0 0.0 

Note: Absorber inlet is subcooled
326 46.0 129.003697676 0.0 58.1650096562 

Note: Absorber inlet is subcooled
327 46.0 128.730860301 0.0 0.0 

Note: Absorber inlet is subcooled
328 46.0 128.776871008 0.0 0.0 

Note: Absorber inlet is subcooled
329 46.0 128.704347488 0.0 0.0 

Note: Absorber inlet is subcooled
330 47.0 128.776871006 0.0 0.0 

'Second pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.89387 0.953227 9.0128 180.745
rect 5.50136 0.809975 1.19735 10.2417
abs 0.0117575 0.999228396.56 176.371
cond 1.62968 0.970423 34.215 123.112
evap 0.0158304 0.997949103.544 128.777
total 0 0 544.529 0
Note: Absorber inlet is subcooled
351 50.0 128.776871008 0.0 0.0 

Note: Absorber inlet is subcooled
352 50.0 134.583452607 0.0 381321.209955 

Note: Absorber inlet is subcooled
353 50.0 128.809115981 0.0 119.858891256 

Note: Absorber inlet is subcooled
354 50.0 128.764231518 0.0 0.0 

Note: Absorber inlet is subcooled
355 50.0 128.776871008 0.0 0.0 

Note: Absorber inlet is subcooled
356 50.0 128.746632988 0.0 0.0 

Note: Absorber inlet is subcooled
357 50.0 128.784280347 0.0 0.0 

Note: Absorber inlet is subcooled
358 51.0 122.977355274 0.0 0.0 

Note: Absorber inlet is subcooled
359 51.0 128.909616822 0.0 0.0 

Note: Absorber inlet is subcooled
360 51.0 128.917186587 0.0 7.15431674744 

Note: Absorber inlet is subcooled
361 51.0 129.472643992 0.0 4192.80069994 

Note: Absorber inlet is subcooled
362 51.0 128.912784123 0.0 0.0 

Note: Absorber inlet is subcooled
363 51.0 128.929891676 0.0 54.5211387278 

Note: Absorber inlet is subcooled
364 51.0 128.912784123 0.0 0.0 

Note: Absorber inlet is subcooled
365 52.0 129.052086914 0.0 190.955125086 

Note: Absorber inlet is subcooled
366 52.0 130.363035492 0.0 42237.5388066 

Note: Absorber inlet is subcooled
367 52.0 126.012297533 0.0 0.0 

Note: Absorber inlet is subcooled
368 52.0 128.914634674 0.0 0.0 

Note: Absorber inlet is subcooled
369 52.0 129.053828839 0.0 198.058654369 

Note: Absorber inlet is subcooled
370 52.0 128.943495213 0.0 16.4260038361 

Note: Absorber inlet is subcooled
371 52.0 128.945963741 0.0 0.0 

Note: Absorber inlet is subcooled
372 53.0 129.06615673 0.0 222.68863347 

Note: Absorber inlet is subcooled
373 53.0 129.668605662 0.0 13755.2173577 

Note: Absorber inlet is subcooled
374 53.0 127.499773873 0.0 0.0 

Note: Absorber inlet is subcooled
375 53.0 128.89653771 0.0 6.30405207826 

Note: Absorber inlet is subcooled
376 53.0 128.945963741 0.0 0.0 

Note: Absorber inlet is subcooled
377 53.0 129.081605297 0.0 308.153166242 

Note: Absorber inlet is subcooled
378 53.0 128.946756195 0.0 0.0 

Note: Absorber inlet is subcooled
379 54.0 129.082398597 0.0 422.374077559 

Note: Absorber inlet is subcooled
380 54.0 128.947215045 0.0 0.00315412180597 

Note: Absorber inlet is subcooled
381 54.0 128.89385415 0.0 10.0449865712 

Note: Absorber inlet is subcooled
382 54.0 128.999621842 0.0 17.87074073 

Note: Absorber inlet is subcooled
383 54.0 129.126104613 0.0 852.35898753 

Note: Absorber inlet is subcooled
384 54.0 128.587528493 0.0 0.0 

Note: Absorber inlet is subcooled
385 54.0 128.954513891 0.0 0.0230365101464 

Note: Absorber inlet is subcooled
386 55.0 128.904864074 0.0 3.33600476932 

Note: Absorber inlet is subcooled
387 55.0 128.925810289 0.0 0.823460119875 

Note: Absorber inlet is subcooled
388 55.0 128.946756195 0.0 0.0 

Note: Absorber inlet is subcooled
389 55.0 129.007842342 0.0 46.5187119807 

Note: Absorber inlet is subcooled
390 55.0 128.97729937 0.0 0.0 

Note: Absorber inlet is subcooled
391 55.0 129.01995699 0.0 91.9570765635 

Note: Absorber inlet is subcooled
392 55.0 128.89198922 0.0 0.0 

Note: Absorber inlet is subcooled
393 56.0 128.977218352 0.0 0.0 

Note: Absorber inlet is subcooled
394 56.0 129.067295175 0.0 566.93413285 

Note: Absorber inlet is subcooled
395 56.0 128.977391498 0.0 0.0 

Note: Absorber inlet is subcooled
396 56.0 129.067387372 0.0 568.104397203 

Note: Absorber inlet is subcooled
397 56.0 128.971651381 0.0 0.0 

Note: Absorber inlet is subcooled
398 56.0 128.892738757 0.0 0.0 

Note: Absorber inlet is subcooled
399 56.0 129.035455927 0.0 232.595731393 

Note: Absorber inlet is subcooled
400 57.0 128.977391498 0.0 0.0 

'Third pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.89387 0.953227 9.0128 180.745
rect 5.50136 0.809975 1.19735 10.2417
abs 0.0117575 0.999228396.56 176.371
cond 1.62968 0.970423 34.215 123.112
evap 0.0158304 0.997949103.544 128.777
total 0 0 544.529 0
Case 1, T_heat_reject = 298.15 K
Note: Absorber inlet is subcooled
211 30.0 24.5883547239 1.01305231855e-250 3156.278929 

Note: Absorber inlet is subcooled
212 30.0 73.7650641718 1.01305231855e-250 3156.2910157 

Note: Absorber inlet is subcooled
213 30.0 73.9673270767 1.20595045745e-249 3144.35934709 

Note: Absorber inlet is subcooled
214 30.0 73.8724667435 1.18138325969e-250 2961.13902246 

Note: Absorber inlet is subcooled
215 30.0 73.8724667435 8.80429524319e-250 2961.13902246 

Note: Absorber inlet is subcooled
216 30.0 73.6861850466 1.29308121156e-251 2157.21304698 

Note: Absorber inlet is subcooled
217 30.0 73.7452878644 1.29308121156e-251 2208.13157745 

Note: Absorber inlet is subcooled
218 31.0 76.3946869366 1.40969493378e-279 1978.41316719 

Note: Absorber inlet is subcooled
219 31.0 78.0998625965 5.41819018621e-281 1878.72104919 

Note: Absorber inlet is subcooled
220 31.0 102.263696544 7.24475114495e-281 1902.88874034 

Note: Absorber inlet is subcooled
221 31.0 71.395951716 2.37482768485e-280 1756.96383355 

Note: Absorber inlet is subcooled
222 31.0 71.3570672707 9.39034852405e-281 1752.15532249 

Note: Absorber inlet is subcooled
223 31.0 71.2370791481 6.46816748169e-282 1153.59740799 

Note: Absorber inlet is subcooled
224 31.0 73.4109496301 5.91233639367e-283 705.02347745 

Note: Absorber inlet is subcooled
225 32.0 75.8725853737 2.6224475831e-314 399.331117403 

Note: Absorber inlet is subcooled
226 32.0 77.9545611509 4.70088640049e-316 271.184173835 

Note: Absorber inlet is subcooled
227 32.0 116.168510781 1.52927645292e-315 230.505400645 

Note: Absorber inlet is subcooled
228 32.0 114.965989233 4.48185721837e-315 230.394628393 

Note: Absorber inlet is subcooled
229 32.0 89.0574595119 2.82154467487e-315 136.642609121 

Note: Absorber inlet is subcooled
230 32.0 90.3616489872 2.21600793801e-315 114.565047804 

Note: Absorber inlet is subcooled
231 32.0 98.6297999153 6.9915229543e-317 0.0 

Note: Absorber inlet is subcooled
232 33.0 109.271102898 0.0 0.0 

Note: Absorber inlet is subcooled
233 33.0 125.52198372 0.0 0.0 

Note: Absorber inlet is subcooled
234 33.0 115.356939728 0.0 0.0 

Note: Absorber inlet is subcooled
235 33.0 126.686334878 0.0 0.0 

Note: Absorber inlet is subcooled
236 33.0 135.810050663 0.0 6135.65411474 

Note: Absorber inlet is subcooled
237 33.0 135.482393205 0.0 4215.72398309 

Note: Absorber inlet is subcooled
238 33.0 131.774579394 0.0 1489.38243964 

Note: Absorber inlet is subcooled
239 34.0 111.727998695 0.0 0.0 

Note: Absorber inlet is subcooled
240 34.0 130.940770274 0.0 1255.95126728 

Note: Absorber inlet is subcooled
241 34.0 124.109780439 0.0 0.0 

Note: Absorber inlet is subcooled
242 34.0 122.918582878 0.0 0.0 

Note: Absorber inlet is subcooled
243 34.0 130.724136268 0.0 1158.57006364 

Note: Absorber inlet is subcooled
244 34.0 116.519584216 0.0 0.0 

Note: Absorber inlet is subcooled
245 34.0 124.752159954 0.0 0.0 

Note: Absorber inlet is subcooled
246 35.0 126.832086852 0.0 0.0 

Note: Absorber inlet is subcooled
247 35.0 125.025431833 0.0 0.0 

Note: Absorber inlet is subcooled
248 35.0 126.560647221 0.0 0.0 

Note: Absorber inlet is subcooled
249 35.0 127.298111704 0.0 0.0 

Note: Absorber inlet is subcooled
250 35.0 124.748804848 0.0 0.0 

Note: Absorber inlet is subcooled
251 35.0 127.78311661 0.0 16.4707754057 

Note: Absorber inlet is subcooled
252 35.0 126.590252443 0.0 0.0 

Note: Absorber inlet is subcooled
253 36.0 128.816685583 0.0 334.024067599 

Note: Absorber inlet is subcooled
254 36.0 127.298077744 0.0 0.0 

Note: Absorber inlet is subcooled
255 36.0 126.813474484 0.0 0.0 

Note: Absorber inlet is subcooled
256 36.0 127.298102647 0.0 0.0 

Note: Absorber inlet is subcooled
257 36.0 125.988681861 0.0 0.0 

Note: Absorber inlet is subcooled
258 36.0 127.114362089 0.0 0.0 

Note: Absorber inlet is subcooled
259 36.0 127.176946769 0.0 0.0 

Note: Absorber inlet is subcooled
260 37.0 127.461974329 0.0 0.143227486455 

'First pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.72568 0.942974 13.5578 188.286
rect 6.32268 0.798931 1.25848 12.9269
abs 0.0658155 0.996278151.077 181.903
cond 1.72475 0.968174 33.1259 121.225
evap 0.00852878 0.998883113.698 127.462
total 0 0 312.717 0
Note: Absorber inlet is subcooled
281 40.0 127.461974329 0.0 0.352282771288 

Note: Absorber inlet is subcooled
282 40.0 176.053323473 0.0 1411320.49389 

Note: Absorber inlet is subcooled
283 40.0 127.812999795 0.0 2424.28720848 

Note: Absorber inlet is subcooled
284 40.0 127.295013964 0.0 0.0 

Note: Absorber inlet is subcooled
285 40.0 127.295013964 0.0 0.0 

Note: Absorber inlet is subcooled
286 40.0 126.972873178 0.0 0.0 

Note: Absorber inlet is subcooled
287 40.0 127.399272088 0.0 0.0 

Note: Absorber inlet is subcooled
288 41.0 78.8315253996 0.0 0.0 

Note: Absorber inlet is subcooled
289 41.0 127.751533304 0.0 0.0 

Note: Absorber inlet is subcooled
290 41.0 127.832396933 0.0 0.0 

Note: Absorber inlet is subcooled
291 41.0 152.099213946 0.0 446705.172014 

Note: Absorber inlet is subcooled
292 41.0 127.744197618 0.0 0.0 

Note: Absorber inlet is subcooled
293 41.0 103.56980027 0.0 0.0 

Note: Absorber inlet is subcooled
294 41.0 127.832396933 0.0 0.0 

Note: Absorber inlet is subcooled
295 42.0 152.099970653 0.0 603026.705998 

Note: Absorber inlet is subcooled
296 42.0 127.858553707 0.0 0.0 

Note: Absorber inlet is subcooled
297 42.0 152.131093752 0.0 604603.362721 

Note: Absorber inlet is subcooled
298 42.0 127.858536621 0.0 0.0 

Note: Absorber inlet is subcooled
299 42.0 103.590678545 0.0 0.0 

Note: Absorber inlet is subcooled
300 42.0 139.994693068 0.0 145989.83199 

Note: Absorber inlet is subcooled
301 42.0 127.858474439 0.0 0.0 

Note: Absorber inlet is subcooled
302 43.0 115.723025159 0.0 0.0 

Note: Absorber inlet is subcooled
303 43.0 133.926590746 0.0 45875.4172544 

Note: Absorber inlet is subcooled
304 43.0 127.858553958 0.0 0.0 

Note: Absorber inlet is subcooled
305 43.0 121.790455371 0.0 0.0 

Note: Absorber inlet is subcooled
306 43.0 127.877732405 0.0 0.0 

Note: Absorber inlet is subcooled
307 43.0 133.946922532 0.0 46205.7845989 

Note: Absorber inlet is subcooled
308 43.0 127.877729336 0.0 0.0 

Note: Absorber inlet is subcooled
309 44.0 121.808717384 0.0 0.0 

Note: Absorber inlet is subcooled
310 44.0 127.877735338 0.0 0.0 

Note: Absorber inlet is subcooled
311 44.0 133.946352544 0.0 62358.9485577 

Note: Absorber inlet is subcooled
312 44.0 124.843509003 0.0 0.0 

Note: Absorber inlet is subcooled
313 44.0 127.877750857 0.0 0.0 

Note: Absorber inlet is subcooled
314 44.0 130.91231222 0.0 14053.6695695 

Note: Absorber inlet is subcooled
315 44.0 126.360505902 0.0 0.0 

Note: Absorber inlet is subcooled
316 45.0 127.877750263 0.0 0.0 

Note: Absorber inlet is subcooled
317 45.0 129.395029496 0.0 3623.15070792 

Note: Absorber inlet is subcooled
318 45.0 127.877751514 0.0 0.0 

Note: Absorber inlet is subcooled
319 45.0 129.395016442 0.0 3623.06732101 

Note: Absorber inlet is subcooled
320 45.0 127.877751667 0.0 0.0 

Note: Absorber inlet is subcooled
321 45.0 126.360433952 0.0 0.0 

Note: Absorber inlet is subcooled
322 45.0 127.877752603 0.0 0.0 

Note: Absorber inlet is subcooled
323 46.0 129.395038594 0.0 4890.84784711 

Note: Absorber inlet is subcooled
324 46.0 127.11911114 0.0 0.0 

Note: Absorber inlet is subcooled
325 46.0 127.87775629 0.0 0.0 

Note: Absorber inlet is subcooled
326 46.0 128.636415084 0.0 658.578023018 

Note: Absorber inlet is subcooled
327 46.0 127.498427276 0.0 0.0 

Note: Absorber inlet is subcooled
328 46.0 127.877756468 0.0 0.0 

Note: Absorber inlet is subcooled
329 46.0 128.257084788 0.0 9.85873408362 

Note: Absorber inlet is subcooled
330 47.0 127.877756489 0.0 0.0 

'Second pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.59327 0.944479 13.8375 189.054
rect 5.69765 0.824097 1.42883 13.4535
abs 0.0532557 0.996993162.557 182.646
cond 1.80619 0.967714 32.0739 121.142
evap 0.0295339 0.996154 93.0342 127.878
total 0 0 302.931 0
Note: Absorber inlet is subcooled
351 50.0 127.877756489 0.0 0.0 

Note: Absorber inlet is subcooled
352 50.0 132.73287088 0.0 239926.242178 

Note: Absorber inlet is subcooled
353 50.0 127.912957378 0.0 0.0 

Note: Absorber inlet is subcooled
354 50.0 127.896200962 0.0 0.0 

Note: Absorber inlet is subcooled
355 50.0 127.912957378 0.0 0.0 

Note: Absorber inlet is subcooled
356 50.0 127.880609233 0.0 0.0 

Note: Absorber inlet is subcooled
357 50.0 127.923414695 0.0 0.0 

Note: Absorber inlet is subcooled
358 51.0 123.066566817 0.0 0.0 

Note: Absorber inlet is subcooled
359 51.0 130.351981593 0.0 84614.5291692 

Note: Absorber inlet is subcooled
360 51.0 127.923414514 0.0 0.0 

Note: Absorber inlet is subcooled
361 51.0 125.494929393 0.0 0.0 

Note: Absorber inlet is subcooled
362 51.0 127.927603211 0.0 0.0 

Note: Absorber inlet is subcooled
363 51.0 130.356249609 0.0 84926.8477442 

Note: Absorber inlet is subcooled
364 51.0 127.927603211 0.0 0.0 

Note: Absorber inlet is subcooled
365 52.0 125.499038403 0.0 0.0 

Note: Absorber inlet is subcooled
366 52.0 127.935691033 0.0 0.0 

Note: Absorber inlet is subcooled
367 52.0 130.364490964 0.0 115455.517926 

Note: Absorber inlet is subcooled
368 52.0 127.935690345 0.0 0.0 

Note: Absorber inlet is subcooled
369 52.0 125.506967283 0.0 0.0 

Note: Absorber inlet is subcooled
370 52.0 129.150089692 0.0 26385.4741298 

Note: Absorber inlet is subcooled
371 52.0 127.328509602 0.0 0.0 

Note: Absorber inlet is subcooled
372 53.0 127.935691091 0.0 0.0 

Note: Absorber inlet is subcooled
373 53.0 128.542879653 0.0 7044.44101985 

Note: Absorber inlet is subcooled
374 53.0 127.935691091 0.0 0.0 

Note: Absorber inlet is subcooled
375 53.0 127.328520102 0.0 0.0 

Note: Absorber inlet is subcooled
376 53.0 127.936738291 0.0 0.0 

Note: Absorber inlet is subcooled
377 53.0 128.543931821 0.0 7074.43325116 

Note: Absorber inlet is subcooled
378 53.0 127.936738314 0.0 0.0 

Note: Absorber inlet is subcooled
379 54.0 127.32953942 0.0 0.0 

Note: Absorber inlet is subcooled
380 54.0 127.936738462 0.0 0.0 

Note: Absorber inlet is subcooled
381 54.0 128.543938486 0.0 9549.7296797 

Note: Absorber inlet is subcooled
382 54.0 127.633140492 0.0 0.0 

Note: Absorber inlet is subcooled
383 54.0 128.088538407 0.0 63.1713670265 

Note: Absorber inlet is subcooled
384 54.0 127.936738464 0.0 0.0 

Note: Absorber inlet is subcooled
385 54.0 127.784940117 0.0 0.0 

Note: Absorber inlet is subcooled
386 55.0 127.936738464 0.0 0.0 

Note: Absorber inlet is subcooled
387 55.0 128.088537756 0.0 74.6268666407 

Note: Absorber inlet is subcooled
388 55.0 127.937000892 0.0 0.0 

Note: Absorber inlet is subcooled
389 55.0 128.088800495 0.0 75.6699250784 

Note: Absorber inlet is subcooled
390 55.0 127.937000894 0.0 0.0 

Note: Absorber inlet is subcooled
391 55.0 127.785201642 0.0 0.0 

Note: Absorber inlet is subcooled
392 55.0 127.93700093 0.0 0.0 

Note: Absorber inlet is subcooled
393 56.0 128.088800939 0.0 102.145646506 

Note: Absorber inlet is subcooled
394 56.0 127.861101396 0.0 0.0 

Note: Absorber inlet is subcooled
395 56.0 127.985576928 0.0 0.0 

Note: Absorber inlet is subcooled
396 56.0 128.034152931 0.0 0.0 

Note: Absorber inlet is subcooled
397 56.0 128.082728938 0.0 72.0960239362 

Note: Absorber inlet is subcooled
398 56.0 128.034152797 0.0 0.0 

Note: Absorber inlet is subcooled
399 56.0 128.004259952 0.0 0.0 

Note: Absorber inlet is subcooled
400 57.0 128.034152931 0.0 0.0 

'Third pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.59327 0.944479 13.8375 189.054
rect 5.69765 0.824097 1.42883 13.4535
abs 0.0532557 0.996993162.557 182.646
cond 1.80619 0.967714 32.0739 121.142
evap 0.0295339 0.996154 93.0342 127.878
total 0 0 302.931 0
Case 2, T_heat_reject = 303.15 K
Note: Absorber inlet is subcooled
211 30.0 19.9331400856 1.55372380346e-306 0.0 

Note: Absorber inlet is subcooled
212 30.0 59.7994202567 1.55372380346e-306 0.0 

Note: Absorber inlet is subcooled
213 30.0 59.99131292 1.98845108119e-305 0.0 

Note: Absorber inlet is subcooled
214 30.0 59.8837069901 1.82759732759e-306 0.0 

Note: Absorber inlet is subcooled
215 30.0 59.99131292 1.48189931183e-304 0.0 

Note: Absorber inlet is subcooled
216 30.0 59.8182702399 2.1117748481e-306 0.0 

Note: Absorber inlet is subcooled
217 30.0 60.0605796362 1.98845108119e-305 0.0 

Note: Absorber inlet is subcooled
218 31.0 100.103386032 0.0 0.0 

Note: Absorber inlet is subcooled
219 31.0 140.148954111 0.0 3382.59617044 

Note: Absorber inlet is subcooled
220 31.0 86.0536995635 0.0 0.0 

Note: Absorber inlet is subcooled
221 31.0 100.13550747 0.0 0.0 

Note: Absorber inlet is subcooled
222 31.0 94.8860201301 0.0 0.0 

Note: Absorber inlet is subcooled
223 31.0 100.127266056 0.0 0.0 

Note: Absorber inlet is subcooled
224 31.0 93.895029525 0.0 0.0 

Note: Absorber inlet is subcooled
225 32.0 88.5438489987 0.0 0.0 

Note: Absorber inlet is subcooled
226 32.0 110.154844435 0.0 0.0 

Note: Absorber inlet is subcooled
227 32.0 120.174458081 0.0 0.0 

Note: Absorber inlet is subcooled
228 32.0 130.194347414 0.0 0.0 

Note: Absorber inlet is subcooled
229 32.0 140.214509452 0.0 5056.81922558 

Note: Absorber inlet is subcooled
230 32.0 130.200427035 0.0 0.0 

Note: Absorber inlet is subcooled
231 32.0 128.283123348 0.0 0.0 

Note: Absorber inlet is subcooled
232 33.0 130.185739116 0.0 0.0 

Note: Absorber inlet is subcooled
233 33.0 128.978319341 0.0 0.0 

Note: Absorber inlet is subcooled
234 33.0 130.194012256 0.0 0.0 

Note: Absorber inlet is subcooled
235 33.0 120.442840676 0.0 0.0 

Note: Absorber inlet is subcooled
236 33.0 135.211180654 0.0 1628.6740463 

Note: Absorber inlet is subcooled
237 33.0 127.760848376 0.0 0.0 

Note: Absorber inlet is subcooled
238 33.0 130.440625304 0.0 0.0 

Note: Absorber inlet is subcooled
239 34.0 132.94579568 0.0 592.993256447 

Note: Absorber inlet is subcooled
240 34.0 130.440564903 0.0 0.0 

Note: Absorber inlet is subcooled
241 34.0 127.982436089 0.0 0.0 

Note: Absorber inlet is subcooled
242 34.0 131.693207584 0.0 145.333616037 

Note: Absorber inlet is subcooled
243 34.0 130.440629119 0.0 0.0 

Note: Absorber inlet is subcooled
244 34.0 129.211694924 0.0 0.0 

Note: Absorber inlet is subcooled
245 34.0 130.441443623 0.0 0.0 

Note: Absorber inlet is subcooled
246 35.0 131.694079758 0.0 202.387363697 

Note: Absorber inlet is subcooled
247 35.0 130.441453655 0.0 0.0 

Note: Absorber inlet is subcooled
248 35.0 129.212306466 0.0 0.0 

Note: Absorber inlet is subcooled
249 35.0 131.067803054 0.0 50.1473820396 

Note: Absorber inlet is subcooled
250 35.0 130.441453484 0.0 0.0 

Note: Absorber inlet is subcooled
251 35.0 129.827020985 0.0 0.0 

Note: Absorber inlet is subcooled
252 35.0 130.502234357 0.0 0.296373393887 

Note: Absorber inlet is subcooled
253 36.0 130.855067716 0.0 30.9444370245 

Note: Absorber inlet is subcooled
254 36.0 130.505932873 0.0 0.464797857381 

Note: Absorber inlet is subcooled
255 36.0 130.441454491 0.0 0.0 

Note: Absorber inlet is subcooled
256 36.0 130.579019378 0.0 3.39678139021 

Note: Absorber inlet is subcooled
257 36.0 130.441454361 0.0 0.0 

Note: Absorber inlet is subcooled
258 36.0 130.131284865 0.0 0.0 

Note: Absorber inlet is subcooled
259 36.0 130.474618615 0.0 0.100636825862 

Note: Absorber inlet is subcooled
260 37.0 130.44145433 0.0 0.0 

'First pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.7376 0.928577 27.6219 203.176
rect 7.8445 0.770793 1.24269 15.7568
abs 0.249032 0.987074 99.8262 194.275
cond 1.393 0.968503 38.0245 124.056
evap 0.0103254 0.998679110.891 130.441
total 0 0 277.606 0
Note: Absorber inlet is subcooled
281 40.0 130.441454491 0.0 0.0 

Note: Absorber inlet is subcooled
282 40.0 170.52307329 0.0 17485258.3814 

Note: Absorber inlet is subcooled
283 40.0 130.858162717 0.0 2509.1821583 

Note: Absorber inlet is subcooled
284 40.0 130.208348306 0.0 0.0 

Note: Absorber inlet is subcooled
285 40.0 130.441454491 0.0 0.0 

Note: Absorber inlet is subcooled
286 40.0 130.066125676 0.0 0.0 

Note: Absorber inlet is subcooled
287 40.0 130.591384769 0.0 12.1603681215 

Note: Absorber inlet is subcooled
288 41.0 90.3597946504 0.0 0.0 

Note: Absorber inlet is subcooled
289 41.0 110.400619974 0.0 0.0 

Note: Absorber inlet is subcooled
290 41.0 130.498596166 0.0 0.0 

Note: Absorber inlet is subcooled
291 41.0 130.480055926 0.0 0.0 

Note: Absorber inlet is subcooled
292 41.0 140.512398717 0.0 73275.3669528 

Note: Absorber inlet is subcooled
293 41.0 130.498703194 0.0 0.0 

Note: Absorber inlet is subcooled
294 41.0 120.482074698 0.0 0.0 

Note: Absorber inlet is subcooled
295 42.0 130.527371441 0.0 0.0 

Note: Absorber inlet is subcooled
296 42.0 140.54697897 0.0 99621.6427709 

Note: Absorber inlet is subcooled
297 42.0 130.527371441 0.0 0.0 

Note: Absorber inlet is subcooled
298 42.0 120.508542915 0.0 0.0 

Note: Absorber inlet is subcooled
299 42.0 135.537128507 0.0 23209.9390488 

Note: Absorber inlet is subcooled
300 42.0 130.527369144 0.0 0.0 

Note: Absorber inlet is subcooled
301 42.0 125.517815124 0.0 0.0 

Note: Absorber inlet is subcooled
302 43.0 133.0322383 0.0 6748.94233342 

Note: Absorber inlet is subcooled
303 43.0 130.527367135 0.0 0.0 

Note: Absorber inlet is subcooled
304 43.0 128.022567387 0.0 0.0 

Note: Absorber inlet is subcooled
305 43.0 130.52739117 0.0 0.0 

Note: Absorber inlet is subcooled
306 43.0 133.03248336 0.0 6750.46600718 

Note: Absorber inlet is subcooled
307 43.0 129.274873947 0.0 0.0 

Note: Absorber inlet is subcooled
308 43.0 130.52739117 0.0 0.0 

Note: Absorber inlet is subcooled
309 44.0 131.779934347 0.0 1628.31737479 

Note: Absorber inlet is subcooled
310 44.0 130.530975288 0.0 0.0 

Note: Absorber inlet is subcooled
311 44.0 131.783552837 0.0 1641.19346631 

Note: Absorber inlet is subcooled
312 44.0 130.530972872 0.0 0.0 

Note: Absorber inlet is subcooled
313 44.0 129.278423722 0.0 0.0 

Note: Absorber inlet is subcooled
314 44.0 131.157263333 0.0 167.918324152 

Note: Absorber inlet is subcooled
315 44.0 130.530975526 0.0 0.0 

Note: Absorber inlet is subcooled
316 45.0 129.904704723 0.0 0.0 

Note: Absorber inlet is subcooled
317 45.0 130.530980209 0.0 0.0 

Note: Absorber inlet is subcooled
318 45.0 131.157276789 0.0 226.783242527 

Note: Absorber inlet is subcooled
319 45.0 130.217837598 0.0 0.0 

Note: Absorber inlet is subcooled
320 45.0 130.530980209 0.0 0.0 

Note: Absorber inlet is subcooled
321 45.0 130.844128317 0.0 0.0 

Note: Absorber inlet is subcooled
322 45.0 131.157276789 0.0 226.783242524 

Note: Absorber inlet is subcooled
323 46.0 130.844130436 0.0 0.0 

Note: Absorber inlet is subcooled
324 46.0 130.71643647 0.0 0.0 

Note: Absorber inlet is subcooled
325 46.0 130.84412649 0.0 0.0 

Note: Absorber inlet is subcooled
326 46.0 130.805621903 0.0 0.0 

Note: Absorber inlet is subcooled
327 46.0 130.832552668 0.0 0.0 

Note: Absorber inlet is subcooled
328 46.0 130.724734037 0.0 0.0 

Note: Absorber inlet is subcooled
329 46.0 130.716242704 0.0 0.0 

Note: Absorber inlet is subcooled
330 47.0 131.0007057 0.0 90.7261889894 

'Second pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.73849 0.92856 28.0021 203.826
rect 7.85109 0.770432 1.24671 15.7945
abs 0.232539 0.987928103.252 194.893
cond 1.36067 0.968558 38.5732 124.453
evap 0.0111087 0.998583109.721 130.844
total 0 0 280.795 0
Note: Absorber inlet is subcooled
351 50.0 130.844130436 0.0 0.0 

Note: Absorber inlet is subcooled
352 50.0 134.851967143 0.0 186185.771331 

Note: Absorber inlet is subcooled
353 50.0 130.885901065 0.0 420.805617671 

Note: Absorber inlet is subcooled
354 50.0 130.821146007 0.0 0.0 

Note: Absorber inlet is subcooled
355 50.0 130.844130436 0.0 0.0 

Note: Absorber inlet is subcooled
356 50.0 130.80645533 0.0 0.0 

Note: Absorber inlet is subcooled
357 50.0 130.859181492 0.0 0.0 

Note: Absorber inlet is subcooled
358 51.0 126.850802513 0.0 0.0 

Note: Absorber inlet is subcooled
359 51.0 130.861919943 0.0 0.0 

Note: Absorber inlet is subcooled
360 51.0 130.871341085 0.0 0.0 

Note: Absorber inlet is subcooled
361 51.0 132.875566427 0.0 58858.8734849 

Note: Absorber inlet is subcooled
362 51.0 130.871341498 0.0 0.0 

Note: Absorber inlet is subcooled
363 51.0 128.867145045 0.0 0.0 

Note: Absorber inlet is subcooled
364 51.0 130.871341498 0.0 0.0 

Note: Absorber inlet is subcooled
365 52.0 132.875654785 0.0 79458.3967608 

Note: Absorber inlet is subcooled
366 52.0 130.875104513 0.0 0.0 

Note: Absorber inlet is subcooled
367 52.0 132.879475412 0.0 79773.3150494 

Note: Absorber inlet is subcooled
368 52.0 129.872976283 0.0 0.0 

Note: Absorber inlet is subcooled
369 52.0 130.87578924 0.0 0.0 

Note: Absorber inlet is subcooled
370 52.0 131.877932864 0.0 17718.8762672 

Note: Absorber inlet is subcooled
371 52.0 130.374744807 0.0 0.0 

Note: Absorber inlet is subcooled
372 53.0 130.878144611 0.0 0.0 

Note: Absorber inlet is subcooled
373 53.0 131.379224971 0.0 4902.90922389 

Note: Absorber inlet is subcooled
374 53.0 130.878144533 0.0 0.0 

Note: Absorber inlet is subcooled
375 53.0 130.377091168 0.0 0.0 

Note: Absorber inlet is subcooled
376 53.0 130.878144611 0.0 0.0 

Note: Absorber inlet is subcooled
377 53.0 131.379224971 0.0 4902.90923662 

Note: Absorber inlet is subcooled
378 53.0 130.879085492 0.0 0.0 

Note: Absorber inlet is subcooled
379 54.0 131.380169453 0.0 6648.56820531 

Note: Absorber inlet is subcooled
380 54.0 130.879085493 0.0 0.0 

Note: Absorber inlet is subcooled
381 54.0 130.378026492 0.0 0.0 

Note: Absorber inlet is subcooled
382 54.0 131.129627335 0.0 1032.93940751 

Note: Absorber inlet is subcooled
383 54.0 130.879085453 0.0 0.0 

Note: Absorber inlet is subcooled
384 54.0 130.628555681 0.0 0.0 

Note: Absorber inlet is subcooled
385 54.0 131.004356385 0.0 55.3492428758 

Note: Absorber inlet is subcooled
386 55.0 130.879085494 0.0 0.0 

Note: Absorber inlet is subcooled
387 55.0 130.75382043 0.0 0.0 

Note: Absorber inlet is subcooled
388 55.0 130.879663617 0.0 0.0 

Note: Absorber inlet is subcooled
389 55.0 131.0049352 0.0 77.0233371802 

Note: Absorber inlet is subcooled
390 55.0 130.879663616 0.0 0.0 

Note: Absorber inlet is subcooled
391 55.0 130.754397434 0.0 0.0 

Note: Absorber inlet is subcooled
392 55.0 130.87966362 0.0 0.0 

Note: Absorber inlet is subcooled
393 56.0 131.0049352 0.0 103.970631711 

Note: Absorber inlet is subcooled
394 56.0 130.817030523 0.0 0.0 

Note: Absorber inlet is subcooled
395 56.0 130.879663626 0.0 0.0 

Note: Absorber inlet is subcooled
396 56.0 130.942299565 0.0 0.0 

Note: Absorber inlet is subcooled
397 56.0 131.004935518 0.0 111.145300361 

Note: Absorber inlet is subcooled
398 56.0 130.924380476 0.0 0.0 

Note: Absorber inlet is subcooled
399 56.0 130.942299565 0.0 0.0 

Note: Absorber inlet is subcooled
400 57.0 130.918403018 0.0 0.0 

'Third pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 4.73849 0.92856 28.0021 203.826
rect 7.85109 0.770432 1.24671 15.7945
abs 0.232539 0.987928103.252 194.893
cond 1.36067 0.968558 38.5732 124.453
evap 0.0111087 0.998583109.721 130.844
total 0 0 280.795 0
Case 3, T_heat_reject = 308.15 K
Note: Absorber inlet is subcooled
211 30.0 15.2618651202 0.0 0.0 

Note: Absorber inlet is subcooled
212 30.0 45.7855953606 0.0 0.0 

Note: Absorber inlet is subcooled
213 30.0 45.9716522196 0.0 0.0 

Note: Absorber inlet is subcooled
214 30.0 45.8534097791 0.0 0.0 

Note: Absorber inlet is subcooled
215 30.0 45.9716522196 0.0 0.0 

Note: Absorber inlet is subcooled
216 30.0 45.8072772852 0.0 0.0 

Note: Absorber inlet is subcooled
217 30.0 46.0525326126 0.0 0.0 

Note: Absorber inlet is subcooled
218 31.0 76.7573512575 0.0 0.0 

Note: Absorber inlet is subcooled
219 31.0 107.465735928 0.0 0.0 

Note: Absorber inlet is subcooled
220 31.0 138.177666994 0.0 1463186.64115 

Note: Absorber inlet is subcooled
221 31.0 107.58959751 0.0 0.0 

Note: Absorber inlet is subcooled
222 31.0 93.9176322107 0.0 0.0 

Note: Absorber inlet is subcooled
223 31.0 107.698969248 0.0 0.0 

Note: Absorber inlet is subcooled
224 31.0 99.4908168 0.0 0.0 

Note: Absorber inlet is subcooled
225 32.0 107.643902876 0.0 0.0 

Note: Absorber inlet is subcooled
226 32.0 81.3496076949 0.0 0.0 

Note: Absorber inlet is subcooled
227 32.0 123.114687398 0.0 458591.329309 

Note: Absorber inlet is subcooled
228 32.0 100.856005728 0.0 0.0 

Note: Absorber inlet is subcooled
229 32.0 101.105067347 0.0 0.0 

Note: Absorber inlet is subcooled
230 32.0 107.698904553 0.0 0.0 

Note: Absorber inlet is subcooled
231 32.0 105.648353613 0.0 0.0 

Note: Absorber inlet is subcooled
232 33.0 105.989238685 0.0 0.0 

Note: Absorber inlet is subcooled
233 33.0 107.705844088 0.0 0.0 

Note: Absorber inlet is subcooled
234 33.0 111.560016536 0.0 24930.5370462 

Note: Absorber inlet is subcooled
235 33.0 107.705830209 0.0 0.0 

Note: Absorber inlet is subcooled
236 33.0 106.680355522 0.0 0.0 

Note: Absorber inlet is subcooled
237 33.0 104.408057961 0.0 0.0 

Note: Absorber inlet is subcooled
238 33.0 106.850964472 0.0 0.0 

Note: Absorber inlet is subcooled
239 34.0 107.705855189 0.0 0.0 

Note: Absorber inlet is subcooled
240 34.0 109.632680571 0.0 3937.71521507 

Note: Absorber inlet is subcooled
241 34.0 107.449627 0.0 0.0 

Note: Absorber inlet is subcooled
242 34.0 107.705855426 0.0 0.0 

Note: Absorber inlet is subcooled
243 34.0 106.881434462 0.0 0.0 

Note: Absorber inlet is subcooled
244 34.0 107.705853138 0.0 0.0 

Note: Absorber inlet is subcooled
245 34.0 107.278480239 0.0 0.0 

Note: Absorber inlet is subcooled
246 35.0 108.187572235 0.0 0.0 

Note: Absorber inlet is subcooled
247 35.0 108.669291065 0.0 4.3809184181 

Note: Absorber inlet is subcooled
248 35.0 108.187564949 0.0 0.0 

Note: Absorber inlet is subcooled
249 35.0 107.970485556 0.0 0.0 

Note: Absorber inlet is subcooled
250 35.0 108.187556671 0.0 0.0 

Note: Absorber inlet is subcooled
251 35.0 108.054183089 0.0 0.0 

Note: Absorber inlet is subcooled
252 35.0 108.095007915 0.0 0.0 

Note: Absorber inlet is subcooled
253 36.0 108.017256175 0.0 0.0 

Note: Absorber inlet is subcooled
254 36.0 108.308001754 0.0 0.0 

Note: Absorber inlet is subcooled
255 36.0 108.4284314 0.0 0.0 

Note: Absorber inlet is subcooled
256 36.0 108.548861172 0.0 0.0 

Note: Absorber inlet is subcooled
257 36.0 108.669291071 0.0 5.91329509459 

Note: Absorber inlet is subcooled
258 36.0 108.54885976 0.0 0.0 

Note: Absorber inlet is subcooled
259 36.0 108.527644521 0.0 0.0 

Note: Absorber inlet is subcooled
260 37.0 108.548861742 0.0 0.0 

'First pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 0.0453529 0.998956124.808 181.433
rect 7.93188 0.8057 1.15552 17.1645
abs 2.26958 0.891645 29.7156 171.221
cond 2.40825 0.969135 24.6252 102.215
evap 1.29735 0.983616 30.0293 108.549
total 0 0 210.333 0
Note: Absorber inlet is subcooled
281 40.0 108.548861742 0.0 0.0 

Note: Absorber inlet is subcooled
282 40.0 139.371601696 0.0 22928228.5407 

Note: Absorber inlet is subcooled
283 40.0 108.986261483 0.0 0.0 

Note: Absorber inlet is subcooled
284 40.0 108.709576827 0.0 0.0 

Note: Absorber inlet is subcooled
285 40.0 108.986261483 0.0 0.0 

Note: Absorber inlet is subcooled
286 40.0 108.599580147 0.0 0.0 

Note: Absorber inlet is subcooled
287 40.0 109.175241593 0.0 403.759633968 

Note: Absorber inlet is subcooled
288 41.0 78.0393183353 0.0 0.0 

Note: Absorber inlet is subcooled
289 41.0 110.074768591 0.0 32146.4013095 

Note: Absorber inlet is subcooled
290 41.0 109.037117157 0.0 0.0 

Note: Absorber inlet is subcooled
291 41.0 112.907151088 0.0 479888.156385 

Note: Absorber inlet is subcooled
292 41.0 101.297046998 0.0 0.0 

Note: Absorber inlet is subcooled
293 41.0 109.091815409 0.0 0.0 

Note: Absorber inlet is subcooled
294 41.0 116.837878554 0.0 1935380.98419 

Note: Absorber inlet is subcooled
295 42.0 109.091811357 0.0 0.0 

Note: Absorber inlet is subcooled
296 42.0 101.347343944 0.0 0.0 

Note: Absorber inlet is subcooled
297 42.0 109.126359505 0.0 0.0 

Note: Absorber inlet is subcooled
298 42.0 116.874873635 0.0 2611877.00735 

Note: Absorber inlet is subcooled
299 42.0 109.126359505 0.0 0.0 

Note: Absorber inlet is subcooled
300 42.0 101.379436179 0.0 0.0 

Note: Absorber inlet is subcooled
301 42.0 113.000551665 0.0 647783.035551 

Note: Absorber inlet is subcooled
302 43.0 109.126351085 0.0 0.0 

Note: Absorber inlet is subcooled
303 43.0 105.252798919 0.0 0.0 

Note: Absorber inlet is subcooled
304 43.0 111.063439365 0.0 215423.955391 

Note: Absorber inlet is subcooled
305 43.0 109.126357595 0.0 0.0 

Note: Absorber inlet is subcooled
306 43.0 107.189386345 0.0 0.0 

Note: Absorber inlet is subcooled
307 43.0 109.126359944 0.0 0.0 

Note: Absorber inlet is subcooled
308 43.0 111.063225363 0.0 218061.214384 

Note: Absorber inlet is subcooled
309 44.0 108.157977227 0.0 0.0 

Note: Absorber inlet is subcooled
310 44.0 109.130678158 0.0 0.0 

Note: Absorber inlet is subcooled
311 44.0 110.09914511 0.0 72338.8336125 

Note: Absorber inlet is subcooled
312 44.0 109.130678158 0.0 0.0 

Note: Absorber inlet is subcooled
313 44.0 108.162257142 0.0 0.0 

Note: Absorber inlet is subcooled
314 44.0 109.13067909 0.0 0.0 

Note: Absorber inlet is subcooled
315 44.0 110.099119868 0.0 72282.2673087 

Note: Absorber inlet is subcooled
316 45.0 108.646480829 0.0 0.0 

Note: Absorber inlet is subcooled
317 45.0 109.130678414 0.0 0.0 

Note: Absorber inlet is subcooled
318 45.0 109.614898466 0.0 23569.7981384 

Note: Absorber inlet is subcooled
319 45.0 109.130678823 0.0 0.0 

Note: Absorber inlet is subcooled
320 45.0 109.614898466 0.0 23569.797214 

Note: Absorber inlet is subcooled
321 45.0 109.372788525 0.0 5492.62462891 

Note: Absorber inlet is subcooled
322 45.0 109.130679113 0.0 0.0 

Note: Absorber inlet is subcooled
323 46.0 108.888567794 0.0 0.0 

Note: Absorber inlet is subcooled
324 46.0 109.130679113 0.0 0.0 

Note: Absorber inlet is subcooled
325 46.0 109.372790938 0.0 7336.69813723 

Note: Absorber inlet is subcooled
326 46.0 109.251734962 0.0 1562.15639184 

Note: Absorber inlet is subcooled
327 46.0 109.130679106 0.0 0.0 

Note: Absorber inlet is subcooled
328 46.0 109.00962339 0.0 0.0 

Note: Absorber inlet is subcooled
329 46.0 109.130679142 0.0 0.0 

Note: Absorber inlet is subcooled
330 47.0 109.251735829 0.0 2078.78467379 

'Second pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 0.01694 0.999611181.239 182.083
rect 7.9359 0.804712 1.16013 17.1639
abs 2.22358 0.89363 30.2169 171.88
cond 2.3679 0.969199 24.9814 102.787
evap 1.15053 0.983837 31.798 109.131
total 0 0 269.395 0
Note: Absorber inlet is subcooled
351 50.0 109.130679142 0.0 0.0 

Note: Absorber inlet is subcooled
352 50.0 112.22899717 0.0 4581228.20733 

Note: Absorber inlet is subcooled
353 50.0 109.174442408 0.0 0.0 

Note: Absorber inlet is subcooled
354 50.0 109.14680683 0.0 0.0 

Note: Absorber inlet is subcooled
355 50.0 109.174442408 0.0 0.0 

Note: Absorber inlet is subcooled
356 50.0 109.135742354 0.0 0.0 

Note: Absorber inlet is subcooled
357 50.0 109.193339548 0.0 8.05277994397 

Note: Absorber inlet is subcooled
358 51.0 106.074881871 0.0 0.0 

Note: Absorber inlet is subcooled
359 51.0 109.723655898 0.0 183581.247215 

Note: Absorber inlet is subcooled
C:\Users\nfette\Miniconda3\envs\openACHP\lib\site-packages\scipy\integrate\quadpack.py:364: IntegrationWarning: The maximum number of subdivisions (50) has been achieved.
  If increasing the limit yields no improvement it is advised to analyze 
  the integrand in order to determine the difficulties.  If the position of a 
  local difficulty can be determined (singularity, discontinuity) one will 
  probably gain from splitting up the interval and calling the integrator 
  on the subranges.  Perhaps a special-purpose integrator should be used.
  warnings.warn(msg, IntegrationWarning)
360 51.0 108.399552246 0.0 0.0 

Note: Absorber inlet is subcooled
361 51.0 109.179925909 0.0 0.0 

Note: Absorber inlet is subcooled
362 51.0 109.184590739 0.0 0.0 

Note: Absorber inlet is subcooled
363 51.0 109.18942866 0.0 0.0 

Note: Absorber inlet is subcooled
364 51.0 109.964610554 0.0 379523.649691 

Note: Absorber inlet is subcooled
365 52.0 109.189427615 0.0 0.0 

Note: Absorber inlet is subcooled
366 52.0 108.414401817 0.0 0.0 

Note: Absorber inlet is subcooled
367 52.0 109.18942866 0.0 0.0 

Note: Absorber inlet is subcooled
368 52.0 109.964610553 0.0 512303.416904 

Note: Absorber inlet is subcooled
369 52.0 109.577018958 0.0 124238.362963 

Note: Absorber inlet is subcooled
370 52.0 109.189428607 0.0 0.0 

Note: Absorber inlet is subcooled
371 52.0 108.801876609 0.0 0.0 

Note: Absorber inlet is subcooled
372 53.0 109.190594821 0.0 0.0 

Note: Absorber inlet is subcooled
373 53.0 109.578189255 0.0 168886.818647 

Note: Absorber inlet is subcooled
374 53.0 108.99681663 0.0 0.0 

Note: Absorber inlet is subcooled
375 53.0 109.190595054 0.0 0.0 

Note: Absorber inlet is subcooled
376 53.0 109.384390579 0.0 40388.6032548 

Note: Absorber inlet is subcooled
377 53.0 109.190595054 0.0 0.0 

Note: Absorber inlet is subcooled
378 53.0 108.996818395 0.0 0.0 

Note: Absorber inlet is subcooled
379 54.0 109.191804561 0.0 0.0 

Note: Absorber inlet is subcooled
380 54.0 109.385602232 0.0 54536.2130852 

Note: Absorber inlet is subcooled
381 54.0 109.094915135 0.0 0.0 

Note: Absorber inlet is subcooled
382 54.0 109.191804559 0.0 0.0 

Note: Absorber inlet is subcooled
383 54.0 109.288703356 0.0 12309.3472997 

Note: Absorber inlet is subcooled
384 54.0 109.192096103 0.0 0.0 

Note: Absorber inlet is subcooled
385 54.0 109.288995156 0.0 12402.1739279 

Note: Absorber inlet is subcooled
386 55.0 109.143651255 0.0 0.0 

Note: Absorber inlet is subcooled
387 55.0 109.192096163 0.0 0.0 

Note: Absorber inlet is subcooled
388 55.0 109.240545584 0.0 3425.49411365 

Note: Absorber inlet is subcooled
389 55.0 109.192096163 0.0 0.0 

Note: Absorber inlet is subcooled
390 55.0 109.14365141 0.0 0.0 

Note: Absorber inlet is subcooled
391 55.0 109.192398545 0.0 0.0 

Note: Absorber inlet is subcooled
392 55.0 109.2408481 0.0 3426.69980168 

Note: Absorber inlet is subcooled
393 56.0 109.161393816 0.0 0.0 

Note: Absorber inlet is subcooled
394 56.0 109.192398544 0.0 0.0 

Note: Absorber inlet is subcooled
395 56.0 109.223406258 0.0 1461.36035294 

'Third pass and we have this ... '
Note: Absorber inlet is subcooled
name deltaT epsilon UA Q
gen 0.01694 0.999611181.239 182.083
rect 7.9359 0.804712 1.16013 17.1639
abs 2.22358 0.89363 30.2169 171.88
cond 2.3679 0.969199 24.9814 102.787
evap 1.15053 0.983837 31.798 109.131
total 0 0 269.395 0
Case 4, T_heat_reject = 313.15 K
Note: Absorber inlet contains some vapor.
211 30.0 10.4857914382 0.0 0.0 

Note: Absorber inlet contains some vapor.
212 30.0 31.4573743146 0.0 0.0 

Note: Absorber inlet contains some vapor.
213 30.0 31.6407202325 0.0 0.0 

Note: Absorber inlet contains some vapor.
214 30.0 31.508103866 0.0 0.0 

Note: Absorber inlet contains some vapor.
215 30.0 31.6407202325 0.0 0.0 

Note: Absorber inlet contains some vapor.
216 30.0 31.4819859795 0.0 0.0 

Note: Absorber inlet contains some vapor.
217 30.0 31.7349644758 0.0 0.0 

Note: Absorber inlet contains some vapor.
218 31.0 52.8963283921 0.0 0.0 

Note: Absorber inlet contains some vapor.
219 31.0 74.063061542 0.0 0.0 

Note: Absorber inlet contains some vapor.
220 31.0 95.2351132483 0.0 717020.165803 

Note: Absorber inlet contains some vapor.
221 31.0 74.1849849635 0.0 0.0 

Note: Absorber inlet contains some vapor.
222 31.0 64.7950391871 0.0 0.0 

Note: Absorber inlet contains some vapor.
223 31.0 74.2903582274 0.0 0.0 

Note: Absorber inlet contains some vapor.
224 31.0 68.6679702337 0.0 0.0 

Note: Absorber inlet contains some vapor.
225 32.0 74.2288402105 0.0 0.0 

Note: Absorber inlet contains some vapor.
226 32.0 56.0716788055 0.0 0.0 

Note: Absorber inlet contains some vapor.
227 32.0 84.9353618611 0.0 215912.411401 

Note: Absorber inlet contains some vapor.
228 32.0 69.5896554714 0.0 0.0 

Note: Absorber inlet contains some vapor.
229 32.0 72.8873255823 0.0 0.0 

Note: Absorber inlet contains some vapor.
230 32.0 74.29010737 0.0 0.0 

Note: Absorber inlet contains some vapor.
231 32.0 69.7277656952 0.0 0.0 

Note: Absorber inlet contains some vapor.
232 33.0 73.1163612019 0.0 0.0 

Note: Absorber inlet contains some vapor.
233 33.0 74.2980344467 0.0 0.0 

Note: Absorber inlet contains some vapor.
234 33.0 76.9594871107 0.0 8329.83883672 

Note: Absorber inlet contains some vapor.
235 33.0 74.2980111208 0.0 0.0 

Note: Absorber inlet contains some vapor.
236 33.0 73.5962962375 0.0 0.0 

Note: Absorber inlet contains some vapor.
237 33.0 72.0157942681 0.0 0.0 

Note: Absorber inlet contains some vapor.
238 33.0 73.7110230709 0.0 0.0 

Note: Absorber inlet contains some vapor.
239 34.0 74.2980899617 0.0 0.0 

Note: Absorber inlet contains some vapor.
240 34.0 75.6285551618 0.0 408.538360078 

Note: Absorber inlet contains some vapor.
241 34.0 74.1232049639 0.0 0.0 

Note: Absorber inlet contains some vapor.
242 34.0 74.2980288551 0.0 0.0 

Note: Absorber inlet contains some vapor.
243 34.0 73.6564402195 0.0 0.0 

Note: Absorber inlet contains some vapor.
244 34.0 74.3000157776 0.0 0.0 

Note: Absorber inlet contains some vapor.
245 34.0 74.9652726396 0.0 0.0 

Note: Absorber inlet contains some vapor.
246 35.0 75.6305416255 0.0 546.543205755 

Note: Absorber inlet contains some vapor.
247 35.0 74.9652165227 0.0 0.0 

Note: Absorber inlet contains some vapor.
248 35.0 74.6709829322 0.0 0.0 

Note: Absorber inlet contains some vapor.
249 35.0 74.8756471999 0.0 0.0 

Note: Absorber inlet contains some vapor.
250 35.0 74.9652538718 0.0 0.0 

Note: Absorber inlet contains some vapor.
251 35.0 74.8817769665 0.0 0.0 

Note: Absorber inlet contains some vapor.
252 35.0 74.6933952331 0.0 0.0 

Note: Absorber inlet contains some vapor.
253 36.0 75.1315887594 0.0 0.0 

Note: Absorber inlet contains some vapor.
254 36.0 75.2979056427 0.0 0.0 

Note: Absorber inlet contains some vapor.
255 36.0 75.4642232892 0.0 157.563090124 

Note: Absorber inlet contains some vapor.
256 36.0 75.2979170048 0.0 0.0 

Note: Absorber inlet contains some vapor.
257 36.0 75.2445027241 0.0 0.0 

Note: Absorber inlet contains some vapor.
258 36.0 75.2979090017 0.0 0.0 

Note: Absorber inlet contains some vapor.
259 36.0 75.2561236705 0.0 0.0 

Note: Absorber inlet contains some vapor.
260 37.0 75.2979133237 0.0 0.0 

'First pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.0195754 0.999461173.938 139.747
rect 7.96979 0.838605 0.821906 15.4784
abs 4.9484 0.768336 14.4515 130.186
cond 3.89507 0.966713 13.5225 70.1235
evap 3.28594 0.983425 14.4718 75.2979
total 0 0 217.206 0
Note: Absorber inlet contains some vapor.
281 40.0 75.2979170048 0.0 0.0 

Note: Absorber inlet contains some vapor.
282 40.0 96.5756559021 0.0 11700695.3672 

Note: Absorber inlet contains some vapor.
283 40.0 75.7308063918 0.0 2.74953196909 

Note: Absorber inlet contains some vapor.
284 40.0 74.985795528 0.0 0.0 

Note: Absorber inlet contains some vapor.
285 40.0 75.2979170048 0.0 0.0 

Note: Absorber inlet contains some vapor.
286 40.0 74.9232824764 0.0 0.0 

Note: Absorber inlet contains some vapor.
287 40.0 75.519531446 0.0 1188.39059772 

Note: Absorber inlet contains some vapor.
288 41.0 54.0201620102 0.0 0.0 

Note: Absorber inlet contains some vapor.
289 41.0 64.6590379116 0.0 0.0 

Note: Absorber inlet contains some vapor.
290 41.0 75.3380115668 0.0 4.73844041144 

Note: Absorber inlet contains some vapor.
291 41.0 75.24388268 0.0 0.0 

Note: Absorber inlet contains some vapor.
292 41.0 79.2909936285 0.0 546400.765493 

Note: Absorber inlet contains some vapor.
293 41.0 75.297861803 0.0 0.0 

Note: Absorber inlet contains some vapor.
294 41.0 69.9779224619 0.0 0.0 

Note: Absorber inlet contains some vapor.
295 42.0 75.2979170048 0.0 0.0 

Note: Absorber inlet contains some vapor.
296 42.0 79.2632341473 0.0 727274.52465 

Note: Absorber inlet contains some vapor.
297 42.0 75.3447722233 0.0 0.0 

Note: Absorber inlet contains some vapor.
298 42.0 79.3125160777 0.0 729396.139165 

Note: Absorber inlet contains some vapor.
299 42.0 75.975596025 0.0 18230.8174961 

Note: Absorber inlet contains some vapor.
300 42.0 74.9951053887 0.0 0.0 

Note: Absorber inlet contains some vapor.
301 42.0 72.7425430872 0.0 0.0 

Note: Absorber inlet contains some vapor.
302 43.0 75.2573295991 0.0 0.0 

Note: Absorber inlet contains some vapor.
303 43.0 75.3598498293 0.0 0.0 

Note: Absorber inlet contains some vapor.
304 43.0 75.0942718749 0.0 0.0 

Note: Absorber inlet contains some vapor.
305 43.0 75.364646755 0.0 0.0 

Note: Absorber inlet contains some vapor.
306 43.0 76.6963137919 0.0 109432.241187 

Note: Absorber inlet contains some vapor.
307 43.0 75.3646456221 0.0 0.0 

Note: Absorber inlet contains some vapor.
308 43.0 74.0631036618 0.0 0.0 

Note: Absorber inlet contains some vapor.
309 44.0 76.03047414 0.0 36144.8643221 

Note: Absorber inlet contains some vapor.
310 44.0 75.3646524445 0.0 0.0 

Note: Absorber inlet contains some vapor.
311 44.0 74.7123833215 0.0 0.0 

Note: Absorber inlet contains some vapor.
312 44.0 75.431034151 0.0 259.100085462 

Note: Absorber inlet contains some vapor.
313 44.0 75.2326949552 0.0 0.0 

Note: Absorber inlet contains some vapor.
314 44.0 75.6975765238 0.0 8702.4861722 

Note: Absorber inlet contains some vapor.
315 44.0 75.3646523802 0.0 0.0 

Note: Absorber inlet contains some vapor.
316 45.0 75.038345561 0.0 0.0 

Note: Absorber inlet contains some vapor.
317 45.0 75.3658520298 0.0 0.0 

Note: Absorber inlet contains some vapor.
318 45.0 75.6987726222 0.0 11897.8481028 

Note: Absorber inlet contains some vapor.
319 45.0 75.3658518544 0.0 0.0 

Note: Absorber inlet contains some vapor.
320 45.0 75.0395484054 0.0 0.0 

Note: Absorber inlet contains some vapor.
321 45.0 75.5323119423 0.0 2775.59412423 

Note: Absorber inlet contains some vapor.
322 45.0 75.3658503185 0.0 0.0 

Note: Absorber inlet contains some vapor.
323 46.0 75.1993972201 0.0 0.0 

Note: Absorber inlet contains some vapor.
324 46.0 75.3658534424 0.0 0.0 

Note: Absorber inlet contains some vapor.
325 46.0 75.532314845 0.0 3757.15211822 

Note: Absorber inlet contains some vapor.
326 46.0 75.2826251935 0.0 0.0 

Note: Absorber inlet contains some vapor.
327 46.0 75.3658533514 0.0 0.0 

Note: Absorber inlet contains some vapor.
328 46.0 75.4490840478 0.0 814.392778039 

Note: Absorber inlet contains some vapor.
329 46.0 75.3661533523 0.0 0.0 

Note: Absorber inlet contains some vapor.
330 47.0 75.4493837398 0.0 1114.90403684 

'Second pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.0140486 0.999627199.122 139.839
rect 7.97204 0.83858 0.822627 15.484
abs 4.93363 0.768966 14.4874 130.278
cond 3.8949 0.966702 13.5321 70.1865
evap 3.27887 0.983431 14.5015 75.3662
total 0 0 242.465 0
Note: Absorber inlet contains some vapor.
351 50.0 75.3661533523 0.0 0.0 

Note: Absorber inlet contains some vapor.
352 50.0 77.4957353342 0.0 2316302.14598 

Note: Absorber inlet contains some vapor.
353 50.0 75.4094371112 0.0 0.0 

Note: Absorber inlet contains some vapor.
354 50.0 75.3782526937 0.0 0.0 

Note: Absorber inlet contains some vapor.
355 50.0 75.4094371112 0.0 0.0 

Note: Absorber inlet contains some vapor.
356 50.0 75.3719392518 0.0 0.0 

Note: Absorber inlet contains some vapor.
357 50.0 75.4316109817 0.0 152.415547728 

Note: Absorber inlet contains some vapor.
358 51.0 73.2786306714 0.0 0.0 

Note: Absorber inlet contains some vapor.
359 51.0 75.4133268502 0.0 0.0 

Note: Absorber inlet contains some vapor.
360 51.0 75.946232213 0.0 194381.547406 

Note: Absorber inlet contains some vapor.
361 51.0 75.4133287505 0.0 0.0 

Note: Absorber inlet contains some vapor.
362 51.0 74.8805343356 0.0 0.0 

Note: Absorber inlet contains some vapor.
363 51.0 75.4180168876 0.0 0.0 

Note: Absorber inlet contains some vapor.
364 51.0 75.950993514 0.0 191051.578685 

Note: Absorber inlet contains some vapor.
365 52.0 75.418016754 0.0 0.0 

Note: Absorber inlet contains some vapor.
366 52.0 74.8851331306 0.0 0.0 

Note: Absorber inlet contains some vapor.
367 52.0 75.4180168876 0.0 0.0 

Note: Absorber inlet contains some vapor.
368 52.0 75.9509935139 0.0 257892.669048 

Note: Absorber inlet contains some vapor.
369 52.0 75.4189892651 0.0 0.0 

Note: Absorber inlet contains some vapor.
370 52.0 75.9519463794 0.0 258609.056666 

Note: Absorber inlet contains some vapor.
371 52.0 75.4189892053 0.0 0.0 

Note: Absorber inlet contains some vapor.
372 53.0 74.8861122506 0.0 0.0 

Note: Absorber inlet contains some vapor.
373 53.0 75.68546684 0.0 84746.2166581 

Note: Absorber inlet contains some vapor.
374 53.0 75.2857694336 0.0 0.0 

Note: Absorber inlet contains some vapor.
375 53.0 75.4189896865 0.0 0.0 

Note: Absorber inlet contains some vapor.
376 53.0 75.5522306133 0.0 19563.1106881 

Note: Absorber inlet contains some vapor.
377 53.0 75.4189897788 0.0 0.0 

Note: Absorber inlet contains some vapor.
378 53.0 75.2857640656 0.0 0.0 

Note: Absorber inlet contains some vapor.
379 54.0 75.41936902 0.0 0.0 

Note: Absorber inlet contains some vapor.
380 54.0 75.5526137248 0.0 25917.5709065 

Note: Absorber inlet contains some vapor.
381 54.0 75.4193690592 0.0 0.0 

Note: Absorber inlet contains some vapor.
382 54.0 75.2861263917 0.0 0.0 

Note: Absorber inlet contains some vapor.
383 54.0 75.4193691022 0.0 0.0 

Note: Absorber inlet contains some vapor.
384 54.0 75.5526136199 0.0 25594.7853496 

Note: Absorber inlet contains some vapor.
385 54.0 75.3527481031 0.0 0.0 

Note: Absorber inlet contains some vapor.
386 55.0 75.4193692631 0.0 0.0 

Note: Absorber inlet contains some vapor.
387 55.0 75.4859920568 0.0 7021.78899865 

Note: Absorber inlet contains some vapor.
388 55.0 75.386058451 0.0 0.0 

Note: Absorber inlet contains some vapor.
389 55.0 75.4193692665 0.0 0.0 

Note: Absorber inlet contains some vapor.
390 55.0 75.4526808002 0.0 1076.08613597 

Note: Absorber inlet contains some vapor.
391 55.0 75.4193692614 0.0 0.0 

Note: Absorber inlet contains some vapor.
392 55.0 75.3860577635 0.0 0.0 

Note: Absorber inlet contains some vapor.
393 56.0 75.4193692751 0.0 0.0 

Note: Absorber inlet contains some vapor.
394 56.0 75.4526808462 0.0 1425.69109839 

Note: Absorber inlet contains some vapor.
395 56.0 75.4193692774 0.0 0.0 

Note: Absorber inlet contains some vapor.
396 56.0 75.3860577861 0.0 0.0 

Note: Absorber inlet contains some vapor.
397 56.0 75.4406886479 0.0 276.344878471 

'Third pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.0140486 0.999627199.122 139.839
rect 7.97204 0.83858 0.822627 15.484
abs 4.93363 0.768966 14.4874 130.278
cond 3.8949 0.966702 13.5321 70.1865
evap 3.27887 0.983431 14.5015 75.3662
total 0 0 242.465 0
Case 5, T_heat_reject = 318.15 K
Note: Absorber inlet contains some vapor.
211 30.0 5.51897762569 0.0 0.0 

Note: Absorber inlet contains some vapor.
212 30.0 16.5569328771 0.0 0.0 

Note: Absorber inlet contains some vapor.
213 30.0 16.7399188614 0.0 0.0 

Note: Absorber inlet contains some vapor.
214 30.0 16.5897806846 0.0 0.0 

Note: Absorber inlet contains some vapor.
215 30.0 16.7399188614 0.0 0.0 

Note: Absorber inlet contains some vapor.
216 30.0 16.5846106716 0.0 0.0 

Note: Absorber inlet contains some vapor.
217 30.0 16.8499097874 0.0 0.0 

Note: Absorber inlet contains some vapor.
218 31.0 28.0928402944 0.0 0.0 

Note: Absorber inlet contains some vapor.
219 31.0 39.3466966037 0.0 0.0 

Note: Absorber inlet contains some vapor.
220 31.0 50.6112426796 0.0 103330.977087 

Note: Absorber inlet contains some vapor.
221 31.0 39.4680768878 0.0 0.0 

Note: Absorber inlet contains some vapor.
222 31.0 34.5281457496 0.0 0.0 

Note: Absorber inlet contains some vapor.
223 31.0 39.5705774892 0.0 0.0 

Note: Absorber inlet contains some vapor.
224 31.0 36.6349727902 0.0 0.0 

Note: Absorber inlet contains some vapor.
225 32.0 39.5017269011 0.0 0.0 

Note: Absorber inlet contains some vapor.
226 32.0 29.7965536092 0.0 0.0 

Note: Absorber inlet contains some vapor.
227 32.0 45.2630862796 0.0 7500.86260898 

Note: Absorber inlet contains some vapor.
228 32.0 37.0972089639 0.0 0.0 

Note: Absorber inlet contains some vapor.
229 32.0 37.1181344104 0.0 0.0 

Note: Absorber inlet contains some vapor.
230 32.0 39.5703509281 0.0 0.0 

Note: Absorber inlet contains some vapor.
231 32.0 38.8372298303 0.0 0.0 

Note: Absorber inlet contains some vapor.
232 33.0 40.9931384512 0.0 0.0 

Note: Absorber inlet contains some vapor.
233 33.0 42.4160810148 0.0 0.0 

Note: Absorber inlet contains some vapor.
234 33.0 43.8394017089 0.0 325.423539369 

Note: Absorber inlet contains some vapor.
235 33.0 42.4178212198 0.0 0.0 

Note: Absorber inlet contains some vapor.
236 33.0 42.16211948 0.0 0.0 

Note: Absorber inlet contains some vapor.
237 33.0 42.4185094915 0.0 0.0 

Note: Absorber inlet contains some vapor.
238 33.0 41.9295982566 0.0 0.0 

Note: Absorber inlet contains some vapor.
239 34.0 42.4181963267 0.0 0.0 

Note: Absorber inlet contains some vapor.
240 34.0 41.1058326104 0.0 0.0 

Note: Absorber inlet contains some vapor.
241 34.0 43.1307891215 0.0 0.0 

Note: Absorber inlet contains some vapor.
242 34.0 43.8431725574 0.0 359.791760882 

Note: Absorber inlet contains some vapor.
243 34.0 43.1308120862 0.0 0.0 

Note: Absorber inlet contains some vapor.
244 34.0 43.8431798081 0.0 345.159581907 

Note: Absorber inlet contains some vapor.
245 34.0 43.131306746 0.0 0.0 

Note: Absorber inlet contains some vapor.
246 35.0 42.7207189281 0.0 0.0 

Note: Absorber inlet contains some vapor.
247 35.0 43.0397627486 0.0 0.0 

Note: Absorber inlet contains some vapor.
248 35.0 43.1312368231 0.0 0.0 

Note: Absorber inlet contains some vapor.
249 35.0 42.8551000139 0.0 0.0 

Note: Absorber inlet contains some vapor.
250 35.0 43.487631528 0.0 0.0 

Note: Absorber inlet contains some vapor.
251 35.0 43.8439827808 0.0 428.829568798 

Note: Absorber inlet contains some vapor.
252 35.0 43.4472905668 0.0 0.0 

Note: Absorber inlet contains some vapor.
253 36.0 43.8439828769 0.0 578.83878969 

Note: Absorber inlet contains some vapor.
254 36.0 43.4377332332 0.0 0.0 

Note: Absorber inlet contains some vapor.
255 36.0 43.4876298902 0.0 0.0 

Note: Absorber inlet contains some vapor.
256 36.0 43.4536052139 0.0 0.0 

Note: Absorber inlet contains some vapor.
257 36.0 43.4876075136 0.0 0.0 

Note: Absorber inlet contains some vapor.
258 36.0 43.3249676458 0.0 0.0 

Note: Absorber inlet contains some vapor.
259 36.0 43.5767168869 0.0 0.0 

Note: Absorber inlet contains some vapor.
260 37.0 43.6658039154 0.0 83.7707672426 

'First pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.0109519 0.999918211.237 99.8247
rect 7.99233 0.865834 0.48379511.5475
abs 4.93982 0.70365 12.1247 92.7155
cond 5.27092 0.965175 6.66969 40.0875
evap 5.17436 0.98324 6.84364 43.5767
total 0 0 237.359 0
Note: Absorber inlet contains some vapor.
281 40.0 43.5767168869 0.0 0.0 

Note: Absorber inlet contains some vapor.
282 40.0 54.9533948323 0.0 3616892.60374 

Note: Absorber inlet contains some vapor.
283 40.0 44.0442017249 0.0 252.383863267 

Note: Absorber inlet contains some vapor.
284 40.0 43.1943707512 0.0 0.0 

Note: Absorber inlet contains some vapor.
285 40.0 43.5767168869 0.0 0.0 

Note: Absorber inlet contains some vapor.
286 40.0 43.1800087709 0.0 0.0 

Note: Absorber inlet contains some vapor.
287 40.0 43.8565812937 0.0 2323.0374273 

Note: Absorber inlet contains some vapor.
288 41.0 32.1998843839 0.0 0.0 

Note: Absorber inlet contains some vapor.
289 41.0 37.888286774 0.0 0.0 

Note: Absorber inlet contains some vapor.
290 41.0 43.5101616394 0.0 0.0 

Note: Absorber inlet contains some vapor.
291 41.0 43.5224168078 0.0 0.0 

Note: Absorber inlet contains some vapor.
292 41.0 46.4283322815 0.0 301199.722426 

Note: Absorber inlet contains some vapor.
293 41.0 43.5766154972 0.0 0.0 

Note: Absorber inlet contains some vapor.
294 41.0 40.7307730498 0.0 0.0 

Note: Absorber inlet contains some vapor.
295 42.0 43.5767168869 0.0 0.0 

Note: Absorber inlet contains some vapor.
296 42.0 46.4283318914 0.0 406578.395666 

Note: Absorber inlet contains some vapor.
297 42.0 43.6263400269 0.0 3.24300375278 

Note: Absorber inlet contains some vapor.
298 42.0 44.6443752655 0.0 64724.4214749 

Note: Absorber inlet contains some vapor.
299 42.0 43.6263973527 0.0 3.28931213456 

Note: Absorber inlet contains some vapor.
300 42.0 42.8651861514 0.0 0.0 

Note: Absorber inlet contains some vapor.
301 42.0 43.5850294941 0.0 1.33435524842 

Note: Absorber inlet contains some vapor.
302 43.0 43.7092035119 0.0 1350.98214458 

Note: Absorber inlet contains some vapor.
303 43.0 43.5892088048 0.0 0.00886889343184 

Note: Absorber inlet contains some vapor.
304 43.0 43.5959969252 0.0 0.1316547651 

Note: Absorber inlet contains some vapor.
305 43.0 43.6699518557 0.0 474.868346468 

Note: Absorber inlet contains some vapor.
306 43.0 43.5892025037 0.0 1.78614925127 

Note: Absorber inlet contains some vapor.
307 43.0 43.2333349964 0.0 0.0 

Note: Absorber inlet contains some vapor.
308 43.0 43.5892088048 0.0 0.00886889343184 

Note: Absorber inlet contains some vapor.
309 44.0 43.5975259706 0.0 5.51229809768 

Note: Absorber inlet contains some vapor.
310 44.0 43.5951573571 0.0 1.67245732303 

Note: Absorber inlet contains some vapor.
311 44.0 43.595214294 0.0 2.37196649181 

Note: Absorber inlet contains some vapor.
312 44.0 43.5907698296 0.0 0.0442797584693 

Note: Absorber inlet contains some vapor.
313 44.0 43.5894927418 0.0 0.00907575804471 

Note: Absorber inlet contains some vapor.
314 44.0 43.6337564718 0.0 182.341112729 

Note: Absorber inlet contains some vapor.
315 44.0 43.5008848151 0.0 0.0 

Note: Absorber inlet contains some vapor.
316 45.0 43.5875458674 0.0 0.0 

Note: Absorber inlet contains some vapor.
317 45.0 43.5815927464 0.0 0.0 

Note: Absorber inlet contains some vapor.
318 45.0 43.5875458674 0.0 0.0 

Note: Absorber inlet contains some vapor.
319 45.0 43.6523098923 0.0 546.448217895 

Note: Absorber inlet contains some vapor.
320 45.0 43.5890242503 0.0 0.00284076955899 

Note: Absorber inlet contains some vapor.
321 45.0 43.5875953345 0.0 0.0 

Note: Absorber inlet contains some vapor.
322 45.0 43.5432100491 0.0 0.0 

Note: Absorber inlet contains some vapor.
323 46.0 43.6093709828 0.0 78.7703857556 

Note: Absorber inlet contains some vapor.
324 46.0 43.5875856429 0.0 0.0 

Note: Absorber inlet contains some vapor.
325 46.0 43.5653531258 0.0 0.0 

Note: Absorber inlet contains some vapor.
326 46.0 43.5871091042 0.0 0.0 

Note: Absorber inlet contains some vapor.
327 46.0 43.6098258772 0.0 80.9783953549 

Note: Absorber inlet contains some vapor.
328 46.0 43.5875953345 0.0 0.0 

Note: Absorber inlet contains some vapor.
329 46.0 43.6098258772 0.0 80.9783953549 

Note: Absorber inlet contains some vapor.
330 47.0 43.58722583 0.0 0.0 

'Second pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.0100624 0.999955219.633 99.8425
rect 7.99236 0.865823 0.48391211.5493
abs 4.93671 0.703807 12.1321 92.7323
cond 5.27023 0.965176 6.67192 40.0976
evap 5.17422 0.983239 6.8452 43.5876
total 0 0 245.766 0
Note: Absorber inlet contains some vapor.
351 50.0 43.5875953345 0.0 0.0 

Note: Absorber inlet contains some vapor.
352 50.0 44.7254810828 0.0 717244.155127 

Note: Absorber inlet contains some vapor.
353 50.0 43.6343357153 0.0 51.7416267246 

Note: Absorber inlet contains some vapor.
354 50.0 43.5493901862 0.0 0.0 

Note: Absorber inlet contains some vapor.
355 50.0 43.5875953345 0.0 0.0 

Note: Absorber inlet contains some vapor.
356 50.0 43.5479026924 0.0 0.0 

Note: Absorber inlet contains some vapor.
357 50.0 43.6156084386 0.0 469.849207665 

Note: Absorber inlet contains some vapor.
358 51.0 42.4496886843 0.0 0.0 

Note: Absorber inlet contains some vapor.
359 51.0 43.0186418677 0.0 0.0 

Note: Absorber inlet contains some vapor.
360 51.0 43.5802289948 0.0 0.0 

Note: Absorber inlet contains some vapor.
361 51.0 43.5821710425 0.0 0.0 

Note: Absorber inlet contains some vapor.
362 51.0 43.8727341856 0.0 60282.9551888 

Note: Absorber inlet contains some vapor.
363 51.0 43.5875943216 0.0 0.0 

Note: Absorber inlet contains some vapor.
364 51.0 43.3029419499 0.0 0.0 

Note: Absorber inlet contains some vapor.
365 52.0 43.5875953345 0.0 0.0 

Note: Absorber inlet contains some vapor.
366 52.0 43.8727341852 0.0 81373.5060726 

Note: Absorber inlet contains some vapor.
367 52.0 43.592557533 0.0 0.78708824866 

Note: Absorber inlet contains some vapor.
368 52.0 43.6288900415 0.0 2396.09363326 

Note: Absorber inlet contains some vapor.
369 52.0 43.5925742047 0.0 0.816998775796 

Note: Absorber inlet contains some vapor.
370 52.0 43.5974623047 0.0 136.129192372 

Note: Absorber inlet contains some vapor.
371 52.0 43.6228574018 0.0 1228.23965445 

Note: Absorber inlet contains some vapor.
372 53.0 43.5166357072 0.0 0.0 

Note: Absorber inlet contains some vapor.
373 53.0 43.588502838 0.0 0.602079007758 

Note: Absorber inlet contains some vapor.
374 53.0 43.5816832431 0.0 0.0 

Note: Absorber inlet contains some vapor.
375 53.0 43.5888233683 0.0 1.85782491857 

Note: Absorber inlet contains some vapor.
376 53.0 43.5882734237 0.0 0.0 

Note: Absorber inlet contains some vapor.
377 53.0 43.5895014937 0.0 2.19846218625 

Note: Absorber inlet contains some vapor.
378 53.0 43.5882734237 0.0 0.0 

Note: Absorber inlet contains some vapor.
379 54.0 43.5897307733 0.0 3.13877492658 

Note: Absorber inlet contains some vapor.
380 54.0 43.5882734792 0.0 0.337715581685 

Note: Absorber inlet contains some vapor.
381 54.0 43.5878073089 0.0 0.0 

Note: Absorber inlet contains some vapor.
382 54.0 43.5880403681 0.0 0.0 

Note: Absorber inlet contains some vapor.
383 54.0 43.5971459109 0.0 141.76482976 

Note: Absorber inlet contains some vapor.
384 54.0 43.570528594 0.0 0.0 

Note: Absorber inlet contains some vapor.
385 54.0 43.5890125479 0.0 1.59643568742 

Note: Absorber inlet contains some vapor.
386 55.0 43.5869097169 0.0 0.0 

Note: Absorber inlet contains some vapor.
387 55.0 43.5890044449 0.0 0.41664956317 

'Third pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.0100624 0.999955219.633 99.8425
rect 7.99236 0.865823 0.48391211.5493
abs 4.93671 0.703807 12.1321 92.7323
cond 5.27023 0.965176 6.67192 40.0976
evap 5.17422 0.983239 6.8452 43.5876
total 0 0 245.766 0
Case 6, T_heat_reject = 323.15 K
Note: Absorber inlet contains some vapor.
211 30.0 0.273371382858 0.0 0.0 

Note: Absorber inlet contains some vapor.
212 30.0 0.820114148573 0.0 0.0 

Note: Absorber inlet contains some vapor.
213 30.0 1.00471851873 0.0 0.0 

Note: Absorber inlet contains some vapor.
214 30.0 0.833200632778 0.0 0.0 

Note: Absorber inlet contains some vapor.
215 30.0 1.00471851873 0.0 0.0 

Note: Absorber inlet contains some vapor.
216 30.0 0.851048928386 0.0 0.0 

Note: Absorber inlet contains some vapor.
217 30.0 1.13373199236 0.0 0.0 

Note: Absorber inlet contains some vapor.
218 31.0 2.04195303948 0.0 0.0 

Note: Absorber inlet contains some vapor.
219 31.0 3.098997103 0.0 0.0 

Note: Absorber inlet contains some vapor.
220 31.0 4.23780158012 0.0 0.0 

Note: Absorber inlet contains some vapor.
221 31.0 5.42606614489 0.0 0.0 

Note: Absorber inlet contains some vapor.
222 31.0 6.64729341507 0.0 0.0 

Note: Absorber inlet contains some vapor.
223 31.0 7.89191220862 0.0 0.0 

Note: Absorber inlet contains some vapor.
224 31.0 9.15400020191 0.0 0.0 

Note: Absorber inlet contains some vapor.
225 32.0 10.4293855253 0.0 0.0 

Note: Absorber inlet contains some vapor.
226 32.0 11.7156600112 0.0 33954.4233197 

Note: Absorber inlet contains some vapor.
227 32.0 10.0207480206 0.0 0.0 

Note: Absorber inlet contains some vapor.
228 32.0 11.1878282394 0.0 0.0 

Note: Absorber inlet contains some vapor.
229 32.0 11.5084521682 0.0 0.0 

Note: Absorber inlet contains some vapor.
230 32.0 11.9639093757 0.0 0.0 

Note: Absorber inlet contains some vapor.
231 32.0 11.7335898733 0.0 0.0 

Note: Absorber inlet contains some vapor.
232 33.0 10.1470766758 0.0 0.0 

Note: Absorber inlet contains some vapor.
233 33.0 13.1413436443 0.0 0.0 

Note: Absorber inlet contains some vapor.
234 33.0 14.3639826115 0.0 12483.4114307 

Note: Absorber inlet contains some vapor.
235 33.0 13.1625983169 0.0 0.0 

Note: Absorber inlet contains some vapor.
236 33.0 12.8934033341 0.0 10.0057988207 

Note: Absorber inlet contains some vapor.
237 33.0 13.1448633096 0.0 0.0 

Note: Absorber inlet contains some vapor.
238 33.0 12.5171443364 0.0 0.0 

Note: Absorber inlet contains some vapor.
239 34.0 13.0578158321 0.0 0.0 

Note: Absorber inlet contains some vapor.
240 34.0 12.8213650776 0.0 0.0 

Note: Absorber inlet contains some vapor.
241 34.0 12.717175904 0.0 0.0 

Note: Absorber inlet contains some vapor.
242 34.0 13.3589228673 0.0 0.0 

Note: Absorber inlet contains some vapor.
243 34.0 13.6632215413 0.0 172.659709369 

Note: Absorber inlet contains some vapor.
244 34.0 13.3579455634 0.0 0.0 

Note: Absorber inlet contains some vapor.
245 34.0 13.1791151069 0.0 0.0 

Note: Absorber inlet contains some vapor.
246 35.0 13.3582383062 0.0 0.0 

Note: Absorber inlet contains some vapor.
247 35.0 13.1372000933 0.0 0.0 

Note: Absorber inlet contains some vapor.
248 35.0 13.3593711542 0.0 0.0 

Note: Absorber inlet contains some vapor.
249 35.0 13.2607103679 0.0 0.0 

Note: Absorber inlet contains some vapor.
250 35.0 13.323945039 0.0 0.0 

Note: Absorber inlet contains some vapor.
251 35.0 13.1429410931 0.0 0.0 

Note: Absorber inlet contains some vapor.
252 35.0 13.2731612473 0.0 0.0 

Note: Absorber inlet contains some vapor.
253 36.0 13.5112397691 0.0 0.80359076254 

Note: Absorber inlet contains some vapor.
254 36.0 13.310821259 0.0 0.0 

Note: Absorber inlet contains some vapor.
255 36.0 13.3593080657 0.0 0.0 

Note: Absorber inlet contains some vapor.
256 36.0 13.3367666141 0.0 0.0 

Note: Absorber inlet contains some vapor.
257 36.0 13.3593255425 0.0 0.0 

Note: Absorber inlet contains some vapor.
258 36.0 13.342908806 0.0 0.0 

Note: Absorber inlet contains some vapor.
259 36.0 13.3378048507 0.0 0.0 

Note: Absorber inlet contains some vapor.
260 37.0 13.3972630108 0.0 0.0 

'First pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.108392 0.995621357.304 102.998
rect 7.81123 0.884091 0.150965 4.49446
abs 3.12599 0.723022 26.424 102.303
cond 6.31036 0.966527 1.86727 12.1662
evap 6.86082 0.983277 1.85422 13.3973
total 0 0 387.601 0
Note: Absorber inlet contains some vapor.
281 40.0 13.3972630108 0.0 0.0 

Note: Absorber inlet contains some vapor.
282 40.0 14.8962177138 0.0 1150879.43464 

Note: Absorber inlet contains some vapor.
283 40.0 14.4959934327 0.0 8511.12416542 

Note: Absorber inlet contains some vapor.
284 40.0 12.3863311141 0.0 0.0 

Note: Absorber inlet contains some vapor.
285 40.0 13.3972630108 0.0 0.0 

Note: Absorber inlet contains some vapor.
286 40.0 12.4818947392 0.0 0.0 

Note: Absorber inlet contains some vapor.
287 40.0 14.1558820509 0.0 8663.30146853 

Note: Absorber inlet contains some vapor.
288 41.0 11.8861031108 0.0 0.0 

Note: Absorber inlet contains some vapor.
289 41.0 12.6412960729 0.0 0.0 

Note: Absorber inlet contains some vapor.
290 41.0 13.0732798581 0.0 0.0 

Note: Absorber inlet contains some vapor.
291 41.0 13.5234983082 0.0 0.0 

Note: Absorber inlet contains some vapor.
292 41.0 13.5864725241 0.0 0.0 

Note: Absorber inlet contains some vapor.
293 41.0 13.7009791088 0.0 0.0 

Note: Absorber inlet contains some vapor.
294 41.0 14.3193414524 0.0 60173.0176255 

Note: Absorber inlet contains some vapor.
295 42.0 13.7009791088 0.0 0.0 

Note: Absorber inlet contains some vapor.
296 42.0 13.3143758527 0.0 0.0 

Note: Absorber inlet contains some vapor.
297 42.0 13.5390700222 0.0 0.0 

Note: Absorber inlet contains some vapor.
298 42.0 13.7009895977 0.0 0.0 

Note: Absorber inlet contains some vapor.
299 42.0 13.5708707953 0.0 0.0 

Note: Absorber inlet contains some vapor.
300 42.0 14.0086039294 0.0 17971.69356 

Note: Absorber inlet contains some vapor.
301 42.0 13.6043208187 0.0 0.0 

Note: Absorber inlet contains some vapor.
302 43.0 13.7009895977 0.0 0.0 

Note: Absorber inlet contains some vapor.
303 43.0 13.62003843 0.0 0.0 

Note: Absorber inlet contains some vapor.
304 43.0 13.6437305497 0.0 0.0 

Note: Absorber inlet contains some vapor.
305 43.0 13.668462341 0.0 0.0 

Note: Absorber inlet contains some vapor.
306 43.0 13.7775900082 0.0 596.684621758 

Note: Absorber inlet contains some vapor.
307 43.0 13.6866759073 0.0 0.0 

Note: Absorber inlet contains some vapor.
308 43.0 13.7009837885 0.0 0.0 

Note: Absorber inlet contains some vapor.
309 44.0 13.6694862846 0.0 0.0 

Note: Absorber inlet contains some vapor.
310 44.0 13.7009908825 0.0 0.0 

Note: Absorber inlet contains some vapor.
311 44.0 13.7392660246 0.0 6.74951211578 

Note: Absorber inlet contains some vapor.
312 44.0 13.6928960985 0.0 0.0 

Note: Absorber inlet contains some vapor.
313 44.0 13.7009908825 0.0 0.0 

Note: Absorber inlet contains some vapor.
314 44.0 13.6852470619 0.0 0.0 

Note: Absorber inlet contains some vapor.
315 44.0 13.6938339542 0.0 0.0 

Note: Absorber inlet contains some vapor.
316 45.0 13.7105549304 0.0 0.0 

Note: Absorber inlet contains some vapor.
317 45.0 13.7201221372 0.0 0.0 

Note: Absorber inlet contains some vapor.
318 45.0 13.7296925011 0.0 0.0 

Note: Absorber inlet contains some vapor.
319 45.0 13.7392660128 0.0 9.17562701064 

Note: Absorber inlet contains some vapor.
320 45.0 13.7296972177 0.0 0.0 

Note: Absorber inlet contains some vapor.
321 45.0 13.7273323583 0.0 0.0 

Note: Absorber inlet contains some vapor.
322 45.0 13.729697012 0.0 0.0 

Note: Absorber inlet contains some vapor.
323 46.0 13.7283312653 0.0 0.0 

Note: Absorber inlet contains some vapor.
324 46.0 13.7296971821 0.0 0.0 

Note: Absorber inlet contains some vapor.
325 46.0 13.720525562 0.0 0.0 

Note: Absorber inlet contains some vapor.
326 46.0 13.7344835037 0.0 0.0 

Note: Absorber inlet contains some vapor.
327 46.0 13.7392705794 0.0 3.54979562644 

Note: Absorber inlet contains some vapor.
328 46.0 13.7344835846 0.0 0.0 

Note: Absorber inlet contains some vapor.
329 46.0 13.7322098352 0.0 0.0 

Note: Absorber inlet contains some vapor.
330 47.0 13.7342762176 0.0 0.0 

'Second pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.0121056 0.999512940.511 103.555
rect 7.80529 0.883858 0.154906 4.60028
abs 3.1001 0.725623 26.6929 102.785
cond 6.28557 0.966585 1.92003 12.4737
evap 6.81746 0.983325 1.9098 13.7345
total 0 0 971.189 0
Note: Absorber inlet contains some vapor.
351 50.0 13.7344835846 0.0 0.0 

Note: Absorber inlet contains some vapor.
352 50.0 13.8880138438 0.0 247032.108243 

Note: Absorber inlet contains some vapor.
353 50.0 13.8444623204 0.0 3070.68006384 

Note: Absorber inlet contains some vapor.
354 50.0 13.6334094392 0.0 0.0 

Note: Absorber inlet contains some vapor.
355 50.0 13.7344835846 0.0 0.0 

Note: Absorber inlet contains some vapor.
356 50.0 13.6427956716 0.0 0.0 

Note: Absorber inlet contains some vapor.
357 50.0 13.8104748838 0.0 3109.62638227 

Note: Absorber inlet contains some vapor.
358 51.0 13.5786801001 0.0 0.0 

Note: Absorber inlet contains some vapor.
359 51.0 13.6565753515 0.0 0.0 

Note: Absorber inlet contains some vapor.
360 51.0 13.7023302962 0.0 0.0 

Note: Absorber inlet contains some vapor.
361 51.0 13.7471168309 0.0 11.8069568617 

Note: Absorber inlet contains some vapor.
362 51.0 13.7401594194 0.0 0.0 

Note: Absorber inlet contains some vapor.
363 51.0 13.7516215565 0.0 6.2611228215 

Note: Absorber inlet contains some vapor.
364 51.0 13.707084398 0.0 0.0 

Note: Absorber inlet contains some vapor.
365 52.0 13.7401594194 0.0 0.0 

Note: Absorber inlet contains some vapor.
366 52.0 13.7320505109 0.0 0.0 

Note: Absorber inlet contains some vapor.
367 52.0 13.7596825914 0.0 6296.22518788 

Note: Absorber inlet contains some vapor.
368 52.0 13.7011159896 0.0 0.0 

Note: Absorber inlet contains some vapor.
369 52.0 13.7708157875 0.0 3846.89322653 

Note: Absorber inlet contains some vapor.
370 52.0 13.7240539424 0.0 0.0 

Note: Absorber inlet contains some vapor.
371 52.0 13.7303982208 0.0 0.0 

Note: Absorber inlet contains some vapor.
372 53.0 13.7401594629 0.0 0.0 

Note: Absorber inlet contains some vapor.
373 53.0 13.7316408926 0.0 0.0 

Note: Absorber inlet contains some vapor.
374 53.0 13.7408689628 0.0 0.0 

Note: Absorber inlet contains some vapor.
375 53.0 13.7561934634 0.0 1076.15826488 

Note: Absorber inlet contains some vapor.
376 53.0 13.7408689628 0.0 0.0 

Note: Absorber inlet contains some vapor.
377 53.0 13.732816363 0.0 0.0 

Note: Absorber inlet contains some vapor.
378 53.0 13.7359880931 0.0 0.0 

Note: Absorber inlet contains some vapor.
379 54.0 13.736609678 0.0 0.0 

Note: Absorber inlet contains some vapor.
380 54.0 13.7446993297 0.0 15.7849029767 

Note: Absorber inlet contains some vapor.
381 54.0 13.7408689637 0.0 0.0 

Note: Absorber inlet contains some vapor.
382 54.0 13.7388561701 0.0 0.0 

Note: Absorber inlet contains some vapor.
383 54.0 13.739506123 0.0 0.0 

Note: Absorber inlet contains some vapor.
384 54.0 13.7408689637 0.0 0.0 

Note: Absorber inlet contains some vapor.
385 54.0 13.7393070819 0.0 0.0 

Note: Absorber inlet contains some vapor.
386 55.0 13.7409825113 0.0 0.0 

Note: Absorber inlet contains some vapor.
387 55.0 13.7434338975 0.0 0.0 

Note: Absorber inlet contains some vapor.
388 55.0 13.7458854907 0.0 68.8781821165 

'Third pass and we have this ... '
Note: Absorber inlet contains some vapor.
name deltaT epsilon UA Q
gen 0.0121056 0.999512940.511 103.555
rect 7.80529 0.883858 0.154906 4.60028
abs 3.1001 0.725623 26.6929 102.785
cond 6.28557 0.966585 1.92003 12.4737
evap 6.81746 0.983325 1.9098 13.7345
total 0 0 971.189 0
Case 7, T_heat_reject = 328.15 K
211 30.0 inf 0.0 0.0 

212 30.0 inf 0.0 0.0 

213 30.0 inf 0.0 0.0 

214 30.0 inf 0.0 0.0 

215 30.0 inf 0.0 0.0 

216 30.0 inf 0.0 0.0 

217 30.0 inf 0.0 0.0 

218 31.0 inf 0.0 0.0 

219 31.0 inf 0.0 0.0 

220 31.0 inf 0.0 0.0 

221 31.0 inf 0.0 0.0 

222 31.0 inf 0.0 0.0 

223 31.0 inf 0.0 0.0 

224 31.0 inf 0.0 0.0 

225 32.0 inf 0.0 0.0 

226 32.0 inf 0.0 0.0 

227 32.0 inf 0.0 0.0 

228 32.0 inf 0.0 0.0 

229 32.0 inf 0.0 0.0 

230 32.0 inf 0.0 0.0 

231 32.0 inf 0.0 0.0 

232 33.0 inf 0.0 0.0 

233 33.0 inf 0.0 0.0 

234 33.0 inf 0.0 0.0 

235 33.0 inf 0.0 0.0 

236 33.0 inf 0.0 0.0 

237 33.0 inf 0.0 0.0 

238 33.0 inf 0.0 0.0 

239 34.0 inf 0.0 0.0 

240 34.0 inf 0.0 0.0 

241 34.0 inf 0.0 0.0 

242 34.0 inf 0.0 0.0 

243 34.0 inf 0.0 0.0 

244 34.0 inf 0.0 0.0 

245 34.0 inf 0.0 0.0 

246 35.0 inf 0.0 0.0 

247 35.0 inf 0.0 0.0 

248 35.0 inf 0.0 0.0 

249 35.0 inf 0.0 0.0 

250 35.0 inf 0.0 0.0 

251 35.0 inf 0.0 0.0 

252 35.0 inf 0.0 0.0 

253 36.0 inf 0.0 0.0 

254 36.0 inf 0.0 0.0 

255 36.0 inf 0.0 0.0 

256 36.0 inf 0.0 0.0 

257 36.0 inf 0.0 0.0 

258 36.0 inf 0.0 0.0 

259 36.0 inf 0.0 0.0 

260 37.0 inf 0.0 0.0 

'First pass and we have this ... '
ValueError('In rectifier, net mass or ammonia flow is negative.')
281 40.0 inf 0.0 0.0 

282 40.0 inf 0.0 0.0 

283 40.0 inf 0.0 0.0 

284 40.0 inf 0.0 0.0 

285 40.0 inf 0.0 0.0 

286 40.0 inf 0.0 0.0 

287 40.0 inf 0.0 0.0 

288 41.0 inf 0.0 0.0 

289 41.0 inf 0.0 0.0 

290 41.0 inf 0.0 0.0 

291 41.0 inf 0.0 0.0 

292 41.0 inf 0.0 0.0 

293 41.0 inf 0.0 0.0 

294 41.0 inf 0.0 0.0 

295 42.0 inf 0.0 0.0 

296 42.0 inf 0.0 0.0 

297 42.0 inf 0.0 0.0 

298 42.0 inf 0.0 0.0 

299 42.0 inf 0.0 0.0 

300 42.0 inf 0.0 0.0 

301 42.0 inf 0.0 0.0 

302 43.0 inf 0.0 0.0 

303 43.0 inf 0.0 0.0 

304 43.0 inf 0.0 0.0 

305 43.0 inf 0.0 0.0 

306 43.0 inf 0.0 0.0 

307 43.0 inf 0.0 0.0 

308 43.0 inf 0.0 0.0 

309 44.0 inf 0.0 0.0 

310 44.0 inf 0.0 0.0 

311 44.0 inf 0.0 0.0 

312 44.0 inf 0.0 0.0 

313 44.0 inf 0.0 0.0 

314 44.0 inf 0.0 0.0 

315 44.0 inf 0.0 0.0 

316 45.0 inf 0.0 0.0 

317 45.0 inf 0.0 0.0 

318 45.0 inf 0.0 0.0 

319 45.0 inf 0.0 0.0 

320 45.0 inf 0.0 0.0 

321 45.0 inf 0.0 0.0 

322 45.0 inf 0.0 0.0 

323 46.0 inf 0.0 0.0 

324 46.0 inf 0.0 0.0 

325 46.0 inf 0.0 0.0 

326 46.0 inf 0.0 0.0 

327 46.0 inf 0.0 0.0 

328 46.0 inf 0.0 0.0 

329 46.0 inf 0.0 0.0 

330 47.0 inf 0.0 0.0 

'Second pass and we have this ... '
ValueError('In rectifier, net mass or ammonia flow is negative.')
351 50.0 inf 0.0 0.0 

352 50.0 inf 0.0 0.0 

353 50.0 inf 0.0 0.0 

354 50.0 inf 0.0 0.0 

355 50.0 inf 0.0 0.0 

356 50.0 inf 0.0 0.0 

357 50.0 inf 0.0 0.0 

358 51.0 inf 0.0 0.0 

359 51.0 inf 0.0 0.0 

360 51.0 inf 0.0 0.0 

361 51.0 inf 0.0 0.0 

362 51.0 inf 0.0 0.0 

363 51.0 inf 0.0 0.0 

364 51.0 inf 0.0 0.0 

365 52.0 inf 0.0 0.0 

366 52.0 inf 0.0 0.0 

367 52.0 inf 0.0 0.0 

368 52.0 inf 0.0 0.0 

369 52.0 inf 0.0 0.0 

370 52.0 inf 0.0 0.0 

371 52.0 inf 0.0 0.0 

372 53.0 inf 0.0 0.0 

373 53.0 inf 0.0 0.0 

374 53.0 inf 0.0 0.0 

375 53.0 inf 0.0 0.0 

376 53.0 inf 0.0 0.0 

377 53.0 inf 0.0 0.0 

378 53.0 inf 0.0 0.0 

379 54.0 inf 0.0 0.0 

380 54.0 inf 0.0 0.0 

381 54.0 inf 0.0 0.0 

382 54.0 inf 0.0 0.0 

383 54.0 inf 0.0 0.0 

384 54.0 inf 0.0 0.0 

385 54.0 inf 0.0 0.0 

386 55.0 inf 0.0 0.0 

387 55.0 inf 0.0 0.0 

388 55.0 inf 0.0 0.0 

389 55.0 inf 0.0 0.0 

'Third pass and we have this ... '
ValueError('In rectifier, net mass or ammonia flow is negative.')
Case 8, T_heat_reject = 333.15 K
211 30.0 inf 0.0 0.0 

212 30.0 inf 0.0 0.0 

213 30.0 inf 0.0 0.0 

214 30.0 inf 0.0 0.0 

215 30.0 inf 0.0 0.0 

216 30.0 inf 0.0 0.0 

217 30.0 inf 0.0 0.0 

218 31.0 inf 0.0 0.0 

219 31.0 inf 0.0 0.0 

220 31.0 inf 0.0 0.0 

221 31.0 inf 0.0 0.0 

222 31.0 inf 0.0 0.0 

223 31.0 inf 0.0 0.0 

224 31.0 inf 0.0 0.0 

225 32.0 inf 0.0 0.0 

226 32.0 inf 0.0 0.0 

227 32.0 inf 0.0 0.0 

228 32.0 inf 0.0 0.0 

229 32.0 inf 0.0 0.0 

230 32.0 inf 0.0 0.0 

231 32.0 inf 0.0 0.0 

232 33.0 inf 0.0 0.0 

233 33.0 inf 0.0 0.0 

234 33.0 inf 0.0 0.0 

235 33.0 inf 0.0 0.0 

236 33.0 inf 0.0 0.0 

237 33.0 inf 0.0 0.0 

238 33.0 inf 0.0 0.0 

239 34.0 inf 0.0 0.0 

240 34.0 inf 0.0 0.0 

241 34.0 inf 0.0 0.0 

242 34.0 inf 0.0 0.0 

243 34.0 inf 0.0 0.0 

244 34.0 inf 0.0 0.0 

245 34.0 inf 0.0 0.0 

246 35.0 inf 0.0 0.0 

247 35.0 inf 0.0 0.0 

248 35.0 inf 0.0 0.0 

249 35.0 inf 0.0 0.0 

250 35.0 inf 0.0 0.0 

251 35.0 inf 0.0 0.0 

252 35.0 inf 0.0 0.0 

253 36.0 inf 0.0 0.0 

254 36.0 inf 0.0 0.0 

255 36.0 inf 0.0 0.0 

256 36.0 inf 0.0 0.0 

257 36.0 inf 0.0 0.0 

258 36.0 inf 0.0 0.0 

259 36.0 inf 0.0 0.0 

260 37.0 inf 0.0 0.0 

'First pass and we have this ... '
ValueError('In rectifier, net mass or ammonia flow is negative.')
281 40.0 inf 0.0 0.0 

282 40.0 inf 0.0 0.0 

283 40.0 inf 0.0 0.0 

284 40.0 inf 0.0 0.0 

285 40.0 inf 0.0 0.0 

286 40.0 inf 0.0 0.0 

287 40.0 inf 0.0 0.0 

288 41.0 inf 0.0 0.0 

289 41.0 inf 0.0 0.0 

290 41.0 inf 0.0 0.0 

291 41.0 inf 0.0 0.0 

292 41.0 inf 0.0 0.0 

293 41.0 inf 0.0 0.0 

294 41.0 inf 0.0 0.0 

295 42.0 inf 0.0 0.0 

296 42.0 inf 0.0 0.0 

297 42.0 inf 0.0 0.0 

298 42.0 inf 0.0 0.0 

299 42.0 inf 0.0 0.0 

300 42.0 inf 0.0 0.0 

301 42.0 inf 0.0 0.0 

302 43.0 inf 0.0 0.0 

303 43.0 inf 0.0 0.0 

304 43.0 inf 0.0 0.0 

305 43.0 inf 0.0 0.0 

306 43.0 inf 0.0 0.0 

307 43.0 inf 0.0 0.0 

308 43.0 inf 0.0 0.0 

309 44.0 inf 0.0 0.0 

310 44.0 inf 0.0 0.0 

311 44.0 inf 0.0 0.0 

312 44.0 inf 0.0 0.0 

313 44.0 inf 0.0 0.0 

314 44.0 inf 0.0 0.0 

315 44.0 inf 0.0 0.0 

316 45.0 inf 0.0 0.0 

317 45.0 inf 0.0 0.0 

318 45.0 inf 0.0 0.0 

319 45.0 inf 0.0 0.0 

320 45.0 inf 0.0 0.0 

321 45.0 inf 0.0 0.0 

322 45.0 inf 0.0 0.0 

323 46.0 inf 0.0 0.0 

324 46.0 inf 0.0 0.0 

325 46.0 inf 0.0 0.0 

326 46.0 inf 0.0 0.0 

327 46.0 inf 0.0 0.0 

328 46.0 inf 0.0 0.0 

329 46.0 inf 0.0 0.0 

330 47.0 inf 0.0 0.0 

'Second pass and we have this ... '
ValueError('In rectifier, net mass or ammonia flow is negative.')
351 50.0 inf 0.0 0.0 

352 50.0 inf 0.0 0.0 

353 50.0 inf 0.0 0.0 

354 50.0 inf 0.0 0.0 

355 50.0 inf 0.0 0.0 

356 50.0 inf 0.0 0.0 

357 50.0 inf 0.0 0.0 

358 51.0 inf 0.0 0.0 

359 51.0 inf 0.0 0.0 

360 51.0 inf 0.0 0.0 

361 51.0 inf 0.0 0.0 

362 51.0 inf 0.0 0.0 

363 51.0 inf 0.0 0.0 

364 51.0 inf 0.0 0.0 

365 52.0 inf 0.0 0.0 

366 52.0 inf 0.0 0.0 

367 52.0 inf 0.0 0.0 

368 52.0 inf 0.0 0.0 

369 52.0 inf 0.0 0.0 

370 52.0 inf 0.0 0.0 

371 52.0 inf 0.0 0.0 

372 53.0 inf 0.0 0.0 

373 53.0 inf 0.0 0.0 

374 53.0 inf 0.0 0.0 

375 53.0 inf 0.0 0.0 

376 53.0 inf 0.0 0.0 

377 53.0 inf 0.0 0.0 

378 53.0 inf 0.0 0.0 

379 54.0 inf 0.0 0.0 

380 54.0 inf 0.0 0.0 

381 54.0 inf 0.0 0.0 

382 54.0 inf 0.0 0.0 

383 54.0 inf 0.0 0.0 

384 54.0 inf 0.0 0.0 

385 54.0 inf 0.0 0.0 

386 55.0 inf 0.0 0.0 

387 55.0 inf 0.0 0.0 

388 55.0 inf 0.0 0.0 

389 55.0 inf 0.0 0.0 

'Third pass and we have this ... '
ValueError('In rectifier, net mass or ammonia flow is negative.')

Problem cases

The low-end of reject temperature is not coming out well, so I manually determined some initial points.

In [15]:
for T_heat_reject in [303.15]:
        print("T_heat_reject = {} K, find max Q".format(T_heat_reject))
        tr = T_heat_reject
        xB = [400, 1, tr, 3, tr, 5, 285, 4, tr, 0.15]
        bdry = system_aqua1.makeBoundary(xB)
        P = Problem_2_5_A(bdry)
        # For 293 and 298
        # x = numpy.array([0.6, 278.0, 306.5, 315.7, 313.0, 371.7])
        x = numpy.array([0.50, 278.0, 311.0, 311.2, 307.2, 373.3])
        
        P.n_calls = 7*30
        opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                  constraints=P.constraints, callback=P.callback,
                                  options={'disp':True,'maxiter':50,'rhobeg':0.1})
        x = opt.x
        display("First pass and we have this ... ")
        display_result(x)

        P.n_calls = 7*40
        opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                  constraints=P.constraints, callback=P.callback,
                                  options={'disp':True,'maxiter':50,'rhobeg':0.1})
        x = opt.x
        display("Second pass and we have this ... ")
        display_result(x)

        P.n_calls = 7*50
        opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                  constraints=P.constraints, callback=P.callback,
                                  options={'disp':True,'maxiter':50,'rhobeg':0.01})
        display("Third pass and we have this ... ")
        display_result(x)

        opts2.at[(tr, 1),'opt'] = dict(opt)
T_heat_reject = 303.15 K, find max Q
C:\Users\user1\Miniconda3\envs\openachp\lib\site-packages\scipy\optimize\_minimize.py:403: RuntimeWarning: Method COBYLA does not support callback.
  warn('Method %s does not support callback.' % method, RuntimeWarning)
C:\Users\user1\Miniconda3\envs\openachp\lib\site-packages\scipy\interpolate\_cubic.py:147: RuntimeWarning: divide by zero encountered in true_divide
  mk = (y[1:] - y[:-1]) / hk
211 30.0 136.41586535 9.91908710597e-311 0.0 

212 30.0 163.69903842 9.91908710597e-311 255402.641929 

213 30.0 137.176230586 1.28747388941e-309 0.0 

214 30.0 136.696260878 1.19106714689e-310 3346.4466658 

215 30.0 137.176230586 9.59493893898e-309 0.0 

216 30.0 136.496549386 1.34442873196e-310 0.0 

217 30.0 137.528941685 1.28747388941e-309 0.0 

218 31.0 110.030537439 0.0 0.0 

219 31.0 138.06198015 0.0 0.0 

220 31.0 138.252374653 0.0 3.80756022761 

221 31.0 150.071321999 0.0 6751.8156031 

222 31.0 138.061840319 0.0 0.0 

223 31.0 124.289235531 0.0 0.0 

224 31.0 138.06198015 0.0 0.0 

225 32.0 150.0774158 0.0 9146.90631311 

226 32.0 138.15024965 0.0 0.0 

227 32.0 150.17350354 0.0 9724.07465986 

228 32.0 136.363801227 0.0 0.0 

229 32.0 124.832477919 0.0 0.0 

230 32.0 144.348362453 0.0 1803.80507452 

231 32.0 137.919505228 0.0 0.0 

232 33.0 131.503896736 0.0 0.0 

233 33.0 138.220339428 0.0 0.138557983011 

234 33.0 138.15927019 0.0 0.0 

235 33.0 141.606827064 0.0 752.871908748 

236 33.0 138.159268586 0.0 0.0 

237 33.0 134.83626076 0.0 0.0 

238 33.0 137.712206583 0.0 0.0 

239 34.0 138.126060977 0.0 0.0 

240 34.0 138.058605858 0.0 0.0 

241 34.0 139.884423067 0.0 225.644356179 

242 34.0 137.32882258 0.0 0.0 

243 34.0 138.047481121 0.0 0.0 

244 34.0 138.16040593 0.0 0.0 

245 34.0 138.591697034 0.0 5.36312132514 

246 35.0 138.160407901 0.0 0.0 

247 35.0 137.746763005 0.0 0.0 

248 35.0 138.160407769 0.0 0.0 

249 35.0 138.048627666 0.0 0.0 

250 35.0 138.169435723 0.0 0.0 

251 35.0 138.600753537 0.0 8.42941241517 

252 35.0 138.111896788 0.0 0.0 

253 36.0 137.962629034 0.0 0.0 

254 36.0 138.277264715 0.0 0.0 

255 36.0 138.385094014 0.0 0.262156401357 

256 36.0 138.277265302 0.0 0.0 

257 36.0 138.385095244 0.0 0.262207734777 

258 36.0 138.277266077 0.0 0.0 

259 36.0 138.221251934 0.0 0.0 

260 37.0 138.277265722 0.0 0.0 

C:\Users\user1\Miniconda3\envs\openachp\lib\site-packages\scipy\interpolate\_cubic.py:165: RuntimeWarning: invalid value encountered in true_divide
  whmean = (w1/mk[:-1] + w2/mk[1:]) / (w1 + w2)
'First pass and we have this ... '
X = 
array([   0.50138068,  278.10057499,  310.94888494,  311.19410773,
        307.19702274,  373.42796842])
name deltaT epsilon UA Q
gen 3.85591 0.930958 18.5264 217.277
rect 5.03156 0.890801 2.19811 18.9345
abs 2.7191 0.859411 55.7565 208.383
cond 1.8605 0.96494 32.3832 128.993
evap 0.0141729 0.99829 106.57 138.277
total 0 0 215.434 0
281 40.0 138.277266077 0.0 0.0 

282 40.0 165.856563072 0.0 6268162.22131 

283 40.0 139.039682422 0.0 3233.97944589 

284 40.0 137.797520709 0.0 0.0 

285 40.0 138.277266077 0.0 0.0 

286 40.0 137.596616168 0.0 0.0 

287 40.0 138.629493047 0.0 46.4750686922 

288 41.0 110.69765615 0.0 0.0 

289 41.0 124.487441394 0.0 0.0 

290 41.0 138.147924855 0.0 0.0 

291 41.0 138.337183933 0.0 0.0 

292 41.0 141.806421729 0.0 9469.57093842 

293 41.0 138.337183933 0.0 0.0 

294 41.0 138.426884288 0.0 4.3018751291 

295 42.0 138.337174086 0.0 0.0 

296 42.0 131.436148553 0.0 0.0 

297 42.0 141.260137782 0.0 9046.8974535 

298 42.0 138.337134597 0.0 9.39149850709 

299 42.0 134.886043 0.0 0.0 

300 42.0 138.359616177 0.0 0.129176684885 

301 42.0 137.474377714 0.0 0.0 

302 43.0 138.337183933 0.0 0.0 

303 43.0 138.494447338 0.0 13.3807902039 

304 43.0 138.344672591 0.0 0.0 

305 43.0 138.39768201 0.0 15.1200296825 

306 43.0 138.344668539 0.0 0.0 

307 43.0 138.3952706 0.0 0.0 

308 43.0 138.825524796 0.0 261.933077817 

309 44.0 138.379154375 0.0 0.0 

310 44.0 137.965836233 0.0 0.0 

311 44.0 138.3952706 0.0 0.0 

312 44.0 138.826731743 0.0 355.51269853 

313 44.0 138.399010668 0.0 0.000279374741231 

314 44.0 138.830483148 0.0 361.85471202 

315 44.0 138.399013494 0.0 0.000283298132187 

316 45.0 137.969562981 0.0 0.0 

317 45.0 138.614746302 0.0 122.32665036 

318 45.0 138.399005194 0.0 0.0 

319 45.0 138.183912427 0.0 0.0 

320 45.0 138.50687017 0.0 27.1093321598 

321 45.0 138.39900527 0.0 0.0 

322 45.0 138.291155932 0.0 0.0 

323 46.0 138.39900527 0.0 0.0 

324 46.0 138.506870763 0.0 36.5578732048 

325 46.0 138.399943751 0.0 0.0 

326 46.0 138.507810069 0.0 37.2454445956 

327 46.0 138.399942696 0.0 0.0 

328 46.0 138.292093775 0.0 0.0 

329 46.0 138.453876873 0.0 8.39008402112 

330 47.0 138.399873905 0.0 0.0 

'Second pass and we have this ... '
X = 
array([   0.50165852,  278.09708007,  310.93383071,  311.19410773,
        307.19701592,  373.42809899])
name deltaT epsilon UA Q
gen 3.82283 0.931562 18.6014 217.455
rect 5.26129 0.883233 2.12307 18.7936
abs 2.7129 0.859784 55.939 208.551
cond 1.83985 0.965039 32.6859 129.267
evap 0.0103122 0.998756111.893 138.4
total 0 0 221.242 0
351 50.0 138.399943751 0.0 0.0 

352 50.0 141.158791434 0.0 88708.1220004 

353 50.0 138.476166723 0.0 659.147021595 

354 50.0 138.351995562 0.0 0.0 

355 50.0 138.399943751 0.0 0.0 

356 50.0 138.331796825 0.0 0.0 

357 50.0 138.435211352 0.0 10.563711952 

358 51.0 135.640613222 0.0 0.0 

359 51.0 137.020275644 0.0 0.0 

360 51.0 138.388765976 0.0 0.0 

361 51.0 138.405937324 0.0 0.00952496791179 

362 51.0 138.566689396 0.0 416.821134273 

363 51.0 138.399943751 0.0 0.0 

364 51.0 138.409561259 0.0 0.220492873181 

365 52.0 138.399944088 0.0 0.0 

366 52.0 137.709819425 0.0 0.0 

367 52.0 139.057075975 0.0 9095.68914224 

368 52.0 138.404715647 0.0 0.0 

369 52.0 138.407510598 0.0 3.28205985273 

370 52.0 138.417262392 0.0 0.0 

371 52.0 138.589696801 0.0 574.159733427 

372 53.0 138.072396768 0.0 0.0 

373 53.0 138.589787432 0.0 772.3055975 

374 53.0 138.41488113 0.0 0.0 

375 53.0 138.24486872 0.0 0.0 

376 53.0 138.417262392 0.0 0.0 

377 53.0 138.589853257 0.0 772.924827505 

378 53.0 138.417262707 0.0 0.0 

379 54.0 138.589856218 0.0 1043.36494459 

380 54.0 138.41726283 0.0 0.0 

381 54.0 138.244848759 0.0 0.0 

382 54.0 138.42039976 0.0 0.0 

383 54.0 138.592991625 0.0 1016.34983467 

384 54.0 138.334194095 0.0 0.0 

385 54.0 138.463547652 0.0 40.0232387096 

386 55.0 138.420399765 0.0 0.0 

387 55.0 138.377280396 0.0 0.0 

388 55.0 138.420399765 0.0 0.0 

389 55.0 138.463547773 0.0 54.0192447382 

390 55.0 138.42039985 0.0 0.0 

391 55.0 138.463548024 0.0 54.019287048 

392 55.0 138.420399859 0.0 0.0 

393 56.0 138.377280227 0.0 0.0 

394 56.0 138.421184706 0.0 0.0 

395 56.0 138.464332777 0.0 70.5166780051 

396 56.0 138.393588273 0.0 0.0 

'Third pass and we have this ... '
X = 
array([   0.50165852,  278.09708007,  310.93383071,  311.19410773,
        307.19701592,  373.42809899])
name deltaT epsilon UA Q
gen 3.82283 0.931562 18.6014 217.455
rect 5.26129 0.883233 2.12307 18.7936
abs 2.7129 0.859784 55.939 208.551
cond 1.83985 0.965039 32.6859 129.267
evap 0.0103122 0.998756111.893 138.4
total 0 0 221.242 0
In [14]:
for tr in [303.15]:
    for q_frac in [1., 0.95, 0.9, 0.8, 0.5, 0.2, 0.1]:
        opts2.at[(tr,q_frac)] = None

Postprocessing - Learning pandas and visualization

In [85]:
trendnames = "Q_evap Q_gen m_rich m_refrig UA_gen UA_evap UA_cond UA_rect UA_abs UA_total".split()
#trendtype = numpy.dtype([(name,'f') for name in trendnames])
#trends = numpy.empty_like(t_heat_reject_range,dtype=trendtype)
#trends.fill((None,)*len(trendnames))
trends = pandas.DataFrame(columns=trendnames, index=numpy.arange(len(t_heat_reject_range)))
trends
Out[85]:
Q_evap Q_gen m_rich m_refrig UA_gen UA_evap UA_cond UA_rect UA_abs UA_total
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
In [26]:
for i,(opt, T_heat_reject) in enumerate(zip(opts, t_heat_reject_range)):
    print("Case {}, T_heat_reject = {} K".format(i, T_heat_reject))
    try:
        ch = system_aqua1.makeChiller(opt.x)
        trends.Q_evap[i] = ch.Q_evap
        trends.Q_gen[i] = ch.Q_gen
        trends.m_rich[i] = ch.m_rich
        trends.m_refrig[i] = ch.m_refrig
        
        sys = system_aqua1.System(bdry, ch)
        trends.UA_gen[i] = sys.df.UA['gen']
        trends.UA_evap[i] = sys.df.UA['evap']
    except:
        pass
Case 0, T_heat_reject = 293.15 K
Note: Absorber inlet is subcooled
C:\Users\nfette\Miniconda3\envs\openACHP\lib\site-packages\scipy\interpolate\_cubic.py:147: RuntimeWarning: divide by zero encountered in true_divide
  mk = (y[1:] - y[:-1]) / hk
C:\Users\nfette\Miniconda3\envs\openACHP\lib\site-packages\scipy\interpolate\_cubic.py:165: RuntimeWarning: invalid value encountered in true_divide
  whmean = (w1/mk[:-1] + w2/mk[1:]) / (w1 + w2)
Case 1, T_heat_reject = 298.15 K
Note: Absorber inlet is subcooled
Case 2, T_heat_reject = 303.15 K
Note: Absorber inlet is subcooled
Case 3, T_heat_reject = 308.15 K
Note: Absorber inlet is subcooled
Case 4, T_heat_reject = 313.15 K
Note: Absorber inlet contains some vapor.
Case 5, T_heat_reject = 318.15 K
Note: Absorber inlet contains some vapor.
Case 6, T_heat_reject = 323.15 K
Note: Absorber inlet contains some vapor.
Case 7, T_heat_reject = 328.15 K
Case 8, T_heat_reject = 333.15 K
In [27]:
trends
Out[27]:
Q_evap Q_gen m_rich m_refrig UA_gen UA_evap
0 128.977 181.039 0.222135 0.10747 9.04425 111.161
1 128.034 189.261 0.26359 0.107848 13.8674 109.528
2 130.942 203.988 0.326685 0.111418 28.1274 109.334
3 109.223 182.204 0.352329 0.0940241 547.96 32.0188
4 75.4407 139.942 0.354045 0.0657155 281.331 14.5591
5 43.589 99.8447 0.383061 0.0384434 222.001 6.84564
6 13.7459 103.582 0.894703 0.0122743 1084.84 1.91204
7 -16.0751 -8.981 0.15 -0.0145536 NaN NaN
8 -34.541 -39.2298 0.15 -0.0317097 NaN NaN
In [28]:
for name in trends:
    plt.figure()
    trends[name].plot(style='.-')
plt.show()

Step Two: Parameter sweep on output, optimize cost

First, let's create a data structure to store the results.

In [22]:
q_fraction_range = [1, 0.999, 0.99, 0.95, 0.9, 0.8, 0.5, 0.2, 0.1]
In [29]:
opts2 = pandas.DataFrame(index=pandas.MultiIndex.from_product([t_heat_reject_range,
                                                               q_fraction_range],
                                                             names=['T_r','q_frac']),
                        columns=['Q'] + trendnames + ['opt', ] )

Draw in the results from step one. (TODO: re-arrange all this...)

In [ ]:
for tr,opt in zip(t_heat_reject_range, opts):
    opts2.opt[(tr,1)] = opt
    ch = system_aqua1.makeChiller(opt.x)
    opts2.at[(tr,1),'Q'] = ch.Q_evap
    # TODO: Would like to add constraints, eventually
In [17]:
ch = system_aqua1.makeChiller(opt['x'])
opts2.at[(tr,1),'Q'] = ch.Q_evap
In [37]:
#opts2 = opts2.append(pandas.DataFrame(
#    index=pandas.MultiIndex.from_product([t_heat_reject_range,
#                                          [0.99, 0.999]],
#                                        names=['T_r','q_frac'])))
#opts2 = opts2.reindex(pandas.MultiIndex.from_product([t_heat_reject_range,
#                                          [1.0, 0.999, 0.99, 0.95, 0.9, 0.8, 0.5, 0.2, 0.1]],
#                                        names=['T_r','q_frac']))
#opts2 = opts2.append(pandas.DataFrame(
#    columns=['x0']))
#opts2 = opts2.append(pandas.DataFrame(columns="""deltaT_abs deltaT_cond deltaT_evap deltaT_gen deltaT_rect
#                              epsilon_abs epsilon_cond epsilon_evap epsilon_gen epsilon_rect""".split()))
In [38]:
opts2
Out[38]:
Q Q_evap Q_gen UA_abs UA_cond UA_evap UA_gen UA_rect UA_total deltaT_abs ... deltaT_rect epsilon_abs epsilon_cond epsilon_evap epsilon_gen epsilon_rect m_refrig m_rich opt x0
T_r q_frac
293.15 1.000 128.977391 139.030979 224.152493 11.212531 13.804200 110.076373 203.180519 0.599654 338.873278 NaN ... NaN NaN NaN NaN NaN NaN 0.117298 0.600274 {'x': [0.60027398, 278.05790444, 306.47787741,... NaN
0.999 NaN 128.850846 208.146698 10.074983 12.288194 42.712323 17.606190 0.536476 83.218165 NaN ... NaN NaN NaN NaN NaN NaN 0.108733 0.560317 {'x': [0.56031659, 278.02647954, 306.58900124,... [ 0.53572866 278.00357511 306.62700236 31...
0.990 NaN 127.727146 206.303627 9.937906 12.002823 42.975524 16.785286 0.532172 82.233710 NaN ... NaN NaN NaN NaN NaN NaN 0.107819 0.555763 {'x': [0.55576348, 278.11067493, 306.70213363,... [ 0.53572866 278.00357511 306.62700236 31...
0.950 NaN 122.506918 198.160173 9.383314 11.439602 34.718125 13.929244 0.503286 69.973572 NaN ... NaN NaN NaN NaN NaN NaN 0.103386 0.535729 {'fun': 9300.543724902594, 'maxcv': 0.0, 'mess... NaN
0.900 NaN 116.083945 187.718626 8.712479 10.539891 30.502444 11.467004 0.469464 61.691282 NaN ... NaN NaN NaN NaN NaN NaN 0.097998 0.507528 {'fun': 61.6912824818737, 'maxcv': 0.0, 'messa... NaN
0.800 NaN 103.182068 167.087555 7.498749 9.106962 22.209664 8.368695 0.403299 47.587369 NaN ... NaN NaN NaN NaN NaN NaN 0.087091 0.452922 {'fun': 47.58736852723056, 'maxcv': 0.0, 'mess... NaN
0.500 NaN 64.490906 104.862444 4.231820 5.196822 10.207378 3.705615 0.231737 23.573372 NaN ... NaN NaN NaN NaN NaN NaN 0.054437 0.288073 {'fun': 23.57337169239758, 'maxcv': 0.0, 'mess... NaN
0.200 NaN 25.799808 41.759857 1.563582 1.941573 3.443270 1.175873 0.084627 8.208926 NaN ... NaN NaN NaN NaN NaN NaN 0.021777 0.113177 {'fun': 8.208925975150386, 'maxcv': 0.0, 'mess... NaN
0.100 NaN 17.842693 30.800730 1.073663 1.225104 1.882289 0.874036 0.064335 5.119427 NaN ... NaN NaN NaN NaN NaN NaN 0.015072 0.100000 {'fun': 5.119426512708227, 'maxcv': -0.0, 'mes... NaN
298.15 1.000 128.034153 139.030979 224.152493 15.268645 30.220725 110.076373 203.180519 0.740645 359.486908 NaN ... NaN NaN NaN NaN NaN NaN 0.117298 0.600274 {'x': [0.60027398, 278.05790444, 306.47787741,... NaN
0.999 NaN 127.907966 206.789067 13.361890 23.989460 43.185791 17.147128 0.654580 98.338850 NaN ... NaN NaN NaN NaN NaN NaN 0.107983 0.558714 {'x': [0.5587135, 278.1075453, 306.75274496, 3... [ 0.52842262 278.04089102 306.5735585 31...
0.990 NaN 126.761069 204.836576 13.178693 23.706205 41.861960 16.224349 0.645308 95.616515 NaN ... NaN NaN NaN NaN NaN NaN 0.107012 0.552783 {'x': [0.55278271, 278.12605274, 306.73155036,... [ 0.52842262 278.04089102 306.5735585 31...
0.950 NaN 121.655511 196.452285 12.452582 22.770665 34.426676 13.340900 0.606056 83.596877 NaN ... NaN NaN NaN NaN NaN NaN 0.102659 0.528423 {'fun': 83.59687712123403, 'maxcv': 0.0, 'mess... NaN
0.900 NaN 115.233004 186.403077 11.478880 20.500358 29.026873 11.194865 0.564690 72.765667 NaN ... NaN NaN NaN NaN NaN NaN 0.097249 0.503888 {'fun': 72.76566697924767, 'maxcv': 0.0, 'mess... NaN
0.800 NaN 102.405130 165.817912 9.774421 16.693889 21.909685 8.225303 0.483191 57.086489 NaN ... NaN NaN NaN NaN NaN NaN 0.086439 0.449235 {'x': [0.44923498, 277.98999528, 306.72498751,... NaN
0.500 NaN 64.002275 103.985507 5.382171 8.802706 10.117130 3.658503 0.272668 28.233178 NaN ... NaN NaN NaN NaN NaN NaN 0.054025 0.284743 {'x': [0.284743212, 277.937406, 306.755725, 31... NaN
0.200 NaN 25.618329 41.429030 1.962857 3.139382 3.412543 1.165035 0.098829 9.778647 NaN ... NaN NaN NaN NaN NaN NaN 0.021623 0.111790 {'x': [0.111790031, 278.063691, 306.660689, 31... NaN
0.100 NaN 17.751018 30.679645 1.318054 1.828488 1.903573 0.873607 0.074699 5.998421 NaN ... NaN NaN NaN NaN NaN NaN 0.015006 0.100000 {'x': [0.1, 276.489843, 307.929504, 315.85864,... NaN
303.15 1.000 138.393588 138.393588 217.446603 55.956375 32.683350 108.875901 18.597622 2.122485 218.235734 NaN ... NaN NaN NaN NaN NaN NaN 0.117933 0.501619 {'x': [0.50161916, 278.09540996, 310.93375504,... NaN
0.999 NaN 138.181477 217.384679 53.908811 31.737253 145.154045 18.926817 2.125262 251.852188 NaN ... NaN NaN NaN NaN NaN NaN 0.117776 0.502825 {'x': [0.5028251, 278.11916078, 311.01602138, ... [ 0.48262441 278.20315488 311.16202829 31...
0.990 NaN 137.001793 215.539605 52.697382 31.154525 79.134531 17.986717 2.019769 182.992924 NaN ... NaN NaN NaN NaN NaN NaN 0.116771 0.498664 {'x': [0.49866386, 278.11813382, 311.01900357,... [ 0.48262441 278.20315488 311.16202829 31...
0.950 NaN 131.486300 207.117045 45.753580 27.461878 54.343943 14.942024 1.776321 144.277746 NaN ... NaN NaN NaN NaN NaN NaN 0.112114 0.482624 {'x': [0.48262441, 278.20315488, 311.16202829,... NaN
0.900 NaN 124.581833 197.008719 39.893876 24.348429 37.199797 12.540735 1.393696 115.376532 NaN ... NaN NaN NaN NaN NaN NaN 0.106234 0.463459 {'x': [0.46345858, 278.02743475, 311.25304165,... NaN
0.800 NaN 110.741957 174.926495 31.759606 20.495802 26.266312 8.908789 1.044462 88.474971 NaN ... NaN NaN NaN NaN NaN NaN 0.094401 0.410475 {'x': [0.41047544, 278.01732947, 311.11080595,... NaN
0.500 NaN 69.224533 109.188935 15.173913 10.445855 11.566540 3.842882 0.539217 41.568407 NaN ... NaN NaN NaN NaN NaN NaN 0.059008 0.255087 {'x': [0.255086751, 278.078964, 311.071705, 31... NaN
0.200 NaN 27.718114 43.722647 4.927487 3.339761 3.794466 1.234626 0.280550 13.576890 NaN ... NaN NaN NaN NaN NaN NaN 0.023641 0.102137 {'x': [0.102136663, 278.198407, 311.279385, 31... NaN
0.100 NaN 15.079187 27.925294 2.120082 1.472197 1.364933 0.829408 0.143922 5.930543 NaN ... NaN NaN NaN NaN NaN NaN 0.012871 0.100000 {'x': [0.1, 274.841901, 312.693546, 312.793546... NaN
308.15 1.000 109.223406 109.223404 182.204157 30.296029 25.019476 32.018782 547.989213 1.161435 636.484933 NaN ... NaN NaN NaN NaN NaN NaN 0.094024 0.352329 {'fun': 1352.136946677175, 'maxcv': 0.0, 'mess... NaN
0.999 NaN 109.146510 182.022433 29.515323 25.019928 33.289110 108.428197 1.127019 197.379577 NaN ... NaN NaN NaN NaN NaN NaN 0.093965 0.352173 {'x': [0.352173304, 278.82358, 315.129502, 316... [ 3.38289362e-01 2.78538578e+02 3.1519566...
0.990 NaN 108.131460 180.641250 28.356381 24.582613 31.539743 76.036596 1.116028 161.631362 NaN ... NaN NaN NaN NaN NaN NaN 0.093087 0.350833 {'x': [0.350832723, 278.760183, 315.12882, 316... [ 3.38289362e-01 2.78538578e+02 3.1519566...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
318.15 0.500 21.794788 21.794787 49.885074 5.174484 3.063267 3.071783 6.462318 0.213846 17.985698 NaN ... NaN NaN NaN NaN NaN NaN 0.019223 0.190922 {'fun': 17.985698562879783, 'maxcv': 0.0, 'mes... NaN
0.200 8.717616 8.717616 22.243496 2.110073 1.076134 1.069642 2.228060 0.087365 6.571274 NaN ... NaN NaN NaN NaN NaN NaN 0.007696 0.100000 {'fun': 7.244113120639418, 'maxcv': -0.0, 'mes... NaN
0.100 4.358804 4.358804 15.797190 1.506274 0.445596 0.468158 1.472151 0.057396 3.949575 NaN ... NaN NaN NaN NaN NaN NaN 0.003855 0.100000 {'fun': 4.051386434692496, 'maxcv': -0.0, 'mes... NaN
323.15 1.000 13.745885 13.745886 103.581624 26.707226 1.921627 1.912041 1084.838526 0.155037 1115.534457 NaN ... NaN NaN NaN NaN NaN NaN 0.012274 0.894703 {'fun': 55.13229662583489, 'maxcv': 0.0, 'mess... NaN
0.999 NaN 13.684448 103.184644 25.984453 1.880111 1.928757 1879.223478 0.153120 1909.169919 NaN ... NaN NaN NaN NaN NaN NaN 0.012224 0.890844 {'x': [0.89084395, 278.84894336, 330.03408895,... [ 2.60071743e-01 2.78659959e+02 3.3015003...
0.990 NaN 13.608789 103.042546 25.942423 1.869253 1.917490 671.598356 0.152227 701.479749 NaN ... NaN NaN NaN NaN NaN NaN 0.012156 0.890657 {'x': [0.89065731, 278.84904599, 330.03401217,... [ 2.60071743e-01 2.78659959e+02 3.3015003...
0.950 2.562008 2.562007 27.935285 4.181383 0.333417 0.336156 3.416122 0.027544 8.294622 NaN ... NaN NaN NaN NaN NaN NaN 0.002289 0.260072 {'fun': 1195822042.9913898, 'maxcv': 0.0, 'mes... NaN
0.900 2.562080 2.562081 27.925857 4.179723 0.333429 0.336169 3.414883 0.027544 8.291749 NaN ... NaN NaN NaN NaN NaN NaN 0.002289 0.259968 {'fun': 1044333593.2424829, 'maxcv': 0.0, 'mes... NaN
0.800 4.134768 4.134767 40.844280 6.503261 0.541400 0.546599 5.865359 0.044791 13.501409 NaN ... NaN NaN NaN NaN NaN NaN 0.003694 0.373396 {'fun': 511051334.3527056, 'maxcv': 0.0, 'mess... NaN
0.500 6.874225 6.874225 50.113964 8.248145 0.952594 0.924965 8.465313 0.075031 18.666047 NaN ... NaN NaN NaN NaN NaN NaN 0.006137 0.429199 {'fun': 18.66604755727115, 'maxcv': 0.0, 'mess... NaN
0.200 2.748488 2.748490 25.211171 3.707146 0.365871 0.359220 3.073889 0.029575 7.535702 NaN ... NaN NaN NaN NaN NaN NaN 0.002455 0.227433 {'fun': 16.929789708130343, 'maxcv': 0.0, 'mes... NaN
0.100 1.374703 1.374704 17.299685 2.492995 0.178903 0.177097 1.877550 0.014755 4.741300 NaN ... NaN NaN NaN NaN NaN NaN 0.001228 0.164615 {'fun': 4.741299016737931, 'maxcv': 0.0, 'mess... NaN
328.15 1.000 -16.075082 -16.075082 -8.981001 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'fun': -inf, 'maxcv': 0.0, 'message': 'Optimi... NaN
0.999 NaN -16.075082 -8.985155 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'x': [0.15, 278.45, 335.15, 336.15, 333.15, 3... [ 1.50000000e-01 2.78450000e+02 3.3515000...
0.990 NaN -16.075082 -8.985155 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'x': [0.15, 278.45, 335.15, 336.15, 333.15, 3... [ 1.50000000e-01 2.78450000e+02 3.3515000...
0.950 NaN -16.075082 -8.981001 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.900 NaN -16.075082 -8.981001 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.800 NaN -16.075082 -8.981001 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.500 NaN -16.075082 -8.981001 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.200 NaN -16.075082 -8.981001 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.100 NaN -16.075082 -8.981001 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.014554 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
333.15 1.000 -34.541024 -34.541024 -39.229814 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'fun': -inf, 'maxcv': 0.0, 'message': 'Optimi... NaN
0.999 NaN -34.541024 -39.240739 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'x': [0.15, 278.45, 340.15, 341.15, 338.15, 3... [ 1.50000000e-01 2.78450000e+02 3.4015000...
0.990 NaN -34.541024 -39.240739 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'x': [0.15, 278.45, 340.15, 341.15, 338.15, 3... [ 1.50000000e-01 2.78450000e+02 3.4015000...
0.950 NaN -34.541024 -39.229814 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.900 NaN -34.541024 -39.229814 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.800 NaN -34.541024 -39.229814 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.500 NaN -34.541024 -39.229814 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.200 NaN -34.541024 -39.229814 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN
0.100 NaN -34.541024 -39.229814 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN -0.031710 0.150000 {'fun': inf, 'maxcv': 0.0, 'message': 'Optimiz... NaN

81 rows × 23 columns

In [25]:
opts2.iloc[14].opt
Out[25]:
"{'x': array([   0.44923498,  277.98999528,  306.72498751,  315.88687096,\r\n        313.04161683,  371.74510891]), 'status': 1, 'success': True, 'message': 'Optimization terminated successfully.', 'nfev': 47, 'fun': 9796.73873116302, 'maxcv': 0.0}"
In [116]:
plt.figure(figsize=[8,4])
opts2.Q_evap.plot.bar()
plt.show()
In [70]:
plt.figure(figsize=[8,4])
opts2.UA_total.plot.bar()
plt.ylim(0,200)
plt.show()
In [71]:
fname = 'optimize_trials2_5_data.csv'
if True:
    opts2.to_csv(fname)
if False:
    opts2 = pandas.read_csv(fname, header=0, index_col=[0,1])
if False:
    from numpy import array, inf, nan
    # If all the opt entries are __repr__ output from OptimizeResult (oops)
    from util import optimize_result_repr_to_dict
    for i,o in opts2.opt.items():
        if type(o) == str:
            print("Making a correction at index {} of opt={}".format(i,o))
            if o.startswith('{'):
                print("Hm, I think it's a dictionary.")
                d = eval(o)
                opts2.opt[i] = d
            else:
                # If all the opt entries are strings as read by read_csv
                print("By elimination, probably an OptimizeResult.__repr__() output.")
                d = optimize_result_repr_to_dict(o)
                opts2.opt[i] = d
In [39]:
a='aardvark'
a.startswith('aa')
Out[39]:
True
In [47]:
dry_run = True
for i,index in enumerate(opts2.index):
    tr,qf = index
    q_max = opts2.Q[(tr,1)]
    q_goal = q_max * qf
    print("Case {}, T_heat_reject = {} K, Q_fraction = {}, Q_goal = {}".format(i, tr, qf, q_goal))

    if opts2.opt[index] is numpy.nan or opts2.opt[index] is None:
        xB = [400, 1, tr, 3, tr, 5, 285, 4, tr, 0.15]
        bdry = system_aqua1.makeBoundary(xB)
        P = Problem_2_5_B(bdry,q_goal)
        x = numpy.array([0.05, 278.45, tr+7, tr+8, tr+5, 395.15])
        
        if not dry_run:
            P.n_calls = 7*30
            opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                          constraints=P.constraints,
                                          options={'disp':True,'maxiter':50,'rhobeg':0.1})
            x = opt.x
            print("First pass and we have this ... ")
            display_result(x)

            P.n_calls = 7*40
            opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                          constraints=P.constraints,
                                          options={'disp':True,'maxiter':50,'rhobeg':0.1})
            x = opt.x
            print("Second pass and we have this ... ")
            display_result(x)

            P.n_calls = 7*50
            opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                          constraints=P.constraints,
                                          options={'disp':True,'maxiter':50,'rhobeg':0.01})
            x = opt.x
            print("Third pass and we have this ... ")
            display_result(x)

            opts2.opt[index] = opt
        
Case 0, T_heat_reject = 293.15 K, Q_fraction = 1.0, Q_goal = 128.977391498
Case 1, T_heat_reject = 293.15 K, Q_fraction = 0.95, Q_goal = 122.5285219231
Case 2, T_heat_reject = 293.15 K, Q_fraction = 0.9, Q_goal = 116.0796523482
Case 3, T_heat_reject = 293.15 K, Q_fraction = 0.8, Q_goal = 103.18191319840001
Case 4, T_heat_reject = 293.15 K, Q_fraction = 0.5, Q_goal = 64.488695749
Case 5, T_heat_reject = 293.15 K, Q_fraction = 0.2, Q_goal = 25.795478299600003
Case 6, T_heat_reject = 293.15 K, Q_fraction = 0.1, Q_goal = 12.897739149800001
Case 7, T_heat_reject = 298.15 K, Q_fraction = 1.0, Q_goal = 128.034152931
Case 8, T_heat_reject = 298.15 K, Q_fraction = 0.95, Q_goal = 121.63244528444999
Case 9, T_heat_reject = 298.15 K, Q_fraction = 0.9, Q_goal = 115.23073763789999
Case 10, T_heat_reject = 298.15 K, Q_fraction = 0.8, Q_goal = 102.4273223448
Case 11, T_heat_reject = 298.15 K, Q_fraction = 0.5, Q_goal = 64.0170764655
Case 12, T_heat_reject = 298.15 K, Q_fraction = 0.2, Q_goal = 25.6068305862
Case 13, T_heat_reject = 298.15 K, Q_fraction = 0.1, Q_goal = 12.8034152931
In [96]:
d=dict()
d[(303.15,0.95)] = array([   0.47920246,  278.17258004,  311.03722458,  311.29853349,
        307.31608332,  373.4217932 ])

d[(303.15,0.9)] = array([   0.46042825,  278.06261986,  311.12471959,  311.39078344,
        307.40903514,  373.42125787])

d[(303.15,0.8)] = array([   0.40928524,  278.05976775,  311.12458983,  311.38278494,
        307.41282053,  373.42343252])

d[(303.15,0.5)] = array([  2.54650350e-01,   2.78112131e+02,   3.11070930e+02,
         3.11363072e+02,   3.07423492e+02,   3.73444409e+02])

d[(303.15,0.2)] = array([  1.02384404e-01,   2.78082311e+02,   3.11054415e+02,
         3.11364635e+02,   3.07485941e+02,   3.73429532e+02])

d[(303.15,0.1)] = array([  1.00000000e-01,   2.77188460e+02,   3.11580120e+02,
         3.11680120e+02,   3.08320712e+02,   3.72906164e+02])
for tr in t_heat_reject_range:
    opts2.at[(tr,0.99),'x0'] = opts2.at[(tr,0.95),'opt']['x']
    opts2.at[(tr,0.999),'x0'] = opts2.at[(tr,0.95),'opt']['x']
In [99]:
opts2.loc[(293.15,0.99)]
Out[99]:
Q                                                         NaN
Q_evap                                                    NaN
Q_gen                                                     NaN
UA_abs                                                    NaN
UA_cond                                                   NaN
UA_evap                                                   NaN
UA_gen                                                    NaN
UA_rect                                                   NaN
UA_total                                                  NaN
m_refrig                                                  NaN
m_rich                                                    NaN
opt                                                       NaN
x0          [0.53572866, 278.00357511, 306.62700236, 315.8...
Name: (293.15, 0.99), dtype: object
In [28]:
dry_run = True
for i,index in enumerate(opts2.index):
    tr,qf = index
    
    q_max = opts2.Q[(tr,1)]
    q_goal = q_max * qf
    print("Case {}, T_heat_reject = {} K, Q_fraction = {}, Q_goal = {}".format(i, tr, qf, q_goal))

    if opts2.opt[index] in [None, nan]:
        xB = [400, 1, tr, 3, tr, 5, 285, 4, tr, 0.15]
        bdry = system_aqua1.makeBoundary(xB)
        P = Problem_2_5_B(bdry,q_goal)
        if index in d:
            x = d[index].copy()
        else:
            x = opts2.opt[(tr,1)]['x'].copy()
        print("Initial x = ")
        display(x)
        
        if not dry_run:
            print("Running first pass optimization ... ")
            P.n_calls = 7*10
            opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                          constraints=P.constraints,
                                          options={'disp':True,'maxiter':50,'rhobeg':0.1})
            x = opt.x
            display_result(x)

            print("Running second pass optimization ... ")
            P.n_calls = 7*30
            opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                          constraints=P.constraints,
                                          options={'disp':True,'maxiter':50,'rhobeg':0.1})
            x = opt.x
            display_result(x)

            print("Running third pass optimization ... ")
            P.n_calls = 7*50
            opt = scipy.optimize.minimize(P.objective, x, method="COBYLA",
                                          constraints=P.constraints,
                                          options={'disp':True,'maxiter':50,'rhobeg':0.01})
            x = opt.x
            display_result(x)

            opts2.at[index,'opt'] = dict(opt)
    
Case 0, T_heat_reject = 293.15 K, Q_fraction = 1.0, Q_goal = 128.977391498
Case 1, T_heat_reject = 293.15 K, Q_fraction = 0.9990000000000001, Q_goal = 128.84841410650202
Case 2, T_heat_reject = 293.15 K, Q_fraction = 0.99, Q_goal = 127.68761758302
Case 3, T_heat_reject = 293.15 K, Q_fraction = 0.95, Q_goal = 122.5285219231
Case 4, T_heat_reject = 293.15 K, Q_fraction = 0.9, Q_goal = 116.0796523482
Case 5, T_heat_reject = 293.15 K, Q_fraction = 0.8, Q_goal = 103.18191319840001
Case 6, T_heat_reject = 293.15 K, Q_fraction = 0.5, Q_goal = 64.488695749
Case 7, T_heat_reject = 293.15 K, Q_fraction = 0.2, Q_goal = 25.795478299600003
Case 8, T_heat_reject = 293.15 K, Q_fraction = 0.1, Q_goal = 12.897739149800001
Case 9, T_heat_reject = 298.15 K, Q_fraction = 1.0, Q_goal = 128.034152931
Case 10, T_heat_reject = 298.15 K, Q_fraction = 0.9990000000000001, Q_goal = 127.90611877806901
Case 11, T_heat_reject = 298.15 K, Q_fraction = 0.99, Q_goal = 126.75381140168999
Case 12, T_heat_reject = 298.15 K, Q_fraction = 0.95, Q_goal = 121.63244528444999
Case 13, T_heat_reject = 298.15 K, Q_fraction = 0.9, Q_goal = 115.23073763789999
Case 14, T_heat_reject = 298.15 K, Q_fraction = 0.8, Q_goal = 102.4273223448
Case 15, T_heat_reject = 298.15 K, Q_fraction = 0.5, Q_goal = 64.0170764655
Case 16, T_heat_reject = 298.15 K, Q_fraction = 0.2, Q_goal = 25.6068305862
Case 17, T_heat_reject = 298.15 K, Q_fraction = 0.1, Q_goal = 12.8034152931
Case 18, T_heat_reject = 303.15 K, Q_fraction = 1.0, Q_goal = 138.3935882734963
Case 19, T_heat_reject = 303.15 K, Q_fraction = 0.9990000000000001, Q_goal = 138.25519468522282
Case 20, T_heat_reject = 303.15 K, Q_fraction = 0.99, Q_goal = 137.00965239076135
Case 21, T_heat_reject = 303.15 K, Q_fraction = 0.95, Q_goal = 131.47390885982148
Case 22, T_heat_reject = 303.15 K, Q_fraction = 0.9, Q_goal = 124.55422944614668
Case 23, T_heat_reject = 303.15 K, Q_fraction = 0.8, Q_goal = 110.71487061879705
Case 24, T_heat_reject = 303.15 K, Q_fraction = 0.5, Q_goal = 69.19679413674815
Case 25, T_heat_reject = 303.15 K, Q_fraction = 0.2, Q_goal = 27.678717654699263
Case 26, T_heat_reject = 303.15 K, Q_fraction = 0.1, Q_goal = 13.839358827349631
Case 27, T_heat_reject = 308.15 K, Q_fraction = 1.0, Q_goal = 109.223406258
Case 28, T_heat_reject = 308.15 K, Q_fraction = 0.9990000000000001, Q_goal = 109.11418285174202
Case 29, T_heat_reject = 308.15 K, Q_fraction = 0.99, Q_goal = 108.13117219541999
Case 30, T_heat_reject = 308.15 K, Q_fraction = 0.95, Q_goal = 103.76223594509999
Case 31, T_heat_reject = 308.15 K, Q_fraction = 0.9, Q_goal = 98.3010656322
Case 32, T_heat_reject = 308.15 K, Q_fraction = 0.8, Q_goal = 87.3787250064
Case 33, T_heat_reject = 308.15 K, Q_fraction = 0.5, Q_goal = 54.611703129
Case 34, T_heat_reject = 308.15 K, Q_fraction = 0.2, Q_goal = 21.8446812516
Case 35, T_heat_reject = 308.15 K, Q_fraction = 0.1, Q_goal = 10.9223406258
Case 36, T_heat_reject = 313.15 K, Q_fraction = 1.0, Q_goal = 75.4406886479
Case 37, T_heat_reject = 313.15 K, Q_fraction = 0.9990000000000001, Q_goal = 75.36524795925212
Case 38, T_heat_reject = 313.15 K, Q_fraction = 0.99, Q_goal = 74.686281761421
Case 39, T_heat_reject = 313.15 K, Q_fraction = 0.95, Q_goal = 71.668654215505
Case 40, T_heat_reject = 313.15 K, Q_fraction = 0.9, Q_goal = 67.89661978311001
Case 41, T_heat_reject = 313.15 K, Q_fraction = 0.8, Q_goal = 60.352550918320006
Case 42, T_heat_reject = 313.15 K, Q_fraction = 0.5, Q_goal = 37.72034432395
Case 43, T_heat_reject = 313.15 K, Q_fraction = 0.2, Q_goal = 15.088137729580001
Case 44, T_heat_reject = 313.15 K, Q_fraction = 0.1, Q_goal = 7.544068864790001
Case 45, T_heat_reject = 318.15 K, Q_fraction = 1.0, Q_goal = 43.5890044449
Case 46, T_heat_reject = 318.15 K, Q_fraction = 0.9990000000000001, Q_goal = 43.5454154404551
Case 47, T_heat_reject = 318.15 K, Q_fraction = 0.99, Q_goal = 43.153114400450995
Case 48, T_heat_reject = 318.15 K, Q_fraction = 0.95, Q_goal = 41.409554222655
Case 49, T_heat_reject = 318.15 K, Q_fraction = 0.9, Q_goal = 39.23010400041
Case 50, T_heat_reject = 318.15 K, Q_fraction = 0.8, Q_goal = 34.87120355592
Case 51, T_heat_reject = 318.15 K, Q_fraction = 0.5, Q_goal = 21.79450222245
Case 52, T_heat_reject = 318.15 K, Q_fraction = 0.2, Q_goal = 8.71780088898
Case 53, T_heat_reject = 318.15 K, Q_fraction = 0.1, Q_goal = 4.35890044449
Case 54, T_heat_reject = 323.15 K, Q_fraction = 1.0, Q_goal = 13.7458854907
Case 55, T_heat_reject = 323.15 K, Q_fraction = 0.9990000000000001, Q_goal = 13.732139605209301
Case 56, T_heat_reject = 323.15 K, Q_fraction = 0.99, Q_goal = 13.608426635792998
Case 57, T_heat_reject = 323.15 K, Q_fraction = 0.95, Q_goal = 13.058591216164999
Case 58, T_heat_reject = 323.15 K, Q_fraction = 0.9, Q_goal = 12.37129694163
Case 59, T_heat_reject = 323.15 K, Q_fraction = 0.8, Q_goal = 10.99670839256
Case 60, T_heat_reject = 323.15 K, Q_fraction = 0.5, Q_goal = 6.87294274535
Case 61, T_heat_reject = 323.15 K, Q_fraction = 0.2, Q_goal = 2.74917709814
Case 62, T_heat_reject = 323.15 K, Q_fraction = 0.1, Q_goal = 1.37458854907
Case 63, T_heat_reject = 328.15 K, Q_fraction = 1.0, Q_goal = -16.0750822067
Case 64, T_heat_reject = 328.15 K, Q_fraction = 0.9990000000000001, Q_goal = -16.059007124493302
Case 65, T_heat_reject = 328.15 K, Q_fraction = 0.99, Q_goal = -15.914331384633
Case 66, T_heat_reject = 328.15 K, Q_fraction = 0.95, Q_goal = -15.271328096364998
Case 67, T_heat_reject = 328.15 K, Q_fraction = 0.9, Q_goal = -14.46757398603
Case 68, T_heat_reject = 328.15 K, Q_fraction = 0.8, Q_goal = -12.86006576536
Case 69, T_heat_reject = 328.15 K, Q_fraction = 0.5, Q_goal = -8.03754110335
Case 70, T_heat_reject = 328.15 K, Q_fraction = 0.2, Q_goal = -3.21501644134
Case 71, T_heat_reject = 328.15 K, Q_fraction = 0.1, Q_goal = -1.60750822067
Case 72, T_heat_reject = 333.15 K, Q_fraction = 1.0, Q_goal = -34.5410243078
Case 73, T_heat_reject = 333.15 K, Q_fraction = 0.9990000000000001, Q_goal = -34.5064832834922
Case 74, T_heat_reject = 333.15 K, Q_fraction = 0.99, Q_goal = -34.195614064722
Case 75, T_heat_reject = 333.15 K, Q_fraction = 0.95, Q_goal = -32.81397309241
Case 76, T_heat_reject = 333.15 K, Q_fraction = 0.9, Q_goal = -31.08692187702
Case 77, T_heat_reject = 333.15 K, Q_fraction = 0.8, Q_goal = -27.632819446240003
Case 78, T_heat_reject = 333.15 K, Q_fraction = 0.5, Q_goal = -17.2705121539
Case 79, T_heat_reject = 333.15 K, Q_fraction = 0.2, Q_goal = -6.908204861560001
Case 80, T_heat_reject = 333.15 K, Q_fraction = 0.1, Q_goal = -3.4541024307800003
In [104]:
not 1 in [1,2,3]
Out[104]:
False

Post-processing (again?)

In [41]:
# Post-processing

dry_run = True
for i,index in enumerate(opts2.index):
    tr,qf = index
    q_max = opts2.Q[(tr,1)]
    q_goal = q_max * qf
    print("Case {}, T_heat_reject = {} K, Q_fraction = {}, Q_goal = {}".format(i, tr, qf, q_goal))

    xB = [400, 1, tr, 3, tr, 5, 285, 4, tr, 0.15]
    bdry = system_aqua1.makeBoundary(xB)
    if not opts2.opt[index] in [None, nan]:
        x = opts2.opt[index]['x']
        try:
            if not dry_run:
                ch = system_aqua1.makeChiller(x)

                opts2.at[index,'Q_evap'] = ch.Q_evap
                opts2.at[index,'Q_gen'] = ch.Q_gen
                opts2.at[index,'m_rich'] = ch.m_rich
                opts2.at[index,'m_refrig'] = ch.m_refrig
        
                sys = system_aqua1.System(bdry, ch)        

                opts2.at[index,'UA_gen'] = sys.df.UA['gen']
                opts2.at[index,'UA_cond'] = sys.df.UA['cond']
                opts2.at[index,'UA_abs'] = sys.df.UA['abs']
                opts2.at[index,'UA_rect'] = sys.df.UA['rect']
                opts2.at[index,'UA_evap'] = sys.df.UA['evap']
                opts2.at[index,'UA_total'] = sys.totalUA
                
                opts2.at[index,'deltaT_gen'] = sys.df.deltaT['gen']
                opts2.at[index,'deltaT_cond'] = sys.df.deltaT['cond']
                opts2.at[index,'deltaT_abs'] = sys.df.deltaT['abs']
                opts2.at[index,'deltaT_rect'] = sys.df.deltaT['rect']
                opts2.at[index,'deltaT_evap'] = sys.df.deltaT['evap']
                
                opts2.at[index,'epsilon_gen'] = sys.df.epsilon['gen']
                opts2.at[index,'epsilon_cond'] = sys.df.epsilon['cond']
                opts2.at[index,'epsilon_abs'] = sys.df.epsilon['abs']
                opts2.at[index,'epsilon_rect'] = sys.df.epsilon['rect']
                opts2.at[index,'epsilon_evap'] = sys.df.epsilon['evap']
        
        except KeyboardInterrupt:
            raise
        except:
            pass
Case 0, T_heat_reject = 293.15 K, Q_fraction = 1.0, Q_goal = 128.977391498
Case 1, T_heat_reject = 293.15 K, Q_fraction = 0.9990000000000001, Q_goal = 128.84841410650202
Case 2, T_heat_reject = 293.15 K, Q_fraction = 0.99, Q_goal = 127.68761758302
Case 3, T_heat_reject = 293.15 K, Q_fraction = 0.95, Q_goal = 122.5285219231
Case 4, T_heat_reject = 293.15 K, Q_fraction = 0.9, Q_goal = 116.0796523482
Case 5, T_heat_reject = 293.15 K, Q_fraction = 0.8, Q_goal = 103.18191319840001
Case 6, T_heat_reject = 293.15 K, Q_fraction = 0.5, Q_goal = 64.488695749
Case 7, T_heat_reject = 293.15 K, Q_fraction = 0.2, Q_goal = 25.795478299600003
Case 8, T_heat_reject = 293.15 K, Q_fraction = 0.1, Q_goal = 12.897739149800001
Case 9, T_heat_reject = 298.15 K, Q_fraction = 1.0, Q_goal = 128.034152931
Case 10, T_heat_reject = 298.15 K, Q_fraction = 0.9990000000000001, Q_goal = 127.90611877806901
Case 11, T_heat_reject = 298.15 K, Q_fraction = 0.99, Q_goal = 126.75381140168999
Case 12, T_heat_reject = 298.15 K, Q_fraction = 0.95, Q_goal = 121.63244528444999
Case 13, T_heat_reject = 298.15 K, Q_fraction = 0.9, Q_goal = 115.23073763789999
Case 14, T_heat_reject = 298.15 K, Q_fraction = 0.8, Q_goal = 102.4273223448
Case 15, T_heat_reject = 298.15 K, Q_fraction = 0.5, Q_goal = 64.0170764655
Case 16, T_heat_reject = 298.15 K, Q_fraction = 0.2, Q_goal = 25.6068305862
Case 17, T_heat_reject = 298.15 K, Q_fraction = 0.1, Q_goal = 12.8034152931
Case 18, T_heat_reject = 303.15 K, Q_fraction = 1.0, Q_goal = 138.3935882734963
Case 19, T_heat_reject = 303.15 K, Q_fraction = 0.9990000000000001, Q_goal = 138.25519468522282
Case 20, T_heat_reject = 303.15 K, Q_fraction = 0.99, Q_goal = 137.00965239076135
Case 21, T_heat_reject = 303.15 K, Q_fraction = 0.95, Q_goal = 131.47390885982148
Case 22, T_heat_reject = 303.15 K, Q_fraction = 0.9, Q_goal = 124.55422944614668
Case 23, T_heat_reject = 303.15 K, Q_fraction = 0.8, Q_goal = 110.71487061879705
Case 24, T_heat_reject = 303.15 K, Q_fraction = 0.5, Q_goal = 69.19679413674815
Case 25, T_heat_reject = 303.15 K, Q_fraction = 0.2, Q_goal = 27.678717654699263
Case 26, T_heat_reject = 303.15 K, Q_fraction = 0.1, Q_goal = 13.839358827349631
Case 27, T_heat_reject = 308.15 K, Q_fraction = 1.0, Q_goal = 109.223406258
Case 28, T_heat_reject = 308.15 K, Q_fraction = 0.9990000000000001, Q_goal = 109.11418285174202
Case 29, T_heat_reject = 308.15 K, Q_fraction = 0.99, Q_goal = 108.13117219541999
Case 30, T_heat_reject = 308.15 K, Q_fraction = 0.95, Q_goal = 103.76223594509999
Case 31, T_heat_reject = 308.15 K, Q_fraction = 0.9, Q_goal = 98.3010656322
Case 32, T_heat_reject = 308.15 K, Q_fraction = 0.8, Q_goal = 87.3787250064
Case 33, T_heat_reject = 308.15 K, Q_fraction = 0.5, Q_goal = 54.611703129
Case 34, T_heat_reject = 308.15 K, Q_fraction = 0.2, Q_goal = 21.8446812516
Case 35, T_heat_reject = 308.15 K, Q_fraction = 0.1, Q_goal = 10.9223406258
Case 36, T_heat_reject = 313.15 K, Q_fraction = 1.0, Q_goal = 75.4406886479
Case 37, T_heat_reject = 313.15 K, Q_fraction = 0.9990000000000001, Q_goal = 75.36524795925212
Case 38, T_heat_reject = 313.15 K, Q_fraction = 0.99, Q_goal = 74.686281761421
Case 39, T_heat_reject = 313.15 K, Q_fraction = 0.95, Q_goal = 71.668654215505
Case 40, T_heat_reject = 313.15 K, Q_fraction = 0.9, Q_goal = 67.89661978311001
Case 41, T_heat_reject = 313.15 K, Q_fraction = 0.8, Q_goal = 60.352550918320006
Case 42, T_heat_reject = 313.15 K, Q_fraction = 0.5, Q_goal = 37.72034432395
Case 43, T_heat_reject = 313.15 K, Q_fraction = 0.2, Q_goal = 15.088137729580001
Case 44, T_heat_reject = 313.15 K, Q_fraction = 0.1, Q_goal = 7.544068864790001
Case 45, T_heat_reject = 318.15 K, Q_fraction = 1.0, Q_goal = 43.5890044449
Case 46, T_heat_reject = 318.15 K, Q_fraction = 0.9990000000000001, Q_goal = 43.5454154404551
Case 47, T_heat_reject = 318.15 K, Q_fraction = 0.99, Q_goal = 43.153114400450995
Case 48, T_heat_reject = 318.15 K, Q_fraction = 0.95, Q_goal = 41.409554222655
Case 49, T_heat_reject = 318.15 K, Q_fraction = 0.9, Q_goal = 39.23010400041
Case 50, T_heat_reject = 318.15 K, Q_fraction = 0.8, Q_goal = 34.87120355592
Case 51, T_heat_reject = 318.15 K, Q_fraction = 0.5, Q_goal = 21.79450222245
Case 52, T_heat_reject = 318.15 K, Q_fraction = 0.2, Q_goal = 8.71780088898
Case 53, T_heat_reject = 318.15 K, Q_fraction = 0.1, Q_goal = 4.35890044449
Case 54, T_heat_reject = 323.15 K, Q_fraction = 1.0, Q_goal = 13.7458854907
Case 55, T_heat_reject = 323.15 K, Q_fraction = 0.9990000000000001, Q_goal = 13.732139605209301
Case 56, T_heat_reject = 323.15 K, Q_fraction = 0.99, Q_goal = 13.608426635792998
Case 57, T_heat_reject = 323.15 K, Q_fraction = 0.95, Q_goal = 13.058591216164999
Case 58, T_heat_reject = 323.15 K, Q_fraction = 0.9, Q_goal = 12.37129694163
Case 59, T_heat_reject = 323.15 K, Q_fraction = 0.8, Q_goal = 10.99670839256
Case 60, T_heat_reject = 323.15 K, Q_fraction = 0.5, Q_goal = 6.87294274535
Case 61, T_heat_reject = 323.15 K, Q_fraction = 0.2, Q_goal = 2.74917709814
Case 62, T_heat_reject = 323.15 K, Q_fraction = 0.1, Q_goal = 1.37458854907
Case 63, T_heat_reject = 328.15 K, Q_fraction = 1.0, Q_goal = -16.0750822067
Case 64, T_heat_reject = 328.15 K, Q_fraction = 0.9990000000000001, Q_goal = -16.059007124493302
Case 65, T_heat_reject = 328.15 K, Q_fraction = 0.99, Q_goal = -15.914331384633
Case 66, T_heat_reject = 328.15 K, Q_fraction = 0.95, Q_goal = -15.271328096364998
Case 67, T_heat_reject = 328.15 K, Q_fraction = 0.9, Q_goal = -14.46757398603
Case 68, T_heat_reject = 328.15 K, Q_fraction = 0.8, Q_goal = -12.86006576536
Case 69, T_heat_reject = 328.15 K, Q_fraction = 0.5, Q_goal = -8.03754110335
Case 70, T_heat_reject = 328.15 K, Q_fraction = 0.2, Q_goal = -3.21501644134
Case 71, T_heat_reject = 328.15 K, Q_fraction = 0.1, Q_goal = -1.60750822067
Case 72, T_heat_reject = 333.15 K, Q_fraction = 1.0, Q_goal = -34.5410243078
Case 73, T_heat_reject = 333.15 K, Q_fraction = 0.9990000000000001, Q_goal = -34.5064832834922
Case 74, T_heat_reject = 333.15 K, Q_fraction = 0.99, Q_goal = -34.195614064722
Case 75, T_heat_reject = 333.15 K, Q_fraction = 0.95, Q_goal = -32.81397309241
Case 76, T_heat_reject = 333.15 K, Q_fraction = 0.9, Q_goal = -31.08692187702
Case 77, T_heat_reject = 333.15 K, Q_fraction = 0.8, Q_goal = -27.632819446240003
Case 78, T_heat_reject = 333.15 K, Q_fraction = 0.5, Q_goal = -17.2705121539
Case 79, T_heat_reject = 333.15 K, Q_fraction = 0.2, Q_goal = -6.908204861560001
Case 80, T_heat_reject = 333.15 K, Q_fraction = 0.1, Q_goal = -3.4541024307800003

Results and plots and things

In [42]:
display(t_heat_reject_range,q_fraction_range, opts2.head())
array([ 293.15,  298.15,  303.15,  308.15,  313.15,  318.15,  323.15,
        328.15,  333.15])
[1, 0.999, 0.99, 0.95, 0.9, 0.8, 0.5, 0.2, 0.1]
Q Q_evap Q_gen UA_abs UA_cond UA_evap UA_gen UA_rect UA_total deltaT_abs ... deltaT_rect epsilon_abs epsilon_cond epsilon_evap epsilon_gen epsilon_rect m_refrig m_rich opt x0
T_r q_frac
293.15 1.000 128.977391 139.030979 224.171655 11.214328 13.804200 110.076322 87.938056 0.600304 223.633210 18.1368 ... 21.5981 0.482005 0.947633 0.998613 0.999192 0.624634 0.117298 0.600274 {'x': [0.60027398, 278.05790444, 306.47787741,... NaN
0.999 NaN 128.850847 208.146700 10.074984 12.288194 42.712324 17.606191 0.536476 83.218168 18.405 ... 21.8143 0.459864 0.947209 0.982829 0.931618 0.625588 0.108733 0.560317 {'x': [0.56031659, 278.02647954, 306.58900124,... [ 0.53572866 278.00357511 306.62700236 31...
0.990 NaN 127.727146 206.303627 9.937906 12.002823 42.975524 16.785286 0.532172 82.233711 18.4557 ... 21.772 0.457009 0.946738 0.982988 0.924178 0.630293 0.107819 0.555763 {'x': [0.55576348, 278.11067493, 306.70213363,... [ 0.53572866 278.00357511 306.62700236 31...
0.950 NaN 122.506917 198.177386 9.384753 11.439602 34.718124 13.914768 0.503813 69.961060 18.5289 ... 21.7822 0.446008 0.947048 0.982785 0.889814 0.627961 0.103386 0.535729 {'fun': 9300.543724902594, 'maxcv': 0.0, 'mess... NaN
0.900 NaN 116.083944 187.734838 8.713751 10.539891 30.502444 11.459406 0.469943 61.685435 18.5759 ... 21.7674 0.4327 0.946574 0.98297 0.844963 0.632344 0.097998 0.507528 {'fun': 61.6912824818737, 'maxcv': 0.0, 'messa... NaN

5 rows × 23 columns

Q vs UA, for each heat reject temperature

In [119]:
plt.figure()
plt.xlabel('ua total (kW/K)')
plt.ylabel('q cooling (kW)')
for t in t_heat_reject_range:
    plt.plot(opts2.UA_total[t], opts2.Q_evap[t], '.-', label="tr={} K".format(t))
plt.legend()
plt.show()

Cooling vs Heat Reject Temperature, for each fraction of max

This doesn't have much meaning since the series are relative.

In [120]:
# Group by second index
opts3 = opts2.swaplevel()
In [121]:
plt.figure()
plt.xlabel('t heat reject')
plt.ylabel('q cooling (kW)')
for q_frac in q_fraction_range:
    plt.plot(t_heat_reject_range, opts3.Q_evap[q_frac], '.-', label="q_frac={}".format(q_frac))
plt.legend()
plt.show()

Spline things up a bit

In [155]:
import scipy.interpolate
x,y,z = (array([tr for (tr,q_frac) in opts2.index]),
         array(opts2.UA_total),
         array(opts2.Q_evap))
X,Y=numpy.meshgrid(numpy.linspace(293,333),numpy.linspace(0,200))
mask = numpy.logical_not(numpy.isnan(y))
x = x[mask]
y = y[mask]
z = z[mask]
#q_of_t_ua = scipy.interpolate.SmoothBivariateSpline(x,y,z)
#q_of_t_ua = scipy.interpolate.interp2d(x,y,z)
#q_of_t_ua = scipy.interpolate.LSQBivariateSpline(x,y,z,[1,1,1,1,1],[1,1,1,1,1])
#Z=q_of_t_ua(X,Y)
#spline = scipy.interpolate.bisplrep(x,y,z)
Z = scipy.interpolate.griddata(numpy.array([x,y]).T,z,(X,Y))
Z2 = Z.copy()
Z2[numpy.isnan(Z)] = 0

plt.figure()
plt.xlabel('Heat rejection temperature (K)')
plt.ylabel('UA (kW/K)')
plt.title('Q cooling (kW)')
plt.contourf(X,Y,Z)
plt.colorbar()
plt.show()

3D plot of (T,UA,Q) with full extent of data

In [122]:
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_xlabel('T heat reject (K)')
ax.set_ylabel('ua total (kW/K)')
ax.set_zlabel('q cooling (kW)')
for q_frac in q_fraction_range:
    ax.plot(t_heat_reject_range,
            array(opts3.UA_total[q_frac]),
            array(opts3.Q_evap[q_frac]),
            '.-')
for t in t_heat_reject_range:
    x = t * numpy.ones_like(q_fraction_range)
    ax.plot(x,
            array(opts2.UA_total[t]),
            array(opts2.Q_evap[t]))
#plt.ylim(0,200)
plt.show()

Cropped 3D wireframe plot

In [188]:
# Zoom to relevant data, say, UA < 200
# 3d plot does not handle axis limits well, so instead
# we just need to mask off that data.

from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_xlabel('T heat reject (K)')
ax.set_ylabel('ua total (kW/K)')
ax.set_zlabel('q cooling (kW)')
#ax.plot(t_heat_reject_range,
#        array(opts3.Q_evap[1.0]),
#        zs=200,
#        zdir='y')
#for q_frac in q_fraction_range[1:]:
for q_frac in q_fraction_range:
    x,y,z = (t_heat_reject_range.copy(),
            array(opts3.UA_total[q_frac]),
            array(opts3.Q_evap[q_frac]))
    mask = y > 200.
    #x[mask] = nan
    y[mask] = 200
    #z[mask] = nan
    ax.plot(x,y,z,'b.-')
#ax.plot(array(opts2.UA_total[293.15])[1:],
#        array(opts2.Q_evap[293.15])[1:],
#        zs=293,
#        zdir='x')
for t in t_heat_reject_range:
    x,y,z = (t * numpy.ones_like(q_fraction_range),
            array(opts2.UA_total[t]),
            array(opts2.Q_evap[t]))
    mask = y > 200.
    #x[mask] = nan
    y[mask] = 200
    #z[mask] = nan
    ax.plot(x,y,z,'r')
ax.set_xlim(290,330)

for i in range(0,X.shape[0],5):
    ax.plot(X[i,1:],Y[i,1:],Z2[i,1:],'gray',alpha=0.3)
#ax.contour(X,Y,Z)

plt.show()
C:\Users\user1\Miniconda3\envs\openachp\lib\site-packages\ipykernel_launcher.py:20: RuntimeWarning: invalid value encountered in greater
C:\Users\user1\Miniconda3\envs\openachp\lib\site-packages\ipykernel_launcher.py:33: RuntimeWarning: invalid value encountered in greater
In [186]:
# If you got the griddata above ...
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_xlabel('T heat reject (K)')
ax.set_ylabel('ua total (kW/K)')
ax.set_zlabel('q cooling (kW)')

#for i in range(X.shape[0]):
#    ax.plot(X[i,:],Y[i,:],Z[i,:],'g',alpha=0.3)
#for j in range(X.shape[1]):
#    ax.plot(X[:,j],Y[:,j],Z[:,j],'y',alpha=0.3)

ax.plot_wireframe(X[:,1:],Y[:,1:],Z2[:,1:],color='gray',rstride=4,cstride=4,alpha=0.5)
#ax.plot_surface(X,Y,Z2,cmap=matplotlib.cm.Blues)
ax.contour(X,Y,Z,15)
ax.set_zlim(0,140)

plt.show()

Bubble/color plot

In [125]:
# Zoom to relevant data, say, set any UA over threshold to threshold (200)

fig = plt.figure()
plt.xlabel('T heat reject (K)')
plt.ylabel('q cooling (kW)')
plt.title('ua total (kW/K)')
x,y,z = ([tr for (tr,q_frac) in opts2.index],
         array(opts2.Q_evap),
         array(opts2.UA_total))
plt.scatter(x,y,c=z,vmin=0,vmax=100,cmap='rainbow',s=z,alpha=0.8)
plt.plot(t_heat_reject_range, opts3.Q_evap[1.0])
plt.ylim(0,200)
plt.show()

import scipy.interpolate
In [126]:
# Zoom to relevant data, say, set any UA over threshold to threshold (200)
matplotlib.cm
fig = plt.figure()
plt.xlabel('T heat reject (K)')
plt.ylabel('ua total (kW/K)')
plt.title('q cooling (kW)')
x,y,z = ([tr for (tr,q_frac) in opts2.index],
         array(opts2.UA_total),
         array(opts2.Q_evap))
plt.scatter(x,y,c=z,cmap='rainbow',s=z,alpha=0.8)
plt.ylim(0,200)
plt.show()

Data viewer

In [80]:
%matplotlib inline
import widgetsnbextension
from ipywidgets import interactive

modes = opts2.columns
def f(mode='Q_evap'):
    # ch = system_aqua1.makeChiller(xC)
    display(mode)
    import scipy.interpolate
    x,y,z = (array([tr for (tr,q_frac) in opts2.index]),
             array(opts2.UA_total),
             array(opts2[mode]))
    X,Y=numpy.meshgrid(numpy.linspace(293,333),numpy.linspace(0,200))
    mask = numpy.logical_not(numpy.isnan(y))
    x = x[mask]
    y = y[mask]
    z = z[mask]
    #q_of_t_ua = scipy.interpolate.SmoothBivariateSpline(x,y,z)
    #q_of_t_ua = scipy.interpolate.interp2d(x,y,z)
    #q_of_t_ua = scipy.interpolate.LSQBivariateSpline(x,y,z,[1,1,1,1,1],[1,1,1,1,1])
    #Z=q_of_t_ua(X,Y)
    #spline = scipy.interpolate.bisplrep(x,y,z)
    Z = scipy.interpolate.griddata(numpy.array([x,y]).T,z,(X,Y))
    Z2 = Z.copy()
    Z2[numpy.isnan(Z)] = 0

    from mpl_toolkits.mplot3d import Axes3D
    fig = plt.figure()
    ax = fig.gca(projection='3d')
    ax.set_xlabel('T heat reject (K)')
    ax.set_ylabel('ua total (kW/K)')
    ax.set_zlabel(mode)

    #for i in range(X.shape[0]):
    #    ax.plot(X[i,:],Y[i,:],Z[i,:],'g',alpha=0.3)
    #for j in range(X.shape[1]):
    #    ax.plot(X[:,j],Y[:,j],Z[:,j],'y',alpha=0.3)

    ax.plot_wireframe(X[:,1:],Y[:,1:],Z2[:,1:],color='gray',rstride=4,cstride=4,alpha=0.5)
    #ax.plot_surface(X,Y,Z2,cmap=matplotlib.cm.Blues)
    ax.contour(X,Y,Z,15)
    #ax.set_zlim(0,140)

    plt.show()

interactive(f,
            mode=modes)
In [50]:
%%html
<textarea id="TOC-markdown" style="font-family:monospace;width:80%;height:20em;">TOC will be here</textarea>
<script>
$("#TOC-markdown").html(
    $('h1,h2,h3,h4').filter(":has(a)").map(function(){
        return "  ".repeat($(this).prop("tagName")[1]) 
          + "- &lt;a href='" + encodeURI($(this).children().attr("href")) + "'&gt;"
          + $(this).text() + "&lt;/a&gt;";}).get().join("\n")
    );
</script>
In [ ]: