relaxation of supercell different from primitive cell

Total energy, geometry optimization, DFT+U, spin....

Moderator: bguster

Locked
fhssn1
Posts: 36
Joined: Mon Feb 26, 2018 7:52 pm

relaxation of supercell different from primitive cell

Post by fhssn1 » Sun Sep 15, 2019 6:55 am

I have carried out a highly converged primitive cell calculation (optcell 0, ionmov 2, followed by optcell 2) for a wurtzite/hex crystal. The input file is as follows (sorry for using mixed units, Bohr for acell, and Angstrom for xangst):

Code: Select all

autoparal 1

ecut 25
pawecutdg 25

optcell 2
dilatmx 1.05
ecutsm 0.5
ionmov 2
ntime 20
tolmxf 1e-7
getwfk -1
toldff 1e-8


            acell      6.0940385006E+00  6.0940385006E+00  9.9245683135E+00 Bohr
            natom           4
           ntypat           2
            rprim      1.0000000000E+00  5.8270115838E-29  1.0816995497E-64
                      -5.0000000000E-01  8.6602540378E-01  1.8116821403E-36
                       6.1232339957E-17  1.0605752387E-16  1.0000000000E+00
            typat      1  2  1  2
           xangst      1.6124131414E+00  9.3092716122E-01  1.9741571395E+00
                       1.6124131414E+00  9.3092716122E-01 -4.7113808246E-03
                       5.3533853548E-16  1.8618543224E+00  4.6000848178E+00
                       4.1416778551E-16  1.8618543224E+00  2.6212162975E+00
            znucl       31.00000    7.00000


kptopt 1
nshiftk 1
shiftk 0 0 0.5
ngkpt 6 6 4

nstep 950
diemac 9.0
ixc -101130


resulting in the following output structure:

Code: Select all

            acell      6.0939946763E+00  6.0939946762E+00  9.9244931406E+00 Bohr
            natom           4
           ntypat           2
            rprim      1.0000000000E+00  8.7419065041E-29  1.6914810925E-64
                      -5.0000000000E-01  8.6602540378E-01  1.8114827248E-36
                       6.1232339957E-17  1.0605752387E-16  1.0000000000E+00
            typat      1  2  1  2
           xangst      1.6124015460E+00  9.3092046658E-01  1.9741419214E+00
                       1.6124015460E+00  9.3092046658E-01 -4.7110801097E-03
                       3.1264470008E-12  1.8618409332E+00  4.6000497098E+00
                       3.1263258310E-12  1.8618409332E+00  2.6211967083E+00
            znucl       31.00000    7.00000


I'm using ABINIT 8.10.3 with libxc, compiled with intel mkl, mpi, scalapack, and what not. I have high hopes with this super-optimized compile!

I made supercells out of this structure. (1,1,2) and (2,2,1) supercells work well (i.e., converge with optcell 0 and optcell 2 to a structure that matches the underlying primitive cell parameters).

However, (1, 1, 4), and (2, 2, 2) supercells are not converging, and I'm having the hardest time figuring out what is going on. (2, 2, 2) input file is given below (note: the 32-atom structure in this file is the result of an optcell 0 calculation of the supercell, so xangst values don't exactly match the primitive values above, but should be pretty close; the acell (a, a, c) has two lattice parameters 'a' and 'c'. In the primitive cell, a 6.09399xxx, while c is 9.92449xxx Bohr. Now for (2, 2, 2) supercell, I don't change rprim, but simply multiply a and c by 2. So I get 12.18747xxx and 19.85186xx Bohr.):

Code: Select all

autoparal 1

ecut 25
pawecutdg 25

optcell 2
dilatmx 1.05
ecutsm 0.5
ionmov 2
ntime 20
tolmxf 1e-5
getwfk -1
toldff 1e-8

            acell      1.2187471695E+01  1.2187471694E+01  1.9851866908E+01 Bohr
            natom          32
           ntypat           2
            rprim      1.0000000000E+00 -3.7896077067E-28  3.0611831747E-41
                      -4.9999999999E-01  8.6602540379E-01  1.3654906454E-36
                       8.1231846153E-17  1.4069768473E-16  1.0000000000E+00
            typat      2  2  2  2  1  1  1  1  2  2  2  2  1  1  1  1  2  2  2  2
                       1  1  1  1  2  2  2  2  1  1  1  1
           xangst      1.6123330762E+00  9.3088095115E-01 -3.2688402482E-01
                       1.3525747998E-08  3.7235237345E+00 -3.2688402482E-01
                       4.8369992019E+00  9.3088095115E-01 -3.2688402482E-01
                       3.2246661392E+00  3.7235237345E+00 -3.2688402482E-01
                       1.6123330762E+00  9.3088095115E-01  2.2966012068E+00
                       1.3525748211E-08  3.7235237345E+00  2.2966012068E+00
                       4.8369992019E+00  9.3088095115E-01  2.2966012068E+00
                       3.2246661392E+00  3.7235237345E+00  2.2966012068E+00
                       1.3416054234E-08  1.8617618789E+00  2.2994048541E+00
                      -1.6123330493E+00  4.6544046623E+00  2.2994048541E+00
                       3.2246661391E+00  1.8617618789E+00  2.2994048541E+00
                       1.6123330764E+00  4.6544046623E+00  2.2994048541E+00
                       1.3416054448E-08  1.8617618789E+00  4.9228900857E+00
                      -1.6123330493E+00  4.6544046623E+00  4.9228900857E+00
                       3.2246661391E+00  1.8617618789E+00  4.9228900857E+00
                       1.6123330764E+00  4.6544046623E+00  4.9228900857E+00
                       1.6123330762E+00  9.3088095115E-01  4.9256937330E+00
                       1.3525748424E-08  3.7235237345E+00  4.9256937330E+00
                       4.8369992019E+00  9.3088095115E-01  4.9256937330E+00
                       3.2246661392E+00  3.7235237345E+00  4.9256937330E+00
                       1.6123330762E+00  9.3088095115E-01  7.5491789646E+00
                       1.3525748637E-08  3.7235237345E+00  7.5491789646E+00
                       4.8369992019E+00  9.3088095115E-01  7.5491789646E+00
                       3.2246661392E+00  3.7235237345E+00  7.5491789646E+00
                       1.3416054661E-08  1.8617618789E+00  7.5519826119E+00
                      -1.6123330493E+00  4.6544046623E+00  7.5519826119E+00
                       3.2246661391E+00  1.8617618789E+00  7.5519826119E+00
                       1.6123330764E+00  4.6544046623E+00  7.5519826119E+00
                       1.3416054874E-08  1.8617618789E+00  1.0175467844E+01
                      -1.6123330493E+00  4.6544046623E+00  1.0175467844E+01
                       3.2246661391E+00  1.8617618789E+00  1.0175467844E+01
                       1.6123330764E+00  4.6544046623E+00  1.0175467844E+01
            znucl       31.00000    7.00000

kptopt 1
nshiftk 1
shiftk 0 0 0.5
ngkpt 6 6 4

nstep 950
diemac 9.0
ixc -101130


I investigated the behavior of (2,2,2) relaxation and something doesn't add up.

Firstly, and this is not the main issue of this post, optcell 0 would give 'paw overlap' error with JTH-PBE-1.1 datasets. I changed Ga dataset with a small core (21 valence instead of 13) and the optcell 0 convergence flawlessly (I wasted a whole week on the JTH-PBE-1.1 Ga large core dataset; feel free to take my input file and show me that JTH-PBE-1.1 Ga works with optcell 0). (If you search 'small core' on this forum, there is only 1 post that provides a link to the atompaw website. I took the Ga.in from there and generated a paw dataset for GGA-PBE. Side note: there is no mention on JTH download page about core size and link to other datasets. I got the impression that JTH are the best datasets and there is no need for something else for simple systems. And I think it's fair to say that what I'm doing is quite simple, and yet... anyway, I digress.)

But more importantly, for optcell 2, for both JTH-PBE-1.1 Ga and small core Ga, the acell update is increasing lattice parameter 'a', while decreasing 'c'. In other words, the aspect ratio of the structure is changing completely compared to the primitive cell aspect ratio. How does that make any sense?

The update of acell = (a, a, c) is as follows (for 8 scf cycles):

Code: Select all

1... 1.21874716950000E+01  1.21874716940000E+01  1.98518669080000E+01
2... 1.23220414825500E+01  1.23220414815367E+01  1.98461052222912E+01
3... 1.23963934451602E+01  1.23963934441408E+01  1.97780143620597E+01
4... 1.24030375040395E+01  1.24030375030195E+01  1.97151154583319E+01
5... 1.25965652232263E+01  1.25965652221904E+01  1.71177385348168E+01
6... 1.24543952770467E+01  1.24543952760225E+01  1.91484435944743E+01
7... 1.24894854384270E+01  1.24894854374000E+01  1.88330710352427E+01
8... 1.25062785803850E+01  1.25062785793565E+01  1.87541484895361E+01


while tolmxf (or mxf of each scf cycle I should say) keeps wandering around between 1e-3 and 1e-1 and never consistently drops to 1e-5 or 1e-6.

Am I doing anything wrong? Is there any way to fix this?

I need relaxation of a supercell because I need to turn this into a slab, i.e., introduce vacuum above and below (z-axis), and then relax again (to study surface reconstruction, and surface vacancy formation energy, etc). If I'm not confident about relaxation without vacuum, I have no hope of trusting the relaxation result in the presence of vacuum.

Thanks in advance.

Locked