コード例 #1
0
 def _set_triplets(self):
     if self._is_nosym:
         if self._log_level:
             print "Triplets at q without considering symmetry"
             sys.stdout.flush()
         
         (self._triplets_at_q,
          self._weights_at_q,
          self._grid_address,
          self._bz_map,
          map_triplets,
          map_q) = get_nosym_triplets_at_q(
              self._grid_point,
              self._mesh,
              self._reciprocal_lattice,
              with_bz_map=True)
     else:
         (self._triplets_at_q,
          self._weights_at_q,
          self._grid_address,
          self._bz_map,
          map_triplets,
          map_q) = get_triplets_at_q(
              self._grid_point,
              self._mesh,
              self._symmetry.get_pointgroup_operations(),
              self._reciprocal_lattice)
コード例 #2
0
ファイル: jointDOS.py プロジェクト: Johnson-Wang/phonopy
    def _set_triplets(self):
        primitive_lattice  = self._primitive.get_cell()
        if self._is_nosym:
            if self._log_level:
                print "Triplets at q without considering symmetry"
                sys.stdout.flush()

            (self._triplets_at_q,
             self._weights_at_q,
             self._grid_address,
             self._bz_map,
             map_triplets,
             map_q) = get_nosym_triplets_at_q(
                 self._grid_point,
                 self._mesh,
                 primitive_lattice)
        else:
            (self._triplets_at_q,
             self._weights_at_q,
             self._grid_address,
             self._bz_map,
             map_q) = get_triplets_at_q(
                 self._grid_point,
                 self._mesh,
                 self._symmetry.get_pointgroup_operations(),
                 primitive_lattice)
コード例 #3
0
 def _set_triplets(self):
     if not self._is_mesh_symmetry:
         if self._log_level:
             print("Triplets at q without considering symmetry")
             sys.stdout.flush()
         
         (self._triplets_at_q,
          self._weights_at_q,
          self._grid_address,
          self._bz_map,
          map_triplets,
          map_q) = get_nosym_triplets_at_q(
              self._grid_point,
              self._mesh,
              self._reciprocal_lattice,
              with_bz_map=True)
     else:
         (self._triplets_at_q,
          self._weights_at_q,
          self._grid_address,
          self._bz_map,
          map_triplets,
          map_q) = get_triplets_at_q(
              self._grid_point,
              self._mesh,
              self._symmetry.get_pointgroup_operations(),
              self._reciprocal_lattice)
コード例 #4
0
ファイル: interaction.py プロジェクト: chueter/phonopy
    def set_grid_point(self, grid_point, stores_triplets_map=False):
        reciprocal_lattice = np.linalg.inv(self._primitive.get_cell())
        if not self._is_mesh_symmetry:
            (triplets_at_q,
             weights_at_q,
             grid_address,
             bz_map,
             triplets_map_at_q,
             ir_map_at_q) = get_nosym_triplets_at_q(
                 grid_point,
                 self._mesh,
                 reciprocal_lattice,
                 stores_triplets_map=stores_triplets_map)
        else:
            (triplets_at_q,
             weights_at_q,
             grid_address,
             bz_map,
             triplets_map_at_q,
             ir_map_at_q)= get_triplets_at_q(
                 grid_point,
                 self._mesh,
                 self._symmetry.get_pointgroup_operations(),
                 reciprocal_lattice,
                 stores_triplets_map=stores_triplets_map)

        for triplet in triplets_at_q:
            sum_q = (grid_address[triplet]).sum(axis=0)
            if (sum_q % self._mesh != 0).any():
                print("============= Warning ==================")
                print("%s" % triplet)
                for tp in triplet:
                    print("%s %s" %
                          (grid_address[tp],
                           np.linalg.norm(
                               np.dot(reciprocal_lattice,
                                      grid_address[tp] /
                                      self._mesh.astype('double')))))
                print("%s" % sum_q)
                print("============= Warning ==================")

        self._grid_point = grid_point
        self._triplets_at_q = triplets_at_q
        self._weights_at_q = weights_at_q
        self._triplets_map_at_q = triplets_map_at_q
        self._grid_address = grid_address
        self._bz_map = bz_map
        self._ir_map_at_q = ir_map_at_q
        self.set_phonons(self._triplets_at_q.ravel())
コード例 #5
0
ファイル: interaction.py プロジェクト: Maofei/phonopy
    def set_grid_point(self, grid_point, stores_triplets_map=False):
        reciprocal_lattice = np.linalg.inv(self._primitive.get_cell())
        if self._is_nosym:
            (triplets_at_q,
             weights_at_q,
             grid_address,
             bz_map,
             triplets_map_at_q,
             ir_map_at_q) = get_nosym_triplets_at_q(
                 grid_point,
                 self._mesh,
                 reciprocal_lattice,
                 stores_triplets_map=stores_triplets_map)
        else:
            (triplets_at_q,
             weights_at_q,
             grid_address,
             bz_map,
             triplets_map_at_q,
             ir_map_at_q)= get_triplets_at_q(
                 grid_point,
                 self._mesh,
                 self._symmetry.get_pointgroup_operations(),
                 reciprocal_lattice,
                 stores_triplets_map=stores_triplets_map)

        for triplet in triplets_at_q:
            sum_q = (grid_address[triplet]).sum(axis=0)
            if (sum_q % self._mesh != 0).any():
                print "============= Warning =================="
                print triplet
                for tp in triplet:
                    print grid_address[tp],
                    print np.linalg.norm(
                        np.dot(reciprocal_lattice,
                               grid_address[tp] / self._mesh))
                print sum_q
                print "============= Warning =================="

        self._triplets_at_q = triplets_at_q
        self._weights_at_q = weights_at_q
        self._triplets_map_at_q = triplets_map_at_q
        self._grid_address = grid_address
        self._bz_map = bz_map
        self._ir_map_at_q = ir_map_at_q
