A forked/imported version of ueg-dielectric - numerical methods to compute the finite-temperature random phase approximation and Mermin dielectric functions of a uniform electron gas (UEG) with JIT compilation.
The dielectric function is a wave vector and frequency dependent generalization of the macroscopic dielectric constant
This module computes the complex, quantum mechanical dielectric function for a uniform electron gas using two popular approaches:
- The random phase approximation (e.g. Johnson, Nilsen, and Cheng, 2012) and
- The Mermin ansatz (Mermin, 1970), which modifies the electron gas dielectric function to more accurately represent electrons in the real material by incorporating an electron-ion collision rate.
Note: all quantities are in atomic units1
We use ElectronGas
class objects to hold the physical information about the electrons (e.g. temperature/thermal energy, electron density)
from uegdielectric import ElectronGas
# thermal energy of electrons
t = 3.17E-2 # atomic units - approximately 10,000 kelvin
# electron density
d = 2.68e-02 # atomic units - approximately 1.53e16 electrons per centimeters cubed
electrons = ElectronGas(t, d)
We can use either the RPA
or Mermin
classes to compute the complex dielectric function as a function of wave number wavenum
and frequency frequency
. For the Mermin
model, we can also provide an electron-ion collision rate collisionrate
, which is assumed to be frequency dependent.
from uegdielectric import dielectric
eps = dielectric.RPA(electrons)
# wave number
q = 1.0 # atomic units
# frequency
omega = 0.5 # atomic units
# dielectric object is callable!
eps(wavenum=q, frequency=omega)
>>> (1.452804827343392+0.8463619935408268j)
More examples are being added to the docs/notebooks
directory.
UEG dielectric supports Python ≥ 3.11.
Install the latest GitHub main
version using pip
:
pip install git+https://github.com/twhentschel/jit-dielectric.git
Footnotes
-
See this Wikipedia article for an introduction to atomic units. ↩