TRIQS/triqs_modest 3.3.0
Brillouin zone summation
Loading...
Searching...
No Matches
triqs::modest::downfolding_projector

#include <triqs_modest/downfolding.hpp>

Detailed Description

The projector that downfolds the one-body dispersion (ν) onto local orbitals (m).

The projector that downfolds the energy bands onto a set of localized atomic-like orbitals.

A downfoldin projector contains the projector, the kind of spin used in the projection, and the number of bands per k-point for cases when a band goes outside of the projection window.

The projectors \(P_{m\nu}^{\sigma}(\mathbf{k})\) connect the Bloch space \({\cal B}\) to \({\cal C}\). The projectors are obtained from DFT codes or Wannier90. They are defined by

$$ P_{(a,m_{a})\nu}^{\sigma}(\mathbf{k})\equiv e^{-i \mathbf{k} R_a} \bra{\chi_{m_{a}}^{R_a \sigma}}\ket{\psi_{\nu}^{\sigma}(\mathbf{k})},$$

where \(\ket{\chi_{m_{a}}^{R_a \sigma}}\) is a Wannier function localized at atom $a$ with index \(m_a\) at position \(R_a\) and \(\ket{\psi_{\nu}^{\sigma}(\mathbf{k})}\) is the Kohn-Sham wavefunction. The relation between the Wannier and Bloch function is therefore

$$ \ket{\chi_{m_{a}}^{R_a \sigma}} = \sum_{\mathbf{k} \nu} e^{-i \mathbf{k} R_a} \bigl(P^\sigma_{(a,m_{a})\nu}(\mathbf{k})\bigr)^* \ket{\psi_{\nu}^{\sigma}(\mathbf{k})}.$$

Some properties:

  • Basis change in \(\cal C\) space. They are given by a unitary matrix \(U\), the projector transforms as $$ P^{'\sigma}_{m\nu}(\mathbf{k}) = U^{\dagger}_{m, m'} P^{\sigma}_{m'\nu}(\mathbf{k}).$$
  • Partial unitarity property: In general \(P\) is not unitary as \(N_\nu^{\mathbf{k}} > M\). However, if the Wannier functions are reorthonormalized with respect to the truncated band basis, we have $$ \sum_{ \nu} P^{\sigma}_{m\nu}(\mathbf{k}) P^{\dagger\sigma}_{\nu m'}(\mathbf{k}) = \delta_{mm'}$$

Definition at line 72 of file downfolding.hpp.

Public Member Functions

nda::matrix_const_view< dcomplexP (long sigma, long k_idx) const
 P^σ(k)_mν, returned as a matrix in (m ν)
 
downfolding_projector rotate_local_basis (nda::array< nda::matrix< dcomplex >, 2 > const &U) const
 Rotates the local basis of the downfolding projector.
 

Public Attributes

nda::array< long, 2 > n_bands_per_k
 n_bands_per_k [k_idx, σ'] = # of nu
 
nda::array< dcomplex, 4 > P_k
 Pk[alpha][k_idx, σ', m_alpha, nu].
 
spin_kind_e spin_kind
 

Friends

std::ostream & operator<< (std::ostream &out, downfolding_projector const &proj)
 printing
 

Member Function Documentation

◆ P()

nda::matrix_const_view< dcomplex > triqs::modest::downfolding_projector::P ( long  sigma,
long  k_idx 
) const
inline

P^σ(k)_mν, returned as a matrix in (m ν)

Definition at line 85 of file downfolding.hpp.

◆ rotate_local_basis()

downfolding_projector triqs::modest::downfolding_projector::rotate_local_basis ( nda::array< nda::matrix< dcomplex >, 2 > const &  U) const

Rotates the local basis of the downfolding projector.

Definition at line 23 of file downfolding.cpp.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  out,
downfolding_projector const &  proj 
)
friend

printing

Definition at line 26 of file printing.cpp.

Member Data Documentation

◆ n_bands_per_k

nda::array<long, 2> triqs::modest::downfolding_projector::n_bands_per_k

n_bands_per_k [k_idx, σ'] = # of nu

Definition at line 75 of file downfolding.hpp.

◆ P_k

nda::array<dcomplex, 4> triqs::modest::downfolding_projector::P_k

Pk[alpha][k_idx, σ', m_alpha, nu].

Definition at line 74 of file downfolding.hpp.

◆ spin_kind

spin_kind_e triqs::modest::downfolding_projector::spin_kind

Definition at line 73 of file downfolding.hpp.


The documentation for this class was generated from the following files: