pimpleFoam求解器 vs simpleFoam求解器 vs pisoFoam求解器 vs icoFoam
翻译自:CFD-online
帖子地址:http://www.cfd-online.com/Forums/openfoam-solving/68072-pimplefoam-vs-simplefoam-vs-pisofoam-vs-icofoam.html
phisieh2005:
大家好,
谁能给我解释一下pimpleFoam,simpleFoam,pisoFoam和icoFoam求解器之间的区别吗?
以及在什么情况下选择对应的求解器?
感谢!
ata:
你好
icoFoam是计算不可压缩牛顿流体层流流动的瞬态求解器
pimpleFoam是采用PIMPLE算法(混合PISO-SIMPLE算法)计算大时间步长瞬态不可压缩流。
pisoFoam是计算可压缩流动的瞬态求解器
湍流模型是通用的,例如:层流,雷诺平均或者大涡模拟
simpleFoam是用来求解稳态可压缩湍流流动的
祝好
Ata
David:
simpleFoam是针对不可压湍流
ata:
你好,David
非常感谢,你是正确的
祝好
Ata
Kjetil:
大涡模拟可以采用simpleFoam求解器吗?
florian_krause:
你好,
simpleFoam是一个稳态求解器,正如ata已经提到的...
因此,你不能使用simpleFoam求解器进行大涡模拟,而应该用pisoFoam求解器代替
祝好
Florian
Nileshjrane:
大家好
我在使用icoFoam和simpleFoam求解器计算一个相同算例的时候得到了不同的结果。icoFoam的计算结果似乎更好。可能的原因是什么?难道不应该两个求解器给出相近的结果吗?我使用的是OpenFOAM170默认求解器,我仅改变了离散格式参数字典文件fvSchemes里面速度的离散格式为迎风格式(至少这个格式是应用在simpleFoam求解器里面的)
Djub:
大家好!
我也有相同疑问:pisoFoam求解器比起pimpleFoam求解器如何?
我尝试模拟风与建筑物之间的相互作用:我的模拟是非定常,不可压,大雷诺数并且有复杂几何。我应该用pisoFoam求解器还是pimpleFoam求解器?为什么呢?Nilesh,在你的算例当中,icoFoam求解器应用于非定常层流,然而simpleFoam求解器对针对湍流的.方程是不一样的!
我想人们比起pisoFoam求解器更愿意选择pimpleFoam求解器(http://www.symscape.com/node/948)。但是相比于他们运行雷诺平均,我更喜欢使用大涡模拟。能给一些建议或者说明吗?
Owayz:
使用大涡模拟或者雷诺平均都不是问题。喜欢使用pimpleFoam求解器的人认为pimple算法更加鲁棒和有效。他们还认为pimple算法可以采用大步长(比较piso算法,piso算法当库朗数大于1时会导致发散)。如果对大步长感兴趣的话(在某些sudo瞬态算例当中),pimple算法当然是很有吸引力的算法。你说你想做大涡模拟。在大涡模拟时,你需要考虑时间尺度并且你必须保证你的时间步长比你实际模拟的大涡时间尺度小。
我观察到人们通常保证库朗数小于0.5-0.4。Pimple算法通过提供
nOuterIterations参数给你更多的可控性。如果你的nOuterIterations等于1,那么你是用pimple算法就相当于使用piso算法。当然增加额外的计算机开销用于更多的外迭代可以提升你的结果,但是很多时候是否需要进一步提升你的结果是一个很重要的决定。
祝好
Awais
Djub:
你好,Awais。非常感谢你的建议。但是我没有掌握任何事情。
"在某些sudo瞬态算例时"。"sudo"是什么意思?
我的目标是模拟非常大雷诺数的问题:大概在1e-5或者1e-6。因此,一直保证低库朗数会超过我的计算机能力范围。今天,我在库朗数接近1的情况下运行。以库朗数为5和nOuterIterations为1运行Tjunction案例。因此这个案例实际上是使用的piso算法?
我觉得使用库朗数为5(比如这个案例)和nOuterIterations为1(不仅使用了piso算法而且使用了真的pimple算法)。你是否认为是这样?
其他方面:我对"final"求解器的概念不是很熟悉。目前(原贴为For the momment,疑为:for
the moment),我使用的还是"通常的"那一个:
Quote:
p {solver
PCG; preconditioner DIC; tolerance 1e-06; relTol 0.1;
}
pFinal {
solver PCG; preconditioner DIC; tolerance 1e-06; relTol 0;
}
"(U|k)" {
solver PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0;
}
"(U|k)Final" { solver
PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0;
}
这样可以吗?或者这样是没有意义的?或者这样只是浪费CPU?
Owayz:
你好 Julien
对于Sudo
Transient(伪瞬态),我的意思是物理现象是稳态的,你是用像pimpleFoam这样的瞬态求解器去求解。想要看具体操作,你也可以看一下rhoPimpleFoam/ras目录下的angleDuct案例。这个案例的库朗数为10.
但是如果你使用大涡模拟,你需要时间平均的解。在该流动结构中的脉冲时间尺度也是很重要的。
如果你要做雷诺平均模拟的话,你就需要按照你刚才说的那样去设置(比如库朗数为5,nouterIteration为1)。,但是在瞬态模拟中你可能对流场的平均值感兴趣,因此思考一下,在那个时间步长下能否捕捉到整个流场的波动。
我的理解是当你的流场是非常短暂比如绕流产生涡街,你应该保持库朗数小于1(特别的)。如果时间步长过大,我们可能会错失许多波动模式并且反映在我们的平均值上(或者花更多的时间去得到一个时间平均解)。
关于pFinal和Ufinal,我认为这些是对于最后在pimple算法循环方程当中的迭代严格的标准以便得到最好的数值敏感性。
祝好
Awais
Akidess:
Quote:
Originally Posted by
Djub View Post
"as in
some sudo transient cases" . What means "sudo" ?
小的旁注—他可能是想写'伪的'。
Owayz:
感谢指出这点
祝好
Awais
Djub:
大家好
我运行了一些Pimple的算例。它让我震惊!
对比一个运行的PISO算例,在fvsolution当中仅有的变化是关于nOuterIterations。在我的算例中,我令nOuterItreations等于2。你也可以选择final求解器,我假想为最后迭代。
但是PIMPLE允许允许在controlDict中使用adjustTimeStep yes。在这个算例中你可以直接控制CFL(入口最大库朗数)。我现在正以最大库朗数为10运行着!并且它是稳定的和真实的。当然也非常快!
在这个算例当中,你的时间步长不再是常数因此你可能更愿意用writeControl
adjustableRunTime(而不是timestep)。在这个算例中writeInterval是短时间。
Djub
Sdharmar:
如果你增加库朗数到大于1不会是问题吗?
Br,
Suranga.
Djub:
Pimple算法是一种隐式数值方法(参考https://en.wikipedia.org/wiki/Explicit_and_implicit_methods),你可以使用大于1的库朗数。对于显式方法,库朗数需要小于1(https://en.wikipedia.org/wiki/Courant–Friedrichs–Lewy_condition)。
顺便说一下,如owayz说的,我非常关心我正在进行的大涡模拟的时间尺度。
在我的算例中,当库朗数为10的时候,没有问题。不过,库朗数到了100,就崩溃掉了,同时,库朗数为50或者30时,计算结果不能令人满意。因此(在我的方柱绕流算例中,对涡脱落的估算)库朗数的限制范围为10到30。
大家好
最后可能最愚蠢的问题来了。
我已经不止一次阅读了讨论,但是我仍然没有明白这些不同求解器的用法。
谁能根据实际情况给我解释一下这些求解器的优点/缺点?
加入这里有一个管流(L > 5000mm, W =250mm, H =
20mm,工质是水,原点位于管道中间)...
- 在入口为小雷诺数(100-200),没有障碍物(比如棒或者方块)在管道的中间。
- 在入口为小雷诺数(100-200),有障碍物(比如具有侧边20mm的方块)在管道的中间。
- 在入口为大雷诺数(>3000),没有障碍物在管道的中间。
- 在入口为大雷诺数(>3000),有障碍物(比如具有侧边20mm的方块)在管道的中间。
对于这些算例你们会采用哪种求解器?为什么?
如果为了向我展示一个特定求解器的有点,你也可以改变其中一个算例的物理设置。
先感谢了!
Aylalisa
如果你的障碍物没有任何运动,那么对于你对求解器的选择不会有任何影响。我认为你可以使用pimpleFoam求解器解决所有的算例。你也可以通过使用simpleFoam求解器设置大时间步长(从而节约一些计算时间)解决高雷诺数的算例。
Aylalisa:
什么样的流动使你分别选择pisoFoam求解器和icoFoam求解器?
Djub:
icoFoam求解器是针对层流的,而pisoFoam可以处理湍流。
pimpleFoam求解器 vs simpleFoam求解器 vs pisoFoam求解器 vs icoFoam的更多相关文章
- 感知器、逻辑回归和SVM的求解
这篇文章将介绍感知器.逻辑回归的求解和SVM的部分求解,包含部分的证明.本文章涉及的一些基础知识,已经在<梯度下降.牛顿法和拉格朗日对偶性>中指出,而这里要解决的问题,来自<从感知器 ...
- Android设备管理器漏洞2--禁止用户取消激活设备管理器
2013年6月,俄罗斯安全厂商卡巴斯基发现了史上最强手机木马-Obad.A.该木马利用了一个未知的Android设备管理器漏洞(ANDROID-9067882),已激活设备管理器权限的手机木马利用该漏 ...
- 理解Python中的装饰器//这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档
转自:http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档 ...
- 解决Windows资源管理器右键菜单打开EditPlus容易导致资源管理器无响应问题
这个问题确实很烦人,经常导致 资源管理器无响应,关闭后整个资源管理器彻底崩溃,原因未知.本着折腾和强迫症精神,这个问题一定要解决.方法如下: 1.不要用EditPlus自带的添加到系统右键菜单选项. ...
- Flume自定义拦截器(Interceptors)或自带拦截器时的一些经验技巧总结(图文详解)
不多说,直接上干货! 一.自定义拦截器类型必须是:类全名$内部类名,其实就是内部类名称 如:zhouls.bigdata.MySearchAndReplaceInterceptor$Builder 二 ...
- Python编程系列---Python中装饰器的几种形式及万能装饰器
根据函数是否传参 是否有返回值 ,可以分析出装饰器的四种形式: 形式一:无参无返回值 def outer(func): def wrapper(): print("装饰器功能1" ...
- python 装饰器(六):装饰器实例(三)内置装饰器
内置的装饰器和普通的装饰器原理是一样的,只不过返回的不是函数,而是类对象,所以更难理解一些. @property 在了解这个装饰器前,你需要知道在不使用装饰器怎么写一个属性. def getx(sel ...
- WEB页面采集器编写经验之一:静态页面采集器
严格意义来说,采集器和爬虫不是一回事:采集器是对特定结构的数据来源进行解析.结构化,将所需的数据从中提取出来:而爬虫的主要目标更多的是页面里的链接和页面的TITLE. 采集器也写过不少了,随便写一点经 ...
- Swift版音乐播放器(简化版),swift音乐播放器
这几天闲着也是闲着,学习一下Swift的,于是到开源社区Download了个OC版的音乐播放器,练练手,在这里发扬开源精神, 希望对大家有帮助! 这个DEMO里,使用到了 AudioPlayer(对音 ...
随机推荐
- 3_PHP表达式_5_数据类型转换_类型强制转换
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP类型转换分为类型自动转换和类型强制转换. 3.5.2 类型强制转换 类型强制转换允许编程人员手动将变量的数据 ...
- Django Rest framework的限流实现流程
目录 一 什么是throttle 二 Django REST framework是如何实现throttle的 三 Django REST framework中throttle源码流程 一 什么是thr ...
- iOS - 回顾总结Runtime原理及使用
runtime简介 因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时.也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的 ...
- rem em min-width: 30em 的意思
30em=30rem=30x16px=480px @media only screen and (min-width:30 em){ }
- 预编译And作用域链
首先要理解什么是预编译: 预编译就是在JS执行前的一瞬间创建一个AO对象,这个创建AO的过程叫做预编译. console.log(a) var a = 1; function c(b){ b = 10 ...
- SVM-支持向量机总结
一.SVM简介 (一)Support Vector Machine 支持向量机(SVM:Support Vector Machine)是机器学习中常见的一种分类算法. 线性分类器,也可以叫做感知机,其 ...
- OpenStack kilo版(7) 部署dashboard
安装dashboard root@controller:~# apt-get install openstack-dashboard 配置 /etc/openstack-dashboard/loc ...
- 用js刷剑指offer(最小的K个数)
题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 牛客网链接 js代码 function GetLeastNumbe ...
- ES6 正则扩展
一.新增 flags 属性 ES6 为正则表达式新增了flags属性,会返回正则表达式的修饰符. // ES5 的 source 属性 // 返回正则表达式的正文 /abc/ig.source // ...
- 初识python中的68个内置函数
内置函数思维导图的链接: https://www.processon.com/view/link/5b72b805e4b08d3622ad8b48 面向对象和反射相关的后面补充