Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

tidedrinkerT

tidedrinker

@tidedrinker
关于
帖子
102
主题
22
群组
0
粉丝
5
关注
0

帖子

最新

  • foam-extend-4.0 pisoFoam 计算二维圆柱绕流
    tidedrinkerT tidedrinker

    @Gunther 三维效应这个东西,我模拟的时候在1e4到1e5的时候比较明显;1e5之后,进入临界区了二维模拟就可以提供还算可以的结果了,临界区的那个骤降-回升的趋势也大致可以做出来,虽然具体数值有差异;更小的1e3量级的我还没试过,不确定什么情况。

    我咨询过其他人,有人用StarCCM模拟二维圆柱绕流,1e4到5e4能得到大差不差的阻力系数。我这无论如何都做不出来,各种求解参数,边界层参数都改过,最近的还差1/3,就很离谱。

    然后我就怀疑是网格类型的问题,用ICEM生成的,无论是矩形计算域还是圆形计算域,都不行;ICEM生成的非结构网格,过渡很僵硬,算起来会报错;如果减少中央O形区域的直径,会有强烈的不规则的振荡。我想试试二维的多面体网格和笛卡尔网格,但是Fluent Meshing、Ansys mesh和ICEM都不支持,可以用棱柱体,但操作起来很麻烦。后来发现StarCCM可以做三维转二维,我也确实实现了。但是,新的问题是,ccmToFoam不支持转二维网格,通过fluent进行中转也走不通,plt格式也好,cgns也好,对二维的支持都有问题。所以想问一下你,你的CCM网格是怎么转成OpenFOAM网格的?


  • 如何建立消波区域
    tidedrinkerT tidedrinker

    @liujiayi 是,数值越大,需要的消波长度越少,但不是线性的


  • foam-extend-4.0 pisoFoam 计算二维圆柱绕流
    tidedrinkerT tidedrinker

    @Gunther ,我有个问题,我看到你在另一个帖子里发了类似的信息,误差是一致的,但是你贴的fvScheme和fvSolution有很大区别,可以说一下你用的是哪个吗?还是说,两个你都试过,但是结果差别很小?

    我也在做圆柱绕流的模拟,网格是用ICEM生成的结构网格,中央O型分割的那种,各种论文中很常见的形式。但我的问题是,在亚临界区(2e4)我做出来的Cd高得离谱,大概比Wieselsberger的数据高50%。反而在临界区和超临界区看上去还好,虽然那个断崖还是对不太上。然后我试了一下的三维的模拟,然后数据一下子正常了;但三维的计算资源消耗太厉害了,而且在临界区和超临界区没什么优势。所以想问一下,你的计算设置是什么样的。

    另外,关于St,St用的那个f,和升力的f不是一回事吧?我记得是有个两倍的关系,虽然你那个值考虑倍数关系后还是不对。我的阻力差的很多,反而St大差不差,0.2多一点,不到0.21,还算可以。

    此外,还有个问题,圆柱绕流对网格很敏感,不确定你这种网格会有多大影响。


  • 如何建立消波区域
    tidedrinkerT tidedrinker

    参考这里,需要你自己定义消波区域。

    如果不是环境自带波浪,没必要再加波浪边界上去。你说的这部分,应该不是消波区,而是松弛区,或者其他名字;作用大概是,在波浪初始化(setWaves)的时候,其他区域的波高该是多少就是多少,这个区域(4到12),波高从100%衰减到0;初始化之后应该就没用了。


  • 设置的U和pareview里面查看的U不一致
    tidedrinkerT tidedrinker

    @z597288 还真不一定,把paraview里的跳0(skip 0)关掉试试看0时刻的;至于你说全流域的速度,不可压缩流满足守恒性要求的话,确实第一个时间步速度可能会出现这种情况。


  • 哪个版本OpenFOAM 能直接模拟的波流(波浪+水流)共同作用?
    tidedrinkerT tidedrinker

    @李东岳 不敢称大佬,也在学习中

    wave2Foam没用过,好像是停止维护了?我开始考虑波浪模拟的时候,基金会版本的OF已经可以支持造波了,所以就没有试过。
    然后这几个版本,只说我试过的那几个版本:

    基金会版本的OF,截止到OF8,只支持波流耦合,而且波浪水质点速度最好不要超过平均流速,否则入口会崩。而且不支持定义频率或者周期,只能定义波长。好像OF10(或更高版本)支持定义周期,但没试过;介绍页面说支持纯波浪,但我试了一下,至少支持的不太好。OF8不支持边界消波,只能用动量源做阻尼消波,效果倒也还可以。

    ESI版本的OF,截止到OFv2112,只支持纯波浪,支持定义周期,效果不错,至少做二维的近岸波浪变形和破碎可以和实验结果对的上。支持边界消波,但没有试过效果。而且有一个问题,不确定是模型本身的问题,还是我手艺太潮,在做小周期(<1.5s)的波浪时,衰减非常厉害,而且边界处的波形就不太对。

    olaFlow的版本,支持纯波浪和波流耦合,而且看上去效果不错,支持定义周期。支持边界消波,而且效果很好。但有两个问题,第一个是吃网格,对结构网格支持很好,但是对非结构/多面体网格很不友好;另一个是只支持z方向作为重力方向,我一般习惯是y方向为重力方向,网格还要再转一次。

    如果周期不是很短,波陡不是太大,这几个造波都没什么问题。但是,基金会版本可以通过修改controlDict加载库的方式,用自带的求解器调用olaFlow的边界。但是ESI版本不行,波浪库是默认加载的,会与olaFlow冲突,暂时还没搞明白怎么把这个库去掉,在ESI版本里调用olaFlow就只能用olaFlow自己的求解器。

    做波流结构物相互作用的话,我现在的方法是OF6+olaFlow的消波边界,在controlDict里把OF6自己的波浪库和olaFlow的消波边界加上,效果还行。


  • 哪个版本OpenFOAM 能直接模拟的波流(波浪+水流)共同作用?
    tidedrinkerT tidedrinker

    OF6以及之上的版本本身就可以,但是耗散可能比较严重;olaFlow也可以,但是比较吃网格,对非结构/多面体网格支持不好,且只支持z方向为重力方向。


  • 多面体网格不适用于波浪模拟?
    tidedrinkerT tidedrinker

    我正在模拟三维下的波浪-海流-结构物相互作用,主要用olaFlow,偶尔也用基金会版本的interFoam。然后发现olaFlow的造波边界也好,OF6自带的造波边界也罢,在多面体网格中表现的都不太行,olaFlow的边界尤甚。而且我在网上搜索到的算例,要么是结构网格,要么是笛卡尔网格(切体网格),没怎么看到多面体或者四面体网格。

    所以想问一下,是不是OF框架下的边界造波,对多面体网格的支持都不是太好?或者说,相对于横平竖直的结构网格和迪卡尔网格,在多面体网格上应用造波边界需要什么特殊的设置?


  • 200万网格并行算力测试(OpenFOAM版本)
    tidedrinkerT tidedrinker
    CPU型号:AMD EPYC 7C13 * 2
    系统:linux系统(Linux Mint 20.3)
    OpenFOAM版本:OpenFOAM-6
    内存:16G*16 DDR4 3200MHz
    
    128 49.08
    96 46.07
    80 43.48
    64 39.54   62/2
    48 44.98   63/2
    32 54.83   107/4  78/3
    16 99.59  
    

    /2的就是两个算例一起跑的平均时间,/4就是四个一起跑的平均,看上去32×4的跑法更经济一点。但是具体的和网格量、计算设置有关,我用大概250w网格带VOF和动网格的测试,就是64×2更经济。

    另外就是,好像AMD推荐的调优用处不大,包括SMT关不关区别很小。影响比较大的是NPS,我测试的结果是,NPS =4的话,128核最快比其他128核都快;NPS = 2的话,64核比其他64核都快。而且NPS2的64核比NPS4的128核快,比NPS4的64核快很多;但是NPS4的128核只比NPS2的128核快一点,一两秒的样子。

    @heike256 大部分设备都不是我的,借来测一下;我倒是想搞7773X,甚至想搞9654,毕竟内存带宽大一倍,但是没钱,没钱是一切妥协和将就的根源。


  • 关于openfoam中如何实现公转加自转的运动?
    tidedrinkerT tidedrinker

    可以参考这里

    就结果来说,能实现,但我没看懂是怎么实现的。或者说,我不太理解这些参数是怎么起作用的,不理解内圈的旋转中心是怎么实现随外圈旋转而变化的。


  • 200万网格并行算力测试(OpenFOAM版本)
    tidedrinkerT tidedrinker

    不同的OpenFOAM版本之间也有差别,虽然不大,而且看不出明显趋势。不过32核那个可能有问题,两次测试变化太大了。

    CPU型号:AMD EPYC 7R13 * 2
    系统:linux系统(Linux Mint 21.2)
    内存:32G*16 DDR4 3200MHz
    
    OpenFOAM版本:OpenFOAM-4.1
    96 44.38
    64 39.1
    48 41.29
    32 58.09
    16 94.49
    8 107.47
    4 199.38
    
    OpenFOAM版本:OpenFOAM-6(第二次测试)
    96 45.39
    64 40.25
    48 42.29
    32 60.87
    16 100.31
    8 112.86
    4 207.55
    
    OpenFOAM版本:OpenFOAM-8
    96 42.68
    64 43.3
    48 42.14
    32 57.55
    16 92.04
    8 111.63
    4 209.84
    
    OpenFOAM版本:OpenFOAM-10
    96 42.5716
    64 43.5094
    48 42.5608
    32 59.3897
    16 91.1536
    8 112.216
    4 211.765
    
    OpenFOAM版本:OpenFOAM-v2112
    96 42.6
    64 42.96
    48 41.78
    32 70.65
    16 91.49
    8 111.51
    4 207.41
    

  • 200万网格并行算力测试(OpenFOAM版本)
    tidedrinkerT tidedrinker
    CPU型号:AMD EPYC 7R13 * 2
    系统:linux系统(Linux Mint 21.2)
    OpenFOAM版本:OpenFOAM-6
    内存:32G*16 DDR4 3200MHz
    96 46.07
    64 40.19
    48 42.57
    32 46.25
    16 97.51
    8 112.41
    4 207.68
    2 422.19
    

  • paraview如何监测随网格一起运动的指定点的变量
    tidedrinkerT tidedrinker

    @Gunther 如果我没有理解错的话,这一问题在论坛中出现过多次,参见这里和这里。我印象里论坛里还有一个帖子是讨论这个问题的,找不到了。

    另外,如果是单一或者有限个点的数据,为什么要用Paraview?这样的话,每个时间步或间隔几个时间步就要保存一次数据,不会占硬盘了吗?而且,Paraview读起来也不怎么快啊。

    需要注意的是,probe监测边界上的点时,我不确定能不能用fixedLocation设置,不过如果可以且结果没有问题,那么我可能就有办法处理我那个帖子里的问题了。


  • 如何监测移动点的速度
    tidedrinkerT tidedrinker

    @李东岳
    如果我没有理解错的话,李老师的意思是查询这个点在哪个网格单元中,然后输出这个网格单元的速度?这样的话其实就是probe函数监测移动点速度的方法。问题在于,点在网格单元中的位置不确定,考虑相邻网格间可能有较大速度差异,如果点不在单元正中则单元对应的速度不能代表某个具体点的速度。

    我希望是有什么办法,可以在probe监测移动点,也就是fixedLocations项为false时候使用cellPoint这种插值的方法。但是默认的情况下,是不能使用的:

            //- Interpolation/sample scheme to obtain values at the points
            //  Note: only possible when fixedLocations_ is true
            word samplePointScheme_;
    

    实在找不到合适方法的话,我就只能把监测点附近的网格加密,确保网格单元间的速度差异足够小,然后直接用probe。但是这样总有种大力出奇迹的美,而且还不确定要增加多少网格量。


  • 如何监测移动点的速度
    tidedrinkerT tidedrinker

    现在我正在模拟水平轴的风力机,准备用三点法获取若干个截面的攻角。三点法的原理见参考文献,在常见的方法中,三点法的可信度足够高,而且原理和执行足够简单。在执行中,三点法需要监测叶片两侧各三个点的流速,示意图见附图。

    然而问题就出在这里,用Sliding Mesh方法模拟转子的时候,监测点的空间坐标是一直变化的,因此需要probe或者其他函数对应点的坐标变化。但是,对于probe函数而言,在监测移动点速度时(fixedLocations项为false),不能使用插值(参考这里的第172行,其他版本应该没有区别)。也就是说,此时监测的其实不是点的速度,而是点所在的网格单元的速度。考虑到叶片周围的速度变化剧烈,不进行插值的情况下,点速度的监测很可能不准;而且,因为要在不同叶片之间比较,网格造成的差异也不好衡量。

    因此,是否有什么方法可以实现监测移动点,而非移动点对应的网格单元的速度?

    我考虑过在网格生成的时候根据监测点调整网格,但是这在fluent meshing里很难实现;用ICEM生成结构网格倒是可以做到,但是因为要对不同的叶片设计生成网格,工作量太大了,不太现实。手动插值可以试试,但是每换一次网格,插值方法就得换一次,同样工作量巨大。所以,是否有什么简易的方法实现监测移动点的速度?

    附图:
    a0b77298-75dc-4617-a66c-212f8fcd8ad8-image.png


  • openfoam如何不设压力边界条件?只给参考压力
    tidedrinkerT tidedrinker

    可以实现,边界设置为与压力不相关的条件
    然后在fvSolution文件里的pimple后者piso或者同位置的其他组里设置pRefValue和pRefPoint(或者pRefCell)即可。
    本站有示例,参照这里


  • 服务器计算速率问题咨询。
    tidedrinkerT tidedrinker

    其他没看出来,内存是不是插满比较好?
    另外,有些时候,同时算两个算例平均时间会比仅算一个快


  • 多相流的扭矩提取
    tidedrinkerT tidedrinker

    如果我们的版本没有差的太多,现在这一个就可以直接用。
    单相流的时候,因为计算的时候只定义了粘度,没有定义密度,所以需要在这里定义。但是多相流一般来说会定义密度,不需要在这里再定义一次。按我的经验,rho和rhoInf这两项在二相流里会直接时效,定义成什么都无所谓。


  • 200万网格并行算力测试(OpenFOAM版本)
    tidedrinkerT tidedrinker

    @秋山结月 内存条插满试试?之前用至强2679v4,插满比插一半快接近一半


  • 搅拌桨叶附近压力异常
    tidedrinkerT tidedrinker

    @青山 我去看了一下那个二维的搅拌器,我手头没有装好的OF9,所以看的是OF10,应该是一样的。但是有几个问题:

    第一个,你的算例中出现的这种现象,在官方算例里同样出现了,只是没有你的那么明显。

    第二个,官方算例里是二维的,你这里是三维的,流动复杂程度天差地别,能不能简化成稳态计算很成问题。比如说,搅拌器运行的时候,流体会同时从叶片上下和尖端流过,而且可能形成复杂的非定常的脱落涡。

    第三个,官方算例里是用的MRF,多重参考系,而且划分了不同的计算域。但是在你给的网格图里,我不太能想象你是怎么划分网格区域的,或者说,你的MRF部分是怎么设置的?

    第四个,也是我认为可能影响最大的,你的网格太粗了。

    这四个原因都有可能,不太能确定那个影响最大。另外,如果要做三维搅拌器,

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]