Télécharger belec.eso

Retour à la liste

Numérotation des lignes :

belec
  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.  
  42. -INC PPARAM
  43. -INC CCOPTIO
  44.  
  45. C= Quelques constantes (2.Pi et 4.Pi)
  46. PARAMETER (X2Pi= 6.283185307179586476925286766559D0)
  47. PARAMETER (X4Pi=12.566370614359172953850573533118D0)
  48.  
  49. DIMENSION XEL(3,*),SHPREF(6,*), SHP(6,*),GRDEL(NDIM,*)
  50.  
  51. C ====================
  52. C 1 - Initialisation
  53. C ====================
  54. C*OF CALL ZERO(GRDEL,IDIM,NBNO)
  55.  
  56. C ===================================
  57. C 2.1 - Cas des elements massifs 3D
  58. C ===================================
  59. IF (IFOMOD.EQ.2) THEN
  60. DO j = 1, NBNO
  61. SHP(1,j) = SHPREF(1,j)
  62. SHP(2,j) = SHPREF(2,j)
  63. SHP(3,j) = SHPREF(3,j)
  64. SHP(4,j) = SHPREF(4,j)
  65. ENDDO
  66. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  67. IF (ISGNG .GE. 0) THEN
  68. DO j = 1, NBNO
  69. GRDEL(1,j) = SHP(2,j)
  70. GRDEL(2,j) = SHP(3,j)
  71. GRDEL(3,j) = SHP(4,j)
  72. ENDDO
  73. ELSE
  74. DO j = 1, NBNO
  75. GRDEL(1,j) = -SHP(2,j)
  76. GRDEL(2,j) = -SHP(3,j)
  77. GRDEL(3,j) = -SHP(4,j)
  78. ENDDO
  79. ENDIF
  80. C =========================================================
  81. C 2.2 - Cas des elements massifs 2D PLAN ou AXISymetrique
  82. C =========================================================
  83. ELSE IF (IFOMOD.EQ.-1 .OR. IFOMOD.EQ.0) THEN
  84. DO j = 1,NBNO
  85. SHP(1,j) = SHPREF(1,j)
  86. SHP(2,j) = SHPREF(2,j)
  87. SHP(3,j) = SHPREF(3,j)
  88. ENDDO
  89. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  90. IF (ISGNG .GE. 0) THEN
  91. DO j = 1, NBNO
  92. GRDEL(1,j) = SHP(2,j)
  93. GRDEL(2,j) = SHP(3,j)
  94. ENDDO
  95. ELSE
  96. DO j = 1, NBNO
  97. GRDEL(1,j) = -SHP(2,j)
  98. GRDEL(2,j) = -SHP(3,j)
  99. ENDDO
  100. ENDIF
  101. IF (IFOMOD.EQ.0) THEN
  102. CALL DISTRR(XEL,SHP,NBNO,RR)
  103. DJAC = X2Pi*DJAC*RR
  104. ENDIF
  105. C ===================================================
  106. C 2.3 - Cas des elements massifs 2D en mode FOURIER
  107. C ===================================================
  108. ELSE IF (IFOMOD.EQ.1) THEN
  109. DO j = 1,NBNO
  110. SHP(1,j) = SHPREF(1,j)
  111. SHP(2,j) = SHPREF(2,j)
  112. SHP(3,j) = SHPREF(3,j)
  113. ENDDO
  114. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  115. CALL DISTRR(XEL,SHP,NBNO,RR)
  116. IF (ISGNG .GE. 0) THEN
  117. DNN = NIFOUR/RR
  118. DO j = 1, NBNO
  119. GRDEL(1,j) = SHP(2,j)
  120. GRDEL(2,j) = DNN*SHP(1,j)
  121. GRDEL(3,j) = SHP(3,j)
  122. ENDDO
  123. ELSE
  124. DNN = -NIFOUR/RR
  125. DO j = 1, NBNO
  126. GRDEL(1,j) = -SHP(2,j)
  127. GRDEL(2,j) = DNN*SHP(1,j)
  128. GRDEL(3,j) = -SHP(3,j)
  129. ENDDO
  130. ENDIF
  131. IF (NIFOUR.EQ.0) THEN
  132. DJAC = X2Pi*DJAC*RR
  133. ELSE
  134. DJAC = XPi*DJAC*RR
  135. ENDIF
  136. C ===================================
  137. C 2.4 - Cas des elements MASSIFS 1D
  138. C ===================================
  139. ELSE IF (IFOMOD.EQ.3 .OR. IFOMOD.EQ.4 .OR. IFOMOD.EQ.5) THEN
  140. DO j = 1,NBNO
  141. SHP(1,j) = SHPREF(1,j)
  142. SHP(2,j) = SHPREF(2,j)
  143. ENDDO
  144. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  145. C= Traitement des modes axisymetriques et spherique 1D
  146. IF (ISGNG .GE. 0) THEN
  147. DO j = 1,NBNO
  148. GRDEL(1,j) = SHP(2,j)
  149. ENDDO
  150. ELSE
  151. DO j = 1, NBNO
  152. GRDEL(1,j) = -SHP(2,j)
  153. ENDDO
  154. ENDIF
  155. IF (IFOMOD.EQ.4) THEN
  156. CALL DISTRR(XEL,SHP,NBNO,RR)
  157. DJAC = X2Pi*DJAC*RR
  158. ELSE IF (IFOMOD.EQ.5) THEN
  159. CALL DISTRR(XEL,SHP,NBNO,RR)
  160. DJAC = X4Pi*DJAC*RR*RR
  161. ENDIF
  162.  
  163. ENDIF
  164.  
  165. RETURN
  166. END
  167.  
  168.  
  169.  

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