This repository contains the code used to identify and evaluate an electron-localization-function (ELF) anisotropy descriptor for two-dimensional Sn(II) and Pb(II) iodide perovskites.
The repository has two independent entry points:
descriptor/: an installable command-line program that calculates the final ELF anisotropy descriptor directly from a VASPELFCARfile.sisso/: the physically constrained SISSO++ candidate-search and nested leave-one-material-out validation workflow.
For Sn-I or Pb-I direction i at metal site j,
M_ij = r_ij h_ij
A_j = [max_i(M_ij) - min_i(M_ij)] / mean_i(M_ij)
A_ELF = max_j(A_j)
where r_ij and h_ij are the position and height of the first metal-centered ELF maximum. The squared quantity A_ELF^2 is the final form identified by the symbolic-regression analysis.
A_ELF = 0 is the isotropic limit. Increasing values indicate stronger directional asymmetry of the metal-centered ELF in the analyzed static structure.
Install the descriptor program:
python -m venv .venv
source .venv/bin/activate
pip install ./descriptorAnalyze one ELFCAR file:
elf-anisotropy analyze /path/to/ELFCARWrite machine-readable and detailed outputs:
elf-anisotropy analyze /path/to/ELFCAR --output results/exampleSee descriptor/README.md for the algorithm, complete command reference, output schema, and interpretation guidance.
The SISSO++ workflow expects its input tables under a local data/ directory. These tables are not distributed with this repository; the workflow does not read the original ELFCAR files.
python3 sisso/prepare_candidates.py
python3 sisso/run_nested_loocv.py --binary /path/to/sisso++ --dimensions 1,2
python3 sisso/summarize_results.py --verify-referenceSee sisso/README.md for the pinned SISSO++ version, build instructions, nested-validation design, and expected results.
The descriptor measures static directional ELF anisotropy. Its strong relation to photoluminescence linewidth across the studied material series shows that it captures a dominant cross-material tendency, despite finite-temperature lone-pair dynamics not being explicitly included.
The code in this repository is released under the MIT License. SISSO++ is an external project and retains its own license. Citation metadata are provided in CITATION.cff.