C CHAMA1 SOURCE FANDEUR 10/12/17 21:16:00 6427 C======================================================================= C= C H A M A 1 = C= ----------- = C= = C= Fonction : = C= ---------- = C= Calcul du MCHAML (champ par element aux noeuds) des flux nodaux = C= equivalents a des sources volumiques. Cas UNIDIMENSIONNEL MASSIF = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= IPSONO (E) Pointeur sur le segment MELVAL des SOURCES = C= IPGEOM (E) Pointeur sur un objet MAILLAGE elementaire = C= IPINTE (E) Pointeur sur un segment MINTE contenant les = C= caracteristiques d'integration = C= IPCHEQ (S) Pointeur sur un segment MELVAL contenant les = C= flux de chaleur nodaux equivalents = C= = C= Variables locales : = C= ------------------- = C= XEL(3,NBPTEL) Coordonnees GLOBALES des noeuds d'un element = C= Volu "Volume" elementaire au point de Gauss = C= AEL Matrice de travail = C======================================================================= SUBROUTINE CHAMA1 (IPSONO,IPGEOM,IPINTE, IPCHEQ) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC CCOPTIO -INC CCREEL -INC SMCHAML -INC SMELEME -INC SMINTE -INC SMCOORD SEGMENT MMAT1 REAL*8 XEL(3,NBPTEL), AEL(NBPTEL,NBPTEL) ENDSEGMENT C= Quelques constantes (2.Pi et 4.Pi) PARAMETER (X2Pi=6.283185307179586476925286766559D0) PARAMETER (X4Pi=12.566370614359172953850573533118D0) C 1 - INITIALISATION C ==================== C 1.1 - Recuperation d'informations sur le maillage elementaire C ===== MELEME=IPGEOM SEGACT,MELEME NBPTEL=NUM(/1) NbElt=NUM(/2) C ===== C 1.2 - Recuperation d'informations sur l'element fini du maillage C ===== MINTE=IPINTE SEGACT,MINTE NbPGau=POIGAU(/1) C*OF NBNO=SHPTOT(/2) C ===== C 1.3 - Activation du MCHAML contenant les valeurs des sources C ===== MELVA1=IPSONO SEGACT,MELVA1 NBPTE1=MELVA1.VELCHE(/1) NEL1=MELVA1.VELCHE(/2) C ===== C 1.5 - Initialisation du segment de travail MMAT1 C ===== SEGINI,MMAT1 C ===== C 1.6 - Initialisation du segment resultat MELVAL contenant les valeurs C des flux nodaux pour chaque element du maillage (IPGEOM) C ===== N1PTEL=NBPTEL N1EL=NbElt N2PTEL=0 N2EL=0 SEGINI,MELVAL IPCHEQ=MELVAL C 2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IMAMOD C ============================================================ DO iElt=1,NbElt C ===== C 2.1 - Mise a zero de la matrice symetrique AEL(i,j)=Forme(i).Forme(j) C ===== CALL ZERO(AEL,NBPTEL,NBPTEL) C ===== C 2.2 - Recuperation des coordonnees GLOBALES des noeuds de l'element C ===== CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,iElt,XEL) C ===== C 2.4 - Boucle sur les points de Gauss de l'element iElt C ===== DO iGau=1,NbPGau C ======= C 2.4.1 - Calcul du volume associe au point de Gauss iGau C Traitement des modes 1D axisymetriques et spherique C ======= Volu=XZERO DO i=1,NBPTEL Volu=Volu+SHPTOT(2,i,iGau)*XEL(1,i) ENDDO Volu=ABS(Volu)*POIGAU(iGau) IF (IFOMOD.EQ.4.OR.IFOMOD.EQ.5) THEN CALL DISTRR(XEL,SHPTOT(1,1,iGau),NBPTEL,RR) IF (IFOMOD.EQ.5) THEN Volu=X4Pi*RR*RR*Volu ELSE Volu=X2Pi*RR*Volu ENDIF ENDIF C ======= C 2.3.2 - Calcul de la contribution du point de Gauss a la matrice AEL C ======= DO i=1,NBPTEL ZZ=SHPTOT(1,i,iGau)*Volu DO j=1,NBPTEL AEL(i,j)=AEL(i,j)+SHPTOT(1,j,iGau)*ZZ ENDDO ENDDO ENDDO C ===== C 2.4 - Calcul des flux equivalents sur cet element (MCHAML aux noeuds) C ===== IEMIN=MIN(NEL1,iElt) DO i=1,NBPTEL ZZ=XZERO DO j=1,NBPTEL k=MIN(NBPTE1,j) ZZ=ZZ+MELVA1.VELCHE(k,IEMIN)*AEL(j,i) ENDDO VELCHE(i,iElt)=ZZ ENDDO ENDDO C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS C ==================================================== SEGSUP,MMAT1 SEGDES,MELEME,MELVA1,MINTE,MELVAL RETURN END