GaAs wurtzite

External optional components of Abinit (BigDFT, Wannier90...) and codes using/providing data from/to Abinit (AtomPAW, ONCVPSP, EXC, DP, Yambo...)

Moderators: ebousquet, bxu

Locked
aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

GaAs wurtzite

Post by aaaa202 » Tue Nov 03, 2015 11:53 am

I'm trying to simulate the band structure for GaAs in the wurtzite structure, but there are some problems.
My code is a modified version of the tutorial script for silicon:

Code: Select all

# Bulk GaAs wurtzite 
#
# Computation of the band structure.
# First, a SCF density computation, then a non-SCF band structure calculation.

ndtset 2

#Dataset 1 : usual self-consistent calculation
kptopt1 1          # Option for the automatic generation of k points,
                   # taking into account the symmetry
nshiftk1 4
shiftk1  0.5 0.5 0.5  # These shifts will be the same for all grids
         0.5 0.0 0.0
         0.0 0.5 0.0
         0.0 0.0 0.5
ngkpt1  4 4 4 
prtden1  1         # Print the density, for use by dataset 2
toldfe1  1.0d-6    # This value is way too large for most realistic studies of materials

#Dataset 2 : the band structure
iscf2    -2
getden2  -1
kptopt2  -3
nband2   8
ndivk2   10 12 17      # 10, 12 and 17 divisions of the 3 segments, delimited
                       # by 4 points.
kptbounds2  0.5  0.0  0.0 # L point
            0.0  0.0  0.0 # Gamma point
            0.0  0.5  0.5 # X point
            1.0  1.0  1.0 # Gamma point in another cell.
tolwfr2  1.0d-12
enunit2  1             # Will output the eigenenergies in eV


#Definition of the unit cell for GaAs wurtzite
acell 7.3925 7.3925 12.107
rprim  1/2  -0.866000000 0.00000000   
       1/2  0.866000000  0.000000000   
       0.00000000    0.00000000      1.000000000000000000

#Definition of the atom types
ntypat 2          # There is only one type of atom
znucl 33 31         
                         
#Definition of the atoms
natom 4           # There are four atoms in the unit cell
typat 1 1 2 2     
xred              # This keyword indicate that the location of the atoms
                  # will follow, one triplet of number for each atom
   2/3  1/3  3/8 
   1/3  2/3  7/8 
   2/3  1/3  0
   1/3  2/3  1/2

#Definition of the planewave basis set
ecut 15.0         # Maximal kinetic energy cut-off, in Hartree

#Definition of the SCF procedure
nstep 10          # Maximal number of SCF cycles
diemac 12.0       # Although this is not mandatory, it is worth to
                  # precondition the SCF cycle. The model dielectric
                  # function used as the standard preconditioner
                  # is described in the "dielng" input variable section.

The problem I get is that in the output file the space group is determined by abinit to be 36, which is not what it should be. It should be 186. Does anyone have an idea of what might be wrong?

sheng
Posts: 64
Joined: Fri Apr 11, 2014 3:44 pm

Re: GaAs wurtzite

Post by sheng » Tue Nov 03, 2015 12:28 pm

Try to construct the structure using Abinit symmetry builder instead of giving the atomic positions directly.
In the input file specify the space group and Wyckoff position (see input variables: spgroup, natrd etc).

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Tue Nov 03, 2015 1:44 pm

okay I will try to do that. I also tried to use:
angdeg 90 90 120
spgroup 186
But that also gave an error:

Chksymbreak=1 . It has been observed that the k point grid is not symmetric :
for the symmetry number 2
with symrc1= 0 1 0 -1 1 0 0 0 1
the symmetric of the k point number 166 with components 1.250000E-01 0.000000E+00 0.000000E+00
does not belong to the k point grid.
Read the description of the input variable chksymbreak,
You might switch it to zero, or change your k point grid to one that is symmetric.
xmpi_bsize_int ............. 4
xmpi_bsize_sp .............. 4
xmpi_bsize_dp .............. 8
xmpi_bsize_spc ............. 8
xmpi_bsize_dpc ............. 16
xmpio_bsize_frm ............ 0
xmpi_address_kind .......... 8
xmpi_offset_kind ........... 8
MPI_WTICK .................. 4.1052453540938329E-007

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Tue Nov 03, 2015 1:53 pm

but according no your advice, should I simply take:
spgroup 186
natrd 4
Is that enough information? It doesn't seem to work for me.
Edit: as you said I should also specify the Wyckoff positions for the atoms, right? How do I find these for wurtzite?

