From 90b331c5a85ea498267cc3d940b68c443cd03eb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Malte=20Sch=C3=BCler?= Date: Mon, 8 Jul 2019 10:27:17 +0200 Subject: [PATCH] fixed bug in band selection and output to .pg files. ewindow is not read by vasp_converter anymore. --- python/converters/plovasp/plotools.py | 13 +++++++++++-- python/converters/plovasp/proj_group.py | 9 +++++++-- python/converters/vasp_converter.py | 1 - 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/python/converters/plovasp/plotools.py b/python/converters/plovasp/plotools.py index 9a519a06..e1c42313 100644 --- a/python/converters/plovasp/plotools.py +++ b/python/converters/plovasp/plotools.py @@ -331,8 +331,13 @@ def plo_output(conf_pars, el_struct, pshells, pgroups): print " Storing PLO-group file '%s'..."%(plo_fname) head_dict = {} - head_dict['ewindow'] = (pgroup.emin, pgroup.emax) + head_dict['nb_max'] = pgroup.nb_max + + if 'bands' in conf_pars.groups[ig]: + head_dict['bandwindow'] = (pgroup.ib_min, pgroup.ib_max) + else: + head_dict['ewindow'] = (pgroup.emin, pgroup.emax) # Number of electrons within the window head_dict['nelect'] = pgroup.nelect_window(el_struct) @@ -366,7 +371,11 @@ def plo_output(conf_pars, el_struct, pshells, pgroups): f.write("#END OF HEADER\n") # Eigenvalues within the window - f.write("# Eigenvalues within the energy window: %s, %s\n"%(pgroup.emin, pgroup.emax)) + if 'bands' in conf_pars.groups[ig]: + f.write("# Eigenvalues within the band window: %s, %s\n"%(pgroup.ib_min+1, pgroup.ib_max+1)) + else: + f.write("# Eigenvalues within the energy window: %s, %s\n"%(pgroup.emin, pgroup.emax)) + nk, nband, ns_band = el_struct.eigvals.shape for isp in xrange(ns_band): f.write("# is = %i\n"%(isp + 1)) diff --git a/python/converters/plovasp/proj_group.py b/python/converters/plovasp/proj_group.py index ab0b382c..767f90fe 100644 --- a/python/converters/plovasp/proj_group.py +++ b/python/converters/plovasp/proj_group.py @@ -72,8 +72,8 @@ class ProjectorGroup: ib_win = np.zeros((nk, ns_band, 2), dtype=np.int32) ib_win[:,:,0] = gr_pars['bands'][0]-1 ib_win[:,:,1] = gr_pars['bands'][1]-1 - ib_min = gr_pars['bands'][0] - ib_max = gr_pars['bands'][1] + ib_min = gr_pars['bands'][0] - 1 + ib_max = gr_pars['bands'][1] - 1 else: ib_win, ib_min, ib_max = self.select_bands(eigvals) @@ -82,6 +82,11 @@ class ProjectorGroup: self.ib_max = ib_max self.nb_max = ib_max - ib_min + 1 + print self.ib_win + print self.ib_min + print self.ib_max + print self.nb_max + if gr_pars['complement']: diff --git a/python/converters/vasp_converter.py b/python/converters/vasp_converter.py index b81e1d53..69a6202f 100644 --- a/python/converters/vasp_converter.py +++ b/python/converters/vasp_converter.py @@ -188,7 +188,6 @@ class VaspConverter(ConverterTools): gr_head = json.loads(jheader) - e_win = gr_head['ewindow'] nb_max = gr_head['nb_max'] p_shells = gr_head['shells'] density_required = gr_head['nelect']