- 积分
- 0
- 注册时间
- 2012-10-25
- 仿真币
-
- 最后登录
- 1970-1-1
|
本人最近做了一个法兰-薄壁圆管的多焊道焊接,焊缝的形状和网格如图所示,子程序如下: 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
C
u=20
i=220
effi=0.535
v=1.333
q=u*i*effi
r1=48.93
r2=44.80
r3=44.45
vr1=v/r1
vr2=v/r2
vr3=v/r3
C
phi1=vr1*TIME(2)
C
phi2=vr2*(TIME(2)-230.4)
C
phi3=vr3*(TIME(2)-441.6)
C
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
C
x01=0
y01=1.45
z01=r1
C INITIAL COORDINATES OF 1ST PASS
x02=0
y02=8.7
z02=r2
C INITIAL COORDINATES OF 2ND PASS
x03=0
y03=10
z03=r3
C INITIAL COORDINATES OF 3RD PASS
a1=6
C REAR semiaxis direction
b1=0.8
C depth direction
c1=5.5
C width direction
aa1=2.5
C FRONT semi axis direction
f1=1.4
C heat efficiency of front semi-ellipsoid
a2=5
C REAR semiaxis direction
b2=6
C depth direction
c2=4
C width direction
aa2=2
C FRONT semi axis direction
f2=1.4
C heat efficiency of front semi-ellipsoid
a3=4
C REAR semiaxis direction
b3=0.8
C depth direction
c3=0.3
C width direction
aa3=1.5
C FRONT semi axis direction
f3=1.4
C heat efficiency of front semi-ellipsoid
PI=3.1415926
beta=0.000
aacos1=a1/cos(beta)
cccos1=c1*cos(beta)
aaacos1=aa1/cos(beta)
cccos1=c1*cos(beta)
heat1=6.0*sqrt(3.0)*q*f1/(aa1*b1*c1*PI*sqrt(PI))
heat2=6.0*sqrt(3.0)*q*(2.0-f1)/(a1*b1*c1*PI*sqrt(PI))
C
aacos2=a2/cos(beta)
cccos2=c2*cos(beta)
aaacos2=aa2/cos(beta)
cccos2=c*cos(beta)
heat3=6.0*sqrt(3.0)*q*f2/(aa2*b2*c2*PI*sqrt(PI))
heat4=6.0*sqrt(3.0)*q*(2.0-f2)/(a2*b2*c2*PI*sqrt(PI))
C
aacos3=a3/cos(beta)
cccos3=c3*cos(beta)
aaacos3=aa3/cos(beta)
cccos3=c3*cos(beta)
heat5=6.0*sqrt(3.0)*q*f3/(aa3*b3*c3*PI*sqrt(PI))
heat6=6.0*sqrt(3.0)*q*(2.0-f3)/(a3*b3*c3*PI*sqrt(PI))
C
IF(-60.45.LE.x.LE.0) THEN
theta1=acos(z/sqrt(x*x+z*z))
ELSE
theta1=2*PI-acos(z/sqrt(x*x+z*z))
ENDIF
C
IF(-53.41.LE.x.LE.0) THEN
theta2=acos(z/sqrt(x*x+z*z))
ELSE
theta2=2*PI-acos(z/sqrt(x*x+z*z))
ENDIF
C
IF(-45.15.LE.x.LE.0) THEN
theta3=acos(z/sqrt(x*x+z*z))
ELSE
theta3=2*PI-acos(z/sqrt(x*x+z*z))
ENDIF
C
deta1=theta1-phi1
x1=sqrt(x*x+z*z)*sin(deta1)
y1=1.45
z1=sqrt(x*x+z*z)*cos(deta1)
C
deta2=theta2-phi2
x2=sqrt(x*x+z*z)*sin(deta2)
y2=8.7
z2=sqrt(x*x+z*z)*cos(deta2)
C
deta3=theta3-phi3
x3=sqrt(x*x+z*z)*sin(deta3)
y3=10
z3=sqrt(x*x+z*z)*cos(deta3)
C
shape1=exp(-3.0*(x1-x01)**2/aaacos1**2-3.0*(y1-y01)**2/b1**2
$ -3.0*(z1-z01)**2/cccos1**2)
shape2=exp(-3.0*(x1-x01)**2/aacos1**2-3.0*(y1-y01)**2/b1**2
$ -3.0*(z1-z01)**2/cccos1**2)
C
shape3=exp(-3.0*(x2-x02)**2/aaacos2**2-3.0*(y2-y02)**2/b2**2
$ -3.0*(z2-z02)**2/cccos2**2)
shape4=exp(-3.0*(x2-x02)**2/aacos2**2-3.0*(y2-y02)**2/b2**2
$ -3.0*(z2-z02)**2/cccos2**2)
C
shape5=exp(-3.0*(x3-x03)**2/aaacos3**2-3.0*(y3-y03)**2/b3**2
$ -3.0*(z3-z03)**2/cccos3**2)
shape6=exp(-3.0*(x3-x03)**2/aacos3**2-3.0*(y3-y03)**2/b3**2
$ -3.0*(z3-z03)**2/cccos3**2)
C JLTYP=1,表示为体热源
JLTYP=1
DO JSTEP=1,64,1
IF(theta1.GE.phi1) THEN
FLUX(1)=heat1*shape1
C ELSEIF(JSTEP==1.OR.63.OR.64) THEN
C FLUX(1)=0
else
FLUX(1)=heat2*shape2
ENDIF
ENDDO
C
DO JSTEP=65,126,1
IF(theta2.GE.phi2) THEN
FLUX(1)=heat3*shape3
C ELSEIF(JSTEP==125.OR.126) THEN
C FLUX(1)=0
else
FLUX(1)=heat4*shape4
ENDIF
ENDDO
C
DO JSTEP=127,188,1
IF(theta3.GE.phi3)THEN
FLUX(1)=heat5*shape5
C ELSEIF(JSTEP==187.OR.188) THEN
C FLUX(1)=0
else
FLUX(1)=heat6*shape6
ENDIF
ENDDO
C
RETURN
END
请群里的大神帮我看看子程序是不是有什么问题,inp文件比较大,没有上传。。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|