Skip to content

EMLaueSlit

Marc DeGraef edited this page Mar 6, 2020 · 1 revision

Laue Pattern Simulation for a Rectangular Beam

The EMLaueSlit program can be used to compute individual transmission Laue patterns as well as their back-projections for a given detector geometry and an arbitrary crystal structure. The incident beam in this case arises from a divergent x-ray source and passes through a rectangular slit of arbitrary dimensions. The x-ray photons travel through a sample with finite thickness and are projected onto a planar detector normal to the incident beam direction. The complete algorithm is described in the following paper:

"A laboratory transmission diffraction Laue setup to evaluate single crystal quality",
A. Arnaud, W. Guediche, C. Remacha, E. Romero, and H. Proudhon, submitted to J. Appl.
Crystal. (2020) 

Using the standard command line approach, the template file can be obtained; this file contains the following parameters:

 &LaueSlitData
! The values below are the default values for this program
!
 Lw               = 2.D0,   ! slit width (mm)
 Lh               = 2.D0,   ! slit height (mm)
 Lx               = 100.D0, ! distance front face of slit to divergent x-ray source (mm)
 Ly               = 0.D0,   ! slit center y position (mm)
 Lz               = 0.D0,   ! slit center z position (mm)
 VoltageH         = 60.D0,  ! highest tube voltage     
 VoltageL         = 40.D0,  ! lowest tube voltage     
 Sx               = 120.D0, ! distance from source to samplefront (mm)
 sampletodetector = 120.D0, ! distance sample front to detector face (mm)
 samplethickness  = 2.D0,   ! sample thickness (mm)
 ps               = 0.254D0,! pixel width (mm)
 Ny               = 960,    ! number of pixels horizontally
 Nz               = 780,    ! number of pixels vertically
 Dy               = 0.D0,   ! pattern center y coordinate 
 Dz               = 0.D0,   ! pattern center z coordinate 
 vs               = 0.10D0, ! size of the voxels that make up the sample (mm)
 absl             = 0.5D0,  ! absorption length (mm)
 beamstopatf      = 0.1D0,  ! beam stop attenuation factor
 nthreads         = 1,      ! number of parallel threads for pattern computation
 BPx              = 300,    ! semi-edge length for back projection square Lambert maps
 spotw            = 0.1,    ! spot size weight factor (1/(2*sigma^2))
 gammavalue       = 1.0,    ! scaling factor for gamma intensity scaling
 backprojection   = 'No',   ! 'Yes' or 'No'; adds backprojections to output file
 intcutoffratio   = 1.0D-4  ! intensity ratio cutoff (transmitted beam has intensity 1)
 orientationfile  = 'undefined', ! input file with orientation list 
 tiffprefix       = 'undefined', ! prefix for tiff output files with individual patterns
 xtalname         = 'undefined', ! structure file name
 hdfname          = 'undefined', ! HDF output file name
 binarize         = .FALSE.,  ! set to .TRUE. to get a binary output pattern (and backprojection)
 /

