Télécharger geoli1.eso

Retour à la liste

Numérotation des lignes :

geoli1
  1. C GEOLI1 SOURCE GOUNAND 05/12/21 21:26:46 5281
  2. SUBROUTINE GEOLI1(IESREL,IESREF,NDNOEU,NDPOGO,NDELEM,
  3. $ DFNPG,JCOOR,
  4. $ JMAJAC,
  5. $ IMPR,IRET)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. IMPLICIT INTEGER (I-N)
  8. C***********************************************************************
  9. C NOM : GEOLI1
  10. C PROJET : Noyau linéaire NLIN
  11. C DESCRIPTION : Calcul de la matrice jacobienne d'une transformation
  12. C géométrique aux points de Gauss d'un élément de
  13. C référence pour chaque élément réel.
  14. C On a :
  15. C Fonction f : R^m -> R^n
  16. C a=(a1...am) |-> f(a)=(f1(a)...fn(a)
  17. C => matjac(i,j)(a)=Dj fi (a) = dfi / dxj (a)
  18. C
  19. C Par exemple, pour une surface en 3D, la matrice jacobienne
  20. C s'exprime comme :
  21. C
  22. C
  23. C [ <xn> ]
  24. C [J] = [ <yn> ] . [ { dNg/d(ksi) } { dNg/d(eta) } ]
  25. C [ <zn> ]
  26. C
  27. C (3x2) (3 x Nnoeuds) (Nnoeuds x 2)
  28. C
  29. C Ici, le nb de ddl est égal aux nbs de noeuds car l'interpolation
  30. C pour la géométrie est de type nodale.
  31. C
  32. C Ceci ressemble à un produit tensoriel (cf. coga1)
  33. C
  34. C
  35. C LANGAGE : Fortran 77 (sauf E/S)
  36. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  37. C mél : gounand@semt2.smts.cea.fr
  38. C***********************************************************************
  39. C APPELES : -
  40. C APPELE PAR : GEOLIN
  41. C***********************************************************************
  42. C ENTREES : * IESREL (type entier) : dimension de l'espace
  43. C réel (i.e. géométrique).
  44. C * IESREF (type entier) : dimension de l'espace de
  45. C référence.
  46. C * NDNOEU (type entier) : nombre de ddl (par
  47. C élément) de la transformation géométrique.
  48. C * NDPOGO (type entier) : nombre de points
  49. C d'intégration.
  50. C * NDELEM (type entier) : nombre d'éléments du
  51. C maillage élémentaire courant.
  52. C * DFNPG (type entier) : valeurs des dérivées
  53. C premières des fonctions d'interpolation de la
  54. C transformation géométrique aux points de gauss
  55. C sur l'élément de référence.
  56. C * JCOOR (type réel) : valeurs des ddl de la
  57. C transformation géométrique sur le maillage
  58. C élémentaire courant.
  59. C ENTREES/SORTIES : * JMAJAC (type réel) : valeurs de la matrice
  60. C jacobienne aux points de Gauss sur le maillage
  61. C élémentaire courant.
  62. C SORTIES : -
  63. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  64. C***********************************************************************
  65. C VERSION : v1, 10/08/99, version initiale
  66. C HISTORIQUE : v1, 10/08/99, création
  67. C HISTORIQUE :
  68. C HISTORIQUE :
  69. C***********************************************************************
  70. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  71. C en cas de modification de ce sous-programme afin de faciliter
  72. C la maintenance !
  73. C***********************************************************************
  74.  
  75. -INC PPARAM
  76. -INC CCOPTIO
  77. INTEGER IESREL,IESREF,NDNOEU,NDPOGO,NDELEM
  78. REAL*8 DFNPG (NDNOEU,IESREF,NDPOGO)
  79. REAL*8 JCOOR (NDNOEU,IESREL,NDELEM)
  80. REAL*8 JMAJAC(IESREL,IESREF,NDPOGO,NDELEM)
  81. *
  82. INTEGER IMPR,IRET
  83. INTEGER IELEM,IPOGO,INOEUD,IREEL,IREFER
  84. *
  85. * Executable statements
  86. *
  87. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans geoli1'
  88. DO 1 IELEM=1,NDELEM
  89. DO 12 IPOGO=1,NDPOGO
  90. DO 122 IREFER=1,IESREF
  91. DO 1222 IREEL=1,IESREL
  92. DO 12222 INOEUD=1,NDNOEU
  93. JMAJAC(IREEL,IREFER,IPOGO,IELEM)=
  94. $ JMAJAC(IREEL,IREFER,IPOGO,IELEM)
  95. $ + (JCOOR(INOEUD,IREEL,IELEM)
  96. $ *DFNPG(INOEUD,IREFER,IPOGO))
  97. 12222 CONTINUE
  98. 1222 CONTINUE
  99. 122 CONTINUE
  100. 12 CONTINUE
  101. 1 CONTINUE
  102.  
  103. *
  104. * Normal termination
  105. *
  106. IRET=0
  107. RETURN
  108. *
  109. * Format handling
  110. *
  111. *
  112. * Error handling
  113. *
  114. 9999 CONTINUE
  115. IRET=1
  116. WRITE(IOIMP,*) 'An error was detected in subroutine geoli1'
  117. RETURN
  118. *
  119. * End of subroutine GEOLI1
  120. *
  121. END
  122.  
  123.  
  124.  

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