In this example we simulate the scattering from a grating with cumulative
spacing disorder. This is done by using Paracrystal1D together with very
long boxes.
Paracrystal1D describes a chain of particles along one in-plane direction,
with distances between neighbors drawn from a probability distribution.
Position uncertainties accumulate with the distance along the chain, as in
the ideal one-dimensional paracrystal model. The structure factor depends on
the projection of the scattering vector onto the chain direction.
|
|
The structure is created with
structure = ba.Paracrystal1D(particle, length, xi, linear_density,
damping_length)
Arguments:
particle # particle or Mixture placed at lattice sites
length # mean nearest-neighbor distance, in nanometers
xi # rotation of the lattice with respect to x-axis, in radians
linear_density # number of lattice lines per nanometer in the transverse axis
damping_length # damping/coherence length, in nanometers
The parameter damping_length introduces finite size effects by applying a
multiplicative coefficient equal to
$exp \left(-\frac{length}{damping\_length}\right)$ to the Fourier transform
of the probability density of a nearest neighbor. A value of 0 means no
damping-length correction.
The distribution of nearest-neighbor distances must be assigned with
setProbabilityDistribution(pdf) before the structure can be used in a
simulation:
structure = ba.Paracrystal1D(particle, 30*nm, 0, 1/box_length, 1000*nm)
structure.setProbabilityDistribution(ba.Profile1DGauss(4*nm))
The available distributions are listed in the
radial paracrystal reference. A
zero-width profile represents the ordered limit: together with a finite
damping_length, the structure factor then equals that of a Crystal1D
with decay function ba.Profile1DCauchy(damping_length).
The scattering from a finite portion of the chain can be calculated using
the setDomainSize(nm) method. The resulting behaviour is similar to the
case when damping_length is used.
Independent (non-cumulative) positional disorder can be added with
setLateralPositionVariance(value), where value is given in nm$^2$. It is
applied through a Debye-Waller factor, as in Crystal1D.