Short version: Is it possible to use meta-GGAs in abinit via libxc for forces and total energies?
Longer version:
I'm interested in using abinit to run meta-GGA calculations (e.g. TPSS and SCAN functionals) via libxc. I did the following:
- Compiled the latest version of libxc (rev12537).
- Compiled abinit-7.10.5 with this libxc. To get this to compile, I modified ~abinit/config/m4/conn-dft.m4 to circumvent the libxc version check. Additionally, I made a few small changes to ~abinit/src/41_xc_lowlevel/m_libxc_functionals.F90 that were causing compilation errors (presumably related to changes in libxc since version 2).
- Performed some calculations on bulk fcc aluminum using PBE (ixc=11 or ixc=-101130), TPSS (ixc=-202231), and SCAN (ixc=-263267). For testing, I am just using a norm-conserving (Troullier-Martins) FHI PBE pseudopotential.
I am finding strange results for the relaxed lattice parameter for the meta-GGAs. For example, when I relax with SCAN I get a quite low value of lattice parameter (3.801 A), whereas by doing several static runs varying the lattice parameter, I find the minimum at 4.038 A. I find the relaxation result is unchanged when I ramp up the convergence parameters, vary the initial coordinates, or use another pseudopotential. With TPSS I also find a similar discrepancy, whereas for PBE things seem fine and agree with the literature (4.046 A).
Therefore, I am wondering if something is missing to be able to run libxc meta-GGA calculations in abinit, or if there is some other error I am making?
The main parameters I am using are: ngkpt 25 25 25, ecut 600 eV, usekden 1, ionmov 2, optcell 1, ecutsm 0.5, tolmxf 1.0d-8, dilatmx 1.8, occopt 6, tsmear 0.2 eV. I am running on a linux cluster using Intel compilers, MPI, and FFTW3. The output and log files for the SCAN relaxation are attached.
Thanks very much,
Eric Isaacs
Northwestern University