En tetrahedral posisjon er posisjonen i midten av et tetrahedron. Dette er altså senteret til hulrommet mellom fire atom.
Tetrahedrale posisjoner i BCC kan være litt vanskelig se umiddelbart i en enkelt enhetscelle, men er rimelig greit å få øye på dersom vi tar med senter-atomet ved posisjon $p_2$ til en nabocell som vist i følgende figur:
En tetrahedral posisjon ligger dermed midt mellom følgende fire punk:
$$p_1 = \frac{1}{2} \text{ } \frac{1}{2} \text{ } \frac{1}{2} \quad p_2 = \frac{1}{2} \text{ } \frac{3}{2} \text{ } \frac{1}{2} \quad p_3 = 1 \text{ } 1 \text{ } 0 \quad p_4= 0 \text{ } 1 \text{ } 0 $$Legger de 4 punkte i en numpy.array()
slik at det blir lett å regner ut gjennomsnittskomponentene i $x$, $y$ og $z$:
import numpy as np
ps = np.array( [ [1/2, 1/2, 1/2], [1/2, 3/2, 1/2], [ 1, 1, 0], [ 0, 1, 0] ] )
p_tet = sum(ps)/4 # gjennomsnitt av hver komponent
print('Tetrahedral posisjon:', p_tet)
Altså,
$$p_{tet} = \frac{1}{2} \text{ } 1 \text{ } \frac{1}{4}$$Sjekker at avstanden fra p_tet
til hvert av de fire punkta er identiske ved å regne ut lengden $|\mathbf{v}|$ av vektoren $\mathbf{v}$ mellom dem ved hjelp av numpy.linalg.norm()
:
for p in ps:
vektor = p_tet - p # vektor mellom tetrahedral punkt og p1 ... p4
lengde = np.linalg.norm(vektor) # vektorens lengde (norm) er lik avstand
print(lengde, vektor)
... og resultatet bekrefter at det er gjort noe veldig fornuftig her...
Merk at $\mathbf{v}$ er i krystallsystemets enhet, så lengden må multipliseres med cellens dimensjon $a$. Fra BCC vet vi at dimensjonen til enhetscellen er
$$a=\frac{4R}{\sqrt{3}}$$slik at maks radius for et interstitielt atom er (se figur over)
$$ r = a \cdot |\mathbf{v}| - R$$R=1 # med R=1
a=4*R/(3**0.5) # dimensjon til en BCC enhetscelle
r = a*lengde - R # bruker siste lengde fra forrige kode (0.5590...)
print('r = {:.4f}R'.format(r))
I hver flate vil det være 4 tetrahedrale posisjoner. Eksempelvis flaten som har normal i positiv x-retning:
$$1\text{ }\frac{1}{4}\text{ }\frac{1}{2}, \quad 1\text{ }\frac{1}{2}\text{ }\frac{1}{4}, \quad 1\text{ }\frac{3}{4}\text{ }\frac{1}{2}, \quad 1\text{ }\frac{1}{2}\text{ }\frac{3}{4}$$Illustrerer disse med radius $r$ når $R=1$:
tet_punkt = [ [0.25*a, 0.5*a], [0.75*a, 0.5*a], [0.5*a,0.25*a], [0.5*a, 0.75*a] ]
import matplotlib.pyplot as plt
fig,ax=plt.subplots(figsize=(1*a,1*a))
ax.set_xlim(0,a)
ax.set_ylim(0,a)
ax.set_axis_off()
for p in [(a/2,a/2), (0,0), (a,0), (a,a), (0,a)]:
ax.add_artist( plt.Circle(p, R, color='black',fc='silver',alpha=0.8) )
for p in tet_punkt:
ax.add_artist( plt.Circle(p, r, color='red',fc='pink',alpha=0.8) )
plt.show()
Oktahedrale posisjoner er posisjoner som er omgitt av 6 atom, og disse er lett å identifisere i i FCC. Eksemplevis er posisjonen i midten av cellen en slik posisjon, som altså er omgitt av de 6 atomene som ligger på flatene:
p = np.array([0, 0.5, 0.5]) # på en av flatene
p_tet = np.array([0.5, 0.5, 0.5]) # senter
vektor = p_tet - p # vektor mellom tetrahedral punkt og p
lengde = np.linalg.norm(vektor) # vektorens lengde (norm) er lik avstand
print('vektorlengde=',lengde)
R = 1
a = 2*(2**0.5)*R # se FCC
r = a*lengde - R
print('r = {:.4f}R'.format(r))
Der vil også være en oktahedral posisjon på midten av hver sidekant som illustrert under:
fig,ax=plt.subplots(figsize=(1*a,1*a))
ax.set_xlim(0,a)
ax.set_ylim(0,a)
ax.set_axis_off()
for p in [(a/2,a/2)]:
ax.add_artist( plt.Circle(p, r, color='red',fc='pink',alpha=0.8) )
for p in [(a/2,0), (a,a/2), (a/2,a), (0,a/2)]:
ax.add_artist( plt.Circle(p, R, color='black',fc='silver',alpha=0.8) )
for p in [(a/2, a/2), (0,0), (a,0), (a,a), (0,a)]:
ax.add_artist( plt.Circle(p, R, color='black',fc='silver',alpha=0.9) )
for p in [(a/2,0), (a,a/2), (a/2,a), (0,a/2)]:
ax.add_artist( plt.Circle(p, r, color='red',fc='pink',alpha=0.8) )
plt.show()