Télécharger ndiff.eso

Retour à la liste

Numérotation des lignes :

  1. C NDIFF SOURCE FANDEUR 10/12/17 21:18:16 6427
  2.  
  3. C=======================================================================
  4. C= N D I F F =
  5. C= --------- =
  6. C= Fonction : =
  7. C= ---------- =
  8. C= Calcul de la matrice N des fonctions de forme de l'element fini =
  9. C= en un point donne de l'element, matrice N intervenant lors du =
  10. C= calcul des forces nodales equivalentes a une densite de sources =
  11. C= de quantite diffusante et dans le calcul de la "capacite" CDiff. =
  12. C= =
  13. C= Parametres : (E)=Entree (S)=Sortie =
  14. C= ------------ =
  15. C= NBNO (E) Nombre de noeuds de l'element fini =
  16. C= XEL (E) Coordonnees des noeuds de l'element fini etudie =
  17. C= SHPREF (E) Fonctions de forme et leurs derivees (reference) =
  18. C= SHP (S) Fonctions de forme et leurs derivees (reelles) =
  19. C= FORME (S) Matrice des fcts de forme (N) au point considere =
  20. C= DJAC (S) Jacobien au point considere =
  21. C= =
  22. C= Remarque : =
  23. C= ---------- =
  24. C= Lors de l'entree dans le sous-programme, SHPREF(2 a 4,*) contient =
  25. C= les DERIVEES des fonctions de forme par rapport aux coordonnees =
  26. C= de REFERENCE Qsi,Eta,Dzeta. =
  27. C= En sortie du sous-programme, SHP(2 a 4,*) contient les DERIVEES =
  28. C= des fonctions de FORME par rapport aux coordonnees REELLES x,y,z. =
  29. C=======================================================================
  30.  
  31. SUBROUTINE NDIFF (NBNO,XEL,SHPREF, SHP,FORME,DJAC)
  32.  
  33. IMPLICIT INTEGER(I-N)
  34. IMPLICIT REAL*8 (A-H,O-Z)
  35.  
  36. -INC PPARAM
  37. -INC CCOPTIO
  38. -INC CCREEL
  39.  
  40. C= Quelques constantes (2.Pi et 4.Pi)
  41. PARAMETER (X2Pi= 6.283185307179586476925286766559D0)
  42. PARAMETER (X4Pi=12.566370614359172953850573533118D0)
  43.  
  44. DIMENSION XEL(3,*),SHPREF(6,*), SHP(6,*),FORME(*)
  45.  
  46. C ====================
  47. C 1 - Initialisation
  48. C ====================
  49. C* DO j = 1, NBNO
  50. C* FORME(j) = XZero
  51. C* ENDDO
  52.  
  53. C ===================================
  54. C 2.1 - Cas des elements MASSIFS 3D
  55. C ===================================
  56. IF (IFOMOD.EQ.2) THEN
  57. DO j = 1, NBNO
  58. SHP(1,j) = SHPREF(1,j)
  59. SHP(2,j) = SHPREF(2,j)
  60. SHP(3,j) = SHPREF(3,j)
  61. SHP(4,j) = SHPREF(4,j)
  62. FORME(j) = SHPREF(1,j)
  63. ENDDO
  64. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  65. C =========================================================
  66. C 2.2 - Cas des elements MASSIFS 2D PLAN ou AXISYMETRIQUE
  67. C =========================================================
  68. ELSE IF (IFOMOD.EQ.-1 .OR. IFOMOD.EQ.0) THEN
  69. DO j = 1, NBNO
  70. SHP(1,j) = SHPREF(1,j)
  71. SHP(2,j) = SHPREF(2,j)
  72. SHP(3,j) = SHPREF(3,j)
  73. FORME(j) = SHPREF(1,j)
  74. ENDDO
  75. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  76. IF (IFOMOD.EQ.0) THEN
  77. CALL DISTRR(XEL,SHP,NBNO,RR)
  78. DJAC = X2Pi*DJAC*RR
  79. ENDIF
  80. C ===================================
  81. C 2.3 - Cas des elements MASSIFS 1D
  82. C ===================================
  83. ELSE IF (IFOMOD.EQ.3 .OR. IFOMOD.EQ.4 .OR. IFOMOD.EQ.5) THEN
  84. DO j = 1, NBNO
  85. SHP(1,j) = SHPREF(1,j)
  86. SHP(2,j) = SHPREF(2,j)
  87. FORME(j) = SHPREF(1,j)
  88. ENDDO
  89. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  90. C Cas particulier des modes axisymetriques et spherique 1D
  91. IF (IFOMOD.EQ.4.OR.IFOMOD.EQ.5) THEN
  92. CALL DISTRR(XEL,SHP,NBNO,RR)
  93. IF (IFOMOD.EQ.5) THEN
  94. DJAC = X4Pi*DJAC*RR*RR
  95. ELSE
  96. DJAC = X2Pi*DJAC*RR
  97. ENDIF
  98. ENDIF
  99. C ===========================================
  100. C 2.4 - Cas des elements MASSIFS 2D FOURIER
  101. C ===========================================
  102. ELSE IF (IFOMOD.EQ.1) THEN
  103. DO j = 1,NBNO
  104. SHP(1,j) = SHPREF(1,j)
  105. SHP(2,j) = SHPREF(2,j)
  106. SHP(3,j) = SHPREF(3,j)
  107. FORME(j) = SHPREF(1,j)
  108. ENDDO
  109. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  110. CALL DISTRR(XEL,SHP,NBNO,RR)
  111. IF (NIFOUR.EQ.0) THEN
  112. DJAC = X2Pi*DJAC*RR
  113. ELSE
  114. DJAC = XPi*DJAC*RR
  115. ENDIF
  116. ENDIF
  117.  
  118. RETURN
  119. END
  120.  
  121.  
  122.  

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