データのマッピング2016年12月9日 | |
使用バージョンOpenFOAM 4.1 データのマッピングあるケースの計算データを別のケースへとマッピングするには、mapFields を使う。mapFields を使うには、ケースディレクトリの system/mapFieldsDict を用意する。 mapFieldsDict
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object mapFieldsDict;
}
patchMap ( );
cuttingPatches ( );
たとえば、icoFoam のチュートリアルケース cavity の計算結果をもう 1 つの cavity の初期値に設定するには、次のようになる。 $ cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity . $ blockMesh -case cavity $ cp -r cavity cavity2 $ icoFoam -case cavity $ gedit cavity2/system/mapFieldsDict ... mapFieldsDict を用意 ... $ mapFields cavity -sourceTime latestTime -case cavity2 最後のコマンドでマッピングを行っている。mapFields の第 1 引数はデータをもってくるケースのディレクトリ、オプション "-sourceTime latestTime" はデータの参照先として最後の時刻を指定している。任意の時刻を指定することもできる。上の例では cavity の 0.5 の結果を cavity2 の 0 にマッピングしている。 形状が同じものにマッピングする場合、-consistent オプションにより mapFieldsDict なしで mapFields を実行できる。 パッチの名前がケース間で異なる場合は、mapFieldsDict の patchMap で対応するパッチを指定する。 patchMap (fixedWalls2 fixedWalls); 形状が異なるメッシュ間でパッチにマッピングさせる場合は、mapFieldsDict の cuttingPatches を使用する。たとえば、cavity3 として cavity の blockMesh の convertToMeters を 0.05 にしたものを用意する。mapFieldsDict の cuttingPatches を次のように設定する。 cuttingPatches (movingWall fixedWalls); 結果が下図である。 ![]() 注意: マッピングさせたいパッチのタイプを fixedValue にしておく必要がある。 オプション "-mapMethod" で以下のようなマッピング手法を指定できる。
古い | |
| PENGUINITIS | |