24小时热门版块排行榜    

查看: 1252  |  回复: 1

lifenhong

新虫 (初入文坛)

[求助] marc模拟晶粒尺寸变化,能够提交运算,其他的程序可以,这个不行,结果不显示晶粒云图

subroutine ugrain(m,n,nn,kc,mats,eplas,erate,dt,dtdl,
     * ignmod,grndat,grnsiz,time,deltime)
c
      implicit real*8 (a-h,o-z)
c
      dimension dt(1),dtdl(1),grndat(1)
c
c 计算晶粒大小的用户子程序
c
c m 单元号
c n elsto number
c nn 积分点号
c kc 层号
c mats 材料号
c eplas 等效塑性应变
c erate 等效塑性应变率
c dt 增量步开始时的状态变量(state variables)
c dtdl 状态变量增量
c grndat 材料数据
c grndat(1) 指初始晶粒尺寸大小
c grnsiz 当前晶粒尺寸大小(grain size)
c time 增量步开始时的时间
c deltime 时间增量
c ignmod 不同的模型的输入模式 (如果是用户定义的,则值为-1)
c
      real Nbeff,z,dsrx,dmrx,tsrx,tmrx,tip,a1,a2,a3,a4,a5,a6,epsc,Ep
      real Nb,Mn,Si,b1,bb
      include 'C:\MSC.Software\Marc\2010\marc2010\common/concom'
      include 'C:\MSC.Software\Marc\2010\marc2010\common/creeps'
c   
cc
c 初始晶粒尺寸大小 grndat(1)
cc
      grndat(1)=205.9
cc
c 判断等效塑性应变率 erate 是否小于零
cc
      if (erate<0) then
      erate=0
      end if
cc
c 求解参数 Z 和临界应变 epsc
cc
      z=erate*exp(306085/(8.314*(dt(1)+273)))
      epsc=5.6E-4*grndat(1)**0.3*z**0.17
c
      if (eplas>=0.04) then
c 当等效塑性应变 eplas>=0.04 时,
c 才会有再结晶过程发生
       if (eplas<epsc) then
c 当等效塑性应变小于临界应变时,即 eplas<epsc ,
c 发生静态再结晶
      tip=abs(time+deltime-2.5)
c
      a1=exp(-45000.0/(8.31*(dt(1)+273)))
      a2=exp(230000.0/(8.31*(dt(1)+273)))
cc
c 静态再结晶晶粒尺寸(微米) dsrx
c 发生 50%再结晶所需要的时间 tsrx
      dsrx=343.0*eplas**(-0.5)*grndat(1)**0.4*a1
      tsrx=2.3E-15*eplas**(-2.5)*grndat(1)**2.0*a2
cc
c 计算再结晶百分数 xv ,
c 并且判断 xv 是否合理(应该介于 0~ 1 之间)
      tt=tsrx ! t0.5
c xv=1-exp(-log(2.0)*(tip/tt)**1.5)
      xv=1-exp(-0.693*(tip/tt)**1.5)
c
      if (xv<0) then
      xv=0
      end if
      if (xv>1) then
      xv=1
      end if
cc
c 当再结晶百分数 xv>=0.95 ,
c 晶粒尺寸为再结晶完成后的再结晶晶粒大小;
c 当再结晶百分数 xv<0.95 ,
c 晶粒尺寸为平均晶粒尺寸
      if (xv>=0.95) then
      grnsiz=dsrx
      else
      grnsiz=grndat(1)*(1-xv)+dsrx*xv
      end if
      else
c 当等效塑性应变大于或等于临界应变时,即 eplas>=epsc ,
c 发生动态再结晶
      tip=abs(time+deltime-10)
cc
c 动态再结晶晶粒尺寸(微米) Dmrx
c 发生 50%再结晶所需要的时间 tmrx
      dmrx=2.6E4*z**(-0.23)
      tmrx=0.4*z**(-0.8)*exp(240000.0/(8.31*(dt(1)+273)))
cc
c 计算再结晶百分数 xv ,
c 并且判断 xv 是否合理(应该介于 0~ 1 之间)
      tt=tmrx ! t0.5
      xv=1-exp(-0.693*(tip/tt))
c
      if (xv<0.0) then
        xv=0.0
      end if
      if (xv>1) then
      xv=1
      end if
cc
c 当再结晶百分数 xv>=0.95 ,
c 晶粒尺寸为再结晶完成后的再结晶晶粒大小;
c 当再结晶百分数 xv<0.95 ,
c 晶粒尺寸为平均晶粒尺寸
      if (xv>=0.95) then
      grnsiz=dmrx
      else
      grnsiz=grndat(1)*(1-xv)+dmrx*xv
      end if
c
      end if
c
      else
c 当等效塑性应变 eplas<0.04 时,
c 没有再结晶过程发生,
c 晶粒大小等于初始晶粒尺寸大小
      grnsiz=grndat(1)
      end if
c
      return
c
      end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hh12345bb

铜虫 (初入文坛)

请问楼主解决了么,如果解决了 还望不吝赐教啊
2楼2015-10-08 15:37:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lifenhong 的主题更新
信息提示
请填处理意见