1 Introduction

Many materials in engineering applications exhibit an inner structure, e.g., crystal lattices or fibers, which causes anisotropy. Such a structure induces certain material symmetries. Knowledge of these symmetries can be useful in order to apply representation theorems or to find the number of independent elastic constants that are needed to describe the elastic behavior fully.

Based on material symmetries, materials are often categorized into symmetry classes. All material laws within the same symmetry class share the same symmetry group. However, it is a complicated task to determine the symmetry of a particular material. In the literature, see [14], the symmetry class of a stiffness is usually determined by the form of its Voigt representation. Since the representation is non-unique, this method of identification is only applicable if the representation uses a particular base called symmetry base.

Furthermore, measured stiffnesses always show a certain amount of scattering. As a result, such stiffnesses appear to be triclinic (the “most anisotropic” case) even if represented in a special base.

A practical method to determine the symmetry class of a material and the corresponding stiffness is needed. The method presented in this paper is able to identify the (exact) symmetry class of a material if it exists. Furthermore, in the presence of scattering, this method will determine the closest non-triclinic symmetry class of a stiffness. This is achieved by using the distance between the closest element in a non-triclinic symmetry class and the stiffness.

The determination of the symmetry class of a stiffness as well as other closely related topics have been discussed for a long time. In [10] the closest cubic stiffness is calculated by projecting a stiffness onto a cubic base which has some degrees of freedom. These degrees of freedom are determined by minimizing the residual. Furthermore, Gazis et al. generalize the concept to find closest stiffnesses in others than the cubic class.

An approach to determine the symmetry class of a stiffness based on Maxwell multipoles is shown in [1]. Here symmetry axes are found by finding Maxwell multipoles of the parts of the harmonic decomposition of the stiffness. These axes allow for the classification of the symmetry class.

A method for symmetry classification based on eigenvalues of the stiffness is presented by [8]. Furthermore, the material symmetries are characterized by planes of symmetry. As a side result, in an article concerning the harmonic decomposition of stiffnesses, Baerheim [2] provides an algorithm to calculate the rotation which transforms a stiffness from an arbitrary base into the symmetry base where the typical Voigt representations are observable. However, Baerheim points out that the algorithm is not applicable to cubic stiffnesses.

The identification of measured stiffnesses is the topic of [9]. They introduce the concepts of a nearest stiffness in a given symmetry class as well as of the distance between a stiffness and a symmetry class.

Another method to identify ideal stiffnesses using mirror planes is proposed in [16]. This method is derived by application of an irreducible decomposition of the stiffness tensor as well as Maxwell multipoles. A characteristic function is introduced the roots of which determine the symmetry class of the material.

In [15] the concepts of the nearest stiffness in a given symmetry class and distance of a stiffness to a symmetry class are used. However, the rotation of the stiffness into a special base is performed using a numerical optimization scheme. The resulting method is applied to fiber-reinforced composites.

In our work we present an algorithm for the identification of the symmetry class of a stiffness is proposed which is based on [2, 9, 15]. Instead of using a numerical optimization scheme we employ the algorithm presented by Baerheim to calculate the rotation from an arbitrary into a special base. The cubic case is integrated into the procedure by applying an eigenvalue method. Using the rotated stiffness representation, the closest stiffness in a given symmetry class can be determined. The relative deviation between the rotated and the closest stiffness is calculated and considered as distance of the stiffness to the symmetry class. This approach allows for the classification of ideal as well as measured stiffnesses. Furthermore, our method presents a fully algebraic algorithm for the classification problem which is applicable to all symmetry classes.

2 Notations and Definitions

We employ a direct tensor notation. Scalars, vectors, dyadics, and \(n\)th-order tensors are represented by \(a\), a, \(\mathbb{A}\) and \(\overset{\scriptscriptstyle \langle n \rangle }{\mathbb{A}}\), respectively. The scalar product for vectors is written as ab. Furthermore, the dyadic product of two arbitrary vectors a and b is noted as ab. The \(n\)-fold contraction between two higher-order tensors, \(\overset{\scriptscriptstyle \langle m \rangle }{\mathbb{A}}\) and \(\overset{\scriptscriptstyle \langle p \rangle }{\mathbb{B}}\) is indicated by \(\overset{\scriptscriptstyle \langle m \rangle }{\mathbb{A}}{} \overset{\scriptscriptstyle \langle n\rangle }{\cdot } {} \overset{\scriptscriptstyle \langle p \rangle }{\mathbb{B}}\) where \(n \leq p, m\). It is defined as

A m n B p = A i 1 i 2 i m e i 1 e i 2 e i m = n B j 1 j 2 j p e j 1 e j 2 e j p = A i 1 i 2 i m n k 1 k 2 k n B k 1 k 2 k n j n + 1 j n + 2 j p = e i 1 e i 2 e i m n e j n + 1 e j n + 2 e j p .
(2.1)

If \(m=n=p\) this coincides with the usual scalar product of higher-order tensors.

The Rayleigh product between a second-order tensor ℚ and the \(n\)th-order tensor \(\overset{\scriptscriptstyle \langle n \rangle }{\mathbb{B}}\) is defined by

Q B n = B i 1 i 2 i n ( Q e i 1 ) ( Q e i 2 ) ( Q e i n )
(2.2)

with respect to any vector base { e i } . In the present context, this product will be often used for a proper orthogonal ℚ resulting in a rotation of \(\overset{\scriptscriptstyle \langle n \rangle }{\mathbb{B}}\). For \(n\) being even, the following identity holds: \(\mathbb{Q}* \overset{\scriptscriptstyle \langle n \rangle }{\mathbb{B}} = \left (- \mathbb{Q}\right ) * \overset{\scriptscriptstyle \langle n \rangle }{\mathbb{B}}\). Consequently, for tensors of even order the distinction between proper orthogonal and orthogonal tensors in the Rayleigh product is irrelevant.

To denote a specific rotation around an axis a by an angle \(\alpha \) the notation R a α is used.

In the sequel, we will consider fourth-order tensors which represent the elastic stiffness of a material. For them we assume the usual major symmetry and the left and right subsymmetry. Such tetradics form the following set

$$\begin{aligned} \mathcal{S} =& \Bigg\{ \left . \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{K}}\right | \mathbb{A} {} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{K}} {} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \mathbb{B} = \mathbb{B} {} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{K}} {} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \mathbb{A}, \mathbb{A}{} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{K}} = \mathbb{A}^{\top }{} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{K}} , {} \\ &\quad {} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{K}} {} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \mathbb{A} = \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{K}} {} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \mathbb{A}^{\top }, \forall \text{dyadics } \mathbb{A},\, \mathbb{B} \Bigg\} . \end{aligned}$$
(2.3)

For a given \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \in \mathcal{S}\) we call a tensor \(\mathbb{Q}\in \text{SO(3)}\) a symmetry transformation of \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\) if it is invariant under ℚ, i.e., \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}= \mathbb{Q} * \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\). We denote the set of all symmetry transformations of \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\) by \(\mathcal{G}\big ( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big ) \). Evidently, this set forms a group under composition and is therefore called symmetry group of \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\).

Such a group can be discrete or continuous. However, even if the symmetry group is continuous as for the isotropic and transversally isotropic case, a discrete subset can be used to completely fix the symmetry of the stiffnesses. In these cases it is possible to generate a finite subset for the isotropic case by adding another rotation to the generators of the cubic symmetry group and consider the resulting symmetry transformations, see [5] or [12].

In the transversally isotropic case, one rotation around a canonic axis by the angle , generates a sufficient subset of the transversally isotropic symmetry group. However, the hexagonal symmetry group can be used for brevity.

It may happen that the symmetry groups of two stiffness tetradics differ only by some rotation \(\mathbb{R}\in \text{SO(3)}\)

$$ \mathcal{G}_{\text{isom.}} \big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}, \, \mathbb{R}\big) = \mathbb{R} * \mathcal{G}\big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big) = \left \{ \mathbb{R} *\mathbb{Q}_{1},\, \mathbb{R} * \mathbb{Q}_{2}, \dots \right \} \quad \text{with} \quad \mathbb{Q}_{i} \in \mathcal{G}\big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big) \ . $$
(2.4)

In such cases we call the two symmetry groups isomorphic. The isomorphic symmetry group can be considered as the orbit of \(\mathcal{G}\big ( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big )\) under \(\text{SO(3)}\).

For a given symmetry group, the symmetry class is defined as the set of all stiffnesses with either the same or some isomorphic symmetry group, i.e.,

$$ \mathcal{K}\left ( \mathcal{G}_{\text{isom.}}\right ) = \left \{ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \in \mathcal{S}: \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}= \mathbb{Q} * \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}, \forall \mathbb{Q} \in \mathcal{G}_{\text{isom.}} \right \} \subseteq \mathcal{S}\ . $$
(2.5)

3 Symmetry Bases of Stiffnesses

If an ideal stiffness is represented in the symmetry base, its symmetry class can be identified by the form of the component matrix in Voigt-notation. The typical forms of the component matrices can be found in various publications like, e.g., [12, 14]. The symmetry base is often referred to as the crystal base. However, this notion applies also in cases without crystal lattice but some other structure inducing anisotropy like fiber-reinforced composites.

Usually the symmetry base of a given stiffness is not known. This yields that the symmetry class can not be immediately identified by the form of the Voigt-representation. Therefore a rotation is needed that transforms the given Voigt-representation into a representation for a certain symmetry. If we only consider orthonormal vector bases, such a transformation is given by some orthogonal tensor the determination of which is non-trivial.

An algorithm to determine this tensor has been provided by [2], based on [1] and [7], which applies only for the non-cubic cases as we will discuss in the sequel. It makes use of the fact that every tensor can be decomposed into a totally symmetric part and a residual. Consider the tensor

B n = B i 1 i 2 i n e i 1 e i 2 e i n
(3.1)

of order \(n\) in a given base { e i } . For brevity we introduce the index set

$$ I = \left \{ i_{1},\, i_{2},\dots ,\, i_{n} \right \} $$
(3.2)

so that B n = B I e i 1 e i 2 e i n .

Next we consider permutations of some given index set \(I\). We denote a permutation of the index set as \(\sigma _{i}\left (I\right )\) like, e.g., \(\sigma _{2}\left (I\right ) = \left \{ i_{2},\, i_{1},\dots ,\, i_{n} \right \} \). It is known, that there are \(n!\) of such permutations. The totally symmetric part of a tensor of \(n\)th-order is defined as

sym B n = 1 n ! i = 1 n ! B σ i ( I ) e i 1 e i 2 e i n .
(3.3)

Similarly, the residual is defined as

$$ \operatorname{skw} \overset{\scriptscriptstyle \langle n \rangle }{\mathbb{B}} = \overset{\scriptscriptstyle \langle n \rangle }{\mathbb{B}} - \operatorname{sym} \overset{\scriptscriptstyle \langle n \rangle }{\mathbb{B}} \ . $$
(3.4)

To further explain this concept consider as an example the fourth-order tensor

D 4 = D i j k l e i e j e k e l .
(3.5)

The symmetric part can be calculated as

sym D 4 = 1 24 ( D i j k l + D i j l k + D i k j l + D i k l j + + D i l k j + D i l j k + D j i k l + ) e i e j e k e l .
(3.6)

However, if the fourth-order tensor shows the major and the two subsymmetries as defined in Eq. (2.3), the calculation simplifies to

sym D 4 = 1 3 ( D i j k l + D i k j l + D i l j k ) e i e j e k e l .
(3.7)

3.1 Decomposition of the Stiffness Tensor

Every stiffness \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \in \mathcal{S}\) can be decomposed into a totally symmetric and a residual part, i.e.,

K 4 = K i j k l e i e j e k e l = S 4 + A 4
(3.8)

with

S 4 =sym K 4 = 1 3 ( K i j k l + K i k j l + K i l j k ) e i e j e k e l
(3.9)

and

A 4 =skw K 4 = 1 3 (2 K i j k l K i k j l K i l j k ) e i e j e k e l .
(3.10)

As shown in [2], the residual can be constructed from a symmetric second-order tensor \(\mathbb{T}\) as

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}} = \mathbb{1}\otimes \mathbb{T}+ \mathbb{T}\otimes \mathbb{1}- \frac{1}{2} \left [ \mathbb{1} \overset{\scriptscriptstyle (243)}{\otimes } \mathbb{T}+ \mathbb{T}\overset{\scriptscriptstyle (243)}{\otimes } \mathbb{1}+ \mathbb{1}\overset{\scriptscriptstyle (24)}{\otimes } \mathbb{T}+ \mathbb{T}\overset{\scriptscriptstyle (24)}{\otimes } \mathbb{1} \right ] \ . $$
(3.11)

Note the cyclic permutations that need to be performed with the bases vectors in order to obtain the correct result. The symmetric second-order tensor can be calculated as

$$ \mathbb{T}= \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}} {} \overset{\scriptscriptstyle \langle 2\rangle }{\cdot } {} \mathbb{1}- \frac{1}{4} \big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}} {} \overset{\scriptscriptstyle \langle 4\rangle }{\cdot } {} \mathbb{1}\otimes \mathbb{1}\big) \mathbb{1}\ . $$
(3.12)

It was shown by Baerheim that the base of a stiffness \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\) is a symmetry base if and only if it is the spectral base of \(\mathbb{T}\). This fact can be used to find the transformation \(\mathbb{Q}\in \text{SO(3)}\) that transforms a non-symmetry into a symmetry base.

However, this is not to be confused with finding the symmetry class of \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\). Finding the rotation ℚ allows us to rotate the stiffness into a base where the symmetry transformations in the symmetry groups are known and it is therefore a pre-processing step for finding the symmetry class. The decision to which symmetry class a stiffness belongs is based on a distance measure and thus completely independent of any part of the harmonic decomposition.

The transformation \(\mathbb{Q}\in \text{SO(3)}\) can be calculated by following the steps below.

  1. 1.

    Calculate the residual part \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}}\) of the stiffness, cf. Eq. (3.10).

  2. 2.

    Calculate the symmetric second-order tensor \(\mathbb{T}\), cf. Eq. (3.12).

  3. 3.

    Solve the three-dimensional eigenvalue and eigenvectors problems for \(\mathbb{T}\).

  4. 4.

    Find the orthogonal transformation \(\mathbb{Q}\in \text{SO(3)}\) that brings \(\mathbb{T}\) into spectral form.

  5. 5.

    Calculate \(\mathbb{Q}* \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\) to get the stiffness in a symmetry base.

The symmetry base is not unique for two reasons. First, one needs to choose an ordering of eigenvalues which will affect the transformation. Second, while calculating the eigenvectors one can choose to multiply any eigenvector by −1. The result is still an eigenvector.

As we have already mentioned this method is not applicable in the case of a cubic symmetry. This can be shown as follows. Every cubic stiffness can be written as

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}= \sum _{i=1}^{3} \lambda _{i} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{P}}_{i} $$
(3.13)

with the three projectors

P 4 1 = 1 3 11, P 4 2 = i = 1 3 e i e i e i e i P 4 1 and P 4 3 = 1 4 sym P 4 1 P 4 2 ,
(3.14)

with

1 4 sym = 1 2 ( e i e j e i e j + e i e j e j e i ) ,
(3.15)

see [3, 4]. This yields

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}} \big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big) = \frac{2\left (\lambda _{1} - \lambda _{2}\right ) - 3 \lambda _{3}}{9} \bigg[ \mathbb{1}\otimes \mathbb{1}- \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{1}}}_{ \text{sym}}\bigg] \ . $$
(3.16)

It is obvious that the residual is an isotropic tensor in case of a cubic stiffness \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\). Furthermore, the residual part is in general an isotropic tensor function of \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\). Both facts yield

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}} \big( \mathbb{Q}* \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big) = \mathbb{Q}* \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}} \big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big) = \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}} \big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big) \qquad \forall \mathbb{Q}\in \text{SO(3)}\ , $$
(3.17)

i.e., rotations of cubic stiffnesses can not be detected.

In order to calculate the stiffness components in a symmetry base for the cubic case, another method must be employed. One may consider the following scalar products,

$$\begin{aligned} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}{} \overset{\scriptscriptstyle \langle 4\rangle }{\cdot } {} \mathbb{1}\otimes \mathbb{1}=3 \lambda _{1},\ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}{} \overset{\scriptscriptstyle \langle 4\rangle }{\cdot } {} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{1}} = \lambda _{1} + 2 \lambda _{2} + 3\lambda _{3} {} \quad \text{and} \quad \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}{} \overset{\scriptscriptstyle \langle 4\rangle }{\cdot } {} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}= \lambda _{1}^{2} + 2 \lambda _{2}^{2} + 3\lambda _{3}^{2} \ . \end{aligned}$$
(3.18)

These equations have two sets of solutions. To find out which set contains the eigenvalues of \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\), one can use its characteristic equation, i.e.,

$$ \det \big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}- \lambda \mathbb{1}\big) = \left (\lambda _{1} - \lambda \right ) \left (\lambda _{2} - \lambda \right )^{2}\left (\lambda _{3} - \lambda \right )^{3} = 0 \ . $$
(3.19)

We substitute the two sets of candidates into the characteristic equation using Voigt-notation which is only zero for the eigenvalues. After identifying the eigenvalues, the stiffness components in the symmetry base can be calculated as

$$ K_{1111} = \frac{\lambda _{1} + 2 \lambda _{2}}{3}, \ K_{1122} = \frac{\lambda _{1} - \lambda _{2}}{3} \quad \text{and} \quad K_{2323} = \frac{\lambda _{3}}{2} \ . $$
(3.20)

Both, the Baerheim-method and the eigenvalue method for cubic stiffnesses provide algorithms to find the symmetry base for every stiffness. In the case of ideal stiffnesses the symmetry class of a stiffness in a symmetry base can be identified by means of typical forms of the Voigt-matrices, see, e.g., [14].

4 Distance Between a Stiffness and a Symmetry Class

The identification of the symmetry class by means of standard forms that we described in the previous section is only possible for ideal stiffnesses, i.e., stiffnesses without scattering. However, stiffnesses obtained by measurements or numerical experiments are in general non-ideal. A way to associate a symmetry class with non-ideal stiffnesses is to find the nearest symmetry class by calculating the distance to all symmetry classes.

Since a symmetry class is a set of stiffnesses with certain properties, it is not trivial to define the distance between a stiffness and a symmetry class. After [15], we are defining the distance as the distance between a stiffness and the nearest stiffness in a given symmetry class. A formula for the latter is provided by [9],

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{\mathcal{G}}\big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \big) = \frac{1}{\left |\mathcal{G}\right |} \sum _{i=1}^{\left | \mathcal{G}\right |} \mathbb{Q}_{i} * \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}, \quad \mathbb{Q}_{i} \in \mathcal{G}\ , \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}} \in \mathcal{S},$$
(4.1)

where \(\left |\mathcal{G}\right |\) is the cardinality of \(\mathcal{G}\), i.e., the number of elements in the group. It is introduced as an average of the orbit of a stiffness in a symmetry group. Earlier Gazis et al. [10] introduced a similar calculation procedure using an integral average. Equation (4.1) is applicable for the triclinic, monoclinic, orthotropic, tetragonal, cubic, trigonal, and hexagonal symmetry classes. The isotropic and the transversally isotropic case need a different solution.

In order to calculate the distance of a stiffness to the isotropic class, the isotropic part of the stiffness is used,

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{ \mathcal{G}_{\text{iso}}} = \frac{1}{15} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}{} \overset{\scriptscriptstyle \langle 4\rangle }{\cdot } {} \big( 2 \mathbb{1}\otimes \mathbb{1}- \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{1}}}_{ \text{sym}}\big) \mathbb{1}\otimes \mathbb{1}- \frac{1}{15} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}{} \overset{\scriptscriptstyle \langle 4\rangle }{\cdot } {} \big( \mathbb{1}\otimes \mathbb{1}- 3 \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{1}}}_{ \text{sym}}\big) \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{1}}}_{ \text{sym}}\ . $$
(4.2)

In the transversally isotropic case, the nearest hexagonal stiffness is used since it is always equal to the nearest transversally isotropic stiffness. This is due to the fact that the maximal number of constraints on a stiffness due to rotations around one symmetry axis is reached by five rotations with the angle . This means that the resulting nearest stiffness does not change if rotations around a symmetry axis with the angle are considered. In order to avoid the introduction of a pentagonal symmetry class, the hexagonal symmetry class is used.

Finally, the distance between a stiffness and a symmetry class is introduced by [15] as

$$ d \big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}, \, \mathcal{G}\big) = \frac{\lVert \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\vphantom{\mathbb{K}} - \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{\mathcal{G}}\big(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\vphantom{\mathbb{K}} \big) \rVert }{\lVert \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\rVert } \ , $$
(4.3)

