permao
C PERMAO SOURCE BP208322 17/03/01 21:17:59 9325 C C----------------------------------------------------------------------- C C MATRICE DE PERMEABILITE DES ELEMENTS MASSIFS ORTHOTROPES C OU ANISOTROPES C SPECIAL POUR MILIEU POREUX C C WRK4 = POINTEUR SUR SEGMENT ACTIF, CONTENANT : * VALMAT VALEURS DES COMPOSANTES DE CONDUCTIBILITE ET * COS.DIRECTEURS DES AXES ORTHOTROPIE/REPERE LOCAL * XGLOB COS.DIRECTEURS DES AXES 1, 2 ET 3 D'ORTH./REPERE GLOBAL * XLOC COS.DIRECTEURS DES AXES 1, 2 ET 3 D'ORTH./REPERE LOCAL * TXR COS.DIRECTEURS DES AXES LOCAUX /REPERE GLOBAL * PMAT MATRICE DE PERMEABILITE * * IFOUR = CF CCOPTIO C MATE = NUMERO DU MATERIAU C EREF = VALEUR DE REFERENCE C KERRE = 0 SI OK C 1 SI OPTION NON DISPONIBLE C 2 SI XMU=0. C C----------------------------------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * SEGMENT WRK4 REAL*8 XLOC(3,3),XGLOB(3,3),TXR(IDIM,IDIM) REAL*8 VALMAT(NMATT) REAL*8 PMAT(NSTB,NSTB),PMAT1(IDIM,IDIM),PMAT2(IDIM,IDIM) ENDSEGMENT * KERRE=0 NSTB=PMAT(/1) IDIM=PMAT1(/1) * * MISE A ZERO DES TABLEAUX * * * TRAITEMENT DES CAS BIDIMENSIONNELS ( CP, DP, AXI, FOURIER) * IF(IDIM.EQ.2) THEN * cas orthotrope IF(MATE.EQ.2)THEN IF(IFOUR.LE.0) THEN PMAT1(1,1)=VALMAT(1) PMAT1(2,2)=VALMAT(2) XMU =VALMAT(3) XLOC(1,1) =VALMAT(4) XLOC(2,1) =VALMAT(5) XLOC(1,2) =-VALMAT(5) XLOC(2,2) =VALMAT(4) ELSE IF(IFOUR.EQ.1) THEN PMAT1(1,1)=VALMAT(1) PMAT1(2,2)=VALMAT(2) XMU =VALMAT(4) XLOC(1,1) =VALMAT(5) XLOC(2,1) =VALMAT(6) XLOC(1,2) =-VALMAT(6) XLOC(2,2) =VALMAT(5) ENDIF * cas anisotrope ELSE IF(MATE.EQ.3)THEN IF(IFOUR.LE.0) THEN PMAT1(1,1)=VALMAT(1) PMAT1(2,2)=VALMAT(2) PMAT1(2,1)=VALMAT(3) PMAT1(1,2)=PMAT1(2,1) XMU =VALMAT(4) XLOC(1,1) =VALMAT(5) XLOC(2,1) =VALMAT(6) XLOC(1,2) =-VALMAT(6) XLOC(2,2) =VALMAT(5) ELSE IF(IFOUR.EQ.1) THEN PMAT1(1,1)=VALMAT(1) PMAT1(2,2)=VALMAT(2) PMAT1(2,1)=VALMAT(3) PMAT1(1,2)=PMAT1(2,1) XMU =VALMAT(5) XLOC(1,1) =VALMAT(6) XLOC(2,1) =VALMAT(7) XLOC(1,2) =-VALMAT(7) XLOC(2,2) =VALMAT(6) ENDIF * cas unidirectionnel ELSE IF(MATE.EQ.4)THEN PMAT1(1,1)=VALMAT(1) XMU =VALMAT(2) XLOC(1,1) =VALMAT(3) XLOC(2,1) =VALMAT(4) XLOC(1,2) =-VALMAT(4) XLOC(2,2) =VALMAT(3) ENDIF * IF(XMU.EQ.0.D0) THEN KERRE=2 RETURN ENDIF FAC=EREF*EREF/XMU DO 30 I=1,IDIM DO 30 J=1,IDIM PMAT1(I,J)=PMAT1(I,J)*FAC 30 CONTINUE * * CALCUL DES COS.DIRECTEURS DES AXES ORTH. /REPERE GLOBAL * XGLOB=TXR*XLOC * DO 40 K=1,IDIM DO 40 J=1,IDIM DO 40 I=1,IDIM XGLOB(K,J)=TXR(J,I)*XLOC(I,K)+XGLOB(K,J) 40 CONTINUE * * TRANSFORMATION DE LA MATRICE PMAT1 * cas des series de fourier IF (IFOUR.EQ.1) THEN PMAT(1,1)=PMAT2(1,1) IF(MATE.EQ.2)THEN PMAT(2,2)=VALMAT(3) ELSE IF(MATE.EQ.3)THEN PMAT(2,2)=VALMAT(4) ENDIF PMAT(1,3)=PMAT2(1,2) PMAT(3,1)=PMAT(1,3) PMAT(3,3)=PMAT2(2,2) * les autres cas ELSE ENDIF * * * TRAITEMENT DES CAS TRIDIMENSIONNELS * ELSE IF(MATE.EQ.2)THEN * cas orthotrope PMAT1(1,1)=VALMAT(1) PMAT1(2,2)=VALMAT(2) PMAT1(3,3)=VALMAT(3) XMU =VALMAT(4) XLOC(1,1) =VALMAT(5) XLOC(2,1) =VALMAT(6) XLOC(3,1) =VALMAT(7) XLOC(1,2) =VALMAT(8) XLOC(2,2) =VALMAT(9) XLOC(3,2) =VALMAT(10) * cas anisotrope ELSE IF(MATE.EQ.3)THEN PMAT1(1,1)=VALMAT(1) PMAT1(2,2)=VALMAT(2) PMAT1(3,3)=VALMAT(3) PMAT1(2,1)=VALMAT(4) PMAT1(1,2)=PMAT(2,1) PMAT1(3,1)=VALMAT(5) PMAT1(1,3)=PMAT(3,1) PMAT1(3,2)=VALMAT(6) PMAT1(2,3)=PMAT(3,2) XMU =VALMAT(7) XLOC(1,1) =VALMAT(8) XLOC(2,1) =VALMAT(9) XLOC(3,1) =VALMAT(10) XLOC(1,2) =VALMAT(11) XLOC(2,2) =VALMAT(12) XLOC(3,2) =VALMAT(13) * cas unidirectionnel ELSE IF(MATE.EQ.4)THEN PMAT1(1,1)=VALMAT(1) XMU =VALMAT(2) XLOC(1,1) =VALMAT(3) XLOC(2,1) =VALMAT(4) XLOC(3,1) =VALMAT(5) XLOC(1,2) =VALMAT(6) XLOC(2,2) =VALMAT(7) XLOC(3,2) =VALMAT(8) ENDIF * IF(XMU.EQ.0.D0) THEN KERRE=2 RETURN ENDIF FAC=EREF*EREF/XMU DO 35 I=1,IDIM DO 35 J=1,IDIM PMAT1(I,J)=PMAT1(I,J)*FAC 35 CONTINUE * * CALCUL DU VECTEUR 3 * * * CALCUL DES COS.DIRECTEURS DES AXES ORTH. /REPERE GLOBAL * XGLOB=TXR*XLOC * DO 45 K=1,IDIM DO 45 J=1,IDIM DO 45 I=1,IDIM XGLOB(K,J)=TXR(J,I)*XLOC(I,K)+XGLOB(K,J) 45 CONTINUE * * TRANSFORMATION DE LA MATRICE PMAT1 * ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales