can GW compute indirect band gap ?

GW, Bethe-Salpeter …

Moderators: maryam.azizi, bruneval

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

can GW compute indirect band gap ?

Post by Mutta » Mon Jan 17, 2011 9:55 am

Dear all
I have a question
Is there GW can be computed in indirect band gap for GAMMA-X or GAMMA-R

Best.
Abdulmutta

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Thu Jan 20, 2011 7:00 am

Hi
Similar question has been around for sometimes and useful suggestions from experts have been posted in this forum or at least in the former Abinit's mailing list. However, I hope it is OK and may be helpful to repeat those answers again.

The answer is "yes" but not directly. Within Abinit, the GW band structure, with either direct or indirect band gap, can be calculated using the quasiparticle self-consistent GW (QSGW) and the maximally localized Wannier functions (MLWF) regimes. The procedure can be divided into three steps.

1. Perform normal ground state calculation to get the density (DEN) and the Khon-Sham structure (KSS) files.
2. Perform the QSGW calculation, using the KSS file in step 1 as input, to get the converged quasiparticle structure (QPS) file.
3. Perform the MLWF calculation and band interpolation using the QPS file in step 3 and the DEN and WFK files in step-1, as inputs.

Step 1&2 can be carried out with usual runs of Abinit, preferably in parallel because the GW calculations are very time consuming. To complete step 3 we need Abinit with Wannier90 interface and this can be run only in serial.

The places to start learning all these are the Abinit tutorials: GW1, GW2 and Wanier90. Good example for performing QSGW+MLWF is tutorial t03's located in ../tests/wannier90/Input/t03.*

Recently, with version 6.4.1 of Abinit or later, the QSGW part can be safely performed using optdriver=8. This provides a very convenient way of performing the QSGW.

Hope this help.

Kind Regards,
Thanusit

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

Re: can GW compute indirect band gap ?

Post by Mutta » Sat Jan 22, 2011 4:33 am

Dear Thanusit
Thank you for your kindness
Are you stayed Thailand ?
Nowaday, for step 1 and 2 used in parallel , how can I going to step 3 in serial ?


Best.
Abdulmutta

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Sat Jan 22, 2011 10:38 am

Dear Mutta

You need to perform at least two separate runs. One is the parallel run (step 1&2) to get the DEN, WFK, and QPS files needed in the next step. Another is the serial run to perform Wannier function calculation and band interpolation with Wannier90 interface (step2). It may be also a good idea to perform three separate runs for each step, especially if the computing power of your system is not great.

Hope this help,
Thanusit

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

Re: can GW compute indirect band gap ?

Post by Mutta » Sun Jan 23, 2011 7:14 am

Dear Thanusit
I have one more question , recently I used abinit 6.2.3, it is parallel version
How can I ran for step 3, ones is serial
Please comment my input file, see below
for input variable, it does not converge
How about to set 3 step but we have 5 dataset
ndtset 5

# Self-consistent run to get the density
iscf1 5
toldfe1 1.00d-6
prtden1 1

# Non-self-consistent run to get all cg wavefunctions
getden2 1
getwfk2 1
iscf2 -2
tolwfr2 1.0d-8
nband2 35
kssform2 3 # This option MUST be set to 3 so that conjugate-gradient
# wavefunctions are used as basis functions in the
# GW calculation. Otherwise, the wannier90 interface
# will produce inconsistent, probably random results.
nbandkss2 -1

# Calculation of the the screening (epsilon^-1 matrix)
optdriver3 3
gwcalctyp3 28
getkss3 2
nband3 60
npweps3 27
npwwfn3 27
awtr3 0

# Calculation of the model GW corrections
optdriver4 4
gwcalctyp4 28
getkss4 2
getscr4 3
getqps4 3
nband4 60
npwsigx4 27
npwwfn4 27

# Calculation of the quasiparticle Wannier functions
getden5 1
getwfk5 2 # Must point to lda wavefunction file completely
# consistent with _KSS file generated for GW
getqps5 6
kptopt5 3 # Must use full-zone k mesh for wannier90
istwfk5 216*1
iscf5 -2
nstep5 0 # Irreducible-zone wavefunctions will be transformed
# using symmetry operations to fill the full zone,
# and must not be modified (for consistency with GW)

tolwfr5 1.0d-10 # Dummy, but necessary
nband5 60 # Must be consistent with nband in quasiparticle GW above

prtwant5 3 # Flag for wannier90 interface with quaisparticles

w90iniprj5 2 # Flag to use hydrogenic or gaussian orbital initial
# projectors (to be specified in *.win file)
w90prtunk5 0 # Flag for producing UNK files necessary for plotting
# (suppressed here by 0 value)


#Common to all model GW calculations
rhoqpmix 0.5
nkptgw 2
kptgw
0.0 0.0 0.0 #GAMMA
0.5 0.0 0.0 # X
bdgw
1 23
1 23
Best.
Abdulmutta

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Mon Jan 24, 2011 9:59 am

Dear Muta

My three steps means to perform the ground state DEN and KSS calculations as step-1 (this should include dataset 1 and 2 of your input file). Then, you run the qpscgw (this will contain multiple iterations of dataset4 and 5) as step-2. Please see Wannier90 tutorial t03 for setting multiple iterations QPSCGW. Finally, as step-3, you need to run the Wannier90 part (dataset5) separately, by serial execution. This last step can be done provided that your Abinit has the Wannier90 interface enable (select during installation). What you need as input for the Wannier90 serial run are DEN file from dataset1, WFK file from dataset2, QPS file from dataset 4, and, of course, the Wannier90 *.win file.

To save running time, in KSS calculation, you may set the nbandkss to a minimum value of 60, which is that specified in the gw calculations.

Please note that, from your input file, you perform only 1 iteration of the QPSCGW. Therefore, the output QPS file in dataset 4 may not yet be the one with good physical meaning. Thus the interpolated band may not be a correct one.

In the last few lines, I think the only two kptgw is too few. You should set all kpt in dataset1 as kptgw. (I may be wrong at this point.)

Hope this helps.

Kind regards,
Thanusit

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

Re: can GW compute indirect band gap ?

Post by Mutta » Mon Jan 24, 2011 12:33 pm

Dear Thanusit
Thank you for your kindness
This can be help me everything
I used abinit 6.2.3 version , it is parallel
How can I set for serial version
I am so sorry because the program, it not good for me


Abdulmutta

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Tue Jan 25, 2011 8:07 am

Dear Mutta

As far as I know, you can execute either in serial or parallel an installed package of Abinit 6.2.x or later versions.
For a serial run, a command line like "../..../...$ abinit <*.files>& log" will do the job.

Kind regards,
Thanusit

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

Re: can GW compute indirect band gap ?

Post by Mutta » Tue Jan 25, 2011 2:29 pm

Dear Thanusit
Thank you again
I have another question, sorry, you do not bother me
If I only want to band gap value, I do not have to calculate Wannier90: true or false ?
because just band gap value, for constructed band structure I MUST be computed Wannier90: true or false ?
exactly, input variables such as npweps, npwwfn, npwsigx the values must be the same, all or not ?
and the last, a correct self-consistent calculation should consist of the following run multiple iteration 1, 2, 3... dataset
until now we have accuracy band gap value: right ?



Many thank
Abdulmutta

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Wed Jan 26, 2011 5:01 am

Dear Mutta
>> "If I only want to band gap value, I do not have to calculate Wannier90: true or false ?:
I would say it's true for a direct band gap and false for indirect band gap. This is because the GW calculation can only be carried out on a uniform k-point grid, which normally does not contain the k-points defining your band gap. This happens for most indirect band gap crystals. In principle, the Wannier interpolation is brought in to help us finding the eigen energies at these missing k-points, and therefore the band gap. In case of a direct band gap at Gamma, you get the GW band gap straight away without successive Wannier calculation because the Gamma point is generally included in k-point grid for the GW calculation.

>> "input variables such as npweps, npwwfn, npwsigx the values must be the same, all or not ?"
I believe using the same values for all is just the way to avoid a lot of labour work, especially when you are just doing tutorials. In practice, the good input parameters should be found from convergence studies of the GW corrections with respected to each of them.

>> a correct self-consistent calculation should consist of the following run multiple iteration 1, 2, 3... dataset
until now we have accuracy band gap value: right ?
I hope I understand your point correctly. I think you've got a right idea. The QPSCGW is said to converge if the energy difference at each k-point between the consecutive runs is smaller than some tolerance, such as 0.1 eV.

Hope this help.

Kind regards,
Thanusit

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

Re: can GW compute indirect band gap ?

Post by Mutta » Wed Jan 26, 2011 4:43 pm

Dear Thanusit
Many many thank, this help
When I following in wannier90 tutorial as t03, I have get everything
but where can I found the indirect band gap value ?
such as G-X = ? or G-M = ? , you know, right
please again



Student
Abdulmutta

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Thu Jan 27, 2011 4:22 am

Dear Mutta

You can examine the output file "t03o_DS7_w90_band.dat" in which the E-k data are grouped orderly by band index. Each group, separated by a line break, belongs to an energy band, with the first column is the k-value and the second column is the corresponding eigen energy. The k-value for L, gamma, K, and X, points are assigned in the output file "t03o_DS7_w90_band.gnu". Basically, to find an energy band gap, you need to look for the maximum energy of the highest occupied band and the minimum energy of the lowest unoccupied band. For silicon (with 8 electrons per unit cell), these are the 4th and the 5th band, respectively, and the corresponding k-points giving the two energies are the Gamma and somewhere close to the X point, respectively,

Hope this helps.
Thanusit

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

Re: can GW compute indirect band gap ?

Post by Mutta » Sat Jan 29, 2011 9:13 am

Dear Thanusit
I used GW calculation of PbTiO3, it is a complex problem. So when I ran my system
it is so far for me in Step 1&2, may be 3-5 days for PC intel i7 4 core ram 8 GB . And then please comment my input files see below

ndtset 6

# Self-consistent run to get the density
iscf1 5
toldfe1 1.00d-6
prtden1 1

# Non-self-consistent run to get all cg wavefunctions
getden2 1
getwfk2 1
iscf2 -2
tolwfr2 1.0d-8
nband2 35
kssform2 1
nbandkss2 400

# Calculation of the the screening (epsilon^-1 matrix)-iteration 1
optdriver3 3
gwcalctyp3 28
getkss3 2
nband3 400
npweps3 450
npwwfn3 450
awtr3 0

# Calculation of the model GW corrections-iteration 1
optdriver4 4
gwcalctyp4 28
getkss4 2
getscr4 3
nband4 400
npwsigx4 450
npwwfn4 450

# Calculation of the dielectric matrix - iteration 2
optdriver5 3
gwcalctyp5 28
getkss5 2
getqps5 4
nband5 400
npweps5 450
npwwfn5 450
awtr5 0

# Calculation of the model GW corrections - iteration 2
optdriver6 4
gwcalctyp6 28
getkss6 2
getqps6 4
getscr6 5
nband6 400
npwsigx6 450
npwwfn6 450

#Common to all model GW calculations
#gwmem 10
rhoqpmix 1.0
nkptgw 40
kptgw
0.00000000E+00 0.00000000E+00 0.00000000E+00
1.66666667E-01 0.00000000E+00 0.00000000E+00
3.33333333E-01 0.00000000E+00 0.00000000E+00
5.00000000E-01 0.00000000E+00 0.00000000E+00
1.66666667E-01 1.66666667E-01 0.00000000E+00
3.33333333E-01 1.66666667E-01 0.00000000E+00
5.00000000E-01 1.66666667E-01 0.00000000E+00
3.33333333E-01 3.33333333E-01 0.00000000E+00
5.00000000E-01 3.33333333E-01 0.00000000E+00
5.00000000E-01 5.00000000E-01 0.00000000E+00
0.00000000E+00 0.00000000E+00 1.66666667E-01
1.66666667E-01 0.00000000E+00 1.66666667E-01
3.33333333E-01 0.00000000E+00 1.66666667E-01
5.00000000E-01 0.00000000E+00 1.66666667E-01
1.66666667E-01 1.66666667E-01 1.66666667E-01
3.33333333E-01 1.66666667E-01 1.66666667E-01
5.00000000E-01 1.66666667E-01 1.66666667E-01
3.33333333E-01 3.33333333E-01 1.66666667E-01
5.00000000E-01 3.33333333E-01 1.66666667E-01
5.00000000E-01 5.00000000E-01 1.66666667E-01
0.00000000E+00 0.00000000E+00 3.33333333E-01
1.66666667E-01 0.00000000E+00 3.33333333E-01
3.33333333E-01 0.00000000E+00 3.33333333E-01
5.00000000E-01 0.00000000E+00 3.33333333E-01
1.66666667E-01 1.66666667E-01 3.33333333E-01
3.33333333E-01 1.66666667E-01 3.33333333E-01
5.00000000E-01 1.66666667E-01 3.33333333E-01
3.33333333E-01 3.33333333E-01 3.33333333E-01
5.00000000E-01 3.33333333E-01 3.33333333E-01
5.00000000E-01 5.00000000E-01 3.33333333E-01
0.00000000E+00 0.00000000E+00 5.00000000E-01
1.66666667E-01 0.00000000E+00 5.00000000E-01
3.33333333E-01 0.00000000E+00 5.00000000E-01
5.00000000E-01 0.00000000E+00 5.00000000E-01
1.66666667E-01 1.66666667E-01 5.00000000E-01
3.33333333E-01 1.66666667E-01 5.00000000E-01
5.00000000E-01 1.66666667E-01 5.00000000E-01
3.33333333E-01 3.33333333E-01 5.00000000E-01
5.00000000E-01 3.33333333E-01 5.00000000E-01
5.00000000E-01 5.00000000E-01 5.00000000E-01
bdgw
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23
1 23

For my input file such as npweps, npwwfn, npwsigx. I guess !
everything I have got _DEN file as dataset 1, _WFK files as dataset 2 and _QPS files as dataset 6
and then I used as any files to calculated in STEP3.
In step3 I got files name was bando_DS1_DEN, bando_DS2_WFK and bando_DS6_QPS files
when i separates step3, How can I set files name was bando_DS1_DEN, bando_DS2_WFK and bando_DS6_QPS files
see below for input step 3
# Calculation of the quasiparticle Wannier functions
getden 1
getwfk 2 # Must point to lda wavefunction file completely
# consistent with _KSS file generated for GW
getqps 6
kptopt 3 # Must use full-zone k mesh for wannier90
istwfk 216*1
iscf -2
nstep 0 # Irreducible-zone wavefunctions will be transformed
# using symmetry operations to fill the full zone,
# and must not be modified (for consistency with GW)
tolwfr 1.0d-8 # Dummy, but necessary
nband 400 # Must be consistent with nband in quasiparticle GW above
prtwant 2 # Flag for wannier90 interface with quaisparticles
w90iniprj 2 # Flag to use hydrogenic or gaussian orbital initial
# projectors (to be specified in *.win file)
w90prtunk 1 # Flag for producing UNK files necessary for plotting
# (suppressed here by 0 value)

this is true or false ?

and the last question for input files is istwfk 216*1
I should give k-point in the full brillouin zone
in wanneir90.win see below

! PbTiO3 - drh

!comment out for second run
postproc_setup = .true.
num_iter = 100

!comment out for first run
!restart = plot
!restart = wannierise

!optional for first run
!wannier_plot = .true.
!wannier_plot_supercell = 3
bands_plot = .true.

begin kpoint_path
G 0.00000 0.00000 0.0000 X 0.50000 0.00000 0.0000
X 0.50000 0.00000 0.0000 M 0.50000 0.50000 0.0000
M 0.50000 0.50000 0.0000 R 0.50000 0.50000 0.0000
R 0.50000 0.50000 0.5000 G 0.00000 0.00000 0.0000
end kpoint_path

wvfn_formatted = .false.

num_wann = 20
num_bands = 40
exclude_bands = 5-10

begin projections
!site:ang_mtm:zaxis:xaxis:radial:zona:box-size

f=0.125,0.125,0.125 : l=0, mr=1 : r=4, zona= 0.5
f=0.625,0.125,0.125 : l=0, mr=1 : r=4, zona= 0.5
f=0.125,0.625,0.125 : l=0, mr=1 : r=4, zona= 0.5
f=0.125,0.125,0.625 : l=0, mr=1 : r=4, zona= 0.5

end projections

mp_grid = 6 6 6

begin unit_cell_cart
0.0000000000E+00 0.0000000000E+00 0.0000000000E+00
3.6590150000E+00 3.6590150000E+00 4.3454665559E+00
3.6590150000E+00 3.6590150000E+00 1.0008831463E+00
0.0000000000E+00 3.6590150000E+00 5.0590278769E+00
3.6590150000E+00 0.0000000000E+00 5.0590278769E+00
end unit_cell_cart

begin atoms_frac
Pb 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00
Ti 5.0000000000E-01 5.0000000000E-01 5.3930972737E-01
O 5.0000000000E-01 5.0000000000E-01 1.2421819610E-01
O 0.0000000000E+00 5.0000000000E-01 6.2786881684E-01
O 5.0000000000E-01 0.0000000000E+00 6.2786881684E-01
end atoms_frac

begin kpoints
0.00000000E+00 0.00000000E+00 0.00000000E+00
1.66666667E-01 0.00000000E+00 0.00000000E+00
3.33333333E-01 0.00000000E+00 0.00000000E+00
5.00000000E-01 0.00000000E+00 0.00000000E+00
1.66666667E-01 1.66666667E-01 0.00000000E+00
3.33333333E-01 1.66666667E-01 0.00000000E+00
5.00000000E-01 1.66666667E-01 0.00000000E+00
3.33333333E-01 3.33333333E-01 0.00000000E+00
5.00000000E-01 3.33333333E-01 0.00000000E+00
5.00000000E-01 5.00000000E-01 0.00000000E+00
0.00000000E+00 0.00000000E+00 1.66666667E-01
1.66666667E-01 0.00000000E+00 1.66666667E-01
3.33333333E-01 0.00000000E+00 1.66666667E-01
5.00000000E-01 0.00000000E+00 1.66666667E-01
1.66666667E-01 1.66666667E-01 1.66666667E-01
3.33333333E-01 1.66666667E-01 1.66666667E-01
5.00000000E-01 1.66666667E-01 1.66666667E-01
3.33333333E-01 3.33333333E-01 1.66666667E-01
5.00000000E-01 3.33333333E-01 1.66666667E-01
5.00000000E-01 5.00000000E-01 1.66666667E-01
0.00000000E+00 0.00000000E+00 3.33333333E-01
1.66666667E-01 0.00000000E+00 3.33333333E-01
3.33333333E-01 0.00000000E+00 3.33333333E-01
5.00000000E-01 0.00000000E+00 3.33333333E-01
1.66666667E-01 1.66666667E-01 3.33333333E-01
3.33333333E-01 1.66666667E-01 3.33333333E-01
5.00000000E-01 1.66666667E-01 3.33333333E-01
3.33333333E-01 3.33333333E-01 3.33333333E-01
5.00000000E-01 3.33333333E-01 3.33333333E-01
5.00000000E-01 5.00000000E-01 3.33333333E-01
0.00000000E+00 0.00000000E+00 5.00000000E-01
1.66666667E-01 0.00000000E+00 5.00000000E-01
3.33333333E-01 0.00000000E+00 5.00000000E-01
5.00000000E-01 0.00000000E+00 5.00000000E-01
1.66666667E-01 1.66666667E-01 5.00000000E-01
3.33333333E-01 1.66666667E-01 5.00000000E-01
5.00000000E-01 1.66666667E-01 5.00000000E-01
3.33333333E-01 3.33333333E-01 5.00000000E-01
5.00000000E-01 3.33333333E-01 5.00000000E-01
5.00000000E-01 5.00000000E-01 5.00000000E-01
end kpoints


please comment
student
Abdulmutta

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Mon Jan 31, 2011 10:33 am

Dear Mutta

To read the DEN, WFK, and QPS files from the earlier runs you may use

getden 1 # Point to the gs density
irdwfk 1 # Must point to lda wavefunction file completely
# consistent with _KSS file generated for GW
irdqps 1 # point to the converged QPS file from the QPSCGW run,

and rename the output files "bando_DS1_DEN, bando_DS2_WFK and bando_DS6_QPS" to "bandi_DEN, bandi_WFK and bandi_QPS", respectively to make them recognized as the inputs of the separated step-3 (the Wannier calculation).

Yes, there should be 216 k-points within the block

begin kpoints
(list all 216 kpts)
end kpoints.

So far, I see a couple of mistakes in your .win file:
(1) "exclude_bands = 5-10" should be "exclude_bands = 24-400" to use only the calculated GW bands.
(2) There must be 20 projections because you have num_wann =20.

One more thing, because you have only 2 iterations in the qpscgw, it is not certain that you will get the converged QPS. Try the QPSCGW with optdriver=8 is a better way to do the task. With this option driver, the qpscgw is automatically performed and you have a free choice of specifying the number of iterations using "gw_nstep".

Hope this help.

Kind regards,
Thanusit

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

Re: can GW compute indirect band gap ?

Post by Mutta » Mon Jan 31, 2011 6:12 pm

Dear Thanusit

Thank you this help
After I try as your suggestion with optdriver=8 in abinit 6.2.3 version
I have got warning word was see below
gw_driver.F90:104:WARNING
One of the three variables ecuteps, npweps, or nsheps must be non-null.

gw_driver.F90:116:ERROR
Cannot continue, check input file
and when I new install abinit 6.4.3 version, I have also warning files gw_driver.F90:104:WARNING
One of the three variables ecuteps, npweps, or nsheps must be non-null.

please again comment my input file below
#Definition of the GW correction
gw_nstep 30
gw_sctype 4
gw_toldfeig 0.1


###############################################################################
ndtset 4

# Self-consistent run to get the density
iscf1 5
toldfe1 1.00d-6
prtden1 1

# Non-self-consistent run to get wavefunctions
getden2 1
getwfk2 1
iscf2 -2
tolwfr2 1.0d-8
nband2 35
kssform2 1
nbandkss2 400

# Calculation of the dielectric matrix
optdriver3 3
gwcalctyp3 28
getkss3 2
nband3 400
npwwfn3 27
npweps3 27
awtr3 0

# Calculation of the model GW corrections
optdriver4 8
gwcalctyp4 28
getkss4 2
getscr4 3
nband4 400
npwwfn4 27
npwsigx4 27

and one more question : When I set npwwfn, npweps and npwsigx each input file equal 2000
my system does not have enough memory, what do thing about my input files ?

Best regards
Abdulmutta

Mutta
Posts: 69
Joined: Fri Feb 19, 2010 11:33 am

Re: can GW compute indirect band gap ?

Post by Mutta » Wed Feb 02, 2011 7:41 pm

Dear Thanusit
When I try in step-3 , I have an error below

hdr_check: WARNING -
Restart of self-consistent calculation need translated wavefunctions.
Indeed, critical differences between current calculation and
restart file have been detected in:
* the number, position, or weight of k-points
* the format of wavefunctions (istwfk)

mlwfovlp_qp: WARNING
The input *_WFK file of LDA wavefunctions to be converted
to GW quasiparticle wavefunctions MUST have been written in
the run that produced the GW *_KSS file using kssform 3,
the ONLY value of kssform permitted for GW Wannier functions.
Otherwise, the *_QPS file needed here will be inconsistent,
and the output quasiparticle wavefunctions will be garbage.
No internal check that can verify this is presently possible.


listkk : BUG -
The minimum square of dk has negative norm: dksqmn= -1.000000E+00
Action : contact ABINIT group.

.Delivered 3 WARNINGs and 1 COMMENTs to log file.

leave_new : decision taken to exit ...


As my input files
# Calculation of the quasiparticle Wannier functions
getden 1 # Point to the gs density
irdwfk 1 # Must point to lda wavefunction file completely
irdqps 1 # point to the converged QPS file from the QPSCGW run,
kptopt 3 # Must use full-zone k mesh for wannier90
istwfk 216*1
iscf -2
nstep 0 # Irreducible-zone wavefunctions will be transformed
# using symmetry operations to fill the full zone,
# and must not be modified (for consistency with GW)
tolwfr 1.0d-8 # Dummy, but necessary
nband 400 # Must be consistent with nband in quasiparticle GW above
prtwant 3 # Flag for wannier90 interface with quaisparticles
w90iniprj 2 # Flag to use hydrogenic or gaussian orbital initial
# projectors (to be specified in *.win file)
w90prtunk 0 # Flag for producing UNK files necessary for plotting
# (suppressed here by 0 value)

Please introducing to me
Abdulmutta

Newlife1982
Posts: 37
Joined: Thu Jun 24, 2010 2:13 pm

Re: can GW compute indirect band gap ?

Post by Newlife1982 » Tue Mar 29, 2011 4:42 pm

Dear Thanusit,

I am also doing the calculations of the indirect band gap. When I did the tutorial of wannier90 with t03*. It is right if I just use the tutorial input files, but I always got a error if I calculate the band gap in three separate steps. as follows:

- hdr_check: checking restart file header for consistency -


current calculation restart file
------------------- ------------

calculation expects a wf_planewave | input file contains a wf_planewave
. ABINIT code version 5.8.4 | ABINIT code version o^U336^A377^?

hdr_check: BUG -
input fform= 2 differs from disk file fform= 0.

I do not know where I did wrong. Could you kindly show me how to correct it? Thank you very much.

Best,

WG

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Tue Apr 05, 2011 12:57 pm

Dear WG

I've never encountered this error before. Anyway, yes, just use the t03 input files(t03.in and t03o_DS7_w90.win), and make sure you have the t03.file and the psp files in place, then the run should be fine. Also, make sure to execute in serial because the wannier90 does not work in parallel run. If this does not fix the error, it may be easier to find out what goes wrong if you post your input files.

Hope this help.
Thanusit

Newlife1982
Posts: 37
Joined: Thu Jun 24, 2010 2:13 pm

Re: can GW compute indirect band gap ?

Post by Newlife1982 » Tue Apr 05, 2011 1:52 pm

Dear Thanusit,

Many thanks.

Right now, I just do the calculations of Si in the tutorial. If I do it in one step as the tutorial, it is fine. But if I do it in the separate steps including the GW calculation and the Wannier90 calculation as you suggested above. There is always a error during the Wannier90 calculation as follows:

-P-0000 listkk : BUG -
-P-0000 The minimum square of dk has negative norm: dksqmn= -1.000000E+00
-P-0000
-P-0000 leave_new : decision taken to exit ...
-P-0000 leave_new : synchronization done...
-P-0000 leave_new : exiting...


The attachment is the input files. Thank you very much!

Best,

WG
Attachments
t03-1.in
(2.93 KiB) Downloaded 450 times
t03-2.in
(1.64 KiB) Downloaded 379 times

david.waroquiers
Posts: 138
Joined: Sat Aug 15, 2009 12:45 am

Re: can GW compute indirect band gap ?

Post by david.waroquiers » Tue Apr 05, 2011 3:38 pm

Hi WG,

You should set the same nkptgw kptgw and bdgw variables in the wannier90 run (your t03-1.in) as the one you used in the QSGW run (your t03-2.in).

David

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Thu Apr 07, 2011 1:33 pm

Hi WG
As David's suggestion, you need to copy the following part of your t03-1.in to t03-2.in for the Wannier90 run. These input parameters are still needed, even the SCGW calculation is no more running.

