abaqus子程序

1.1.37 UMATHT

User subroutine to define a material's thermal

behavior.

Product: Abaqus/Standard

Warning: The use of this subroutine generally requires considerable expertise. You are cautioned that the implementation of any realistic thermal model requires significant development and testing. Initial testing on models with few elements under a variety of boundary conditions is strongly recommended.

References

●“User-defined thermal material behavior,”Section 23.8.2 of the Abaqus Analysis User's Manual

● *USER MATERIAL

●“Freezing of a square solid: the two-dimensional Stefan problem,”Section 1.6.2 of the Abaqus Benchmarks Manual

●“UMATHT,”Section 4.1.22 of the Abaqus Verification Manual

Overview

User subroutine UMATHT:

● can be used to define the thermal constitutive behavior of the material as well as internal heat generation during heat transfer processes;

● will be called at all material calculation points of elements for which the material definition includes a user-defined thermal material behavior;

● can be used with the procedures discussed in “Heat transfer analysis procedures: overview,”Section 6.5.1 of the Abaqus Analysis User's Manual;

● can use solution-dependent state Variables;

● must define the internal energy per unit mass and its variation with respect to temperature and to spatial gradients of temperature;

● must define the heat flux vector and its variation with respect to temperature and to gradients of temperature;

● must update the solution-dependent state Variables to their values at the end of the increment;

● can be used in conjunction with user subroutine USDFLD to redefine any field Variables before they are passed in; and

● is described further in “User-defined thermal material behavior,”Section 23.8.2 of the Abaqus Analysis User's Manual.

Use of subroutine UMATHT with coupled temperature-displacement elements

User subroutine UMATHT should be used only with reduced-integration or modified coupled temperature-displacement elements if the mechanical and thermal fields are not coupled through plastic dissipation. No such restriction exists with fully integrated coupled temperature-displacement elements.

User subroutine interface

SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG,

1 STATEV,TEMP,DTEMP,DTEMDX,time,Dtime,PREDEF,DPRED,

2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT,

3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

INCLUDE 'ABA_PARAM.INC'

C

CHARACTER*80 CMNAME

DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),

1 DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),

2 time(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3)

user coding to define U,DUDT,DUDG,FLUX,DFDT,DFDG,

and possibly update STATEV, PNEWDT

RETURN

END

Variables to be defined

U

Internal thermal energy per unit mass, U, at the end of increment. This variable is passed in as the value at the start of the increment and must be updated to its value at the end of the increment.

DUDT

Variation of internal thermal energy per unit mass with respect to temperature,

, evaluated at the end of the increment.

DUDG(NTGRD)

Variation of internal thermal energy per unit mass with respect to the spatial gradients of temperature,

, at the end of the increment. The size of this array depends on the value of NTGRD as defined below. This term is typically zero in classical heat transfer analysis.

FLUX(NTGRD)

Heat flux vector,

, at the end of the increment. This variable is passed in with the values at the beginning of the increment and must be updated to the values at the end of the increment.

DFDT(NTGRD)

Variation of the heat flux vector with respect to temperature,

, evaluated at the end of the increment.

DFDG(NTGRD,NTGRD)

Variation of the heat flux vector with respect to the spatial gradients of temperature,

, at the end of the increment. The size of this array depends on the value of NTGRD as defined below.

Variables that can be updated

STATEV(NSTATV)

An array containing the solution-dependent state Variables.

In an uncoupled heat transfer analysis STATEV is passed

into UMATHT with the values of these Variables at the beginning of the increment. However, any changes in STATEV made in user

subroutine USDFLD will be included in the values passed into UMATHT, since USDFLD is called before UMATHT. In addition, if UMATHT is being used in a fully coupled temperature-displacement analysis and user subroutine CREEP, user subroutine UEXPAN, user subroutine UMAT, or user subroutine UTRS is used to define the mechanical behavior of the material, those routines are called before this routine; therefore, any updating of STATEV done in CREEP, UEXPAN, UMAT, or UTRS will be included in the values passed into UMATHT.

In all cases STATEV should be passed back from UMATHT as the values of the state Variables at the end of the current increment.

PNEWDT

ratio of suggested new time increment to the time increment being used (DTIME, see below). This variable allows you to provide input to the automatic time incrementation algorithms in Abaqus/Standard (if automatic time incrementation is chosen).

PNEWDT is set to a large value before each call to UMATHT.

If PNEWDT is redefined to be less than 1.0, Abaqus/Standard must abandon the time increment and attempt it again with a smaller time increment. The suggested new time increment provided to the automatic time integration algorithms is PNEWDT ×DTIME, where

the PNEWDT used is the minimum value for all calls to user subroutines that allow redefinition of PNEWDT for this iteration.

If PNEWDT is given a value that is greater than 1.0 for all calls to user subroutines for this iteration and the increment converges in this iteration, Abaqus/Standard may increase the time increment. The suggested new time increment provided to the automatic time integration algorithms is PNEWDT ×DTIME, where the PNEWDT used is the minimum value for all calls to user subroutines for this iteration.

If automatic time incrementation is not selected in the analysis procedure, values of PNEWDT that are greater than 1.0 will be ignored and values of PNEWDT that are less than 1.0 will cause the job to terminate.

Variables passed in for information

TEMP

Temperature at the start of the increment.

DTEMP

Increment of temperature.

DTEMDX(NTGRD)

