Skip to content

Orientation Sampling

Marc DeGraef edited this page Nov 11, 2018 · 4 revisions

Orientation Sampling

Several of the programs in the EMsoft package require a list of orientations that represents a uniform sampling of orientation space. A special program is provided to generate such uniform samples: EMsampleRFZ. As usual, this program needs a name list file as input, and we generate the template file as follows:

EMsampleRFZ -t

The letters "RFZ" in the program name stand for "Rodrigues Fundamental Zone". This is the volume in Rodrigues space that contains all the unique orientations for a given crystallographic symmetry.

Before we delve into the name list entries, let us briefly review the two different modes in which the program can be operated (there are additional modes but they are experimental and may not produce correct results):

  1. a uniform sampling of a Rodrigues fundamental zone (FZ);
  2. a uniform sampling of orientations at less than a given misorientation from a given orientation.

Both sampling methods are based on the cubochoric rotation representation, which starts with a cubical grid inside the cubochoric cube. This cube represents an equal-volume mapping of the quaternion Northern hemisphere (i.e., all 3D rotations with positive scalar quaternion component). For sampling mode 1, the program creates a uniform grid of cubochoric vectors, transforms each vector to the Rodrigues representation and determines whether or not the point lies inside the FZ for the point group symmetry set by the user. The program then returns an array of Euler angle triplets (Bunge zxz convention) for use in other programs. The sampling grid can be offset from the center of the cube, in which case the identity orientation will not be part of the sample.

For sampling mode 2, the program samples a centered cube inside the cubochoric cube and converts those points to points inside a quadratic surface (prolate spheroid, spheroidal paraboloid, or double-sheet hyperboloid, depending on the parameter choices) in Rodrigues Space; all generated points will have at most the given misorientation with respect to a user defined reference point.

Detailed information on the cubochoric rotation representation can be found in the following paper: D. Rosca, A. Morawiec, and M. De Graef. "A new method of constructing a grid in the space of 3D rotations and its applications to texture analysis," Modeling and Simulations in Materials Science and Engineering 22, 075013 (2014).

Details on the misorientation sampling approach can be found in the following paper: S. Singh and M. De Graef, "Orientation sampling for dictionary-based diffraction pattern indexing methods," MSMSE 24, 085013 (2016).

Point group identifiers

Crystallographic point groups are identified by an integer from 1 to 32 according to the International Tables for Crystallography (Volume A). The valid numbers, along with the corresponding Hermann-Mauguin point group symbols, are listed here, along with the point group symbol between double quotation marks, the corresponding rotation group and its order M (in bold face):

ID/Symbol ID/Symbol ID/Symbol ID/Symbol
1/"1"/1(1) 2/"-1"/1(1) 3/"2"/2(2) 4/"m"/2(2)
5/"2/m"/2(2) 6/"222" /222(4) 7/"mm2" /222(4) 8/"mmm" /222(4)
9/"4" /4(4) 10/"-4"/4(4) 11/"4/m"/4(4) 12/"422"/422(8)
13/"4mm"/422(8) 14/"-42m"/422(8) 15/"4/mmm"/422(8) 16/"3"/3(3)
17/"-3"/3(3) 18/"32"/32(6) 19/ "3m" /32(6) 20/"-3m"/32(6)
21/"6"/6(6) 22/"-6" /6(6) 23/"6/m"/6(6) 24/"622"/622(12)
25/"6mm"/622(12) 26/"-6m2"/622(12) 27/"6/mmm"/622(12) 28/"23"/23(12)
29/"m3"/23(12) 30/"432"/432(24) 31/"-43m"/432(24) 32/"m-3m"/432(24)

Number of grid points

The cubochoric space is a cube with edge length pi^(2/3) and origin (the identity rotation) at the center of the cube. The number of sampling points entered by the user represents the number of grid points along a semi-edge of the cube. In other words, if the user requests N=50 sampling points, and the origin is part of the grid (see next item), then there will be 2N+1 actual sampling points along each cube edge. The total number of sampling points in the grid will then be (2N+1)^3. For point groups #1 and #2, in the absence of any rotational symmetry, the Rodrigues FZ will correspond to the full cubochoric grid, with (2N+1)^3 grid points. For any other point group, the Rodrigues FZ will correspond to a portion of the cubochoric grid, and the number of points will be approximately given by (2N+1)^3 /M, where M is the order of the rotation group corresponding to the point group. In the table above, the rotation group and its order are indicated in bold face.

##Grid offset switch## For sampling mode 1, the user has the option to offset the cubochoric grid from the origin by half a grid unit. In that case, the grid will have a maximum of 8N^3 grid points, and the identity rotation will not be part of the sample. The total number of points inside the Rodrigues FZ will then be approximately 8N^3 /M.

