ファイルの読み込み・保存・破棄のタイミング

プロジェクトデータに含まれるファイル で示した各ファイルの読み込み・保存・破棄のタイミングについて 説明します。

メタ情報

  • 読み込み: プロジェクトを開いた時

  • 保存: プロジェクトを保存した時

  • 破棄: なし

実データ

地理情報

  • 読み込み: プロジェクトを開いた時

  • 保存: プロジェクトを保存した時、データをインポートした時

  • 破棄: データを削除した時

水理情報

  • 読み込み: プロジェクトを開いた時

  • 保存: プロジェクトを保存した時、データをインポートした時

  • 破棄: なし

格子生成条件

Case1_input.cgn, Case1.cgn, tmp/Case1.cgn.copy を参照

境界条件設定

  • 読み込み: プロジェクトを開いた時

  • 保存: プロジェクトを保存した時、データをインポートした時

  • 破棄: なし

格子データ

Case1_input.cgn, Case1.cgn, tmp/Case1.cgn.copy を参照

計算条件

Case1_input.cgn, Case1.cgn, tmp/Case1.cgn.copy を参照

ソルバの出力ログ

  • 読み込み: プロジェクトを開いた時

  • 保存: ソルバの実行中

  • 破棄: 計算結果を削除した時

計算結果

Case1_input.cgn, Case1.cgn, tmp/Case1.cgn.copy を参照

実測値

  • 読み込み: プロジェクトを開いた時

  • 保存: プロジェクトを保存した時

  • 破棄: なし

背景画像

  • 読み込み: プロジェクトを開いた時

  • 保存: プロジェクトを保存した時、データをインポートした時

  • 破棄: データを削除した時

Case1_input.cgn, Case1.cgn, tmp/Case1.cgn.copy

実データ で示したように、実データのうち、ソルバが読み込むデータ、ソルバが出力するデータの 大部分は CGNS ファイルに格納されます。

ここでは、Case1_input.cgn, Case1.cgn, tmp/Case1.cgn.copy の役割と、iRIC GUI がこれらファイルを どのように取り扱うかを説明します。

注釈

以下は 4.1 現在の実装の説明です。

Case1_input.cgn

iRIC GUI で作成された入力データを格納するためのファイルです。

タイミングは以下の通りです。

  • 読み込み:
    • プロジェクトを開いた時

    • CGNSファイルの再読み込みを行った時

  • 保存:
    • プロジェクトを保存した時 (ソルバの実行終了後に表示される保存確認ダイアログで「はい」を選択した時を含む)

    • ソルバの実行を開始する直前

  • 破棄: なし

Case1_input.cgn から読み込まれた情報は、 iRIC GUI では以下で表示されます。

  • プリプロセッサ

  • 2次元可視化ウィンドウ (「入力格子」内)

  • 計算結果断面ウィンドウ ((入力) として表示)

プロジェクトを作成した時点で、必ず存在します。

Case1.cgn

Case1_input.cgn に、ソルバが計算結果を追記したファイルです。

注釈

タイムステップごとに別のファイルに出力する場合は、 result/Solution1.cgn なども以下に準じます。

タイミングは以下の通りです。

  • 読み込み:
    • プロジェクトを開いた時

    • ソルバの実行が終了した時

  • 保存: ソルバの実行を開始する直前、iRIC GUI が Case1_input.cgn を保存した直後にCase1_input.cgn をコピーして作成されます。ソルバは実行中、このファイルに計算結果を追記します。

  • 破棄: 計算結果を破棄した時

Case1.cgn から読み込まれた情報は、 iRIC GUI では以下で表示されます。

  • 2次元可視化ウィンドウ

  • 3次元可視化ウィンドウ

  • グラフウィンドウ

  • 計算結果断面ウィンドウ

プロジェクトで、ソルバを実行した場合に限り存在します。

tmp/Case1.cgn.copy

Case1.cgn をコピーして作成されるファイルです。