Current values of the spatial gradients of temperature,

TIME(1)

Value of step time at the beginning of the current increment.

time(2)

Value of total time at the beginning of the current increment.

DTIME

Time increment.

PREDEF

array of interpolated values of predefined field Variables at this point at the start of the increment, based on the values read in at the nodes.

DPRED

array of increments of predefined field Variables.

CMNAME

User-defined material name, left justified.

NTGRD

number of spatial gradients of temperature.

NSTATV

number of solution-dependent state variables associated with this material type (defined as described in “Allocating space” in “User

subroutines: overview,”Section 15.1.1 of the Abaqus Analysis User's Manual).

PROPS(NPROPS)

User-specified array of material constants associated with this user material.

NPROPS

User-defined number of material constants associated with this user material.

COORDS

An array containing the coordinates of this point. These are the current coordinates in a fully coupled temperature-displacement analysis if geometric nonlinearity is accounted for during the step

(see “Procedures: overview,”Section 6.1.1 of the Abaqus Analysis User's Manual); otherwise, the array contains the original coordinates of the point.

NOEL :Element number.

NPT :Integration point number.

LAYER :Layer number (for composite shells and layered solids).

KSPT: Section point number within the current layer.

KSTEP: Step number.

KINC: Increment number.

Example: Using more than one user-defined thermal material model

To use more than one user-defined thermal material model, the variable CMNAME can be tested for different material names inside user subroutine UMATHT, as illustrated below:

IF (CMNAME(1:4) .EQ. 'MAT1') THEN

CALL UMATHT_MAT1(argument_list)

ELSE IF(CMNAME(1:4) .EQ. 'MAT2') THEN

CALL UMATHT_MAT2(argument_list)

END IF

UMATHT_MAT1 and UMATHT_MAT2 are the actual user material subroutines containing the constitutive material models for each material MAT1 and MAT2, respectively. Subroutine UMATHT merely acts as a directory here. The argument list can be the same as that used in subroutine UMATHT.

Example: Uncoupled heat transfer

As a simple example of the coding of user subroutine UMATHT, consider uncoupled heat transfer analysis in a material. The equations

for this case are developed here, and the corresponding UMATHT is given. This problem can also be solved by specifying thermal conductivity, specific heat, density, and internal heat generation directly.

First, the equations for an uncoupled heat transfer analysis are outlined.

The basic energy balance is

where V is the volume of solid material with surface area S,

is the density of the material,

is the material time rate of the internal thermal energy, q is the heat flux per unit area of the body flowing into the body, and r is the heat supplied externally into the body per unit volume.

A heat flux vector

is defined such that

where

is the unit outward normal to the surface S. Introducing the above relation into the energy balance equation and using the divergence theorem, the following relation is obtained:

The corresponding weak form is given by

where

is the temperature gradient and

is an arbitrary variational field satisfying the essential boundary conditions.

Introducing the backward difference integration algorithm:

the weak form of the energy balance equation becomes

This nonlinear system is solved using Newton's method.

In the above equations the thermal constitutive behavior of the material is given by

And

where

are state Variables.

The Jacobian for Newton's method is given by (after dropping the subscripts

on U)

The thermal constitutive behavior for this example is now defined. We assume a constant specific heat for the material. The heat conduction in the material is assumed to be governed by Fourier's law.

The internal thermal energy per unit mass is defined as

with

where c is the specific heat of the material and

Fourier's law for heat conduction is given as

where

is the thermal conductivity matrix and

is position, so that

and

The assumption of conductivity without any temperature dependence implies that

No state variables are needed for this material, so the allocation of space for them is not necessary.

A thermal user material definition can be used to read in the two constants for our simple case, namely the specific heat, c, and the coefficient of thermal conductivity, k, so that

SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG,

1 STATEV,TEMP,DTEMP,DTEMDX,time,DTIME,PREDEF,DPRED,

2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT,

3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

INCLUDE 'ABA_PARAM.INC'

C

CHARACTER*80 CMNAME

DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),

1 DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),

2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3) C

COND = PROPS(1)

SPECHT = PROPS(2)

C

DUDT = SPECHT

DU = DUDT*DTEMP

U = U+DU

C

DO I=1, NTGRD

FLUX(I) = –COND*DTEMDX(I)

DFDG(I,I) = –COND

END DO

C

RETURN

END

1.1.13 HETVAL

User subroutine to provide internal heat generation in heat transfer analysis.

Product: Abaqus/Standard

References

●“Uncoupled heat transfer analysis,”Section 6.5.2 of the Abaqus Analysis User's Manual

●“Fully coupled thermal-stress analysis,”Section 6.5.4 of the Abaqus Analysis User's Manual

● *HEAT GENERATION

●“HETVAL,”Section 4.1.9 of the Abaqus Verification Manual Overview

User subroutine HETVAL:

● can be used to define a heat flux due to internal heat

generation in a material, for example, as might be associated with phase changes occurring during the solution;

● allows for the dependence of internal heat generation on state Variables (such as the fraction of material transformed) that themselves evolve with the solution and are stored as solution-dependent state variables;

● will be called at all material calculation points for which the material definition contains volumetric heat generation during heat transfer, coupled temperature-displacement, or coupled thermal-

electrical analysis procedures;

● can be useful if it is necessary to include a kinetic theory for

a phase change associated with latent heat release (for example, in the prediction of crystallization in a polymer casting process);

● can be used in conjunction with user subroutine USDFLD if it

is desired to redefine any field Variables before they are passed in; and

● cannot be used with user subroutine UMATHT.

User subroutine interface

SUBROUTINE HETVAL(CMNAME,TEMP,time,DTIME,STATEV,FLUX,

1 PREDEF,DPRED)

C

INCLUDE 'ABA_PARAM.INC'

C

CHARACTER*80 CMNAME

C

DIMENSION TEMP(2),STATEV(*),PREDEF(*),TIME(2),FLUX(2),

1 DPRED(*)

user coding to define FLUX and update STATEV

RETURN

END

Variables to be defined

FLUX(1)

Heat flux, r (thermal energy per time per volume: JT–1L–3), at this material calculation point.

abaqus子程序安装和多个版本同时安装的方法

OS: Win7旗舰版64位 Version: abaqus 6.9 + MVS2005 +IVF9.1 abaqus和编译器安装没有先后顺序,随便先安装哪一个,对安装的位置也没有特定要求。 常用的安装组合: Abaqus v6.10.1 可使用:MVS2008+IVF10.1 MVS2008+IVF11.1 这二种组合 Abaqus v6.9.1 可使用:MVS2005+IVF9.1、MVS2005+IVF10.1 、MVS2008+IVF10.1这三种组合 一、abaqus6.9安装教程如下(尽量选择兼容模式以管理员身份打开安装——右键-属性-兼容性): (1)打开CD2文件夹,先安装帮助文档,过程中需要输入计算机名,几乎都会自动生成。 (2)鼠标右键点击桌面“我的电脑”图标,通过路径“属性->高级->环境变量”,然后在系统变量栏新建一个环境变量,变量名LM_LICENSE_FILE,值为27003@hostname。 (3)打开CD1文件夹,有linux64和lnx86_64(对应linux操作系统)、win86_64(对应windows64位操作系统)、win86_32(对应windows32位操作系统),根据自己的操作系统选择对应的文件夹打开,先安装license,点击直到看见install.exe,选择just install the license,点next安装。 安装完后用记事本打开\CD1\SHOOTER\abaqus69.dat,"this_host" 替换为计算机名。改好的文件另存为硬盘*:\SIMULIA\License\license.dat(*为软件所安装的盘符) 打开*:\SIMULIA\License\lmtools.exe(通过开始菜单也可以打开),点击config services,此时service name 栏显示“Flexlm Service 1”,可以根据个人喜好点击改成别的名字。 在“Path to the lmgrd.exe file”一栏中,选择指向“*:\SIMULIA\License\lmgrd.exe”; 在“Path to the license file”一栏中,选择指向“*:\SIMULIA\License\abaqus69.dat”; 在“Path to the debug log file”一栏中,选择指向“abaqus.log” (abaqus.log文件需要自己新建),点击Save service。 再到start/stop/reread表单里点击start server,注意左下角出现Server Start Successful或者Server Start Failed. The Server May Already Be Running都没问题,ReRead License File,出现Reread Server License File Completed说明license没有问题,点击Server Status—>Perform Status Enquiry。每行最后显示“Total of 1024 licenses issued; Total of 0 licenses in use”说明license安装成功了。 (4)安装product(**\product\Windows\Disk1\InstData\VM下的setup),过程中选择product,中间会出现让安装visual c++2005,点击安装就是了,后还需填上27003@hostname(你的计算机名),url程序应该会填入,如没有,填入第2步记录的url,直至安装完成。 二、子程序安装和通过验证方法:(必须先装MVS,然后安装IVF) 1. 先安装Microsoft Visual Studio2005(中文版),然后安装Intel Visual Fortran(若为64位系统,两个软件都选择自定义安装,勾上64位系统支持项)32位系统可以选择典型安装即可,64位的MVS要在自定义——VC 下面选上×64支持那一项,这一点很重要。安装IVF时也要选上64位支持的那一项。 2. 有两种方法通过子程序: ○1更改快捷方式 右键属性,在cae、command、vertification三个快捷方式目标前面均加上 “E:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin\ifortvars.bat" && 注意:”和&&之间有一个空格 IA32是32位系统对应的文件夹。64位系统要选择64位对应的文件夹。(em64t) 说明:本质上就是要把IVF的初始化文件ifortvars.bat找到,并和其路径一起添加进快捷方式,使点击此快捷方式时会先自动运行ifortvars.bat,进行环境变量的临时自动设置。 若使用Intel Visual Fortran 11.0或11.1 请注意 Intel 从Visual Fortran Version 11 开始改变了ifortsvars.bat文件的运行方式,需要添加一个参数来运行临时环境

最新ABAQUS用户子程序

ABAQUS用户子程序 1 2 3 ABAQUS/Standard subroutines: 4 1.CREEP: Define time-dependent, viscoplastic behavior (creep and 5 swelling). 6 定义和时间相关的、粘塑性的运动(蠕变和膨胀) 2. DFLOW: Define nonuniform pore fluid velocity in a 7 8 consolidation analysis. 9 在压实分析中,定义非均匀孔隙流速度 3. DFLUX: Define nonuniform distributed flux in a heat transfer 10 11 or mass diffusion analysis. 在热传递和质量扩散分析中,定义非均匀的分布流量 12 13 4. DISP: Specify prescribed boundary conditions. 14 指定规定的边界条件 5. DLOAD: Specify nonuniform distributed loads. 15 16 指定非均匀的分布荷载 17 6. FILM: Define nonuniform film coefficient and associated sink 18 temperatures for heat 19 transfer analysis. 20 对热传递分析指定非均匀的膜层散热系数和联合的散热器温度

