4.2. Reciprocal Lattice Vectors and the Ewald Sphere

 このページではreciprocal latticeやreciprocal latticeベクトルの概念を解説します。

lattice parametersとcrystal幾何学

 少しだけ復習です。すでに「1.3. Lattice Parameters, Crystal Systems, and Bravais Lattices」ページで述べたとおり、3次元のcrystalのcrystal格子は、3方向のlattice vector (textbf{a}, textbf{b}, textbf{c}) のそれぞれの長さ(a,b,c) と、それらの間の角度 (alpha,beta,gamma) によって表現します。これら (a,b,c,alpha,beta,gamma) の6つのパラメータを(実)lattice parametersといいます1。lattice parametersを使えば、Ex.えばbelowの様な幾何学量を計算することが出来ます。

unit cellの体積 (V) $$V^2= a^2 b^2 c^2 (1-cos^2{alpha}-cos^2beta – cos^2gamma + 2 cosalpha cosbeta cosgamma)$$
((hkl))の面間隔 (d) $$frac{V^2}{d^2} =h^2 sigma_{11} + k^2 sigma_{22} + l^2 sigma_{33} + 2 k l sigma_{23} + 2 l h sigma_{31} + 2 h k sigma_{12}
$$where、(
sigma_{11}= b^2 c^2 sin^2alpha, quad
sigma_{22}= c^2 a^2 sin^2beta, )
(sigma_{33}= a^2 b^2 sin^2gamma, quad
sigma_{23}= a^2 b c (cosbeta cosgamma -cosalpha ),)
( sigma_{31}= a b^2 c (cosgamma cosalpha -cosbeta ), quad
sigma_{12}= a b c^2 (cosalpha cosbeta -cosgamma)
)
((h_1k_1l_1)) と ((h_2k_2l_2)) のなす角 (theta) $$begin{array}{l}
Large{frac{V^2 costheta}{d_1 d_2}} normalsize{=h_1 h_2 σ_{11}+ k_1 k_2 σ_{22} + l_1 l_2 σ_{33}}
 qquad+ (k_1 l_2 + k_2 l_1) σ_{23} + (l_1 h_2 + l_2 h_1 ) σ_{31}+ (h_1 k_2 + h_2 k_1 ) σ_{12}
end{array}$$where、 (d_1, d_2) は それぞれ ((h_1k_1l_1)) と ((h_2k_2l_2)) の面間隔
([uvw]) の長さ (r) $$r^2 = u^2 a^2 + v^2 b^2 + w^2 c^2 + 2 v w b c  cosalpha+ 2 w u c a  cosbeta + 2 u v a b cosgamma$$
([u_1v_1w_1]) と ([u_2v_2w_2]) のなす角 (psi) $$begin{array}{l}
r_1 r_2 cospsi = u_1 u_2 a^2 + v_1 v_2 b^2 + w_1 w_2 c^2 + (v_1 w_2 + v_2 w_1) b c cosalpha 
qquad + (w_1 u_2 + w_2 u_1) c a cosbeta +(u_1 v_2 + u_2 v_1) a b cosgammaend{array}$$where、 (r_1, r_2) はそれぞれ ([u_1v_1w_1]) と ([u_2v_2w_2]) の長さ
((hkl)) 面法線と ([uvw]) のなす角 (phi) $$rcosphi =d (h u + k v + l w)  
$$where、 (r) は ([uvw]) の長さ、(d) は ((hkl)) の面間隔

さて複雑な式をいくつも紹介しましたが、関数電卓しかなかった時代ならともかく、現代においてこのような解き方で幾何学諸量を計算するメリットはほとんどありません。belowに述べるようなreciprocal latticeの概念を利用し、行列やベクトルの演算が可能な環境2で計算する方がはるかに有用でしょう。


reciprocal latticeとは

