Download belec.eso

Back to the list

   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 ====================
  51 : C*OF     CALL ZERO(GRDEL,IDIM,NBNO)
  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 :         ENDDO
  62 :         CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  63 :         IF (ISGNG .GE. 0) THEN
  64 :           DO j = 1, NBNO
  65 :             GRDEL(1,j) = SHP(2,j)
  66 :             GRDEL(2,j) = SHP(3,j)
  67 :             GRDEL(3,j) = SHP(4,j)
  68 :           ENDDO
  69 :         ELSE
  70 :           DO j = 1, NBNO
  71 :             GRDEL(1,j) = -SHP(2,j)
  72 :             GRDEL(2,j) = -SHP(3,j)
  73 :             GRDEL(3,j) = -SHP(4,j)
  74 :           ENDDO
  75 :         ENDIF
  76 : C =========================================================
  77 : C  2.2 - Cas des elements massifs 2D PLAN ou AXISymetrique
  78 : C =========================================================
  79 :       ELSE IF (IFOMOD.EQ.-1 .OR. IFOMOD.EQ.0) THEN
  80 :         DO j = 1,NBNO
  81 :           SHP(1,j) = SHPREF(1,j)
  82 :           SHP(2,j) = SHPREF(2,j)
  83 :           SHP(3,j) = SHPREF(3,j)
  84 :         ENDDO
  84 :         CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  85 :         IF (ISGNG .GE. 0) THEN
  86 :           DO j = 1, NBNO
  87 :             GRDEL(1,j) = SHP(2,j)
  88 :             GRDEL(2,j) = SHP(3,j)
  89 :           ENDDO
  90 :         ELSE
  91 :           DO j = 1, NBNO
  92 :             GRDEL(1,j) = -SHP(2,j)
  93 :             GRDEL(2,j) = -SHP(3,j)
  94 :           ENDDO
  95 :         ENDIF
  96 :         IF (IFOMOD.EQ.0) THEN
  96 :           CALL DISTRR(XEL,SHP,NBNO,RR)
  97 :           DJAC = X2Pi*DJAC*RR
  98 :         ENDIF
  99 : C ===================================================
 100 : C  2.3 - Cas des elements massifs 2D en mode 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 :         ENDDO
 107 :         CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
 107 :         CALL DISTRR(XEL,SHP,NBNO,RR)
 108 :         IF (ISGNG .GE. 0) THEN
 109 :           DNN = NIFOUR/RR
 110 :           DO j = 1, NBNO
 111 :             GRDEL(1,j) = SHP(2,j)
 112 :             GRDEL(2,j) = DNN*SHP(1,j)
 113 :             GRDEL(3,j) = SHP(3,j)
 114 :           ENDDO
 115 :         ELSE
 116 :           DNN = -NIFOUR/RR
 117 :           DO j = 1, NBNO
 118 :             GRDEL(1,j) = -SHP(2,j)
 119 :             GRDEL(2,j) =  DNN*SHP(1,j)
 120 :             GRDEL(3,j) = -SHP(3,j)
 121 :           ENDDO
 122 :         ENDIF
 123 :         IF (NIFOUR.EQ.0) THEN
 124 :           DJAC = X2Pi*DJAC*RR
 125 :         ELSE
 126 :           DJAC = XPi*DJAC*RR
 127 :         ENDIF
 128 : C ===================================
 129 : C  2.4 - Cas des elements MASSIFS 1D
 130 : C ===================================
 131 :       ELSE IF (IFOMOD.EQ.3 .OR. IFOMOD.EQ.4 .OR. IFOMOD.EQ.5) THEN
 132 :         DO j = 1,NBNO
 133 :           SHP(1,j) = SHPREF(1,j)
 134 :           SHP(2,j) = SHPREF(2,j)
 135 :         ENDDO
 135 :         CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
 136 : C= Traitement des modes axisymetriques et spherique 1D
 137 :         IF (ISGNG .GE. 0) THEN
 138 :           DO j = 1,NBNO
 139 :             GRDEL(1,j) = SHP(2,j)
 140 :           ENDDO
 141 :         ELSE
 142 :           DO j = 1, NBNO
 143 :             GRDEL(1,j) = -SHP(2,j)
 144 :           ENDDO
 145 :         ENDIF
 146 :         IF (IFOMOD.EQ.4) THEN
 146 :           CALL DISTRR(XEL,SHP,NBNO,RR)
 147 :           DJAC = X2Pi*DJAC*RR
 148 :         ELSE IF (IFOMOD.EQ.5) THEN
 148 :           CALL DISTRR(XEL,SHP,NBNO,RR)
 149 :           DJAC = X4Pi*DJAC*RR*RR
 150 :         ENDIF
 151 : 
 152 :       ENDIF
 153 : 
 154 :       RETURN
 155 :       END
 156 : 
 157 :  

© Cast3M 2003 - All rights reserved.
Disclaimer