You need to sign in or sign up before continuing.
Divide by zero in EELS at edge of BZ
Minimal reproducible example:
from gpaw import GPAW, FermiDirac
from gpaw.response.df import DielectricFunction
from ase.build import bulk
a = bulk('Ag')
calc = GPAW(mode='pw',
kpts=[3, 3, 3],
occupations=FermiDirac(0.001),
convergence={'bands': 12, 'eigenstates': 4e-4},
nbands=18)
a.set_calculator(calc)
a.get_potential_energy()
df = DielectricFunction(calc=calc)
df.get_eels_spectrum(q_c=[1, 0, 0])
Relevant part of output:
/home/chronum/miniconda3/envs/asegpaw/lib/python3.7/site-packages/gpaw/response/kernels.py:23: RuntimeWarning: divide by zero encountered in true_divide
v_G = 4 * np.pi / (qG_Gv**2).sum(axis=1)
/home/chronum/miniconda3/envs/asegpaw/lib/python3.7/site-packages/gpaw/response/df.py:315: RuntimeWarning: invalid value encountered in multiply
chi0_GG[:] = chi0_GG * vsqr_G * vsqr_G[:, np.newaxis]
Install specs:
Python: 3.7.3
gpaw: /home/chronum/miniconda3/envs/asegpaw/lib/python3.7/site-packages/gpaw
_gpaw: /home/chronum/miniconda3/envs/asegpaw/bin/gpaw-python (6540a25a04)
ase: /home/chronum/miniconda3/envs/asegpaw/lib/python3.7/site-packages/ase (version 3.17.0)
numpy: /home/chronum/miniconda3/envs/asegpaw/lib/python3.7/site-packages/numpy (version 1.16.3)
scipy: /home/chronum/miniconda3/envs/asegpaw/lib/python3.7/site-packages/scipy (version 1.2.1)
libxc: 4.3.4
units: Angstrom and eV
cores: 1
I'm not sure how difficult it would be to fix this, but it would be nice to have a fix.