FiFiWiki2

FiFiWikiの第2版

ユーザ用ツール

サイト用ツール


openfoam

**以前のリビジョンの文書です**

OpenFOAM

  • OpenFOAMでできること
    • 非圧縮性流体の定常/非定常解析 ⇐ これしたい
    • 圧縮性流体の定常/非定常解析
    • 流体・個体伝熱解析
    • 混相流(VOF)
  • 非圧縮性流体の定常/非定常解析を目指す

OpenFOAMにおける計算手順 (重要)

  • ヴァージョン
    • v5.0 (2018-02-28 時点)
  • メッシング (商用メッシャーある? YES?NO?)
    • (YES)
      • fluentMeshToFoam
      • ideasUnvToFoam…
      • あったらやってない
    • (NO) ⇐ これ
      • blockMesh
      • CAD + snappyHexMesh ⇐ おそらくこれしたい
      • SALOME
  • ソルバーの選択
    • 非圧縮性ソルバー
      • 定常 : simpleFoam
      • 非定常 : pimpleFoam

こんだけ。非圧縮性ソルバー はそんなにない

  • ケースの設定
    • 0 ⇐ フィールド変数
      • U
      • epsilon
      • k
      • nuTilda
      • nut
      • p
    • constant
      • polyMesh
        • blockMeshDict
      • turbulenceProperties ⇐ 定常/乱流モデルの設定
      • (RASProperties) ⇐ 非定常/乱流モデルの設定 RANS
      • (LESProperties) ⇐ 非定常/乱流モデルの設定 LES
    • system
      • controlDict ⇐ 計算の制御の設定 (時間幅、終了時刻等..)
      • fvSchemes ⇐ 離散化スキームの設定
      • fvSolutions ⇐ 代数方程式ソルバーの設定、SIMPLE(PISO)等の設定を含むファイル

まずは2つのチュートリアルで概要を把握する

バックステップ流れ pitzDaily [simpleFoam:非圧縮製定常乱流ソルバー]

mkdir -p $FOAM_RUN // runディレクトリを作っておく。(もしないなら)
run 				// = cd $FOAM_RUN (便利)
cp -r $FOAM_TUTORIAL/incompressible/simpleFoam/pitzDaily .
cd PitzDaily
blockMesh
simpleFoam
paraFoam
  • 気づき
    • コピーした時点ではconstantディレクトリにはメッシュ情報はなにもない. blockMesh実行後に、constant/polyMeshディレクトリが作成され、配下に、boundary,faces,neighbour, owner, pointsが生成されている.

ミキシングエルボー その1 (定常計算)

cd steadyIsoThermal
blockMesh
surfaceFeaturExtract
snappyHexMesh -overwrite
createPatch -overwrite (v.4以降は不要)
paraFoam (メッシュの確認)

foamJob simpleFoam (バックグラウンド実行)
tail -f log (ログ確認. "End"が計算終了合図)

ログの確認

foamLog log  //logsディレクトリができる

gnuplot residual.gp
evince residual.eps
  • triSurface/mixingelbow.stlが設置されている - blockMeshを実行すると、メッシュが切られた直方体が作られた。 - surfaceFeatureExtractで特徴線を抽出 - つまり、stlの外形線をパスとしてだしている。constant/extendedFeatureEdgeMeshの下に保存されている - snappyHexMeshを実行すると、polyMeshの中身も増えた。また、triSurface/mixingelbow.eMeshができた!
  • snappyHexMeshを実行すると、ミキシングエルボ内部のメッシュが切れた。外側はどうするのか?設定?
  • foamLog logでlogsディレクトリに計算ログが出力
  • 残差logのグラフを見たいがアプリが無く失敗。epsもイラレでみたが白紙.

ミキシングエルボー その2 (非定常熱計算)

cd constant
rm -rf polyMesh
ln -s ../../steadyIsothermal/constant/polyMesh
  • メッシュは重たいので、steadyIsoThermalのconstat/polyMeshにリンクを張ることで再利用
    • (分かったこと) : constant/triSurfaceは中間データだった.計算に利用しているのはpolyMeshの可能性がある
foamJob buoyantPimpleFoam

// 並列の場合
decomposePar // 並列用に領域分割する
foamJob -p buoyantPimpleFoam // -pで並列実行
reconstructPar // 領域結合

tail -f log //途中経過確認

paraFoam

Q&A

  • Q: チュートリアルからコピーするだけでいいの?設定はどこまで変えていいの?
  • Q: FoamFileのヘッダのヴァージョンは適当?

参考

ParaViewで格子の表示

# vtk DataFile Version 2.0
grid.vtk
ASCII
DATASET POLYDATA
POINTS 8 float
                 3.2                  1.5                  1.2
                 3.7                  1.5                  1.2
                 3.7                  1.5                  1.2
                 3.2                  1.5                  1.2
                 3.2                  2.1                  1.2
                 3.7                  2.1                  1.2
                 3.7                  2.1                  1.2
                 3.2                  2.1                  1.2
POLYGONS 2 10
4 0 1 2 3 
4 4 5 6 7 
openfoam.1519991958.txt.gz · 最終更新: 2018/03/02 11:59 by fifi