C C User subroutine UDAMINI subroutine udmgini(findex,nfindex,fnormal,ndi,nshr,ntens,props, 1 nprops,statev,nstatev,stress,strain,strainee,lxfem,time,dtime, 2 temp,dtemp,predef,dpred,nfield,coords,noel,npt,layer,kspt,kstep, 3 kinc,kdircyc,kcyclelcf,timecyc,sse,spd,scd,svd,smd,jmac,jmatyp, 4 matlayo,laccfla,celent,drot,ori) c include 'ABA_PARAM.INC' c parameter(zero=0.0d0, one=1.0d0) dimension findex(nfindex),fnormal(ndi,nfindex),coords(*), 1 stress(ntens),strain(ntens),strainee(ntens),props(nprops), 2 statev(nstatev),predef(nfield),dpred(nfield),time(2),jmac(*), 3 jmatyp(*),drot(3,3),ori(3,3) dimension ps(3), an(3,3), wt(6) ps(1)=zero ps(2)=zero ps(3)=zero C ROTATE THE STRESS TO GLOBAL SYSTEM IF THERE IS ORIENTATION C CALL ROTSIG(STRESS,ORI,WT,1,NDI,NSHR) c C Maximum principal stress criterion C call sprind(wt,ps,an,1,ndi,nshr) sig1 = ps(1) kmax=1 do k1 = 2, ndi if(ps(k1).gt.sig1) then sig1 = ps(k1) kmax = k1 end if end do sig2 = sig1 findex(1) = sig2/props(1) do k1 = 1, ndi fnormal(k1,1) = an(kmax,k1) end do C QUADRATIC TRACTION-INTERACTION CRITERION c FINDEX(2)=(STRESS(2)/PROPS(1))**2.0+(STRESS(NDI+1)/PROPS(2))**2.0 C findex(2)=sqrt(findex(2)) C DO K1=1, NDI FNORMAL(K1,2)=ORI(K1,2) enddo return end