def _set_vectors_and_supercell(self): phonon_modes = [[self._qpoint, i, 1, 0] for i in self._band_indices] self._phonon.set_modulations(self._modulation_dimension, phonon_modes) modulations, supercell = self._phonon.get_delta_modulations() self._vectors = [delta.T for delta in modulations] self._supercell = atoms2cell(supercell) self._lattice = self._supercell.get_lattice() self._lattice_inv = np.linalg.inv(self._lattice) self._positions = np.dot(self._lattice, self._supercell.get_points())
def _set_best_arguments_of_vectors_and_supercell(self): phonon_modes = [[self._qpoint, i, 1, 0] for i in self._band_indices] self._phonon.set_modulations(self._modulation_dimension, phonon_modes) modulations, supercell = self._phonon.get_delta_modulations() self._supercell = atoms2cell(supercell) vectors = [] arguments = [] for i, deltas in enumerate(modulations): argument, indices = self._best_argument(deltas.T) arguments.append([argument, indices]) vectors.append((deltas.T * np.exp(-1j * argument)).real) self._vectors = vectors self._arguments = arguments