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)))
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()
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()