示例#1
0
def main():
    #import m_kpoints
    #from m_kpoints import m_kpoints  as mod
    #print(m_kpoints.__doc__)
    #v1 = np.zeros(3)
    #v2 = v1 + 1.0
    #print(v1, v2)

    #ans, g0 = mod.isamek(v1, v2)
    #print(ans,g0)

    from abipy.core.kpoints import IrredZone, kmesh_from_mpdivs

    filename = "/Users/gmatteo/Coding/abipy/abipy/data/runs/data_si_ebands/outdata/si_scf_GSR.nc"
    structure = Structure.from_file(filename)

    ibz = IrredZone.from_file(filename)
    #print(ibz)

    mpdivs = [8, 8, 8]
    shifts = [0.0, 0.0, 0.0]

    #tables = map_mesh2ibz(structure, mpdivs, shifts, ibz)

    bz = kmesh_from_mpdivs(mpdivs, shifts)

    ktab = slow_map_mesh2ibz(structure, bz, ibz.frac_coords)
示例#2
0
def main():
    #import m_kpoints
    #from m_kpoints import m_kpoints  as mod
    #print(m_kpoints.__doc__)
    #v1 = np.zeros(3)
    #v2 = v1 + 1.0
    #print(v1, v2)

    #ans, g0 = mod.isamek(v1, v2)
    #print(ans,g0)

    from abipy.core.kpoints import IrredZone, kmesh_from_mpdivs

    filename = "/Users/gmatteo/Coding/abipy/abipy/data/runs/data_si_ebands/outdata/si_scf_GSR.nc"
    structure = Structure.from_file(filename)

    ibz = IrredZone.from_file(filename)
    #print(ibz)

    mpdivs = [8, 8, 8]
    shifts = [0.0, 0.0, 0.0]

    #tables = map_mesh2ibz(structure, mpdivs, shifts, ibz)

    bz = kmesh_from_mpdivs(mpdivs, shifts)

    ktab = slow_map_mesh2ibz(structure, bz, ibz.frac_coords)
示例#3
0
    def test_unshifted_kmesh(self):
        """Testing the generation of unshifted kmeshes."""
        mpdivs, shifts = [1, 2, 3], [0, 0, 0]

        # No shift, no pbc.
        kmesh = kmesh_from_mpdivs(mpdivs, shifts, order="unit_cell")

        ref_string = \
"""[[ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]]"""
        self.assertMultiLineEqual(str(kmesh), ref_string)

        # No shift, with pbc.
        pbc_kmesh = kmesh_from_mpdivs(mpdivs,
                                      shifts,
                                      pbc=True,
                                      order="unit_cell")

        ref_string = \
"""[[ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.          1.        ]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]
 [ 0.          0.5         1.        ]
 [ 0.          1.          0.        ]
 [ 0.          1.          0.33333333]
 [ 0.          1.          0.66666667]
 [ 0.          1.          1.        ]
 [ 1.          0.          0.        ]
 [ 1.          0.          0.33333333]
 [ 1.          0.          0.66666667]
 [ 1.          0.          1.        ]
 [ 1.          0.5         0.        ]
 [ 1.          0.5         0.33333333]
 [ 1.          0.5         0.66666667]
 [ 1.          0.5         1.        ]
 [ 1.          1.          0.        ]
 [ 1.          1.          0.33333333]
 [ 1.          1.          0.66666667]
 [ 1.          1.          1.        ]]"""
        self.assertMultiLineEqual(str(pbc_kmesh), ref_string)

        # No shift, no pbc, bz order
        bz_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=False, order="bz")

        ref_string = \
"""[[ 0.         -0.5        -0.33333333]
 [ 0.         -0.5         0.        ]
 [ 0.         -0.5         0.33333333]
 [ 0.          0.         -0.33333333]
 [ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]]"""
        self.assertMultiLineEqual(str(bz_kmesh), ref_string)

        # No shift, pbc, bz order
        bz_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=True, order="bz")

        ref_string = \
"""[[ 0.         -0.5        -0.33333333]
 [ 0.         -0.5         0.        ]
 [ 0.         -0.5         0.33333333]
 [ 0.         -0.5         0.66666667]
 [ 0.          0.         -0.33333333]
 [ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.5        -0.33333333]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]
 [ 1.         -0.5        -0.33333333]
 [ 1.         -0.5         0.        ]
 [ 1.         -0.5         0.33333333]
 [ 1.         -0.5         0.66666667]
 [ 1.          0.         -0.33333333]
 [ 1.          0.          0.        ]
 [ 1.          0.          0.33333333]
 [ 1.          0.          0.66666667]
 [ 1.          0.5        -0.33333333]
 [ 1.          0.5         0.        ]
 [ 1.          0.5         0.33333333]
 [ 1.          0.5         0.66666667]]"""
        self.assertMultiLineEqual(str(bz_kmesh), ref_string)
