PWDFT.jl is a code written in Julia that can carry out Kohn-Sham density functional theory calculations using plane wave basis set. It utilizes GTH pseudopotentials (a type of norm-conserving pseudopotential) to represent interaction between electrons and nuclei. Calculations with full Coulombic potential are also possible but they will need to use very high cutoff energy for the plane wave basis expansion.
PWDFT.jl is mainly intended for use in educational settings. It is not yet able to handle large systems efficiently as distributed memory parallelization are not yet implemented.
Current implemented features are:
- Total energy calculations with various algorithms: self-consistent field with density or potential mixing, direct minimization (for insulating systems), and (trust region) direct constrained minimization (not extensively tested)
- Iterative Hamiltonian diagonalization algorithms: LOBPCG, Davidson, and conjugate gradient.
- Alternative to Hamiltonian diagonalization: Chebyshev-filtered subspace iteration (not yet extensively tested)
- Spin-polarized calculations
- XC correlations: VWN and PBE are implemented in pure Julia. More functionals can be utilized via Libxc.
- Atomic force calculations
ffr-LFDFT is a program written in Fortran that can carry out Kohn-Sham density functional calculations using a family of Lagrange-functions.
ffr-PWDFT is just like PWDFT.jl but written in Fortran. It is currently lacking some features. Like PWDFT.jl it is mainly used for educational purpose.