【摘要】:本节将给出一个完整的用C++编写的用户子程序的例子,这是一个简单的线弹性本构模型的用户材料子程序UMAT,其他用Fortran语言编写的用户子程序若要转化为C++编写的用户子程序,也可以仿照这个例子修改用户子程序的接口。C++语言的面向对象的属性在编写大型复杂结构的子程序时具有独特的优势,编写的代码结构更加清晰、可读性更高。
本节将给出一个完整的用C++编写的用户子程序的例子,这是一个简单的线弹性本构模型的用户材料子程序UMAT,其他用Fortran语言编写的用户子程序若要转化为C++编写的用户子程序,也可以仿照这个例子修改用户子程序的接口。C++用户子程序的使用方法和Fortran语言的用户子程序是一样的,既可以通过cmd窗口,使用命令行进行提交计算,也可以先编译成obj文件(具体编译生成obj文件的方法见1.5节),再用cmd命令行提交计算。
相对于Fortran语言,用C++语言编写用户子程序有自己的优势,主要体现在以下几方面:
(1)当前的各种编辑环境(或编辑器)对C++语言的支持都非常友好,代码高亮、代码提示、自动补全等功能都非常完备,而Fortran语言在这方面要逊色得多。
(2)C++语言的面向对象的属性在编写大型复杂结构的子程序时具有独特的优势,编写的代码结构更加清晰、可读性更高。(www.chuimin.cn)
(3)C++语言具有丰富的函数库,特别是用于数值计算的函数库,使用起来很方便。例如,对于上面的例子(线弹性本构模型的用户子程序UMAT),采用ARMA C++线性代数计算库里的函数来重新编写实现,具体代码如下:
可以发现,采用已有的函数库后,代码简洁明了,便于阅读。对于比较复杂大型的代码,C++语言丰富的库函数非常有优势。
关于ARMA C++线性代数库相关的内容可以参考网址:http://arma.sourceforge.net。
相关推荐