cmp2de
C CMP2DE SOURCE CB215821 16/04/21 21:15:49 8920 CCC C ********************************************************************** CCC SUBROUTINE CARAC_MATE_POWDER2_DENSI(XMAT,XDENSI) IMPLICIT INTEGER(I-N) implicit real*8(a-h,o-z) real*8 xmat(*),xdensi,eta,nnc,epref,aux1,aux2,aux3 real*8 kap,xmu,xmu1,alp1,xmu2,alp2,xmu3,alp3 logical ogden common /elasdata_ogden/ kap,xmu,xmu1,alp1,xmu2,alp2,xmu3,alp3, . ogden real*8 nn1,nn2,eta0,aa1,aa2,bb1,bb2, . pia,pib,sigy0,pcc,rrr common /poder2_data/ nn1,nn2,eta0,aa1,aa2,bb1,bb2, . pia,pib,sigy0,pcc,rrr real*8 you,xnu common /elasdata/ you,xnu real*8 cohmax,phimax,phimin,phi ogden=.false. you = xmat( 1) xnu = xmat( 2) cohmax = xmat( 5) phimax = xmat( 6) eta0 = xmat( 7) phimin = xmat( 8) nnc = xmat( 9) sigy0 = xmat(10) nn1 = xmat(11) nn2 = xmat(12) eta = xdensi*eta0 aux1 = (phimin - phimax)/(1+eta0**2-2*eta0) aux2 = -2.D0 * aux1 aux3 = phimax + aux1 phi = aux1 * eta**2 + aux2 * eta + aux3 if (eta.lt.eta0) phi = phimin if (eta.gt.1.D0) phi = phimax aa1 = (1.D0 - eta**2)/(2.D0 + eta**2) if (aa1.lt.1.D-30) aa1=1.D-30 aa1 = aa1**nn1 if (aa1.lt.1.D-5) aa1=1.D-5 aa2 = (eta - 0.98D0*eta0)/(1.D0 - 0.98D0*eta0) if (eta.lt.eta0) then aa2min = 0.02D0*eta0/(1.D0 - 0.98D0*eta0) daa2min = 1.D0 /(1.D0 - 0.98D0*eta0) aa2 = aa2min endif coh = cohmax * aa2**nnc aa2 = aa2**nn2 c cohesion .le. extremo de la elipse a cortante if (coh.gt.(sqrt(aa2)*sigy0)) then write(*,*)' Cambio de COH',coh,sqrt(aa2)*sigy0 coh = sqrt(aa2)*sigy0 endif ****** D-P Meschke examples * Cauchy * coh = cohmax / xdensi * Kirk * coh = cohmax * phi = phimax ****** D-P Meschke examples bb1 = sqrt(2.D0/3.D0)*TAN(phi) bb2 = sqrt(2.D0/3.D0)*coh pib = -sqrt(6.D0*aa2/aa1)*sigy0 pia = (3.D0*bb2-sqrt(6.D0*aa2)*sigy0)/bb1 pcc = bb2*3.D0/bb1 rrr = abs(pia-pib)/(sqrt(aa2/3.D0)*sigy0) return end
© Cast3M 2003 - Tous droits réservés.
Mentions légales