deepmodeling / abacus-develop

An electronic structure package based on either plane wave basis or numerical atomic orbitals.
http://abacus.ustc.edu.cn
GNU Lesser General Public License v3.0
152 stars 123 forks source link

LCAO cannot give correct elastic constants of NbTiZrHf #4345

Open Luc1anoo opened 1 month ago

Luc1anoo commented 1 month ago

Describe the bug

LCAO cannot give right elastic constants of NbTiZrHf. The result in result.out are as follows:

  96.11  151.75   94.48    0.44   -1.12    0.29
  96.76   94.47  150.80   -0.03    0.48   -0.16
 149.17   96.13   96.79   -0.40    0.79    0.10
   0.76   -1.11    0.47   -0.01   46.62   -0.32
  -0.09   -0.30    0.17   -0.16    0.32  -42.78
   0.39   -0.43    0.03  -41.11   -0.00   -0.14
# Bulk   Modulus BV = 114.05 GPa
# Shear  Modulus GV = -7.28 GPa
# Youngs Modulus EV = -22.30 GPa
# Poission Ratio uV = 0.53

Expected behavior

Elastic constants of multicomponent alloys NbTiZrHf calculated by VASP can be found in literature 10.1088/1361-651X/ac1bfa, and the results are as follows:

Properties results
C11 130.277 
C12 106.932
C44 36.002
C11 − C12 23.344
C11 + 2C12 344.140
G 22.952
B 114.713
E 64.550
B/G 4.998
G/B 0.200
ν 0.406
C12 − C44 70.930
AZ 3.084
AVR 0.145

To Reproduce

INPUT:

INPUT_PARAMETERS
calculation relax
symmetry 0
ecutwfc 100
scf_thr 1e-7
scf_nmax 300
basis_type lcao
smearing_method gauss
smearing_sigma 0.015
ks_solver genelpa
cal_stress 1
cal_force 1
kspacing 0.08
relax_nmax 200
force_thr 0.01

STRU:

ATOMIC_SPECIES
Nb 92.90637 pp_orb/Nb-sp.PD04.PBE.UPF
Ti 47.867 pp_orb/Ti-sp.PD04.PBE.UPF
Zr 91.224 pp_orb/Zr-sp.PD04.PBE.UPF
Hf 178.49 pp_orb/Hf-sp.PD04.PBE.UPF

NUMERICAL_ORBITAL
pp_orb/Nb_gga_9au_100Ry_4s2p2d1f.orb
pp_orb/Ti_gga_9au_100Ry_4s2p2d1f.orb
pp_orb/Zr_gga_9au_100Ry_4s2p2d1f.orb
pp_orb/Hf_gga_9au_100Ry_4s2p2d1f.orb

LATTICE_CONSTANT
1.889726

LATTICE_VECTORS
13.652000000      0.0000000000      0.0000000000
0.0000000000      6.8260000000      0.0000000000
0.0000000000      0.0000000000      6.8260000000

ATOMIC_POSITIONS
Direct

Nb
0.0000000000
8
0.2500000000 0.5000000000 0.5000000000 1 1 1
0.3750000000 0.7500000000 0.7500000000 1 1 1
0.2500000000 0.0000000000 0.5000000000 1 1 1
0.5000000000 0.5000000000 0.5000000000 1 1 1
0.6250000000 0.7500000000 0.2500000000 1 1 1
0.8750000000 0.7500000000 0.7500000000 1 1 1
0.7500000000 0.0000000000 0.5000000000 1 1 1
0.7500000000 0.0000000000 0.0000000000 1 1 1

Ti
0.0000000000
8
0.0000000000 0.5000000000 0.5000000000 1 1 1
0.2500000000 0.0000000000 0.0000000000 1 1 1
0.3750000000 0.2500000000 0.2500000000 1 1 1
0.5000000000 0.0000000000 0.5000000000 1 1 1
0.6250000000 0.2500000000 0.7500000000 1 1 1
0.5000000000 0.0000000000 0.0000000000 1 1 1
0.7500000000 0.5000000000 0.5000000000 1 1 1
0.8750000000 0.2500000000 0.2500000000 1 1 1

Zr
0.0000000000
8
0.1250000000 0.2500000000 0.7500000000 1 1 1
0.0000000000 0.5000000000 0.0000000000 1 1 1
0.1250000000 0.7500000000 0.2500000000 1 1 1
0.2500000000 0.5000000000 0.0000000000 1 1 1
0.3750000000 0.7500000000 0.2500000000 1 1 1
0.6250000000 0.7500000000 0.7500000000 1 1 1
0.5000000000 0.5000000000 0.0000000000 1 1 1
0.8750000000 0.7500000000 0.2500000000 1 1 1

Hf
0.0000000000
8
0.1250000000 0.7500000000 0.7500000000 1 1 1
0.0000000000 0.0000000000 0.5000000000 1 1 1
0.0000000000 0.0000000000 0.0000000000 1 1 1
0.1250000000 0.2500000000 0.2500000000 1 1 1
0.3750000000 0.2500000000 0.7500000000 1 1 1
0.6250000000 0.2500000000 0.2500000000 1 1 1
0.8750000000 0.2500000000 0.7500000000 1 1 1
0.7500000000 0.5000000000 0.0000000000 1 1 1

param_joint.json

{
     "structures": ["confs/bcc-NbTiZrHf"],
     "interaction": {
         "type": "abacus",
         "incar": "INPUT",
         "potcar_prefix": "./",
         "potcars": {
          "Nb":"Nb-sp.PD04.PBE.UPF",
          "Ti":"Ti-sp.PD04.PBE.UPF",
          "Zr":"Zr-sp.PD04.PBE.UPF",
          "Hf":"Hf-sp.PD04.PBE.UPF"
         },

         "orb_files": {
          "Nb":"Nb_gga_9au_100Ry_4s2p2d1f.orb",
          "Ti":"Ti_gga_9au_100Ry_4s2p2d1f.orb",
          "Zr":"Zr_gga_9au_100Ry_4s2p2d1f.orb",
          "Hf":"Hf_gga_9au_100Ry_4s2p2d1f.orb"
         }
     },
     "relaxation": {
            "cal_type":      "relaxation",
            "cal_setting":  {"relax_pos":true,
                         "relax_shape":true,
                         "relax_vol":true}
                         },

    "properties": [
        {
         "type":         "elastic",
          "skip":        false,
         "norm_deform":  1e-2,
         "shear_deform": 1e-2
        }
    ]
}

orbitals can be found in #4284

Environment

APEX version: 1.2.0 Dflow version: 1.8.75 ABACUS version: 3.6.3

Additional Context

The STRU_ION_D after relaxation is as follows:

ATOMIC_SPECIES
Nb  92.9064 pp_orb/Nb-sp.PD04.PBE.UPF upf201
Ti  47.8670 pp_orb/Ti-sp.PD04.PBE.UPF upf201
Zr  91.2240 pp_orb/Zr-sp.PD04.PBE.UPF upf201
Hf 178.4900 pp_orb/Hf-sp.PD04.PBE.UPF upf201

NUMERICAL_ORBITAL
pp_orb/Nb_gga_9au_100Ry_4s2p2d1f.orb
pp_orb/Ti_gga_9au_100Ry_4s2p2d1f.orb
pp_orb/Zr_gga_9au_100Ry_4s2p2d1f.orb
pp_orb/Hf_gga_9au_100Ry_4s2p2d1f.orb

LATTICE_CONSTANT
1.8897260000

LATTICE_VECTORS
       13.8096097627        0.0205174439       -0.0033447522
        0.0101557904        6.8195697963        0.0068746906
       -0.0016729299        0.0068640434        6.8496775227

ATOMIC_POSITIONS
Direct

Nb #label
0.0000   #magnetism
8 #number of atoms
        0.2617959042        0.5076463918        0.5017600907 m 1 1 1
        0.3769454944        0.7534099699        0.7377241287 m 1 1 1
        0.2591298242        0.9939466704        0.5110519235 m 1 1 1
        0.5068056334        0.5148818499        0.4982678923 m 1 1 1
        0.6242901541        0.7607508283        0.2527612883 m 1 1 1
        0.8654702788        0.7552748265        0.7491508528 m 1 1 1
        0.7465438720        0.9781308395        0.4996881895 m 1 1 1
        0.7490736815        0.9964534279        0.0001524174 m 1 1 1
Ti #label
0.0000   #magnetism
8 #number of atoms
        0.9905094578        0.5044139270        0.5091999870 m 1 1 1
        0.2632800229        0.0044072726        0.9907016512 m 1 1 1
        0.3772132298        0.2465451619        0.2768839399 m 1 1 1
        0.4997323668        0.9817227422        0.4939447582 m 1 1 1
        0.6264022481        0.2364413586        0.7354321050 m 1 1 1
        0.4952281917        0.0070226073        0.0040575939 m 1 1 1
        0.7409359813        0.5166616885        0.4974894794 m 1 1 1
        0.8582921930        0.2382761774        0.2670130664 m 1 1 1

Zr #label
0.0000   #magnetism
8 #number of atoms
        0.1346032081        0.2552606051        0.7354744764 m 1 1 1
        0.9914817488        0.4913847233        0.9930044772 m 1 1 1
        0.1310499952        0.7476175924        0.2568273962 m 1 1 1
        0.2648521413        0.4943741142        0.9970624762 m 1 1 1
        0.3765482897        0.7584323073        0.2585573130 m 1 1 1
        0.6230319529        0.7695411827        0.7510033291 m 1 1 1
        0.5013073920        0.4946994249        0.0010007895 m 1 1 1
        0.8677393217        0.7536973386        0.2525497447 m 1 1 1

Hf #label
0.0000   #magnetism
8 #number of atoms
        0.1318169964        0.7478738775        0.7438064295 m 1 1 1
        0.9952221303        0.0002443871        0.5039009436 m 1 1 1
        0.9932594420        0.0131753567        0.9961623496 m 1 1 1
        0.1369955357        0.2505466383        0.2656693575 m 1 1 1
        0.3842730009        0.2456614076        0.7225228039 m 1 1 1
        0.6271271192        0.2347566061        0.2701839860 m 1 1 1
        0.8554671072        0.2467752186        0.7247669249 m 1 1 1
        0.7435760844        0.4999734798        0.0022278388 m 1 1 1

Task list for Issue attackers (only for developers)

kirk0830 commented 1 month ago

I am not sure but have you performed cell-relax before calculating so many modulus? Or this calculation does not require a cell at equilibrium?

Luc1anoo commented 1 month ago

I am not sure but have you performed cell-relax before calculating so many modulus? Or this calculation does not require a cell at equilibrium?

Actually the cell-relax is implemented by setting the following parameters of APEX:

     "relaxation": {
            "cal_type":      "relaxation",
            "cal_setting":  {"relax_pos":true,
                         "relax_shape":true,
                         "relax_vol":true}
                         },

I added the STRU_ION_D file above.