This thread is locked.Only browsing is available.
Top Page > Browsing
Graphene Band Calculations
Date: 2018/12/27 16:17
Name: Lovleen Kaur   <lovleenkaurkkr@gmail.com>

Dear Prof. Ozaki and Users,

I am using OpenMX 3.8 compiled with option -O2. The test runs showed that the compilation is successful with this flag. I am running a graphene system with 4 carbon atoms in a unit cell. In accordance with this unit cell, the Dirac point lies at P-point in reciprocal space. To do band calculations, if i use an E-cut of 250Ry (which i assume is already quite high) and grid size of (13 13 1) with C6-s2p1 PAO's, i get a band gap of about 0.001ev with cohesive energy 8.1ev. My question is why i am not getting a zero-band gap (-O2 flag was used for compilation) ? Please suggest

This is the input file that i am using for my calculations.

#
# File Name
#

System.CurrrentDirectory ./ # default=./
System.Name graphene
DATA.PATH ../../../../DFT_DATA13
level.of.stdout 1 # default=1 (1-3)
level.of.fileout 1 # default=1 (0-2)


#
# Definition of Atomic Species
#

Species.Number 1
<Definition.of.Atomic.Species
C C6.0-s2p1 C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number 4
Atoms.SpeciesAndCoordinates.Unit Ang # Ang|AU
<Atoms.SpeciesAndCoordinates
1 C 0.000000000 0.000000000 0.000000000 2.0 2.0
2 C 1.229756073 0.710000000 0.000000000 2.0 2.0
3 C 1.229756073 2.130000000 0.000000000 2.0 2.0
4 C 0.000000000 2.840000000 0.000000000 2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit Ang # Ang|AU
<Atoms.UnitVectors
2.45951214700000 0.00000000000000 0.00000000000000
0.00000000000000 4.2600000000000 0.00000000000000
0.00000000000000 0.00000000000000 20.00000000000000
Atoms.UnitVectors>
#
# SCF or Electronic System
#

scf.XcType GGA-PBE # LDA|LSDA-CA|LSDA-PW|GGA-PBE
scf.SpinPolarization on # On|Off|NC
scf.ElectronicTemperature 300.0 # default=300 (K)
scf.energycutoff 250.0 # default=150 (Ry)
scf.maxIter 200 # default=40
scf.EigenvalueSolver Band # DC|GDC|Cluster|Band
scf.lapack.dste dstevx # dstegr|dstedc|dstevx, default=dstegr
scf.Kgrid 13 13 1 # means n1 x n2 x n3
scf.Mixing.Type rmm-diisk # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight 0.30 # default=0.30
scf.Min.Mixing.Weight 0.001 # default=0.001
scf.Max.Mixing.Weight 0.40 # default=0.40
scf.Mixing.History 5 # default=5
scf.Mixing.StartPulay 6 # default=6
scf.Mixing.EveryPulay 6 # default=6
scf.criterion 1.0e-10 # default=1.0e-6 (Hartree)
#
# MD or Geometry Optimization
#

MD.Type Nomd # Opt|EF|BFGS|RF|DIIS
MD.Opt.DIIS.History 6 # default=3
MD.Opt.StartDIIS 7 # default=5
MD.Opt.EveryDIIS 6 # default=10
MD.maxIter 200 #
MD.Opt.criterion 1.0e-4 # default=1.0e-4 (a.u.)


#
# Band dispersion
#

Band.dispersion on # on|off, default=off
# if <Band.KPath.UnitCell does not exist,
# the reciprical lattice vector is employed.
Band.Nkpath 6
<Band.kpath
600 0.0000000 0.000 0.0 0.3333333 0.000 0.0 G P
600 0.3333333 0.000 0.0 0.5000000 0.000 0.0 P X
600 0.5000000 0.000 0.0 0.5000000 0.500 0.0 X W
600 0.5000000 0.500 0.0 0.0000000 0.500 0.0 W Y
600 0.0000000 0.500 0.0 0.0000000 0.000 0.0 Y G
600 0.0000000 0.000 0.0 0.5000000 0.500 0.0 G W
Band.kpath>

#
# DOS and PDOS
#

Dos.fileout off # on|off, default=off
Dos.Erange -15.0 25.0 # default = -20 20
Dos.Kgrid 300 300 1 # default = Kgrid1 Kgrid2 Kgrid3

DosGauss.fileout off
DosGauss.Num.Mesh 4000
DosGauss.Width 0.01
101,31 Bot


メンテ
Page: [1]

Re: Graphene Band Calculations ( No.1 )
Date: 2018/12/29 18:11
Name: Naoya Yamaguchi

Hi,

I have reproduced it, and found that such a band gap exists at the "P-point". However, I have also found that the Dirac cone is shifted slightly from "P-point". You may reproduce it by an example shown below. I guess that this shifting depends on the assumed structure of graphene. And, I think you can evaluate the band gap by calculating the density of states.

#
# File Name
#

