1 背景

我的个人课题是基于interFoam的一些二次开发,然而我在使用自己的求解器进行模拟的时候往往会因为模拟参数配置的不合适导致这样或那样的一些问题。这些问题本质上是自己对interFoam进行模拟时的一些关键参数不太了解导致的。前几天看到一本资料上关于interFOAM的讲解,其中的拓展练习中包括一些不同模拟参数的对比,借此机会我就使用溃坝算例对一些典型参数对模拟的影响进行了实际的试算分析,也将之前积累的一些心得一同分享出来。

2 算例

二维溃坝算例,来自OpenFOAM7的自带的教程。将模拟参数延长为2s而已。

3 参数对比

3.1 压力边界条件?

固壁处的压力边界条件最常用的是零梯度边界条件,但是当求解器中植入了额外的体积力时(比如两相的表面张力和重力),零梯度边界条件会造成边界处的通量不守恒。OpenFOAM官方手册对fixedFluxPressure是这么描述的:

“At all wall boundaries, the fixedFluxPressure boundary condition is applied to the pressure field, which adjusts the pressure gradient so that the boundary flux matches the velocity boundary condition for solvers that include body forces such as gravity and surface tension.” Manual 2.3.2节

“In the above example, it can be seen that all the wall boundaries use a boundary condition named fixedFluxPressure. This boundary condition is used for pressure in situations where zeroGradient is generally used, but where body forces such as gravity and surface tension are present in the solution equations. The condition adjusts the gradient accordingly.” Manual 5.2.3节

在溃坝算例中,如果我们把fixedFluxPressure边界条件改为零梯度边界条件,那么其会直接由于初始通量不守恒无法开始运算,求解器会要求你使用potentialFoam对速度场进行初始化。然而由于溃坝算例没有进口类和出口类边界条件,因此其实质上无法进行初始化。对于有进口类和出口类边界条件(轴对称和周期性边界条件也算)的算例,此时使用零梯度边界条件是可以进行计算的,但是会造成较大的误差,在壁面附近可以观察到比较明显的误差区域。

3.2 相分数对流项的离散格式?

在默认的算例中,我们的想分数默认离散格式为:

    div(phi,alpha)  Gauss vanLeer;div(phirb,alpha) Gauss linear;

vanLeer是具有TVD性质的离散格式,一般来说其可以在解变化比较尖锐的区域也有较好的求解精度。在这里我们可以将其替换为一阶迎风格式,两个格式的计算结果对比如下:
upwind格式最大的缺点是其数值扩散过强,这点在结果中也有所体现:右侧图片中相界面外侧低相分数区域的尺寸upwinde格式要更大一些(动图看不清楚的同学可以自己模拟后一帧一帧对比看看)。

3.3 界面压缩因子?

界面压缩因子用来设置interFoam相分数方程中人工对流项的强度(详见李东岳老师的interFoam解析)。如果界面压缩因子c设为1则表示人工对流项完全起作用,对界面进行法向压缩。如果界面压缩因子c设为0,则表示界面压缩的人工对流项完全不起作用。在这里我们分别测试了c=0和c=1的两种情况:
可以看到,人工对流项不存在的时候界面附加出现了严重的数值扩散,界面变得非常“厚”。在坝体右侧区域甚至出现了相分数完全处于0与1之间的情况。

3.3 动量预测,非正交循环?

OpenFOAM手册中对动量预测开关的建议是多相流情况时关闭,溃坝算例中的默认设置也默认是关闭的。从个人理解来看,动量预测可以提高求解的稳定性,但是会增加计算资源的消耗。

手册对于非正交循环次数究竟应该设置为多少则比较暧昧。按照手册的说法,非正交循环是为了校正在压力泊松方程中由于网格非正交引起的面法向梯度计算误差,但其校正的原理究竟是什么我暂时不清楚。根据对代码的分析和实际测试表明,计算中一个时间步内总的压力修正方程求解次数等于设置的(非正交循环次数+1)×设置的压力泊松方程求解次数(nCorrectors),所谓非正交循环只是重复求解了一次压力泊松方程而已,这样的重复求解究竟如何实现非正交项的修正呢?另外,手册上建议在瞬态时将非正交修正次数设为1,稳态时将非正交修正次数设为0,但溃坝的瞬态算例却依然将非正交修正次数设置为0,这又是矛盾的。

根据我们的结果很难说明动量预测方程和非正交循环次数究竟应该设置为多少,或许各位读者可以使用其他比较好定量分析的算例对这个问题进行探究。根据我的经验,开启动量预测和增加非正交修正次数可以增强计算是稳定性(有时如果不开启非正交修正会导致计算误差累累积而导致错误结果),如果计算资源允许,可以开启这两个选项。

4 paraView后处理分析

本文在制作上面的动图时用到了paraview中的几个技巧:
绘制界面:
在二维的情况下,需要将counter滤镜的显示方式设置为Wireframe才可以与云图叠加显示。另外,还可以使用Threshold滤镜显示所有包含液体的区域:
添加标签:
添加时间标签:AnnotateTimeFilter滤镜
添加普通标签:Source菜单-Text

