子程序abaqus,子程序编程举例详细说明
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