* EXAC PROCEDUR CHAT 05/07/27 21:15:07 5137 * Procedure EXAC Ancienne procedure EXEC * * Objet : * * Algorithme semi implicite pour les equations N.S. incompressible * Syntaxe : EXAC RV ; * RV : Table EQEX contenant une entree PRESSION (table EQPR) * *********************************************************************** * VERSION : ???? * HISTORIQUE : 20/12/99: gounand * Le second membre et les conditions aux limites sont désormais tt le * temps des chpoints (et pas des MOT lorsqu'ils sont vides). * HISTORIQUE : 07/01/99: gounand * Rajout de la gestion de la matrice servant à l'assemblage * (rv . 'METHINV' . 'MATASS') * * HISTORIQUE : * HISTORIQUE : ************************************************************************ * * 'ARGUMENT' rv*'TABLE ' ; tps=0.D0 ; vnul=0.D0 0.D0 ; 'SINON' ; vnul=0.D0 0.D0 0.D0 ; 'FINSI' ; 'SI' ('NON' ('EXISTE' rv 'OMEGA')) ; omeg=1.D0 ; 'SINON' ; omeg=rv . 'OMEGA' ; 'FINSI' ; testpr ='EXISTE' rv 'PRESSION' ; testran=testpr 'ET' ('EXISTE' rv 'CO') ; 'FINSI' ; 'SI' ('NON' ('EXISTE' rv 'KIZG')) ; rv . 'KIZG' = 'TABLE' 'KIZG' ; 'FINSI' ; 'SI' ('NON' ('EXISTE' rv 'KIZG1')) ; rv . 'KIZG1' = 'TABLE' 'KIZG1' ; 'FINSI' ; 'SI' ('NON' ('EXISTE' rv 'KIZD')) ; 'KDIA' rv ; 'FINSI' ; 'SI' testpr ; rvp =rv . 'PRESSION' ; nomvi=rv . 'NOMVI' ; 'SI' ('EXISTE' rv 'CLIM') ; rvp . 'CLIM' = rv . 'CLIM' ; 'CLIM' (rv . 'CLIM') 1; 'FINSI' ; 'SI' ('NON' ('EXISTE' rvp 'DIAGV')) ; rvp . 'DIAGV' = rv . 'KIZD' . nomvi ; 'FINSI' ; 'CENTRE' 0.D0 ; 'SOMMET' vnul ; 'FINSI' ; *mess 'EXAC ITMA=' (rv . 'ITMA') 'NITER=' (rv . 'NITER') ; ITMA = (rv . 'ITMA') ; 'SI' ('EGA' ITMA 0) ; ITMA = 1 ; 'FINSI' ; * Gestion de la matrice de préconditionnement * * calass : doit-on recalculer l'assemblage calass = VRAI ; 'SI'(exist rv 'calass') ; calass=rv.'calass' ; matass=rv.'matass'; 'FINSI' ; 'REPETER' bloc1 ITMA ; 'REPETER' bloci (rv . 'NITER') ; kma1 = 0 ; nomper = 'EXTRAIRE' &bloc2 (rv . 'LISTOPER') ; * mess ' EXAC OPERATEUR ' nomper ; ('TEXTE' nomper) (rv . notable) ; 'SI' ('EXISTE' (rv . notable) 'MATELM' ) ; 'MATRIK ') ; kma1= 1 ; ma1 = ma1 'ET' (rv . notable . 'MATELM') ; 'FINSI' ; 'FINSI' ; 'FIN' bloc2 ; dt = (rv . 'PASDETPS' . 'DELTAT') '*' (rv . 'ALFA') ; tps= tps '+' dt ; 'SI' testpr ; rvp . 'DELTAT' = dt ; f=rv . 'KIZG' . nomvi ; u=rv . 'INCO' . nomvi ; 'SI' ('EXISTE' (RV . 'KIZG1') nomvi) ; f1 = 'KOPS' f 'SINON' ; f1=f ; 'FINSI' ; 0.D0 ; 'BETA' (rvp . 'KBETA') (rvp . 'BETA') 'PIMP' (rvp . 'KPIMP') (rvp . 'PIMP') ; (rvp . 'PRESSION') ; '-' (rvp . 'GRADP') ; 'FINSI' ; 'SI' ('EGA' kma1 1) ; 'SI' ('EXISTE' rv 'CLIM') ; s1 = rv . 'CLIM' ; 'SINON' ; 'OUBLIER' matnul ; 'FINSI' ; 'SI' calass ; matass=ma1 ; rv.'matass'=matass ; 'FINSI' ; rv . 'METHINV' . 'MATASS' = matass ; dt1 = 1. ; rv . 'S2' = s2 ; 'OUBLIER' matnul ; 'FINSI' ; 'CLIM' s1 'SMBR' s2 'IMPR' 0 ; 'OUBLIER' res ; 'FINSI' ; 'SI' ('NON' calass) ; 'OUBLIER' ma1 ; 'FINSI' ; 'SI' ('EGA' kma1 1) ; calass = FAUX ; rv.'calass'=calass ; 'FINSI' ; 'MENAGE' ; 'FIN' bloci ; irt=0 ; 'SI' ('EGA' kma1 1) ; 'SI' (dt '>' 0.D0) ; 'TCNM' rv ; 'FINSI' ; 'SINON' ; 'FINSI' ; 'SI' testran ; '-' (rv . 'SEDIM') ; k = 'ABS' (rv . 'INCO' . 'KN') ; e = 'ABS' (rv . 'INCO' . 'EN') ; rv . 'CO' . 'TEMPERA' = rv . 'INCO' . 'CN' ; 'FINSI' ; 'MENAGE' ; 'SI' ('EGA' irt 1) ; 'MESSAGE' ' Temps final atteint : ' (rv . 'PASDETPS' . 'TPS') ; 'QUITTER' bloc1 ; 'FINSI' ; 'FIN' bloc1 ; 'SI' testpr ; (rvp . 'PRESSION') ; (rvp . 'PRESSION') ; 'FINSI' ; ************************ E X A C ************************************ 'FINPROC' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales