Vector fields in orientation space model orientation dependent spin as it occurs for instance in the Taylor or Sachs model. Another typical example are gradients of orientation distribution functions.
Orientation Dependent Spin Tensors as Vector Fields
According to Taylor theory the strain acting on a crystal with orientation ori
is compensated by the action of different slip systems. The antisymmetric portion of deformation tensors of these active slip systems gives a spin tensors that describes the local misorientation the crystal undergoes under deformation. In MTEX the spin tensor W
as a function of the orientation ori
is computed as a variable of type SO3VectorField
by the command calcTaylor
.
Lets visualize the spin tensor in Euler angle sections
We observe how according to the orientation the Taylor model predicts a misorientation of the corresponding crystal. For a specific (set of) orientation ori
we can retrieve the spin tensor by evaluating the vector field W
at this position
The Norm of a Vector Field
The norm of the spin tensor directly relates to the amount of misorientation. We may compute the amount of misorientations as a function of orientation by the command norm
and determine the orientation of maximum misorientation by
As the vector field W
corresponds to the rotational axis of the local misorientation we may check how much this axis corresponds with a predefined axis, e.g. [100], by computing the inner product dot(W,d)
between the vector field W
and the predefined axis d
.
The Flux of a Vector Field
If we interpret the vector field W
as a velocity field for the different crystal orientations. Then its divergence is a scalar field that indicates where orientations condense. In this interpretation a sink corresponds to negative flux / divergence and a source to positive flux / divergence.
The Curl of a Vector Field
The counterpart of the flux is the curl of a vector field which describes the axis of local rotation within the crystal orientations
The Gradient of Orientation distribution Functions
A second natural usage of vector fields is as gradients of orientation dependent functions, e.g. ODF. Lets consider the following ODF of a quartz specimen
Then its gradient is computed by the command odf.grad
Lets visualize the ODF together with its gradient in a sigma section plot
We observe how the gradients all points towards the closest local maximum. This is actually the foundation of the steepest descent algorithm used by MTEX in the commands max(odf)
and calcComponents(odf)
As the gradient of a function is a vector field we may compute its curl and divergence. From mathematics we know that the curl must be zero
and the divergence coincides with the Laplacian of the
The fact that the curl of a vector field is zero is actually equivalent to the fact that the vector field is the gradient of some potential field, which can be computed by the command antiderivative(g)
and coincides exactly with the original ODF odf
.
Overview of Operations for Orientational Vector Fields
The following operations are defined for vector fields VF
, VF1
, VF2
- basic arithmetic operations: sum, difference, scaling, quotient
- inner product
dot(VF1,VF2)
- cross product
dot(VF1,VF2)
- norm
norm(VF)
- rotate
rotate(VF,rot)
- average
mean(VF)
Definition of Orientational Vector Fields
Explicitly by an Anonymous Function
Analogous to SO3FunHandle
we are able to define SO3VectorFields
by an anonymous function.
But plotting does not -- TODO!!!
Definition via SO3VectorField
We can expand any SO3VectorField
in an SO3VectorFieldHarmonic
directly by the command SO3VectorFieldHarmonic
Definition via function values
At first we need some example rotations
Next, we define function values for the rotations
Now the actual command to get SO3VF1
of type SO3VectorFieldHarmonic
Definition via function handle
If we have a function handle for the function we could create a S2VectorFieldHarmonic
via quadrature. At first lets define a function handle which takes rotation
as an argument and returns a vector3d
:
Now we can call the quadrature command to get SO3VF2
of type SO3VectorFieldHarmonic
Definition via SO3FunHarmonic
If we directly call the constructor with a multivariate SO3FunHarmonic
with three entries it will create a SO3VectorFieldHarmonic
with SO3F(1)
, SO3F(2)
, and SO3F(3)
the \(x\), \(y\), and \(z\) component.