Mech News Blog

機械工学科に関する最新の活動状況などを発信する情報サイト
<< OpenFOAM 1.5-devのインストール(CAELinux) | TOP | 2次元回転体計算のための準備(Salome) >>

回転体計算のための準備(CAELinux メッシュ作成)

目的:OpenFOAM-1.5-devで回転体を計算するための
   メッシュ作成

  OP-1.5-devでは,回転体を計算するために
  静止部と回転部の間の境界に
  GGI (General Grid Interface) が導入されている。

1.メッシュの作成
  Salomeによる作成 (今はこれしか使えないから)

  Salomeには,形状の単位がないようです. すなわち,
  Salomeで書き出されるメッシュの単位は,”m"ということに
  なります.
  mm を m に変換するには,OpenFoamの計算ディレク
  トリ内で
  >transformPoints -scale "(0.001 0.001 0.001)"
  を実行する
 
 メッシュ作成時に注意すべき点:
 1.静止部と回転部は,別々にメッシュを作成する。
  (一気にメッシュを生成して,Partitionで分離した
   メッシュでは,何故かOpenFOAMメッシュへの
   変換 ideasUnvToFoam に失敗する)

 2.静止部と回転部の接触部のメッシュは一致すること
   が望ましい。

  (させないと計算できなかった - segmentation fault
   接触部の不一致が原因かは分かりません)

 3.Salomeでの静止部と回転部のメッシュの合成は,
  回転部→静止部の順に選択し,合成する。

  (セル番号が,回転部→静止部の順になり,
   cellZones作成の問題を回避できる) 

 4.回転部のセルを明示したファイル
   cellZonesを作成しなければならない。

   cellZonesは,Salomeで作成したVolumeグループから
   生成される。

  ■ cellZonesの作成手順
  1.回転部のみについて,Salomeにて,
   faceに加え,Volumeのグループを作成する
  2.MED形式のメッシュファイルでexportする。
  3.GmshでMEDファイルを読み,Gmsh meshとして保存
   (mshファイル,ASCII Version 2)
  4.gmshToFoamにより,mshファイルを
   OpenFOAMメッシュに変換する。
  これで,作成したVolumeグループが,cellZonesとして
  書き出される。

  cellZones は,回転部を明示するためのファイルです.


 5.静止部と回転部の境界(face)を明示したファイル
   faceZonesを作成しなければならない。

   faceZonesは,Salomeで作成したfaceグループから
   生成される。

  ■ faceZonesの作成手順
  1.setSet コマンドを実行する
   (setsフォルダと移動境界のファイルができる)
  2.setSet内で以下のコマンドを実行する。
   >faceSet insideZone new patchToFace InSlide
    (insideZoneがsetsフォルダ内に作成される
     InSlideは回転部境界名(任意))
   >faceSet outsideZone new patchToFace OutSlide
    (outsideZoneがsetsフォルダ内に作成される
     OutSlideは回転部境界名(任意))
   >quit
    (setSetの終了)
   これで,sets(insideZone, outsideZone)ができる。
  3.setsToZones -noFlipMap コマンドを実行する。
   これで,faceZones が作成される。

  faceZones は,接触部を明示するためのファイルです.

 6.cellZones→faceZonesの順に作成する。


 Salomeによるメッシュ作成による問題点:
 1.cellZones作成時の問題
  SalomeのUNVメッシュから直接 cellZonesは
  作成できない。

 回避策:
  回転部のみを,Gmshを経由し,OpenFOAMメッシュに変換
  この過程で cellZonesが生成される。
  (このcellZonesは別のところに保存するのが望ましい
   faceZonesを作成するときに消されてしまうため)
 
 ■ cellZonesを別に作成する理由
  gmshToFoamのOpenFoamメッシュに変換では,
  cellZonesは作成されるが,肝心のboundaryほかの
  メッシュファイルが正しく作成されない。
  
  そこで,cellZonesはどこか別に待避させ,
  Salomeから書き出したunvメッシュから,
  ideasUnvToFoamでOpenFOAMメッシュを作成する
  (このときcellZonesを待避させないと,あとのメッシュ作成で
   消されてしまうので注意)

 2.faceZones作成の問題点
  Salomeで静止部と回転部を1つの形状として作成したあと,
  partitionで分割し,1つの形状でメッシュを作成し,
  各patch(face)のグループを作成して,UNVメッシュファイル
  を書き出した場合,
  ideasUnvToFoamでのOpenFOAMメッシュ変換に失敗する。
  (移動境界のpatchが静止部と回転部に共有されることが,
   まずいらしい)

  移動境界面のメッシュを同じにするには
  (静止部を回転部に合わせる場合)

  a) 回転部を先に作成する (cellZonesを別に作成するため)
  b) 静止部も同様にとりあえずメッシュを作成する。
  このとき,当然移動境界のメッシュは明らかに異なっている。
  c) 静止部のサブメッシュを移動境界のEdgeの分だけ
   作成する。
   それぞれのEdgeをProjection 1Dにより,回転部のEdge
   を指定し,対応させる。
  d) 静止部のメッシュを再度計算する。

  回転部と移動境界メッシュが一致したメッシュができる。


2.静止部と回転部の境界面(face)の設定
 ・boundaryファイルで,静止部と回転部のfaceを指定する。
 例:
OutSlide (自分で付けたface名)
{
type ggi; ←
nFaces 115;
startFace 98108;
shadowPatch InSlide; ← InSlideに対応
zone outsideZone; ← 回転部外側を指定
bridgeOverlap false; ←
}
InSlide (自分で付けたface名)
{
type ggi; ←
nFaces 758;
startFace 91928;
shadowPatch OutSlide; ← OutSlideに対応
zone insideZone; ← 回転部を指定
bridgeOverlap false; ←
}


現状:
とりあえず,揚力型垂直軸風車の荒いメッシュの計算が走るようにはなった。

CAELinux 2009-2010 の覚え書き
パソコン・ソフト関係
author : mechstaff | - | -