LS-DYNA 仿真出现 Error Negative Volume in solid element 错误如何解决
在材料发生大变形,尤其是对软材料,计算单元会被破坏产生负体积错误,负体积错误会在尚未达到材料失效标准前就出现。在没有对网格进行平滑和重绘处理下,拉格朗日网格对大变形有限制。如果 *CONTROL_TIMESTEP 中的 ERODE 未设置为 1,并且 *CONTROL_TERMINATION 中 DTMIN 未设置为非零常数(这两个关键字的设置是删除大变形单元,继续计算),则会负体积错误会导致计算中断,无法继续。不过,即使设置了 ERODE 和 DTMIN,一些情况下也会因为出现负体积错误,导致计算中断。
处理负体积错误的一般方法如下:
另外可以参考一下:Negative Volume in soft materials
1 负体积原因是雅阁比矩阵的行列式值为负值,一般减小时间步长参数,增加材料刚度,改变单元质量都可以的!
2 如果是金属材料出现负体积,主要是单元质量问题,建议重新划分网格,但如果是非金属,这是常见现象,不一定是网格问题,可以寻求其他的方法,
3 发生的原因有可能是因为有 initial penetration. 所以因该先检查是不是有 initial penetration:
再来如果是少数的节点受力也因为力量集中造成负体积,所以这时候就可以把接触的网格划分细一点
另外如果是用 hex element 会有 Hourglass 的情形,可以检查一下 Hourglass energy 或者是两个物体刚性相差太多, 像是 foam 的材料, 可以在 foam 的表面加一层 shell element 增加 solid element 的自由度与刚性
4 实体包壳的作法可以用 HM 的 find face 厚度其实只要很薄一层(0.1mm 就可以了)
建议可以用不同的壳后测试一下,看看两个有什么不同,如果差不多的话,当然是用比较薄的厚度
材料方面我是用 mat_3 or mat_9 null, 重量可以跟实体的参数是一样的,另外不去设定 contact
最近看到有不少这样的问题,一般出现负体积,节点速度无限大,都可以通过缩短求解时间,减小时间步长,增加接触刚度等这几种方法去试一试。
1. 负体积是由于 element 本身产生大变形造成自我体积的内面跑到外面接着被判断为负体积。因而,负体积多是网格畸变造成的,与网格质量以及材料、载荷条件都有关系。有可能的原因和解决的方法一般有:
(1)尝试减小时间步长从 0.9 减小到 0.6 或更小。(注意太小得到的结果不一定可信)
(2)材料模型参数设置有问题,选择合适的材料本构。
(3)局部接触力太大(不要将力施在单一 node 上,最好分散到几个 node 上以 pressure 的方式等效施加),尝试调整间隙,降低接触刚度或降低时间步。
(4)沙漏模式的变形积累,尝试改用全积分单元。
(5)在容易出现大变形的地方将网格细化。
(6)材料刚度不够,可能也会出现负体积。
2. 节点速度无限大与接触,材料参数,网格形状等等都可能有关系,解决的方法一般有:
(1)网格质量太差,重分网格;
(2)材料本构及状态方程的参数输入格式出错,检查 K 文件;
(3)输入的参数量纲不一致,仔细检查
(4)自定义的子程序存在问题,如岩石爆破中只考虑压,不考虑拉等
(5)材料太软,计算网格畸变,如在淤泥中爆炸~
(6)接触定义出错。"