A fibre in orientation space is essentially a line connecting two orientations and can be represented in MTEX by a single variable of type fibre. To illustrate the definition of a fibre we first define cube
and goss
orientation
% define crystal and specimen symmetry
cs = crystalSymmetry('432');
ss = specimenSymmetry('1');
% and two orientations
ori1 = orientation.cube(cs,ss);
ori2 = orientation.goss(cs,ss);
and then the fibre connecting both orientations
f = fibre(ori1,ori2)
f = fibre (432 → xyz)
h || r: (100) || (1,0,0)
o1 → o2: (0°,0°,0°) → (0°,45°,0°)
Finally we plot everything into the Euler space
% plot the fibre
plot(f,'DisplayName','Fibre','linewidth',4,'linecolor','green')
% and on top of it the orientations
hold on
plot(ori1,'DisplayName','CUBE','MarkerSize',12,'MarkerFaceColor','darkred','MarkerEdgeColor','k')
plot(ori2,'DisplayName','GOSS','MarkerSize',12,'MarkerFaceColor','blue','MarkerEdgeColor','k')
hold off
legend

Alternatively, we may visualize the fibre also in axis angle space
% plot the fibre
plot(f,'linecolor','green','linewidth',6,'axisAngle')
% and on top of it the orientations
hold on
plot(ori1,'MarkerFaceColor','darkred','MarkerSize',15,'axisAngle')
plot(ori2,'MarkerFaceColor','blue','MarkerSize',15)
hold off

Obviously, f
is not a full fibre. Since, the orientation space has no boundary a full fibre is best thought of as a circle that passes trough two fixed orientations. In order to define the full fibre us the option 'full'
f = fibre(ori1,ori2,'full')
hold on
plot(f,'linecolor','gold','linewidth',3,'project2FundamentalRegion')
hold off
f = fibre (432 → xyz)
h || r: (100) || (1,0,0)

Fibres in pole figures and inverse pole figures
MTEX supports for fibers all the plotting options that are available for orientations. This included pole figures and inverse pole figures using the commands plotPDF
and plotIPDF
.
plotPDF(f,Miller({1,1,0},{1,1,1},cs),'linewidth',3,'lineColor','orange')

An important difference to orientation plots is that fibers are not automatically symmetrised when plotted. To achieve this use the command symmetrise
.
plotPDF(f.symmetrise,Miller({1,1,0},{2,1,0},{1,1,1},cs),'linewidth',3,'lineColor','orange')

Inverse pole figures are by default restricted to the fundamental sector. You may use the option 'complete'
to plot the entire sphere.
% an inverse pole figure plot
r = [vector3d(1,1,0),vector3d(2,1,0),vector3d(1,1,1)];
plotIPDF(f.symmetrise,r,'linewidth',3,'lineColor','orange')

Defining a fibre by directions
Alternatively, a fibre can also be defined by a pair of a crystal and a specimen direction. In this case it consists of all orientations that aligns the crystal direction parallel to the specimen direction. As an example we define the fibre of all orientations such that the c-axis (001) is parallel to the z-axis by
f = fibre(Miller(0,0,1,cs),vector3d.Z)
plot(f,'linecolor','gold','linewidth',4,'project2FundamentalRegion','axisAngle')
f = fibre (432 → xyz)
h || r: (001) || (0,0,1)

If both directions of type Miller the fibre corresponds to all misorientations which have these two direction parallel.
Finally, a fibre can be defined by an initial orientation ori1
and a direction h
, i.e., all orientations ori
of this fibre satisfy
ori * h = ori1 * h
The following code defines a fibre that passes through the cube orientation and rotates about the (111) axis.
f = fibre(ori1,Miller(1,1,1,cs))
plot(f,'linecolor','darkred','linewidth',4,'project2FundamentalRegion','axisAngle')
f = fibre (432 → xyz)
h || r: (111) || (1,1,1)

Predefined fibers
MTEX includes also a list of predefined fibers, e.g., alpha, beta, gamma, epsilon, eta, tau and theta fibers. Those can be defined by
ss = specimenSymmetry('orthorhombic');
beta = fibre.beta(cs,ss,'full')
beta = fibre (432 → xyz (mmm))
h || r: (12 6 11) || (1,1,4)
o1 → o2: (0°,35.3°,45°) → (0°,35.3°,45°)
Lets plot an overview of all predefined fibers with respect to orthorhombic specimen symmetry
plot(fibre.alpha(cs,ss,'full'),'linewidth',3,'lineColor',ind2color(1),'DisplayName','alpha')
hold on
plot(fibre.beta(cs,ss,'full'),'linewidth',3,'lineColor',ind2color(2),'DisplayName','beta')
plot(fibre.gamma(cs,ss,'full'),'linewidth',3,'lineColor',ind2color(3),'DisplayName','gamma')
plot(fibre.epsilon(cs,ss,'full'),'linewidth',3,'lineColor',ind2color(4),'DisplayName','epsilon')
plot(fibre.eta(cs,ss,'full'),'linewidth',3,'lineColor',ind2color(5),'DisplayName','eta')
plot(fibre.tau(cs,ss,'full'),'linewidth',3,'lineColor',ind2color(6),'DisplayName','tau')
plot(fibre.theta(cs,ss,'full'),'linewidth',3,'lineColor',ind2color(7),'DisplayName','theta')
hold off
legend('Location','best')

Fiber ODFs
Note, that it is straight forward to define a corresponding fibre ODF by the command fibreODF
odf = fibreODF(beta,'halfwidth',10*degree)
% and plot it in 3d
plot3d(odf)
% this adds the fibre to the plots
hold on
plot(beta.symmetrise,'lineColor','b','linewidth',4)
hold off
odf = SO3FunCBF (432 → xyz (mmm))
kernel: de la Vallee Poussin, halfwidth 10°
fibre : (12 6 11) || 1,1,4
weight: 1

Visualize an ODF along a fibre
We may also visualize an ODF along a fibre
plot(odf,fibre.eta(cs,ss),'linewidth',2)

Compute volume of fibre portions
or compute the volume of an ODF in a tube around a fibre using the command volume
100 * volume(odf,beta,10*degree)
ans =
100