Skip to content

Commit

Permalink
report energy in conformers_before_optimization.txt
Browse files Browse the repository at this point in the history
  • Loading branch information
JintaoWu98 committed May 22, 2024
1 parent 3631196 commit 9591699
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
15 changes: 10 additions & 5 deletions arc/plotter.py
Original file line number Diff line number Diff line change
Expand Up @@ -900,6 +900,7 @@ def save_conformers_file(project_directory: str,
ts_methods: Optional[List[str]] = None,
im_freqs: Optional[List[List[float]]] = None,
log_content: bool = False,
before_optimized: Optional[bool] = None,
):
"""
Save the conformers before or after optimization.
Expand All @@ -923,18 +924,22 @@ def save_conformers_file(project_directory: str,
geo_dir = os.path.join(project_directory, 'output', spc_dir, label, 'geometry', 'conformers')
if not os.path.exists(geo_dir):
os.makedirs(geo_dir)
if energies is not None and any(e is not None for e in energies):
if before_optimized or energies is None or not any(e is not None for e in energies):
optimized = False
conf_path = os.path.join(geo_dir, 'conformers_before_optimization.txt')
min_e = extremum_list(energies, return_min=True) if before_optimized else None
else:
optimized = True
min_e = extremum_list(energies, return_min=True)
conf_path = os.path.join(geo_dir, 'conformers_after_optimization.txt')
else:
optimized = False
conf_path = os.path.join(geo_dir, 'conformers_before_optimization.txt')
with open(conf_path, 'w') as f:
content = ''
if optimized:
level_of_theory = level_of_theory.simple() if isinstance(level_of_theory, Level) else level_of_theory
content += f'Conformers for {label}, optimized at the {level_of_theory} level:\n\n'
if before_optimized:
level_of_theory = level_of_theory.simple() if isinstance(level_of_theory, Level) else level_of_theory
content += f'Conformers for {label}, generated at the {level_of_theory} level:\n\n'
for i, xyz in enumerate(xyzs):
content += f'conformer {i}:\n'
if xyz is not None:
Expand All @@ -950,7 +955,7 @@ def save_conformers_file(project_directory: str,
content += f'TS guess method: {ts_methods[i]}\n'
if im_freqs is not None and im_freqs[i] is not None:
content += f'Imaginary frequencies: {im_freqs[i]}\n'
if optimized:
if optimized or before_optimized:
if energies[i] == min_e:
content += 'Relative Energy: 0 kJ/mol (lowest)'
elif energies[i] is not None:
Expand Down
2 changes: 2 additions & 0 deletions arc/scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -1845,6 +1845,8 @@ def process_conformers(self, label):
multiplicity=self.species_dict[label].multiplicity,
charge=self.species_dict[label].charge,
is_ts=False,
energies=self.species_dict[label].conformer_energies,
before_optimized=True,
) # before optimization
self.species_dict[label].conformers_before_opt = tuple(self.species_dict[label].conformers)
if self.species_dict[label].initial_xyz is None and self.species_dict[label].final_xyz is None \
Expand Down

0 comments on commit 9591699

Please sign in to comment.