7#include <triqs/gfs.hpp>
39 nda::array<dcomplex, 4>
H_k;
63 [[nodiscard]] nda::matrix_const_view<dcomplex>
H(
long sigma,
long k_idx)
const {
66 return H_k(k_idx, sigma_p, R_nu, R_nu);
73 [[nodiscard]]
long n_k()
const {
return H_k.extent(0); }
113 nda::array<dcomplex, 4>
P_k;
132 [[nodiscard]] nda::matrix_const_view<dcomplex>
P(
long sigma,
long k_idx)
const {
135 return P_k(k_idx, sigma_p,
r_all, R_nu);
157 std::ostream &
operator<<(std::ostream &out, one_body_elements_on_grid
const &);
158 void h5_read(h5::group g, std::string
const &name, one_body_elements_on_grid &x);
159 void h5_write(h5::group g, std::string
const &name, one_body_elements_on_grid
const &x);
162 one_body_elements_on_grid
permute_local_space(std::vector<std::vector<long>>
const &atom_partition, one_body_elements_on_grid
const &x);
166 one_body_elements_on_grid
rotate_local_basis(nda::array<nda::matrix<dcomplex>, 2>
const &U, one_body_elements_on_grid
const &x);
178 nda::array<nda::matrix<dcomplex>, 2>
impurity_levels(one_body_elements_on_grid
const &obe);
184 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,
185 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)
Map a spin index to a data index.
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
Number of bands for each k-point and .
nda::array< double, 1 > k_weights
Weight in the BZ for each k-point.
nda::array< dcomplex, 4 > H_k
Hamiltonian .
long n_k() const
Number of k-points in the grid.
friend std::ostream & operator<<(std::ostream &out, band_dispersion const &bd)
Print information about a band_dispersion object.
long N_nu(long sigma, long k_idx) const
Number of bands for a given k-point and spin .
nda::matrix_const_view< dcomplex > H(long sigma, long k_idx) const
Get for a given and .
spin_kind_e spin_kind
Spin kind of the one-body data.
The projector that downfolds the energy bands onto a set of localized atomic-like orbitals.
nda::matrix_const_view< dcomplex > P(long sigma, long k_idx) const
Get for a given and .
spin_kind_e spin_kind
Spin kind of the one-body data.
nda::array< dcomplex, 4 > P_k
Projector .
friend std::ostream & operator<<(std::ostream &out, downfolding_projector const &proj)
Print information about a downfolding_projector object.
nda::array< long, 2 > n_bands_per_k
Number of bands for each k-point and .
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.
local_space C_space
Local space.
band_dispersion H
Band dispersion.
downfolding_projector P
Downfolding projector .
C2PY_IGNORE std::optional< ibz_symmetry_ops > ibz_symm_ops
IBZ symmetrizer after a k-sum.