Download lapnef2.dgibi

Back to the list

* fichier :  lapnef2.dgibi
*
********************* cas test lapnvf2.dgibi *********************
*
*-----------------------------------------------------------------
* Cas Test pour l'operateur LAPN version EF avec primal<>dual
*-----------------------------------------------------------------
* On cherche la solution stationnaire d'un problème de diffusion
* thermique sur un disque où on impose une température T1 sur le
* disque de rayon r1 et T2 à l'exterieur du disque de rayon r2.
*
* La solution analytique ne dépend que du rayon r, soit :
*
*              T2 log (r/r1) - T1 log (r/r2)
*       T(r) = -----------------------------
*                     log r2 - log r1
*
* On complique le pb initial en résolvant en fait
*       dD/dt + lapl(T) = 0
*                 D - T = 0
* afin de tester LAPN et MDIA couplant T et U.
*-----------------------------------------------------------------
* Auteurs : J.CREUZIL et F.DABBENE (TTMF)                    12/97
*-----------------------------------------------------------------
*
*- Options
*
'OPTI' 'DIME' 2 'ELEM' 'TRI3' 'ECHO' 0 ;
'OPTI' 'TRAC' 'PS'  ;
GRAPH = 'N' ;
*
*- Données du problème
*
R1 = 3.0   ; R2 = 9.0   ;
T1 = 200.0 ; T2 = 100.0 ;
*
*- Maillage
*
R0  = R1 - 0.5 ;
R3  = R2 + 0.5 ;
MR0 = -1.D0 * R0 ;
MR1 = -1.D0 * R1 ;
MR2 = -1.D0 * R2 ;
MR3 = -1.D0 * R3 ;
*
PC  = 0.0 0.0 ;
P0  =  R0 0.0 ;
P1  =  R1 0.0 ;
P2  =  R2 0.0 ;
P3  =  R3 0.0 ;
P4  = 0.0  R0 ;
P5  = 0.0  R1 ;
P6  = 0.0  R2 ;
P7  = 0.0  R3 ;
P8  = MR0 0.0 ;
P9  = MR1 0.0 ;
P10 = MR2 0.0 ;
P11 = MR3 0.0 ;
*
N     = 12 ;
N1    = 10 ;
P0P1   = P0  'DROI' 2 P1 ;
P1P2   = P1  'DROI' N P2 ;
P2P3   = P2  'DROI' 2 P3 ;
P4P5   = P4  'DROI' 2 P5 ;
P5P6   = P5  'DROI' N P6 ;
P6P7   = P6  'DROI' 2 P7 ;
P9P8   = P9  'DROI' 2 P8 ;
P10P9  = P10 'DROI' N P9 ;
P11P10 = P11 'DROI' 2 P10;
P5P4   = 'INVE' P4P5 ;
P6P5   = 'INVE' P5P6 ;
P7P6   = 'INVE' P6P7 ;
P4P0   = 'CERC' N1 P4 PC P0 ;
P5P1   = 'CERC' N1 P5 PC P1 ;
P1P5   = 'INVE' P5P1 ;
P2P6   = 'CERC' N1 P2 PC P6 ;
P6P2   = 'INVE' P2P6 ;
P3P7   = 'CERC' N1 P3 PC P7 ;
P8P4   = 'CERC' N1 P8 PC P4 ;
P5P9   = 'CERC' N1 P5 PC P9 ;
P9P5   = 'INVE' P5P9 ;
P6P10  = 'CERC' N1 P6 PC P10;
P10P6  = 'INVE' P6P10 ;
P7P11  = 'CERC' N1 P7 PC P11;
P4P7   = P4P5 'ET' P5P6  'ET' P6P7 ;
M10    = 'DALL' P1P2 P2P6 P6P5 P5P1 ;
'OPTI' 'ELEM' 'QUA4' ;
M00    = 'DALL' P0P1 P1P5 P5P4 P4P0 ;
M20    = 'DALL' P2P3 P3P7 P7P6 P6P2 ;
M30    = 'DALL' P9P8   P8P4  P4P5 P5P9  ;
M40    = 'DALL' P10P9  P9P5  P5P6 P6P10 ;
M50    = 'DALL' P11P10 P10P6 P6P7 P7P11 ;
M      = M00 'ET' M10 'ET' M20 'ET' M30 'ET' M40 'ET' M50 ;
M1     = M00 'ET' M30 ;
M3     = M20 'ET' M50 ;
M2     = M10 'ET' M40 ;
COT1   = 'CONT' M ;
*
*- Tables domaines
*
$M  = 'DOMA' M ;
$M1 = 'DOMA' M1   'INCL' $M;
$M2 = 'DOMA' M2   'INCL' $M;
$M3 = 'DOMA' M3   'INCL' $M;
$D1 = 'DOMA' P4P7 'INCL' $M;
*
*- Resolution du probleme
*
CHP1 = 'MANU' 'CHPO' $M1.'SOMMET' 1 'SCAL' T1 ;
CHP2 = 'MANU' 'CHPO' $M3.'SOMMET' 1 'SCAL' T2 ;
CHP3 = 'KCHT' $M  'SCAL' 'SOMMET' 0. CHP1 CHP2 ;
CHP4 = 'MANU' 'CHPO' $M2.'SOMMET' 1 'SCAL' 0. ;
*
RV = 'EQEX' $M 'ITMA' 10
     'OPTI' 'EF' 'IMPL' 'CENTREE'
     'ZONE' $M 'OPER' 'DFDT' 1.D0 'DNM' 'DT' 'INCO' 'DN' 'DN'
     'OPTI' 'EF' 'IMPL' 'CENTREE'
     'ZONE' $M 'OPER' 'LAPN' 'DIFF'          'INCO' 'CN' 'DN'
