OpenFOAM5教程——多孔介质源项 explicitPorositySource
一个简单的porosity–source应用的教程,希望能够帮助到大家。
1. 网格区域设定
在添加 explicitPorositySource之前一般需要在system/topoSetDict中设定网格区域:
// porosity
{
name poros; // 命名为poros
type cellSet;
action new;
source cylinderToCell; // 圆柱区域
sourceInfo
{
p1 (0 0.3 0); // 圆柱体上表面的中心点
p2 (0 0.7 0); // 圆柱体下表面的中心点
radius 0.5; // 圆柱半径
}
}
{
name porosz; // 区域命名
type cellZoneSet;
action new;
source setToCellZone; // 将圆柱区域转换为网格区域
sourceInfo
{
set poros; // 给定source信息
}
}
在网格划分之后执行runApplication topoSet
指令,即可生成此网格区域porosz。
2. 源项explicitPorositySource
在constant/fvOptions中添加 源项explicitPorositySource:
poros
{
type explicitPorositySource; // 类型
explicitPorositySourceCoeffs
{
selectionMode cellZone;
cellZone porosz; // 已经产生的网格区域
type DarcyForchheimer; // 达西定律
// D 100; // Very little blockage
// D 200; // Some blockage but steady flow
D 500; // Slight waviness in the far wake
// D 1000; // Fully shedding behavior
d ($D $D $D); // 各向同性
f (0 0 0);
coordinateSystem // 旋转坐标系的设定
{
type cartesian; // 笛卡尔坐标系
origin (0 0 0);
coordinateRotation
{
type axesRotation; // 此算例设定无旋转,e1, e2, e3分别为x, y, z轴
e1 (1 0 0);
e2 (0 1 0);
e3 (0 0 1);
}
}
}
}
对于参数 d–Darcy coefficient(1/m2) 和 f–Forchheimer coefficient(1/m) 由以下公式描述:
S
i
=
−
(
μ
d
+
ρ
∣
U
∣
2
f
)
U
i
S_i = -(μd + \frac{\rho |U|}{2} f) U_i
Si=−(μd+2ρ∣U∣f)Ui
在各向同性的情况下,d, f沿x, y, z三个方向的值相等;而各向异性的情况下则需要分别设定。
N-S方程:
S中应包含三个方向的 Si
用求解器pisoFoam
求解即可。