try: x=mineral() phasenames.append((name,x)) except: print "Could not create '%s'" % name eos=phasenames[0][1].params['equation_of_state'] if eos == 'hp_tmt': params = ['V_0','K_0','Kprime_0','Kdprime_0','molar_mass','n','Cp'] elif eos == 'slb2' or eos== 'slb3' or eos == 'mgd2' or eos== 'mgd3': params = ['V_0','K_0','Kprime_0','G_0','Gprime_0','molar_mass','n','Debye_0','grueneisen_0','q_0','eta_s_0'] elif eos == 'cork': params = ['cork_params','cork_T','cork_P','Cp'] table = [ ['Name'] + params ] tablel = [] sortedlist = sorted(phasenames, key=lambda x: x[0]) for (name,p) in sortedlist: p.set_state(1e9,300) row = create_list(name,p) table.append(row) tablel.append(row) if (len(sys.argv)==1): tools.pretty_print_table(table, False) elif sys.argv[1]=="tab": tools.pretty_print_table(table, True)
# prints a separate table for each eos group. list_eoses = [ phasename[1].params['equation_of_state'] for phasename in phasenames ] for (eos, params) in sorted(eos_params.items(), key=lambda x: x[0]): eos_phasenames = [ phasenames[i] for i, e in enumerate(list_eoses) if e == eos ] if len(eos_phasenames) > 0: table = [] tablel = [] table.append(['Name ({0} equation of state)'.format(eos)] + params) tablel.append([]) sortedlist = sorted(eos_phasenames, key=lambda x: x[0]) for (name, p) in sortedlist: p.set_state(1e9, 300) row = create_list(name, p) table.append(row) tablel.append(row) if (len(sys.argv) == 1): tools.pretty_print_table(table, False) elif sys.argv[1] == "tab": tools.pretty_print_table(table, True)
params = ['ref_V','ref_K','K_prime','ref_mu','mu_prime','molar_mass','n','ref_Debye','ref_grueneisen','q0','eta_0s'] def create_list(mineral,paramname): row = [ p.__class__.__name__ ] for param in params: row.append(str(getattr(p,paramname)[param])) return row table = [ ['Name'] + params ] for p in phases: p.set_method('bm') p.set_state(0,300) if hasattr(p,'params_LS'): row = create_list(p, 'params_LS') row[0] += ' (LS)' table.append(row) row = create_list(p, 'params_HS') row[0] += ' (HS)' table.append(row) else: row = create_list(p, 'params') table.append(row) tools.pretty_print_table(table)