If you take a close look at Eq. (17) in Ref. [142], you may notice that
the relabelling requires the two mapping rules, i.e.,
and
,
where
and
are the lattice vectors of the supercell and the reference cells,
respectively, and
and
are a symbolic atomic orbital index, respectively.
We have already given the keyword 'Unfolding.Map' which actually gives the mapping rule
in relabelling
.
In this subsection, we explain how the relabelling
is taken into account.
The relabelling
depends on how the reference unit cell is placed relative
to the atomic coordinates in real space, which is equivalent to the choice of the origin
of the reference unit cell.
The choice of the origin can be insensitive to the unfolded weights,
because the mapping rule in relabelling
does not change in most cases.
However, the mapping rule may vary depending on the choice of the origin
in subtle cases such as surfaces and largely distorted structures.
As default, OpenMX will try to estimate an origin using the following two rules.
The first rule is that no more than one atom labeled by the same identification number
in the keyword 'Unfolding.Map' can be assigned in each reference cell.
The multiple assignment of atoms labeled by the same identification number to
a reference cell may happen in a largely distorted structure.
OpenMX will automatically try to avoid such a situation.
The second rule is that the origin of the reference cell is determined by minimizing
the total number of the reference lattices that the number of atoms allocated
by the rellabelling is non-zero. Since a system with surfaces represented by the supercell
approach has vacuum region between the slabs, the total number of the reference lattices
having non-zero allocated atoms may vary depending on the choice of origin.
OpenMX will automatically try to minimize the total number of the reference lattices
having non-zero allocated atoms.
Applying the two rules may satisfy requirement for most of users,
however, you may want to control the origin by yourself. For this purpose,
the following keyword is available:
<Unfolding.ReferenceOrigin 0.1 0.2 0.3 Unfolding.ReferenceOrigin>where the unit is defined by the keyword 'Atoms.UnitVectors.Unit'.