Available kernels
\(\mu\)-Kernels
In mu_kernels the following kernels are implemented:
Kubo kernels
Different Kubo kernels can be accessed from KuboKernel.
These include inter_band, intra_band, anomalous, even and odd kernels.
For instance, to access the inter_band kernel:
from py4mulas.mu_kernels import KuboKernel
mu_kernel = KuboKernel(name='inter_band')
Anomalous Hall kernel
name='anomalous'\(-2i\frac{f_n}{(E_n - E_m)(E_n - E_m + i\eta)}\)
- Interband Kubo kernel
name='inter_band' \(i\frac{f_m - f_n}{(E_n - E_m)(E_n - E_m + i\eta)}\)
See. [1]
- Interband Kubo kernel
- Intraband Kubo kernel
name='intra_band' \(\frac{i}{\eta}\partial_E f|_{E=E_n}\)
- Intraband Kubo kernel
Constant broadening kernels
The effect of temperature is included in the constant broadening \(\eta\). Thetse kernels are therfore \(T\) independent.
name='even'Eq(4) of [2]name='odd'Eq(5) of [2]
Kubo-Bastin kernels
Other mu_kernel s are also available from KuboBastinKernel.
These kernels are originally defined within the Kubo-Bastin framework. Using the recently proposed
approach to analytically handle the Kubo-Bastin energy integration [3], the formula becomes easier to implement
as no energy integration is required anymore. This formulation is useful when we are interested in
separating different response components such as Fermi-surface and Fermi-sea contributions.
This kernel class takes the following names:
StredaI, StredaII, BMI, Overlap and BMII.
StredaIandStredaIIcorrespond to the Streda decomposition of the Kubo-Bastin formula.BMIandBMIIare Fermi-surface and Fermi-sea contributions recently suggested by Bonbien and Manchon [4]. This decomposition corrects the original Streda decomposition.Overlapcorresponds to the overlap between these two contributions.
These kernels can be accesses by specifiying their names in the underlying kernel class
from py4mulas.mu_kernels import KuboBastinKernel
mu_kernelBMI = KuboBastinKernel(name='BMI')
Finally, the kernel should be passed to a formula. For instance to the built-in KuboFormula as
from py4mulas.responses import Kubo
formula = Kubo(some_model, kspace_options=kspace_options, mu_kernel=mu_kernelBMI)
See. rashbaModel.py where these kernels ar explored.
[1] Crepieux et Bruno, [PRB 64, 014416 (2001)].