Esempio n. 1
0
    def tags(self):
        """
        FEFF job parameters.

        Returns:
            Tags
        """
        if "RECIPROCAL" in self.config_dict:
            if self.small_system:
                self.config_dict["CIF"] = "{}.cif".format(
                    self.structure.formula.replace(" ", ""))
                self.config_dict["TARGET"] = self.atoms.center_index + 1
                self.config_dict["COREHOLE"] = "RPA"
                logger.warning("Setting COREHOLE = RPA for K-space calculation")
                if not self.config_dict.get("KMESH", None):
                    abc = self.structure.lattice.abc
                    mult = (self.nkpts * abc[0] * abc[1] * abc[2]) ** (1 / 3)
                    self.config_dict["KMESH"] = [int(round(mult / l)) for l in abc]
            else:
                logger.warning("Large system(>=14 atoms), removing K-space settings")
                del self.config_dict["RECIPROCAL"]
                self.config_dict.pop("CIF", None)
                self.config_dict.pop("TARGET", None)
                self.config_dict.pop("KMESH", None)
                self.config_dict.pop("STRFAC", None)

        return Tags(self.config_dict)
Esempio n. 2
0
 def test_diff(self):
     filepath1 = os.path.join(PymatgenTest.TEST_FILES_DIR, "PARAMETERS")
     parameters1 = Tags.from_file(filepath1)
     filepath2 = os.path.join(PymatgenTest.TEST_FILES_DIR, "PARAMETERS.2")
     parameters2 = Tags.from_file(filepath2)
     self.assertEqual(
         Tags(parameters1).diff(parameters2),
         {
             "Different": {},
             "Same": {
                 "CONTROL": [1, 1, 1, 1, 1, 1],
                 "MPSE": [2],
                 "OPCONS": "",
                 "SCF": [6.0, 0, 30, 0.2, 1],
                 "EXCHANGE": [0, 0.0, 0.0, 2],
                 "S02": [0.0],
                 "COREHOLE": "Fsr",
                 "FMS": [8.5, 0],
                 "XANES": [3.7, 0.04, 0.1],
                 "EDGE": "K",
                 "PRINT": [1, 0, 0, 0, 0, 0],
                 "LDOS": [-30.0, 15.0, 0.1],
             },
         },
     )
Esempio n. 3
0
    def tags(self):
        """
        FEFF job parameters.

        Returns:
            Tags
        """
        return Tags(self.config_dict)
Esempio n. 4
0
 def test_diff(self):
     filepath1 = os.path.join(test_dir, 'PARAMETERS')
     parameters1 = Tags.from_file(filepath1)
     filepath2 = os.path.join(test_dir, 'PARAMETERS.2')
     parameters2 = Tags.from_file(filepath2)
     self.assertEqual(Tags(parameters1).diff(parameters2),
                      {'Different': {},
                       'Same': {'CONTROL': [1, 1, 1, 1, 1, 1],
                                'MPSE': [2],
                                'OPCONS': '',
                                'SCF': [6.0, 0, 30, .2, 1],
                                'EXCHANGE': [0, 0.0, 0.0, 2],
                                'S02': [0.0],
                                'COREHOLE': 'Fsr',
                                'FMS': [8.5, 0],
                                'XANES': [3.7, 0.04, 0.1],
                                'EDGE': 'K',
                                'PRINT': [1, 0, 0, 0, 0, 0],
                                'LDOS': [-30., 15., .1]}})
Esempio n. 5
0
 def init_tags(self):
     self._tags = Tags().from_file(filename=self.path_to_src_feff_input)
Esempio n. 6
0
        ],
        coords_are_cartesian=False,
        tol=1e-9,
    )
    print(zno_structure)
    print(zno_structure.get_space_group_info())
    out_file_name = '/home/yugin/PycharmProjects/neurons/data/src/feff.inp.new2'
    file_name = '/home/yugin/PycharmProjects/neurons/data/src/feff.inp.old'
    atoms_obj = Atoms(zno_structure, 'O', 12)
    pprint(atoms_obj.struct.cart_coords)
    pprint(atoms_obj.get_lines())

    header_obj = Header(struct=zno_structure)
    pot_obj = Potential(zno_structure, 'O')


    tags_obj = Tags().from_file(filename=file_name)
    pprint(tags_obj.as_dict())

    pot_obj.pot_string_from_file(filename=file_name)
    pprint(pot_obj)
    atoms_obj.atoms_string_from_file(filename=file_name)
    pprint(atoms_obj.as_dict())

    header_obj.write_file(out_file_name)
    tags_obj.write_file(out_file_name)
    pot_obj.write_file(out_file_name)
    atoms_obj.write_file(out_file_name)
    # paths_obj = Paths()
    # header_obj.from_file(file_name)
    print()