你要求的是标量phi对吧,它收敛了么?
我是建议把源项去掉,只保留对流、扩散和时间项,看看标量的输运是否合理。
印象中Fluent不会对uds做什么限制,它也不好限制,因为它不清楚要加的标量是什么量级。
你要求的是标量phi对吧,它收敛了么?
我是建议把源项去掉,只保留对流、扩散和时间项,看看标量的输运是否合理。
印象中Fluent不会对uds做什么限制,它也不好限制,因为它不清楚要加的标量是什么量级。
@lyc https://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2018/WillHay/lowMachBuoyantPimpleFoam_Corrected.pdf
不是论文,是他们学校的课程作业,Chalmers有专门的OpenFOAM课
大佬们,还在等一个回复呢
全文来源:https://doi.org/10.1016/j.jweia.2017.10.003
friction velocity都比较熟悉,是壁面处速度无量纲化的一个基本参数,和壁面的切应力相关。有了它,就有了速度沿壁面法向的分布,十分重要。这个量,实验可以测量,仿真的时候也比较好给。
friction temperature我个人就不是很理解了,传热这块也没这个东西吧,搜了下也没搜到比较系统的解释。虽然看起来是照着摩擦速度构建的一个量,但物理意义是啥?实验可以测量么?
@Li_CFD 我感觉这些才是很深的东西,学习学习
@李东岳 没用libtorch,是自己做了CFD的后处理,然后再用机器学习训练。我这边一般只关注风速和湍流强度,我们仅仅导出了这两个变量的全场分布,训练,然后用于其他地形下的这两个变量的预测。所以我说这个只能算个尝试,非常非常非常浅,也很应用。
很粗浅的尝试,大概10套左右吧,是这个量级。有点久远已经不记得了- -
贡献点我们非常初级的尝试,主要还是希望这个帖子别沉了。机器学习挺重要,真的很有用,就当抛砖引玉吧。
1、我们是做的这种,但这应该是比较低级的应用场景,不解决太多实质问题。
为什么这么说?我们放了几个风流模拟出来的结果进行训练,然后给一个新的地形可以出一个结果。但这个结果用一个新的CFD也可以算出来,更重要的是:用于训练的CFD结果不一定是对的,这个不对的程度不清楚是否会被机器学习的过程放大;训练所消耗的算力相比于单个CFD来说是量级的放大,工程应用上真说不好谁更有性价比。
我看过不少其他人做的CFD+机器学习,更多的是效率提升(也可能我更关注这部分)。比如涉及到非牛顿流体的,可以加速粘性和切变在求解中需要的迭代;涉及燃烧的,因为化学反应只在很薄的物理空间上进行,传统的并行方式会导致大部分CPU总是在等待少部分CPU的结果,机器学习可以优化。
当然了还有基于CFD结果进行优化设计的,这部分有很多和机器学习相关的工作,应用也很广泛。还有间接相关的,比如采用机器学习做风速的垂直外推,然后送到CFD里面再做风流模拟。
2、没做过,但这个应该也可以。
3、我觉得这个不是哦,其实机器学习怎么和CFD结合还不清楚呢,看需求和应用场景。
4、是的,要跑很多次CFD,所以算力消耗很大。
其实主要还是自己要真懂,至少懂公式推导的逻辑是否科学,是否合理。
真懂了,就不会有什么国内国外的区分。往往一知半解或不懂的,才要学所谓的权威(比如学术上的权威,视高IF期刊为“神”;又比如名气上的权威,视国内挂着好多title的学阀为“神”;当然还有其他的“神”)。
大白话就是,不要看ta是谁,屁股坐在哪里,而是看ta做了什么。
我的体验是这个模型在OF里面贼不好用,特别容易发散。
商软那边好很多,感觉就是算法植入层面不太一样。
给你一个搜各种书的网站,需要外网。一直用,从不令人失望。
@ZJOU-zh 感谢
我也想知道,这个系泊是怎么实现数值计算的,是openfoam引入开源库么?
@李东岳 我赞同在条件允许的情况下,不管什么模型算出来的结果和同等条件下的实验结果必须一致,但是这个前提是条件允许。
这里就有些争议,比如LES和RANS,它们求解的量严格来说是不一样的,LES求解的是滤波后的速度,RANS求解的是时均后的速度,这两个东西本身不一样。我个人理解,严格意义只有当这个湍流是稳定(stationary)、各向同性(isotropic)的情况下,才能直接拿来对比。(以上表述大概率不对,还请大佬指点)
这也是我为什么始终对URANS存疑的根源,也是为啥我特别想搞清楚这些理论区别到底在哪里
@李东岳 URANS我目前还没尝试过,没有具体的例子可以讨论。LES时均后和RANS结果的一致性,是要分情况的。稍微复杂点的时候,LES的时均结果RANS很难算出来。
一个典型情况就是旋流。流体从喷管旋转喷射出来后,由于旋流会导致下游轴线上有负压区,是很典型的现象。这种情况,RANS不太好算,需要尝试不同的模型或者调参,对不同的工况几乎很难用同一套RANS模型和参数成功的仿真,但LES的时均结果很容易就能算出来负压区的存在。
方程上特别是到代码上,区别确实很小,这点想想挺神奇的。
@李东岳 李老师,怎么理解URANS,或者说怎么看待URANS出来的结果?
RANS的理论基础是求解长时间的平均场,这个“长时间”按道理要超过这个物理问题本身的时间尺度才对。这意味着在仿真的时候我需要对这个物理问题的时间尺度有大致的估算,否则出来的结果可能不太对,或者说对结果的解释应该更加小心一些。
VLES我先找几篇综述看看。
@falltime 那就是说还有别的Hybrid RANS/LES方法对吧?另外还有一点,为什么是“类似LES”,不是真正的LES求解?
准备研究下湍流模型,发现除了RANS和LES之外多出来的这些东西都不甚理解,特别是它们开发的背景和物理含义,有没有大佬能讲解下?
对URANS我个人是存疑的,因为RANS是时均,总觉得URANS不是特别靠谱。但是,很多文章在做URANS,也很成功。看到一种说法是这个方式的正确应用取决于所研究物理现象的本质,主要是涡的时间尺度。
对DES和VLES,看了一些文章,大致意思是都属于为了避免LES太过耗费资源而搞出来的折中方法,因此其正确应用都有一些限制。
希望有大佬能不吝赐教,这几种湍流模拟方式本质的区别到底是什么?
@cccrrryyy 我再三确认过,因为我自己也觉得有点神奇了。
我觉得保持总核数128不变的,和我之前测的那些差不多。多节点并行就是很快,节点独占的情况下相当于用4台机器的性能(L3缓存什么的)去支撑这个计算。
所以保持总核数不变,和保持单节点的核数不变,有什么区别呀?从性价比来说,如果一定要节点独占,很明显我应该用4节点512核,更快,单价和4节点128核一样。
@李东岳 7H12那个,重新测了下:
1节点 128核 7312s
2节点 256核 3237s
4节点 512核 1334s
@李东岳 不是,总核数都是128核。这种测试应该是保持核数不变还是单节点核数不变?
你说的这种我再测测。
@李东岳 测了下7H12那个,都是节点独占:
1节点128核 7312s
2节点128核 3372s
4节点128核 1811s
这个加速效果可以啊
@李东岳 调度系统应该有命令可以实现这个,不过这个和我们的实际应用场景不符合的。我测测不同节点数情况下的加速比看看,对这个也听感兴趣的。
@李东岳 我看李老师你列的几个主要是单节点的速度。多节点的话,是不是需要保证没有其他作业,就是节点独占?
@李东岳 2006也是一顿加version哈哈,我这边两款测的结果(2000步):
EPYC 7H12 1节点128核 7312s
EPYC 7532 1节点64核 7576s
还有个7543的,据说是比7532快一点,有空我也试试看看。
@李东岳 好,那我抽空跑个2006的试试。
@李东岳 给忘了- -我现在用的是2.3.1,6,和2006。这三个版本李老师有兴趣么?我下周跑几个看看
@leilei ls试了下和在外面是一样的,pwd看了下是我进singularity之前的路径。不方便贴图上来,还请见谅哈。
@heike256 主要看使用场景。我们是一个系统后台接了好几个集群,部署甚至说运维方便这个优势就被无限放大。
歪个楼。想做真正的弹性计算,但云厂商的价格又很高,尤其数据上传下载也收费。如果纯用各家HPC,想实现弹性计算,有没有好的解决方案?
@leilei 我大概理解了。我们有个搞法是用的Singularity,打包了一些OF+python库,搞成一个镜像文件(.sif)。
后面移植的时候,只要有对应版本的Singularity,只需要把镜像文件拷过去就可以调用,在不同的集群上都试过。
@leilei 这个“工作区”怎么理解,是给你分配的存储么?
@zhangjintao 地形网格么,强推cfmesh
@leilei 集群上安装OF还可以吧,不影响其他东西。集群肯定是给你一个最基础版本的OF,你只管调用它的库或者求解器,任何自己编译的东西,不管和OF有没有关系都和基础的这个OF不相关。
这样就不用docker了,总感觉搞了docker会有点麻烦。
@白猫紧张 感谢了,我学习下。感觉我们最终也得走上自己开发的道路,边界层的处理基本是几何建模和网格的最后一个难关了。
@白猫紧张 多边界层功能怎么理解?
我现在碰到的问题是,边界层是在已经生成好的第一层网格内向内生长的,导致边界层网格和第二层网格之间尺寸有很大的变化,没办法做到平滑过渡。
另外,第一层网格内,边界层的总厚度好像被限制了,最大只能是0.4倍的网格高度。我尝试过修改这个值,但没生效
@白猫紧张 这个是基于cfmesh商业版做的么?我之前找他们询过价,好贵好贵- -
@李东岳 可以啊,有空我也试试看。不知道低版本的FOAM行不行。
@李东岳 李老师,这个和scotch有明显差异么?
@疏影横斜水清浅 失败是指发散么,可能和其他的边界条件给法有关,压力和湍流啥的。
@疏影横斜水清浅 一般来说肯定是正常的,不然风机不会立在山顶上(更高的台阶)。
模拟又是另外一回事了。理论上来说,上边界设置为slip的条件应该是高度方向足够大,不然上边界肯定会有质量流出的,感觉设成inletOutlet这种是不是更合适些?
@李东岳 Fluent对用户来说其实都没有并行、分区、合并这种概念。印象很深,我刚转到OpenFOAM的时候才“发现”原来并行计算之前是需要分区的,自然分完区后也是需要合并的。虽然这个过程在我知道了之后很符合直觉,也慢慢习惯,但不得不说这方面Fluent做的真的很好。计算前设置好并行数量,跑完算例之后直接在GUI上看云图,流畅的一比。
我记得Fluent用的是Metis,好像本来是开源的后来商业化了?会不会跟它有关,商业化的东西在用户体验这块肯定是好的。
@bleach2012 这两个链接现在都,失效了
@leilei 在这里都是讨论哈,不需要这么客气的~
这个体积不是指某个具体数值,就是指某个网格(cell),类似于有限元的那个“元”。
如果你没有显性的去定义使用某个filter,就是李老师提到的explicit filter,那么你用的就是隐性filter,implicit filter。这种情况下,同一个case里面网格如果有变化,那filter体积就是在变化的。
你最后提到的那段话(Without doing anything else you are formally doing an implicit LES or ILES),他只是在举个例子,说明LES filter和有限体积是两个独立的东西,概念上不要搞混了。
另外提一下,绝大部分情况下我们实际上使用的就是implicit filter,因为我们并没有去指定filter的类型。这种情况下,即便用正六面体也要保证网格尺寸变化平滑,尽量不要出现突变,或者出现突变的区域尽量不要在你最关心的结果区域,否则结果的准确性会有待商榷。
这是个非常严格的要求,如果是复杂几何,画网格就变得很难,所以没必要特别在意。具体案例具体分析。
@leilei 大涡模拟是大涡模拟,有限体积是有限体积。
大涡模拟需要filter,如果你用的是有限体积,有限体积的“体积”正好可以充当filter,仅此而已。
@星星星星晴 好人一生平安
@ShaneHEEE 这个应该是不行的,出口很少直接给定速度值,不管正负
@coolhhh 那看来nutUSpaldingWallFunction确实是个牛逼的东西。我之前做过一些LES,最终也是选择这个壁面函数,不过没看到过在它里面再植入粗糙度进去。
@李东岳 工程上肯定是中性为主,实在是条件有限没办法做非中性,另外非中性自身的理论体系感觉不如中性完善。
我早就回国啦,李老师最近也开始搞风工程么?有机会交流下
@coolhhh 理论上确实是,但我在想壁面函数这么一点影响是不是有可能对流场影响不大?我们主要关注风机高度处的流动,现在都到100多米了,可能和你们不一样,你们关注风压的话对壁面要求应该会很高吧?
@李东岳 工业上主要还是中性为主,所以目前都是在搞中性的。非中性的那些在行业内目前应用不多,属于有经验的工程师(高阶玩家,有好几年风资源经验的才会对当地的热稳定度有深刻的理解)才会考虑到的因素,因为热稳定度其实无时无刻不在变化,很难在RANS下的框架下去工程应用。
另外就是热稳定度的判别需要基于有多层(至少两层)温度传感器的测风数据,目前工程应用中这种测风数据不多。