Official Resources
- Homepage: https://www.abinit.org/
- Documentation: https://docs.abinit.org/theory/mbt/
- Source Repository: https://github.com/abinit/abinit
- License: GNU General Public License
Overview
ABINIT-GW refers to the many-body perturbation theory (MBPT) functionality within the ABINIT package, an open-source plane-wave pseudopotential code for electronic structure calculations. ABINIT implements the GW approximation for computing quasiparticle energies and band gaps, providing one of the major open-source GW implementations alongside BerkeleyGW and Yambo.
Within MBPT, ABINIT calculates quasiparticle (QP) energies and amplitudes by solving a nonlinear equation involving the non-Hermitian, nonlocal, and frequency-dependent self-energy operator. A typical GW calculation in ABINIT consists of two steps following a DFT calculation: first computing the screened interaction (dielectric matrix) and storing it on disk (optdriver=3), then evaluating the self-energy matrix elements to obtain QP corrections (optdriver=4). ABINIT supports plasmon-pole models and full numerical frequency integration, with the latter using contour integration along the imaginary axis.
Scientific domain: Many-body perturbation theory, quasiparticle band structure
Target user community: Computational materials scientists requiring open-source GW calculations
Theoretical Methods
- GW approximation within Hedin's equations
- G0W0 (single-shot quasiparticle energies)
- Self-consistent GW (scGW) and GW0 (self-consistent G, fixed W0)
- RPA screened interaction computation
- Plasmon-pole models (Godby-Needs, etc.)
- Full numerical frequency integration (contour deformation)
- GW 1-body reduced density matrix (1RDM) with Galitskii-Migdal correlation
- PAW and norm-conserving pseudopotential frameworks
Capabilities (CRITICAL)
- Quasiparticle energy calculations (G0W0, scGW, GW0)
- Screening (susceptibility and dielectric matrix) computation
- Self-energy matrix element evaluation
- Multiple frequency integration methods (plasmon-pole and contour)
- Coulomb singularity treatment (icutcoul) for convergence acceleration
- Support for PAW and norm-conserving pseudopotentials
- Core contribution to self-energy via Fock operator (PAW)
- GW total energy via Galitskii-Migdal approximation
- BSE calculations (optdriver=99) on top of GW
Inputs & Outputs
Input formats:
- ABINIT input files with optdriver=3 (screening) and optdriver=4 (self-energy)
- WFK files from preceding DFT calculation
- SCR files (screening/dielectric matrix)
Output data types:
- Quasiparticle energies and corrections
- Self-energy matrix elements (exchange and correlation parts)
- Screened interaction (SCR files)
- Dielectric matrices
- GW total energies (with Galitskii-Migdal)
Interfaces & Ecosystem
- Programming language: Fortran (with Python bindings)
- Open-source: GNU GPL license
- Parallel computing: MPI and OpenMP parallelization
- Prerequisite: ABINIT DFT ground-state calculation
- Downstream: BSE calculations using SCR files
- Parameter files: .ac9 files for compilation options (enable_gw_dpc)
Limitations & Known Constraints
- Pseudopotential-based (core-valence interaction approximated)
- Memory-intensive for large dielectric matrices
- Convergence with k-points, unoccupied states, and frequency grid required
- Self-consistent GW variants are computationally very expensive
Performance Characteristics
- Screening computation: scales with number of bands and G-vectors (ecuteps)
- Self-energy: controlled by ecutsigx (exchange) and ecuteps (correlation)
- FFT-based oscillator matrix evaluation (fftgw parameter)
- Memory reduction option: enable_gw_dpc="no" at compilation
- Parallel over k-points and frequency points
Comparison with Other Codes
- vs VASP-GW: ABINIT is open-source (GPL); VASP is commercial. Both offer comprehensive GW
- vs BerkeleyGW: BerkeleyGW is standalone post-processing; ABINIT-GW is integrated
- vs Yambo: Yambo works with QE/ABINIT output; ABINIT-GW is self-contained
- vs FHI-gap: FHI-gap is all-electron LAPW; ABINIT uses pseudopotentials
Best Practices
- Converge ecuteps (screening) and ecutsigx (self-energy) separately
- Use sufficient empty bands (nband) for correlation part of self-energy
- For metals, use contour deformation instead of plasmon-pole
- Use icutcoul for improved k-point convergence of Coulomb singularity
- Follow GW1 and GW2 tutorials for systematic convergence testing
Verification & Sources
Primary sources:
- ABINIT MBPT theory: https://docs.abinit.org/theory/mbt/
- ABINIT GW topic: https://docs-10-4-3.abinit.org/topics/GW/
- ABINIT GW tutorials: https://docs.abinit.org/tutorial/gw1/
Confidence: VERIFIED - Official documentation and tutorials confirmed accessible