openmx仿真金刚石和石墨烯

1.代码

金刚石

#
# File Name
#

System.CurrrentDirectory         ./    # default=./
System.Name                      cdia
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   C5.0-s2p2d1   C_CA13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number         2
Atoms.SpeciesAndCoordinates.Unit   Ang # Ang|AU
<Atoms.SpeciesAndCoordinates           
 1  C  0.000  0.000  0.000   2.0 2.0
 2  C  0.890  0.890  0.890   2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit             Ang # Ang|AU
<Atoms.UnitVectors                     
   1.7800  1.7800  0.0000
   1.7800  0.0000  1.7800
   0.0000  1.7800  1.7800
Atoms.UnitVectors>

#
# SCF or Electronic System
#

scf.XcType                  LDA        # LDA|LSDA-CA|LSDA-PW|GGA-PBE
scf.SpinPolarization        off        # On|Off|NC
scf.ElectronicTemperature  300.0       # default=300 (K)
scf.energycutoff           150.0       # default=150 (Ry)
scf.maxIter                 100        # default=40
scf.EigenvalueSolver       band        # DC|GDC|Cluster|Band
scf.Kgrid                  7 7 7       # 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.700       # default=0.40 
scf.Mixing.History          7          # default=5
scf.Mixing.StartPulay       5          # default=6
scf.criterion             1.0e-10      # default=1.0e-6 (Hartree) 

#
# MD or Geometry Optimization
#

MD.Type                     nomd       # Nomd|Opt|NVE|NVT_VS|NVT_NH
MD.maxIter                    1        # default=1
MD.TimeStep                   1        # default=0.5 (fs)
MD.Opt.criterion         1.0e-5        # default=1.0e-4 (Hartree/bohr)

#
# Band dispersion 
#

Band.dispersion              on        # on|off, default=off
<Band.KPath.UnitCell
3.56  0.00  0.00
0.00  3.56  0.00
0.00  0.00  3.56
Band.KPath.UnitCell>
# if <Band.KPath.UnitCell does not exist,
#     the reciprical lattice vector is employed. 
Band.Nkpath                5
<Band.kpath                
   25  0.0 0.0 0.0   1.0 0.0 0.0   g X
   25  1.0 0.0 0.0   1.0 0.5 0.0   X W
   25  1.0 0.5 0.0   0.5 0.5 0.5   W L
   25  0.5 0.5 0.5   0.0 0.0 0.0   L g
   25  0.0 0.0 0.0   1.0 0.0 0.0   g X 
Band.kpath>

#
# MO output
#

MO.fileout                       off   # on|off
num.HOMOs                         1    # default=2
num.LUMOs                         1    # default=2
MO.Nkpoint                        2    # default=1 
<MO.kpoint
  0.0  0.0  0.0
  0.0  0.0  0.2
MO.kpoint>

#
# DOS and PDOS
#

Dos.fileout                  on        # on|off, default=off
Dos.Erange              -25.0  20.0    # default = -20 20 
Dos.Kgrid                12 12 12      # default = Kgrid1 Kgrid2 Kgrid3

石墨烯

#
#      File Name      
#

System.CurrrentDirectory         ./    # default=./
System.Name                      Graphite_STM
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-s2p2d1   C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number         4
Atoms.SpeciesAndCoordinates.Unit   Ang # Ang|AU
<Atoms.SpeciesAndCoordinates           # Unit=Ang.
 1  C  0.000000000  0.000000000  0.000000000  2.0 2.0
 2  C  2.840000000  0.000000000  0.000000000  2.0 2.0
 3  C  0.710000000  1.229756000  0.000000000  2.0 2.0
 4  C  2.130000000  1.229756000  0.000000000  2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit             Ang #  Ang|AU
<Atoms.UnitVectors                     # unit=Ang.
4.26000000000000 0.00000000000000  0.00000000000000
0.00000000000000 2.45951214674781  0.00000000000000
0.00000000000000 0.00000000000000 10.00000000000000
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           200.0       # default=150 (Ry)
scf.maxIter                 60         # default=40
scf.EigenvalueSolver       band        # DC|GDC|Cluster|Band
scf.Kgrid                 5 5 1        # means 4x4x4
scf.Mixing.Type           rmm-diis     # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight     0.010       # default=0.30 
scf.Min.Mixing.Weight      0.001       # default=0.001 
scf.Max.Mixing.Weight      0.002       # default=0.40 
scf.Mixing.History          7          # default=5
scf.Mixing.StartPulay       5          # default=6
scf.criterion             1.0e-9       # default=1.0e-6 (Hartree) 

#
# MD or Geometry Optimization
#

MD.Type                     nomd       # Nomd|Opt|NVE|NVT_VS|NVT_NH
MD.maxIter                   1         # default=1
MD.TimeStep                0.5         # default=0.5 (fs)
MD.Opt.criterion          1.0e-4       # default=1.0e-4 (Hartree/bohr)

#
# partial charge calculation
# 

partial.charge                  on     # on|off, default=off
partial.charge.energy.window   2.0     # in eV

#
# DOS and PDOS
#

Dos.fileout                  on        # on|off, default=off
Dos.Erange              -20.0  20.0    # default = -20 20 
Dos.Kgrid                 10 10 1      # default = Kgrid1 Kgrid2 Kgrid3

在终端下输入

./openmx Graphite_STM.dat

计算完成后得到一大堆Graphite_STM开头的文件

其中就有一个Band文件,这个里面就有能带啦

./bandgnu13 Graphite_STM.Band

终端显示

Graphite_STM.GNUBAND is made

实际文件夹下多了两个文件,一个是.GNUBAND文件,另一个是数据.BANDDAT1文件

接下来就可以用gnuplot画出能带图

gnuplot Graphite_STM.GNUBAND

2.能带图解算过程

2.1矩形原胞
#
#      File Name      
#

System.CurrrentDirectory         ./    # default=./
System.Name                      Graphene_1
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-s2p2d1   C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number         3
Atoms.SpeciesAndCoordinates.Unit   Ang # Ang|AU
<Atoms.SpeciesAndCoordinates           # Unit=Ang.
 1  C  0.000000000  0.000000000  0.000000000  2.0 2.0
 2  C  0.710000000  1.229756000  0.000000000  2.0 2.0
 3  C  0.710000000  1.000000000  0.000000000  2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit             Ang #  Ang|AU
<Atoms.UnitVectors                     # unit=Ang.
0.00000000000000 -2.45951214674781  0.00000000000000
2.13000000000000 1.22975600000000  0.00000000000000
0.00000000000000 0.00000000000000 10.00000000000000
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           200.0       # default=150 (Ry)
scf.maxIter                 60         # default=40
scf.EigenvalueSolver       band        # DC|GDC|Cluster|Band
scf.Kgrid                 5 5 1        # means 4x4x4
scf.Mixing.Type           rmm-diis     # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight     0.010       # default=0.30 
scf.Min.Mixing.Weight      0.001       # default=0.001 
scf.Max.Mixing.Weight      0.002       # default=0.40 
scf.Mixing.History          7          # default=5
scf.Mixing.StartPulay       5          # default=6
scf.criterion             1.0e-9       # default=1.0e-6 (Hartree) 

#
# MD or Geometry Optimization
#

MD.Type                     nomd       # Nomd|Opt|NVE|NVT_VS|NVT_NH
MD.maxIter                   1         # default=1
MD.TimeStep                0.5         # default=0.5 (fs)
MD.Opt.criterion          1.0e-4       # default=1.0e-4 (Hartree/bohr)

Band.dispersion on
Band.Nkpath                5
<Band.kpath                
   25  0.0 0.0 0.0   1.0 0.0 0.0   g X
   25  1.0 0.0 0.0   1.0 0.5 0.0   X W
   25  1.0 0.5 0.0   0.5 0.5 0.5   W L
   25  0.5 0.5 0.5   0.0 0.0 0.0   L g
   25  0.0 0.0 0.0   1.0 0.0 0.0   g X 
Band.kpath>
#
# partial charge calculation
# 

partial.charge                  on     # on|off, default=off
partial.charge.energy.window   2.0     # in eV

#
# DOS and PDOS
#

Dos.fileout                  on        # on|off, default=off
Dos.Erange              -20.0  20.0    # default = -20 20 
Dos.Kgrid                 10 10 1      # default = Kgrid1 Kgrid2 Kgrid3

对应的能带图

2.2平行四边形原胞

#
#      File Name      
#

System.CurrrentDirectory         ./    # default=./
System.Name                      Graphene_2
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-s2p2d1   C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number         2
Atoms.SpeciesAndCoordinates.Unit   Ang # Ang|AU
<Atoms.SpeciesAndCoordinates           # Unit=Ang.
 1  C  0.000000000  0.710000000  0.000000000  2.0 2.0
 2  C  0.000000000  -0.71000000  0.000000000  2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit             Ang #  Ang|AU
<Atoms.UnitVectors                     # unit=Ang.
1.22980000000000 2.13000000000000  0.00000000000000
1.22980000000000 -2.13000000000000  0.00000000000000
0.00000000000000 0.00000000000000 10.00000000000000
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           200.0       # default=150 (Ry)
scf.maxIter                 60         # default=40
scf.EigenvalueSolver       band        # DC|GDC|Cluster|Band
scf.Kgrid                 5 5 1        # means 4x4x4
scf.Mixing.Type           rmm-diis     # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight     0.010       # default=0.30 
scf.Min.Mixing.Weight      0.001       # default=0.001 
scf.Max.Mixing.Weight      0.002       # default=0.40 
scf.Mixing.History          7          # default=5
scf.Mixing.StartPulay       5          # default=6
scf.criterion             1.0e-9       # default=1.0e-6 (Hartree) 

#
# MD or Geometry Optimization
#

MD.Type                     nomd       # Nomd|Opt|NVE|NVT_VS|NVT_NH
MD.maxIter                   1         # default=1
MD.TimeStep                0.5         # default=0.5 (fs)
MD.Opt.criterion          1.0e-4       # default=1.0e-4 (Hartree/bohr)

Band.dispersion on
Band.Nkpath                3
<Band.kpath                
   25  0.0 0.0 0.0   0.5 0.0 0.0   g M
   25  0.5 0.0 0.0   0.5 0.5 0.0   M K
   25  0.5 0.5 0.0   0.0 0.0 0.0   K g
Band.kpath>
#
# partial charge calculation
# 

partial.charge                  on     # on|off, default=off
partial.charge.energy.window   2.0     # in eV

#
# DOS and PDOS
#

Dos.fileout                  on        # on|off, default=off
Dos.Erange              -20.0  20.0    # default = -20 20 
Dos.Kgrid                 10 10 1      # default = Kgrid1 Kgrid2 Kgrid3

对应的能带图

2.3经坐标调整之后的能带

#
#      File Name      
#

System.CurrrentDirectory         ./    # default=./
System.Name                      Graphene_3
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-s2p2d1   C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number         2
Atoms.SpeciesAndCoordinates.Unit   Ang # Ang|AU
<Atoms.SpeciesAndCoordinates           # Unit=Ang.
 1  C  0.000000000  0.710000000  0.000000000  2.0 2.0
 2  C  0.000000000  -0.71000000  0.000000000  2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit             Ang #  Ang|AU
<Atoms.UnitVectors                     # unit=Ang.
1.22980000000000 2.13000000000000  0.00000000000000
1.22980000000000 -2.13000000000000  0.00000000000000
0.00000000000000 0.00000000000000 10.00000000000000
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           200.0       # default=150 (Ry)
scf.maxIter                 60         # default=40
scf.EigenvalueSolver       band        # DC|GDC|Cluster|Band
scf.Kgrid                 5 5 1        # means 4x4x4
scf.Mixing.Type           rmm-diis     # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight     0.010       # default=0.30 
scf.Min.Mixing.Weight      0.001       # default=0.001 
scf.Max.Mixing.Weight      0.002       # default=0.40 
scf.Mixing.History          7          # default=5
scf.Mixing.StartPulay       5          # default=6
scf.criterion             1.0e-9       # default=1.0e-6 (Hartree) 

#
# MD or Geometry Optimization
#

MD.Type                     nomd       # Nomd|Opt|NVE|NVT_VS|NVT_NH
MD.maxIter                   1         # default=1
MD.TimeStep                0.5         # default=0.5 (fs)
MD.Opt.criterion          1.0e-4       # default=1.0e-4 (Hartree/bohr)

Band.dispersion on
Band.Nkpath                3
<Band.kpath                
   25  0.0 0.0 0.0   1.0 0.0 0.0   G K
   25  1.0 0.0 0.0   0.5 0.5 0.0   K M
   25  0.5 0.5 0.0   0.0 0.0 0.0   M G
Band.kpath>
#
# partial charge calculation
# 

partial.charge                  on     # on|off, default=off
partial.charge.energy.window   2.0     # in eV

#
# DOS and PDOS
#

Dos.fileout                  on        # on|off, default=off
Dos.Erange              -20.0  20.0    # default = -20 20 
Dos.Kgrid                 10 10 1      # default = Kgrid1 Kgrid2 Kgrid3

对应的能带图

2.4将K点路径在2.3的基础上减少

#
#      File Name      
#

System.CurrrentDirectory         ./    # default=./
System.Name                      Graphene_4
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-s2p2d1   C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number         2
Atoms.SpeciesAndCoordinates.Unit   Ang # Ang|AU
<Atoms.SpeciesAndCoordinates           # Unit=Ang.
 1  C  0.000000000  0.710000000  0.000000000  2.0 2.0
 2  C  0.000000000  -0.71000000  0.000000000  2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit             Ang #  Ang|AU
