# Primitive unit cell of fcc

When I consider the primitive unit cell of a fcc lattice (red in the image below) the lattice points are only partially part of the primitive unit cell. All in all the primitive unit cell contains only one single lattice point.

My question is how much each point at the corners of the red primitive unit cell contributes? At every corner a point is only partially inside the red primitive unit cell such that all parts together form a single point. How big are these individual parts?

In principle it should be possible to calculate that, but I hope there a known results in the literature. Unfortunately I can't find no such thing...

• @JohnRennie - fcc is not a hexagonal Bravais lattice - it really is in the cubic family. Yes, the packings are related, but the end results are not the same symmetry. Oct 6, 2015 at 12:58

I know this is an old question, but I recently worked on this exact problem and I believe none of the answers given are correct. The issue with linuxick's solution is that only two of three possible angles are multiplied together to form the "solid angle". The corner-atoms have only $60^o$ angles, but all the face-atoms have two $120^o$ angles and one $60^o$ angle. There should therefore only be two different ratios, so the statement that the closest and furthest atoms contribute more seems invalid. The following is (I believe) a more rigid answer.

Start with the primitive vectors that define rhombohedral primitive cell of the FCC structure:

$$\vec a_1 = \frac{a}{2}(\hat x + \hat y),\hspace{.5cm} \vec a_2 = \frac{a}{2}(\hat y + \hat z),\hspace{.5cm} \vec a_3 = \frac{a}{2}(\hat x + \hat z).$$ Here $\hat x,\hat y, \hat z$ denotes the traditional unit vectors in the cubic structure, and $a$ is the spacing between the atoms. (We can note that the angle between any two of these vectors is $60^o$).

To determine how much each corner of the rhombohedral contribute to the primitive cell, we can look at the three outgoing lines from a point, and calculate the (proper) solid angle that they span out. The formula for this is (found here):

$$\Omega(\vec a, \vec b,\vec c) = 2\arctan \left(\frac{(\vec a\times\vec b)\cdot \vec c}{|\vec a||\vec b||\vec c| + |\vec a|(\vec b\cdot \vec c) + |\vec b|(\vec a\cdot \vec c) + |\vec c|(\vec a\cdot \vec b)}\right).$$

If we take the ratio of this solid angle to the solid angle of a full sphere, $4\pi$, we get the fraction that one of the corners contribute to the primitive cell.

The vectors that go out from each corner of the primitive cell are (named with reference to the FCC structure in OP's figure):

• Lower left corner: $(\vec a_1, \vec a_2, \vec a_3)$
• Upper right corner: $(-\vec a_1, -\vec a_2, -\vec a_3)$
• Left face: $(\vec a_1, \vec a_2, -\vec a_3)$
• Right face: $(-\vec a_1, -\vec a_2, \vec a_3)$
• Front face: $(\vec a_1, -\vec a_2, \vec a_3)$
• Back face: $(-\vec a_1, \vec a_2, -\vec a_3)$
• Top face: $(\vec a_1, \vec a_2, -\vec a_3)$
• Bottom face: $(-\vec a_1, \vec a_2, \vec a_3)$

Before doing an insane amount of algebra, we can first note that the symmetry here makes it such that $\Omega$ will only give two different values, one for the corner-points and one for the face-points. Therefore we can get the total amount of atoms in the primitive cell by calculating

$$\text{# of atoms}=\frac{2\cdot \Omega(\vec a_1,\vec a_2,\vec a_3) + 6 \cdot \Omega(-\vec a_1,\vec a_2,\vec a_3)}{4\pi}$$

This is still more algebra than I want to do, so Sympy to the rescue:

from sympy.vector import CoordSysCartesian
from sympy import Symbol, pi, atan, latex

def solid_angle(a1, a2, a3):
"""Return the solid angle spanned by the three Vectors."""
a1m, a2m, a3m = list(map(lambda x:x.magnitude(), (a1,a2,a3)))
num = a3.dot(a1.cross(a2))
den = a1m*a2m*a3m + a1m*a2.dot(a3) + a2m*a1.dot(a3) + a3m*a1.dot(a2)
return 2*atan(abs(num/den))

N = CoordSysCartesian('N')
x, y, z = N  # Our cartesian unit vectors.
a = Symbol('a', nonnegative=True)
a1, a2, a3 = a*(x+y)/2, a*(y+z)/2, a*(x+z)/2

omega = 2*solid_angle(a1, a2, a3) + 6*solid_angle(-a1,a2,a3)
print(latex(omega).replace('operatorname{atan}', 'arctan'))


The output from Sympy is

$$\Omega_\text{tot} = 4 \arctan{\left (\frac{\sqrt{2}}{5} \right )} + 12 \arctan{\left (\sqrt{2} \right )}.$$

If we ask WolframAlpha (and give it a couple of seconds), we get that this exactly equal to $4\pi$, showing that there is one atom in total in a primitve cell, as expected.

So, the final answer to the question of how much each atom contributes is

$$\text{Each corner}=\arctan(\sqrt{2}/5)/2\pi\approx 0.0438699\\ \text{Each face}=\arctan(\sqrt{2})/2\pi\approx 0.15204336$$

Well, The FCC's (along with BCC's) are conventional unit cells, not primitive unit cells. As for the contribution of points, it is different for the corners and face centers. Each corner of a unit cell in a lattice is joined to 7 other unit cells. so the corner point is shared equally between 8 unit cells. Hence the corner contributes only $\frac{1}{8}$th of itself to the unit cell.

Each face centered point is connected to one more unit cell. Hence this point is equally shared between two unit cells and hence the face centered points contribute $\frac{1}{2}$ of itself to the unit cell.

• Sorry for the ill-posed question. I edited my question. Now it should be clearer. Oct 6, 2015 at 12:05
• well then I am not sure but since the point at the face center is half inside the unit cell and each corner in a unit cell contributes one-eighth, hence the contribution of the face center points to the red unit cell should be $\frac{1}{16}$. And for the point at the corner of the basic unit cell, the contribution to the red unit cell should, IMO, be $\frac{1}{64}$. Oct 6, 2015 at 12:26
• can not be since then I have $\frac{6}{16}+\frac{2}{64}\neq 1$. I also guess that there are three different values of contributions and not only two. One comes from the points at the fcc cornes and two different from the face center points. Oct 6, 2015 at 13:08
• There is surely only one contribution, which is $\frac{1}{8}$ and $8$ points, which makes $8\times\frac{1}{8}=1$. All points have to contribute equally because the primitive unit cell inherits the symmetry of the lattice and in the lattice all lattice points are equivalent. Oct 6, 2015 at 14:15
• @thyme what makes you think that there would be 2 different contributions from face centers? and yes I think 'm wrong ! Oct 6, 2015 at 14:33

I'm guessing that the question is asking how you work out how many lattice points are in the cell. If so the standard procedure is to displace the cell a small distance along each of the lattice vectors than count the number of points the cell contains.

I'll illustrate this in 2D since my abilities to draw convincing 3D diagrams are limited. Consider this lattice:

I've drawn a possible unit cell. There's obviously one lattice point in the middle, and we could argue that each of the corner points contributes $\tfrac{1}{4}$ of a point, but this is a rather hit and miss way of trying to count the points. Instead just displace the cell a small distance along the two lattice vectors while keeping the size constant:

and it's now obvious that the cell contains two lattice points so it's a compound cell.

This always works, and in any number of dimensions though of course it's harder to visualise in 3D.

• Sorry for the ill-posed question. I edited my question. Now it should be clearer. Oct 6, 2015 at 12:04