请教OpenFOAM获得某个面域(faceZone)的平均温度的方法
-
@东岳 老师,这个指令不行,因为我监测的不是边界(patch),而是自己构建的一个faceZone,是一个内部面。应该是目前OpenFOAM尚未有这个功能吧
-
@D-Benjamin 我觉得这个可以在paraview里面处理,先把这个面提出来,然后对这个面的温度进行积分就是了。我不知道这样子处理对不对@东岳
-
@mohui 你好,paraview确实可以截取一个面,然后进行积分,但是我发现一个问题:
当我想获得某个faceZone上面的流率,我分别采用functionObject和paraview的方法来做
functions的方法和结果如下:functions { #includeFunc flowRateFaceZone(name=in_core) … other function objects here … }
结果:
# Region type : faceZone in_core # Faces : 34 # Area : 1.844282222040e-02 # Time sum(phi) 1 1.923278992112e-05 2 4.681282016134e-05 …… 50000 6.288750194955e-02
下面是使用paraview截取该面,进行Filters --> Integrate variables的结果:
结果显示,面域大小(Area)0.0184428是一样的,但是所得的结果却不一样,一个是0.0628875,一个是0.0629128,搞不清哪种方法获得的流率才是正确的。
-
-
@东岳 老师,functionObject的求流率的方法是对面域通量phi求和,paraview是对面域求积分,哪个更能代表流率呢?
-
@D-Benjamin
没向你这么验证过,不过我更相信代码出来的标量,paraview显示的是矢量啊? -
@D-Benjamin 在 请教OpenFOAM获得某个面域(faceZone)的平均温度的方法 中说:
我想使用functions获得某个面域平均温度,于是自己写了如下代码:
surfaceFieldValue_out_core { type surfaceFieldValue; libs ("libfieldFunctionObjects.so"); log true; writeControl writeTime; writeFields true; regionType faceZone; name out_core; operation weightedAreaAverage; surfaceFormat foam; fields ( T ); }
然而,运行之后报错,如下所示:
[4] --> FOAM FATAL ERROR: [4] surfaceFieldValue surfaceFieldValue_in_core: faceZone(in_core): Unable to process internal faces for volume field T
似乎体积场的值不可以进行面域平均,这样的话,获得“面域平均”值该如何做到呢?望各位大佬不吝赐教,谢谢!
您好,请问您这个报错怎么解决的?我现在也是自己定义了一个内部面faceZone,我理解的这个报错是因为OF是有限体积法,物理量值都存在网格cell中心,导致取的内部面没有物理量值。