There is a bug in SIAB/data/structures.py within the square function. The first two atomic positions don't include the shift while the last two do, which could lead to incorrect structure generation.
This issue was discussed by @kirk0830 in PR #107: https://github.com/kirk0830/ABACUS-ORBGEN/pull/107#discussion_r1833754588