Software · Python toolkit
SURP
Surface Utility for Research in Periodic-DFT. A lightweight, modular Python toolkit that automates the build–simulate–analyse loop for VASP-based slab calculations.
What it does
SURP is six independent command-line modules driven by a single
annotated INPUT file. Each module does one thing and
stays out of the others' way.
- Slab generator: enumerates every symmetrically inequivalent termination of a given Miller plane.
- Adsorbate placer: drops H₂O, OH, CO, CO₃, OLi, or F on a clean slab at chosen positions and orientations.
- Dopant substitution: random, far-apart, or tightly-clustered placement, swept over multiple concentrations.
- Surface-energy calculator: clean and adsorbate-covered slabs, with direct and indirect γ cross-checked.
- Structural analyser: auto-detected interlayer spacings, adsorbate–substrate bonds, intra-adsorbate geometry, lateral neighbours.
- Adsorption-energy driver: walks a
clean/+adsorbateadded/job tree and tabulates everything to CSV.
Element-agnostic
SURP isn't tied to any particular chemistry. Drop any bulk crystal
into BULKSTRUCT.vasp and the tools work: oxides,
metals, intermetallics, perovskites, actinides. The example data
shipped with it happens to be PuO₂, but that's incidental.
How you'd use it
- Generate slabs from a converged bulk (
surface_creator.py). - Relax the slabs in VASP (separately).
- Place adsorbates on the lowest-energy termination (
add_adsorbate.py). - Relax adsorbate configurations in VASP.
- Drop the converged outputs into a folder named per the file convention and run the analyser modules. CSV and XLSX results appear in your job directory.
Get it
SURP isn't publicly released yet. A tagged v1.5.0 has been prepared and the source will appear on GitHub once a few final checks are done. Watch this page or drop me a line if you'd like to be told when it's available.
Licence
Once published, SURP will be released under the MIT licence: free to use, modify, and redistribute, including commercially, with attribution.