SlideShare a Scribd company logo
Fumiya Nozaki
最終更新日: 2014年6月1日
OpenFOAM 2.3.0 Tutorial
oscillatingInletACMI2D
日本語版
Keywords:
• pimpleDyMFoam
• dynamicMesh
• cyclicACMI
• partital overlap GGI
2
計算形状
• 赤色のボリューム(inletChannel)が上下に単振動
寸法の単位はすべて m
1 2
1
0.4
単振動 (Simple harmonic motion)
2次元モデル
3
計算条件:境界条件
inlet
流速規定 U=(1, 0, 0)
outlet
圧力規定 p=0
固定壁
可動壁
変位量=0.5 ∙ sin 3.14 ∙ 𝑡 m
4
設定上重要なポイント:Sliding interfaces
Sliding interfaces
単振動 (Simple harmonic motion)
5
設定上重要なポイント:Sliding interfaces
重ならない部分は
壁面として扱う
重なる部分は
流体が通過
6
境界のカップリング
cyclicACMI
Yes No
cyclicAMIcyclic
ペアの境界が同一形状
ペアの境界のサーフェスメッシュが
回転 or 並進で一致
Yes No
• フェイスの数や
• 格子点の位置関係が
一致しているかどうか.
ペアの境界
7
計算格子
80分割 80分割
96分割
40分割
8
計算格子の生成の流れ
ベースとなる計算格子を生成
blockMesh
移動領域の cellZone,ACMI パッチの作成に使用する 2つの faceZone を生成
topoSet -constant
ACMI パッチを生成
createBaffles -overwrite
フェイスの数が 0 のパッチを削除
createPatch -overwrite
1
2
3
4
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication topoSet -constant
# split the mesh to generate the ACMI coupled patches
runApplication createBaffles -overwrite
# remove zero-sized patches
runApplication createPatch -overwrite
cp -rf 0.org 0
Allrun.pre
9
ベースの計算格子を生成
6
(
inlet
{
type patch;
nFaces 40;
startFace 21464;
}
outlet
{
type patch;
nFaces 96;
startFace 21504;
}
walls
{
type wall;
inGroups 1(wall);
nFaces 320;
startFace 21600;
}
couple1
{
type patch;
nFaces 40;
startFace 21920;
}
couple2
{
type patch;
nFaces 96;
startFace 21960;
}
defaultFaces
{
type empty;
inGroups 1(empty);
nFaces 21760;
startFace 22056;
}
)
blockMesh を実行し,6つの境界を生成します.
1
10
cellZone・faceZone の生成2
• 2つの faceZone (couple1Faces,couple2Faces)を生成
- couple1(2) 境界から couple1(2)Faces を作成
- faceZone の情報(フェイスのリスト)は faceZones ファイルに記述される
• 1つの cellZone (inletChannel)を生成
- 上下に平行移動する赤色の領域内のセルから生成
- cellZone の情報(セルのリスト)は cellZones ファイルに記述される
11
cellZone・faceZone の作成:topoSetDict の設定2
actions
(
// Get both sides of ami
// ~~~~~~~~~~~~~~~~~~~~~
// Create faceZone for patch couple1
{
name couple1Faces;
type faceSet;
action new;
source patchToFace;
sourceInfo
{
name couple1;
}
}
{
name couple1Faces;
type faceZoneSet;
action new;
source setToFaceZone;
sourceInfo
{
faceSet couple1Faces;
}
}
// Create faceZone for patch couple2
{
name couple2Faces;
type faceSet;
action new;
source patchToFace;
sourceInfo
{
name couple2;
}
}
{
name couple2Faces;
type faceZoneSet;
action new;
source setToFaceZone;
sourceInfo
{
faceSet couple2Faces;
}
}
// Create cellZone for moving cells in inlet channel
{
name inletChannel;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (-100 -100 -100) (1.0001 100 100);
}
}
{
name inletChannel;
type cellZoneSet;
action new;
source setToCellZone;
sourceInfo
{
set inletChannel;
}
}
);
couple1Faces
の生成設定
couple2Faces
の生成設定
inletChannel
の生成設定
12
ACMI パッチの生成
• 2つの faceZone (ACMI1,ACMI2)を生成
- faceZone の情報(フェイスのリスト)は faceZones ファイルに記述される
• ACMI1 は,2つの境界(ACMI1_couple,ACMI1_blockage)から構成される
• ACMI2 は,2つの境界(ACMI2_couple,ACMI2_blockage)から構成される
3
ACMI1_couple
ACMI2_couple
ACMI2_blockage
ACMI1_blockage
13
ACMI パッチの生成:createBafflesDict の設定
// Whether to convert internal faces only (so leave boundary faces intact).
// This is only relevant if your face selection type can pick up boundary
// faces.
internalFacesOnly false;
// Baffles to create.
baffles
{
// NOTE: cyclicAMI patches MUST BE defined PRIOR to their associted
// blockage patches
ACMI1
{
//- Use predefined faceZone to select faces and orientation.
type faceZone;
zoneName couple1Faces;
patches
{
master
{
//- Master side patch
name ACMI1_couple;
type cyclicACMI;
matchTolerance 0.0001;
neighbourPatch ACMI2_couple;
nonOverlapPatch ACMI1_blockage;
transform noOrdering;
}
slave // not used since we're manipulating a boundary patch
{
//- Slave side patch
name ACMI1_couple;
type patch;
}
master2
{
//- Master side patch
name ACMI1_blockage;
type wall;
}
slave2 // not used since we're manipulating a boundary patch
{
//- Slave side patch
name ACMI1_blockage;
type wall;
}
}
}
ACMI2
{
//- Use predefined faceZone to select faces and orientation.
type faceZone;
zoneName couple2Faces;
patches
{
master
{
//- Master side patch
name ACMI2_couple;
type cyclicACMI;
matchTolerance 0.0001;
neighbourPatch ACMI1_couple;
nonOverlapPatch ACMI2_blockage;
transform noOrdering;
}
slave // not used since we're manipulating a boundary patch
{
//- Slave side patch
name ACMI2_couple;
type patch;
}
master2
{
//- Master side patch
name ACMI2_blockage;
type wall;
}
slave2 // not used since we're manipulating a boundary patch
{
//- Slave side patch
name ACMI2_blockage;
type wall;
}
}
}
}
3
生成される2つの
faceZone
14
ACMI パッチの生成:boundary ファイル
10
(
inlet
{
type patch;
nFaces 40;
startFace 21464;
}
outlet
{
type patch;
nFaces 96;
startFace 21504;
}
walls
{
type wall;
inGroups 1(wall);
nFaces 320;
startFace 21600;
}
couple1
{
type patch;
nFaces 0;
startFace 21920;
}
couple2
{
type patch;
nFaces 0;
startFace 21920;
}
defaultFaces
{
type empty;
inGroups 1(empty);
nFaces 21760;
startFace 21920;
}
ACMI1_couple
{
type cyclicACMI;
inGroups 2(cyclicACMI ACMI1);
nFaces 40;
startFace 43680;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch ACMI2_couple;
nonOverlapPatch ACMI1_blockage;
}
ACMI1_blockage
{
type wall;
inGroups 2(wall ACMI1);
nFaces 40;
startFace 43720;
}
ACMI2_couple
{
type cyclicACMI;
inGroups 2(cyclicACMI ACMI2);
nFaces 96;
startFace 43760;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch ACMI1_couple;
nonOverlapPatch ACMI2_blockage;
}
ACMI2_blockage
{
type wall;
inGroups 2(wall ACMI2);
nFaces 96;
startFace 43856;
}
)
3
ペア
4 で削除される
15
ACMI パッチの生成:boundary ファイル3
ACMI1_couple
ACMI2_couple
ACMI2_blockage
ACMI1_blockage
nonOverlapPatch
nonOverlapPatch
neighbourPatch
16
移動境界の設定:dynamicMeshDict
dynamicFvMesh solidBodyMotionFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
{
cellZone inletChannel;
solidBodyMotionFunction oscillatingLinearMotion;
oscillatingLinearMotionCoeffs
{
amplitude (0 0.5 0);
omega 3.14; // rad/s
}
}
• 移動する部分は,変形を伴わない平行移動 ⇒ solidBodyMotionFvMesh
• 一定の方向に単振動 ⇒ oscillatingLinearMotion
• solidBodyMotionFvMesh 以外に使用可能なタイプについては次ページを参照.
変位ベクトル
=amplitude ∙ sin omega ∙ 𝑡 m
17
dynamicFvMesh のタイプ
• staticFvMesh
境界は固定として処理(dynamicMesh を使用しない場合と同じ)
• solidBodyMotionFvMesh
平行移動や回転など変形を伴わない移動に使用
• multiSolidBodyMotionFvMesh
2種類以上の変形を伴わない移動が混在する場合に使用
• dynamicMotionSolverFvMesh
変形を伴う移動に使用.ラプラス方程式を解くことで内部の格子点の移動を
計算.
• dynamicInkJetFvMesh
• dynamicRefineFvMesh
• rawTopoChangerFvMesh
• movingConeTopoFvMesh
18
流速 U の境界条件の設定
defaultFaces
{
type empty;
}
inlet
{
type fixedValue;
value uniform (1 0 0);
}
outlet
{
type pressureInletOutletVelocity;
value uniform (0 0 0);
}
walls
{
type movingWallVelocity;
value uniform (0 0 0);
}
ACMI1_blockage
{
type fixedValue;
value uniform (0 0 0);
}
ACMI1_couple
{
type cyclicACMI;
value uniform (0 0 0);
}
ACMI2_blockage
{
type fixedValue;
value uniform (0 0 0);
}
ACMI2_couple
{
type cyclicACMI;
value uniform (0 0 0);
}
(*1)移動する壁面上の
すべりなし条件(*1)
19
圧力 p の境界条件の設定
defaultFaces
{
type empty;
}
inlet
{
type zeroGradient;
} outlet
{
type fixedValue;
value uniform 0;
}
walls
{
type zeroGradient;
}
ACMI1_blockage
{
type zeroGradient;
}
ACMI1_couple
{
type cyclicACMI;
value uniform 0;
}
ACMI2_blockage
{
type zeroGradient;
}
ACMI2_couple
{
type cyclicACMI;
value uniform 0;
}
20
計算結果:流速場 t=0.00s
21
計算結果:流速場 t=0.05s
22
計算結果:流速場 t=0.10s
23
計算結果:流速場 t=0.15s
24
計算結果:流速場 t=0.20s
25
計算結果:流速場 t=0.25s
26
計算結果:流速場 t=0.30s
27
計算結果:流速場 t=0.35s
28
計算結果:流速場 t=0.40s
29
計算結果:流速場 t=0.45s
30
計算結果:流速場 t=0.50s
31
計算結果:流速場 t=0.55s
32
計算結果:流速場 t=0.60s
33
計算結果:流速場 t=0.65s
34
計算結果:流速場 t=0.70s
35
計算結果:流速場 t=0.75s
36
計算結果:流速場 t=0.80s
37
計算結果:流速場 t=0.85s
38
計算結果:流速場 t=0.90s
39
計算結果:流速場 t=0.95s
40
計算結果:流速場 t=1.00s
41
計算結果:流速場 t=1.05s
42
計算結果:流速場 t=1.10s
43
計算結果:流速場 t=1.15s
44
計算結果:流速場 t=1.20s
45
計算結果:流速場 t=1.25s
46
計算結果:流速場 t=1.30s
47
計算結果:流速場 t=1.35s
48
計算結果:流速場 t=1.40s
49
計算結果:流速場 t=1.45s
50
計算結果:流速場 t=1.50s
51
計算結果:流速場 t=1.55s
52
計算結果:流速場 t=1.60s
53
計算結果:流速場 t=1.65s
54
計算結果:流速場 t=1.70s
55
計算結果:流速場 t=1.75s
56
計算結果:流速場 t=1.80s
57
計算結果:流速場 t=1.85s
58
計算結果:流速場 t=1.90s
59
計算結果:流速場 t=1.95s
60
計算結果:流速場 t=2.00s
61
計算結果:流速場 t=2.05s
62
計算結果:流速場 t=2.10s
63
計算結果:流速場 t=2.15s
64
計算結果:流速場 t=2.20s
65
計算結果:流速場 t=2.25s
66
計算結果:流速場 t=2.30s
67
計算結果:流速場 t=2.35s
68
計算結果:流速場 t=2.40s
69
計算結果:流速場 t=2.45s
70
計算結果:流速場 t=2.50s

