



















subroutine umat41 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,
* temper,failel,crv,cma,qmat,elsiz,idele)
c isotropic elastic material (sample user subroutine)
c
c Variables
c
c cm(1)=young's modulus
c cm(2)=poisson's ratio
c cm(3)=shear modulus
c cm(4)=bulk modulus
c cm(5)=Yield strength
c
c hsv(1)=1st history variable
c hsv(2)=2nd history variable
c hsv(3)=3nd history variable
c hsv(4)=4nd history variable
include 'nlqparm'
include 'bk06.inc'
include 'iounits.inc'
dimension cm(*),eps(*),sig(*),hsv(*),crv(lq1,2,*),cma(*),qmat(3,3)
logical failel
character*5 etype
c
if (ncycle.eq.1) then
if (cm(16).ne.1234567) then
call usermsg('mat41')
endif
endif
c
c compute shear modulus, g
c
g2 =abs(cm(1))/(1.+cm(2))
g =.5*g2
c
if (etype.eq.'solid') then
if (cm(16).eq.1234567) then
call mitfail3d(cm,eps,sig,epsp,hsv,dt1,capa,failel,tt,crv)
else
if (.not.failel) then
davg=(-eps(1)-eps(2)-eps(3))/3.
p=-davg*abs(cm(1))/(1.-2.*cm(2))
sig(1)=sig(1)+p+g2*(eps(1)+davg)
sig(2)=sig(2)+p+g2*(eps(2)+davg)
sig(3)=sig(3)+p+g2*(eps(3)+davg)
sig(4)=sig(4)+g*eps(4)
sig(5)=sig(5)+g*eps(5)
sig(6)=sig(6)+g*eps(6)
hsv(1)=sig(1)
hsv(2)=sig(2)
hsv(3)=sig(3)
hsv(4)=sig(4)
if (cm(1).lt.0.) then
if (sig(1).gt.cm(5)) failel=.true.
endif
endif
end if
c
else
c write(iotty,10) etype
c write(iohsp,10) etype
c write(iomsg,10) etype
c call adios(2)
cerdat(1)=etype
call ls msg(3,MSG_SOL+1150,ioall,ierdat,rerdat,cerdat,0)
endif
c
c10 format(/
c 1 ' *** Error element type ',a,' can not be',
c 2 ' run with the current material model.')
return
end
c ---------------------------------------------------------------------------


【免责声明】本文来自笔记整理,版权归原作者所有,仅用于学习等,对文中观点判断均保持中立,若您认为文中来源标注与事实不符,若有涉及版权等请告知,将及时修订删除,谢谢大家的关注!