本算例演示利用OpenFOAM求解计算同心管道内的层流自然对流,并对计算结果进行验证。
参考文献:T.H. Kuehn, R.J. Goldstein, “An Experimental Study of Natural Convection Heat Transfer in Concentric and Eccentric Horizontal Cylindrical Annuli”, Journal of Heat Transfer, Vol 100, pp. 635-640, 1978.
”
案例几何如图所示。两个同心圆管,其中内管半径17.8 mm,温度373K,外管半径46.25 mm,温度327 K。
两管道间的环形空间内介质粘度2.081e-5 kg/m-s,比热1008 J/kg-K,热传导系数0.02967 W/m-K,密度考虑为不可压缩理想气体。研究管道竖直轴线上速度分布(图中的Top与Bottom)
算例采用二维对称模型进行计算。
本算例涉及到层流自然对流问题。计划使用buoyantSimpleFoam
求解器进行计算。这里选择算例库中的buoyantCavity作为算例模板。
cp -r $FOAM_TUTORIALS/heatTransfer/buoyantSimpleFoam/buoyantCavity/ .
mv buoyantCavity VM09
cd VM09
考虑到本算例为层流流动,因此删除多余的文件,初始算例文件结构如下图所示。
本算例网格采用ICEM CFD生成。
fluentMeshToFoam VM09.msh
constant/polyMesh/boundary
中TOP及BOTTOM
边界条件类型为symmetry
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * //
5
(
TOP
{
type symmetry;
inGroups List<word> 1(wall);
nFaces 39;
startFace 11049;
}
BOTTOM
{
type symmetry;
inGroups List<word> 1(wall);
nFaces 39;
startFace 11088;
}
IN
{
type wall;
inGroups List<word> 1(wall);
nFaces 144;
startFace 11127;
}
OUT
{
type wall;
inGroups List<word> 1(wall);
nFaces 144;
startFace 11271;
}
frontAndBackPlanes
{
type empty;
inGroups List<word> 1(empty);
nFaces 11232;
startFace 11415;
}
)
checkMesh
检查网格这里需要定义重力加速度、设置材料属性及湍流模型。
1、g文件
g文件中定义重力加速度,这里定义重力加速度沿y轴负方向
,其文件内容为:
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 -9.81 0);
2、momentumTransport文件
本算例采用层流计算,在此文件中进行定义。文件内容如下所示。
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
3、pRef文件
此文件中指定参考密度。文件内容如下所示。
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedScalarField;
location "constant";
object pRef;
}
// * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
value 1e5; //注意指定的是运动压力
4、thermophysicalProperties文件
此文件中指定材料介质的热物性。其中普朗特数:
文件内容如下所示。
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture; // 固定组分
transport const; // 粘度为常数
thermo hConst; // 比热与显焓为常数
equationOfState perfectGas; // 采用理想气体状态方程
specie specie; // 后面采用分子量定义
energy sensibleEnthalpy; // 采用显焓计算能量方程
}
mixture
{
specie
{
molWeight 28.96; //分子量
}
thermodynamics
{
Cp 1008; //等压比热容[J/(kmol.K)]
Hf 0; //生成焓[J/kmol]
}
transport
{
mu 2.081e-05; //粘度
Pr 0.7067; //普朗特数
}
}
1、p文件
p文件内容如下所示。
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1e5;
boundaryField
{
TOP
{
type symmetry;
}
BOTTOM
{
type symmetry;
}
IN
{
type zeroGradient;
}
OUT
{
type zeroGradient;
}
frontAndBackPlanes
{
type empty;
}
}
2、p_rgh文件
p_rgh文件内容如下所示。
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p_rgh;
}
// * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
TOP
{
type symmetry;
}
BOTTOM
{
type symmetry;
}
IN
{
type fixedFluxPressure;
value $internalField;
}
OUT
{
type fixedFluxPressure;
value $internalField;
}
frontAndBackPlanes
{
type empty;
}
}
3、T文件
内壁面温度373 K,外壁面温度327K。
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object T;
}
// * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 350;
boundaryField
{
TOP
{
type symmetry;
}
BOTTOM
{
type symmetry;
}
IN
{
type fixedValue;
value uniform 373;
}
OUT
{
type fixedValue;
value uniform 327
}
frontAndBackPlanes
{
type empty;
}
}
4、U文件
U文件内容如下所示。
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
"(TOP|BOTTOM)"
{
type symmetry;
}
"(IN|OUT)"
{
type noSlip;
}
frontAndBackPlanes
{
type empty;
}
}
修改controlDict
文件,如下所示。
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * //
application buoyantSimpleFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 5000; //迭代次数3000
deltaT 1;
writeControl timeStep;
writeInterval 50;
purgeWrite 3;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
采用pyFoamPlotRunner
进行计算。注意事先安装好PyFoam
。
pyFoamPlotRunner.py --clear buoyantSimpleFoam
计算残差曲线如下图所示。
set xlabel "y(m)"
set ylabel "Temperature(K)"
set grid
set key right
plot "top.txt" u 1:2 w line lw 3 t "numeric","VMFL009_top.xy" u 1:2 w point pt 7 t "exp"
与实验值的比较结果如下图所示。
set xlabel "y(m)"
set ylabel "Temperature(K)"
set grid
set key left
plot "bottom.txt" u 1:2 w line lw 3 t "numeric","VMFL009_bot.xy" u 1:2 w point pt 7 t "exp"
与实验值比较结果如下图所示。
---------------------------------------------------------------------------------------------
版权声明:
原创文章,来源CFD之道,本文已经授权,欢迎分享,如需转载请联系作者。