粉末X線回折データを使って構造解析する方法についてのメモ.Mac OSXで使えるソフトがメイン.SDPDとはstructure determination by powder diffraction dataのこと.最近出たExpo2009ではMac版も用意されました。
*RIETAN-FP (Rietveld法)関係の話題 [#rc1967ef]
-Intel Mac版(Windows版も)のRIETAN-FPが公開されました(2009/07/23).http://homepage.mac.com/fujioizumi/ 早速Foxで解いた構造のrefinementに使ってます.
-回折パターンの表示
--Intel MacだとRIETAN-FPの結果の回折パターン(.itxファイル)をグラフ化するのがちょっと大変です.推奨されているIgor Proは高価です.VESTAに同封されているPowderplotはIntel Macでは動きません。
--1つの手はWindows版付属のDr. Hellさん作の表示プログラムを下記のDarwineで使うことです.Mac上でほぼ完璧に動作します.
--私が最近行っているのは,PlotというフリーのMac OSX用グラフソフト(http://plot.micw.eu )を使う方法です.2007年で更新が止まっているのがちょっと怖いところですが、Intel Macで問題なく動作します。
---PlotでAsciiから読み込むで、角度、実測、計算強度等を読み込むことができます。
---PlotでRietanデータを表示した時に、正しく表示されていないことがよくあります。これはデータがたくさんある場合に間引いて表示しているために生じるようです。正しく表示させるには、InspectorのGeneralでEnable drawing of every data point:にチェックを必ず入れてください。デフォルトではチェックが外れてます。
---上記で一応パターンが表示されてfittingがよいかどうか等は判断できますが、論文等で使うほどの質ではありません。特に回折位置を示す縦棒が表示されないのは困ります。そこで.itxファイル(こっちはgnuplot用の出力オプションを選ぶ)から、回折線位置も含めて、Plotで処理できるようにデータを変換するプログラムをpythonで作成しました。残差はこの出力ファイルには入ってないので、読み込み時に計算して追加します。ここでややこしいことは、観測、計算強度等は角度に対してリストされているので、そのままPlotで読み込めるのですが、回折線位置は別フォーマットで同じファイルに入っているので、それらを角度に対して並べて、追加する必要があることです。そしてそこに追加する値としてはy軸に対して縦棒をずらせて表示させてやる位置(相によって変える)を入れてやります。この変換を行うと、Plotで回折線位置も含めて読み込まれます。そして回折線位置についてはInspectorのData Styleで、Lineのチェックを外し、Y Stickのチェックを入れます。これで縦棒として表示されます。デフォルトでは棒のサイズが長いので、Sticksizeで好みの大きさに変更。色等も変える。他のデータについてもスタイル等を見やすく変えておく。ここでMacro Inspectorを開き、Insert Styleで現在のスタイル用のマクロを記録する。これを保存すれば次回からは、このマクロを使うと、一発でスタイル設定等を変更することができる(ただデータが異なると細かい調整が再度必要)。また先のEnable drawing of every data point:は自動化できないので、ここのチェックは忘れずに。さらにきれいに見せるには各ラインをずらす必要がありますが、ここのマクロ中でcalc 3 'yval(3;dp)-3500' 3などとする。ここではNo.3に残差が入っていて、この場合は-3500ずらせている。またはInspectorのCalculationでもできます。またマクロの最後にrescaleを追加する。気に入ったら、これをPlotからExport Imageで保存する。そうやって作った例を下に示してます。
CENTER:&ref(http://www.misasa.okayama-u.ac.jp/~masami/images/plot-sample.png);~
---[[作ったpythonスクリプト:http://www.misasa.okayama-u.ac.jp/~masami/itx2plot.py]].今のところ縦棒は3相までに対応してます(4相以上の場合はスクリプトをちょっと直す必要があります)。Macではpythonはデフォルトでインストールされてます。このスクリプトが実行できるようにおまじないが必要なはずです(>chmod 755 itx2plot.pyとか) 。これを使うにはまずRIETAN-FPのinsファイルでgnuplot用のitxファイルを出力するように設定する。RIETAN-FPの実行。データのあるディレクトリにこのプログラムを置いておき、
 >./itx2plot.py sample.itx sample.plt 
と実行する。できたsample.pltをPlotから、ImportでAsciiで読み込む。この時にfield separatorはカンマにし、multicolumnをチェックする。これで読み込まれるはず。rietan.commandの最後の方に
 ./itx2plot.py $sample.itx $sample.plt
を追加しておけば、RIETAN実行時に自動的に計算してくれる。
 /Applications/Plot0.997/Plot.app/Contents/MacOS/Plot
を追加しておけば、Plotを起動できますが、terminalにエラーメッセージが出て、rietan.commandの実行が最後のところで止まります.

*Foxについて (Foxは実空間のモンテカルロ法によって構造を求めるプログラムです) [#k12cc84f]
-Foxは結晶構造を求めるためのプログラムです(http://vincefn.net/Fox/FoxWiki ).リンク先からプログラムをダウンロード可能です.Mac用はユニバーサルバイナリーになってます.Windows, Linux用もあります.簡単な構造だと古いPowerbookでも動きます.構造が複雑になってくるとちょっと遅くて苦しい.
-結晶構造,回折パターン等全てがオブジェクト化されてます.そこがFoxの特徴です.
-多面体等を入力できるのでケイ酸塩の構造解析には最適です.我々の場合,NMR装置があるので,そちらから配位多面体の情報が直ちに得られます.その情報をモデルにうまく活かすことができます.
-indexing, 空間群探索,Le Bail法も使えて,結構総合的な粉末X線解析ソフトとなってます.ただRietveld法はできません.粉末X線データのみがあれば,計算が始められます.indexingはDicvolを使ってます.ただし必ずしもうまく見つけてくれません.また低対称性でひどく時間がかかる場合があります.大体こんな場合は強制終了してしまうので,そのまま放っておいても正常に終了するのかどうか分かりません.ピークのリストをテキスト出力できるので,それを使ってTREORなど別のプログラムで確認した方がいいでしょう.なおKalpha2のピークや不純物ピークが混ざっていることがあるので,TREORで処理する場合にはeditorで取り除いておく必要があります.これはテキストファイルに出力して編集すればいいのですが,Powder Patternのwindowで余分なピークをRemove peakで削除してもいいです.
-Le Bail法によるパターンフィッテングは今のところpseudo-Voigtのみ使えます。Le Bail法の結果はセーブすると作られるxmlファイルの中にあります.Le Bail法の結果はフーリエマップを書かせる時にも使われています.
-空間群の推定ができます.これは可能な空間群についてLe Bail法を使ってRwp, GoFを計算しているようです.GoFの小さい順で候補が表示される.対称性にもよるが,これには時間がかかります.必ずしもリストの1番が正解とは限りません.
-適当な粉末回折データがあれば,Foxだけでindexing, 空間群推定,Le Bail法による格子常数やプロファイルパラメーターの最適化,フーリエ合成,そして本命の構造をParallel Tempering法で決めることまでできます.ただ最終的な精密化には別にRietveld法プログラムを使う必要があります.出力はFullprof用だけのようです.ただCIFで構造を出力しておいて,それをVestaで読んで,RIETAN用の.insファイルを作ればRIETANで計算できます.
-MacでFoxを使っているとしばしば異常終了する時があります.そのためデータはこまめにセーブする必要があります.特にindexingする前に.
-粉末回折データの入力フォーマットに関する情報が見つかりませんでした.Fullprofのフォーマット等いくつかは用意されてます.付属のサンプルデータはFullprofのフォーマットのようです.私は手持ちのデータ等(マックサイエンスやSPring-8で取ったもの)をサンプルデータと同じフォーマットに変換して試してます.または1行に2theta, Iの1ペアで入っているデータでも読み込めました。
*Foxで遊んでみる [#k105bc58]
-PbSO4 (マニュアルにPbSO4のチュートリアルがありますが,格子常数と空間群は天下り的に与えられています.ここではそれらも含めて計算してます.中性子データは使わない)
--まず新しいcrystal objectを作る.ObjectsメニューからNew Crystalを.とりあえず名前以外はそのまま.
--新しいPowder_Pattern objectを作る.ObjectsメニューからNew Powderpatternを.Dataボタンを押して,付属の粉末X線強度データを読み込む.Patternボタンでパターンを表示させる.正常に表示出来ない時はフォーマットがおかしい.RadiationをCuKa12に選択,PhasesボタンからAdd Backgroundでバックグランドを引く.ここでついでにPhasesボタンからAdd Crystalline Phaseでcrystal objectで定義したものを追加する.
--Powder Patternのwindowで右クリックで出てくるメニューからFind peaksを選ぶ.ピークにd値が表示される.拡大表示してよく見る.ピークのリストはSave peaksでファイルに書き出すことが出来る.
--次に右クリックでIndex!を選ぶ.デフォルトではQuickである.Find Cell!ボタンをクリック.PbSO4の場合,1つだけscoreの高いorthorhombicの候補が出てくる.これは正しい.上のChoose crystal to apply selected cell ...のボタンをクリック.さらにAutomatic Profile Fittingのチェックを入れるとLe Bail法でfittingを行う.GoF, Rwpをチェック.今見つかった格子常数がcrystal objectに自動的に設定されている.空間群も設定されているが,これはこのセルに対応したものが適当に入っているだけである.
--パターンのところで右クリックして,Fit profile and Le Bail extractionを選ぶ.ここでQuick FitタブでボタンをクリックするとまたLe Bail法が始まる.Spacegroup Explorerタブを選択して,ボタンを押すと空間群の探索が始まる.得られたリストではP21cn, P21/c, Pmcnと続く.格子はorthoなのでorthoの中で最も良いのはPmcnであり,これは実際に正しい空間群である(チュートリアルで出ているPnmaとは軸の取り方が異なるだけ).Crystalsのところでこの空間群を入力する.フーリエ合成で使うので,この空間群について,Quick FitでLe Bail  fittingを1度はやっておく.
--Z=4と推定される.一般位置は8個なので,Pb,Sともに特殊位置にある.どちらも1サイトのみとして,位置に拘束つけずにまず計算してみる.
--ScatterersでAdd Atomic Scattering PowerでPb, S, Oをまず設定.そしてPbを1個Add atomで1つ定義し,SO4もAdd Tetrahedronで1つ定義.S-O距離は1.5とする.
--Global OptimizationでNew Monte-Carlo Objectを追加.ここでOptimized objectとして,定義済みのcrystalとpowerpatternオブジェクトを追加.これでRun/StopからMultiple Runsを選ぶ.すぐにChi^2, Rwpが下がる.Pb, Sの座標を見るとxは1/4の特殊位置であるように見える.1/4で固定(チェックを外)して計算する.酸素が余分にあったりするが,そこは無視.基本的に解けている.
--3D Displayで右クリックして,観測強度によるフーリエマップ,または差フーリエマップを描かせて,原子位置と電子分布が一致していることを確認.Optimizationの時に表示させておくと便利.
--CrystalsでFileからCIFファイルを出力.VESTAで眺める.もし余分な酸素が残っているなら取り除く.特殊位置からずれていることで1つの原子が複数に分離していることもあるので,座標値をよくチェックする.必要ならこの座標を元にして,Foxで全ての原子をatomとして,Limitを付けておいて再計算することもできる.またはRietveld法でさらにrefineする.
--Max sin(theta)/lamdaをなるべく大きく設定して,Le Bail法でfittingする.ファイルをxml.gzで書き出す.解凍して,xmlファイルを得る.中に強度データがあるので,適当なプログラムを作って,superflip用の強度データのフォーマットへ変換.superflip用の入力ファイルを作って実行する.superflip自体は数秒で終了.出来たxplorファイルをVESTAで見る.Pb, Sに相当する電子密度が高い山があり,座標値も特殊位置にあって,構造は正しい.しかし酸素はいくつか抜けている.EDMAを実行すると座標値を取り出しCIFファイルに出力してくれる.これをまたVESTAで見る.S周りの酸素が2−3個しか検出されてない.やはり酸素はPbに比べて圧倒的に電子数が少ないので見づらいのだろう.
-ZrO2 (もう少し丁寧に書き直しました)
--まず新しいcrystal objectを作る.ObjectsメニューからNew Crystalを.とりあえず名前以外はそのまま.
--新しいPowder_Pattern objectを作る.ObjectsメニューからNew Powderpatternを.Dataボタンを押して,Le Bailさんのところからdlした粉末強度データを読み込む.Patternボタンでパターンを表示させる.正常に表示出来ない時はフォーマットがおかしい.RadiationをCuKa12に選択,PhasesボタンからAdd Backgroundでバックグランドを引く.ここでついでにPhasesボタンからAdd Crystalline Phaseでcrystal objectで定義したものを追加する.
--Powder Patternのwindowで右クリックで出てくるメニューからFind peaksを選ぶ.ピークにd値が表示される.拡大表示してよく見て,ピークとして認識されてない場合はその部分で右クリックして出てくるメニューでAdd peakを選ぶ.逆に不純物相によるピークを除くにはその位置で,右クリックして出てくるメニューでRemove peakを選ぶ.ピークのリストはSave peaksでファイルに書き出すことが出来る.
--次に右クリックでIndex!を選ぶ.デフォルトではQuickである.Find Cell!ボタンをクリック.Figure of Meritの順で出てくる.この場合は正しくmonoclinicで指数付けされていた.上のChoose crystal to apply selected cell ...のボタンをクリック.さらにAutomatic Profile Fittingのチェックを入れるとLe Bail法でfittingを行う.refineされた格子常数がcrystal objectで設定される.これを行ってGoFなどが小さくなっているかをチェックすると,間違ったindexingを判定できる.
--またピークには指数が付いているはずである.沢山あってピーク自体が見づらい時は,Hide peaksで消す.
--パターンのところで右クリックして,Fit profile and Le Bail extractionを選ぶ.ここでQuick FitタブでボタンをクリックするとまたLe Bail法が始まる.Spacegroup Explorerタブを選択して,ボタンを押すと空間群の探索が始まる(時間がかかるが).この場合,P21/cがGoFが最小となった.これは正しい空間群である.Crystalsのところでこの空間群を入力する.
--Zrは配位数が6よりも高いので多面体をscattererとして使うことはやめておく.
--密度からZ=4と推定される.ZrがOよりもはるかに重いので,まずZrのみ考える.Zrはセル内に4個あるが,一般座標が4eなので,Zrは単一サイトで一般位置である可能性をまずチェック.
--Zrを1個add atomで追加し,座標には制約付けずにoptimizeする.すぐ収束して,FobsのフーリエマップとZrの位置が一致している.したがってZrは一般位置にあると分かる.Zrはこの位置に固定する.
--Oは8個あるので,2つの一般座標4e位置を占めているとまず仮定して,2つのOを追加.どちらも制約なし.
--これでoptimizeするとすぐにRwpが下がる.フーリエマップを見て,正しいことを確認.
--3D Display windowにFobsのフーリエ合成や差フーリエマップを原子に重ねて表示させておいて,optimizeするとマップも更新されるので構造が解けたかどうか分かりやすい.	
-Cr2O3
--上記同様.
--indexingでQuickだとmonoclinicが多数出てくるが,明らかに正しくない.Advancedのところでhexagonalで試行錯誤するとやっとhexagonal (rhombohedral)の正しいセルが表示される.Advancedではセルの大きさ(デフォルトで3が最小だが酸化物ではしばしば2.7-2.8くらいもありうる),spurious peakの数(1-2), 表示するscoreをもっと小さくする,などのパラメータを変えて計算させるといいようである.しばしば異常に計算に長い時間がかかることがあるので,ここで計算する前にデータをセーブしておいた方がよい.
--空間群の探索をさせるとR3cとR-3cが同じ値で1番にリストされた.
--密度からZ=6と推定される.簡単な構造なので,1)Cr,Oを原子として扱う,2)CrO6として扱う2つのやり方が考えられる.
--まず原子として扱う方から試す.CrとOを1つづつ入れる.R3cでは収束しないが,R-3cならすぐ収束する.
--CrO6八面体として扱ってもR3cはダメで,R-3cだとすぐ正しい構造に収束する.
-Al2O3
--上記同様.データはLe Bailさんのところから.
--Le Bail法で問題あり.ここで尺度因子がおかしいのかfittingが明らかに変になる.計算されたパターンの強度が異常に低く,そのためRwpなども悪い.manualで尺度因子をいじってもだめ.何度最初からやってもダメ.先に進めず.構造的には上記Cr2O3と同じなのだが.マニュアルではPatternのところからScaleを更新できるとあるが,これもダメだった.別のAl2O3のデータと比べると強度比がかなり異なる.そちらのデータでは問題が起こらなかったので,回折データ自体に何か問題か.
-calcite
--まず粉末強度データを読み込んで,管球をCuKa12に選択,バックグランドを引く.
--パターンを表示させる.右クリックでピークサーチ,次にindexingする.うまくindexできない.ピークのリストをファイルに出力して,TREORでindexingする.なおこのファイルにはKalpha2も拾われているので,それらは除いておく必要がある.Patternを拡大して,よく見ながらKalpha2や明らかにおかしいピークは除く.TREORではhexagonal (rhombohedral cell)でうまくindexingできた.
--空間群の探索をさせるとR3cとR-3cが同値で1番であった.
--密度からZ=6.R-3cの場合,CaとCが000, 001/4の特殊位置のどちらかを占める.Ca=0 0 0, C=0 0 1/4でまあまあRwpは下がる.R3cの場合,Ca, Cは00zを占めることになるが,RwpはR-3cよりも悪い.
--Le Bail法でfittingして,superflip用データを作って,実行する.superflip自体は数秒で終了.出来たxplorファイルをVESTAで見る.CO3に相当する3つ角が生えた電子密度が見られる.Ca, CO3の位置は正しく再現されている.
-F-apatite (Ca5P3O12F): これはRIETAN付属のデータを使った.
--Fullprofのフォーマットに変換した粉末強度データを読み込んで,管球をCuKa12に選択,バックグランドを引く.
--パターンを表示させる.右クリックでピークサーチ,次にindexingする.Quickではorthoとhexagonalの2つの候補が出てくる.TREORではhexagonalのみがヒット.これはFoxの2番目の候補と同じ.これが正しい.
--Crystals objectでcrystalを1つ定義する.
--空間群の探索をさせると,あまり差がつかずに並んでいる.上から順番に試していくしかない.実際の空間群は3番目のP63/mであった(これは2thetaをどこまで使っているかなどに依存する).
--Z=2と推定される.Caはセル内に10個あるが,P63/mの場合,一般位置は12個なので一般位置には入れられない.2種以上の特殊位置にいると推定できる.一方Pはセル内に6個あるので,1種類以上の特殊位置にいると考えられる.
--P63/mとして,とりあえずCaを2席,PO4を1席で計算してみる.どれも一般位置にしておく.またantibumpも指定しておくと素早く収束するようになる.ただしまだFを入れてないので,Rwp等は小さくならないのでそちらからは判定できない.Fo, Fo-Fcのフーリエマップからはこの構造が正しそうなことが分かる.またFo-Fcマップから計算に入れていないFの位置がわかる.その位置からFの特殊位置の内どれかが決まる.そこにFを固定して,さらに計算するとRwpがかなり下がった.
--P63/m以外の空間群で試してみたが,GoFの低いものは見つからない.
--最初からCaを2席,PO4を1席, Fを1席で座標を拘束せずに計算してみると,P63/mですぐに収束した.antibumpを使っている.使わないと収束しなかった.
--
-t-AlF3:4つAlの席があるのでこれまでよりも手強い.全て6配位.これの粉末X線データからの構造解析論文はLe Bailら, J. Solid State Chem., 100, 151-159, 1992.
--Le Bailさんのところからdlした粉末強度データを読み込んで,管球をCuKa12に選択,バックグランドを引く.
--パターンを表示させる.右クリックでピークサーチ,次にindexingする.Quickでは沢山候補が出てくる.
--ピークサーチしたリストをテキスト出力して,TREORを使ってindexingする.この相はピークがブロードなのでKa2が分離してない.TREORでは直ちにFigure of meritの高い確実な解が得られた.tetragonal.Foxではtetragonal指定してやるとこれも出てくるが,3〜4番目.indexingはやはり複数のプログラムでチェックしないといけない.
--Crystalsでt-AlF3結晶を定義する.空間群にはとりあえずP4を入れておく.指数付けで決まった格子常数をCrystalsで設定する.
--空間群の探索をさせると,時間がかかるがP4/nmmのGoFが最小となった.これは正しい空間群である.
--密度からZ=16と推定される.Alはセル内に16個あるが,一般座標が16個なので,Alは単一サイトで一般位置にある可能性をまずチェック.AlF6の八面体を1個add octahedronで追加し,座標には制約付けずにoptimizeする.全く収束しない.
--八面体を増やしていくが,あまり芳しくない.そのためAlの席が4つであると知っているとして,以下続ける.27Al 3Q MAS NMRで測定するとAlの席が同定できるであろう。なお指数に合わない不純物と思えるピークが1つあった.この領域を計算から除外する.
--座標に制約を与える.4つの席があると,それらは特殊位置を占めることになるので,1〜2個を特殊位置の制約を付けて,その他の席には制約を与えずに計算をしてみる.International table Vol.AのP4/nmmを見ると,どれかの席がx=1/4である可能性が高い.x=1/4を2つの席に制約として使う場合と,x=1/4, y=1/4を1つの席に制約として使った場合に,GoFが構造が解けたというほどではないが,結構下がる配置が見つかる.この配置はこのような制約を付けて計算している時に何度も現われた.これの差フーリエマップを見ると,1つだけ大きな山がx=1/4,y=1/4, z=~0.4に残っている.その周りにはFが6個あり,本来Alのいるべき位置と推定される.さらによく見ると2つのAlF6が1つの位置で重なっている.そこで重なっている1つを1/4, 1/4, ~0.4に置いてzは固定せずさらに計算するとGoFが下がって,正しい構造が得られた.実は1/4, 1/4, zという特殊位置に2種のAlが入るのであるが,これがうまく探索されていないようである.
--座標を全く拘束せずに収束させることができないか,anti-bump(近接を防ぐペナルティ)をコスト関数に入れてみたが,今のところ成功してない.
-未知構造
--手元にある未知構造物質2種をFoxでindexingから初期構造決定まで試してみた.放射光X線+デバイ・シェラーカメラのデータを使っている.2日ほど苦闘して,どちらも構造を解く事ができた.ただNMRから陽イオン多面体の席数と量比は事前に分かっていた.この情報があると可能な空間群に制約が与えられたり,特殊位置に入るべきだとかが分かる.antibumpを適切に設定するとうまくいくことが多い。その後、うち1相は既知の構造と同じであるとわかった。現在雑誌に投稿してrevise中。
--さらに1つ未知構造物質をFoxでindexingから初期構造決定まで試してみた。この場合は実験室のX線装置を使ったが、構造を解くことができた。これもNMRからの情報を使っている。

-Foxの注意点.
--(Foxに限らないが)indexingは注意してやらないといけない.他のプログラムも使って確定しないと無駄な努力をすることになる.かならず出力データを丹念に読む必要がある.しばしばターミナル表示ではなく,詳細な出力ファイルの中で正解が見つかることがある.TREORをMacで使うには、公開されているTREOR90のソースコードを自分でコンパイルすることで使えるが、最新版を使いたい場合はEXPO2009に入っているN-TREOR09を使うことになる。
--私の例ではbetaが90˚にかなり近い単斜晶系を、indexingで斜方晶系となったので、斜方晶系で解析して、R factor等が下がらず、時間を無駄にしたことがある。この場合はSpacegroup ExplorerでmonoclinicでGoFが低いので、試しにmonoclinicにして、beta=90でLe Bail fittingを行ったら、明らかに斜方晶系の場合よりもRwpが改善されて、やっと単斜晶系であると気づいた。refineされたbetaは90.1くらいになっていた。よくパターンを見ると、斜方晶系で解析した場合、観察データではいくつかのピークが2つに分裂しているのに、Foxでは1つのピークしか出ていない。本来はここで気づくべきであった。よくパターンを眺めることが重要だという例。
--目の前で計算させていると,色々パラメータをいじったりして,結果的に短い計算となり収束しないことが多かった.ある程度パラメーターを決めたら,単純に沢山計算をやらせた方が早く解が得られるようである.
--ある原子ー原子ペアが近づきすぎる時はantibumpを利用する.まず取り得ない原子間距離を各ペアについて入力しておく.それより短くなるとペナルティが発生する.antibumpのスケールを適当にいじって,antibumpがコスト関数に十分反映されるようにする.なおantibumpの設定はScatterersメニューの中の"Show Scattering Powers Parameters Window"から行う.ここでは3D Displayの原子の色も指定できる.別元素が同じ色で見づらいときは,ここで変える.
--私の場合,陽イオン多面体が重なったりして、酸素が千手観音のようになることがあります.antibumpで酸素ー酸素間距離を入れておくと,本来の酸素1つにマージされていきます.
--座標が明らかにその空間群の特殊位置に収束しているようなら、座標のところで特殊位置にfixする。
--5配位が予想される時は(5配位に対応する多面体は用意されていないので),とりあえず八面体で計算する.多面体が3次元的に繋がっているような構造では,5配位部分の八面体は取り除いて,そのかわり中心元素を単独の元素として扱う.八面体の時の座標を初期値としてLimitを付けて最適化する.
--上と似た話だが,陽イオン多面体が陰イオンを共有して3次元的につながっている構造では,全てを多面体として定義して扱わない方がよい.陰イオンが全て含まれているだけの数の多面体を使い,残りの多面体は中心の陽イオンを原子単体として入れた方が収束しやすい.これはそちらの方が自由度の数が減るためであろう.私の経験した例では,全ての原子を単体として扱った時に自由度が54,全て多面体として扱ったときに自由度が36,半分を多面体として残りは原子として扱った時が27であった.最初は試してないが,2番目と3番目では3番目の場合が最も早く収束した.また陰イオン同士のマージが生じない(余分な陰イオンがないので)のもマージや動的占有率計算が不要となることも効いているのであろう.配位数の低い方を多面体として扱って,配位数の高い方を原子として扱った方が収束が早い気がする.これは配位数の低い方がrigidなためだろうか.
--それらしい構造が得られたら,CIFファイルとして出力し,VESTAで読み込む.酸素などマージしていなくて,重複しているやつは取り除く.構造を眺めてよさそうなら,陽イオン位置にlimitを付けて,さらに計算してみる.酸素(または陰イオン)の数に注意.数がZから予想されるよりも多い場合には余分な酸素がまだ残っている.うまく計算がいくと,重複している酸素等は自動的にマージされて,消えて行くはず.
--(Macの場合しか知りませんが)Limitの入力の仕方が分かりづらい.マニュアル(foxwiki)には文字のところで右クリックすると書いてあるのだがそれではダメ.値を入力するボックスの境界上で右マウスボタンをクリックするとlimit入力のダイアログが出てくる.ボックスの中を右クリックしてもダメ.
--Mac版しか使ってませんが,時々落ちます.こまめにセーブする必要があります.
--保存した時に出来るxmlファイルにはLe Bail法で求めた各指数の強度のデータが入っている.取り出してSuperflipで使うことが出来た.
--Profile Fittingのwindowは終わったら閉じておく.そのまま置いておくと,optimizeする時にTracked dataの表示がおかしくなったりする.
--Global Optimizationの"Number of Runs to perform"はMultiple Runsの時にカウントダウンしていき,0になると計算が停まる.ここが0になっていると計算が行われない.マイナスだといつまでも計算することになる.
--max sin(theta)/lambdaを大きくした時に,延長された部分のバックグラウンドがおかしくなることがある.この場合はPowder Diffraction --> Powder Pattern ComponetsのObjectボタンでバックグラウンドの再計算ができる.
--Foxのxml出力中の格子常数は,晶系の関係で例えばa=bである場合にも,a=bとなってない.bの値は使わないこと.特にこのファイルを流用する時に注意.私はこれを素直に読んでsuperflipのデータとしたところ,hexagonalで格子常数と空間群が一致してないとエラーが出た.よく見るとa=bでなかった.aにはrefineされた値が入っているが,bは最初の値から変更されていないようだ.cubic, tetragonalでも同じことが起こる.
*Fox + 固体NMRで使う [#gae04241]
-本来Foxでは非経験的に構造が解けるのでしょうが、私たちのところでは高分解能固体NMRと組み合わて効率よく構造が解けてます。特に最近は1/2スピン以外の核でも、高分解能のスペクトルが得られ、席の数、配位数が決められます。これまで4つの高圧未知相をこの組み合わせで効率よく解くことができました。
-NMRからはAl, Si, P等の配位数や席の数の情報が得られます。この情報を利用すると、空間群を制約したり、特殊位置がすぐ特定できたり、またFoxで配位多面体モデルを作る場合に直接役に立ちます。また逆に得られた初期構造がNMRの結果と一致するかどうかをチェックすることで、誤りを防ぐこともできます。配位数がわかっているとantibumpの距離設定も適切に調整できます。
*Fox + Superflipで使う [#gd6d5152]
-これはFox自体を使うのに加えて,Fox内蔵のLe Bail法を使って,その強度データをSuperflipで利用するという意味です.Superflip自体は粉末回折データを直接扱えないので,別途Le Bail法プログラムと組み合わせる必要があります.Foxは元々Le Bail法のためのプログラムではないので,Le Bail部分の完成度はまだ高くはありません.しかしFox自体で構造解析ができることや,indexingや空間群探索ができるなどの利点があります.いくつか試しに計算してみたところ,両者を相補的に使うことで,構造解析に非常に有効であると思うようになりました.Foxではモデリングでつまずいたり,沢山の可能性を試す必要があったりしますが,Superflipではモデリングは不要で全ての原子位置が直ちに判明することがあります.一方データの質が悪くなると,Superflipではきれいな電子密度の山が見えなくなります.
-とりあえずFoxの出力するxmlファイルから強度部分を取り出す簡単なプログラムを作成してみました.さらに別途作成している対称性のデータを使い,Superflip用の入力データ.inflipをエディターで作ります.inflipを直接プログラムで作れるようにできればいいのですが...これでSuperflipが実行できる.一応この流れで計算できるようにしました.なお空間群はFoxで得られたものを使ってます.得られたxporファイルをVESTAで表示させます.
-計算例 (上記Fox自体の計算例で使ったものを,ここでも使ってます)
--PbSO4: FoxでMax sin(theta)/lamdaをなるべく大きく設定して,Le Bail法でfittingする.ファイルをxml.gzで書き出す.解凍して,xmlファイルを得る.ここからsuperflip用の入力ファイルを作って,実行する.superflip自体は数秒で終了.出来たxplorファイルをVESTAで見る.Pb, Sに相当する電子密度が高い山があり,座標値も特殊位置にあって,構造は正しい.しかし酸素はいくつか抜けている.やはり酸素はPbに比べて電子数が少ないので見づらいのだろう.
--ZrO2: Zrに相当する電子密度が高い山があり,構造は正しい.しかし酸素は等曲面のしきい値を変えてやっと扁平なものが見える.これも重元素を含むので酸素は見づらいのだろう.
--Cr2O3: この場合はCrも酸素もVESTAで素晴らしくきれいに見えました.位置も正しい.
--calcite: この場合もCa, C, Oの密度が正しく表示されたが,かなり試行錯誤が必要であった.悪い場合にはCO3部分がドーナツ状になり,Caも同じような形状に なってしまう.まあこれでもC, Caの位置自体は得られるのであるが.
--F-apatite: この場合には酸素位置がところどころ抜けていた.Ca, P, Fの位置はOK.
--t-AlF3: この場合には全ての原子の山がFoxで最終的に得られたものと同じ位置に出ている.こっちの計算は1分もかからず.VESTAで表示した時の電子密度分布の奇麗さにはちょっと感動した.この結晶はFoxではかなり難しかったが,Superflipを使うことで簡単に解ける.ただEDMAはAl, Fを電子数が近いためか,間違って判定してしまう.なのでEDMAが出すCIFファイルをVESTAで読んで,1個ずつ訂正したが,ちょっとバカバカしい.
--手持ちの未知構造4種:なぜか全てうまくいきませんでした。一方Foxでは全て解けました。SuperflipではNMR等からの情報を生かすことができません。
*FullprofのMac版インストール [#m6f44236]
-こちらはRietveld解析用のソフトです.FoxがFullprof用のファイルしか出力しないので,Fullprofも試してみようと本家のHPを見るとGUIを使ったMac版も置いてありました.X Windowが必須です(Mac OSXのインストールDVDに入ってます).早速試してみましたが,GUI使ってないものはターミナルで問題なく動きますが,GUI版ではエラーが出ます./usr/OpenMotif-2.1.32-22i/lib/libXm3.dylibがないのが原因のようです.OpenMotifをインストールする必要があります.
-最初Macportsを使ってOpenmotifのインストールを行いましたが,libXm4がインストールされて,これではダメでした.Finkでインストールすると,libXm3.dylibがインストールされてました.ただこれらはそれぞれ/optや/swなどのディレクトリーに入っているので,ln -s で/usr/OpenMotif-2.1.32-22i/lib/libXm3.dylibにリンクします(エイリアスを作る).これでGUI版も動くようになりました.あまりGUI版の説明がないのですが,tfpというのがWindows上にあるFP Suite TBに対応するようです.実行するとtoolbarが出てきます.ここからFullprof, Dicvol,TREOR, Winplotr-2006などが起動できる.
-Fullprofをちょっと使ってみてます.マニュアルはわかりづらい.codewordをまず理解しないといけない.
-発散すると計算が止まらない状態になり,1つのCPUをほぼ100%使っている状態になります.そういう意味ではやたらと計算サイクル数を増やさない方がよいでしょう.止まらなくなったら強制終了では終了できないので,Activity Monitorからfp2kを終了させてやるか,terminalからfp2kをkillする必要があります.これじゃあ学生にちょっと使わせるという訳にもいかない.
*Expo2004をMacで動かす [#o0770842]
-(2009/12/23追記)最近リリースされたExpo2009ではIntel Mac用も用意されてます。以下のDawwineで動かす努力も不要になりました。これもX Window上で動きます。ちょっと遊んでいるところです。
-Fox, Superflip, FullprofがMacで使えるなら,直接法のExpo2004もMacで動かしたくなります.Mac版はありませんから,Bootcampを使ったり,VMware Fusionなどを使ってMac上で動作させることは可能です.しかしそれではWindowsのインストールは必須だし,重かったりするので,Darwineを試してみました.LinuxでWindowsアプリケーションを使うためのWineという環境がありますが,それのMac版です.
-早速Darwineをインストールする.これもX Windowを利用している.Expo2004を使ってみると,起動しますが一部ダイアログのボタン文字が消えてしまいます.またメニュー下のツールバーアイコンなども消えてます.アイコンは見えないのだが,マウスをその上に置くと,その内容は表示されます.サンプルデータを読み込んでやると計算自体は特に速度も落ちず,Windows版同様に動いていてました.計算とメインウインドウ内の表示は問題なく出来ている感じ.いくつかDarwineのフォント設定などを変えて試してみましたが,未だボタンの文字などを表示させることには成功してません.本当のWindows上で慣れていれば,ボタン文字(多くの場合OK/Cancel)が見えなくても使えるかもしれませんが,全く初めてだとちょっと難しいでしょう.
*Superflip (Charge flipping法) [#k2814d35]
-[[Superflip用対称性データ]] Superflip (http://superspace.epfl.ch/ )の入力ファイルに必要な対称操作をまとめたもの.
*リンク [#s1f65e66]
-[[Le Bailさん:http://sdpd.univ-lemans.fr/]]
-[[FoxWiki:http://vincefn.net/Fox/FoxWiki]]
-[[Lausanne Crystallography Lab Superflip:http://superspace.epfl.ch/]]
-[[泉さんの粉末回折情報館:http://homepage.mac.com/fujioizumi/]]
-[[Crstallography Institute:http://www.ic.cnr.it/]]
-Data
--[[佐々木さん(東工大)の散乱因子表:http://lipro.msl.titech.ac.jp/scatfac/scatfac.html]]
--[[Wyckoff positions:http://www.cryst.ehu.es/cgi-bin/cryst/programs/nph-wp-list]]
--[[X-ray Data Booklet:http://xdb.lbl.gov/]]
--[[Crystallography Open Database:http://www.crystallography.net/]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS