Excel による OpenFOAM フロントエンドの作成

2016年11月5日

はじめに

Excel と VBA で OpenFOAM のフロントエンドを作成してみた。

バージョン

blueCFD-Core 2016 (OpenFOAM 4.x), Excel 2010

ファイル

使い方

  1. bludCFD-Core の ~/.bashrc の最後に次のように記述しておく。
    if [ -f $HOME/post_run.sh ] ; then
        trap "rm $HOME/post_run.sh" 1 2 3 15
        $HOME/post_run.sh
        rm $HOME/post_run.sh
        exit
    fi
    
    これは、post_run.sh があったら実行して削除し、終了するもので、Excel からコマンドを発行するためのものである。
  2. simpleFoam のチュートリアルケース pitzDaily を用意し、その中に Excel ファイル pitzDaily.xlsm と run.bat を入れる。run.bat は引数から post_run.sh を作成し、bludCFD-Core のターミナルを起動する。
  3. Excel を起動する。"計算実行" で計算を開始する。"残差プロット" で残差プロットを表示する。"初期化" は結果データを削除する。

VBA の中身の話

"計算実行"、"残差プロット" ともに、シェルスクリプトを作って run.bat に実行コマンドを渡しているだけである。残差の出力には function object を用い、プロットには foamMonitor を使っている。こいつがクセモノで、計算実行の状況によってログファイルの位置がころころ変わるので、工夫がいる。

計算回数や保存間隔については、controlDict を丸ごと書き出している。ここで残差出力用の function object の設定も行っている。