thnumac2
C THNUMAC2 SOURCE AM 18/01/16 21:15:53 9700 C======================================================================= C= T H N U M A C 2 = C= --------------- = C= (TNUMAC dans le cas de la thermique) = C= Fonction : = C= ---------- = C= Calcul de la matrice de CAPACITE thermohydrique pour les elements = C= finis MASSIFs a integration NUMERIQUE = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= NEF (E) Numero de l'ELEMENT FINI dans NOMTP (cf. CCHAMP) = C= IMAIL (E) Numero du segment IMODEL dans le segment MMODEL = C= IPMODE (E) Pointeur sur un segment IMODEL suppose ACTIF = C= IPCHEM (E) Pointeur sur un segment MCHELM de CARACTERISTIQUES = C= IPRIGI (E/S) Pointeur sur l'objet RIGIDITE (CONDUCTIVITE) = C= = C= Zakaria HABIBI le 30 juin 2008. = C======================================================================= & ipmatr,LRE) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCREEL -INC SMCHAML -INC SMCOORD -INC SMELEME -INC SMINTE -INC SMRIGID SEGMENT MMAT1 REAL*8 VALMAT(NV1) REAL*8 CEL1(NBNN,NBNN),CEL2(NBNN,NBNN),CEL3(NBNN,NBNN) REAL*8 CEL4(NBNN,NBNN),CEL5(NBNN,NBNN),CEL6(NBNN,NBNN) REAL*8 CEL7(NBNN,NBNN),CEL8(NBNN,NBNN),CEL9(NBNN,NBNN) REAL*8 XE(3,NBNN) REAL*8 CMAT(NDIM,NDIM),CMAT1(IDIM,IDIM),CMAT2(IDIM,IDIM) ENDSEGMENT SEGMENT MAXE REAL*8 TXR(IDIM,IDIM),XLOC(3,3),XGLOB(3,3) ENDSEGMENT SEGMENT MPTVAL INTEGER IPOS(NS),NSOF(NS),IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT C INITIALISATIONS ET VERIFICATIONS C ================================ C Recuperation d'informations sur le maillage elementaire C ===== MELEME = IPMAIL c* SEGACT,MELEME NBNN = NUM(/1) NBELEM = NUM(/2) C ===== C Recuperation d'informations sur le maillage elementaire C ===== MINTE = ipinte c* SEGACT,MINTE NBPGAU = POIGAU(/1) C ===== C Recuperation des fonctions de forme et de leurs derivees au C centre de gravite de l'element pour le calcul des axes locaux C d'orthotropie ou d'anisotropie C ===== IF (ipint1.NE.0) THEN MINTE1 = ipint1 c* SEGACT,MINTE1 NBSH = MINTE1.SHPTOT(/2) ENDIF C ===== C Initialisation des segments de travail C ===== MPTVAL = IVAMAT IF (IFOMOD.EQ.1) THEN NDIM=3 ELSE NDIM=IDIM ENDIF NV1 = NMATT SEGINI,MMAT1 MAXE = 0 IF (ipint1.NE.0) THEN SEGINI,MAXE ENDIF C ===== C Matrice de CAPACITE thermohydrique C ===== XMATRI = ipmatr c* SEGACT,XMATRI*MOD c* NLIGRP = 3*NBNN = LRE c* NLIGRD = 3*NBNN = LRE C BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IPMAIL C ====================================================== DO iElt=1,NBELEM C === C Mise a zero de la matrice de CAPACITE de l'element iElt C === C === C Recuperation des coordonnees GLOBALES des noeuds de l'element C === C === C Calculs des axes locaux d'orthotropie ou d'anisotropie C === IF (ipint1.NE.0) THEN IF (NBSH.EQ.-1) THEN GOTO 9990 ENDIF ENDIF C === C Boucle sur les points de Gauss de l'element iElt C === iFois=0 DO iGau=1,NbPGau C - Calcul du jacobien, des fonctions de forme et de leurs C derivees au point de Gauss iGau IF (IERR.NE.0) GOTO 9990 IF (DJAC.LT.XZero) iFois=iFois+1 DJAC=ABS(DJAC) C - Erreur si le jacobien est nul en ce point de Gauss IF (DJAC.LT.XPetit) THEN INTERR(1)=iElt GOTO 9990 ENDIF DJAC=DJAC*POIGAU(iGau) C - Recuperation de la ou des valeurs de conductibilite au point C de Gauss iGau (tableau VALMAT) DO i=1,NMATT IF (IVAL(i).NE.0) THEN MELVAL=IVAL(i) IBMN=MIN(iElt,VELCHE(/2)) IGMN=MIN(iGau,VELCHE(/1)) VALMAT(i)=VELCHE(IGMN,IBMN) ELSE VALMAT(i)=XZERO ENDIF ENDDO C - Cas d'un materiau ISOTROPE de conductibilite K C Calcul de la contribution du point de Gauss a la matrice C CAPACITE elementaire de cet element fini C Ajout du terme XK*transposee(N)*N C Seul cas valide en dimension 1 XK=VALMAT(10)*DJAC XK=VALMAT(11)*DJAC XK=VALMAT(12)*DJAC XK=VALMAT(13)*DJAC XK=VALMAT(14)*DJAC XK=VALMAT(15)*DJAC XK=VALMAT(16)*DJAC XK=VALMAT(17)*DJAC XK=VALMAT(18)*DJAC ENDDO C ===== C Erreur si, en un point de Gauss, le jacobien change de signe C ===== IF (iFois.NE.0.AND.iFois.NE.NbPGau) THEN INTERR(1)=iElt GOTO 9990 ENDIF C ===== C Stockage de la matrice de CAPACITE pour cet element fini C ===== (remplissage de XMATRI) CALL REMPMCH & (CEL1,CEL2,CEL3,CEL4,CEL5,CEL6,CEL7,CEL8,CEL9,NBNN,RE(1,1,ielt)) ENDDO C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS C ==================================================== 9990 CONTINUE SEGSUP,MMAT1 IF (ipint1.GT.0) THEN SEGSUP,MAXE ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales