Exemplo n.º 1
0
def findPhotonNumberInGS2nd(etas):
    photonNumber = np.zeros((len(etas)), dtype='double')
    for indEta in np.arange(len(etas)):
        gsTemp = findGS(etas[indEta])
        print("J(GS) = {}".format(eF.J(gsTemp[0:-1])))
        phNum = sec_order.photonNumber.avPhotonNumber2nd(gsTemp, etas[indEta])
        photonNumber[indEta] = phNum
    return photonNumber
def getPhGS(eta):
    gs = arbOrder.findGS(eta, 3)
    gsJ = eF.J(gs)
    gsT = eF.T(gs)
    gsJ = 0.
    gsT = -2. / np.pi * prms.chainLength

    return phState.findPhotonGS([gsT, gsJ], eta, 3)
Exemplo n.º 3
0
def expectAnnihil(eta):
    gs = arbOrder.findGS(eta, 3)
    gsJ = eF.J(gs)
    gsT = eF.T(gs)

    ptGS = phState.findPhotonGS([gsT, gsJ], eta, 3)
    a = setUpAnnihil(eta)

    return np.dot(np.conj(ptGS), np.dot(a, ptGS))
Exemplo n.º 4
0
def currentGS(eta):
    gs = arbOrder.findGS(eta, 3)
    gsJ = eF.J(gs)
    gsT = eF.T(gs)

    ptGS = phState.findPhotonGS([gsT, gsJ], eta, 3)
    jOp = setupCurrentOperator(gsT, gsJ, eta)

    current = np.dot(np.conj(ptGS), np.dot(jOp, ptGS))
    return current
Exemplo n.º 5
0
def expectSinA(eta):
    gs = arbOrder.findGS(eta, 3)
    gsJ = eF.J(gs)
    gsT = eF.T(gs)

    ptGS = phState.findPhotonGS([gsT, gsJ], eta, 3)
    x = setUpA(eta)
    sinX = sciLin.sinm(x)

    return np.dot(np.conj(ptGS), np.dot(sinX, ptGS))
Exemplo n.º 6
0
def anaGreenVecTLesser(kVec, tVec, eta, damping):

    gs = anaGS.findGS1st(eta)
    gsJ = eF.J(gs[0: -1])
    _, occupations = np.meshgrid(np.ones(tVec.shape), gs[0: -1])
    GF = anaGreenPointTLesser(kVec, tVec, gsJ, eta)
    GF = np.multiply(occupations, GF)

    dampingArr, _ = np.meshgrid(np.exp(- damping * np.abs(tVec)), np.ones(kVec.shape))
    GF = np.multiply(dampingArr, GF)

    return GF
Exemplo n.º 7
0
def avPhotonNumber2nd(state, eta):
    #return avPhotonNumber1st(state, eta)
    assert (len(state) == param.chainLength + 1)
    assert (np.abs(state[-1]) < 1e-10)
    #gam = eF.gamma(state[0: -1], eta)

    gsT = param.t / (np.pi) * (np.sin(np.pi / 2.) -
                               np.sin(-np.pi / 2.)) * param.chainLength
    gsJ = param.t / (np.pi) * (np.cos(np.pi / 2.) -
                               np.cos(-np.pi / 2.)) * param.chainLength

    gsT = eF.T(state[:-1])
    gsJ = eF.J(state[:-1])

    gam = eta**2 * gsT / (eta**2 * gsT - param.w0)

    epsilon = np.sqrt(1. - gam**2)
    u = eF.calcU(gam)
    v = eF.calcV(gam)
    vsq = np.abs(v)**2
    upvsq = np.abs(u + v)**2
    X = eta * eF.J(state[0:-1]) / (2. * epsilon * eF.LT(state[0:-1], eta))
    return vsq + X**2 * upvsq
Exemplo n.º 8
0
def anaGreenVecTGreater(kVec, tVec, eta, damping):

    #gs = anaGS.findGS1st(eta)
    #gsJ = eF.J(gs[0: -1])
    gs = arbOrder.findGS(eta, 3)
    gsJ = eF.J(gs)
    gsT = eF.T(gs)

    _, occupations = np.meshgrid(np.ones(tVec.shape), gs)
    GF = anaGreenPointTGreater(kVec, tVec, gsJ, eta)
    GF = np.multiply(1 - occupations, GF)

    dampingArr, _ = np.meshgrid(np.exp(- damping * np.abs(tVec)), np.ones(kVec.shape))
    GF = np.multiply(dampingArr, GF)

    return GF
Exemplo n.º 9
0
def anaGreenPointTLesser(kPoint, tPoint, gsJ, eta):

    gs = arbOrder.findGS(eta, 3)
    gsJ = eF.J(gs)
    gsT = eF.T(gs)

    #gsT = - 2. / np.pi * prms.chainLength
    z = 2. * eta**2 / prms.w0 * gsT
    wTilde = prms.w0 * np.sqrt(1. - z)

    epsK = 2. * prms.t * np.cos(
        kPoint[:, None]) * (1. - 0.5 * eta**2 * prms.w0 / wTilde)
    selfE = eta**2 * prms.w0 / (wTilde**2) * (-2. * prms.t *
                                              np.sin(kPoint[:, None]))**2

    eTime = -1j * epsK * tPoint[None, :] - 1j * selfE * tPoint[None, :]
    ptTime = -(-2. * eta * prms.t * np.sin(kPoint[:, None]))**2 * prms.w0 / (
        wTilde**3) * (1. - np.exp(1j * wTilde * tPoint[None, :]))

    return -1j * np.exp(eTime + ptTime)
Exemplo n.º 10
0
def avPhotonNumber1st(state, eta):
    assert (len(state) == param.chainLength + 1)
    assert (np.abs(state[-1]) < 1e-10)
    return (eta * eF.J(state[0:-1]) / param.w0)**2
Exemplo n.º 11
0
def getH(eta):
    gs = arbOrder.findGS(eta, 3)
    gsJ = eF.J(gs)
    gsT = eF.T(gs)
    return numH.setupPhotonHamiltonianInf(gsT, gsJ, eta)
Exemplo n.º 12
0
def getPhGS(eta):
    gs = arbOrder.findGS(eta, 3)
    gsJ = eF.J(gs)
    gsT = eF.T(gs)
    return phState.findPhotonGS([gsT, gsJ], eta, 3)
Exemplo n.º 13
0
def avPhotonNum(electronicState, eta, orderH):
    T = eF.T(electronicState)
    J = eF.J(electronicState)
    av = averagePhotonNumber([T, J], eta, orderH)
    return av
Exemplo n.º 14
0
def photonGS(electronicState, eta, orderH):
    T = eF.T(electronicState)
    J = eF.J(electronicState)
    gs = findPhotonGS([T, J], eta, orderH)
    return gs
Exemplo n.º 15
0
def energyFromState(electronicState, eta, orderH):
    T = eF.T(electronicState)
    J = eF.J(electronicState)
    E = findSmalestEigenvalue([T, J], eta, orderH)
    return E