ReactionMechanismGenerator / ARC

ARC - Automatic Rate Calculator
https://reactionmechanismgenerator.github.io/ARC/index.html
MIT License
43 stars 21 forks source link

ARC fails with job_type `irc` if QChem is only available #635

Closed calvinp0 closed 1 year ago

calvinp0 commented 1 year ago

Describe the bug During an ARC run - if Gaussian is not available and the job_type is 'irc' and even if QChem is available and the method is relevant to QChem, the job will still fail.

Traceback (most recent call last):
  File "/home/calvin/mambaforge/envs/arc_env/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/calvin/mambaforge/envs/arc_env/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/calvin/.vscode-server/extensions/ms-python.python-2023.6.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/__main__.py", line 39, in <module>
    cli.main()
  File "/home/calvin/.vscode-server/extensions/ms-python.python-2023.6.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 430, in main
    run()
  File "/home/calvin/.vscode-server/extensions/ms-python.python-2023.6.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 284, in run_file
    runpy.run_path(target, run_name="__main__")
  File "/home/calvin/.vscode-server/extensions/ms-python.python-2023.6.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 322, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "/home/calvin/.vscode-server/extensions/ms-python.python-2023.6.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 136, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/home/calvin/.vscode-server/extensions/ms-python.python-2023.6.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 124, in _run_code
    exec(code, run_globals)
  File "/home/calvin/Code/ARC/ARC.py", line 69, in <module>
    main()
  File "/home/calvin/Code/ARC/ARC.py", line 65, in main
    arc_object.execute()
  File "/home/calvin/Code/ARC/arc/main.py", line 583, in execute
    fine_only=self.fine_only,
  File "/home/calvin/Code/ARC/arc/scheduler.py", line 487, in __init__
    self.schedule_jobs()
  File "/home/calvin/Code/ARC/arc/scheduler.py", line 576, in schedule_jobs
    self.spawn_post_opt_jobs(label=label, job_name=job_name)
  File "/home/calvin/Code/ARC/arc/scheduler.py", line 1395, in spawn_post_opt_jobs
    self.run_irc_job(label=label, irc_direction='forward')
  File "/home/calvin/Code/ARC/arc/scheduler.py", line 1338, in run_irc_job
    irc_direction=irc_direction,
  File "/home/calvin/Code/ARC/arc/scheduler.py", line 765, in run_job
    self.deduce_job_adapter(level=Level(repr=level_of_theory), job_type=job_type)
  File "/home/calvin/Code/ARC/arc/scheduler.py", line 847, in deduce_job_adapter
    level.deduce_software(job_type=job_type)
  File "/home/calvin/Code/ARC/arc/level.py", line 510, in deduce_software
    raise ValueError(f'Could not find Gaussian to run the {self.method}.\n'
ValueError: Could not find Gaussian to run the wb97xd.
levels_ess is:
{'cfour': ['casscf'], 'gaussian': ['apfd', 'b3lyp', 'm062x'], 'molpro': ['ccsd', 'cisd', 'vpz'], 'qchem': ['m06-2x', 'wb97xd'], 'orca': ['dlpno'], 'terachem': ['pbe'], 'xtb': ['xtb', 'gfn'], 'torchani': ['torchani'], 'openbabel': ['mmff94s', 'mmff94', 'gaff', 'uff', 'ghemical']}

How to reproduce Run on a server that has QChem available and not Gaussian

kfir4444 commented 1 year ago

@calvinp0 I think the problem is that ARC only takes that level of theory as an argument, and tries to find the software that is associated with it. In this case, the software is Gaussian. To circumvent that, try modifying your levels_ess in your setting.py to include wb97xd in qchem.

alongd commented 1 year ago

Note that wB97XD is written differently in Gaussian and in Q-Chem (so even without ARC, Q-Chem will not accept wb97xd) Here's the correct Q-Chem syntax: https://github.com/ReactionMechanismGenerator/ARC/blob/main/data/ess_methods.yml#L106