Télécharger belec.eso

Retour à la liste

Numérotation des lignes :

  1. C BELEC SOURCE FANDEUR 10/12/17 21:15:32 6427
  2.  
  3. C=======================================================================
  4. C= B E L E C =
  5. C= --------- =
  6. C= Fonction : =
  7. C= ---------- =
  8. C= Calcul de la matrice Bel reliant le champ electrique en un point =
  9. C= d'un element fini aux ddls de potentiel aux noeuds de cet element =
  10. C= Le jacobien est egalement evalue en ce point pour verifier par la =
  11. C= suite si l'element fini n'est pas trop distordu. =
  12. C= =
  13. C= Parametres : (E)=Entree (S)=Sortie =
  14. C= ------------ =
  15. C= XEL (E) Coordonnees des noeuds de l'element fini considere =
  16. C= SHPREF (E) Fonctions de forme et leurs derivees au point etudie =
  17. C= NBNO (E) Nombre de noeuds de l'element fini =
  18. C= NDIM (E) Nombre de lignes de la matrice GRDEL =
  19. C= ISGNG (E) Valeur negative (<0) si on veut le champ electrique, =
  20. C= i.e. l'oppose du gradient =
  21. C= =
  22. C= SHP (S) Fonctions de forme et leurs derivees "actuelles" =
  23. C= GRDEL (S) Matrice de gradients Bel calculee au point etudie =
  24. C= DJAC (S) Jacobien au point de l'element etudie =
  25. C= =
  26. C= Remarque : =
  27. C= ---------- =
  28. C= Lors de l'entree dans le sous-programme, SHPREF(2 a 4,*) contient =
  29. C= les DERIVEES des fonctions de forme par rapport aux coordonnees =
  30. C= de REFERENCE Qsi,Eta,Dzeta. =
  31. C= En sortie du sous-programme, SHP(2 a 4,*) contient les DERIVEES =
  32. C= des fonctions de FORME par rapport aux coordonnees REELLES x,y,z. =
  33. C=======================================================================
  34.  
  35. SUBROUTINE BELEC (XEL,SHPREF,NBNO,NDIM,ISGNG, SHP,GRDEL,DJAC)
  36.  
  37. IMPLICIT INTEGER(I-N)
  38. IMPLICIT REAL*8 (A-H,O-Z)
  39.  
  40. -INC CCREEL
  41. -INC CCOPTIO
  42.  
  43. C= Quelques constantes (2.Pi et 4.Pi)
  44. PARAMETER (X2Pi= 6.283185307179586476925286766559D0)
  45. PARAMETER (X4Pi=12.566370614359172953850573533118D0)
  46.  
  47. DIMENSION XEL(3,*),SHPREF(6,*), SHP(6,*),GRDEL(NDIM,*)
  48.  
  49. C ====================
  50. C 1 - Initialisation
  51. C ====================
  52. C*OF CALL ZERO(GRDEL,IDIM,NBNO)
  53.  
  54. C ===================================
  55. C 2.1 - Cas des elements massifs 3D
  56. C ===================================
  57. IF (IFOMOD.EQ.2) THEN
  58. DO j = 1, NBNO
  59. SHP(1,j) = SHPREF(1,j)
  60. SHP(2,j) = SHPREF(2,j)
  61. SHP(3,j) = SHPREF(3,j)
  62. SHP(4,j) = SHPREF(4,j)
  63. ENDDO
  64. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  65. IF (ISGNG .GE. 0) THEN
  66. DO j = 1, NBNO
  67. GRDEL(1,j) = SHP(2,j)
  68. GRDEL(2,j) = SHP(3,j)
  69. GRDEL(3,j) = SHP(4,j)
  70. ENDDO
  71. ELSE
  72. DO j = 1, NBNO
  73. GRDEL(1,j) = -SHP(2,j)
  74. GRDEL(2,j) = -SHP(3,j)
  75. GRDEL(3,j) = -SHP(4,j)
  76. ENDDO
  77. ENDIF
  78. C =========================================================
  79. C 2.2 - Cas des elements massifs 2D PLAN ou AXISymetrique
  80. C =========================================================
  81. ELSE IF (IFOMOD.EQ.-1 .OR. IFOMOD.EQ.0) THEN
  82. DO j = 1,NBNO
  83. SHP(1,j) = SHPREF(1,j)
  84. SHP(2,j) = SHPREF(2,j)
  85. SHP(3,j) = SHPREF(3,j)
  86. ENDDO
  87. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  88. IF (ISGNG .GE. 0) THEN
  89. DO j = 1, NBNO
  90. GRDEL(1,j) = SHP(2,j)
  91. GRDEL(2,j) = SHP(3,j)
  92. ENDDO
  93. ELSE
  94. DO j = 1, NBNO
  95. GRDEL(1,j) = -SHP(2,j)
  96. GRDEL(2,j) = -SHP(3,j)
  97. ENDDO
  98. ENDIF
  99. IF (IFOMOD.EQ.0) THEN
  100. CALL DISTRR(XEL,SHP,NBNO,RR)
  101. DJAC = X2Pi*DJAC*RR
  102. ENDIF
  103. C ===================================================
  104. C 2.3 - Cas des elements massifs 2D en mode FOURIER
  105. C ===================================================
  106. ELSE IF (IFOMOD.EQ.1) THEN
  107. DO j = 1,NBNO
  108. SHP(1,j) = SHPREF(1,j)
  109. SHP(2,j) = SHPREF(2,j)
  110. SHP(3,j) = SHPREF(3,j)
  111. ENDDO
  112. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  113. CALL DISTRR(XEL,SHP,NBNO,RR)
  114. IF (ISGNG .GE. 0) THEN
  115. DNN = NIFOUR/RR
  116. DO j = 1, NBNO
  117. GRDEL(1,j) = SHP(2,j)
  118. GRDEL(2,j) = DNN*SHP(1,j)
  119. GRDEL(3,j) = SHP(3,j)
  120. ENDDO
  121. ELSE
  122. DNN = -NIFOUR/RR
  123. DO j = 1, NBNO
  124. GRDEL(1,j) = -SHP(2,j)
  125. GRDEL(2,j) = DNN*SHP(1,j)
  126. GRDEL(3,j) = -SHP(3,j)
  127. ENDDO
  128. ENDIF
  129. IF (NIFOUR.EQ.0) THEN
  130. DJAC = X2Pi*DJAC*RR
  131. ELSE
  132. DJAC = XPi*DJAC*RR
  133. ENDIF
  134. C ===================================
  135. C 2.4 - Cas des elements MASSIFS 1D
  136. C ===================================
  137. ELSE IF (IFOMOD.EQ.3 .OR. IFOMOD.EQ.4 .OR. IFOMOD.EQ.5) THEN
  138. DO j = 1,NBNO
  139. SHP(1,j) = SHPREF(1,j)
  140. SHP(2,j) = SHPREF(2,j)
  141. ENDDO
  142. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  143. C= Traitement des modes axisymetriques et spherique 1D
  144. IF (ISGNG .GE. 0) THEN
  145. DO j = 1,NBNO
  146. GRDEL(1,j) = SHP(2,j)
  147. ENDDO
  148. ELSE
  149. DO j = 1, NBNO
  150. GRDEL(1,j) = -SHP(2,j)
  151. ENDDO
  152. ENDIF
  153. IF (IFOMOD.EQ.4) THEN
  154. CALL DISTRR(XEL,SHP,NBNO,RR)
  155. DJAC = X2Pi*DJAC*RR
  156. ELSE IF (IFOMOD.EQ.5) THEN
  157. CALL DISTRR(XEL,SHP,NBNO,RR)
  158. DJAC = X4Pi*DJAC*RR*RR
  159. ENDIF
  160.  
  161. ENDIF
  162.  
  163. RETURN
  164. END
  165.  
  166.  
  167.  

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