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

Namespaces

namespace  dft_tools

Classes

struct  atomic_orbs
 Info on an atomic shell. More...
struct  band_dispersion
 The one-body dispersion as a function of momentum. More...
class  checkpoint
class  dc_solver
 Double counting "solver". More...
struct  downfolding_projector
 The projector that downfolds the energy bands onto a set of localized atomic-like orbitals. More...
struct  downfolding_projector_ext
class  embedding
 The embedding class. More...
struct  ibz_symmetry_ops
 Irreducible Brillouin Zone (IBZ) symmetry operations to symmetrize observables over the entire Brillouin zone. More...
struct  iteration_data
 Minimal iteration data required to restart a DMFT loop. More...
class  local_space
 Describe the atomic orbitals within downfolded \(\mathcal{C}\) space. More...
struct  one_body_elements_gw
 A one-body elements struct for GW (CoQui) calculations. More...
struct  one_body_elements_on_grid
 A one-body elements struct where all of the underlying data exists on a fixed momentum grid. More...
struct  one_body_elements_tb
 A one-body elements using a tight-binding Hamiltonian. More...
struct  spectral_function_kw
 Returns Tr (A) [σ,k,ω] for all k points in obe grid and all omega in Sigma mesh. More...
struct  spectral_function_w
 Store data of spectral functions. More...

Typedefs

using block_gf_imfreq_t = block_gf<imfreq, matrix_valued>
using block_gf_imtime_t = block_gf<imtime, matrix_valued>
using block_mat_t = std::vector<nda::matrix<dcomplex>>

Enumerations

enum class  DFTCode {
  Wien2k , QuantumEspresso , VASP , Elk ,
  W90 , Hk
}
 Enumeration of supported DFT codes. More...
enum class  ReadMode { Correlated , ThetaProjectors , Bands }
enum class  spin_kind_e { Polarized , NonPolarized , NonColinear }
 Kind of σ index. More...

Functions

one_body_elements_tb add_local_term (one_body_elements_tb const &obe, nda::matrix< dcomplex > const &local_term)
template std::vector< std::vector< long > > analyze_degenerate_blocks (block_gf< dlr_imfreq, matrix_valued > const &G, double threshold)
template std::vector< std::vector< long > > analyze_degenerate_blocks (block_gf< dlr_imtime, matrix_valued > const &G, double threshold)
template std::vector< std::vector< long > > analyze_degenerate_blocks (block_gf< imfreq, matrix_valued > const &G, double threshold)
template std::vector< std::vector< long > > analyze_degenerate_blocks (block_gf< imtime, matrix_valued > const &G, double threshold)
template<typename Mesh>
std::vector< std::vector< long > > analyze_degenerate_blocks (block_gf< Mesh, matrix_valued > const &Gimp, double threshold=1.e-5)
 Find the generate blocks of a block GF by analyzing \( G(\tau=0) \) or \( G(i\omega_0) \) using the union-find algorithm.
template nda::array< dcomplex, 4 > charge_density_correction (one_body_elements_on_grid const &obe, double mu, block2_gf< imfreq, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static)
template<typename Mesh>
nda::array< dcomplex, 4 > charge_density_correction (one_body_elements_on_grid const &obe, double mu, block2_gf< Mesh, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static)
 Compute the charge density correction from DMFT.
std::pair< double, double > dc_formulas (std::string const method, double const N_tot, double const N_sigma, long const n_orb, double const U, double const J)
 double counting formulas parameterized by density, U, and J
template<typename Mesh>
double density (one_body_elements_on_grid const &obe, double mu, block2_gf< Mesh, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static)
 Compute the density of the lattice Green's function with a self-energy using Woodbury.
template<typename Mesh>
double density (one_body_elements_tb const &obe, double mu, block2_gf< Mesh, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static, bz_int_options const &opt)
 Compute the density of the lattice Green's function with a self-energy.
template<typename Mesh>
double density (one_body_elements_tb const &obe, double mu, Mesh const &mesh, bz_int_options const &opt)
 Compute the density of the lattice Green's function without a self-energy.
double density_nk (one_body_elements_on_grid const &obe, double mu, double beta)
 Compute number of particles \( n = \sum f(\beta(\varepsilon(k) - μ)) \).
double density_nk_matrix_valued_impl (one_body_elements_on_grid const &obe, double mu, double beta)
std::pair< nda::array< std::vector< long >, 2 >, nda::array< nda::matrix< dcomplex >, 2 > > discover_symmetries (nda::array< nda::matrix< dcomplex >, 2 > const &Hloc0, std::vector< atomic_orbs > const &atomic_shells, double block_threshold, bool diagonalize_hloc)
 Find symmetries of the \( R = 0 \) component of a Hamiltonian to determine a GF block structure.
one_body_elements_tb extend_to_spin (one_body_elements_tb const &obe)
template<typename Mesh>
double find_chemical_potential (double const target_density, one_body_elements_on_grid const &obe, block2_gf< Mesh, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static, std::string method="dichotomy", double precision=1.e-5, bool verbosity=true)
 Find the chemical potenital from the local Green's function and self-energy given a target density.
double find_chemical_potential (double const target_density, one_body_elements_on_grid const &obe, double beta, std::string method="dichotomy", double precision=1.e-5, bool verbosity=true)
 Find the chemical potenital from the local Green's function given a target density.
