openfoam の移動境界 dynamic mesh の機能について

15
Fumiya Nozaki 2014/03/02,第1版 OpenFOAMでの移動境界の取り扱い Dynamic Mesh Keywords: Dynamic Mesh OpenFOAM v2.3.0

Upload: fumiya-nozaki

Post on 14-Jun-2015

4.412 views

Category:

Technology


27 download

TRANSCRIPT

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

Fumiya Nozaki

2014/03/02,第1版

OpenFOAMでの移動境界の取り扱い

Dynamic Mesh

Keywords: • Dynamic Mesh

OpenFOAM v2.3.0

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

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

エンジンの燃焼室 内接ギヤポンプのポンプ室

風力タービン

境界が移動することで計算領域の形状が時間とともに変化するような流体計算では,その境界の移動に伴うメッシュの移動・変形の取り扱いが重要です.

移動境界を考慮する製品例には以下のようなものがあります.

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

3

移動境界の分類:計算領域の形状の変化から

境界が移動するとき,その境界に囲まれる領域の変形の仕方には 大きく3つのケースが考えられます. • 領域が剛体運動(並進運動や回転運動)を行う場合

この場合,領域は位置のみが変化し,形状は変化しません. また,領域の境界上の点と領域内部の点とは相対的に同じ運動を行います.

• 領域がトポロジーの変化を伴わない変形を行う場合

境界面が変形する場合や領域が伸縮する場合など • 領域のトポロジーが変化する場合

領域が複数に分かれる場合など

一般に,上記の項目で数字が大きくなるほど,その取り扱いに工夫が必要です.

1

2

3

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

4

移動境界の分類:計算領域の形状の変化から

2ページにあげた 3つの例では

エンジンの燃焼室 内接ギヤポンプのポンプ室

風力タービン 1 回転運動です.

2

ギヤ同士の接触を考慮しなければ トポロジーは変化しません.

バルブのリフト量が 0 のとき, ポートと燃焼室で領域が分かれます.

3

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

5

OpenFOAMでの取り扱い

OpenFOAM で領域の移動・変形を取り扱うには,Dynamic Mesh の機能を使用します.

Dynamic Mesh の設定は,constant ディレクトリ内の dynamicMeshDict ファイルに記述します.

Dynamic Mesh の機能が使用できるソルバーは,その名前の中に『DyM』という文字列が含まれます. 例:pimpleDyMFoam,interDyMFoam など

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

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 の項目に指定します.

指定したタイプについて,破線で囲んだ部分で具体的な設定を行います.

必要な設定内容は,指定したタイプにより異なります.

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

7

dynamicFvMesh:選択可能なタイプ

• staticFvMesh Dynamic Mesh を使用しない(移動領域を考慮しない)という設定です.

• solidBodyMotionFvMesh 並進運動や回転運動など変形を伴わない剛体運動に使用します.

• multiSolidBodyMotionFvMesh 2種類以上の変形を伴わない運動が混在する場合に使用します.

• dynamicMotionSolverFvMesh 変形を伴う移動に使用します.ラプラス方程式を解くことで内部の格子点の移動(モーフィング)を行います.

• dynamicInkJetFvMesh

• dynamicRefineFvMesh 必要な場所で計算格子の細分化を行い空間分解能を変化させます.

• rawTopoChangerFvMesh

• movingConeTopoFvMesh

調査中

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

8

solidBodyMotionFvMesh について

• staticFvMesh Dynamic Mesh を使用しない(移動領域を考慮しない)という設定です.

• solidBodyMotionFvMesh 並進運動や回転運動など変形を伴わない剛体運動に使用します.

• multiSolidBodyMotionFvMesh 2種類以上の変形を伴わない運動が混在する場合に使用します.

• dynamicMotionSolverFvMesh 変形を伴う移動に使用します.ラプラス方程式を解くことで内部の格子点の移動(モーフィング)を行います.

• dynamicInkJetFvMesh

• dynamicRefineFvMesh 必要な場所で計算格子の細分化を行い空間分解能を変化させます.

• rawTopoChangerFvMesh

• movingConeTopoFvMesh

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

9

solidBodyMotionFvMesh について:概要

dynamicFvMesh として solidBodyMotionFvMesh を使用します.

運動のタイプを下記リストから選択し,solidBodyMotionFunction に指定します.

並進運動

• linearMotion:等速直線運動 • oscillatingLinearMotion:往復直線運動

回転運動

• rotatingMotion:等速円運動 • axisRotationMotion:等速円運動 • oscillatingRotatingMotion:揺動運動

右図中の3つの運動を組み合わせた運動[1]

• SDA:Ship Design Analysis の略

上記の複数の運動を組み合わせた運動 • multiMotion

各時刻での運動をテーブル形式で指定(速度が変化する運動など) • tabulated6DoFMotion

これらの運動は下記で定義されています: src/dynamicFvMesh /solidBodyMotionFvMesh /solidBodyMotionFunctions

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

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

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

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°

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

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自由度の運動 を扱います.

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

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つの運動を組み合わせて います.

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

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))) ・・・ )

各時間での運動を規定

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

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