def gfGSWLesser(kPoint, wRel, tAv, eta, damping): tRel = FT.tVecFromWVec(wRel) tRelNeg = tRel[:len(tRel) // 2 + 1] GFT = gfGSExpDamping(kPoint, tRelNeg, tAv, eta, damping) GFZero = np.zeros((len(tRel) // 2 - 1, len(tAv)), dtype='complex') GFT = np.concatenate((GFT, GFZero), axis=0) _, GFW = FT.FTOneOfTwoTimesPoint(tRel, GFT) return GFW
def gfGSWGreater(kPoint, wRel, tAv, eta, damping): tRel = FT.tVecFromWVec(wRel) tRelPos = tRel[len(tRel) // 2:] GFT = gfGSExpDamping(kPoint, tRelPos, tAv, eta, damping) GFZero = np.zeros((len(tRel) // 2, len(tAv)), dtype='complex') GFT = np.concatenate((GFZero, GFT), axis=0) _, GFW = FT.FTOneOfTwoTimesPoint(tRel, GFT) return GFW
def gLesserW(kPoint, wRelVec, tAvArr, eta, damping, cohN): tVec = FT.tVecFromWVec(wRelVec) tVecNeg = tVec[:len(tVec) // 2 + 1] GFT = gLesserDamp(kPoint, tVecNeg, tAvArr, eta, damping, cohN) GFZero = np.zeros((len(tVec) // 2 - 1, len(tAvArr)), dtype='complex') GFT = np.concatenate((GFT, GFZero), axis=0) wVecCheck, GFW = FT.FTOneOfTwoTimesPoint(tVec, GFT) assert ((np.abs(wRelVec - wVecCheck) < 1e-10).all) return GFW
def gfCohWTurned(kPoint, wRel, tAv, eta, damping, N): if (np.abs(kPoint) > np.pi / 2.): return np.zeros((len(wRel), len(tAv))) tRel = FT.tVecFromWVec(wRel) tRelPos = tRel[len(tRel) // 2:] GFT = gfCohExpDampingTurned(kPoint, tRelPos, tAv, eta, damping, N) GFZero = np.zeros((len(tRel) // 2, len(tAv)), dtype='complex') GFT = np.concatenate((GFZero, GFT), axis=0) _, GFW = FT.FTOneOfTwoTimesPoint(tRel, GFT) if (np.abs(np.abs(kPoint) - np.pi / 2.) < 1e-12): return 0. * GFW else: return GFW