Télécharger matjac.eso

Retour à la liste

Numérotation des lignes :

matjac
  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
  41. CALL ZERO(ZJAC,IDIM,IDIM)
  42. C
  43. IF (IDIM.EQ.1) THEN
  44. C--------
  45. C CAS 1D
  46. C--------
  47. DO 10 I=1,NBNO
  48. ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I)
  49. 10 CONTINUE
  50. DJAC = ZJAC(1,1)
  51. ELSEIF (IDIM.EQ.2) THEN
  52. C--------
  53. C CAS 2D
  54. C--------
  55. DO 20 I=1,NBNO
  56. ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I)
  57. ZJAC(1,2) = ZJAC(1,2) + SHP(3,I)*XEL(1,I)
  58. ZJAC(2,1) = ZJAC(2,1) + SHP(2,I)*XEL(2,I)
  59. ZJAC(2,2) = ZJAC(2,2) + SHP(3,I)*XEL(2,I)
  60. 20 CONTINUE
  61. DJAC = ZJAC(1,1)*ZJAC(2,2) - ZJAC(1,2)*ZJAC(2,1)
  62. ELSEIF (IDIM.EQ.3) THEN
  63. C--------
  64. C CAS 3D
  65. C--------
  66. DO 30 I=1,NBNO
  67. ZJAC(1,1) = ZJAC(1,1) + SHP(2,I)*XEL(1,I)
  68. ZJAC(1,2) = ZJAC(1,2) + SHP(3,I)*XEL(1,I)
  69. ZJAC(1,3) = ZJAC(1,3) + SHP(4,I)*XEL(1,I)
  70. ZJAC(2,1) = ZJAC(2,1) + SHP(2,I)*XEL(2,I)
  71. ZJAC(2,2) = ZJAC(2,2) + SHP(3,I)*XEL(2,I)
  72. ZJAC(2,3) = ZJAC(2,3) + SHP(4,I)*XEL(2,I)
  73. ZJAC(3,1) = ZJAC(3,1) + SHP(2,I)*XEL(3,I)
  74. ZJAC(3,2) = ZJAC(3,2) + SHP(3,I)*XEL(3,I)
  75. ZJAC(3,3) = ZJAC(3,3) + SHP(4,I)*XEL(3,I)
  76. 30 CONTINUE
  77. DET11 = ZJAC(2,2)*ZJAC(3,3) - ZJAC(2,3)*ZJAC(3,2)
  78. DET12 =-ZJAC(1,2)*ZJAC(3,3) + ZJAC(3,2)*ZJAC(1,3)
  79. DET13 = ZJAC(1,2)*ZJAC(2,3) - ZJAC(2,2)*ZJAC(1,3)
  80. DJAC = ZJAC(1,1)*DET11 + ZJAC(2,1)*DET12 + ZJAC(3,1)*DET13
  81. ENDIF
  82. C
  83. RETURN
  84. END
  85.  
  86.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales