暑假前的一篇话题初步将岩土工程中的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的具有表面张力的流体模拟)。
并且进行一些水柱坍塌的案例模拟,与试验数据的对比发现结果比较一致。
二、砂土:
在上次复现的DP本构基础上添加了线性剪切硬化模型[1],并且为了实现与基于MAC网格的不可压缩流耦合,将砂土的代码也转化成MAC网格。下面是砂土硬化系数的可视化云图:
三、耦合:
不可压缩流体和砂土耦合是在MAC网格上进行动量交换实现的;采用的Homework2: MPM实现沙子和水的耦合 中所用的动量方程以及相同的假设,不过换成了高斯迭代求解。下图是EOS弱可压缩流体和不可压缩流耦合砂土的对比(红色代表饱和度),后者看起来很黏(不知是什么原因)。
四、展望
① 不可压缩流体沿用的是先前taichi作业中基于错位网格的投影法,并采用多重网格求解压力方程。后续可以尝试各类的SIMPLE和PISO方法,以及一些能够减少求解压力方程耗时的快速算法,还有应用同位投影…
② 添加更多砂土的本构,例如修正DP盖帽模型等
③ 优化耦合模块;目前砂土的孔隙率和渗透率皆为常数,以及饱和度对粘聚力的软化模型都需要改进
参考文献:
[1] 杨强, 冷旷代, 张小寒, 等. Drucker-Prager 弹塑性本构关系积分: 考虑非关联流动与各向同性硬化[J]. 工程力学, 2012, 29(8): 165-171.
代码在GitHub - AUTUMN9452/mpm_sand_incompressible_fluid
还有很多不完善的地方需要改进,请各路大佬不吝赐教