Misorientation sampling

For sampling mode 2, the user must provide a reference orientation in the form of an Euler angle triplet (Bunge convention); this orientation will be used as the reference orientation around which the misorientation sampling will be computed. The output of both sampling modes will be in the orientation representation selected by the user. Multiple orientation output files can be generated in one program execution.

Template file description

The default entries in the template name list file are as follows:

 &RFZlist
! template file for the EMsampleRFZ program
!
! sampling mode: 
! 'RFZ' standard Rodrigues FZ; 
! 'MIS' misorientation ball sampling; 
! 'CON' conical sampling [experimental, do not use];
! 'FIB' for uniform fiber texture sampling [experimental, do not use]
 samplemode = 'RFZ'
! maximum misorientation [degrees], for 'MIS' samplemode only
 maxmisor = 5.D0,
! Rodrigues vector (n,tan(omega/2)) for center of misorientation ball, for 'MIS' samplemode only
 rodrigues = 0.D0  0.D0  0.D0  0.D0,
! cone axis for conical sampling [experimental, do not use]
 conevector = 0.D0  0.D0  1.D0,
! cone semi-angle (in degrees) [experimental, do not use]
 semiconeangle = 2.D0,
! point group number
 pgnum = 32,
! crystal structure file name [used for FIB samplemode only, do not use]
 xtalname = 'undefined'
! number of sampling points along cube semi-edge
 nsteps = 100,
! grid type: 0 contains origin, 1 is has origin at center of grid box
 gridtype = 0,
! euler angle output file name [all filenames are relative EMsoft paths]
 euoutname = 'undefined',
! cubochoric output file name
 cuoutname = 'undefined',
! homochoric output file name
 hooutname = 'undefined',
! Rodrigues output file name
 rooutname = 'undefined',
! quaternion output file name
 quoutname = 'undefined',
! orientation matrix output file name
 omoutname = 'undefined',
! axis angle pair output file name
 axoutname = 'undefined'
 /

For mode 1 sampling, set the samplemode to RFZ, set the xtalname to the correct crystal structure file name, define the number N of steps along the semi-edge of the cubochoric cube (variable nsteps), enter the grid offset parameter (0 represents no offset, 1 shifts the whole grid by half a grid box), and then set all of the filenames corresponding to the orientation representations that you desire.

Example 1

Let us assume that you need a uniform orientation sampling in quaternion form for Nickel (cubic symmetry), and you want to have about 1.5° average step size in all directions in orientation space; we call this angle theta. The number of sampling points N that will get you approximately this average step size is then given by nint(131.9705 / (theta-0.0373)), where theta is entered in degrees and nint is the nearest integer. For theta=1.5°, we find N = 90. So, we generate the following name list (all unnecessary lines have been removed):

 &RFZlist
 samplemode = 'RFZ'
 pgnum = 32,
 nsteps = 90,
 gridtype = 0,
 quoutname = 'quats.txt',
 /

Running the program for this name list file will generate a text file with 243129 quaternions; the file will look like this:

qu
  243129
      0.856244     -0.347427     -0.347427     -0.159487
      0.856244     -0.349317     -0.349317     -0.151003
      0.856244     -0.351107     -0.351107     -0.142456
... (many lines deleted)
      0.856244      0.349317      0.349317      0.151003
      0.856244      0.347427      0.347427      0.159487

The first line indicates the orientation representation (qu for quaternions), the next line has the total number of quaternions in the sampling set, and then each line has a single quaternion, with the scalar part in the first position. This type of text file can be used by many other programs in the EMsoft package, for instance EMEBSD and the dictionary indexing programs.

Example 2

In the example, we assume that the user requires a uniform sampling inside a ball with a certain radius (say 5°) around a given orientation, represented as a Rodrigues vector. We pick the following orientation: 45°@[110]. The name list file then looks as follows:

 &RFZlist
 samplemode = 'MIS'
 maxmisor = 5.D0,
 rodrigues = 0.70710677D0  0.70710677D0  0.D0  0.41421357D0,
 pgnum = 32,
 nsteps = 10,
 gridtype = 0,
 rooutname = 'rods.txt',
 /

Note that the first three components of the Rodrigues vector must form a unit vector, and the fourth component is the length of the vector. Note also that the nsteps parameter represents the number of points along the semi-edge of the 5° cube, so a value of 90 here would generate more than 5 million samples, since all of them fall inside the RFZ. This name list file generates the following output file in Rodrigues representation:

ro
    9261
      0.689428      0.722192      0.055931      0.457444
      0.691078      0.720976      0.051038      0.459021
...

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