Skip to content

I think there is a problem with the numerical difference in the band gap of alpha-FAPbI3 perovskite when calculated using different computational methods. #366

@gx-dft

Description

@gx-dft

Details

For alpha-FAPbI3, the gap of PBE+SOC is 1.273 eV, the gap of PBE+SOC is 0.237eV, the gap of PBE+SOC+HSE06(alpha=0.25) is 0.348eV, the gap of PBE+SOC+HSE06(alpha-0.46) is 0.432eV, the pure HSE06 has very large numerival error. But for delta-FAPbI3 and bulk-PbI2, the band gap is rational.

Image

1.STRU

ATOMIC_SPECIES
C 12.0110 C.upf upf201
N 14.0070 N.upf upf201
H 1.0080 H.upf upf201
Pb 207.2000 Pb.upf upf201
I 126.9045 I.upf upf201

NUMERICAL_ORBITAL
C_gga_10au_100Ry_3s3p2d.orb
N_gga_10au_100Ry_3s3p2d.orb
H_gga_10au_100Ry_3s2p.orb
Pb_gga_10au_100Ry_3s3p3d2f.orb
I_gga_10au_100Ry_3s3p2d.orb

LATTICE_CONSTANT
1.8897261258

LATTICE_VECTORS
6.4669732225 -0.0000339134 -0.0000001675
0.0000556159 6.2839849329 0.0000001699
0.0000008309 -0.0000008223 6.3781080254

ATOMIC_POSITIONS
Direct

C #label
0.0000 #magnetism
1 #number of atoms
0.5000007845 0.5289497000 0.4999999991 m 1 1 1

N #label
0.0000 #magnetism
2 #number of atoms
0.6801500221 0.4334329129 0.5000000017 m 1 1 1
0.3198494333 0.4334352642 0.5000000004 m 1 1 1

H #label
0.0000 #magnetism
5 #number of atoms
0.4999987828 0.7024192470 0.4999999977 m 1 1 1
0.8087824533 0.5261184240 0.4999999979 m 1 1 1
0.6987582039 0.2726110257 0.5000000029 m 1 1 1
0.3012450415 0.2726103096 0.5000000010 m 1 1 1
0.1912190171 0.5261182944 0.4999999990 m 1 1 1

Pb #label
0.0000 #magnetism
1 #number of atoms
0.9999984963 0.9447941819 0.9999999953 m 1 1 1

I #label
0.0000 #magnetism
3 #number of atoms
0.5000021435 0.9575065273 0.0000000013 m 1 1 1
0.0000028873 0.4440683618 0.9999999996 m 1 1 1
0.0000017345 0.9264657512 0.5000000041 m 1 1 1
2.KLINES
K_POINTS
11
Line
0.00000000 0.00000000 0.00000000 16 # GAMMA
0.00000000 0.50000000 0.00000000 16 # Z
0.00000000 0.50000000 0.50000000 16 # D
0.00000000 0.00000000 0.50000000 16 # B
0.00000000 0.00000000 0.00000000 23 # GAMMA
-0.50000000 0.00000000 0.50000000 16 # A
-0.50000000 0.50000000 0.50000000 23 # E
0.00000000 0.50000000 0.00000000 16 # Z
-0.50000000 0.50000000 0.00000000 16 # C_2
-0.50000000 0.00000000 0.00000000 16 # Y_2
0.00000000 0.00000000 0.00000000 1 # GAMMA

3.INPUT
1)INPUT-scf(PBE)
INPUT_PARAMETERS

--- Global Parameters ---

#suffix FAPbI3_Static_SCF # Output directory name
calculation scf # Static Self-Consistent Field calculation
#ntype 5 # Number of elements: Pb, I, C, N, H

--- Basis and Precision ---

basis_type lcao # Use LCAO (align with your relaxation)
ecutwfc 100 # Integration grid cutoff (Ry)
scf_thr 1e-07 # Strict convergence to match VASP 1E-8 eV
scf_nmax 100 # Max SCF iterations

--- Electronic States (Critical Update) ---

#nbands 60 # Increased! 8 was too low to cover all 44+ electrons
smearing_method gauss
smearing_sigma 0.001 # Narrow smearing for semiconductor gaps
ks_solver genelpa # Efficient solver for LCAO
nspin 1 # Non-spin polarized
symmetry 0 # Keep 0 for hybrid perovskites or 1 for speed

soc+noncollinear

#noncolin 1
#lspinorb 1
#nspin 4

hse06

#dft_functional hse

--- Physics and Interaction Models ---

dft_functional pbe
vdw_method d3_bj # Ensure this matches your relaxation setting
cal_force 1 # Calculate final static forces
cal_stress 1 # Calculate final static stress

--- Output Control (For Band/DOS) ---

out_chg 1 # Save SPIN1_CHG for NSCF (Band/DOS) runs
out_pot 1 # Output electrostatic potential (useful for work function)

--- Brillouin Zone Sampling ---

kspacing 0.1 # Reciprocal space mesh density (Bohr^-1)

2)INPUT-scf-soc(PBE+SOC)
INPUT_PARAMETERS

--- Global Parameters ---

#suffix FAPbI3_Static_SCF # Output directory name
calculation scf # Static Self-Consistent Field calculation
#ntype 5 # Number of elements: Pb, I, C, N, H

--- Basis and Precision ---

basis_type lcao # Use LCAO (align with your relaxation)
ecutwfc 100 # Integration grid cutoff (Ry)
scf_thr 1e-06 # Strict convergence to match VASP 1E-8 eV
scf_nmax 300 # Max SCF iterations
#init_chg file
ks_solver genelpa # Efficient solver for LCAO
symmetry -1 # Keep 0 for hybrid perovskites or 1 for speed

