Abaqus用户子程序综述
作者:互联网
------------恢复内容开始------------
- 概述
ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法而自己编写的代码。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT-JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;二是在ABAQUS COMMAND中运行,语法如下:ABAQUS JON=[JOB] USER=[.FOR]
- 编写注意的事项
用户子程序不能嵌套。即任何用户子程序都不能调用任何其他用户子程序,但可以调用用户自己编写的FORTRAN子程序和ABAQUS应用程序。当用户编写FORTRAN子程序时,建议子程序名以F开头,以免和ABAQUS内部程序冲突。当用户子程序中利用OPEN打开外部文件时,要注意以下两点:一是设备号的选用是有限制的,只能取15-18和大于100的设备号。二是用户需提供外部文件的绝对路径而不是相对路径。ABAQUS应用程序必须由用户子程序调用。当用到某个用户子程序时,要关心的主要由两个方面:
- ABQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中,有些是需要用户自己定义的SUBROUTINE DLOAD 中的 KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如 F。
- ABAQUS何时调用该用户子程序。对于不同的用户子程序,ABAQUS调用的时间是不同的。有些是在每个 STEP 的开始,有的是 STEP 结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。
- 子程序实例
- SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME)
F 为用户定义的是每个积分点所作用的荷载的大小;
KSTEP,KINC 为 ABAQUS 传到用户子程序当前的 STEP 和 INCREMENT 值;
TIME(1),TIME(2)为当前 STEP TIME 和 INCREMENT TIME 的值;
NOEL,NPT 为积分点所在单元的编号和积分点的编号;
COORDS 为当前积分点的坐标;
除 F 外,所有参数的值都是 ABAQUS 传到用户子程序中的。
功能:
荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。
用户可以从其他程序的结果文件中进行相关操作来定义积分点 F 的大小。
例 1:
这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。
------------恢复内容结束------------
标签:SUBROUTINE,ABAQUS,综述,程序接口,用户,STEP,子程序,Abaqus 来源: https://www.cnblogs.com/dophyliu/p/12495279.html