要素置き換え
任意の形状で置き換えてみます。
ジオメトリ作成(FreeCAD)
ジオメトリから要素を作成して、その要素で計算を行います。
サンプルファイル:hotRoom_T721_031_remesh-BooleanFragments.step
要素作成(salome)
ジオメトリをグループ分けして、あらかじめ名称をつけておきます。
OpenFoamで指定する名称を付けます。
(floor,floor1,ceiling,fixedWalls)
参考:グループ化
オートでメッシュ作成するとグループの名称で要素もグループ化されます。
サンプルファイル:hotRoom_T721_031_mesh.unv
OpenFoam作業
ファイルのセットとエディット
■上記のunvファイルをフォルダにセットします。
■熱源箇所floor1を追加する必要があります。
//初期フォルダ・ファイル構成 Op ├ 0 //初期条件としてfloor1を設定する必要があります。(8ファイルすべて) │ ├ alphat │ ├ epsilon │ ├ k │ ├ nut │ ├ p │ ├ p_rgh │ ├ T //floor1の温度を明記する必要があります。 │ └ U ├ constant │ ├ g │ ├ thermophysicalProperties :物性値 │ └ turbulenceProperties ├ system│ ├ blockMeshDict :ブロックメッシュ定義│ ├ controlDict :解析ジョブ設定 │ ├ fvSchemes :ソルバー設定 │ ├ fvSolution :ソルバー設定 │ └ setFieldsDict├ Allclean └ Allrun└ hotRoom_T721_031_mesh.unv
unvファイルをセットしてターミナルからコマンドを実行してpolyMeshを作成します。
参考:T711 要素ファイルの使用
ideasUnvToFoam hotRoom_T721_031_mesh.unv
polyMeshが作成されるとconstantフォルダ内に要素情報が作成されます。
boundaryに境界条件を設定する必要があります。
constant ├ polyMesh │ ├ boundary │ ├ faces │ ├ neighbour │ ├ owner │ └ points ├ g ├ thermophysicalProperties └ turbulenceProperties
//boundaryファイル内の境界を今回はWallにします。 //元 floor { type patch; nFaces 896; startFace 33600; } //↓変更(他の箇所についても同様) floor { type wall; inGroups 1(wall); nFaces 896; startFace 33600; }
後回しにしましたが、0フォルダ内のTについて温度の設定をしておきます。(他のファイル7つにはfloor1を追加する必要があります)
もともとのファイルはfloor箇所に温度条件を設定(setFieldsDict)しているのですが、宣言した境界名に置き換えます。
この設定をsetFieldsDictで行っているようですが、別で指定したので不要になります。
//│ ├ T Tファイルの修正 boundaryField { floor { type fixedValue; value uniform 300; } floor1 { type fixedValue; value uniform 600; } ceiling { type lumpedMassWallTemperature; kappaMethod fluidThermo; ・・・
■dtの変更
要素を変更したためか、元ファイルの計算ステップだと途中で停止するので、計算ステップを変更します。(system > controlDict )コツとして理解するポイントだと思います。
endTime 1000; //半分にしてみた deltaT 0.1; //かなり小さいステップにした
計算実行と結果
ターミナルからコマンドで計算実行します。
buoyantPimpleFoam
終了したらParaview用のvtkファイルをコマンドで生成します。
foamToVTK
結果ですが、要素が異なる(tet1order)ためか、状況がかなり変わっています。速度のオーダーはそれなりな感じですが注意を払う必要があります。
簡易に入れ替えの作業を行ってみました。
サンプルファイル:hotRoom_T721_031_Remesh.zip
コメント