Author Topic: hybrid functional and bandgap.  (Read 2168 times)

Wonseok

  • Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
hybrid functional and bandgap.
« on: July 16, 2024, 01:31:31 PM »
Dear all,

I am currently working on adjusting the parameters of hybrid functionals, specifically hse_own, to match the bandgap of a solid system with experimental values.

Below is a control file used for calculating a diamond structure composed of 8 carbon atoms, running the ‘riper’ module due to the periodic boundary conditions.

Code: [Select]
$title
$symmetry c1
$user-defined bonds    file=coord
$coord    file=coord
$optimize
 internal   off
 redundant  off
 cartesian  on
 global     off
 basis      off
$cell angs
  3.55103808   3.55103808   3.55103808   90.0   90.0   90.0
$periodic 3
$kpoints
    nkpoints 6 6 6 # Gamma point calculation
$atoms
c  1-8                                                                         \
   basis =c pob-TZVP                                                           \
   jbas  =c universal
$basis    file=basis
$scfmo   file=mos
$closed shells
 a       1-24                                   ( 2 )
$scfiterlimit      300
$thize     0.10000000E-04
$thime        5
$scfdamp   start=0.300  step=0.050  min=0.100
$scfdump
$scfintunit
 unit=30       size=0        file=twoint
$scfdiis
$scforbitalshift  automatic=.1
$maxcor    500 MiB  per_core
$drvopt
   cartesian  on
   basis      off
   global     off
   hessian    on
   dipole     on
   nuclear polarizability
$interconversion  off
   qconv=1.d-7
   maxiter=25
$coordinateupdate
   dqmax=0.3
   interpolate  on
   statistics    5
$forceupdate
   ahlrichs numgeo=0  mingeo=3 maxgeo=4 modus=<g|dq> dynamic fail=0.3
   threig=0.005  reseig=0.005  thrbig=3.0  scale=1.00  damping=0.0
$forceinit on
   diag=default
$energy    file=energy
$grad    file=gradient
$forceapprox    file=forceapprox
$dft
    functional   pbe
    gridsize   m5
$scfconv   7
$jbas    file=auxbasis
$ricore      500
$rij
$marij
$marij
$rundimensions
   natoms=8
   nbf(CAO)=152
   nbf(AO)=144
$last step     define
$end

After reading the manual, I understood that the HSE formula* corresponds to the hse_own parameters (alpha, beta, omega) as follows:

"""
alpha = a
beta  = 1 - a
omega = omega
"""

In the same control file, I varied the type of functional and the parameters as shown in the table below and checked the bandgap using the ‘eiger’ command.

functional  |   α    |    β     |     ω      |     Bandgap[eV]
pbe           |   X    |    X    |     X     |     4.86588
hse06        |  1/4  |    X    |   0.11  |     6.04238
hse_own    |  1/4  |   3/4  |   0.11  |     13.2466
hse_own    |  1/4  |   2/4  |   0.11  |     13.2466
hse_own    |  1/5  |   4/5  |   0.20  |     13.2466


However, the calculated bandgap using hse06 and hse_own shows a significant difference, with the values differing by about two times. Additionally, for hse_own, it is puzzling that the bandgap does not change despite adjusting the parameters.

I would like to confirm whether my understanding of the parameter relationships is correct. If it is not, I would appreciate an explanation of how each parameter (alpha, beta, omega) relates to the HSE formula*.

I would be grateful for any advice or suggestions.

Best regards,


*HSE formula* (Hybrid functional - wikipedia)
« Last Edit: July 16, 2024, 01:38:32 PM by Wonseok »

turbomaster

  • Administrator
  • Full Member
  • *****
  • Posts: 64
  • Karma: +0/-0
Re: hybrid functional and bandgap.
« Reply #1 on: August 12, 2024, 01:22:19 PM »
Dear Wonseok, I need the input files that you used for the hse06 calculations. You also used an even number of k-points, which means that the Gamma point was not included in the calculations.

Wonseok

  • Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
Re: hybrid functional and bandgap.
« Reply #2 on: August 13, 2024, 03:52:43 PM »
Dear Turbomaster,

Thank you for your response.

You're right. When I calculate a hybrid functional using even k-points, I encounter an error that instructs me to adjust the k-point grid to use odd numbers instead. The bandgap results I show in the previous post are calculated with odd number of k-point. Sorry for not mentioning this earlier.

Here are the input files of all my calculations. You can match the task number with each input file. 

(Additionally, I use the 7.7.1 version of Turbomole on a Linux HPC)

Best,

| No. | Functional | α     | β      | ω     | Bandgap [eV] |
| 1   | pbe           | X     | X      | X     |   4.86588       |
| 2   | hse06        | 1/4  | X     | 0.11 |   6.04238       |
| 3   | hse_own    | 1/4  | 3/4  | 0.11 | 13.2466         |
| 4   | hse_own    | 1/4  | 2/4  | 0.11 | 13.2466         |
| 5   | hse_own    | 1/5  | 4/5  | 0.20 | 13.2466         |