;
RV = 'EQEX' RV
     'OPTI' 'EFM1' 'IMPL' 'CENTREE'
     'ZONE' $M 'OPER' 'MDIA'  1.D0 'INCO' 'DN' 'CN'
     'OPTI' 'EFM1' 'IMPL' 'CENTREE'
     'ZONE' $M 'OPER' 'MDIA' -1.D0 'INCO' 'CN' 'CN'
;
RV = 'EQEX' RV
     'CLIM' 'DN' 'TIMP' $M1.'SOMMET' T1
     'CLIM' 'DN' 'TIMP' $M3.'SOMMET' T2
;
RV . 'INCO' = TABLE 'INCO' ;
RV . 'INCO' . 'CN'    = 'KCHT' $M 'SCAL' 'SOMMET' 1. ;
RV . 'INCO' . 'DNM'   = 'KCHT' $M 'SCAL' 'SOMMET' 1. ;
RV . 'INCO' . 'DN'    = 'KCHT' $M 'SCAL' 'SOMMET' 1. ;
RV . 'INCO' . 'DIFF'  = 'KCHT' $M 'SCAL' 'CENTRE' 2. ;
RV . 'INCO' . 'DT'    = 20. ;
*
EXEC RV ;
*
*- Solution analytique
*
XC YC = 'COOR' $M.'SOMMET' ;
SOL0  = 'LOG' ( R1 / R2 ) ;
SOL1  = 'LOG' ( R1 ** T2  / (R2 ** T1)) ;
RC    = XC*XC + (YC*YC) ** 0.5 ;
SS1   = 'MANU' 'CHPO' $M.'SOMMET' 1 'SCAL' (SOL1 / SOL0) ;
SS2  = (T1  - T2) / SOL0 * (LOG RC) ;
SS4  = 'MANU' 'CHPO' $M1.'SOMMET' 1 'SCAL' T1 ;
SS5  = 'MANU' 'CHPO' $M3.'SOMMET' 1 'SCAL' T2 ;
SS3  = 'KCHT' $M 'SCAL' 'SOMMET' (SS2 + SS1) SS4 SS5 ;
*
*- Tracé des résultats
*
ERR1  = 'ABS' ((RV.INCO.'CN') - SS3) ;
'SI' ('NEG' GRAPH 'N') ;
     'TITR' 'Solution (coupe)' ;
     EV1  = 'EVOL' 'CHPO' SS3 P4P7 ;
     'DESS' EV1 ;
     'TRAC' $M.MAILLAGE (RV.INCO.'CN') 'TITR' 'Solution' ;
     'TRAC' $M.MAILLAGE (RV.INCO.'DN') 'TITR' 'Solution 2' ;
     'TRAC' $M.MAILLAGE ERR1 'TITR' 'Erreur relative' ;
'FINSI' ;
*
*- Gestion des erreurs
*
MAXE1 = 'MAXI' ERR1 ;
'MESS' 'Erreur Absolue : ' MAXE1 ;
'SI' (MAXE1 '>' 2.5E-2) ;
     'ERRE' 5 ;
'SINO' ;
     'ERRE' 0 ;
'FINS' ;
*
FIN;
 

© Cast3M 2003 - All rights reserved.
Disclaimer