1 : C DOHCOM SOURCE CHAT 05/01/12 22:53:27 5004
2 : C
3 : SUBROUTINE DOHCOM(VELA,NCOELE,MATE,IFOU,LHOOK,DDHOOK,IRET)
4 : C
5 : C=======================================================================
6 : C
7 : C MATRICE DE HOOK DES COQUES MINCES
8 : C
9 : C ENTREES
10 : C VELA() = materiau dans un tableau de travail
11 : C NCOELE = TAILLE DU TABLEAU VELA
12 : C MATE = Nom du materiau
13 : C IFOU = num{ro d'harmonique de fourier: IFOUR de CCOPTIO
14 : C LHOOK = taille de la matrice de hooke
15 : C
16 : C SORTIES
17 : C DDHOOK(LHOOK,LHOOK) = matrice de hooke
18 : C IRET = 1 si option existante 0 SINON
19 : C
20 : C Passage en nouveau CHAMELEM par I.Monnier le 4 05 90
21 : C=======================================================================
22 : C
23 : IMPLICIT INTEGER(I-N)
24 : IMPLICIT REAL*8(A-H,O-Z)
25 : PARAMETER(UNDEMI=.5D0,XZER=0.0D0,XK=1.2D0)
26 : PARAMETER(UN=1.D0,DEUX=2.D0)
27 : CHARACTER*8 MATE
28 : C
29 : DIMENSION VELA(*),DDHOOK(LHOOK,*)
30 : REAL*8 D3HOO1(3,3),D3HOO2(3,3),ROTHOO(3,3)
31 : REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2)
32 : C
33 : IRET=1
33 : CALL ZERO(DDHOOK,LHOOK,LHOOK)
34 : C
35 : C MATERIAU ISOTROPE
36 : C
37 : IF(MATE.EQ.'ISOTROPE') THEN
38 : C
39 : C CAS TRIDIMENSIONNEL ET FOURIER
40 : C
41 : IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
42 : YOU =VELA(1)
43 : XNU =VELA(2)
44 : AUX=YOU/(UN-XNU*XNU)
45 : AUX1=AUX*XNU
46 : GEGE=YOU*UNDEMI/(UN+XNU)
47 : C
48 : DDHOOK(1,1)=AUX
49 : DDHOOK(2,1)=AUX1
50 : DDHOOK(1,2)=AUX1
51 : DDHOOK(2,2)=AUX
52 : DDHOOK(3,3)=GEGE
53 : C
54 : DDHOOK(4,4)=AUX
55 : DDHOOK(5,4)=AUX1
56 : DDHOOK(4,5)=AUX1
57 : DDHOOK(5,5)=AUX
58 : DDHOOK(6,6)=GEGE
59 : C
60 : C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
61 : C
62 : ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
63 : YOU =VELA(1)
64 : XNU =VELA(2)
65 : AUX=YOU/(UN-XNU*XNU)
66 : AUX1=AUX*XNU
67 : C
68 : DDHOOK(1,1)=AUX
69 : DDHOOK(2,1)=AUX1
70 : DDHOOK(1,2)=AUX1
71 : DDHOOK(2,2)=AUX
72 : C
73 : DDHOOK(3,3)=AUX
74 : DDHOOK(4,3)=AUX1
75 : DDHOOK(3,4)=AUX1
76 : DDHOOK(4,4)=AUX
77 : C
78 : C CAS CONTRAINTES PLANES
79 : C
80 : ELSE IF(IFOU.EQ.-2) THEN
81 : YOU =VELA(1)
82 : DDHOOK(1,1)=YOU
83 : DDHOOK(3,3)=YOU
84 : ELSE
85 : IRET=0
86 : ENDIF
87 : C
88 : C MATERIAU ORTHOTROPE ET UNIDIRECTIONNEL
89 : C
90 : ELSE IF(MATE.EQ.'ORTHOTRO'.OR.
91 : 1 MATE.EQ.'UNIDIREC')THEN
92 : C
93 : C CAS TRIDIMENSIONNEL ET FOURIER
94 : C
95 : IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN
96 : IF(MATE.EQ.'ORTHOTRO')THEN
97 : YG1 = VELA(1)
98 : YG2 = VELA(2)
99 : XNU12 = VELA(3)
100 : G12 = VELA(4)
101 : COSA = VELA(5)
102 : SINA = VELA(6)
103 : C
104 : X1NUNU = UN - (XNU12**2) * YG2 / YG1
105 : C
106 : D3HOO1(1,1) = YG1 / X1NUNU
107 : D3HOO1(2,2) = YG2 / X1NUNU
108 : D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
109 : D3HOO1(2,1) = D3HOO1(1,2)
110 : D3HOO1(3,3) = G12
111 : D3HOO1(1,3) = XZER
112 : D3HOO1(2,3) = XZER
113 : D3HOO1(3,1) = XZER
114 : D3HOO1(3,2) = XZER
115 : C
116 : ELSE
116 : CALL ZERO(D3HOO1,3,3)
117 : D3HOO1(1,1)=VELA(1)
118 : COSA=VELA(2)
119 : SINA=VELA(3)
120 : ENDIF
121 : COS2 = COSA**2
122 : SIN2 = SINA**2
123 : SINCOS = SINA * COSA
124 : C
125 : ROTHOO(1,1) = COS2
126 : ROTHOO(1,2) = SIN2
127 : ROTHOO(1,3) = SINCOS
128 : ROTHOO(2,1) = SIN2
129 : ROTHOO(2,2) = COS2
130 : ROTHOO(2,3) = - SINCOS
131 : ROTHOO(3,1) = - DEUX * SINCOS
132 : ROTHOO(3,2) = DEUX * SINCOS
133 : ROTHOO(3,3) = COS2 - SIN2
134 : C
135 : C PASSAGE DANS LE REPERE DE L'ELEMENT:
135 : CALL PRODT (D3HOO2,D3HOO1,ROTHOO,3,3)
136 : DO 200 J=1,3
137 : DO 200 I=1,3
138 : DDHOOK(I,J) = D3HOO2(I,J)
139 : DDHOOK(I+3,J+3) = D3HOO2(I,J)
140 : 200 CONTINUE
141 : C
142 : C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES
143 : C
144 : ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN
145 : IF(MATE.EQ.'ORTHOTRO')THEN
146 : YG1 = VELA(1)
147 : YG2 = VELA(2)
148 : XNU12 = VELA(3)
149 : COSA = VELA(5)
150 : SINA = VELA(6)
151 : C
152 : X1NUNU = UN - (XNU12**2) * YG2 / YG1
153 : C
154 : D2HOO1(1,1) = YG1 / X1NUNU
155 : D2HOO1(2,2) = YG2 / X1NUNU
156 : D2HOO1(1,2) = XNU12 * D2HOO1(2,2)
157 : D2HOO1(2,1) = D2HOO1(1,2)
158 : C
159 : ELSE
159 : CALL ZERO(D2HOO1,2,2)
160 : D2HOO1(1,1)=VELA(1)
161 : COSA=VELA(2)
162 : SINA=VELA(3)
163 : ENDIF
164 : C
165 : COS2 = COSA**2
166 : SIN2 = SINA**2
167 : RO2HOO(1,1) = COS2
168 : RO2HOO(1,2) = SIN2
169 : RO2HOO(2,1) = SIN2
170 : RO2HOO(2,2) = COS2
171 : C
172 : C PASSAGE DANS LE REPERE DE L'ELEMENT:
172 : CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
173 : DO 300 J=1,2
174 : DO 300 I=1,2
175 : DDHOOK(I,J) = D2HOO2(I,J)
176 : DDHOOK(I+2,J+2) = D2HOO2(I,J)
177 : 300 CONTINUE
178 : C
179 : C CAS CONTRAINTES PLANES
180 : C
181 : ELSE IF(IFOU.EQ.-2) THEN
182 : YG1=VELA(1)
183 : DDHOOK(1,1)=YG1
184 : DDHOOK(3,3)=YG1
185 : C
186 : ELSE
187 : IRET=0
188 : ENDIF
189 : C
190 : C MATERIAU COMPOSITE
191 : C
192 : ELSE IF(MATE.EQ.'COMPOSIT') THEN
193 : C
194 : C TRIDIM
195 : C
196 : IF(IFOU.EQ.2) THEN
197 : C
198 : M = NCOELE
199 : N = M/5
200 : N4 = N*4
201 : C
202 : C
203 : H = XZER
204 : DO 2072 J = N4+1,M
205 : H = H + VELA(J)
206 : 2072 CONTINUE
207 : C
208 : CMAT11=XZER
209 : CMAT12=XZER
210 : CMAT33=XZER
211 : CMAT14=XZER
212 : CMAT15=XZER
213 : CMAT36=XZER
214 : CMAT44=XZER
215 : CMAT45=XZER
216 : CMAT66=XZER
217 : Y2 = -H/2
218 : C
219 : DO 2073 J = 1,N
220 : YOU = VELA(J )
221 : XNU = VELA(N+J )
222 : EPAI= VELA(N4+J)
223 : Y1 = Y2
224 : Y2 = EPAI + Y1
225 : X1B = EPAI
226 : X2B = ((Y2*Y2)-(Y1*Y1))/2.D0
227 : X3B = ((Y2**3)-(Y1**3))/3.D0
228 : AUX1 = YOU/(1.D0-XNU*XNU)
229 : AUX2 = (1.D0-XNU)*AUX1/2.D0
230 : CMAT11 = CMAT11 + (AUX1*X1B)
231 : CMAT12 = CMAT12 + (AUX1*XNU*X1B)
232 : CMAT33 = CMAT33 + (AUX2*X1B)
233 : CMAT14 = CMAT14 + (AUX1*X2B)
234 : CMAT15 = CMAT15 + (AUX1*XNU*X2B)
235 : CMAT36 = CMAT36 + (AUX2*X2B)
236 : CMAT44 = CMAT44 + (AUX1*X3B)
237 : CMAT45 = CMAT45 + (AUX1*XNU*X3B)
238 : CMAT66 = CMAT66 + (AUX2*X3B)
239 : 2073 CONTINUE
240 : C
241 : DDHOOK(1,1) = CMAT11
242 : DDHOOK(2,2) = CMAT11
243 : DDHOOK(1,2) = CMAT12
244 : DDHOOK(2,1) = CMAT12
245 : DDHOOK(3,3) = CMAT33
246 : C
247 : DDHOOK(4,1) = CMAT14
248 : DDHOOK(1,4) = CMAT14
249 : DDHOOK(5,2) = CMAT14
250 : DDHOOK(2,5) = CMAT14
251 : C
252 : DDHOOK(1,5) = CMAT15
253 : DDHOOK(5,1) = CMAT15
254 : DDHOOK(2,4) = CMAT15
255 : DDHOOK(4,2) = CMAT15
256 : C
257 : DDHOOK(3,6) = CMAT36
258 : DDHOOK(6,3) = CMAT36
259 : C
260 : DDHOOK(4,4) = CMAT44
261 : DDHOOK(5,5) = CMAT44
262 : DDHOOK(4,5) = CMAT45
263 : DDHOOK(5,4) = CMAT45
264 : DDHOOK(6,6) = CMAT66
265 : ELSE
266 : IRET=0
267 : ENDIF
268 : ELSE
269 : IRET=0
270 : ENDIF
271 : RETURN
272 : END
273 :
© Cast3M 2003 - All rights reserved.
Disclaimer