18620856065
索 取 报 价
资   讯   中   心

Abaqus焊接过程的数值模拟(二十)Abaqus用户子程序文件

来源: | 作者:thinks | 发布时间: 2024-10-14 | 433 次浏览 | 分享到:

3.7.1 Abaqus 用户子程序

Abaqus用户子程序(user’ssubroutine)是指为扩展Abaqus的功能,程序预留的接口,用户可以通过用户子程序对相应的载荷条件、边界条件、材料特性、接触条件等进行自定义设置,编写自定义程序。Abaqus给用户提供了功能强大、使用方便的二次开发工具和接口,使用户可以方便地进行自定义分析,满足特定工程问题的需要。Abaqus6.11中有40多个子程序接口,本书不再一一详述,下面介绍焊接过程模拟中可能会用到的子程序。

 

(1) Abaqus/Standard 中的子程序1)CREEP定义和时间相关的、黏塑性的行为(蠕变和膨胀)。

(2) DFLUX在热传递和质量扩散分析中,定义非均匀的分布流量。

(3) DISP自定义边界位移条件。

(4) DLOAD指定力学非均匀分布载荷。

(5) FILM在热传递分析中指定非均匀的膜散热系数和相应的热沉温度

(6) FRIC定义接触面摩擦行为。

(7) GAPCON在完全耦合温度-变形分析或者纯热传递分析中,定义接触面或节点间的导热系数。

(8) GAPELECTR在耦合热电分析中,定义表面间的电导率。

(9) HARDINI定义初始等效塑性应变和初始背应力张量。

(10) HETVAL在热传递分析中定义内部热生成。

(11) MPC定义多点约束。

(12) ORIENT为定义局部材料方向、运动耦合约束的局部方向及惯性释放的局部刚体方向提供定位。

(13) SDVINI定义与初始求解相关的状态变量。

(14) SIGINI定义初始应力场。

(15) UEL自定义单元。

(16) UEXPAN自定义材料热膨胀系数。

(17) UFIELD指定预定义的场变量。

(18) UHARD在各向同性塑性模型或组合硬化模型中,定义屈服面尺寸和硬化系数。

(19) UINTER为接触面定义表面相互作用

(20) UMAT自定义材料的力学行为。

(21) UMATHT自定义材料的热行为。

(22) UMESHMOTION在自适应的网格划分中,指定网格运动约束

(23) URDFIL读取结果文件。

(24) UTEMP自定义温度。

(25) UVARM输出单元变量。

 

(2)Abaqus/Explicit 中的子程序

1)VDLOAD定义非均布力学载荷。

2)VFRIC对接触面定义摩擦行为。

3)VUINTER在接触面之间定义相互作用。

4)VUMAT自定义材料的力学行为。

 

3.7.2 用户子程序的编写

Abaqus的用户子程序是用户应用FORTRAN语言编写的程序。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.for(或.f)为扩展名的文件中。

 

Abaqus 中用户子程序的格式及参数表都是规定好的,不可以随意更改,一般其标准格式如下

SUBROUTINE<子程序名>(参数列表)

用户在应用 FORTRAN 语言编写子程序时需要注意以下几点

1)FORTRAN 语言中不区分大小写。

2)FORTRAN 语言中子程序正文应从第7列开始编写,而第1~5列是标号区,第6列是续行标志区。

3)以“c”或“C”字母开头的行是注释行。

4)空格不参加编译。

5)FORTRAN 语言中的I~N 规则一般在未做特殊声明时,以字母1、J、K、L、M、N 开头的变量为整型变量,以其他字母开头的变量为实型变量。

6)由 Abaqus 提供的用户子程序不能嵌套,即任何用户子程序都不能调用其他用户子程序,但可以调用用户自己编写的 FORTRAN 子程序和 Abaqus 应用程序。

 

下面以焊接数值模拟时常用的 DFLUX 子程序为例,介绍子程序编写的格式规范及各参数含义。

 

DFLUX 子程序为自定义流密度,可应用其对焊接热源模型进行定义。其子程序接口格式如下(其他子程序接口格式可参照Abaqus User Subroutines ReferenceManual)

 

 

 

用户需要做的就是在程序区给出流密度定义式。在定义过程中可以应用子程序参数列表中的参数。在子程序的众多参数中,有些是必须由用户给出定义式的,而有些则是由主程序在调用子程序时传入而无须用户定义的。

DFLUX 子程序中需要定义如下参数。

1)FLUX(1)自定义流量密度,用户必须给出定义式。

2)FLUX(2)热流密度随温度或物质浓度的变化率,可以不给出定义。

调用时传入如下参数。

 

1)KSTEP、KINCAbaqus 计算过程中当前的STEP和INCREMENT值,此数值为整数。

2)TIME(1)、TIME(2)当前分析步的时间(steptime)和当前增量步的时间(increment time)。

3)NOEL、NPT积分点所在单元的编号和积分点的编号,

4)COORDS当前积分点的坐标,是一个由3个元素组成的数组,COORDS(1)、COORDS(2)、COORDS(3)分别为积分点的x轴坐标、y轴坐标和z轴坐标。

5)JTYP体热流/面热流标号,在面热流作用时取0,在体热流作用时取1。

6)TEMP积分点当前温度

7)PRESS积分点当前压力值。

8)SNAME作用面的名称。

 

3.7.3 用户子程序的执行

运行带有用户子程序的作业有两种方法一种方法是在 Abaqus/CAE中运行,在Module 下拉列表中选择Job选项,在菜单栏中选择 Job→Edit Job 命令,打开 Edit Job 对话框,在 General(一般)任务页面的 User subroutine fle 列表框中选择用户子程序所在的文件,然后提交计算。另一种方法是在 Ababqus 命令行中运行,语法如下

abaqus job =<.inp job文件名>user=<.for子程序文件名>interactive

 

(内容、图片来源:《焊接过程数值模拟一书,侵删)

 

版权与免责声明:

凡未注明作者、来源的内容均为转载稿,如出现版权问题,请及时联系我们处理。我们对页面中展示内容的真实性、准确性和合法性均不承担任何法律责任。如内容信息对您产生影响,请及时联系我们修改或删除。

 主 营 产 品
cst
Abaqus
Powerflow
Xflow
simpack
CATIA
最 新 内 容
热 门 文 章
知 识 科 普
方 案 解 析
  • 汽车交通
  • 风能电源
  • 船舶机械
  • 生物医疗
  • 土木建筑
  • 新能源
  • 高科技