mirror of
https://github.com/triqs/dft_tools
synced 2024-12-22 20:34:38 +01:00
Bugfix for analyse_block_structure in sumk_dft
This caused inconsistencies between the shapes of Hloc and density_matrix, since they were in the shape of n_corr_shells vs n_inequiv_shells, respectively.
This commit is contained in:
parent
3fd1295b91
commit
e2b9a94297
@ -851,11 +851,11 @@ class SumkDFT(object):
|
|||||||
If include_shells is not provided all correlated shells will be analysed.
|
If include_shells is not provided all correlated shells will be analysed.
|
||||||
dm : list of dict, optional
|
dm : list of dict, optional
|
||||||
List of density matrices from which block stuctures are to be analysed.
|
List of density matrices from which block stuctures are to be analysed.
|
||||||
Each density matrix is a dict {block names: 2d numpy arrays}.
|
Each density matrix is a dict {block names: 2d numpy arrays} for each correlated shell.
|
||||||
If not provided, dm will be calculated from the DFT Hamiltonian by a simple-point BZ integration.
|
If not provided, dm will be calculated from the DFT Hamiltonian by a simple-point BZ integration.
|
||||||
hloc : list of dict, optional
|
hloc : list of dict, optional
|
||||||
List of local Hamiltonian matrices from which block stuctures are to be analysed
|
List of local Hamiltonian matrices from which block stuctures are to be analysed
|
||||||
Each Hamiltonian is a dict {block names: 2d numpy arrays}.
|
Each Hamiltonian is a dict {block names: 2d numpy arrays} for each inequivalent shell.
|
||||||
If not provided, it will be calculated using eff_atomic_levels.
|
If not provided, it will be calculated using eff_atomic_levels.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -871,8 +871,6 @@ class SumkDFT(object):
|
|||||||
for ish in range(self.n_inequiv_shells)]
|
for ish in range(self.n_inequiv_shells)]
|
||||||
if hloc is None:
|
if hloc is None:
|
||||||
hloc = self.eff_atomic_levels()
|
hloc = self.eff_atomic_levels()
|
||||||
H_loc = [hloc[self.corr_to_inequiv[ish]]
|
|
||||||
for ish in range(self.n_corr_shells)]
|
|
||||||
|
|
||||||
if include_shells is None:
|
if include_shells is None:
|
||||||
include_shells = list(range(self.n_inequiv_shells))
|
include_shells = list(range(self.n_inequiv_shells))
|
||||||
@ -882,7 +880,7 @@ class SumkDFT(object):
|
|||||||
n_orb = self.corr_shells[self.inequiv_to_corr[ish]]['dim']
|
n_orb = self.corr_shells[self.inequiv_to_corr[ish]]['dim']
|
||||||
# gives an index list of entries larger that threshold
|
# gives an index list of entries larger that threshold
|
||||||
dmbool = (abs(dens_mat[ish][sp]) > threshold)
|
dmbool = (abs(dens_mat[ish][sp]) > threshold)
|
||||||
hlocbool = (abs(H_loc[ish][sp]) > threshold)
|
hlocbool = (abs(hloc[ish][sp]) > threshold)
|
||||||
|
|
||||||
# Determine off-diagonal entries in upper triangular part of
|
# Determine off-diagonal entries in upper triangular part of
|
||||||
# density matrix
|
# density matrix
|
||||||
|
Loading…
Reference in New Issue
Block a user