sheng
Posts: 64
Joined: Fri Apr 11, 2014 3:44 pm

Re: GaAs wurtzite

Post by sheng » Sat Nov 07, 2015 5:54 am

Are you familiar with the concept of Wyckoff positions?
You can get the Wyckoff positions for every space group from the Bilbao Crystallographic Server.

Read the input variables descriptions for spgroup, natrd and brvltt.

natrd refers to the minimum number of site symmetries in your structure.
xred in case should be only the minimum number of Wyckoff position needed to construct your structure.

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Sun Nov 08, 2015 1:46 pm

so as far as I can tell I should set brvltt=1 since this constructs the primitive cell from the space group.
Also I should set spgroup 186 of course.
About natrd I am not sure. You say natrd is the minimum number of site symmetries for space group 186 - how do I find this? I have plugged in spgroup 186 in the tool for calculating the wyckoff positions on the Bilbao crystallographic server and it gave me this:
http://www.cryst.ehu.es/cgi-bin/cryst/p ... ph-wp-list
It is a different positions labeled by letters a-d but then they have different multiplicities, which amounts to many different points in the coordinate system (x,y,z). What numbers should I put for the actual Wyckoff positions?

sheng
Posts: 64
Joined: Fri Apr 11, 2014 3:44 pm

Re: GaAs wurtzite

Post by sheng » Mon Nov 09, 2015 2:27 pm

First of all did you understand the concept and function of Wyckoff position?
You don't need to input all atom positions explicitly if you use Wyckoff position.
Hint: Your structures only need natrd=2

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Tue Nov 10, 2015 11:28 am

Okay as far as I can tell the wyckoff positions of the atomic positions:
2/3 1/3 3/8
1/3 2/3 7/8
2/3 1/3 0
1/3 2/3 1/2
Are all generated by the wyckoff positions 2b. What I don't understand is this: As far as I can see 2b will generate mirror atoms according to 1/3,2/3,z) -> (2/3,1/3,z+1/2)
So shouldn't I specify the positions 2/3 1/3 3/8 and 2/3 1/3 0 as well as the Wyckoff position 2b.
So to sum up:
I should set:
spgroup 186
natrd 2
I am not sure how I should specify the Wyckoff position 2b? I guess this is taken care of by the space group? I tried to look at this example, but I don't see where the Wyckoff position appears: http://etsf.polytechnique.fr/howto/abin ... cpositions

sheng
Posts: 64
Joined: Fri Apr 11, 2014 3:44 pm

Re: GaAs wurtzite

Post by sheng » Tue Nov 10, 2015 1:25 pm

Correct.

You just need to input the Wyckoff positions in xred, and Abinit will generate all available mirror images.
So in your case just provide two coordinates for xred.
You don't need to mention the site symmetries 2b, Abinit will identify them according to the atomic coordinates you input.

In short

Code: Select all

spgroup 186
natom 4
natrd 2
typat 1 2     
xred  2/3  1/3  3/8 
        2/3  1/3  0

The rest should be same as your original input file.

At the first try you should be generate the full conventional space group structure to ensure you got the correct coordinates for all the atoms (check the log file at mid-calculation). Then stop the calculation and only then let Abinit generate primitive structure by using the variable brvltt=-1

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Wed Nov 11, 2015 2:15 pm

abinit still gives me an error message:
message:
The symmetry operation number 2 does not preserve
vector lengths and angles.
The value of the residual is 1.7346E-05.
Action : modify rprim, acell and/or symrel so that
vector lengths and angles are preserved.
Beware, the tolerance on symmetry operations is very small.

So I tried to put many digits in my definition of acell and primitive vectors, but it didn't help. I have seen other people have the same problem with the tolerance on symmetry operations being very low.
Here is my file:

Code: Select all

# Bulk GaAs wurtzite 
#
# Computation of the band structure.
# First, a SCF density computation, then a non-SCF band structure calculation.

ndtset 2

#Dataset 1 : usual self-consistent calculation
kptopt1 1          # Option for the automatic generation of k points,
                   # taking into account the symmetry
nshiftk1 4
shiftk1  0.5 0.5 0.5  # These shifts will be the same for all grids
         0.5 0.0 0.0
         0.0 0.5 0.0
         0.0 0.0 0.5
ngkpt1  4 4 4 
prtden1  1         # Print the density, for use by dataset 2
toldfe1  1.0d-6    # This value is way too large for most realistic studies of materials

