PositionsΒΆ

Type:section
Appearance:multiple

This section defines positions in the lattice where the structure is replicated. For example, with the definition

Positions {
  DomainId=2
  Range1=[-1 3]
  Range2=[0 1]
}

the structure is replicated at positions displaced by \pvec{d}_{l_1, l_2}=\pvec{a}_1\cdot l_1 + \pvec{a}_2 \cdot l_2 with -1\leq l_1 \leq 3 and 0 \leq l_2 \leq 1, setting DomainId=2. It is possible to use multiple Position sections with different domain identifiers.

Alternatively, one can provide a matrix DomainIds whose form visually resembles the structure to be created:

Positions {
     RangeStart = [0 0]
     DomainIds = [0 0 0 0 2 0 2 0 0 0 0;
                  0 0 0 2 2 0 2 2 0 0 0;
                  0 0 2 2 2 0 2 2 2 0 0;
                  0 2 2 2 2 0 2 2 2 2 0;
                  2 2 2 2 2 0 2 2 2 2 2]
}

Here 0 stands for an omitted structure. The DomainId entries id_{i,j} in the DomainIds (row index i\leq n_{\mathrm{row}}, column indices, j<=n_{\mathrm{col}}), are related to the cell offset indices l_1, l_2 by

\begin{eqnarray*}
l_1 & = & r_1+j \\
l_2 & = & r_2+n_{\mathrm{row}}-j,
\end{eqnarray*}

where r_1 and r_2 are the entries of the RangeStart vector. Hence, the lower left entry in the matrix refers to the RangeStart index.

For an hexagonal lattice, i.e. LatticeAngle=60, the definition

Positions {
  Range1 = [0 5]
  Range2 = [0 5]
}

results in the following structure:

_images/hexagonal.png

With the parameter IndexVectorY the lattice position l_1 is shifted each second row by the value i_{\mathrm{s}}, that is

\begin{eqnarray*}
l_1 & \rightarrow & l_1+\lfloor l_2/2\rfloor\cdot i_{\mathrm{s}},\; \mbox{for}\; l_1\geq 0 \\
l_1 & \rightarrow & l_1+\lfloor (l_2-1)/2\rfloor\cdot i_{\mathrm{s}}\; \mbox{for}\; l_1 < 0 \\
\end{eqnarray*}

Setting ``IndexVectorY``= -1 yields:

_images/hexagonal_block.png