お知らせ+活動記録+たわごと

HP と Twitter を補完するとともに、互いの密接な連携を図るため、本ブログを開設した。三位一体を目指す。情報提供、広報活動、教育・啓蒙活動の一環として、肩の力を抜き、冗長性を廃し、簡にして要を得た文章を書くよう心がける。
<< March 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
RIETAN-FP v2.5 のお披露目セレモニー
12月15日(月)に名古屋工業大学(御器所地区)で開催される第7回結晶性萌芽材料 粉末回折研究会において

「外部プログラムとの連携を強化した RIETAN-FP」

というタイトルで、今年8回目の講演を行います。ふるってご参加ください。

昨年12月6日の同研究会では、RIETAN-FP v2.3に実装した gnuplot によるグラフ作成機能の全貌を紹介しました。リリース寸前の改訂版について二年連続で語り、年齢不相応な活力がみなぎっている様子を示せることを誇りに思います。

新バージョン v2.5 として結実させたアイデア、すなわち外部プログラム用入力ファイルの生成による能率向上は v2.3 の延長線上にあります。Gnuplot 用スクリプトファイル hoge.plt 相当のものをゼロから書き上げ、試行錯誤でテストし、正常に動作させるのには相当な経験と時間を要します。他方、RIETAN-FP が出力した hoge.plt の一部をユーザーがエディターで修正し、所望のグラフをプロットするのはいとも簡単です。GUI の必要性などまったく感じません。外部プログラムを使う際のユーザーの負担を劇的に軽減してくれるのは堪えられないでしょう。

v2.5では四つのアプリケーション、
  1. チャージフリッピング・プログラム superflip
  2. 最大エントロピー・パターソン(MEP)法プログラム ALBA
  3. 未知構造解析統合システム EXPO2014
  4. 最大エントロピー法(MEM)プログラム Dysnomia
の入力ファイルの雛形を RIETAN-FP が出力してくれるようになり、RIETAN-FP・VENUS 統合支援環境の利便性が向上しました。RIETAN-FP の入力ファイル hoge.ins 中でのフラッグ設定、出力ファイル名、アプリケーションの対応は次の通りです。
  1. NCF = 1: superflip 用ファイル hoge.inflip(RIETAN-FP 終了後にエディターで自動オープン。中性子回折では superflip は使えない)
  2. MEP = 1: ALBA 用ファイル hoge.alb(一種の作業ファイルであり、表に出ない)
  3. NEXP = 1: EXPO2014用ファイル hoge.exp
  4. NMEM = 1: Dysnomia 用ファイル hoge.prf(RIETAN-FP 終了後にエディターで自動オープン)
hoge.inflip の末尾には回折指数 hkl、半値全幅、積分強度 |F|2 のリストが含まれています。今のところ hoge.alb は ALBA 用ですが、将来 Dysnomia に MEP 解析機能を追加した暁には、それに対応させる予定です。hoge.prf は Limited-memory BFGS (L-BFGS) アルゴリズムで MEM の厳密解を導出できるよう改良した Dysnomia の最新版 v0.8 互換となっています。hoge.prf がカレントフォルダーに存在する場合、RIETAN-FP はそれを上書きしないということに注意してください。

誰でも無料で使える Dysnomia v0.8 の出現により、情報エントロピー最大の解を導き出せない 0th-order single-pixel approximation (ZSPA) は時代遅れのガラパゴス方法論に成り果てました。ZSPA しか使えないようなプログラムの存在意義は、今や無きに等しいです。

上記4つの外部プログラムはいずれも無料で入手できるということを特筆大書したいです(EXPO2014はアカデミックユーザーのみ無償)。教育者のはしくれでもある私は、対価を求めずにネット上で公開されていることを科学技術ソフトウェアにおける基本的に重要な「機能」と見なしています。「富める者はますます富み、貧しき者はますます貧しくなる」という不条理を座視するには忍びません。私は常に弱者や貧乏人の味方です。

hoge.inflip と hoge.exp は未知構造解析のエキスパートにアドバイスを要請して、最終的な仕様を決定しました。長く superflip と EXPO を使い込むことにより獲得したスキルを惜しげもなく注入していただいたため、それぞれ dual-space 法と逆・直接空間法による構造モデル構築に威力を発揮します。RIETAN-FP・VENUS 統合支援環境上でコメント・プリフィクス(superflip: #, EXPO: >)を削除し、特定の行をコメント化してから、それぞれのプログラムを実行します。

RIETAN-FP 実行用スクリプト(Windows: RIETAN-FP.bat; OS X: rietan.command)の改造にあたっては、MPF (MEM-based Pattern Fitting) 解析や gnuplot によるグラフ作成用のスクリプト(Windows: Plot_Hidemaru.bat; OS X: graph.command)を製作した時に習得したシェル芸を披瀝しました。実際には MEP 解析は RIETAN-FP が出力した hoge.alb を通じて ALBA が実行するのですが、grep, sed, tail, cut, bc などの駆使により、あたかも RIETAN-FP が単独で実行するかの如く巧みに偽装しています。アクロバティックな離れ業といって過言でありません。これら4つのスクリプトは私の個人的趣味の発露であり、複数のコマンドを組み合わせて複雑なデータ処理を行う UNIX の流儀を具現化する喜びがほとばしっています。

NMEM = 1の場合、さらに MPF 用シェルスクリプト MPF_multi.command までカレントフォルダーに自動生成し、ユーザーの手間を減らします。RIETAN-FP が出力した hoge.prf を必要に応じて変更した後 MPF_multi.command のアイコンをダブルクリックするだけで、hoge.prf 中の指示に従った MPF 解析がスタートします。

私の知る限り、MEP 法で重畳反射の積分強度 |F|2 を改善できるパターンフィッティング・プログラムの出現は世界で初めてです。三つの異なる解析、すなわち Le Bail 解析、個別プロファイルフィッティング、MEP 解析を順次かつシームレスに実行するスクリプトで求めた |F|2 は、RIETAN-FP・VENUS 統合支援環境上で hoge.inflip と hoge.exp を 修正後にショートカットを押すかボタンをクリックすれば、それぞれ superflip と EXPO2014 で解析できます。

|F|2を記録したファイルは2種類あります。MEP 抜きのパターン分解後に出力されるファイルは hoge.ffo、MEP 解析の結果を収めたファイルは hoge.mep です。hoge.exp 中では ref2 命令の後ろにどちらかのファイル名が記録されます。前述のように、hoge.inflip は hoge.ffo と hoge.mep の中身と同等の反射データを内包しています。

なお、v2.5では a, b, c 軸方向に沿った単位胞の分割数に入力を一箇所に絞りました。たとえば Fapatite.ins 中では
If NMODE = 1 then
    Go to *Graph
else if NMODE <> 6 then
    # Unless MEP analysis, Fourier synthesis, or MEM analysis is carried out,
    # set NVOXA, NVOXB, and NVOXC at 0; then, these three are regarded as dummy data.
    NVOXA = 128: Number of voxels along the a axis.
    NVOXB = 128: Number of voxels along the b axis.
    NVOXC =   94: Number of voxels along the c axis.
end if
となっています。最適な分割数は VESTA の Utilities メニューで Model Electron Densities を選び、適当な Resolution を入力すれば、テキストエリアの上方に表示されます。

上記の機能を実現する上で、RIETAN-FP v2.4開発以来好んで使用している内部サブルーチンが大いに役立ちました。新たなサブルーチンを書く際、引数や COMMON 領域を宣言せずにメインプログラムから変数や配列を引き渡せるためです。BASIC 感覚の手軽なプログラミングを楽しみました。また時代遅れな COMMON 領域の追加は控え、モジュールを利用するよう心がけました。

RIETAN-FP v2.4X では、格子定数を精密化している内に、各反射の積分強度を収めた配列 YPEAK と指数 hkl などの配列の対応関係が一部狂うことがまれにありました。重み付き残差二乗和がこれまでに到達した最小値よりも大きくなった場合に、反射の順序を 2θ の小さい順に記録した配列 IPOINT を回復させていなかったのが原因でした。v2.5では、そういう症状が消え失せたはずです。この盲点が白日の下にさらされたのは、孤独なプログラミングを甘受している自分にとって誠に幸運でした。

Windows 用配付ファイルに同梱しているグラフ作成用プログラムについては gnuplot を v4.6.6 に、Ghostscript を v9.15 に更新します。OS X のユーザーは、各自 gnuplot と MacTeX(オプション)の最新版をインストールしてください。Homebrew による gnuplot のインストール法については、「RIETAN-FP への gnuplot の導入」に記しました。

最後に特筆大書しておきたいのは、RIETAN-FP v2.5は RIETAN-FP・VENUS 統合支援環境から実行することを前提に開発したということです。秀丸エディタJedit X はいずれも安価ですし、種々のテキストファイルの編集に使えますので、ぜひ支援環境をお使いください。

国立大学の社会的使命を鑑み、学外者にも解放した無料講演会としますので、RIETAN-FP のユーザーはぜひご聴講ください。学外の参加者はポスター下の問合せ先にメールをお送りください。なお、参加者には RIETAN-FP v2.5 を含む Windows・OS X 用 RIETAN-FP・VENUS システム配布ファイルを一般公開に先がけて差し上げます。前回の研究会後に組み込んだ裏技 mcz についても、ほんの少しだけ言及します。遊び心の産物なので、ここではその正体を謎のままに留めておきます。

なお、研究会終了後に立食形式の懇談会(有料、学生割引あり)を開くことになりました。もちろん所属が名工大以外の方々も参加できます。
コメント
コメントする









 

(C) 2017 ブログ JUGEM Some Rights Reserved.