A comprehensive CLI tool for VASP pre-processing (Supercells, K-points) and post-processing (DOS, Band Structure plotting)
Project description
Valyte
Valyte is a comprehensive CLI tool for VASP workflows, providing both pre-processing and post-processing capabilities with a focus on clean, publication-quality outputs and modern aesthetics.
Features
Pre-processing
- Supercell Creation: Generate supercells from POSCAR files.
- Interactive K-Point Generation: Create KPOINTS files with automatic grid calculation based on K-spacing.
- Band KPOINTS Generation: Automatic high-symmetry path detection for band structure calculations.
Post-processing
- DOS Plotting:
- Smart Plotting: Automatically handles total DOS and Projected DOS (PDOS).
- Orbital-Resolved: Plots individual orbitals (s, p, d, f) by default.
- Adaptive Legend: Intelligently hides the legend if PDOS contributions are low.
- Gradient Fill: Aesthetically pleasing gradient fills for DOS peaks.
- Band Structure Plotting:
- VBM alignment to 0 eV.
- Color-coded bands (Purple for VB, Teal for CB).
- High-symmetry path labels from KPOINTS.
- IPR Analysis: Compute Inverse Participation Ratio from PROCAR to analyze wavefunction localization.
- Publication Quality: Clean aesthetics, custom fonts (Arial, Helvetica, Times New Roman), high DPI output.
Installation
Install Valyte directly from PyPI:
pip install valyte
Or install from source:
git clone https://github.com/nikyadav002/Valyte-Project
cd Valyte-Project
pip install -e .
Examples
Updating Valyte
To update to the latest version:
pip install --upgrade valyte
Usage
The main command is valyte.
Click to view detailed usage instructions
🧊 Create Supercell
Generate a supercell from a POSCAR file:
valyte supercell nx ny nz [options]
Example:
# Create a 2×2×2 supercell
valyte supercell 2 2 2
# Specify input and output files
valyte supercell 3 3 1 -i POSCAR_primitive -o POSCAR_3x3x1
Options:
-i,--input: Input POSCAR file (default:POSCAR).-o,--output: Output filename (default:POSCAR_supercell).
📉 Band Structure
1. Generate KPOINTS
Automatically generate a KPOINTS file with high-symmetry paths for band structure calculations.
[!TIP] Smart K-Path Generation (New in v0.1.7+): Valyte now automatically determines the standard path (e.g.,
\Gamma - Y - Vfor Monoclinic cells) using the Bradley-Cracknell convention by default. This ensures clean, publication-ready labels without external dependencies.
valyte band kpt-gen [options]
Options:
-i,--input: Input POSCAR file (default:POSCAR).-n,--npoints: Points per segment (default:40).-o,--output: Output filename (default:KPOINTS).--mode: Path convention. Options:bradcrack(Default),seekpath,latimer_munro,setyawan_curtarolo.
Example:
# Default (Smart/BradCrack)
valyte band kpt-gen -n 60
# Explicitly use Seekpath convention
valyte band kpt-gen --mode seekpath
[!IMPORTANT] The command will generate a
POSCAR_standardfile. You MUST use this structure for your band structure calculation (i.e.,cp POSCAR_standard POSCAR) because the K-path corresponds to this specific orientation. Using your original POSCAR may result in incorrect paths.
🕸️ Generate K-Points (Interactive)
Generate a KPOINTS file for SCF calculations interactively.
valyte kpt
This command will prompt you for:
- K-Mesh Scheme: Monkhorst-Pack or Gamma.
- K-Spacing: Value in $2\pi/\AA$ (e.g., 0.04).
It automatically calculates the optimal grid based on your POSCAR structure.
🧪 Generate POTCAR
Generate a POTCAR file based on the species in your POSCAR.
valyte potcar [options]
Options:
-i,--input: Input POSCAR file (default:POSCAR).-o,--output: Output filename (default:POTCAR).--functional: Functional to use (default:PBE). Options includePBE,PBE_52,PBE_54,LDA, etc.
Example:
# Generate POTCAR using default PBE functional
valyte potcar
# Use a specific functional
valyte potcar --functional PBE_54
# Specify input and output files
valyte potcar -i POSCAR_relaxed -o POTCAR_new
[!IMPORTANT] Pymatgen Configuration Required: This command requires Pymatgen to be configured with your VASP pseudopotential directory. Set
PMG_VASP_PSP_DIRin your~/.pmgrc.yamlfile. See the Pymatgen documentation for setup instructions.
2. Plot Band Structure
Plot the electronic band structure from vasprun.xml.
valyte band [options]
Options:
--vasprun: Path tovasprun.xml(default: current directory).--kpoints: Path toKPOINTSfile for path labels (default: looks forKPOINTSin same dir).--ylim: Energy range, e.g.,--ylim -4 4.-o, --output: Output filename (default:valyte_band.png).
Example:
valyte band --ylim -3 3 -o my_bands.png
📊 Plot DOS
valyte dos [path/to/vasprun.xml] [options]
You can provide the path as a positional argument, use the --vasprun flag, or omit it to use the current directory.
Examples:
# Plot all orbitals for all elements (Default)
valyte dos
# Plot specific elements (Total PDOS)
valyte dos -e Fe O
# Plot specific orbitals
valyte dos -e "Fe(d)" "O(p)"
# Plot mixed (Fe Total and Fe d-orbital)
valyte dos -e Fe "Fe(d)"
Options:
-e,--elements: Specific elements or orbitals to plot.- Example:
-e Fe O(Plots Total PDOS for Fe and O). - Example:
-e Fe(d) O(p)(Plots Fe d-orbital and O p-orbital). - Example:
-e Fe Fe(d)(Plots Fe Total and Fe d-orbital).
- Example:
--xlim: Energy range (default:-6 6).--ylim: DOS range (e.g.,--ylim 0 10).--scale: Scaling factor for Y-axis (e.g.,--scale 3divides DOS by 3).--fermi: Draw a dashed line at the Fermi level (E=0). Default is OFF.--pdos: Plot only Projected DOS (hide Total DOS).--legend-cutoff: Threshold for legend visibility (default:0.10= 10%).-o,--output: Output filename (default:valyte_dos.png).--font: Font family (default:Arial).
Example:
valyte dos ./vasp_data --xlim -5 5 -o my_dos.png
📐 Compute IPR (Inverse Participation Ratio)
Compute the Inverse Participation Ratio (IPR) from VASP PROCAR to analyze wavefunction localization.
valyte ipr
This interactive command will:
- Read the
PROCARfile from the current directory. - Display the number of k-points, bands, and atoms.
- Prompt you for band indices to analyze (e.g.,
5 6 7or5-7). - Optionally show per-k-point IPR values.
- Save results to
ipr_procar.dat.
Output Columns:
- Band: Band index.
- Energy: Average energy (eV) across k-points.
- IPR: Inverse Participation Ratio (higher = more localized).
- N_eff: Effective number of atoms (1/IPR).
[!TIP] Use IPR to identify localized defect states. A state localized on a single atom has IPR ≈ 1.0 and N_eff ≈ 1. Delocalized band states have small IPR and large N_eff.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file valyte-0.1.11.tar.gz.
File metadata
- Download URL: valyte-0.1.11.tar.gz
- Upload date:
- Size: 4.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0c16c14057921a7160dac28c7f2f4901ceee9e91967af9ef21e80077ec9f9ba
|
|
| MD5 |
c423b2acb1ff196ec67f6bbd943cfcec
|
|
| BLAKE2b-256 |
9105857f86d0eb0de7ed8fcf0f994ff04e2bf6b62efbc573ebe88d3b586da96e
|
File details
Details for the file valyte-0.1.11-py3-none-any.whl.
File metadata
- Download URL: valyte-0.1.11-py3-none-any.whl
- Upload date:
- Size: 4.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cca9fe06b40611515ef4e41df801654191e2118dc3e68999e09784d0a0507e1d
|
|
| MD5 |
44903eff3c32a6861b6ff99c15ae33e9
|
|
| BLAKE2b-256 |
bdde162f8b468ef1ecfbe1097b8ce832fb61d20c2633f27d2580e2d79d34ce06
|