# Algorithm for identifying planes in a Bravais Lattice

I have a lattice with Lattice Vectors $(\vec{t}_1,\vec{t}_2,\vec{t}_3)$ which are NOT orthogonal in general.
How can I identify the atoms/unit cells that belong to a plane - that is normal to a given direction.
I do recognise that the lattice might not be periodic in ANY direction - only specific ones.

I worked out a way to calculate the periodicity of the lattice planes:
1. Given the direction $\vec{t}$, construct the corresponding reciprocal lattice vector G.
2. Project $\vec{G}$ in the direction of $\vec{t}$ and take the inverse of the length of the projected vector.
i.e. Distance between lattice planes normal to the direction $d = \vec{G}\cdot \frac{\vec{t}}{\vert\vec{t}\vert}$

My question, once again, is to find an algorithm that identifies the atoms in the crystal planes thus formed.

-

For "simple" planes that "fit" into one or a few unit cells of the lattice, the task is relatively simple, in that you just identify all atoms that belong to the plane in one such block and then use the periodicity of the crystal.

For the most general case, I'm not 100% sure what the best way would be. Here's an idea.

Let $T$ be the matrix whose columns are your lattice vectors. Let $P$ be the matrix whose columns are three vectors $\vec{u}, \vec{v}, \vec{d}$ where $\vec{u}$ and $\vec{v}$ lie in the plane you're interested in and $\vec{d}$ is perpendicular to that plane.

Then any point can be expressed as $$\begin{pmatrix}x\\ y\\ z\end{pmatrix} = P \cdot \begin{pmatrix}\alpha \\ \beta \\ \gamma \end{pmatrix} = T \cdot \begin{pmatrix}h\\ k\\ l\end{pmatrix}$$ Let's make the coordinate origin such that the plane goes through it. Then, a point that lies on the plane is characterized by $\gamma = 0$ in the above representation. On the other hand, lattice vectors are characterized by integer values of $h$, $k$, and $l$. Hence, we solve the above equation for $(h,k,l)$ and get $$\begin{pmatrix}h\\ k\\ l\end{pmatrix} = T^{-1} P \begin{pmatrix}\alpha\\ \beta \\ 0\end{pmatrix}$$

The lattice points that lie in the plane are then those points for which we can find values $\alpha$ and $\beta$ such that the resulting $h, k$ and $l$ are integers. Haven't thought much about how we could do that, though. I guess it depends on the particular plane, and some "inspection".

-
Thank you. This answer is very helpful. It made me think of the following - when inverted the relation between the two looks thus: $$\begin{pmatrix}h\\ k\\ l\end{pmatrix} = T^{-1} P \begin{pmatrix}\alpha\\ \beta \\ 0\end{pmatrix}$$ One may restrict $\gamma$ to be integral if the $\vec{d}$ has the length $d = \vec{G}\cdot \frac{\vec{t}}{\vert\vec{t}\vert}$. What is left now is that we can search for all $\gamma\in [0,1)$ and identify the lattice points "in" a plane. While that is a satisfactory state of affairs, there is the problem that I also need to identify a unit cell in plane. –  Debanjan Basu Mar 27 '13 at 12:37
As for inspection, I am trying to code this - and intuition doesn't aid in this regard. +1 for the nudge in the correct direction, but sorry for not marking as the correct answer. My problem still stays. –  Debanjan Basu Mar 27 '13 at 12:41