TRIQS/triqs_modest 3.3.0
Modular Electronic Structure Toolkit
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 interaction Hamiltonian.
 
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 Slater Hamiltonian.
 

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 interaction Hamiltonian.

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 \( \gamma \).
U_intHubbard \( U \).
U_prime\( U' \) (typically \( U' = U - 2J \)).
J_hundKanamori \( J \).
Returns
Many-body operator representing the Hamiltonian.

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 \( \gamma \).
U_intHubbard \( U \).
U_prime\( U' \) (typically \( U' = U - 2J \)).
J_hundKanamori \( J \).
spin_flipSpin flip term.
pair_hoppingPair-hopping term.
Returns
Many-body operator representing the Hamiltonian.

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 Slater Hamiltonian.

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 tau indices ['up', 'down'].
dim_gammaDimension of the blocks \( \gamma \).
U_intHubbard \( U \).
J_hundHund's \( J \).
spherical_to_dftRotation matrices from spherical \( Y_l^m \) 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
Coulomb tensor.

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_intScreened Hubbard interaction.
J_hundHund's coupling.
Returns
Coulomb tensor.

Definition at line 158 of file hamiltonians.cpp.