abaqus二次开发python_abaqus的二次开发为何用python语言?

----------------补充内容:c/c++编写用户子程序-----------

有知友问怎样用c/c++编写abaqus用户子程序,abaqus帮助文档介绍了该内容,但还是更推荐采用Fortran编写,结合自己的经验,认为c/c++编写abaqus子程序的须掌握以下两个要点:

1.子程序接口。

fortran的用户子程序接口中形参与实参间默认按地址传递,c/c++默认按值传递且c/c++中变量是case sensitiy,因此采用c/c++编程需传递变量指针或引用。对于数组,c/c++中数组名本身为数组第一个元素的地址。此外,fortran二维数组在内存中按列分布,而c/c++按行排列,也应引起注意。

2.子程序编译。

c/c++子程序需先编译为目标文件,然后提交计算,编译obj文件需满足abaqus要求,编译选项参考.env文件中compile_cpp部分。

最后,上传一个c++编写的umat接口。

----------------原答案-----------

说到ABAQUS的二次开发,首先要分清楚到底是哪方面的二次开发,学过有限元课程的童鞋都很清楚,有限元方法的流程为前处理、求解、后处理,在ABAQUS有限元软件中,前处理生成cae文件,提交任务后软件会根据你的分析部类型选择求解器比如standard or explicit,求解完成生成一个output database(也就是odb文件),用户即可进行后处理。ABAQUS利用Python作为脚本语言,主要是对前处理和后处理进行二次开发,以方便使用者建模和处理数据(c++也能做一些后处理),之所以选择Python,个人觉得是出于Python的强大功能;而ABAQUS的求解器应该是用Fortran编写的,因此用户子程序的开发主要是用Fortran语言(当然c/c++也是可以的,需要比较扎实的程序编译基础),这是因为Fortran语言比较古老,并在数值计算和数组应用方面优点突出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值