In BornAgain, grazing-incidence small-angle scattering (GISAS) is computed using the distorted-wave Born approximation (DWBA).
As an introductory example, we consider a dilute random assembly of monodisperse cylindrical disks on a substrate.
|
|
The Define materials stance defines three materials in terms
of their refractive index.
The arguments of the constructor-like global function
HomogeneousMaterial
are name
, delta
($\delta$), beta
($\beta$).
The refractive index is set to $n=1-\delta+i\beta$.
The Define layers stance defines two semi-infinite layers, with materials vacuum and substrate.
The Define particles stance selects cylinderical particles.
The constructor FormFactorCylinder
takes the arguments radius
and height
.
Both are specified as 5 nanometers.
The multiplier nm
happens to be 1 because the internal length unit in BornAgain
(except for macroscopic detector parameters) is one nanometer.
In principle, *nm
could be omitted from the code,
but we recommend to leave it in the code for the benefit of human readers.
The Define particle layout describes the inter-particle structure. The class ParticleLayout ensures incoherent averaging over different particle decorations. Here we add just one type of particles.
As we specify no interference function, the particle are assumed to be disordered. Excluded volume effects are not accounted for. Otherwise said, the particles are assumed to be dilute.
The function setTotalParticleSurfaceDensity
specifies the number of
particles per square nanometer.
The Define sample stance constructs a sample by pilig up the above defined layers from top (vacuum) to bottom (substrate). Samples are always of type MultiLayer.
The function get_simulation constructs a GISASSimulation.
The incoming beam is specified using the Beam constructor, which takes the arguments intensity (on an arbitrary scale), wavelength (in nanometer), and direction. The Direction constructor takes angle arguments in radian. Here we specify a glancing angle $\alpha_i = 0.2 ^{\circ}$, and a horizontal deviation $\varphi_i = 0$.
The SphericalDetector provides a two-dimensional histogram for representing the spatial distribution of the scattering intensity. The two coordinate axes are glancing angle $\alpha$ and horizontal declination $\varphi$. The constructor takes the arguments number-of-bins, lower-limit-angle, upper-limit-angle in $\alpha$ and $\varphi$. For details and alternatives, see the detector section.
The Main program has been explained in the Syntax page. For alternative ways of running simulations and plotting or exporting results, see section Plot and export.