- 积分
- 0
- 注册时间
- 2016-3-24
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2016-4-2 14:38:44
|
显示全部楼层
来自 辽宁
本帖最后由 wei~wei 于 2016-4-2 14:51 编辑
谢谢你的链接,挺有帮助的,问题已经解决了,但又遇到了新的问题,就是进行多层焊时,不知道怎么在子程序中设置循环,尝试着改了几个子程序,还是不行,总提醒程序编译错误,不知道你能不能解决一下,非常感谢,下面是焊单层时的子程序:
SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
DIMENSION COORDS(3),FLUX(2),TIME(2)
CHARACTER*80 SNAME
wu=380.0
wi=2.0
effi=0.8
v=0.006
q=wu*wi*effi
d=v*TIME(2)
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
x0=0.004
y0=0.0
z0=0.004
a=0.003
b=0.003
c=0.002
aa=0.006
f1=1.0
PI=3.1415926
beta=0.0
aacos=a/cos(beta/180.0*PI)
cccos=c*cos(beta/180.0*PI)
aaacos=aa/cos(beta/180.0*PI)
cccos=c*cos(beta/180.0*PI)
heat1=6.0*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI))*f1
heat2=6.0*sqrt(3.0)*q/(aa*b*c*PI*sqrt(PI))*(2.0-f1)
shape1=exp(-3.0*(x-x0-d)**2/aacos**2-3.0*(y-y0)**2/b**2
$ -3.0*(z-z0)**2/cccos**2)
shape2=exp(-3.0*(x-x0-d)**2/aaacos**2-3.0*(y-y0)**2/b**2
$ -3.0*(z-z0)**2/cccos**2)
C JLTYP=1,表示为体热源
JLTYP=1
IF(x .GE.(x0+d)) THEN
FLUX(1)=heat1*shape1
ELSE
FLUX(1)=heat2*shape2
ENDIF
RETURN
END |
|