ソルバの実行中に、計算結果の再読み込みが行われると、ソルバによって作成されます。処理の詳細は以下の通りです。

  1. ユーザがGUI上で計算結果の再読み込みを行うと、プロジェクトフォルダに ".flush" というファイルが作成されます。

  2. ソルバにおいて cg_iRIC_Write_Sol_End() が呼び出されると、".flush" というファイルがあるかチェックされます。もしあった場合は以下の処理が行われます。

    1. tmp/Case1.cgn.copy が既にあった場合は削除します。

    2. Case1.cgn を閉じます。

    3. Case1.cgn を tmp/Case1.cgn.copy にコピーします。

    4. Case1.cgn を更新モードで開きます。

    5. .flush を削除します。

  3. GUIは .flush がソルバによって削除されたことを検知すると、tmp/Case1.cgn.copy を読み込みモードで開いて計算結果を読み込みます。

注釈

tmp/Case1.cgn.copy は、計算結果を「タイムステップごとに別のファイルに出力する」設定の場合は作成されません。

タイミングは以下の通りです。

  • 読み込み: ソルバの実行中に、計算結果の再読み込みを行った時にGUIが読み込みます。

  • 保存: ソルバが実行中、GUIで計算結果の再読み込みが行われた時にソルバによって保存されます。詳細は上記で示した通りです。

  • 破棄: ソルバの実行が終了した時

tmp/Case1.cgn.copy から読み込まれた情報は、ソルバ実行中に限り、Case1.cgnから読み込まれた情報と同様の目的で使用されます。

ソルバ実行中に限り存在します。

備考

  • Case1.cgn は、最後にソルバを実行した時の計算格子と計算結果の情報を格納するのに対し、 Case1_input.cgn は、プリプロセッサでユーザが作成した最新の入力情報を格納します。そのため、ソルバを実行した後でユーザが格子を編集したり再生成したりした場合、プリプロセッサで表示される格子と、可視化ウィンドウで表示される格子が異なる、という事態が発生します。

  • Case1.cgn はソルバが開いて計算結果の追記処理をするのに対し、 Case1_input.cgn は iRIC GUI だけが開きます。そのため、ソルバが計算を実行中に異常終了して Case1.cgn が壊れた場合も、 Case1_input.cgn に保存された入力情報は失われることはありません。

注釈

以下は、iRIC 4.0 時点での実装の説明です。

Case1_input.cgn

iRIC GUI で作成された入力データを格納するためのファイルです。

タイミングは以下の通りです。

  • 読み込み: なし

  • 保存: ソルバの実行を開始する直前に、Case1.cgn をコピーして作成されます。

  • 破棄: なし

  • その他: プロジェクトを開いた時に Case1.cgn が破損していて読み込めなかった場合、 Case1.cgn にコピーされます。

Case1_input.cgn は Case1.cgn が破損して読み込めなくなった場合のためのバックアップであり、 Case1_input.cgn の情報が iRIC GUI から直接読み込まれることはありません。

プロジェクトで、ソルバを実行した場合に限り存在します。

Case1.cgn

iRIC GUI で作成された入力情報と、ソルバが追記した計算結果を格納するファイルです。

注釈

タイムステップごとに別のファイルに出力する場合は、 result/Solution1.cgn なども以下に準じます。

タイミングは以下の通りです。

  • 読み込み:
    • プロジェクトを開いた時

    • CGNSファイルの再読み込みを行った時

    • ソルバの実行が終了した時

  • 保存: ケースによって「新規保存」・「一部更新」・「計算結果の追記」の3種類の保存のされ方をします。詳細を以下に示します。

    新規保存

    iRIC GUI が行います。プリプロセッサーでユーザが入力した情報に基づいてファイルを新規作成します。

    以下のケースで実行されます。

    • プロジェクトを保存する時で、以下の2つの条件のいずれかが満たされない場合

      • ソルバが実行され計算結果が存在している

      • ユーザが格子を編集していない

    • ソルバの実行を開始する直前

    • 計算結果を破棄した時

    一部更新

    iRIC GUI が行います。計算結果を残したまま、計算条件の情報のみ更新します。

    以下のケースで実行されます。

    • プロジェクトを保存する時で、以下の2つの条件の両方を満たす場合

      • ソルバが実行され計算結果が存在している

      • ユーザが格子を編集していない

    計算結果の追記

    ソルバが行います。計算実行中に、各タイムステップでの計算結果を追記します。

  • 破棄: なし

注釈

上記の 読み込み においては、ケースによって以下の通り処理が異なります。

  • 「CGNSファイルの再読み込みを行った時」は、プリプロセッサでの格子の表示のみ更新されます。

  • 「ソルバの実行が終了した時」は、2次元可視化ウィンドウなど、計算結果の可視化ウィンドウでの表示のみ更新されます。

プロジェクトを作成した時点で、必ず存在します。

Case1.cgn から読み込まれた情報は、 iRIC GUI では以下で表示されます。

  • プリプロセッサ

  • 2次元可視化ウィンドウ

  • 3次元可視化ウィンドウ

  • グラフウィンドウ

  • 計算結果断面ウィンドウ

tmp/Case1.cgn.copy

Case1.cgn をコピーして作成されるファイルです。

ソルバの実行中に、計算結果の再読み込みが行われると、ソルバによって作成されます。処理の詳細は以下の通りです。

  1. ユーザがGUI上で計算結果の再読み込みを行うと、プロジェクトフォルダに ".flush" というファイルが作成されます。

  2. ソルバにおいて cg_iRIC_Write_Sol_End() が呼び出されると、".flush" というファイルがあるかチェックされます。もしあった場合は以下の処理が行われます。

    1. tmp/Case1.cgn.copy が既にあった場合は削除します。

    2. Case1.cgn を閉じます。

    3. Case1.cgn を tmp/Case1.cgn.copy にコピーします。

    4. Case1.cgn を更新モードで開きます。

    5. .flush を削除します。

  3. GUIは .flush がソルバによって削除されたことを検知すると、tmp/Case1.cgn.copy を読み込みモードで開いて計算結果を読み込みます。

注釈

tmp/Case1.cgn.copy は、計算結果を「タイムステップごとに別のファイルに出力する」設定の場合は作成されません。

タイミングは以下の通りです。

  • 読み込み: ソルバの実行中に、計算結果の再読み込みを行った時にGUIが読み込みます。

  • 保存: ソルバが実行中、GUIで計算結果の再読み込みが行われた時にソルバによって保存されます。詳細は上記で示した通りです。

  • 破棄: ソルバの実行が終了した時

tmp/Case1.cgn.copy から読み込まれた情報は、ソルバ実行中に限り、計算結果の可視化に使用されます。

ソルバ実行中に限り存在します。

備考

  • Case1.cgn は、上記で示した通り、プロジェクトを保存する時、条件によって「新規保存」と「一部更新」のどちらの保存のされ方をするかが異なります。ユーザが格子を編集したり削除したりした時は「新規保存」をすることになるため、計算結果は破棄されます。特に、プロジェクトを *.ipro ファイルではなく プロジェクトフォルダに保存していた時は、プロジェクトを閉じる際に必ずプロジェクトの保存が行われるため、格子を編集した場合、iRIC GUI を強制終了しない限りプロジェクトを閉じる際に必ず計算結果が破棄されることになってしまうため、注意が必要です。

  • Case1.cgn はソルバが開いて計算結果の追記処理をするのに対し、 Case1_input.cgn は、ソルバを実行する直前に Case1.cgn をコピーして作成され、iRIC GUI も ソルバも開くことはありません。そのため、ソルバが計算を実行中に異常終了して Case1.cgn が壊れた場合も、 Case1_input.cgn に保存された入力情報は失われることはありません。

注意事項

メタ情報と実データの不整合

上記で示した通り、メタ情報の保存はプロジェクトを保存した時に行われるのに対し、 地理情報はデータをインポートした時などにデータが保存され、データを削除した時に破棄されるなど、ファイル処理のタイミングが異なります。

そのため、プロジェクトを、プロジェクトファイル (*.ipro) ではなくプロジェクトフォルダに 保存している場合は、以下のようなケースにおいてメタ情報と実データに不整合が生じ、プロジェクトが正常に 開けなくなります。その場合、メタ情報をテキストエディタなどで編集して不整合を解消することで、プロジェクトが 正常に開けるようになる場合があります。

  • 地理情報をインポートした後で、プロジェクトを保存する前に iRIC が異常終了した

  • 地理情報を削除した後で、プロジェクトを保存する前に iRIC が異常終了した

プロジェクトをプロジェクトフォルダに保存している場合、プロジェクトを閉じる際に必ず保存が行われるのは、メタ情報を更新することで上記不整合が生じることを防ぐためです。