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