OF4中添加某个面的均值的计算
0.OF4 中添加计算某个面的平均速度等值的方法。
1 | patchAvgU |
Paraview中验证
在 ParaView 中计算某个平面的平均速度,通常分为截取平面、整合数据和计算平均三个步骤。
以下是标准的操作流程:
1. 截取目标平面 (Slice 或 Extract Block)
首先,你需要确定要计算哪里的平均速度:
- 如果是内部截面:点击工具栏的 Slice 按钮(切片),调整平面位置。
- 如果是边界(如 Outlet):在左侧 Pipeline Browser 选中你的
.foam文件,在 Properties 面板的 Mesh Regions 中只勾选outlet,或者使用 Extract Block 过滤器选中该边界。
2. 计算速度矢量的大小 (可选)
如果你想计算的是速度的大小(Scalar)而不是矢量(Vector)的分量平均值:
- 选中 Slice 或边界,点击 Calculator 过滤器。
- 在 Result Array Name 输入
magU。 - 在表达式框输入
mag(U)。 - 点击 Apply。
3. 使用整合过滤器 (Integrate Variables)
这是最关键的一步,用于计算面积分:
- 选中你的 Slice(或刚才的 Calculator)。
- 点击菜单栏 Filters -> Alphabetical -> Integrate Variables。
- 点击 Apply。
- 此时会弹出一个表格(SpreadSheet View)。
4. 计算最终平均值
在弹出的表格中,你会看到很多数据。请按以下公式换算:
| 目标值 | 表格中的列名 | 计算方法 |
|---|---|---|
| 总面积 | Area |
直接读取该列的值 |
| 面平均速度 (矢量分量) | U |
$\text{Average } U_y = \frac{\text{表格中的 } U_y}{\text{Area}}$ |
| 面平均速率 (标量大小) | magU |
$\text{Average Speed} = \frac{\text{表格中的 } magU}{\text{Area}}$ |
注意:
Integrate Variables实际上计算的是 $\int U , dA$。为了得到平均值 $\bar{U} = \frac{\int U , dA}{\int dA}$,你必须手动用结果除以面积Area。
进阶技巧:直接在 ParaView 里显示结果
如果你不想手动除以面积,可以使用 Python Calculator:
- 选中 Slice。
- 添加 Python Calculator 过滤器。
- 在 Expression 框输入:
sum(U)/sum(Area)(计算矢量平均)或sum(mag(U))/sum(Area)(计算标量平均)。 - Array Association 选择
Row Data。 - 点击 Apply,结果会直接显示在表格里。
对比建议:
你之前通过 OpenFOAM controlDict 得到的 areaAverage(U) 是最准确的,因为它直接利用了求解器的原始离散格式。ParaView 的计算结果可能会因为插值(Slice 时的插值)产生微小的数值差异。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Sui's Blog!
评论