The incident x-ray beam travels along the positive x-direction, the z-direction points up, and x-y-z forms a right-handed cartesian reference frame. The slit, sample and detector are all normal to the x-direction. The pattern center coordinates can be used to shift the Laue pattern on the detector for the case where the detector center does not lie on the optical axis. The absorption length and beam stop attenuation factor can be used to account for (Beer's Law) absorption in the sample and to suppress the incoming beam signal. For a back projection parameter value of 'Yes', the program will compute back-projections for all patterns; those have been rotated by 90° around the y-direction to facilitate spherical indexing of the patterns.

The orientation file can be generated manually or using the EMsampleRFZ program and has a simple structure shown here:

eu
100
0.0 0.0 0.0
30.0 40.0 50.0
... (98 more Euler triplets)

The program output ends up in an HDF5 file; optionally, each pattern will be written (with inverted contrast) to an individual .tiff file. The final option, binarize, can be used to convert all the patterns to a binary intensity scale. The size of the Laue spots can be controlled with the spotw parameter; the larger this parameter, the smaller the spots. The binary mode can be useful for testing of the spherical Laue indexing program.

For a hypothetical "triclinic Nickel" structure with lattice parameters {0.3, 0.4, 0.5, 60°, 70°, 80°} and a single Ni atom in the origin, we can compute Laue patterns using the following name list entries:

 Lw               = 0.5D0,   ! slit width (mm)
 Lh               = 2.0D0,   ! slit height (mm)
 Lx               = 80.D0, ! distance front face of slit to divergent x-ray source (mm)
 Ly               = 0.D0,   ! slit center y position (mm)
 Lz               = 0.D0,   ! slit center z position (mm)
 VoltageH         = 120.D0,  ! highest tube voltage
 VoltageL         = 10.D0,  ! lowest tube voltage
 Sx               = 100.D0, ! distance from source to samplefront (mm)
 sampletodetector = 100.D0,   ! 120.D0, ! distance sample front to detector face (mm)
 samplethickness  = 0.5D0,   ! sample thickness (mm)
 ps               = 0.127D0,! pixel width (mm)
 Ny               = 1024,    ! number of pixels horizontally
 Nz               = 1024,    ! number of pixels vertically
 Dy               = 0.D0,   ! pattern center y coordinate
 Dz               = 0.D0,   ! pattern center z coordinate
 vs               = 0.10D0, ! size of the voxels that make up the sample (mm)
 absl             = 0.5D0,  ! absorption length (mm)
 beamstopatf      = 0.1D0,   ! in mm, assumed to be centered on source-to-detector normal line
 nthreads         = 12,      ! number of parallel threads for pattern computation
 BPx              = 300,    ! semi-edge length for back projection square Lambert maps
 spotw            = 2.0,    ! spot size weight factor (1/(2*sigma^2))
 gammavalue       = 1.0,    ! scaling factor for gamma intensity scaling
 intcutoffratio   = 1.0D-3,
 backprojection   = 'Yes',   ! 
 orientationfile  = 'SOMEPATH/euler.txt', ! input file with orientation list
 tiffprefix       = 'SOMEPATH/test-tri', ! prefix for tiff output files with individual patterns
 xtalname         = 'triclinic-Ni.xtal', ! structure file name
 hdfname          = 'SOMEPATH/Laue-TriclinicNi.h5', ! HDF output file name
 binarize         = .FALSE.,

and an euler.txt file with the following entries:

eu
3
   0.0  0.0 0.0
  30.0  0.0 0.0
   0.0 30.0 0.0

we obtain the following Laue patterns

Laue transmission pattern for calcite

Laue transmission pattern for calcite

Laue transmission pattern for calcite

Information for Users

Home

SEM Modalities     - Monte Carlo Simulations
    - EBSD Master Pattern Simulations
    - EBSD Overlap Master Patterns
    - EBSD Pattern Simulations
    - EBSD Dictionary Indexing
    - EBSD Spherical Indexing
    - EBSD Reflector Ranking
    - EBSD HREBSD
    - ECP Master Pattern Simulations
    - ECP Pattern Simulations
    - TKD Master Pattern Simulations
    - TKD Pattern Simulations
    - ECCI Defect Image Simulations
TEM Modalities     - HH4
    - PED
    - CBED Pattern Simulations
    - STEM-DCI Image Simulations
    - EMIntegrateSTEM utility
XRD Modalities     - Laue Master Pattern Simulation
    - EMLaue
    - EMLaueSlit
General Parameter Definitions * Foil Defect Configuration Definitions
EMsoftWorkbench
Utility Programs     - EMConvertOrientations
    - EMDisorientations
    - EMHOLZ
    - EMKikuchiMap
    - EMOpenCLinfo
    - EMZAgeom
    - EMcuboMK
    - EMdpextract
    - EMdpmerge
    - EMdrawcell
    - EMeqvPS
    - EMeqvrot
    - EMfamily
    - EMGBO
    - EMGBOdm
    - EMgetEulers
    - EMgetOSM
    - EMlatgeom
    - EMlistSG
    - EMlistTC
    - EMmkxtal
    - EMorbit
    - EMorient
    - EMqg
    - EMsampleRFZ
    - EMshowxtal
    - EMsoftSlackTest
    - EMsoftinit
    - EMstar
    - EMstereo
    - EMxtalExtract
    - EMxtalinfo
    - EMzap
IDL Scripts     - Virtual Machine Apps
    - SEMDisplay
    - Efit
    - CBEDDisplay
python wrappers     - python examples
Docker     - Docker Image

Complete Examples

  1. Crystal Data Entry Example
  2. EBSD Example
  3. ECP Example
  4. TKD Example
  5. ECCI Example
  6. CBED Example
  7. Dictionary Indexing Example
  8. DItutorial

Information for Developers

Clone this wiki locally