Skip to content

center_slab fails to correctly center atomic layers when the vacuum region lies at the slab center #4543

@KylinGuo

Description

@KylinGuo

Python version

3.12.11

Pymatgen version

2025.10.7

Operating system version

Ubuntu 24.04.3 LTS

Current behavior

center_slab fails to correctly center atomic layers when the vacuum region lies at the slab center.

Expected Behavior

I expect that it is atomic layers rather than vacuum region that lies at the slab center.

Minimal example

from pymatgen.core import Structure
from pymatgen.core.surface import center_slab

# Centered-Vacuum-Layer.vasp
poscar_file_contents = """Mn13 Ni39 C16
    1.0000000000000000
   4.3948863557928926   -2.5373888205748356    0.0000000000000000
   4.3948863557928926    2.5373888205748356    0.0000000000000000
   0.0000000000000000    0.0000000000000000   55.0000000000000000
   C    Mn   Ni
16 13 39
Selective dynamics
Direct
   0.3333333333333357    0.3333333333333357    0.2607746043118905   F   F   T   C
   0.8333333333333357    0.3333333333333357    0.2607308428834212   F   F   T   C
   0.3333333333333357    0.8333333333333357    0.2607308428834212   F   F   T   C
   0.8333333333333357    0.8333333333333357    0.2607308428834212   F   F   T   C
   0.5000000000000000    0.5000000000000000    0.2606412996970648   F   F   T   C
   0.0000000000000000    0.5000000000000000    0.2606412996970648   F   F   T   C
   0.5000000000000000    0.0000000000000000    0.2606412996970648   F   F   T   C
   0.0000000000000000    0.0000000000000000    0.2615020032279701   F   F   T   C
   0.6666666666666643    0.6666666666666643    0.7392253956881095   F   F   T   C
   0.1666666666666643    0.6666666666666643    0.7392691571165788   F   F   T   C
   0.6666666666666643    0.1666666666666643    0.7392691571165788   F   F   T   C
   0.1666666666666643    0.1666666666666643    0.7392691571165788   F   F   T   C
   0.5000000000000000    0.5000000000000000    0.7393587003029352   F   F   T   C
   0.0000000000000000    0.5000000000000000    0.7393587003029352   F   F   T   C
   0.5000000000000000    0.0000000000000000    0.7393587003029352   F   F   T   C
   0.0000000000000000    0.0000000000000000    0.7384979967720299   F   F   T   C
   0.0000000000000000    0.0000000000000000    0.2223939130524286   F   F   F   Mn
   0.6666666666666643    0.6666666666666643    0.1851661102565174   F   F   F   Mn
   0.3333333333333357    0.3333333333333357    0.1477197359346576   F   F   F   Mn
   0.0000000000000000    0.0000000000000000    0.1107898019509932   F   F   F   Mn
   0.6666666666666643    0.6666666666666643    0.0738598679673288   F   F   F   Mn
   0.3333333333333357    0.3333333333333357    0.0369299339836644   F   F   F   Mn
   0.0000000000000000    0.0000000000000000    0.0000000000000000   F   F   F   Mn
   0.6666666666666643    0.6666666666666643    0.9630700660163356   F   F   F   Mn
   0.3333333333333357    0.3333333333333357    0.9261401320326712   F   F   F   Mn
   0.0000000000000000    0.0000000000000000    0.8892101980490068   F   F   F   Mn
   0.6666666666666643    0.6666666666666643    0.8522802640653424   F   F   F   Mn
   0.3333333333333357    0.3333333333333357    0.8148338897434826   F   F   F   Mn
   0.0000000000000000    0.0000000000000000    0.7776060869475714   F   F   F   Mn
   0.5000000000000000    0.5000000000000000    0.2222900331820057   F   F   F   Ni
   0.5000000000000000    0.0000000000000000    0.2222900331820057   F   F   F   Ni
   0.0000000000000000    0.5000000000000000    0.2222900331820057   F   F   F   Ni
   0.1666666666666643    0.1666666666666643    0.1851776196441577   F   F   F   Ni
   0.1666666666666643    0.6666666666666643    0.1851776196441577   F   F   F   Ni
   0.6666666666666643    0.1666666666666643    0.1851776196441577   F   F   F   Ni
   0.8333333333333357    0.8333333333333357    0.1477197359346576   F   F   F   Ni
   0.8333333333333357    0.3333333333333357    0.1477197359346576   F   F   F   Ni
   0.3333333333333357    0.8333333333333357    0.1477197359346576   F   F   F   Ni
   0.5000000000000000    0.5000000000000000    0.1107898019509932   F   F   F   Ni
   0.5000000000000000    0.0000000000000000    0.1107898019509932   F   F   F   Ni
   0.0000000000000000    0.5000000000000000    0.1107898019509932   F   F   F   Ni
   0.1666666666666643    0.1666666666666643    0.0738598679673288   F   F   F   Ni
   0.1666666666666643    0.6666666666666643    0.0738598679673288   F   F   F   Ni
   0.6666666666666643    0.1666666666666643    0.0738598679673288   F   F   F   Ni
   0.8333333333333357    0.8333333333333357    0.0369299339836644   F   F   F   Ni
   0.8333333333333357    0.3333333333333357    0.0369299339836644   F   F   F   Ni
   0.3333333333333357    0.8333333333333357    0.0369299339836644   F   F   F   Ni
   0.5000000000000000    0.5000000000000000    0.0000000000000000   F   F   F   Ni
   0.5000000000000000    0.0000000000000000    0.0000000000000000   F   F   F   Ni
   0.0000000000000000    0.5000000000000000    0.0000000000000000   F   F   F   Ni
   0.1666666666666643    0.1666666666666643    0.9630700660163356   F   F   F   Ni
   0.1666666666666643    0.6666666666666643    0.9630700660163356   F   F   F   Ni
   0.6666666666666643    0.1666666666666643    0.9630700660163356   F   F   F   Ni
   0.8333333333333357    0.8333333333333357    0.9261401320326712   F   F   F   Ni
   0.8333333333333357    0.3333333333333357    0.9261401320326712   F   F   F   Ni
   0.3333333333333357    0.8333333333333357    0.9261401320326712   F   F   F   Ni
   0.5000000000000000    0.5000000000000000    0.8892101980490068   F   F   F   Ni
   0.5000000000000000    0.0000000000000000    0.8892101980490068   F   F   F   Ni
   0.0000000000000000    0.5000000000000000    0.8892101980490068   F   F   F   Ni
   0.1666666666666643    0.1666666666666643    0.8522802640653424   F   F   F   Ni
   0.1666666666666643    0.6666666666666643    0.8522802640653424   F   F   F   Ni
   0.6666666666666643    0.1666666666666643    0.8522802640653424   F   F   F   Ni
   0.8333333333333357    0.8333333333333357    0.8148223803558423   F   F   F   Ni
   0.8333333333333357    0.3333333333333357    0.8148223803558423   F   F   F   Ni
   0.3333333333333357    0.8333333333333357    0.8148223803558423   F   F   F   Ni
   0.5000000000000000    0.5000000000000000    0.7777099668179943   F   F   F   Ni
   0.5000000000000000    0.0000000000000000    0.7777099668179943   F   F   F   Ni
   0.0000000000000000    0.5000000000000000    0.7777099668179943   F   F   F   Ni
"""

with open(file="Centered-Vacuum-Layer.vasp", mode="w", encoding="utf8") as poscar_file:
    poscar_file.write(poscar_file_contents)
    poscar_file.write("\n")

structure = Structure.from_str(input_string=poscar_file_contents, fmt="poscar")
structure_centered = center_slab(slab=structure)
structure_centered.to_file(filename="Centered-Atomic-Layers.vasp", fmt="poscar")

Relevant files to reproduce this bug

Image Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions