PAWpySeed
Parallel C/Python package for numerical analysis of PAW DFT wavefunctions
|
https://kylebystrom.github.io/pawpyseed/
WARNING: PAWpySeed is still in early development. Documentation is incomplete, and some features are not yet thoroughly tested. High-priority issues for the next couple months include: 1) documentation page containing the mathematical formalism, 2) examples and tutorials, 3) standardized unit tests. The evaluation of overlap operators is tested, but a standard test suite is not yet published, and some features still require more thorough testing.
PAWpySeed is a parallelized Python and C tool for reading and analyzing the optimized band structure and wave functions of VASP DFT calculations. The code is written for the PAW formalism developed by P.E. Blochl and implemented in VASP.
Note: Before installing with pip or the setup script, please read about the dependencies and set up your environment correctly!
You can install PAWpySeed with pip
.
pip install pawpyseed
This has been tested on Scientific Linux 7 and Linux Mint 18, but should work for systems that have the appropriate packages and environment variables defined as described below. Note that the setup script compiles and installs some C code as a shared object to be used by ctypes
and places it in the package directory under pawpyseed/core/
.
Installation can also be performed by cloning this repository and running the setup.py
script in the root directory of the repository.
The build
command, in addition to the standard distutils setup, compiles the C code in the pawpyseed.core
module into a shared object in the core module, pawpy.so
. See below for dependency details.
All dependencies indicate the minimum version tested. PAWpySeed might work fine with earlier versions, but use of older versions will not be officially supported.
Python requirements:
C requirements:
Intel MKL is available for free installation on a variety of platforms. Most computing clusters will have Intel MKL, and you can install it on your desktop (or any system to which you have root access) by following the relevant instructions at the following URL: https://software.intel.com/en-us/articles/free-ipsxe-tools-and-libraries. After Intel MKL is installed, add the following line to your .bashrc to link MKL (NOTE: this might not be the exact directory that MKL is in, you need to check that first):
The last line is optional but might be useful for future PAWpySeed builds and other programs which make use of MKL. The setup.py file will now take care of C compilation.
Optional Python dependencies (not used now but might be in the future):
The projector augmented wave (PAW) method is a technique used in plane wave density functional theory to simplify the description of the wavefunctions near the nuclei of a system. The strong Coulombic forces near an atomic nucleus creates quickly oscillating wavefunctions that are not well described by plane waves without prohibitively large basis sets, so a "pseudopotential" is introduced near the atomic nuclei which results in smooth "pseudowavefunctions" well described by plane waves. The full wavefunctions can be recovered by a linear transform of the pseudowavefunctions. The PAW method requires three sets of functions: projector functions, onto which pseudowavefunctions are projected to probe their character; full partial waves, which describe atomic valence states derived from the true potential; and pseudo partial waves, which are derived from the full partial waves and pseudopotential.
The projector functions and partial waves are unique to each element and stored in the POTCAR file used in a VASP calculation. The pseudowavefunction is the part of the wavefunction optimized during a DFT calculation and is stored in the WAVECAR output file in VASP. PAWpySeed parses both files to retrieve all parts of the full Kohn Sham wavefunctions.
The main purpose of PAWpySeed is to evaluate overlap operators between Kohn-Sham wavefunctions from different structures, which is not done by standard plane-wave DFT codes. Such functionality can be useful for analyzing the composition of defect levels in solids, which is main application for which the code is currently focused.
The code in PAWpySeed is based on a several algorithms and codes, which are enumerated here.
Find a bug? Areas of code unclearly documented? Other questions? Feel free to contact Kyle Bystrom at kyleb with the subject "pawpyseed: <Topic>". ystr om@be rkel ey.ed u