首页/文章/ 详情

PFC单向流固耦合——模拟颗粒落入流动的水中

7月前浏览13793

本文摘要(由AI生成):

本文介绍了PFC中流固耦合的三种方式,并通过模拟颗粒落入流动的水中的单向耦合例子进行了详细说明。该例子中,使用生成方形网格的小程序生成节点和单元文件,并设置了颗粒和水流的属性。模拟结果显示,粒径大的颗粒先落入河底,粒径小的颗粒随水流飘得比较远,符合常理。同时,还展示了水流对颗粒的拖拽力以及颗粒粒径在x向的分布情况,验证了流固耦合模拟的可行性和准确性。


PFC中流固耦合有三种方式:

1、单向流固耦合(one_way):也就是颗粒受流体作用,但是流体不受影响。

2、利用达西定律实现双向耦合

3、和第三方的算法或者流体软件进行耦合(比如OpenFOAM)

这里做一个单向耦合的小例子——模拟颗粒落入流动的水中。

由于当水比较多的时候,流速不太容易受到下落的颗粒影响,这里简化为单向耦合是合理的。

首先生成cfd网格和颗粒。这里的网格使用我之前帖子中生成方形网格的小程序生成节点和单元文件。


new
domain extent -3 3
wall generate box -2 2 -1 1 -0.5 2
wall delete walls range id 2[x_pos=0.5]
[height=1]
[box_chicun=0.5]
[rdMin=0.01]
[rdMax=0.03]ball generate radius [rdMin] [rdMax] number 1000 tries 2000000 range x [x_pos+rdMin] [x_pos+box_chicun-rdMin] ...
            y [-box_chicun*0.5+rdMin] [box_chicun*0.5-rdMin] z [height+rdMin] [height+box_chicun*2-rdMin]
           cmat default model linear method deform emod 100e6 kratio 1.5 property fric 0.5
ball attribute density 2.7e3 damp 0.5
set gravity 0 0 -9.8
configure cfd
cfd read nodes Node.dat
cfd read elements Elem.dat
element cfd attribute density 1000.0
element cfd attribute viscosity 1.5
define set_fluid_velocity
  loop foreach local ele element.cfd.list
    element.cfd.vel.x(ele) = -0.5
    element.cfd.vel.y(ele) = 0.0
    element.cfd.vel.z(ele) = 0.0
  end_loop
end
@set_fluid_velocitysave sample



之后进行一个下落:


keliweiyi.gif


这里颗粒的颜色代表粒径,可以看到粒径大的颗粒先落入河底,粒径小的颗粒随水流飘得比较远,这里也是符合常理的。


这里显示一下水流对颗粒的拖拽力:

cfdForce.gif


可以看到大颗粒所受的力比较大,而且拖拽力也是在变化的。

这里显示颗粒粒径在x向的分布:

lijingfenbu.gif


可以比较数值化的看出不同粒径在水流中的分离。


流-固&热耦合代码&命令岩土离散元PFC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-04-20
最近编辑:7月前
lobby
硕士 |擅长颗粒流PFC
获赞 880粉丝 4970文章 83课程 22
点赞
收藏
未登录
3条评论
仿真秀1124214313
签名征集中
2年前
求出渗流二维模拟
回复 1条回复
持续性
签名征集中
4年前
请问大佬,我看pfc3.0论文中做流固耦合用到了N-S方程 ,请问这是pfc3.0软件内置自带的还是通过fish定义的呢?这个N-S方程在pfc5.0里找不到。感谢大佬解惑
回复
达芬奇        仿真秀秀
又到了吃冷面的季节还爱吃酸菜
4年前
效果很真实!
这个软件要写命令才行么?GUI好用么
回复 1条回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