-
Notifications
You must be signed in to change notification settings - Fork 924
Open
Labels
Description
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

DanielYang59