1 : C LIC4MA SOURCE CHAT 05/01/13 01:16:57 5004 2 : SUBROUTINE LIC4MA(NBPGAU,IDIM,NBNN,NDDL,XE,CFPI,WORK,POIGAU, 3 : 1 QSIGAU,ETAGAU,SHPTOT,REL,LRE,IER246) 4 : C======================================================================= 5 : C 6 : C CALCULE LA MATRICE MASSE DE L ELEMENT DE RACCORD 7 : C LIQUIDE-COQUE 4 NOEUDS 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 BERTRAND BEAUFILS AOUT 92 ( D'APRES ROUTINE LICOMA) 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 QSIGAU(NBPGAU),ETAGAU(NBPGAU) = COORDONNEES DES PTS DE GAUSS 23 : C SHPTOT(6,NBNN,NBPGAU) = FONCTIONS DE FORME ET DERIVEES DE 24 : C L ELEMENT DE RACCORD 25 : C SORTIES 26 : C REL(LRE,LRE) = MATRICE DE MASSE 27 : C======================================================================= 28 : IMPLICIT INTEGER(I-N) 29 : IMPLICIT REAL*8 (A-H,O-Z) 30 : DIMENSION XE(3,1),WORK(IDIM),POIGAU(NBPGAU),QSIGAU(NBPGAU) 31 : DIMENSION ETAGAU(NBPGAU),SHPTOT(6,NBNN,1),SHP(6,4) 32 : DIMENSION XEL(3,4),BPSS(3,3),VME(32,32) 33 : DIMENSION REL(LRE,1) 34 : DATA EPSI/1.D-12/ 35 : DATA XZER/0.D0/ 36 : IER246=0 37 : C 38 : C MATRICE DE PASSAGE ET COORDONNEES LOCALES 39 : C 39 : CALL CQ4LOC(XE,XEL,BPSS,NOQUAL,0) 40 : C 41 : C MISE A 0 DE LA MATRICE DE MASSE 42 : C 42 : CALL ZERO(VME,LRE,LRE) 43 : C 44 : C ON COMPARE L ORIENTATION DE LA NORMALE SORTANTE AU FLUIDE 45 : C A CELLE DE LA PAROI 46 : C 47 : NBNNL=NBNN/2 48 : ID=NBNNL+1 49 : VNQSI1=XZER 50 : VNQSI2=XZER 51 : VNQSI3=XZER 52 : VNETA1=XZER 53 : VNETA2=XZER 54 : VNETA3=XZER 55 : ALFA=XZER 56 : BETA=XZER 57 : GAMMA=XZER 58 : DO 20 J=ID,NBNN 59 : VNQSI1=VNQSI1+SHPTOT(2,J,1)*XE(1,J) 60 : VNQSI2=VNQSI2+SHPTOT(2,J,1)*XE(2,J) 61 : VNQSI3=VNQSI3+SHPTOT(2,J,1)*XE(3,J) 62 : VNETA1=VNETA1+SHPTOT(3,J,1)*XE(1,J) 63 : VNETA2=VNETA2+SHPTOT(3,J,1)*XE(2,J) 64 : VNETA3=VNETA3+SHPTOT(3,J,1)*XE(3,J) 65 : 20 CONTINUE 66 : ALFA=VNQSI2*VNETA3-VNQSI3*VNETA2 67 : BETA=VNQSI3*VNETA1-VNQSI1*VNETA3 68 : GAMMA=VNQSI1*VNETA2-VNQSI2*VNETA1 69 : PSCAL=ALFA*WORK(1)+BETA*WORK(2)+GAMMA*WORK(3) 70 : IF (ABS(PSCAL).LT.EPSI) GOTO 777 71 : SENS=PSCAL/ABS(PSCAL) 72 : C 73 : C CALCUL DES TERMES DE LA MATRICE : INTEGRATION NUMERIQUE 74 : C NL : NUMERO D UN NOEUD LIQUIDE 75 : C IGAU : NUMERO DU POINT DE GAUSS 76 : C J : NUMERO D UN NOEUD DE COQUE 77 : C K INDICE SUR LA COMPOSANTE W , RX , OU RY 78 : C 79 : COEF2=SENS*CFPI 80 : DO 100 NL=1,NBNNL 81 : IL=2*NL 82 : DO 80 IGAU=1,NBPGAU 83 : C 84 : C CALCUL DU JACOBIEN 85 : C 86 : DO 250 NP=1,NBNNL 87 : SHP(1,NP)=SHPTOT(1,NP,IGAU) 88 : SHP(2,NP)=SHPTOT(2,NP,IGAU) 89 : SHP(3,NP)=SHPTOT(3,NP,IGAU) 90 : 250 CONTINUE 90 : CALL JACOBI(XEL,SHP,2,NBNNL,DJAC) 91 : C 92 : C 93 : COEF1=COEF2*DJAC 94 : DO 200 NS=ID,NBNN 95 : IC1=(2*NBNNL)+((NS-ID)*NDDL)+3 96 : VME(IL,IC1)=VME(IL,IC1)-(COEF1*SHPTOT(1,NL,IGAU) 97 : 1 *POIGAU(IGAU)*SHPTOT(1,NS,IGAU)) 98 : 99 : 200 CONTINUE 100 : 80 CONTINUE 101 : C 102 : C CHANGEMENT DE REPERE ET SYMETRISATION 103 : C 104 : DO 50 J=ID,NBNN 105 : INDM=2*NBNNL+(J-ID)*NDDL 106 : INDF=INDM+3 107 : DO 55 I=1,3 108 : DO 56 IP=1,3 109 : REL(IL,INDM+I)=REL(IL,INDM+I)+BPSS(IP,I)*VME(IL,INDM+IP) 110 : REL(IL,INDF+I)=REL(IL,INDF+I)+BPSS(IP,I)*VME(IL,INDF+IP) 111 : 56 CONTINUE 112 : 55 CONTINUE 113 : DO 40 K=1,6 114 : IC=INDM+K 115 : REL(IC,IL)=REL(IL,IC) 116 : 40 CONTINUE 117 : 50 CONTINUE 118 : 100 CONTINUE 119 : GOTO 666 120 : C 121 : C ERREUR LE VECTEUR PERMETTANT D ORIENTER L ELEMENT DE RACCORD 122 : C EST NUL OU PARALLELE A LA FRONTIERE DU FLUIDE 123 : C 124 : 777 IER246=246 125 : 666 CONTINUE 126 : RETURN 127 : END 128 :
© Cast3M 2003 - All rights reserved.
Disclaimer