TRIQS/triqs_modest 3.3.0
Brillouin zone summation
Loading...
Searching...
No Matches
hamiltonians.hpp
Go to the documentation of this file.
1// Copyright (c) 2025--present, The Simons Foundation
2// This file is part of TRIQS/modest and is licensed under the terms of GPLv3 or later.
3// SPDX-License-Identifier: GPL-3.0-or-later
4// See LICENSE in the root of this distribution for details.
5
6#pragma once
7#include <triqs/gfs.hpp>
8#include <triqs/operators.hpp>
9#include <triqs/operators/many_body_operator.hpp>
10
11using namespace triqs::gfs;
12
13namespace triqs {
14
19
31 operators::many_body_operator make_density_density(std::vector<std::string> const &tau_names, std::vector<long> const &dim_gamma, double U_int,
32 double U_prime, double J_hund);
33
49 operators::many_body_operator make_kanamori(std::vector<std::string> const &tau_names, std::vector<long> const &dim_gamma, double U_int,
50 double U_prime, double J_hund, bool spin_flip = true, bool pair_hopping = true);
64 operators::many_body_operator make_slater(std::vector<std::string> const &tau_names, std::vector<long> const &dim_gamma, double U_int,
65 double J_hund, nda::matrix<dcomplex> const &spherical_to_dft,
66 std::optional<nda::matrix<dcomplex>> const &dft_to_local);
68
73
86 nda::array<double, 4> U_matrix_in_spherical_basis(long l, double U_int, double J_hund);
87
98 nda::array<dcomplex, 4> U_matrix_in_local_basis(long l, nda::matrix<dcomplex> s2l, double U_int, double J_hund);
100
101} // namespace triqs
operators::many_body_operator make_density_density(const std::vector< std::string > &tau_names, const std::vector< long > &dim_gamma, double U_int, double U_prime, double J_hund)
Construct a density-density interation.
operators::many_body_operator 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.
nda::array< dcomplex, 4 > 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.
nda::array< double, 4 > 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.
operators::many_body_operator 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, bool pair_hopping)
Construct a Hubbard-Kanamori Hamiltonian.