Télécharger geolf1.eso

Retour à la liste

Numérotation des lignes :

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

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