From fb22426ce999b5e97d78ccb8a8f1506bebc61f5e Mon Sep 17 00:00:00 2001 From: Alon Grinberg Dana Date: Fri, 24 Mar 2023 23:17:04 +0300 Subject: [PATCH 1/2] Don't run a rotor job if the output file exists --- arc/scheduler.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arc/scheduler.py b/arc/scheduler.py index 2f85ea0a81..991bf82f5a 100644 --- a/arc/scheduler.py +++ b/arc/scheduler.py @@ -1247,6 +1247,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 = '' @@ -1277,7 +1279,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(): From 2eaf2f4239eeb5706be61480ad8d57714ef532bc Mon Sep 17 00:00:00 2001 From: Alon Grinberg Dana Date: Fri, 24 Mar 2023 23:28:08 +0300 Subject: [PATCH 2/2] Don't run opt/freq jobs for IRC species when restarting --- arc/scheduler.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arc/scheduler.py b/arc/scheduler.py index 991bf82f5a..56bffa07df 100644 --- a/arc/scheduler.py +++ b/arc/scheduler.py @@ -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) @@ -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()) \