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 transformation ODF
odfChild = variants(p2c, odfParent)
% 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
odfParent parent ODF SO3Fun
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)
odfPChild child ODF SO3Fun

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
    35   45    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
  166.305 68.0853 32.6118
% 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
  25.2644      90     270
  224.736      90      90
  96.8294 127.761 39.2315
  96.8294 52.2388 140.768
      125 9.73561       0
      305 9.73561       0
  166.305 68.0853 32.6118
  346.305 68.0853 32.6118
  83.6949 68.0853 327.388
  263.695 68.0853 327.388
  153.171 127.761 320.768
  153.171 52.2388 219.232
% 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
  153.171 127.761 320.768
  44.7356      90      90
  153.171 52.2388 219.232
      305 9.73561     360
  263.695 111.915 212.612
  166.305 68.0853 32.6118
  276.829 127.761 39.2315
  96.8294 127.761 39.2315
  205.264      90     270
  83.6949 111.915 212.612
      125 9.73561       0
  166.305 111.915 147.388
% we may also compute all possible child to child misorientations
bcc2bcc = unique(variants(NW,'child') * inv(NW))
bcc2bcc = misorientation (Iron bcc → Iron bcc)
  size: 7 x 1
 
  Bunge Euler angles in degree
     phi1     Phi    phi2
      180 19.4712       0
        0       0       0
  320.768 104.478 219.232
   99.598 91.6386  80.402
  212.612 136.171 327.388
  315.528 60.9415 334.724
  205.276 60.9415 224.472

See also

calcParents