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))