@李东岳 谢谢!
Albert Lee
帖子
-
关于东岳流体网站塔式服务器算例测试时间的疑问 -
关于东岳流体网站塔式服务器算例测试时间的疑问关注到有关算力的问题。
在东岳老师网站(http://dyfluid.com/DMmodel.html)
上标了塔式CPU服务器,里头有链接2(https://mp.weixin.qq.com/s/iSHKGPrELWsg1PZiGjPt6g)
提到说不到4万元的机子算3000万网格耗时150-180s,见下面的截图:
但是在原网站上面也标注了时间:
那么,红色框出来的算例耗时,是这三台机子性能调优之后的结果?还是调优之前的?,都是64核在跑吗?是在什么平台上?也是算40步吗?
不管怎么说,里头DM24耗时达到429s,与第一个截图的结果还是相差甚远的。是不是哪里标注错了呢?
希望东岳老师能标注或者回复一下,谢谢!@李东岳 -
fluent VOF 和level set 耦合@lionel学fluent 你好,在命令窗口有,你上网搜一下,我已经好久没用这个了。不过据我当时的测试,加了heaviside之后,效果并不明显,所以其实可以不用开这条。
-
OpenFOAM中移动接触线问题(接触角)的边界条件设置@东岳 请问李老师您能帮忙看一下这个问题吗?之前也了解到您做了许多这方面的很好的工作。另外,我在openfoam里面试着对比了一下无滑移和自由滑移的速度边界条件,发现二者的差别非常小。
另外不知道openfoam里面是不是也按照式(2)的方式,通过接触角算出界面的法向量,以此来植入接触角边界的?鄙人目前还看不懂openfoam源码,只是简单的应用,惭愧。所以向您请教。 -
OpenFOAM中移动接触线问题(接触角)的边界条件设置大家好!这里有一个关于移动接触线问题的边界条件设置问题,需要向您各位请教。
在处理多相流移动接触线问题的时候,目前的理论给出的结论是移动接触线附近不能是无滑移边界条件(no-slip),因为这样在求解的过程中会产生奇异性。常见的做法是给定一个滑移速度:
\begin{equation}
u=\lambda \frac{\partial u}{\partial y}
\end{equation}
其中,$\lambda$是滑移长度,具有分子自由程尺度(纳米量级)。接触角的维持可以通过
\begin{equation}
\mathbf{n} = \mathbf{n}_w \cos \theta + \mathbf{n}_t \sin \theta
\end{equation}当我用OF模拟时,比如一个毛细管液体爬升问题,在管壁的边界条件设置的是no-slip条件,并给定了接触角值,用的是interfoam,模拟结果也符合物理事实。这个就有点奇怪!
我想请教一下:
(1)OF中在涉及到接触角/移动接触线问题的边界处理时,在接触线位置及其附近是否去掉了no-slip条件,而默认改为滑移边界条件?如果是,里面有没有滑移系数的设置?(我暂时没找到OF的说明文件,初学OF)或者是直接就采用滑移条件,$u_2 = u_1$ 这样子的?
(2)另一种可能的情况是,在所有的固壁边界上都默认去掉了no-slip条件,改为滑移边界条件?
因为不是自己编程,里面的具体情况不得而知,还请各位老师指点一下,或者能查到OF里面的说明也好。另外,若是自己编程的话,只需要在移动接触线附近采用(1)式所示的Navier-slip条件即可,其余固壁边界上仍可以采用no-slip边界条件。其实fluent里面也是这样,给no-slip条件仍然能计算得很好,不知道里面具体是怎么操作的。
Reference:
[1] SNOEIJER J H, ANDREOTTI B. Moving Contact Lines: Scales, Regimes, and Dynamical Transitions. Annual Review of Fluid Mechanics, 2013, 45(1): 269-292.
[2] SUI Y, DING H, SPELT P D M. Numerical Simulations of Flows with Moving Contact Lines. Annual Review of Fluid Mechanics, 2014, 46(1): 97-119. -
Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动@刘晓刚 我回复至你那个问题里面了。单个因素试着来,逐一排查,应该会找到原因的
-
Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动@刘晓刚 这个耦合了vof,即使你初始化levelset为0,后面计算会结合vof自动赋值的
-
fluent VOF 和level set 耦合交换一下主次相试试看,可以先不用Heaviside修正。fluent里面的这个修正感觉有时候效果反而不好
-
Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动@刘晓刚 直接全场给0或者1皆可,一个迭代之后自然会算出相应的levelset值。
-
interFoam求解器的液滴的奇怪现象(虚假速度?)@麦迪文 看了一下您这个模拟也是将热毛细力加到气液界面上了吧?我想请教一下udf里面是先用adjust求出梯度,用udm纪录后再在将热毛细力添加到动量源项里?我是算一个带有热毛细的液体晃动(不做液桥方向),感觉跟这里类似,所以请教一下您
-
interFoam求解器的液滴的奇怪现象(虚假速度?)@麦迪文 虚拟流动方面现在一些开源代码如Gerris等都已经做得很好了,貌似level set效果也好一些。时间充裕的话可以看看,但是对于自己的问题又可能不太适用,修改起来挺麻烦。
-
interFoam求解器的液滴的奇怪现象(虚假速度?)@麦迪文 我也是用vof方法,因为还有气相,所以热毛细力只能加在气液界面上。但是微重力条件下虚拟流动很厉害,跟热毛细速度在一个量级上,所以对结果准确性影响比较大
-
interFoam求解器的液滴的奇怪现象(虚假速度?)@麦迪文 您的热毛细力是加在边界吧?我是要加在计算域里头,所以有点麻烦,热毛细力的公式是$\mu \nabla u = \sigma_T \nabla T$吧?
-
interFoam求解器的液滴的奇怪现象(虚假速度?)@麦迪文 您好!我想在计算域里面的气液界面加热毛细条件的udf,不知道如何添加。请问您是怎么做的呢?方便给我一份您的热毛细udf参考一下吗?非常感谢您!我的邮箱是lijichengbitao@163.com
-
Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动@东岳 真的十分感谢!算例上传上来了,见附件。spuriousCurrentArc4-1.zip
-
Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动@yfclark 谢谢!我也试过了将计算域从原来的1cm x 1cm 扩大到1m x 1m,虚拟流动比原来的略有减小,但是没有量级上的变化。fluent中耦合level-set的方法只是用来计算相界面法向量和曲率,体积分数仍然由vof方法确定。
-
Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动@yfclark 这只是时间尺度的估计,能得到一个基本的数量级,具体问题的话还要看条件。在这种毛细力主导的流动中,该特征时间与毛细波的振荡频率相对应,至少保持在同一数量级。
-
Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动@东岳 谢谢东岳老师的回复!
如上图所示,我在这样的举行计算域里面(蓝色为液相,红色为气相,水),初始化的时候气相即为圆,没有重力及其他体积力,0速度场,0相对压力场。界面用CFS模型平衡。这样的话,理论上,计算一段时间之后,流场的速度应该为0(在数值收敛精度以下)。但是一开始算,界面上就会出现这种虚拟速度,速度适量如图所示。该结果实在确保网格无关、时间步长无关的情况下。(有关虚拟流动的研究已经有很多论文,检索 spurious/parasitic currents 即可)。而且,这种速度会导致界面变形,例如在本例中,无法维持为圆形。上图是FLuent 中VOF方法的0.1s计算结果。
以下是相同条件下中 interFoam的模拟结果结果前两幅图是0.1s的相分布和速度云图,后两幅是5s的相分布和速度云图。
可以看到,在0.1s时,由于虚拟流动的存在,圆形的气相区域已经变得有些“方”。在5s时气相直接跑到了一角。
这样比较下来,Fluent中利用PLIC方法捕捉的界面更准确一点。但影响还是很大。因此,我试图利用FLuent中的coupled level set 方法,其帮助文件里面有降到到我在前一问中提到的 density correction 和heaviside correction 。结果发现利用heaviside correction 方法抑制虚拟流动的效果和VOF方法相比差别不大。但是利用density correction效果就很好。
为了确保其准确性,我在上述的计算域中初始化气相区域时将圆形改为正方形,让它来通过计算恢复为圆形。在这一过程中,发现利用density correction计算时,气相区从方形到圆形恢复得特别慢。
我们知道,该过程为毛细力主导,特征时间是 $t=\sqrt{\rho_l R^3 / \sigma}$,在0.01s量级,二利用 density correction计算的结果在1s量级,显然不对。而用其他方法包括 heaviside correction 算的结果在时间量级上正确。
因此,我才在最初的问题中说“严重怀疑fluent中coupled level set 方法中的density-correction有误”。(模拟算例是改的Dam的那个例子,只改了计算域和相分布、物性)折腾了半天还没弄好打包的,Linux盲,请见谅。
在这里是想请教一下您/各位有没有这方面的经验、方法?面临毕业,自己编程序有点来不及。谢谢各位了。
-
Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动大家好!
最近利用VOF方法在做气液两相流模拟的时候遇到了虚拟流动(spurious/parasitic currents)的问题。该问题一般会在毛细力主导时才会出现,起因是界面张力与压力源项的不相容性以及界面曲率计算的不准确。因此尝试利用耦合Level-Set的方法。这里面fluent给出了两个抑制虚拟流动的选项:density-correction 和heaviside-correction。定义如下:
但是在分别利用这两个修正方式模拟时发现:利用density-correction方式消除虚拟流动的效果很好,能够比heaviside-correction方式小两个数量级。但是后续的验证却发现,施加density-correction之后,自由液面运动的特征时间(毛细时间)被放大了近两个数量级,这显然与事实不符。其实从这两个修正系数的定义上也可以看出二者的区别不是很大。但是在抑制虚拟流动时却产生了很大的差别。后续也试着利用openfoam中的来模拟,发现虚拟流动比fluent中vof的结果更严重。其原因可能是fluent中采用了PLIC的界面重构方式。
我用来验证虚拟流动的模型是:2D方形计算域,里面填充了一圆形气相区域来验证虚拟流速大小,里面填充一个小方形气相区来验证特征时间。整场无重力(相当于计算域内只有表面张力源项)。介质为水和空气。
一般文献中有一个虚拟速度大小的估计值:$u_s ~ 0.01 \sigma/\mu$ 。以水为例,虚拟速度可以达到0.7m/s的量级,对模拟结果会有很大的影响。
因此,严重怀疑fluent中coupled level set 方法中的density-correction有误。不知道是否有同行遇到过这个问题,有没有什么解决办法?或者抑制虚拟流动的办法(完全自编程序的除外)?另:请问怎么在udf中读取level set函数的值?fluent帮助文件里面似乎没有给出。像VOF值的话,有C_VOF(c,t)。
谢谢各位的耐心阅读,请不吝赐教。我的邮箱是 lijichengbitao@163.com , 微信号 838601714。若方便的话,也可相互交流。
-
利用VOF方法模拟气液两相传热传质问题,热传导过程出现非物理的虚拟流动大家好!
我在做一个胶囊罐状的贮箱内的气液两相传热传质问题的模拟,具体case是这样的,罐子里面充了75%的液体,气相是蒸气,环境条件是微重力条件(实际上重力源相设置为0),在罐子的边壁上加了一个温度的边界条件,该温度高于液体工质的饱和温度。模型为:二维轴对称模型。初始条件是气枕(气团)区处于罐子中间位置,初始压力为101325Pa,温度为饱和温度,整个流场速度为0。想模拟一下热量传递到罐子里面的相变、气液界面的形状变化以及里面的压力、速度场的变化情况。所用的软件为fluent17.2. 现在遇到的问题是:
(1)先不加相变条件,光看传热过程,在模拟一段时间后,出现如图2的情况。真实的物理情况应该是壁面(圆柱段)温度向里均匀传递,但计算过程中出现了较强的对流(初始条件速度场为零,该过程中出现的速度为虚拟速度?),导致了温度传递的反常。请问这种情况如何抑制(虚拟流动)?(2)与此同时进行的是,添加相变模型(fluent中的evaporation-condensation模型),得到了如图3的结果,温度场的分布更加混乱,并且在液相中出现了气相颗粒,如图4(结果显然不合理)。不知道这情况该如何处理?
综上,我想请教的是:
(1)vof方法中的这种虚拟流动该如何消除?有什么办法能提高fluent中表面张力源相计算的精度?
(2)这种不合理的结果是否是2D模型造成的?改为3D模型是否会好些?
(3)相变模型是否合理?有什么需要注意的地方?
(4)还有其他我没有考虑到的地方,还请不吝指出!请各位老师不吝指教,帮我解疑答惑。不胜感激!