TRIQS/triqs_modest 3.3.0
Modular Electronic Structure Toolkit
Loading...
Searching...
No Matches
triqs::modest::ibz_symmetry_ops

#include <triqs_modest/ibz_symmetry_ops.hpp>

Detailed Description

Irreducible Brillouin Zone (IBZ) symmetry operations to symmetrize observables over the entire Brillouin zone.

The IBZ symmetry operations are optional and specific to DFT codes that work in the IBZ instead of the full BZ. Currently, this is only used when DFT data is converted from Wien2k.

For computational efficiency, we can perform the one-body calculation on the irreducible Brillouin zone (IBZ). However, in order to obtain observable quantities like the local Green's function, one needs to symmetrize the obversable summed on only the IBZ. For any observable \(\mathcal{O}\), the unsymmetrized quantity is

\[ [\mathcal{O}^{\sigma}_{mm'}]_{\mathrm{unsymm}} = \sum_{\mathbf{k}\in\mathrm{IBZ}}\sum_{\nu\nu'}P_{m,\nu}^{\sigma} (\mathbf{k})O_{\nu\nu'}^{\sigma}(\mathbf{k})[P_{m'\nu'}^{\sigma}(\mathbf{k})]^{\dagger}. \]

To symmetrize, we must by apply all operations symmetry operations \(\mathcal{S}\) of the crystallographic space group \(\mathcal{G}\):

\[ [\mathcal{O}^{\sigma}_{(am_{a}), (a'm_{a}')}]_{\mathrm{symm}}^{\mathcal{G}} = \sum_{\mathcal{S}\in\mathcal{G}} \sum_{n_{a}n_{a}'} \mathcal{D}_{m_{a} n_{a}}(\mathcal{S})[(\mathcal{O}^{\mathcal{S}^{-1}a,\mathcal{S}^{-1} \sigma})_{n_{a}n_{a}'}]_{\mathrm{unsymm}}\mathcal{D}(\mathcal{S}^{-1})_{n_{a}'m_{a}'}. \]

Definition at line 47 of file ibz_symmetry_ops.hpp.

Public Member Functions

bool operator== (ibz_symmetry_ops const &) const =default
 Equality comparison operator.
 
template<typename Mesh >
block2_gf< Mesh, matrix_valued > symmetrize (block2_gf< Mesh, matrix_valued > const &Gin, auto const &atomic_decomposition) const
 
template<typename T >
nda::array< T, 2 > symmetrize (nda::array< T, 2 > const &X) const
 

Public Attributes

std::vector< op > ops
 

Friends

void mpi_broadcast (ibz_symmetry_ops &x, mpi::communicator c={}, int root=0)
 MPI broadcast.
 
std::ostream & operator<< (std::ostream &out, ibz_symmetry_ops const &ibz)
 

Member Function Documentation

◆ operator==()

bool triqs::modest::ibz_symmetry_ops::operator== ( ibz_symmetry_ops const &  ) const
default

Equality comparison operator.

◆ symmetrize() [1/2]

template<typename Mesh >
block2_gf< Mesh, matrix_valued > triqs::modest::ibz_symmetry_ops::symmetrize ( block2_gf< Mesh, matrix_valued > const &  Gin,
auto const &  atomic_decomposition 
) const
inline

Definition at line 100 of file ibz_symmetry_ops.hpp.

◆ symmetrize() [2/2]

template<typename T >
nda::array< T, 2 > triqs::modest::ibz_symmetry_ops::symmetrize ( nda::array< T, 2 > const &  X) const
inline

Definition at line 79 of file ibz_symmetry_ops.hpp.

Friends And Related Symbol Documentation

◆ mpi_broadcast

void mpi_broadcast ( ibz_symmetry_ops x,
mpi::communicator  c = {},
int  root = 0 
)
friend

MPI broadcast.

Definition at line 73 of file ibz_symmetry_ops.hpp.

◆ operator<<

std::ostream & operator<< ( std::ostream &  out,
ibz_symmetry_ops const &  ibz 
)
friend

Definition at line 63 of file printing.cpp.

Member Data Documentation

◆ ops

std::vector<op> triqs::modest::ibz_symmetry_ops::ops

Definition at line 67 of file ibz_symmetry_ops.hpp.


The documentation for this struct was generated from the following file: