Example #1
0
    layer.set_calculator(calc)
    layer.get_potential_energy()
    response = calc.hamiltonian.xc.xcs['RESPONSE']
    response.calculate_delta_xc()
    E_ks, dis = response.calculate_delta_xc_perturbation()
    calc.write('MoS2.gpw', mode='all')
else:
    dis = 0.5345

bse = BSE('MoS2.gpw',
          ecut=10,
          valence_bands=[8],
          conduction_bands=[9],
          eshift=dis,
          nbands=15,
          write_h=False,
          write_v=False,
          wfile=None,
          mode='BSE',
          truncation='2D')

w_w, alpha_w = bse.get_polarizability(filename='bse.csv',
                                      pbc=[True, True, False],
                                      eta=0.02,
                                      w_w=np.linspace(0., 5., 5001))
w_ = 0.833
I_ = 26.51
w, I = findpeak(w_w[:1000], alpha_w.imag[:1000])
equal(w, w_, 0.01)
equal(I, I_, 0.1)
Example #2
0
df.get_polarizability(filename='pol_rpa_MoS2.csv', pbc=[True, True, False])

bse = BSE('gs_MoS2.gpw',
          spinors=True,
          ecut=ecut,
          valence_bands=[8],
          conduction_bands=[9],
          nbands=50,
          eshift=eshift,
          mode='BSE',
          txt='bse_MoS2.txt')

bse.get_polarizability(filename='pol_bse_MoS2.csv',
                       eta=eta,
                       pbc=[True, True, False],
                       write_eig='bse_MoS2_eig.dat',
                       w_w=np.linspace(0, 5, 5001))

bse = BSE('gs_MoS2.gpw',
          spinors=True,
          ecut=ecut,
          valence_bands=[8],
          conduction_bands=[9],
          truncation='2D',
          nbands=50,
          eshift=eshift,
          mode='BSE',
          txt='bse_MoS2_trun.txt')

bse.get_polarizability(filename='pol_bse_MoS2_trun.csv',