岩土工程中MLS-MPM的应用——流固耦合篇

暑假前的一篇话题初步将岩土工程中的DP本构模型(by Zhangxiong)应用到MLS-MPM中。之后便开始流固耦合的学习,特别是对流体实施不可压条件的算法;暑假这段时间对taichi论坛中现有的关于流体的模拟代码进行汇总和修改,另外设计了一些前处理和可视化模块,完成了一个非常简单基础的,基于MAC网格的双层双相流固耦合MPM计算框架

一、不可压缩流体:
Homework2: 2D Free Surface Fluid Simulation (Eluerian/PIC/FLIP/APIC) 基于APIC的不可压缩流进行了调整,解决了该作业中下落时出现爆炸的问题(左二),但是修改后的流体(左一)看起来粘粘的;并将基于EOS流体的level-set和marching tude表面识别和CSF表面张力应用至不可压流体中(右二和右一)。(【大作业】基于MPM的具有表面张力的流体模拟)。
sphere2surface2

并且进行一些水柱坍塌的案例模拟,与试验数据的对比发现结果比较一致。

二、砂土:
在上次复现的DP本构基础上添加了线性剪切硬化模型[1],并且为了实现与基于MAC网格的不可压缩流耦合,将砂土的代码也转化成MAC网格。下面是砂土硬化系数的可视化云图:
hard2

三、耦合:
不可压缩流体和砂土耦合是在MAC网格上进行动量交换实现的;采用的Homework2: MPM实现沙子和水的耦合 中所用的动量方程以及相同的假设,不过换成了高斯迭代求解。下图是EOS弱可压缩流体和不可压缩流耦合砂土的对比(红色代表饱和度),后者看起来很黏(不知是什么原因)。
coup

四、展望
① 不可压缩流体沿用的是先前taichi作业中基于错位网格的投影法,并采用多重网格求解压力方程。后续可以尝试各类的SIMPLE和PISO方法,以及一些能够减少求解压力方程耗时的快速算法,还有应用同位投影…

② 添加更多砂土的本构,例如修正DP盖帽模型等

③ 优化耦合模块;目前砂土的孔隙率和渗透率皆为常数,以及饱和度对粘聚力的软化模型都需要改进

参考文献:
[1] 杨强, 冷旷代, 张小寒, 等. Drucker-Prager 弹塑性本构关系积分: 考虑非关联流动与各向同性硬化[J]. 工程力学, 2012, 29(8): 165-171.

代码在GitHub - AUTUMN9452/mpm_sand_incompressible_fluid
还有很多不完善的地方需要改进,请各路大佬不吝赐教

4 个赞

可以 很强 ,刚好后面要用sph做水土耦合问题,可以参考一下

不知道是否比较过cpu和gpu在效率和结果方面的差异?

加油,都是相通的 :partying_face:

没有数据上的对比,运行的直观感受是GPU更胜一筹 :grinning:

效率上应该是gpu更好一点,但我用gpu32位时经常会遇到数值奇异的现象,而64位又太慢了