frequencies=(0., ), eta=0.001, ecut=50, hilbert=False) eM1, eM2 = df.get_macroscopic_dielectric_constant() equal(eM1, eM1_, 0.01) equal(eM2, eM2_, 0.01) # Absorption spectrum calculation RPA df = DielectricFunction('C.gpw', eta=0.25, ecut=50, frequencies=np.linspace(0, 24., 241), hilbert=False) a0, a = df.get_dielectric_function(filename=None) df.check_sum_rule(a.imag) equal(a0[0].real, eM1_, 0.01) equal(a[0].real, eM2_, 0.01) w, I = findpeak(np.linspace(0, 24., 241), a0.imag) equal(w, w0_, 0.01) equal(I / (4 * np.pi), I0_, 0.05) w, I = findpeak(np.linspace(0, 24., 241), a.imag) equal(w, w_, 0.01) equal(I / (4 * np.pi), I_, 0.05) a0, a = df.get_polarizability(filename=None) w, I = findpeak(np.linspace(0, 24., 241), a0.imag) equal(w, w0_, 0.01) equal(I, I0_, 0.01)
# Macroscopic dielectric constant calculation df = DielectricFunction('C.gpw', frequencies=(0.,), eta=0.001, ecut=200, hilbert=False) eM1, eM2 = df.get_macroscopic_dielectric_constant() eM1_ = 9.725 eM2_ = 9.068 equal(eM1, eM1_, 0.01) equal(eM2, eM2_, 0.01) # Absorption spectrum calculation df = DielectricFunction('C.gpw', eta=0.25, ecut=200, frequencies=np.linspace(0, 24., 241), hilbert=False) b0, b = df.get_dielectric_function(filename=None) df.check_sum_rule(b.imag) equal(b0[0].real, eM1_, 0.01) equal(b[0].real, eM2_, 0.01) a0, a = df.get_polarizability(filename=None) df_ws = DielectricFunction('C.gpw', eta=0.25, ecut=200, frequencies=np.linspace(0, 24., 241), hilbert=False, truncation='wigner-seitz') a0_ws, a_ws = df_ws.get_polarizability(filename=None) w0_ = 10.778232265664668 I0_ = 5.5467658790816268 w_ = 10.9530497246
xc='LDA') atoms.set_calculator(calc) atoms.get_potential_energy() t2 = time.time() # Excited state calculation q = np.array([1/4.,0.,0.]) w = np.linspace(0, 24, 241) df = DielectricFunction(calc=calc, frequencies=w, eta=0.2, ecut=50) eels_NLFC_w, eels_LFC_w = df.get_eels_spectrum(filename='EELS_Al', q_c=q) df_NLFC_w, df_LFC_w = df.get_dielectric_function(q_c=q) df.check_sum_rule(spectrum=np.imag(df_NLFC_w)) df.check_sum_rule(spectrum=np.imag(df_LFC_w)) df.check_sum_rule(spectrum=eels_NLFC_w) df.check_sum_rule(spectrum=eels_LFC_w) #df.write('Al.pckl') t3 = time.time() print('') print('For ground state calc, it took', (t2 - t1) / 60, 'minutes') print('For excited state calc, it took', (t3 - t2) / 60, 'minutes') d = np.loadtxt('EELS_Al',delimiter=',') # New results are compared with test values
eM1, eM2 = df.get_macroscopic_dielectric_constant() eM1_ = 9.725 eM2_ = 9.068 equal(eM1, eM1_, 0.01) equal(eM2, eM2_, 0.01) # Absorption spectrum calculation df = DielectricFunction('C.gpw', eta=0.25, ecut=200, frequencies=np.linspace(0, 24., 241), hilbert=False) b0, b = df.get_dielectric_function(filename=None) df.check_sum_rule(b.imag) equal(b0[0].real, eM1_, 0.01) equal(b[0].real, eM2_, 0.01) a0, a = df.get_polarizability(filename=None) df_ws = DielectricFunction('C.gpw', eta=0.25, ecut=200, frequencies=np.linspace(0, 24., 241), hilbert=False, truncation='wigner-seitz') a0_ws, a_ws = df_ws.get_polarizability(filename=None)