kon181
C KON181 SOURCE CB215821 20/11/25 13:31:56 10792 & IUPRI,IUPRI2,IJACO) C C************************************************************************ C C PROJET : CASTEM 2000 C C NOM : KON181 C C DESCRIPTION : Voir KON18 C Cas deux dimensions, gaz "calorically perfect" C C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec estensions CISI) C C AUTEUR : Chezarovich , DM2S/SFME/LTMF C S. Kudriakov, DM2S/SFME/LTMF C************************************************************************ C C ENTREES C C MELEMC : SPG des CHPOINTs C C IDIAM : diametre de l'elt C C MLMPRI : liste des inconnues primitives (P,v,T) C C MLMCON : liste des inconnues conservatives (rho, rhov, rhoet) C C IRN : CHPOINT CENTRE contenant la densité C C IVN : CHPOINT CENTRE contenant la vitesse C C IVN : CHPOINT CENTRE contenant la pression C C IGAM : CHPOINT CENTRE contenant le gamma C C IUPRI : CHPOINT CENTRE contenant la vitesse "cut-off" C C IUPRI2 : CHPOINT CENTRE contenant la vitesse "cut-off" C C SORTIES C C IJACO : pointeur de la MATRIK jacobienne C C************************************************************************ C C HISTORIQUE (Anomalies et modifications éventuelles) C C HISTORIQUE : crée le 29.05.02 C C************************************************************************ C C C N.B.: On suppose qu'on a déjà controllé RO, P > 0 C GAMMA \in (1,3) C Si non il faut le faire!!! C C************************************************************************ C C C**** Variables de COOPTIO C C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES C & ,IECHO, IIMPI, IOSPI C & ,IDIM C & ,MCOORD C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU C & ,NORINC,NORVAL,NORIND,NORVAD C & ,NUCROU, IPSAUV, IFICLE, IPREFI C IMPLICIT INTEGER(I-N) INTEGER IRN, IVN, IPN, IGAMN, IJACO, IGEOM, ICEN & , MP, NP, NBEL, NBME, NBSOUS, IUPRI, IUPRI2 & , NRIGE, NMATRI, NKID, NKMT, IDIAM C & ,AR, UPRI, UPRI2, DIAM, LAMBDA, MREF, MREF2, MACH, MACH2 & ,DTAUM1 PARAMETER(EPSIL=1.0D0) CHARACTER*8 TYPE C C**** LES INCLUDES C -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC SMMATRIK -INC SMELEME -INC SMLMOTS -INC SMLENTI POINTEUR MPVN.MPOVAL, MPRN.MPOVAL, MPPN.MPOVAL, & MPGAM.MPOVAL, MPUPRI.MPOVAL, MPUPR2.MPOVAL, MDIAMI.MPOVAL POINTEUR MELEMC.MELEME POINTEUR RR.IZAFM, RUX.IZAFM, RUY.IZAFM, RP.IZAFM, & RUXR.IZAFM, RUXUX.IZAFM, RUXUY.IZAFM, RUXP.IZAFM, & RUYR.IZAFM, RUYUX.IZAFM, RUYUY.IZAFM, RUYP.IZAFM, & RETR.IZAFM, RETUX.IZAFM, RETUY.IZAFM, RETP.IZAFM POINTEUR MLMPRI.MLMOTS, MLMCON.MLMOTS C C C SEGACT MPVN*MOD C SEGACT MPPN*MOD C SEGACT MPRN*MOD C C**** Maillage des inconnues primales = Maillage des inconnues primales C = MELEMC C C NRIGE = 7 NMATRI = 1 NKID = 9 NKMT = 7 C SEGINI MATRIK IJACO = MATRIK MATRIK.IRIGEL(1,1) = MELEMC MATRIK.IRIGEL(2,1) = MELEMC C C**** Matrice non symetrique C MATRIK.IRIGEL(7,1) = 2 C NBME = 16 NBSOUS = 1 SEGINI IMATRI MATRIK.IRIGEL(4,1) = IMATRI C SEGACT MLMPRI SEGDES MLMPRI C SEGACT MLMCON SEGDES MLMCON C SEGACT MELEMC SEGDES MELEMC NBSOUS = 1 NP = 1 MP = 1 SEGINI RR , RUX , RUY , RP , & RUXR , RUXUX , RUXUY , RUXP , & RUYR , RUYUX , RUYUY , RUYP , & RETR , RETUX , RETUY , RETP C C**** Duale = IMATRI.LISDUA(1) = 'RN' C Primale = IMATRI.LISPRI(4) = 'P' C -> IMATRI.LIZAFM(1,4) = RP C IMATRI.LIZAFM(1,1) = RR IMATRI.LIZAFM(1,2) = RUX IMATRI.LIZAFM(1,3) = RUY IMATRI.LIZAFM(1,4) = RP IMATRI.LIZAFM(1,5) = RUXR IMATRI.LIZAFM(1,6) = RUXUX IMATRI.LIZAFM(1,7) = RUXUY IMATRI.LIZAFM(1,8) = RUXP IMATRI.LIZAFM(1,9) = RUYR IMATRI.LIZAFM(1,10) = RUYUX IMATRI.LIZAFM(1,11) = RUYUY IMATRI.LIZAFM(1,12) = RUYP IMATRI.LIZAFM(1,13) = RETR IMATRI.LIZAFM(1,14) = RETUX IMATRI.LIZAFM(1,15) = RETUY IMATRI.LIZAFM(1,16) = RETP C RHO=MPRN.VPOCHA(ICEN,1) UX=MPVN.VPOCHA(ICEN,1) UY=MPVN.VPOCHA(ICEN,2) PN=MPPN.VPOCHA(ICEN,1) AR=ARS**0.5D0 QQ=((UX*UX)+(UY*UY))**0.5D0 UPRI=MPUPRI.VPOCHA(ICEN,1) UPRI2=MPUPR2.VPOCHA(ICEN,1) UPRI=MAX(UPRI,UPRI2) DIAM = MDIAMI.VPOCHA(ICEN,1) IF(QQ .LT. (EPSIL*UPRI)) THEN UR = EPSIL*UPRI ELSE UR = QQ ENDIF IF(UR .GT. AR)THEN UR=AR ENDIF H=0.5D0*((UX*UX)+(UY*UY))+ARS/(GAMMA-1.0D0) C----- We compute u+a------------ MREF=UR/AR MREF2=MREF*MREF MACH=QQ/AR MACH2=MACH*MACH LAMBDA=(1.0D0-MREF2)**2 LAMBDA=(LAMBDA*MACH2)+(4.0D0*MREF2) LAMBDA=SQRT(LAMBDA)*AR LAMBDA=((1.0D0+MREF2)*QQ)+LAMBDA LAMBDA=LAMBDA*0.5D0 DTAUM1=LAMBDA/DIAM C C********AB.AM(IFAC,IPRIM,IDUAL) C A = nom de l'inconnu duale (Ro,rUX,rUY,RET) C B = nom de l'inconnu primale (Ro,UX,UY,P) C C******* Dual RN C RR.AM(ICEN,1,1) = 1.0D0*DTAUM1 RUX.AM(ICEN,1,1) = 0.0D0 RUY.AM(ICEN,1,1) = 0.0D0 RP.AM(ICEN,1,1) = MM*DTAUM1 C C******* Dual RUXN C RUXR.AM(ICEN,1,1) = UX*DTAUM1 RUXUX.AM(ICEN,1,1) = RHO*DTAUM1 RUXUY.AM(ICEN,1,1) = 0.0D0 RUXP.AM(ICEN,1,1) = UX*MM*DTAUM1 C C******* Dual RUYN C RUYR.AM(ICEN,1,1) = UY*DTAUM1 RUYUX.AM(ICEN,1,1) = 0.0D0 RUYUY.AM(ICEN,1,1) = RHO*DTAUM1 RUYP.AM(ICEN,1,1) = UY*MM*DTAUM1 C C********Dual RETN C RETR.AM(ICEN,1,1) = 0.5D0*((UX*UX)+(UY*UY))*DTAUM1 RETUX.AM(ICEN,1,1) = RHO*UX*DTAUM1 RETUY.AM(ICEN,1,1) = RHO*UY*DTAUM1 C ENDDO C SEGDES MPVN SEGDES MPRN SEGDES MPGAM SEGDES MPPN SEGDES MPUPRI SEGDES MPUPR2 SEGDES MDIAMI C SEGDES MATRIK SEGDES IMATRI C SEGDES RR , RUX , RUY , RP , & RUXR , RUXUX , RUXUY , RUXP , & RUYR , RUYUX , RUYUY , RUYP , & RETR , RETUX , RETUY , RETP C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales