General powder sample (N lines, single scattering, incoherent scattering)
Author: P. Willendrup, L. Chapon, K. Lefmann, A.B.Abrahamsen, N.B.Christensen, E.M.Lauridsen.
Origin: McStas release
Date: 4.2.98
General powder sample with many scattering vectors possibility for intrinsic line broadening incoherent elastic background ratio is specified by user No multiple scattering. No secondary extinction.
Based on Powder1/Powder2/Single_crystal. Geometry is a powder filled cylinder, sphere, box or any shape from an OFF file. Incoherent scattering is only provided here to account for a background. The efficient is highly improved when restricting the vertical scattering range on the Debye-Scherrer cone (with ’d_phi’ and ’focus_flip’). The unit cell volume Vc may also be computed when giving the density, the atomic/molecular weight and the number of atoms per unit cell. A simple strain handling is available by mean of either a global Strain parameter, or a column with a strain value per Bragg reflection. The strain values are specified in ppm (1e-6). The Single_crystal component can also handle a powder mode, as well as an approximated texture.
Sample shape: Sample shape may be a cylinder, a sphere, a box or any other shape.
box/plate: xwidth x yheight x zdepth (thickness=0)
hollow box/plate:xwidth x yheight x zdepth and thickness>0
cylinder: radius x yheight (thickness=0)
hollow cylinder: radius x yheight and thickness>0
sphere: radius (yheight=0 thickness=0) hollow sphere: radius and thickness>0 (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 of the OFF file data, but its bounding box may be resized using xwidth,yheight and zdepth.
If you use this component and produce valuable scientific results, please cite authors with references bellow (in Links).
Example: PowderN(reflections = "c60.lau", d_phi = 15 , radius = 0.01, yheight = 0.05, Vc = 1076.89, sigma_abs = 0, delta_d_d=0, DW=1))
Powder definition file format Powder structure is specified with an ascii data file ’reflections’. The powder data are free-text column based files. The reflection list should be ordered by decreasing d-spacing values.
... d ... F2
Lines begining by ’#’ are read as comments (ignored) but they may contain the following keywords (in the header):
#Vc <value of unit cell volume Vc [Angs^3]> #sigma_abs <value of Absorption cross section [barns]> #sigma_inc <value of Incoherent cross section [barns]>
#Debye_Waller <value of Debye-Waller factor DW>
#delta_d_d/d <value of delta_d_d/d width for all lines>
These values are not read if entered as component parameters (Vc=...)
The signification of the columns in the numerical block may be set using the ’format’ parameter, by defining signification of the columns as a vector of indexes in the order format={j,d,F2,DW,delta_d_d/d,1/2d,q,F,Strain}
Signification of the symbols is given below. Indices start at 1. Indices with zero means that the column are not present, so that: Crystallographica={ 4,5,7,0,0,0,0,0,0 }
Fullprof ={ 4,0,8,0,0,5,0,0,0 }
Lazy ={17,6,0,0,0,0,0,13,0}
At last, the format may be overridden by direct definition of the column indexes in the file itself by using the following keywords in the header (e.g. ’#column_j 4’):
#column_j <index of the multiplicity ’j’ column> #column_d <index of the d-spacing ’d’ column [Angs]> #column_F2 <index of the squared str. factor ’|F|^2’ column [b]> #column_F <index of the structure factor norm ’|F|’ column> #column_DW <index of the Debye-Waller factor ’DW’ column> #column_Dd <index of the relative line width delta_d_d/d broadening ’Dd’ column>
#column_inv2d <index of the 1/2d=sin(theta)/lambda ’inv2d’ column>
#column_q <index of the scattering wavevector ’q’ column [Angs-1]>
#column_strain <index of the strain line shift Delta/d [ppm]>
Last, CIF, FullProf and ShelX files can be read, and converted to F2(hkl) lists if ’cif2hkl’ is installed. The CIF2HKL env variable can be used to point to a proper executable, else the McCode, then the system installed versions are used.
Concentricity
PowderN assumes ’concentric’ shape, i.e. can contain other components inside its optional inner hollow. Example, Sample in Al cryostat:
COMPONENT Cryo = PowderN(reflections="Al.laz", radius = 0.01, thickness = 0.001, concentric = 1, p_interact=0.1) AT (0,0,0) RELATIVE Somewhere
COMPONENT Sample = some_other_component(with geometry FULLY enclosed in the hollow) AT (0,0,0) RELATIVE Somewhere
COMPONENT Cryo2 = COPY(Cryo)(concentric = 0) AT (0,0,0) RELATIVE Somewhere
(The second instance of the cryostat component can also be written out completely using PowderN(...). In both cases, this second instance needs concentric = 0.) The concentric arrangment can not be used with OFF geometry specification.
This sample component can advantageously benefit from the SPLIT feature, e.g. SPLIT COMPONENT pow = PowderN(...)
Parameters in boldface are required; the others are optional.
|
Name |
Unit |
Description |
Default |
|
|
|||
|
reflections |
string |
Input file for reflections (LAZ LAU CIF, FullProf, ShelX, NCrystal). Use only incoherent scattering if NULL or "" |
"NULL" |
|
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. |
"NULL" |
|
format |
no quotes |
Name of the format, or list of column indexes (see Description). |
{0, 0, 0, 0, 0, 0, 0, 0, 0} |
|
radius |
m |
Outer radius of sample in (x,z) plane |
0 |
|
yheight |
m |
Height of sample y direction |
0 |
|
xwidth |
m |
Horiz. dimension of sample, as a width |
0 |
|
zdepth |
m |
Depth of box sample |
0 |
|
thickness |
m |
Thickness of hollow sample. Negative value extends the hollow volume outside of the box/cylinder. |
0 |
|
pack |
1 |
Packing factor. |
1 |
|
Vc |
Å\(^{3}\) |
Volume of unit cell=nb atoms per cell/density of atoms. |
0 |
|
sigma_abs |
barns |
Absorption cross section per unit cell at 2200 m/s. Use a negative value to inactivate it. |
0 |
|
sigma_inc |
barns |
Incoherent cross section per unit cell. Use a negative value to inactivate it. |
0 |
|
delta_d_d |
0/1 |
Global relative delta_d_d/d broadening when the ’w’ column is not available. Use 0 if ideal. |
0 |
|
p_inc |
1 |
Fraction of incoherently scattered neutron rays. |
0.1 |
|
p_transmit |
1 |
Fraction of transmitted (only attenuated) neutron rays. |
0.1 |
|
DW |
1 |
Global Debye-Waller factor when the ’DW’ column is not available. Use 1 if included in F2 |
0 |
|
nb_atoms |
1 |
Number of sub-unit per unit cell, that is ratio of sigma for chemical formula to sigma per unit cell |
1 |
|
d_omega |
deg |
Horizontal focus range (only for incoherent scattering), 0 for no focusing. |
0 |
|
d_phi |
deg |
Angle corresponding to the vertical angular range to focus to, e.g. detector height. 0 for no focusing. |
0 |
|
tth_sign |
1 |
Sign of the scattering angle. If 0, the sign is chosen randomly (left and right). ONLY functional in combination with d_phi and ONLY applies to bragg lines. |
0 |
|
p_interact |
1 |
Fraction of events interacting coherently with sample. |
0.8 |
|
concentric |
1 |
Indicate that this component has a hollow geometry and may contain other components. It should then be duplicated after the inside part (only for box, cylinder, sphere). |
0 |
|
density |
g/cm\(^{3}\) |
Density of material. rho=density/weight/1e24*N_A. |
0 |
|
weight |
g/mol |
Atomic/molecular weight of material. |
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). |
1 |
|
Strain |
ppm |
Global relative delta_d_d/d shift when the ’Strain’ column is not available. Use 0 if ideal. |
0 |
|
focus_flip |
1 |
Controls the sense of d_phi. If 0 d_phi is measured against the xz-plane. If !=0 d_phi is measured against zy-plane. |
0 |
|
|
|||
|
|
|||
|
|
|||
Component source code found in file PowderN.comp.
"Validation of a realistic powder sample using data from DMC at PSI" Willendrup P, Filges U, Keller L, Farhi E, Lefmann K, Physica B-Cond Matt 385 (2006) 1032.
See also: Powder1, Single_crystal
See ICSD Inorganic Crystal Structure Database
Cross sections for compounds
Fullprof powder refinement
Crystallographica software (free license)
Java version of Geomview (display only) jroff.jar
The powder diffraction component PowderN models a powder sample with background coming only from incoherent scattering and no multiple scattering. At the users choice, a given percentage of the incoming events may be transmitted (attenuated) to model the direct beam. The component can also assume concentric shape, i.e. be used for describing sample environment (cryostat, sample container etc.).
The description of the powder comes from a file in one of the standard output formats LAZY, FULLPROF, or CRYSTALLOGRAPHICA.
A usage example of this component can be found in the
Neutron site/Tutorial/templateDIFF instrument from the mcgui.
Data files of type lau and laz in the McStas distribution data directory are self-documented in their header. A list of common powder definition files is available in Table 1.2 (page 50). They do not need any additional parameters to be used, as in the example:
1 PowderN(<geometry parameters>, filename="Al.laz")
Other column-based file formats may also be imported e.g. with parameters such as:
1 format=Crystallographica 2 format=Fullprof 3 format={1,2,3,4,0,0,0,0}
In the latter case, the indices define order of columns parameters multiplicity, lattice spacing, \(F^2\), Debye-Waller factor and intrinsic line width.
The column signification may as well explicitely be set in the data file header using any of the lines:
1 #column_j <index of the multiplicity ’j’ column> 2 #column_d <index of the d-spacing ’d’ column> 3 #column_F2 <index of the squared str. factor ’|F|^2’ column [b]> 4 #column_F <index of the structure factor norm ’|F|’ column> 5 #column_DW <index of the Debye-Waller factor ’DW’ column> 6 #column_Dd <index of the relative line width Delta_d/d ’Dd’ column> 7 #column_inv2d <index of the 1/2d=sin(theta)/lambda ’inv2d’ column> 8 #column_q <index of the scattering wavevector ’q’ column>
Other component parameters may as well be specified in the data file header with lines e.g.:
1 #V_rho <value of atom number density [at/Angs^3]> 2 #Vc <value of unit cell volume Vc [Angs^3]> 3 #sigma_abs <value of Absorption cross section [barns]> 4 #sigma_inc <value of Incoherent cross section [barns]> 5 #Debye_Waller <value of Debye-Waller factor DW> 6 #Delta_d/d <value of Delta_d/d width for all lines> 7 #density <value of material density [g/cm^3]> 8 #weight <value of material molar weight [g/mol]> 9 #nb_atoms <value of number of atoms per unit cell>
Further details on file formats are available in the mcdoc page of the component.
The sample has the shape of a solid cylinder, radius \(r\) and height \(h\) or a box-shaped sample of size \(xwidth\) x \(yheight\) x \(zdepth\). At the users choice, an inner ’hollow’ can be specified using the parameter \(thickness\).
As the Isotropic_Sqw component 9.7, PowderN assumes concentric shape, i.e. can contain other components inside the inner hollow. To allow this, two almost identical copies of the PowderN components must be set up around the internal component(s), for example:
1COMPONENT Cryo = PowderN(reflections="Al.laz", radius = 0.01, thickness = 0.001, 2 concentric = 1) 3AT (0,0,0) RELATIVE Somewhere 4 5COMPONENT Sample = some_other_component(with geometry FULLY enclosed in the hollow) 6AT (0,0,0) RELATIVE Somewhere 7 8COMPONENT Cryo2 = COPY(Cryo)(concentric = 0) 9AT (0,0,0) RELATIVE Somewhere
As outlined, the first instance of PowderN must have concentric = 1 and the instance must have concentric = 0. Furthermore, the component(s) inside the hollow must have a geometry which can be fully contained inside the hollow.
In addition to the coherent scattering specified in the reflections file, absorption- and incoherent cross sections can be given using the input parameters \(\sigma _c^a\) and \(\sigma _i^s\).
The Bragg scattering from the powder, \(\sigma _c^s\) is calculated from the input file, with the parameters \(Q\), \(|F(Q)|^2\), and \(j\) for the scattering vector, structure factor, and multiplicity, respectively. The volume of the unit cell is denoted \(Vc\), while the sample packing factor is \(f_\textrm {pack}\).
Focusing is performed by only scattering into one angular interval, \(d\phi \) of the Debye-Scherrer circle. The center of this interval is located at the point where the Debye-Scherrer circle intersects the half-plane defined by the initial velocity, \(\textbf {v}_\textrm {i}\), and a user-specified vector, f.
An ideal powder sample consists of many small crystallites, although each crystallite is sufficiently large not to cause measurable size broadening. The orientation of the crystallites is evenly distributed, and there is thus always a large number of crystallites oriented to fulfill the Bragg condition \begin {equation} \label {Bragg} n \lambda = 2 d \sin \theta , \end {equation} where \(n\) is the order of the scattering (an integer), \(\lambda \) is the neutron wavelength, \(d\) is the lattice spacing of the sample, and \(2 \theta \) is the scattering angle, see figure 9.3. As all crystal orientations are realised in a powder sample, the neutrons are scattered within a Debye-Scherrer cone of opening angle \(4 \theta \) [Bac75].
| Figure 9.3.: | The scattering geometry of a powder sample showing part of the Debye-Scherrer cone (solid lines) and the Debye-Scherrer circle (grey). |
Equation (9.9) may be cast into the form \begin {equation} |\textbf {Q}| = 2 |\textbf {k}| \sin \theta , \end {equation} where Q is a vector of the reciprocal lattice, and k is the wave vector of the neutron. It is seen that only reciprocal vectors fulfilling \(|\textbf {Q}| < 2 |\textbf {k}|\) contribute to the scattering. For a complete treatment of the powder sample, one needs to take into account all these Q-values, since each of them contribute to the attenuation.
The strength of the Bragg reflections is given by their structure factors \begin {equation} \left | \sum _j b_j \exp (\textbf {R}_j \cdot \textbf {Q}) \right |^2 , \end {equation} where the sum runs over all atoms in one unit cell. This structure factor is non-zero only when \(Q\) equals a reciprocal lattice vector.
The textbook expression for the scattering cross section corresponding to one Debye-Scherrer cone reads [Squ78, ch.3.6], with \(V=N V_0\) being the total sample volume: \begin {equation} \sigma _\textrm {cone} = \frac {V}{V_0^2} \frac {\lambda ^3}{4 \sin \theta } \sum _Q |F(Q)|^2 . \end {equation} For our purpose, this expression should be changed slightly. Firstly, the sum over structure factors for a particular \(Q\) is replaced by the sum over essentially different reflections multiplied by their multiplicity, \(j\). Then, a finite packing factor, \(f\), is defined for the powder, and finally, the Debye-Waller factor is multiplied on the elastic cross section to take lattice vibrations into account (no inelastic background is simulated, however). We then reach
in the thin sample approximation. For samples of finite thickness, the beam is being attenuated by the attenuation coefficient \begin {equation} \label {e:attenu} \mu _\textrm {Q} = \sigma _\textrm {cone,Q} / V . \end {equation} For calibration it may be useful to consider the total intensity scattered into a detector of effective height \(h\), covering only one reflection [Squ78, ch.3.6]. A cut though the Debye-Scherrer cone perpendicular to its axis is a circle. At the distance \(r\) from the sample, the radius of this circle is \(r \sin (2\theta )\). Thus, the detector (in a small angle approximation) counts a fraction \(h / (2 \pi r \sin (2 \theta ))\) of the scattered neutrons, giving a resulting count intensity: \begin {equation} I = \Psi \sigma _\textrm {cone,Q} \frac {h}{2 \pi r \sin (2\theta )} , \end {equation} where \(\Psi \) is the flux at the sample position.
For clarity we repeat the meaning and unit of the symbols:
1\begin{tabular}{ccl} 2$\Psi$ & s$^{-1}$m$^{-2}$ & Incoming intensity of neutrons \\ 3$I$ & s$^{-1}$ & Detected intensity of neutrons \\ 4$h$ & m & Height of detector \\ 5$r$ & m & Distance from sample to detector \\ 6$f$ & 1 & Packing factor of the powder \\ 7$j$ & 1 & Multiplicity of the reflection \\ 8$V_0$ & m$^{3}$ & Volume of unit cell\\ 9$|F(\textbf{Q})|^2$ & m$^2$ & Structure factor \\ 10$\exp(-2W)$ & 1 & Debye-Waller factor \\ 11$\mu_\textrm{Q}$ & m$^{-1}$ & Linear attenuation factor due to scattering from 12one powder line. \\ 13\end{tabular}
A powder sample will in general have several allowed reflections \(\textbf {Q}_j\), which will all contribute to the attenuation. These reflections will have different values of \(|F(\textbf {Q}_j)|^2\) (and hence of \(Q_j\)), \(j_j\), \(\exp (-2W_j)\), and \(\theta _j\). The total attenuation through the sample due to scattering is given by \(\mu ^s = \mu _\textrm {inc}^s + \sum _j \mu ^s_j \), where \(\mu _\textrm {inc}^s\) represents the incoherent scattering.
The algorithm of PowderN can be summarized as
Check if the neutron ray intersects the sample (otherwise ignore the following).
Calculate the attenuation coefficients for scattering and absorption.
Perform Monte Carlo choices to determine the scattering position, scattering type (coherent/incoherent), and the outgoing direction.
Perform the necessary weight factor transformation.