7. FLOW: Define nonuniform seepage coefficient and associated 21 22 sink pore pressure for 23 consolidation analysis. 对压实分析定义非均匀的渗流系数和渗入孔隙压力 24 25 8. FRIC: Define frictional behavior for contact surfaces. 26 对接触面定义摩擦 27 9. GAPCON: Define conductance between contact surfaces or nodes 28 in a fully coupled 29 temperature-displacement analysis or pure heat transfer analysis. 30 在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义31 接触面或节点间的导热系数。 32 10. GAPELECTR: Define electrical conductance between surfaces 33 in a coupled 34 thermal-electrical analysis. 35 在耦合热电分析中,定义表面间的导电系数 36 11. HARDINI: Define initial equivalent plastic strain and 37 initial backstress tensor. 38 定义初始等效应变和初始反应力张量 12. HETVAL: Provide internal heat generation in heat transfer 39 40 analysis.

abaqus子程序

1.1.37 UMATHT User subroutine to define a material's thermal behavior. Product: Abaqus/Standard Warning: The use of this subroutine generally requires considerable expertise. You are cautioned that the implementation of any realistic thermal model requires significant development and testing. Initial testing on models with few elements under a variety of boundary conditions is strongly recommended. References ●“User-defined thermal material behavior,”Section 23.8.2 of the Abaqus Analysis User's Manual ● *USER MATERIAL ●“Freezing of a square solid: the two-dimensional Stefan problem,”Section 1.6.2 of the Abaqus Benchmarks Manual ●“UMATHT,”Section 4.1.22 of the Abaqus Verification Manual Overview User subroutine UMATHT:

ABAQUS子程序

ABAQUS用户子程序 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1.F为用户定义的是每个积分点所作用的荷载的大小; 2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值; 3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值; 4.NOEL,NPT为积分点所在单元的编号和积分点的编号; 5.COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER*80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)**2*PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)**3*PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)**4*PLOAD END IF RETURN END UMAT 子程序具有强大的功能,使用UMAT 子程序:

abaqus调用子程序的方法

Abaqus运行子程序方法 试了好几种调用子程序的方法最后总算找到了最简单的了,非常感谢仿真论坛上的网友的分享: 首先需要装Microsoft Visual Studio(简写mvs),再装Intel Visual Fortran(IVF)。 通常的组合是Abaqus 可使用:MVS2008+ MVS2008+ 这二种组合最好都使用英文版的。 照着附录1 方法装一般没什么问题。但是一般都是先装abaqus后才想到去装MVS以及IVF的。很多时候都把MVS 以及 IVF装好以后才想到去验证的,而且MVS很多都是中文的,MVS不仅装的慢卸载残留也很多好麻烦。搞了好久都验证不了,看了附录二的方法下面2个网友的回复后豁然开朗,一切都是那么简单。附录二的方法的主要作用可能就是将VC++和Fortran的环境变量一并启动了,参考过以前版上的安装教程,通过在ABAQUS的快捷方式中添加命令,亦能够达到同样效果,同样也是不能通过verification,但是可以运行子程序,通过在ABAQUS CAE的快捷方式的目标中,添加"D:\Program Files (x86)\Intel\Compiler\Fortran\" && (跟附录1中的修改快捷方式的目标一样)达到了同样的效果(摘自ppengine,tcboywjr网友的回复)。只需在搜索栏中搜索,再把路径添加上去照上面的形式修改便可。 本人用的是win7系统装的是(中文版)IVF11,abaqus好早就装了,装MVS2008之前装了mvs2010,发现2010不好装ivf,然后又卸了装mvs2008中文,验证时出现附录Ⅰ的情况,就C++项通不过还以为装C++2010就好了,又重装了一下mvs2010的C++(囧),发现还是用不了,校园网速太慢又不想下mvs2008(英文版),最后在附录2的方法下面发现了两位网友的分享非常感谢。附录二的方法也试过好像运算完了会出错误,不知道什么原因。新手上路请大家多多指教,记录总结一下以备后用同时分享给广大abaqus学习者。最后再次感谢那些乐于分享的人。 附录1 下面摘自 (子程序通过验证官方权威的安装方法 ) (作者pearqiqi,转载请注明来源) 希望此贴能帮助苦于子程序长期验证不通过的朋友,能终结安装方法不明确的问题,能找到环境变量设置项的依据来源。以下方法适用于Windows下 Abaqus 想要在Abaqus里用子程序,必须安装Intel Visual Fortran,而安装Intel Visual Fortran 前需要安装Microsoft Visual Studio,做好相关设置后通过Abaqus Verification测试子程序以及其他Abaqus功能是否能正常使用。 子程序通过验证方法: 1:先安装 Microsoft Visual Studio(英文版),然后安装 Intel Visual Fortran(若为64位系统,两个软件都选择自定义安装,勾上64位系统支持项)

ABAQUS用户材料子程序开发及应用

