c PRINCIPAL STRESSES AND STRAINS FOR POSTPROCESSING c================================================================= c c This user subroutine calls principal stresses from subroutine convst, c calculates principal strains and writes both to the POST (.t19 or .t16) c file. The following is an example of the MARC input data POST command c used with this subroutine. All of the values do not have to be included, c however, the post codes are fixed for each quantity. c THE ENGINEERING QUANTITIES ARE VALID ONLY FOR THE TOTAL LAGRANGE FORMULATION C DO NOT USE THE ROUTINE TO COMPUTE THE ENGG. QUANTITIES IN UPDATED LAGRANGE C FORMULATION c subroutine convst(s,ps,ist,ainv) c* * * * * * c c principle stress or strain value calculation. c c s (idss) stress or strain vector c ps principle stress/strain values c ist flag for stress of strain values c ist=0 stress c ist=1 strain (modify tensor. shear in eng. shear) c ist=2 plastic,creep,viscous strain c ist=3 thermal,harmonic,cracking strain c ist=4 generalized strain (shells) c ainv array of invariants of stress at this point c c* * * * * * c c**************************************************************** cPOST c 1 0 c -101,1,max princ stress layer 1 c -102,1,mid princ stress layer 1 c -103,1,min princ stress layer 1 c -104,1,Max shear stress layer 1 c -111,1,max princ strain layer 1 c -112,1,mid princ strain layer 1 c -113,1,min princ strain layer 1 c -114,1,max shear strain layer 1 c -121,1,max stretch c -122,1,mid stretch c -123,1,min stretch c -201,1,max princ engg. strain layer 1 c -202,1,mid princ engg. strain layer 1 c -203,1,min princ engg. strain layer 1 c -204,1,max shear engg. strain layer 1 c -211,1,max princ engg. stress layer 1 c -212,1,mid princ engg. stress layer 1 c -213,1,min princ engg. stress layer 1 c**************************************************************** c c subroutine plotv(v,s,sp,etot,eplas,ecreep,t,m,nn,layer,ndi, * nshear,jpltcd) c* * * * * * c c select a variable contour plotting (user subroutine). c c v variable c s (idss) stress array c sp stresses in preferred direction c etot total strain (generalized) c eplas total plastic strain c ecreep total creep strain c t current temperature c m element number c nn integration point number c layer layer number c ndi (3) number of direct stress components c nshear (3) number of shear stress components c c* * * * * * implicit real*8 (a-h,o-z) dp dimension s(1),etot(1),eplas(1),ecreep(1),sp(1) dimension dum(12),p(3),p1(3) include '../common/matdat' c*********************************** c define principal stresses c*********************************** if ((jpltcd.gt.100) .and. (jpltcd.le.104)) then call convst(s,p,0,dum) if(jpltcd.eq.101) then v=p(3) elseif(jpltcd.eq.102) then v=p(2) elseif(jpltcd.eq.103) then v=p(1) elseif(jpltcd.eq.104) then v=(p(3)-p(1))*0.5 endif endif c*********************************** c define principal strains c*********************************** if ((jpltcd.gt.110) .and. (jpltcd.le.114)) then call convst(etot,p,1,dum) if(jpltcd.eq.111) then v=p(3) c write(6,*) 'strain matrix etot' c write(6,*) (etot(i), i=1,5) c write(6,*) elseif(jpltcd.eq.112) then v=p(2) elseif(jpltcd.eq.113) then v=p(1) elseif(jpltcd.eq.114) then v=p(3)-p(1) endif endif c*********************************** c define principal stretches c assumes that etot contains Green-Lagrange Strains c*********************************** if ((jpltcd.gt.120) .and. (jpltcd.le.123)) then call convst(etot,p,1,dum) if(jpltcd.eq.121) then v=dsqrt(2.*p(3)+1.) elseif(jpltcd.eq.122) then v=dsqrt(2.*p(2)+1.) elseif(jpltcd.eq.123) then v=dsqrt(2.*p(1)+1.) endif endif c*********************************** c define small strain,engineering principal strains & max shear strain c assumes that etot contains Green-Lagrange Strains c*********************************** if ((jpltcd.gt.200) .and. (jpltcd.le.204)) then call convst(etot,p,1,dum) if(jpltcd.eq.201) then v=dsqrt(2.*p(3)+1.)-1. elseif(jpltcd.eq.202) then v=dsqrt(2.*p(2)+1.)-1. elseif(jpltcd.eq.203) then v=dsqrt(2.*p(1)+1.)-1. elseif(jpltcd.eq.204) then v3=dsqrt(2.*p(3)+1.) v1=dsqrt(2.*p(1)+1.) v=v3-v1 endif endif C ********************************************** C Compute prinical engineering stresses C ********************************************** if ((jpltcd.gt.210) .and. (jpltcd.le.213)) then call convst(etot,p,1,dum) call convst(s,p1,0,dum) if(jpltcd.eq.211) then v=dsqrt(1.+2.*p(3))*p1(3) elseif(jpltcd.eq.212) then v=dsqrt(1.+2.*p(2))*p1(2) elseif(jpltcd.eq.213) then v=dsqrt(1.+2.*p(1))*p1(1) endif endif return end