Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def compute(self, input_data: "AtomicInput", config: "TaskConfig") -> "AtomicResult":
self.ncalls += 1
mode = self.iter_modes.pop(0)
geom = input_data.molecule.geometry
if geom.shape[0] != 2:
raise ValueError("Failure Test must have an input size of two.")
grad_value = np.abs(np.linalg.norm(geom[0] - geom[1]) - self.equilibrium_distance)
grad = [0, 0, -grad_value, 0, 0, grad_value]
if mode == "pass":
return qcel.models.AtomicResult(
**{
**input_data.dict(),
**{
"properties": {"return_energy": grad_value},
"return_result": grad,
"success": True,
"extras": {"ncalls": self.ncalls},
"provenance": {"creator": "failure_engine", "ncores": config.ncores},
},
}
)
elif mode == "random_error":
raise qcng.exceptions.RandomError("Whoops!")
elif mode == "input_error":
raise qcng.exceptions.InputError("Whoops!")
else:
if input_model.model.method.lower() in _mp2_methods:
properties["mp2_total_energy"] = properties["return_energy"]
# Correct CCSD because its odd?
# if input_model.model.method.lower() == "ccsd":
# m1 = re.findall(" CCSD correlation energy.+=.+\d+\.\d+", outfiles["dispatch.out"])
# m2 = re.findall(" CCSD total energy.+=.+\d+\.\d+", outfiles["dispatch.out"])
props, prov = self._parse_logfile_common(outtext, input_model.dict())
output_data["provenance"] = prov
output_data["properties"] = properties
output_data["properties"].update(props)
output_data["stdout"] = outfiles["dispatch.out"]
output_data["success"] = True
return AtomicResult(**{**input_model.dict(), **output_data})
if hessian is not None:
qcvars["CURRENT HESSIAN"] = hessian
retres = qcvars[f"CURRENT {input_model.driver.upper()}"]
if isinstance(retres, Decimal):
retres = float(retres)
output_data = input_model.dict()
output_data["extras"]["outfiles"] = outfiles
output_data["properties"] = {}
output_data["provenance"] = Provenance(creator="Turbomole", version=self.get_version(), routine="turbomole")
output_data["return_result"] = retres
output_data["stdout"] = stdout
output_data["success"] = True
return AtomicResult(**output_data)
output_data = input_model.dict()
# Determining return_result
if input_model.driver == "energy":
output_data["return_result"] = final_energy
elif input_model.driver == "gradient":
output_data["return_result"] = properties.pop("gradient")
# Final output_data assignments needed for the AtomicResult object
output_data["properties"] = properties
output_data["extras"].update(extras)
output_data["schema_name"] = "qcschema_output"
output_data["stdout"] = outfiles["dispatch.out"]
output_data["success"] = True
return AtomicResult(**output_data)
"schema_version": 1,
"extras": {"outfiles": outfiles},
"properties": {},
"provenance": Provenance(creator="CFOUR", version=self.get_version(), routine="xcfour"),
"return_result": retres,
"stdout": stdout,
}
# got to even out who needs plump/flat/Decimal/float/ndarray/list
# Decimal --> str preserves precision
output_data["extras"]["qcvars"] = {
k.upper(): str(v) if isinstance(v, Decimal) else v for k, v in qcel.util.unnp(qcvars, flat=True).items()
}
output_data["success"] = True
return AtomicResult(**{**input_model.dict(), **output_data})
retres = retres.ravel().tolist()
output_data = {
"extras": input_model.extras,
"properties": {},
"provenance": Provenance(
creator="MP2D", version=self.get_version(), routine=__name__ + "." + sys._getframe().f_code.co_name
),
"return_result": retres,
"stdout": stdout,
}
output_data["extras"]["local_keywords"] = input_model.extras["info"]
output_data["extras"]["qcvars"] = calcinfo
output_data["success"] = True
return AtomicResult(**{**input_model.dict(), **output_data})
"extras": {"outfiles": outfiles, **input_model.extras},
"properties": atprop,
"provenance": Provenance(creator="NWChem", version=self.get_version(), routine="nwchem"),
"return_result": retres,
"stderr": stderr,
"stdout": stdout,
"success": True,
}
# got to even out who needs plump/flat/Decimal/float/ndarray/list
# Decimal --> str preserves precision
output_data["extras"]["qcvars"] = {
k.upper(): str(v) if isinstance(v, Decimal) else v for k, v in unnp(qcvars, flat=True).items()
}
return AtomicResult(**{**input_model.dict(), **output_data})