1 : C DOHMAS SOURCE CHAT 05/01/12 22:53:45 5004 2 : 3 : C======================================================================= 4 : C= D O H M A S = 5 : C= ----------- = 6 : C= = 7 : C= Fonction : = 8 : C= ---------- = 9 : C= Calcul de la matrice de Hooke (elasticite lineaire) dans le cas = 10 : C= des materiaux isotropes = 11 : C= = 12 : C= Parametres : (E)=Entree (S)=Sortie = 13 : C= ------------ = 14 : C= VELA (E) Valeurs des parametres elastiques du materiau = 15 : C= MATE (E) Chaine contenant le type du materiau = 16 : C= IFOU (E) Mode de calcul (cf. IFOUR de CCOPTIO) = 17 : C= LHOOK (S) Dimension de la matrice de Hooke = 18 : C= KCAS (E) =1 si on veut la matrice de Hooke associee au mode = 19 : C= de calcul (non necessairement inversible) = 20 : C= =2 si on veut la matrice de Hooke complete pour = 21 : C= l'inverser par la suite (matrice de souplesse) = 22 : C= DDHOOK (S) Matrice de Hooke dans le repere GLOBAL = 23 : C= IRET (S) =1 si option existante , =0 sinon = 24 : C======================================================================= 25 : 26 : SUBROUTINE DOHMAS (VELA,MATE,IFOU,LHOOK,KCAS,DDHOOK,IRET) 27 : 28 : IMPLICIT INTEGER(I-N) 29 : IMPLICIT REAL*8 (A-H,O-Z) 30 : 31 : PARAMETER (XUnDemi=0.5,XUn=1.) 32 : 33 : DIMENSION VELA(*),DDHOOK(LHOOK,*) 34 : CHARACTER*(*) MATE 35 : 36 : IRET=1 37 : C= ERREUR si le materiau n'est pas massif ISOTROPE ou POREUX (isotrope) 38 : IF (MATE.NE.'ISOTROPE'.AND.MATE.NE.'POREUX ') THEN 39 : IRET=0 40 : RETURN 41 : ENDIF 42 : 43 : C= Initialisation de la matrice de Hooke 43 : CALL ZERO(DDHOOK,LHOOK,LHOOK) 44 : 45 : C= Recuperation des module d'Young et coefficient de Poisson 46 : YOU=VELA(1) 47 : XNU=VELA(2) 48 : 49 : C= -> Contraintes planes avec KCAS=1 50 : IF (IFOU.EQ.-2.AND.KCAS.EQ.1) THEN 51 : AUX=YOU/(XUn-XNU*XNU) 52 : AUX1=AUX*XNU 53 : DDHOOK(1,1)=AUX 54 : DDHOOK(1,2)=AUX1 55 : DDHOOK(2,1)=AUX1 56 : DDHOOK(2,2)=AUX 57 : DDHOOK(4,4)=XUnDemi*YOU/(XUn+XNU) 58 : 59 : C= -> Deformations planes, Axisymetrie et Contraintes planes avec KCAS=2 60 : ELSE IF (IFOU.EQ.-1.OR.IFOU.EQ.0.OR.IFOU.EQ.-3.OR. 61 : . (IFOU.EQ.-2.AND.KCAS.EQ.2)) THEN 62 : AUX0=YOU/((XUn+XNU)*(XUn-XNU-XNU)) 63 : AUX=AUX0*(XUn-XNU) 64 : AUX1=AUX0*XNU 65 : DDHOOK(1,1)=AUX 66 : DDHOOK(2,1)=AUX1 67 : DDHOOK(3,1)=AUX1 68 : DDHOOK(1,2)=AUX1 69 : DDHOOK(2,2)=AUX 70 : DDHOOK(3,2)=AUX1 71 : DDHOOK(1,3)=AUX1 72 : DDHOOK(2,3)=AUX1 73 : DDHOOK(3,3)=AUX 74 : DDHOOK(4,4)=XUnDemi*YOU/(XUn+XNU) 75 : 76 : C= -> Serie de Fourier et 3D 77 : ELSE IF (IFOU.EQ.1.OR.IFOU.EQ.2) THEN 78 : AUX0=YOU/((XUn+XNU)*(XUn-XNU-XNU)) 79 : AUX=AUX0*(XUn-XNU) 80 : AUX1=AUX0*XNU 81 : GEGE=XUnDemi*YOU/(XUn+XNU) 82 : DDHOOK(1,1)=AUX 83 : DDHOOK(2,1)=AUX1 84 : DDHOOK(3,1)=AUX1 85 : DDHOOK(1,2)=AUX1 86 : DDHOOK(2,2)=AUX 87 : DDHOOK(3,2)=AUX1 88 : DDHOOK(1,3)=AUX1 89 : DDHOOK(2,3)=AUX1 90 : DDHOOK(3,3)=AUX 91 : DDHOOK(4,4)=GEGE 92 : DDHOOK(5,5)=GEGE 93 : DDHOOK(6,6)=GEGE 94 : 95 : C= -> Modes de calcul 1D 96 : ELSE IF (IFOU.GE.3.AND.IFOU.LE.15) THEN 97 : IF (IFOU.EQ.6.AND.KCAS.EQ.1) THEN 98 : DDHOOK(1,1)=YOU 99 : ELSE IF ((IFOU.EQ.4.OR.IFOU.EQ.8).AND.KCAS.EQ.1) THEN 100 : AUX=YOU/(XUn-XNU*XNU) 101 : AUX1=AUX*XNU 102 : DDHOOK(1,1)=AUX 103 : DDHOOK(2,1)=AUX1 104 : DDHOOK(1,2)=AUX1 105 : DDHOOK(2,2)=AUX 106 : ELSE IF ((IFOU.EQ.5.OR.IFOU.EQ.10.OR.IFOU.EQ.13).AND. 107 : . KCAS.EQ.1) THEN 108 : AUX=YOU/(XUn-XNU*XNU) 109 : AUX1=AUX*XNU 110 : DDHOOK(1,1)=AUX 111 : DDHOOK(3,1)=AUX1 112 : DDHOOK(1,3)=AUX1 113 : DDHOOK(3,3)=AUX 114 : ELSE 115 : AUX0=YOU/((XUn+XNU)*(XUn-XNU-XNU)) 116 : AUX=AUX0*(XUn-XNU) 117 : AUX1=AUX0*XNU 118 : DDHOOK(1,1)=AUX 119 : DDHOOK(2,1)=AUX1 120 : DDHOOK(3,1)=AUX1 121 : DDHOOK(1,2)=AUX1 122 : DDHOOK(2,2)=AUX 123 : DDHOOK(3,2)=AUX1 124 : DDHOOK(1,3)=AUX1 125 : DDHOOK(2,3)=AUX1 126 : DDHOOK(3,3)=AUX 127 : ENDIF 128 : 129 : C= -> Cas non prevus actuellement 130 : ELSE 131 : IRET=0 132 : ENDIF 133 : 134 : RETURN 135 : END 136 : 137 : 138 :
© Cast3M 2003 - All rights reserved.
Disclaimer