--------------------------------------------------------------------------------------------------
#common to all model GW calculations
rhoqpmix 0.5
nkptgw 8
kptgw
0.00000000E+00 0.00000000E+00 0.00000000E+00
2.50000000E-01 0.00000000E+00 0.00000000E+00
5.00000000E-01 0.00000000E+00 0.00000000E+00
2.50000000E-01 2.50000000E-01 0.00000000E+00
5.00000000E-01 2.50000000E-01 0.00000000E+00
-2.50000000E-01 2.50000000E-01 0.00000000E+00
5.00000000E-01 5.00000000E-01 0.00000000E+00
-2.50000000E-01 5.00000000E-01 2.50000000E-01
bdgw
1 8 # Only bands 1-8 are quasiparticle. LDA will be used for
# bands 9 and 10 in the wannier90 calculation.
1 8
1 8
1 8
1 8
1 8
1 8
1 8
---------------------------------------------------------------------------------------------------------------------------

Hope this help,
Thanusit

Newlife1982
Posts: 37
Joined: Thu Jun 24, 2010 2:13 pm

Re: can GW compute indirect band gap ?

Post by Newlife1982 » Sun Apr 10, 2011 10:55 am

Hi Thanusit, David,

Thank you for your nice suggestions!

I will recalculate it. Sorry that I reply late because our compute nodes do not work and I can not do the test.

Best,

WG

Newlife1982
Posts: 37
Joined: Thu Jun 24, 2010 2:13 pm

Re: can GW compute indirect band gap ?

Post by Newlife1982 » Thu Apr 14, 2011 10:44 am

Hi Thanusit, David,


I did the test following your suggestions. Unfortunately, I got this error again:

- hdr_check: checking restart file header for consistency -


current calculation restart file
------------------- ------------

calculation expects a wf_planewave | input file contains a wf_planewave
. ABINIT code version 5.8.4 | ABINIT code version o^U336^A377^?

hdr_check: BUG -
input fform= 2 differs from disk file fform= 0.

Could you kindly give me some more suggestions? Thank you very much!

Best,

WG

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Mon Apr 18, 2011 9:47 am

Dear WG

I tried running your input files with few changes and the test was completed. Apart from the missing gw input parameters discussed above, the only additional mistake I spotted in your t03-2.in was the value of "w90iniprj". It should be "2" not "4". You must have seen the error message asking to correct it. With w90iniprj set to 2 and the following files were in place, together with the t03-2.in and t03-2.files files, the job went through nicely. Note that the abinit version I used was 6.4.3. Both parts were executed in serial.

file list:

14si.pspnc (psp)
t03-2i_DEN (copied and renamed the file "t03-1o_DS1_DEN" obtained from running t03-1.in)
t03-2i_WFK (copied and renamed the file "t03-1o_DS2_WFK" obtained from running t03-1.in)
t03-2i_QPS (copied and renamed the file "t03-1o_DS6_QPS" obtained from running t03-1.in)
t03-2o_w90.win (copied and renamed the file "t03o_DS7_w90.win" obtained originally from the t03 tutorial)

One more thing, on running the first part(t03-1.in), the input file was slightly modified. I had to comment out the followings input parameters in dataset 3-6 because it doesn't seem to work in abinit 6.4.3 if they remain unchanged.
---------------------------------
# npweps3 27
# npwwfn3 27
# npwsigx4 27
# npwwfn4 27
# npweps5 27
# npwwfn5 27
# npwsigx6 27
# npwwfn6 27
---------------------------------

Then, replaced the above commented lines with these parameters:
ecutwfn 4
ecuteps 4
ecutsigx 4.

This seems to be the more appropriate way of specifying the number of plane waves used in the W and G calculations. These ecut-parameters don't have to be equal and should obtained from rigorous convergence studies for serious jobs. I made them equal just for a test case.

I'm not sure yet which part that fixes the error you encountered. I tried to re-generate the error but without success. I think you are now in the best position to find out the answer. Please let us know how it goes.

Hope this helps.

Kind regards,
Thanusit

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: can GW compute indirect band gap ?

Post by thanusit » Fri Apr 29, 2011 4:59 am

Dear all

Please let me do a little bit of correction to my last post. Regarding the parameters "npwwfn" and "npwsigx"for gw calculations, actually they work well provided that we set "ecutwfn = 0.0" and "ecutsigx = 0.0". This has been explained clearly in the input variable description. Sorry for my careless.

Kind regards,
Thanusit

Locked