VESTAで周期的な任意の格子に切り取る方法

#イントロ
お疲れさまです. 橋本です.

VESTAで面方位を切り出す方法はいくつかございます.
その中で「1.正しい方法」と「2.簡単な方法」の2つについて解説します.

#0.準備
ほしい結晶構造(.cif ファイル)を無機材料データベース (AtomWork)「https://mits.nims.go.jp/ 」からダウンロードして来ます.
そして, ダウンロードしたcifファイルをVESTA「https://jp-minerals.org/vesta/jp/download.html 」にドラッグ・アンド・ドロップして開きます. ここでは酸化アルミニウムAl2O3を使います.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/d4a8ebe6-7b89-62e4-c4da-605bc0a35dbc.png)
切り出したい結晶構造を決めます. 

「Objects」→「Boundary」を選択し, x(max),y(max),z(max)に整数を入れればその倍数だけ結晶格子を伸ばす事ができます.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/5118dc8c-1900-5eb5-03bf-a28d3c61abe5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/ecd9e555-25c5-14bb-5958-7849eaa3b8ba.png)
切り出したい面を考えます. 必須ではありませんが, このとき,「Edit」→「Lattice Planes」が便利です.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/12da13e3-3259-7c0b-527e-43c3e33c7048.png)
例えば, 緑と紫の領域で切りたいとき
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/92987bf9-58c6-4c83-e714-66a59ca28122.png)
ちなみに,原子を3つ「Shift」キーを押しながら選択した後に「calculate the best plane for the selected atoms」を押すとその原子3つの通る面を自動で入力してくれます.

#1. 正しい方法
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/2192b54e-b2aa-c6fe-80e0-41ce61b70b50.png)
このように変換される前の基本並進ベクトルと, 変換後(切り出し後)の基本並進ベクトルを求めます.
画像だと格子定数を$(a,b,c)$とし, 変換前がオレンジ色で, 変換後が紺色.

そして, 「Edit」→「Edit Data」→「Unit Cell」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/624c82e2-b756-d019-5607-e5c544a4c098.png)
「Transform」のボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/47306068-5f17-0c97-8397-ab06b8316b75.png)
「Unit Cell Transformation」ウィンドウの「Transform Matrix」に数値を入力します.
右の数式に変形後の基本並進ベクトルを(a',b',c')、変形前の基本並進ベクトルを(a,b,c)としてマトリクスで線形変換していると書いてあるので, 倣ってマトリクスを決めます.すなわち,
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/c398da6a-738a-978e-7487-37a5bbf5f3e0.png)
一般的な線形変換の形で書きたかったので縦ベクトルで書いています. 注意しなければならないのは, "できたベクトルの転置になっている"事です. 例えば, P_21は2行1列目です.1行2列目ではありません.
気を付けて入力すれば
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/60566441-2058-c2af-0764-6d83edb9bb37.png)
となり, 「OK」を押下すると「構造が変わるよ？」とダイアログが出てくるので「はい」を
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/d6f88eec-d100-554d-51ea-77da6c04a80a.png)
そして「どのように構造を変換するか」を聞かれます.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/ef75516c-3a05-6267-eb24-67ea70bc2ac4.png)
上から,「対称性を考慮して新しく原子を追加する」「無いものを自動的に判別して追加する」「追加しない」の3つです.
基本的に一番上を選択すれば問題ありません. その後OKを選択.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/b1a9c8c1-8a8b-3f0e-6564-39fb547ebac7.png)
最後に「Objects」→「Boundary」を選択し, x(max),y(max),z(max)を1に戻せば完了です.

#2. 簡単な方法
切り出したい大きさが収まるまで構造を拡張します. この例ではx方向に2倍, y方向に2倍です. この数字は「Objects」→「Boundary」を選択し, x(max),y(max),z(max)に入力した整数と同じです. __確認ができたらx(max),y(max),z(max)を1に戻しておきましょう.__

まず,「Edit」→「Edit Data」→「Unit Cell」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/624c82e2-b756-d019-5607-e5c544a4c098.png)
「Transform」のボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/47306068-5f17-0c97-8397-ab06b8316b75.png)
「Unit Cell Transformation」ウィンドウの「Transform Matrix」に数値を入力します.
x方向とy方向に2倍なので,
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/3fefa1db-1faf-a798-bc33-8214c30dfa64.png)
のように入力しましょう. 補足すると, この行列の対角要素の上からx,y,zの伸ばす倍率です.
伸ばせたら, 「OK」を押下すると「構造が変わるよ？」とダイアログが出てくるので「はい」を
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/d6f88eec-d100-554d-51ea-77da6c04a80a.png)
そして「どのように構造を変換するか」を聞かれます.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/ef75516c-3a05-6267-eb24-67ea70bc2ac4.png)
上から,「対称性を考慮して新しく原子を追加する」「無いものを自動的に判別して追加する」「追加しない」の3つです.
基本的に一番上を選択すれば問題ありません. その後OKを選択.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/0cd905fc-c869-a80f-d123-ee3dcc7f7b24.png)
このように伸びたユニットセルが現れます. 「File」→「Export Data」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/89b6c31a-e110-fe4b-d425-8d96e8f006b8.png)
「.vasp」ファイルで保存します.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/26b09b05-7b50-f308-a01b-0abbc37e5e12.png)
保存する際,このようなダイアログが現れるので「Cartesian coordinates」(絶対座標系で原子座標を記述)を選択して「OK」を押してください.
保存したファイルを任意のテキストエディタで開き, 編集します.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/eee4d59d-3b46-8b3b-d535-0f627069cb49.png)
黄色で書いたベクトルa,b,cは保存した構造の基本並進ベクトルです. なので, 変換後の基本並進ベクトルを求め書き換えます.新しい基本並進ベクトルは紺色で書いたようになります.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/ade2258a-c483-73ed-f2cf-eb672f9fe331.png)
それぞれ, $a_{new},b_{new}$を知る必要があります. コレはVESTA上で測定すれば可能です. VESTA左ツールバーの上から「Distance」を選択し, 2点の原子をクリックすれば距離がコンソールに表示されます.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/59b0c69b-4007-f151-2469-381bdf3efd8c.png)
このように$a_{new}=4.75890$, $b_{new}=8.24266$と求まったので, 「.vasp」ファイルの基本並進ベクトルの数値を書き換えます. 上から順にx,y,z軸方向の基本並進ベクトルです.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/9a1b9533-4d85-11b4-f766-4b92617b3b49.png)
できた「.vasp」ファイルをVESTAで開くと一見できたように見えます.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/42aa310e-87d3-f04e-8462-cf5fc87bd5e3.png)
しかし, 周期的に重なった部分があるので, その重なった原子を落とします.
「Edit」→「Edit Data」→「Structure Parameters」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/27d1adec-f888-5973-8b68-f669eb0eabcd.png)
「Remove Duplicate Atoms」を選択したら数値を入力できるウィンドウが表示されます.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571701/ec7bb002-f8a1-6f0e-05fc-a12bf24fe26d.png)
その数値には「半径(Å)にある原子を消す」というもので, 例えば1と入力すれば1Aくらい近づいている片方を消す事ができます.
これで完了です.

#参考文献
VESTAマニュアル「https://jp-minerals.org/vesta/archives/VESTA_Manual.pdf 」