设计仿真 | MSC Nastran用户子程序功能的使用方法
采用有限元分析软件MSC Nastran分析实际问题,通常归结为离散有限元模型、给定载荷、定义初始/边界条件和确定材料模型、分析求解、结果输出等几个步骤。利用MSC Nastran的标准功能已经可以求解大量的工程实际问题,但由于实际问题的多样性,不同用户要求的特殊性,也可能存在标准的程序尚不具备的特定用户需要的某一方面功能的情形。此时可通过MSC Nastran提供的二次开发的功能得到有效解决,比如有很多用户通过DMAP语言扩展了软件功能,解决了软件标准功能不容易实现的功能。利用用户子程序是扩展软件分析功能的另外一种手段,由于该功能开发出来的时间相对比较晚,一些用户对它比较陌生,为此,本文对该功能做一个基本介绍,以便广大用户学习使用。
1
常用的用户子程序及分类
常用的用户子程序分为三类:单元、材料模型、接触,如表1所示。
表1 常用用户子程序分类
表1所列用户子程序如何调用可以参考MSC Nastran用户定义的服务用户指南。
2
环境要求
如果要使用MSC Nastran的用户子程序功能,除了安装MSC Nastran软件外,还需要安装如下软件(括号内是近期测试时安装的版本):
1) MSC Nastran SDK (2022.3),SDK中Tools文件夹路径需加入到环境变量PATH中。如 D:\MSC.Software\SDK\2022.3\Tools;
2) Python 3.6或更高版本;
3) Windows SDK (10.0.18362);
4) VS (vs_community_2019.16.11.exe,选择C++桌面开发);
5) 传统的Intel Fortran编译器(Intel MPI 2019 Update 4)或者Intel oneAPI 编译器。
注意:采用传统的Intel Fortran编译器需要有license(本机或从license服务器获取);而Intel oneAPI 编译器是免费的,但MSC Nastran2022.2及其后续版本才支持。
3
用户子程序应用与运行命令
MSC Nastran用户子程序功能的使用通常涉及以下方面:
•标识调用用户子程序的少量选项;
•用户子程序采用FORTRAN或C++语言编写;
•将用户子程序链接到MSC Nastran。
为了让用户掌握用户子程序的使用功能,在用MSC Nastran 的手册中有一些实际例子,比如在手册“Demonstration Problems Manual- Implicit Nonlinear”中就有两个详细的例子,分别是第43章的定义刚体运动的用户子程序和第44章的定义材料失效准则的用户子程序(具体章的编号不同版本有所不同,此处是2022.3版本的编号)。下面以第43章的例题为例介绍用户子程序的具体用法。
该例主要演示MSC Nastran热机械耦合分析以及用户子程序功能的使用,它模拟了考虑塑性功生热和摩擦生热效应的圆柱体镦粗过程,并将分析结果与实验结果进行比较。该例的MSC Nastran计算的输入文件:nug_73.dat和用户子程序为:nug_73.f。如果已经有了输入文件名和用户子程序名,就可以采用以下MSC Nastran计算命令运行(需要按软件安装的路径略作调整,也可在图形界面中提交计算):
D:\MSC.Software\MSC_Nastran\2022.3\bin\nastran.exe nug_73.dat uds=nug_73.f
说明:对于类似本例情形,MSC Nastran有两个命令行相关关键字uds和udssave。其中uds用于指定用户子程序文件;udssave用于指定用户服务生成位置,如不指定则在当前计算目录下。这些关键字的使用让MSC Nastran在运行作业时首先建立用户服务,然后在计算过程中调用用户子程序。用户只需要提供子程序源文件,并在计算文件中指定连接服务信息(如下图所示)即可。
执行上述MSC Nastran计算命令后,出现的信息截图如下:
如有多个计算模型要使用相同的用户子程序,则用户服务只需创建一次即可,其他的计算都调用这个服务。调用方法:设置3个环境变量指向服务存放路径。例如,假定服务存放路径如下:
计算结束后,即可采用Patran等软件进行计算结果的后处理显示,对于本例主要是显示压下结束时的变形、位移云图、温度云图,另外还将分析得到的一些节点的温度变化历程与实验结果进行比较。
图:压下结束时的变形和轴向位移云图
图:压下结束时的变形和温度云图
图:不同位置点的温度变化历程与实测结果的比较
4
用户子程序模板与参考资料
在MSC Nastran的安装路径下,有各种用户子程序模板,可参考使用。路径如:
•D:\MSC.Software\MSC_Nastran\2022.3\msc2022.3\nast\services
另外,用户还可以参考有关软件文档:
•MSC SDK SCA Framework User’s Guide;
•MSC Nastran User Defined Services User’s Guide;
•MSC Nastran Demonstration Problems Manual-Implicit Nonlinear;
•MSC Nastran Quick Reference Guide.