示例#4
0
    def test_unshifted_kmesh(self):
        """Testing the generation of unshifted kmeshes."""
        mpdivs, shifts = [1, 2, 3], [0, 0, 0]

        # No shift, no pbc.
        kmesh = kmesh_from_mpdivs(mpdivs, shifts, order="unit_cell")

        ref_string = """[[ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]]"""
        self.assertMultiLineEqual(str(kmesh), ref_string)

        # No shift, with pbc.
        pbc_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=True, order="unit_cell")

        ref_string = """[[ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.          1.        ]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]
 [ 0.          0.5         1.        ]
 [ 0.          1.          0.        ]
 [ 0.          1.          0.33333333]
 [ 0.          1.          0.66666667]
 [ 0.          1.          1.        ]
 [ 1.          0.          0.        ]
 [ 1.          0.          0.33333333]
 [ 1.          0.          0.66666667]
 [ 1.          0.          1.        ]
 [ 1.          0.5         0.        ]
 [ 1.          0.5         0.33333333]
 [ 1.          0.5         0.66666667]
 [ 1.          0.5         1.        ]
 [ 1.          1.          0.        ]
 [ 1.          1.          0.33333333]
 [ 1.          1.          0.66666667]
 [ 1.          1.          1.        ]]"""
        self.assertMultiLineEqual(str(pbc_kmesh), ref_string)

        # No shift, no pbc, bz order
        bz_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=False, order="bz")

        ref_string = """[[ 0.         -0.5        -0.33333333]
 [ 0.         -0.5         0.        ]
 [ 0.         -0.5         0.33333333]
 [ 0.          0.         -0.33333333]
 [ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]]"""
        self.assertMultiLineEqual(str(bz_kmesh), ref_string)

        # No shift, pbc, bz order
        bz_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=True, order="bz")

        ref_string = """[[ 0.         -0.5        -0.33333333]
 [ 0.         -0.5         0.        ]
 [ 0.         -0.5         0.33333333]
 [ 0.         -0.5         0.66666667]
 [ 0.          0.         -0.33333333]
 [ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.5        -0.33333333]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]
 [ 1.         -0.5        -0.33333333]
 [ 1.         -0.5         0.        ]
 [ 1.         -0.5         0.33333333]
 [ 1.         -0.5         0.66666667]
 [ 1.          0.         -0.33333333]
 [ 1.          0.          0.        ]
 [ 1.          0.          0.33333333]
 [ 1.          0.          0.66666667]
 [ 1.          0.5        -0.33333333]
 [ 1.          0.5         0.        ]
 [ 1.          0.5         0.33333333]
 [ 1.          0.5         0.66666667]]"""
        self.assertMultiLineEqual(str(bz_kmesh), ref_string)
示例#5
0
    def test_unshifted_kmesh(self):
        """Testing the generation of unshifted kmeshes."""
        def rm_spaces(s):
            return " ".join(s.split()).replace("[ ", "[")

        mpdivs, shifts = [1, 2, 3], [0, 0, 0]

        # No shift, no pbc.
        kmesh = kmesh_from_mpdivs(mpdivs, shifts, order="unit_cell")

        ref_string = \
"""[[ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]]"""
        self.assertMultiLineEqual(rm_spaces(str(kmesh)), rm_spaces(ref_string))

        # No shift, with pbc.
        pbc_kmesh = kmesh_from_mpdivs(mpdivs,
                                      shifts,
                                      pbc=True,
                                      order="unit_cell")

        ref_string = \
"""[[ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.          1.        ]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]
 [ 0.          0.5         1.        ]
 [ 0.          1.          0.        ]
 [ 0.          1.          0.33333333]
 [ 0.          1.          0.66666667]
 [ 0.          1.          1.        ]
 [ 1.          0.          0.        ]
 [ 1.          0.          0.33333333]
 [ 1.          0.          0.66666667]
 [ 1.          0.          1.        ]
 [ 1.          0.5         0.        ]
 [ 1.          0.5         0.33333333]
 [ 1.          0.5         0.66666667]
 [ 1.          0.5         1.        ]
 [ 1.          1.          0.        ]
 [ 1.          1.          0.33333333]
 [ 1.          1.          0.66666667]
 [ 1.          1.          1.        ]]"""
        self.assertMultiLineEqual(rm_spaces(str(pbc_kmesh)),
                                  rm_spaces(ref_string))

        # No shift, no pbc, bz order
        bz_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=False, order="bz")

        ref_string = \
