1 : C BDBS1 SOURCE CHAT 05/01/12 21:37:51 5004 2 : 3 : C======================================================================= 4 : C= B D B S 1 = 5 : C= --------- = 6 : C= = 7 : C= Fonction : = 8 : C= ---------- = 9 : C= Calcul de la contribution du point de Gauss iGau a la matrice de = 10 : C= RIGIDITE elastique REL d'un element fini. Traitement de cas par- = 11 : C= ticuliers suivant l'element fini et le type de materiau utilise. = 12 : C= Contribution : Jacobien.transpose(BGENE)*DHOOK*BGENE = 13 : C= = 14 : C= Parametres : (E)=Entree (S)=Sortie = 15 : C= ------------ = 16 : C= BGENE (E) Matrice B (B-Barre dans le cas incompressible) = 17 : C= DJac (E) "Volume" associe au point de Gauss = 18 : C= DHOOK (E) Matrice de Hooke au point de Gauss = 19 : C= LRE (E) Nombre de DDL de l'element fini = 20 : C= NSTRS (E) Nombre de composantes de contraintes/deformations = 21 : C= REL (E/S) Matrice de rigidite de l'element fini = 22 : C= MFR (E) Formulation associee a l'element fini = 23 : C= IFOU (E) Mode de calcul utilise (cf. IFOUR dans CCOPTIO) = 24 : C= MATE (E) Type du materiau utilise = 25 : C= iGau (E) Numero du point de Gauss considere = 26 : C= Excen (E) Excentrement (coque avec couplage membrane-flexion)= 27 : C= IMAT (E) =1 si = 28 : C= = 29 : C= Remarque : Actuellement, NSTRS doit etre inferieur ou egal a 10 ! = 30 : C======================================================================= 31 : 32 : SUBROUTINE BDBS1 (BGENE,DJac,DHOOK,LRE,NSTRS,REL,MFR,IFOU,MATE, 33 : . iGau,IMAT,Excen) 34 : 35 : IMPLICIT INTEGER(I-N) 36 : IMPLICIT REAL*8 (A-H,O-Z) 37 : 38 : -INC CCREEL 39 : 40 : DIMENSION DHOOK(NSTRS,*),REL(LRE,*),BGENE(NSTRS,*) 41 : DIMENSION WORK1(10),WORK2(10),TRD1(3,3),TRD2(3,3),TRG(3,3) 42 : 43 : C 1 - Determination de la methode de multiplication matricielle la 44 : C plus adaptee a l'element fini et au type de materiau utilise 45 : C ================================================================== 46 : IMULT=0 47 : IF (IMAT.EQ.1) THEN 48 : IF (MFR.EQ.1.AND.MATE.EQ.1) THEN 49 : IF (IFOU.EQ.-1.OR.IFOU.EQ.-2) THEN 50 : IMULT=1 51 : ELSE IF (IFOU.EQ. 2) THEN 52 : IMULT=2 53 : ENDIF 54 : ELSE IF (MFR.EQ.3) THEN 55 : IF (MATE.EQ.1.AND.Excen.EQ.XZero) IMULT=3 56 : C* ELSE IF (MFR.EQ.31.AND.MATE.EQ.1) THEN 57 : C* IF (IFOU.EQ.-1.OR.IFOU.EQ.-2) THEN 58 : C* IMULT=1 59 : C* ELSE IF (IFOU.EQ. 2) THEN 60 : C* IMULT=2 61 : C* ENDIF 62 : ENDIF 63 : ENDIF 64 : 65 : C 2 - Calcul de la contribution DJac*transpose(BGENE)*DHOOK*BGENE 66 : C ================================================================= 67 : C 2.1 - Multiplication matricielle normale 68 : C ===== 69 : IF (IMULT.EQ.0) THEN 70 : DO IX=1,LRE 71 : DO j=1,NSTRS 72 : WORK1(j)=DJac*BGENE(j,IX) 73 : ENDDO 74 : DO i=1,NSTRS 75 : CC=XZero 76 : DO j=1,NSTRS 77 : CC=CC+WORK1(j)*DHOOK(i,j) 78 : ENDDO 79 : WORK2(i)=CC 80 : ENDDO 81 : DO IY=1,IX 82 : CC=XZero 83 : DO i=1,NSTRS 84 : CC=CC+BGENE(i,IY)*WORK2(i) 85 : ENDDO 86 : REL(IX,IY)=REL(IX,IY)+CC 87 : REL(IY,IX)=REL(IX,IY) 88 : ENDDO 89 : ENDDO 90 : C ===== 91 : C 2.2 - Cas des elements massifs 2D incompressibles et isotropes 92 : C ===== 93 : ELSE IF (IMULT.EQ.1) THEN 94 : LRE2=LRE-1 95 : D1=DHOOK(1,1)*DJac 96 : D2=DHOOK(1,2)*DJac 97 : G=DHOOK(4,4)*DJac 98 : DO j=1,LRE2,2 99 : j1=j+1 100 : DO i=1,LRE2,2 101 : i1=i+1 102 : Tr11=BGENE(1,i )*BGENE(1,j ) 103 : Tr21=BGENE(2,i1)*BGENE(1,j ) 104 : Tr12=BGENE(1,i )*BGENE(2,j1) 105 : Tr22=BGENE(2,i1)*BGENE(2,j1) 106 : REL(i ,j )=REL(i ,j )+D1*Tr11+G*Tr22 107 : REL(i1,j )=REL(i1,j )+D2*Tr21+G*Tr12 108 : REL(i ,j1)=REL(i ,j1)+D2*Tr12+G*Tr21 109 : REL(i1,j1)=REL(i1,j1)+D1*Tr22+G*Tr11 110 : ENDDO 111 : ENDDO 112 : C ===== 113 : C 2.3 - Cas des elements massifs 3D incompressibles et isotropes 114 : C ===== 115 : ELSE IF (IMULT.EQ.2) THEN 116 : LRE3=LRE-2 117 : D1=DHOOK(1,1)*DJac 118 : D2=DHOOK(1,2)*DJac 119 : G=DHOOK(4,4)*DJac 120 : DO j=1,LRE3,3 121 : j1=j+1 122 : j2=j+2 123 : DO i=1,LRE3,3 124 : i1=i+1 125 : i2=i+2 126 : TR11=BGENE(1,i )*BGENE(1,j ) 127 : TR12=BGENE(1,i )*BGENE(2,j1) 128 : TR13=BGENE(1,i )*BGENE(3,j2) 129 : TR21=BGENE(2,i1)*BGENE(1,j ) 130 : TR22=BGENE(2,i1)*BGENE(2,j1) 131 : TR23=BGENE(2,i1)*BGENE(3,j2) 132 : TR31=BGENE(3,i2)*BGENE(1,j ) 133 : TR32=BGENE(3,i2)*BGENE(2,j1) 134 : Tr33=BGENE(3,i2)*BGENE(3,j2) 135 : REL(i ,j )=REL(i ,j )+D1*Tr11+G*(Tr22+Tr33) 136 : REL(i1,j )=REL(i1,j )+D2*Tr21+G*Tr12 137 : REL(i2,j )=REL(i2,j )+D2*Tr31+G*Tr13 138 : REL(i ,j1)=REL(i ,j1)+D2*Tr12+G*Tr21 139 : REL(i1,j1)=REL(i1,j1)+D1*Tr22+G*(Tr11+Tr33) 140 : REL(i2,j1)=REL(i2,j1)+D2*Tr32+G*Tr23 141 : REL(i ,j2)=REL(i ,j2)+D2*Tr13+G*Tr31 142 : REL(i1,j2)=REL(i1,j2)+D2*Tr23+G*Tr32 143 : REL(i2,j2)=REL(i2,j2)+D1*Tr33+G*(Tr11+Tr22) 144 : ENDDO 145 : ENDDO 146 : C ===== 147 : C 2.4 - Cas des coques minces 3D isotropes 148 : C ===== 149 : ELSE IF (IMULT.EQ.3) THEN 150 : LRE6=LRE-5 151 : D1=DHOOK(1,1)*DJac 152 : D2=DHOOK(1,2)*DJac 153 : G=DHOOK(3,3)*DJac 154 : DH1=DHOOK(4,4)*DJac 155 : DH2=DHOOK(5,4)*DJac 156 : GH=DHOOK(6,6)*DJac 157 : DO j=1,LRE6,6 158 : j1=j+1 159 : DO i=1,LRE6,6 160 : i1=i+1 161 : Tr11=BGENE(1,i )*BGENE(1,j ) 162 : Tr21=BGENE(2,i1)*BGENE(1,j ) 163 : Tr12=BGENE(1,i )*BGENE(2,j1) 164 : Tr22=BGENE(2,i1)*BGENE(2,j1) 165 : REL(i ,j )=REL(i ,j )+D1*Tr11+G*Tr22 166 : REL(i1,j )=REL(i1,j )+D2*Tr21+G*Tr12 167 : REL(i ,j1)=REL(i ,j1)+D2*Tr12+G*Tr21 168 : REL(i1,j1)=REL(i1,j1)+D1*Tr22+G*Tr11 169 : DO l=1,3 170 : jl=j1+l 171 : DO k=1,3 172 : ik=i1+k 173 : TrD1(k,l)=( BGENE(4,ik)*BGENE(4,jl) 174 : . +BGENE(5,ik)*BGENE(5,jl))*DH1 175 : TrD2(k,l)=( BGENE(4,ik)*BGENE(5,jl) 176 : . +BGENE(5,ik)*BGENE(4,jl))*DH2 177 : TrG(k,l)=BGENE(6,ik)*BGENE(6,jl)*GH 178 : ENDDO 179 : ENDDO 180 : DO l=1,3 181 : jl=j1+l 182 : DO k=1,3 183 : ik=i1+k 184 : REL(ik,jl)=REL(ik,jl)+TrD1(k,l)+TrD2(k,l)+TrG(k,l) 185 : ENDDO 186 : ENDDO 187 : ENDDO 188 : ENDDO 189 : ENDIF 190 : 191 : RETURN 192 : END 193 : 194 : 195 :
© Cast3M 2003 - All rights reserved.
Disclaimer