【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、材料シミュレーションを行う際に必要となる原子座標を生成する方法に関するものである。 【0002】 【従来の技術】分子動力学や分子軌道法などにより材料シミュレーションを行うには、対象となる結晶の全ての原子の初期配置が必要であり、結晶のモデルは、原子集団の座標を全て指定することにより定義している。 特に、結晶粒界を含む場合は、各結晶粒をある角度傾けて配置し、所要の粒界面を作る必要がある。 従来、この種の原子座標生成方法は、例えば「1972年、サーフェス・サイエンス、第31巻、138〜160頁(Sur face Science Vol. 31(1972) pp. 138−160)」に示されるように、所要の結晶粒を面方位毎に作成し、粒界面を規準に回転後切断し、粒界面を鏡面として反転像位置に原子を複製して作成していた。 【0003】 【発明が解決しようとする課題】上記従来技術では、原子位置の発生方法を面方位毎に準備する必要があったので、用意した面方位作成手段に対応する面方位しか作成できなかった。 また、面方位毎に作成手段が異なるので、プログラムが複雑になっていた。 さらに、粒界面を規準に回転後切り捨てるので、余分な一時記憶領域を必要としていた。 【0004】[発明の目的]本発明の課題は、上述の従来技術の問題点を解決することであって、その目的は、 指定された面方位を持つ結晶体を構成するモデル原子の座標データの生成を容易にかつ能率的に行い得るようにすることである。 【0005】 【課題を解決するための手段】本発明の原子位置生成方法は、結晶サイズ、格子定数、格子内原子位置、ミラー指数を入力データとして持ち、結晶サイズから、結晶を含む直方体に外接する球の半径を求め、次いでこの球に外接する立方体の一辺の長さを求める。 得られた立方体の一辺の長さと格子定数から、単位格子の繰り返し数を求める。 ミラー指数によって指定される面がxy平面と平行になるような回転を与える回転変換行列を予め求め、記憶しておく。 各軸方向への繰り返し数に従って、 単位格子を作成し、単位格子中の原子位置に従って、原子位置を発生させる。 この原子位置を記憶されている回転変換行列により回転させ、その回転後の原子位置が、 入力データである結晶サイズ内に含まれているか否かを検証し含まれる場合のみその原子位置を採用してこれを登録する。 【0006】[作用]本発明の原子座標生成方法によれば、入力データとして与えられたミラー指数によって指定される面が、xy平面に平行になる回転を与える回転変換行列が予め求められ、記憶される。 そして、対象となる結晶を含む直方体がその中心点を中心としてどのように回転してもこれを内包することのできる立方体中に原子位置を発生させ、その原子位置に予め記憶された回転変換行列により回転を与えるものであるので、原子位置をただ一つの方位で作成することにより全ての方位の原子位置を容易に発生させることが可能になる。 また、 立方体内の単位格子の繰り返し数と単位格子内の原子位置とを記憶し、かつ、与えられた面方位を有する直方体内の原子位置のみを記憶するものであるので、必要となる記憶領域を小規模範囲内に留めることができる。 すなわち、本発明によれば、プログラムを単純化して汎用性をもたせることができるとともに、原子位置登録のための余分な記憶容量が削減できる。 さらに対象となる結晶がどのように回転してもこれを包含することのできる立方体内において原子位置を発生させているので、“欠け”のない結晶モデルを作成することができる。 【0007】 【発明の実施の形態】図1は、本発明の実施の形態を説明するためのブロック図であって、本発明による原子座標生成方法は、キーボード等の入力装置1と、プログラム制御により動作するデータ処理装置2と、情報を記憶する記憶装置3と、ディスプレイ装置や印刷装置等の出力装置4とを含む装置を用いて行われる。 記憶装置3 は、結晶サイズ記憶部31、格子定数記憶部32、位置発生領域記憶部33、ミラー指数記憶部34、格子内原子位置記憶都35、回転変換行列記憶部36、原子位置記憶部37を備えている。 【0008】データ処理装置2は、パラメータ入力手段21、位置発生領域計算手段22、回転行列設定手段2 3、原子位置発生手段24、回転変換手段25および領域内判定手段28を備えている。 パラメータ入力手段2 1は、入力装置1から与えられた、結晶サイズ、格子定数、格子内原子位置およびミラー指数をそれぞれの記憶部へ格納する。 位置発生領域計算手段22は、結晶サイズ記憶部31と格子定数記憶部32から、それぞれの値を参照して、まず、結晶サイズから、結晶に外接する球の半径Rをもとめ、この球を含む立方体の結晶サイズを算出する。 また、格子定数と算出した立方体のサイズから、この結晶に含まれる単位格子の繰り返し数をa、 b、c軸毎に求め、位置発生領域記憶部33に格納する。 【0009】回転行列設定手段23は、ミラー指数により指定された所要の表面をxy平面に平行にするための回転変換行列を事前に計算する。 原子位置発生手段24 は、結晶の(001)面がxy平面に平行になるようにして、また、結晶のa軸すなわち[100]ベクトルがx軸と平行になるようにして、位置発生領域記憶部33 に格納された位置発生領域内に格子を発生させ、格子内原子位置記憶部35に格納された格子内原子位置のパラメータに従って、原子位置を発生させる。 【0010】回転変換手段25は、原子位置発生手段2 4により発生させた原子位置を、前記回転行列設定手段23により設定した回転変換行列に従って回転させる。 領域内判定手段26は、回転変換手段25により回転させた原子位置が、結晶サイズ記憶部31に格納された結晶サイズ内に収まっているか否かを判定し、領域内と判定した場合にのみ原子位置を原子位置記憶部37に記憶させる。 【0011】[動作]次に、図1および図2を参照して、本発明の実施の形態の原子座標生成動作について説明する。 図2は、本発明の原子座標生成の動作を示すフローチャートである。 入力装置1から入力されたパラメータはパラメータ入力手段21によって選別され、結晶サイズ、格子定数、格子内原子位置、ミラー指数として各々の記憶部に保存される(ステップA1)。 位置発生領域設定手段22は、このパラメータのうち、結晶サイズと格子定数を利用する。 まず、結晶に外接する球の半径Rを、 R=√(L x 2 +L y 2 +L z 2 )/2 (1) から求める。 ここで、L x 、L y 、L zは結晶の大きさを表す直方体の各辺の長さである。 結晶の直方体がこの球に含まれるように、直方体の中心と球の中心を同一とする。 この球に外接する立方体を考えるとその一辺の長さは、図3に示すように2Rである。 この立方体内に原子位置を発生させるが、この立方体は球を含み球は所要の結晶のサイズを保持する直方体を含むのであるから、 立方体中に原子位置を発生させれば、必ず直方体内部を埋めることが出来る。 この関係は、図3に示すように直方体が中心を含む軸に対してどのように回転しても球からはみ出すことがないので、常に保たれる。 【0012】次に、得られた立方体の一辺の長さ2Rと格子定数から、単位格子の繰り返し数を求める。 格子定数は、a、b、c各軸に沿った格子の長さでそれぞれをa、b、cとする(ここでは、斜方晶系以上の対称性を仮定し、軸角は全て90°とする)。 一辺2Rの立方体中に含まれる単位格子り繰り返し数I x 、I y 、I zは、 I x =[2R/a]+1 (2) I y =[2R/b]+1 (3) I z =[2R/c]+1 (4) と表される。 ここで“[x]”はガウスの記号で実数x を越えない最大整数を返す関数である。 単位格子の繰り返し数I x 、I y 、I zを位置発生領域記憶部33に保存する(ステップA2)。 【0013】パラメータの内ミラー指数によって、所要の表面が指定される。 ミラー指数は、指定された面と結晶軸の交点をそれぞれp、q、rとしたときの1/p、 1/q、1/rの最も簡単な整数比h、k、lと定義される(ただし、交わらない場合は0とする)。 ここでは、xy平面内と(001)面とが平行になるように原子位置を発生させる。 すなわち(001)面を規準とする。 そこで、(hkl)面がxy平面と平行になるような回転を考える。 このために、(hkl)面に垂直なベクトルを求め、このベクトルがz軸と一致するように回転すれば(hkl)面は、xy平面に平行になる。 なぜなら、z軸とxy平面とは垂直だからである。 【0014】(hkl)面に垂直なベクトルの求め方を次に示す。 図4は、ミラー指数(hkl)で表した(h kl)面と、この面に垂直なベクトルの関係が示されている。 図4に示すように(hkl)面は、ミラー指数の定義から、x、y、z軸とそれぞれ(a/h、0、0) (0、b/k、0)、(0、0、c/1)の各点で交わる。 この面の方程式を、この面と垂直なベクトルのxy z成分を[pqr]とし、面内の任意の点(x 0 、y 0 、z 0 )を通る形で表すと、 p(x−x 0 )+q(y−y 0 )+r(z−z 0 )=0 となる。 上記の各軸との3つの交点を代入しp、q、r の比を求めると、 p:q:r=(h/a):(k/b):(l/c) となる。 従って、(hkl)面に垂直なベクトルは、 [h/a、k/b、l/c]である。 【0015】図4に示すように、ψをz軸とベクトル[h/a、k/b、l/c]を含む平面とxz平面がなす角とし、θをz軸とベクトル[h/a、k/b、l/ c]のなす角とする。 ψとθは[数1]、[数2]のようにして求めることができる。 【0016】 【数1】 【0017】 【数2】 【0018】ここでは、(hkl)面に垂直なベクトルをz軸と一致させる回転のうち、z軸回りに−ψ回転した後、y軸回りに−θ回す回転を選択する。 これらの回転行列と合成回転を表す回転行列を次に示す。 z軸に関する−ψの回転は、 【0019】 【数3】 【0020】y軸に関する−θの回転は、 【0021】 【数4】 【0022】であるから、これらの合成回転は、 【0023】 【数5】 【0024】すなわち、 【0025】 【数6】 【0026】となる。 行列の各成分を、ミラー指数(h kl)から求めたψ、θ([数1]、[数2])と[数6]を用いて計算し、回転変換行列記憶部36に保持する(ステップA3)。 次に、原子位置発生手段24により位置発生領域記憶部33に保持された、各軸方向への繰り返し数に従って単位格子を作成し、格子内原子位置記憶部35に保持された単位格子中の原子位置に従って原子位置を発生させる(ステップA4)。 次に、回転変換行列記憶部36に保持された回転変換行列を用い、回転変換手段25により、ステップA4で発生させた原子位置を回転変換する(ステップA5)。 【0027】次に、結晶サイズ記憶部31に保持された結晶サイズ内にステップA5で変換した座標が含まれるか否かを領域内判定手段26を用いて判定し(ステップA6)、含まれる場合のみ原子位置記憶部37にその位置を格納するとともに出力装置4を用いて出力する(ステップA7)。 次に、繰り返し数の更新(ステップA 8)を行い、繰り返し回数が指定回数を越えているか否かを判定し(ステップA9)、越えていなければステップA4に戻り、越えていたら終了する。 【0028】 【実施例】次に、本発明の一実施例について詳細に説明する。 [表1]は、本発明の一実施例に係わる入力データの内容を示す。 【0029】 【表1】 【0030】表1の1段目は、アルミニウム原子からなる面心立方結晶の格子定数を表す。 表の2〜5段目は格子内原子の位置を、格子定数の各成分に対する割合で示したものである。 6段目は所要の結晶のサイズ、7段目は所要の表面を指定するミラー指数である。 入力装置1 からこれらのパラメータを読み込み、パラメータ入力手段21により、格子定数記憶部32、格子内原子位置記憶部35、結晶サイズ記憶部31、ミラー指数記憶部3 4に保持する。 【0031】次に、位置発生領域計算手段22により、 単位格子の繰り返し数が計算される。 この場合、式(1)より、結晶に外接する球の半径は、√675/2 である。 この球に外接する立方体の一辺の長さは√67 5であり、単位格子の繰り返し数I x 、I y 、I zは式(2)〜(4)より、この場合は全て7になる。 従って、7×7×7の単位格子で前記の球302に外接する立方体303を埋め尽くすことができる。 【0032】次に、回転行列設定手段23により回転変換行列が計算される。 この場合、 ψ=cos -1 (1/√2) =45° θ=cos -1 (1/√3) =54.73° であるから、これを[数6]に代入すると、 【0033】 【数7】 【0034】となる。 次に、位置発生領域記憶部33に保持された各軸方向への繰り返し数I x 、I y 、I zを参照し、原子位置発生手段24により、単位格子の原点の位置を作成し、原子位置のオフセットとする。 格子内原子位置記憶都35に保持された単位格子中の原子位置に各軸方向の格子定数倍した値を格子内原子数だけ格子内原子毎に発生させ、単位格子位置に加算する。 (x,y,z)=(a(i+P a ),b(j+P b ), c(k+P c )) ここで、P a 、P b 、P cは格子内原子位置を示す。 (i、j、k)は単位格子の位置を表す指標である。 次に、回転変換行列記憶部36に保持された回転変換行列([数7])を用い、回転変換手段25によりステップA4で発生させた原子位置を回転変換して、新たな座標(X,Y,Z)を得る(ステップA5)。 【0035】 【数8】 【0036】 【数9】 【0037】 【数10】 【0038】次に、結晶サイズ記憶部31に保持された結晶サイズ(15、15、15)内に、ステップA5で変換した座標(X,Y,Z)が含まれるか否かを領域内判定手段26を用いて判定し(ステップA6)、含まれる場合にはその座標を原子位置記憶部37に格納すると共に出力装置4を用いて出力する(ステップA7)。 次に、繰り返し数の更新(ステップA8)を行い、繰り返し回数が指定回数を越えていなければステップA4に戻り、越えていたら終了する。 【0039】 【発明の効果】以上説明したように本発明は、与えられた面方位を有する直方体に外接する球に外接する、xy 平面に平行な面を有する立方体を求め、その立方体内に原子位置を発生させてそれを上記面方位分だけ回転させて所望の結晶の原子座標を生成するものであるので、以下の効果を奏することができる。 任意の方位の表面を持つ結晶モデルの原子位置を容易に生成することができる。 作成した結晶モデルに“欠け”が生じることのないようにすることができる。 最小の立方体内での単位結晶の繰り返し数を位置発生領域記憶部に記憶するようにし、かつ、所望の結晶内の原子位置のみを記憶するようにしたので、使用する記憶領域を小規模の範囲に抑えることができる。 【図面の簡単な説明】 【図1】本発明の実施の形態および実施例を説明するための処理装置のブロック図。 【図2】本発明の実施の形態および実施例を説明するためのフローチャート。 【図3】本発明の実施の形態を説明するための結晶の配置関係を示す図。 【図4】本発明の実施の形態を説明するためのミラー指数で指定される面の回転を示す図。 【符号の説明】 301 直方体 302 球 303 立方体 |