Wannier90 to HDF5 converter for TRIQS/dft_tools

Written by Gabriele Sclauzero (Materials Theory, ETH Zurich), Dec 2015 – Jan 2016, updated by Maximilian Merkel (Materials Theory, ETH Zurich), Aug 2020 – Feb 2022, and by Sophie Beck (Materials Theory, ETH Zurich), Sep 2020 – Apr 2021, under the supervision of Claude Ederer (Materials Theory). Partially based on previous work by K. Dymkovski and the TRIQS/dft_tools team.

Limitations of the current implementation: - the T rotation matrices are not used in this implementation

Things to be improved/checked: - the case with SP=1 is only half implemented and never tested (do we need to

define rot_mat_time_inv also if symm_op = 0?)

  • the calculation of rot_mat in find_rot_mat() relies on the eigenvalues of H(0); this might fail in presence of degenerate eigenvalues (now just prints warning)

  • make the code more MPI safe (error handling): if we run with more than one process and an error occurs on the masternode, the calculation does not abort

  • in case of disentanglement, the outer window being close to Kohn-Sham energies can cause a problem in creating the udis_mat_spin in read_wannier90data

  • bloch_basis on SO coupled calculations has never been tested but might work

  • would be helpful to read the order of orbitals from the nnkp or wout file and save it to, e.g., misc_subgrp for codes working on the generated h5


build_kmesh(kmesh_size[, kmesh_mode])

Method for the generation of the k-point mesh.

check_and_adapt_for_soc(shells, corr_shells, ...)

Checks compatibilities, modifies shells and corr_shells and sets variables needed for spin-orbit coupled systems.

check_bloch_basis_hk(n_corr_shells, ...)

Check of the reciprocal-space Hamiltonian in bloch basis.

check_hr(wannier_hr, w90_zero, r_zero_index)

Checks of the real-space Hamiltonian.

check_wannier_basis_hk(hopping, dim_corr_shells)

Check of the reciprocal-space Hamiltonian in wannier basis.

find_rot_mat(n_corr_shells, corr_shells, ...)

Method for finding the matrices that bring from local to global coordinate systems, based on the eigenvalues of H(R=0).

fourier_transform_hamiltonian(wannier_hr, ...)

Method for obtaining H(k) from H(R) via Fourier transform.

generate_local_so_matrix_t2g(add_lambda, ...)

Adds local spin-orbit interaction term to the t2g subspace.

read_all_wannier90_data(n_spin_blocks, ...)

Reads in all the wannier90 data using the functions read_wannier90_hr_data and read_wannier90_blochbasis_data.

read_input_file(inp_file, fortran_to_replace)

Reads the input file.

read_misc_input(w90_seed, n_spin_blocks, n_k)

Reads input from DFT code calculations to get occupations, the band window, the Fermi energy and the basis for the k points.

read_wannier90_blochbasis_data(wannier_seed, ...)

Method for reading the files needed in the bloch_basis: seedname_u.mat, seedname.eig and potentially seedname_u_dis.mat.


Method for reading the seedname_hr.dat file produced by Wannier90 (http://wannier.org).

reorder_orbital_and_spin(nwfs, wannier_hr, ...)

Changes order from VASP5 + wannier90 (first all up spin wannier orbitals, then all down spin) to usual order (every up orbital is followed directly by the corresponding down orbital).


Wannier90Converter(seedname[, hdf_filename, ...])

Conversion from Wannier90 output to an hdf5 file that can be used as input for the SumkDFT class.