1 : C MATJAC SOURCE CHAT 05/01/13 01:34:28 5004 2 : SUBROUTINE MATJAC(XEL,SHP,IDIM,NBNO,ZJAC,DJAC) 3 : C----------------------------------------------------------------------- 4 : C Calcul la matrice jacobienne (et son determinant) de la fonction 5 : C transformant l'element de reference en l'element reel. 6 : C----------------------------------------------------------------------- 7 : C 8 : C--------------------------- 9 : C Parametres Entree/Sortie : 10 : C--------------------------- 11 : C 12 : C E/ XEL : Coordonnees locales des noeuds de l'element. 13 : C E/ SHP : Fonction de forme et derivees des fonctions de forme. 14 : C E/ IDIM : Dimension de l'espace (2 en 2D et 3 en 3D). 15 : C E/ NBNO : Nombre de noeuds. 16 : C /S ZJAC : Matrice jacobienne au noeud ou au pt gauss selon le 17 : C support des fonctions de forme SHP. 18 : C /S DJAC : Determinant de la matrice jacobienne (0=non inversible). 19 : C 20 : C----------------------------------------------------------------------- 21 : C 22 : C Langage : FORTRAN77 23 : C 24 : C Auteurs : F.DABBENE 08/93 d'apres jacobi.eso 25 : C 26 : C Remarque: La matrice jacobienne construite est la transposée de la 27 : C matrice jacobienne utilisée pour le passage des dérivées 28 : C du repere local au repere global. 29 : C 30 : C----------------------------------------------------------------------- 31 : IMPLICIT INTEGER(I-N) 32 : IMPLICIT REAL*8 (A-H,O-Z) 33 : C 34 : DIMENSION XEL(3,NBNO),SHP(6,NBNO) 35 : DIMENSION ZJAC(IDIM,IDIM) 36 : DATA XZER /0.D0/ 37 : C 38 : C= Mise a zero des variables de travail 39 : C 40 : DJAC = XZER 40 : CALL ZERO(ZJAC,IDIM,IDIM) 41 : C 42 : IF (IDIM.EQ.1) THEN 43 : C-------- 44 : C CAS 1D 45 : C-------- 46 : DO 10 I=1,NBNO 47 : ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I) 48 : 10 CONTINUE 49 : DJAC = ZJAC(1,1) 50 : ELSEIF (IDIM.EQ.2) THEN 51 : C-------- 52 : C CAS 2D 53 : C-------- 54 : DO 20 I=1,NBNO 55 : ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I) 56 : ZJAC(1,2) = ZJAC(1,2) + SHP(3,I)*XEL(1,I) 57 : ZJAC(2,1) = ZJAC(2,1) + SHP(2,I)*XEL(2,I) 58 : ZJAC(2,2) = ZJAC(2,2) + SHP(3,I)*XEL(2,I) 59 : 20 CONTINUE 60 : DJAC = ZJAC(1,1)*ZJAC(2,2) - ZJAC(1,2)*ZJAC(2,1) 61 : ELSEIF (IDIM.EQ.3) THEN 62 : C-------- 63 : C CAS 3D 64 : C-------- 65 : DO 30 I=1,NBNO 66 : ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I) 67 : ZJAC(1,2) = ZJAC(1,2) + SHP(3,I)*XEL(1,I) 68 : ZJAC(1,3) = ZJAC(1,3) + SHP(4,I)*XEL(1,I) 69 : ZJAC(2,1) = ZJAC(2,1) + SHP(2,I)*XEL(2,I) 70 : ZJAC(2,2) = ZJAC(2,2) + SHP(3,I)*XEL(2,I) 71 : ZJAC(2,3) = ZJAC(2,3) + SHP(4,I)*XEL(2,I) 72 : ZJAC(3,1) = ZJAC(3,1) + SHP(2,I)*XEL(3,I) 73 : ZJAC(3,2) = ZJAC(3,2) + SHP(3,I)*XEL(3,I) 74 : ZJAC(3,3) = ZJAC(3,3) + SHP(4,I)*XEL(3,I) 75 : 30 CONTINUE 76 : DET11 = ZJAC(2,2)*ZJAC(3,3) - ZJAC(2,3)*ZJAC(3,2) 77 : DET12 =-ZJAC(1,2)*ZJAC(3,3) + ZJAC(3,2)*ZJAC(1,3) 78 : DET13 = ZJAC(1,2)*ZJAC(2,3) - ZJAC(2,2)*ZJAC(1,3) 79 : DJAC = ZJAC(1,1)*DET11 + ZJAC(2,1)*DET12 + ZJAC(3,1)*DET13 80 : ENDIF 81 : C 82 : RETURN 83 : END 84 :
© Cast3M 2003 - All rights reserved.
Disclaimer