多道dflux移动热源顺序加载,构成一个矩形
大家看我的编写哪里出现问题了,只有第一道正常移动,第二道就跑到了区域外,有看帖子说把time(2)改成time(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
IF(TIME(2) .GT. 0 .AND. TIME(2) .LE. 1.75)THEN
CALL DFLUX1(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME )
ELSE IF(TIME(2) .GT. 1.75 .AND. TIME(2) .LE. 3.4)THEN
CALL DFLUX2(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
2 TEMP,PRESS,SNAME )
ELSE IF(TIME(2) .GT. 3.4 .AND. TIME(2) .LE. 5.1)THEN
CALL DFLUX3(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
3 TEMP,PRESS,SNAME )
ELSE IF(TIME(2) .GT. 5.1 .AND. TIME(2) .LE. 6.8)THEN
CALL DFLUX4(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
4 TEMP,PRESS,SNAME )
END IF
RETURN
END
SUBROUTINE DFLUX1(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
q=1000
v=0.04
d=v*TIME(2)
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
x0=0.034
y0=0.002
z0=0.015
a=0.0028
b=0.0034
c=0.0032
PI=3.1415
heat=6*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI))
shape1=exp(-3*(x-x0)**2/c**2-3*(y-y0)**2/a**2-3*(z-z0-d)**2/b**2)
C JLTYP=1,表示为体热源
JLTYP=1
FLUX(1)=heat*shape1
RETURN
END
SUBROUTINE DFLUX2(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
q=1000
v=0.04
d=v*TIME(2)
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
x0=0.033
y0=0.002
z0=0.084
a=0.0028
b=0.0034
c=0.0032
PI=3.1415
heat=6*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI))
shape2=exp(-3*(x-x0+d)**2/c**2-3*(y-y0)**2/a**2-3*(z-z0)**2/b**2)
C JLTYP=1,表示为体热源
JLTYP=1
FLUX(1)=heat*shape2
RETURN
END
SUBROUTINE DFLUX3(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
q=1000
v=0.04
d=v*TIME(2)
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
x0=-0.034
y0=0.002
z0=0.085
a=0.0028
b=0.0034
c=0.0032
PI=3.1415
heat=6*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI))
shape3=exp(-3*(x-x0)**2/c**2-3*(y-y0)**2/a**2-3*(z-z0+d)**2/b**2)
C JLTYP=1,表示为体热源
JLTYP=1
FLUX(1)=heat*shape3
RETURN
END
SUBROUTINE DFLUX4(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
q=1000
v=0.04
d=v*TIME(2)
x=COORDS(1)
y=COORDS(2)
z=COORDS(3)
x0=-0.035
y0=0.002
z0=0.016
a=0.0028
b=0.0034
c=0.0032
PI=3.1415
heat=6*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI))
shape4=exp(-3*(x-x0-d)**2/c**2-3*(y-y0)**2/a**2-3*(z-z0)**2/b**2)
C JLTYP=1,表示为体热源
JLTYP=1
FLUX(1)=heat*shape4
RETURN
END 你这何必函数套两层。。。一层就能完成吧 凤麒 发表于 2018-11-12 17:52
你这何必函数套两层。。。一层就能完成吧
嗯嗯,当时不太懂,这些都是copy别人的
页:
[1]