Superflip_and_RIETAN-FP の変更点


#author("2024-03-09T11:01:02+09:00","default:masami","masami")
RIGHT:&ref(https://www.misasa.okayama-u.ac.jp/~masami/images/OUOperatingGrant.png);
#author("2024-03-09T11:04:27+09:00","default:masami","masami")
*RIETAN-FPのLe Bail解析とSuperflipを使った粉末X線構造解析の手順 [#f6faa868]
-現在RIETAN-FPの環境でもSuperflipに対応されているので、以下はもう不要ですが、Superflipのやり方などはまだ有用なので残しておきます。
-RIETAN-FPのLe Bail解析で出力される.ffoを読んで、Superflip用の入力ファイル.inflip(EDMA用も)を作るPythonのコードを作りました(末尾にダウンロード先)。もともと.ffoはSuperflipの強度データに流用しやすくなっているのでコピー&ペーストすれば済むのですが、それ以外の部分を作るのは結構面倒なので自動化してます。なお、これはFox用に作ったものをちょっと改造したものです。charge flipping法(Oszlanyi & Suto, 2004)やそれを使った解析自体については[[Superflip_plus_Fox]]の方に詳しく書いてますので、参照してください。
 現在RIETAN-FPの環境でもSuperflipに対応されているので、以下はもう不要ですが、Superflipのやり方などはまだ有用なので残しておきます。
 RIETAN-FPのLe Bail解析で出力される.ffoを読んで、Superflip用の入力ファイル.inflip(EDMA用も)を作るPythonのコードを作りました(末尾にダウンロード先)。もともと.ffoはSuperflipの強度データに流用しやすくなっているのでコピー&ペーストすれば済むのですが、それ以外の部分を作るのは結構面倒なので自動化してます。なお、これはFox用に作ったものをちょっと改造したものです。charge flipping法(Oszlanyi & Suto, 2004)やそれを使った解析自体については[[Superflip_plus_Fox]]の方に詳しく書いてますので、参照してください。

**RIETAN-FPのLe Bail解析 [#ha73ae79]
-RIETAN-FPはRietveld法のプログラムですが、Le Bail法を使うことができます。その例として、RIETAN-FPにはBaSO4, fluoro-apatiteのデータが付属しているので、Le Bail法を使う時はそれらの.insファイルを雛形として使う。RIETAN-FPでLe Bail解析を実行すると.ffoファイルが作成され、Le Bail法でピーク強度を抽出したF(hkl)^2のリストがそこに書き込まれている。
 RIETAN-FPはRietveld法のプログラムですが、Le Bail法を使うことができます。その例として、RIETAN-FPにはBaSO4, fluoro-apatiteのデータが付属しているので、Le Bail法を使う時はそれらの.insファイルを雛形として使う。RIETAN-FPでLe Bail解析を実行すると.ffoファイルが作成され、Le Bail法でピーク強度を抽出したF(hkl)^2のリストがそこに書き込まれている。
**Superflip用入力データの作成 [#z8180aad]
-Superflip用の入力データ.inflipは反射強度のリストを必要とするので、.ffoファイルからデータを読んで、.inflipに書き込む必要がある。今回作ったfp2sflip.pyはこれを自動化する。なおFoxのデータにはfwhmがないため、グループを計算してやらないといけないが、ffoにはfwhmも含まれているので、グループの計算は必要ない。そのため、Superflipの入力ファイルのdataformatをfwhmを使うように直している。また、EDMA用の入力ファイルも同時に作成する。なお、.inflipでは格子常数などの情報も必要なため、RIETAN-FPが作る.lstファイルも読み込むので、同じディレクトリに.lstが存在しないといけない。
-これらの入力ファイルで必要な対称操作部分も自動で作成するために、sflip-symmetry.txtを同じディレクトリーに置いておく必要がある(コード内で指定しているので、sflip-symmetry.txtのパーマネントな置き場所をそこで指定しておけば、いちいち実行ディレクトリに移動させる必要はない)。実行はターミナル上で例えば以下のようにする。
 > ./fp2sflip.py BaSO4.ffo
 Superflip用の入力データ.inflipは反射強度のリストを必要とするので、.ffoファイルからデータを読んで、.inflipに書き込む必要がある。今回作ったfp2sflip.pyはこれを自動化する。なおFoxのデータにはfwhmがないため、グループを計算してやらないといけないが、ffoにはfwhmも含まれているので、グループの計算は必要ない。そのため、Superflipの入力ファイルのdataformatをfwhmを使うように直している。また、EDMA用の入力ファイルも同時に作成する。なお、.inflipでは格子常数などの情報も必要なため、RIETAN-FPが作る.lstファイルも読み込むので、同じディレクトリに.lstが存在しないといけない。
 これらの入力ファイルで必要な対称操作部分も自動で作成するために、sflip-symmetry.txtを同じディレクトリーに置いておく必要がある(コード内で指定しているので、sflip-symmetry.txtのパーマネントな置き場所をそこで指定しておけば、いちいち実行ディレクトリに移動させる必要はない)。実行はターミナル上で例えば以下のようにする。
 % ./fp2sflip.py BaSO4.ffo
これでできるBaSO4.inflipファイルはまだ完全ではないが、とりあえずはそのままでSuperflipを実行できるようになっている。直す部分としては組成とZが分かっているなら、キーワードcompositionを正しく与えてやる必要がある。BaSO4の場合は、Z=4なので、"composition Ba4 S4 O16"となる。また先頭の#を削除する。さらにhistogram compositionの先頭の#を削除する。もし組成自体が不確定な場合はcompositionとhistogram行は#を先頭につけたままにする。このテンプレートは標準的なセッティングなので、必要に応じてパラメーターなどを変える必要があるが、自分の好みでコード自体を直せばよい。

**Superflipの実行 [#uac0418b]
-入力ファイルが出来たら、Superflipを実行するが、ターミナルで使う必要がある。Superflipのバイナリーがあるディレクトリにいて、入力ファイルも同じところにあるなら、ターミナルから
 > ./superflip BaSO4.inflip
 入力ファイルが出来たら、Superflipを実行するが、ターミナルで使う必要がある。Superflipのバイナリーがあるディレクトリにいて、入力ファイルも同じところにあるなら、ターミナルから
 % ./superflip BaSO4.inflip
で計算を実行させることができる。計算が終了したらSuccessがあるかチェック。Successがゼロでも実際には正解の電子密度が得られていることもある。また、何度か繰り返して計算させることも必要。計算で出来たxplorファイルをダブルクリックして、Vestaで電子密度を表示させる。RIETAN-FP付属のBaSO4データを解析した場合、Ba, Sは明瞭に見えるが、酸素は最初はっきりしないが、VestaのObjects->Properties->Isosurfaces...の設定からIsosurface levelを下げてやるとSの周りに4個電子分布が見えるので、それらが酸素であろう。

**電子密度の解析 [#pc9ec6d8]
-EDMAプログラムはSuperflipで得られた電子密度を解析して、原子を同定して、等価な原子位置を整理してcifファイルに書き出してくれる。EDMAはSuperflipと同じサイトからダウンロードできる。EDMAの入力ファイルBaSO4.edmaはfp2sflip.py実行時に既に作成されている。こちらは化学組成を定義しないと実行できないので、composition行で組成を入力する。定義はSuperflipの入力ファイルと同じであるので、"composition Ba4 S4 O16"。Zが最初分かっていない場合もあろうが、先にVestaで表示した電子密度からZを推定できるかもしれない、EDMAの実行もターミナルから
 > EDMA BaSO4.edma
 EDMAプログラムはSuperflipで得られた電子密度を解析して、原子を同定して、等価な原子位置を整理してcifファイルに書き出してくれる。EDMAはSuperflipと同じサイトからダウンロードできる。EDMAの入力ファイルBaSO4.edmaはfp2sflip.py実行時に既に作成されている。こちらは化学組成を定義しないと実行できないので、composition行で組成を入力する。定義はSuperflipの入力ファイルと同じであるので、"composition Ba4 S4 O16"。Zが最初分かっていない場合もあろうが、先にVestaで表示した電子密度からZを推定できるかもしれない、EDMAの実行もターミナルから
 % EDMA BaSO4.edma
で実行する。cifファイルが作られるので、それをVestaで読む。BaSO4の結果では酸素を含めて全ての元素が検出された。原子種の間違いなどはVesta上で編集すればよい。RIETAN-FP付属のfluoro-apatiteの例ではCa, P, Fは明瞭に見えるが、酸素位置は求められなかった。求まったCa, P, Fの位置を使って、RIETAN-FPで部分構造を入れたLe Bail法を行えばいいはずだが、今のところうまくいっていない。

**Pythonコードとデータ [#lab69f79]
-[[fp2sflip.py:https://www.misasa.okayama-u.ac.jp/~masami/fp2sflip.py]]
-[[sflip-symmetry.txt:https://www.misasa.okayama-u.ac.jp/~masami/sflip-symmetry.txt]]
-[[fp2sflip.py:https://mkanzaki.sakura.ne.jp/codes/fp2sflip.py]]
-[[sflip-symmetry.txt:https://mkanzaki.sakura.ne.jp/data/sflip-symmetry.txt]]