Snippet: Matrix with Euler angles

This snippet posts an Excel to calculate the matrix with Euler angles. To describe the rotation of a crystal frame, commonly, we use three angles: $ \alpha$, $ \beta$, and $ \gamma$. They are also known as Bunge angles.

The matrix to rotate the crystal frame in reference frame is described by Euler angles as below:

$$ \displaystyle \mathbf{B}=\begin{bmatrix}
\begin{matrix}
\cos(\alpha)\cos(\gamma) \\
– \sin(\alpha)\sin(\gamma)\cos(\beta)
\end{matrix}&
\begin{matrix}
\sin(\alpha)\cos(\gamma) \\
+\cos(\alpha)\sin(\gamma)\cos(\beta)
\end{matrix}&
\sin(\gamma)\sin(\beta)\\
\begin{matrix}
-\cos(\alpha)\sin(\gamma) \\
– \sin(\alpha)\cos(\gamma)\cos(\beta)
\end{matrix}&
\begin{matrix}
-\sin(\alpha)\sin(\gamma) \\
+ \cos(\alpha)\cos(\gamma)\cos(\beta)
\end{matrix}& \cos(\gamma)\sin(\beta)\\
\sin(\alpha)\sin(\beta) & -\cos(\alpha)\sin(\beta) & \cos(\beta)
\end{bmatrix} $$

In this Excel (Cf06b0.xlsx), you just need to input three Euler angles and the vector in reference frame. It will give the matrix and the inverse matrix with these three Euler angles. Also, it will give the vector in crystal frame.

Ea50Q5.png

This snippet is very useful for debugging the code with the rotation of Euler angles.

Add a 3D convex hull in ABAQUS

Convex hull is the smallest envelope that contains the points set. It is used to construct the grain in grain-based model. There are several methods to generate the convex hull data, but it may need some efforts if you want to put it into ABAQUS model. Here, I post a simple method which is suitable for programming.

Generate convex hull data

Several methods can be used to generate the convex hull data. I am used to generate the convex hull data with my own code. But if you do not like write code, you can use Mathematica or Matlab to generate the data.

For example, in Mathematica, you can use following code to generate a 3D convex hull:

pts = RandomReal[{-1, 1}, {20, 3}];
ConvexHullMesh[pts]

(more…)

A example of MD simulation

This is a homework of computational nanomechanics. The basic requirement is to use the Lagrangian function to describe the motion of particles. In homework, it requires 5 particles. As an enhancement, I rewrote the code with Qt and use GNU Scientific Library(GSL) to finish the task.

Concept

The Lagrangian equation of motion describe the particle motion with energy method, the equation is:

$$ \displaystyle \frac{d}{dt}\frac{\partial L}{\partial \dot{x}_k}-\frac{\partial L}{\partial x_k}=0$$

$ L$ is the Lagrangian function of the system, $ k$ denotes the degree of freedom.

$$ \displaystyle L = T – U$$

$ T$ is the kinetic energy and $ U$ is the potential energy.

(more…)