韜晦日記

韜晦日記

Rietveldよりもプログラミングメインになりつつある

Rietveld解析初心者による備忘録とつぶやき

RietRunの開発状況



はじめに

先日、RIETAN-FPを実行するためのマクロ、RietRunを作成した旨を投稿しました。
tanisukestr.hatenablog.com
このRietRunを研究室の同胞である吉田と共に使用し、バグがないかのテストを行ってきました。
幸い、致命的なバグなどは無く、解析は超高速になりました。もはやRietRunなしには解析はままなりません。
ただ、究極的なことをいうと、このRietRunのみで他の画面に移ることなく解析が完了することがこのソフトのゴールであると考えております。
というわけで、これ以降も開発は進めており、様々な機能を搭載してきました。

そしててこのたび、安定版としてRietRun2.3を報告したいと思います。
といっても、現在このRietRunを配布する予定はありません。ご了承下さい。
って、欲しい人いるんかね。欲しい人いたらコメントください。単に私が喜ぶだけですが。
また前回の投稿で、「SeqRunProが有料である為に自分でRietRunを作成した」と書きました。意図せず、SeqRunProが買うに値しないというような語弊を与えてしまったかもしれません。しかしそんなことは決してありませんのでご注意下さい。私の場合、複数台のPCで使いたかったということや、プログラミングの勉強を兼ねて作っただけですので。

まあ、わざわざRietRunを作ってブログに投稿しているのは、「同じようなことをしている人と交流したい」というのと、「RietRunマニュアル作成の下書き的立ち位置」といった意味でで書いているようなもんです。
とにかく、RietRunは現在、Ver2.3を迎え非常に充実した機能を備えることができました。是非ご覧になっていってください。

RietRun 2.3

前回、紹介したRietRun 1.0の公開からバージョンアップを繰り返し多くの機能追加、そして変更がありました。主な変更点を以下に箇条書きし、紹介したいと思います。

  1. 起動時にアイコン, 更新履歴の表示

  2. Logフォルダ, ファイル(**.lst, **.ins)の生成に対応.
  3. **.insファイルのコピペ機能の搭載.
  4. Setting画面の大幅な変更.
  5. Gmailへの通知機能(IFTTTと連携することでLINE通知も可能。).
  6. 計算の発散やエラー時にエラーの内容を表示するようになった.
  7. 計算の経過時間を表示.
  8. RIETAN画面の非表示化, 画面の更新を停止する機能を実装.
  9. 多相解析を自動認識,相分率をグラフ化する機能の搭載.
  10. 定型処理をサブルーチン化。サブルーチンを一つのモジュール内に纏めた.
  11. **.insファイルのEditer機能の搭載.



ざっくりとこんな感じです。以下に詳細を書きました。クリックすると表示されるので見てくださいな。

1. アイコン表示

大した機能ではないのですが、トップ画面を作りそれらしくしました。また、写真のように下の方に更新履歴を残すようにしました。
また、起動時は必ず"Setting"シートに移動するようになっています。

f:id:tanisuke_str:20171212230317p:plain

2. Logフォルダ, ファイル(**.lst, **.ins)の生成に対応

解析のスタート時にLogフォルダを選択するか、新規作成します。指定したフォルダに各解析stepでの**.ins, **.lstファイルが保存されます。

また、初期ファイルが無い場合は解析スタート時の**.insファイルを初期insファイル(Initial_**.ins)として保存します。
これにより、途中から解析を分岐したり、最初から計算しなおすことが簡単に出来るようになります。

f:id:tanisuke_str:20171213000106j:plainf:id:tanisuke_str:20171213000112j:plain
Logフォルダを新規作成して解析スタートする。

以下が解析の結果生成されたLogファイルです。
ファイル名が上の写真と違いますが、単にキャプチャしたファイルが違うだけです。ちゃんと生成されます。

f:id:tanisuke_str:20171212231853j:plain
保存された各ステップの解析結果

3. **.insファイルのコピペ機能の搭載.

途中からの解析を始める場合などに、Logファイルからファイルをコピー&ペーストする必要があります。そんなときわざわざ画面を変えてコピペする作業は地味に面倒くさいものです。
そこで搭載した機能がこちらです。

f:id:tanisuke_str:20171212232622p:plain
ファイル置換ボタンを押した時の画面

ファイル置換ボタンをクリックすることで上の写真のようなユーザーフォームが表示されます。ここに置き換えたい解析Stepの番号を入力することで自動的に置換されます。このときのコピー元とコピー先はファイル設定に入力されているinsファイルとLogファイルになっています。
また、他のフォルダやファイルを選択したい場合は、真ん中のファイル開くボタンをクリックし、任意のinsファイルを選択することで、即座にコピペが実行されます。

