Exemple #1
0
 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)
Exemple #2
0
    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)
Exemple #4
0
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)
Exemple #6
0
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