variants edit page

variants parent to child orientation relationship

Syntax

p2cVariants = variants(p2c, 'child')
p2cVariants = variants(p2c, 'parent')
% compute all child variants
oriChild = variants(p2c, oriParent)
% compute child variants specified by variantId
oriChild = variants(p2c, oriParent, variantId)
% compute all parent variants
oriParent = variants(p2c, oriChild)
% compute parent variants specified by variantId
oriParent = variants(p2c, oriChild, variantId)

Input

p2c parent to child orientation relationship
oriParent parent orientation
hklParent parent direction Miller
oriChild child orientation
hklChild child direction Miller
variantId id of the variant

Output

p2cVariants parent to child variants
oriParent parent orientation (numOri x numVariants)
hklParent parent directions (numOri x numVariants)
oriChild child orientation (numOri x numVariants)
hklChild child directions (numOri x numVariants)

Options

parent return parent variants
child return child variants (default)

Example

% parent symmetry
cs_fcc = crystalSymmetry('432', [3.6599 3.6599 3.6599], 'mineral', 'Iron fcc');
% child symmetry
cs_bcc = crystalSymmetry('432', [2.866 2.866 2.866], 'mineral', 'Iron bcc')
cs_bcc = crystalSymmetry
 
  mineral : Iron bcc     
  symmetry: 432          
  elements: 24           
  a, b, c : 2.9, 2.9, 2.9
% define a fcc parent orientation
ori_fcc = orientation.brass(cs_fcc)
ori_fcc = orientation (Iron fcc → xyz)
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
    35   45    0    0
% define Nishiyama Wassermann fcc to bcc orientation relation ship
NW = orientation.NishiyamaWassermann(cs_fcc,cs_bcc)
NW = misorientation (Iron fcc → Iron bcc)
 
 (111) || (011)   [1-10] || [-100]
% compute a bcc child orientation related to the fcc orientation
ori_bcc = ori_fcc * inv(NW)
ori_bcc = orientation (Iron bcc → xyz)
 
  Bunge Euler angles in degree
     phi1     Phi    phi2    Inv.
  166.305 68.0853 32.6118       0
% compute all symmetrically possible child orientations
ori_bcc = unique(ori_fcc.symmetrise * inv(NW))
ori_bcc = orientation (Iron bcc → xyz)
  size: 12 x 1
 
  Bunge Euler angles in degree
     phi1     Phi    phi2    Inv.
  25.2644      90     270       0
  224.736      90      90       0
  96.8294 127.761 39.2315       0
  96.8294 52.2388 140.768       0
      125 9.73561       0       0
      305 9.73561       0       0
  166.305 68.0853 32.6118       0
  346.305 68.0853 32.6118       0
  83.6949 68.0853 327.388       0
  263.695 68.0853 327.388       0
  153.171 127.761 320.768       0
  153.171 52.2388 219.232       0
% same using the function variants
ori_bcc2 = variants(NW,ori_fcc)
ori_bcc2 = orientation (Iron bcc → xyz)
  size: 1 x 12
 
  Bunge Euler angles in degree
     phi1     Phi    phi2    Inv.
  153.171 127.761 320.768       0
  44.7356      90      90       0
  153.171 52.2388 219.232       0
      305 9.73561     360       0
  263.695 111.915 212.612       0
  166.305 68.0853 32.6118       0
  276.829 127.761 39.2315       0
  96.8294 127.761 39.2315       0
  205.264      90     270       0
  83.6949 111.915 212.612       0
      125 9.73561       0       0
  166.305 111.915 147.388       0
% we may also compute all possible child to child misorientations
bcc2bcc = unique(variants(NW,'child') * inv(NW))
bcc2bcc = misorientation (Iron bcc → Iron bcc)
  size: 6 x 1
 
  Bunge Euler angles in degree
     phi1     Phi    phi2    Inv.
        0       0       0       0
   99.598 91.6386  80.402       0
      180 19.4712       0       0
  212.612 136.171 327.388       0
  315.528 60.9415 334.724       0
  320.768 104.478 219.232       0

See also

calcParents