System.CurrrentDirectory ./ # default=./
System.Name graphene
#DATA.PATH ../../../../DFT_DATA13
level.of.stdout 1 # default=1 (1-3)
level.of.fileout 0 # default=1 (0-2)


#
# Definition of Atomic Species
#

Species.Number 1
<Definition.of.Atomic.Species
C C6.0-s2p1 C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number 4
Atoms.SpeciesAndCoordinates.Unit Ang # Ang|AU
<Atoms.SpeciesAndCoordinates
1 C 0.000000000 0.000000000 0.000000000 2.0 2.0
2 C 1.229756073 0.710000000 0.000000000 2.0 2.0
3 C 1.229756073 2.130000000 0.000000000 2.0 2.0
4 C 0.000000000 2.840000000 0.000000000 2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit Ang # Ang|AU
<Atoms.UnitVectors
2.45951214700000 0.00000000000000 0.00000000000000
0.00000000000000 4.2600000000000 0.00000000000000
0.00000000000000 0.00000000000000 20.00000000000000
Atoms.UnitVectors>
#
# SCF or Electronic System
#

scf.XcType GGA-PBE # LDA|LSDA-CA|LSDA-PW|GGA-PBE
scf.SpinPolarization on # On|Off|NC
scf.ElectronicTemperature 300.0 # default=300 (K)
scf.energycutoff 250.0 # default=150 (Ry)
scf.maxIter 200 # default=40
scf.EigenvalueSolver Band # DC|GDC|Cluster|Band
scf.lapack.dste dstevx # dstegr|dstedc|dstevx, default=dstegr
scf.Kgrid 26 15 1 # means n1 x n2 x n3
scf.Mixing.Type rmm-diisk # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight 0.30 # default=0.30
scf.Min.Mixing.Weight 0.001 # default=0.001
scf.Max.Mixing.Weight 0.40 # default=0.40
scf.Mixing.History 5 # default=5
scf.Mixing.StartPulay 6 # default=6
scf.Mixing.EveryPulay 6 # default=6
scf.criterion 1.0e-10 # default=1.0e-6 (Hartree)
#
# MD or Geometry Optimization
#

MD.Type Nomd # Opt|EF|BFGS|RF|DIIS
MD.Opt.DIIS.History 6 # default=3
MD.Opt.StartDIIS 7 # default=5
MD.Opt.EveryDIIS 6 # default=10
MD.maxIter 200 #
MD.Opt.criterion 1.0e-4 # default=1.0e-4 (a.u.)


#
# Band dispersion
#

Band.dispersion on # on|off, default=off
# if <Band.KPath.UnitCell does not exist,
# the reciprical lattice vector is employed.
Band.Nkpath 2
<Band.kpath
600 0.0 0.0 0.0 0.3332926829239024 0.0 0.0 G P'
600 0.3332926829239024 0.0 0.0 0.5 0.0 0.0 P' X
Band.kpath>

#
# DOS and PDOS
#

Dos.fileout off # on|off, default=off
Dos.Erange -15.0 25.0 # default = -20 20
Dos.Kgrid 300 300 1 # default = Kgrid1 Kgrid2 Kgrid3

DosGauss.fileout off
DosGauss.Num.Mesh 4000
DosGauss.Width 0.01

Regards,
Naoya Yamaguchi
メンテ
Re: Graphene Band Calculations ( No.2 )
Date: 2018/12/30 16:24
Name: Naoya Yamaguchi

And, I tried another cell of graphene, that is, a hexagonal cell, but a larger energy cutoff was required as the view of the band structure was more enlarged, and then I have found that there is a Dirac cone at the "K-point" (1/3, -1/3, 0) and the band gap evaluated from the band structure is about 3e-6 eV. In "Band.kpath", I set (0.333332333, -0.333332333, -0.000002) for "K-point" because OpenMX seems to shift the origin of k-points by adding (1.0e-6, -1.0e-6, 2.0e-6) according to the source codes. Moreover, you may modify line 80 of "bandgnu13.c" to get more accurate values, for example:
static double Unit0[MUNIT]={27.2,1.0}; /* Hartree-> eV */
-> static double Unit0[MUNIT]={27.2113845,1.0}; /* Hartree-> eV */

Finally, I show an input for the above case below:

#
# File Name
#

System.CurrrentDirectory ./ # default=./
System.Name graphene_rev
#DATA.PATH ../../../../DFT_DATA13
level.of.stdout 1 # default=1 (1-3)
level.of.fileout 0 # default=1 (0-2)


#
# Definition of Atomic Species
#

Species.Number 1
<Definition.of.Atomic.Species
C C6.0-s2p1 C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number 2
Atoms.SpeciesAndCoordinates.Unit FRAC # Ang|AU
<Atoms.SpeciesAndCoordinates
1 C 0.0 0.0 0.0 2.0 2.0
2 C 0.33333333333333 0.33333333333333 0.0 2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit Ang # Ang|AU
<Atoms.UnitVectors
2.461 0.0 0.0
1.2305 2.13128851871 0.0
0.0 0.0 20.0
Atoms.UnitVectors>
#
# SCF or Electronic System
#

