dofick
C DOFICK SOURCE FANDEUR 10/12/17 21:16:19 6427 C======================================================================= C= D O F I C K = C= ----------- = C= = C= Fonction : = C= ---------- = C= Calcul de la matrice de "DIFFUSION LINEAIRE" (loi de Fick) = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= MATE (E) Valeurs des parametres de permittivite du materiau = C= IDIM (E) Dimension du probleme (= LPERM aussi) = C= IWKELT (S) Segment de travail (ACTIF) contenant, notamment, = C= matrice de diffusion Fick dans le repere GLOBAL = C= IWKMAT (S) Segment de travail (ACTIF) = C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCREEL SEGMENT MWKELT REAL*8 DFICK(LDIFF,LDIFF),BGRDIF(LDIFF,LRE) REAL*8 XEL(3,NBNN),SHP(6,NBNN) REAL*8 VALMAT(NVMAT) ENDSEGMENT SEGMENT MWKMAT REAL*8 XLOC(IDIM,IDIM),XGLOB(IDIM,IDIM),TXR(IDIM,IDIM) REAL*8 DFICK1(LDIFF,LDIFF) ENDSEGMENT MWKELT = IWKELT C Cas ISOTROPE C-------------- IF (MATE.EQ.1) THEN DO i = 1, IDIM DFICK(i,i) = VALMAT(1) ENDDO C Cas ORTHOTROPE et ANISOTROPE C------------------------------ ELSE C- Calcul de la matrice de "diffusion de Fick" (DFICK1) dans le C- repere de "tropie" et de la matrice des cosinus directeurs C- (XLOC) des directions de "tropie" dans le repere LOCAL MWKMAT = IWKMAT C- Cas des elements massifs 2D IF (IDIM.EQ.2) THEN C-- Cas d'un materiau ORTHOTROPE IF (MATE.EQ.2) THEN DFICK1(1,1) = VALMAT(1) DFICK1(2,1) = XZERO DFICK1(1,2) = XZERO DFICK1(2,2) = VALMAT(2) XLOC(1,1) = VALMAT(3) XLOC(2,1) = VALMAT(4) XLOC(1,2) = -VALMAT(4) XLOC(2,2) = VALMAT(3) C-- Cas d'un materiau ANISOTROPE ELSE IF(MATE.EQ.3) THEN DFICK1(1,1) = VALMAT(1) DFICK1(2,1) = VALMAT(3) DFICK1(1,2) = VALMAT(3) DFICK1(2,2) = VALMAT(2) XLOC(1,1) = VALMAT(4) XLOC(2,1) = VALMAT(5) XLOC(1,2) = -VALMAT(5) XLOC(2,2) = VALMAT(4) ENDIF C- Cas des elements massifs 3D ELSE C-- Cas d'un materiau ORTHOTROPE IF (MATE.EQ.2) THEN DFICK1(1,1) = VALMAT(1) DFICK1(2,1) = XZERO DFICK1(3,1) = XZERO DFICK1(1,2) = XZERO DFICK1(2,2) = VALMAT(2) DFICK1(3,2) = XZERO DFICK1(1,3) = XZERO DFICK1(2,3) = XZERO DFICK1(3,3) = VALMAT(3) XLOC(1,1) = VALMAT(4) XLOC(2,1) = VALMAT(5) XLOC(3,1) = VALMAT(6) XLOC(1,2) = VALMAT(7) XLOC(2,2) = VALMAT(8) XLOC(3,2) = VALMAT(9) C-- Cas d'un materiau ANISOTROPE ELSE IF (MATE.EQ.3) THEN DFICK1(1,1) = VALMAT(1) DFICK1(2,1) = VALMAT(4) DFICK1(3,1) = VALMAT(5) DFICK1(1,2) = VALMAT(4) DFICK1(2,2) = VALMAT(2) DFICK1(3,2) = VALMAT(6) DFICK1(1,3) = VALMAT(5) DFICK1(2,3) = VALMAT(6) DFICK1(3,3) = VALMAT(3) XLOC(1,1) = VALMAT(7) XLOC(2,1) = VALMAT(8) XLOC(3,1) = VALMAT(9) XLOC(1,2) = VALMAT(10) XLOC(2,2) = VALMAT(11) XLOC(3,2) = VALMAT(12) ENDIF C-- Calcul de la troisieme direction de "tropie" C*AV test sur iOK ENDIF C- Calcul de la matrice XGLOB des cosinus directeurs par rapport C- au repere global DO j = 1, IDIM DO k = 1, IDIM r_z = XZERO DO i = 1, IDIM r_z = r_z + TXR(j,i)*XLOC(i,k) ENDDO XGLOB(k,j) = r_z ENDDO ENDDO C- Calcul de la matrice de "diffusion de Fick" dans le repere global ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales