def test_xas_wflow_abatom_by_symbol(self): wf_prim = get_wf_xas("O", self.structure, feff_input_set="XANES", edge="K", use_primitive=True, user_tag_settings=self.user_tag_settings) wf = get_wf_xas("O", self.structure, feff_input_set="XANES", edge="K", use_primitive=False, user_tag_settings=self.user_tag_settings) self.assertEqual(len(wf_prim.as_dict()["fws"]), 1) self.assertEqual(len(wf.as_dict()["fws"]), 1)
def test_xanes_vs_exafs(self): wf_xanes = get_wf_xas(self.absorbing_atom, self.structure, feff_input_set="XANES", edge="K", user_tag_settings=self.user_tag_settings) wf_exafs = get_wf_xas(self.absorbing_atom, self.structure, feff_input_set="EXAFS", edge="K") self.assertEqual(wf_xanes.as_dict()["fws"][0]["spec"]['_tasks'][0]['feff_input_set']['@class'], 'MPXANESSet') self.assertEqual(wf_exafs.as_dict()["fws"][0]["spec"]['_tasks'][0]['feff_input_set']['@class'], 'MPEXAFSSet')
def test_xas_wflow_abatom_by_idx(self): if not FEFF_CMD: # fake run xmu_file_path = os.path.abspath( os.path.join(module_dir, "../../test_files/xmu.dat")) feff_bin = "cp {} .".format(xmu_file_path) else: feff_bin = FEFF_CMD wf = get_wf_xas(self.absorbing_atom, self.structure, feff_input_set="XANES", edge="K", feff_cmd=feff_bin, db_file=">>db_file<<", use_primitive=False, user_tag_settings=self.user_tag_settings) self.assertEqual(len(wf.as_dict()["fws"]), 1) self.lp.add_wf(wf) # run rapidfire( self.lp, fworker=FWorker(env={"db_file": os.path.join(db_dir, "db.json")})) d = self.get_task_collection().find_one({"spectrum_type": "XANES"}) self._check_run(d)
def wf_Xanes_K_edge(structure, c=None): c = c or {} feff_cmd = c.get("FEFF_CMD", "feff_mpi") db_file = c.get("DB_FILE", None) metadata = c.get("METADATA", {}) absorbing_atom = c.get("ABSORBING_ATOM") user_tag_settings = { "RPATH": -1, "SCF": "7 0 30 0.2 3", "FMS": "9 0", "LDOS": "-30.0 30.0 0.1", "RECIPROCAL": "", "EDGE": "K", "COREHOLE": "RPA" } metadata.update({"absorbing_atom_idx": str(absorbing_atom)}) wf = get_wf_xas(absorbing_atom, structure, edge="K", feff_cmd=feff_cmd, db_file=db_file, metadata=metadata, user_tag_settings=user_tag_settings, use_primitive=False) return wf
def test_xas_wflow_abatom_by_idx(self): if not FEFF_CMD: # fake run xmu_file_path = os.path.abspath(os.path.join(module_dir, "../../test_files/xmu.dat")) feff_bin = "cp {} .".format(xmu_file_path) else: feff_bin = FEFF_CMD wf = get_wf_xas(self.absorbing_atom, self.structure, feff_input_set="XANES", edge="K", feff_cmd=feff_bin, db_file=">>db_file<<", use_primitive=False, user_tag_settings=self.user_tag_settings) self.assertEqual(len(wf.as_dict()["fws"]), 1) self.lp.add_wf(wf) # run rapidfire(self.lp, fworker=FWorker(env={"db_file": os.path.join(db_dir, "db.json")})) d = self.get_task_collection().find_one({"spectrum_type": "XANES"}) self._check_run(d)
def wf_Xanes_K_edge(structure, c=None): c = c or {} feff_cmd = c.get("FEFF_CMD", "feff_mpi") db_file = c.get("DB_FILE", None) metadata = c.get("METADATA", {}) absorbing_atom = c.get("ABSORBING_ATOM") user_tag_settings = {"RPATH": -1, "SCF": "7 0 30 0.2 3", "FMS": "9 0", "LDOS": "-30.0 30.0 0.1", "RECIPROCAL": "", "EDGE": "K", "COREHOLE": "RPA"} metadata.update({"absorbing_atom_idx": str(absorbing_atom)}) wf = get_wf_xas(absorbing_atom, structure, edge="K", feff_cmd=feff_cmd, db_file=db_file, metadata=metadata, user_tag_settings=user_tag_settings, use_primitive=False) return wf