個人的にこの機能が好きです。解析が上手くいかなときにファイルの移動が多くなりますが、ワンクリックで済むので精神的にも楽になります。コピペしてファイル名を変更する作業って地味に面倒なんですよね。地味に。
隣に座っている吉田は、こんな機能いらないだろ。とぶつくさ言っております。なんだと。

4. Setting画面の大幅な変更.

大したことではないのですが、Setting画面のデザインが気に入らなかったので大幅に変更しました。しかし、これで満足いったわけではないので今後も改善していきます。

f:id:tanisuke_str:20171212235005p:plain
Setting画面

5. Gmailへの通知機能. エラー内容の表示.

我々の解析では、精密化するパラメータが1000個近くになるため、解析時間は悠に5時間を超えてきます。そのため、解析の終了を通知してくれる機能が必要でした。
ただ放置して、時々解析が終わったか確認すればいいのですが、発散したときなどに直ぐに通知が来て、エラーの内容が分かるといいですよね??でないと生産的とは言えませんよね??(押しつけ)

画面下の”Gmaiに通知を送信する”にチェックを入れ、GmailのアドレスとPasswordを入力することで、自動的に送信されます。Passwordはセルを選択しても見ることができない設定にしてあるので安心してご利用下さい。
また、IFTTTと連携することでLINEのアプリ等に転送も可能です。
たまにGmailの通知にメールが届いたときにiPhoneが反応しないときがあります。ですので私はLINEに通知を転送することで確実に受け取れるようにしています。この辺は好みです。

LINEに通知が来た時の画面は以下のようになっています。この通知はGmailを通してから来ているのでGmailでも同じように届いています。

f:id:tanisuke_str:20171213001707p:plain
解析終了の通知機能

上の写真を見てもらうと分かるかと思いますが、ちゃんとエラーの内容が表示されていますよね??このように解析が不正に終わったときはエラーの内容が**.lstファイルから抽出されて知らせてくれます

また、コメントの部分に文章を入力しているとそのコメントも送信されます。

6. 計算の発散やエラー時にエラーの内容を表示するようになった.

直ぐ上のGmail通知機能でも説明しましたが、解析時にエラーを起こして終了した際にはエラーの内容を取得し知らせてくれるようになりました。通常、解析が終了したときに、終了を知らせるメッセージボックスが表示されます。エラーが発生した場合は、エラーが起きた旨とエラーの内容が表示されます。

7. 計算の経過時間を表示.

解析がスタートしてからの経過時間を計測するようになりました。なんの役に立つのかは分かりませんが、今後の解析の指標や研究室のPCスペックの比較に使っています。

8. RIETAN画面の非表示化, 画面の更新を停止する機能を実装.

Setting画面の右端にあるチェックボックスを選択することで、RIETN実行時のコンソール画面の非表示化やExcelの画面の更新の停止が出来るようになりました。これによって僅かながら計算速度が向上するはずです。あと、実行中に他の作業をしていても邪魔にならなくなります。ただし、実行中に他のExcelを使うのは事故の原因になるため止めましょう。

9. 多相解析を自動認識,相分率をグラフ化する機能の搭載.

RietRun2.3の目玉機能の一つでもあります。解析の終了時に自動的に多相解析を認識し、**.lstファイルから相分率を取得しグラフ化します。相分率の単位はwt. %mole. %の2種類があり、Setting画面の右側で選択可能です。

f:id:tanisuke_str:20171213003826p:plain
多相解析の結果

グラフ化によるPCへの負荷が気になる方もいるかもしれません。現在のところグラフは否応なしに生成されます。今後もそうするつもりです。
まあ、最適化され高速でグラフ描画できるにも関わらず、この機能を無効化してしまうのは無駄のように思えます。
グラフをわざわざ描画したくないという人の為に表示、非表示を選択できるようにした方がいいでしょうか??

10. 定型処理をサブルーチン化。サブルーチンを一つのモジュール内に纏めた.

この辺はユーザーには関係ありませんが…….。まあこれによってコードの可読性は向上し、保守や機能の追加の面で非常にやりやすくなりました。

11. **.insファイルのEditer機能の搭載.

先にも述べましたが、RietRunの究極的な目標は、画面を無駄に移動することなく解析を完了させることです。そこで、まだ未完成なのですが、".insファイル"の編集機能を仮実装しました。
EditinsボタンをクリックすることでEditerが起動し編集することが可能になります。シンタックスハイライトの機能*1、上書き保存、名前を付けて保存する機能を搭載したいと思います。また、スクロールすることでテキストのサイズを変更したり上下に移動できればいいのですが、WindowsAPIを用いても出来る気がしないので諦めモード半分です。

*1:コードの構文が強調されるやつ