From 0e1da8dbbc54eabfd5d09c98dedcd5b406161627 Mon Sep 17 00:00:00 2001 From: Alon Grinberg Dana Date: Sun, 23 Jun 2024 14:48:20 +0300 Subject: [PATCH] Don't run freq/sp/scans for IRC species --- arc/scheduler.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/arc/scheduler.py b/arc/scheduler.py index 50cd96cbaa..dceb1a63ec 100644 --- a/arc/scheduler.py +++ b/arc/scheduler.py @@ -440,7 +440,8 @@ def __init__(self, self.run_sp_job(label=species.label) if self.job_types['onedmin']: self.run_onedmin_job(species.label) - elif species.get_xyz(generate=False) and not self.job_types['conformers'] and not self.job_types['opt']: + elif species.get_xyz(generate=False) and not self.job_types['conformers'] and not self.job_types['opt'] \ + and species.irc_label is None: if self.job_types['freq']: self.run_freq_job(species.label) if self.job_types['sp']: @@ -482,11 +483,12 @@ def __init__(self, # opt/fine hasn't finished (and isn't running), so run it self.run_opt_job(species.label, fine=self.fine_only) if self.output[species.label]['paths']['geo'] and 'sp' not in self.job_dict[species.label].keys() \ - and not self.output[species.label]['paths']['sp'] and self.job_types['sp']: + and not self.output[species.label]['paths']['sp'] and self.job_types['sp'] \ + and species.irc_label is None: self.run_sp_job(species.label) if self.output[species.label]['paths']['geo'] and 'freq' not in self.job_dict[species.label].keys() \ - and not self.output[species.label]['paths']['freq'] and self.job_types['freq']\ - and (species.is_ts or species.number_of_atoms > 1): + and not self.output[species.label]['paths']['freq'] and self.job_types['freq'] \ + and (species.is_ts or species.number_of_atoms > 1) and species.irc_label is None: self.run_freq_job(species.label) if self.output[species.label]['paths']['geo'] and self.job_types['rotors'] and \ any(spc.rotors_dict is not None and @@ -1501,7 +1503,8 @@ def spawn_post_opt_jobs(self, self.run_irc_job(label=label, irc_direction='reverse') # Spawn freq (or check it if this is a composite job) for polyatomic molecules. - if label in self.output.keys() and self.species_dict[label].number_of_atoms > 1: + if label in self.output.keys() and self.species_dict[label].number_of_atoms > 1 \ + and self.species_dict[label].irc_label is None: if 'freq' not in job_name and self.job_types['freq']: # This is either an opt or a composite job (not an optfreq job), spawn freq. self.run_freq_job(label) @@ -1510,7 +1513,7 @@ def spawn_post_opt_jobs(self, self.check_freq_job(label=label, job=self.job_dict[label]['optfreq'][job_name]) # Spawn sp after an opt (non-composite) job. - if not composite and self.job_types['sp']: + if not composite and self.job_types['sp'] and self.species_dict[label].irc_label is None: self.run_sp_job(label) # Perceive the Molecule from xyz. @@ -1519,7 +1522,7 @@ def spawn_post_opt_jobs(self, self.species_dict[label].mol_from_xyz() # Spawn scan jobs. - if self.job_types['rotors']: + if self.job_types['rotors'] and self.species_dict[label].irc_label is None: if not self.species_dict[label].rotors_dict: self.species_dict[label].determine_rotors() self.run_scan_jobs(label)