1 : C TRJULO SOURCE CHAT 05/01/13 03:51:40 5004 2 : SUBROUTINE TRJULO(XNOEU,UNOEU,UELEM,XY,ITYP,IDIM,NOEL1,NOUN, 3 : * IFORMU,SHP,SHY) 4 : C******************************************************************* 5 : C ISSU DE TRIOEF sp ULOTAR 6 : C calcul de la vitesse dans l'element de reference 7 : C******************************************************************** 8 : C ENTREES 9 : C XNOEU COORDONNEES REELLES DES NOEUDS DE L ELEMENT 10 : C UNOEU VITESSES AUX NOEUDS DE L ELEMENT(OU FLUX AUX FACES) 11 : C XY COORDONNEES DE REFERENCES DU POINT DE CALCUL 12 : C ITYP TYPE DE L ELEMENT 13 : C NOEL1 NOMBRE DE NOEUDS DE L ELEMENT POSITION 14 : C NOUN NOMBRE DE VITESSES OU FLUX PAR ELEMENT. Pour les EFMH ce 15 : C ce nombre est different de NOEL1 pour le cube et le prisme 16 : C SORTIES 17 : C UELEM VITESSE DANS L ELEMENT DE REFERENCE EXPRIMEE AVEC LES 18 : C COORDONNEES DE REFERENCE AU POINT DE CALCUL 19 : C 20 : C SHP(1,I) FONCTIONS DE FORMES AU POINT DE CALCUL 21 : C SHP(2,I) DERIVEE DES FONCTIONS DE FORME / XSI AU POINT DE CALCUL 22 : C SHP(3,I) " " " " " / ETA " " " " 23 : C SHP(4,I) " " " " " /DZETA " " " " 24 : C ******************************************************************** 25 : C 26 : C 27 : IMPLICIT INTEGER(I-N) 28 : IMPLICIT REAL*8 (A-H,O-Z) 29 : C 30 : C 31 : C 32 : DIMENSION UNOEU(*),XY(*),UELEM(*),UE(3) 33 : DIMENSION XNOEU(3,*),SHP(6,*),SHY(12,*) 34 : C 35 : C 36 : C*** CALCUL DES XI ET DES DXI 37 : C 38 : C write(6,*)' ulotar' ,noel1,((unoeu(i,j),i=1,idim),j=1,noel1) 39 : C write(6,*) xy(1),xy(2),((xnoeu(i,j),i=1,idim),j=1,noel1) 39 : CALL SHAPE(XY(1),XY(2),XY(3),ITYP,SHP,IRET) 40 : C 41 : C*** VITESSE 42 : C 43 : C 44 : C 45 : C*** COEFFICIENTS DE DERIVATION 46 : C 47 : IF(IDIM.EQ.2)THEN 48 : C 49 : C*** BIDIM 50 : C 51 : A=0.D0 52 : B=0.D0 53 : C=0.D0 54 : D=0.D0 55 : DO 63 I=1,NOEL1 56 : A=A+SHP(2,I)*XNOEU(1,I) 57 : B=B+SHP(3,I)*XNOEU(1,I) 58 : C=C+SHP(2,I)*XNOEU(2,I) 59 : D=D+SHP(3,I)*XNOEU(2,I) 60 : 63 CONTINUE 61 : DEL=A*D-B*C 62 : IF(IFORMU.EQ.1)THEN 63 : C FORMULATION ELEMENTS FINIS 63 : CALL TRJVPO(UNOEU,UE,XY,ITYP,IDIM,NOEL1,SHP) 64 : UELEM(1)=(D*UE(1)-B*UE(2))/DEL 65 : UELEM(2)=(A*UE(2)-C*UE(1))/DEL 66 : C write(6,*) 'vitesse',(ue(i),i=1,idim) 67 : C FORMULATION HYBRIDE 68 : ELSEIF(IFORMU.EQ.2)THEN 69 : ITYH=NUMHYB(ITYP) 69 : CALL HYSHP(XY(1),XY(2),XY(3),ITYH,NOUN,12,SHY,IRET) 70 : DO 50 I=1,IDIM 71 : UE(I)=0.D0 72 : DO 40 K=1,NOUN 73 : UE(I)=UE(I)+SHY(I,K)*UNOEU(K) 74 : 40 CONTINUE 75 : C write(6,*)'shy ',i,(shy(i,k),k=1,noel1) 76 : UELEM(I)=UE(I)/ABS(DEL) 77 : 50 CONTINUE 78 : ENDIF 79 : C write(6,*)' uelem ',uelem(1),uelem(2) 80 : C 81 : C 82 : C*** TRIDIM 83 : C 84 : ELSE 85 : A1=0.D0 86 : A2=0.D0 87 : A3=0.D0 88 : B1=0.D0 89 : B2=0.D0 90 : B3=0.D0 91 : C1=0.D0 92 : C2=0.D0 93 : C3=0.D0 94 : DO 75 I=1,NOEL1 95 : A1=A1+SHP(2,I)*XNOEU(1,I) 96 : A2=A2+SHP(3,I)*XNOEU(1,I) 97 : A3=A3+SHP(4,I)*XNOEU(1,I) 98 : B1=B1+SHP(2,I)*XNOEU(2,I) 99 : B2=B2+SHP(3,I)*XNOEU(2,I) 100 : B3=B3+SHP(4,I)*XNOEU(2,I) 101 : C1=C1+SHP(2,I)*XNOEU(3,I) 102 : C2=C2+SHP(3,I)*XNOEU(3,I) 103 : C3=C3+SHP(4,I)*XNOEU(3,I) 104 : 75 CONTINUE 105 : DET=A1*(B2*C3-C2*B3)+A2*(C1*B3-B1*C3)+A3*(B1*C2-B2*C1) 106 : IF(IFORMU.EQ.1)THEN 107 : C FORMULATION ELEMENTS FINIS 107 : CALL TRJVPO(UNOEU,UE,XY,ITYP,IDIM,NOEL1,SHP) 108 : UELEM(1)=((B2*C3-C2*B3)*UE(1)+(A3*C2-A2*C3)*UE(2) 109 : * +(A2*B3-A3*B2)*UE(3))/DET 110 : UELEM(2)=((C1*B3-C3*B1)*UE(1)+(A1*C3-A3*C1)*UE(2) 111 : * +(A3*B1-A1*B3)*UE(3))/DET 112 : UELEM(3)=((B1*C2-B2*C1)*UE(1)+(A2*C1-A1*C2)*UE(2) 113 : * +(A1*B2-A2*B1)*UE(3))/DET 114 : C write(6,*) 'vitesse',(ue(i),i=1,idim) 115 : C FORMULATION HYBRIDE 116 : ELSEIF(IFORMU.EQ.2)THEN 117 : ITYH=NUMHYB(ITYP) 117 : CALL HYSHP(XY(1),XY(2),XY(3),ITYH,NOUN,12,SHY,IRET) 118 : DO 70 I=1,IDIM 119 : UE(I)=0.D0 120 : DO 60 K=1,NOUN 121 : UE(I)=UE(I)+SHY(I,K)*UNOEU(K) 122 : 60 CONTINUE 123 : UELEM(I)=UE(I)/ABS(DET) 124 : 70 CONTINUE 125 : ENDIF 126 : C 127 : ENDIF 128 : RETURN 129 : END 130 : 131 : 132 :
© Cast3M 2003 - All rights reserved.
Disclaimer