TRIQS/triqs_modest 3.3.0
Brillouin zone summation
Loading...
Searching...
No Matches
Hamiltonians

Detailed Description

Functions and utilities to construct interaction Hamiltonians using TRIQS many-body operators.

Hamiltonians

Functions to create the impurity interaction using many-body operators.

operators::many_body_operator triqs::make_density_density (std::vector< std::string > const &tau_names, std::vector< long > const &dim_gamma, double U_int, double U_prime, double J_hund)
 Construct a density-density interation.
 
operators::many_body_operator triqs::make_kanamori (std::vector< std::string > const &tau_names, std::vector< long > const &dim_gamma, double U_int, double U_prime, double J_hund, bool spin_flip=true, bool pair_hopping=true)
 Construct a Hubbard-Kanamori Hamiltonian.
 
operators::many_body_operator triqs::make_slater (std::vector< std::string > const &tau_names, std::vector< long > const &dim_gamma, double U_int, double J_hund, nda::matrix< dcomplex > const &spherical_to_dft, std::optional< nda::matrix< dcomplex > > const &dft_to_local)
 Construct a new operators::many body operator make slater object.
 

Coulomb tensor utilities

Utility functions for creating and working with the four index Coulomb tensor.

nda::array< double, 4 > triqs::U_matrix_in_spherical_basis (long l, double U_int, double J_hund)
 Construct a four-index Coulomb tensor in the basis of spherical harmonics.
 
nda::array< dcomplex, 4 > triqs::U_matrix_in_local_basis (long l, nda::matrix< dcomplex > s2l, double U_int, double J_hund)
 Construct a four-index Coulomb tensor in a specific orbital basis.
 

Function Documentation

◆ make_density_density()

operators::many_body_operator triqs::make_density_density ( std::vector< std::string > const &  tau_names,
std::vector< long > const &  dim_gamma,
double  U_int,
double  U_prime,
double  J_hund 
)

#include <triqs_modest/hamiltonians.cpp>

Construct a density-density interation.

Create a density-density Hamiltonian $$ H_{\mathrm{int}} = \frac{1}{2} \sum_{(i\sigma)\neq(j\sigma^{\prime})} U_{ij}^{\sigma\sigma^{\prime}}n_{i\sigma}n_{j\sigma^{\prime}}.$$

Parameters
tau_namesnames of tau indices ['up', 'down']
dim_gammadimension of the blocks γ
U_intHubbard U
U_primeU' (typically U' = U - 2J)
J_hundKanamori J

Definition at line 107 of file hamiltonians.cpp.

◆ make_kanamori()

operators::many_body_operator triqs::make_kanamori ( std::vector< std::string > const &  tau_names,
std::vector< long > const &  dim_gamma,
double  U_int,
double  U_prime,
double  J_hund,
bool  spin_flip = true,
bool  pair_hopping = true 
)

#include <triqs_modest/hamiltonians.cpp>

Construct a Hubbard-Kanamori Hamiltonian.

Create a Hubbard-Kanamori Hamiltonian using the density-density, spin-flip, and pair-hopping interactions, $$ H_{\mathrm{int}} = \frac{1}{2} \sum_{(i\sigma)\neq(j\sigma^{\prime})} U_{ij}^{\sigma\sigma^{\prime}}n_{i\sigma}n_{j\sigma^{\prime}} - \sum_{i\neq j}Jc_{i\uparrow}^{\dagger}c_{i\downarrow}c_{j\downarrow}^{\dagger}c_{j\uparrow} + \sum_{i\neq j} J c_{i\uparrow}^{\dagger}c_{i\downarrow}^{\dagger}c_{j\downarrow}c_{j\uparrow}.$$

Parameters
tau_namesnames of tau indices ['up', 'down']
dim_gammadimension of the blocks γ
U_intHubbard U
U_primeU' typical U' = U - 2J
J_hundKanamori J
spin_flipspin flip term
pair_hoppingpair hopping term

Definition at line 113 of file hamiltonians.cpp.

◆ make_slater()

operators::many_body_operator triqs::make_slater ( std::vector< std::string > const &  tau_names,
std::vector< long > const &  dim_gamma,
double  U_int,
double  J_hund,
nda::matrix< dcomplex > const &  spherical_to_dft,
std::optional< nda::matrix< dcomplex > > const &  dft_to_local 
)

#include <triqs_modest/hamiltonians.cpp>

Construct a new operators::many body operator make slater object.

Create a Slater Hamiltonian using fully rotationally-invariant four-index interactions: $$H_{\mathrm{int}} = \frac{1}{2} \sum_{ijkl, \sigma\sigma^{\prime}} U_{ijkl}c^{\dagger}_{i\sigma}c^{\dagger}_{j\sigma^{\prime}}c_{l\sigma^{\prime}}c_{k\sigma}.$$

Parameters
tau_namesnames of the tau indices ['up', 'down']
dim_gammadimension of the blocks γ
U_intHubbard U
J_hundHund's J
spherical_to_dftrotation matrices from spherical Ylm basis to DFT orbital basis
dft_to_localrotation matrices from DFT basis to the local impurity basis

Definition at line 194 of file hamiltonians.cpp.

◆ U_matrix_in_local_basis()

nda::array< dcomplex, 4 > triqs::U_matrix_in_local_basis ( long  l,
nda::matrix< dcomplex s2l,
double  U_int,
double  J_hund 
)

#include <triqs_modest/hamiltonians.cpp>

Construct a four-index Coulomb tensor in a specific orbital basis.

Parameters
langular quantum number
s2lspherical to local basis rotation
U_intscreened Hubbard interaction
J_hundHund's coupling
Returns
nda::array<dcomplex, 4>

Definition at line 171 of file hamiltonians.cpp.

◆ U_matrix_in_spherical_basis()

nda::array< double, 4 > triqs::U_matrix_in_spherical_basis ( long  l,
double  U_int,
double  J_hund 
)

#include <triqs_modest/hamiltonians.cpp>

Construct a four-index Coulomb tensor in the basis of spherical harmonics.

We typically construct the four-index Coulomb tensor in the basis of spherical harmonics, $$ U_{m_{1}m_{2}m_{3}m_{4}}^{\mathrm{spherical}} = \sum_{k=0}^{2l} F_{k} \alpha (l, k, m_{1}, m_{2}, m_{3}, m_{4}),$$ where $F_{k}$ are radial Slater integrals and \(\alpha(l, k, m_{1}, m_{2}, m_{3}, m_{4})\) denote angular Racah-Wigner numbers for a spherically symmetric interaction tensor.

Parameters
langular quantum number
U_intscreend Hubbard interaction
J_hundHund's coupling
Returns
nda::array<double, 4>

Definition at line 158 of file hamiltonians.cpp.