McXtrace logo

McXtrace - An X-ray ray-trace simulation package

Synchrotron SOLEIL Niels Bohr Institute DTU Physics


About McXtrace
 Project Partners
 Project People


 Wiki (GitHub)

Mailing list


Code-repository (GitHub)


McXtrace: Single_crystal

[ Identification | Description | Input parameters | Output 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".)

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 x-ray with the object
transparently, so that it can be used like a regular sample object.
It supports the 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 of 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,
delta_d_d=1e-4, mosaic = 5,
ax = 3.8186, ay = 0, az = 0,
bx = 0, by = 3.8843, bz = 0,
cx = 0, cy = 0, cz = 11.6777,

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 is undergoing validation.

Input parameters

Parameters in boldface are required; the others are optional.
reflectionsFile name containing structure factors of reflections. Use0
geometryName of an Object File Format (OFF) file for complex geometry.0
xwidthWidth of crystal [m]0
yheightHeight of crystal [m]0
zdepthDepth of crystal (no extinction simulated) [m]0
radiusOuter radius of sample in (x,z) plane [m]0
delta_d_dLattice spacing variance, gaussian RMS [1]1e-4
mosaicCrystal mosaic (isotropic), gaussian RMS. Puts the crystal in the-1
mosaic_aHorizontal (rotation around lattice vector a) mosaic (anisotropic), gaussian RMS.-1
mosaic_bVertical (rotation around lattice vector b) mosaic (anisotropic),-1
mosaic_cOut-of-plane (Rotation around lattice vector c) mosaic (anisotropic),-1
recip_cellChoice of direct/reciprocal (0/1) unit cell definition [1]0
barnsFlag to indicate if |F|^2 from 'reflections' is in barns or fm^2.0
ayCoordinates of first (direct/recip) unit cell vector [AA or AA^-1]0
byCoordinates of second (direct/recip) unit cell vector [AA or AA^-1]0
cyCoordinates of third (direct/recip) unit cell vector [AA or AA^-1]0
p_transmit1Monte Carlo probability for neutrons to be transmitted without any scattering.-1
sigma_absabsorption cross-section per unit cell at 2200 m/s [barns]0
sigma_incincoherent scattering cross-section per unit cell [barns]0
bbunit cell angles alpha, beta and gamma. Then uses norms of0
orderlimit multiple scattering up to given order0

Output parameters

Parameters in boldface are required; the others are optional.
hkl_infoInternal [structure]


  • Source code for Single_crystal.comp.
  • See ICSD powder diffraction data base
  • Cross sections for single elements:
  • Cross sections for compounds:
  • Fullprof powder refinement:
  • Crystallographica software:
  • Geomview and Object File Format (OFF)
  • Java version of Geomview (display only) jroff.jar
  • Powercrust/qhull

[ Identification | Description | Input parameters | Output parameters | Links ]

Generated on 2022-01-24 12:07:05

Last Modified: Monday, 24-Jan-2022 12:07:05 CET
Search website mailinglist archive GitHub repos