Janathan 发表于 2018-7-6 10:24:24

ANSYS UPFs 徐变二次开发,输入CEB-FIP 90模型,计算不收敛,是不是FORTRAN代码有问题

研究生一枚,在用ANSYS UPFs 二次开发做徐变模拟,usercreep子程序输入了CEB-FIP 90模型,一开始计算就停止了,error文件提示不收敛, The creep integration algorithm does not converge for element 4,material 1, creep model 100.       急求解决方法。大神们帮帮小弟啊!

下面是usercreep代码。

#include "impcom.inc"

      DOUBLE PRECISION ZERO
      PARAMETER      (ZERO = 0.0d0)
c
c --- argument list
c
      INTEGER          ldstep, isubst, matId , elemId,
   &               kDInPt, kLayer, kSecPt, nstatv,
   &               impflg, nprop
      DOUBLE PRECISION dtime , time, temp, dtemp , toffst,
   &               creqv , seqv, pres
      DOUBLE PRECISION prop(*), dcrda(*), Ustatev(nstatv)
c
c --- local variables
c
      DOUBLE PRECISION c1    , c2    , c3    , c4    , c5    ,
   &               c6    , c7    , delcr    ,
   &               a1    , a2    , a3    , a4    , a5
c
c*************************************************************************
c *** skip when stress and creep strain are all zero
      if (seqv.LE.ZERO.AND.creqv.LE.ZERO) GO TO 990
c *** Primary creep function
c      delcr := a1 * a2 * a3 * a4 * c1 / time ** 0.7 / (time + c1)**2.7 * dtime。。。
      c1      = prop(1)
      c2      = prop(2)
      c3      = prop(3)
      c4      = prop(4)
      c5      = prop(5)
      c6      = prop(6)
      c7      = prop(7)
      a1 = (160 + 10 * c7 * (9 - 0.1 * c3)) * 10**(-6) * 1.55*(1-c1**3)
      a2 = c4-c5
      a3 = 0.035*c2**2
      a4 = (1+(1-c1)/(0.46*(c2/100)**(1/3)))*5.3/((c3/10)**0.5)*1/(0.1+
   &      c4 ** 0.2)
      a5 = 1.5*(1+(1.2*c1)**18)*c2+250
c *** calculate incremental creep strain
      delcr   = (0.5*a1*a3*(time+a2)**(-0.5)*(time+a2+a3)**(-1.5)+
   &          0.3*a4*a5*seqv/c6*time**(-0.7)*(time+a5)**(-1.3))*dtime
c *** derivitive of incremental creep strain to effective stress
      dcrda(1)=0.3*a4*a5/c6*time**(-0.7)*(time+a5)**(-1.3)*dtime
c *** derivitive of incremental creep strain to effective creep strain
      dcrda(2)= 1+(-0.5*a1*a3*(0.5*(time+a2)**(-1.5)*(time+a2+a3)**
   &          (-1.5)+1.5*(time+a2)**(-0.5)*(time+a2+a3)**(-2.5))
   &         -0.3*a4*a5*seqv/c6*(0.7*time**(-1.7)*(time+a5)**(-1.3)
   &         +1.3*time**(-0.7)*(time+a5)**(-2.3)))/
   &          (0.5*a1*a3*(time+a2)**(-0.5)*(time+a2+a3)**(-1.5)+
   &          0.3*a4*a5*seqv/c6*time**(-0.7)*(time+a5)**(-1.3))*dtime
c *** write the effective creep strain to last state variable for verification
      if (nstatv .gt. 0) then
         Ustatev(nstatv) = creqv
      end if
990continue
      return
      end

下面是APDL代码
finish
/clear
/config,nres,2000
/prep7
!1.定义单元与材料性质--------------------
et,1,solid186

mp,ex,1,30000
mp,prxy,1,0.2

tb,creep,1,,7,100
tbdata,1,0.6
tbdata,2,134.739
tbdata,3,32.0
tbdata,4,157.0
tbdata,5,28.0
tbdata,6,30000.0
tbdata,7,5.0

r,1

!2.创建几何模型
blc4,,,150,300,150

!4.划分混凝土网格
vatt,1,1,1
mshape,0,3d
mshkey,1
esize,15
vmesh,all
allsel,all


!5.施加荷载和约束
asel,s,loc,y,300
sfa,all,1,pres,1
asel,s,loc,y,0
da,all,all
allsel,all

!6.求解控制设置
/solu
antype,0
rate,on
solcon,on
kbc,1
nlgeom,on
time,15
nsubst,100
outres,all,all
autots,on
neqit,50
cnvtol,u,,0.015
solve

Janathan 发表于 2018-7-6 10:46:02

还有usercreep.f文件,每次进去都会提示行尾不一致,是否将行尾一致化,这个怎么解决,是由于这个问题导致计算不收敛吗。

zjh2018 发表于 2018-11-20 11:43:11

我运行了下你的程序,是可以运行的

aaa123123 发表于 2019-8-24 18:12:49

调用子程序的命令流应该至少定义一个状态变量啊,用于存储有效蠕变应变的
页: [1]
查看完整版本: ANSYS UPFs 徐变二次开发,输入CEB-FIP 90模型,计算不收敛,是不是FORTRAN代码有问题