Ludwig.jl Documentation
Overview
Ludwig provides a framework for generating the linearized Boltzmann collision operator for electron-electron scattering in two-dimensional materials and materials with a quasi-2D band structure. This package also provides utilities for calculating transport properties such as conductivity and viscosity from the generated collision matrix.
This package uses Unicode characters (primarily Greek letters) such as η, σ, and ε in both function names and for function arguments. Unicode symbols can be entered in the Julia REPL by typing, e.g., \eta followed by tab key. Read more about Unicode symbols in the Julia Documentation.
Units
For all calculations, $\hbar = k_B = 1.$ For converting output back to physical units, Ludwig includes the values of some important physical constants from the 2022 CODATA Recommended Values of the Fundamental Physical Constants.
Ludwig.hbar — Constant
Reduced Planck's constant in eV.s
Ludwig.e_charge — Constant
Electron charge in C
Since we take $k_B = 1$, temperatures must be expressed in the same energy scale used by the Hamiltonian. We recommend expressing all energies in units of eV for simplicity in multiband calculations where each band may have an independent natural energy scale. This is particularly important since many function involve the ratio of the energy to temperature; e.g. f0(E, T)
Ludwig.Utilities.f0 — Function
f0(E, T)Return the value of the Fermi-Dirac distribution for energy E and temperature T.
\[ f^{(0)}(\varepsilon) = \frac{1}{1 + e^{\varepsilon/k_B T}}\]
Moreover, all momentum integrals are normalized by the volume of the Brillouin zone. This simplifies calculations, but again requires appropriate dimension to be restored later:
\[\int \frac{d^2\mathbf{k}}{(2\pi)^2} \to \frac{1}{v_\text{cell}} \int d^2\mathbf{k}\]