using pw for Metallic systems: the case of hexagonal cells

Concerns any physical issues arising during the setup step (-i option). This includes problems with symmetries, k/q-point sets, and so on. For technical problems (running in parallel, etc), refer to the Technical forum.

Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, Daniele Varsano

Yunfeng
Posts: 21
Joined: Mon Mar 23, 2009 8:25 pm

using pw for Metallic systems: the case of hexagonal cells

Post by Yunfeng » Wed Mar 25, 2009 12:22 am

Dear Developer,

I have recently installed yambo (with interfaces, p2y) in IBM pw5 with AIX. It works fine for diamond Si. I have gone through the test [Fig.8 in Comp. Phys. Comm. (2009)] and also a calculation based on Quantum espresso v.3.2.3. The spectra are all OK.

Now I have extended my interests to look at another Si phase(Si V----a metal phase). I have done many tests, however, none of them is succeeded. See below, for an example of the input of SCF, BAND and Yambo calculations. NB: I also list the problems after the input files.

si.scf.in

&control
calculation = 'scf' ,
restart_mode='from_scratch' ,
prefix='silicon' ,
tstress = .true. ,
tprnfor = .true. ,
wf_collect = .true. ,
pseudo_dir = '/scratch_ibm/yfliang/PP/' ,
outdir = '/scratch_ibm/yfliang/yambo/tmp/Si/'
/
&system
ibrav= 4, celldm(1) =4.817,
celldm(3)=0.942, nat= 1, ntyp= 1,
ecutwfc =30.0,nbnd = 60,
occupations='tetrahedra'
/
&electrons
diagonalization='david'
mixing_mode = 'plain'
mixing_beta = 0.7
conv_thr = 1.0d-8
diago_full_acc = .true.
/
ATOMIC_SPECIES
Si 28.086 Si.pbe-rrkj.UPF
ATOMIC_POSITIONS
Si 0.00 0.00 0.00
K_POINTS { automatic }
18 18 18 1 1 1


si.band.in

&control
calculation='bands' ,
wf_collect = .true. ,
restart_mode = 'restart' ,
prefix='silicon' ,
pseudo_dir = '/scratch_ibm/yfliang/PP/',
outdir = '/scratch_ibm/yfliang/yambo/tmp/Si/'
/
&system
ibrav= 4, celldm(1) =4.817,
celldm(3)=0.942, nat= 1, ntyp= 1,
ecutwfc =30.0, nbnd = 60,
nosym = .false.
occupations='tetrahedra'
/
&electrons
diagonalization='david' ,
diago_thr_init = 1.e-6 ,
diago_full_acc = .true. ,
startingpot = 'file' ,
startingwfc = 'file' ,
/
ATOMIC_SPECIES
Si 28.086 Si.pbe-rrkj.UPF
ATOMIC_POSITIONS
Si 0.00 0.00 0.00
K_POINTS { automatic }
18 18 18 1 1 1

yambo.in

optics
bse
bss
em1s
% KfnQP_E
0.750000 | 1.030000 | 1.027000 |
%
% BSEBands
3 | 7 |
%
% BSEEhEny
3.000000 |8.000000 | eV
%
BSENGBlk= 51 RL
BSENGexx= 51 RL
% BndsRnXs
1 | 50 |
%
NGsBlkXs=51 RL
BSSmod= "h"
% BEnRange
2.50000 | 6.00000 | eV
%
BEnSteps= 500
% BDmRange
0.050 | 0.1 | eV

I summarized the problems below:
1) With this input, I have met in the calculation of yambo

"<13s> [RL indx] X grid is not uniform. Gamma point only.
[ERROR] STOP signal received while in :[03] Transferred momenta grid
[ERROR][NetCDF] NC_UNLIMITED in the wrong index"


2) I have changed the OCCUPATIONS='tetrahedra' to OCCUPATIONS='smearing' with different degauss value. In case of degauss =0.02, I met in the calculation of yambo,

<---> [02.03] Input (E)nergies[ev] & Occupations
[ERROR] STOP signal received while in :[02.03] Input (E)nergies[ev] & Occupations
[ERROR]Impossible to converge the Fermi Level

3) I have played the Pwscf, for scf calculation, I used nbnd=150, however pwscf doesn't work, with the error:

" from cdiaghg : error # 550
info =/= 0"


4) I have played the Pwscf, for scf calculation, I used nbnd=60, and then for band calculation, I used nbnd=150. In this case, Pwscf perform well. However, p2y ended with error:

"Error in qexml-read-bands IOTK err, ierr:1"

5) some other tests, even I can't remember...

I'm looking forward to your reply. Thank you in advance.
Sincerely, Yunfeng
Yunfeng Liang
Department of Physics and Engineering Physics
University of Saskatchewan
116 Science Place
Saskatoon S7N0K4, SK, Canada
Email: yul059@mail.usask.ca, liangyunfeng@gmail.com
Tel: +1(306)966-6213
Fax: +1(306)966-6400

User avatar
Conor Hogan
Posts: 111
Joined: Tue Mar 17, 2009 12:17 pm
Contact:

Re: using pw and yambo for metal systems

Post by Conor Hogan » Wed Mar 25, 2009 2:35 pm

Dear Yunfeng,

Thank you for trying out Yambo. Can I please ask that you add your affiliation to your signature in further posts?
All members of this forum must include in the signature their complete affiliation. Posting from members without affiliation will not be allowed. To edit your signature go in "user control panel > profile > edit signature".

I can try to answer some of your problems.
Yunfeng wrote: "<13s> [RL indx] X grid is not uniform. Gamma point only.
I managed to reproduce this problem, and we will look into it. It may be a bug, which is strange since Yambo has been used a lot for hexagonal systems.
Yunfeng wrote: [ERROR] STOP signal received while in :[03] Transferred momenta grid
[ERROR][NetCDF] NC_UNLIMITED in the wrong index"
I wasn't able to reproduce this from your input files. This may have arisen from using incomplete databases from a previous run that failed.
Yunfeng wrote: 2) I have changed the OCCUPATIONS='tetrahedra' to OCCUPATIONS='smearing' with different degauss value. In case of degauss =0.02, I met in the calculation of yambo,

<---> [02.03] Input (E)nergies[ev] & Occupations
[ERROR] STOP signal received while in :[02.03] Input (E)nergies[ev] & Occupations
[ERROR]Impossible to converge the Fermi Level
Can you reproduce this error for a smaller k-point set? The example you present is too heavy to look into.
Yunfeng wrote: 3) I have played the Pwscf, for scf calculation, I used nbnd=150, however pwscf doesn't work, with the error:

" from cdiaghg : error # 550
info =/= 0"


4) I have played the Pwscf, for scf calculation, I used nbnd=60, and then for band calculation, I used nbnd=150. In this case, Pwscf perform well. However, p2y ended with error:

"Error in qexml-read-bands IOTK err, ierr:1"
These are not Yambo problems, but PWscf problems, so you should look at the PWscf forums. Anyway, in the first case, you can try using "cg" instead of "david". In the second case, the problem is that you have restart_mode='restart' in the bands calculation, so that you set nband = 150 but only calculate the eigenvalues of 60 bands (if you look in the PW output file you see the error). Remove that line and it works.
Yunfeng wrote: 5) some other tests, even I can't remember...
Have a nice cup of chamomile tea, it helps me to remember ;)

Hope it helps,
Conor
Dr. Conor Hogan
CNR-ISM, via Fosso del Cavaliere, 00133 Roma, Italy;
Department of Physics and European Theoretical Spectroscopy Facility (ETSF),
University of Rome "Tor Vergata".

User avatar
andrea marini
Posts: 325
Joined: Mon Mar 16, 2009 4:27 pm
Contact:

Re: using pw and yambo for metal systems

Post by andrea marini » Wed Mar 25, 2009 4:30 pm