template<typename Mesh>
double find_chemical_potential (double const target_density, one_body_elements_tb const &obe, block2_gf< Mesh, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static, bz_int_options const &opt, std::string method="dichotomy", double precision=1.e-5, bool verbosity=true)
 Find the chemical potenital from the local Green's function and self-energy given a target density.
template<typename Mesh>
double find_chemical_potential (double const target_density, one_body_elements_tb const &obe, Mesh const &mesh, bz_int_options const &opt, std::string method="dichotomy", double precision=1.e-5, bool verbosity=true)
 Find the chemical potenital from the local Green's function and self-energy given a target density.
one_body_elements_tb fold (superlattice const &sl, one_body_elements_tb const &obe)
 Convert a tight binding Hamiltonian to its superlattice equivalent.
auto format_as (embedding::imp_block_t const &p)
static std::pair< double, nda::vector< double > > get_total_density (spin_kind_e spin_kind, nda::array< nda::matrix< dcomplex >, 2 > const &density_matrix)
template block2_gf< dlr_imfreq, matrix_valued > gloc (dlr_imfreq const &mesh, one_body_elements_on_grid const &obe, double mu)
template block2_gf< imfreq, matrix_valued > gloc (imfreq const &mesh, one_body_elements_on_grid const &obe, double mu)
template block2_gf< dlr_imfreq, matrix_valued > gloc (one_body_elements_on_grid const &one_body, double mu, block2_gf< dlr_imfreq, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static)
template block2_gf< imfreq, matrix_valued > gloc (one_body_elements_on_grid const &one_body, double mu, block2_gf< imfreq, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static)
void h5_read (h5::group g, std::string const &name, atomic_orbs &shell)
void h5_read (h5::group g, std::string const &name, band_dispersion &bd)
void h5_read (h5::group g, std::string const &name, downfolding_projector &proj)
void h5_read (h5::group g, std::string const &name, embedding &embed)
void h5_read (h5::group g, std::string const &name, iteration_data &data)
void h5_read (h5::group g, std::string const &name, local_space &ls)
void h5_read (h5::group g, std::string const &name, one_body_elements_on_grid &x)
void h5_read (h5::group g, std::string const &name, spin_kind_e &spin_kind)
void h5_write (h5::group g, std::string const &name, atomic_orbs const &shell)
void h5_write (h5::group g, std::string const &name, band_dispersion const &bd)
void h5_write (h5::group g, std::string const &name, downfolding_projector const &proj)
void h5_write (h5::group g, std::string const &name, embedding const &embed)
void h5_write (h5::group g, std::string const &name, iteration_data const &data)
void h5_write (h5::group g, std::string const &name, local_space const &ls)
void h5_write (h5::group g, std::string const &name, one_body_elements_on_grid const &x)
void h5_write (h5::group g, std::string const &name, spin_kind_e const &spin_kind)
nda::array< nda::matrix< dcomplex >, 2 > Hloc (std::vector< tb_hk > const &H_sigma, std::vector< atomic_orbs > const &atomic_shells)
 Compute \( H_{\text{loc}} = H(R=0) \) given \( n_\sigma \) tight binding Hamiltonians.
template block_gf< dlr_imfreq, matrix_valued > hybridization (std::vector< nda::matrix< dcomplex > > const &epsilon_levels, block_gf< dlr_imfreq, matrix_valued > const &Gloc)
template block_gf< dlr_imfreq, matrix_valued > hybridization (std::vector< nda::matrix< dcomplex > > const &epsilon_levels, block_gf< dlr_imfreq, matrix_valued > const &Gloc, block_gf< dlr_imfreq, matrix_valued > const &Sigma_dynamic, std::vector< nda::matrix< dcomplex > > const &Sigma_static)
template block_gf< imfreq, matrix_valued > hybridization (std::vector< nda::matrix< dcomplex > > const &epsilon_levels, block_gf< imfreq, matrix_valued > const &Gloc)
template block_gf< imfreq, matrix_valued > hybridization (std::vector< nda::matrix< dcomplex > > const &epsilon_levels, block_gf< imfreq, matrix_valued > const &Gloc, block_gf< imfreq, matrix_valued > const &Sigma_dynamic, std::vector< nda::matrix< dcomplex > > const &Sigma_static)
template<typename Mesh>
block_gf< Mesh, matrix_valued > hybridization (std::vector< nda::matrix< dcomplex > > const &epsilon_levels, block_gf< Mesh, matrix_valued > const &Gloc)
 Compute the hybridization function from the effective impurity levels and the local Green's function.
template<typename Mesh>
block_gf< Mesh, matrix_valued > hybridization (std::vector< nda::matrix< dcomplex > > const &epsilon_levels, block_gf< Mesh, matrix_valued > const &Gloc, block_gf< Mesh, matrix_valued > const &Sigma_dynamic, std::vector< nda::matrix< dcomplex > > const &Sigma_static)
 Compute the hybridization function from the effective impurity levels, the local Green's function, and the impurity self-energy.
nda::array< nda::matrix< dcomplex >, 2 > impurity_levels (one_body_elements_on_grid const &obe)
 Compute the local impurity levels from the single-particle dispersion.
