------------恢复内容开始------------
Abaqus提供了相当丰富的单元类型,材料属性等数据库可供用户选择,但是工程问题是千变万化的,为了满足用户的特殊工程要求,ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。用户可以利用子程序接口来编写自己想要实现的特殊功能,以此扩展ABAQUS的功能。ABAQUS 为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。ABAQUS 6.2.5 一共有 42 个用户子程序接口,13 个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了 ABAQUS 的功能。例如:如果荷载条件是时间的函数,这在 ABAQUS/CAE 和 INPUT 文件中是难以实现的,但在用户子程序 DLOAD 中就很容易实现。用户自定义子程序(User Subroutine)涵盖了建模、载荷到单元的几乎各个部分。
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变化而变化的。
------------恢复内容结束------------
Abaqus用户子程序综述
原文:https://www.cnblogs.com/dophyliu/p/12495279.html