Conor Hogan wrote:
Yunfeng wrote: "<13s> [RL indx] X grid is not uniform. Gamma point only.
I managed to reproduce this problem, and we will look into it. It may be a bug, which is strange since Yambo has been used a lot for hexagonal systems.
Indeed this is not a bug of Yambo. Yunfeng you're are using an automatic shifted grid (the 1 1 1 after 18 18 18). This shift makes no harm in most geometries, except in hexagonal systems. To understand why apply the following patch to your code by following the instructions given in the
download page:

Code: Select all

Index: src/bz_ops/k_lattice.F
===================================================================
--- src/bz_ops/k_lattice.F  (revision 375)
+++ src/bz_ops/k_lattice.F  (working copy)
@@ -62,7 +62,13 @@
  !
  call k_expand(k)
  call k_expand(Xk)
- call k_ibz2bz(Xk,'a',.true.)
+ call k_ibz2bz(Xk,'c',.true.)
+ do i1=1,Xk%nbz
+   if (Xk%ptbz(i1,3)<0.0) cycle
+   if (Xk%ptbz(i1,3)>0.05) cycle
+   write (100,*) Xk%ptbz(i1,:)
+ enddo
+ stop
  !
  nkibz     =k%nibz
  nkbz      =k%nbz


If you remove the SAVE/(n)db.kindx and run again the code, it will create a fort.100 that contains the k-points coordinates
in chartesian units expanded in the whole BZ. You should then obtain something like the one I attach to this post.

Now the problem is that pw, in the case of hexagonal geometries, produces non uniform grids of k-points by applying the hexagonal symmetries to shifted grids.

So the solution is to run unshifted grid (18 18 18 0 0 0). Remember that Yambo means as an uniform grid any grid that remains unchanged by moving any k-point in another.

If you do want shifted grids generate them yourselfs and include the points by hand in the pw input file.

Andrea
You do not have the required permissions to view the files attached to this post.
Andrea MARINI
Istituto di Struttura della Materia, CNR, (Italy)

User avatar
andrea marini
Posts: 325
Joined: Mon Mar 16, 2009 4:27 pm
Contact:

Re: using pw and yambo for metal systems

Post by andrea marini » Wed Mar 25, 2009 4:45 pm

Yunfeng wrote:
2) I have changed the OCCUPATIONS='tetrahedra' to OCCUPATIONS='smearing' with different degauss value. In case of degauss =0.02, I met in the calculation of yambo,

<---> [02.03] Input (E)nergies[ev] & Occupations
[ERROR] STOP signal received while in :[02.03] Input (E)nergies[ev] & Occupations
[ERROR]Impossible to converge the Fermi Level
I do not know why yambo cannot converge the fermi level... but with degauss = 0.02 (=0.26 eV) you're smearing with the equivalent of a fictious 3000K temperature. Why did you do it ? The calculation where Yambo forces the use of only the gamma point the system is correctly detected as a metal ! There is NO link between the K-point sampling and the metallicity of the system.

Andrea
Andrea MARINI
Istituto di Struttura della Materia, CNR, (Italy)

Yunfeng
Posts: 21
Joined: Mon Mar 23, 2009 8:25 pm

Re: using pw and yambo for metal systems

Post by Yunfeng » Thu Mar 26, 2009 1:46 am

Dear Andrea and Conor,

Thanks for your reply! It helps!

I'm still struggling for a complete calculation, however. Now I'm using "16 16 16 0 0 0" for k point sampling. The Yambo, for both OCCUPATIONS='smearing' and OCCUPATIONS='tetrahedra', stopped at

" [ERROR] STOP signal received while in :[02.03] Input (E)nergies[ev] & Occupations

[ERROR]Impossible to converge the Fermi Level"

I think the questions now are how to choose a degauss and k-point sampling etc. Can you kindly post a worked sample. Or give me a suggestion on my input. Today I changed my input a little bit as follows

si.scf.in

&control
calculation = 'scf' ,
restart_mode='from_scratch' ,
prefix='silicon' ,
tstress = .true. ,
tprnfor = .true. ,
wf_collect = .true. ,
pseudo_dir = '/scratch_ibm/yfliang/PP/' ,
outdir = '/scratch_ibm/yfliang/yambo/tmp/Si/'
/
&system
ibrav= 4, celldm(1) =4.817,
celldm(3)=0.942, nat= 1, ntyp= 1,
ecutwfc =30.0,
occupations='smearing', smearing='marzari-vanderbilt', degauss=0.005
/
&electrons
diagonalization='david'
mixing_mode = 'plain'
mixing_beta = 0.7
conv_thr = 1.0d-8
diago_full_acc = .true.
/
ATOMIC_SPECIES
Si 28.086 Si.pbe-rrkj.UPF
ATOMIC_POSITIONS
Si 0.00 0.00 0.00
K_POINTS { automatic }
16 16 16 0 0 0


si.band.in

&control
calculation='bands' ,
wf_collect = .true. ,
prefix='silicon' ,
pseudo_dir = '/scratch_ibm/yfliang/PP/',
outdir = '/scratch_ibm/yfliang/yambo/tmp/Si/'
/
&system
ibrav= 4, celldm(1) =4.817,
celldm(3)=0.942, nat= 1, ntyp= 1,
ecutwfc =30.0, nbnd = 150,
nosym = .false.
occupations='smearing', smearing='marzari-vanderbilt', degauss=0.005
/
&electrons
diagonalization='cg' ,
diago_thr_init = 1.e-6 ,
diago_full_acc = .true. ,
/
ATOMIC_SPECIES
Si 28.086 Si.pbe-rrkj.UPF
ATOMIC_POSITIONS
Si 0.00 0.00 0.00
K_POINTS { automatic }
16 16 16 0 0 0

***The reason for choosing the degauss=0.02 is that it is a value used for Cu and Al (0.05) in "~/espresso-3.2.3/examples. /example01/" Also in the Stefano de Gironcoli's PRB 51, 6773 (1995), they are using 0.3 eV....From Andrea's reply, it seems that we need lower degauss value for Yambo. That was the reason I chose 0.05 in the above input. Unfortunately it doesn't work yet. I'm now doing calculation with "32 32 32 0 0 0" and degauss=0.001. But before we have the outcome, it is nice to have your comment on my effort today.

Best Regards
Sincerely, Yunfeng
Yunfeng Liang
Department of Physics and Engineering Physics
University of Saskatchewan
116 Science Place
Saskatoon S7N0K4, SK, Canada
Email: yul059@mail.usask.ca, liangyunfeng@gmail.com
Tel: +1(306)966-6213
Fax: +1(306)966-6400

Yunfeng
Posts: 21
Joined: Mon Mar 23, 2009 8:25 pm

Re: using pw and yambo for metal systems

Post by Yunfeng » Thu Mar 26, 2009 3:41 am

Dear Andrea and Conor,

I have successfully done a calculation on Si-V, with lower K point mesh 8x8x8.

Now I believe that the problem is neither related to k point sampling(as Andrea pointed out!), nor coming from degauss.It turns out that the problem was coming from an extra line in "si.band.in",

occupations='smearing', smearing='marzari-vanderbilt', degauss=0.001

After elimination of this additional line, the Yambo works! ....I didn't compare with the experimental data yet.

Cheers!
Sincerely, Yunfeng
Yunfeng Liang
Department of Physics and Engineering Physics
University of Saskatchewan
116 Science Place
Saskatoon S7N0K4, SK, Canada
Email: yul059@mail.usask.ca, liangyunfeng@gmail.com
Tel: +1(306)966-6213
Fax: +1(306)966-6400

User avatar
andrea marini
Posts: 325
Joined: Mon Mar 16, 2009 4:27 pm
Contact:

Re: using pw and yambo for metal systems

Post by andrea marini » Thu Mar 26, 2009 9:40 am

Yunfeng wrote: Now I believe that the problem is neither related to k point sampling(as Andrea pointed out!), nor coming from degauss.It turns out that the problem was coming from an extra line in "si.band.in"
Right. The problem of the Fermi level convergence is not due to k-sampling or occupation smearing ... but still, you cannot use shifted grids in the case of hexagonal cells :!:

Anyway ... you did a great job ! Keep on using Yambo and keep us informed :D

Cheers

Andrea
Andrea MARINI
Istituto di Struttura della Materia, CNR, (Italy)

Yunfeng
Posts: 21
Joined: Mon Mar 23, 2009 8:25 pm

Re: using pw for Metallic systems: the case of hexagonal cells

Post by Yunfeng » Fri Mar 27, 2009 7:36 am

Following the previous post , I have done some successful calculations on metals. Yet only limits to 8x8x8 MP k pints sampling without shift.

I had anticipated that "the problem of the Fermi level convergence is not due to k-sampling..." However, it is not true.... When I used 16x16x16/12x12x12 (without shift), the problem resurfaced

<03s> [02.03] Input (E)nergies[ev] & Occupations
[ERROR] STOP signal received while in :[02.03] Input (E)nergies[ev] & Occupations
[ERROR]Impossible to converge the Fermi Level

I was intending to solve this problem myself:

1)In case of 8x8x8, the actual kpoints is 50, nbnd=150. So the dimension for energy is 50x150=7500

2)In case of 16x16x16, the actual kpoints is 270, nbnd=150. So the dimension for energy is 50x150=40500

So the ghost could be related to the digit number for the WRITE statement in Fortran, which was set to I4 or I4.4. I did change all "I4" or "I4.4" to "I6" or " I6.6" , and some of "I5" to "I6". So far, I'm still struggling....

But probably it is from other factors, which I'm of course not familiar. But I believe it is not a big problem, hopefully you experts will solve it before I wake up.

Thanks
Sincerely, Yunfeng

"
Yunfeng Liang
Department of Physics and Engineering Physics
University of Saskatchewan
116 Science Place
Saskatoon S7N0K4, SK, Canada
Email: yul059@mail.usask.ca, liangyunfeng@gmail.com
Tel: +1(306)966-6213
Fax: +1(306)966-6400

User avatar
andrea marini
Posts: 325
Joined: Mon Mar 16, 2009 4:27 pm
Contact:

Re: using pw for Metallic systems: the case of hexagonal cells

Post by andrea marini » Fri Mar 27, 2009 10:40 am

Yunfeng wrote:Following the previous post , I have done some successful calculations on metals. Yet only limits to 8x8x8 MP k pints sampling without shift.
I had anticipated that "the problem of the Fermi level convergence is not due to k-sampling..." However, it is not true.... When I used 16x16x16/12x12x12 (without shift), the problem resurfaced
I reproduced you error with yambo-3.1.2 rev. 300, that is not the most updates version.

This error has been solved in the revision 315 released on October 2008.

Please, remember to use the latest source, always. Yambo has been just released and we fix bugs and add features on a daily basis. You can download the lates stable source from the download page. Alternatively you can use the SVN server to get the most updated source.

Andrea
Andrea MARINI
Istituto di Struttura della Materia, CNR, (Italy)

Yunfeng
Posts: 21
Joined: Mon Mar 23, 2009 8:25 pm

Re: using pw for Metallic systems: the case of hexagonal cells

Post by Yunfeng » Fri Mar 27, 2009 5:35 pm

andrea marini wrote:
Yunfeng wrote:Following the previous post , I have done some successful calculations on metals. Yet only limits to 8x8x8 MP k pints sampling without shift.
I had anticipated that "the problem of the Fermi level convergence is not due to k-sampling..." However, it is not true.... When I used 16x16x16/12x12x12 (without shift), the problem resurfaced
I reproduced you error with yambo-3.1.2 rev. 300, that is not the most updates version.

This error has been solved in the revision 315 released on October 2008.
Dear Andrea

I was actually using "yambo-3.2.0 Revision 315". Is it right version?

Sincerely, Yunfeng
Yunfeng Liang
Department of Physics and Engineering Physics
University of Saskatchewan
116 Science Place
Saskatoon S7N0K4, SK, Canada
Email: yul059@mail.usask.ca, liangyunfeng@gmail.com
Tel: +1(306)966-6213
Fax: +1(306)966-6400

Locked