Radioss支持材料本构、材料破坏和单元属性的二次开发。
本次主要讲介绍以下几个方面:二次开发背景知识,安装Fortran编译器,设置环境变量,编译二次开发的程序,使用二次开发的程序。
二次开发背景知识
Radioss的二次开发是使用动态库的二次开发,在不同的操作系统上会产生不同的文件,如图所示:
(点击图片可以查看大图~)
二次开发的流程如下图所示,首先要用Fortran编写二次开发程序,程序需要包含两部分:Starter二次开发程序和Engine二次开发程序;之后需要编译动态库;编译完成后,如果是windows系统会生成后缀为dll的文件,把这文件和Radioss模型放在同一个文件夹内,在运行模型时,Radioss就可以自动识别二次开发程序。
安装Fortran编译器
1
Fortran编译器选择
Intel 的 Fortran 编译器功能强大,而且支持所有操作系统,但是需要付费;而GNU GCC支持Linux64,MinGW Gfortran支持Windows,这两个是免费的Fortran编译器,因为这一讲的实例都是在Windows系统上,所以推荐大家使用MinGW Gfortran。
2
MinGW下载
大家可以从MinGW主页下载免费的MinGW win64 安装软件,文件只有900K左右,网址如下:https://sourceforge.net/projects/mingw-w64/
3
安装注意事项
下载完成之后,进行安装,不过要注意的是,在安装时可以选择安装版本,建议大家安装4.9.2或者7.2.0版本,经工程师测试,这两个版本最好用、和Radioss最兼容。
Architecture选择x86_64,Threads选择win32,Exception选择seh,build revision选择1,推荐参数如下图所示:
4
安装完成测试
安装完成以后,在“开始”菜单中找到里面的“ MinGW-W64 project“ 文件夹中的 Run terminal 进行测试,点开后输入gcc -v或者gfortran –v可以再次查看MinGW的版本号,核对版本号以及各项设置是否正确。
看到这样的版本信息表示成功安装MinGW Win64 编译器啦~
以上两部分如果大家觉得看文字还不能很好理解的话,可以观看下方视频,Altair China Radioss高级应用工程师Lucy会为大家详细讲解:
设置环境变量
成功安装完Fortran编译器之后,我们就要来设置环境变量啦。
1
设置SDK的地址
我们需要设置SDK的地址 RAD_USERLIB_SDK_PATH 。
Linux (bash)
Windows
那如何链接呢?
首先找到安装HyperWorks的目录 -- 找到hwsolvers文件夹 -- 点击Radioss文件夹 -- 找到userlib_sdk
PS:请确保安装好了Hyperwork solver安装包!
(安装盘不一样文件位置有可能有所出入)
2
设置动态库名
设置动态库名 RAD_USERLIB_ARCH,系统不同、Fortran版本不同,要设置不同的动态库名~
上图放大以后如下:
这里展示的是在windows平台安装gfortran4.9.2版本,如果安装的其他版本在图中找到对应的动态库名即可。
小结一下,设置环境变量的命令如图所示:
编译二次开发的程序
Radioss提供了一些编译的脚本,不过在编译中需要注意一些格式,如下图:
放大看一下:
同理,Radioss提供的编译脚本也是根据使用不同的sdk而不同,参考如下:
我们在刚才提到的设置环境变量以及运行的命令,都可以放在一个脚本里面从而可以快速地进行。
成功编译starter和engine二次开发程序,产生libraduser_win64.dll文件:
starter和engine二次开发程序有错误,编译将不成功:
使用二次开发的程序
有了dll文件之后,将生成的dll文件(或so后缀的文件)放入有Radioss模型的文件夹中。
和平常一样运行Radioss模型即可,Radioss自动识别使用dll文件(或so文件)。
如果你的dll文件比较多,可以在HyperWorks solver run manager 中指定文件。
在HyperWorks solver run manager 中运行完成之后,点开结果文件,检测是否使用了二次开发编译的dll文件(或so后缀的文件)。
在starter二次开发程序(比如lecm29.f)中加入特殊的打印语句。
在starter输出文件*0.out文件中相应位置出现该打印语句。
帮助文档
如果大家在过程中有问题,可以查阅Radioss二次开发帮助文档,地址如下: