Exfoliating Crystallographic Plane (ECP) v1.3

This page documents the current production workflow for screening exfoliable crystallographic planes from non-vdW bulk materials. The method has been updated to match the latest implementation used in version_5.0.py.

What Is New in v1.3

  • The production script is now version_5.0.py, and the result table records the best cleavage height, shift, and 2D slab metadata for each retained surface.
  • After the minimum-bonding-density plane is identified, the workflow regenerates a dedicated POSCAR_2D_h_k_l.vasp model whose top and bottom surfaces correspond to that optimal cleavage position.
Historical Updates: v1.2
  • Automated XRD generation from crystal structures using pymatgen; no manual VESTA export is required.
  • Candidate hkl processing is more conservative: low-intensity reflections can be filtered, obvious duplicates such as 001/002 and 001/00-1 are merged, but non-equivalent directions such as 102 and 012 are retained until slab generation.
  • Before cleavage scanning, all generated slabs are compared. Only slabs with identical structures are deduplicated; different slab terminations or different internal stackings are kept.
  • Broken bonds are counted with StructureGraph + jimage, avoiding manual image mapping and reducing periodic-boundary ambiguity.
  • Cleavage-plane scanning supports fixed, event, and auto modes. The event mode evaluates only the heights where the bond topology or V_old can change.
  • The main screening metric in the production workflow is bonding_density = N / V_old, while N / A is kept as an auxiliary area-normalized descriptor.

Updated Workflow

The production pipeline is summarized below as seven linked stages, from reflection generation to the final cleavage ranking.

01

Auto XRD Candidates

XRDCalculator

Generate reflection candidates directly from the bulk structure and remove weak peaks before slab construction.

2θ window intensity filter
02

Conservative hkl Filtering

keep true directions

Merge only trivial duplicates early, while retaining non-equivalent directions until real slab structures can be compared.

001 = 002 102 ≠ 012
03

Stable Slab Build

production geometry

Construct slabs with the fixed production settings so the internal scan region stays reproducible across materials.

center_slab = False vacuum = 5 Å
04

Slab Identity Check

deduplicate after build

Skip only slabs that are structurally identical after generation, instead of over-relying on symmetry reduction up front.

same slab → reuse different stacking → keep
05

Jimage Bond Tracing

StructureGraph

Track broken bonds with explicit periodic edges so each crossing bond is counted with its jimage context.

periodic edges broken bond pairs
06

Smart Scan and Rank

auto / fixed / event

Choose the cheaper scan strategy for each slab, then rank cleavage positions with the production metric N / V_old.

scan mode bonding_density
07

Export 2D Model

best cleavage layer

Regenerate a dedicated 2D slab from the original bulk so the top and bottom surfaces align with the previously selected minimum-density cleavage position.

POSCAR_2D_h_k_l best-plane termination
Slab Thickness
4 × ceil(d)
Vacuum
5 Å
Bond Backend
StructureGraph + Jimage
Primary Metric
N / V_old

2D export: once the best internal cleavage plane is identified, version_5.0.py writes a corresponding POSCAR_2D_h_k_l.vasp model into the same face_h_k_l folder for downstream relaxation or visualization.

Recommended Usage

Local Batch Workflow

1
2
python version_5.0.py
# the script reads the built-in config block by default

Parallel Representative Workflow

To process many representative structures in parallel, edit the USER_CONFIG block in run_version_5_parallel.py and run:

1
python run_version_5_parallel.py

The launcher prepares a flat input staging directory from materials_ecp_representatives and then calls version_5.0.py with process-level parallelism.

Server Workflow

For HPC usage, each material can be prepared as an independent job folder that contains:

  • the target .vasp file
  • version_5.0.py
  • newvasp.sh
  • an optional pre-generated XRD/ folder

This allows direct submission with:

1
sbatch newvasp.sh

Download Scripts

  • version_5.0.py: the current production script for material screening and best-plane 2D slab export.
  • run_version_5_parallel.py: optional parallel launcher for representative datasets; modify the USER_CONFIG block to match your local paths and Python environment.
  • prepare_newvasp_jobs.sh: helper script for preparing per-material job folders; modify paths and environment settings according to your own machine.
  • submit_all_newvasp.sh: helper script for submitting all prepared jobs; modify it according to your own cluster usage.

Note: version_5.0.py is the core materials-analysis script. run_version_5_parallel.py is an optional launcher for multi-material parallel runs and should be edited to match your local representative root, Python executable, and output paths. The shell scripts are also templates and should be adjusted to match your own server environment, paths, and scheduler settings.

Dependencies

  • Python 3.9-3.12
  • numpy, pandas, matplotlib, pymatgen, ase, openpyxl, tqdm
1
pip install numpy pandas matplotlib pymatgen ase openpyxl tqdm

Scope

ECP v1.3 is intended for fast screening of potentially exfoliable crystallographic planes before higher-cost first-principles validation. The current implementation emphasizes reproducibility of slab construction, explicit periodic bond handling, reduced redundant scans, and direct export of the final 2D cleavage model.


License

This project is licensed under the MIT License.