| 查看: 2379 | 回复: 5 | ||
[求助]
求助ABAQUS软件中环形焊接移动热源FORTRAN程序问题 已有2人参与
|
|
大家好: 最近写了个程序想算一下环焊的温度场,前期是分段加载温度曲线可以进行计算。 后来想用FORTRAN写移动热源代入,绕圆周方向一圈。是拿直线焊缝的程序修改的,加了个平移和旋转矩阵而已,平移是换了旋转的圆心,旋转是绕Y轴的。然后之后调理了一下焊枪角度又乘了个旋转矩阵33度。这里绕Z轴的了。 结果发现提交的时候显示编译有问题,我在VS里面建了IVF工程但是按了BUILD之后毫无反应,0 SUCCESS 0 FAIL 1 UPDATE 回头又看了下程序可惜实在看不出问题所在,请问有没有同学能指导一下我,告诉我可能哪里会存在问题呢?谢谢啦! 附上环焊的INP和FOR文件。FOR文件没传上……就附在下面啦 subroutine usdfld(field,statev,pnewdt,direct,t,celent,time,dtime, 1 cmname,orname,nfield,nstatv,noel,npt,layer,kspt,kstep,kinc, 1 ndi,nshr,coord,jmac,jmtyp,matlayo,laccfla) c include 'aba_param.inc' c character*80 cmname,orname character*3 flgray(15) dimension field(nfield),statev(nstatv),direct(3,3),t(3,3),time(2) 1 ,coord(*),jmac(*),jmtyp(*) dimension array(15),jarray(15) c call getvrm('temp',array,jarray,flgray,jrcd, 1 jmac, jmtyp, matlayo, laccfla) c statev(1)=max(statev(1),array(1)) c return end c SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,JLTYP, 1 TEMP,PRESS,SNAME) c INCLUDE 'ABA_PARAM.INC' c DIMENSION FLUX(2),TIME(2),COORDS(3) CHARACTER*80 SNAME c v=10 t=TIME(1) FLUX(1)=0 PI=3.14159 R=50 h=0.5 waittime=0 angle=(v*TIME(1))/R ang0=0 theta=-angle+ang0 x=(COORDS(1)-R)*COS(theta)-COORDS(3)*SIN(theta) y=COORD(2)+h z=(COORDS(1)-R)*SIN(theta)+COORDS(3)*COS(theta) X1=(COORDS(1)-R)*COS(ang0)-COORDS(3)*SIN(ang0) X2=X2 X3=(COORDS(1)-R)*SIN(ang0)+COORDS(3)*COS(ang0) x=x*COS(-33./180.*PI)+y*SINC(-33./180.*PI) y=-x*COS(-33./180.*PI)*+y*COS(-33./180.*PI) z=z c ff=0.6 fr=2-ff a=6 b=2*a bf=b*ff*0.5 br=b*fr*0.5 c=3 s=v*t depth=1.5 heat=240*24*0.8*1000 arc1=ATAN(COORDS(2)/COORDS(3)) d01=exp(-3*(X1**2/(a)**2+X2**2/(bf)**2+X3**2/(c)**2)) d02=exp(-3*(X1**2/(a)**2+X2**2/(br)**2+X3**2/(c)**2)) d1=exp(-3*(x**2/(a)**2+y**2/(bf)**2+z**2/(c)**2)) d2=exp(-3*(x**2/(a)**2+y**2/(br)**2+z**2/(c)**2)) if((y.ge.0) $ .and.(TIME(2).gt.0).and.(TIME(2).le.waittime)) then FLUX(1)=heat*d01*0.6*6.0*sqrt(3.)/(pi*(a*bf*c)*sqrt(pi)) endif if((y.lt.0) $ .and.(TIME(2).gt.0).and.(TIME(2).le.waittime)) then FLUX(1)=heat*d02*1.4*6.0*sqrt(3.)/(pi*(a*br*c)*sqrt(pi)) endif if((arc1.gt.angle).and.(TIME(2).gt.waittime) $ .and.(TIME(2).le.22.5)) then FLUX(1)=heat*d1*0.6*6.0*sqrt(3.)/(pi*(a*bf*c)*sqrt(pi)) endif if((arc1.le.angle).and.(TIME(2).gt.waittime) $ .and.(TIME(2).le.22.5)) then FLUX(1)=heat*d2*1.4*6.0*sqrt(3.)/(pi*(a*br*c)*sqrt(pi)) endif c RETURN END |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : Job-6.inp
2015-11-25 14:07:09, 21.93 M
» 猜你喜欢
垃圾破二本职称评审标准
已经有18人回复
职称评审没过,求安慰
已经有53人回复
毕业后当辅导员了,天天各种学生超烦
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
EST投稿状态问题
已经有7人回复
2楼2015-11-26 08:38:16
3楼2016-01-05 08:45:22
4楼2017-03-31 07:01:04
wanghuanjie
新虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 80.3
- 散金: 5
- 帖子: 28
- 在线: 7.4小时
- 虫号: 4154533
- 注册: 2015-10-18
- 性别: GG
- 专业: 制造系统与自动化
5楼2018-04-26 21:40:53
6楼2022-03-05 10:50:37













回复此楼