## No.1 (pbe) ##
Code: [Select]
$title
$symmetry c1
$user-defined bonds    file=coord
$coord    file=coord
$optimize
 internal   off
 redundant  off
 cartesian  on
 global     off
 basis      off
$cell angs
  3.55103808   3.55103808   3.55103808   90.0   90.0   90.0
$periodic 3
$kpoints
    nkpoints 6 6 6 # Gamma point calculation
$atoms
c  1-8                                                                         \
   basis =c pob-TZVP                                                           \
   jbas  =c universal
$basis    file=basis
$scfmo   file=mos
$closed shells
 a       1-24                                   ( 2 )
$scfiterlimit      300
$thize     0.10000000E-04
$thime        5
$scfdamp   start=0.300  step=0.050  min=0.100
$scfdump
$scfintunit
 unit=30       size=0        file=twoint
$scfdiis
$scforbitalshift  automatic=.1
$maxcor    500 MiB  per_core
$drvopt
   cartesian  on
   basis      off
   global     off
   hessian    on
   dipole     on
   nuclear polarizability
$interconversion  off
   qconv=1.d-7
   maxiter=25
$coordinateupdate
   dqmax=0.3
   interpolate  on
   statistics    5
$forceupdate
   ahlrichs numgeo=0  mingeo=3 maxgeo=4 modus=<g|dq> dynamic fail=0.3
   threig=0.005  reseig=0.005  thrbig=3.0  scale=1.00  damping=0.0
$forceinit on
   diag=default
$energy    file=energy
$grad    file=gradient
$forceapprox    file=forceapprox
$dft
    functional   pbe
    gridsize   m5
$scfconv   7
$jbas    file=auxbasis
$ricore      500
$rij
$marij
$marij
$rundimensions
   natoms=8
   nbf(CAO)=152
   nbf(AO)=144
$last step     define
$end


## No.2 (hse06) ##
Code: [Select]
$title
$symmetry c1
$user-defined bonds    file=coord
$coord    file=coord
$optimize
 internal   off
 redundant  off
 cartesian  on
 global     off
 basis      off
$cell angs
  3.55103808   3.55103808   3.55103808   90.0   90.0   90.0
$periodic 3
$kpoints
    nkpoints 7 7 7 # Gamma point calculation
$atoms
c  1-8                                                                         \
   basis =c pob-TZVP                                                           \
   jbas  =c universal
$basis    file=basis
$scfmo   file=mos
$closed shells
 a       1-24                                   ( 2 )
$scfiterlimit      300
$thize     0.10000000E-04
$thime        5
$scfdamp   start=0.300  step=0.050  min=0.100
$scfdump
$scfintunit
 unit=30       size=0        file=twoint
$scfdiis
$scforbitalshift  automatic=.1
$maxcor    500 MiB  per_core
$drvopt
   cartesian  on
   basis      off
   global     off
   hessian    on
   dipole     on
   nuclear polarizability
$interconversion  off
   qconv=1.d-7
   maxiter=25
$coordinateupdate
   dqmax=0.3
   interpolate  on
   statistics    5
$forceupdate
   ahlrichs numgeo=0  mingeo=3 maxgeo=4 modus=<g|dq> dynamic fail=0.3
   threig=0.005  reseig=0.005  thrbig=3.0  scale=1.00  damping=0.0
$forceinit on
   diag=default
$energy    file=energy
$grad    file=gradient
$forceapprox    file=forceapprox
$dft
    functional   hse06
    gridsize   m5
$scfconv   7
$jbas    file=auxbasis
$ricore      500
$rij
$marij
$marij
$rundimensions
   natoms=8
   nbf(CAO)=152
   nbf(AO)=144
$last step     define
$end


## No.3 (hse_own) ##
Code: [Select]
$title
$symmetry c1
$user-defined bonds    file=coord
$coord    file=coord
$optimize
 internal   off
 redundant  off
 cartesian  on
 global     off
 basis      off
$cell angs
  3.55103808   3.55103808   3.55103808   90.0   90.0   90.0
$periodic 3
$kpoints
    nkpoints 7 7 7 # Gamma point calculation
$atoms
c  1-8                                                                         \
   basis =c pob-TZVP                                                           \
   jbas  =c universal
$basis    file=basis
$scfmo   file=mos
$closed shells
 a       1-24                                   ( 2 )
$scfiterlimit      300
$thize     0.10000000E-04
$thime        5
$scfdamp   start=0.300  step=0.050  min=0.100
$scfdump
$scfintunit
 unit=30       size=0        file=twoint
