当前位置: 首页>>代码示例>>Python>>正文


Python Lattice.from_lengths_and_angles方法代码示例

本文整理汇总了Python中pymatgen.Lattice.from_lengths_and_angles方法的典型用法代码示例。如果您正苦于以下问题:Python Lattice.from_lengths_and_angles方法的具体用法?Python Lattice.from_lengths_and_angles怎么用?Python Lattice.from_lengths_and_angles使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pymatgen.Lattice的用法示例。


在下文中一共展示了Lattice.from_lengths_and_angles方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_get_lattices

# 需要导入模块: from pymatgen import Lattice [as 别名]
# 或者: from pymatgen.Lattice import from_lengths_and_angles [as 别名]
    def test_get_lattices(self):
        sm = StructureMatcher(ltol=0.2, stol=0.3, angle_tol=5,
                              primitive_cell=True, scale=True,
                              attempt_supercell=False)
        l1 = Lattice.from_lengths_and_angles([1, 2.1, 1.9], [90, 89, 91])
        l2 = Lattice.from_lengths_and_angles([1.1, 2, 2], [89, 91, 90])
        s1 = Structure(l1, [], [])
        s2 = Structure(l2, [], [])

        lattices = list(sm._get_lattices(s=s1, target_lattice=s2.lattice))
        self.assertEqual(len(lattices), 16)

        l3 = Lattice.from_lengths_and_angles([1.1, 2, 20], [89, 91, 90])
        s3 = Structure(l3, [], [])

        lattices = list(sm._get_lattices(s=s1, target_lattice=s3.lattice))
        self.assertEqual(len(lattices), 0)
开发者ID:gmatteo,项目名称:pymatgen,代码行数:19,代码来源:test_structure_matcher.py

示例2: from_string

# 需要导入模块: from pymatgen import Lattice [as 别名]
# 或者: from pymatgen.Lattice import from_lengths_and_angles [as 别名]
    def from_string(header_str):
        """
        Reads Header string and returns Header object if header was
        generated by pymatgen.
        Note: Checks to see if generated by pymatgen, if not it is impossible
            to generate structure object so it is not possible to generate
            header object and routine ends

        Args:
            header_str: pymatgen generated feff.inp header

        Returns:
            Structure object.
        """
        lines = tuple(clean_lines(header_str.split("\n"), False))
        comment1 = lines[0]
        feffpmg = comment1.find("pymatgen")

        if feffpmg:
            comment2 = ' '.join(lines[1].split()[2:])

            source = ' '.join(lines[2].split()[2:])
            basis_vec = lines[6].split(":")[-1].split()
            # a, b, c
            a = float(basis_vec[0])
            b = float(basis_vec[1])
            c = float(basis_vec[2])
            lengths = [a, b, c]
            # alpha, beta, gamma
            basis_ang = lines[7].split(":")[-1].split()
            alpha = float(basis_ang[0])
            beta = float(basis_ang[1])
            gamma = float(basis_ang[2])
            angles = [alpha, beta, gamma]

            lattice = Lattice.from_lengths_and_angles(lengths, angles)

            natoms = int(lines[8].split(":")[-1].split()[0])

            atomic_symbols = []
            for i in range(9, 9 + natoms):
                atomic_symbols.append(lines[i].split()[2])

            # read the atomic coordinates
            coords = []
            for i in range(natoms):
                toks = lines[i + 9].split()
                coords.append([float(s) for s in toks[3:]])

            struct = Structure(lattice, atomic_symbols, coords, False,
                                        False, False)

            h = Header(struct, source, comment2)

            return h
        else:
            return "Header not generated by pymatgen, cannot return header object"
开发者ID:adozier,项目名称:pymatgen,代码行数:59,代码来源:inputs.py

示例3: setUp

