翻译自: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。

aylalisa

大家好

最后可能最愚蠢的问题来了。

我已经不止一次阅读了讨论,但是我仍然没有明白这些不同求解器的用法。

谁能根据实际情况给我解释一下这些求解器的优点/缺点?

加入这里有一个管流(L > 5000mm, W =250mm, H =
20mm,工质是水,原点位于管道中间)...

  1. 在入口为小雷诺数(100-200),没有障碍物(比如棒或者方块)在管道的中间。
  2. 在入口为小雷诺数(100-200),有障碍物(比如具有侧边20mm的方块)在管道的中间。
  3. 在入口为大雷诺数(>3000),没有障碍物在管道的中间。
  4. 在入口为大雷诺数(>3000),有障碍物(比如具有侧边20mm的方块)在管道的中间。

对于这些算例你们会采用哪种求解器?为什么?

如果为了向我展示一个特定求解器的有点,你也可以改变其中一个算例的物理设置。

先感谢了!

Aylalisa

akidess

如果你的障碍物没有任何运动,那么对于你对求解器的选择不会有任何影响。我认为你可以使用pimpleFoam求解器解决所有的算例。你也可以通过使用simpleFoam求解器设置大时间步长(从而节约一些计算时间)解决高雷诺数的算例。

Aylalisa:

什么样的流动使你分别选择pisoFoam求解器和icoFoam求解器?

Djub:

icoFoam求解器是针对层流的,而pisoFoam可以处理湍流。

pimpleFoam求解器 vs simpleFoam求解器 vs pisoFoam求解器 vs icoFoam的更多相关文章

  1. 感知器、逻辑回归和SVM的求解

    这篇文章将介绍感知器.逻辑回归的求解和SVM的部分求解,包含部分的证明.本文章涉及的一些基础知识,已经在<梯度下降.牛顿法和拉格朗日对偶性>中指出,而这里要解决的问题,来自<从感知器 ...

  2. Android设备管理器漏洞2--禁止用户取消激活设备管理器

    2013年6月,俄罗斯安全厂商卡巴斯基发现了史上最强手机木马-Obad.A.该木马利用了一个未知的Android设备管理器漏洞(ANDROID-9067882),已激活设备管理器权限的手机木马利用该漏 ...

  3. 理解Python中的装饰器//这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档

    转自:http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档 ...

  4. 解决Windows资源管理器右键菜单打开EditPlus容易导致资源管理器无响应问题

    这个问题确实很烦人,经常导致 资源管理器无响应,关闭后整个资源管理器彻底崩溃,原因未知.本着折腾和强迫症精神,这个问题一定要解决.方法如下: 1.不要用EditPlus自带的添加到系统右键菜单选项. ...

  5. Flume自定义拦截器(Interceptors)或自带拦截器时的一些经验技巧总结(图文详解)

    不多说,直接上干货! 一.自定义拦截器类型必须是:类全名$内部类名,其实就是内部类名称 如:zhouls.bigdata.MySearchAndReplaceInterceptor$Builder 二 ...

  6. Python编程系列---Python中装饰器的几种形式及万能装饰器

    根据函数是否传参  是否有返回值 ,可以分析出装饰器的四种形式: 形式一:无参无返回值 def outer(func): def wrapper(): print("装饰器功能1" ...

  7. python 装饰器(六):装饰器实例(三)内置装饰器

    内置的装饰器和普通的装饰器原理是一样的,只不过返回的不是函数,而是类对象,所以更难理解一些. @property 在了解这个装饰器前,你需要知道在不使用装饰器怎么写一个属性. def getx(sel ...

  8. WEB页面采集器编写经验之一:静态页面采集器

    严格意义来说,采集器和爬虫不是一回事:采集器是对特定结构的数据来源进行解析.结构化,将所需的数据从中提取出来:而爬虫的主要目标更多的是页面里的链接和页面的TITLE. 采集器也写过不少了,随便写一点经 ...

  9. Swift版音乐播放器(简化版),swift音乐播放器

    这几天闲着也是闲着,学习一下Swift的,于是到开源社区Download了个OC版的音乐播放器,练练手,在这里发扬开源精神, 希望对大家有帮助! 这个DEMO里,使用到了 AudioPlayer(对音 ...

随机推荐

  1. Python Web 程序使用 uWSGI 部署

    Python Web 程序使用 uWSGI 部署 WSGI是什么? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway ...

  2. jQuery遍历(2)

    上期我们讲了遍历的祖先和后代的问题,现在我们讲讲遍历同胞 同胞拥有相同的父元素. 通过 jQuery,您能够在 DOM 树中遍历元素的同胞元素. jQuery siblings() 方法 siblin ...

  3. 易优cms后台RCE以及任意文件上传漏洞

    前言 EyouCms是基于TP5.0框架为核心开发的免费+开源的企业内容管理系统,专注企业建站用户需求提供海量各行业模板,降低中小企业网站建设.网络营销成本,致力于打造用户舒适的建站体验.易优cms ...

  4. C++——Inheritence

    一种错误的观念: 子类继承父类,只把父类的公有成员继承下来,私有的不会继承. 事实上无论是如何继承,都会把父类的所有成员继承下来. #include<iostream> using nam ...

  5. Python Django开发遇到的坑(版本不匹配)

    这个问题 进入django 后台, 添加,修改都不可以,只有删除可以,那么百分之百是这个问题 对照一下,是你的django 版本低了还是 python版本高了,对照的话就没问题了 这个坑,弄了两天啊! ...

  6. Luogu P5020 货币系统

    Luogu P5020 货币系统 先把$a$数组排一下序. 从最小的数开始选,显然最小这个数必须选,然后利用完全背包的思想,从$a_i$到最大值筛选一遍,将可以组成的打上标记. 在判断后面的数字时,如 ...

  7. Codeforces Round 582

    Codeforces Round 582 这次比赛看着是Div.3就打了,没想到还是被虐了,并再次orz各位AK的大神-- A. Chips Moving 签到题.(然而签到题我还调了20min--) ...

  8. 《TheOne团队》团队作业三:团队项目原型设计与开发

    项目 内容 作业所属课程 http://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/10761596.h ...

  9. 0、Python学习路线

    阶段一.Python语言(熟练掌握Python多线程并发编程技术,可以编写爬虫程序和语音识别软件.) 1.1 基础语法 1.1.1 python概述     1.1.2 数据的存储     1.1.3 ...

  10. Web前端 --- BOM和DOM

    目录 前端基础之BOM和DOM BOM DOM 前端基础之BOM和DOM BOM是指浏览器对象模型,他使JavaScript有能力与浏览器进行对话 DOM是指文档对象模型,通过它,可以访问HTML文档 ...