アダプティブメッシュを用いた並列計算のポスト処理

2012年7月16日

はじめに

アダプティブメッシュを用いた並列計算のポスト処理について。

使用バージョン

OpenFOAM 2.1.1

アダプティブメッシュを用いた並列計算のポスト処理

OpenFOAM で並列計算する場合、decomposePar で領域を分割し、reconstructPar で領域を結合する。interDyMFoam などで、アダプティブメッシュを使った計算を並列計算した場合、メッシュが変わってしまっているため、reconstructPar で領域がくっつかない。その前に reconstructParMesh を使う必要がある。

$ decomposePar
$ mpirun -np 4 interDyMFoam -parallel > log &
$ reconstructParMesh -mergeTol 1e-6 -time 0.02
$ reconstructPar -time 0.02

問題は、reconstructParMesh を時刻に対して 1 つずつ実行する必要があることである。全時刻に対して処理するには、つぎのようなシェルスクリプトを使えばよい。

#!/bin/sh

for DIR in processor0/* ; do
    DIR=`basename $DIR`
    if [ $DIR != "0" -a $DIR != "constant" ] ; then
        reconstructParMesh -mergeTol 1e-6 -time $DIR
        reconstructPar -time $DIR
    fi
done