More Related Content

PDF
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
PDF
OpenFOAMにおけるDEM計算の力モデルの解読
PDF
OpenFOAM の Function Object 機能について
PPTX
OpenFOAMによる気液2相流解析の基礎と設定例
PDF
OpenFOAM の境界条件をまとめよう!
PPTX
About chtMultiRegionFoam
PDF
OpenFOAMのinterfoamによる誤差
PDF
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAMにおけるDEM計算の力モデルの解読
OpenFOAM の Function Object 機能について
OpenFOAMによる気液2相流解析の基礎と設定例
OpenFOAM の境界条件をまとめよう!
About chtMultiRegionFoam
OpenFOAMのinterfoamによる誤差
OpenFOAMのチュートリアルを作ってみた#1 『くさび油膜効果の計算』

What's hot (20)

PDF
OpenFOAM LES乱流モデルカスタマイズ
PDF
interFoamの検証
PDF
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
PDF
OpenFOAMにおける混相流計算
PDF
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
PDF
Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0
PDF
Turbulence Models in OpenFOAM
PDF
Boundary Conditions in OpenFOAM
PDF
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
PDF
OpenFOAMの壁関数
PDF
Dynamic Mesh in OpenFOAM
PDF
OpenFoamの混相流solver interFoamのパラメータによる解の変化
PPTX
multiDimAMR
PDF
OpenFOAMソルバの実行時ベイズ最適化
PDF
OpenFOAMを用いた計算後の等高面データの取得方法
PDF
OpenFOAMによる混相流シミュレーション入門
PDF
Spatial Interpolation Schemes in OpenFOAM
PDF
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
PDF
Mixer vessel by cfmesh
PDF
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAM LES乱流モデルカスタマイズ
interFoamの検証
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAMにおける混相流計算
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
Tutorial to set up a case for chtMultiRegionFoam in OpenFOAM 2.0.0
Turbulence Models in OpenFOAM
Boundary Conditions in OpenFOAM
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAMの壁関数
Dynamic Mesh in OpenFOAM
OpenFoamの混相流solver interFoamのパラメータによる解の変化
multiDimAMR
OpenFOAMソルバの実行時ベイズ最適化
OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMによる混相流シミュレーション入門
Spatial Interpolation Schemes in OpenFOAM
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
Mixer vessel by cfmesh
OpenFOAMにおけるDEM計算の衝突モデルの解読
Ad

Viewers also liked (16)

PDF
OpenFOAM Programming Tips
PDF
CFD for Rotating Machinery using OpenFOAM
PDF
Avinash_PPT
PDF
A first order hyperbolic framework for large strain computational computation...
PPT
CFD - OpenFOAM
PDF
Large strain computational solid dynamics: An upwind cell centred Finite Volu...
PDF
Customization of LES turbulence model in OpenFOAM
PDF
Large strain solid dynamics in OpenFOAM
PDF
OpenFOAM for beginners: Hands-on training
PDF
PDF
Semcon oscic10 des_20101105_captured
PDF
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
PDF
rhoCentralFoam in OpenFOAM
PPT
openFoam Visualisation Rendering Using Blender
PDF
openFoam Hangout on Air #2 - Cloud Simulation, presentation by SimScale
PDF
CAESES-FFW,GridPro,OpenFOAMを使用した形状最適化事例#1
OpenFOAM Programming Tips
CFD for Rotating Machinery using OpenFOAM
Avinash_PPT
A first order hyperbolic framework for large strain computational computation...
CFD - OpenFOAM
Large strain computational solid dynamics: An upwind cell centred Finite Volu...
Customization of LES turbulence model in OpenFOAM
Large strain solid dynamics in OpenFOAM
OpenFOAM for beginners: Hands-on training
Semcon oscic10 des_20101105_captured
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
rhoCentralFoam in OpenFOAM
openFoam Visualisation Rendering Using Blender
openFoam Hangout on Air #2 - Cloud Simulation, presentation by SimScale
CAESES-FFW,GridPro,OpenFOAMを使用した形状最適化事例#1
Ad

More from Fumiya Nozaki (9)

PDF
Basic Boundary Conditions in OpenFOAM v2.4
PDF
blockCoupledSwirlTestチュートリアル
PDF
CAESES Free チュートリアル
PDF
Limited Gradient Schemes in OpenFOAM
PDF
ParaView による可視化 Tips
PDF
無償のモデリングソフトウェアCAESESを使ってみた
PDF
Adjoint Shape Optimization using OpenFOAM
PDF
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
PDF
OpenFOAM を用いた Adjoint 形状最適化事例1
Basic Boundary Conditions in OpenFOAM v2.4
blockCoupledSwirlTestチュートリアル
CAESES Free チュートリアル
Limited Gradient Schemes in OpenFOAM
ParaView による可視化 Tips
無償のモデリングソフトウェアCAESESを使ってみた
Adjoint Shape Optimization using OpenFOAM
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
OpenFOAM を用いた Adjoint 形状最適化事例1

OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』