【Abaqus二次开发】骨料随机填充及映射网格法

0.出发点
用abaqus做细观模拟,随机填充颗粒/纤维是跳不过的坎,网上有很多插件或脚本,技术邻也有不少大咖做了些插件,但个人而言更倾向于脚本,虽然插件使用起来方便,不过有时需要根据具体要求修改模型,此时脚本的灵活性就体现出来了。今天跟大家分享怎么通过python编写随机填充骨料的思路:
二维模型,主要是将基体做partition,比较简单;而做partition用的草图就需要用python批量生成,操作跟普通CAE界面做partition类似。
三维模型直接用上述方法比较难,此时可以建立多个part,或将骨料作为一个part跟基体在assembly模块进行装配,并巧用Merge/cut功能即可。
网格映射法主要是通过将获得骨料中的点坐标,把它映射到已画好结构化网格的另一个part中;这种方法的有点在于施加周期性边界条件很方便。
1. 普通随机骨料填充
下面是按照上述思路编写的2D及3D骨料随机填充模型,其中二维模型支持圆形、椭圆及多边形(可定义边数),指定粒径和含量比较方便。
同时,根据粒径创建了set,方便后续赋予材料属性等操作:

但很多实际问题中,骨料粒径并不是定值,需要服从一定的分布规律,如下面是根据正态分布生成的模型:

三维模型建立的思路也类似:

2.周期性骨料随机生成
由于细观力学的特点,需要通过一定的边界条件将细观和宏观模型连起来,其中常用的就是周期性边界条件,结构也需要周期性以通过偏移、阵列等当时拼出整个材料。下面是在上述模型基础上修改的周期性骨料随机生成模型:

由此可见,通过一定的阵列,完全能拼出整个宏观模型。下面是三维情况:

在以上周期性模型上施加周期性边界条件,才算完整的解决了周期性模型问题。怎么施加周期性边界条件呢?可以在interaction模块中使用equation,如果模型较大、节点较多则还需要脚本或插件。
3.网格映射法
如前面所属,网格映射法生成随机骨料填充模型有些优势,一定程度上可提高精度,或说结构性网格好看;但其缺点也比较明显,当网格长度比较大时很容易导致骨料变形;此外如果参考模型中网格很细的话映射需要较长时间。下面是采用网格映射法建立的模型:

其实是一个part,只是在原来骨料位置建立了单元集合。
下面是三维模型:


图中可以看到,基体材料边界上网格是结构化的。
4.后话
其实以上这些技术含量不高,但比较费时间,特别是“假装患有强迫症”的人,有时发个帖子都需要一整天;除非你正在做类似的项目,特意去做这些反而不值得。有的时候这些资源是收费的,我们购买这些资源并不是因为自己做不了,只是投入的精力可能远大于跟价钱。
虽然总调侃说“做仿真的别人都不信,中只有自己信;做实验的别人都信,只有自己不信”,能做好仿真还是需要很多基础的,如需要懂理论、材料、CAD软件以及一些编成语言知识,有时看似很简单的计算能让人崩溃到怀疑人生(怀疑三体人的质子在作怪🤣)。但愿所有做仿真的人,能够从中找到乐趣。
欢迎咨询讨论:QQ180280578、微信allisforA

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