#Dataset 2 : the band structure
iscf2    -2
getden2  -1
kptopt2  -3
nband2   8
ndivk2   10 12 17      # 10, 12 and 17 divisions of the 3 segments, delimited
                       # by 4 points.
kptbounds2  0.5  0.0  0.0 # L point
            0.0  0.0  0.0 # Gamma point
            0.0  0.5  0.5 # X point
            1.0  1.0  1.0 # Gamma point in another cell.
tolwfr2  1.0d-12
enunit2  1             # Will output the eigenenergies in eV


#Definition of the unit cell for GaAs wurtzite
acell 7.3925000000000 7.3925000000000 12.107000000000
rprim  1/2  -0.86600000000 0.000000000   
       1/2  0.866000000000  0.000000000   
       0.00000000000000    0.000000000000   1.000000000000000000

#Definition of the atom types
ntypat 2          # There is only one type of atom
znucl 33 31         
                         
#Definition of the atoms
natom 4           # There are four atoms in the unit cell
natrd 2
spgroup 186
typat 1 2     
xred              # This keyword indicate that the location of the atoms
                  # will follow, one triplet of number for each atom
   2/3  1/3  3/8 
   #1/3  2/3  7/8 
   2/3  1/3  0.00000000000
   #1/3  2/3  1/2

#Definition of the planewave basis set
ecut 15.0         # Maximal kinetic energy cut-off, in Hartree

#Definition of the SCF procedure
nstep 10          # Maximal number of SCF cycles
diemac 12.0       # Although this is not mandatory, it is worth to
                  # precondition the SCF cycle. The model dielectric
                  # function used as the standard preconditioner
                  # is described in the "dielng" input variable section.
                 



edit: Maybe it is a problem with my primitive translation vectors. What should these be or should they be specified at all? I tried to simply not specify them, but this still gave an error on the symmetry relations. I guess they should be there since the wyckoff positions are specified wrt some basis vectors. Also I tried to use angdeg 90. 90. 120. instead of my rprim but that gives an error that my k-grid is not symmetric.

ilukacevic
Posts: 271
Joined: Sat Jan 16, 2010 12:05 pm
Location: Dept. of Physics, University J. J. Strossmayer, Osijek, Croatia
Contact:

Re: GaAs wurtzite

Post by ilukacevic » Thu Nov 12, 2015 8:34 am

Hi!

This is what one can find on abinit input variables part of the web

Alternatively to rprim, directions of dimensionless primitive vectors can be specified by using the input variable angdeg. This is especially useful for hexagonal lattices (with 120 or 60 degrees angles). Indeed, in order for symmetries to be recognized, rprim must be symmetric up to tolsym(10 digits by default), inducing a specification such as

rprim 0.86602540378 0.5 0.0
-0.86602540378 0.5 0.0
0.0 0.0 1.0

that can be avoided thanks to angdeg:

angdeg 90 90 120


Now you can see why abinit exited with an error. Try with angdeg, and use the appropriate k-grid shift

4) For hexagonal lattices with hexagonal axes, e.g. rprim

1.0 0.0 0.0
-0.5 sqrt(3)/2 0.0
0.0 0.0 1.0
one can use nshiftk= 1 and shiftk 0.0 0.0 0.5

Best regards,

Igor L.

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Thu Nov 12, 2015 2:46 pm

I think it is working now - thanks to both of you.
What however troubles is how the band structure plot looks. I have attached it below on, and as you can see it seems to have some sharp edges. At first I thought it was because I chose the wrong symmetry points of the Brillouin zone, but I have now changed these to those for wurtzite (A, K and Gamma) and the band structure still looks weird. I am not sure whether it has anything to do with how abinit creates the k-space grid. Can someone explain to me how this works exactly? I have tried to read the documentation for nshiftk and kshift but it doesn't make complete sense to me. In my case where nshifkt is 1 and shiftk is 0 0 0.5 (or I think I changed it to 0 0 0, which however made no difference), how does the assembling of the k-space grid work?
I have attached my band structure code below, so you may see whether I did something wrong in that:

Code: Select all

#Bulk GaAs wurtzite 
#
# Computation of the band structure.
# First, a SCF density computation, then a non-SCF band structure calculation.

ndtset 2

#Dataset 1 : usual self-consistent calculation
kptopt1 1          # Option for the automatic generation of k points,
                   # taking into account the symmetry