コード例 #6
0
ファイル: interaction.py プロジェクト: matk86/phonopy
    def set_grid_point(self, grid_point, stores_triplets_map=False):
        reciprocal_lattice = np.linalg.inv(self._primitive.get_cell())
        if not self._is_mesh_symmetry:
            (triplets_at_q, weights_at_q, grid_address, bz_map,
             triplets_map_at_q, ir_map_at_q) = get_nosym_triplets_at_q(
                 grid_point,
                 self._mesh,
                 reciprocal_lattice,
                 stores_triplets_map=stores_triplets_map)
        else:
            (triplets_at_q, weights_at_q, grid_address, bz_map,
             triplets_map_at_q, ir_map_at_q) = get_triplets_at_q(
                 grid_point,
                 self._mesh,
                 self._symmetry.get_pointgroup_operations(),
                 reciprocal_lattice,
                 stores_triplets_map=stores_triplets_map)

        for triplet in triplets_at_q:
            sum_q = (grid_address[triplet]).sum(axis=0)
            if (sum_q % self._mesh != 0).any():
                print("============= Warning ==================")
                print("%s" % triplet)
                for tp in triplet:
                    print("%s %s" %
                          (grid_address[tp],
                           np.linalg.norm(
                               np.dot(
                                   reciprocal_lattice, grid_address[tp] /
                                   self._mesh.astype('double')))))
                print("%s" % sum_q)
                print("============= Warning ==================")

        self._grid_point = grid_point
        self._triplets_at_q = triplets_at_q
        self._weights_at_q = weights_at_q
        self._triplets_map_at_q = triplets_map_at_q
        self._grid_address = grid_address
        self._bz_map = bz_map
        self._ir_map_at_q = ir_map_at_q
        self.set_phonons(self._triplets_at_q.ravel())
コード例 #7
0
    def set_grid_point(self, grid_point, stores_triplets_map=False):
        reciprocal_lattice = np.linalg.inv(self._primitive.get_cell())
        if self._is_nosym:
            (triplets_at_q,
             weights_at_q,
             grid_address,
             bz_map,
             triplets_map_at_q,
             ir_map_at_q) = get_nosym_triplets_at_q(
                 grid_point,
                 self._mesh,
                 reciprocal_lattice,
                 stores_triplets_map=stores_triplets_map)
        else:
            (triplets_at_q,
             weights_at_q,
             grid_address,
             bz_map,
             triplets_map_at_q,
             ir_map_at_q)= get_triplets_at_q(
                 grid_point,
                 self._mesh,
                 self._symmetry.get_pointgroup_operations(),
                 reciprocal_lattice,
                 stores_triplets_map=stores_triplets_map)

        for triplet in triplets_at_q:
            sum_q = (grid_address[triplet]).sum(axis=0)
            if (sum_q % self._mesh != 0).any():
                print "============= Warning =================="
                print triplet
                print grid_address[triplet]
                print sum_q
                print "============= Warning =================="

        self._triplets_at_q = triplets_at_q
        self._weights_at_q = weights_at_q
        self._triplets_map_at_q = triplets_map_at_q
        self._grid_address = grid_address
        self._bz_map = bz_map
        self._ir_map_at_q = ir_map_at_q
コード例 #8
0
ファイル: triplets_search.py プロジェクト: FermiSea/phonopy
import numpy as np

cell = read_vasp("POSCAR-unitcell")
symmetry = Symmetry(cell, 1e-2)
print symmetry.get_international_table()
reciprocal_lattice = np.linalg.inv(cell.get_cell())
mesh = [7, 7, 7]

print reciprocal_lattice

(triplets_at_q,
 weights_at_q,
 grid_address,
 bz_map,
 triplets_map_at_q,
 ir_map_at_q)= get_triplets_at_q(74,
                                 mesh,
                                 symmetry.get_pointgroup_operations(),
                                 reciprocal_lattice,
                                 stores_triplets_map=True)

for triplet in triplets_at_q:
    sum_q = (grid_address[triplet]).sum(axis=0)
    if (sum_q % mesh != 0).any():
        print "============= Warning =================="
        print triplet
        for tp in triplet:
            print grid_address[tp], np.linalg.norm(np.dot(reciprocal_lattice, grid_address[tp] / mesh))
        print sum_q
        print "============= Warning =================="