McStas logo McStas - A neutron ray-trace simulation package ILL; PSI; ESS Niels Bohr Institute DTU Physics NEXMAP


About McStas
 Conditions of use
 Project funding

 Other Downloads (share)

Mailing list

Search web/mailinglist

 Wiki (GitHub)
 McStas manual


Report bugs (GitHub)

Code-repository (GitHub)

McStas: Single_crystal

[ Identification | Description | Input parameters | Links ]

The Single_crystal Component

Mosaic single crystal with multiple scattering vectors, optimised for speed with large crystals and many reflections.


  • Site:
  • Author: Kristian Nielsen
  • Origin: Risoe
  • Date: December 1999


Single crystal with mosaic. Delta-D/D option for finite-size effects.
Rectangular geometry. Multiple scattering and secondary extinction included.
The mosaic may EITHER be specified isotropic by setting the mosaic input
parameter, OR anisotropic by setting the mosaic_a, mosaic_b, and mosaic_c
The crystal lattice can be bent locally, keeping the external geometry unchanged.
Curvature is spherical along vertical and horizontal axes.

Speed/stat optimisation using SPLIT
In order to dramatically improve the simulation efficiency, we recommend to
use a SPLIT keyword on this component (or prior to it), as well as to disable
the multiple scattering handling by setting order=1. This is especially powerful
for large reflection lists such as with macromolecular proteins. When an incoming
particle is identical to the preceeding, reciprocal space initialisation is
skipped, and a Monte Carlo choice is done on available reflections from the last
repciprocal space calculation! To assist the user in choosing a "relevant" value
of the SPLIT, a rolling average of the number of available reflections is
calculated and presented in the component output.

Mosacitiy modes:
The component features three independent ways of parametrising mosaicity:
a) The original algorithm where mosaicity is implemented by extending each
reflection by a Gaussian "cigar" in reciprocal space, characterised by
the parameters mosaic and delta_d_d.
(Also known as "isotropic mosaicity".)
b) A similar mode where mosaicities can be non-isotropic and given as the
parameters mosaic_a, mosaic_b and mosaic_c, around the unit cell axes.
(Also known as "anisotropic mosaicity".)
c) Given two "macroscopically"/experimentally measured width/mosaicities
of two independent reflections, parametrised by the list
mosaic_AB = {mos_a, mos_b, a_h, a_k, a_l, b_h, b_k, b_l}, a set of
microscopic mosaicities as in b) are estimated (internally) and applied.
(Also known as "phenomenological mosaicity".)

Powder- and PG-mode
When these two modes are used (powder=1 or PG=1), a randomised transformation
of the particle direction is made before and after scattering, thereby letting
the single crystal behave as a crystallite of either a powder (crystallite
orientation fully randomised) or pyrolytic graphite (crystallite randomised around
the c-axis).

Curved crystal mode
The component features a method to curve the lattice planes slightly with respect
to the outer geometry of the crystal. The method is implemented as a transformation
on the particle direction vector, and should be used only in cases where
a) The reflection lattice vector is ~ orthogonal to the crystal surface
b) The modelled curvarture is "small" with respect to the crystal surface

Sample shape:
Sample shape may be a cylinder, a sphere, a box or any other shape
box/plate:       xwidth x yheight x zdepth
cylinder:        radius x yheight
sphere:          radius (yheight=0)
any shape:       geometry=OFF file

The complex geometry option handles any closed non-convex polyhedra.
It computes the intersection points of the neutron ray with the object
transparently, so that it can be used like a regular sample object.
It supports the PLY, OFF and NOFF file format but not COFF (colored faces).
Such files may be generated from XYZ data using:
qhull < Qx Qv Tv o >
and viewed with geomview or java -jar jroff.jar (see below).
The default size of the object depends on the OFF file data, but its
bounding box may be resized using xwidth,yheight and zdepth.

Crystal definition file format
Crystal structure is specified with an ascii data file. Each line contains
4 or more numbers, separated by white spaces:

h k l ... F2

The first three numbers are the (h,k,l) indices of the reciprocal lattice
point, and the 7-th number is the value of the structure factor |F|**2, in
barns. The rest of the numbers are not used; the file is in the format
output by the Crystallographica program.
The reflection list should be ordered by decreasing d-spacing values.
Lines begining by '#' are read as comments (ignored). Most sample parameters
may be defined from the data file header, following the same mechanism as

Current data file header keywords include, for data format specification:
and for material specification:

See the Component Manual for more defails.

Example: Single_crystal(xwidth=0.01, yheight=0.01, zdepth=0.01, mosaic = 5, reflections="YBaCuO.lau")

A PG graphite crystal plate, cut for (002) reflections
Single_crystal(xwidth = 0.002, yheight = 0.1, zdepth = 0.1,
mosaic = 30, reflections = "C_graphite.lau",
ax=0,      ay=2.14,   az=-1.24,
bx = 0,    by = 0,    bz =  2.47,
cx = 6.71, cy = 0,    cz =  0)

A leucine protein, without multiple scattering
Single_crystal(xwidth=0.005, yheight=0.005, zdepth=0.005,
mosaic = 5, reflections="leucine.lau", order=1)

A Vanadium incoherent elastic scattering with multiple scattering
Single_crystal(xwidth=0.01, yheight=0.01, zdepth=0.01,
reflections="", sigma_abs=5.08, sigma_inc=4.935,
ax=3.0282, by=3.0282, cz=3.0282/2)

Also, always use a non-zero value of delta_d_d.

This component has been validated.

Input parameters

Parameters in boldface are required; the others are optional.
reflectionsstringFile name containing structure factors of reflections. Use empty ("") or NULL for incoherent scattering only0
geometrystrName of an Object File Format (OFF) or PLY file for complex geometry. The OFF/PLY file may be generated from XYZ coordinates using qhull/powercrust0
xwidthmWidth of crystal0
yheightmHeight of crystal0
zdepthmDepth of crystal (no extinction simulated)0
radiusmOuter radius of sample in (x,z) plane0
delta_d_d1Lattice spacing variance, gaussian RMS1e-4
mosaicarc minutesCrystal mosaic (isotropic), gaussian RMS. Puts the crystal in the isotropic mosaic model state, thus disregarding other mosaicity parameters.-1
mosaic_aarc minutesHorizontal (rotation around lattice vector a) mosaic (anisotropic), gaussian RMS. Put the crystal in the anisotropic crystal vector state. I.e. model mosaicity through rotation around the crystal lattice vectors. Has precedence over in-plane mosaic model.-1
mosaic_barc minutesVertical (rotation around lattice vector b) mosaic (anisotropic), gaussian RMS.-1
mosaic_carc minutesOut-of-plane (Rotation around lattice vector c) mosaic (anisotropic), gaussian RMS-1
recip_cell1Choice of direct/reciprocal (0/1) unit cell definition0
barns1Flag to indicate if |F|^2 from 'reflections' is in barns or fm^2. barns=1 for laz and isotropic constant elastic scattering (reflections=NULL), barns=0 for lau type files0
axAA or AA^-1Coordinates of first (direct/recip) unit cell vector0
aya on y axis0
aza on z axis0
bxAA or AA^-1Coordinates of second (direct/recip) unit cell vector0
byb on y axis0
bzb on z axis0
cxAA or AA^-1Coordinates of third (direct/recip) unit cell vector0
cyc on y axis0
czc on z axis0
p_transmit1Monte Carlo probability for neutrons to be transmitted without any scattering. Used to improve statistics from weak reflections0.001
sigma_absbarnsAbsorption cross-section per unit cell at 2200 m/s0
sigma_incbarnsIncoherent scattering cross-section per unit cell Use -1 to unactivate0
aadegUnit cell angles alpha, beta and gamma. Then uses norms of vectors a,b and c as lattice parameters0
bbdegBeta angle0
ccdegGamma angle0
order1Limit multiple scattering up to given order (0: all, 1: first, 2: second, ...)0
RXmRadius of horizontal along X lattice curvature. flat for 00
RYmRadius of vertical along Y lattice curvature. flat for 00
powder1Flag to indicate powder mode, for simulation of Debye-Scherrer cones via random crystallite orientation. A powder texture can be approximated with 00
PG1Flag to indicate "Pyrolytic Graphite" mode, only meaningful with choice of Graphite.lau, models PG crystal. A powder texture can be approximated with 00
deltakAA-1Equality-threshold for use in SPLIT settings. If difference between all ki_{x,y,z} are less than deltak from previous particle, the two are considered alike enough to jump directly to the MC choice between 'active' reflections1e-6


[ Identification | Description | Input parameters | Links ]

Generated on 2024-01-03 11:47:43

Last Modified: Tuesday, 16-Apr-2024 20:05:22 CEST
Search website mailinglist archive GitHub repos