| 479 | return MPBArray(tot_pwr, self.get_lattice(), self.current_k, bloch_phase=False) |
| 480 | |
| 481 | def get_eigenvectors(self, first_band, num_bands): |
| 482 | dims = self.mode_solver.get_eigenvectors_slice_dims(num_bands) |
| 483 | ev = np.zeros(np.prod(dims), dtype=np.complex128) |
| 484 | self.mode_solver.get_eigenvectors(first_band - 1, num_bands, ev) |
| 485 | return MPBArray(ev.reshape(dims), self.get_lattice(), self.current_k) |
| 486 | |
| 487 | def set_eigenvectors(self, ev, first_band): |
| 488 | self.mode_solver.set_eigenvectors(first_band - 1, ev.flatten()) |