umat二次开发超弹性本构汇编Word下载.docx

上传人:b****1 文档编号:5105237 上传时间:2023-05-04 格式:DOCX 页数:13 大小:17KB
下载 相关 举报
umat二次开发超弹性本构汇编Word下载.docx_第1页
第1页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第2页
第2页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第3页
第3页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第4页
第4页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第5页
第5页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第6页
第6页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第7页
第7页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第8页
第8页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第9页
第9页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第10页
第10页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第11页
第11页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第12页
第12页 / 共13页
umat二次开发超弹性本构汇编Word下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

umat二次开发超弹性本构汇编Word下载.docx

《umat二次开发超弹性本构汇编Word下载.docx》由会员分享,可在线阅读,更多相关《umat二次开发超弹性本构汇编Word下载.docx(13页珍藏版)》请在冰点文库上搜索。

umat二次开发超弹性本构汇编Word下载.docx

dimensionprops(nprops),density(nblock),coordMp(nblock,*),

1charLength(nblock),strainlnc(nblock,ndir+nshr),

2relSpinlnc(nblock,nshr),tempOld(nblock),

3stretchOld(nblock,ndir+nshr),

4defgradOld(nblock,ndir+nshr+nshr),

5fieldOld(nblock,nfieldv),stressOld(nblock,ndir+nshr),

6stateOld(nblock,nstatev),enerlnternOld(nblock),

7enerlnelasOld(nblock),tempNew(nblock),

8stretchNew(nblock,ndir+nshr),

8defgradNew(nblock,ndir+nshr+nshr),

9fieldNew(nblock,nfieldv),

1stressNew(nblock,ndir+nshr),stateNew(nblock,nstatev),

2enerlnternNew(nblock),enerlnelasNew(nblock)

character*80cmname

if(cmname(1:

6).eq.'

VUMAT0'

)then|

callVUMAT0(nblock,ndir,nshr,nstatev,nfieldv,nprops,lanneal,

7stressNew,stateNew,enerlnternNew,enerlnelasNew)

elseif(cmname(1:

VUMAT1'

)thencallVUMAT1(nblock,ndir,nshr,nstatev,nfieldv,nprops,lanneal,

endif

end

subroutinevumatO(

CReadonly-

*nblock,ndir,nshr,nstatev,nfieldv,nprops,lanneal,

*stepTime,totalTime,dt,cmname,coordMp,charLength,

*props,density,strainInc,relSpinInc,

*tempOld,stretchOld,defgradOld,fieldOld,

*stressOld,stateOld,enerlnternOId,enerlnelasOld,

*tempNew,stretchNew,defgradNew,fieldNew,

CWriteonly-

*stressNew,stateNew,enerlnternNew,enerlnelasNew)

dimensioncoordMp(nblock,),charLength(nblock),props(nprops),

1density(nblock),strainlnc(nblock,ndir+nshr),

8stretchNew(nblock,ndir+nshr),

9defgradNew(nblock,ndir+nshr+nshr),

1fieldNew(nblock,nfieldv),

2stressNew(nblock,ndir+nshr),stateNew(nblock,nstatev),

3enerlnternNew(nblock),enerlnelasNew(nblock)

dimensiondevia(nblock,ndir+nshr),

1BBar(nblock,4),stretchNewBar(nblock,4),intv

(2)

parameter(zero=0.D00,one=1.D00,two=2.D00,three=3.D00,realC10,D1,ak,twomu,amu,alamda,hydro,vonMises,maxShear,

1midStrain,maxPrincipalStrain

118

intv

(1)=ndir

intv

(2)=nshr

if(ndir.ne.3.or.nshr.ne.1)then

callxplbabqerr(1,'

SubroutineVUMATisimplemented7/

*'

onlyforplanestrainandaxisymmetriccases'

//

(ndir=3andnshr=1)'

0,zero,'

'

callxplbabqerr(-2,'

SubroutineVUMAThasbeencalled'

withndir=%landnshr=%l'

intv,zero,'

callxplbexit

C10=props

(1)

D1=props

(2)

CC10=1.11619E6D仁4.48E-8

ak=two/D1

amu=two*C10|

twomu=four*C10

alamda=(three*ak-twomu)/three

CifstepTimeequalszero,assumepureelasticmaterialanduseinitialelastic

modulus

if(stepTime.EQ.zero)then

dok=1,nblock

trace1=strainlnc(k,1)+strainInc(k,2)+strainlnc(k,3)

stressNew(k,1)=stressOld(k,1)|

*+twomu*strainlnc(k,1)+alamda*trace1

stressNew(k,2)=

=stressOld(k,2)

*+twomu*strainInc(k,2)+alamda*trace1stressNew(k,3)=stressOld(k,3)

*+twomu*strainInc(k,3)+alamda*trace1stressNew(k,4)=stressOld(k,4)I

*+twomu*strainlnc(k,4)

Cwrite(6,*)totalTime,k,defgradNew(k,1),stretchNew(k,1),

C1stressNew(k,2),stressNew(k,3),stressNew(k,4)enddoelse

CJACOBIANOFSTRETCHTENSOR(Uissymmetricandinlocalaxis)

det=stretchNew(k,3)*

119

1(stretchNew(k,1)*stretchNew(k,2)-stretchNew(k,4)**two)scale=det**(-ONE/THREE)

stretchNewBar(k,1)=stretchNew(k,1)*scalestretchNewBar(k,2)=stretchNew(k,2)*scalestretchNewBar(k,3)=stretchNew(k,3)*scalestretchNewBar(k,4)=stretchNew(k,4)*scaleC

CCALCULATELEFTCAUCHY-GREENTENSOR(Bissymmetric)

BBar(k,1)=stretchNewBar(k,1)**two+stretchNewBar(k,4)**two

BBar(k,2)=stretchNewBar(k,2)**two+stretchNewBar(k,4)**two

BBar(k,3)=stretchNewBar(k,3)**two

BBar(k,4)=stretchNewBar(k,1)*stretchNewBar(k,4)+

1stretchNewBar(k,2)*stretchNewBar(k,4)

CCALCULATESTRESStensor

TRBBar=BBar(k,1)+BBar(k,2)+BBar(k,3)EG=two*C10/det

PR=two/D1*(det-one)stressNew(k,1)=EG*(BBar(k,1)-TRBBar/Three)+PRstressNew(k,2)=EG*(BBar(k,2)-TRBBar/Three)+PRstressNew(k,3)=EG*(BBar(k,3)-TRBBar/Three)+PRstressNew(k,4)=EG*BBar(k,4)

CUpdatethespecificinternalenergy

stressPower=half*(

1(stressOld(k,1)+stressNew(k,1))*strainInc(k,1)+

2(stressOld(k,2)+stressNew(k,2))*strainInc(k,2)+

3(stressOld(k,3)+stressNew(k,3))*strainInc(k,3))+

stateNew(k,1)=stateOld(k,1)+strainInc(k,1)

stateNew(k,2)=stateOld(k,2)+strainInc(k,2)

stateNew(k,3)=stateOld(k,3)+strainlnc(k,3)|

stateNew(k,4)=stateOld(k,4)+strainlnc(k,4)C

CCalculatevonMises

hydro=(stressNew(k,1)+stressNew(k,2)+

120

1stressNew(k,3))/3.

dok1=1,ndir

devia(k,k1)=stressNew(k,k1)-hydro

enddo

dok1=ndir+1,ndir+nshr

devia(k,k1)=stressNew(k,k1)

vonMises=0.

vonMises=vonMises+devia(k,k1)**2

vonMises=vonMises+2*devia(k,k1)**2

vonMises=sqrt(3./2*vonMises)

Cuse3/2willget2(int)!

Cwrite(6,*)totalTime,defgradNew(k,4),stretchNew(k,4)

C1,defgradNew(k,3),defgradNew(k,4),defgradNew(k,5)

C,det,TRBBar

C1,stressNew(k,1),stressNew(k,2),stressNew(k,3),stressNew(k,4)

CFailureCriteria

midStrain=stateNew(k,1)+stateNew(k,2)

maxShear=sqrt((stateNew(k,1)-midStrain)**2.+

1stateNew(k,4)**2.)

if(midStrain.GE.0.)then

maxPrincipalStrain=midStrain+maxShearelse

maxPrincipalStrain=maxShear-midStrainendif

if(vonMises.GE.10.8565e6)then

return

subroutinevumatl(

*nblock,ndir,nshr,nstatev,nfieldv,nprops,lanneal,_|

121

dimensioncoordMp(nblock,*),charLength(nblock),props(nprops),

1BBar(nblock,4),stretchNewBar(nblock,4),intv

(2)

parameter(zero=0.D00,one=1.D00,two=2.D00,three=3.D00,

*four=4.D00,half=0.5D0)

realC10,D1,ak,twomu,amu,alamda,hydro,vonMises

*'

SubroutineVUMAThasbeencalled'

)callxplbexit

C10=

props(lH

amu=two*C10

122

CifstepTimeequalszero,assumepureelasticmaterialanduseinitialelasticmodulus

if(stepTime.EQ.zero)then

stressNew(k,1)=stressOld(k,1)

*+twomu*strainlnc(k,1)+alamda*tracel

stressNew(k,2)=stressOld(k,2)

*+twomu*strainInc(k,2)+alamda*tracel

stressNew(k,3)=

=stressOld(k,3)

*+twomu*strainInc(k,3)+alamda*tracelstressNew(k,4)=stressOld(k,4)

*+twomu*strainlnc(k,4)

C1stressNew(k,2),stressNew(k,3),stressNew(k,4)

else

CJACOBlANOFSTRETCHTENSOR(Uissymmetricandinlocalaxis)

1(stretchNew(k,1)*stretchNew(k,2)-stretchNew(k,4)**two)

stretchNewBar(k,1)=stretchNew(k,1)*scalestretchNewBar(k,2)=stretchNew(k,2)*scalestretchNe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2