MolForma

「履歴」

「履歴」は保存・実行したジョブ(「ジョブとして保存」「計算を実行」)を、保存先直下のrun.jsonから読み込みます。アプリを再起動しても同じフォルダーを指定すれば一覧を復元できます。既定は「3 実行設定」の保存先を使います。上部のジョブ保存先のボタンはパスと、「3 実行設定と同じ」か「選んだ保存先」かを示し(ツールバーが1行に収まらないときは見出し「ジョブ保存先」とこの注記をツールチップへ移し、検索欄を狭め、「ΔEを比べる」をアイコンだけにします)、そのメニューの「保存先を選ぶ…」で選んだ別の保存先はアプリ設定に記憶します。「「3 実行設定」の保存先に戻す」で追従に戻せます。履歴の表示操作では編集中の分子・候補・Undo・プロジェクトの未保存状態を変えません。

「履歴」の画面。~/MolForma/jobs のジョブ4件(終了3・停止1)が日ごとに並び、選んだethanolのジョブの計算のエネルギー・開始と終了・フォルダー・メモと操作が右にある

図1 「履歴」。ジョブ保存先の計算を一覧にし、選んだジョブの詳細とメモ、「結果ビューアで開く」「分子・条件を再利用」などの操作を右に表示します。

ethanolを基準にΔEを比べたところ。同じ組成・手法・基底のdimethyl_etherに +5.49 kcal/mol と棒が出て、組成の異なるジョブには「組成が基準と異なる」と出ている

図2 ethanolを基準にΔEを比べたところ。同じC2H6Oのジメチルエーテルは +5.49 kcal/mol で、組成の異なるジョブには理由を示します。

一覧の状態は短いラベル(保存のみ・起動中・実行中・停止処理中・終了・失敗・停止・時間制限・稼働未確認・プロセスなし・中断・読めません)で示し、詳しい状態(「入力保存済み」「終了(コード0)」「実行失敗」「停止済み」「稼働未確認(記録: running)」「中断・プロセスなし」「中断(記録を修復)」「記録を読めません」など)は行と右側のラベルのツールチップに表示します。run.jsonには計算を起動したホスト名・起動ID(Linux)・プロセスIDとその開始時刻を記録します。別のウィンドウ・過去の起動でstarting / running / stoppingと記録されたままの計算は、同じPCで記録され、そのプロセスが終了している(PIDが存在しない・別のプロセスに再利用された・PCを再起動した)と判定できる場合だけ「中断・プロセスなし」とし、それ以外(別のPC、プロセスの記録がない旧記録、まだ動いている)は「稼働未確認」とします。終了コード0は収束や全taskの成功を意味しません。一覧のエネルギーは、計算の終了時にログ全体をtaskごとに区切って求め、run.jsonのsummaryに保存した値です(最後のtaskのSCF・DFT・MP2・CCSD・CCSD(T)全エネルギー。振動数のtaskは参照構造の値、BSSEは補正後の値)。実行中のジョブと、この記録がない以前のジョブは、ログ末尾128 KiB内の最後の全エネルギーを表示します。収束値とは限りません。該当する値がない場合は—とします。

新しく保存するrun.jsonには計算条件の要約、元プロジェクトの基準ディレクトリ、プロジェクトのSHA-256を追加します。入力・プロジェクトの照合不一致では再利用を拒否します。従来のversion 1記録も読み込み、条件の要約がなければ固定コピーから取得します。旧記録にプロジェクトのハッシュがない場合は入力のみ照合し、その旨を表示します。ハッシュは外部編集・破損を検出するためのもので、真正性の署名ではありません。

再利用では元の参照ディレクトリを維持し、相対指定の実行ファイルを元の基準から解決します。新しいジョブの保存先は選択したジョブの親フォルダーです。旧記録で相対実行パスの元の場所を復元できない場合は再利用を拒否します。外部のmovecs・基底・scratch/permanentディレクトリを複製したり、移動先に合わせて推測したりはしません。再実行前に実行設定で存在と書込み可否を確認してください。入力を手編集した計算を元の設定へ逆変換する機能、NWChemデータベースからのrestart、SSH・ジョブキュー・他ウィンドウのプロセス停止、履歴グラフは未対応です。

一覧は直下を1ジョブずつイベントループで走査し、中止・保存先切替ができます。上限は2000ジョブまたは20000フォルダーで、到達時は部分一覧と上限メッセージを表示します。サブフォルダーの再帰走査やシンボリックリンクのジョブは対象外です。run.jsonの解析は256 KiB、入力・プロジェクトは各8 MiBまでです。壊れた記録を含むフォルダーはエラー行として残し、他の履歴を読み進めます。任意のNWChem出力だけを持つフォルダーは履歴に登録せず、「結果ビューア」で直接開きます。

履歴の検証

historyのQt Testは、新旧の固定コピー、フォルダー移動、SHA-256不一致、壊れた記録、読込上限、リンク、ログ末尾・途中行のエネルギー、ログ全体の要約(task・BSSE・振動数)と実行記録のプロセス情報、終了したプロセスの判定(PIDの消失・再利用、別PC)と記録の修復(修復を促すバーを含む)、保存したプロジェクトの原子数・電荷・多重度、ΔEを比べられるジョブの判定(組成・手法・基底・エネルギーの種類)、CSV、走査中止・保存先変更、日ごとの区切り・状態別の件数と絞り込み・検索・数値ソート・選択保持、右側の詳細とメモの保存、ΔEの比較(基準・単位・並び順・表示しない理由)、実行中のジョブの進み具合と確認付きの停止、ジョブのない保存先と「3 実行設定」の保存先への復帰、狭いウィンドウでのツールバーの1行表示、再利用時の未保存保護と別名保存、候補の保護、結果ビューアへの移動、ごみ箱操作の対象制限を検査します。通常のテストはネイティブの疑似実行ファイルを使い、NWChem・MPI・ネットワークは不要です。

2026-10-23に全9系列のCTest、履歴13件(初期化・終了処理・任意の画面出力を含む)のAddressSanitizer検証が成功しました。履歴画面の画像も確認しています。

2026-10-25に画面を作り直した後、全13系列のCTest(通常・VTKなし)と、history・execution・mcp・outputのAddressSanitizer検証が成功しました。実際のNWChemで作ったジョブ(終了・停止・時間制限・失敗・保存のみ・ΔEを比べられる同じ条件の水)で、一覧・比較・実行中・ジョブのない保存先の画面を明暗両方の配色で確認しています。

関連: 「結果ビューア」、題材14 計算結果から次の計算へ、「機能と操作」のページの一覧。