@@ -91,7 +91,7 @@ def get_visited_energies(qrs):
9191 return energies
9292
9393
94- def plot_id_vs_energy (code , energies , match_ids = None , match_energies = None , out_dir = "qrs_plots" , time_cost_s = None , coverage = None , n_conformers = None , energy_unit = "kcal/mol" ):
94+ def plot_id_vs_energy (code , energies , match_ids = None , match_energies = None , out_dir = "qrs_plots" , time_cost_s = None , coverage = None , n_conformers = None ):
9595 """Save a plot of visited-structure ID vs energy for one QRS run."""
9696 if not energies :
9797 print (f"No energies collected for { code } ; skipping plot." )
@@ -101,7 +101,7 @@ def plot_id_vs_energy(code, energies, match_ids=None, match_energies=None, out_d
101101 ids = list (range (1 , len (energies ) + 1 ))
102102
103103 fig , ax = plt .subplots (figsize = (7 , 4.5 ))
104- ax .scatter (ids , energies , s = 10 , alpha = 0.8 , label = "Visited" )
104+ ax .scatter (ids , energies , s = 20 , alpha = 0.8 , label = "Visited" )
105105 ax .plot (ids , energies , linewidth = 0.8 , alpha = 0.6 )
106106 if match_ids and match_energies :
107107 ax .scatter (
@@ -116,12 +116,12 @@ def plot_id_vs_energy(code, energies, match_ids=None, match_energies=None, out_d
116116 label = "Match" ,
117117 )
118118 ax .set_xlabel ("Visited Structure ID" )
119- ax .set_ylabel (f "Energy ({ energy_unit } )" )
119+ ax .set_ylabel ("Energy (kcal/mol )" )
120120 title_parts = [f"{ code } : " ]
121121 if n_conformers is not None :
122122 title_parts .append (f"conf: { n_conformers } " )
123123 if time_cost_s is not None :
124- title_parts .append (f"time: { time_cost_s :.2f } s" )
124+ title_parts .append (f"time: { time_cost_s :.1f } s" )
125125 if coverage is not None :
126126 title_parts .append (f"coverage: { coverage } " )
127127 if len (title_parts ) > 1 :
@@ -138,7 +138,7 @@ def plot_id_vs_energy(code, energies, match_ids=None, match_energies=None, out_d
138138 ax .set_ylim (ymin - margin , ymax + margin )
139139 else :
140140 y_max = min (ymin + 30 , ymax )
141- ax .set_ylim (ymin - 0.25 , y_max )
141+ ax .set_ylim (ymin - 1 , y_max )
142142 fig .tight_layout ()
143143
144144 fig_path = os .path .join (out_dir , f"{ code } .png" )
@@ -173,7 +173,8 @@ def plot_id_vs_energy(code, energies, match_ids=None, match_energies=None, out_d
173173 for code in db .get_all_codes ():
174174 #if code not in ['ACSALA']: continue
175175 #if code not in ['FUNZOE']: continue
176- if code not in ['XAFQON' ]: continue
176+ if code in ['ACEMID02' ]: continue
177+ #if code not in ['XAFPAY', 'OBEQIX', 'UJIRIO02']: continue
177178 row = db .get_row (code = code )
178179 ref_xtal = db .get_pyxtal (code = code )
179180 if ref_xtal .has_special_site ():
@@ -287,12 +288,11 @@ def plot_id_vs_energy(code, energies, match_ids=None, match_energies=None, out_d
287288 composition = [int (a ) for a in ref_xtal .get_zprime ()],
288289 molecules = molecules ,
289290 sites = sites ,
290- N_gen = 100 ,
291- N_pop = 48 ,
292- N_cpu = 2 , #4 ,
291+ N_gen = 200 ,
292+ N_pop = 96 ,
293+ N_cpu = 48 ,
293294 cif = "all.cif" ,
294- skip_mlp = False ,#True,
295- mlp = 'MACEOFF' ,
295+ skip_mlp = True ,
296296 verbose = False ,
297297 delta_length = 1.0 ,
298298 delta_angle = 15.0 ,
@@ -322,7 +322,6 @@ def plot_id_vs_energy(code, energies, match_ids=None, match_energies=None, out_d
322322 time_cost_s = time_cost_s ,
323323 coverage = coverage ,
324324 n_conformers = n_pregen_total ,
325- energy_unit = "eV/atom" if not qrs .skip_mlp else "kcal/mol" ,
326325 )
327326
328327 with open (csv_path , "a" , newline = "" ) as fcsv :
0 commit comments