[Physics] Primitive unit cell of fcc

crystalssolid-state-physicsunit-cell

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…
enter image description here

Best Answer

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.

The 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$$

Related Question