告别Fortran,只需要C++就可以编写Abaqus UMat等用户子程序

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函数,附件给出了具体的实现方法。

告别Fortran,只需要C++就可以编写Abaqus UMat等用户子程序的图1C++编写用户子程序实现方法.pdf



以下内容为付费内容,请购买后观看

包含1个文件   52人购买

示例文件和编译命令文件

App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

6
5
8