C COURBU SOURCE CHAT 05/01/12 22:25:35 5004 SUBROUTINE COURBU(SIG,FT,ISGN1,ISGN2,NSURF,FFF) C Calcul de la derivee seconde pour le calcul de la matrice tangente C 21/08/95 C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C======================================================================== C C ENTREES: C ------- C SIG = Vecteurs contraintes egal a SIGT pour les deux surfaces C ISGN1 = 1 EN TRACTION -1 EN COMPRESSION C ISGN2 = -1 SI ON ECOULE SUR LA PLUS PETITE CONT. PRIN. C +1 SI ON ECOULE SUR LA PLUS GRANDE CONT. PRINC. C FT = Contrainte de reference pour le test de l'apex C SORTIES: C ------- C FFF = Derivee seconde (matrice 3*3) C C C======================================================================== C PARAMETER(UNDEMI=.5D0,UNQUAR=.25D0,UN=1.D0, & DEUX =2.D0,PRECIS=1.D-4) C DIMENSION SIG(4),XPP(3,3),FFF(3,3),XPSIG(3,1),XPSIGT(1,3) C CALL ZERO(XPP,3,3) CALL ZERO(FFF,3,3) XPP(1,1) = UNDEMI XPP(1,2) = (-1.D0)*UNDEMI XPP(2,1) = (-1.D0)*UNDEMI XPP(2,2) = UNDEMI XPP(3,3) = DEUX SIG(3) = SIG(4) C======================================================================== C Calcul de phi C==================================================================== PHI = SQRT ((UNDEMI*(SIG(1)-SIG(2)))**2+SIG(3)**2) IF (PHI.LT.ABS(PRECIS*FT)) THEN C Cas de l'apex IF (NSURF.EQ.2) THEN PHI = (ISGN2*ISGN1)*(UN/ABS(PRECIS*FT)) CALL PLMATR(XPP,UNDEMI*PHI,FFF,XZER,3,3,FFF) ELSE CALL ZERO(FFF,3,3) ENDIF ELSE C Cas regulier CALL MATVE1(XPP,SIG,3,3,XPSIG,2) CALL MATVE1(XPP,SIG,3,3,XPSIGT,1) CALL MATMAT(XPSIG,XPSIGT,3,1,3,FFF) PHI = (ISGN1*ISGN2)*(UN/PHI) CALL PLMATR(XPP,UNDEMI*PHI,FFF,-UNQUAR*(PHI**3),3,3,FFF) ENDIF C======================================================================== C Fin de la routine C======================================================================== RETURN END