scf.XcType GGA-PBE # LDA|LSDA-CA|LSDA-PW|GGA-PBE
scf.SpinPolarization off # On|Off|NC
scf.ElectronicTemperature 300.0 # default=300 (K)
scf.energycutoff 1500.0 # default=150 (Ry)
scf.maxIter 200 # default=40
scf.EigenvalueSolver Band # DC|GDC|Cluster|Band
scf.lapack.dste dstevx # dstegr|dstedc|dstevx, default=dstegr
scf.Kgrid 13 13 1 # means n1 x n2 x n3
scf.Mixing.Type rmm-diisk # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight 0.30 # default=0.30
scf.Min.Mixing.Weight 0.001 # default=0.001
scf.Max.Mixing.Weight 0.40 # default=0.40
scf.Mixing.History 5 # default=5
scf.Mixing.StartPulay 6 # default=6
scf.Mixing.EveryPulay 6 # default=6
scf.criterion 1.0e-10 # default=1.0e-6 (Hartree)
#
# MD or Geometry Optimization
#

MD.Type Nomd # Opt|EF|BFGS|RF|DIIS
MD.Opt.DIIS.History 6 # default=3
MD.Opt.StartDIIS 7 # default=5
MD.Opt.EveryDIIS 6 # default=10
MD.maxIter 200 #
MD.Opt.criterion 1.0e-4 # default=1.0e-4 (a.u.)


#
# Band dispersion
#

Band.dispersion on # on|off, default=off
# if <Band.KPath.UnitCell does not exist,
# the reciprical lattice vector is employed.
Band.Nkpath 2
<Band.kpath
600 0.333232333 -0.333232333 -0.000002 0.333332333 -0.333332333 -0.000002 G K
600 0.333332333 -0.333332333 -0.000002 0.333432333 -0.333432333 -0.000002 K G
Band.kpath>

#
# DOS and PDOS
#

Dos.fileout off # on|off, default=off
Dos.Erange -15.0 25.0 # default = -20 20
Dos.Kgrid 300 300 1 # default = Kgrid1 Kgrid2 Kgrid3

DosGauss.fileout off
DosGauss.Num.Mesh 4000
DosGauss.Width 0.01

Regards,
Naoya Yamaguchi
メンテ
Re: Graphene Band Calculations ( No.3 )
Date: 2019/01/07 17:18
Name: Lovleen Kaur  <lovleenkaurkkr@gmail.com>

Hi Naoya Yamaguchi,
Thank you for your reply.

I have tried with your parameters but i am still getting a band gap of the order 10(-6) ev which lies slightly below zero.
Can you tell me that how we can choose the value for scf.Kgrid as you changed it to (26 15 1).

Regards,
Lovleen Kaur
メンテ
Re: Graphene Band Calculations ( No.4 )
Date: 2019/01/07 19:22
Name: Naoya Yamaguchi

Dear Lovleen Kaur,

>I have tried with your parameters but i am still getting a band gap of the order 10(-6) ev which lies slightly below zero.
If you estimated the band gap from the band dispersion, you may need to mind that the format of BANDDAT1 files.
For example, you can see the following part in "bandgnu13.c", the source code to make BANDDAT* files from a Band file:
fprintf(fp, "%lf %15.12f\n",kline[ik][i_perpath],
(EIGEN[spin][ik][i_perpath][l]-ChemP)*Unit );
According to it, the length in the k-space is written following the format "%lf". And, you might need to modify it to get more fine values. However, I think there are another cautions, and I am not familiar with graphene so I also want to wait for better comments by someone.

>Can you tell me that how we can choose the value for scf.Kgrid as you changed it to (26 15 1).
I set "26 15 1" to "scf.Kgrid" in the case of the first set of my parameters because your cell is tetragonal and the lattice constant a is 3^(1/2) times smaller than the other b so that the appropriate values for "scf.Kgrid" are "3^(1/2)*N N 1" and when N=15, 3^(1/2)*N is almost equal to 26.

Regards,
Naoya Yamaguchi
メンテ
Re: Graphene Band Calculations ( No.5 )
Date: 2019/02/09 03:21
Name: Naoya Yamaguchi

Dear Lovleen Kaur,

>I have found that there is a Dirac cone at the "K-point" (1/3, -1/3, 0) and the band gap evaluated from the band >structure is about 3e-6 eV. In "Band.kpath", I set (0.333332333, -0.333332333, -0.000002) for "K-point" because >OpenMX seems to shift the origin of k-points by adding (1.0e-6, -1.0e-6, 2.0e-6) according to the source codes.

This comment is true for OpenMX Ver. 3.7, that is an older version, and I confirmed that in Ver. 3.8 this problem was solved. I'm sorry to post confusing information, and please ignore the above comment.

However, I think it might be important to find the dependence of the band gap on PAOs and/or mesh.

Regards,
Naoya Yamaguchi
メンテ

Page: [1]