McXtrace logo

McXtrace - An X-ray ray-trace simulation package

ESRF; SAXSLAB Niels Bohr Institute DTU Physics


 Linux Installation (deb/rpm)
 Mac OSX Installation
 Unix Install (src code)
 Windows Installation

Project Status
 Project Partners
 Project People

Mailing list



Minutes of Meetings

McXtrace Art

About McXtrace



McXtrace: Single_crystal Component

[ 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.


  • Author: Kristian Nielsen
  • Origin: Risoe
  • Date: December 1999
  • Version: $Revision$
  • Modification history:
    • EF, 22nd Apr 2003 : now uses Read_Table library
    • EBK 2010: adapted for x-rays:
    • M. Schulz, March 2012 : allow to curve the crystal planes
    • EF, PW, May 2014: code efficiency improvement when SPLIT is used
    • EF, PW, 2015: powder/PG and texture mode
    • PW, May 2017: Remove statement about being under validation
    • PW, June 2017: Doc updates


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.
Name Unit Description Default
mosaic_AB arc_minutes, arc_minutes,1, 1, 1, 1, 1, 1 In Plane mosaic rotation and plane vectors (anisotropic), mosaic_A, mosaic_B, A_h,A_k,A_l, B_h,B_k,B_l. Puts the crystal in the in-plane mosaic state. Vectors A and B define plane in which the crystal roation is defined, and mosaic_A, mosaic_B, denotes the resp. mosaicities (gaussian RMS) with respect to the the two reflections chosen by A and B (Miller indices). {0
reflections string File name containing structure factors of reflections. Use empty ("") or NULL for incoherent scattering only 0
geometry str Name of an Object File Format (OFF) file for complex geometry. The OFF file may be generated from XYZ coordinates using qhull/powercrust 0
material 0
xwidth m Width of crystal 0
yheight m Height of crystal 0
zdepth m Depth of crystal (no extinction simulated) 0
radius m Outer radius of sample in (x,z) plane 0
delta_d_d 1 Lattice spacing variance, gaussian RMS 1e-4
mosaic arc minutes Crystal mosaic (isotropic), gaussian RMS. Puts the crystal in the isotropic mosaic model state, thus disregarding other mosaicity parameters. -1
mosaic_a arc minutes Horizontal (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_b arc minutes Vertical (rotation around lattice vector b) mosaic (anisotropic), gaussian RMS. -1
mosaic_c arc minutes Out-of-plane (Rotation around lattice vector c) mosaic (anisotropic), gaussian RMS -1
recip_cell 1 Choice of direct/reciprocal (0/1) unit cell definition 0
barns 1 Flag to indicate if |F|^2 from 'reflections' is in barns or fm^2. barns=1 for laz, barns=0 for lau type files 0
ax - 0
ay AA or AA^-1 Coordinates of first (direct/recip) unit cell vector 0
az - 0
bx - 0
by AA or AA^-1 Coordinates of second (direct/recip) unit cell vector 0
bz - 0
cx - 0
cy AA or AA^-1 Coordinates of third (direct/recip) unit cell vector 0
cz - 0
p_transmit 1 Monte Carlo probability for neutrons to be transmitted without any scattering. Used to improve statistics of the scattering pattern wrt. the attenuated, direct beam. It is typically beneficial to leave this parameter at a value << 1. Use the value -1 to deactivate any stratified sampling and partition probabilities fully in accordance with the material cross-sections. -1
sigma_abs barns absorption cross-section per unit cell at 2200 m/s 0
sigma_inc barns incoherent scattering cross-section per unit cell 0
aa deg . 0
bb deg unit cell angles alpha, beta and gamma. Then uses norms of vectors a,b and c as lattice parameters 0
cc deg . 0
order 1 limit multiple scattering up to given order (0: all, 1: first, 2: second, ...) 0

Output parameters

Name Unit Description Default
hkl_info structure Internal  


  • 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 automatically by McDoc, Peter Willendrup <> / Tue Apr 28 09:59:35 2020

Last Modified: Tuesday, 28-Apr-2020 11:59:35 CEST
Search website mailinglist archive SVN repos McCode Trac