triqs_modest.obe.one_body_elements_from_dft_converter
- triqs_modest.obe.one_body_elements_from_dft_converter()
Dispatched C++ function(s).
[1] (filename: str, threshold: float = 1e-05, diagonalize_hloc: bool = False) -> tuple[float, OneBodyElementsOnGrid]
Create a one-body elements with orthonormalized projectors.
Using the data from the “dft_input” group, the band dispersion, local space, downfolding projector, and optional IBZ symmetry ops are prepared to create a one-body elements. This object is intended to be used in DMFT calculations.
Our strategy is to decompose the \({\cal C}\) space using the suitable basis for embedding. Each block of embedded self-energy will then be mapped to corresponding impurity models self-energy.
The projectors are obtained from the DFT code or Wannier90, in some global coordinate system of the crystal. Some basis transformations are required before performing the embedding.
A coordinate system rotation \(R^{a}_{m_{a},m_{a}'}\) from the global coordinate system of atom (site) \(a\) into the local coordinate system of the crystal. This rotations ensure that equivalent atoms have the same self-energy in the new basis, hence can be solved by the same impurity model.
Optionally, we perform a second rotation \(U\) to infer the irreps from the local Hamiltonian. Unfortunately, at this stage, the proper information about irreps is not retrieved from the electronic structure code. A workaround has been to examine the local non-interacting Hamiltonian:
\[[H_{\mathrm{loc}}^{0}]_{m_{a} m_{a}'}^{a,\sigma} \equiv \sum_{\mathbf{k}} P_{(a,m_{a})\nu}^{\sigma} (\mathbf{k}) \varepsilon_{\nu\nu'}^{\sigma}(\mathbf{k}) [P_{(a',m_{\alpha}')\nu'}^{\sigma} (\mathbf{k})]^{\dagger}.\]Its block structure is infered (up to a user-defined threshold), by discovering a permutation of the orbitals \(m_{a}\) which renders \(H_{\mathrm{loc}}^{0}\) block-diagonal. Optionally, we can diagonalize these smaller blocks of the local non-interacting Hamiltonian (to reduce the off-diagonal elements in the impurity model hybridization functions \(\Delta_{mm'}^{\sigma}\)).
The Wannier basis is therefore transformed as:
\[P^{\sigma}_{m\nu}(\mathbf{k}) \leftarrow (RU)^{\dagger}_{m, m'} P^{\sigma}_{m'\nu}(\mathbf{k}).\]- Parameters:
- filenamestr
Hdf5 file from dft_tools converter.
- thresholdfloat
Off-diagonal threshold for discovery of symmetries.
- diagonalize_hlocbool
Diagonalize the local non-interacting hamiltonian.
- Returns:
- tuple[float, OneBodyElementsOnGrid]
The total electron density and a one-body elements.