A C++ code for reading and analyzing Universal Pseudopotential File (UPF) data from Quantum ESPRESSO. This tool provides functionality to read UPF files, calculate various potentials, and generate publication-ready plots using Gnuplot.
- Read UPF files using pugiXML
- Calculate total potentials from local potentials and projectors
- Export data in a format suitable for plotting
- Generate Gnuplot scripts for visualization
- Support for multiple output formats (X11, PostScript color/mono)
- C++17 or later
- CMake 3.10 or later
- pugiXML
- Gnuplot (for visualization)
mkdir build
cd build
cmake ..
make
- Place your executable where UPF files are like ina the
/UPF_data/nc-sr-05_pbe_standard_upf/
directory - Run the executable:
./Optical_properties UPF_file_1 UPF_file_2 ...
- The program will generate:
- Data files (.dat) containing potential values
- Gnuplot scripts (.gp) for visualization
- PostScript output files when running the scripts
element_local_potential.dat
: Local potential dataelement_nonlocal_potentials.dat
: Non-local potentialselement_projectors.dat
: Projector functionselement_total_potentials.dat
: Total potentials- Corresponding
.gp
files for plotting
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Original implementation by Nenad Sakan
- Quantum ESPRESSO team for the UPF format specification
- pugiXML developers for the XML parsing library