centerSpecimen edit page

rotates an odf with specimen symmetry into its symmetry axes

centerSpecimen(odf,center) trys to find the normal vectors of orthorhombic symmetry for the x mirror and y mirror plane and calculates an rotation needed to rotate the odf back into these mirror planes. the routine starts with an lookaround grid for a given center (default xvector) to find a starting value for newton iteration.

Syntax

[odf,rot,v1,v2] = centerSpecimen(odf,v0,varargin)

Input

odf SO3Fun
v0 vector3d initial gues for a symmetry axis (default xvector)

Output

odf rotated SO3Fun
rot rotation such that rotate(odf_out,r) = odf_in
v1,v2 normal vector of the two fold symmetry axes

Options

SO3Grid a SO3Grid where the SO3Fun is evaluated on
delta specifies the opening angle for the initial search grid around input center
resolution specifies the resolution for the initial search grid
silent dont verbose number of initial axes and the newton iteration
fourier use fourier coefficents as objective function

Example

%Starting with an synthetic odf with orthorhombic symmetry
CS = crystalSymmetry('cubic')
SS = specimenSymmetry('orthorhombic')
ori = [orientation.byEuler(135*degree,45*degree,120*degree,CS,SS) ...
orientation.byEuler( 60*degree, 54.73*degree, 45*degree,CS,SS) ...
orientation.byEuler(70*degree,90*degree,45*degree,CS,SS)...
orientation.byEuler(0*degree,0*degree,0*degree,CS,SS)];
CS = crystalSymmetry
 
  symmetry: m-3m   
  elements: 48     
  a, b, c : 1, 1, 1
 
 
SS = orthorhombic specimenSymmetry
odf = unimodalODF(SS*ori);
%we define a rotational displacement
r2 = rotation.byEuler( 6*degree,4*degree,0*degree)
odf = rotate(odf,r2);
h = [Miller(0,0,1,CS),Miller(0,1,1,CS),Miller(1,1,1,CS)];
plotPDF(odf,h,'antipodal','complete');
r2 = rotation
 
  Bunge Euler angles in degree
  phi1  Phi phi2
     6    4    0