nda::array< nda::matrix< dcomplex >, 2 > impurity_levels (one_body_elements_tb const &obe)
 Compute the atomic (impurity) levels from an obe.
 INSTANTIATE (dlr_imfreq)
 INSTANTIATE (imfreq)
 INSTANTIATE (refreq)
nda::array< dcomplex, 4 > load_rotate_and_format_projectors (std::string const &filename, ReadMode mode, std::vector< cmat_t > const &rot_mats, std::vector< long > const &atom_decomp)
embedding make_embedding (std::vector< std::string > const &spin_names, nda::array< std::vector< long >, 2 > const &block_decomposition, std::vector< long > const &atom_to_imp)
embedding make_embedding_with_equivalences (local_space const &C_space, bool use_atom_decomp)
embedding make_embedding_with_no_equivalences (local_space const &C_space, bool use_atom_decomp)
long n_sigma_from_spin_kind (spin_kind_e sk)
 Number of σ channels for a given spin_kind_e.
std::ostream & operator<< (std::ostream &out, band_dispersion const &x)
std::ostream & operator<< (std::ostream &out, downfolding_projector const &x)
std::ostream & operator<< (std::ostream &out, embedding const &E)
std::ostream & operator<< (std::ostream &out, ibz_symmetry_ops const &ibz)
std::ostream & operator<< (std::ostream &out, local_space const &bd)
std::ostream & operator<< (std::ostream &out, one_body_elements_on_grid const &)
one_body_elements_on_grid permute_local_space (std::vector< std::vector< long > > const &atom_partition, one_body_elements_on_grid const &obe)
spectral_function_w projected_spectral_function (one_body_elements_on_grid const &obe_theta, downfolding_projector const &Proj, double mu, block2_gf< mesh::refreq, matrix_valued > const &Sigma_w, double broadening=0.01)
 Compute the atom- and orbital-resolved spectral function (interacting density of states).
std::vector< atomic_orbsread_atomic_shells (auto const &filename, ReadMode mode)
nda::array< long, 3 > read_band_window (std::string const &filename)
std::tuple< nda::array< dcomplex, 4 >, nda::matrix< long >, nda::array< double, 1 > > read_bands_and_weights (std::string filename, ReadMode mode)
ibz_symmetry_ops read_ibz_symmetry_ops (auto const &filename, ReadMode mode)
nda::array< double, 2 > read_kpts (std::string const &filename)
std::vector< cmat_tread_rotation_matrices (std::string const &filename, ReadMode mode)
nda::array< nda::matrix< dcomplex >, 1 > read_spherical_to_dft_basis (std::string dft, std::vector< atomic_orbs > const &atomic_shells)
spin_kind_e read_spin_kind (auto const &filename)
one_body_elements_tb rotate (one_body_elements_tb const &obe, nda::matrix< dcomplex > const &U)
 Rotate a tight-binding Hamiltonian by a unitary matrix \( U \).
ibz_symmetry_ops rotate_local_basis (nda::array< nda::matrix< dcomplex >, 2 > const &U, ibz_symmetry_ops const &x)
 Change basis.
one_body_elements_on_grid rotate_local_basis (nda::array< nda::matrix< dcomplex >, 2 > const &U, one_body_elements_on_grid const &x)
 Rotates the local basis of the downfolding projector.
long sigma_to_data_idx (spin_kind_e spin_kind, long sigma)
 Map a spin index to a data index.
nda::array< double, 4 > spectral_function (one_body_elements_on_grid const &obe, double mu, block2_gf< mesh::refreq, matrix_valued > const &Sigma_w, double broadening=0.01)
 Compute the k-summed band-resolved spectral function matrix.
spectral_function_kw spectral_function_on_high_symmetry_path (one_body_elements_on_grid const &obe, double mu, block2_gf< mesh::refreq, matrix_valued > const &Sigma_w, double broadening=0.01)
 Compute momentum-resolved spectral function \( A^\sigma(k, \omega) \) along high-symmetry path.
template block_gf< dlr_imfreq, matrix_valued > symmetrize (block_gf< dlr_imfreq, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
template block_gf< dlr_imtime, matrix_valued > symmetrize (block_gf< dlr_imtime, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
template block_gf< imfreq, matrix_valued > symmetrize (block_gf< imfreq, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
template block_gf< imtime, matrix_valued > symmetrize (block_gf< imtime, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
template<typename Mesh>
block_gf< Mesh, matrix_valued > symmetrize (block_gf< Mesh, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
 Symmetrize the blocks of a block Green's function given a list of it's degenerate blocks.
template gf< dlr_imfreq, matrix_valued > symmetrize (gf< dlr_imfreq, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
template gf< dlr_imtime, matrix_valued > symmetrize (gf< dlr_imtime, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
template gf< imfreq, matrix_valued > symmetrize (gf< imfreq, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
template gf< imtime, matrix_valued > symmetrize (gf< imtime, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
template<typename Mesh>
gf< Mesh, matrix_valued > symmetrize (gf< Mesh, matrix_valued > const &g, std::vector< std::vector< long > > deg_bls)
 Symmetrize the blocks of a block Green's function given a list of it's degenerate blocks.
std::vector< nda::matrix< dcomplex > > symmetrize (std::vector< nda::matrix< dcomplex > > const &bl_mat, std::vector< std::vector< long > > deg_bls)
 Symmetrize the blocks of a block matrix given a list of it's degenerate blocks.
Embedding factories functions

Factory functions to create the embedding class for different embedding scenarios. Typically, one will create the embedding from the local space.

embedding make_embedding (std::vector< std::string > const &spin_names, std::vector< std::vector< long > > const &block_decomposition, std::vector< long > const &atom_to_imp)
 Construct an embedding from spin names, a block decomposition per atom, and an atom-to-impurity mapping.
embedding make_embedding (local_space const &C_space, bool use_atom_equivalences=true, bool use_atom_decomp=false)
 Make an embedding from the local space.
std::pair< one_body_elements_on_grid, embeddingmake_embedding_with_clusters (one_body_elements_on_grid obe, std::vector< std::vector< long > > const &atom_partition)
 Make an embedding for clusters of atoms.
Local Green's function using a fixed k-grid
template<typename Mesh>
block2_gf< Mesh, matrix_valued > gloc (one_body_elements_on_grid const &obe, double mu, block2_gf< Mesh, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static)
 Compute local Green's function on a \( M \times M \) mesh.
template<typename Mesh>
block2_gf< Mesh, matrix_valued > gloc (Mesh const &mesh, one_body_elements_on_grid const &obe, double mu)
 Compute the local Green's function without a self-energy.
OBE factories using a fixed grid

Factory functions to create one_body_elements_on_grid

std::pair< double, one_body_elements_on_gridread_obe_from_dft_converter_hdf5 (std::string const &filename, double threshold, bool diagonalize_hloc)
std::pair< double, one_body_elements_on_gridone_body_elements_from_dft_converter (std::string const &filename, double threshold=1.e-5, bool diagonalize_hloc=false)
 Create a one-body elements with orthonormalized projectors.
one_body_elements_on_grid read_theta_projectors_for_obe (const std::string &filename, const one_body_elements_on_grid &obe)
one_body_elements_on_grid one_body_elements_with_theta_projectors (std::string const &filename, one_body_elements_on_grid const &obe)
 Create a one-body elements with the \( \Theta \) projectors.
one_body_elements_on_grid read_data_on_high_symm_path_for_obe (const std::string &filename, const one_body_elements_on_grid &obe)
one_body_elements_on_grid one_body_elements_on_high_symmetry_path (std::string const &filename, one_body_elements_on_grid const &obe)
 Create a one-body elements along specific k-path.
one_body_elements_gw make_one_body_elements_gw (std::string const &filename, double threshold=1e-5, bool diagonalize_hloc=false)
 Create a one-body elements for GW calculations with CoQui.
OBE factories using a TB Hamiltonian

Factory functions to create one_body_elements_on_tb

one_body_elements_tb one_body_elements_from_wannier90 (std::string const &wannier_file_path, spin_kind_e spin_kind, std::vector< atomic_orbs > atomic_shells)
 Construct a one-body elements TB object from Wannier90 in the case of a single spin index.
one_body_elements_tb one_body_elements_from_wannier90 (std::string const &wannier_file_path_up, std::string const &wannier_file_path_dn, spin_kind_e spin_kind, std::vector< atomic_orbs > atomic_shells)
 Construct a one-body elements TB object from Wannier90 in the case with separate spin up/spin down channels.
Local Green's function using a TB Hamiltonian
template<typename Mesh>
block2_gf< Mesh, matrix_valued > gloc (one_body_elements_tb const &obe, double mu, block2_gf< Mesh, matrix_valued > const &Sigma_dynamic, nda::array< nda::matrix< dcomplex >, 2 > const &Sigma_static, bz_int_options const &opt)
 Compute the local Green's function without a self-energy.
template<typename Mesh>
block2_gf< Mesh, matrix_valued > gloc (Mesh const &mesh, one_body_elements_tb const &obe, double mu, bz_int_options const &opt)
 Compute the local Green's function without a self-energy.

Typedef Documentation

◆ block_gf_imfreq_t

using triqs::modest::block_gf_imfreq_t = block_gf<imfreq, matrix_valued>

Definition at line 19 of file checkpoint.hpp.

◆ block_gf_imtime_t

using triqs::modest::block_gf_imtime_t = block_gf<imtime, matrix_valued>

Definition at line 20 of file checkpoint.hpp.

◆ block_mat_t

using triqs::modest::block_mat_t = std::vector<nda::matrix<dcomplex>>

Definition at line 21 of file checkpoint.hpp.

Enumeration Type Documentation

◆ DFTCode

enum class triqs::modest::DFTCode
strong

Enumeration of supported DFT codes.

Enumerator
Wien2k 
QuantumEspresso 
VASP 
Elk 
W90 
Hk 

Definition at line 14 of file utils.hpp.

◆ ReadMode

enum class triqs::modest::ReadMode
strong
Enumerator
Correlated 
ThetaProjectors 
Bands 

Definition at line 73 of file loaders.cpp.

◆ spin_kind_e

enum class triqs::modest::spin_kind_e
strong

Kind of σ index.

Enumerator
Polarized 
NonPolarized 
NonColinear 

Definition at line 19 of file local_space.hpp.

Function Documentation

◆ add_local_term()

one_body_elements_tb triqs::modest::add_local_term ( one_body_elements_tb const & obe,
nda::matrix< dcomplex > const & local_term )

Definition at line 196 of file obe_tb.cpp.

◆ analyze_degenerate_blocks() [1/4]

template std::vector< std::vector< long > > triqs::modest::analyze_degenerate_blocks ( block_gf< dlr_imfreq, matrix_valued > const & G,
double threshold )

◆ analyze_degenerate_blocks() [2/4]

template std::vector< std::vector< long > > triqs::modest::analyze_degenerate_blocks ( block_gf< dlr_imtime, matrix_valued > const & G,
double threshold )

◆ analyze_degenerate_blocks() [3/4]

template std::vector< std::vector< long > > triqs::modest::analyze_degenerate_blocks ( block_gf< imfreq, matrix_valued > const & G,
double threshold )

◆ analyze_degenerate_blocks() [4/4]

template std::vector< std::vector< long > > triqs::modest::analyze_degenerate_blocks ( block_gf< imtime, matrix_valued > const & G,
double threshold )

◆ charge_density_correction() [1/2]

template nda::array< dcomplex, 4 > triqs::modest::charge_density_correction ( one_body_elements_on_grid const & obe,
double mu,
block2_gf< imfreq, matrix_valued > const & Sigma_dynamic,
nda::array< nda::matrix< dcomplex >, 2 > const & Sigma_static )

◆ charge_density_correction() [2/2]

template<typename Mesh>
nda::array< dcomplex, 4 > triqs::modest::charge_density_correction ( one_body_elements_on_grid const & obe,
double mu,
block2_gf< Mesh, matrix_valued > const & Sigma_dynamic,
nda::array< nda::matrix< dcomplex >, 2 > const & Sigma_static )

Compute the charge density correction from DMFT.

Compute the charge density correction in the band basis \( N_{\nu\nu'}(\mathbf{k}) \) from the lattice Green's function.

Template Parameters
MeshThe mesh type
Parameters
obeThe one-body elements on the grid
muThe chemical potential
Sigma_dynamicThe dynamic part of the self-energy
Sigma_staticThe static part of the self-energy
Returns
The charge density correction in the band basis \( N_{\nu\nu'}(\mathbf{k}) \)

Definition at line 23 of file chargedensity.hpp.

◆ density_nk()

double triqs::modest::density_nk ( one_body_elements_on_grid const & obe,
double mu,
double beta )

Compute number of particles \( n = \sum f(\beta(\varepsilon(k) - μ)) \).

Definition at line 29 of file density.cpp.

◆ density_nk_matrix_valued_impl()

double triqs::modest::density_nk_matrix_valued_impl ( one_body_elements_on_grid const & obe,
double mu,
double beta )

Definition at line 10 of file density.cpp.

◆ discover_symmetries()

std::pair< nda::array< std::vector< long >, 2 >, nda::array< nda::matrix< dcomplex >, 2 > > triqs::modest::discover_symmetries ( nda::array< nda::matrix< dcomplex >, 2 > const & Hloc0,
std::vector< atomic_orbs > const & atomic_shells,
double block_threshold,
bool diagonalize_hloc )

Find symmetries of the \( R = 0 \) component of a Hamiltonian to determine a GF block structure.

Discovers (approximate) irreducible symmetries for Green's function from the non-interacting part of the local Hamiltonian ( \( H_0 = \sum_k P(k) H_{\nu\nu'} P^\dagger(k) \)), which represents the block structure of the TRIQS Gf.

Parameters
Hloc0The \( R = 0 \) part of the Hamiltonian as a vector of [n_atoms, n_sigma].
atomic_shellsThe list of atomic shells used to index \( H_{\text{loc}} \).
block_thresholdThe threshold of accuracy at which a symmetry is considered found.
diagonalize_hlocWhether or not to diagonalize \( H_{\text{loc}} \).
Returns
Decomposition, \( U_{\text{rotation}} \) describing the block structure of GF based on \( H_{\text{loc}} \).

Definition at line 44 of file loaders.cpp.

◆ extend_to_spin()

one_body_elements_tb triqs::modest::extend_to_spin ( one_body_elements_tb const & obe)

Definition at line 161 of file obe_tb.cpp.

◆ fold()

one_body_elements_tb triqs::modest::fold ( superlattice const & sl,
one_body_elements_tb const & obe )

Convert a tight binding Hamiltonian to its superlattice equivalent.

Parameters
slThe superlattice object containing its lattice vectors and locations of cluster points.
obeA one-body elements containing the TB Hamiltonian.
Returns
One-body elements based on the superlattice tight binding Hamiltonian.

Definition at line 125 of file obe_tb.cpp.

◆ format_as()

auto triqs::modest::format_as ( embedding::imp_block_t const & p)

Definition at line 94 of file printing.cpp.

◆ get_total_density()

std::pair< double, nda::vector< double > > triqs::modest::get_total_density ( spin_kind_e spin_kind,
nda::array< nda::matrix< dcomplex >, 2 > const & density_matrix )
static

Definition at line 57 of file double_counting.cpp.

◆ gloc() [1/4]

template block2_gf< dlr_imfreq, matrix_valued > triqs::modest::gloc ( dlr_imfreq const & mesh,
one_body_elements_on_grid const & obe,
double mu )

◆ gloc() [2/4]

template block2_gf< imfreq, matrix_valued > triqs::modest::gloc ( imfreq const & mesh,
one_body_elements_on_grid const & obe,
double mu )

◆ gloc() [3/4]

template block2_gf< dlr_imfreq, matrix_valued > triqs::modest::gloc ( one_body_elements_on_grid const & one_body,
double mu,
block2_gf< dlr_imfreq, matrix_valued > const & Sigma_dynamic,
nda::array< nda::matrix< dcomplex >, 2 > const & Sigma_static )

◆ gloc() [4/4]

template block2_gf< imfreq, matrix_valued > triqs::modest::gloc ( one_body_elements_on_grid const & one_body,
double mu,
block2_gf< imfreq, matrix_valued > const & Sigma_dynamic,
nda::array< nda::matrix< dcomplex >, 2 > const & Sigma_static )

◆ h5_read() [1/8]

void triqs::modest::h5_read ( h5::group g,
std::string const & name,
atomic_orbs & shell )

Definition at line 65 of file h5.cpp.

◆ h5_read() [2/8]

void triqs::modest::h5_read ( h5::group g,
std::string const & name,
band_dispersion & bd )

Definition at line 49 of file h5.cpp.

◆ h5_read() [3/8]

void triqs::modest::h5_read ( h5::group g,
std::string const & name,
downfolding_projector & proj )

Definition at line 34 of file h5.cpp.

◆ h5_read() [4/8]

void triqs::modest::h5_read ( h5::group g,
std::string const & name,
embedding & embed )

Definition at line 96 of file h5.cpp.

◆ h5_read() [5/8]

void triqs::modest::h5_read ( h5::group g,
std::string const & name,
iteration_data & data )
inline

Definition at line 46 of file checkpoint.hpp.

◆ h5_read() [6/8]

void triqs::modest::h5_read ( h5::group g,
std::string const & name,
local_space & ls )

Definition at line 81 of file h5.cpp.

◆ h5_read() [7/8]

void triqs::modest::h5_read ( h5::group g,
std::string const & name,
one_body_elements_on_grid & x )

Definition at line 113 of file h5.cpp.

◆ h5_read() [8/8]

void triqs::modest::h5_read ( h5::group g,
std::string const & name,
spin_kind_e & spin_kind )

Definition at line 23 of file h5.cpp.

◆ h5_write() [1/8]

void triqs::modest::h5_write ( h5::group g,
std::string const & name,
atomic_orbs const & shell )

Definition at line 72 of file h5.cpp.

◆ h5_write() [2/8]

void triqs::modest::h5_write ( h5::group g,
std::string const & name,
band_dispersion const & bd )

Definition at line 56 of file h5.cpp.

◆ h5_write() [3/8]

void triqs::modest::h5_write ( h5::group g,
std::string const & name,
downfolding_projector const & proj )

Definition at line 41 of file h5.cpp.

◆ h5_write() [4/8]

void triqs::modest::h5_write ( h5::group g,
std::string const & name,
embedding const & embed )

Definition at line 104 of file h5.cpp.

◆ h5_write() [5/8]

void triqs::modest::h5_write ( h5::group g,
std::string const & name,
iteration_data const & data )
inline

Definition at line 39 of file checkpoint.hpp.

◆ h5_write() [6/8]

void triqs::modest::h5_write ( h5::group g,
std::string const & name,
local_space const & ls )

Definition at line 88 of file h5.cpp.

◆ h5_write() [7/8]

void triqs::modest::h5_write ( h5::group g,
std::string const & name,
one_body_elements_on_grid const & x )

Definition at line 120 of file h5.cpp.

◆ h5_write() [8/8]

void triqs::modest::h5_write ( h5::group g,
std::string const & name,
spin_kind_e const & spin_kind )

Definition at line 28 of file h5.cpp.

◆ Hloc()

nda::array< nda::matrix< dcomplex >, 2 > triqs::modest::Hloc ( std::vector< tb_hk > const & H_sigma,
std::vector< atomic_orbs > const & atomic_shells )

Compute \( H_{\text{loc}} = H(R=0) \) given \( n_\sigma \) tight binding Hamiltonians.

Parameters
H_sigmaA list of TB Hamiltonians of length \( n_\sigma \).
atomic_shellsA list of atomic shells corresponding to the orbitals contained in the TB Hamiltonians.
Returns
\( H_{\text{loc}} \), formatted with dimensions \( [\alpha,\sigma] \) each containing (n_orbitals_atom, n_orbitals_atom).

Definition at line 82 of file obe_tb.cpp.

◆ hybridization() [1/4]

template block_gf< dlr_imfreq, matrix_valued > triqs::modest::hybridization ( std::vector< nda::matrix< dcomplex > > const & epsilon_levels,
block_gf< dlr_imfreq, matrix_valued > const & Gloc )

◆ hybridization() [2/4]

template block_gf< dlr_imfreq, matrix_valued > triqs::modest::hybridization ( std::vector< nda::matrix< dcomplex > > const & epsilon_levels,
block_gf< dlr_imfreq, matrix_valued > const & Gloc,
block_gf< dlr_imfreq, matrix_valued > const & Sigma_dynamic,
std::vector< nda::matrix< dcomplex > > const & Sigma_static )

◆ hybridization() [3/4]

template block_gf< imfreq, matrix_valued > triqs::modest::hybridization ( std::vector< nda::matrix< dcomplex > > const & epsilon_levels,
block_gf< imfreq, matrix_valued > const & Gloc )

◆ hybridization() [4/4]

template block_gf< imfreq, matrix_valued > triqs::modest::hybridization ( std::vector< nda::matrix< dcomplex > > const & epsilon_levels,
block_gf< imfreq, matrix_valued > const & Gloc,
block_gf< imfreq, matrix_valued > const & Sigma_dynamic,
std::vector< nda::matrix< dcomplex > > const & Sigma_static )

◆ INSTANTIATE() [1/3]

triqs::modest::INSTANTIATE ( dlr_imfreq )

◆ INSTANTIATE() [2/3]

triqs::modest::INSTANTIATE ( imfreq )

◆ INSTANTIATE() [3/3]

triqs::modest::INSTANTIATE ( refreq )

◆ load_rotate_and_format_projectors()

nda::array< dcomplex, 4 > triqs::modest::load_rotate_and_format_projectors ( std::string const & filename,
ReadMode mode,
std::vector< cmat_t > const & rot_mats,
std::vector< long > const & atom_decomp )

Definition at line 111 of file loaders.cpp.

◆ make_embedding() [1/2]

embedding triqs::modest::make_embedding ( std::vector< std::string > const & spin_names,
nda::array< std::vector< long >, 2 > const & block_decomposition,
std::vector< long > const & atom_to_imp )

Definition at line 40 of file embedding.cpp.

◆ make_embedding() [2/2]

embedding triqs::modest::make_embedding ( std::vector< std::string > const & spin_names,
std::vector< std::vector< long > > const & block_decomposition,
std::vector< long > const & atom_to_imp )

Construct an embedding from spin names, a block decomposition per atom, and an atom-to-impurity mapping.

Parameters
spin_namesThe names of the spin indices (e.g., {"up", "down"}).
block_decompositionBlock sizes for each atom: block_decomposition[atom] is a vector of block sizes. Atoms mapped to the same impurity must have identical decompositions.
atom_to_impMapping from atom index to impurity index. Atoms with the same value share a solver.
Returns
Embedding object.

Definition at line 93 of file embedding.cpp.

◆ make_embedding_with_equivalences()

embedding triqs::modest::make_embedding_with_equivalences ( local_space const & C_space,
bool use_atom_decomp )

Definition at line 104 of file embedding.cpp.

◆ make_embedding_with_no_equivalences()

embedding triqs::modest::make_embedding_with_no_equivalences ( local_space const & C_space,
bool use_atom_decomp )

Definition at line 129 of file embedding.cpp.

◆ n_sigma_from_spin_kind()

long triqs::modest::n_sigma_from_spin_kind ( spin_kind_e sk)
inline

Number of σ channels for a given spin_kind_e.

Definition at line 26 of file local_space.hpp.

◆ operator<<() [1/6]

std::ostream & triqs::modest::operator<< ( std::ostream & out,
band_dispersion const & x )

Definition at line 18 of file printing.cpp.

◆ operator<<() [2/6]

std::ostream & triqs::modest::operator<< ( std::ostream & out,
downfolding_projector const & x )

Definition at line 30 of file printing.cpp.

◆ operator<<() [3/6]

std::ostream & triqs::modest::operator<< ( std::ostream & out,
embedding const & E )

Definition at line 167 of file printing.cpp.

◆ operator<<() [4/6]

std::ostream & triqs::modest::operator<< ( std::ostream & out,
ibz_symmetry_ops const & ibz )

Definition at line 67 of file printing.cpp.

◆ operator<<() [5/6]

std::ostream & triqs::modest::operator<< ( std::ostream & out,
local_space const & bd )

Definition at line 39 of file printing.cpp.

◆ operator<<() [6/6]

std::ostream & triqs::modest::operator<< ( std::ostream & out,
one_body_elements_on_grid const & obe )

Definition at line 77 of file printing.cpp.

◆ permute_local_space()

one_body_elements_on_grid triqs::modest::permute_local_space ( std::vector< std::vector< long > > const & atom_partition,
one_body_elements_on_grid const & obe )

Definition at line 50 of file downfolding.cpp.

◆ read_atomic_shells()

std::vector< atomic_orbs > triqs::modest::read_atomic_shells ( auto const & filename,
ReadMode mode )

Definition at line 190 of file loaders.cpp.

◆ read_band_window()

nda::array< long, 3 > triqs::modest::read_band_window ( std::string const & filename)

Definition at line 166 of file loaders.cpp.

◆ read_bands_and_weights()

std::tuple< nda::array< dcomplex, 4 >, nda::matrix< long >, nda::array< double, 1 > > triqs::modest::read_bands_and_weights ( std::string filename,
ReadMode mode )

Definition at line 152 of file loaders.cpp.

◆ read_data_on_high_symm_path_for_obe()

C2PY_IGNORE one_body_elements_on_grid triqs::modest::read_data_on_high_symm_path_for_obe ( const std::string & filename,
const one_body_elements_on_grid & obe )

Definition at line 402 of file loaders.cpp.

◆ read_ibz_symmetry_ops()

ibz_symmetry_ops triqs::modest::read_ibz_symmetry_ops ( auto const & filename,
ReadMode mode )

Definition at line 212 of file loaders.cpp.

◆ read_kpts()

nda::array< double, 2 > triqs::modest::read_kpts ( std::string const & filename)

Definition at line 174 of file loaders.cpp.

◆ read_obe_from_dft_converter_hdf5()

C2PY_IGNORE std::pair< double, one_body_elements_on_grid > triqs::modest::read_obe_from_dft_converter_hdf5 ( std::string const & filename,
double threshold,
bool diagonalize_hloc )

Definition at line 262 of file loaders.cpp.

◆ read_rotation_matrices()

std::vector< cmat_t > triqs::modest::read_rotation_matrices ( std::string const & filename,
ReadMode mode )

Definition at line 81 of file loaders.cpp.

◆ read_spherical_to_dft_basis()

nda::array< nda::matrix< dcomplex >, 1 > triqs::modest::read_spherical_to_dft_basis ( std::string dft,
std::vector< atomic_orbs > const & atomic_shells )

Definition at line 202 of file loaders.cpp.

◆ read_spin_kind()

spin_kind_e triqs::modest::read_spin_kind ( auto const & filename)

Definition at line 182 of file loaders.cpp.

◆ read_theta_projectors_for_obe()

C2PY_IGNORE one_body_elements_on_grid triqs::modest::read_theta_projectors_for_obe ( const std::string & filename,
const one_body_elements_on_grid & obe )

Definition at line 358 of file loaders.cpp.

◆ rotate()

one_body_elements_tb triqs::modest::rotate ( one_body_elements_tb const & obe,
nda::matrix< dcomplex > const & U )

Rotate a tight-binding Hamiltonian by a unitary matrix \( U \).

The rotation is performed as \( H' = U H U^\dagger \).

Parameters
obeOne-body elements containing the TB Hamiltonian.
UUnitary matrix used for the rotation.
Returns
One-body elements containing the rotated TB Hamiltonian.

Definition at line 142 of file obe_tb.cpp.

◆ rotate_local_basis() [1/2]

ibz_symmetry_ops triqs::modest::rotate_local_basis ( nda::array< nda::matrix< dcomplex >, 2 > const & U,
ibz_symmetry_ops const & x )
inline

Change basis.

Parameters
URotations by block in atomic decomposition
xibz_symmetry_ops to rotate
Returns
A new symmetrizer operating in the rotated basis U^† U

Definition at line 134 of file ibz_symmetry_ops.hpp.

◆ rotate_local_basis() [2/2]

one_body_elements_on_grid triqs::modest::rotate_local_basis ( nda::array< nda::matrix< dcomplex >, 2 > const & U,
one_body_elements_on_grid const & x )

Rotates the local basis of the downfolding projector.

Definition at line 42 of file downfolding.cpp.

◆ sigma_to_data_idx()

long triqs::modest::sigma_to_data_idx ( spin_kind_e spin_kind,
long sigma )
inlinenodiscard

Map a spin index to a data index.

The mapping depends on the spin kind:

  • Polarized: \( \sigma \to \sigma \) (an object can have different values for different \( \sigma \)).
  • NonPolarized: \( \sigma \to 0 \) (an object is the same for both \( \sigma \), so only one copy is stored).
  • NonCollinear: \( \sigma \to 0 \) ( \( \sigma \) is always 0).

Definition at line 25 of file downfolding.hpp.

◆ symmetrize() [1/8]

template block_gf< dlr_imfreq, matrix_valued > triqs::modest::symmetrize ( block_gf< dlr_imfreq, matrix_valued > const & g,
std::vector< std::vector< long > > deg_bls )

◆ symmetrize() [2/8]

template block_gf< dlr_imtime, matrix_valued > triqs::modest::symmetrize ( block_gf< dlr_imtime, matrix_valued > const & g,
std::vector< std::vector< long > > deg_bls )

◆ symmetrize() [3/8]

template block_gf< imfreq, matrix_valued > triqs::modest::symmetrize ( block_gf< imfreq, matrix_valued > const & g,
std::vector< std::vector< long > > deg_bls )

◆ symmetrize() [4/8]

template block_gf< imtime, matrix_valued > triqs::modest::symmetrize ( block_gf< imtime, matrix_valued > const & g,
std::vector< std::vector< long > > deg_bls )

◆ symmetrize() [5/8]

template gf< dlr_imfreq, matrix_valued > triqs::modest::symmetrize ( gf< dlr_imfreq, matrix_valued > const & g,
std::vector< std::vector< long > > deg_bls )

◆ symmetrize() [6/8]

template gf< dlr_imtime, matrix_valued > triqs::modest::symmetrize ( gf< dlr_imtime, matrix_valued > const & g,
std::vector< std::vector< long > > deg_bls )

◆ symmetrize() [7/8]

template gf< imfreq, matrix_valued > triqs::modest::symmetrize ( gf< imfreq, matrix_valued > const & g,
std::vector< std::vector< long > > deg_bls )

◆ symmetrize() [8/8]

template gf< imtime, matrix_valued > triqs::modest::symmetrize ( gf< imtime, matrix_valued > const & g,
std::vector< std::vector< long > > deg_bls )