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

Namespaces

namespace  gfs
namespace  modest

Classes

struct  kanamori_params
class  scoped_timer
 A utility class for measuring the execution time of a scope. More...

Typedefs

using block2_matrix_t = nda::array<nda::matrix<dcomplex>, 2>
using block_matrix_t = std::vector<nda::matrix<dcomplex>>
using cmat_t = nda::matrix<dcomplex>
using cmat_vt = nda::matrix_view<dcomplex>

Functions

template<std::ranges::input_range R>
bool all_equal (R const &r)
 Determines if all elements in the given range are equal.
generator< std::pair< long, nda::range > > enumerated_sub_slices (auto sub_div)
template<typename Mesh>
block2_gf< Mesh, matrix_valued > make_block2_gf (Mesh const &mesh, gf_struct2_t const &gf_s)
std::map< op_name, op_namemake_op_map (auto const &spin_names, auto const &orb_dims)
nda::array< dcomplex, 4 > rotate_U_matrix_slater (nda::array< double, 4 > const &Uspherical, nda::matrix< dcomplex > sph_to_local)
template<typename T>
auto to_vector (auto &&gen)
Coulomb tensor utilities

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

std::pair< nda::matrix< double >, nda::matrix< double > > 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< double, 4 > U_matrix_slater_spherical (long l, double U_int, double J_hund)
 Construct a four-index Coulomb tensor in the basis of spherical harmonics.
nda::array< dcomplex, 4 > 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.

Variables

static constexpr auto r_all = nda::range::all

Hamiltonians

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

using op_name = std::pair<std::string, int>
operators::many_body_operator rename_op (operators::many_body_operator const &op, std::map< op_name, op_name > const &op_map)
operators::many_body_operator 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 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 h_int_slater (nda::array< dcomplex, 4 > const &Umatrix, int const &n_orb, std::vector< std::string > const &spin_names)
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=true, bool pair_hopping=true)
 Construct a Hubbard-Kanamori Hamiltonian.
operators::many_body_operator 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 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.

Typedef Documentation

◆ block2_matrix_t

using triqs::block2_matrix_t = nda::array<nda::matrix<dcomplex>, 2>

Definition at line 18 of file embedding.hpp.

◆ block_matrix_t

using triqs::block_matrix_t = std::vector<nda::matrix<dcomplex>>

Definition at line 17 of file embedding.hpp.

◆ cmat_t

using triqs::cmat_t = nda::matrix<dcomplex>

Definition at line 31 of file defs.hpp.

◆ cmat_vt

using triqs::cmat_vt = nda::matrix_view<dcomplex>

Definition at line 32 of file defs.hpp.

◆ op_name

using triqs::op_name = std::pair<std::string, int>

Definition at line 69 of file hamiltonians.hpp.

Function Documentation

◆ all_equal()

template<std::ranges::input_range R>
bool triqs::all_equal ( R const & r)

Determines if all elements in the given range are equal.

Template Parameters
RA type that satisfies the std::ranges::input_range concept.
Parameters
rThe input range to check.
Returns
True if all elements in the range are equal, false otherwise.

This function uses std::ranges::adjacent_find with a predicate that checks for inequality. If no such adjacent elements are found, it implies all elements in the range are equal.

Definition at line 22 of file range_supp.hpp.

◆ enumerated_sub_slices()

generator< std::pair< long, nda::range > > triqs::enumerated_sub_slices ( auto sub_div)
inline
Parameters
sub_divList of block dimensions as longs (vector, range, generator)
Returns
Generator of (block dim, corresponding range in the matrix)

Definition at line 19 of file enumerate_slice.hpp.

◆ h_int_density()

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 )

Definition at line 187 of file hamiltonians.cpp.

◆ h_int_kanamori()

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 )

Definition at line 149 of file hamiltonians.cpp.

◆ h_int_slater()

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 )

Definition at line 195 of file hamiltonians.cpp.

◆ make_block2_gf()

template<typename Mesh>
block2_gf< Mesh, matrix_valued > triqs::gfs::make_block2_gf ( Mesh const & mesh,
gf_struct2_t const & gf_s )

Definition at line 41 of file gf_supp.hpp.

◆ make_op_map()

std::map< op_name, op_name > triqs::make_op_map ( auto const & spin_names,
auto const & orb_dims )

Definition at line 75 of file hamiltonians.cpp.

◆ rename_op()

operators::many_body_operator triqs::rename_op ( operators::many_body_operator const & op,
std::map< op_name, op_name > const & op_map )

Definition at line 86 of file hamiltonians.cpp.

◆ rotate_U_matrix_slater()

nda::array< dcomplex, 4 > triqs::rotate_U_matrix_slater ( nda::array< double, 4 > const & Uspherical,
nda::matrix< dcomplex > sph_to_local )

Definition at line 131 of file hamiltonians.cpp.

◆ to_vector()

template<typename T>
auto triqs::to_vector ( auto && gen)

Definition at line 11 of file to_vector.hpp.

Variable Documentation

◆ r_all

auto triqs::r_all = nda::range::all
staticconstexpr

Definition at line 33 of file defs.hpp.