Skip to content

[Feature Request] Modernize Input: Support for POSCAR/ASE Structures via Python Bridge #51

@Liam-Deacon

Description

@Liam-Deacon

Context & Motivation

The current workflow for CLEED relies on legacy input formats (.inp, .bul, .ctr) which define surface structures using a "Layered" philosophy (explicit separation of Bulk and Overlayer).

However, the modern computational materials science community (DFT users, High-Throughput screening) has standardized around the "Supercell" philosophy: a single 3D periodic box containing bulk, surface, and vacuum, typically exchanged via POSCAR (VASP) or CIF files and manipulated via Python libraries like ASE (Atomic Simulation Environment) or pymatgen.

The Problem

There is a structural mismatch between modern tools and CLEED:

  1. Modern Tools (VASP/ASE): "Here is a bag of atoms in a box." (3D periodicity, vacuum is just empty space).
  2. CLEED: "Here is a semi-infinite Bulk (.bul) and a finite Overlayer (.inp)." (2D periodicity, vacuum is handled analytically).

Currently, a user wanting to simulate a structure from VASP must manually decompose their POSCAR into CLEED's specific format, which is error-prone and hinders automation.

Proposed Solution: The "Python Bridge"

Instead of refactoring the core C/Fortran kernel to parse complex formats, we should implement a Python-based pre-processor (e.g., tools/cleed_converter.py) that acts as a bridge.

Workflow:

  1. Input: User provides a standard file (POSCAR, .cif, .xyz).
  2. Processing:
    • The script uses ASE to read the geometry.
    • It applies an "Automated Slicing" algorithm to identify the periodic bulk unit from the bottom layers of the slab.
    • It treats the remaining top layers as the Overlayer.
  3. Output: The script generates valid .bul and .inp files for CLEED.

This approach immediately grants CLEED compatibility with 30+ file formats supported by ASE and aligns it with tools like ViPErLEED, which natively uses POSCARs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions