最近发现RapidCFD可支持OPENFOAM的GPU并行计算,因此想买个GPU云服务器测试下加速效果,求大佬分享相关测试算例。
沐风
帖子
-
-
最近阅读了Tobias书中关于pimple相关内容,其中其书中将pFinal 和uFinal松弛因子分别设置0.4和0.6,如图1所示,另外他给出了图2中的解释,请问大家这样设置合理嘛?我的理解是对于瞬态问题的模拟,nOuterCorrectors-1松弛因子设置小于1,最后final步松弛因子设置1.0保证求解稳定和时间推进
-
@李东岳 烦请东岳老师有空看下,期待您的回复。谢谢!
-
@李东岳 目前主要参考了rheoTool中已有的O-B模型sqrt重构代码进行F-P模型sqrt重构。已有O-B模型sqrt重构的变形张量输运方程为(https://www.sciencedirect.com/science/article/pii/S0377025711000504?via%3Dihub):
对应rheoTool中已经有代码为:
// Stress transport equation
fvSymmTensorMatrix bEqn
(
fvm::ddt(b_)
+ fvm::div(phi(), b_)
==
symm((b_&L) + (a & b_))
+ (0.5/lambda) * inv( b_.T() )
- fvm::Sp(0.5/lambda, b_)
);
bEqn.relax();
bEqn.solve();
考虑分子扩散项的F-P模型变形张量sqrt重构输运方程为:(https://www.sciencedirect.com/science/article/pii/S0377025711000504?via%3Dihub)(https://arxiv.org/ftp/arxiv/papers/2203/2203.09239.pdf)
对于F-P模型,为了保证tr(ckk)=tr(bTb) 有界,也就是tr(bTb)<L2,论文作者在每个时间步进前进行了如下处理:
图中2-9即为tr标量输运方程,但是对比2-7,作者2-9右边第一项忘写了tr符号,正确的tr输运方程应该为:
因此在rheotool的rheoFoam求解器下每个时间步进前植入了如下方程:
{
// Velocity gradient tensor
volTensorField L1 = fvc::grad(U);volTensorField j = (b.T() & b) & L1; fvScalarMatrix dEqn ( fvm::ddt(d) + fvm::div(phi, d) == (tr(twoSymm(j)) / L2) * Foam::exp(d) + ((3 + L2) / (lambda * L2)) * Foam::exp(d) - (1 / lambda) * Foam::exp(d) * Foam::exp(d) ); dEqn.relax(); dEqn.solve();
}
同时对于:
因此基于F-P模型的sqrt重构对称张量b输运方程为:
对应植入代码为:
fvSymmTensorMatrix bEqn
(
fvm::ddt(b)
+ fvm::div(phi, b)
==
symm((b&L) + (a & b))
+ (0.5/lambda) * inv( b.T() ) * (L2 /(L2-3))
- fvm::Sp((0.5/lambda) * (exp(d) / L2), b)
// - fvm::Sp(0.5/(lambda * (1-(tr(b.T() & b) / L2))), b)
+ fvm::laplacian(0.5 * k, b)
);bEqn.relax(); bEqn.solve();
-
-
@李东岳 链接的论文中在变形张量方程中考虑了分子扩散也就是变形张量方程中增加了拉普拉斯项,因此我在rheoTool基础上增加了这一项,用的F-P模型,变形张量输运方程中的sqrt重构。搞不懂小时间步长下为什么不步进发生流动,费解ing
-
最近在采用openFoam下的开源工具rheoTool模拟高Wi数下粘弹性流体upstream flow问题,主要对照这篇论文进行算法植入:https://arxiv.org/ftp/arxiv/papers/2203/2203.09239.pdf
但是运行瞬态case发现在小时间步长0.0001s下算例能稳定运行,但是发现算例无时间步进特征,一直保持稳态特征。将时间步长增加至0.001s时发现算例会短暂呈现论文中的upstream flow特征,但流动发展一会算例就会崩掉。
按理说小时间步长在保持运行稳定同时应该有步进特征才对,同时按照东岳大佬最近的推文,方程的松弛因子我都设置的1.0
solver和case均上传了,麻烦各位路过大佬看下给点建议,有偿也可以,谢谢!solver-case.zip -
最近在入门流体力学中的线性稳定性分析相关工作,我的理解是通过CFD计算获得的流场作为base flow,对N-S方程进行线性化,获得小扰动特征信息。目前在全网找到了一篇入门相关的文献:https://www.sciencedirect.com/science/article/pii/S1000936116300024
我现在的问题是论文中提到A是右侧线性化的N-S方程的雅克比矩阵(如图1所示),那么如何在openfoam中获得该雅克比矩阵?
同时通过查阅另外一篇文献,文献2(https://arxiv.org/abs/2111.07356)给出了矩阵A的相关表达式,如图2所示。
PS1:通过查阅cfdonline,目前没有发现openfoam中附加线性稳定性分析相关的toolbox,而Nek5000中有相关的后处理模块,但是有限体积法目前刚入门算熟练,实在不想转去谱元法,所以想在openfoam中解决这个问题。
PS2:希望东岳老师能给点suggestion,最好能赐几行codes@李东岳,另外看东岳老师最近公司在招人,说实话想问下收不收实习生呀,只要能学到技术就很满足!
-
最近看了个帖子:https://forum.cfdac.com/t/topic/190/2
发现这个帖子挺有趣的,想操作实现下。但是发现我下载的虚拟机dyfluid里的paraFoam的Filter里只有Calculator,没有Python Calculator。所以想问下大家如何调用Python Calculator,是版本问题还是需要单独配置呀 -
@Samuel-Tu 雷诺数400 入口速度1m/s 粘度0.00125 直径0.5 那个算例和对比论文已经发在下面了
-
大神们好,我按照别人论文想模拟一个差不多贴底的圆柱绕流,用的是icofoam,只是把downwall变成粘性底层改成noslip条件,不知道为什么我把圆柱周围网格和底层网格越加密,升力系数会变得很大对不上,阻力系数出现很多凸起不平! 算例链接和对比文献如下:链接:https://pan.baidu.com/s/1KMeXCWMSQIES7VshrJYhzg 提取码:gr0b
-
@东岳 初步判定可能是of2.3.1版本对应的mpi环境配置问题,当输入mpirun命令后会提示:It looks like opal_init failed for some reason; your parallel process is likely to abort. There are many reasons that a parallel process can fail during opal_init; some of which are due to configuration or environment problems. This failure appears to be an internal failure; here's some additional information (which may only be relevant to an Open MPI developer):
然后具体解决办法在摸索中 -
各位Foamer大家好,最近我在CFD-onlie上下载了fabian_roesler等人贡献的基于焓-多孔介质方法模拟熔化过程的并行计算solver(https://www.cfd-online.com/Forums/openfoam-solving/93620-melting-problem-looking-appropriate-solvers-7.html ),根据solver的中的内容,我配置了对应的case。发现采用该solver单核串行执行case没有问题,但是采用并行执行case时,会提示:shift: can't shift that many。我搞了很久也没找到解决方法,恳请各位大佬帮我看下问题出现的原因,不胜感激!
对应的solver和case在附件中,of版本用的是2.3.1 parallel-convMeltFoam.zip case.zip
-
@BlookCFD 谢谢,这个问题已解决,这个主要涉及到interFoam系列算法子循环求解相连续性方程并修正质量流率,可以将surfaceScalarField rhoPhi在循环外声明创建,但是循环内部每次循环初始值要赋0.
-
@东岳 经过昨天阅读输出主程序rhophi后的代码,发现这个rhophi声明并赋值为0的目的是为了在子循环求解相连续性方程并修正质量流率。东岳老师之前写的‘VOF 模型,interFoam 计算流程’提供了很好的参考。PS:发现提的三个问题好弱,吾辈还需多读书!
-
同学,你好。很高兴发现你也从事interPhaseChangeFoam求解器相关研究工作。我想问一下,在interPhaseChangeFoam求解器主程序中,在pimple.loop()每次循环中中为什么要声明创建surfaceScalarField rhoPhi场,这样做的目的是什么?
-
经过我的研究,第二个问题涉及到守恒和非守恒形式的动量方程转变,第三个问题中密度对时间的偏微分可以通过连续性方程转换到全微分中,以上两个问题均可以从东岳老师写的‘无痛苦N-S方程’中找到答案,现在就差第一个问题了
-
@东岳
-
各位Foamer大家好,我目前在尝试开发固相和液相密度不同时熔化/凝固问题的模拟(melting or solidification with density change)。基于这一问题,openfoam中可以参考的求解器有可压缩+传热的buoyantPimpleFoam求解器和openfoam-v版本中interCondensatingEvaporatingFoam求解器。buoyantPimpleFoam求解器中涉及到关于密度和压力的状态方程,关于该求解器中的thermo.rho我目前还不能理解。因此目前我主要关注同样和我问题相关的interCondensatingEvaporatingFoam求解器,关于该求解器,我有如下三点疑问:
- 为什么在求解器主程序中pimple.loop中每次循环中要新声明一个rhophi面标量场,我曾将该声明放到creatfields文件中,但发现程序运行结果存在不同;
- 为什么在速度方程中添加了fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), U)这一项,我看CFD-online中有人给出的解释为:这项是一stabilisation项,如果连续性方程满足该项为0,说实话对此我不是特别理解
- 为什么在构建interCondensatingEvaporatingFoam求解器在构建压力方程中,没有密度对时间偏导这一项,是基于以上问题1和问题2的处理,将密度对时间偏导这一项可以省略吗?而我看buoyantPimpleFoam求解器中有密度对时间偏导这一项。
最后,希望中文网的各位大佬指点迷津,All suggeations are appreciated!
-
同时对于大多数物质在熔化和凝固过程体积均会发生变化,即固相和液相密度不同,现在一方面参考东岳老师的buoyantPimpleFoam的解析,即需要植入密度求解方程,一方面参考文献:An Optimum Enthalpy Approach for Melting and Solidification with Volume Change。我在想如何在openfoam中植入这一过程,期待以后能跟东岳老师多学习交流~
-
首先感谢东岳老师给出的建议。经过一番比较后,发现数值离散格式(upwind VS quick)、液相与固相温差(Tl-Ts)果然会对固液相分界面的位置相对明显的影响。其中,对于纯金属镓的熔化模拟,尽可能选择较小的固液相温差,如0.025k。同时这也充分说明了搞CFD真的靠经验~ @东岳
-
各位Foamer大家好,很高兴获得中文网的邀请码和大家进行交流。 首先说下我的情况:我的课题是关于电场作用下相变材料熔化过程研究,前期课题在学校主要以实验为主。但受疫情影响,目前在家采用openfoam模拟电场力作用下流动传热问题。前期在看了有限体积法基本原理、压力速度耦合求解等策略后,目前能够在动量方程中植入电场力来模拟单相液体流动传热问题,处于入门进阶阶段。这个过程必须要感谢东岳老师在“东岳流体”官网上提供的基本求解器解析及其他素材,使我入门在openfoam入门过程少走了很多弯路,再次对东岳老师及提供的平台表示感谢。
言归正传,我目前在进行采用焓-多孔介质模型模拟恒定密度下纯物质熔化过程。目前我所知道的相变材料熔化过程能量方程可分为求解温度方程或求解焓方程。在求解温度的能量方程中,由于温度和液相分数存在非线性的耦合关系,Voller等人提出了对温度和液相分数进行迭代的方法(文献1:A General Enthalpy Method for Modeling Solidification Processes),目前openfoam中的fvoption/solidificationMeltingSource 应该基于这个原理;Fabian等人通过引入误差函数来构建液相分数和温度的关系(文献2:Shell-and-tube type latent heat thermal energy storage: numerical analysis and comparison with experiments),同时基于误差函数的求解方法及模拟相变材料熔化的求解器在cfd-online上也引起了广泛的讨论(https://www.cfd-online.com/Forums/openfoam-solving/93620-melting-problem-looking-appropriate-solvers-13.html#post652310)。
在通过求解焓方程方面,受到文献3(Physics of humping formation in laser powder bed fusion)的启发,我在openfoam中植入了求解焓的方程,其中基本控制方程见附图1
通过求解焓获得温度和液相分数。并采用开发的求解器模拟金属镓的熔化过程,其中镓选取和文献1相同的物性,得到的模拟结果中的总液相分数和文献1中的结果相差不大,其中文献1的数值模拟结果和实验进行过对比,其中文献1的结果总体相对可靠,经常当做benchmark,。但是附图2中的固液相分界面位置和文献1结果存在偏差,
也就是我得到的相界面上部较文献1落后,底部熔化快于文献1,对于出现该问题的原因我至今还没找到,因此特开此帖和大家进行交流讨论,最后附上我的solver和case,
热切希望大家能给出一些建议。PS:本帖文风略显正式,希望大家不要见怪哦~
-
仔细看了下确实不是一回事,尴尬ing。必须要下载下大佬开发的vscode-OpenFOAM试下效果,大佬加油~
-
良心好贴,感谢楼主的分享。之前看知乎用户“陈与论”(https://zhuanlan.zhihu.com/p/32798165) 发表过的帖子,帖子中通过向emacs编辑器中安装插件,实现关键字高亮、代码补全、自动跳转功能。当时按照他的办法做了尝试,emacs编辑器打开of中的代码确实看起来很舒服,但是emacs编辑器每次打开时应该需要联网,即使用梯子连接清华镜像网址打开也很慢(目前我在老家上网采用的手机热点,估计打开emacs编辑器启动慢也和我这边的网速有关系)。楼主如果感兴趣可以看下知乎链接原文,个人感觉如果将编辑器背景改为黑色,关键字高亮、代码自动补全、代码能够跳转、快速启动再好不过啦~
-
@Neeukan-Luyu 兄弟,先干一杯再搞nature和宾利
-
我和楼上的兄弟应该同是今天通过CFD界公众号留言注册的(当时借鉴了楼上兄弟的留言风格获得的邀请码),同时感谢楼上兄弟和东岳老师,祝东岳老师的自媒体蒸蒸日上。
求测试GPU算力的case
Tobias书中关于pimple的final松弛因子的设定
粘弹性流体高Wi数时间步长步进问题
粘弹性流体高Wi数时间步长步进问题
粘弹性流体高Wi数时间步长步进问题
粘弹性流体高Wi数时间步长步进问题
粘弹性流体高Wi数时间步长步进问题
如何获得线性化的N-S方程雅克比矩阵
请问在paraFoam中如何调用出Filter -> Python Calculator呀
代发:贴底圆柱绕流升力和阻力系数不正确
代发:贴底圆柱绕流升力和阻力系数不正确
执行并行计算出现:shift: can't shift that many错误提示
执行并行计算出现:shift: can't shift that many错误提示
带源项的相方程离散疑问
关于of-V中interCondensatingEvaporatingFoam处理密度疑问
带源项的相方程离散疑问
关于of-V中interCondensatingEvaporatingFoam处理密度疑问
关于of-V中interCondensatingEvaporatingFoam处理密度疑问
关于of-V中interCondensatingEvaporatingFoam处理密度疑问
采用焓-多孔介质方法模拟相变材料熔化过程交流讨论
采用焓-多孔介质方法模拟相变材料熔化过程交流讨论
采用焓-多孔介质方法模拟相变材料熔化过程交流讨论
首个OpenFOAM的VS Code插件公开发布
首个OpenFOAM的VS Code插件公开发布
首个OpenFOAM的VS Code插件公开发布
首个OpenFOAM的VS Code插件公开发布
CFD中文网 定位与规范
CFD中文网 定位与规范