* previously the default gf_struct_solver had keys up / down,
inconsistent with the default behavior after analyse_block_structure was
run: up_0 / down_0. Now the default solver structure always has the _0
in the key.
* old behavior resulted in error when analyse_block_structure was called
twice
* fixed analyse block structure tests with new changes
* to correctly use analyse_block_structure use now
extract_G_loc(transform_to_solver_blocks=False)
* changed density_matrix function to use directly extract_G_loc() if
using_gf is selected.
* print deprecation warning in density_matrix, same can be achieved via
extract_G_loc and [G.density() for G in Gloc]
* new function density_matrix_using_point_integration()
* enforce in analyse block structure that input dm or G is list with
length of n_corr_shells
* correct doc string for how include_shells are given
* fixed other tests accordingly
* fixed small bug in initial block structure regarding length of lists
In coordination with M. Aichorn and O. Peil we decided to change the
default of the normion to False. This is closed to the behavior of the
other converters w90, elk, and wien2k, which will always orthonormalize
all projectors in a unit cell together (normion=False) and not per ion
site (normion=True). Changed tests accordingly.
Updated spectral function routines
original PR message from @AlynJ
I've updated the spectral function routines in sumk_dft_tools.py. Now there are unique routines which calculate the density of states, spaghettis and spectral function (energy) contours (only for Elk inputs for now). I've tried to condense the code down so that it's (hopefully) clearer and uses more internal routines (for example spaghettis and spectral_contours [which replaces the fs_plot routine] uses the same routine to calculate the k-resolved spectral function). I've updated the documentation which should describe these routines in depth along with the input parameters, output variables and example plots showing what the routines can do.
These routines should have the same functionality as before along with some additional features, such as Wannier projected spaghettis and spectral_contours. Also, they have functionality specific to the dft code inputs. I've commented out the Elk specific DFT+DMFT PDOS for now as I've lost confidence with what I implemented before and I need to revisit this.
Alongside this, I've edited the Elk converter documentation and updated the interface routines which read in the data for the spectral function (energy) contours. I've also included more tests which test the Elk inputs and these new spectral routines.
These new routines pass the pre-existing spectral function tests (I note that I've not altered these .h5 files). I've also tested these new routines with the Elk inputs, but I think they need to be verified with the other dft code inputs.