OpenFOAM の移動境界 Dynamic Mesh の機能について
Upcoming SlideShare
Loading in...5
×
 

OpenFOAM の移動境界 Dynamic Mesh の機能について

on

  • 1,467 views

 

Statistics

Views

Total Views
1,467
Views on SlideShare
1,385
Embed Views
82

Actions

Likes
1
Downloads
45
Comments
0

2 Embeds 82

https://twitter.com 54
http://www.slideee.com 28

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

OpenFOAM の移動境界 Dynamic Mesh の機能について OpenFOAM の移動境界 Dynamic Mesh の機能について Presentation Transcript

  • Fumiya Nozaki 2014/03/02,第1版 OpenFOAMでの移動境界の取り扱い Dynamic Mesh Keywords: • Dynamic Mesh OpenFOAM v2.3.0
  • 2 CFDにおける移動境界 http://commons.wikimedia.org/wiki/ File:Four_stroke_cycle_compression.jpg http://www.michael-smith-engineers.co.uk/ products/gear-pumps/viking-gerotor.htm http://www.ge-energy.com/products_and_services/ products/wind_turbines/ges_2.5_120_wind_turbine.jsp エンジンの燃焼室 内接ギヤポンプのポンプ室 風力タービン  境界が移動することで計算領域の形状が時間とともに変化するような流体計 算では,その境界の移動に伴うメッシュの移動・変形の取り扱いが重要です.  移動境界を考慮する製品例には以下のようなものがあります.
  • 3 移動境界の分類:計算領域の形状の変化から  境界が移動するとき,その境界に囲まれる領域の変形の仕方には 大きく3つのケースが考えられます. • 領域が剛体運動(並進運動や回転運動)を行う場合 この場合,領域は位置のみが変化し,形状は変化しません. また,領域の境界上の点と領域内部の点とは相対的に同じ運動を行います. • 領域がトポロジーの変化を伴わない変形を行う場合 境界面が変形する場合や領域が伸縮する場合など • 領域のトポロジーが変化する場合 領域が複数に分かれる場合など 一般に,上記の項目で数字が大きくなるほど,その取り扱いに工夫が必要です. 1 2 3
  • 4 移動境界の分類:計算領域の形状の変化から  2ページにあげた 3つの例では エンジンの燃焼室 内接ギヤポンプのポンプ室 風力タービン 1 回転運動です. 2 ギヤ同士の接触を考慮しなければ トポロジーは変化しません. バルブのリフト量が 0 のとき, ポートと燃焼室で領域が分かれます. 3
  • 5 OpenFOAMでの取り扱い  OpenFOAM で領域の移動・変形を取り扱うには,Dynamic Mesh の機能 を使用します.  Dynamic Mesh の設定は,constant ディレクトリ内の dynamicMeshDict ファイルに記述します.  Dynamic Mesh の機能が使用できるソルバーは,その名前の中に『DyM』 という文字列が含まれます. 例:pimpleDyMFoam,interDyMFoam など
  • 6 dynamicMeshDict ファイルの記載例 FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object dynamicMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dynamicFvMesh solidBodyMotionFvMesh; motionSolverLibs ( "libfvMotionSolvers.so" ); solidBodyMotionFvMeshCoeffs { cellZone innerCylinderSmall; solidBodyMotionFunction rotatingMotion; rotatingMotionCoeffs { origin (0 0 0); axis (0 1 0); omega 158; // rad/s } } // ************************************************************************* // おまじない部分 重要な設定部分  資料3ページに記したような大まかな 変形のタイプを dynamicFvMesh の項目 に指定します.  指定したタイプについて,破線で囲んだ部 分で具体的な設定を行います.  必要な設定内容は,指定したタイプにより 異なります.
  • 7 dynamicFvMesh:選択可能なタイプ • staticFvMesh Dynamic Mesh を使用しない(移動領域を考慮しない)という設定です. • solidBodyMotionFvMesh 並進運動や回転運動など変形を伴わない剛体運動に使用します. • multiSolidBodyMotionFvMesh 2種類以上の変形を伴わない運動が混在する場合に使用します. • dynamicMotionSolverFvMesh 変形を伴う移動に使用します.ラプラス方程式を解くことで内部の格子 点の移動(モーフィング)を行います. • dynamicInkJetFvMesh • dynamicRefineFvMesh 必要な場所で計算格子の細分化を行い空間分解能を変化させます. • rawTopoChangerFvMesh • movingConeTopoFvMesh 調査中
  • 8 solidBodyMotionFvMesh について • staticFvMesh Dynamic Mesh を使用しない(移動領域を考慮しない)という設定です. • solidBodyMotionFvMesh 並進運動や回転運動など変形を伴わない剛体運動に使用します. • multiSolidBodyMotionFvMesh 2種類以上の変形を伴わない運動が混在する場合に使用します. • dynamicMotionSolverFvMesh 変形を伴う移動に使用します.ラプラス方程式を解くことで内部の格子 点の移動(モーフィング)を行います. • dynamicInkJetFvMesh • dynamicRefineFvMesh 必要な場所で計算格子の細分化を行い空間分解能を変化させます. • rawTopoChangerFvMesh • movingConeTopoFvMesh
  • 9 solidBodyMotionFvMesh について:概要  dynamicFvMesh として solidBodyMotionFvMesh を使用します.  運動のタイプを下記リストから選択し,solidBodyMotionFunction に指 定します.  並進運動 • linearMotion:等速直線運動 • oscillatingLinearMotion:往復直線運動  回転運動 • rotatingMotion:等速円運動 • axisRotationMotion:等速円運動 • oscillatingRotatingMotion:揺動運動  右図中の3つの運動を組み合わせた運動[1] • SDA:Ship Design Analysis の略  上記の複数の運動を組み合わせた運動 • multiMotion  各時刻での運動をテーブル形式で指定(速度が変化する運動など) • tabulated6DoFMotion これらの運動は下記で定義されています: src/dynamicFvMesh /solidBodyMotionFvMesh /solidBodyMotionFunctions
  • 10 solidBodyMotionFvMesh について:設定の詳細  各運動タイプで必要な設定項目と設定例 • rotatingMotion タイプ • axisRotationMotion タイプ solidBodyMotionFunction rotatingMotion; rotatingMotionCoeffs { origin (0 0 0); axis (0 0 1); omega 6.2832; } solidBodyMotionFunction axisRotationMotion; axisRotationMotionCoeffs { origin (0 0 0); radialVelocity (0 0 360); } 単位 [rad/s] 単位 [deg/s] 左の設定はどちらも 角速度2𝜋 rad/s の Z軸周りの回転運動 2𝜋 rad/s
  • 11 solidBodyMotionFunction oscillatingRotatingMotion; oscillatingRotatingMotionCoeffs { origin (0 0 0); amplitude (0 0 45); omega 1.5708; } solidBodyMotionFvMesh について:設定の詳細  各運動タイプで必要な設定項目と設定例 • oscillatingRotatingMotion タイプ 単位 [rad/s] 単位 [degree] 𝜋/2 rad/s 45° 45°
  • 12 solidBodyMotionFunction SDA; SDACoeffs { CofG ( 0 0 0 ); lamda 50; rollAmax 0.22654; rollAmin 0.10472; heaveA 3.79; swayA 2.34; Q 2; Tp 13.93; Tpn 11.93; dTi 0.059; dTp -0.001; } solidBodyMotionFvMesh について:設定の詳細  各運動タイプで必要な設定項目と設定例 • SDA タイプ SDA では上図中の運動のうち • Roll • Heave • Sway の 3自由度の運動 を扱います.
  • 13 solidBodyMotionFunction multiMotion; multiMotionCoeffs { rotatingTable { solidBodyMotionFunction rotatingMotion; rotatingMotionCoeffs { origin (0 0.1 0); axis (0 0 1); omega 6.2832; } } rotatingBox { solidBodyMotionFunction oscillatingRotatingMotion; oscillatingRotatingMotionCoeffs { origin (0 0 0); omega 40; amplitude (45 0 0); } } } solidBodyMotionFvMesh について:設定の詳細  各運動タイプで必要な設定項目と設定例 • multiMotion タイプ 使用例:interDyMFoam/ras/testTubeMixer この例では, • rotatingMotion • oscillatingRotatingMotion の2つの運動を組み合わせて います.
  • 14 solidBodyMotionFunction tabulated6DoFMotion; tabulated6DoFMotionCoeffs { CofG ( 0 0 0 ); timeDataFileName "$FOAM_CASE/constant/6DoF.dat"; } solidBodyMotionFvMesh について:設定の詳細  各運動タイプで必要な設定項目と設定例 • tabulated6DoFMotion タイプ 使用例:interDyMFoam/ras/sloshingTank3D6DoF 100 ( (0 ((0 0 0) (0 0 0))) (0.40404 ((0.401298 0.952899 0.321827) (4.82741 2.79073 2.00649))) (0.808081 ((0.786273 1.8071 0.635266) (9.52899 5.3597 3.93137))) (1.21212 ((1.13927 2.47414 0.932149) (13.9822 7.5028 5.69634))) (1.61616 ((1.44593 2.88493 1.20474) (18.071 9.04972 7.22963))) ・・・ ) 各時間での運動を規定
  • 15 参考文献 [1] Roll Motion of a Box and Interaction with Free-Surface http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2009/ArashEslamdoost/RollMotionofaB oxandInteractionwithFreeSurface.pdf