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

abaqus怎么用fortran怎么编写子程序?,第1张

第一种方法:

1. 建立工作目录/ ]"

2. 将ABAQUS安装目录\6.4-pr11\site下的aba_param_dp.inc 或 aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc;

3. 将编译的fortran程序拷贝到工作目录;

4. 将.obj文件拷贝到工作目录;

5. 建立好输入文件.inp;

6. 运行abaqus job=inp_name user=fortran name即可。

第二种方法:

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

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)半椭球体热源


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11496662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存