Download ndiff.eso

Back to the list

   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 CCOPTIO
  37 : -INC CCREEL
  38 : 
  39 : C= Quelques constantes (2.Pi et 4.Pi)
  40 :       PARAMETER (X2Pi= 6.283185307179586476925286766559D0)
  41 :       PARAMETER (X4Pi=12.566370614359172953850573533118D0)
  42 : 
  43 :       DIMENSION XEL(3,*),SHPREF(6,*), SHP(6,*),FORME(*)
  44 : 
  45 : C ====================
  46 : C  1 - Initialisation
  47 : C ====================
  48 : C*    DO j = 1, NBNO
  49 : C*      FORME(j) = XZero
  50 : C*    ENDDO
  51 : 
  52 : C ===================================
  53 : C  2.1 - Cas des elements MASSIFS 3D
  54 : C ===================================
  55 :       IF (IFOMOD.EQ.2) THEN
  56 :         DO j = 1, NBNO
  57 :           SHP(1,j) = SHPREF(1,j)
  58 :           SHP(2,j) = SHPREF(2,j)
  59 :           SHP(3,j) = SHPREF(3,j)
  60 :           SHP(4,j) = SHPREF(4,j)
  61 :           FORME(j) = SHPREF(1,j)
  62 :         ENDDO
  62 :         CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  63 : C =========================================================
  64 : C  2.2 - Cas des elements MASSIFS 2D PLAN ou AXISYMETRIQUE
  65 : C =========================================================
  66 :       ELSE IF (IFOMOD.EQ.-1 .OR. IFOMOD.EQ.0) THEN
  67 :         DO j = 1, NBNO
  68 :           SHP(1,j) = SHPREF(1,j)
  69 :           SHP(2,j) = SHPREF(2,j)
  70 :           SHP(3,j) = SHPREF(3,j)
  71 :           FORME(j) = SHPREF(1,j)
  72 :         ENDDO
  72 :         CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  73 :         IF (IFOMOD.EQ.0) THEN
  73 :           CALL DISTRR(XEL,SHP,NBNO,RR)
  74 :           DJAC = X2Pi*DJAC*RR
  75 :         ENDIF
  76 : C ===================================
  77 : C  2.3 - Cas des elements MASSIFS 1D
  78 : C ===================================
  79 :       ELSE IF (IFOMOD.EQ.3 .OR. IFOMOD.EQ.4 .OR. IFOMOD.EQ.5) THEN
  80 :         DO j = 1, NBNO
  81 :           SHP(1,j) = SHPREF(1,j)
  82 :           SHP(2,j) = SHPREF(2,j)
  83 :           FORME(j) = SHPREF(1,j)
  84 :         ENDDO
  84 :         CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  85 : C Cas particulier des modes axisymetriques et spherique 1D
  86 :         IF (IFOMOD.EQ.4.OR.IFOMOD.EQ.5) THEN
  86 :           CALL DISTRR(XEL,SHP,NBNO,RR)
  87 :           IF (IFOMOD.EQ.5) THEN
  88 :             DJAC = X4Pi*DJAC*RR*RR
  89 :           ELSE
  90 :             DJAC = X2Pi*DJAC*RR
  91 :           ENDIF
  92 :         ENDIF
  93 : C ===========================================
  94 : C  2.4 - Cas des elements MASSIFS 2D FOURIER
  95 : C ===========================================
  96 :       ELSE IF (IFOMOD.EQ.1) THEN
  97 :         DO j = 1,NBNO
  98 :           SHP(1,j) = SHPREF(1,j)
  99 :           SHP(2,j) = SHPREF(2,j)
 100 :           SHP(3,j) = SHPREF(3,j)
 101 :           FORME(j) = SHPREF(1,j)
 102 :         ENDDO
 102 :         CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
 102 :         CALL DISTRR(XEL,SHP,NBNO,RR)
 103 :         IF (NIFOUR.EQ.0) THEN
 104 :           DJAC = X2Pi*DJAC*RR
 105 :         ELSE
 106 :           DJAC = XPi*DJAC*RR
 107 :         ENDIF
 108 :       ENDIF
 109 : 
 110 :       RETURN
 111 :       END
 112 : 
 113 :  

© Cast3M 2003 - All rights reserved.
Disclaimer