1 : C CHAMA3 SOURCE FANDEUR 10/12/17 21:16:03 6427 2 : 3 : C======================================================================= 4 : C= C H A M A 3 = 5 : C= ----------- = 6 : C= = 7 : C= Fonction : = 8 : C= ---------- = 9 : C= Calcul du MCHAML (champ par element aux noeuds) des flux nodaux = 10 : C= equivalents a des sources volumiques. Cas TRIDIMENSIONNEL MASSIF = 11 : C= = 12 : C= Parametres : (E)=Entree (S)=Sortie = 13 : C= ------------ = 14 : C= IPSONO (E) Pointeur sur le segment MELVAL des SOURCES = 15 : C= IPGEOM (E) Pointeur sur un objet MAILLAGE elementaire = 16 : C= IPINTE (E) Pointeur sur un segment MINTE contenant les = 17 : C= caracteristiques d'integration = 18 : C= IPCHEQ (S) Pointeur sur un segment MELVAL contenant les = 19 : C= flux de chaleur nodaux equivalents = 20 : C= = 21 : C= Variables locales : = 22 : C= ------------------- = 23 : C= XEL(3,NBPTEL) Coordonnees GLOBALES des noeuds d'un element = 24 : C= VOLU Volume elementaire au point de Gauss = 25 : C= AEL Matrice de travail = 26 : C= = 27 : C= Denis ROBERT, le 16 fevrier 1988. = 28 : C======================================================================= 29 : 30 : SUBROUTINE CHAMA3 (IPSONO,IPGEOM,IPINTE, IPCHEQ) 31 : 32 : IMPLICIT INTEGER(I-N) 33 : IMPLICIT REAL*8 (A-H,O-Z) 34 : 35 : -INC CCREEL 36 : -INC CCOPTIO 37 : 38 : -INC SMCHAML 39 : -INC SMELEME 40 : -INC SMINTE 41 : -INC SMCOORD 42 : 43 : SEGMENT MMAT1 44 : REAL*8 XEL(3,NBPTEL), AEL(NBPTEL,NBPTEL) 45 : ENDSEGMENT 46 : 47 : C 1 - INITIALISATION 48 : C ==================== 49 : C 1.1 - Recuperation d'informations sur le maillage elementaire 50 : C ===== 51 : MELEME=IPGEOM 52 : SEGACT,MELEME 53 : NBPTEL=NUM(/1) 54 : NbElt=NUM(/2) 55 : C ===== 56 : C 1.2 - Recuperation d'informations sur l'element fini du maillage 57 : C ===== 58 : MINTE=IPINTE 59 : SEGACT,MINTE 60 : NBPGAU=POIGAU(/1) 61 : NBNO=SHPTOT(/2) 62 : C ===== 63 : C 1.3 - Activation du MCHAML contenant les valeurs des sources 64 : C ===== 65 : MELVA1=IPSONO 66 : SEGACT,MELVA1 67 : NBPTE1=MELVA1.VELCHE(/1) 68 : NEL1=MELVA1.VELCHE(/2) 69 : C ===== 70 : C 1.4 - Initialisation du segment de travail MMAT1 71 : C ===== 72 : SEGINI,MMAT1 73 : C ===== 74 : C 1.5 - Initialisation du segment resultat MELVAL contenant les valeurs 75 : C des flux nodaux pour chaque element du maillage (IPGEOM) 76 : C ===== 77 : N1PTEL=NBPTEL 78 : N1EL=NbElt 79 : N2PTEL=0 80 : N2EL=0 81 : SEGINI,MELVAL 82 : IPCHEQ=MELVAL 83 : 84 : C 2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IMAMOD 85 : C ============================================================ 86 : DO iElt=1,NbElt 87 : C ===== 88 : C 2.1 - Mise a zero de la matrice symetrique AEL(i,j)=Forme(i).Forme(j) 89 : C ===== 89 : CALL ZERO(AEL,NBPTEL,NBPTEL) 90 : C ===== 91 : C 2.2 - Recuperation des coordonnees GLOBALES des noeuds de l'element 92 : C ===== 92 : CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,iElt,XEL) 93 : C ===== 94 : C 2.3 - Boucle sur les points de Gauss de l'element iElt 95 : C ===== 96 : DO iGau=1,NBPGAU 97 : C ======= 98 : C 2.3.1 - Calcul du volume associe au point de Gauss iGau 99 : C ======= 100 : V1=XZERO 101 : V2=XZERO 102 : V3=XZERO 103 : V4=XZERO 104 : V5=XZERO 105 : V6=XZERO 106 : V7=XZERO 107 : V8=XZERO 108 : V9=XZERO 109 : DO i=1,NBPTEL 110 : V1=V1+SHPTOT(2,i,iGau)*XEL(2,i) 111 : V2=V2+SHPTOT(3,i,iGau)*XEL(3,i) 112 : V3=V3+SHPTOT(3,i,iGau)*XEL(2,i) 113 : V4=V4+SHPTOT(2,i,iGau)*XEL(3,i) 114 : V5=V5+SHPTOT(3,i,iGau)*XEL(1,i) 115 : V6=V6+SHPTOT(2,i,iGau)*XEL(1,i) 116 : V7=V7+SHPTOT(4,i,iGau)*XEL(1,i) 117 : V8=V8+SHPTOT(4,i,iGau)*XEL(2,i) 118 : V9=V9+SHPTOT(4,i,iGau)*XEL(3,i) 119 : ENDDO 120 : Volu=(V3*V9-V2*V8)*V6+(V2*V7-V5*V9)*V1+(V5*V8-V3*V7)*V4 121 : Volu=ABS(Volu)*POIGAU(iGau) 122 : C ======= 123 : C 2.3.2 - Calcul de la contribution du point de Gauss a la matrice AEL 124 : C ======= 125 : DO i=1,NBPTEL 126 : Z=SHPTOT(1,i,iGau)*Volu 127 : DO j=1,NBPTEL 128 : AEL(i,j)=AEL(i,j)+SHPTOT(1,j,iGau)*Z 129 : ENDDO 130 : ENDDO 131 : ENDDO 132 : C ===== 133 : C 2.4 - Calcul des flux equivalents sur cet element (MCHAML aux noeuds) 134 : C ===== 135 : IEMIN=MIN(NEL1,iElt) 136 : DO i=1,NBPTEL 137 : Z=XZERO 138 : DO j=1,NBPTEL 139 : k=MIN(NBPTE1,j) 140 : Z=Z+MELVA1.VELCHE(k,IEMIN)*AEL(j,i) 141 : ENDDO 142 : VELCHE(i,iElt)=Z 143 : ENDDO 144 : ENDDO 145 : 146 : C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS 147 : C ==================================================== 148 : SEGSUP,MMAT1 149 : SEGDES,MELEME,MELVA1,MINTE,MELVAL 150 : 151 : RETURN 152 : END 153 : 154 :
© Cast3M 2003 - All rights reserved.
Disclaimer