nshiftk1 1
shiftk1  0.0 0.0 0.0  # These shifts will be the same for all grids
        # 0.5 0.0 0.0
        # 0.0 0.5 0.0
        # 0.0 0.0 0.5
ngkpt1  4 4 4 
prtden1  1         # Print the density, for use by dataset 2
toldfe1  1.0d-6    # This value is way too large for most realistic studies of materials

#Dataset 2 : the band structure
iscf2    -2
getden2  -1
kptopt2  -3
nband2   8
ndivk2   10 12 17      # 10, 12 and 17 divisions of the 3 segments, delimited
                       # by 4 points.
kptbounds2  0.0  0.0  0.5 # A point
            0.0  0.0  0.0 # Gamma point
            2/3  1/3  0 # K point
            1.0  1.0  1.0 # Gamma point in another cell.
tolwfr2  1.0d-12
enunit2  1             # Will output the eigenenergies in eV


#Definition of the unit cell for GaAs wurtzite
acell 7.39250 7.39250 12.07190
angdeg 90. 90. 120.
#rprim  0.5    -0.86602540378      0.0   
#       0.5     0.86602540378      0.0   
#       0.0    0.0      1.0
spgroup 186


#Definition of the atom types
ntypat 2          # There is only one type of atom
znucl 33 31         
                         
#Definition of the atoms
natom 4           # There are four atoms in the unit cell
natrd 2
typat 1 2     
xred              # This keyword indicate that the location of the atoms
                  # will follow, one triplet of number for each atom
   2/3  1/3  3/8 
   #1/3  2/3  7/8 
   2/3  1/3  0.0
   #1/3  2/3  1/2

#Definition of the planewave basis set
ecut 60.0         # Maximal kinetic energy cut-off, in Hartree

#Definition of the SCF procedure
nstep 10          # Maximal number of SCF cycles
diemac 12.0       # Although this is not mandatory, it is worth to
                  # precondition the SCF cycle. The model dielectric
                  # function used as the standard preconditioner
                  # is described in the "dielng" input variable section.
                 

Attachments
GaAswurtzite.png
GaAswurtzite.png (33.98 KiB) Viewed 22380 times

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Thu Nov 12, 2015 11:29 pm

I might have used the wrong lattice parameters for GaAs. This plot shows the band structure for the correct lattice parameters and with 50 instead of 10 SFC cycles. It seems the problem does not converge and the band structure end up looking like this. Does anyone have an idea of what might be wrong? The brillion zone points are not on this plot but are the same as before.
Attachments
GaAswurtzite1.png
GaAswurtzite1.png (19.88 KiB) Viewed 22370 times

Jordan
Posts: 282
Joined: Tue May 07, 2013 9:47 am

Re: GaAs wurtzite

Post by Jordan » Fri Nov 13, 2015 8:19 am

If you think the edges are too sharp, then you should try to increase ndivk to values more like 100, or juste use ndivsm 100 (read documentation for the difference between ndivk and ndivsm)
Also, note that the "bands" are always sorted. Therefore if two bands cross each other and you don't have enough points, you will seen a very sharp change of the energy like your red and cyan curves between K and G on your first plot.

Jordan

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Fri Nov 13, 2015 11:16 am

okay but what can I do if the problem wont seem to converge? I ran 50 SFC cycles for the last plot and it seemed to not to converge. The lattice parameter I used for GaAs was one found in litterature. Should I determine it from a convergence study?

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Fri Nov 13, 2015 4:36 pm

I think the problem was that I was using the wrong lattice parameter. I have now found the optimal lattice parameter for GaAs wurtzite and got the following band structure plot. Does this look realistic?
Attachments
GaAswurtzite2.png
GaAswurtzite2.png (34.87 KiB) Viewed 22350 times

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Sat Nov 14, 2015 3:30 pm

I have now managed to generate the band structure for InAs, which was the end goal. However it seems that the wavefunctions do not converge and I end up with the plot below with alot of fringes in the band structure.
I have made a convergence study with respect to the lattice parameter so I am not sure, what causes the problem not to converge? Which parameters can I change that will affect convergence?
Attachments
InAswurtzite.png
InAswurtzite.png (60.13 KiB) Viewed 22343 times

Jordan
Posts: 282
Joined: Tue May 07, 2013 9:47 am

Re: GaAs wurtzite

Post by Jordan » Mon Nov 16, 2015 8:25 am

The last wavefunctions often do not converge.
Therefore you should set nband to a larger value than the number of bands you want and use nbdbuf to ignore those last band when checking if the residus are converged or not.
And of course, just plot the converged bands.

Don't hesitate to use large values of nline and nnsclo (at least 10 10)

Jordan

aaaa202
Posts: 20
Joined: Tue Oct 27, 2015 2:08 pm

Re: GaAs wurtzite

Post by aaaa202 » Thu Nov 19, 2015 10:45 am

I have now achieved the following plot of the band structure. Unfortunately it does not look at all like in this article (http://arxiv.org/pdf/cond-mat/0609616.pdf), where they calculate InAs wurtzite band structure in the GW approach. Do you have any idea how that might be? Have I done something wrong in my program?

Code: Select all

#Bulk InAs wurtzite 
#
# Computation of the band structure.
# First, a SCF density computation, then a non-SCF band structure calculation.

ndtset 2

#Dataset 1 : usual self-consistent calculation
kptopt1 1          # Option for the automatic generation of k points,
                   # taking into account the symmetry
nshiftk1 1
shiftk1  0.0 0.0 0.0  # These shifts will be the same for all grids
        # 0.5 0.0 0.0
        # 0.0 0.5 0.0
        # 0.0 0.0 0.5
ngkpt1  12 12 12 
prtden1  1         # Print the density, for use by dataset 2
toldfe1  1.0d-10    # This value is way too large for most realistic studies of materials

#Dataset 2 : the band structure
iscf2    -2
getden2  -1
kptopt2  -3
nband2   8
ndivk2   30 36 51      # 10, 12 and 17 divisions of the 3 segments, delimited
                       # by 4 points.
kptbounds2  0.0  0.0  0.5 # A point
            0.0  0.0  0.0 # Gamma point
            2/3  1/3  0 # K point
            1.0  1.0  1.0 # Gamma point in another cell.
tolwfr2  1.0d-13
enunit2  1             # Will output the eigenenergies in eV


#Definition of the unit cell for InAs wurtzite
acell 7.8602817707 7.8602817707  12.835877418
angdeg 90. 90. 120.
#rprim  0.5    -0.86602540378      0.0   
#       0.5     0.86602540378      0.0   
#       0.0    0.0      1.0
spgroup 186


#Definition of the atom types
ntypat 2          # There is only one type of atom
znucl 49 33         
                         
#Definition of the atoms
natom 4           # There are four atoms in the unit cell
natrd 2
typat 1 2     
xred              # This keyword indicate that the location of the atoms
                  # will follow, one triplet of number for each atom
   2/3  1/3  3/8 
   #1/3  2/3  7/8 
   2/3  1/3  0.0
   #1/3  2/3  1/2

#Definition of the planewave basis set
ecut 50         # Maximal kinetic energy cut-off, in Hartree
prtvol 2

#Definition of the SCF procedure
nline 30
nnsclo 30
nstep 50          # Maximal number of SCF cycles
diemac 12.0       # Although this is not mandatory, it is worth to
                  # precondition the SCF cycle. The model dielectric
                  # function used as the standard preconditioner
                  # is described in the "dielng" input variable section.
       
Attachments
InAswurtzite2.png
InAswurtzite2.png (34.98 KiB) Viewed 22299 times

shalom
Posts: 12
Joined: Wed Mar 01, 2017 5:00 pm

Re: GaAs wurtzite

Post by shalom » Thu Mar 02, 2017 1:03 am

Hi aaaa202.
I followed with large interet all your development.
I also am a new user of abinit.
I would like to know how you threw the code,
and which of the code you launched and what is its .files file that you considered?

shalom
Posts: 12
Joined: Wed Mar 01, 2017 5:00 pm

Re: GaAs wurtzite

Post by shalom » Thu Mar 16, 2017 2:06 pm

Hi Abinit forum user,
I followed with large interet all your development.
I also am a new user of abinit.
I would like to know how you threw the code,
and which of the code you launched and what is its .files file that you considered?

ilukacevic
Posts: 271
Joined: Sat Jan 16, 2010 12:05 pm
Location: Dept. of Physics, University J. J. Strossmayer, Osijek, Croatia
Contact:

Re: GaAs wurtzite

Post by ilukacevic » Fri Mar 17, 2017 8:25 am

Dear shalom,

As everyone else who started using abinit, you should first and foremost read the abinit specific documentation available on the web site. After that, before starting to calculate your system(s), you should go through the first 4 tutorials (more if you have time). There you will find most of your initial questions answered.

Best regards,

Igor

Locked