Download kopsrot2D.dgibi

Back to the list

* fichier :  kopsrot2D.dgibi
*****************  CAS TEST : kopsrot2D.dgibi  *************************
*
GRAPH = faux  ;
eps0  = 1.D-10 ;
'SAUT' 'PAGE' ;
*
*-------------------------------------------------------------------
* TEST kopsrot2D
*
* Ce test permet de vérifier le bon fonctionnement de l'option ROT
* de KOPS en 2D PLAN et 2D AXIS pour les trois familles d'éléments
* compatibles avec le modèle NAVIER_STOKES
*
* On calcule la composante non nulle du rotationel d'un champ de vecteur
* (a0+a1*x+a2*y,b0+b1*x+b2*y). Il est porté par z en cartésien ou par
* Eteta en axi, ces vecteurs unitaires formant la base directe ad'hoc :
* (x,y,z) en cartésien et (Er, Eteta, Ez) en axi. Il est ici constant et
* égale à : 
*    (b1-a2) en cartésien
*    (a2-b1) en axisymétrique
*
* On s'attend à une précision de l'ordre de la précision machine.
*
*-------------------------------------------------------------------
*
'SAUT' 'PAGE' ;
'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'AXIS' 'ECHO' 0 ;
*
*-------------------------------------------------------------------------
* Procedure test2D
* /S test1 : boolean (vrai si ok)
*-------------------------------------------------------------------------
'DEBP' test2D ;
*                                             
m1x m1y = 'COOR' DOMTOT ;
a0  =  7. ; a1= 2. ; a2= -5. ; 
b0  = 11. ; b1= 1. ; b2=  3. ;
p1x = 'NOMC' 'UX' ( a0 '+' (a1*m1x) '+'  (a2*m1y) ) ;
p1y = 'NOMC' 'UY' ( b0 '+' (b1*m1x) '+'  (b2*m1y) ) ;
u1  = 'KCHT' $domtot 'VECT' 'SOMMET' (p1x + p1y) ;
*
rotu1  = 'KOPS' u1 'ROT' $domtot ;
*
mini1    = 'MINI' rotu1 ;
maxi1    = 'MAXI' rotu1 ;
testmode = 'VALE' 'MODE' ;
'SI' ('EGA' testmode 'AXIS') ;
   vtest1 = mini1 + maxi1 / 2. - (a2-b1) ;
'SINO' ;
   vtest1 = mini1 + maxi1 / 2. - (b1-a2) ;
'FINSI' ;
test1  = faux ;
'SI' (('ABS' vtest1) < eps0) ; test1 = vrai ; 'FINSI' ;
*
'SI' ('EGA' graph vrai) ;
   'LIST' mini1 ;
   'LIST' maxi1 ;
   'LIST' (b1-a2) ;
   'LIST' vtest1 ;
   'LIST' test1 ;
   mod1 = 'MODE' domtot 'THERMIQUE' ;
   'TRAC' ('KCHA' $domtot rotu1 'CHAM') mod1 'TITRE' 'Rotationnel' ;
*   'TRAC' ('ELNO' $domtot rotu1) domtot 'TITRE' 'Rotationnel' ;
'FINSI' ;
'FINP' test1 ;
*-------------------------------------------------------------------------
*
*
* Maillage
Lx = 1. ;  Ly = 1. ;
Nx = 6  ;  Ny = 7  ;
*
p1 = 0. 0. ;
p2 = Lx 0. ;
p3 = Lx Ly ;
p4 = 0. Ly ;
*
bord1  = 'DROI' Nx p1 p2 ;
bord2  = 'DROI' Ny p2 p3 ;
bord3  = 'DROI' Nx p3 p4 ;
bord4  = 'DROI' Ny p4 p1 ;
*
domtot0 = 'DALL' bord1 bord2 bord3 bord4 'PLAN' ;
_domtot = 'CHANGER' 'QUAF' domtot0  ;
*
* Tests en QUAF, MACRO et LINE pour les MODE AXIS et PLAN 
MotDiscr = 'QUAF' ;
$domtot = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
domtot  = 'DOMA'  $DOMTOT 'MAILLAGE' ;
a0 = test2D ;
MotDiscr = 'MACRO' ;
$domtot  = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
domtot   = 'DOMA'  $DOMTOT 'MAILLAGE' ;
a1 = test2D ;
MotDiscr = 'LINE' ;
$domtot  = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
domtot   = 'DOMA'  $DOMTOT 'MAILLAGE' ;
a2 = test2D ;
*
'OPTI' 'MODE' 'PLAN' ;
*
MotDiscr = 'QUAF' ;
$domtot = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
domtot  = 'DOMA'  $DOMTOT 'MAILLAGE' ;
a3 = test2D ;
MotDiscr = 'MACRO' ;
$domtot  = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
domtot   = 'DOMA'  $DOMTOT 'MAILLAGE' ;
a4 = test2D ;
MotDiscr = 'LINE' ;
$domtot  = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
domtot   = 'DOMA'  $DOMTOT 'MAILLAGE' ;
a5 = test2D ;
*
* Test de non regression
'SI' a0 ; va0 = 'VRAI' ; 'SINO' ; va0 = 'FAUX' ; 'FINSI' ;
'SI' a1 ; va1 = 'VRAI' ; 'SINO' ; va1 = 'FAUX' ; 'FINSI' ;
'SI' a2 ; va2 = 'VRAI' ; 'SINO' ; va2 = 'FAUX' ; 'FINSI' ;
'SI' a3 ; va3 = 'VRAI' ; 'SINO' ; va3 = 'FAUX' ; 'FINSI' ;
'SI' a4 ; va4 = 'VRAI' ; 'SINO' ; va4 = 'FAUX' ; 'FINSI' ;
'SI' a5 ; va5 = 'VRAI' ; 'SINO' ; va5 = 'FAUX' ; 'FINSI' ;
'OPTI' 'ECHO' 0 ;
'SAUT' 5 ligne ;
'MESS' '-----------------------' ;
'MESS' 'MODE   DISCR  TEST' ;
'MESS' '-----------------------' ;
'MESS' 'QUAF   AXIS   ' va0 ;
'MESS' 'MACRO  AXIS   ' va1 ;
'MESS' 'LINE   AXIS   ' va2 ;
'MESS' '-----------------------' ;
'MESS' 'QUAF   PLAN   ' va3 ;
'MESS' 'MACRO  PLAN   ' va4 ; 
'MESS' 'LINE   PLAN   ' va5 ;
'MESS' '-----------------------' ;
test = a0 'ET' a1 'ET' a2 'ET' a3 'ET' a4 'ET' a5 ;
*
* Compte-rendu de fin et sortie
'SI' test ;
   'ERRE' 0 ;
'SINO' ;
   'ERRE' 5 ;
'FINSI' ; 
'FIN' ;

 

© Cast3M 2003 - All rights reserved.
Disclaimer