Пример #1
0
 def _allocate_phonon(self):
     primitive_lattice = np.linalg.inv(self._primitive.cell)
     self._grid_address, self._bz_map = get_bz_grid_address(
         self._mesh, primitive_lattice, with_boundary=True)
     num_band = len(self._primitive) * 3
     num_grid = len(self._grid_address)
     self._phonon_done = np.zeros(num_grid, dtype='byte')
     self._frequencies = np.zeros((num_grid, num_band), dtype='double')
     itemsize = self._frequencies.itemsize
     self._eigenvectors = np.zeros((num_grid, num_band, num_band),
                                   dtype=("c%d" % (itemsize * 2)))
Пример #2
0
    def set_grid_point(self, grid_point):
        self._grid_point = grid_point
        self._grid_points = np.arange(np.prod(self._mesh), dtype='uintp')

        if self._grid_address is None:
            primitive_lattice = np.linalg.inv(self._primitive.cell)
            self._grid_address, self._bz_map = get_bz_grid_address(
                self._mesh, primitive_lattice, with_boundary=True)

        if self._phonon_done is None:
            self._allocate_phonon()
Пример #3
0
    def set_grid_point(self, grid_point):
        self._grid_point = grid_point
        num_band = self._primitive.get_number_of_atoms() * 3
        if self._band_indices is None:
            self._band_indices = np.arange(num_band, dtype='intc')
        else:
            self._band_indices = np.array(self._band_indices, dtype='intc')

        self._grid_points = np.arange(np.prod(self._mesh), dtype='uintp')

        if self._grid_address is None:
            primitive_lattice = np.linalg.inv(self._primitive.get_cell())
            self._grid_address, self._bz_map = get_bz_grid_address(
                self._mesh, primitive_lattice, with_boundary=True)

        if self._phonon_done is None:
            self._allocate_phonon()