From 6b11183f4d585e295e24b944d416f7150c0dec44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Malte=20Sch=C3=BCler?= Date: Thu, 21 Nov 2019 21:34:37 +0100 Subject: [PATCH] fixed tests for incorporating kpts --- python/converters/plovasp/elstruct.py | 15 +++ python/converters/plovasp/inpconf.py | 13 +++ python/converters/plovasp/plotools.py | 8 ++ python/converters/plovasp/proj_shell.py | 15 +-- python/converters/plovasp/sc_dmft.py | 18 ++-- python/converters/vasp_converter.py | 10 +- python/sumk_dft.py | 26 ++++- python/sumk_dft_tools.py | 124 ++++++++++++++++++++++- test/plovasp/converter/lunio3.out.h5 | Bin 372392 -> 151208 bytes test/plovasp/converter/lunio3.out.h5_old | Bin 0 -> 372392 bytes test/plovasp/converter/pg_output.out.h5 | Bin 282480 -> 259296 bytes test/plovasp/inpconf/test_input.py | 6 +- test/plovasp/inpconf/test_shells.py | 8 +- test/plovasp/proj_shell/projshells.out | 2 +- 14 files changed, 214 insertions(+), 31 deletions(-) create mode 100644 test/plovasp/converter/lunio3.out.h5_old diff --git a/python/converters/plovasp/elstruct.py b/python/converters/plovasp/elstruct.py index 9421e768..8f375974 100644 --- a/python/converters/plovasp/elstruct.py +++ b/python/converters/plovasp/elstruct.py @@ -123,6 +123,21 @@ class ElectronicStructure: # Concatenate coordinates grouped by type into one array self.structure['qcoords'] = np.vstack(vasp_data.poscar.q_types) self.structure['type_of_ion'] = vasp_data.poscar.type_of_ion + + a = [] + for ia in range(3): + a.append( vasp_data.poscar.a_brav[:,ia]) + vol = np.dot(a[0],np.cross(a[1],a[2])) + b1 = 2.0*np.pi*np.cross(a[1],a[2])/vol + b2 = 2.0*np.pi*np.cross(a[2],a[0])/vol + b3 = 2.0*np.pi*np.cross(a[0],a[1])/vol + b = [b1,b2,b3] + self.kmesh['kpoints_cart'] = 0.0 * self.kmesh['kpoints'] + + for ik in range(self.nktot): + for ii in range(3): + self.kmesh['kpoints_cart'][ik] += self.kmesh['kpoints'][ik,ii]*b[ii] + # FIXME: This can be removed if ion coordinates are stored in a continuous array ## Construct a map to access coordinates by index # self.structure['ion_index'] = [] diff --git a/python/converters/plovasp/inpconf.py b/python/converters/plovasp/inpconf.py index e674d58e..9ea43e2e 100644 --- a/python/converters/plovasp/inpconf.py +++ b/python/converters/plovasp/inpconf.py @@ -85,6 +85,7 @@ class ConfigParameters: self.sh_optional = { 'transform': ('tmatrix', lambda s: self.parse_string_tmatrix(s, real=True)), 'transfile': ('tmatrices', self.parse_file_tmatrix), + 'sort': ('ion_sort', self.parse_string_int,None), 'corr': ('corr', self.parse_string_logical, True)} self.gr_required = { @@ -194,6 +195,18 @@ class ConfigParameters: first_char = par_str[0].lower() assert first_char in 'tf', "Logical parameters should be given by either 'True' or 'False'" return first_char == 't' + + +################################################################################ +# +# parse_string_int() +# +################################################################################ + def parse_string_int(self, par_str): + """ + int parameters + """ + return int(par_str) ################################################################################ # diff --git a/python/converters/plovasp/plotools.py b/python/converters/plovasp/plotools.py index ff014eed..1836a414 100644 --- a/python/converters/plovasp/plotools.py +++ b/python/converters/plovasp/plotools.py @@ -121,6 +121,7 @@ def generate_plo(conf_pars, el_struct): print " Number of ions: %i"%(pshell.nion) print " Dimension : %i"%(pshell.ndim) print " Correlated : %r"%(pshell.corr) + print " Ion sort : %r"%(pshell.ion_sort) pshells.append(pshell) @@ -286,6 +287,13 @@ def ctrl_output(conf_pars, el_struct, ng): tmp1 = "".join(map("{0:15.10f}".format, kp)) out = tmp1 + "{0:16.10f}".format(el_struct.kmesh['kweights'][ik]) f.write(out + "\n") + f.write("# k-points and weights cartesian\n") + labels = ['kx', 'ky', 'kz'] + out = "".join(map(lambda s: s.center(15), labels)) + f.write("#" + out + "\n") + for ik, kp in enumerate(el_struct.kmesh['kpoints_cart']): + out = "".join(map("{0:15.10f}".format, kp)) + f.write(out + "\n") ################################################################################ diff --git a/python/converters/plovasp/proj_shell.py b/python/converters/plovasp/proj_shell.py index 443b8dfe..28584b82 100644 --- a/python/converters/plovasp/proj_shell.py +++ b/python/converters/plovasp/proj_shell.py @@ -73,6 +73,7 @@ class ProjectorShell: self.ions = sh_pars['ions'] self.user_index = sh_pars['user_index'] self.corr = sh_pars['corr'] + self.ion_sort = [sh_pars['ion_sort']] self.nc_flag = nc_flag # try: # self.tmatrix = sh_pars['tmatrix'] @@ -85,12 +86,14 @@ class ProjectorShell: self.nion = self.ions['nion'] # Extract ion list and equivalence classes (ion sorts) self.ion_list = sorted(it.chain(*self.ions['ion_list'])) - self.ion_sort = [] - for ion in self.ion_list: - for icl, eq_cl in enumerate(self.ions['ion_list']): - if ion in eq_cl: - self.ion_sort.append(icl + 1) # Enumerate classes starting from 1 - break + + if self.ion_sort[0] is None: + self.ion_sort = [] + for ion in self.ion_list: + for icl, eq_cl in enumerate(self.ions['ion_list']): + if ion in eq_cl: + self.ion_sort.append(icl + 1) # Enumerate classes starting from 1 + break self.ndim = self.extract_tmatrices(sh_pars) diff --git a/python/converters/plovasp/sc_dmft.py b/python/converters/plovasp/sc_dmft.py index 11fdfa2a..b0f32aae 100644 --- a/python/converters/plovasp/sc_dmft.py +++ b/python/converters/plovasp/sc_dmft.py @@ -123,14 +123,7 @@ def run_all(vasp_pid, dmft_cycle, cfg_file, n_iter, n_iter_dft, vasp_version): break # Tell VASP to stop if the maximum number of iterations is reached - iter += 1 - if iter == n_iter: - if mpi.is_master_node(): - print "\n Maximum number of iterations reached." - print " Aborting VASP iterations...\n" - f_stop = open('STOPCAR', 'wt') - f_stop.write("LABORT = .TRUE.\n") - f_stop.close() + if debug: print bcolors.MAGENTA + "rank %s"%(mpi.rank) + bcolors.ENDC err = 0 @@ -166,6 +159,7 @@ def run_all(vasp_pid, dmft_cycle, cfg_file, n_iter, n_iter_dft, vasp_version): # the hack consists of removing the call of LPRJ_LDApU in VASP src file # electron.F around line 644 iter_dft = 0 + if vasp_version == 'standard': copyfile(src='GAMMA',dst='GAMMA_recent') while iter_dft < n_iter_dft: @@ -180,7 +174,13 @@ def run_all(vasp_pid, dmft_cycle, cfg_file, n_iter, n_iter_dft, vasp_version): iter_dft += 1 if vasp_version == 'standard': copyfile(src='GAMMA_recent',dst='GAMMA') - + iter += 1 + if iter == n_iter: + print "\n Maximum number of iterations reached." + print " Aborting VASP iterations...\n" + f_stop = open('STOPCAR', 'wt') + f_stop.write("LABORT = .TRUE.\n") + f_stop.close() if mpi.is_master_node(): total_energy = dft_energy + corr_energy - dft_dc with open('TOTENERGY', 'w') as f: diff --git a/python/converters/vasp_converter.py b/python/converters/vasp_converter.py index 9993c315..afb29d1e 100644 --- a/python/converters/vasp_converter.py +++ b/python/converters/vasp_converter.py @@ -160,12 +160,16 @@ class VaspConverter(ConverterTools): SO = ctrl_head['nc_flag'] kpts = numpy.zeros((n_k, 3)) + kpts_cart = numpy.zeros((n_k, 3)) bz_weights = numpy.zeros(n_k) try: for ik in xrange(n_k): kx, ky, kz = rf.next(), rf.next(), rf.next() kpts[ik, :] = kx, ky, kz bz_weights[ik] = rf.next() + for ik in xrange(n_k): + kx, ky, kz = rf.next(), rf.next(), rf.next() + kpts_cart[ik, :] = kx, ky, kz except StopIteration: raise "VaspConverter: error reading %s"%self.ctrl_file @@ -220,12 +224,13 @@ class VaspConverter(ConverterTools): # TODO: check what 'irep' entry does (it seems to be very specific to dmftproj) pars['irep'] = 0 shells.append(pars) - shion_to_shell[ish].append(i) + shion_to_shell[ish].append(ish) shorbs_to_globalorbs[ish].append([last_dimension, last_dimension+sh['ndim']]) last_dimension = last_dimension+sh['ndim'] if sh['corr']: corr_shells.append(pars) + print shorbs_to_globalorbs[ish] # TODO: generalize this to the case of multiple shell groups @@ -336,7 +341,6 @@ class VaspConverter(ConverterTools): # now save only projectors with flag 'corr' to proj_mat proj_mat = numpy.zeros([n_k, n_spin_blocs, n_corr_shells, max([crsh['dim'] for crsh in corr_shells]), numpy.max(n_orbitals)], numpy.complex_) - if self.proj_or_hk == 'proj': for ish, sh in enumerate(p_shells): if sh['corr']: @@ -379,7 +383,7 @@ class VaspConverter(ConverterTools): things_to_save = ['energy_unit','n_k','k_dep_projection','SP','SO','charge_below','density_required', 'symm_op','n_shells','shells','n_corr_shells','corr_shells','use_rotations','rot_mat', 'rot_mat_time_inv','n_reps','dim_reps','T','n_orbitals','proj_mat','bz_weights','hopping', - 'n_inequiv_shells', 'corr_to_inequiv', 'inequiv_to_corr','proj_or_hk'] + 'n_inequiv_shells', 'corr_to_inequiv', 'inequiv_to_corr','proj_or_hk','kpts','kpts_cart'] if self.proj_or_hk == 'hk' or True: things_to_save.append('proj_mat_csc') for it in things_to_save: ar[self.dft_subgrp][it] = locals()[it] diff --git a/python/sumk_dft.py b/python/sumk_dft.py index b9103c89..553a8892 100644 --- a/python/sumk_dft.py +++ b/python/sumk_dft.py @@ -98,7 +98,7 @@ class SumkDFT(object): things_to_read = ['energy_unit', 'n_k', 'k_dep_projection', 'SP', 'SO', 'charge_below', 'density_required', 'symm_op', 'n_shells', 'shells', 'n_corr_shells', 'corr_shells', 'use_rotations', 'rot_mat', 'rot_mat_time_inv', 'n_reps', 'dim_reps', 'T', 'n_orbitals', 'proj_mat', 'proj_mat_csc', 'bz_weights', 'hopping', - 'n_inequiv_shells', 'corr_to_inequiv', 'inequiv_to_corr','proj_or_hk'] + 'n_inequiv_shells', 'corr_to_inequiv', 'inequiv_to_corr','proj_or_hk','kpts_cart'] self.subgroup_present, self.value_read = self.read_input_from_hdf( subgrp=self.dft_data, things_to_read=things_to_read) # if self.proj_or_hk == 'hk': @@ -152,7 +152,14 @@ class SumkDFT(object): self.chemical_potential = 0.0 # initialise mu self.init_dc() # initialise the double counting - + + # charge mixing parameters + self.charge_mixing = False + # defaults from PRB 90 235103 ("... slow but stable convergence ...") + self.charge_mixing_alpha = 0.1 + self.charge_mixing_gamma = 1.0 + self.deltaNOld = None + # Analyse the block structure and determine the smallest gf_struct # blocks and maps, if desired if use_dft_blocks: @@ -321,7 +328,7 @@ class SumkDFT(object): dim = self.shells[ish]['dim'] projmat = self.proj_mat_all[ik, isp, ish, ir, 0:dim, 0:n_orb] elif shells == 'csc': - projmat = self.proj_mat_csc[ik, isp, 0:n_orb, 0:n_orb] + projmat = self.proj_mat_csc[ik, isp, :, 0:n_orb] gf_downfolded.from_L_G_R( projmat, gf_to_downfold, projmat.conjugate().transpose()) @@ -615,6 +622,7 @@ class SumkDFT(object): for block, inner in self.gf_struct_sumk[icrsh]], make_copies=False) for icrsh in range(self.n_corr_shells)] SK_Sigma_imp = self.Sigma_imp_w + else: raise ValueError, "put_Sigma: This type of Sigma is not handled." @@ -1773,7 +1781,7 @@ class SumkDFT(object): """ F = lambda mu: self.total_density( - mu=mu, iw_or_w=iw_or_w, broadening=broadening) + mu=mu, iw_or_w=iw_or_w, broadening=broadening).real density = self.density_required - self.charge_below self.chemical_potential = dichotomy.dichotomy(function=F, @@ -1869,6 +1877,12 @@ class SumkDFT(object): nb = self.n_orbitals[ik, ntoi[bname]] diag_inds = numpy.diag_indices(nb) deltaN[bname][ik][diag_inds] -= dens_mat_dft[bname][ik][:nb] + + if self.charge_mixing and self.deltaNOld is not None: + G2 = numpy.sum(self.kpts_cart[ik,:]**2) + # Kerker mixing + mix_fac = self.charge_mixing_alpha * G2 / (G2 + self.charge_mixing_gamma**2) + deltaN[bname][ik][diag_inds] = (1.0 - mix_fac) * self.deltaNOld[bname][ik][diag_inds] + mix_fac * deltaN[bname][ik][diag_inds] dens[bname] -= self.bz_weights[ik] * dens_mat_dft[bname][ik].sum().real isp = ntoi[bname] b1, b2 = band_window[isp][ik, :2] @@ -1883,7 +1897,11 @@ class SumkDFT(object): mpi.world, deltaN[bname][ik], lambda x, y: x + y) dens[bname] = mpi.all_reduce( mpi.world, dens[bname], lambda x, y: x + y) + self.deltaNOld = copy.copy(deltaN) mpi.barrier() + + + band_en_correction = mpi.all_reduce(mpi.world, band_en_correction, lambda x,y : x+y) # now save to file: diff --git a/python/sumk_dft_tools.py b/python/sumk_dft_tools.py index 3cbf6fd7..589e800f 100644 --- a/python/sumk_dft_tools.py +++ b/python/sumk_dft_tools.py @@ -78,7 +78,6 @@ class SumkDFTTools(SumkDFT): DOSproj_orb : Dict of numpy arrays DOS projected to atoms and resolved into orbital contributions. """ - if (mesh is None) and (not with_Sigma): raise ValueError, "lattice_gf: Give the mesh=(om_min,om_max,n_points) for the lattice GfReFreq." if mesh is None: @@ -187,6 +186,129 @@ class SumkDFTTools(SumkDFT): f.close() return DOS, DOSproj, DOSproj_orb + + + def dos_wannier_basis_all(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True): + """ + Calculates the density of states in the basis of the Wannier functions. + + Parameters + ---------- + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + save_to_file : boolean, optional + If True, text files with the calculated data will be created. + + Returns + ------- + DOS : Dict of numpy arrays + Contains the full density of states. + DOSproj : Dict of numpy arrays + DOS projected to atoms. + DOSproj_orb : Dict of numpy arrays + DOS projected to atoms and resolved into orbital contributions. + """ + if (mesh is None) and (not with_Sigma): + raise ValueError, "lattice_gf: Give the mesh=(om_min,om_max,n_points) for the lattice GfReFreq." + if mesh is None: + om_mesh = [x.real for x in self.Sigma_imp_w[0].mesh] + om_min = om_mesh[0] + om_max = om_mesh[-1] + n_om = len(om_mesh) + mesh = (om_min, om_max, n_om) + else: + om_min, om_max, n_om = mesh + om_mesh = numpy.linspace(om_min, om_max, n_om) + + spn = self.spin_block_names[self.SO] + gf_struct_parproj = [[(sp, range(self.shells[ish]['dim'])) for sp in spn] + for ish in range(self.n_shells)] + #print(self.proj_mat_csc.shape[2]) + #print(spn) + n_local_orbs = self.proj_mat_csc.shape[2] + gf_struct_parproj_all = [[(sp, range(n_local_orbs)) for sp in spn]] + + glist_all = [GfReFreq(indices=inner, window=(om_min, om_max), n_points=n_om) + for block, inner in gf_struct_parproj_all[0]] + G_loc_all = BlockGf(name_list=spn, block_list=glist_all, make_copies=False) + + DOS = {sp: numpy.zeros([n_om], numpy.float_) + for sp in self.spin_block_names[self.SO]} + DOSproj = {} + DOSproj_orb = {} + + for sp in self.spin_block_names[self.SO]: + dim = n_local_orbs + DOSproj[sp] = numpy.zeros([n_om], numpy.float_) + DOSproj_orb[sp] = numpy.zeros( + [n_om, dim, dim], numpy.complex_) + + ikarray = numpy.array(range(self.n_k)) + for ik in mpi.slice_array(ikarray): + + G_latt_w = self.lattice_gf( + ik=ik, mu=mu, iw_or_w="w", broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) + G_latt_w *= self.bz_weights[ik] + + # Non-projected DOS + for iom in range(n_om): + for bname, gf in G_latt_w: + DOS[bname][iom] -= gf.data[iom, :, :].imag.trace() / \ + numpy.pi + + # Projected DOS: + for bname, gf in G_latt_w: + G_loc_all[bname] << self.downfold(ik, 0, bname, gf, G_loc_all[bname], shells='csc') + # Collect data from mpi: + for bname in DOS: + DOS[bname] = mpi.all_reduce( + mpi.world, DOS[bname], lambda x, y: x + y) + G_loc_all[bname] << mpi.all_reduce( + mpi.world, G_loc_all[bname], lambda x, y: x + y) + mpi.barrier() + + # Symmetrize and rotate to local coord. system if needed: + #if self.symm_op != 0: + # G_loc_all = self.symmcorr.symmetrize(G_loc_all) + + # G_loc can now also be used to look at orbitally-resolved quantities + for bname, gf in G_loc_all: # loop over spins + for iom in range(n_om): + DOSproj[bname][iom] -= gf.data[iom,:,:].imag.trace() / numpy.pi + DOSproj_orb[bname][:,:,:] += (1.0j*(gf-gf.conjugate().transpose())/2.0/numpy.pi).data[:,:,:] + # Write to files + if save_to_file and mpi.is_master_node(): + for sp in self.spin_block_names[self.SO]: + f = open('DOS_wann_%s.dat' % sp, 'w') + for iom in range(n_om): + f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) + f.close() + + # Partial + f = open('DOS_wann_all_%s_proj.dat' % (sp), 'w') + for iom in range(n_om): + f.write("%s %s\n" % + (om_mesh[iom], DOSproj[sp][iom])) + f.close() + + # Orbitally-resolved + for i in range(n_local_orbs): + for j in range(i, n_local_orbs): + f = open('DOS_wann_all' + sp + '_proj_' + str(i) + '_' + str(j) + '.dat', 'w') + for iom in range(n_om): + f.write("%s %s %s\n" % ( + om_mesh[iom], DOSproj_orb[sp][iom, i, j].real,DOSproj_orb[sp][iom, i, j].imag)) + f.close() + + return DOS, DOSproj, DOSproj_orb # Uses .data of only GfReFreq objects. def dos_parproj_basis(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True): diff --git a/test/plovasp/converter/lunio3.out.h5 b/test/plovasp/converter/lunio3.out.h5 index fb77f35c03344aa9bc09eb2bac381cf006506b13..93ee074a052d24edd11f41b1b414504d6879244d 100644 GIT binary patch delta 7933 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 delta 19705 zcmeG^3wRS%)^lfCI!OgmkTL~J(*iaWfx!9*>>^PFv!D{hM+6IDcXfk`M3l86NC1@x z=q6m2DG1U6LMVa_6{)g7L|3{X67f|9w1|($%b=h|asBUWW^TGED*pQ|yWjTvAm^NW z@0oMXJ@=eD_c4(rrpW%>P&aX1X1M#~-Re6Cbwtg8(kpR^#PixW+5M>ihT60w=>02Wfi?pmg`*Oah>1tN7V+ z+W;j9LDr(WFcYrH%r`X@(-wYs#UiWtRtDUedF{Z+iJg zOE6r13WTG(U_5su?2y}8d^H~qYrop$olRx%!`|{Rm|Q2r29pgsO>(%_0{tdyjcl$L zYy7P|0D4Tyv~inBU!2tFiRtSg4oz&1?Aj9g`%0}l7U;`9&%d(2l zkm}tDWP`-2T3|?)p{>v|t^CncTPlC1UD{AZe`RKK2Lm*lyH?P0|1QThCfj?|eb4D9on~Bb6E9=+m&lGXi#RUxYhxK-a_YBZc%Q2EWYH!EHqh z+ysYYIbesb6wN&hOD<$!7zSo5(5iT0Lwm&(tEUg~!v~acuwOB*R5PZy6+pl0)^|Xq z+07ia{`_#XlSvyWb?_cbK{%GgVu{aW!2Db*m24plb+TsEBkk3@V_;7-R)YOr5&Z?Q z$`^&Bx)BYw_E-(vuy>aNSlw9`y%!?Zu)3!#T8j{*+J6g7@IdE+dA(%O-Wiw0O|n>5 z5RTpry?2g)Pxc^8KAds{e$`92h}atoul70uj=;8kbaK(Jh~m?_RhkXc!$l9?o-I5~ zO>KP?!0ai{!af&M6LqCJgf8NB2;^K35B-Kzz{1P$Ku;>X(uWBT>S6C*1@pSdVq-5v z!onwdYQhJ)W8pEAZ~J2=H3gRw8>7BFBK}pk->?gLY)mna4d}X1tvCn@rAv9aux)*p zVB2zRkc3kGcH}ns*uGMtj)Fa9De?*ik&sf|s|4yLOSON)kXrE>Fo8?3n8}M}v+Y;Z zJzbZ;l9E4}9B*lUa{S6ExThz~Ax7w1EGcgj?%ug3u$7qNDihcej&6bR)mG@8afj$J z!PjOK;znQ07#ogxkr}Q50InTeoU!?qBO{@+>&FP)e02)C%f-+@w~BVYOQRJ+%S#3p0zo1JMjJ&I!9uF|htQf{H98pB+6| P~us}oU7bGu``$+_+WJSglU#h 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 a3G?SHzL+gOdX>eVJK4A_pDElQ-0?rw@ZuT( delta 4081 zcmb_fZ%|a%6@TyE1s}VmEdF5;3Oqn$T`g`lIXC{xRQTj=2KV)}yrpu&L-4C4(wMj+&q8+E%(4@h{=$bEK?3dnu&wbEN zn|8V%c=vbjx#ynWIp>~pNk1&eTrP|_aj?S@UtNvmT)pE7D)E;{?AOXa((Ez|8~F{~ z#0RRtF^vymh=0eIa(TPVvBxgf7)yxC`zUR#Nlyp*#2ylol}nO*NmxmrI1*WQ>*> z zLH8=6@j>wI?uODD=Bh+f4R=AJW2G4M){4Q9Q+Q`&)h{68YKK30tF76fz(v<>o*6Z7 zGcr?kW-^_1#VEEK2I_|MCO2|Jg7CDoR#p>TYYGsgR0RTccDSc%U@ue|+v)m$#dZvu z*H=KST9GFpy1wE$+dw^`^(J8zUQeB1unny<*xKEc?P%d1IM=`fex*Thdv}8v+}J1v zw>&1c8E-obx~iTCQy-L8+^#c?WFkgDWYFUTd}%8PB5Nw3L+dgcaJs%H7Jr0wPd<937vo@j?Z zm(=BDL?$XwSXx`rsm&J-rTKE^RW`5R`W&sIDQIs~Akq?mxl+~Ay3KSp(CDRG;J|iH zdhL#D$g`D^BzvscE3A8G(0R+m&V_q@ZDel@-rQ~6p=)TY?fHIb2e(gcg9|Ogd6|72 zviz{5yA~>&YG-LQY8I0{iLMR@Lg6lO?Hw#pJLWTP6*$lpkC)3Zz0XLjYslIC+>Wdi zc>S+hO+KY&g$|m{av%67v;2vHgQ8&2EKpy5t~gr&;DRft-~0>}!DP>Io&lHeS#UQi zvJN&aQ`SXft1X* zSlc)4>g96D-GiU^{ zYTz%&CORaa^y!b0#+D-G^If?deTv{%*RbL-99~)JkUNv|ENYT%rsUOkJw*2z3DS+2 zD($h^X))Dqa|_?hJwkfRTlgz9A?uAgRtpICLw1Rm%84gPKc?e-D5Qb6wA`kMO`Tt$ zcsyT*xxNAY*+u+1i_XX;{6pRM5CwGgeOw$(*^?7bQLa5%cNxF;Ei7eFvJy}}qE5k~ z3{lV^)0<_Z9$>!=BDJzNdbr48>aT2N@1AYs+M(zhC64`~92ggTCC9Ye#Z!M^Js*NO ziY+7rV!JK+t{ME2K7Ab@#%>pevZ4y+8`3Kpa-~i|DZPp-GW0tA92bihMypt8t)&gz z<`XbOUjStzegQSa-y?<=&C9g}g!WEDu66!tJ{QMfF)t!4O};Q+F0`5BF(3a5ff0`Kd`jco0FFWwluuJ0n=;vF{6z*9xsz2vbY<0vqq7YX*2l@EOCuvk*v`)j?8cb^`o@nI;(ZkiY=f>Gg7cOag2is)0Y*ms!{}^Kh?cgWU987QJ zxge3P7hOZT>q{KKV+#+ZHKuhh-<7s2(7AVWK9)3b`_dkk3jqNGFH%??6fm=ipCF)Q zI*~s1DQ*8gK|ARNWJN4W7Gu^|3*_D z-QABDC9d|r_J%%wA1_zLjVCwpDN>b2t~3a@UA0UlE1!NRr$&9~S!!VcZeL+M?Yi4L zw#pJIM1sNWLDKZ9#M?%4F8Dvg^vLk~HlVrhM&s9M|J;S8aYjgzro_J%hDWl`JuYBW zHQ!N=4LP^b@1U!2Z8SB-2+*#e*pr@5P)Hsb>^;V|bc-_FE#4!i&z?BZI~0^o2aX;; zep-@F4V~#d(RW4~>^*ffNbp`^Szss_d~L8_3Z5DopaQ+GoPLEaeNDY1|55SRRP;aU z8Ih#_mg)b?AQqz>;;Jy~%jXe~i|(Jne)`9ai97Y5UB?aoW>83DLVrfYTazFC4Hd}I Gl=~m1;{GQ9 diff --git a/test/plovasp/inpconf/test_input.py b/test/plovasp/inpconf/test_input.py index 8a344b96..6bf12050 100644 --- a/test/plovasp/inpconf/test_input.py +++ b/test/plovasp/inpconf/test_input.py @@ -78,9 +78,9 @@ class TestParseInput(arraytest.ArrayTestCase): res = res.replace(" ","") # Remove spaces for comparison expected = r"""Shells: -[{'ions':{'nion':4,'ion_list':[[4],[5],[6],[7]]},'user_index':1,'lshell':2,'corr':True},{'tmatrix':array([[0.,1.,0.], +[{'ions':{'nion':4,'ion_list':[[4],[5],[6],[7]]},'user_index':1,'lshell':2,'corr':True,'ion_sort':None},{'tmatrix':array([[0.,1.,0.], [1.,0.,0.], -[0.,0.,1.]]),'ions':{'nion':4,'ion_list':[[0],[1],[2],[3]]},'user_index':2,'lshell':1,'corr':True},{'ions':{'nion':4,'ion_list':[[0],[1],[2],[3]]},'user_index':3,'lshell':3,'corr':True}] +[0.,0.,1.]]),'ions':{'nion':4,'ion_list':[[0],[1],[2],[3]]},'lshell':1,'corr':True,'ion_sort':None,'user_index':2},{'ions':{'nion':4,'ion_list':[[0],[1],[2],[3]]},'user_index':3,'lshell':3,'corr':True,'ion_sort':None}] Groups: [{'normalize':True,'index':1,'ewindow':(-7.6,3.0),'shells':[0,1],'complement':False,'normion':True},{'normalize':True,'index':2,'ewindow':(-1.6,2.0),'shells':[2],'complement':False,'normion':True}]""" @@ -103,7 +103,7 @@ Groups: res = res.replace(" ","") # Remove spaces for comparison expected = r"""Shells: -[{'ions':{'nion':4,'ion_list':[[4],[5],[6],[7]]},'user_index':1,'lshell':2,'corr':True}] +[{'ions':{'nion':4,'ion_list':[[4],[5],[6],[7]]},'lshell':2,'corr':True,'ion_sort':None,'user_index':1}] Groups: [{'normalize':True,'index':'1','ewindow':(-7.6,3.0),'normion':True,'complement':False,'shells':[0]}]""" diff --git a/test/plovasp/inpconf/test_shells.py b/test/plovasp/inpconf/test_shells.py index d1e8da5b..cb5d68fb 100644 --- a/test/plovasp/inpconf/test_shells.py +++ b/test/plovasp/inpconf/test_shells.py @@ -59,9 +59,9 @@ class TestParseShells(arraytest.ArrayTestCase): conf_pars = ConfigParameters(_rpath + 'parse_shells_4.cfg') conf_pars.parse_shells() res = conf_pars.shells - expected = [{'user_index': 1, 'lshell': 2, 'ions': {'nion': 4, 'ion_list': [[4],[5],[6],[7]]},'corr': True}, + expected = [{'user_index': 1, 'lshell': 2, 'ions': {'nion': 4, 'ion_list': [[4],[5],[6],[7]]},'corr': True,'ion_sort':None}, {'user_index': 2, 'lshell': 1, 'ions': {'nion': 4, 'ion_list': [[0],[1],[2],[3]]}, - 'tmatrix': np.array([[ 0., 1., 0.], [ 1., 0., 0.], [ 0., 0., 1.]]),'corr': True}] + 'tmatrix': np.array([[ 0., 1., 0.], [ 1., 0., 0.], [ 0., 0., 1.]]),'corr': True,'ion_sort':None}] # ...lousy way to test equality of two dictionaries containing numpy arrays self.assertEqual(len(res), len(expected)) @@ -84,8 +84,8 @@ class TestParseShells(arraytest.ArrayTestCase): conf_pars = ConfigParameters(_rpath + 'parse_shells_5.cfg') conf_pars.parse_shells() res = conf_pars.shells - expected = [{'user_index': 1, 'lshell': 2, 'ions': {'nion': 4, 'ion_list': [[4],[5],[6],[7]]},'corr': True}, - {'user_index': 2, 'lshell': 1, 'ions': {'nion': 4, 'ion_list': [[0],[1],[2],[3]]},'corr': False}] + expected = [{'user_index': 1, 'lshell': 2, 'ions': {'nion': 4, 'ion_list': [[4],[5],[6],[7]]},'corr': True,'ion_sort':None}, + {'user_index': 2, 'lshell': 1, 'ions': {'nion': 4, 'ion_list': [[0],[1],[2],[3]]},'corr': False,'ion_sort':None}] self.assertEqual(len(res), len(expected)) arr = res[0].pop('ions') diff --git a/test/plovasp/proj_shell/projshells.out b/test/plovasp/proj_shell/projshells.out index 1708cf6c..054460b1 100644 --- a/test/plovasp/proj_shell/projshells.out +++ b/test/plovasp/proj_shell/projshells.out @@ -1,4 +1,4 @@ -pars: {'ions': {'nion': 1, 'ion_list': [[1]]}, 'user_index': 1, 'lshell': 2, 'corr': True} +pars: {'ions': {'nion': 1, 'ion_list': [[1]]}, 'lshell': 2, 'corr': True, 'ion_sort': None, 'user_index': 1} 10 25 1 0.000000 -0.000000 2 0.000000 0.000000