1 : C MATGLO SOURCE CHAT 05/01/13 01:34:06 5004 2 : SUBROUTINE MATGLO(CMAT,CMAT1,CMAT2,TXR,XLOC,XGLOB,VALMAT, 3 : S NDIM,IDIM,INM,IFOMOD) 4 : C----------------------------------------------------------------------- 5 : C Transformation d'une matrice exprimée dans le repere local a l'element 6 : C au repere global dans le cas d'un materiau ...trope. 7 : C Cette matrice, issue du MCHAML materiau de sous type caracteristique, 8 : C caracterise le materiau : Conductibilité, Perméabilité ... 9 : C----------------------------------------------------------------------- 10 : C 11 : C--------------------------- 12 : C Parametres Entree/Sortie : 13 : C--------------------------- 14 : C 15 : C /S CMAT : Matrice caracterisant le materiau dans le repere global. 16 : C E/ TXR : Cosinus directeurs des axes locaux / repere global. 17 : C E/ VALMAT : Valeurs des coeff. de la matrice CMAT et des 18 : C cosinus directeurs des axes d'ortho. / repere local. 19 : C E/ NDIM : Taille de la matrice CMAT (=IDIM sauf en FOURIER=3) 20 : C E/ IDIM : Dimension de l'espace (2 en 2D et 3 en 3D) 21 : C E/ INM : Indique la Nature du Materiau (1/iso,2/ortho,3/aniso) 22 : C E/ IFOMOD : Vaut 1 si on utilise les elements massifs 2D de FOURIER. 23 : C 24 : C---------------------- 25 : C Tableaux de travail : 26 : C---------------------- 27 : C 28 : C CMAT1 : Matrice caracterisant le materiau dans le repere local. 29 : C CMAT2 : Matrice caracterisant le materiau dans le repere global. 30 : C XLOC : Cosinus directeurs des axes d'ortho. / repere local. 31 : C XGLOB : Cosinus directeurs des axes d'ortho. / repere global. 32 : C 33 : C----------------------------------------------------------------------- 34 : C 35 : C Langage : FORTRAN77 36 : C 37 : C Auteurs : F.DABBENE 08/93 d'apres tnumac.eso de P. DOWLATYARI 10/90 38 : C 39 : C----------------------------------------------------------------------- 40 : IMPLICIT INTEGER(I-N) 41 : IMPLICIT REAL*8(A-H,O-Z) 42 : C 43 : DIMENSION CMAT(NDIM,NDIM), CMAT1(IDIM,IDIM), CMAT2(IDIM,IDIM), 44 : S TXR (IDIM,IDIM), XLOC (IDIM,IDIM), XGLOB(IDIM,IDIM), 45 : S VALMAT(*) 46 : C 47 : C= Mise a zero des tableaux de travail 48 : C 48 : CALL ZERO(CMAT,NDIM,NDIM) 48 : CALL ZERO(CMAT1,IDIM,IDIM) 48 : CALL ZERO(CMAT2,IDIM,IDIM) 48 : CALL ZERO(XGLOB,IDIM,IDIM) 49 : C 50 : C------------------------------------------------------------------ 51 : C RECUPERATION DE LA MATRICE DANS LE REPERE LOCAL ET CONSTRUCTION 52 : C DE LA MATRICE DE PASSAGE DU REPERE LOCAL AU REPERE GLOBAL 53 : C------------------------------------------------------------------ 54 : C 55 : IF (IDIM.EQ.2) THEN 56 : C 57 : C= ELEMENT MASSIF BIDIM 58 : C 59 : IF (INM.EQ.1) THEN 60 : C 61 : C- Materiau isotrope 62 : C 63 : CMAT(1,1) = VALMAT(1) 64 : CMAT(2,2) = VALMAT(1) 65 : RETURN 66 : ELSEIF (INM.EQ.2) THEN 67 : C 68 : C- Materiau orthotrope 69 : C 70 : CMAT1(1,1) = VALMAT(1) 71 : CMAT1(2,2) = VALMAT(2) 72 : C 73 : XLOC(1,1) = VALMAT(3) 74 : XLOC(2,1) = VALMAT(4) 75 : XLOC(1,2) =-VALMAT(4) 76 : XLOC(2,2) = VALMAT(3) 77 : ELSEIF (INM.EQ.3) THEN 78 : C 79 : C- Materiau anisotrope 80 : C 81 : CMAT1(1,1) = VALMAT(1) 82 : CMAT1(2,2) = VALMAT(2) 83 : CMAT1(2,1) = VALMAT(3) 84 : CMAT1(1,2) = CMAT1(2,1) 85 : C 86 : XLOC(1,1) = VALMAT(4) 87 : XLOC(2,1) = VALMAT(5) 88 : XLOC(1,2) =-VALMAT(5) 89 : XLOC(2,2) = VALMAT(4) 90 : ENDIF 91 : C 92 : C- Calcul des cos.directeurs des axes orth. /repere global 93 : C- XGLOB=TXR*XLOC 94 : C 95 : DO 10 K=1,IDIM 96 : DO 10 J=1,IDIM 97 : DO 10 I=1,IDIM 98 : XGLOB(K,J) = TXR(J,I)*XLOC(I,K) + XGLOB(K,J) 99 : 10 CONTINUE 100 : ELSE 101 : C 102 : C= ELEMENT MASSIF TRIDIM 103 : C 104 : IF (INM.EQ.1) THEN 105 : C 106 : C- Materiau isotrope 107 : C 108 : CMAT(1,1) = VALMAT(1) 109 : CMAT(2,2) = VALMAT(1) 110 : CMAT(3,3) = VALMAT(1) 111 : RETURN 112 : ELSEIF (INM.EQ.2) THEN 113 : C 114 : C- Materiau orthotrope 115 : C 116 : CMAT1(1,1) = VALMAT(1) 117 : CMAT1(2,2) = VALMAT(2) 118 : CMAT1(3,3) = VALMAT(3) 119 : C 120 : XLOC(1,1) = VALMAT(4) 121 : XLOC(2,1) = VALMAT(5) 122 : XLOC(3,1) = VALMAT(6) 123 : XLOC(1,2) = VALMAT(7) 124 : XLOC(2,2) = VALMAT(8) 125 : XLOC(3,2) = VALMAT(9) 126 : ELSEIF (INM.EQ.3) THEN 127 : C 128 : C- Materiau anisotrope 129 : C 130 : CMAT1(1,1) = VALMAT(1) 131 : CMAT1(2,2) = VALMAT(2) 132 : CMAT1(3,3) = VALMAT(3) 133 : CMAT1(2,1) = VALMAT(4) 134 : CMAT1(1,2) = CMAT1(2,1) 135 : CMAT1(3,1) = VALMAT(5) 136 : CMAT1(1,3) = CMAT1(3,1) 137 : CMAT1(3,2) = VALMAT(6) 138 : CMAT1(2,3) = CMAT1(3,2) 139 : C 140 : XLOC(1,1) = VALMAT(7) 141 : XLOC(2,1) = VALMAT(8) 142 : XLOC(3,1) = VALMAT(9) 143 : XLOC(1,2) = VALMAT(10) 144 : XLOC(2,2) = VALMAT(11) 145 : XLOC(3,2) = VALMAT(12) 146 : ENDIF 147 : C 148 : C- Calcul du vecteur 3 149 : C 149 : CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR) 150 : C 151 : C- Calcul des cos.directeurs des axes orth. /repere global 152 : C- XGLOB=TXR*XLOC 153 : C 154 : DO 20 K=1,IDIM 155 : DO 20 J=1,IDIM 156 : DO 20 I=1,IDIM 157 : XGLOB(K,J) = TXR(J,I)*XLOC(I,K) + XGLOB(K,J) 158 : 20 CONTINUE 159 : ENDIF 160 : C 161 : C---------------------------------------------------------- 162 : C TRANSFORMATION DE LA MATRICE CMAT1 DANS LE REPERE GLOBAL 163 : C---------------------------------------------------------- 164 : C 165 : IF (IFOMOD.EQ.1) THEN 166 : C 167 : C- Element massif bidim de FOURIER 168 : C 168 : CALL PRODT(CMAT2,CMAT1,XGLOB,IDIM,IDIM) 169 : CMAT(1,1)=CMAT2(1,1) 170 : IF (INM.EQ.2) THEN 171 : CMAT(2,2) = VALMAT(5) 172 : ELSE 173 : CMAT(2,2) = VALMAT(6) 174 : ENDIF 175 : CMAT(1,3) = CMAT2(1,2) 176 : CMAT(3,1) = CMAT (1,3) 177 : CMAT(3,3) = CMAT2(2,2) 178 : ELSE 179 : C 180 : C- Element MASSIF : CMAT = transpose(XGLOB)*CMAT1*XGLOB 181 : C 181 : CALL PRODT(CMAT,CMAT1,XGLOB,IDIM,IDIM) 182 : ENDIF 183 : C 184 : RETURN 185 : END 186 :
© Cast3M 2003 - All rights reserved.
Disclaimer