DFTK features
Standard methods and models:
- Standard DFT models (LDA, GGA, meta-GGA): Any functional from the libxc library
- Norm-conserving pseudopotentials: Goedecker-type (GTH, HGH) or numerical (in UPF pseudopotential format), see Pseudopotentials for details.
- Brillouin zone symmetry for $k$-point sampling using spglib
- Standard smearing functions (including Methfessel-Paxton and Marzari-Vanderbilt cold smearing)
- Collinear spin polarization for magnetic systems
- Self-consistent field approaches including Kerker mixing, LDOS mixing, adaptive damping
- Direct minimization, Newton solver
- Multi-level threading ($k$-points eigenvectors, FFTs, linear algebra)
- MPI-based distributed parallelism (distribution over $k$-points)
- Treat systems of 1000 electrons
Ground-state properties and post-processing:
- Total energy
- Forces, stresses
- Density of states (DOS), local density of states (LDOS)
- Band structures
- Easy access to all intermediate quantities (e.g. density, Bloch waves)
Unique features
- Support for arbitrary floating point types, including
Float32
(single precision) orDouble64
(from DoubleFloats.jl). - Forward-mode algorithmic differentiation (see Polarizability using automatic differentiation)
- Flexibility to build your own Kohn-Sham model: Anything from analytic potentials, linear Cohen-Bergstresser model, the Gross-Pitaevskii equation, Anyonic models, etc.
- Analytic potentials (see Tutorial on periodic problems)
- 1D / 2D / 3D systems (see Tutorial on periodic problems)
- Support for arbitrary floating point types, including
Third-party integrations:
- Seamless integration with many standard Input and output formats.
- Integration with ASE and AtomsBase for passing atomic structures (see AtomsBase integration).
- Wannierization using Wannier.jl or Wannier90
- Runs out of the box on Linux, macOS and Windows
Missing a feature? Look for an open issue or create a new one. Want to contribute? See our contributing notes.