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

Namespaces

namespace  gfs
 
namespace  modest
 

Classes

class  indented_ostream
 A custom output stream that automatically indents each new line by a specified number of spaces. More...
 
struct  kanamori_params
 
class  ostream_with_verbosity
 FIXME : MERGE : replace triqs::report_steam, -> merge + alias. More...
 
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)
 
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 = typedef nda::array<nda::matrix<dcomplex>, 2>

Definition at line 16 of file embedding.hpp.

◆ block_matrix_t

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

Definition at line 15 of file embedding.hpp.

◆ cmat_t

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

Definition at line 38 of file defs.hpp.

◆ cmat_vt

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

Definition at line 39 of file defs.hpp.

◆ op_name

using triqs::op_name = typedef 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_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

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

Definition at line 40 of file defs.hpp.