2D lattice

Lattice geometry

We consider a 2D Bravais lattice that is specified by lattice constants $a$ and $b$, by the angle $\alpha$ between the lattice vectors $\mathbf{a}$ and $\mathbf{b}$, and by the angle $\xi$ between $\mathbf{a}$ and the $x$ axis of the instrument frame.

Structure constructors

The structure for an infinite 2D lattice is created from a particle and a lattice object:

lattice = ba.BasicLattice2D(length_a, length_b, alpha, xi)
structure = ba.Crystal2D(particle, lattice)

To account for finite-size effects, and to give the simulated Bragg peaks a finite width, attach a peak profile as described below.

The finite 2D lattice model is computed by explicit summation over contributions from all unit cells. The lattice is constructed by one of the following:

ba.BasicLattice2D(length_a, length_b, alpha, xi)
ba.SquareLattice2D(length, xi)
ba.HexagonalLattice2D(length, xi)

Then the finite structure is constructed from its unit-cell counts by

structure = ba.FiniteCrystal2D(particle, lattice, n_cells_a, n_cells_b)

The arguments $n_{\mathrm{cells},a}$ and $n_{\mathrm{cells},b}$ are the numbers of unit cells along lattice directions $\mathbf{a}$ and $\mathbf{b}$.

Decay function (peak profile)

The decay function accounts for the finite size of the sample, the crystalline domain, or the scattering volume. It contributes a multiplicative factor $h(\mathbf{r})$ to the correlation function in real space that lets it decay for $r$.

Equivalently, its Fourier transform $H(\mathbf{q})$ is convolved with the structure factor of the ideal, infinite lattice,

$$S_0(\mathbf{q}) = \rho \sum_i c_i \delta(\mathbf{q} - \mathbf{q}_i),$$

where the sum runs over reciprocal lattice points, resulting in

$$S(\mathbf{q}) = \rho \sum_i c_i H(\mathbf{q} - \mathbf{q}_i).$$

That is, each Bragg peak gets the same smooth profile $H(\mathbf{q})$ instead of the infinitely sharp delta function.

The available shapes and their Fourier pairs are described under correlation profiles. Crystal2D supports the Cauchy, Gaussian and pseudo-Voigt profiles as decay functions.

Decay lengths should be much larger than the lattice constants. Otherwise the model becomes physically questionable, and computation times increase a lot. Typical values for meaningful decay lengths are in the micrometer range (≥ 1000 nm).

Setting the decay function

The decay function is attached to a lattice structure by the setDecayFunction method:

lattice = ba.BasicLattice2D(20*nm, 20*nm, 120*deg, 0)
structure = ba.Crystal2D(particle, lattice)
profile = ba.Profile2DCauchy(1000*nm, 1000*nm, 0*deg)
structure.setDecayFunction(profile)

Particle density

The particle density is determined from the 2D lattice parameters. There is no separate particle-density setting for Crystal2D or FiniteCrystal2D.

Examples and extensions