1 : C LIAMAS SOURCE CHAT 05/01/13 01:16:42 5004 2 : SUBROUTINE LIAMAS(NBPGAU,IDIM,NBNN,NDDL,XE,CFPI,WORK,POIGAU, 3 : 1 SHPTOT,REL,LRE,IER246) 4 : C======================================================================= 5 : C 6 : C CALCULE LA MATRICE MASSE DE L ELEMENT DE RACCORD 7 : C LIQUIDE MASSIF LINEAIRE CAS TRIDIMENSIONNEL 8 : C (INTEGRE LE PRODUIT PI*U AVEC U DEPLACEMENT NORMAL A LA PAROI 9 : C DU SOLIDE) 10 : C 11 : C ROUTINE FORTRAN PUR 12 : C 13 : C JACQUELINE BROCHARD OCTOBRE 85 14 : C======================================================================= 15 : C ENTREES 16 : C NBPGAU = NB DE PTS DE GAUSS 17 : C NBNN = NB DE NOEUDS DE L ELEMENT DE RACCORD 18 : C XE(3,NBNN) = COORDONNEES LOCALES DE L ELEMENT 19 : C CFPI = COEFFICIENT DE NORMALISATION SUR PI 20 : C WORK(IDIM) = COMPOSANTES DE LA NORMALE SORTANTE AU FLUIDE 21 : C POIGAU(NBPGAU) = POIDS DE GAUSS 22 : C SHPTOT(6,NBNN,NBPGAU) = FONCTIONS DE FORME ET DERIVEES DE 23 : C L ELEMENT DE RACCORD 24 : C SORTIES 25 : C REL(LRE,LRE) = MATRICE DE MASSE 26 : C======================================================================= 27 : IMPLICIT INTEGER(I-N) 28 : IMPLICIT REAL*8 (A-H,O-Z) 29 : DIMENSION XE(3,1),WORK(IDIM),POIGAU(NBPGAU),SHPTOT(6,NBNN,1) 30 : DIMENSION REL(LRE,1) 31 : DATA EPSI/1.D-12/ 32 : DATA XZER/0.D0/ 33 : C 34 : C BOUCLE SUR LES NOEUDS LIQUIDE ET INTEGRATION NUMERIQUE 35 : C 36 : IER246=0 37 : NBNNL=NBNN/2 38 : DO 100 NL=1,NBNNL 39 : DO 80 IGAU=1,NBPGAU 40 : C 41 : C CALCUL DU RAYON ET DES COMPOSANTES DU VECTEUR NORMAL A LA PAROI 42 : C 43 : VNQSI1=XZER 44 : VNQSI2=XZER 45 : VNQSI3=XZER 46 : VNETA1=XZER 47 : VNETA2=XZER 48 : VNETA3=XZER 49 : ALFA=XZER 50 : BETA=XZER 51 : GAMMA=XZER 52 : ID=NBNNL+1 53 : DO 20 J=ID,NBNN 54 : VNQSI1=VNQSI1+SHPTOT(2,J,IGAU)*XE(1,J) 55 : VNQSI2=VNQSI2+SHPTOT(2,J,IGAU)*XE(2,J) 56 : VNQSI3=VNQSI3+SHPTOT(2,J,IGAU)*XE(3,J) 57 : VNETA1=VNETA1+SHPTOT(3,J,IGAU)*XE(1,J) 58 : VNETA2=VNETA2+SHPTOT(3,J,IGAU)*XE(2,J) 59 : VNETA3=VNETA3+SHPTOT(3,J,IGAU)*XE(3,J) 60 : 20 CONTINUE 61 : ALFA=VNQSI2*VNETA3-VNQSI3*VNETA2 62 : BETA=VNQSI3*VNETA1-VNQSI1*VNETA3 63 : GAMMA=VNQSI1*VNETA2-VNQSI2*VNETA1 64 : C 65 : C ON COMPARE L ORIENTATION DE LA NORMALE SORTANTE AU FLUIDE 66 : C A CELLE DE LA PAROI 67 : C 68 : PSCAL=ALFA*WORK(1)+BETA*WORK(2)+GAMMA*WORK(3) 69 : IF (ABS(PSCAL).LT.EPSI) GOTO 777 70 : SENS=PSCAL/ABS(PSCAL) 71 : C 72 : C ON REMPLIT LA MATRICE 73 : C 74 : DO 30 J=ID,NBNN 75 : IL=2*NL 76 : IC1=2*NBNNL+(J-ID)*NDDL+1 77 : IC2=IC1+1 78 : IC3=IC1+2 79 : REL(IL,IC1)=REL(IL,IC1)-SENS*CFPI*SHPTOT(1,NL,IGAU) 80 : 1 *POIGAU(IGAU)*ALFA*SHPTOT(1,J,IGAU) 81 : REL(IL,IC2)=REL(IL,IC2)-SENS*CFPI*SHPTOT(1,NL,IGAU) 82 : 1 *POIGAU(IGAU)*BETA*SHPTOT(1,J,IGAU) 83 : REL(IL,IC3)=REL(IL,IC3)-SENS*CFPI*SHPTOT(1,NL,IGAU) 84 : 1 *POIGAU(IGAU)*GAMMA*SHPTOT(1,J,IGAU) 85 : 30 CONTINUE 86 : 80 CONTINUE 87 : C 88 : C SYMETRISATION 89 : C 90 : DO 40 J=ID,NBNN 91 : IL=2*NL 92 : IC1=2*NBNNL+(J-ID)*NDDL+1 93 : IC2=IC1+1 94 : IC3=IC1+2 95 : REL(IC1,IL)=REL(IL,IC1) 96 : REL(IC2,IL)=REL(IL,IC2) 97 : REL(IC3,IL)=REL(IL,IC3) 98 : 40 CONTINUE 99 : 100 CONTINUE 100 : GOTO 666 101 : C 102 : C ERREUR LE VECTEUR PERMETTANT D ORIENTER L ELEMENT DE RACCORD 103 : C EST NUL OU PARALLELE A LA FRONTIERE DU FLUIDE 104 : C 105 : 777 IER246=246 106 : 666 CONTINUE 107 : RETURN 108 : END 109 :
© Cast3M 2003 - All rights reserved.
Disclaimer