<Atoms.UnitVectors                     # unit=Ang.
1.22980000000000 2.13000000000000  0.00000000000000
1.22980000000000 -2.13000000000000  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       Off         # On|Off|NC
scf.ElectronicTemperature  300.0       # default=300 (K)
scf.energycutoff           200.0       # default=150 (Ry)
scf.maxIter                 60         # default=40
scf.EigenvalueSolver       band        # DC|GDC|Cluster|Band
scf.Kgrid                 5 5 1        # means 4x4x4
scf.Mixing.Type           rmm-diis     # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight     0.010       # default=0.30 
scf.Min.Mixing.Weight      0.001       # default=0.001 
scf.Max.Mixing.Weight      0.002       # default=0.40 
scf.Mixing.History          7          # default=5
scf.Mixing.StartPulay       5          # default=6
scf.criterion             1.0e-9       # default=1.0e-6 (Hartree) 

#
# MD or Geometry Optimization
#

MD.Type                     nomd       # Nomd|Opt|NVE|NVT_VS|NVT_NH
MD.maxIter                   1         # default=1
MD.TimeStep                0.5         # default=0.5 (fs)
MD.Opt.criterion          1.0e-4       # default=1.0e-4 (Hartree/bohr)

Band.dispersion on
Band.Nkpath                3
<Band.kpath                
   25  0.0 0.0 0.0   -0.333 0.667 0.0   G K
   25  -0.333 0.667 0.0   0.0 0.5 0.0   K M
   25  0.0 0.5 0.0   0.0 0.0 0.0   M G
Band.kpath>
#
# partial charge calculation
# 

partial.charge                  on     # on|off, default=off
partial.charge.energy.window   2.0     # in eV

#
# DOS and PDOS
#

Dos.fileout                  on        # on|off, default=off
Dos.Erange              -20.0  20.0    # default = -20 20 
Dos.Kgrid                 10 10 1      # default = Kgrid1 Kgrid2 Kgrid3

对应的能带

3.正确的能带图

感觉这个文献中的图也不对,在K点导带和价带没有切点啊,自己又在自己上面的结构基础上修改K点路径如下,得到第七版Graphene_7.dat

#
#      File Name      
#

System.CurrrentDirectory         ./    # default=./
System.Name                      Graphene_7
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-s2p2d1   C_PBE13
Definition.of.Atomic.Species>

#
# Atoms
#

Atoms.Number         2
Atoms.SpeciesAndCoordinates.Unit   Ang # Ang|AU
<Atoms.SpeciesAndCoordinates           # Unit=Ang.
 1  C  0.000000000  0.710000000  0.000000000  2.0 2.0
 2  C  0.000000000  -0.71000000  0.000000000  2.0 2.0
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit             Ang #  Ang|AU
<Atoms.UnitVectors                     # unit=Ang.
1.22980000000000 2.13000000000000  0.00000000000000
1.22980000000000 -2.13000000000000  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       Off         # On|Off|NC
scf.ElectronicTemperature  300.0       # default=300 (K)
scf.energycutoff           200.0       # default=150 (Ry)
scf.maxIter                 60         # default=40
scf.EigenvalueSolver       band        # DC|GDC|Cluster|Band
scf.Kgrid                 5 5 1        # means 4x4x4
scf.Mixing.Type           rmm-diis     # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight     0.010       # default=0.30 
scf.Min.Mixing.Weight      0.001       # default=0.001 
scf.Max.Mixing.Weight      0.002       # default=0.40 
scf.Mixing.History          7          # default=5
scf.Mixing.StartPulay       5          # default=6
scf.criterion             1.0e-9       # default=1.0e-6 (Hartree) 

#
# MD or Geometry Optimization
#

MD.Type                     nomd       # Nomd|Opt|NVE|NVT_VS|NVT_NH
MD.maxIter                   1         # default=1
MD.TimeStep                0.5         # default=0.5 (fs)
MD.Opt.criterion          1.0e-4       # default=1.0e-4 (Hartree/bohr)

Band.dispersion on
Band.Nkpath                3
<Band.kpath                
   25  0.5 0.0 0.0       0.333 0.333 0.0   M  K
   25  0.333 0.333 0.0     0.0 0.0 0.0        K  G
   25  0.0 0.0 0.0       0.5 0.0 0.0        G  M
Band.kpath>
#
# partial charge calculation
# 

partial.charge                  on     # on|off, default=off
partial.charge.energy.window   2.0     # in eV

#
# DOS and PDOS
#

Dos.fileout                  on        # on|off, default=off
Dos.Erange              -20.0  20.0    # default = -20 20 
Dos.Kgrid                 10 10 1      # default = Kgrid1 Kgrid2 Kgrid3

对应的能带图如下

发表评论