ABAQUS用户材料子程序开发及应用 ABAQUS用户材料子程序开发及应用 摘要: 本文介绍了ABAQUS用户材料子程序的开发与应用。首先,简要介绍了ABAQUS软件及其在工程领域的广泛应用。然后, 详细阐述了用户材料子程序的概念及作用,并介绍了子程序的开发流程和必要步骤。接着,以一个具体的材料模型开发为例,详细介绍了子程序的实现方法和注意事项。最后,以轴对称挤压模拟为例,展示了用户材料子程序在实际工程分析中的应用,并讨论了其优点和局限性。 关键词:ABAQUS;用户材料子程序;开发;应用 一、引言 ABAQUS是一款广泛应用于工程领域的有限元分析软件。 其强大的建模和分析能力使得工程师可以准确地模拟和分析各种结构和材料的行为。然而,对于一些非标准材料或特殊材料,ABAQUS自带的材料模型可能无法满足工程师的需求。此时, 用户材料子程序的开发就显得尤为重要。 二、用户材料子程序的概念及作用 用户材料子程序是指由ABAQUS用户自行编写的用于描述 非标准材料行为的子程序。它可以根据特定的材料性质和应变-应力关系,定义材料模型的行为,并将其与ABAQUS的有限元分析过程相结合。通过用户材料子程序,工程师可以更加准确地模拟和分析特殊材料的行为,提高分析结果的可靠性和准确性。 三、用户材料子程序的开发流程和步骤 用户材料子程序的开发包括以下几个基本步骤:

1. 确定材料模型:根据实际需要和具体材料的性质,选择合适的材料模型。常见的模型包括线弹性模型、塑性模型、粘弹性模型等。 2. 编写用户材料子程序:使用合适的编程语言(如Fortran)编写用户材料子程序,实现材料模型的行为。子程序应包括材料刚度矩阵计算、应力和塑性应变更新等关键计算部分。 3. 软件接口设置:将编写好的用户材料子程序与ABAQUS 软件进行接口设置,以实现子程序与有限元分析的集成。 4. 验证与调试:使用合适的测试用例对子程序进行验证和调试,确保其计算结果与实际情况吻合。 四、用户材料子程序的实现方法和注意事项 用户材料子程序可以根据具体材料的特性和行为,采用不同的实现方法。常用的实现方法包括离散化法、参数化法、迭代法等。在实现过程中,需要注意以下几点: 1. 材料模型的选择和确认:根据实际需要,选择合适的材料模型,并进行参数的确认和校正。 2. 子程序计算的高效性:子程序应尽量简洁高效,避免不必要的计算和存储开销。 3. 数值算法的稳定性和收敛性:在材料模型的计算中,需要考虑数值算法的稳定性和收敛性,以确保计算结果的准确性和可靠性。 五、用户材料子程序在实际工程分析中的应用 以轴对称挤压模拟为例,展示了用户材料子程序在实际工程分析中的应用。通过开发适应性的用户材料子程序,可以准确地模拟和分析轴对称挤压过程中的应力、应变和变形等关键参数。然后,对模拟结果进行验证和调整,以优化挤压成形工

abaqus摩擦系数子程序

abaqus摩擦系数子程序 Abaqus摩擦系数子程序 摩擦力是在两个物体相对运动时产生的阻碍力,它对于工程设计和分析非常重要。在有限元分析软件Abaqus中,摩擦力可以通过定义摩擦系数来模拟。本文将介绍Abaqus中的摩擦系数子程序,并探讨其使用方法和应用。 1. 摩擦系数的概念与意义 摩擦系数是描述两个物体之间摩擦特性的参数,它可以是一个常数,也可以是一个与相对速度或其他因素相关的函数。在Abaqus中,摩擦系数被用于计算接触面上的摩擦力,以模拟实际工程中的摩擦现象。 2. Abaqus中的摩擦系数子程序 Abaqus提供了多种摩擦模型和子程序,用于定义接触面的摩擦属性。其中最常用的是COEFICIENT和TIED模型。 - COEFICIENT模型:该模型通过定义一个常数摩擦系数来描述接触面的摩擦特性。用户可以在Abaqus输入文件中使用*CONTACT PAIR和*FRICTION定义接触对和摩擦系数。 - TIED模型:该模型允许用户根据接触面的相对运动或其他因素来定义摩擦系数。用户可以使用*CONTACT PAIR和*FRICTION定义接触对和摩擦行为的子程序。

3. COEFICIENT模型的使用方法 在Abaqus中使用COEFICIENT模型定义摩擦系数非常简单。用户只需要在输入文件中添加以下两个指令: *CONTACT PAIR: 定义接触对 *FRICTION: 定义摩擦系数 在*CONTACT PAIR指令中,用户需要指定接触对的名称、参与接触的两个部件名称以及接触算法等参数。在*FRICTION指令中,用户需要指定摩擦系数的值。 4. TIED模型的使用方法 TIED模型相对于COEFICIENT模型更加灵活,可以根据实际情况定义摩擦系数的变化规律。用户需要在输入文件中添加以下指令: *CONTACT PAIR: 定义接触对 *FRICTION: 定义摩擦系数子程序 在*FRICTION指令中,用户需要定义摩擦系数子程序的名称和子程序的文件路径。子程序是由用户自己编写的一段代码,用于根据接触面的相对运动或其他因素计算摩擦系数。 5. 摩擦系数子程序的编写 摩擦系数子程序是一个用户自定义的代码,它可以根据接触面的状

ABAQUS子程序UMAT里弹塑本构的实现