with the Frobenius-norm of an \(n\)th-order tensor

$$ \lVert \overset{\scriptscriptstyle \langle n \rangle }{\mathbb{A}} \rVert = \big( \overset{\scriptscriptstyle \langle n \rangle }{\mathbb{A}} {} \overset{\scriptscriptstyle \langle n\rangle }{\cdot } {} \overset{\scriptscriptstyle \langle n \rangle }{\mathbb{A}} \big)^{\frac{1}{2}} \ . $$
(4.4)

The definition of the distance is unit-dependent and generally yields different results if the compliance is used instead of the stiffness. In order to obtain the same value in both cases, a logarithmic distance measure can be used, see [11]. A similar conclusion was already drawn by [6]. However, in the present context the absolute value of the distance does not play an important role. Rather it is the order that is induced by all such distances in exactly the same way.

Equation (4.3) involves the nearest stiffness in the symmetry class \(\mathcal{G}\). If \(\mathcal{G}\) is not the isotropic class this means that the symmetry transformations for the employed representation of the stiffness needs to be known. However, the symmetry transformations are generally unknown. Therefore, one needs to use the algorithm by Baerheim first in order to ensure that the stiffness is in a symmetry base. According to the symmetry base, the symmetry transformations are known and the distance can be calculated.

5 Finding the Symmetry Class of an Arbitrary Stiffness

The symmetry classification of stiffnesses has been the topic of discussions in the mechanics community for some decades. The recent paper by Weber et al. [15] used a numerical optimization scheme to find the canonic base of the stiffness. However, non-linear optimization comes with some computational afford as well as the risk of finding second-degree minima. We therefore present here a completely algebraic solution for the symmetry classification problem.

Such a scheme is not convenient to be performed manually. We therefore employ a computational implementation.

5.1 Computational Implementation

In order to find the symmetry class of any given stiffness, the symmetry transformations of the symmetry groups are needed. To calculate these transformations the generators in Table 1 are used. We treat the transversally isotropic case as hexagonal since the restrictions concerning the stiffness are the same in both cases. Furthermore, Eq. (4.2) is employed to calculate the nearest isotropic stiffness. In order to classify the symmetry class of a stiffness \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\)Baerheim’s algorithm is employed. This yields one of twelve equivalent canonic stiffnesses. These equivalent stiffnesses are connected via the transformations of the cubic symmetry group. The cubic transformations rotate a base in a way that the Cartesian base vectors are mapped onto one another or their negatives. The cubic transformations are given by

(5.1)

where . Since we do not know which orientation we are getting for any given stiffness, all twelve stiffnesses need to be considered. Furthermore, all orientations of the considered stiffness are normalised using the Frobenius-norm, i.e.,

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{O}}}_{i} = \frac{\mathbb{P}_{i} * \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}}{\lVert \mathbb{P}_{i} * \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}\rVert } \qquad \text{with} \qquad i \in \left \{ 1, 2, \dots , 12\right \} \ . $$
(5.2)

The distance between all normalised orientations and stiffness is calculated by using Eq. (4.3). For isotropic and transversally isotropic stiffnesses the aforementioned workarounds are applied. The minimum of the distances between the different orientations of the stiffness to one symmetry class is considered as the distance of the stiffness to the symmetry class, i.e.,

$$ d \big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}, \mathcal{G}\big) = \min _{i \in \left \{ 1, 2, \dots , 12\right \} } \lVert \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{O}}}_{i} - \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{\mathcal{G}}\big( \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{O}}}_{i} \big) \rVert \ . $$
(5.3)

The computational implementation is further illustrated by Fig. 1.

Fig. 1
figure 1

Flow chart for computational implementation of the symmetry classification algorithm

Table 1 Generators of the discrete symmetry groups, see [13]. The diagonal is given by

5.2 Examples

In the following paragraph purely academic examples for the identification of the symmetry class of stiffnesses are given. The unit of the stiffnesses is suppressed for brevity.

5.2.1 Stiffness with Scattering in a Non-canonic Base

We are going to look at an example that could be encountered while measuring a stiffness either experimentally or numerically. Consider the randomly generated stiffness

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{ \text{ex1}} = \begin{pmatrix} 9.35 & 5.81 & -0.20 & 5.10 & 4.06 & -2.51 {} \\ {} 5.81 & 11.09 & 2.67 & -0.83 & -3.92 & 2.79 {} \\ {} -0.20 & 2.67 & 11.01 & -0.1 & -2.95 & 0.57 {} \\ {} 5.10 & -0.83 & -0.1 & 8.13 & -1.16 & 0.80 {} \\ {} 4.06 & -3.92 & -2.95 & -1.16 & 7.94 & 2.01 {} \\ {} -2.51 & 2.79 & 0.57 & 0.80 & 2.01 & 8.13 \end{pmatrix} _{ij} \hat{\mathbb{E}}_{i} \otimes \hat{\mathbb{E}}_{j} \ . $$
(5.4)

It is obvious that there is no observable structure in the non-canonic form of the stiffness. In order to find the symmetry class of the stiffness we firstly calculate the residual part of the stiffness, cf. Eq. (3.10),

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{A}}_{ \text{ex1}} = \begin{pmatrix} 0 & 1.16 & -2.80 & 2.45 & 0 & 0 {} \\ {} 1.16 & 0 & -0.93 & 0 & -2.99 & 0 {} \\ {} -2.80 & -0.93 & 0 & 0 & 0 & 0.93 {} \\ {} 2.45 & 0 & 0 & 0.93 & -0.66 & 2.11 {} \\ {} 0 & -2.99 & 0 & -0.66 & 2.78 & -1.73 {} \\ {} 0 & 0 & 0.93 & 2.11 & -1.73 & -1.16 \end{pmatrix} _{ij} \hat{\mathbb{E}}_{i} \otimes \hat{\mathbb{E}}_{j} $$
(5.5)

as well as the corresponding symmetric second order tensor, cf. Eq. (3.12),

T ex1 = ( 0.34 0.66 2.11 0.66 1.50 1.73 2.11 1.73 2.44 ) i j e ˆ i e ˆ j .
(5.6)

Solving the eigenvalue problem for \(\mathbb{T}_{\text{ex1}}\) yields the canonic transformation

Q= e i e ˆ i = ( 0.49 0.3 0.82 0.87 0.25 0.42 0.08 0.92 0.38 ) i j e i e j .
(5.7)

It is worth mentioning that this result is non-unique. One is free to choose the ordering of the calculated eigenvectors. As a result, the columns of the component matrix of the canonic transformation can be ordered in several ways.

Using the canonic transformation, we are able to calculate a canonic form of the stiffness,

$$\begin{gathered} \begin{aligned} \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{ \text{ex1}} &= \begin{pmatrix} 9.35 & 5.81 & -0.20 & 5.10 & 4.06 & -2.51 {} \\ {} 5.81 & 11.09 & 2.67 & -0.83 & -3.92 & 2.79 {} \\ {} -0.20 & 2.67 & 11.01 & -0.1 & -2.95 & 0.57 {} \\ {} 5.10 & -0.83 & -0.1 & 8.13 & -1.16 & 0.80 {} \\ {} 4.06 & -3.92 & -2.95 & -1.16 & 7.94 & 2.01 {} \\ {} -2.51 & 2.79 & 0.57 & 0.80 & 2.01 & 8.13 \end{pmatrix}_{ij} \hat{\mathbb{E}}_{i} \otimes \hat{\mathbb{E}}_{j} {} \\ {} &= \begin{pmatrix} 7.76 & 2.45 & 0.96 & 0.12 & -0.11 & 0.07 {} \\ {} 2.45 & 4.00 & 9.64 & 0.08 & -0.03 & -0.15 {} \\ {} 0.96 & 9.64 & 10.16 & 0.08 & -0.14 & 0.00 {} \\ {} 0.12 & 0.08 & 0.08 & 10.16 & 0.00 & -0.05 {} \\ {} -0.11 & -0.03 & -0.14 & 0.00 & 8.36 & 0.02 {} \\ {} 0.07 & -0.15 & 0.00 & -0.05 & 0.02 & 15.23 \end{pmatrix}_{ij} \mathbb{E}_{i} \otimes \mathbb{E}_{j} \ . \end{aligned} \end{gathered}$$
(5.8)

As explained in Paragraph 5.1, this is one of twelve equivalent representations. It is obvious that a structure is beginning to emerge. However, there appears to be some scattering in the stiffness. To identify the symmetry class of the stiffness, the distance to all the symmetry classes needs to be considered. The distances to various classes of symmetry are shown in Fig. 2. Since triclinic is the maximal symmetry class the distance of any stiffness to the triclinic class is always zero. Furthermore, it is noteworthy that the distances to the monoclinic and the orthotropic class are small and nearly the same. The distance to the monoclinic class is smaller since it includes the orthotropic class but is able to take more of the scattering into account. However, it can be concluded that \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{ \text{ex1}}\) is almost orthotropic and needs nine independent constants to describe the materials behaviour.

Fig. 2
figure 2

Distances between the stiffness \(\overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{ \text{ex1}}\) and the symmetry classes

5.2.2 Ideal Cubic Stiffness in a Non-canonic Base

Consider the experimental measurement of the stiffness of a material which is known to be cubic. Due to a misalignment in the measuring apparatus the following stiffness is measured

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{ \text{ex2}} = \begin{pmatrix} 3.96 & 7.68 & 7.82 & 0.04 & 0.35 & -1.44 {} \\ {} 7.68 & 6.61 & 5.17 & -2.43 & 0.21 & 0.83 {} \\ {} 7.82 & 5.17 & 6.47 & 2.39 & -0.57 & 0.61 {} \\ {} 0.04 & -2.43 & 2.39 & -1.97 & 0.87 & 0.30 {} \\ {} 0.35 & 0.21 & -0.57 & 0.87 & 3.34 & 0.06 {} \\ {} -1.44 & 0.83 & 0.61 & 0.30 & 0.06 & 3.06 \end{pmatrix} _{ij} \hat{\mathbb{E}}_{i} \otimes \hat{\mathbb{E}}_{j} \ . $$
(5.9)

The given stiffness was randomly generated for illustration purposes. Using Eqs. (3.18) the followings system of equations is acquired,

$$\begin{gathered} \begin{aligned} 3 \lambda _{1} &\approx 58.40 \ , {} \\ {} \lambda _{1} + 2 \lambda _{2} + 3 \lambda _{3} &\approx 21.48 \ , {} \\ {} \lambda _{1}^{2} + 2 \lambda _{2}^{2} + 3 \lambda _{3}^{2} & \approx 4.5 \cdot 10^{2} \ . \end{aligned} \end{gathered}$$
(5.10)

This system of equations has two solution sets. However, only the eigenvalues fulfil the characteristic equation, see Eq. (3.19). This fact can be used to decide which solution set contains the eigenvalues, and we find that

$$ \lambda _{1} \approx 19.47~\text{GPa} \ , \qquad \lambda _{2} \approx -4.25~\text{GPa} \qquad \text{and} \qquad \lambda _{3} \approx 3.50~\text{GPa} $$
(5.11)

is the eigenvalue solution of Eq. (5.10). Using the eigenvalues in Eq. (3.20) find

$$ \overset{\scriptscriptstyle \langle 4 \rangle }{\mathbb{{K}}}_{ \text{ex2}} = \begin{pmatrix} 3.66 & 7.91 & 7.91 & 0 & 0 & 0 {} \\ {} 7.91 & 3.66 & 7.91 & 0 & 0 & 0 {} \\ {} 7.91 & 7.91 & 3.66 & 0 & 0 & 0 {} \\ {} 0 & 0 & 0 & 3.50 & 0 & 0 {} \\ {} 0 & 0 & 0 & 0 & 3.50 & 0 {} \\ {} 0 & 0 & 0 & 0 & 0 & 3.50 \end{pmatrix} _{ij} \mathbb{E}_{i} \otimes \mathbb{E}_{j} \ . $$
(5.12)

It is obvious that this is the Voigt-representation of a cubic stiffness.

6 Conclusion

We presented a method to assign a symmetry class to ideal as well as measured stiffnesses. The identification is based on the distance of a stiffness to a symmetry class to allow for taking scattering in measured stiffnesses into account. As an intermediate step, the stiffness is rotated into a special base by either the Baerheim or the eigenvalue method (cubic case). This special representation is then used to find the closest element to the stiffness in a given symmetry class. Finally, the relative distance between the stiffness and the closest element in the given symmetry class is calculated as distance of the stiffness to the symmetry class. The procedure has been illustrated by examples of relevant cases.