Example #1
0
    Jsum = np.zeros((len(r)))
    Efr = Ef + Uvals(U0, r) / 2.0
    for i in range(-Mmax, Mmax + 1):
        Jsum += 2.0 * (special.jn(i, (Ef * r)))**2
    drhohm = 2.0 - Jsum
    drhohm += (special.jn(-Mmax, (Ef * r)))**2
    drhohm -= (special.jn(1 + Mmax, (Ef * r)))**2
    drhohm *= -abs(Ef) / 4.0 / np.pi * Uvals(U0, r)
    return drhohm


for i in range(0, len(Emins)):
    rho0s[:, i, 0] = diracsolver.find_rho(Ev0, rbg, LDOS0, Emins[i], Emax0)
    rho0s[:, i, 1] = diracsolver.find_rho(Ev0, rbg, LDOS0, Emin0, Emaxs[i])
    RPA0 = -1.0 / 16.0 * Uvals(1.0, rbg)**3
    RPA[:, i] = polaris_generic(rbg, Emins[i], Uq_Coulomb)

for t in range(0, len(Us)):
    x = Us[t]
    figure()
    title('drho = %g' % x)
    ldosfile = np.load('ldos-U0=%g-N=%d-Mmax=%d-B=0.npz' % (x, N, Mmax))
    mlist = ldosfile['mlist']
    gam = ldosfile['gam']
    r = ldosfile['r']
    Ev = ldosfile['Ev']
    LDOS = ldosfile['ldos']
    rhoTFe = Uvals(x, r)**2 / 4.0 / np.pi
    if abs(len(rbg) - len(r)) != 0 or abs(gam - gambg) > 1e-6:
        print 'MISMATCHING LDOS'
    test = np.load('allrhos-U0=%g-N=%d-Mmax=%d-B=0-Emin=-1-Emax=-0.npy' %
Example #2
0
ldos = prepareLDOS(Ev, r, Ustr, U, mlist, B0, gam)
dos_0 = dos_bg(mlist, Ev, r)
ldos2 = prepareLDOS(Ev, r2, Ustr, U2, mlist2, B0, gam2)
####graft(E_cut, Ev, r, ldos, r2, ldos2)   

E_min = -1.0
E_max = -0.0
T = 3e-2

rho = find_rho(Ev, r, ldos, E_min, E_max)
rho_B = find_rho(Ev, r, dos_0, E_min, E_max)
rho_1 = getDensity(r, 0.0, 0.0*r, mlist, B0, E_min, E_max, T)
rho_0 = np.array(rho)
rho_wf_0 = np.array(rho_1)

rho_up   =  polaris_generic(r, E_max, Uq_Coulomb)
rho_down =  polaris_generic(r, E_min, Uq_Coulomb)
rho_RPA = rho_up - rho_down
sgn = 1.0
if (E_min < 0): sgn = -1
rho_bg = -1.0 / 4.0 / np.pi * ((E_min - U) * np.abs(E_min - U) - E_min * abs(E_min))

results = []

for U0 in Ustrengths:
    print "Calculating U0=%g" %U0
    U = Uvals(U0,r)
    U2 = Uvals(U0,r2)
    ldos  = prepareLDOS(Ev, r,  U0, U,  mlist,  B0, gam)
    ldos2 = prepareLDOS(Ev, r2, U0, U2, mlist2, B0, gam2)
    ####graft(E_cut, Ev, r, ldos, r2, ldos2)
Example #3
0
def highm(Ef, r, Mmax, U0):
    Jsum = np.zeros((len(r)))
    Efr = Ef + Uvals(U0,r)/2.0
    for i in range (-Mmax, Mmax+1):
        Jsum += 2.0 * (special.jn(i,(Ef*r)))**2
    drhohm = 2.0 - Jsum
    drhohm += (special.jn(-Mmax,(Ef*r)))**2
    drhohm -= (special.jn(1+Mmax,(Ef*r)))**2
    drhohm *= -abs(Ef) / 4.0 / np.pi * Uvals(U0,r)
    return drhohm

for i in range (0,len(Emins)):
    rho0s[:,i,0] = diracsolver.find_rho(Ev0,rbg,LDOS0,Emins[i],Emax0)
    rho0s[:,i,1] = diracsolver.find_rho(Ev0,rbg,LDOS0,Emin0,Emaxs[i])
    RPA0 = - 1.0 / 16.0 * Uvals(1.0,rbg)**3 
    RPA[:,i] = polaris_generic(rbg,Emins[i],Uq_Coulomb)


for t in range (0,len(Us)):
    x=Us[t]
    figure()
    title('drho = %g' %x)
    ldosfile = np.load('ldos-U0=%g-N=%d-Mmax=%d-B=0.npz' %(x,N,Mmax))
    mlist = ldosfile['mlist']
    gam = ldosfile['gam']
    r = ldosfile['r']
    Ev = ldosfile['Ev']
    LDOS = ldosfile['ldos']
    rhoTFe = Uvals(x,r)**2 / 4.0 / np.pi 
    if abs(len(rbg)-len(r)) != 0 or abs(gam-gambg) > 1e-6:
        print 'MISMATCHING LDOS'