o2oa二次开发比开发难吗_LS DYNA的二次开发环境及应用

bd50981077214954a1f16b8be7b15eb6.gif

本文介绍了LS-DYNA新一代二次开发环境,编译连接过程和新增功能。新的开发环境完全兼容原有的开发环境,包括所有的材料模型,状态方程,单元类型,和求解器控制等各种用户子程序。新开发环境简化用户子程序的编译连接过程,直接生成动态连接库,与LS-DYNA主执行程序完全脱离。LS-DYNA主程序支持多个用户子程序的动态连接库同时加载,按用户规则同时调用。新增功能包括支持用户自定义关键字,模型参数化及自动生成等。本文介绍了新开发环境的编译环境设置和编译连接过程,以及多个动态连接库的同时加载和调用方法。

引言

LS-DYNA是一个大型的通用有限元程序,秉承一个执行程序,一个模型文件,执行多类型多物理分析的开发宗旨,致力简化用户建模过程并提高模型的重复利用率。LS-DYNA内置的显式和隐式高效求解器及两者之间的动态互换,对解决多重非线性的大规模问题具有独特的优势,在实际工程中也得到非常广泛的应用。考虑到实际物理问题的复杂性和多样性,LS-DYNA在开发初期就开放程序内核,让用户根据实际问题开发相应的用户模块来增强主程序的功能。现有的用户子程序大体上包括以下几类:
1)材料模型UMAT
2)热材料模型TUMAT
3)状态方程UEOS
4)单元UELEM
5)求解控制模块
6)输入输出模块

LS-DYNA为每个模块都提供现成的模板程序,用户根据需要修改相应模块的模就可以实现二次开发。因此,对于有一定编程经验的有限元开发人员来说,LS-DYNA的用户模块开发是相对比较简单的,尤其是全套的模板程序提供了很好的示例和开发基础,演示了在大变形大转动及各种非线性下的高效编程。这么多年来,有大批用户成功地根据自己的需要开发出高质量的用户子程序,实现各种复杂问题的计算。

从目前的一些用户的使用情况来看,二次开发比较容易出错的一个环节是编译和连接过程。目前LS-DYNA提供的一种开发方法是把所有主程序的OBJ文件打包成库文件提供给用户,而这些OBJ文件是在LS-DYNA标准编译环境下编译出来的半成品二进制文件。然后用户在自己的开发环境下编译其用户子程序,与主程序的OBJ库文件连接生成含有用户子程序的LS-DYNA执行程序。该方法的好处是生成的LS-DYNA执行程序内含用户子程序,方便执行。容易出错的地方是用户的编译环境往往LS-DYNA的标准编译环境不一样,可能会导致连接后的LS-DYNA执行程序不能正常工作。两个编译环境之间的差异可能会存在于各个方面,比如操作系统类别和版本,FORTRAN编译器的主版本及修正版本,C/C++编译器的版本及其所带的标准库文件等等。这些差异导致的错误有时还很难发现,对二次开发造成一定的困扰。
另外,LS-DYNA得到越来越广泛的应用,在有些工业领域逐渐被认为是行业的标准分析软件。该行业的原材料供应商针对自己的材料等开发专门的材料模型及配套参数,提供给客户对用其材料的产品利用LS-DYNA进行分析。近几年来这种开发模式逐渐形成了一个发展趋势。从另一面看,制造商在一次分析中可能要用到多个供应商的不同材料模型,而如何保证所有供应商的子程序OBJ版本都与LS-DYNA一致并正确地连接在一起,难度往往较大。LS-DYNA预分配的用户材料号从41号到50号,总共只有10个,如何协调众多供应商的材料号避免冲突,又增加协调的难度。因此,这些需求都对LS-DYNA的开发环境提出了更高的要求。

为此,在完全兼容现有用户子程序的基础上,LS-DYNA推出另一种新的开发环境,在方便性,兼容性和灵活性等方面有很大的提高。首先,LS-DYNA的主程序是一个可以进行独立分析的标准版执行程序,与用户子程序完全分离,也不依赖于任何用户子程序;LS-DYNA的主程序可以单独升级,同时保持对用户子程序的兼容性,用户子程序无需重新编译和连接。其次,用户子程序是在用户的开发环境下的独立编译连接并生成的动态连接库,其所用的系统库函数不影响LS-DYNA主程序;动态连接库也保证了用户子程序的版本独立性和兼容性,无需和LS-DYNA主程序同时升级;有些情况下,动态连接库可以允许不同的FORTRAN编译器来编译和连接。最后,用户可以根据模型需要,在模型文件里面指定加载一个或多个多动态连接库,并与模型中的相应部件关联,实现动态调用。此外,若将来用户子程序的接口有一定的变化时,LS-DYNA的高版本将考虑对以前版本的用户子程序的兼容性,可以直接加载以前版本的用户子程序的动态连接库,而用户无需重新编译和连接。

本文先对LS-DYNA的用户子程序做一个概述,介绍新开发环境下的开发过程及对源程序进行跟踪和调试过程,最后演示多个动态连接库的加载和调用过程。

LS-DYNA用户子程序

1)材料模型UMAT
用户材料模型是用户子程序中应用最广泛的,也是最实用的模块。LS-DYNA中的用户材料号是从41号到50号,受关键字*MAT_USER_DEFINE

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值