3
0
mirror of https://github.com/triqs/dft_tools synced 2024-06-22 05:02:20 +02:00

Fixed inequivalent shell determination

It was incorrect to ascribe VASP atomic sort to corr_shell['sort'],
the latter having a different meaning. According to the terminology of
Wien2k a sort determines an equivalence class of atoms.
Since the implementation at the moment does not support symmetries
the atom index is now used as a 'sort' index to make sure that all shells
remain inequivalent.
This commit is contained in:
Oleg E. Peil 2015-11-10 19:16:41 +01:00
parent 0eb574b5c8
commit 7e13c1cb5b

View File

@ -162,7 +162,9 @@ class VaspConverter(ConverterTools):
for i, ion in enumerate(ion_list):
pars = {}
pars['atom'] = ion
pars['sort'] = sh['ion_sort']
# We set all sites inequivalent
# pars['sort'] = sh['ion_sort']
pars['sort'] = ion
pars['l'] = sh['lorb']
pars['dim'] = sh['ndim']
pars['SO'] = SO
@ -180,6 +182,9 @@ class VaspConverter(ConverterTools):
# to define equivalence classes of sites.
n_inequiv_shells, corr_to_inequiv, inequiv_to_corr = ConverterTools.det_shell_equivalence(self, corr_shells)
if mpi.is_master_node():
print " No. of inequivalent shells:", n_inequiv_shells
# NB!: these rotation matrices are specific to Wien2K! Set to identity in VASP
use_rotations = 1
rot_mat = [numpy.identity(corr_shells[icrsh]['dim'],numpy.complex_) for icrsh in range(n_corr_shells)]