3
0
mirror of https://github.com/triqs/dft_tools synced 2024-07-11 05:43:48 +02:00

fixed bug in band selection and output to .pg files. ewindow is not read by vasp_converter anymore.

This commit is contained in:
Malte Schüler 2019-07-08 10:27:17 +02:00
parent a882ffa575
commit 90b331c5a8
3 changed files with 18 additions and 5 deletions

View File

@ -331,9 +331,14 @@ 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)
print " Density within window:", head_dict['nelect']
@ -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))

View File

@ -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']:

View File

@ -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']