7#include <triqs/gfs.hpp>
29 nda::array<dcomplex, 4>
H_k;
46 [[nodiscard]] nda::matrix_const_view<dcomplex>
H(
long sigma,
long k_idx)
const {
49 return H_k(k_idx, sigma_p, R_nu, R_nu);
56 [[nodiscard]]
long n_k()
const {
return H_k.extent(0); }
74 nda::array<dcomplex, 4>
P_k;
85 [[nodiscard]] nda::matrix_const_view<dcomplex>
P(
long sigma,
long k_idx)
const {
88 return P_k(k_idx, sigma_p,
r_all, R_nu);
108 std::ostream &
operator<<(std::ostream &out, one_body_elements_on_grid
const &);
109 void h5_read(h5::group g, std::string
const &name, one_body_elements_on_grid &x);
110 void h5_write(h5::group g, std::string
const &name, one_body_elements_on_grid
const &x);
113 one_body_elements_on_grid
permute_local_space(std::vector<std::vector<long>>
const &atom_partition, one_body_elements_on_grid
const &x);
117 one_body_elements_on_grid
rotate_local_basis(nda::array<nda::matrix<dcomplex>, 2>
const &U, one_body_elements_on_grid
const &x);
129 nda::array<nda::matrix<dcomplex>, 2>
impurity_levels(one_body_elements_on_grid
const &obe);
135 nda::array<dcomplex, 3> G0_C_k_sigma(one_body_elements_on_grid
const &obe,
double mu,
long k_idx,
long sigma, std::vector<dcomplex>
const &omegas,
136 bool mu_derivative =
false);
Describe the atomic orbitals within downfolded space.
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.
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.
std::ostream & operator<<(std::ostream &out, one_body_elements_on_grid const &)
void h5_write(h5::group g, std::string const &name, initial_data const &data)
long sigma_to_data_idx(spin_kind_e spin_kind, long sigma)
spin_kind_e
Kind of σ index.
one_body_elements_on_grid permute_local_space(std::vector< std::vector< long > > const &atom_partition, one_body_elements_on_grid const &obe)
void h5_read(h5::group g, std::string const &name, initial_data &data)
static constexpr auto r_all
The one-body dispersion as a function of momentum.
bool matrix_valued
Is the dispersion matrix-valued?
nda::array< long, 2 > n_bands_per_k
n_bands_per_k [k_idx, σ'] = # of nu
nda::array< double, 1 > k_weights
k_weights[k_idx]
nda::array< dcomplex, 4 > H_k
H_k [k_idx, σ', nu, nu'].
long n_k() const
Number of k points in the grid.
friend std::ostream & operator<<(std::ostream &out, band_dispersion const &bd)
printing
long N_nu(long sigma, long k_idx) const
Number of bands #ν
nda::matrix_const_view< dcomplex > H(long sigma, long k_idx) const
H^σ(k)_ν, returned as a MATRIX in (ν, ν)
spin_kind_e spin_kind
Spin kind of the one-body data.
The projector that downfolds the one-body dispersion (ν) onto local orbitals (m).
nda::matrix_const_view< dcomplex > P(long sigma, long k_idx) const
P^σ(k)_mν, returned as a matrix in (m ν)
nda::array< dcomplex, 4 > P_k
Pk[alpha][k_idx, σ', m_alpha, nu].
friend std::ostream & operator<<(std::ostream &out, downfolding_projector const &proj)
printing
nda::array< long, 2 > n_bands_per_k
n_bands_per_k [k_idx, σ'] = # of nu
downfolding_projector rotate_local_basis(nda::array< nda::matrix< dcomplex >, 2 > const &U) const
Rotates the local basis of the downfolding projector.
A one-body elements struct where all of the underlying data exists on a fixed momentum grid.
C2PY_IGNORE std::optional< ibz_symmetry_ops > ibz_symm_ops
IBZ symmetrizer after a k-sum.