interFoam进行两相流模拟的一些典型参数设置对比paraview绘制相界面的方法相关推荐

  1. 台安变频器n2按键说明_台安变频器N2型号说明参数设置故障代码及故障解决方法...

    原标题:台安变频器N2型号说明参数设置故障代码及故障解决方法 台安变频器N2额定电压.功率范围: 220V单/三相(0.4KW-22KW) 380V三相(0.75KW-22KW) 台安变频器N2特点: ...

  2. 2016设置方框的尺寸_四种模板脚手架分类、优缺点及参数设置对比

    一.模板脚手架的分类及特点 模板脚手架按照连接形式,分为四类: ①钢管扣件式 ②碗扣式 ③承插型盘扣式 ④直插型盘扣式 钢管扣件式 规范JGJ130-2011<建筑施工扣件式钢管脚手架安全技术规 ...

  3. 博途v15模拟量转换_通过实例玩转博途之信号模块参数设置及模拟量输入转换举例...

    1.信号模块的地址分配 在硬件组态完成后,I.Q地址就自动分配好了,可以参见下图查看地址分配情况: 2.数字量输入点的参数设置 选中某一个通道,可以激活CPU和信号板上各输入点的上升沿或下降沿中断,以 ...

  4. 三菱FX5U系列PLC模拟量使用方法及相关参数设置

    三菱FX5U系列PLC模拟量使用方法及相关参数设置 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. FX5U系列PLC CPU本身自带2路模拟量输入 ...

  5. 三菱d700变频器模拟量控制_三菱变频器d700参数设置_三菱d700变频器代码故障_三菱d700接线图...

    三菱变频器是世界知名的变频器之一,由三菱电机株式会社生产,在世界各地占有率比较高.三菱变频器来到中国有20多年的历史,在国内市场上,三菱因为其稳定的质量,强大的品牌影响,有着相当广阔的市场,并已广泛应 ...

  6. 设置最大值_电机变频器参数设置不当会怎样

    我们知道变频器驱动电机运行是需要设置参数的,包括变频器运行控制模式如启动.停止,频率给定的命令来源,变频器频率的上下限.加减速等等参数都要根据实际情况来正确的设置. 控制模式与接线方式的不统一造成的, ...

  7. 【Java 网络编程】TCP 数据传输示例 ( 客户端参数设置 | 服务器端参数设置 | ByteBuffer 存放读取数据类型 )

    文章目录 I 客户端代码示例 II 服务器端代码示例 III 运行结果 I 客户端代码示例 import java.io.IOException; import java.io.InputStream ...

  8. 伺服电机常用参数设置_6个步骤教你如何快速调试伺服电机

    1.初始化参数 在接线之前,先初始化参数.在控制卡上:选好控制方式:将PID参数清零:让控制卡上电时默认使能信号关闭:将此状态保存,确保控制卡再次上电时即为此状态. 在伺服电机上:设置控制方式:设置使 ...

  9. 欧瑞变频器800参数设置_【收藏】变频器密码大全和维修常用方法!

    01西门子品牌 6SE70书本型变频器:设定密码打不开时,将P358和 P359中数据改为相同即可. 02ABB品牌 ACS600变频器:在16.03参数中输入密码"23032", ...

最新文章

  1. 学界 | DeepMind等机构提出「图网络」:面向关系推理
  2. c语言case后面多字符,多SWITCH-CASE结构时的C语言对象方式化解
  3. linux docker导入镜像,Docker镜像的导入和导出
  4. read cache_通过READ-BEHIND CACHE控制您的慢速生产者
  5. 微擎后端/知识付费阅读店铺小程序 V5.1.0 全套源码
  6. 移除单元格选中时的高亮显示状态
  7. 1024程序节|Android框架之一 BRVAH【BaseRecyclerViewAdapterHelper】使用demo
  8. html5制作叮当猫,HTML5 canvas画简单的叮当猫头
  9. python上机考试题库_易考吧-2021年无纸化考试专用全国计算机等级考试上机考试题库:二级Python(含二级公共基础知识)...
  10. Linux下根据关键字搜索最后一条日志
  11. JAVA#泛型'学习札记
  12. 滴滴顺风车女乘客遇害;华为法律应对澳 5G 禁令;苹果研发新背板技术|极客头条...
  13. 在利用PS进行绘画时,线条画不直怎么办?
  14. 微信朋友圈广告投放审核服务器,微信朋友圈广告位投放文案审核规范
  15. 数据结构-栈基本功能的实现
  16. 基于JavaSwing的雷电游戏(附论文)
  17. 月经周期28天健康日历表
  18. 基于BOM搭建的生产管理系统——物料清单
  19. 网页设计实验二( 格式化文本、段落与列表)
  20. 浅谈对Python的理解和优缺点

热门文章

  1. 严重人才短缺致以色列科技产业发展遭遇瓶颈
  2. 通付盾是谁?通付盾能做什么?在做什么?
  3. 施耐德PLC UNITY PRO XL 通过NOC模块与第三方硬件通讯
  4. 微信小程序开发培训-北京站
  5. 关于近期微信小游戏马甲过包的一点感悟
  6. 月刊#6 - 2021.8-12月信息源分享
  7. mcem r语言代码_R语言关于if语句missing value where TRUEFALSE needed的错误
  8. GMT绘制研究区示意图(图中图)
  9. 2019校园招聘 ——百度、京东、苏宁等产品经理面试经验总结
  10. SAS中删除数据集学习