NBLOCK:在调用Vumat时需要用到的材料点的数量Ndir:对称张量中直接应力的数量(sigma11,sigma22,sigma33)Nshr:对称张量中间接应力的数量(sigma12,sigma13,sigma23)Nstatev:与材料类型相关联的用户定义的状态变量的数目Nfieldv:用户定义的外场变量的个数Nprops:用户自定义材料属性的个数Lanneal:指示是否在退火过程中被调用例程的标志。Lanneal=0,指示在常规力学性能增量,例程被调用。Lanneal=1表示,这是退火过程,你应该重新初始化内部状态变量,stepTime:步骤开始后的数值totalTime:总时间Dt:时间增量值Cmname:用户自定义的材料名称,左对齐。它是通过字符串传递的。一些内部材料模型是以“ABQ_”字符串开头给定的名称。为了避免冲突,你不应该在“cmname”中使用“ABQ_”作为领先字符串。coordMp(nblock,*):材料点的坐标值。它是壳单元的中层面材料点,梁和管(pipe)单元的质心。charLength(nblock):特征元素长度,是基于几何平均数的默认值或用户子程序VUCHARLENGTH中定义的用户特征元长度。props(nprops):用户使用的材料属性density(nblock):中层结构的物质点的当前密度strainInc(nblock,ndir+nshr):每个物质点处的应变增量张量relSpinInc(nblock,nshr):在随转系统中定义的每个物质点处增加的相对旋转矢量tempOld(nblock):物质点开始增加时的温度。defgradOld(nblock,ndir+2*nshr):在增量开始时,每个物质点出的变形梯度张量,在3d中形为(F11,F22,F33,F12,F23,F31,F21,F32,F13),在2d中形为(F11,F22,F33,F12,F21)stretchOld(nblock,ndir+nshr)fieldOld(nblock,nfieldv):在增量开始时,每个物质点处用户定义场变量的值stressOld(nblock,ndir+nshr):在增量开始时,每个物质点处的应力张量:stateOld(nblock,nstatev):在增量开始时,每个物质点处的状态变量:tempNew(nblock):在增量结束时,每个物质点处的温度defgradNew(nblock,ndir+2*nshr):在增量结束时,每个物质点出的变形梯度张量,在3d中形为(F11,F22,F33,F12,F23,F31,F21,F32,F13),在2d中形为(F11,F22,F33,F12,F21)fieldNew(nblock,nfieldv):在增量开始时,每个物质点处用户定义长变量的值Example:Elastic/plasticmaterialwithkinematichardeningAsasimpleexampleofthecodingofsubroutineVUMAT,considerthegeneralizedplanestraincaseforanelastic/plasticmaterialwithkinematichardening.Thebasicassumptionsanddefinitionsofthemodelareasfollows.Letbethecurrentvalueofthestress,anddefinetobethedeviatoricpartofthestress.Thecenteroftheyieldsurfaceindeviatoricstressspaceisgivenbythetensor,whichhasinitialvaluesofzero.Thestressdifference,,isthestressmeasuredfromthecenteroftheyieldsurfaceandisgivenbyThevonMisesyieldsurfaceisdefinedaswhereistheuniaxialequivalentyieldstress.ThevonMisesyieldsurfaceisacylinderindeviatoricstressspacewitharadiusofForthekinematichardeningmodel,Risaconstant.ThenormaltotheMisesyieldsurfacecanbewrittenasWedecomposethestrainrateintoanelasticandplasticpartusinganadditivedecomposition:Theplasticpartofthestrainrateisgivenbyanormalityconditionwherethescalarmultipliermustbedetermined.AscalarmeasureofequivalentplasticstrainrateisdefinedbyThestressrateisassumedtobepurelyduetotheelasticpartofthestrainrateandisexpressedintermsofHooke'slawbywhereandaretheLamésconstantsforthematerial.TheevolutionlawforisgivenaswhereHistheslopeoftheuniaxialyieldstressversusplasticstraincurve.Duringactiveplasticloadingthestressmustremainontheyieldsurface,sothatTheequivalentplasticstrainrateisrelatedtobyThekinematichardeningconstitutivemodelisintegratedinarateformasfollows.Atrialelasticstressiscomputedaswherethesubscriptsandrefertothebeginningandendoftheincrement,respectively.Ifthetrialstressdoesnotexceedtheyieldstress,thenewstressissetequaltothetrialstress.Iftheyieldstressisexceeded,plasticityoccursintheincrement.WethenwritetheincrementalanalogsoftherateequationsaswhereFromthedefinitionofthenormaltotheyieldsurfaceattheendoftheincrement,,ThiscanbeexpandedusingtheincrementalequationsasTakingthetensorproductofthisequationwith,usingtheyieldconditionattheendoftheincrement,andsolvingfor:Thevalueforisusedintheincrementalequationstodetermine,,and.subroutinevumat(CReadonly-1nblock,ndir,nshr,nstatev,nfieldv,nprops,lanneal,2stepTime,totalTime,dt,cmname,coordMp,charLength,3props,density,strainInc,relSpinInc,4tempOld,stretchOld,defgradOld,fieldOld,3stressOld,stateOld,enerInternOld,enerInelasOld,6tempNew,stretchNew,defgradNew,fieldNew,CWriteonly-5stressNew,stateNew,enerInternNew,enerInelasNew)Cinclude'vaba_param.inc'CCJ2MisesPlasticitywithkinematichardeningforplaneCstraincase.CElasticpredictor,radialcorrectoralgorithm.CCThestatevariablesarestoredas:CSTATE(*,1)=backstresscomponent11CSTATE(*,2)=backstresscomponent22CSTATE(*,3)=backstresscomponent33CSTATE(*,4)=backstresscomponent12CSTATE(*,5)=equivalentplasticstrainCCCAllarraysdimensionedby(*)arenotusedinthisalgorithmdimensionprops(nprops),density(nblock),1coordMp(nblock,*),2charLength(*),strainInc(nblock,ndir+nshr),3relSpinInc(*),tempOld(*),4stretchOld(*),defgradOld(*),5fieldOld(*),stressOld(nblock,ndir+nshr),6stateOld(nblock,nstatev),enerInternOld(nblock),7enerInelasOld(nblock),tempNew(*),8stretchNew(*),defgradNew(*),fieldNew(*),9stressNew(nblock,ndir+nshr),stateNew(nblock,nstatev),1enerInternNew(nblock),enerInelasNew(nblock)Ccharacter*80cmnameCparameter(zero=0.,one=1.,two=2.,three=3.,1third=one/three,half=.5,twoThirds=two/three,2threeHalfs=1.5)Ce=props(1)xnu=props(2)yield=props(3)hard=props(4)Ctwomu=e/(one+xnu)thremu=threeHalfs*twomusixmu=three*twomualamda=twomu*(e-twomu)/(sixmu-two*e)term=one/(twomu*(one+hard/thremu))con1=sqrt(twoThirds)Cdo100i=1,nblockCCTrialstresstrace=strainInc(i,1)+strainInc(i,2)+strainInc(i,3)sig1=stressOld(i,1)+alamda*trace+twomu*strainInc(i,1)sig2=stressOld(i,2)+alamda*trace+twomu*strainInc(i,2)sig3=stressOld(i,3)+alamda*trace+twomu*strainInc(i,3)sig4=stressOld(i,4)+twomu*strainInc(i,4)CCTrialstressmeasuredfromthebackstresss1=sig1-stateOld(i,1)s2=sig2-stateOld(i,2)s3=sig3-stateOld(i,3)s4=sig4-stateOld(