TRIQS/triqs_modest 3.3.0
Modular Electronic Structure Toolkit
Loading...
Searching...
No Matches
hamiltonians.cpp File Reference
#include "./hamiltonians.hpp"
#include <itertools/enumerate.hpp>
#include <triqs/operators/many_body_operator.hpp>
#include <algorithm>
#include "utils/defs.hpp"

Go to the source code of this file.

Namespaces

namespace  triqs
 

Functions

std::map< op_name, op_nametriqs::make_op_map (auto const &spin_names, auto const &orb_dims)
 
nda::array< dcomplex, 4 > triqs::rotate_U_matrix_slater (nda::array< double, 4 > const &Uspherical, nda::matrix< dcomplex > sph_to_local)
 
Hamiltonians

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

operators::many_body_operator triqs::h_int_density (nda::matrix< double > const &Umat, nda::matrix< double > const &Upmat, double const &J_hund, int const &n_orb, std::vector< std::string > const &spin_names)
 
operators::many_body_operator triqs::h_int_kanamori (nda::matrix< double > const &Umat, nda::matrix< double > const &Upmat, double const &J_hund, int const &n_orb, std::vector< std::string > const &spin_names, kanamori_params const &params)
 
operators::many_body_operator triqs::h_int_slater (nda::array< dcomplex, 4 > const &Umatrix, int const &n_orb, std::vector< std::string > const &spin_names)
 
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.
 
operators::many_body_operator triqs::rename_op (operators::many_body_operator const &op, std::map< op_name, op_name > const &op_map)
 
Coulomb tensor utilities

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

std::pair< nda::matrix< double >, nda::matrix< double > > triqs::U_matrix_kanamori (long n_orb, double U_int, double U_prime, double J_hund)
 construct the Kanamori two-index interaction matrix for parallel and anti-parallel spins.
 
nda::array< dcomplex, 4 > triqs::U_matrix_slater_local (long l, nda::matrix< dcomplex > s2l, double U_int, double J_hund)
 Construct a four-index Coulomb tensor in a specific orbital basis.
 
nda::array< double, 4 > triqs::U_matrix_slater_spherical (long l, double U_int, double J_hund)
 Construct a four-index Coulomb tensor in the basis of spherical harmonics.