arc.scheduler¶
A module for scheduling ARC jobs Includes spawning, terminating, checking, and troubleshooting various jobs
- class arc.scheduler.Scheduler(project: str, ess_settings: dict, species_list: list, project_directory: str, composite_method: Optional[Level] = None, conformer_opt_level: Optional[Level] = None, conformer_sp_level: Optional[Level] = None, opt_level: Optional[Level] = None, freq_level: Optional[Level] = None, sp_level: Optional[Level] = None, scan_level: Optional[Level] = None, ts_guess_level: Optional[Level] = None, irc_level: Optional[Level] = None, orbitals_level: Optional[Level] = None, adaptive_levels: Optional[dict] = None, rmg_database: Optional = None, job_types: Optional[dict] = None, rxn_list: Optional[list] = None, bath_gas: Optional[str] = None, restart_dict: Optional[dict] = None, max_job_time: Optional[float] = None, allow_nonisomorphic_2d: Optional[bool] = False, memory: Optional[float] = None, testing: Optional[bool] = False, dont_gen_confs: Optional[list] = None, n_confs: Optional[int] = 10, e_confs: Optional[float] = 5, fine_only: Optional[bool] = False, trsh_ess_jobs: Optional[bool] = True, kinetics_adapter: str = 'arkane', freq_scale_factor: float = 1.0, ts_adapters: List[str] = None, report_e_elect: Optional[bool] = False, skip_nmd: Optional[bool] = False, output: Optional[dict] = None)[source]¶
ARC’s Scheduler class. Creates jobs, submits, checks status, troubleshoots. Each species in species_list has to have a unique label.
Dictionary structures:
job_dict = {label_1: {'conf_opt': {0: Job1, 1: Job2, ...}, 'conf_sp': {0: Job1, 1: Job2, ...}, 'tsg': {0: Job1, 1: Job2, ...}, # TS guesses 'opt': {job_name1: Job1, job_name2: Job2, ...}, 'sp': {job_name1: Job1, job_name2: Job2, ...}, 'freq': {job_name1: Job1, job_name2: Job2, ...}, 'composite': {job_name1: Job1, job_name2: Job2, ...}, 'scan': {job_name1: Job1, job_name2: Job2, ...}, <job_type>: {job_name1: Job1, job_name2: Job2, ...}, ... } label_2: {...}, } output = {label_1: {'job_types': {job_type1: <status1>, # boolean job_type2: <status2>, }, 'paths': {'geo': <path to geometry optimization output file>, 'freq': <path to freq output file>, 'sp': <path to sp output file>, 'composite': <path to composite output file>, 'irc': [list of two IRC paths], }, 'conformers': <comments>, 'isomorphism': <comments>, 'convergence': <status>, # Optional[bool] 'restart': <comments>, 'info': <comments>, 'warnings': <comments>, 'errors': <comments>, }, label_2: {...}, }
Note
The rotor scan dicts are located under Species.rotors_dict
- Parameters:
project (str) – The project’s name. Used for naming the working directory.
ess_settings (dict) – A dictionary of available ESS and a corresponding server list.
species_list (list) – Contains input ARCSpecies objects (both wells and TSs).
rxn_list (list) – Contains input ARCReaction objects.
project_directory (str) – Folder path for the project: the input file path or ARC/Projects/project-name.
composite_method (str, optional) – A composite method to use.
conformer_opt_level (Union[str, dict], optional) – The level of theory to use for conformer comparisons.
conformer_sp_level (Union[str, dict], optional) – The level of theory to use for conformer sp jobs.
opt_level (Union[str, dict], optional) – The level of theory to use for geometry optimizations.
freq_level (Union[str, dict], optional) – The level of theory to use for frequency calculations.
sp_level (Union[str, dict], optional) – The level of theory to use for single point energy calculations.
scan_level (Union[str, dict], optional) – The level of theory to use for torsion scans.
ts_guess_level (Union[str, dict], optional) – The level of theory to use for TS guess comparisons.
irc_level (Union[str, dict], optional) – The level of theory to use for IRC calculations.
orbitals_level (Union[str, dict], optional) – The level of theory to use for calculating MOs (for plotting).
adaptive_levels (dict, optional) – A dictionary of levels of theory for ranges of the number of heavy atoms in the species. Keys are tuples of (min_num_atoms, max_num_atoms), values are dictionaries with job type tuples as keys and levels of theory as values. ‘inf’ is accepted in max_num_atoms
rmg_database (RMGDatabase, optional) – The RMG database object.
job_types (dict, optional) – A dictionary of job types to execute. Keys are job types, values are boolean.
bath_gas (str, optional) – A bath gas. Currently used in OneDMin to calc L-J parameters. Allowed values are He, Ne, Ar, Kr, H2, N2, O2.
restart_dict (dict, optional) – A restart dictionary parsed from a YAML restart file.
max_job_time (float, optional) – The maximal allowed job time on the server in hours (can be fractional).
allow_nonisomorphic_2d (bool, optional) – Whether to optimize species even if they do not have a 3D conformer that is isomorphic to the 2D graph representation.
memory (float, optional) – The total allocated job memory in GB (14 by default).
testing (bool, optional) – Used for internal ARC testing (generating the object w/o executing it).
dont_gen_confs (list, optional) – A list of species labels for which conformer jobs were loaded from a restart file, or user-requested. Additional conformer generation should be avoided.
n_confs (int, optional) – The number of lowest force field conformers to consider.
e_confs (float, optional) – The energy threshold in kJ/mol above the lowest energy conformer below which force field conformers are considered.
fine_only (bool) – If
True
ARC will not run optimization jobs withoutfine=True
.kinetics_adapter (str, optional) – The statmech software to use for kinetic rate coefficient calculations.
freq_scale_factor (float, optional) – The harmonic frequencies scaling factor.
trsh_ess_jobs (bool, optional) – Whether to attempt troubleshooting failed ESS jobs. Default is
True
.ts_adapters (list, optional) – Entries represent different TS adapters.
report_e_elect (bool, optional) – Whether to report electronic energy. Default is
False
.skip_nmd (bool, optional) – Whether to skip normal mode displacement check. Default is
False
.output (dict, optional) – Output dictionary with status per job type and final QM file paths for all species.
- project¶
The project’s name. Used for naming the working directory.
- Type:
str
- servers¶
A list of servers used for the present project.
- Type:
list
- species_list¶
Contains input ARCSpecies objects (both species and TSs).
- Type:
list
- species_dict¶
Keys are labels, values are ARCSpecies objects.
- Type:
dict
- rxn_list¶
Contains input ARCReaction objects.
- Type:
list
- unique_species_labels¶
A list of species labels (checked for duplicates).
- Type:
list
- job_dict¶
A dictionary of all scheduled jobs. Keys are species / TS labels, values are dictionaries where keys are job names (corresponding to ‘running_jobs’ if job is running) and values are the Job objects.
- Type:
dict
- running_jobs¶
A dictionary of currently running jobs (a subset of job_dict). Keys are species/TS label, values are lists of job names (e.g. ‘conformer3’, ‘opt_a123’).
- Type:
dict
- server_job_ids¶
A list of relevant job IDs currently running on the server.
- Type:
list
- output¶
Output dictionary with status per job type and final QM file paths for all species.
- Type:
dict
- output_multi_spc¶
Output dictionary with status per job type of multi-species clusters.
- Type:
dict
- ess_settings¶
A dictionary of available ESS and a corresponding server list.
- Type:
dict
- restart_dict¶
A restart dictionary parsed from a YAML restart file.
- Type:
dict
- project_directory¶
Folder path for the project: the input file path or ARC/Projects/project-name.
- Type:
str
- save_restart¶
Whether to start saving a restart file.
True
only after all species are loaded (otherwise saves a partial file and may cause loss of information).- Type:
bool
- restart_path¶
Path to the restart.yml file to be saved.
- Type:
str
- max_job_time¶
The maximal allowed job time on the server in hours (can be fractional).
- Type:
float
- testing¶
Used for internal ARC testing (generating the object w/o executing it).
- Type:
bool
- rmg_database¶
The RMG database object.
- Type:
RMGDatabase
- allow_nonisomorphic_2d¶
Whether to optimize species even if they do not have a 3D conformer that is isomorphic to the 2D graph representation.
- Type:
bool
- dont_gen_confs¶
A list of species labels for which conformer jobs were loaded from a restart file, or user-requested. Additional conformer generation should be avoided for them.
- Type:
list
- memory¶
The total allocated job memory in GB (14 by default).
- Type:
float
- n_confs¶
The number of lowest force field conformers to consider.
- Type:
int
- e_confs¶
The energy threshold in kJ/mol above the lowest energy conformer below which force field conformers are considered.
- Type:
float
- job_types¶
A dictionary of job types to execute. Keys are job types, values are boolean.
- Type:
dict
- bath_gas¶
A bath gas. Currently used in OneDMin to calc L-J parameters. Allowed values are He, Ne, Ar, Kr, H2, N2, O2.
- Type:
str
- composite_method¶
A composite method to use.
- Type:
str
- conformer_opt_level¶
The level of theory to use for conformer comparisons.
- Type:
dict
- conformer_sp_level¶
The level of theory to use for conformer sp jobs.
- Type:
dict
- opt_level¶
The level of theory to use for geometry optimizations.
- Type:
dict
- freq_level¶
The level of theory to use for frequency calculations.
- Type:
dict
- sp_level¶
The level of theory to use for single point energy calculations.
- Type:
dict
- scan_level¶
The level of theory to use for torsion scans.
- Type:
dict
- ts_guess_level¶
The level of theory to use for TS guess comparisons.
- Type:
dict
- irc_level¶
The level of theory to use for IRC calculations.
- Type:
dict
- orbitals_level¶
The level of theory to use for calculating MOs (for plotting).
- Type:
dict
- adaptive_levels¶
A dictionary of levels of theory for ranges of the number of heavy atoms in the species. Keys are tuples of (min_num_atoms, max_num_atoms), values are dictionaries with job type tuples as keys and levels of theory as values. ‘inf’ is accepted in max_num_atoms
- Type:
dict
- rmg_database¶
The RMG database object.
- Type:
RMGDatabase, optional
- fine_only¶
If
True
ARC will not run optimization jobs withoutfine=True
.- Type:
bool
- kinetics_adapter¶
The statmech software to use for kinetic rate coefficient calculations.
- Type:
str
- freq_scale_factor¶
The harmonic frequencies scaling factor.
- Type:
float
- trsh_ess_jobs¶
Whether to attempt troubleshooting failed ESS jobs. Default is
True
.- Type:
bool
- ts_adapters¶
Entries represent different TS adapters.
- Type:
list
- report_e_elect¶
Whether to report electronic energy.
- Type:
bool
- skip_nmd¶
Whether to skip normal mode displacement check.
- Type:
bool
- add_label_to_unique_species_labels(label: str) str [source]¶
Adds a label to self.unique_species_labels. Modifies the label if it is not unique.
- Parameters:
label (str) – A species label.
- Returns:
The modified species label
- Return type:
str
- check_all_done(label: str)[source]¶
Check that we have all required data for the species/TS.
- Parameters:
label (str) – The species label.
- check_directed_scan(label, pivots, scan, energies)[source]¶
Checks (QA) whether the directed scan is relatively “smooth”, and whether the optimized geometry indeed represents the minimum energy conformer. Recommends whether or not to use this rotor using the ‘successful_rotors’ and ‘unsuccessful_rotors’ attributes. This method differs from check_directed_scan_job(), since here we consider the entire scan.
- Parameters:
label (str) – The species label.
pivots (List[List[int]]) – The rotor pivots.
scan (List[int]) – The four atoms defining the dihedral.
energies (List[float]) – The rotor scan energies in kJ/mol.
- check_directed_scan_job(label: str, job: JobAdapter)[source]¶
Check that a directed scan job for a specific dihedral angle converged successfully, otherwise troubleshoot.
- Parameters:
label (str) – The species label.
job (JobAdapter) – The rotor scan job object.
- check_freq_job(label: str, job: JobAdapter)[source]¶
Check that a freq job converged successfully. Also checks (QA) that no imaginary frequencies were assigned for stable species, and that exactly one imaginary frequency was assigned for a TS.
- Parameters:
label (str) – The species label.
job (JobAdapter) – The frequency job object instance.
- check_irc_species(label: str)[source]¶
Check that the optimized geometry of the two species created from a TS IRC runs makes sense
- Parameters:
label (str) – The label of one of the optimized IRC-resulting species.
- check_max_simultaneous_jobs_limit(server: Optional[str])[source]¶
Check if the number of running jobs on the server is not above the set server limit.
- Parameters:
server (str) – The server name.
- check_negative_freq(label: str, job: JobAdapter, vibfreqs: Union[list, ndarray])[source]¶
A helper function for determining the number of negative frequencies. Also logs appropriate errors. Returns
True
if the number of negative frequencies is as excepted,False
otherwise.- Parameters:
label (str) – The species label.
job (JobAdapter) – The optimization job object.
vibfreqs (list) – The vibrational frequencies.
- check_rxn_e0_by_spc(label: str)[source]¶
Check the E0 (electronic energy + ZPE) of reactions related to a specific species. Requires all opt + freq computations to be converged for all species (and TS) participating in each reaction.
- Parameters:
label (str) – A label representing a species.
- check_scan_job(label: str, job: JobAdapter)[source]¶
Check that a rotor scan job converged successfully. Also checks (QA) whether the scan is relatively “smooth”, and whether the optimized geometry indeed represents the minimum energy conformer. Recommends whether to use this rotor using the ‘successful_rotors’ and ‘unsuccessful_rotors’ attributes.
- Parameters:
label (str) – The species label.
job (JobAdapter) – The rotor scan job object.
- check_sp_job(label: str, job: JobAdapter)[source]¶
Check that a single point job converged successfully.
- Parameters:
label (str) – The species label.
job (JobAdapter) – The single point job object.
- deduce_job_adapter(level: Level, job_type: str) str [source]¶
Deduce the job adapter (the software) to be used for jobs other than TS searches.
- Parameters:
level (Level) – The level of theory that will be used for the job.
job_type (str) – The job’s type.
- Returns: str
The deduced job adapter.
- delete_all_species_jobs(label: str)[source]¶
Delete all jobs of a species/TS.
- Parameters:
label (str) – The species label.
- determine_adaptive_level(original_level_of_theory: Level, job_type: str, heavy_atoms: int) Level [source]¶
Determine the level of theory to be used according to the job type and number of heavy atoms. self.adaptive_levels is a dictionary of levels of theory for ranges of the number of heavy atoms in the species. Keys are tuples of (min_num_atoms, max_num_atoms), values are dictionaries with job type tuples as keys and levels of theory as values. The string ‘inf’ is accepted instead of an integer in max_num_atoms.
- Parameters:
original_level_of_theory (Level) – The level of theory for non-sp/opt/freq job types.
job_type (str) – The job type for which the level of theory is determined.
heavy_atoms (int) – The number of heavy atoms in the species.
- determine_most_likely_ts_conformer(label: str)[source]¶
Determine the most likely TS conformer. Save the resulting xyz as the
.initial_xyz
attribute of the TS Species.- Parameters:
label (str) – The TS species label.
- determine_most_stable_conformer(label, sp_flag=False)[source]¶
Determine the most stable conformer for a species (which is not a TS). Also run an isomorphism check. Save the resulting xyz as initial_xyz.
- Parameters:
label (str) – The species label.
sp_flag (bool) – Whether this is a single point calculation job.
- end_job(job: JobAdapter, label: str, job_name: str) bool [source]¶
A helper function for checking job status, saving in csv file, and downloading output files if needed.
- Parameters:
job (JobAdapter) – The job object.
label (str) – The species label.
job_name (str) – The job name from the running_jobs dict.
- Returns:
True
if job terminated successfully on the server,False
otherwise.- Return type:
bool
- generate_final_ts_guess_report()[source]¶
Generate a TS report for this ARC project and saves it as a YAML file.
- get_completed_incore_jobs()[source]¶
Check job status of all incore jobs, get a list of relevant completed job IDs.
Todo: Add tests.
- get_server_job_ids(specific_server: Optional[str] = None)[source]¶
Check job status on a specific server or on all active servers, get a list of relevant running job IDs.
- Parameters:
specific_server (str, optional) – The server to check. If
None
, check all active servers.
- initialize_output_dict(label: Optional[str] = None)[source]¶
Initialize self.output. Do not initialize keys that will contain paths (‘geo’, ‘freq’, ‘sp’, ‘composite’), their existence indicate the job was terminated for restarting purposes. If
label
is notNone
, will initialize for a specific species, otherwise will initialize for all species.- Parameters:
label (str, optional) – A species label.
- make_reaction_labels_info_file()[source]¶
A helper function for creating the reactions labels.info file.
- parse_composite_geo(label: str, job: JobAdapter) bool [source]¶
Check that a ‘composite’ job converged successfully, and parse the geometry into final_xyz. Also checks (QA) that no imaginary frequencies were assigned for stable species, and that exactly one imaginary frequency was assigned for a TS. Returns
True
if the job converged successfully,False
otherwise and troubleshoots.- Parameters:
label (str) – The species label.
job (JobAdapter) – The composite job object.
- Returns:
Whether the job converged successfully.
- Return type:
bool
- parse_conformer(job: JobAdapter, label: str, i: int)[source]¶
Parse E0 (kJ/mol) from the conformer opt output file. For species, save it in the Species.conformer_energies attribute. Fot TSs, save it in the TSGuess.energy attribute, and also parse the geometry.
- Parameters:
job (JobAdapter) – The conformer job object.
label (str) – The TS species label.
i (int) – The conformer index.
- Returns:
Whether the conformer job is being troubleshooted by running a new job.
- Return type:
bool
- parse_opt_e_elect(label: str, job: JobAdapter) bool [source]¶
Parse electronic energy for ‘opt’ or ‘optfreq’ job if it converged successfully.
- Parameters:
label (str) – The species label.
job (JobAdapter) – The optimization job object.
- parse_opt_geo(label: str, job: JobAdapter) bool [source]¶
Check that an ‘opt’ or ‘optfreq’ job converged successfully, and parse the geometry into final_xyz. If the job is ‘optfreq’, also checks (QA) that no imaginary frequencies were assigned for stable species, and that exactly one imaginary frequency was assigned for a TS. Returns
True
if the job (or both jobs) converged successfully,False
otherwise and troubleshoots opt.- Parameters:
label (str) – The species label.
job (JobAdapter) – The optimization job object.
- Returns:
Whether the job converged successfully.
- Return type:
bool
- post_opt_geo_work(spc_label: str, job: JobAdapter)[source]¶
Few steps to finish after running the opt job.
- Parameters:
spc_label (str) – The species label.
job (JobAdapter) – The optimization job object.
- post_sp_actions(label: str, sp_path: str, level: Optional[Level] = None)[source]¶
Perform post-sp actions.
- Parameters:
label (str) – The species label.
sp_path (str) – The path to ‘output.out’ for the single point job.
level (Level, optional) – The level of theory used for the sp job.
- process_conformers(label)[source]¶
Process the generated conformers and spawn DFT jobs at the conformer_opt_level. If more than one conformer is available, they will be optimized at the DFT conformer_opt_level.
- Parameters:
label (str) – The species label.
- process_directed_scans(label: str, pivots: Union[List[int], List[List[int]]])[source]¶
Process all directed rotors for a species and check the quality of the scan.
- Parameters:
label (str) – The species label.
pivots (Union[List[int], List[List[int]]]) – The rotor pivots.
- restore_running_jobs()[source]¶
Make Job objects for jobs which were running in the previous session. Important for the restart feature so long jobs won’t run twice.
- run_composite_job(label: str)[source]¶
Spawn a composite job (e.g., CBS-QB3) using ‘final_xyz’ for species ot TS ‘label’.
- Parameters:
label (str) – The species label.
- run_conformer_jobs(labels: Optional[List[str]] = None)[source]¶
Select the most stable conformer for each species using molecular dynamics (force fields) and subsequently spawning opt jobs at the conformer level of theory, usually a reasonable yet cheap DFT, e.g., b97d3/6-31+g(d,p). The resulting conformer is saved in a string format xyz in the Species initial_xyz attribute.
- Parameters:
labels (list) – Labels of specific species to run conformer jobs for. If
None
, conformer jobs will be spawned for all species in self.species_list.
- run_freq_job(label)[source]¶
Spawn a freq job using ‘final_xyz’ for species ot TS ‘label’. If this was originally a composite job, run an appropriate separate freq job outputting the Hessian.
- Parameters:
label (str) – The species label.
- run_irc_job(label, irc_direction='forward')[source]¶
Spawn an IRC job.
- Parameters:
label (str) – The species label.
irc_direction (str) – The IRC job direction, either ‘forward’ or ‘reverse’.
- run_job(job_type: str, conformer: Optional[int] = None, cpu_cores: Optional[int] = None, dihedral_increment: Optional[float] = None, dihedrals: Optional[list] = None, directed_scan_type: Optional[str] = None, ess_trsh_methods: Optional[list] = None, fine: Optional[bool] = False, irc_direction: Optional[str] = None, job_adapter: Optional[str] = None, label: Optional[Union[List[str], str]] = None, level_of_theory: Optional[Union[Level, dict, str]] = None, memory: Optional[int] = None, max_job_time: Optional[int] = None, rotor_index: Optional[int] = None, reactions: Optional[List[ARCReaction]] = None, queue: Optional[str] = None, attempted_queues: Optional[list] = None, scan_trsh: Optional[str] = '', shift: Optional[str] = '', trsh: Optional[Union[str, dict, list]] = None, torsions: Optional[List[List[int]]] = None, times_rerun: int = 0, tsg: Optional[int] = None, xyz: Optional[Union[dict, List[dict]]] = None)[source]¶
A helper function for running (all) jobs.
- Parameters:
job_type (str) – The type of job to run.
conformer (int, optional) – Conformer number if optimizing conformers.
cpu_cores (int, optional) – The total number of cpu cores requested for a job.
dihedral_increment (float, optional) – The degrees increment to use when scanning dihedrals of TS guesses.
dihedrals (list, optional) – The dihedral angles of a directed scan job corresponding to
torsions
.directed_scan_type (str, optional) – The type of the directed scan.
ess_trsh_methods (list, optional) – A list of troubleshooting methods already tried out for ESS convergence.
fine (bool, optional) – Whether to run an optimization job with a fine grid. True to use fine.
irc_direction (str, optional) – The direction to run the IRC computation.
job_adapter (str, optional) – An ESS software to use.
label (Union[str, List[str]], optional) – The species label, or a list of labels in case of multispecies.
level_of_theory (Level, optional) – The level of theory to use.
memory (int, optional) – The total job allocated memory in GB.
max_job_time (int, optional) – The maximal allowed job time on the server in hours.
rotor_index (int, optional) – The 0-indexed rotor number (key) in the species.rotors_dict dictionary.
reactions (List[ARCReaction], optional) – Entries are ARCReaction instances, used for TS search methods.
scan_trsh (str, optional) – A troubleshooting method for rotor scans.
shift (str, optional) – A string representation alpha- and beta-spin orbitals shifts (molpro only).
times_rerun (int, optional) – Number of times this job was re-run with the same arguments (no trsh methods).
torsions (List[List[int]], optional) – The 0-indexed atom indices of the torsion(s).
trsh (str, optional) – A troubleshooting keyword to be used in input files.
tsg (int, optional) – TSGuess number if optimizing TS guesses.
xyz (Union[dict, List[dict]], optional) – The 3D coordinates for the species.
- run_onedmin_job(label)[source]¶
Spawn a lennard-jones calculation using OneDMin.
- Parameters:
label (str) – The species label.
- run_opt_job(label: str, fine: bool = False)[source]¶
Spawn a geometry optimization job. The initial guess is taken from the initial_xyz attribute.
- Parameters:
label (str) – The species label.
fine (bool) – Whether a fine grid should be used during optimization.
- run_orbitals_job(label)[source]¶
Spawn orbitals job used for molecular orbital visualization. Currently supporting QChem for printing the orbitals, the output could be visualized using IQMol.
- Parameters:
label (str) – The species label.
- run_scan_jobs(label: str)[source]¶
Spawn rotor scan jobs using ‘final_xyz’ for species (or TS).
- Parameters:
label (str) – The species label.
- run_sp_job(label: str, level: Optional[Level] = None, conformer: Optional[int] = None)[source]¶
Spawn a single point job using ‘final_xyz’ for species ot TS ‘label’. If the method is MRCI, first spawn a simple CCSD job, and use orbital determination to run the MRCI job.
- Parameters:
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.
- run_ts_conformer_jobs(label: str)[source]¶
Spawn opt jobs at the ts_guesses level of theory for the TS guesses.
- Parameters:
label (str) – The TS species label.
- save_e_elect(label: str)[source]¶
Save the electronic energy of the corresponding species. It will append if the file already exists.
- spawn_directed_scan_jobs(label: str, rotor_index: int, xyz: Optional[str] = None)[source]¶
Spawn directed scan jobs. Directed scan types could be one of the following: ‘brute_force_sp’, ‘brute_force_opt’, ‘cont_opt’, ‘brute_force_sp_diagonal’, ‘brute_force_opt_diagonal’, or ‘cont_opt_diagonal’. Here we treat
cont
andbrute_force
separately, and also consider thediagonal
keyword. The differentiation betweensp
andopt
is done in the Job module.- Parameters:
label (str) – The species label.
rotor_index (int) – The 0-indexed rotor number (key) in the species.rotors_dict dictionary.
xyz (str, optional) – The 3D coordinates for a continuous directed scan.
- Raises:
InputError – If the species directed scan type has an unexpected value, or if
xyz
wasn’t given for a cont_opt job.SchedulerError – If the rotor scan resolution as defined in settings.py is illegal.
- spawn_post_irc_jobs(label: str, job: JobAdapter)[source]¶
Spawn additional jobs after IRC has converged.
- Parameters:
label (str) – The species label.
job (JobAdapter) – The IRC job object.
- spawn_post_opt_jobs(label: str, job_name: str)[source]¶
Spawn additional jobs after opt has converged.
- Parameters:
label (str) – The species label.
job_name (str) – The opt job name (used for differentiating between
opt
andoptfreq
jobs).
- spawn_ts_jobs()[source]¶
Check if any new reaction has all of its reactants and products optimized, and if so spawn the respective TSG jobs. Don’t spawn TS jobs if the multiplicity of the reaction could not be determined.
- switch_ts(label: str)[source]¶
Try the next optimized TS guess in line if a previous TS guess was found to be wrong.
- Parameters:
label (str) – The TS species label.
- troubleshoot_conformer_isomorphism(label: str)[source]¶
Troubleshoot conformer optimization for a species that failed isomorphic test in
determine_most_stable_conformer
.- Parameters:
label (str) – The species label.
- troubleshoot_ess(label: str, job: JobAdapter, level_of_theory: Union[Level, dict, str], conformer: Optional[int] = None)[source]¶
Troubleshoot issues related to the electronic structure software, such as conversion.
- Parameters:
label (str) – The species label.
job (JobAdapter) – The job object to troubleshoot.
level_of_theory (Level, dict, str) – The level of theory to use.
conformer (int, optional) – The conformer index.
- troubleshoot_negative_freq(label: str, job: JobAdapter)[source]¶
Troubleshooting cases where non-TS species have negative frequencies. Run newly generated conformers.
- Parameters:
label (str) – The species label.
job (JobAdapter) – The frequency job object.
- troubleshoot_opt_jobs(label)[source]¶
We’re troubleshooting for opt jobs. First check for server status and troubleshoot if needed. Then check for ESS status and troubleshoot if needed. Finally, check whether the last job had fine=True, add if it didn’t run with fine.
- Parameters:
label (str) – The species label.
- troubleshoot_scan_job(job: JobAdapter, methods: Optional[dict] = None) Tuple[bool, dict] [source]¶
Troubleshooting rotor scans Using the following methods: 1. freeze: freezing specific internal coordinates or all torsions other than the scan’s pivots 2. inc_res: increasing the scan resolution. 3. change conformer: changing to a conformer with a lower energy
- Parameters:
job (JobAdapter) – The scan Job object.
methods (dict) –
The troubleshooting method/s to try:
{'freeze': <a list of problematic internal coordinates>, 'inc_res': ``None``, 'change conformer': <a xyz dict>}
- Returns: Tuple[bool, dict]:
True
if the troubleshooting is valid.The actions are applied in the troubleshooting.
- arc.scheduler.species_has_freq(species_output_dict: dict, yml_path: Optional[str] = None) bool [source]¶
Checks whether a species has valid converged frequencies using it’s output dict.
- Parameters:
species_output_dict (dict) – The species output dict (i.e., Scheduler.output[label]).
yml_path (str) – THe species Arkane YAML file path.
- Returns: bool
Whether a species has valid converged frequencies.
- arc.scheduler.species_has_geo(species_output_dict: dict, yml_path: Optional[str] = None) bool [source]¶
Checks whether a species has a valid converged geometry using it’s output dict.
- Parameters:
species_output_dict (dict) – The species output dict (i.e., Scheduler.output[label]).
yml_path (str) – THe species Arkane YAML file path.
- Returns: bool
Whether a species has a valid converged geometry.
- arc.scheduler.species_has_sp(species_output_dict: dict, yml_path: Optional[str] = None) bool [source]¶
Checks whether a species has a valid converged single-point energy using it’s output dict.
- Parameters:
species_output_dict (dict) – The species output dict (i.e., Scheduler.output[label]).
yml_path (str) – THe species Arkane YAML file path.
- Returns: bool
Whether a species has a valid converged single-point energy.
- arc.scheduler.species_has_sp_and_freq(species_output_dict: dict, yml_path: Optional[str] = None) bool [source]¶
Checks whether a species has a valid converged single-point energy and valid converged frequencies.
- Parameters:
species_output_dict (dict) – The species output dict (i.e., Scheduler.output[label]).
yml_path (str) – THe species Arkane YAML file path.
- Returns: bool
Whether a species has a valid converged single-point energy and frequencies.