Download test_kops_ninc.dgibi

Back to the list

* fichier :  test_kops_ninc.dgibi
************************************************************************
* NOM         : TEST_KOPS_NINC
* DESCRIPTION : On vérifie que KOPS donne des résultats corrects
*               avec les options extrninc et extrinco
*
*
* LANGAGE     : GIBIANE-CAST3M
* AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
*               mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION    : v1, 15/04/2005, version initiale
* HISTORIQUE : v1, 15/04/2005, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
interact = FAUX ;
graph = FAUX ;
* 
*
'DEBPROC' FOIS ;
'ARGUMENT' matk*'MATRIK' ;
'ARGUMENT' ch*'CHPOINT' ;
'RESPRO' ('KOPS' matk '*' ch) ;
'FINPROC' ;
*
*
'OPTION' 'DIME' 2 'ELEM' QUA8  ;
*
* Maillage quelconque
*
pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
l1 = pA 'DROIT' 2 pB ;
l2 = pB 'DROIT' 4 pC ;
l3 = pC 'DROIT' 3 pD ;
l4 = pD 'DROIT' 5 pA ;
mt = 'SURFACE' (l1 'ET' l2 'ET' l3 'ET' l4) ;
_mt = 'CHANGER' mt 'QUAF' ;
$mt = 'MODELISER' _mt 'NAVIER_STOKES' 'QUAF' ;
*
* Construction d'un matrice (ici de laplacien + blocage)
*
rv = 'EQEX' 'OPTI' 'EF' 'IMPL' 
            'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'T' ;
rv . 'INCO' = 'TABLE' 'INCO' ;
rv . 'INCO' . 'T' = 'KCHT' $mt 'SCAL' 'SOMMET' 0.D0 ;
dummy mlapn = 'LAPN' (rv . '1LAPN') ; 
*mat1  = GLAPN _mt 'LINE' 'T' 'QUAF' 'Q' 'QUAF' 1.D0 ;
mablo = 'BLOQUE' 'T' l4 ;
mmt = 'MOTS' 'T' ;
mmq = 'MOTS' 'Q' ;
matot  = 'ET' ('KOPS' 'CHANINCO' mlapn mmt mmt mmt mmq)
              ('KOPS' 'RIMA' mablo) ;
*
* Extraction des noms d'inconnues
*
* option n'existe plus
*lisp lisd = 'KOPS' 'EXTRNINC' matot ;
lisp = 'EXTR' matot 'COMP' ;
lisd = 'EXTR' matot 'COMP' 'DUAL' ;
*
* Vérification 
*
ok11 = ('EGA' ('EXTRAIRE' lisp 1) 'T') ;
ok12 = ('EGA' ('EXTRAIRE' lisp 2) 'LX') ;
ok13 = ('EGA' ('EXTRAIRE' lisd 1) 'Q') ;
ok14 = ('EGA' ('EXTRAIRE' lisd 2) 'FLX') ;
test1 = ok11 'ET' ok12 'ET' ok13 'ET' ok14 ;
*
* Construction d'une table avec toutes les sous-matrices
*
tabmat = 'TABLE' ;
idx = 0 ;
dlisp = 'DIME' lisp ;
dlisd = 'DIME' lisd ;
'MESSAGE' ('CHAINE' 'dlisp=' dlisp) ;
'MESSAGE' ('CHAINE' 'dlisd=' dlisd) ;

'REPETER' ilisp dlisp ;
   'REPETER' ilisd dlisd ;
      idx = '+' idx 1 ;
      'MESSAGE' ('CHAINE' 'idx=' idx) ;
      'MESSAGE' ('CHAINE' 'ilisp=' &ilisp) ;
      'MESSAGE' ('CHAINE' 'ilisd=' &ilisd) ;
      lmp = 'MOTS' ('EXTRAIRE' lisp &ilisp) ;
      lmd = 'MOTS' ('EXTRAIRE' lisd &ilisd) ;
      tabmat . idx = 'KOPS' 'EXTRINCO' matot lmp lmd ;
   'FIN' ilisd ;
'FIN' ilisp ;               
*
* Vérification
*
chtes = '+' ('MANUEL' 'CHPO' l4 1 'LX' 3.14D0)
            ('MANUEL' 'CHPO' mt 1 'T'   1.707D0) ;
ch1 = FOIS matot chtes ;
*
'REPETER' iidx idx ;
   'SI' ('EGA' &iidx 1) ;
      ch2 = FOIS (tabmat . &iidx) chtes ;
   'SINON' ;
      ch2 = '+' (FOIS (tabmat . &iidx) chtes) ch2 ;
   'FINSI' ;
'FIN' iidx ;   
test2 = 'MAXIMUM' ('-' ch2 ch1) 'ABS' ;
*
ipoint1 = 'KOPS' 'POINTEUR' matot ;
ipoint2 = 'KOPS' 'POINTEUR' tabmat ;
ipoint3 = 'KOPS' 'POINTEUR' (tabmat . 1) ;
ok21 = 'ET' ('EGA' ('TYPE' ipoint1) 'ENTIER') ('>' ipoint1 0) ;
ok22 = 'ET' ('EGA' ('TYPE' ipoint2) 'ENTIER') ('>' ipoint2 0) ;
ok23 = 'ET' ('EGA' ('TYPE' ipoint3) 'ENTIER') ('>' ipoint3 0) ;
test3 = ok21 'ET' ok22 'ET' ok23 ;
*
'MESSAGE' ('CHAINE' 'test1 = ' test1*25) ;
'MESSAGE' ('CHAINE' 'test2 = ' test2) ;
'MESSAGE' ('CHAINE' 'test3 = ' test3/25) ;
ok1 = test1 ;
ok2 = ('<' test2 1.D-12) ;
ok3 = test3 ;
*
'SI' interact ;
   'OPTION' 'DONN' 5 ;
'FINSI' ;
'SI' ('NON' (ok1 'ET' ok2 'ET' ok3)) ;
   'ERREUR' 5 ;
'SINON' ;
   'MESSAGE' 'Tout sest bien passe' ;   
'FINSI' ;    
*
* End of dgibi file TEST_KOPS_NINC
*
'FIN' ;

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer