計算するデータファイル(ofdファイル)が少ないときは、
リスト5-8-1のようにコマンドを直接並べる方法が簡単です。
リスト5-8-1 batファイル例(1)
@echo off rem case1 ofd.exe -n 4 data\batch\case1.ofd copy ofd.log data\batch\case1.log copy ofd.out data\batch\case1.out rem case2 ofd.exe -n 4 data\batch\case2.ofd copy ofd.log data\batch\case2.log copy ofd.out data\batch\case2.out rem case3 ofd.exe -n 4 data\batch\case3.ofd copy ofd.log data\batch\case3.log copy ofd.out data\batch\case3.out
データファイルの数が多いときはfor分で繰り返し処理します。
例えば OpenFDTD\data\batch\ に case1.ofd~case3.ofd があるとき、
コマンドプロンプトでOpenFDTD\でリスト5-8-2を実行します。
ただし、入力データファイル名が番号で並んでいることが必要です。
また、計算コマンド行は必要に応じて修正してください。
リスト5-8-2 batファイル例(2) (run.bat)
@echo off rem OpenFDTDバッチ処理プログラム rem 計算 rem コマンドプロンプトを起動して以下を実行する rem > run.bat rem 以下を適当に編集する set command=ofd.exe -n 4 set common=data\batch\case set start=1 set stop=3 for /L %%i in (%start% 1 %stop%) do ( rem 入力データ確認 echo %common%%%i.ofd time /T rem 計算実行 %command% %common%%%i.ofd >nul rem 出力ファイルコピー copy ofd.log %common%%%i.log >nul copy ofd.out %common%%%i.out >nul )
バッチ処理が終了すると、
OpenFDTD\data\batch\ に ofd.log のコピー case1.log~case3.log と、
ofd.out のコピー case1.out~case3.out が出力されます。
logファイルはエディタで内容を確認し、
outファイルはOpenFDTD\にofd.outという名前でコピーしてポスト処理を行います。
計算に加えてポスト処理を連続して行うには、
入力データの[ポスト処理制御]も編集したのち、リスト5-8-3を実行します。
リスト5-8-3 batファイル例(3) (run2.bat)
@echo off rem OpenFDTDバッチ処理プログラム rem 計算 + ポスト処理 rem コマンドプロンプトを起動して以下を実行する rem > run2.bat rem 以下を適当に編集する set command=ofd.exe -n 4 set common=data\batch\case set start=1 set stop=3 rem 出力ファイルを削除する del all.log all.ev2 for /L %%i in (%start% 1 %stop%) do ( rem 入力データ確認 echo %common%%%i.ofd time /T rem 計算実行 %command% %common%%%i.ofd >nul rem log追加 type ofd.log >> all.log rem ポスト処理 ofd_post.exe %common%%%i.ofd type ev.ev2 >> all.ev2 )
バッチ処理が終了すると、ofd.logを連結したall.logと、
図形データを連結したall.ev2が出力されます。
図形データは以下のコマンドで表示してください。
> ev2d.exe all.ev2
指定したディレクトリにあるすべてのofdファイルを計算するには、
スクリプトファイル5-8-4をOpenFDTDディレクトリーに置いて実行してください。
引数でofdファイルがあるディレクトリを指定します。
また、計算コマンド行は必要に応じて修正してください。
リスト5-8-4 shファイル例 (run.sh)
#/bin/sh # ./run.sh data/batch n=1 for file in `ls $1/*.ofd`; do # monitor echo $n. $file `date` n=`expr $n + 1` # command ./ofd -n 8 $file > /dev/null # copy cp ofd.log `ls $file | sed -e "s/.ofd/.log/g"` cp ofd.out `ls $file | sed -e "s/.ofd/.out/g"` done
バッチ処理が終了すると、ofd.logとofd.outのコピーが出力されます。
logファイルはエディタで内容を確認し、
outファイルはOpenFDTD/にofd.outという名前でコピーしてポスト処理を行います。