def HB_write(self): assert self.mol, 'Mol needed for HB plot x axis' nIndep = self.gen_data[self.feed][self.run]['numIndep'] my_run = [i for i in self.HB[self.feed].keys() if i[:-1] in self.run][0] HB = self.HB[self.feed][my_run] file_description = 'Q N_HB dQ dN_HB' if self.box == 'box3': self.box = 'box2' X = self.getX() self.box = 'box3' else: X = self.getX() for pair in HB.keys(): if type(HB[pair]) == type(int(1)): continue elif HB[pair][self.box]['mean'] > 0.: file_name = 'HB_%s_v_%s_%s.dat'%(pair.replace('->','-').replace(' ',''), self.mol, self.xlabel[0]) if '95conf' in X.keys(): err = X['95conf'] print(X) else: err = calc95conf(X['stdev'],nIndep) writeAGR([X['mean']], [HB[pair][self.box]['mean']], [err], [calc95conf(HB[pair][self.box]['stdev'], nIndep)], [self.feed], file_name, file_description)
def dHigvX(self): U = self.U[self.feed][self.run] dH_store = self.dHmixt[self.feed][self.run] gen_data = self.gen_data[self.feed][self.run] file_name = 'dHig_vapor_to_%s.dat' % self.box X = self.getX() N = self.N[self.feed][self.run] P = self.P[self.feed][self.run] N1_tot = sum(N[i][self.box]['mean'] for i in N.keys()) _rho_ = self.rho[self.feed][self.run] rho_total = getRhoTotal(_rho_) N1 = { 'mean': N1_tot, 'stdev': math.pow(sum(N[i][self.box]['stdev']**2 for i in N.keys()), 0.5) } # mol vapor_box = 'box3' N2 = {'mean': sum(N[i]['box3']['mean'] for i in N.keys())} N2['stdev'] = math.pow(sum(N[i]['box3']['stdev']**2 for i in N.keys()), 0.5) nIndep = gen_data['numIndep'] # dH = ((U[self.box]['mean']/N1['mean'] - U[vapor_box]['mean']/N2['mean'])*8.314/1000 - 8.314/1000*self.T - # dH_store['box3-->box2']['mean']) H_box1 = U[self.box]['mean'] / N1['mean'] H_box2 = P['box2']['mean'] * 1000. / rho_total['box2'] * N_av / R[ '\AA**3*kPa/(mol*K)'] H_box3 = U[vapor_box]['mean'] / N2['mean'] - P['box3'][ 'mean'] * 1000. / rho_total['box3'] * N_av / R['\AA**3*kPa/(mol*K)'] dH = (H_box1 - H_box2 - H_box3) * R['kJ/(mol*K)'] ddH = math.pow( (1 / N1['mean'])**2 * U['box1']['stdev']**2 + (-1 * U['box1']['mean'] / N1['mean']**2)**2 * N1['stdev']**2 + (1 / N2['mean'])**2 * U[vapor_box]['stdev']**2 + (-1 * U[vapor_box]['mean'] / N2['mean']**2)**2 * N2['stdev']**2 + dH_store['box3-->box2']['stdev']**2, 0.5) * 8.314 / 1000 dH_mean, dH_stdev = dH, ddH file_description = 'dHig %s ddHig %s' % (self.xlabel[0], self.xlabel[1]) if '95conf' not in X.keys(): X['95conf'] = calc95conf(X['stdev'], nIndep) writeAGR([X['mean']], [dH_mean], [X['95conf']], [calc95conf(dH_stdev, nIndep)], [self.feed], file_name, file_description)
def dHvX(self): P = self.P[self.feed][self.run] U = self.U[self.feed][self.run] _rho_ = self.rho[self.feed][self.run] rho_total = getRhoTotal(_rho_) dH = self.dHmixt[self.feed][self.run] N = self.N[self.feed][self.run] N1_tot = sum(N[i][self.box]['mean'] for i in N.keys()) N1 = { 'mean': N1_tot, 'stdev': math.pow(sum(N[i][self.box]['stdev']**2 for i in N.keys()), 0.5) } # mol gen_data = self.gen_data[self.feed][self.run] file_description = 'Q(%s) %s dQ %s' % ( self.units, self.xlabel[0], self.xlabel[1]) if self.boxes: boxFrom, boxTo = self.boxes # else: # boxFrom = self.box # boxTo = 'box1' file_name = 'dH_%s_mixture.dat' % boxTo assert 'box' in boxFrom, 'Wrong notation for box' transfer = boxFrom + '-->' + boxTo transfer2 = 'box2-->box1' X = self.getX() nIndep = gen_data['numIndep'] H_zeo = (U['box1']['mean'] / N1_tot + 0.1 * 1000. / rho_total['box1'] * N_av / R['\AA**3*kPa/(mol*K)']) * R['kJ/(mol*K)'] dH_mean, dH_stdev = (dH[transfer]['mean'] + dH[transfer2]['mean'] - H_zeo, math.pow( dH[transfer]['stdev']**2 + 4 * dH[transfer2]['stdev']**2, 0.5)) if '95conf' not in X.keys(): X['95conf'] = calc95conf(X['stdev'], nIndep) writeAGR([X['mean']], [dH_mean], [X['95conf']], [calc95conf(dH_stdev, nIndep)], [self.feed], file_name, file_description)
# (molec/nm**3)*(mol/molec)*(nm**3*kPa/(mol*K))*K = kPa p_mean = rho_mean / N_av * R['nm**3*kPa/(mol*K)'] * args['Temp'] p_stdev = rho_stdev / N_av * R['nm**3*kPa/(mol*K)'] * args['Temp'] henry_constant['mean'].append(conc['mean'] / p_mean) kH_stdev = conc['mean'] / p_mean * math.pow( math.pow(conc['stdev'] / conc['mean'], 2) + math.pow(p_stdev / p_mean, 2), 0.5) henry_constant['95conf'].append(calc95conf(kH_stdev, numIndep)) pressure['mean'].append(p_mean) pressure['95conf'].append(calc95conf(p_stdev, numIndep)) if args['verbosity'] > 0: print('liquid analysis for feed %s is with mol %s, box %s' % (feed, c_mol, box)) henry_constant['feed'].append(feed) # write out results for mol in mol_data.keys(): file_name = 'kH-mol%s.dat' % (mol) file_name = file_name.replace('/', '_') x_data = mol_data[mol]['kH'] y_data = mol_data[mol]['P'] message = 'kH (g/(mL*kPa) P (kPa) d(kH) d(P)' writeAGR(x_data['mean'], y_data['mean'], x_data['95conf'], y_data['95conf'], x_data['feed'], file_name, description=message)