ABAQUS子程序UMAT里弹塑本构的实现 前言 有限元法是工程中广泛使用的一种数值计算方法。它是力学、计算方法和计算机技术 相结合的产物。在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。所以,伴随着 有限元理论以及计算机技术的发展,大有限元软件的应用证变得越来越普及。 abaqus软件一直以非线性有限元分析软件而闻名于世,这也就是它和ansys,nastran 等软件的区别所在。非线性有限元分析的用处越来越小,因为在所用材料非常复杂很多情 况下,用线性分析去对数已不再有效率。比方说,一个复合材料就无法用传统的线性分析 软件包展开分析。任何与时间存有关联,存有很大加速度量的情况都无法用线性分析法去 处置。多年前,虽然非线性分析能够更适宜、更精确的处置问题,但是由于当时排序设备 的能力比较强悍、非线性分析软件包线性分析功能比较完善,所以通常使用线性处置的方法。 这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似abaqus这样 的产品功能日臻完善,应用日益广泛。 非线性有限元分析在各个生产行业获得了广泛应用,存有不少大型用户。航空航天业 一直就是非线性有限元分析的大客户,一个关键原因就是大量采用复合材料。新一代波音787客机将全部使用复合材料。只有像是abaqus这样的软件,就可以分析包含多个子系统的产品耐久性能够。在汽车业,用线性有限元分析去搞四轮耐久性分析不可能将获得足够 多精确的结果。分析汽车的整体和各个子系统的性能建议(例如装设系统等)须要展开非 线性分析。在土木工程业,abaqus能够处置包含混凝土静动力脱落分析以及沥青混凝土方面的静动力分析,还能够处置高度繁杂非线性材料的受损和脱落问题,这对于大型桥梁结构,高层建筑的结构分析非常有效率。 瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。线性分析在这 种情况下是不适用的。以往有一些专门的软件来分析碰撞问题,但现在abaqus在通用有 限元软件包就能解决这些问题。所以,abaqus可以在一个软件完成线性和非线性分析。 abaqus给用户提供更多了强悍二次开发USB,尤其就是在材料本构方面,给用户研发 符合实际工程的材料本构模型提供更多了强悍协助,本文将针对其用户材料子程序进行研究,总结常用材料模型的开发方法。 目录 全文............................................................................ .............................................................iabstract........

abaqus子程序umat编写hashin准则

