9 & xel,yel,surfac,ikle1,ikle2,ikle3,nelem,nelmax,formul)
70 INTEGER,
INTENT(IN) :: NELEM,NELMAX
71 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax),IKLE3(nelmax)
73 DOUBLE PRECISION,
INTENT(INOUT) :: A11(*),A12(*),A13(*)
74 DOUBLE PRECISION,
INTENT(INOUT) :: A22(*),A23(*)
75 DOUBLE PRECISION,
INTENT(INOUT) :: A33(*)
76 DOUBLE PRECISION,
INTENT(IN) :: XMUL
77 DOUBLE PRECISION,
INTENT(IN) :: U(*),V(*)
79 TYPE(bief_obj),
INTENT(IN) :: SU,SV
80 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,3),YEL(nelmax,3)
81 DOUBLE PRECISION,
INTENT(IN) :: SURFAC(nelmax)
82 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
88 INTEGER IELMNU,IELMNV,IELEM,ISO,IAD2,IAD3,I1,I2,I3
90 DOUBLE PRECISION X2,X3,Y2,Y3,S2D,VISC1,VISC2,VISC3,BPE,CPF,APD
91 DOUBLE PRECISION AUX,X2X3,Y2Y3,X2AUX,Y2AUX,X3AUX,Y3AUX,X2MX3,Y2MY3
92 DOUBLE PRECISION SOMVX,SOMVY,SOMVZ,XSUR12,XSUR48
93 DOUBLE PRECISION G1,G2,G3,COEF1,COEF2,G123
106 IF(ielmnu.EQ.10.AND.iso.EQ.1)
THEN 124 s2d = xmul*0.25d0/surfac(ielem)
126 bpe = visc1*(y3**2 + x3**2)
127 cpf = visc1*(y2*y3 + x2*x3)
128 apd = visc1*(y2**2 + x2**2)
132 a11(ielem)= apd+bpe-2*cpf
150 ELSEIF(ielmnu.EQ.10.AND.iso.EQ.3)
THEN 168 s2d = xmul*0.25d0/surfac(ielem)
169 visc1 = u( ielem)*s2d
170 visc2 = u( nelmax+ielem)*s2d
171 visc3 = u(2*nelmax+ielem)*s2d
172 bpe = visc1*y3**2 + visc2*x3**2
173 cpf = visc1*y2*y3 + visc2*x2*x3
174 apd = visc1*y2**2 + visc2*x2**2
180 a12(ielem)= cpf-bpe - ( y2my3*x3 + x2mx3*y3 ) * visc3
181 a13(ielem)= cpf-apd + ( y2my3*x2 + x2mx3*y2 ) * visc3
182 a23(ielem)= -cpf + ( x2*y3 + x3*y2 ) * visc3
186 a11(ielem) = - a12(ielem) - a13(ielem)
187 a22(ielem) = - a12(ielem) - a23(ielem)
188 a33(ielem) = - a13(ielem) - a23(ielem)
196 ELSEIF(ielmnu.EQ.11.AND.iso.EQ.1)
THEN 200 IF(formul(7:8).EQ.
'UV'.AND.
201 & ielmnu.EQ.11.AND.ielmnv.EQ.11)
THEN 225 coef1=xsur48/surfac(ielem)
227 coef2=u(i1)*(g1+g123)+u(i2)*(g2+g123)+u(i3)*(g3+g123)
231 a12(ielem)= (y3*(y2-y3)+x3*(x2-x3))*coef2*coef1
232 a13(ielem)=-(y2*(y2-y3)+x2*(x2-x3))*coef2*coef1
233 a23(ielem)=-(y2* y3 +x2* x3 )*coef2*coef1
237 a11(ielem) = - a12(ielem) - a13(ielem)
238 a22(ielem) = - a12(ielem) - a23(ielem)
239 a33(ielem) = - a13(ielem) - a23(ielem)
261 somvx = ( u(ikle1(ielem))
263 & +u(ikle3(ielem)) ) * xsur12 / surfac(ielem)
264 x2x3 = x2 * x3 + y2 * y3
265 x2aux = x2*(-x2+x3)+y2*(-y2+y3)
266 x3aux = x3*(-x2+x3)+y3*(-y2+y3)
270 a12(ielem) = - somvx * x3aux
271 a13(ielem) = somvx * x2aux
272 a23(ielem) = - somvx * x2x3
276 a11(ielem) = - a12(ielem) - a13(ielem)
277 a22(ielem) = - a12(ielem) - a23(ielem)
278 a33(ielem) = - a13(ielem) - a23(ielem)
288 ELSEIF(ielmnu.EQ.11.AND.iso.EQ.3)
THEN 309 somvx = u(ikle1(ielem) )
312 somvy = u(ikle1(ielem)+iad2)
313 & + u(ikle2(ielem)+iad2)
314 & + u(ikle3(ielem)+iad2)
315 somvz = u(ikle1(ielem)+iad3)
316 & + u(ikle2(ielem)+iad3)
317 & + u(ikle3(ielem)+iad3)
321 aux = xsur12 / surfac(ielem)
333 a12(ielem) = ( - somvx * y3aux
336 & - x2mx3*y3*somvz ) * aux
338 a13(ielem) = ( somvx * y2aux
341 & + x2mx3*y2*somvz ) * aux
343 a23(ielem) = ( - somvx * y2y3
345 & + somvz*x3*y2+somvz*x2*y3 ) * aux
349 a11(ielem) = - a12(ielem) - a13(ielem)
350 a22(ielem) = - a12(ielem) - a23(ielem)
351 a33(ielem) = - a13(ielem) - a23(ielem)
359 WRITE(
lu,11) ielmnu,iso
361 &
'MT02AA (BIEF) : TYPE OF VISCOSITY NOT AVAILABLE : ',2i6)
369 IF(formul(14:16).EQ.
'MON')
THEN 370 IF(xmul.GT.0.d0)
THEN 372 a12(ielem)=min(a12(ielem),0.d0)
373 a13(ielem)=min(a13(ielem),0.d0)
374 a23(ielem)=min(a23(ielem),0.d0)
376 a11(ielem) = - a12(ielem) - a13(ielem)
377 a22(ielem) = - a12(ielem) - a23(ielem)
378 a33(ielem) = - a13(ielem) - a23(ielem)
382 a12(ielem)=max(a12(ielem),0.d0)
383 a13(ielem)=max(a13(ielem),0.d0)
384 a23(ielem)=max(a23(ielem),0.d0)
386 a11(ielem) = - a12(ielem) - a13(ielem)
387 a22(ielem) = - a12(ielem) - a23(ielem)
388 a33(ielem) = - a13(ielem) - a23(ielem)
subroutine mt02aa(A11, A12, A13, A22, A23, A33, XMUL, SU, U, SV, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, FORMUL)