"""[[ 0.         -0.5        -0.33333333]
 [ 0.         -0.5         0.        ]
 [ 0.         -0.5         0.33333333]
 [ 0.          0.         -0.33333333]
 [ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]]"""
        self.assertMultiLineEqual(rm_spaces(str(bz_kmesh)),
                                  rm_spaces(ref_string))

        # No shift, pbc, bz order
        bz_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=True, order="bz")

        ref_string = \
"""[[ 0.         -0.5        -0.33333333]
 [ 0.         -0.5         0.        ]
 [ 0.         -0.5         0.33333333]
 [ 0.         -0.5         0.66666667]
 [ 0.          0.         -0.33333333]
 [ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.5        -0.33333333]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]
 [ 1.         -0.5        -0.33333333]
 [ 1.         -0.5         0.        ]
 [ 1.         -0.5         0.33333333]
 [ 1.         -0.5         0.66666667]
 [ 1.          0.         -0.33333333]
 [ 1.          0.          0.        ]
 [ 1.          0.          0.33333333]
 [ 1.          0.          0.66666667]
 [ 1.          0.5        -0.33333333]
 [ 1.          0.5         0.        ]
 [ 1.          0.5         0.33333333]
 [ 1.          0.5         0.66666667]]"""
        self.assertMultiLineEqual(rm_spaces(str(bz_kmesh)),
                                  rm_spaces(ref_string))
示例#6
0
    def test_unshifted_kmesh(self):
        """Testing the generation of unshifted kmeshes."""
        def rm_spaces(s):
            return " ".join(s.split()).replace("[ ", "[")

        mpdivs, shifts = [1, 2, 3], [0, 0, 0]

        # No shift, no pbc.
        kmesh = kmesh_from_mpdivs(mpdivs, shifts, order="unit_cell")

        ref_string = \
"""[[ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]]"""
        self.assertMultiLineEqual(rm_spaces(str(kmesh)), rm_spaces(ref_string))

        # No shift, with pbc.
        pbc_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=True, order="unit_cell")

        ref_string = \
"""[[ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.          1.        ]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]
 [ 0.          0.5         1.        ]
 [ 0.          1.          0.        ]
 [ 0.          1.          0.33333333]
 [ 0.          1.          0.66666667]
 [ 0.          1.          1.        ]
 [ 1.          0.          0.        ]
 [ 1.          0.          0.33333333]
 [ 1.          0.          0.66666667]
 [ 1.          0.          1.        ]
 [ 1.          0.5         0.        ]
 [ 1.          0.5         0.33333333]
 [ 1.          0.5         0.66666667]
 [ 1.          0.5         1.        ]
 [ 1.          1.          0.        ]
 [ 1.          1.          0.33333333]
 [ 1.          1.          0.66666667]
 [ 1.          1.          1.        ]]"""
        self.assertMultiLineEqual(rm_spaces(str(pbc_kmesh)), rm_spaces(ref_string))

        # No shift, no pbc, bz order
        bz_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=False, order="bz")

        ref_string = \
"""[[ 0.         -0.5        -0.33333333]
 [ 0.         -0.5         0.        ]
 [ 0.         -0.5         0.33333333]
 [ 0.          0.         -0.33333333]
 [ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]]"""
        self.assertMultiLineEqual(rm_spaces(str(bz_kmesh)), rm_spaces(ref_string))

        # No shift, pbc, bz order
        bz_kmesh = kmesh_from_mpdivs(mpdivs, shifts, pbc=True, order="bz")

        ref_string = \
"""[[ 0.         -0.5        -0.33333333]
 [ 0.         -0.5         0.        ]
 [ 0.         -0.5         0.33333333]
 [ 0.         -0.5         0.66666667]
 [ 0.          0.         -0.33333333]
 [ 0.          0.          0.        ]
 [ 0.          0.          0.33333333]
 [ 0.          0.          0.66666667]
 [ 0.          0.5        -0.33333333]
 [ 0.          0.5         0.        ]
 [ 0.          0.5         0.33333333]
 [ 0.          0.5         0.66666667]
 [ 1.         -0.5        -0.33333333]
 [ 1.         -0.5         0.        ]
 [ 1.         -0.5         0.33333333]
 [ 1.         -0.5         0.66666667]
 [ 1.          0.         -0.33333333]
 [ 1.          0.          0.        ]
 [ 1.          0.          0.33333333]
 [ 1.          0.          0.66666667]
 [ 1.          0.5        -0.33333333]
 [ 1.          0.5         0.        ]
 [ 1.          0.5         0.33333333]
 [ 1.          0.5         0.66666667]]"""
        self.assertMultiLineEqual(rm_spaces(str(bz_kmesh)), rm_spaces(ref_string))