In MTEX rotational functions \(F\colon\mathcal{SO}(3)\to \mathbb C\) are described by subclasses of the super class SO3Fun
. Hence we talk about them as SO3Funs
.
Overview on the subclasses of SO3Fun
Internally MTEX represents rotational functions in different ways:
by a harmonic series expansion |
as Bingham distribution |
||
as superposition of radial function |
as sum of different components |
||
as superposition of fibre elements |
explicitely given by a formula |
Generalizations of Rotational Functions
rotational vector fields |
|
radial rotational functions |
All representations allow the same operations which are specified for the abstract class SO3Fun
. In particular it is possible to calculate with \(\mathcal{SO}(3)\) functions as with ordinary numbers, i.e., you can add, multiply arbitrary functions, take the mean, integrate them or compute gradients, see Operations.
Definition of SO3Fun's
Every rotational function has a left and a right symmetry, see symmetric Functions. If we do not specify symmetries by construction triclinic symmetry is used as default, i.e. there are no symmetric rotations.
Moreover SO3Fun's
have the property antipodal
which could be used to set the function as antipodal.
Definition of anonymous functions on SO(3)
Functions of class SO3FunHandle
are defined by an anonymous function.
Now we are able to evaluate this SO3FunHandle
And following that, it is easy to describe every SO3Fun
by an SO3FunHandle
.
Definition of Harmonic Series on SO(3)
The class SO3FunHarmonic
described rotational functions by there harmonic series. MTEX is very fast by computing with this SO3FunHarmonic's
. Hence sometimes it might be a good idea to expand any SO3Fun
in its harmonic series. Therefore only the command SO3FunHarmonic is needed. But note that this approximation may lead to inaccuracies.
Moreover if MTEX computes with an SO3FunHarmonic
and any SO3Fun
it is also expanded to an SO3FunHarmonic
. You can prevent that by transformation to a SO3FunHandle
like before.
Generally SO3FunHarmonic's
are defined by there Fourier coefficient vector.
The bandwidth
describes the maximal harmonic degree of the harmonic series expansion.
By the property isReal
we are able to change between real and complex valued SO3FunHarmonic's
. Note that creation of an real valued SO3FunHarmonic changes the Fourier coefficient vector. So it is not possible to reconstruct the previous function. But computing with real valued functions is faster.
For further information on the Fourier coefficients, the bandwidth and other properties, see Harmonic Representation of Rotational Functions.
Definition of Radial Basis Functions
Radial Basis functions are of class SO3FunRBF
. They are defined as superposition of weighted kernel functions SO3Kernel
centered on a set of orientations ori
For further information on them, see SO3FunRBF
.
Definition of fibre elements
They are described by the class SO3FunCBF
. We construct them by a fibre on SO(3) together with some halfwidth.
For further information, see SO3FunCBF.
Definition of Bingham distributions
Bingham distribution functions are described by the class SO3FunBingham
. One can construct them by
For further information, see SO3FunBingham.
Sum of different subclasses of SO3Fun
By adding some subclasses of SO3Fun
we can save the sum by storing the single components itself.
Note that the sum of any SO3Fun
with an SO3FunHarmonic
yields an SO3FunHarmonic
. Hence you need to add an SO3FunHarmonic
in exactly that way. Otherwise the sum is expanded to an SO3FunHarmonic
in every summation step.