在ANSYS LS-DYNA中,常遇到行列式为负或为零问题,即negative or zero determinant - solid element。笔者以简单跌落仿真为例,从网格前处理、单元设置层面,提供了两种解决negative or zero determinant问题的方法。
1、问题提出
2、问题再现
第一步:现在使用SpaceClaim软件生成简单的圆柱体和棱柱体,如图-1所示。点击其Geom,然后点击Analysis中的Share Topology选项中的Share,使2给零件共享拓扑,这样就不需要给2个零件建立连接或者接触关系,其模拟实际零件之间的焊接或者粘接关系。
图-1 零件及共享拓扑图
第二步:在Spaceclaim中打开Workbench软件,在打开界面中,拖拽一个LS-DYNA到窗口中,如图-2所示。在本例中,可以使用1种材料,也可以使用2种材料,本模型采用2种,即AL 7039 和STEEL 4340。用户可以在Engineering Data进行材料添加也可以在后续的Mechanical的材料模块中添加。
图-2 Workbench窗口
第三步,点击图2中的Model,打开Mechanical软件,如图-3所示。给棱柱零件赋予STEEL 4340钢,圆柱零件赋予AL 7039铝合金。
图-3 Mechanical 中指定材料
第四步:设置网格尺寸为2mm,然后生成网格如图-4所示。圆柱零件的网格在其表面处出现金字塔单元,如图-5所示。
(a)整体图 (b)棱柱 (c)圆柱
图-4 模型网格
图-5 金字塔单元
第五步,点击Mechanical中的Environment工具栏中的Drop Test Wizard,设置地面高度2000mm,生成跌落计算工况。
第六步,点击Write Input File,输出key计算文件。
第七步,打开LS-RUN,或者ANSYS Mechanical APDL Product Launcher 进行提交计算。计算即发生报错,报错信息如第一节所描述。
3、解决方法
如第一节中错误信息所示,其报错的根本原因是模型中存在金字塔单元,即Pyramid Element。
解决方法一:在SpaceClaim中,取消共享拓扑,在几何中,2个零件不进行节点共享,然后在Mechanical中采用Bond 接触。此方法,是使模型中不出现金字塔单元。
解决方法二:利用LS-PrePost打开key文件,进行单元属性更改。LS-DYNA在模型中会自动分配金字塔单元的单元属性为15单元积分公式,或者为115号单元积分公式。其设置在*CONTROL_SOLID中,如图-6所示,需将卡片中的ESORT设置为1或2,其默认为0,即不分配。但是,LS-DYNA在分配指定单元积分时,仅在实体单元属性采用ELFORM=1时才会生效。所以,报错的根本原因,是Mechanical在分配四面体单元居多(其包含金字塔单元)的零件的单元属性指定为单元属性为ELFORM=10,无法使*CONTROL_SOLID中ESORT参数起作用。因此,在LS-PrePost中把其单元属性ELFORM改为1,如图-7所示。
图-6 实体单元控制卡片
图-7 实体单元属性
4、总结
笔者从网格前处理、单元设置层面,提供了两种解决negative or zero determinant问题的方法,希望能够给正在使用ANSYS LS-DYNA的用户一些使用上的讲解与帮助。