Skip to content

Commit

Permalink
A few patches to the restart (#621)
Browse files Browse the repository at this point in the history
ARC's restart should be remade one day. Here are a few patches to avoid
running undesired jobs when restarting ARC
  • Loading branch information
kfir4444 authored Mar 25, 2023
2 parents 5a9137f + d90afa9 commit 1e992b0
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions arc/scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@ def __init__(self,
self.run_sp_job(species.label)
if self.job_types['rotors']:
self.run_sp_job(species.label, level = self.scan_level)
if not self.job_types['opt']: # The user provided an optimized coordinets
if not self.job_types['opt']: # The user provided an optimized coordinates
self.run_scan_jobs(species.label)

elif ((species.initial_xyz is not None or species.final_xyz is not None)
Expand All @@ -437,10 +437,12 @@ def __init__(self,
if self.composite_method:
# composite-related restart
if not self.output[species.label]['job_types']['composite'] \
and 'composite' not in list(self.job_dict[species.label].keys()):
and 'composite' not in list(self.job_dict[species.label].keys())\
and not os.path.isfile(self.output[species.label]['paths']['geo']):
# doing composite; composite hasn't finished and is not running; spawn composite
self.run_composite_job(species.label)
elif 'composite' not in list(self.job_dict[species.label].keys()):
elif 'composite' not in list(self.job_dict[species.label].keys()) \
and species.irc_label is None:
# composite is done; do other jobs
if not self.output[species.label]['job_types']['freq'] \
and 'freq' not in list(self.job_dict[species.label].keys()) \
Expand Down Expand Up @@ -1247,6 +1249,8 @@ def run_scan_jobs(self, label: str):
"""
if self.job_types['rotors'] and isinstance(self.species_dict[label].rotors_dict, dict):
for i, rotor in self.species_dict[label].rotors_dict.items():
if rotor['scan_path'] and os.path.isfile(rotor['scan_path']):
continue
# Since this function is relevant for in multiple cases, all cases are listed for debugging
# [have not started] success = None, and scan_path = ''
# [first time calculating] success = None, and scan_path = ''
Expand Down Expand Up @@ -1277,7 +1281,7 @@ def run_scan_jobs(self, label: str):
continue
directed_scan_type = rotor['directed_scan_type'] if 'directed_scan_type' in rotor else ''

if directed_scan_type:
if directed_scan_type != 'ess':
# This is a directed scan.
# Check that this job isn't already running on the server (from a restarted project).
if 'directed_scan' not in self.job_dict[label].keys():
Expand Down

0 comments on commit 1e992b0

Please sign in to comment.