flux
C FLUX SOURCE CB215821 24/04/12 21:16:00 11897 C======================================================================= C= F L U X = C= ------- = C= = C= OPERATEUR CAST3M "FLUX" : = C= ------------------------- = C= FF1 = 'FLUX' MODL1 | VFLU MAI1 ( 'DIRE' POI1 ) | ( 'PEAU' ) ; = C= | CH1 | = C= | CH2 LMOTS | = C= = C= Cet operateur sert a calculer les flux nodaux equivalents a une = C= condition de flux de chaleur impose (CHPOINT au second membre). = C= = C= ARGUMENTS : = C= ----------- = C= MODL1 (MMODEL) Modele (global) associe a la structure = C= VFLU (FLOTTANT) Valeur algebrique du flux (constante) = C= MAI1 (MAILLAGE) Partie de la structure ou on impose le flux de = C= chaleur de valeur VFLU. = C= CH1 (CHPOINT ou MCHAML) Valeurs algebriques des flux = C= 'DIRE' (MOT) Indique que le flux est incline par rapport a = C= a la normale a la (sur)face = C= POI1 (POINT) Direction du flux dans le repere global = C= CH2 (CHPOINT ou MCHAML) Champ a plusieurs composantes = C= LMOTS (LISTMOTS) Liste des composantes de CH2, la premiere est = C= associee a la direction X, la deuxieme a Y et = C= la troisieme a Z (en 3D) = C= PEAU (MOT) Indique la peau etudie dans le cas des COQUES = C= = C= RESULTAT : = C= ---------- = C= FF1 (CHPOINT) Flux nodaux equivalents a la condition de flux = C= de nature DISCRETE = C= = C= CREATION / MODIF : = C= ------------------ = C= Creation : Denis ROBERT, le 25 janvier 1988. = C= Modif : BP, 30/07/2013 : ajout de la possibilité que CH1 et CH2 = C= soient des MCHAML = C= = C======================================================================= SUBROUTINE FLUX IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC SMLMOTS -INC SMMODEL PARAMETER (NP=2) CHARACTER*4 PEAU CHARACTER*4 MOPEAU(NP),MOFLU(1) CHARACTER*(LOCOMP) MOCOMP DATA MOPEAU / 'INFE','SUPE' / DATA MOFLU / 'DIRE' / C 1 - LECTURE DES ARGUMENTS DE L'OPERATEUR C ========================================== C 1.1 - Lecture OBLIGATOIRE du modele (IPMODL) C ===== MOTERR(1:8)=' MODELE ' IF (IERR.NE.0) RETURN C ===== C 1.2 - Lecture OBLIGATOIRE des flux de chaleur donnes par : C 1) un CHPOINT (IPCHPO) avec ou sans LISTMOTS (MLMOTX) C ou 2) un MCHAML (-IPCHPO) avec ou sans LISTMOTS (MLMOTX) C ou 3) un maillage (IPGEOM) et un flottant (VALFLU) C ===== IPCHPO=0 MLMOTX=0 VALFLU=0. IF (IERR.NE.0) RETURN cbp : on ajoute la possibilité de lire un mchaml IF (iOK.EQ.0) THEN IF (IERR.NE.0) RETURN IPCHPO=0 IF (iOK .EQ. 1) THEN IF(IERR .NE. 0) RETURN IPCHPO = -1*IPCHPO ENDIF ENDIF IF (iOK.EQ.1) THEN IF (IERR.NE.0) RETURN IF (MLMOTX.NE.0) THEN MLMOTS=MLMOTX SEGACT,MLMOTS IF (NCOMP.NE.IDIM) THEN RETURN ENDIF ENDIF IPCHP2 = IPCHPO ELSE IF (IERR.NE.0) RETURN MOTERR(1:8)='MAILLAGE' IF (IERR.NE.0) RETURN IF (IERR.NE.0) RETURN ENDIF C ===== C 1.3 - Lecture FACULTATIVE du MOT 'DIRE' et du vecteur associe C ===== NUMPOI=-1 IF (iOK.NE.0) THEN IF (IERR.NE.0) GOTO 10 ENDIF C ===== C 1.4 - Lecture FACULTATIVE du MOT associe a la PEAU (cas des COQUES) C ===== PEAU=' ' IF (IERR.NE.0) GOTO 10 IF (LP.NE.0) PEAU=MOPEAU(LP) C 2 - EXTRACTION DE LA FORMULATION A TRAITER DU MODELE C ====================================================== C 2.1 - Verification de la formulation (unique) du modele C ===== ITHER = 0 ITHHY = 0 IELEC = 0 IDIFF = 0 MMODEL = IPMODL NSOUS = KMODEL(/1) DO ISOUS = 1, NSOUS IMODEL = KMODEL(ISOUS) NFOR = FORMOD(/2) IF (NFOR.EQ.1) THEN IF (FORMOD(1).EQ.'THERMIQUE') THEN ITHER = 1 ELSE IF (FORMOD(1).EQ.'THERMOHYDRIQUE') THEN ITHHY = 1 ELSE IF (FORMOD(1).EQ.'ELECTROSTATIQUE') THEN IELEC = 1 ELSE IF (FORMOD(1).EQ.'DIFFUSION') THEN IDIFF = 1 ELSE MOTERR(1:8) = FORMOD(1) ENDIF ELSE IF (NFOR.GT.1) THEN MOTERR(1:8) = FORMOD(1) ENDIF ENDDO IF (IERR.NE.0) GOTO 10 IF ((ITHER+ITHHY+IELEC+IDIFF).NE.1) THEN *AV Affiner l'erreur ! write(ioimp,*) 'Une seule formulation dans le modele !' GOTO 10 ENDIF C ===== C 2.2 - Recuperation du modele de la formulation retenue C ===== CALL EXTRAI IF (IERR.NE.0) GOTO 10 C ===== C 2.3 - Adequation nom de composante source & modele C ===== MOCOMP = ' ' IF (ITHER .EQ. 1) THEN IF (MOCOMP.EQ.' ') MOCOMP = 'Q ' C* A finir pour la thermohydrique ELSE IF (ITHHY .EQ. 1) THEN MOCOMP = 'Q ' ELSE IPCOMP = 0 IF (IERR.NE.0) RETURN MLMOTS = IPCOMP SEGACT,MLMOTS * Normalement : NCOMP est non nul ! * Cas particulier de la diffusion en attendant un traitement adequat ? IF (IDIFF.EQ.1 .AND. NCOMP.GT.1) THEN write(ioimp,*) 'Modele de DIFFUSION a une seule quantite SVP' ENDIF SEGSUP,MLMOTS ENDIF IF (IERR.NE.0) GOTO 10 C 3 - CALCUL DES FLUX NODAUX EQUIVALENTS C ======================================== IPFLUX=0 IF (IERR.NE.0) GOTO 10 C 4 - ECRITURE DU CHPOINT RESULTAT C ================================== C= Attribution d'une nature DISCRETE au CHPOINT resultat IF (IPFLUX.NE.0) THEN MCHPOI=IPFLUX NAT=MAX(1,JATTRI(/1)) NSOUPO=IPCHP(/1) SEGADJ,MCHPOI JATTRI(1)=2 IPFLUX=MCHPOI ENDIF C 5 - MENAGE : Destruction eventuelle de CHPOINT intermediaire c si syntaxe avec maillage en argument d'entree C ============== 10 CONTINUE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales