From 7e13c1cb5bea7052d49f75423194685d5c28235f Mon Sep 17 00:00:00 2001 From: "Oleg E. Peil" Date: Tue, 10 Nov 2015 19:16:41 +0100 Subject: [PATCH] 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. --- python/converters/vasp_converter.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/python/converters/vasp_converter.py b/python/converters/vasp_converter.py index 01b38a19..d2a04ecc 100644 --- a/python/converters/vasp_converter.py +++ b/python/converters/vasp_converter.py @@ -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)]