def _modify_qchem_according_to_version(cls, qchem_cmd): cmd2 = copy.deepcopy(qchem_cmd) try: from rubicon.utils.qchem_info import get_qchem_version cur_version = get_qchem_version() except: cur_version = parse_version("4.3.0") if cmd2 is not None: if cur_version >= parse_version("4.3.0"): if cmd2[0] == "qchem": if "-seq" in cmd2: cmd2.remove("-seq") if "NERSC_HOST" in os.environ and \ os.environ["NERSC_HOST"] in ["cori", "edison"]: if "-dbg" not in cmd2: cmd2.insert(1, "-dbg") if "-seq" in cmd2: cmd2.remove("-seq") elif "NERSC_HOST" in os.environ and \ os.environ["NERSC_HOST"] == "matgen": if "-dbg" not in cmd2: cmd2.insert(1, "-dbg") if "-seq" in cmd2: cmd2.remove("-seq") else: if "-dbg" in cmd2: cmd2.remove("-dbg") if "-pbs" in cmd2: cmd2.remove("-pbs") return cmd2
def is_openmp_compatible(qcinp): for j in qcinp.jobs: if j.params["rem"]["jobtype"] == "freq": return False try: from rubicon.utils.qchem_info import get_qchem_version cur_version = get_qchem_version() except: cur_version = parse_version("4.3.0") if cur_version < parse_version("4.3.0"): if j.params["rem"]["exchange"] in ["pbe", "b"] \ and "correlation" in j.params['rem'] \ and j.params["rem"]["correlation"] in ["pbe", "lyp"]: return False return True
def _modify_qchem_according_to_version(cls, qchem_cmd): cmd2 = copy.deepcopy(qchem_cmd) try: from rubicon.utils.qchem_info import get_qchem_version cur_version = get_qchem_version() except: cur_version = "4.3.0" if cur_version >= parse_version("4.3.0"): if cmd2[0] == "qchem": if "-dbg" not in cmd2: cmd2.insert(1, "-dbg") if "-seq" in cmd2: cmd2.remove("-seq") if "PBS_JOBID" in os.environ and \ ("hopque" in os.environ["PBS_JOBID"] or "edique" in os.environ["PBS_JOBID"]): if "-pbs" not in cmd2: cmd2.insert(2, "-pbs") else: if "-dbg" in cmd2: cmd2.remove("-dbg") if "-pbs" in cmd2: cmd2.remove("-pbs") return cmd2