请问OpenFOAM获得流场体积流率(或者质量流率)的方法

请教一下,OpenFOAM该如何获得流场体积流率(或者质量流率)?目前我想到的一个方法是截取流场中的一个面,通过Sample的方式获得该面上的平均流速,然后乘以该截面的面积。但是我觉得这样太繁琐了,而且也只是一个用平均流速估计的一个体积流率。有没有什么utility活着functionObject的方法直接获得呢?或者使用paraview也行。望告知,感谢!

实时获取:

如果可以做成边界的话,在 controlDict 里面加入,

functions
{
    #includeFunc flowRatePatch(name=outlet0) // 边界 1
    #includeFunc flowRatePatch(name=outlet1) // 边界 2
    ...
}

就可以实时地获取这些边界上的流量了,文件保存在 /case/postProcessing/ 里面。

如果已经建立 faceZone 了,可以用 flowRateFaceZone,使用方法是一样的,在 controlDict 里面加入

functions
{
    #includeFunc flowRateFaceZone(name=inlet) // 区域 1
    #includeFunc flowRateFaceZone(name=outlet1) // 区域 2
    ...
}

注意:一个 name= 后面只能声明一个边界或 Zone。

所取得的数据是体积流率还是质量流率取决于 phi 代表的是什么:如果 phi 代表的是体积流率,那么得到的值就是体积流率;如果 phi 代表的是质量流率,那么得到的值就是质量流率。

以上方法 OpenFOAM-5.x 以上适用。

感谢大佬,比个小心心:gift_heart:

1 Like

前辈你好,我做的模拟是一个回路,对某一个加一动量源让整个回路“流动”起来。由于是个回路,画好的网格导入OpenFOAM之后,想要用来监测体积流率的patch会被默认为interior,所以只能通过建立faceZone的方法了。我这几天查了一些资料,还是没弄明白该如何建立faceZone。使用topoSet建立cellZone有很多如boxToCell,cylinderToCell的方法,但是关于faceZone没有太多说明。望前辈赐教!!

可以用Paraview里面的Integrate Variables功能对所要截面的法向速度进行面积分,这个就是体积流率

谢谢你,我待会试一下。另外,我明白如何建立faceZone了。和建立cellZone差不多:

    {
        name    out_core_faceSet;
        type    faceSet;
        action  new;
        source  boxToFace;
        sourceInfo
        {
            box (1.1275 1 -1) (1.1275 1.1875 1);
        }
    }
    {
        name    out_core;
        type    faceZoneSet;
        action  new;
        source  setToFaceZone;
        sourceInfo
        {
            faceSet out_core_faceSet;
        }
    }

类似于建立一个厚度为0的cellZone。但是我遇到一个新问题,运行的时候会报错:

Starting time loop

surfaceFieldValue flowRateFaceZone(name=in_core):
    total faces  = 10
    total area   = 0.0166093597874


surfaceFieldValue flowRateFaceZone(name=out_core):
    total faces  = 11
    total area   = 0.0174592050353

[5] [6] 
[6] 
[6] --> FOAM FATAL IO ERROR: 
[6] faceZone is not in enumeration: 
2
(
all
cellZone
)

哪位大神可以帮忙解答以下吗?谢谢

我知道是什么原因了,我对这个面域求体积平均,想获得刚才建立的面in_core和out_core上的平均温度,但似乎是行不通的。才会出现下面的错误:

faceZone is not in enumeration:
2
(
all
cellZone
)

错误提示只能对all或者cellZone求体积平均

我看到应该是,建立 in_core 和 out_core 没成功。所以没有这些 faceZone.

前辈,faceZone建立成功了,在polyMesh中的faceZone文件可以查找到

Sorry, 看错了。in_core 和 out_core 都有面的信息,是 OK 的。后面还有其他面么?是不是有个以 faceZone 命名的 zone (区域)?

前辈你好,是的,如你所说,有

但是你的这个名叫 faceZone 的区域没有在库里面?能不能贴出 zone 的所有区域?