Transforming a tensor from Crystal to Laboratory frame of Reference

I want to transform the stiffness tensor of a rhombohedral crystal from crystallographic frame of reference to laboratory fame of reference, how to do it ?

For crystal structures having orthogonal crystallographic axes (like tetragonal or orthorhombic), one can simply use the transformation of axes system (like Euler's angles based transformation matrix) to simply rotate the tensor property to achieve the goal. But I am not sure how to achieve the same with crystal with non orthogonal axes like rhombohedral/trigonal crystals with axes making angles of 60 degrees with each other.

Will be thankful for any suggestion.

• I can try to write it down, but you have to provide more details. Define this tensor. What goes in, what comes out? Define your crystal frame, including reciprocal lattice basis, define your lab-frame. The principles for tranforming tensors are not too complex. I suspect all you are missing is carefully defined terms – Cryo Aug 23 '19 at 21:19
• Thanks for your interest in my problem. We can use a general stiffness tensor (6X6) for rhombohedral crystals, having elements C11, C22, C33 defined along three crystallographic axes a, b and c respectively and so on. Let us take a laboratory frame of reference with X, Y and Z orthogonal axes making angles of 90 degrees with b, c and a crystallographic axes respectively. I am not sure how to add a picture here, but please let me know if it is not clear. – user49535 Aug 24 '19 at 6:03

Let's say your crystal basis is: $$\mathbf{a}, \mathbf{b}, \mathbf{c}$$. These vectors are linearly independent, but need not be orthogonal or normalized.

Let's say your lab frame basis is: $$\mathbf{\hat{x}}, \mathbf{\hat{y}}, \mathbf{\hat{z}}$$. These vectors are orthogonal and normalized.

In general any vector $$\mathbf{V}$$ can be expressed in the lab-frame

$$\mathbf{V}=V^1 \mathbf{\hat{x}} + V^2 \mathbf{\hat{y}} + V^3 \mathbf{\hat{z}} = V^i\mathbf{\hat{e}}_i$$

Note the notation, $$V^i$$ is the i-th component of the vector in the lab-frame, and $$\mathbf{\hat{e}}_{i=1,2,3}=\mathbf{\hat{x}},\mathbf{\hat{y}},\mathbf{\hat{z}}$$. The repeated index implies summation, i.e. $$V^i\mathbf{\hat{e}}_i=V^1 \mathbf{\hat{e}}_2 + V^1 \mathbf{\hat{e}}_2 + V^3 \mathbf{\hat{e}}_3$$

The same vector can be written in the crystal basis:

$$\mathbf{V}=\bar{V}^i \mathbf{u}_i$$

Where $$\bar{V}^i$$ is the i-th component in crystal frame and $$\mathbf{u}_{i=1,2,3}=\mathbf{a},\mathbf{b},\mathbf{c}$$

Since both crystal frame basis set and the lab-frame basis set are linearly independent there will exist an invertible matrix $$\Lambda^i_{\:j}$$, such that:

$$V^i=\Lambda^i_{\:j} \bar{V}^j$$

I.e. it converts the vectors between the two frames. For example, if you were to define

$$\mathbf{\hat{x}}=\left(\array{ 1 \\ 0 \\ 0}\right),\quad \mathbf{\hat{y}}=\left(\array{ 0 \\ 1 \\ 0}\right),\quad \mathbf{\hat{z}}=\left(\array{ 0 \\ 0 \\ 1}\right)$$

and

$$\mathbf{a}=\left(\array{ a_x \\ a_y \\ a_z}\right),\quad \mathbf{b}=\left(\array{ b_x \\ b_y \\ b_z}\right),\quad \mathbf{c}=\left(\array{ c_x \\ c_y \\ c_z}\right)$$

Then the $$\Lambda^i_{\:j}$$ would be in the i-th row and j-th column of matrix:

$$\left(\array{a_x & b_x & c_x \\ a_y & b_y & c_y \\ a_z & b_z & c_z}\right)$$

Now we can talk about the stiffness tensor. Firstly, $$6\times 6$$ makes no sense in 3d space. Looking at the wikipedia, stiffness tensor is a rank-4 tensor with exchange symmetry in the first two and the last two indices. It does mean that it has 36 components, but IMHO you should not call it $$6\times 6$$.

So I would define this stiffness tensor like that:

$$\sigma_{ij}=C_{ijkl} \epsilon^{kl},\: C_{ijkl}=C_{jikl}=C_{ijlk}$$

Where $$C$$ is the stiffness tensor, $$\epsilon$$ is ?elsticity tensor? and $$\sigma$$ is the stress. I am following Wikipedia here, but the basic problem is that all of that notation is written assuming trivial metric, so up-stairs/down-stairs indices can all be mixed. However if your basis set is not orthogonal, you cannot not do it (this is why you have crystal latice vectors and reciprocal lattice vectors).

Assuming that I defined the tensor correctly, you can follow the standard conversion rules for the tensors. If the components of the stress tensor are:

$$\bar{C}_{ijkl}$$ in crystal basis,

the componentents in the lab frame are:

$$C_{ijkl} = \left(\Lambda^{-1}\right)^{i'}_{\:i}\left(\Lambda^{-1}\right)^{j'}_{\:j}\left(\Lambda^{-1}\right)^{k'}_{\:k}\left(\Lambda^{-1}\right)^{l'}_{\:l}\bar{C}_{ i'j'k'l'}$$

I would suggest trying it for some simpler tensor first, the principle is straightforward, but the calculations are best done on computer.