--- Electronic States (Critical Update) ---

#nbands 60 # Increased! 8 was too low to cover all 44+ electrons
smearing_method gauss
smearing_sigma 0.001 # Narrow smearing for semiconductor gaps
mixing_type broyden
mixing_beta 0.1
mixing_ndim 8
mixing_restart 0
mixing_gg0 1.0
mixing_beta_mag 0.4
mixing_gg0_mag 0
mixing_gg0_min 0.1
mixing_angle 0.0
mixing_tau True
mixing_dmr false

soc+noncollinear

noncolin 1
lspinorb 1
nspin 4

hse06

#dft_functional hse

--- Physics and Interaction Models ---

dft_functional pbe
vdw_method d3_bj # Ensure this matches your relaxation setting
cal_force 1 # Calculate final static forces
cal_stress 1 # Calculate final static stress

--- Output Control (For Band/DOS) ---

out_chg 1 # Save SPIN1_CHG for NSCF (Band/DOS) runs
out_pot 1 # Output electrostatic potential (useful for work function)

--- Brillouin Zone Sampling ---

kspacing 0.1 # Reciprocal space mesh density (Bohr^-1)

3)INPUT-scf-soc-hse(PBE+SOC+HSE06)
INPUT_PARAMETERS

--- Global Parameters ---

#suffix FAPbI3_Static_SCF # Output directory name
calculation scf # Static Self-Consistent Field calculation
#ntype 5 # Number of elements: Pb, I, C, N, H
init_chg file

--- Basis and Precision ---

basis_type lcao # Use LCAO (align with your relaxation)
ecutwfc 100 # Integration grid cutoff (Ry)
scf_thr 1e-06 # Strict convergence to match VASP 1E-8 eV
scf_nmax 300 # Max SCF iterations
#init_chg file
ks_solver genelpa # Efficient solver for LCAO
symmetry -1 # Keep 0 for hybrid perovskites or 1 for speed

--- Electronic States (Critical Update) ---

#nbands 60 # Increased! 8 was too low to cover all 44+ electrons
smearing_method gauss
smearing_sigma 0.001 # Narrow smearing for semiconductor gaps
mixing_type broyden
mixing_beta 0.1
mixing_ndim 8
mixing_restart 0
mixing_gg0 1.0
mixing_beta_mag 0.4
mixing_gg0_mag 0
mixing_gg0_min 0.1
mixing_angle 0.0
mixing_tau false
mixing_dmr false

soc+noncollinear

noncolin 1
lspinorb 1
nspin 4

hse06

dft_functional hse

--- Physics and Interaction Models ---

#dft_functional pbe
vdw_method d3_bj # Ensure this matches your relaxation setting
cal_force 1 # Calculate final static forces
cal_stress 1 # Calculate final static stress

--- Output Control (For Band/DOS) ---

out_chg 1 # Save SPIN1_CHG for NSCF (Band/DOS) runs
out_pot 1 # Output electrostatic potential (useful for work function)

--- Brillouin Zone Sampling ---

kspacing 0.1 # Reciprocal space mesh density (Bohr^-1)

4)INPUT-scf-hse(PBE+HSE06)
INPUT_PARAMETERS

--- Global Parameters ---

#suffix FAPbI3_Static_SCF # Output directory name
calculation scf # Static Self-Consistent Field calculation
#ntype 5 # Number of elements: Pb, I, C, N, H

--- Basis and Precision ---

basis_type lcao # Use LCAO (align with your relaxation)
ecutwfc 100 # Integration grid cutoff (Ry)
scf_thr 1e-06 # Strict convergence to match VASP 1E-8 eV
scf_nmax 300 # Max SCF iterations
#init_chg file
ks_solver genelpa # Efficient solver for LCAO
#symmetry -1 # Keep 0 for hybrid perovskites or 1 for speed

--- Electronic States (Critical Update) ---

#nbands 60 # Increased! 8 was too low to cover all 44+ electrons
smearing_method gauss
smearing_sigma 0.001 # Narrow smearing for semiconductor gaps
mixing_type broyden
#mixing_beta 0.1
#mixing_ndim 8
#mixing_restart 0
#mixing_gg0 1.0
#mixing_beta_mag 0.4
#mixing_gg0_mag 0
#mixing_gg0_min 0.1
#mixing_angle 0.0
#mixing_tau false
#mixing_dmr false

soc+noncollinear

#noncolin 1
#lspinorb 1
#nspin 4

hse06

dft_functional hse

--- Physics and Interaction Models ---

#dft_functional pbe
vdw_method d3_bj # Ensure this matches your relaxation setting
cal_force 1 # Calculate final static forces
cal_stress 1 # Calculate final static stress

--- Output Control (For Band/DOS) ---

out_chg 1 # Save SPIN1_CHG for NSCF (Band/DOS) runs
out_pot 1 # Output electrostatic potential (useful for work function)

--- Brillouin Zone Sampling ---

kspacing 0.1 # Reciprocal space mesh density (Bohr^-1)

Task list for Issue attackers (only for developers)

  • Reproduce the performance issue on a similar system or environment.
  • Identify the specific section of the code causing the performance issue.
  • Investigate the issue and determine the root cause.
  • Research best practices and potential solutions for the identified performance issue.
  • Implement the chosen solution to address the performance issue.
  • Test the implemented solution to ensure it improves performance without introducing new issues.
  • Optimize the solution if necessary, considering trade-offs between performance and other factors (e.g., code complexity, readability, maintainability).
  • Review and incorporate any relevant feedback from users or developers.
  • Merge the improved solution into the main codebase and notify the issue reporter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions