はじめまして。
OpenFOAM初心者の稲垣といいます。
今回OpenFOAMでslip条件を用いるケースについての質問にお答えしていただきたく、投稿しました。
水面上での平板の駆動による水面・水面下への影響を考えたくて、以下のような計算をしました。
チュートリアルにある天井駆動のキャビティ流れのケースを元にmovingWallの長さを半分にして、天井のもう半分にslip条件を与えました。
駆動する部分はx=0~0.05[m]でUx=1[m/s]で動き、x=0.05~0.1[m]の部分は条件です。
simpleFoamを使いRANSのk-εモデルで計算したところ、天井でx=0.05[m]あたりでUxが急にさがる結果になりました(添付ファイル"cavity2")。
本来はもうすこしなだらかに値が下降と思い、境界条件の設定がうまくいっていないのではないかと予想しています。
質問は、
1、境界条件に訂正箇所があるか
2、水面への影響を考えるのにあたり、今回の方法は妥当か
というものです。
何卒アドバイスよろしくお願いします。
以下、形状・境界条件
blockMeshDict
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 0.1;
vertices
(
(0 0 0)//0
(1 0 0)//
(1 1 0)//2
(0 1 0)//3
(0.5 0 0)//4
(0.5 1 0)//5
(0 0 0.1)//6
(1 0 0.1)//7
(1 1 0.1)//8
(0 1 0.1)//9
(0.5 0 0.1)//10
(0.5 1 0.1)//11
);
blocks
(
hex (0 4 5 3 6 10 11 9) (10 20 1) simpleGrading (1 1 1)
hex (4 1 2 5 10 7 8 11) (10 20 1) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
movingWall
{
type wall;
faces
(
(3 5 11 9)
);
}
fixedWalls
{
type wall;
faces
(
(0 4 10 6)
(4 1 7 10)
(0 6 9 3)
(1 7 8 2)
);
}
slip
{
type wall;
faces
(
(5 2 8 11)
);
}
frontAndBack
{
type empty;
faces
(
(0 4 5 3)
(4 1 2 5)
(6 10 11 9)
(10 7 8 11)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //
U
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
movingWall
{
type fixedValue;
value uniform (1 0 0);
}
fixedWalls
{
type fixedValue;
value uniform (0 0 0);
}
slip
{
type slip;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //
epsilon
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.000765;
boundaryField
{
movingWall
{
type epsilonWallFunction;
value uniform 0.000765;
}
fixedWalls
{
type epsilonWallFunction;
value uniform 0.000765;
}
slip
{
type slip;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //
k
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.00325;
boundaryField
{
movingWall
{
type kqRWallFunction;
value uniform 0.00325;
}
fixedWalls
{
type kqRWallFunction;
value uniform 0.00325;
}
slip
{
type slip;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //
nut
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
movingWall
{
type nutkWallFunction;
value uniform 0;
}
fixedWalls
{
type nutkWallFunction;
value uniform 0;
}
slip
{
type calculated;
value uniform 0;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //
p
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
movingWall
{
type zeroGradient;
}
fixedWalls
{
type zeroGradient;
}
slip
{
type slip;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //