- 积分
- 0
- 注册时间
- 2017-4-12
- 仿真币
-
- 最后登录
- 1970-1-1
|
例子讨论的模型和for都来自于论坛前辈以前的程序,提前感谢!因为初次接触到子程序,自己研究两三天也没明白其中关键的问题,所以特向大家请教一下
贴上子程序 SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
1 TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C parameter(one=1.d0)
DIMENSION COORDS(3),FLUX(2),TIME(2)
CHARACTER*80 SNAME
q=15*210*0.7 热流幅值
v=0.02 移动速度
d=v*TIME(2) 移动距离
x=COORDS(1) 传入坐标
y=COORDS(2)
z=COORDS(3)
x0=0 热源初始位置
y0=0
z0=0.01
a=0.003
b=0.005
c=0.002
PI=3.1415
heat=6*sqrt(3.0)*q/(a*b*c*PI*sqrt(PI)) 高斯热源
shape=exp(-3*(z-z0-d)**2/c**2-3*x**2/a**2)
FLUX(1)=heat*shape
RETURN
END
主要有一下几个问题
1.子程序参数COODRS传递的是什么坐标,用户手册里说明COODRS数组是当前积分点坐标,单元积分点有很多个,到底是指的什么积分点呢?
2. 为什么用coodrs(3)即z,减去d既可以实现沿着Z方向的移动,试过把shape里面的(z-z0-d)中d删除计算,出现的是热源不移动,而其他地方都没有热源出现,coodrs的赋值不是要改变xyz吗?
感觉总归是坐标传递没搞明白!!
http://forum.simwe.com/forum.php ... 8%E7%83%AD%E6%BA%90这是inp文件地址,因为用户组限制所以贴上原贴地址,感谢
|
|