FiFiWiki2

FiFiWikiの第2版

ユーザ用ツール

サイト用ツール


openfoam

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
openfoam [2018/03/03 02:44]
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 
-``` 
- 
- 
- 
-## メッシュ生成 
- 
-- ツール 
--- 形状生成 : FreeCAD 
--- メッシング : snappyHexMesh,​ blockMesh, Netgen 
--- 形状生成 + メッシング : salome 
- 
-## SnappyHexMesh 
- 
-``` 
-// どこのメッシュを残すか 
-locationInMesh (0 0 0); 
-``` 
- 
- 
-## 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  
-``` 
- 
- 
-## paraFoamでblockMeshの確認 
- 
- 
-``` 
-blockMesh 
-paraFoam -block 
-``` 
- 
-``` 
-FoamFile 
-{ 
-    version ​    2.0; 
-    format ​     ascii; 
-    class       ​dictionary;​ 
-    object ​     blockMeshDict;​ 
-} 
- 
-// x3^ 
-//   ​| ​ 
-//   |__ x1 
-//  / 
-// x2 
- 
-//  3____ 2 
-//  /|   /| 
-// /_0__/ |1 
-//7|    |6/ 
-// |____|/ 
-// 4    5 
- 
-//  __ 1 
-//    /| 
-// _2/ |0  ==> 外向きに右ねじの法則 
-// __|/ 
-//   3 
-// 
- 
-convertToMeters 1;​ //[m] 
- 
-vertices 
-( 
- (0 0 0) //0 
- (1 0 0) //1 
- (1 1 0) //2 
- (0 1 0) //3 
- (0 0 0.1) //4 
- (1 0 0.1) //5 
- (1 1 0.1) //6 
- (0 1 0.1) //7 
-); 
- 
-blocks 
-( 
- 
- hex (0 1 2 3 4 5 6 7) (40 40 10) simpleGrading (8 5 2) 
-  
- // 
- // simpleGrading (x1s x2s x3s) 
- // x*s : 分割幅の比率 (最後の分割幅)/​(最初の分割幅) 
- // edgeGrading(g0 g1 g2 g3 g4 g5 g6 g7 g8 g9 g10 g11) 
- // g* : 全ての辺に対する分割幅の比率 
- // 
-); 
- 
-edges 
-( 
-); 
- 
-// -*- Boundary Type -*- 
-// patch パッチ (入/​出境界) 
-// wall 壁 
-// symmetryPlane 対称面 
-// cyclic 周期境界 
-// cyclicAMI 不適合境界 
-// wedge 2次元軸対象 
-// empty 2次元問題 
- 
-boundary 
-( 
- top 
- { 
- type wall; 
- faces 
- ( 
- (3 7 6 2) 
- ); // カンマ必須 
- } 
- bottom 
- { 
- type wall; 
- faces 
- ( 
- (1 5 4 0) 
- ); 
- } 
- left 
- { 
- type wall; 
- faces 
- ( 
-            (0 4 7 3) 
- ); 
- } 
- right 
- { 
- type wall; 
- faces 
- ( 
- (2 6 5 1) 
- ); 
- } 
- frontAndBack 
- { 
- type empty; // 2次元問題 
- faces 
- ( 
-            (4 5 6 7) 
-            (0 3 2 1) 
- ); 
- 
- } 
-); 
- 
- 
-// mergePatchPairs 
-// {}; 
- 
- 
-``` 
- 
-変数宣言 
- 
-``` 
- 
-minx -0.00101; 
-maxx  0.05101; 
-miny -0.00601; 
-maxy  0.05601; 
-minz -0.01001; 
-maxz  0.05601; 
- 
-nx 52; 
-ny 32; 
-nz 56; 
- 
-vertices 
-( 
-    ($minx $miny $minz) 
-    ($maxx $miny $minz) 
-    ($maxx $maxy $minz) 
-    ($minx $maxy $minz) 
-    ($minx $miny $maxz) 
-    ($maxx $miny $maxz) 
-    ($maxx $maxy $maxz) 
-    ($minx $maxy $maxz) 
-); 
- 
-blocks 
-( 
-    hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 1 1) 
-); 
- 
- 
-``` 
- 
- 
- 
openfoam.1520045043.txt.gz · 最終更新: 2018/03/03 02:44 by fifi