# 需要导入模块: from pymatgen import Lattice [as 别名]
# 或者: from pymatgen.Lattice import from_lengths_and_angles [as 别名]
 def setUp(self):
     self.cubic = Structure(
         Lattice.from_lengths_and_angles(
             [1.0, 1.0, 1.0], [90.0, 90.0, 90.0]),
         ["H"], [[0.0, 0.0, 0.0]], validate_proximity=False,
         to_unit_cell=False, coords_are_cartesian=False,
         site_properties=None)
     self.bcc = Structure(
         Lattice.from_lengths_and_angles(
             [1.0, 1.0, 1.0], [90.0, 90.0, 90.0]),
         ["H", "H"], [[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=False, site_properties=None)
     self.fcc = Structure(
         Lattice.from_lengths_and_angles(
             [1.0, 1.0, 1.0], [90.0, 90.0, 90.0]),
         ["H", "H", "H", "H"], [[0.0, 0.0, 0.0], [0.0, 0.5, 0.5],
                                [0.5, 0.0, 0.5], [0.5, 0.5, 0.0]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=False, site_properties=None)
     self.hcp = Structure(
         Lattice.from_lengths_and_angles(
             [1.0, 1.0, 1.633], [90.0, 90.0, 120.0]),
         ["H", "H"],
         [[0.3333, 0.6667, 0.25], [0.6667, 0.3333, 0.75]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=False, site_properties=None)
     self.diamond = Structure(
         Lattice.from_lengths_and_angles(
             [1.0, 1.0, 1.0], [90.0, 90.0, 90.0]),
         ["H", "H", "H", "H", "H", "H", "H", "H"],
         [[0.0, 0.0, 0.5], [0.75, 0.75, 0.75],
          [0.0, 0.5, 0.0], [0.75, 0.25, 0.25],
          [0.5, 0.0, 0.0], [0.25, 0.75, 0.25],
          [0.5, 0.5, 0.5], [0.25, 0.25, 0.75]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=False, site_properties=None)
开发者ID:Lightslayer,项目名称:pymatgen,代码行数:39,代码来源:test_structure_analyzer.py

示例4: setUp

# 需要导入模块: from pymatgen import Lattice [as 别名]
# 或者: from pymatgen.Lattice import from_lengths_and_angles [as 别名]
 def setUp(self):
     self.silicon = Structure(
             Lattice.from_lengths_and_angles(
                     [5.47, 5.47, 5.47],
                     [90.0, 90.0, 90.0]),
             ["Si", "Si", "Si", "Si", "Si", "Si", "Si", "Si"],
             [[0.000000, 0.000000, 0.500000],
             [0.750000, 0.750000, 0.750000],
             [0.000000, 0.500000, 1.000000],
             [0.750000, 0.250000, 0.250000],
             [0.500000, 0.000000, 1.000000],
             [0.250000, 0.750000, 0.250000],
             [0.500000, 0.500000, 0.500000],
             [0.250000, 0.250000, 0.750000]],
             validate_proximity=False, to_unit_cell=False,
             coords_are_cartesian=False, site_properties=None)
     self.diamond = Structure(
         Lattice([[2.189, 0, 1.264], [0.73, 2.064, 1.264],
                  [0, 0, 2.528]]), ["C0+", "C0+"], [[2.554, 1.806, 4.423],
                                                    [0.365, 0.258, 0.632]],
         validate_proximity=False,
         to_unit_cell=False, coords_are_cartesian=True,
         site_properties=None)
     self.nacl = Structure(
         Lattice([[3.485, 0, 2.012], [1.162, 3.286, 2.012],
                  [0, 0, 4.025]]), ["Na1+", "Cl1-"], [[0, 0, 0],
                                                      [2.324, 1.643, 4.025]],
         validate_proximity=False,
         to_unit_cell=False, coords_are_cartesian=True,
         site_properties=None)
     self.cscl = Structure(
         Lattice([[4.209, 0, 0], [0, 4.209, 0], [0, 0, 4.209]]),
         ["Cl1-", "Cs1+"], [[2.105, 2.105, 2.105], [0, 0, 0]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=True, site_properties=None)
     self.square_pyramid = Structure(
         Lattice([[100, 0, 0], [0, 100, 0], [0, 0, 100]]),
         ["C", "C", "C", "C", "C", "C"], [
         [0, 0, 0], [1, 0, 0], [-1, 0, 0], [0, 1, 0], [0, -1, 0], \
         [0, 0, 1]], validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=True, site_properties=None)
     self.trigonal_bipyramid = Structure(
         Lattice([[100, 0, 0], [0, 100, 0], [0, 0, 100]]),
         ["P", "Cl", "Cl", "Cl", "Cl", "Cl"], [
         [0, 0, 0], [0, 0, 2.14], [0, 2.02, 0], [1.74937, -1.01, 0], \
         [-1.74937, -1.01, 0], [0, 0, -2.14]], validate_proximity=False,
         to_unit_cell=False, coords_are_cartesian=True,
         site_properties=None)
开发者ID:mbkumar,项目名称:pymatgen,代码行数:50,代码来源:test_local_env.py

示例5: setUp

# 需要导入模块: from pymatgen import Lattice [as 别名]
# 或者: from pymatgen.Lattice import from_lengths_and_angles [as 别名]
 def setUp(self):
     self.single_bond = Structure(
         Lattice.from_lengths_and_angles(
         [10, 10, 10], [90, 90, 90]),
         ["H", "H", "H"], [[1, 0, 0], [0, 0, 0], [6, 0, 0]],
         validate_proximity=False,
         to_unit_cell=False, coords_are_cartesian=True,
         site_properties=None)
     self.linear = Structure(
         Lattice.from_lengths_and_angles(
         [10, 10, 10], [90, 90, 90]),
         ["H", "H", "H"], [[1, 0, 0], [0, 0, 0], [2, 0, 0]],
         validate_proximity=False,
         to_unit_cell=False, coords_are_cartesian=True,
         site_properties=None)
     self.bent45 = Structure(
         Lattice.from_lengths_and_angles(
         [10, 10, 10], [90, 90, 90]), ["H", "H", "H"],
         [[0, 0, 0], [0.707, 0.707, 0], [0.707, 0, 0]],
         validate_proximity=False,
         to_unit_cell=False, coords_are_cartesian=True,
         site_properties=None)
     self.cubic = Structure(
         Lattice.from_lengths_and_angles(
         [1, 1, 1], [90, 90, 90]),
         ["H"], [[0, 0, 0]], validate_proximity=False,
         to_unit_cell=False, coords_are_cartesian=False,
         site_properties=None)
     self.bcc = Structure(
         Lattice.from_lengths_and_angles(
         [1, 1, 1], [90, 90, 90]),
         ["H", "H"], [[0, 0, 0], [0.5, 0.5, 0.5]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=False, site_properties=None)
     self.fcc = Structure(
         Lattice.from_lengths_and_angles(
         [1, 1, 1], [90, 90, 90]), ["H", "H", "H", "H"],
         [[0, 0, 0], [0, 0.5, 0.5], [0.5, 0, 0.5], [0.5, 0.5, 0]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=False, site_properties=None)
     self.hcp = Structure(
         Lattice.from_lengths_and_angles(
         [1, 1, 1.633], [90, 90, 120]), ["H", "H"],
         [[0.3333, 0.6667, 0.25], [0.6667, 0.3333, 0.75]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=False, site_properties=None)
     self.diamond = Structure(
         Lattice.from_lengths_and_angles(
         [1, 1, 1], [90, 90, 90]), ["H", "H", "H", "H", "H", "H", "H", "H"],
         [[0, 0, 0.5], [0.75, 0.75, 0.75], [0, 0.5, 0], [0.75, 0.25, 0.25],
         [0.5, 0, 0], [0.25, 0.75, 0.25], [0.5, 0.5, 0.5],
         [0.25, 0.25, 0.75]], validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=False, site_properties=None)
     self.trigonal_off_plane = Structure(
         Lattice.from_lengths_and_angles(
         [100, 100, 100], [90, 90, 90]),
         ["H", "H", "H", "H"],
         [[0.50, 0.50, 0.50], [0.25, 0.75, 0.25], \
         [0.25, 0.25, 0.75], [0.75, 0.25, 0.25]], \
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=True, site_properties=None)
     self.regular_triangle = Structure(
         Lattice.from_lengths_and_angles(
         [30, 30, 30], [90, 90, 90]), ["H", "H", "H", "H"],
         [[15, 15.28867, 15.65], [14.5, 15, 15], [15.5, 15, 15], \
         [15, 15.866, 15]], validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=True, site_properties=None)
     self.trigonal_planar = Structure(
         Lattice.from_lengths_and_angles(
         [30, 30, 30], [90, 90, 90]), ["H", "H", "H", "H"],
         [[15, 15.28867, 15], [14.5, 15, 15], [15.5, 15, 15], \
         [15, 15.866, 15]], validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=True, site_properties=None)
     self.square_planar = Structure(
         Lattice.from_lengths_and_angles(
         [30, 30, 30], [90, 90, 90]), ["H", "H", "H", "H", "H"],
         [[15, 15, 15], [14.75, 14.75, 15], [14.75, 15.25, 15], \
         [15.25, 14.75, 15], [15.25, 15.25, 15]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=True, site_properties=None)
     self.square = Structure(
         Lattice.from_lengths_and_angles(
         [30, 30, 30], [90, 90, 90]), ["H", "H", "H", "H", "H"],
         [[15, 15, 15.707], [14.75, 14.75, 15], [14.75, 15.25, 15], \
         [15.25, 14.75, 15], [15.25, 15.25, 15]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=True, site_properties=None)
     self.T_shape = Structure(
         Lattice.from_lengths_and_angles(
         [30, 30, 30], [90, 90, 90]), ["H", "H", "H", "H"],
         [[15, 15, 15], [15, 15, 15.5], [15, 15.5, 15],
         [15, 14.5, 15]],
         validate_proximity=False, to_unit_cell=False,
         coords_are_cartesian=True, site_properties=None)
     self.square_pyramid = Structure(
         Lattice.from_lengths_and_angles(
         [30, 30, 30], [90, 90, 90]), ["H", "H", "H", "H", "H", "H"],
         [[15, 15, 15], [15, 15, 15.3535], [14.75, 14.75, 15],
         [14.75, 15.25, 15], [15.25, 14.75, 15], [15.25, 15.25, 15]],
         validate_proximity=False, to_unit_cell=False,
#.........这里部分代码省略.........
开发者ID:setten,项目名称:pymatgen,代码行数:103,代码来源:test_structure_analyzer.py

示例6: _parse

# 需要导入模块: from pymatgen import Lattice [as 别名]
# 或者: from pymatgen.Lattice import from_lengths_and_angles [as 别名]

#.........这里部分代码省略.........
            if not geom_for_wf:
                # STOP case, add TESTGEOM to d12
                raise ValueError("GEOMETRY FOR WAVEFUNCTION NOT FOUND.\n"
                                 "Please, add TESTGEOM in the d12 input file.")

            # read until calculation start
            # read starting geometry and look for PRIMITIVE or CRYSTALLOGRAPHIC
            read_geom = False
            while "CRYSTAL - SCF - TYPE OF CALCULATION" not in line:
                line = f.readline()

                if line == "":
                    raise ValueError("End of file.")

                # search PRIMITIVE CELL
                if re.match(r"^\sPRIMITIVE CELL", line):
                    read_geom = True
                    geom_patt = re.compile(r"^\sPRIMITIVE CELL")

                # search CRYSTALLOGRAPHIC CELL if exist
                if re.match(r"^\sCRYSTALLOGRAPHIC CELL", line):
                    read_geom = True
                    geom_patt = re.compile(r"^\sCRYSTALLOGRAPHIC CELL")

                if read_geom:
                    if not self.slab and not self.nanotube:
                        volume = float(line.split("=")[1].split()[0].strip(")"))
                        self.volumes.append(volume)
                    f.readline()

                    # lattice parameters
                    line = f.readline()
                    params = [float(val) for val in re.findall(r"\d+\.\d+", line)]
                    lattice = Lattice.from_lengths_and_angles(params[0:3], params[3:])

                    # step on for 4 lines
                    [f.readline() for _ in range(4)]

                    # read coordinates
                    species = list()    # atom names
                    uniq = list()   # True if atom belong to the asymmetric unit
                    radius = list()  # distance from the axes of the nanotube
                    coords = list()
                    while line != "\n":
                        read = False
                        line = f.readline()
                        if self.nanotube and coord_nanotube_patt.match(line):
                            data = coord_nanotube_patt.match(line).groupdict()
                            read = True
                        elif coord_patt.match(line):
                            data = coord_patt.match(line).groupdict()
                            read = True

                        if read:
                            specie = data["specie"]
                            specie = specie if len(specie) == 1 else specie[0] + specie[1].lower()
                            species.append(specie)
                            coord = [float(data[k]) for k in "xyz"]
                            uniq.append(True if data["aunit"] == "T" else False)

                            if self.slab:
                                coord[2] /= lattice.c
                            elif self.nanotube:
                                coord[1] /= lattice.b
                                coord[2] /= lattice.c
                                radius.append(float(data["radius"]))
开发者ID:gVallverdu,项目名称:myScripts,代码行数:70,代码来源:crystalio.py


注:本文中的pymatgen.Lattice.from_lengths_and_angles方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。