Skip to content

Commit

Permalink
Define conformer_sp_level
Browse files Browse the repository at this point in the history
  • Loading branch information
JintaoWu98 committed Sep 15, 2024
1 parent 0e64c33 commit 352631f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
11 changes: 11 additions & 0 deletions arc/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ class ARC(object):
composite_method (str, dict, Level, optional): Composite method.
conformer_level (str, dict, Level, optional): Level of theory for conformer searches.
conformer_opt_level (str, dict, Level, optional): Level of theory for conformer searches, interchangable with `conformer_level`.
conformer_sp_level (str, dict, Level, optional): Level of theory for conformer sp jobs after opt.
opt_level (str, dict, Level, optional): Level of theory for geometry optimization.
freq_level (str, dict, Level, optional): Level of theory for frequency calculations.
sp_level (str, dict, Level, optional): Level of theory for single point calculations.
Expand Down Expand Up @@ -169,6 +170,7 @@ class ARC(object):
level_of_theory (str): A shortcut representing either sp//geometry levels or a composite method.
composite_method (Level): Composite method.
conformer_opt_level (Level): Level of theory for conformer searches.
conformer_sp_level (str, dict, Level, optional): Level of theory for conformer sp jobs after opt.
opt_level (Level): Level of theory for geometry optimization.
freq_level (Level): Level of theory for frequency calculations.
sp_level (Level): Level of theory for single point calculations.
Expand Down Expand Up @@ -247,6 +249,7 @@ def __init__(self,
compute_transport: bool = False,
conformer_level: Optional[Union[str, dict, Level]] = None,
conformer_opt_level: Optional[Union[str, dict, Level]] = None,
conformer_sp_level: Optional[Union[str, dict, Level]] = None,
dont_gen_confs: List[str] = None,
e_confs: float = 5.0,
ess_settings: Dict[str, Union[str, List[str]]] = None,
Expand Down Expand Up @@ -349,6 +352,7 @@ def __init__(self,
self.level_of_theory = level_of_theory
self.composite_method = composite_method or None
self.conformer_opt_level = conformer_level or conformer_opt_level or None
self.conformer_sp_level = conformer_sp_level or None
self.opt_level = opt_level or None
self.freq_level = freq_level or None
self.sp_level = sp_level or None
Expand Down Expand Up @@ -493,6 +497,8 @@ def as_dict(self) -> dict:
restart_dict['compute_transport'] = self.compute_transport
if self.conformer_opt_level is not None:
restart_dict['conformer_opt_level'] = self.conformer_opt_level.as_dict()
if self.conformer_sp_level is not None:
restart_dict['conformer_sp_level'] = self.conformer_sp_level.as_dict()
if self.dont_gen_confs:
restart_dict['dont_gen_confs'] = self.dont_gen_confs
if self.ts_adapters is not None:
Expand Down Expand Up @@ -611,6 +617,7 @@ def execute(self) -> dict:
rxn_list=self.reactions,
composite_method=self.composite_method,
conformer_opt_level=self.conformer_opt_level,
conformer_sp_level=self.conformer_sp_level,
opt_level=self.opt_level,
freq_level=self.freq_level,
sp_level=self.sp_level,
Expand Down Expand Up @@ -985,6 +992,10 @@ def set_levels_of_theory(self):
self.conformer_opt_level = Level(repr=self.conformer_opt_level)
logger.info(f'Conformers opt:{default_flag} {self.conformer_opt_level}')

if self.conformer_sp_level is not None:
self.conformer_sp_level = Level(repr=self.conformer_sp_level)
logger.info(f'Conformers sp: {self.conformer_sp_level}')

if self.reactions or any([spc.is_ts for spc in self.species]):
if not self.ts_guess_level:
self.ts_guess_level = default_levels_of_theory['ts_guesses']
Expand Down
4 changes: 4 additions & 0 deletions arc/scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ class Scheduler(object):
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.
Expand Down Expand Up @@ -203,6 +204,7 @@ class Scheduler(object):
Allowed values are He, Ne, Ar, Kr, H2, N2, O2.
composite_method (str): A composite method to use.
conformer_opt_level (dict): The level of theory to use for conformer comparisons.
conformer_sp_level (dict): The level of theory to use for conformer sp jobs.
opt_level (dict): The level of theory to use for geometry optimizations.
freq_level (dict): The level of theory to use for frequency calculations.
sp_level (dict): The level of theory to use for single point energy calculations.
Expand Down Expand Up @@ -231,6 +233,7 @@ def __init__(self,
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,
Expand Down Expand Up @@ -311,6 +314,7 @@ def __init__(self,
self.servers = list()
self.composite_method = composite_method
self.conformer_opt_level = conformer_opt_level
self.conformer_sp_level = conformer_sp_level
self.ts_guess_level = ts_guess_level
self.opt_level = opt_level
self.freq_level = freq_level
Expand Down

0 comments on commit 352631f

Please sign in to comment.