告别Fortran,只需要C++就可以编写Abaqus UMat等用户子程序
浏览:3551 评论:5 收藏:8
Fortran被称为数学家语言,在计算效率方面有着得天独厚的优势,但因为许多历史遗留问题以及发展问题,Fortran工程的开发和维护比较困难。随着这些年编译器和相应标准的发展,C++的运行效率已经与Fortran旗鼓相当,而在开发和维护问题上,大型应用软件几乎都采用C++编写框架底层,优势自不必说。再者,受国内教学环境的影响,大多数人在编程这块也只能是对C++算得上熟悉了。这里,笔者将给出使用C++编写Abaqus用户子程序的方法,并不是替代Fortran,而是给用户多一种选择。采用本文中的方法,用户将无需再安装Fortran编译器。
从编程角度看本文方法的实现原理比较简单。以UMAT为例,Abaqus在提交计算任务后会将用户指定的for文件或者obj文件编译成为standardU.dll,然后连同安装目录下的standard.exe一起拷贝到临时目录下,然后运行standard.exe进行计算。在计算进行到用户自定义材料时,Abaqus会自动去standardU.dll里寻找umat函数,也就是用户指定源文件里的umat函数。因此,如果用C++写出一个函数能够让standard.exe识别为 umat函数,并且接口变量一致,那么用户自然就可以用C++写出umat的用户子程序。至于如何让standard.exe认为就是umat函数,附件给出了具体的实现方法。
以下内容为付费内容,请购买后观看
包含1个文件 52人购买
示例文件和编译命令文件

技术邻APP
工程师必备
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP

6
5
8