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. -INC CCOPTIO
  76. INTEGER IESREL,IESREF,NDDL,NBPOGO,NBELEV,NBELEF,NBELFV
  77. REAL*8 DFFPG (NDDL,IESREF,NBPOGO,NLFVDF)
  78. REAL*8 JCOOR (NDDL,IESREL,NBELEV)
  79. LOGICAL SSFACT(NBELFV,NBELEV)
  80. REAL*8 JMAJAC(IESREL,IESREF,NBPOGO,NBELEF)
  81. *
  82. INTEGER IMPR,IRET
  83. INTEGER IBELEF,IBELFV,IBELEV,IBPOGO,IREEL,IREFER
  84. *
  85. * Executable statements
  86. *
  87. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans geolf1'
  88. IBELEF=0
  89. DO 1 IBELEV=1,NBELEV
  90. DO IBELFV=1,NBELFV
  91. IF (SSFACT(IBELFV,IBELEV)) THEN
  92. IF (NLFVDF.EQ.1) THEN
  93. ILFVDF=1
  94. ELSE
  95. ILFVDF=IBELFV
  96. ENDIF
  97. IBELEF=IBELEF+1
  98. DO 12 IBPOGO=1,NBPOGO
  99. DO 122 IREFER=1,IESREF
  100. DO 1222 IREEL=1,IESREL
  101. DO 12222 IDDL=1,NDDL
  102. JMAJAC(IREEL,IREFER,IBPOGO,IBELEF)=
  103. $ JMAJAC(IREEL,IREFER,IBPOGO,IBELEF)
  104. $ + (JCOOR(IDDL,IREEL,IBELEV)
  105. $ *DFFPG(IDDL,IREFER,IBPOGO,ILFVDF))
  106. 12222 CONTINUE
  107. 1222 CONTINUE
  108. 122 CONTINUE
  109. 12 CONTINUE
  110. ENDIF
  111. ENDDO
  112. 1 CONTINUE
  113.  
  114. *
  115. * Normal termination
  116. *
  117. IRET=0
  118. RETURN
  119. *
  120. * Format handling
  121. *
  122. *
  123. * Error handling
  124. *
  125. 9999 CONTINUE
  126. IRET=1
  127. WRITE(IOIMP,*) 'An error was detected in subroutine geolf1'
  128. RETURN
  129. *
  130. * End of subroutine GEOLF1
  131. *
  132. END
  133.  
  134.  
  135.  

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