Mosaic single crystal with multiple scattering vectors, optimised for speed
with large crystals and many reflections.
Identification
Author: Kristian Nielsen
Origin: Risoe
Date: December 1999
Version:(Unknown)
Modification history:
EF, 22nd Apr 2003 : now uses Read_Table library
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
T. Weber, October 2017: new focus code
Description
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
parameters.
The p_transmit parameter may be used to steer the available statistics towards
the desired branch. The default value indicates that 10% of the available rays
will be used to describe the transmitted beam. Setting p_transmit=-1 causes the
component to use the physical scattering probabilities also for sampling. Note
that this may be highly inefficient for weakly scattering samples.
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 < coordinates.xyz Qx Qv Tv o > geomview.off
or
powercrust coordinates.xyz
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
PowderN.
Current data file header keywords include, for data format specification:
#column_h
#column_k
#column_l
#column_F2
#column_F
and for material specification:
#sigma_abs
#sigma_inc
#Delta_d/d
#lattice_a
#lattice_b
#lattice_c
#lattice_aa
#lattice_bb
#lattice_cc
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.
%VALIDATION:
This component has been validated.
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).
Mosaic_AB_Undefined
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) or PLY file for complex geometry. The OFF/PLY file may be generated from XYZ coordinates using qhull/powercrust
0
xwidth
m
Width of crystal
0
yheight
m
Height of crystal
0
zdepth
no extinction simulated
[m] Depth of crystal
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 and isotropic constant elastic scattering (reflections=NULL), barns=0 for lau type files
0
ax
AA or AA^-1
Coordinates of first (direct/recip) unit cell vector
0
ay
0
az
0
bx
AA or AA^-1
Coordinates of second (direct/recip) unit cell vector
0
by
0
bz
0
cx
AA or AA^-1
Coordinates of third (direct/recip) unit cell vector
0
cy
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.
0.001
sigma_abs
barns
Absorption cross-section per unit cell at 2200 m/s
0
sigma_inc
barns
Incoherent scattering cross-section per unit cell Use -1 to unactivate
0
aa
deg
Unit cell angles alpha, beta and gamma. Then uses norms of vectors a,b and c as lattice parameters
0
bb
deg
Beta angle
0
cc
deg
Gamma angle
0
order
0: all, 1: first, 2: second, ...
[1] Limit multiple scattering up to given order
0
RX
m
Radius of horizontal along X lattice curvature. flat for 0
0
RY
m
Radius of vertical along Y lattice curvature. flat for 0
0
powder
1
Flag to indicate powder mode, for simulation of Debye-Scherrer cones via random crystallite orientation. A powder texture can be approximated with 0
0
PG
1
Flag to indicate "Pyrolytic Graphite" mode, only meaningful with choice of Graphite.lau, models PG crystal. A powder texture can be approximated with 0
0
deltak
AA-1
Equality-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' reflections