diff --git a/arc/scheduler.py b/arc/scheduler.py index 5eeca8af64..db5c0f009f 100644 --- a/arc/scheduler.py +++ b/arc/scheduler.py @@ -559,11 +559,9 @@ def schedule_jobs(self): if successful_server_termination: troubleshooting_conformer = self.parse_conformer(job=job, label=label, i=i) if 'conf_opt' in job_name and self.job_types['conf_sp'] and not troubleshooting_conformer: - self.run_job(label=label, - xyz=self.species_dict[label].conformers[i], - level_of_theory=self.conformer_sp_level, - job_type='conf_sp', - conformer=i) + self.run_sp_job(label=label, + level=self.conformer_sp_level, + conformer=i) if troubleshooting_conformer: break # Just terminated a conformer job. @@ -1269,6 +1267,7 @@ def run_freq_job(self, label): def run_sp_job(self, label: str, level: Optional[Level] = None, + conformer: Optional[int] = None, ): """ Spawn a single point job using 'final_xyz' for species ot TS 'label'. @@ -1277,9 +1276,17 @@ def run_sp_job(self, Args: label (str): The species label. level (Level): An alternative level of theory to run at. If ``None``, self.sp_level will be used. + conformer (int): The conformer number. """ level = level or self.sp_level + if self.job_types['conf_sp'] and conformer is not None: + self.run_job(label=label, + xyz=self.species_dict[label].conformers[conformer], + level_of_theory=self.conformer_sp_level, + job_type='conf_sp', + conformer=conformer) + return # determine_occ(xyz=self.xyz, charge=self.charge) if level == self.opt_level and not self.composite_method \ and not (level.software == 'xtb' and self.species_dict[label].is_ts) \