$scfdiis
$scforbitalshift  automatic=.1
$maxcor    500 MiB  per_core
$drvopt
   cartesian  on
   basis      off
   global     off
   hessian    on
   dipole     on
   nuclear polarizability
$interconversion  off
   qconv=1.d-7
   maxiter=25
$coordinateupdate
   dqmax=0.3
   interpolate  on
   statistics    5
$forceupdate
   ahlrichs numgeo=0  mingeo=3 maxgeo=4 modus=<g|dq> dynamic fail=0.3
   threig=0.005  reseig=0.005  thrbig=3.0  scale=1.00  damping=0.0
$forceinit on
   diag=default
$energy    file=energy
$grad    file=gradient
$forceapprox    file=forceapprox
$dft
    functional   hse_own 0.25  0.75 0.11
    gridsize   m5
$scfconv   7
$jbas    file=auxbasis
$ricore      500
$rij
$marij
$marij
$rundimensions
   natoms=8
   nbf(CAO)=152
   nbf(AO)=144
$last step     define
$end


## No.4 (hse_own) ##
Code: [Select]
$title
$symmetry c1
$user-defined bonds    file=coord
$coord    file=coord
$optimize
 internal   off
 redundant  off
 cartesian  on
 global     off
 basis      off
$cell angs
  3.55103808   3.55103808   3.55103808   90.0   90.0   90.0
$periodic 3
$kpoints
    nkpoints 7 7 7 # Gamma point calculation
$atoms
c  1-8                                                                         \
   basis =c pob-TZVP                                                           \
   jbas  =c universal
$basis    file=basis
$scfmo   file=mos
$closed shells
 a       1-24                                   ( 2 )
$scfiterlimit      300
$thize     0.10000000E-04
$thime        5
$scfdamp   start=0.300  step=0.050  min=0.100
$scfdump
$scfintunit
 unit=30       size=0        file=twoint
$scfdiis
$scforbitalshift  automatic=.1
$maxcor    500 MiB  per_core
$drvopt
   cartesian  on
   basis      off
   global     off
   hessian    on
   dipole     on
   nuclear polarizability
$interconversion  off
   qconv=1.d-7
   maxiter=25
$coordinateupdate
   dqmax=0.3
   interpolate  on
   statistics    5
$forceupdate
   ahlrichs numgeo=0  mingeo=3 maxgeo=4 modus=<g|dq> dynamic fail=0.3
   threig=0.005  reseig=0.005  thrbig=3.0  scale=1.00  damping=0.0
$forceinit on
   diag=default
$energy    file=energy
$grad    file=gradient
$forceapprox    file=forceapprox
$dft
    functional   hse_own 0.25  0.50 0.11
    gridsize   m5
$scfconv   7
$jbas    file=auxbasis
$ricore      500
$rij
$marij
$marij
$rundimensions
   natoms=8
   nbf(CAO)=152
   nbf(AO)=144
$last step     define
$end


## No.5 (hse_own) ##
Code: [Select]
$title
$symmetry c1
$user-defined bonds    file=coord
$coord    file=coord
$optimize
 internal   off
 redundant  off
 cartesian  on
 global     off
 basis      off
$cell angs
  3.55103808   3.55103808   3.55103808   90.0   90.0   90.0
$periodic 3
$kpoints
    nkpoints 7 7 7 # Gamma point calculation
$atoms
c  1-8                                                                         \
   basis =c pob-TZVP                                                           \
   jbas  =c universal
$basis    file=basis
$scfmo   file=mos
$closed shells
 a       1-24                                   ( 2 )
$scfiterlimit      300
$thize     0.10000000E-04
$thime        5
$scfdamp   start=0.300  step=0.050  min=0.100
$scfdump
$scfintunit
 unit=30       size=0        file=twoint
$scfdiis
$scforbitalshift  automatic=.1
$maxcor    500 MiB  per_core
$drvopt
   cartesian  on
   basis      off
   global     off
   hessian    on
   dipole     on
   nuclear polarizability
$interconversion  off
   qconv=1.d-7
   maxiter=25
$coordinateupdate
   dqmax=0.3
   interpolate  on
   statistics    5
$forceupdate
   ahlrichs numgeo=0  mingeo=3 maxgeo=4 modus=<g|dq> dynamic fail=0.3
   threig=0.005  reseig=0.005  thrbig=3.0  scale=1.00  damping=0.0
$forceinit on
   diag=default
$energy    file=energy
$grad    file=gradient
$forceapprox    file=forceapprox
$dft
    functional   hse_own 0.20  0.80 0.20
    gridsize   m5
$scfconv   7
$jbas    file=auxbasis
$ricore      500
$rij
$marij
$marij
$rundimensions
   natoms=8
   nbf(CAO)=152
   nbf(AO)=144
$last step     define
$end