この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
openfoam [2018/03/02 11:59] fifi |
openfoam [2018/04/10 08:38] (現在) fifi [TIPS] |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
+ | [[openfoam:備忘録1]] | ||
- | # OpenFOAM | + | 初めてのチュートリアルをまわしながらの作業メモ。 |
- | - OpenFOAMでできること | + | [[openfoam:備忘録2]] |
- | - 非圧縮性流体の定常/非定常解析 <= これしたい | + | |
- | - 圧縮性流体の定常/非定常解析 | + | |
- | - 流体・個体伝熱解析 | + | |
- | - 混相流(VOF) | + | |
- | - 非圧縮性流体の定常/非定常解析を目指す | + | pimpleFoamでRASの計算をまわすためのテンプレート作成備忘録. |
+ | stlを読み込む外部流れのテンプレート | ||
- | ## OpenFOAMにおける計算手順 (重要) | ||
- | - ヴァージョン | + | # TIPS |
- | - v5.0 (2018-02-28 時点) | + | (増えてきたら備忘録にまとめる) |
- | - メッシング (商用メッシャーある? YES?NO?) | + | - スケールの変換 |
- | - (YES) | + | - STL ファイルのスケール (単位) の変換を行うには、OpenFOAM のユーティリティ surfaceConvert を使う。たとえば mm から m に変換する場合は次のようにする。 |
- | - 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:非圧縮製定常乱流ソルバー] | + | |
- | + | ||
- | - [説明資料 - スライド](http://www.mech.iwate-u.ac.jp/~hirose/ockitatohoku/ref/wakashimasensei-text-3-1.pdf) | + | |
``` | ``` | ||
- | mkdir -p $FOAM_RUN // runディレクトリを作っておく。(もしないなら) | + | $ surfaceConvert -scale 0.001 MC_T0_A_ASSY_AllCATPart.stl MC_T0_A_ASSY_AllCATPart_mm.stl |
- | 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 (定常計算) | ||
- | |||
- | - [ミキシングエルボーの熱流動解析チュートリアルのケースファイル ダウンロード | 森北出版株式会社](http://www.morikita.co.jp/exclusive/download/1522) | ||
- | |||
- | ``` | ||
- | 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/mixing_elbow.stlが設置されている | ||
- | - blockMeshを実行すると、メッシュが切られた直方体が作られた。 | ||
- | - surfaceFeatureExtractで特徴線を抽出 | ||
- | - つまり、stlの外形線をパスとしてだしている。constant/extendedFeatureEdgeMeshの下に保存されている | ||
- | - snappyHexMeshを実行すると、polyMeshの中身も増えた。また、triSurface/mixing_elbow.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のヘッダのヴァージョンは適当? | ||
- | |||
- | |||
- | ## 参考 | ||
- | |||
- | - [OpenFOAM® - Official ](https://www.openfoam.com/) | ||
- | - [penguinFoam - GUIツール](http://www.geocities.jp/penguinitis2002/study/OpenFOAM/penguinFoam/penguinFoam-20170909.pdf) | ||
- | |||
- | - [OpenFOAMによる熱移動と流れの数値解析 | 森北出版株式会社](http://www.morikita.co.jp/books/book/2779) | ||
- | - [正誤表 | 森北出版株式会社](http://www.morikita.co.jp/exclusive/download/1601) | ||
- | |||
- | |||
- | |||
- | ## 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 | ||
- | ``` | ||
- |