逆行列とreciprocal latticeの定義

 実lattice vector (textbf{a}, textbf{b}, textbf{c}) に対して、reciprocal latticeベクトル (mathbf{a^*}, mathbf{b^*}, mathbf{c^*})とはbelowのように定義されるベクトルのことです (念のため、(mathbf{^*}) はかけ算ではなく添え字です)。$$
mathbf{a^*}=frac{textbf{b}timestextbf{c}}{V}, mathbf{b^*}=frac{textbf{c}timestextbf{a}}{V}, mathbf{c^*}=frac{textbf{a}timestextbf{b}}{V}
$$ここで (V) は(実)unit cellの体積です。また (times) はベクトルの外積を表します。

 この関係は、matrix representationで定義することもできます。まず、実lattice vector (textbf{a}, textbf{b}, textbf{c}) を直交座標系で成分表示して((a_x, a_y, a_z)、(b_x, b_y, b_z)、(c_x, c_y, c_z) )とします。これらを行成分としてbelowのような3×3行列 (R) をつくり、次いでその逆行列 (R^{-1}) を計算3しましょう。
$$R =begin{pmatrix}a_x & a_y & a_z b_x & b_y & b_z c_x & c_y & c_zend{pmatrix}
Longrightarrow
R^{-1} =begin{pmatrix}a^*_x & b^*_x & c^*_x a^*_y & b^*_y & c^*_y a^*_z & b^*_z & c^*_z end{pmatrix}
$$この時、(R^{-1}) の列成分はreciprocal latticeベクトルに対応します。
$$textbf{a}^*=(a^*_x,a^*_y,a^*_z), textbf{b}^*=(b^*_x,b^*_y,b^*_z), textbf{c}^*=(c^*_x,c^*_y,c^*_z)
$$ 実lattice vectorとreciprocal latticeベクトルにはbelowのような関係があります (これを定義と考えてもかまいません)。
$$ mathbf{a} mathbf{a^*} = mathbf{b} mathbf{b^*} = mathbf{c} mathbf{c^*} = 1,quad
mathbf{a} mathbf{b^*} = mathbf{a} mathbf{c^*} = mathbf{b} mathbf{c^*} = mathbf{b} mathbf{a^*}= mathbf{c} mathbf{a^*}= mathbf{c} mathbf{b^*} =0$$


reciprocal latticeベクトルの性質

 一旦逆単位lattice vectorが求まれば、任意の((hkl)) 面の面間隔や面間の角度などをベクトル演算で容易にもとめることができます。なぜなら、((hkl)) 面に対応する次のreciprocal latticeベクトル$$
textbf{g} = h textbf{a}^* + k textbf{b}^* + l textbf{c}^*
$$はそのベクトルの長さが面間隔 (d) の逆数を意味しており方向は法線の方向を意味するからです。Ex.えば ((hkl)) 面の面間隔 (d) は $$
d = 1/|textbf{g}|, where textbf{g}= h textbf{a}^* + k textbf{b}^* + l textbf{c}^*
$$ですし、((h_1k_1l_1))と((h_2k_2l_2))の面間角度 (theta) は$$
costheta = frac{mathbf{g_1 g_2}}{|mathbf{g_1}| |mathbf{g_2}|}, where mathbf{g_1}= h_1 textbf{a}^* + k_1 textbf{b}^* + l_1 textbf{c}^* & mathbf{g_2} = h_2 textbf{a}^* + k_2 textbf{b}^* + l_2 textbf{c}^*$$ という計算で容易に求まります。複雑な三角関数を使う必要はありません。


lattice parametersからベクトルへの変換

 さて、上ではさらっと 「実lattice vectorを直交座標系で成分表示する」 と書きましたが、具体的にどのように計算をしたらよいでしょう。3つの実lattice vector (mathbf{a}, mathbf{b}, mathbf{c}) は直交するとは限りませんから、それぞれを直交座標系の (X,Y,Z) 軸に一致させることは一般的には不可能です。(mathbf{a}) を (X) 軸に一致させたい人もいれば、(mathbf{c}) を (Z) 軸に一致させたい人もいるでしょう。1つの軸の方向を決めたとて、まだ自由度は残ります。当然ながら万人が納得する唯一の正解はありません。ここでは、belowのような基準4で、(実)lattice parameters (a,b,c,alpha,beta,gamma) を直交座標系で成分表示する方法を説明しましょう。

