Exemple #1
0
    def _get_wave_function_array(self, u, n, realspace=True, phase=None):
        psit_G = FDPWWaveFunctions._get_wave_function_array(self, u, n,
                                                            realspace)
        if not realspace:
            zeropadded_G = np.zeros(self.pd.ngmax, complex)
            zeropadded_G[:len(psit_G)] = psit_G
            return zeropadded_G

        kpt = self.kpt_u[u]
        if self.kd.gamma:
            return self.pd.ifft(psit_G)
        else:
            if phase is None:
                N_c = self.gd.N_c
                k_c = self.kd.ibzk_kc[kpt.k]
                eikr_R = np.exp(2j * pi * np.dot(np.indices(N_c).T,
                                                 k_c / N_c).T)
            else:
                eikr_R = phase
            return self.pd.ifft(psit_G, kpt.q) * eikr_R
Exemple #2
0
    def _get_wave_function_array(self, u, n, realspace=True, phase=None):
        psit_G = FDPWWaveFunctions._get_wave_function_array(self, u, n,
                                                            realspace)
        if not realspace:
            zeropadded_G = np.zeros(self.pd.ngmax, complex)
            zeropadded_G[:len(psit_G)] = psit_G
            return zeropadded_G

        kpt = self.kpt_u[u]
        if self.kd.gamma:
            return self.pd.ifft(psit_G)
        else:
            if phase is None:
                N_c = self.gd.N_c
                k_c = self.kd.ibzk_kc[kpt.k]
                eikr_R = np.exp(2j * pi * np.dot(np.indices(N_c).T,
                                                 k_c / N_c).T)
            else:
                eikr_R = phase
            return self.pd.ifft(psit_G, kpt.q) * eikr_R