leovikkieleo 发表于 2014-10-24 15:51:16

摩擦模型子程序求助

各位坛友,本人最近结合前人的工作在原有摩尔库伦模型基础上考虑黏聚力的影响做一个摩擦子程序,并通过一个简单滑块模型进行验证,但是在计算过程中,一直都不收敛,希望有经验的大神们指点一下,感激不尽。自己编制的子程序如下:
       subroutine fric(lm,tau,ddtddg,ddtddp,dslip,sed,spd,
   1 ddtddt,pnewdt,statev,dgam,taulm,press,dpress,ddpddh,slip,
   2 kstep,kinc,time,dtime,noel,ciname,slname,msname,npt,node,
   3 npatch,coords,rcoord,drot,temp,predef,nfdir,mcrd,npred,
   4 nstatv,chrlngth,props,nprops)   
c
       include 'aba_param.inc'
       character*80 ciname,slname,msname
       dimension tau(nfdir),ddtddg(nfdir,nfdir),ddtddp(nfdir),
   1         dslip(nfdir),ddtddt(nfdir,2),statev(*),
   2         dgam(nfdir),taulm(nfdir),slip(nfdir),time(2),
   3         coords(mcrd),rcoord(mcrd),drot(2,2),temp(2),
   4         predef(2,*),props(nprops)
       parameter(zero=0.0D0)
c      c 定义程序中所需变量
c      c
       Fc=props(1)
c      φ
       Ffi=props(2)
c      ks
       Fks=props(3)


       if (lm.eq.2) then
         return
       end if      


       if(lm.eq.1) then
         if(abs(taulm(1)).gt.abs(press*Ffi+Fc)) then
         lm=0
    else
      tau(1)=taulm(1)
    end if
       end if      


       lm=0
         if(abs(Fks*slip(1)).gt.abs(press*Ffi+Fc)) then
         tau(1)=abs(press*Ffi+Fc)
         ddtddg(1,1)=abs(press*Ffi+Fc)/slip(1)
         else
         tau(1)=abs(Fks*slip(1))
         ddtddg(1,1)=Fks
         end if
         if(abs(Fks*slip(2)).gt.abs(press*Ffi+Fc))then
         tau(2)=abs(press*Ffi+Fc)
         ddtddg(2,2)=abs(press*Ffi+Fc)/slip(2)
         else
         tau(2)=abs(Fks*slip(2))
         ddtddg(2,2)=Fks
         end if
         ddtddg(1,2)=zero
         ddtddg(2,1)=zero
         dslip(1)=dgam(1)
         dslip(2)=dgam(2)
         return
       end

fxw9527 发表于 2014-10-24 17:36:22

有同样的问题.

我思考致富 发表于 2015-7-7 22:58:30

大神问题解决了吗?同求。

XIAODEHAN 发表于 2021-5-9 21:25:28

求摩擦模型相关的资料
页: [1]
查看完整版本: 摩擦模型子程序求助