この基準に従えば、まず (mathbf{c}) は ( mathbf{c} = (0,0,c)) と簡単に定義できます。次に (mathbf{b}) は (mathbf{c}) とのなす角が (alpha) であることと (YZ) 平面に一致する (i.e., (X=0) である) ことを考慮して、( mathbf{b} = (0,b sinalpha,b cosalpha)) とやはり簡単に定義できます。(mathbf{a}) はちょっと複雑になりますが、すでに求まっている (mathbf{b, c}) との関係を考慮すれば、
$$ mathbf{a} = left(a sqrt{1-cos^2beta-left(frac{cosgamma-cosalpha cosbeta}{sinalpha}right)^2}, a frac{cosgamma-cosalpha cosbeta}{sinalpha}, acosbeta right)
$$となります5。以上のように (mathbf{a}, mathbf{b}, mathbf{c}) を計算すれば、後は簡単なベクトル・行列の演算でreciprocal latticeベクトルも求まりますし、さらにそれらを使って面間隔や面間の角度なども容易に計算できます。


実lattice parametersとreciprocal lattice定数の関係

 蛇足の情報です。real spaceのlattice parametersを(ベクトルではなく) (a, b, c, alpha, beta, gamma) とした時、reciprocal spaceのlattice parameters (a^*, b^*, c^*, alpha^*, beta^*, gamma^*) は次のように変換できます。
$$
a^* = (b c sinalpha)/v, quad
b^* = (c a sinbeta)/v, quad
c^* = (a b singamma)/v
begin{array}{rcl}
cosalpha^* & = &(cosbeta cosgamma -cosalpha)/(sinbeta singamma)
cosbeta^* &=& (cosgamma cosalpha -cosbeta)/(singamma sinalpha)
cosgamma^* &=& (cosalpha cosbeta -cosgamma)/(sinalpha sinbeta)
end{array}$$

reciprocal space格子の体積 ( v^*) は、
$${v^*}^2={a^*}^2 {b^*}^2 {c^*}^2 (1-cos^2alpha^*-cos^2beta^*-cos^2gamma^* +2 cosalpha^* cosbeta^* cosgamma^*)
$$という計算で求められます。 (v^*) とreal space格子の体積 ( v) には (v^*=1/v) の関係があります。このほかにも様々な関係式があります6が、コンピュータが発達した現在、上述のreciprocal latticeベクトルの概念を利用したほうがほとんどの場合シンプルに問題解決できるでしょう。


Footnotes

  1. このページでは、「reciprocal lattice定数」という概念も出てきますので、あえて冗長に「実lattice parameters」と表現しています。普通の文脈では「lattice parameters」と表現して構いません。 ↩︎
  2. 行列やベクトルの演算は、Excelでもできますし、Mathematicaのような数式処理ソフトやPythonのようなプログラミング言語とも親和性が高く、応用が利きます。 ↩︎
  3. ちなみに3×3行列の逆行列は公式があって
    $$R^{-1} =
    (-a_z b_y c_x + a_y b_z c_x + a_z b_x c_y – a_x b_z c_y – a_y b_x c_z + a_x b_y c_z)^{-1}
    begin{pmatrix}
    -b_z c_y + b_y c_z & +a_z c_y – a_y c_z & -a_z b_y + a_y b_z
    +b_z c_x – b_x c_z & -a_z c_x + a_x c_z & +a_z b_x – a_x bz
    -b_y c_x + b_x c_y & +a_y c_x – a_x c_y & -a_y b_x + a_x b_y
    end{pmatrix}
    $$という式を使って解くことが出来ます。  ↩︎
  4. この基準は、crystal学の業界でよく使われており事実上のデファクトスタンダードといってよいでしょう。  ↩︎
  5. 右手系と左手系の区別に気を付けましょう。ここでは右手系になるように計算しています。(mathbf{a})を反転させると、左手系に変換されます。 ↩︎
  6. reciprocal lattice定数を組み合わせてbelowのように (A,B,C,U,V,W) を定義します。
    ( A={a^*}^2, B={b^*}^2, C={c^*}^2, U=2b^*c^*cosalpha^*, V=2c^*a^*cosbeta^*, W=2a^*b^*cosgamma^*)
    逆unit cellの体積 ({v^*}) はbelowのように表現できます。
    ({v^*}^2= (4ABC-AU^2-BV^2-CW^2+UVW)/4)
    あるcrystal面 ((h k l)) の面間隔を ( d) はbelowのように表現できます。
    (frac{1}{d^2} = h^2 A + k^2 B + l^2 C + kl U + lh V + hk W )
    belowは蛇足の蛇足な関係式です。使う場面はあまりないでしょう。
    (a^* = sqrt{A}, b^* = sqrt{B}, c^* = sqrt{C})
    ( alpha^* =arccos frac{U}{2 sqrt{BC}}, beta^* = arccos frac{V}{2 sqrt{CA}}, gamma^* =arccos frac{W}{2 sqrt{AB}} )
    ( a = frac{b^* c^* sin{alpha^*}}{v^*} = left(frac{4BC-U^2 }{4ABC-AU^2-BV^2-CW^2+UVW}right)^{1/2} = left(A-frac{BV^2+CW^2-UVW}{4BC- U^2}right)^{-1/2} )
    ( b = frac{c^* a^* sin{beta^*}}{v^*} = left(frac{4CA-V^2 }{4ABC-AU^2-BV^2-CW^2+UVW}right)^{1/2} = left(B-frac{CW^2+AU^2-UVW}{4CA- V^2}right)^{-1/2} )
    ( c = frac{a^* b^* sin{gamma^*}}{v^*} = left(frac{4AB-W^2 }{4ABC-AU^2-BV^2-CW^2+UVW}right)^{1/2} = left(C-frac{AU^2+BV^2-UVW}{4AB- W^2}right)^{-1/2} )
    (sinalpha = {frac{a^*}{bc v^*}} = left( frac{4A(4ABC-AU^2-BV^2-CW^2+UVW)}{(4CA-V^2)(4AB-W^2)}right)^{1/2} =left( 1- frac{(VW-2AU)^2}{(4CA-V^2)(4AB-W^2)} right)^{1/2} )
    (sinbeta = {frac{b^*}{ca v^*}} = left( frac{4B(4ABC-AU^2-BV^2-CW^2+UVW)}{(4AB-W^2)(4BC-U^2)}right)^{1/2} =left( 1- frac{(WU-2BV)^2}{(4AB-W^2)(4BC-U^2)} right)^{1/2} )
    (singamma = {frac{c^*}{ab v^*}} = left( frac{4C(4ABC-AU^2-BV^2-CW^2+UVW)}{(4BC-U^2)(4CA-V^2)}right)^{1/2} =left( 1- frac{(UV-2CW)^2}{(4BC-U^2)(4CA-V^2)} right)^{1/2} )
    (cosalpha = frac{cosbeta^* cosgamma^* -cosalpha^* }{sinbeta^* singamma^* } = frac{VW-2AU}{sqrt{(4CA-V^2)(4AB-W^2)} } )
    (cosbeta = frac{cosgamma^* cosalpha^* -cosbeta^* }{singamma^* sinalpha^* } = frac{WU-2BV}{sqrt{(4AB-W^2)(4BC-U^2)} } )
    (cosgamma = frac{cosalpha^* cosbeta^* -cosgamma^* }{sinalpha^* sinbeta^* } = frac{UV-2CW}{sqrt{(4BC-U^2)(4CA-V^2)} }) ↩︎
contents