Hashin准则是一种常用的材料失效准则,用于模拟复合材料的损伤和失效。在ABAQUS中,你可以使用UMAT(用户自定义材料行为)子程序来实现Hashin准则。 以下是一个简单的UMAT子程序示例,用于实现Hashin准则:```c #include "umat.h" #define N 10 void UMAT(const int *nIntPoints, const int *nExtPoints, const double *dS, const double *dSP, const double *dStrain, const double *dStress, double *dStrainInc, double *dStressInc, double *dStress历史, int *nFail) { double S[N], S0[N]; int i; double E1 = dStrain[0]; double E2 = dStrain[1]; double E3 = dStrain[2]; double sigma1 = dStress[0]; double sigma2 = dStress[1]; double sigma3 = dStress[2]; double sigma历史1 = dStress历史[0]; double sigma历史2 = dStress历史[1];

double sigma历史3 = dStress历史[2]; double m1 = 0.0; double m2 = 0.0; double m3 = 0.0; double n1 = 0.0; double n2 = 0.0; double n3 = 0.0; for (i=0; i

abaqus的fric子程序实例,网上找

abaqus的fric子程序实例,网上找subroutine fric(lm,tau,ddtddg,ddtddp,dslip,sed,spd, 1 ddtddt,pnewdt,statev,dgam,taulm,press,dpress,ddpddh, 2 slip,kstep,kinc,time,dtime,noel,ciname,slname, 3 msname,npt,node,npatch,coords,rcoord,drot,temp, 4 predef,nfdir,mcrd,npred,nstatv,chrlngth,props,nprops) c include 'aba_param.inc' c character*80 ciname,slname,msname dimension tau(nfdir),ddtddg(nfdir,nfdir),ddtddp(nfdir), 1 dslip(nfdir),ddtddt(nfdir,2),statev(*), 2 dgam(nfdir),taulm(nfdir),slip(nfdir),time(2), 3 coords(mcrd),rcoord(mcrd),drot(2,2),temp(2), 4 predef(2,*),props(nprops)c 摩擦系数 F = 0.7 C 对对对对对对对对对对对对对对对由相滑移量判断滑移与粘着的界CRI = 1E-7 c 没有用到以下量,直接清零 DDTDDG( 1 , 1 ) = 0.0 DDTDDG( 1 , 2 ) = 0.0 DDTDDG( 2 , 1 ) = 0.0 DDTDDG( 2 , 2 ) = 0.0

abaqus 子程序 简单案例

abaqus 子程序简单案例 1. 案例一:ABAQUS子程序在计算机辅助工程中的应用 在计算机辅助工程中,ABAQUS子程序是一种被广泛应用的工具,用于求解各种复杂的物理问题。它可以在ABAQUS有限元软件中调用,通过编写用户自定义的子程序来实现特定的功能。下面将介绍一些常见的ABAQUS子程序案例。 2. 案例二:ABAQUS子程序在材料力学中的应用 ABAQUS子程序在材料力学中的应用非常广泛。例如,可以通过自定义的子程序来模拟材料的非线性行为、塑性变形、断裂行为等。通过在子程序中编写相应的材料本构模型和损伤模型,可以准确地预测材料的力学性能。 3. 案例三:ABAQUS子程序在流体力学中的应用 ABAQUS子程序在流体力学中也有重要的应用。例如,可以通过自定义的子程序来模拟流体的非牛顿性、多相流动、湍流等现象。通过在子程序中编写相应的流体本构模型和湍流模型,可以准确地模拟流体的流动行为。 4. 案例四:ABAQUS子程序在结构力学中的应用 ABAQUS子程序在结构力学中也非常有用。例如,可以通过自定义的子程序来模拟结构的非线性行为、接触和摩擦、动力响应等。通过在子程序中编写相应的结构本构模型和接触模型,可以准确地预

测结构的力学性能。 5. 案例五:ABAQUS子程序在热传导中的应用 ABAQUS子程序在热传导中的应用也非常广泛。例如,可以通过自定义的子程序来模拟材料的热传导行为、热辐射、相变等。通过在子程序中编写相应的热传导模型和相变模型,可以准确地预测材料的热学性能。 6. 案例六:ABAQUS子程序在电磁场中的应用 ABAQUS子程序在电磁场中的应用也有一定的研究价值。例如,可以通过自定义的子程序来模拟电磁场的非线性行为、磁饱和、电磁感应等。通过在子程序中编写相应的电磁场模型和电磁感应模型,可以准确地模拟电磁场的行为。 7. 案例七:ABAQUS子程序在声学中的应用 ABAQUS子程序在声学领域中也有一定的应用。例如,可以通过自定义的子程序来模拟声波的传播、声源的辐射、声学场的耦合等。通过在子程序中编写相应的声学模型和耦合模型,可以准确地模拟声学现象。 8. 案例八:ABAQUS子程序在生物力学中的应用 ABAQUS子程序在生物力学中的应用也非常重要。例如,可以通过自定义的子程序来模拟生物组织的力学行为、生物材料的损伤、生物流体的流动等。通过在子程序中编写相应的生物力学模型和流体

abaqus1用户材料子程序

19 ABAQUS用户材料子程序(UMAT) 虽然ABAQUS为用户提供了大量的单元库和求解模型,使用户能够利用这些模型处理绝大多数的问题;但是现实世界毕竟十分复杂,ABAQUS不可能把所有可能出现的问题都包含进去。所以ABAQUS提供了大量的用户子程序(User Subroutine)。用户子程序允许用户在找不到合适模型的情况下自行定义符合自己问题的模型。这些用户子程序涵盖了建模从载荷到单元的几乎各个部分。 ABAQUS为用户提供的这个接口,允许用户通过自定义的子程序定制ABAQUS,以实现特定的功能。用户子程序具有以下的功能和特点:(1)如果ABAQUS的一些固有选项模型功能有限;用户子程序可以提高ABAQUS中这些选项的功能;(2)通常用户子程序是用FORTRAN语言的代码写成;(3)它可以以几种不同的方式包含在模型中;(4)由于它们没有存储在restart文件中,如果需要的话,可以在重新开始运行时修改它;(5)在某些情况下它可以利用ABAQUS允许的已有程序。 要在模型中包含用户子程序,可以利用ABAQUS执行程序,在abaqus执行程序中应用user选项指明包含这些子程序的FORTRAN源程序或者目标程序的名字。 提示:ABAQUS的输入文件除了可以通过ABAQUS/CAE的作业模块中提交运行外,还可以在ABAQUS Command窗口中输入ABAQUS执行程序直接运行: ABAQUS job=输入文件名 user=用户子程序的Fortran文件名 ABAQUS/Standard和ABAQUS/Explicit都支持用户子程序功能,但是他们所支持的用户子程序种类不尽相同,读者在需要使用时请注意查询手册。 在接下来的最后两章里,我们将讨论两种常用的用户子程序——用户材料子程序和用户单元子程序。 本章将通过在ABAQUS/Standard中创建Johnson-Cook的材料模型,对编写Standard 的用户材料子程序UMAT进行一个简单介绍。ABAQUS/Explicit中的用户材料子程序VUMAT的思想与之相似,但是由于隐式和显式两种方法本身的差异,它们之间也有一些不同,请读者在自己具体使用前首先仔细查阅ABAQUS手册中的相关内容。

ABAQUS用户子程序学习小结

ABAQUS用户子程序学习小结 1 FORTRAN语言中的“I-N规则”:I、J、K、L、M、N开头的为整型变量,其他开头为实型变量; 1.1 Fortran书写格式:1-5列:标号区;6列:续写标号区,一般就写"1";7-72列:语句区,本区内空格无效;注释行以C开头,本行内书写格式无要求;参考周煦《FORTRAN77结构化程序设计》,中国科学技术出版社,1995,38-40页 2 DIMENSION COORDS(3)表示声明一个含3个元素的数组,下标分别为1、2、3,访问形式为COORDS(n),n为1,3; 3 子程序(*.for)文件中如何输出调试信息: WRITE(6,*)'COORDS(1)',COORDS(1),在*.dat文件中可看到输出,如果希望WRITE输出到msg文件中,则写为WRITE(7,*)'COORDS...; 4 用户子程序DLOAD中COORDS数组的含义:COORDS(1)也是一个数组,存贮单元集合中所有单元积分点的X坐标,COORDS(2)存贮Y坐标,相应INP文件中的写法为: *DLOAD PY,PYNU 其中PY为单元集合名称,定义方法为: *Elset, elset=BEAM, generate 1, 5, 1 ... *ELSET,ELSET=PY BEAM 5 DLOAD中F的定义方法:

F只有定义在单元积分点上才有效,例如: F=1.0*COORDS (1) 附一个简单实例: beam.inp文件: *Heading ** Job name: Job-1 Model name: beam *Preprint, echo=NO, model=NO, history=NO, contact=NO ** ** PARTS ** *Part, name=PART-1 *End Part ** ** ASSEMBLY ** *Assembly, name=Assembly ** *Instance, name=PART-1-1, part=PART-1 *Node 1, 0., 0. 2, 20., 0. 3, 40., 0. 4, 60., 0. 5, 80., 0. 6, 100., 0. *Element, type=B31

ABAQUS用户子程序

A B A Q U S用户子程序-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

ABAQUS用户子程序 ABAQUS/Standard subroutines: 1.CREEP: Define time-dependent, viscoplastic behavior (creep and swelling). 定义和时间相关的、粘塑性的运动(蠕变和膨胀) 2. DFLOW: Define nonuniform pore fluid velocity in a consolidation analysis. 在压实分析中,定义非均匀孔隙流速度 3. DFLUX: Define nonuniform distributed flux in a heat transfer or mass diffusion analysis. 在热传递和质量扩散分析中,定义非均匀的分布流量 4. DISP: Specify prescribed boundary conditions. 指定规定的边界条件 5. DLOAD: Specify nonuniform distributed loads. 指定非均匀的分布荷载 6. FILM: Define nonuniform film coefficient and associated sink temperatures for heat transfer analysis. 对热传递分析指定非均匀的膜层散热系数和联合的散热器温度 7. FLOW: Define nonuniform seepage coefficient and associated sink pore pressure for consolidation analysis. 对压实分析定义非均匀的渗流系数和渗入孔隙压力 8. FRIC: Define frictional behavior for contact surfaces. 对接触面定义摩擦 9. GAPCON: Define conductance between contact surfaces or nodes in a fully coupled temperature-displacement analysis or pure heat transfer analysis. 在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义接触面或节点间的导热系数。 10. GAPELECTR: Define electrical conductance between surfaces in a coupled thermal-electrical analysis. 在耦合热电分析中,定义表面间的导电系数 11. HARDINI: Define initial equivalent plastic strain and initial backstress tensor. 定义初始等效应变和初始反应力张量 12. HETVAL: Provide internal heat generation in heat transfer analysis. 在热传递分析中提供初始热 13. MPC: Define multi-point constraints. 定义多点约束 14. ORIENT: Provide an orientation for defining local material directions or local directions for kinematic coupling constraints or local rigid body directions for inertia relief. 为定义局部材料方向提供定位;运动学耦合约束的局部方向;惯性释放的局部刚体方向。 15. RSURFU: Define a rigid surface. 定义一个刚性面 16. SDVINI: Define initial solution-dependent state variable fields. 定义初始和结果相关的变量场 17. SIGINI: Define an initial stress field. 定义初始应力场 18.UCORR: Define cross-correlation properties for random response loading.

ABAQUS中Fortran子程序调用方法

第一种方法: / o/ J5 @6 U/ ^- o$ 1. 建立工作目录/ ]" 2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc或aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc; # ~/ |0 I0 E6 {, @4 X3 q: W3. 将编译的fortran程序拷贝到工作目录; 4. 将.obj文件拷贝到工作目录; 5. 建立好输入文件.inp; 6. 运行abaqusjob=inp_name user=fortran name即可。 第二种方法: 在Job模块里,创建工作,在EditJob对话框中选择General选项卡,在Usersubroutine file中点击Select 按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。 , D8 i7 d/r c6 @" | 以下是网上摘录的资料,供参考:. |$ t/ }$W7 Y6 m4 h6 D6 j 用户进行二次开发时,要在命令行窗口执行下面的命令: 4 O. R+ ^,@( ? abaqus job=job_name user=sub_name ABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。这种运行机制与ANSYS、LS-DYNA、marc等都不同。 : j6 g' R-o( {0 [* N2 J3 X这些生成的临时文件要到文件夹C:\Documentsand Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。 1子程序格式(程序后缀是.f; .f90; .for;.obj??) 答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。在Abaqus中,运行abaqusj=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。 如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。 2CAE中如何调用?Command下如何调用? 答:CAE中在creat job的jobmanager中的general中可以指定子程序; Command下用命令:abaqus j=jobnameuser=userfilename (无后缀); 3若有多个子程序同时存在,如何处理 答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册) 4我对VF不是很熟,是否可以用VC,C++编写子程序? A: 若要在vf中调试,那么应该根据需要把SITE文件夹中的ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应的位置,并改名为ABA_PARAM.INC即可。 据说6.4的将可以,6.3的你可以尝试着将VC,C++程序编译为obj文件,没试过。在你的工作目录下应该已经存在ufield.obj和uvarm.obj这两个文件(这两个文件应该是你分别单独调试ufield.FOR和uvarm.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UV ARM 和UFIELD这两个subroutine,显然会造成重复定义,请查实。 用户子程序的使用 假设你的输入文件为:a.inp b.for 那么在ABAQUS Command 中的命令应该是这样的: abaqusjob=a user=b

相关文档
最新文档