子程序abaqus,子程序编程举例详细说明

http://www.itjxue.com  2023-01-09 05:03  来源:未知  点击次数: 

ABAQUS中在哪里编写用户子程序?

其实,ABAQUS的用户子程序在很多地方都可以编写。

常用的有:

1.新建一个txt文档,在里面写好你的用户子程序Fortran代码,然后保存好,并将文件名的后缀改为.for或者.f90就可以了。

2.如果你需要fortran语法的检查方便,可以打开安装好的fortran软件,然后在里面编写你的用户子程序,写好之后保存就可以了。32位windows操作系统可以用compaq

visual

fortran

6.5或6.6版本的;64位windows操作系统,例如win7的,可以安装

microsoft

visual

studio

intel

visual

fortran

来编写代码。

ABAQUS调用用户子程序的话,只要在inp文件中加入

调用子程序的关键词

就可以调用子程序了。

希望对你有帮助,如果觉得答案好,请采纳。

abaqus子程序怎么加密

请参考以下方法。

1、加密命令:abaqusencryptinput=job-1。inpoutput=job-1-e。inppassword=123456,虽然只是通过给定密码与原字符进行了移位运算,但对于普通人来讲已经起到了很好的保护作用了。

2、解密命令:abaqusdecryptinput=job-1-e。inpoutput=job-1。inppassword=123456。

abaqus怎么用fortran怎么编写子程序?

第一种方法: \x0d\x0a1. 建立工作目录/ ]"\x0d\x0a2. 将ABAQUS安装目录\6.4-pr11\site下的aba_param_dp.inc 或 aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc;\x0d\x0a3. 将编译的fortran程序拷贝到工作目录;\x0d\x0a4. 将.obj文件拷贝到工作目录;\x0d\x0a5. 建立好输入文件.inp;\x0d\x0a6. 运行abaqus job=inp_name user=fortran name即可。\x0d\x0a第二种方法:\x0d\x0a在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。

abaqus子程序如何建立console

建立工作目录 。

将ABAQUS安装目录\6.4 pr11\site下的aba param dp.inc 或 aba param sp.inc拷贝到工作目录,并改名为aba param.inc。 将编译的fortran程序拷贝到工作目录。将.obj文件拷贝到工作目录。建立好输入文件.inp。运行abaqus job=inp_name user=fortran name即可。

在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。

ABAQUS子程序 DFLUX

Abaqus的热源程序的接口是DFLUX,可以定义非均匀的与位置、时间、温度、单元和积分点相关的热源方程。调用计算过程中,每一个单元积分点都会从这个子程序得到。当单元为一次单元时,不管是热传导分析、温度-结构耦合分析或者温度-电场-结构耦合分析时,将节点作为flux积分点进行计算。

基本格式如下:

最主要的就是定义FLUX().

FLUX(1):流经模型某点的热流。对于面热源,单位是JT–1L–2,对于体热源是JT–1L–3。

FLUX(2):热量对温度的变化率。

SOL:此时此刻求解变量的估算值(传热分析中的温度,质量扩散分析中的浓度)。

KSTEP:分析步

KINC:增量步

TIME(1):(瞬态分析中)当前分析步时间

TIME(2):(瞬态分析中)当前总时间

NOEL:单元号。

NPT:单元积分点号。单元或单元表面上的积分点编号,具体取决于表面还是体。

COORDS:包含点坐标的数组。如果考虑分析步中几何非线性,则这些坐标是当前坐标。否则是原始坐标。

JLTYP:表征热源形式,对于如下:

JLTYP Flux type

0 Surface-based flux

1 BFNU

11 S1NU (SNEGNU for heat transfer shells)

12 S2NU (SPOSNU for heat transfer shells)

13 S3NU

14 S4NU

15 S5NU

16 S6NU

TEMP:当前温度

PRESS:当前的等效应力

SNAME:对于面热源时适用,表示surface的名称。

解释:

parameter(one=1.d0) !定义一个常数

DIMENSION COORDS(3),FLUX(2),TIME(2) !定义数组,都是一维数组,元素分别为3,2,2个

CHARACTER 80 SNAME 定义字符型,长度为80

q=633 2.27 0.75 !变量赋值

v=0.00227

d=v TIME(2) !TIME(2)代表第二个元素

x=COORDS(1)

y=COORDS(2)

z=COORDS(3)!将COORDS的三个元素分别赋值于,x,y,z.

x0=0

y0=0

z0=0

a=0.0019

b=0.0032

c=0.0028

PI=3.1415 !

heat=6 sqrt(3.0) q/(a b c PI sqrt(PI))!

shape=exp(-3 (x-x0) 2/b 2-3 (y-y0) 2/c 2-3 (z-z0-d) 2/a 2)!

C JLTYP=1,表示为体热源

JLTYP=1

if (JSTEP. eq. one) then!注意one是一个变量,在一开头就赋值了.

C FLUX(1)=heat shape-1100000 !C表示注解,这个一般在FORTRAN77中常常用这个符号,现在人多用!来注解.或者说注释行.

FLUX(1)=heat*shape

endif

RETURN

END

(1)高斯面热源

(2)半椭球体热源

求助ABAQUS子程序运行错误

运行一下fortran安装文件夹中的 \Intel\Compiler\11.1\038\bin\ia32\ifortvars_ia32.bat

或者ifortvars_ia64.bat先,设置一下fortran环境。

首先介绍几个子程序:

一.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

(责任编辑:IT教学网)

更多

推荐广告特效文章