In the following introductory example, we take a standard sample model from module bornagain.std_samples, a dilute random assembly of monodisperse cylindrical disks on a substrate.
|
|
The simulation of type ScatteringSimulation is defined by beam, sample, and detector.
The incoming beam is defined by the constructor Beam
with arguments intensity,
wavelength, and glancing angle.
To define the wavelength, we use the unit multiplier nm
.
As it happens, the internal unit for microscopic lengths in BornAgain is one nanometer;
therefore the constant nm
is just 1
, and *nm
could be omitted from the code,
but we recommend to leave it for the benefit of human readers.
The spherical detector has nPix=200 bins for both coordinate axis. The azimuthal angle $\varphi_\text{f}$ extends from $-2^\circ$ to $+2^\circ$; the glancing angle $\alpha_\text{f}$ from $0^\circ$ to $3^\circ$.
The last stance in the script is the main program.
The function parse_args
digests command-line arguments; in particular,
a command-line argument like sim_n=100
can be used to overwrite the
default pixel size (which is retrieved by bp.simargs['n']
in function
get_simulation
.
The function call simulation.simulate()
runs the simulation and returns
a Datafield object.