from CoolProp.CoolProp import get_fluid_param_string # Map from chemical formula to name name_map = {'CH4':'Methane', 'N2': 'Nitrogen', 'O2': 'Oxygen', 'CO2': 'CarbonDioxide', 'CO': 'CarbonMonoxide', 'H2S': 'HydrogenSulfide', 'H2': 'Hydrogen', 'H2O': 'Water', 'He': 'Helium', 'Ar': 'Argon', 'C2H6': 'Ethane', 'C3H8': 'Propane', 'nC4H10': 'n-Butane', 'iC4H10': 'IsoButane', 'nC5H12': 'n-Pentane', 'iC5H12': 'Isopentane', 'nC6H14': 'n-Hexane', 'nC7H16': 'n-Heptane', 'nC8H18': 'n-Octane', 'nC9H20': 'n-Nonane', 'nC10H22': 'n-Decane', } F_factors = {} lines = open('KunzWagner2012_TableA6.txt','r').readlines() for line in lines: names,F = line.strip().split(' ') name1,name2 = names.split('/') CAS1 = get_fluid_param_string(name1,'CAS') CAS2 = get_fluid_param_string(name2,'CAS') F_factors[(CAS1,CAS2)] = F F_factors[(CAS2,CAS1)] = F lines = open('KunzWagner2012_TableA8.txt','r').readlines() template = """{{"Name1" : "{Name1:s}", "Name2" : "{Name2:s}", "CAS1" : "{CAS1:s}", "CAS2" : "{CAS2:s}", "betaV" : {betaV:s}, "gammaV" : {gammaV:s}, "betaT" : {betaT:s}, "gammaT" : {gammaT:s}, "F" : {F:s} }},""" for line in lines: vals = line.strip().split(' ') if len(vals) == 6: names, a, betav,gammav,betaT,gammaT = vals else: names, betav,gammav,betaT,gammaT = vals name1,name2 = names.split('-') name1 = name_map[name1] name2 = name_map[name2] CAS1 = get_fluid_param_string(name1,'CAS') CAS2 = get_fluid_param_string(name2,'CAS') if (CAS1,CAS2) in F_factors: F = F_factors[(CAS1,CAS2)] else: F = '0.0' print template.format(Name1 = name1, Name2 = name2, CAS1 = CAS1, CAS2 = CAS2, betaV = betav, gammaV = gammav, betaT = betaT, gammaT = gammaT, F = F)