1 模型信息
长度10 m,宽2 m,厚度2 m的方形腔体,初始时刻一半管道压力10000 Pa,温度278.746 K,另一半压力100000 Pa,温度348.432 K,计算内部压力随时间分布。如下图所示。
案例采用1D计算,重点内容为对计算区域内局部进行初始化。
求解器rhoPimpleFoam用于可压缩流动求解,可以用于亚音速、跨音速及超音速流动。
2 OpenFOAM操作
采用以下命令执行计算。
cd $FOAM_RUN
cp -r $FOAM_TUTORIALS/compressible/rhoPimpleFoam/laminar/shockTube/ .
cd sonicTube
blockMesh
setFields
rhoPimpleFoam
paraFoam
3 文件分析
本案例中处理setFields需要关注外,其他的所有文件并没有什么新的内容。
setFields需要配合system/setFieldsDict文件一起使用,该文件内容:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object setFieldsDict;
}
defaultFieldValues ( volVectorFieldValue U (0 0 0) volScalarFieldValue T 348.432 volScalarFieldValue p 100000 );
regions ( boxToCell { box (0 -1 -1) (5 1 1) ; fieldValues ( volScalarFieldValue T 278.746 volScalarFieldValue p 10000 ) ; } );
-
指定全部计算区域内速度为(0 0 0),温度为348.432 K,压力100000 Pa
-
指定box区域(0 -1 -1) (5 1 1)内温度278.746 K,压力10000 Pa
看到这里很容易联想到Fluent中的Patch,事实上setFields的功能就是Patch,为计算区域的局部指定物理量分布。本案例中指定了局部区域的温度与压力。
注:在OpenFOAM中,除了可以使用boxToCell指定长方体区域外,在路径/opt/OpenFOAM/OpenFOAM-dev/src/meshTools/sets/cellSources/下还包含了其他各种物理量指定方式。
该文件夹下包含的各种setFields方式,如下图所示。
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册