Kalkulátor Millerových indexů - Převod interceptů krystalické roviny na (hkl)
Vypočítejte Millerovy indexy (hkl) z interceptů krystalické roviny. Rychlý a přesný převodník pro krystalografii, XRD analýzu a materiálové vědy. Funguje pro všechny krystalické systémy.
Kalkulátor Millerových indexů
Intercepty krystalické roviny
Zadejte intercepty krystalické roviny s osami x, y a z. Použijte '∞' nebo 'nekonečno' pro roviny rovnoběžné s osou.
Zadejte číslo nebo ∞ pro nekonečno (rovnoběžné s osou)
Zadejte číslo nebo ∞ pro nekonečno (rovnoběžné s osou)
Zadejte číslo nebo ∞ pro nekonečno (rovnoběžné s osou)
Vizualizace
Co jsou Millerovy indexy?
Millerovy indexy jsou systém zápisu používaný v krystalografii k určení rovin a směrů v krystalické mřížce.
Výpočet Millerových indexů (h,k,l) z interceptů (a,b,c):
1. Vezměte reciproké hodnoty interceptů: (1/a, 1/b, 1/c) 2. Převeďte na nejmenší sadu celých čísel se stejným poměrem 3. Pokud je rovina rovnoběžná s osou (intercept = nekonečno), její odpovídající Millerův index je 0
- Záporné indexy jsou označeny pruhem nad číslem, např. (h̄,k,l)
- Zápis (hkl) představuje specifickou rovinu, zatímco {hkl} reprezentuje rodinu ekvivalentních rovin
- Indexy směru se zapisují do hranatých závorek [hkl], rodiny směrů jsou označeny <hkl>
Dokumentace
Porozumění Millerovým indexům: Praktický průvodce notací krystalografických rovin
Pokud jste někdy pracovali s krystalografií nebo vědou o materiálech, víte, že přesný popis krystalografických rovin je zásadní. Millerovy indexy poskytují přesně to - systematický způsob identifikace jakékoli roviny v krystalické mřížce pomocí pouhých tří celých čísel (h,k,l).
Tento kalkulátor převádí průsečíky roviny s krystalografickými osami do standardní notace Millerových indexů. Při analýze krystalických struktur nebo interpretaci dat rentgenové difrakce budete často potřebovat odkazovat na specifické roviny. Namísto popisu každé roviny jejími geometrickými průsečíky (což může být náročné), Millerovy indexy poskytují stručnou, všeobecně srozumitelnou notaci.
To, co činí tuto notaci obzvláště užitečnou, je její schopnost zjednodušit komunikaci mezi výzkumníky. Místo toho, abyste říkali "rovina, která protíná x-osu v bodě 2, y-osu v bodě 3 a z-osu v bodě 6", jednoduše odkazujete na rovinu (321). Tato standardizace je zásadní pro krystalografii od doby, kdy ji William Hallowes Miller představil v roce 1839.
Co jsou Millerovy indexy?
Millerovy indexy jsou tři celá čísla (h,k,l), která jednoznačně identifikují rodinu rovnoběžných rovin v krystalické mřížce. Zde je klíčový poznatek: jsou odvozeny z převrácených hodnot míst, kde rovina protíná krystalografické osy.
Uvažujte to takto—pokud rovina prochází krystalem v konkrétních bodech podél os x, y a z, vezmete převrácené hodnoty těchto průsečíků a redukujete je na nejmenší celá čísla. Tento matematický přístup, který se zpočátku může zdát abstraktní, má praktickou výhodu: roviny, které jsou strukturálně podobné, mají podobné indexy, a rovnoběžné roviny sdílejí stejné indexy bez ohledu na jejich polohu.
Vizuální reprezentace Millerových indexů
[Zde by byl stejný SVG obrázek jako v originále]
Jak vypočítat Millerovy indexy: Základní vzorec
Výpočet Millerových indexů následuje čtyřkrokový postup:
- Identifikujte průsečíky - Určete, kde rovina protíná krystalografické osy x, y a z (označte je a, b a c)
- Vezměte převrácené hodnoty - Spočítejte 1/a, 1/b a 1/c
- Odstraňte zlomky - Vynásobte všechny tři hodnoty stejným číslem, abyste eliminovali zlomky
- Redukujte na nejnižší členy - Vydělte největším společným dělitelem, abyste získali nejmenší celá čísla
Matematický vztah je vyjádřen jako:
Kde (h,k,l) jsou Millerovy indexy a a, b, c jsou průsečíky podél každé osy.
Speciální případy, se kterými se setkáte
Při práci s Millerovými indexy narazíte na několik hraničních případů, které zpočátku mohou vypadat složitě:
Rovnoběžné roviny - Když rovina běží rovnoběžně s osou (nikdy ji neprotínající), je tento průsečík v nekonečnu. Protože 1/∞ = 0, odpovídající index se stává nulou. Rovina rovnoběžná s osou y by tak mohla být (201), přičemž prostřední nula indikuje, že nikdy neprotíná osu y.
Záporné průsečíky - Roviny mohou protínat osy na záporné straně počátku. V formální krystalografické notaci jsou záporné indexy zobrazeny čárkou nad číslem: (h̄kl). V digitálních kontextech se často píší jako (-h,k,l) pro praktičnost.
Zlomkové průsečíky - Někdy vyjdou vaše počáteční průsečíky jako zlomky. Žádný problém—jednoduše vynásobte všechny převrácené hodnoty nejmenším společným násobkem, abyste odstranili jmenovatele. Důležitý je poměr, ne absolutní hodnoty.
Vždy zjednodušujte - Častou chybou je ponechání indexů v neredukovaném tvaru. (622) a (311) reprezentují stejnou rodinu rovin, ale krystalografové vždy používají (311)—nejmenší sadu celých čísel. Myslete na to jako na redukci zlomků: vždy dělte největším společným dělitelem.
Jak používat tento kalkulátor
Používání kalkulátoru je jednoduché:
-
Zadejte intercepty - Vložte, kde rovina protíná osy x, y a z
- Kladná čísla pro intercepty na kladné straně
- Záporná čísla pro intercepty na záporné straně
- Nula nebo nekonečno pro roviny rovnoběžné s osou
-
Získejte okamžité výsledky - Kalkulátor automaticky vypočítá Millerovy indexy
-
Zkontrolujte vizualizaci - 3D reprezentace ukazuje orientaci roviny v krystalické mřížce
-
Zkopírujte pro svou práci - Přeneste výsledky přímo do analytického softwaru nebo poznámek
Praktický příklad
Projděme si konkrétní případ. Řekněme, že máte rovinu, která protíná:
- x-osu v bodě 2
- y-osu v bodě 3
- z-osu v bodě 6
Zde je výpočet:
- Začněte s intercepty: (2, 3, 6)
- Vezměte reciproké hodnoty: (1/2, 1/3, 1/6)
- Odstraňte zlomky vynásobením LCM(2,3,6) = 6: (3, 2, 1)
- Zkontrolujte redukovatelnost: GCD(3,2,1) = 1, takže jsme hotovi
Výsledek: rovina (321)
Toto je běžný příklad, který ukazuje celý postup. V praxi se často setkáte s jednodušší případy jako roviny (100) nebo (110), které reprezentují hlavní krystalické plochy.
Reálné aplikace Millerových indexů
Millerovy indexy se vyskytují v mnoha oblastech, kde záleží na krystalické struktuře. Zde jsou místa, kde je nejčastěji naleznete:
Analýza rentgenové difrakce
Při analýze rentgenových difrakčních (XRD) vzorů jsou Millerovy indexy nepostradatelné. Každý difrakční peak odpovídá specifické sadě krystalických rovin. Vztah mezi mezirovinnou vzdáleností a difrakčními úhly se řídí Braggovým zákonem:
Kde je vzdálenost mezi rovinami s indexy (h,k,l), je vlnová délka rentgenového záření a je difrakční úhel.
V praktické XRD práci často potřebujete indexovat difrakční peaky - přiřazovat pozorované peaky specifickým (hkl) rovinám. Tento proces je zásadní pro identifikaci neznámých krystalických materiálů nebo potvrzení krystalické struktury po syntéze.
Materiálové inženýrství
Povrchové vlastnosti - Různé krystalické roviny vystavují různé atomární uspořádání, což znamená, že mají různou povrchovou energii. Například (111) plocha FCC kovu má nižší povrchovou energii než (100) nebo (110) plochy. To je velmi důležité v katalýze, kde rychlost reakce závisí na vystavených krystalických plochách.
Mechanické chování - Kovy se deformují podél specifických krystalografických skluzových systémů. V FCC kovech jako hliník dochází ke skluzu na {111} rovinách ve <110> směrech. Pochopení aktivních rovin během deformace pomáhá předvídat chování materiálu při namáhání.
Výroba polovodičů - Křemíkové destičky jsou řezány podél specifických krystalografických rovin, nejčastěji (100) nebo (111). Volba ovlivňuje rychlosti epitaxního růstu, chování dopování a výkon zařízení. Podle IEEE standardů pro polovodičové krystaly dominuje orientace (100) moderní CMOS výrobě.
Analýza textury - Při válcování, kování nebo tažení kovů získávají zrna preferované orientace (textura). Popis této textury vyžaduje Millerovy indexy pro specifikaci rovin zarovnaných s procesními směry. Tato textura přímo ovlivňuje vlastnosti jako magnetické chování v elektrických ocelích a tažnost v hliníkových plátech.
Mineralogie
Geologové popisují krystalické plochy minerálů pomocí Millerových indexů. Když prohlížíte křemenný krystal, ploché plochy odpovídají specifickým (hkl) rovinám. Štěpnost - jak se minerály štěpí podél určitých rovin - je také popisována pomocí tohoto zápisu. Dokonalá {100} štěpnost halit (kamenné soli) nebo {111} štěpnost fluoritu jsou klasickými příklady.
Alternativní systémy značení
Přestože Millerovy indexy dominují krystalografii, občas narazíte na alternativní notace:
Millerovy-Bravaisovy indexy - Pro hexagonální krystaly, čtyřindexový systém (hkil), kde i=-(h+k) lépe zachycuje hexagonální symetrii. Uvidíte je v pracích o zinku, hořčíku a mnoha polovodičích jako je GaN. Nadbytečný čtvrtý index usnadňuje rozpoznání ekvivalentních rovin - něco, co není v tříindexové notaci pro hexagonální systémy zjevné.
Weberovy symboly a Neumannova notace - Tyto se vyskytují především ve starší mineralogické literatuře. Většina moderní práce přešla na Millerovy indexy, ale můžete se s nimi setkat při čtení historických prací.
Přímé mřížkové vektory - Některé teoretické práce popisují roviny pomocí přímých mřížkových vektorů namísto Millerových indexů. Tento přístup je běžný v počítačové vědě materiálů, kde pracujete přímo s atomovými souřadnicemi.
Navzdory těmto alternativám zůstávají Millerovy indexy lingua franca krystalografie, protože fungují pro všech sedm krystalických systémů a poskytují intuitivní rámec pro většinu aplikací.
Historický vývoj
William Hallowes Miller, britský mineralog, představil tento systém notace v roce 1839 ve své „Pojednání o krystalografii". Zajímavé je, že Miller nevynalezl myšlenku indexování krystalových ploch — dříve existovaly systémy jako Weissovy parametry. Millerův průlom spočíval v použití reciprokých hodnot interceptů, které elegantně řešily rovnoběžné roviny (kde jsou intercepty nekonečné) a zjednodušily mnoho výpočtů.
Skutečná hodnota systému se stala zřejmou s Maxovou von Laueho objevem rentgenové difrakce v roce 1912. William Henry Bragg a William Lawrence Bragg (otec a syn) okamžitě rozpoznali, jak Miller indexy dokonale popisují roviny zodpovědné za difrakční špičky. Jejich práce z roku 1913 o určení krystalové struktury definitivně etablovala Miller indexy jako nepostradatelné nástroje.
Během 20. století, když se rentgenová krystalografie rozšířila z mineralogie do metalurgie, fyziky pevných látek a nakonec do krystalografie proteinů, Miller indexy byly nedílnou součástí. Dnes jsou nepostradatelné v oborech, které Miller nikdy nepředpokládal — od analýzy polovodičových heterostruktur až po navrhování nanočásticových katalyzátorů.
Příklady implementace
Pokud potřebujete programově vypočítat Millerovy indexy – například zpracováváte rozsáhlé datové sady nebo budujete analytické kanály – zde jsou implementace v několika jazycích. Každá řeší klíčové výzvy: převzetí reciprokých hodnot, vyčištění zlomků a redukci na nejmenší společné jmenovatele.
Implementace v Pythonu
1import math
2import numpy as np
3
4def calculate_miller_indices(intercepts):
5 """
6 Vypočítat Millerovy indexy z interceptů
7
8 Args:
9 intercepts: Seznam tří interceptů [a, b, c]
10
11 Returns:
12 Seznam tří Millerových indexů [h, k, l]
13 """
14 # Zpracování nekonečných interceptů (rovnoběžných s osou)
15 reciprocals = []
16 for intercept in intercepts:
17 if intercept == 0 or math.isinf(intercept):
18 reciprocals.append(0)
19 else:
20 reciprocals.append(1 / intercept)
21
22 # Najít nenulové hodnoty pro výpočet GCD
23 non_zero = [r for r in reciprocals if r != 0]
24
25 if not non_zero:
26 return [0, 0, 0]
27
28 # Škálování na rozumné celé čísla (vyhnutí se problémům s plovoucí řádovou čárkou)
29 scale = 1000
30 scaled = [round(r * scale) for r in non_zero]
31
32 # Najít GCD
33 gcd_value = np.gcd.reduce(scaled)
34
35 # Převod zpět na nejmenší celá čísla
36 miller_indices = []
37 for r in reciprocals:
38 if r == 0:
39 miller_indices.append(0)
40 else:
41 miller_indices.append(round((r * scale) / gcd_value))
42
43 return miller_indices
44
45# Příklad použití
46intercepts = [2, 3, 6]
47indices = calculate_miller_indices(intercepts)
48print(f"Millerovy indexy pro intercepty {intercepts}: {indices}") # Výstup: [3, 2, 1]
49Implementace v JavaScriptu
1function gcd(a, b) {
2 a = Math.abs(a);
3 b = Math.abs(b);
4
5 while (b !== 0) {
6 const temp = b;
7 b = a % b;
8 a = temp;
9 }
10
11 return a;
12}
13
14function gcdMultiple(numbers) {
15 return numbers.reduce((result, num) => gcd(result, num), numbers[0]);
16}
17
18function calculateMillerIndices(intercepts) {
19 // Zpracování nekonečných interceptů
20 const reciprocals = intercepts.map(intercept => {
21 if (intercept === 0 || !isFinite(intercept)) {
22 return 0;
23 }
24 return 1 / intercept;
25 });
26
27 // Najít nenulové hodnoty pro výpočet GCD
28 const nonZeroReciprocals = reciprocals.filter(val => val !== 0);
29
30 if (nonZeroReciprocals.length === 0) {
31 return [0, 0, 0];
32 }
33
34 // Škálování na celá čísla pro vyhnutí se problémům s plovoucí řádovou čárkou
35 const scale = 1000;
36 const scaled = nonZeroReciprocals.map(val => Math.round(val * scale));
37
38 // Najít GCD
39 const divisor = gcdMultiple(scaled);
40
41 // Převod na nejmenší celá čísla
42 const millerIndices = reciprocals.map(val =>
43 val === 0 ? 0 : Math.round((val * scale) / divisor)
44 );
45
46 return millerIndices;
47}
48
49// Příklad
50const intercepts = [2, 3, 6];
51const indices = calculateMillerIndices(intercepts);
52console.log(`Millerovy indexy pro intercepty ${intercepts}: (${indices.join(',')})`);
53// Výstup: Millerovy indexy pro intercepty 2,3,6: (3,2,1)
54Implementace v Javě
1import java.util.Arrays;
2
3public class MillerIndicesCalculator {
4
5 public static int gcd(int a, int b) {
6 a = Math.abs(a);
7 b = Math.abs(b);
8
9 while (b != 0) {
10 int temp = b;
11 b = a % b;
12 a = temp;
13 }
14
15 return a;
16 }
17
18 public static int gcdMultiple(int[] numbers) {
19 int result = numbers[0];
20 for (int i = 1; i < numbers.length; i++) {
21 result = gcd(result, numbers[i]);
22 }
23 return result;
24 }
25
26 public static int[] calculateMillerIndices(double[] intercepts) {
27 double[] reciprocals = new double[intercepts.length];
28
29 // Výpočet reciprokých hodnot
30 for (int i = 0; i < intercepts.length; i++) {
31 if (intercepts[i] == 0 || Double.isInfinite(intercepts[i])) {
32 reciprocals[i] = 0;
33 } else {
34 reciprocals[i] = 1 / intercepts[i];
35 }
36 }
37
38 // Spočítat nenulové hodnoty
39 int nonZeroCount = 0;
40 for (double r : reciprocals) {
41 if (r != 0) nonZeroCount++;
42 }
43
44 if (nonZeroCount == 0) {
45 return new int[]{0, 0, 0};
46 }
47
48 // Škálování na celá čísla
49 int scale = 1000;
50 int[] scaled = new int[nonZeroCount];
51 int index = 0;
52
53 for (double r : reciprocals) {
54 if (r != 0) {
55 scaled[index++] = (int) Math.round(r * scale);
56 }
57 }
58
59 // Najít GCD
60 int divisor = gcdMultiple(scaled);
61
62 // Převod na nejmenší celá čísla
63 int[] millerIndices = new int[reciprocals.length];
64 for (int i = 0; i < reciprocals.length; i++) {
65 if (reciprocals[i] == 0) {
66 millerIndices[i] = 0;
67 } else {
68 millerIndices[i] = (int) Math.round((reciprocals[i] * scale) / divisor);
69 }
70 }
71
72 return millerIndices;
73 }
74
75 public static void main(String[] args) {
76 double[] intercepts = {2, 3, 6};
77 int[] indices = calculateMillerIndices(intercepts);
78
79 System.out.println("Millerovy indexy pro intercepty " +
80 Arrays.toString(intercepts) + ": " +
81 Arrays.toString(indices));
82 // Výstup: Millerovy indexy pro intercepty [2.0, 3.0, 6.0]: [3, 2, 1]
83 }
84}
85Implementace v Excel VBA
1' Funkce Excel VBA pro výpočet Millerových indexů
2Function CalculateMillerIndices(x As Double, y As Double, z As Double) As String
3 Dim recipX As Double, recipY As Double, recipZ As Double
4 Dim nonZeroCount As Integer, i As Integer
5 Dim scale As Long, gcdVal As Long
6 Dim scaledVals() As Long
7 Dim millerH As Long, millerK As Long, millerL As Long
8
9 ' Výpočet reciprokých hodnot
10 If x = 0 Then
11 recipX = 0
12 Else
13 recipX = 1 / x
14 End If
15
16 If y = 0 Then
17 recipY = 0
18 Else
19 recipY = 1 / y
20 End If
21
22 If z = 0 Then
23 recipZ = 0
24 Else
25 recipZ = 1 / z
26 End If
27
28 ' Spočítat nenulové hodnoty
29 nonZeroCount = 0
30 If recipX <> 0 Then nonZeroCount = nonZeroCount + 1
31 If recipY <> 0 Then nonZeroCount = nonZeroCount + 1
32 If recipZ <> 0 Then nonZeroCount = nonZeroCount + 1
33
34 If nonZeroCount = 0 Then
35 CalculateMillerIndices = "(0,0,0)"
36 Exit Function
37 End If
38
39 ' Škálování na celá čísla
40 scale = 1000
41 ReDim scaledVals(1 To nonZeroCount)
42 i = 1
43
44 If recipX <> 0 Then
45 scaledVals(i) = Round(recipX * scale)
46 i = i + 1
47 End If
48
49 If recipY <> 0 Then
50 scaledVals(i) = Round(recipY * scale)
51 i = i + 1
52 End If
53
54 If recipZ <> 0 Then
55 scaledVals(i) = Round(recipZ * scale)
56 End If
57
58 ' Najít GCD
59 gcdVal = scaledVals(1)
60 For i = 2 To nonZeroCount
61 gcdVal = GCD(gcdVal, scaledVals(i))
62 Next i
63
64 ' Výpočet Millerových indexů
65 If recipX = 0 Then
66 millerH = 0
67 Else
68 millerH = Round((recipX * scale) / gcdVal)
69 End If
70
71 If recipY = 0 Then
72 millerK = 0
73 Else
74 millerK = Round((recipY * scale) / gcdVal)
75 End If
76
77 If recipZ = 0 Then
78 millerL = 0
79 Else
80 millerL = Round((recipZ * scale) / gcdVal)
81 End If
82
83 CalculateMillerIndices = "(" & millerH & "," & millerK & "," & millerL & ")"
84End Function
85
86Function GCD(a As Long, b As Long) As Long
87 Dim temp As Long
88
89 a = Abs(a)
90 b = Abs(b)
91
92 Do While b <> 0
93 temp = b
94 b = a Mod b
95 a = temp
96 Loop
97
98 GCD = a
99End Function
100
101' Použití v Excel:
102' =CalculateMillerIndices(2, 3, 6)
103' Výsledek: (3,2,1)
104Implementace v C++
1#include <iostream>
2#include <vector>
3#include <cmath>
4#include <numeric>
5#include <algorithm>
6
7// Výpočet GCD dvou čísel
8int gcd(int a, int b) {
9 a = std::abs(a);
10 b = std::abs(b);
11
12 while (b != 0) {
13 int temp = b;
14 b = a % b;
15 a = temp;
16 }
17
18 return a;
19}
20
21// Výpočet GCD více čísel
22int gcdMultiple(const std::vector<int>& numbers) {
23 int result = numbers[0];
24 for (size_t i = 1; i < numbers.size(); ++i) {
25 result = gcd(result, numbers[i]);
26 }
27 return result;
28}
29
30// Výpočet Millerových indexů z interceptů
31std::vector<int> calculateMillerIndices(const std::vector<double>& intercepts) {
32 std::vector<double> reciprocals;
33
34 // Výpočet reciprokých hodnot
35 for (double intercept : intercepts) {
36 if (intercept == 0 || std::isinf(intercept)) {
37 reciprocals.push_back(0);
38 } else {
39 reciprocals.push_back(1.0 / intercept);
40 }
41 }
42
43 // Najít nenulové hodnoty
44 std::vector<double> nonZeroReciprocals;
45 for (double r : reciprocals) {
46 if (r != 0) {
47 nonZeroReciprocals.push_back(r);
48 }
49 }
50
51 if (nonZeroReciprocals.empty()) {
52 return {0, 0, 0};
53 }
54
55 // Škálování na celá čísla
56 const int scale = 1000;
57 std::vector<int> scaled;
58 for (double r : nonZeroReciprocals) {
59 scaled.push_back(std::round(r * scale));
60 }
61
62 // Najít GCD
63 int divisor = gcdMultiple(scaled);
64
65 // Převod na nejmenší celá čísla
66 std::vector<int> millerIndices;
67 for (double r : reciprocals) {
68 if (r == 0) {
69 millerIndices.push_back(0);
70 } else {
71 millerIndices.push_back(std::round((r * scale) / divisor));
72 }
73 }
74
75 return millerIndices;
76}
77
78int main() {
79 std::vector<double> intercepts = {2, 3, 6};
80 std::vector<int> indices = calculateMillerIndices(intercepts);
81
82 std::cout << "Millerovy indexy pro intercepty [";
83 for (size_t i = 0; i < intercepts.size(); ++i) {
84 std::cout << intercepts[i];
85 if (i < intercepts.size() - 1) std::cout << ", ";
86 }
87 std::cout << "]: (";
88
89 for (size_t i = 0; i < indices.size(); ++i) {
90 std::cout << indices[i];
91 if (i < indices.size() - 1) std::cout << ",";
92 }
93 std::cout << ")" << std::endl;
94
95 // Výstup: Millerovy indexy pro intercepty [2, 3, 6]: (3,2,1)
96
97 return 0;
98}
99Příklady a řešení
Procházení příkladů pomáhá upevnit výpočetní postup:
Případ 1: Standardní výpočet
- Intercepty: (2, 3, 6) → Reciproké hodnoty: (1/2, 1/3, 1/6) → Vyčištění zlomků (×6): (3, 2, 1)
- Výsledek: (321)
Případ 2: Rovina rovnoběžná s osou
- Intercepty: (1, ∞, 2) → Reciproké hodnoty: (1, 0, 1/2) → Vyčištění zlomků (×2): (2, 0, 1)
- Výsledek: (201) - Nula znamená, že rovina nikdy neprotíná y-osu
Případ 3: Negativní intercept
- Intercepty: (-1, 2, 3) → Reciproké hodnoty: (-1, 1/2, 1/3) → Vyčištění zlomků (×6): (-6, 3, 2)
- Výsledek: (-6,3,2) nebo zapsáno krystalograficky jako (6̄32)
Případ 4: Zlomkové intercepty
- Intercepty: (1/2, 1/3, 1/4) → Reciproké hodnoty: (2, 3, 4) → Již celá čísla
- Výsledek: (234) - Když jsou intercepty zlomky, reciproké hodnoty často vyjdou čistě
Případ 5: Hlavní kubická plocha
- Intercepty: (1, ∞, ∞) → Reciproké hodnoty: (1, 0, 0)
- Výsledek: (100) - Jedna z šesti primárních ploch kubického krystalu
Často kladené dotazy
K čemu slouží Millerovy indexy?
Millerovy indexy identifikují specifické roviny v krystalické mřížce. Budete je používat neustále při rentgenové difrakční analýze (indexování píků), materiálovém inženýrství (popis skluzových rovin a štěpení), výrobě polovodičů (specifikace orientací desek) a mineralogii (charakterizace krystalických ploch). Jsou standardním jazykem pro diskusi o krystalografických rovinách ve všech těchto oborech.
Jak zacházet s rovinami rovnoběžnými s osou?
Když rovina probíhá rovnoběžně s osou a nikdy ji neprotíná, tento průsečík je v nekonečnu. Protože 1/∞ = 0, odpovídající Millerův index je nula. Rovina rovnoběžná s osou y dostává nulu ve střední pozici: (h,0,l). Toto je jedna z elegantních vlastností Millerovy notace - přirozeně zpracovává tento hraniční případ.
Co znamenají záporné indexy?
Záporné indexy znamenají, že rovina protíná danou osu na záporné straně počátku. Krystalografové to zapisují čárkou nad číslem: (h̄kl). Z hlediska fyzikálních vlastností jsou roviny (321) a (3̄2̄1̄) ekvivalentní - jsou to rovnoběžné roviny na opačných stranách počátku. Rozlišení má význam především při popisu specifické krystalické plochy nebo analýze orientačních vztahů.
Jak se Millerovy indexy vztahují ke krystalické struktuře?
Millerovy indexy popisují sady rovnoběžných rovin procházejících krystalickou mřížkou. Vzdálenost mezi těmito rovinami (d-spacing) závisí jak na indexech, tak na parametrech mřížky. Vyšší indexy znamenají těsněji uspořádané roviny. V rentgenové difrakci fungují roviny s konkrétními (hkl) hodnotami jako zrcadla pro rentgenové paprsky a d-spacing určuje difrakční úhel podle Braggova zákona. Toto propojení je důvodem, proč indexování difrakčních vzorů - přiřazování (hkl) hodnot pozorovaným píkům - je základem pro určení struktury.
Jaký je rozdíl mezi Millerovými a Miller-Bravaisovými indexy?
Millerovy indexy (hkl) fungují pro všechny krystalické systémy, ale hexagonální krystaly představují zvláštní výzvu. V hexagonálních systémech krystalograficky ekvivalentní roviny nemají zjevně podobné Millerovy indexy. Miller-Bravaisovy indexy (hkil) přidávají nadbytečný čtvrtý index, kde i = -(h+k). Tím se hexagonální symetrie stává explicitní - ekvivalentní roviny mají podobně vypadající indexy. Setkáte se s tím především při práci s hexagonálními kovy (Mg, Zn, Ti) nebo wurtzitovými polovodiči (GaN, ZnO).
Jak vypočítat úhel mezi krystalickými rovinami?
Pro kubické krystaly je úhel θ mezi rovinami (h₁k₁l₁) a (h₂k₂l₂):
Jedná se v podstatě o skalární součin normálových vektorů. Pro nekubické systémy (ortorombické, tetragonální atd.) potřebujete metrický tenzor, který zohledňuje nepravé úhly nebo nestejné parametry mřížky. Většina krystalografického softwaru tyto výpočty provádí automaticky.
Jak se d-spacing vztahuje k Millerovým indexům?
D-spacing - kolmá vzdálenost mezi sousedními rovnoběžnými rovinami - klesá se zvyšujícími se indexy. Pro kubické krystaly s mřížkovým parametrem a:
Tento jednoduchý vzorec je důvodem, proč jsou kubické systémy vhodné pro výuku. Pro jiné krystalické systémy vzorec zahrnuje další mřížkové parametry (b, c a úhly α, β, γ). Mezinárodní tabulky krystalografie poskytují vzorce pro všech sedm krystalických systémů.
Mohou být Millerovy indexy zlomky?
Ne, vždy jen celá čísla podle konvence. Pokud váš výpočet produkuje zlomky jako (3/2, 1, 1/2), vynásobte vše nejmenším společným jmenovatelem, abyste dostali (3, 2, 1). Požadavek na celá čísla udržuje notaci standardizovanou - každý popisuje stejnou rovinu stejným způsobem.
Jak experimentálně určit Millerovy indexy?
Pro velké monokrystaly se používá optická goniometrie k měření úhlů mezi krystalickými plochami, které lze převést na Millerovy indexy. Běžněji se používá rentgenová nebo elektronová difrakce. Difrakční vzor ukazuje body nebo píky pod specifickými úhly, z nichž každý odpovídá sadě mřížkových rovin. Měřením těchto úhlů a aplikací Braggova zákona lze přiřadit (hkl) hodnoty každému odrazu - proces nazývaný indexování. Moderní difraktometry se softwarem automatizují většinu tohoto procesu, ale pochopení základní geometrie zůstává důležité.
Jaké jsou nejběžnější Millerovy indexy?
V kubických krystalech se často setkáte s:
- (100), (010), (001) - Šest ploch krychle
- (110), (101), (011) - Diagonální roviny protínající dvě osy
- (111) - Oktaedrická rovina, rovnoměrně protínající všechny tři osy
- (112) - Běžná skluzová rovina v BCC kovech jako železo
Tyto nízkoindexové roviny mají největší d-spacing a nejnižší povrchovou energii, což je činí nejčastěji pozorovanými krystalickými plochami a preferovanými skluzovými rovinami.
Platí toto pro všech sedm krystalických systémů?
Ano. Notace Millerových indexů se univerzálně vztahuje na kubické, tetragonální, ortorombické, hexagonální, trigonální, monoklické a triklinické systémy. Postup výpočtu (průsečíky → reciproké hodnoty → celá čísla) zůstává stejný bez ohledu na krystalický systém. Hexagonální systémy však často používají čtyřindexovou Miller-Bravaisovu notaci pro větší přehlednost.
Jaká je přesnost výpočtu?
Kalkulátor používá přesnou celočíselnou aritmetiku po převodu z plovoucí čárky, čímž zajišťuje matematicky přesné výsledky. Hlavním zdrojem nejistoty je obvykle určení samotných průsečíků - zejména při měření z experimentálních dat nebo modelů krystalické struktury. Algoritmus zpracovává všechny hraniční případy: rovnoběžné roviny, záporné průsečíky a zlomkové průsečíky.
Reference
-
Miller, W. H. (1839). Pojednání o krystalografii. Cambridge: Pro J. & J.J. Deighton.
-
Ashcroft, N. W., & Mermin, N. D. (1976). Fyzika pevných látek. Holt, Rinehart and Winston.
-
Hammond, C. (2015). Základy krystalografie a difrakce (4. vyd.). Oxford University Press.
-
Cullity, B. D., & Stock, S. R. (2014). Prvky rentgenové difrakce (3. vyd.). Pearson Education.
-
Kittel, C. (2004). Úvod do fyziky pevných látek (8. vyd.). Wiley.
-
Kelly, A., & Knowles, K. M. (2012). Krystalografie a krystalové defekty (2. vyd.). Wiley.
-
Mezinárodní unie krystalografie. (2016). Mezinárodní tabulky pro krystalografii, svazek A: Symetrie prostorových skupin. Wiley.
-
Giacovazzo, C., Monaco, H. L., Artioli, G., Viterbo, D., Ferraris, G., Gilli, G., Zanotti, G., & Catti, M. (2011). Základy krystalografie (3. vyd.). Oxford University Press.
-
Buerger, M. J. (1978). Elementární krystalografie: Úvod do základních geometrických vlastností krystalů. MIT Press.
-
Tilley, R. J. (2006). Krystaly a krystalické struktury. Wiley.
Rychlý referenční přehled
Millerovy indexy (hkl) poskytují standardizovaný způsob identifikace krystalografických rovin pomocí tří celých čísel odvozených z převrácených hodnot průsečíků roviny. Tato notace je použitelná ve všech krystalických systémech a je standardem v krystalografii od roku 1839.
Ať už indexujete difrakční vzory, popisujete skluzové systémy v kovech, specifikujete orientace polovodičových desek nebo identifikujete štěpné roviny minerálů, Millerovy indexy jsou nástrojem, který použijete. Tento kalkulátor zpracovává aritmetiku – počítá převrácené hodnoty, odstraňuje zlomky a redukuje na nejnižší společný jmenovatel – abyste se mohli soustředit na interpretaci krystalografického významu.