This PR/ commit adds two new features to the w90 converter stored to the h5 archive:
1. Centres of Wannier functions: This can be obtained using the `read_wannier90_centres()` function. This would also be useful if one wants to shift Wannier centres back to the home unit cells on-the-fly in `dft_tool`.
2. High-symmetry k-path for band structure: This can be obtained using the `read_wannier90_symm_kpath()` function.
changes:
* read wannier centres and symmetry kpath from w90
* [fix] w90convert test after fix for kpt_basis stor
---------
Co-authored-by: Alexander Hampel <ahampel@flatironinstitute.org>
* fix not initialized variable Glatt_iw
* add simple run tests for all 4 DFT codes to test at least if
calc_density_correction runs without errors
* small formatting fixes
* 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.
All existing transport features from SumkDFTTools are now integrated in sumk_dft_transport.py as functions.
feat: new code = "wannier90"
refactor: free functions instead of sum_k members
If code is chosen as wannier90:
feat: compute transport function
feat: compute OC in Wannier or Hamiltonian basis
feat: compute intra- and interband contributions separately in OC
* typos and subbed check in spin polarized calculations for quantum espresso with a warning when computing the deltaN
* fixed typos in comments
* removed legacy mode maintaining only compatibility layer and switched to old (<3.10) python syntax
* added target density output in mu finder for brent and newton, refactored tunit test for DC, changed some comments
* elk-transport
* minor updates
* specify explicitly fortran compiler and python exe in CMAKE
Co-authored-by: Alexander Hampel <ahampel@flatironinstitute.org>
updated the Elk interface to fix some minor bugs which arose for certain systems with equivalent atoms. I've also included new tests for this interface and collated all of these interface tests in the "test/python/elk" subdirectory.
Added:
substantial speed-up using MPI for Fourier transform
option to add a local spin-orbit term to t2g local Hamiltonian.
writing dft_fermi_energy to group 'dft_misc_input'
writing kpt_basis to group 'dft_input' if bloch_basis=True
writing kpts_cart to group 'dft_misc_input' if bloch_basis=True
Minor bugfixes:
bug can be caused by rounding of outer window limits if bloch_basis and disentangle =True, made error message clearer
for charge self-consistent calculations, and 2) spin-orbit coupling
if bloch_basis = True:
* if "seedname_u.dat" (and in case of disentanglement "seedname_u_dis.dat")
present, write hopping in Bloch basis
* "proj_mat" transforming from Bloch to orbital space
* diagonal hoppings are directly read from "seedname.eig"
* fermi weights and band_window of Wannier Hamiltonian are read from DFT
output and "seedname.nnkp", written into new subgroup "dft_misc_input"
* automatic calculation of "density_required"
* implemented for Quantum Espresso (read from "seedname.nscf.out" if
verbosity = 'high') and VASP (read from "OUTCAR"/"LOCPROJ")
* spin-orbit coupling SO = 1 implemented
* substitute k_mesh and bz_weights with kpts and kpt_weights,
respectively (previous names kept for compatibility)
* updated tests