matjac
C MATJAC SOURCE CHAT 05/01/13 01:34:28 5004 C----------------------------------------------------------------------- C Calcul la matrice jacobienne (et son determinant) de la fonction C transformant l'element de reference en l'element reel. C----------------------------------------------------------------------- C C--------------------------- C Parametres Entree/Sortie : C--------------------------- C C E/ XEL : Coordonnees locales des noeuds de l'element. C E/ SHP : Fonction de forme et derivees des fonctions de forme. C E/ IDIM : Dimension de l'espace (2 en 2D et 3 en 3D). C E/ NBNO : Nombre de noeuds. C /S ZJAC : Matrice jacobienne au noeud ou au pt gauss selon le C support des fonctions de forme SHP. C /S DJAC : Determinant de la matrice jacobienne (0=non inversible). C C----------------------------------------------------------------------- C C Langage : FORTRAN77 C C Auteurs : F.DABBENE 08/93 d'apres jacobi.eso C C Remarque: La matrice jacobienne construite est la transposée de la C matrice jacobienne utilisée pour le passage des dérivées C du repere local au repere global. C C----------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C DIMENSION ZJAC(IDIM,IDIM) DATA XZER /0.D0/ C C= Mise a zero des variables de travail C DJAC = XZER C IF (IDIM.EQ.1) THEN C-------- C CAS 1D C-------- ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I) 10 CONTINUE DJAC = ZJAC(1,1) ELSEIF (IDIM.EQ.2) THEN C-------- C CAS 2D C-------- ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I) ZJAC(1,2) = ZJAC(1,2) + SHP(3,I)*XEL(1,I) ZJAC(2,1) = ZJAC(2,1) + SHP(2,I)*XEL(2,I) ZJAC(2,2) = ZJAC(2,2) + SHP(3,I)*XEL(2,I) 20 CONTINUE DJAC = ZJAC(1,1)*ZJAC(2,2) - ZJAC(1,2)*ZJAC(2,1) ELSEIF (IDIM.EQ.3) THEN C-------- C CAS 3D C-------- ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I) ZJAC(1,2) = ZJAC(1,2) + SHP(3,I)*XEL(1,I) ZJAC(1,3) = ZJAC(1,3) + SHP(4,I)*XEL(1,I) ZJAC(2,1) = ZJAC(2,1) + SHP(2,I)*XEL(2,I) ZJAC(2,2) = ZJAC(2,2) + SHP(3,I)*XEL(2,I) ZJAC(2,3) = ZJAC(2,3) + SHP(4,I)*XEL(2,I) ZJAC(3,1) = ZJAC(3,1) + SHP(2,I)*XEL(3,I) ZJAC(3,2) = ZJAC(3,2) + SHP(3,I)*XEL(3,I) ZJAC(3,3) = ZJAC(3,3) + SHP(4,I)*XEL(3,I) 30 CONTINUE DET11 = ZJAC(2,2)*ZJAC(3,3) - ZJAC(2,3)*ZJAC(3,2) DET12 =-ZJAC(1,2)*ZJAC(3,3) + ZJAC(3,2)*ZJAC(1,3) DET13 = ZJAC(1,2)*ZJAC(2,3) - ZJAC(2,2)*ZJAC(1,3) DJAC = ZJAC(1,1)*DET11 + ZJAC(2,1)*DET12 + ZJAC(3,1)*DET13 ENDIF C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales