第61回OpenCAE勉強会@関⻄
OpenFOAM v4.0
時間変化かつ分布を持つ
流⼊条件について
2017/10/29 1
第61回OpenCAE勉強会@関⻄
松原 ⼤輔
2017年10⽉29⽇
2
目的
・他社(他者)の計算結果を境界に与えて計算したい。
・計算領域を分けて、別々に計算したい場合。
timeVaringMappedFixedValue機能
第61回OpenCAE勉強会@関⻄2017/10/29
3
解析例
出典:http://www.cradle.co.jp/tec/column08/005.html
計算1
計算2
この領域の計算を事前にしておく.
後からこの領域だけで計算
LESの場合、サンプリング周波数
に注意
計算2の領域での検討が多くなる
ほど計算1の分だけ計算時間が削
減されるので効率的
第61回OpenCAE勉強会@関⻄2017/10/29
4
timeVaryingFixedValueの設定
ケースデータ
0
inlet
{
type timeVaryingFixedValue;
offset (0	0	0);
setAverage off;
}
U(例inlet)
最低限の3セット
例えば(10	0	0)とすると
x方向の速度が設定値分
加算される
よくわかりません
個人的に足し算より掛
け算が欲しかった
第61回OpenCAE勉強会@関⻄2017/10/29
5
ファイル構成 (timeVaringMappedFixedValue)
ケースデータ
constant
transportProperties
polyMesh
boundaryData 境界名(例:inlet)
points
0
1
U
nut
第61回OpenCAE勉強会@関⻄2017/10/29
6
Pointsについて
FoamFile
{
version 2.0;
format ascii;
class vectorField;
object points;
}
26
(
// x y z
( 0 0 0 )
( 0 0 0.025 )
( 0 0 0.05 )
( 0 0 0.1 )
( 0 0 0.2 )
( 0 0 0.3 )
( 0 0 0.4 )
( 0 0 0.5 )
( 0 0 0.6 )
( 0 0 0.7 )
( 0 0 0.8 )
( 0 0 0.9 )
( 0 0 1 )
)
…
…
補間用データ
点数
各点の座標を
羅列
第61回OpenCAE勉強会@関⻄2017/10/29
7
U,nut等の変数について
FoamFile
{
version 4.0;
format ascii;
class vectorAverageField;
object points;
}
(0 0 0)
26(
// u v w
(0 0 0)
(5.903836028 0 0 )
(6.518363449 0 0 )
(7.19685673 0 0 )
(7.945974047 0 0 )
(8.419824443 0 0 )
(8.773066621 0 0 )
(9.057236643 0 0 )
(9.296239875 0 0 )
(9.503227992 0 0 )
(9.686250859 0 0 )
(9.850612054 0 0 )
(10 0 0 )
)
…
…
Averageにしな
いとエラー
各点に対応する
物理量を入力
(順番が大切)
平均機能を使う
ときに使用
(未検証)
第61回OpenCAE勉強会@関⻄2017/10/29
8
例:大気境界層(時間変化(変動)なし)
𝑢 = 𝑢$%&
'
'()*
+/-
, 𝑧$%& = 1[m], 𝑢$%& =10[m /s]
5[m](100分割)
1[m](40分割)
1[m](20分割)
𝑥
𝑧
𝑦
yMin
yMax
outlet
inlet
noSlip その他はSlip
第61回OpenCAE勉強会@関⻄2017/10/29
9
例:大気境界層(時間変化(変動)なし)
FoamFile
{
version 2.0;
format ascii;
class vectorField;
object points;
}
26
(
// x y z
//yMin
( 0 0 0 )
( 0 0 0.025 )
( 0 0 0.05 )
( 0 0 0.1 )
( 0 0 0.2 )
( 0 0 0.3 )
( 0 0 0.4 )
( 0 0 0.5 )
( 0 0 0.6 )
( 0 0 0.7 )
( 0 0 0.8 )
( 0 0 0.9 )
( 0 0 1 )
//yMax
( 0 1 0 )
( 0 1 0.025 )
( 0 1 0.05 )
( 0 1 0.1 )
( 0 1 0.2 )
( 0 1 0.3 )
( 0 1 0.4 )
( 0 1 0.5 )
( 0 1 0.6 )
( 0 1 0.7 )
( 0 1 0.8 )
( 0 1 0.9 )
( 0 1 1 )
)
…
…
boundaryData /inlet /points 𝑢 = 𝑢$%&
'
'()*
+/-
, 𝑧$%& = 1[m], 𝑢$%& =10[m /s]
第61回OpenCAE勉強会@関⻄2017/10/29
10
例:大気境界層(時間変化(変動)なし)
FoamFile
{
version 4.0;
format ascii;
class vectorAverageField;
object points;
}
(0 0 0)
26(
// u v w
//yMin
(0 0 0)
(5.903836028 0 0 )
(6.518363449 0 0 )
(7.19685673 0 0 )
(7.945974047 0 0 )
(8.419824443 0 0 )
(8.773066621 0 0 )
(9.057236643 0 0 )
(9.296239875 0 0 )
(9.503227992 0 0 )
(9.686250859 0 0 )
(9.850612054 0 0 )
(10 0 0 )
//yMax
(0 1 0 )
(5.903836028 1 0 )
(6.518363449 1 0 )
(7.19685673 1 0 )
(7.945974047 1 0 )
(8.419824443 1 0 )
(8.773066621 1 0 )
(9.057236643 1 0 )
(9.296239875 1 0 )
(9.503227992 1 0 )
(9.686250859 1 0 )
(9.850612054 1 0 )
(10 1 0 )
)
…
…
boundaryData /inlet /0/U 𝑢 = 𝑢$%&
'
'()*
+/-
, 𝑧$%& = 1[m], 𝑢$%& =10[m /s]
第61回OpenCAE勉強会@関⻄2017/10/29
11
例:大気境界層(時間変化(変動)なし)
𝑢 = 𝑢$%&
'
'()*
+/-
, 𝑧$%& = 1[m], 𝑢$%& =10[m /s]
第61回OpenCAE勉強会@関⻄2017/10/29
12
空間のデータ補間について(検証)
yMin
yMax
5[m /s]
10[m /s]
第61回OpenCAE勉強会@関⻄2017/10/29
13
空間のデータ補間について(検証)
4
5
6
7
8
9
10
11
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
U	[m/s]
y	[m]
OpenFOAM
デフォルトでは線形補間 境界付近でズレ
Uを中央でLineプローブ
(paraFoam)
第61回OpenCAE勉強会@関⻄2017/10/29
14
未設定時間のデータ補間について(検証)
yMin
yMax
5[m /s]
yMin
yMax
10[m /s]
t=0[s] t=1[s]
t=0.5[s]の時は
7.5[m /s]❓
(設定) (設定)(未設定)
第61回OpenCAE勉強会@関⻄2017/10/29
15
ケースデータ
constant
transportProperties
polyMesh
boundaryData 境界名(例:inlet)
points
0
1
U←5m /s
未設定時間のデータ補間について(検証)
U←10m /s
←この間、どうなるの❓
第61回OpenCAE勉強会@関⻄2017/10/29
16
未設定時間のデータ補間について(検証)
Uをプローブ
(paraFoam)
設定していない時間では線形補間させる
4
5
6
7
8
9
10
11
-0.1 0.1 0.3 0.5 0.7 0.9 1.1
U	[m/s]
t	[s]
OpenFOAM
第61回OpenCAE勉強会@関⻄2017/10/29
17
cuttingPlane or	Sampling
計算結果を境界条件に与えるには?
cuttingPlane{
type surfaces;
libs ("libsampling.so");
writeControl writeTime;
surfaceFormat foamFile;
fields ( p U nut );
interpolationScheme cellPoint;
surfaces
(
xNormal
{
type cuttingPlane;
planeType pointAndNormal;
pointAndNormalDict
{ basePoint (5 0 0);
normalVector (1 0 0);
}
interpolate true;
} );}
system /controlDict
第61回OpenCAE勉強会@関⻄2017/10/29
←重要
18
計算結果を境界条件に与えるには?
boundaryData /postProcessing
postProcessing
cuttingPlane
0.1
0.2
xNormal
scalarField
vectorField
points
U
⾃分はpythonで⾃動化したが、
pyFormや標準であるかも
⾚字の所を
BoundaryDataの⽅に
コピってくる。
Foam{..}も追記
第61回OpenCAE勉強会@関⻄2017/10/29
19
終わり
第61回OpenCAE勉強会@関⻄2017/10/29

timeVaringMappedFixedValueについて