dohmas
C DOHMAS SOURCE CHAT 05/01/12 22:53:45 5004 C======================================================================= C= D O H M A S = C= ----------- = C= = C= Fonction : = C= ---------- = C= Calcul de la matrice de Hooke (elasticite lineaire) dans le cas = C= des materiaux isotropes = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= VELA (E) Valeurs des parametres elastiques du materiau = C= MATE (E) Chaine contenant le type du materiau = C= IFOU (E) Mode de calcul (cf. IFOUR de CCOPTIO) = C= LHOOK (S) Dimension de la matrice de Hooke = C= KCAS (E) =1 si on veut la matrice de Hooke associee au mode = C= de calcul (non necessairement inversible) = C= =2 si on veut la matrice de Hooke complete pour = C= l'inverser par la suite (matrice de souplesse) = C= DDHOOK (S) Matrice de Hooke dans le repere GLOBAL = C= IRET (S) =1 si option existante , =0 sinon = C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) PARAMETER (XUnDemi=0.5,XUn=1.) DIMENSION VELA(*),DDHOOK(LHOOK,*) CHARACTER*(*) MATE IRET=1 C= ERREUR si le materiau n'est pas massif ISOTROPE ou POREUX (isotrope) IF (MATE.NE.'ISOTROPE'.AND.MATE.NE.'POREUX ') THEN IRET=0 RETURN ENDIF C= Initialisation de la matrice de Hooke C= Recuperation des module d'Young et coefficient de Poisson YOU=VELA(1) XNU=VELA(2) C= -> Contraintes planes avec KCAS=1 IF (IFOU.EQ.-2.AND.KCAS.EQ.1) THEN AUX=YOU/(XUn-XNU*XNU) AUX1=AUX*XNU DDHOOK(1,1)=AUX DDHOOK(1,2)=AUX1 DDHOOK(2,1)=AUX1 DDHOOK(2,2)=AUX DDHOOK(4,4)=XUnDemi*YOU/(XUn+XNU) C= -> Deformations planes, Axisymetrie et Contraintes planes avec KCAS=2 ELSE IF (IFOU.EQ.-1.OR.IFOU.EQ.0.OR.IFOU.EQ.-3.OR. . (IFOU.EQ.-2.AND.KCAS.EQ.2)) THEN AUX0=YOU/((XUn+XNU)*(XUn-XNU-XNU)) AUX=AUX0*(XUn-XNU) AUX1=AUX0*XNU DDHOOK(1,1)=AUX DDHOOK(2,1)=AUX1 DDHOOK(3,1)=AUX1 DDHOOK(1,2)=AUX1 DDHOOK(2,2)=AUX DDHOOK(3,2)=AUX1 DDHOOK(1,3)=AUX1 DDHOOK(2,3)=AUX1 DDHOOK(3,3)=AUX DDHOOK(4,4)=XUnDemi*YOU/(XUn+XNU) C= -> Serie de Fourier et 3D ELSE IF (IFOU.EQ.1.OR.IFOU.EQ.2) THEN AUX0=YOU/((XUn+XNU)*(XUn-XNU-XNU)) AUX=AUX0*(XUn-XNU) AUX1=AUX0*XNU GEGE=XUnDemi*YOU/(XUn+XNU) DDHOOK(1,1)=AUX DDHOOK(2,1)=AUX1 DDHOOK(3,1)=AUX1 DDHOOK(1,2)=AUX1 DDHOOK(2,2)=AUX DDHOOK(3,2)=AUX1 DDHOOK(1,3)=AUX1 DDHOOK(2,3)=AUX1 DDHOOK(3,3)=AUX DDHOOK(4,4)=GEGE DDHOOK(5,5)=GEGE DDHOOK(6,6)=GEGE C= -> Modes de calcul 1D ELSE IF (IFOU.GE.3.AND.IFOU.LE.15) THEN IF (IFOU.EQ.6.AND.KCAS.EQ.1) THEN DDHOOK(1,1)=YOU ELSE IF ((IFOU.EQ.4.OR.IFOU.EQ.8).AND.KCAS.EQ.1) THEN AUX=YOU/(XUn-XNU*XNU) AUX1=AUX*XNU DDHOOK(1,1)=AUX DDHOOK(2,1)=AUX1 DDHOOK(1,2)=AUX1 DDHOOK(2,2)=AUX ELSE IF ((IFOU.EQ.5.OR.IFOU.EQ.10.OR.IFOU.EQ.13).AND. . KCAS.EQ.1) THEN AUX=YOU/(XUn-XNU*XNU) AUX1=AUX*XNU DDHOOK(1,1)=AUX DDHOOK(3,1)=AUX1 DDHOOK(1,3)=AUX1 DDHOOK(3,3)=AUX ELSE AUX0=YOU/((XUn+XNU)*(XUn-XNU-XNU)) AUX=AUX0*(XUn-XNU) AUX1=AUX0*XNU DDHOOK(1,1)=AUX DDHOOK(2,1)=AUX1 DDHOOK(3,1)=AUX1 DDHOOK(1,2)=AUX1 DDHOOK(2,2)=AUX DDHOOK(3,2)=AUX1 DDHOOK(1,3)=AUX1 DDHOOK(2,3)=AUX1 DDHOOK(3,3)=AUX ENDIF C= -> Cas non prevus actuellement ELSE IRET=0 ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales