OpenFOAM

T721_031_r1 buoPim hotRoom

この記事は約6分で読めます。

要素置き換え

任意の形状で置き換えてみます。

ジオメトリ作成(FreeCAD)

ジオメトリから要素を作成して、その要素で計算を行います。

10x10x5m メートルで作成 ジオメトリモデル

サンプルファイル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

コメント

Translate »
タイトルとURLをコピーしました