centerSpecimen edit page

rotates an odf with specimen symmetry into its symmetry axes

centerSpecimen(odf,center) tries 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 a look around 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 guess 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 don't verbose number of initial axes and the newton iteration
Fourier use Fourier coefficients 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
 
Warning: Rotating an ODF with specimen symmetry will remove
the specimen symmetry