Download dofick.eso

Back to the list

   1 : C DOFICK    SOURCE    FANDEUR   10/12/17    21:16:19     6427           
   2 : 
   3 : C=======================================================================
   4 : C=                            D O F I C K                              =
   5 : C=                            -----------                              =
   6 : C=                                                                     =
   7 : C=  Fonction :                                                         =
   8 : C=  ----------                                                         =
   9 : C=  Calcul de la matrice de "DIFFUSION LINEAIRE" (loi de Fick)         =
  10 : C=                                                                     =
  11 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  12 : C=  ------------                                                       =
  13 : C=   MATE     (E)   Valeurs des parametres de permittivite du materiau =
  14 : C=   IDIM     (E)   Dimension du probleme (= LPERM aussi)              =
  15 : C=   IWKELT   (S)   Segment de travail (ACTIF) contenant, notamment,   =
  16 : C=                  matrice de diffusion Fick dans le repere GLOBAL    =
  17 : C=   IWKMAT   (S)   Segment de travail (ACTIF)                         =
  18 : C=======================================================================
  19 : 
  20 :       SUBROUTINE DOFICK (MATE,IDIM, IWKELT,IWKMAT)
  21 : 
  22 :       IMPLICIT INTEGER(I-N)
  23 :       IMPLICIT REAL*8(A-H,O-Z)
  24 : 
  25 : -INC CCREEL
  26 : 
  27 :       SEGMENT MWKELT
  28 :         REAL*8 DFICK(LDIFF,LDIFF),BGRDIF(LDIFF,LRE)
  29 :         REAL*8 XEL(3,NBNN),SHP(6,NBNN)
  30 :         REAL*8 VALMAT(NVMAT)
  31 :       ENDSEGMENT
  32 : 
  33 :       SEGMENT MWKMAT
  34 :         REAL*8 XLOC(IDIM,IDIM),XGLOB(IDIM,IDIM),TXR(IDIM,IDIM)
  35 :         REAL*8 DFICK1(LDIFF,LDIFF)
  36 :       ENDSEGMENT
  37 : 
  38 :       MWKELT = IWKELT
  39 : 
  40 : C Cas ISOTROPE
  41 : C--------------
  42 :       IF (MATE.EQ.1) THEN
  43 :         DO i = 1, IDIM
  44 :           DFICK(i,i) = VALMAT(1)
  45 :         ENDDO
  46 : 
  47 : C Cas ORTHOTROPE et ANISOTROPE
  48 : C------------------------------
  49 :       ELSE
  50 : C- Calcul de la matrice de "diffusion de Fick" (DFICK1) dans le
  51 : C- repere de "tropie" et de la matrice des cosinus directeurs
  52 : C- (XLOC) des directions de "tropie" dans le repere LOCAL
  53 :         MWKMAT = IWKMAT
  54 : C- Cas des elements massifs 2D
  55 :         IF (IDIM.EQ.2) THEN
  56 : C-- Cas d'un materiau ORTHOTROPE
  57 :           IF (MATE.EQ.2) THEN
  58 :             DFICK1(1,1) = VALMAT(1)
  59 :             DFICK1(2,1) = XZERO
  60 :             DFICK1(1,2) = XZERO
  61 :             DFICK1(2,2) = VALMAT(2)
  62 :             XLOC(1,1) =  VALMAT(3)
  63 :             XLOC(2,1) =  VALMAT(4)
  64 :             XLOC(1,2) = -VALMAT(4)
  65 :             XLOC(2,2) =  VALMAT(3)
  66 : C-- Cas d'un materiau ANISOTROPE
  67 :           ELSE IF(MATE.EQ.3) THEN
  68 :             DFICK1(1,1) = VALMAT(1)
  69 :             DFICK1(2,1) = VALMAT(3)
  70 :             DFICK1(1,2) = VALMAT(3)
  71 :             DFICK1(2,2) = VALMAT(2)
  72 :             XLOC(1,1) =  VALMAT(4)
  73 :             XLOC(2,1) =  VALMAT(5)
  74 :             XLOC(1,2) = -VALMAT(5)
  75 :             XLOC(2,2) =  VALMAT(4)
  76 :           ENDIF
  77 : C- Cas des elements massifs 3D
  78 :         ELSE
  79 : C-- Cas d'un materiau ORTHOTROPE
  80 :           IF (MATE.EQ.2) THEN
  81 :             DFICK1(1,1) = VALMAT(1)
  82 :             DFICK1(2,1) = XZERO
  83 :             DFICK1(3,1) = XZERO
  84 :             DFICK1(1,2) = XZERO
  85 :             DFICK1(2,2) = VALMAT(2)
  86 :             DFICK1(3,2) = XZERO
  87 :             DFICK1(1,3) = XZERO
  88 :             DFICK1(2,3) = XZERO
  89 :             DFICK1(3,3) = VALMAT(3)
  90 :             XLOC(1,1) = VALMAT(4)
  91 :             XLOC(2,1) = VALMAT(5)
  92 :             XLOC(3,1) = VALMAT(6)
  93 :             XLOC(1,2) = VALMAT(7)
  94 :             XLOC(2,2) = VALMAT(8)
  95 :             XLOC(3,2) = VALMAT(9)
  96 : C-- Cas d'un materiau ANISOTROPE
  97 :           ELSE IF (MATE.EQ.3) THEN
  98 :             DFICK1(1,1) = VALMAT(1)
  99 :             DFICK1(2,1) = VALMAT(4)
 100 :             DFICK1(3,1) = VALMAT(5)
 101 :             DFICK1(1,2) = VALMAT(4)
 102 :             DFICK1(2,2) = VALMAT(2)
 103 :             DFICK1(3,2) = VALMAT(6)
 104 :             DFICK1(1,3) = VALMAT(5)
 105 :             DFICK1(2,3) = VALMAT(6)
 106 :             DFICK1(3,3) = VALMAT(3)
 107 :             XLOC(1,1) = VALMAT(7)
 108 :             XLOC(2,1) = VALMAT(8)
 109 :             XLOC(3,1) = VALMAT(9)
 110 :             XLOC(1,2) = VALMAT(10)
 111 :             XLOC(2,2) = VALMAT(11)
 112 :             XLOC(3,2) = VALMAT(12)
 113 :           ENDIF
 114 : C-- Calcul de la troisieme direction de "tropie"
 114 :           CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),iOK)
 115 : C*AV test sur iOK
 116 :         ENDIF
 117 : C- Calcul de la matrice XGLOB des cosinus directeurs par rapport
 118 : C- au repere global
 119 :         DO j = 1, IDIM
 120 :           DO k = 1, IDIM
 121 :             r_z = XZERO
 122 :             DO i = 1, IDIM
 123 :               r_z = r_z + TXR(j,i)*XLOC(i,k)
 124 :             ENDDO
 125 :             XGLOB(k,j) = r_z
 126 :           ENDDO
 127 :         ENDDO
 128 : C- Calcul de la matrice de "diffusion de Fick" dans le repere global
 128 :         CALL PRODT(DFICK,DFICK1,XGLOB,IDIM,IDIM)
 129 :       ENDIF
 130 : 
 131 :       RETURN
 132 :       END
 133 : 
 134 :  

© Cast3M 2003 - All rights reserved.
Disclaimer