1

In a book that I am reading about atomistic simulations, it is claimed that if we take a body-centered cubic lattice in 3D, which is defined as $$ \Lambda_1 :=A\mathbb{Z}^3, $$ where $$ A = \begin{bmatrix}1/2&1/2&1/2\\-1/2&1/2&1/2\\-1/2&-1/2&1/2\end{bmatrix} $$ and project it along $(1,1,1)$-direction, then we end with a 2D homogeneous triangular lattice, defined as $$ \Lambda_2 := B\mathbb{Z}^2, $$ where $$ B = \begin{bmatrix}1&1/2\\0&\sqrt{3}/2\end{bmatrix}. $$ I am really bad at visualising 3D things and it's been ages since I last used any first-year geometry, so I really struggle here and would appreciate any potential help. The book says that we should take $\Lambda_1$ and rotate it so that the $(1/2,1/2,1/2)$ direction becomes $(0,0,\sqrt{3}/2)$ and that lattice point $(1,1,0)$ becomes $(\sqrt{2},0,0)$. Then apparently we get $$ \sqrt{2}\Lambda_2 = \{(l_1,l_2)\,|\,l\in\Lambda_1\}. $$ I am include to say that there is a typo here, as there seems to be no rotation which accommodates both conditions (I guess?). I understand the idea, as $(1/2,1/2,1/2)$ is the closest point to the origin lying on a plane defined via normal $(1,1,1)$ (that's why we call it projection along this direction?). So that after this rotation our projection along $(1,1,1)$ will just be dropping third coordinate. Using formalue available and consulting some questions here (in particular Transform a plane to the xy plane. ) I get a rotation matrix which takes $(1/2,1/2,1/2)$ to $(0,0,\sqrt{3}/2)$. What next though? My naive idea was for any other lattice site is to get a shifted plane still with normal $(1,1,1)$, i.e. $x+y+z = D$ for different constants $D$ so that a given lattice site belongs to this plane, then translate it onto the plane $x+y+z=0$, then use the rotation matrix and then translate it back to its actual place.

I am rather lost in the procedure though and have already spent way too much time on it, so I decided to ask. Many thanks for any hints.

Alex M.
  • 35,207
  • 1
    The description has a small bug: it is direction $(-1/2, 1/2, 1/2)$ that becomes $(0, 0, \sqrt{3}/2)$. The rotation matrix is $$\mathbf{R} = \left [ \begin{array}{ccc} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 \ -\frac{1}{\sqrt{6}} & \frac{1}{\sqrt{6}} & -\frac{2}{\sqrt{6}} \ -\frac{1}{\sqrt{3}} & \frac{1}{\sqrt{3}} & \frac{1}{\sqrt{3}} \end{array} \right ]$$ – Nominal Animal May 23 '17 at 00:30
  • 1
    I like to use gnuplot to quickly visualize point sets. With Bash, you can create a small chunk of BCC lattice using N=2; for ((z=-N; z<=N; z++)); do for ((y=-N; y<=N; y++)); do for ((x=-N; x<=N; x++)); do printf '%d %d %d %d %d %d\n' $[2*x] $[2*y] $[2*z] $[2*x+1] $[2*y+1] $[2*z+1] ; done ; done ; done > bcc.xyz. Each line in file bcc.xyz specifies two lattice points. In gnuplot, run set view equal xyz ; splot "bcc.xyz" u 1:2:3 notitle w points lc 1, "bcc.xyz" u 4:5:6 notitle w points lc 3 to plot them. The x11 output allows you to rotate the view using the mouse in real time. – Nominal Animal May 23 '17 at 00:42

1 Answers1

1

I enjoy Mathematica visualizations, so here are some that may be helpful. First, we generate the lattice as the image of integer vectors $\{j e_1+k e_2+l e_3\}$ under the action of $A$:

lattice=Flatten[Table[{{j, k, l}}.Transpose[{{1, 1, 1}, {-1, 1, 1}, {-1, -1, 1}}],
{j, -10, 10}, {k, -10, 10}, {l, -10, 10}], 3];

(I use row vectors here and consider the action of $A$ on the right for Mathematica convenience. The Flatten command is used to render the result as an array of row vectors.)

With the lattice at hand, we can create a few different visualizations. For instance, we can obtain the unit cell for the BCC lattice:

Show[Graphics3D[{Sphere[lattice, .15], Opacity[0.2, Blue],Cuboid[{0, 0, 0}, 2{1, 1, 1}]}],
PlotRange -> {{-.1, 1.1}, {-.1, 1.1}, {-.1, 1.1}} 2, Boxed -> False]

enter image description here

Or we can just take a bunch of lattice points:

Show[Graphics3D[{Sphere[lattice,.15]}], PlotRange->{{-.6, 1.1}, {-.6, 1.1}, {-.6, 1.1}} 3,
Boxed -> True]

enter image description here

From the first image we can already see somewhat the six-fold symmetry that we're looking for. To make this more evident, we include the option ViewPoint->{1,1,1}10 in the Show command for the second picture. (The {1,1,1}10 makes it so the viewpoint is set along the $(1,1,1)$ direction and from far away from the origin.)

enter image description here

From this we see that the projection onto the $(1,1,1)$ direction is indeed a hexagonal lattice.

Semiclassical
  • 15,842
  • That's absolutely amazing, thank you very much :) Having this for playing is a game-changer for my fundamentally flawed 3D perception! What still bothers me, however, is how to recover it from a purely algebraic approach. I have found a rotation matrix which takes $(1/2,1/2,1/2)$ onto to $(0,0,\sqrt{3}/2)$, (rotation around axis $(1,-1,0)$ by an angle $arccos(1/\sqrt{3})$), but this does not rotate other points as intended. I think I might be fundamentally mistaken. – Pink and Floyd May 08 '17 at 01:01
  • 1
    The sequence of rotations that I find is: Rotate around the $z$-axis to map the $(1/2,1/2,1/2)$ vector to $(0,1/\sqrt{2},1/2)$, rotate around the $x$-axis to send this further to $(0,0,\sqrt{3}/2)$, and then rotate around the $z$-axis again so that the initial $(1,-1,-1)$ vector has no $y$-component. That gives $RA$ with upper-left submatrix $\begin{pmatrix} \sqrt{2/3} & 1\sqrt{6} \ 0 & 1/\sqrt{2}\end{pmatrix}$, which up to an overall constant agrees with $B$. (I think that's just a matter of normalizing the columns, but I don't entirely like this.) – Semiclassical May 09 '17 at 19:14