def step2(**kwargs): """ post process: get energies from the jobs in the previous step and generate the phase diagram """ chkfile = kwargs['checkpoint_files'][0] all_jobs = jobs_from_file(chkfile) entries = [] # add endpoint data Al = Composition("Al1O0") energy_al = -3.36 O = Composition("Al0O1") energy_o = -2.58 entries.append(PDEntry(Al, energy_al)) entries.append(PDEntry(O, energy_o)) # get data and create entries for job in all_jobs: comp = job.vis.mplmp.structure.composition energy = job.final_energy entries.append(PDEntry(comp, energy)) pd = PhaseDiagram(entries) plotter = PDPlotter(pd, show_unstable=True) plotter.write_image('Al_O_phasediagram.jpg') return None
def pd_plot(system='Ni-Nb'): object_file = pickle.load(open('form_en_gbsave_v25h', "rb")) output = [] l = system.split('-') comb = [] for i in range(len(l)): comb += itertools.combinations(l, i + 1) comb_list = [list(t) for t in comb] # comb_list=['Zn','O','Zn-O'] with MPRester("") as m: for i in comb_list: dd = '-'.join(i) print dd data = m.get_data(dd) for d in data: x = {} x['material_id'] = str(d['material_id']) structure = m.get_structure_by_material_id(x['material_id']) X = get_comp_descp(struct=structure) print "X", X pred = object_file.predict(X) print structure.composition.reduced_formula, pred[0], d[ 'formation_energy_per_atom'], str(d['material_id']) output.append( PDEntry(Composition(structure.composition), float(pred[0]))) pd = PhaseDiagram(output) print output plotter = PDPlotter(pd, show_unstable=True) name = str(system) + str('_phasediagram.png') plotter.write_image(name, image_format="png")
# if val != '' and val !='\n' and val !='\r\n': # list_el.append(val) # for i in range(0,len(list_el)): # if i!=0: # element_ff.append(list_el[i]) # print ff,' ',element_ff element_ff=['Ti','O','N'] with MPRester(MAPI_KEY) as m: data = m.get_entries_in_chemsys(element_ff,inc_structure='final', property_data=["unit_cell_formula","material_id","icsd_id","spacegroup","energy_per_atom","formation_energy_per_atom","pretty_formula","band_gap","total_magnetization","e_above_hull"]) if (len(element_ff)>1): try: entries = m.get_entries_in_chemsys(element_ff) pd = PhaseDiagram(entries) plotter = PDPlotter(pd, show_unstable=True) image=str(ff)+str("_DFT")+str(".jpg") plotter.write_image(image) except: pass structures=[] structures_cvn=[] icsd_arr=[] mp_arr=[] sg_arr=[] enp_arr=[] fenp_arr=[] pf_arr=[] ucf_arr=[] bg_arr=[] tm_arr=[] ehull_arr=[] for d in data:
el1) and x['forcefield'] == ff: output.append( PDEntry(Composition(x['composition']), float(x['totenergy']))) return output ##Used for phase diagram entries = get_entries_from_json(key='search', value='Cu-H-O', out='energy', ff='ffield.CuOCH.comb3', json_f='data.json', PD=True) #entries=get_entries_from_json(key='search',value='Fe-H-O',out='energy',ff='ffield.reax.Fe_O_C_H',json_f='data.json',PD=True) #entries=get_entries_from_json(key='search',value='Al-Ni',out='energy',ff='Mishin-Ni-Al-2009.eam.alloy',json_f='data.json',PD=True) pd = PhaseDiagram(entries) plotter = PDPlotter(pd, show_unstable=False) #plotter = PDPlotter(pd, show_unstable=True) #print plotter.pd_plot_data print plotter.get_plot name = str('Cu-H-Ocomb') + str('_LMP_phasediagram.png') plotter.write_image(name, image_format="png") ## ##INDIVIDUAL #output=get_entries_from_json(key='mpid',value='mp-13',out='energy',ff='ffield.reax.Fe_O_C_H',json_f='data.json') get_entries_from_json(key='mpid', value='mp-134', out='Bv', json_f='data.json') ##
if val != '' and val !='\n' and val !='\r\n': list_el.append(val) for i in range(0,len(list_el)): if i!=0: element_ff.append(list_el[i]) # print ff,' ',element_ff with MPRester(MAPI_KEY) as m: data = m.get_entries_in_chemsys(element_ff,inc_structure='final', property_data=["unit_cell_formula","material_id","icsd_id","spacegroup","energy_per_atom","formation_energy_per_atom","pretty_formula","band_gap","total_magnetization","e_above_hull"]) if (len(element_ff)>1): try: entries = m.get_entries_in_chemsys(element_ff) pd = PhaseDiagram(entries) plotter = PDPlotter(pd, show_unstable=True) image=str(ff)+str("_DFT")+str(".jpg") plotter.write_image(image) except: pass structures=[] structures_cvn=[] icsd_arr=[] mp_arr=[] sg_arr=[] enp_arr=[] fenp_arr=[] pf_arr=[] ucf_arr=[] bg_arr=[] tm_arr=[] ehull_arr=[] for d in data: