* fichier : deduad2d.dgibi ************************************************************************ ************************************************************************ ************************************************************************ * NOM : DEDUAD2D * DESCRIPTION : cas-test 2d pour 'DEDU' 'ADAP' * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 21/09/2005, version initiale * HISTORIQUE : v1, 21/09/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 ! ************************************************************************ * 'SAUTER' 2 'LIGNE' ; 'MESSAGE' ' Execution de deduad2d.dgibi' ; 'SAUTER' 2 'LIGNE' ; * * * interact= FAUX ; graph = FAUX ; debug = FAUX ; * *BEGINPROCEDUR cas2d ************************************************************************ * NOM : CAS2D * DESCRIPTION : Construit les cas pour deduadap 2D * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 15/12/2004, version initiale * HISTORIQUE : v1, 15/12/2004, 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 ! ************************************************************************ * * 'DEBPROC' CAS2D ; 'ARGUMENT' mesh*'ENTIER' ; 'ARGUMENT' nbmail2*'ENTIER' ; 'ARGUMENT' ltri/'LOGIQUE' ; * 'SI' ('NON' ('EXISTE' ltri)) ; ltri = 'VRAI' ; 'FINSI' ; * 'SI' ('NON' ('EXISTE' disc)) ; disc = 'LINE' ; 'FINSI' ; * 'SI' ('<' nbmail2 1) ; cherr = 'CHAINE' 'Nombre de mailles inférieur à 2...' ; 'ERREUR' cherr ; 'FINSI' ; nbmail = '*' nbmail2 2 ; * 'SI' ltri ; 'SI' ('EGA' disc 'LINE') ; 'OPTION' 'ELEM' 'TRI3' ; 'SINON' ; 'OPTION' 'ELEM' 'TRI6' ; 'FINSI' ; 'SINON' ; 'SI' ('EGA' disc 'LINE') ; 'OPTION' 'ELEM' 'QUA4' ; 'SINON' ; 'OPTION' 'ELEM' 'QUA8' ; 'FINSI' ; 'FINSI' ; * 'SI' ('OU' ('ET' ('>EG' mesh 1) ('<EG' mesh 2)) ('EGA' mesh 7)) ; * 'SI' ('OU' ('EGA' mesh 1) ('EGA' mesh 7)) ; bas = 'ET' ('DROIT' pA pB nbmail2) ('DROIT' pB pC nbmail2) ; dro = 'ET' ('DROIT' pC pF nbmail2) ('DROIT' pF pI nbmail2) ; hau = 'ET' ('DROIT' pI pH nbmail2) ('DROIT' pH pG nbmail2) ; gau = 'ET' ('DROIT' pG pD nbmail2) ('DROIT' pD pA nbmail2) ; mt = 'DALLER' bas dro hau gau ; 'FINSI' ; * 'SI' ('EGA' mesh 2) ; bas = 'ET' ('DROIT' pA pB ('-' nbmail 1)) ('DROIT' pB pC 1) ; dro = 'ET' ('DROIT' pC pF ('-' nbmail 1)) ('DROIT' pF pI 1) ; hau = 'ET' ('DROIT' pI pH 1) ('DROIT' pH pG ('-' nbmail 1)) ; gau = 'ET' ('DROIT' pG pD 1) ('DROIT' pD pA ('-' nbmail 1)) ; mt = 'DALLER' bas dro hau gau ; 'FINSI' ; * rigblo = 'ET' ('BLOQUE' 'UX' (gau 'ET' dro)) ('BLOQUE' 'UY' (bas 'ET' hau)) ; 'FINSI' ; * 'SI' ('ET' ('>EG' mesh 3) ('<EG' mesh 4)) ; pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 2. 1. ; pE = 2. 0. ; pF = 3. 0. ; pG = 3. 3. ; pH = 0. 3. ; dCH = 'DROIT' pC pH nbmail2 ; dDG = 'DROIT' pD pG nbmail2 ; dAB = 'DROIT' pA pB nbmail2 ; dBC = 'DROIT' pB pC nbmail2 ; dHA = 'DROIT' pH pA nbmail2 ; dCD = 'DROIT' pC pD nbmail2 ; dGH = 'DROIT' pG pH nbmail2 ; dDE = 'DROIT' pD pE nbmail2 ; dEF = 'DROIT' pE pF nbmail2 ; dFG = 'DROIT' pF pG nbmail2 ; cmt = dAB 'ET' dBC 'ET' dCD 'ET' dDE 'ET' dEF 'ET' dFG 'ET' dGH 'ET' dHA ; 'SI' ('EGA' mesh 3) ; s1 = 'DALLER' dAB dBC dCH dHA ; s2 = 'DALLER' dCD dDG dGH ('INVERSE' dCH) ; s3 = 'DALLER' dDE dEF dFG ('INVERSE' dDG) ; mt = s1 'ET' s2 'ET' s3 ; 'FINSI' ; 'SI' ('EGA' mesh 4) ; mt = 'SURFACE' cmt ; 'FINSI' ; 'FINSI' ; 'SI' ('EGA' mesh 5) ; pA = 0. 0. ; pB = 2. 0. ; pC = 3. 1. ; pD = 1. 1. ; pE = 3. -1. ; pF = 1. -1. ; dAB = 'DROIT' pA pB nbmail ; dBC = 'DROIT' pB pC nbmail ; dCD = 'DROIT' pC pD nbmail ; dDA = 'DROIT' pD pA nbmail ; dBE = 'DROIT' pB pE nbmail ; dEF = 'DROIT' pE pF nbmail ; dFA = 'DROIT' pF pA nbmail ; s1 = 'DALLER' dAB dBC dCD dDA ; s2 = 'DALLER' dAB dBE dEF dFA ; mt = s1 'ET' s2 ; cmt = 'CONTOUR' mt ; 'FINSI' ; 'SI' ('EGA' mesh 6) ; * pA = 0. 0. ; pB = 1. 0. ; p1 = 2. 0.5 ; * pC = 1. 1. ; pD = 0. 1. ; p2 = 0.5 0. ; pA = 0. 0. ; pB = 1. 0. ; p1 = 1.8 0.5 ; pC = 1. 1. ; pD = 0. 1. ; p2 = 0.5 0.25 ; mt = 'DALLER' dAB dBC dCD dDA ; cmt = 'CONTOUR' mt ; * 'TRACER' mt ; 'FINSI' ; 'SI' ('EGA' mesh 8) ; pA = 0. -3. ; pB = 4. -3. ; pC = 4. 1. ; pD = 0. 1. ; pE = 0. -1. ; dAB = 'DROIT' pA pB nbmail ; dBC = 'DROIT' pB pC nbmail ; dCD = 'DROIT' pC pD nbmail ; dDE = 'DROIT' pD pE nbmail ; dEA = 'DROIT' pE pA nbmail2 ; cmt = dAB 'ET' dBC 'ET' dCD 'ET' dDE 'ET' dEA ; mt = 'SURFACE' cmt ; * mt = 'DALLER' dAB dBC dCD (dDE 'ET' dEA) ; * cmt = 'CONTOUR' mt ; bux = 'ET' dBC dEA ; buy = 'ET' dAB dCD ; buxuy = dDE ; rigb1 = 'BLOQUE' 'UX' ('ET' bux buxuy) ; rigb2 = 'BLOQUE' 'UY' ('ET' buy buxuy) ; rigblo = 'ET' rigb1 rigb2 ; y1 = 'COORDONNEE' 2 buxuy ; y3 = '**' y1 3 ; fac = 4. ; chblo = ch1 '+' ch2 '+' ch3 ; * 'TRACER' mt ; 'FINSI' ; * 'SI' ('ET' ('>EG' mesh 3) ('<EG' mesh 6)) ; rigblo = 'ET' ('BLOQUE' 'UX' cmt) ('BLOQUE' 'UY' cmt) ; 'FINSI' ; * * Cas QUAF * 'SI' ('EGA' disc 'QUAF') ; mt = 'CHANGER' mt 'QUAF' ; _mt = mt ; 'SINON' ; _mt = 'CHANGER' mt 'QUAF' ; 'FINSI' ; * * Métrique * 'SI' ('OU' ('ET' ('>EG' mesh 1) ('<EG' mesh 6)) ('EGA' mesh 8)) ; met ='CHAINE' 'rien' ; 'FINSI' ; 'SI' ('EGA' mesh 7) ; $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'QUAF' ; xmt ymt = 'COORDONNEE' mtc ; met = g11 'ET' g21 'ET' g22 ; * 'LISTE' met ; * 'ERREUR' 'STOP !' ; 'FINSI' ; 'RESPRO' mt _mt met rigblo cblo ; * * End of procedure file CAS2D * 'FINPROC' ; *ENDPROCEDUR cas2d * 'SI' ('NON' interact) ; 'OPTION' 'TRAC' 'PS' ; 'SINON' ; 'OPTION' 'TRAC' 'X' ; 'FINSI' ; * * Pour les tests, on regarde les valeurs max. des indicateurs * d'isotropie et d'equidistribution * * * Ici les valeurs de référence * lok = VRAI ; idx = 0 ; 2. 2.5 2. 3.0 4. 2. 2.5 2.5 1. 1. 5. 4.5 ; 3.5 2. 3.0 2.5 4. 1.5 2.5 2. 1. 1. 4.5 2.5 ; * * Maillage : * mesh = 1 : maillage régulier * mesh = 2 : maillage concentré à gauche * mesh = 3 : horseshoe avec DALLER * mesh = 4 : horseshoe avec SURF * mesh = 5 : chevron * mesh = 6 : swan * mesh = 7 : maillage régulier + métrique concentrée en bas à gauche * mesh = 8 : keyhole * ltri = VRAI : triangles sinon quadrangles * nbmail2 : nombre de mailles divisé par 2 * 'QUAI' : quadratique incomplet (mécanique) * 'QUAF' : quadratique fluide * tdisc = 'TABLE' ; tdisc . 1 = 'LINE' ; tdisc . 2 = 'QUAI' ; tdisc . 3 = 'QUAF' ; *ltheta = 'PROG' 1. 1. 0.5 0.2 0.05 ; *lgamma = 'PROG' 1. 2. 2. 2. 2. ; * * Test 0 : Juste pour moi * 'SI' FAUX ; 'SAUTER' 2 'LIGNE' ; chs = 'CHAINE' '*****************************************************' ; ch1 = 'CHAINE' '* Test 0 ' ; 'MESSAGE' chs ; 'MESSAGE' ch1 ; 'MESSAGE' chs ; 'SAUTER' 2 'LIGNE' ; * iimesh = 4 ; theta = 0.5 ; gamma = 3. ; iidisc = 1 ; iitri = 2 ; gdisc = tdisc . iidisc ; 'SI' ('EGA' iidisc 1) ; nbmail2 = 8 ; 'SINON' ; nbmail2 = 4 ; 'FINSI' ; 'SI' ('EGA' iitri 1) ; ltri = VRAI ; 'SINON' ; ltri = FAUX ; 'FINSI' ; * * Maillage * 'SI' ltri ; mtri = 'CHAINE' 'triangle' ; 'SINON' ; mtri = 'CHAINE' 'carre' ; 'FINSI' ; mes = 'CHAINE' ' ' 'th=' theta ' ; gam=' gamma ' mesh=' iimesh ';' mtri ';' gdisc ; 'MESSAGE' mes ; 'SI' graph ; tit = 'CHAINE' 'Maillage initial' mes ; 'SI' interact ; 'TRACER' mail 'TITR' tit ; 'SINON' ; 'TRACER' mail 'TITR' tit 'NCLK' ; 'FINSI' ; 'FINSI' ; * * adaptation * 'METR' met 'CSTE' 'THET' theta 'GAMM' gamma debug ; 'SINON' ; 'THET' theta 'GAMM' gamma debug ; 'FINSI' ; * * tracé * orig = 'FORME' ; 'FORME' dep ; 'SINON' ; 'FINSI' ; maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ; macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ; 'MESSAGE' ('CHAINE' 'CISO : max.=' maciso ' min.=' miciso) ; 'MESSAGE' ('CHAINE' 'CEQU : max.=' macequ ' min.=' micequ) ; 'SI' graph ; tit = 'CHAINE' 'Maillage final' mes ; 'SI' interact ; 'TRACER' mail 'TITR' tit ; 'SINON' ; 'TRACER' mail 'TITR' tit 'NCLK' ; 'FINSI' ; $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'LINE' ; tit = 'CHAINE' 'Isotropie' mes ; 'SI' interact ; 'TRACER' cliso mb 'TITR' tit ; 'SINON' ; 'TRACER' cliso mb 'TITR' tit 'NCLK' ; 'FINSI' ; tit = 'CHAINE' 'Equidis.' mes ; 'SI' interact ; 'TRACER' clequ mb 'TITR' tit ; 'SINON' ; 'TRACER' clequ mb 'TITR' tit 'NCLK' ; 'FINSI' ; 'FINSI' ; 'FORME' orig ; 'FINSI' ; * * Test 1 : on fait varier la discrétisation géométrique * type et degré des éléments sur le cas du swan * 'SI' VRAI ; 'SAUTER' 2 'LIGNE' ; chs = 'CHAINE' '*****************************************************' ; ch2 = 'CHAINE' '* sur le maillage swan ' ; 'MESSAGE' chs ; 'MESSAGE' ch1 ; 'MESSAGE' ch2 ; 'MESSAGE' chs ; 'SAUTER' 2 'LIGNE' ; * 'REPETER' idisc 3 ; 'REPETER' itri 2 ; iimesh = 6 ; theta = 0.5 ; gamma = 2. ; iidisc = &idisc ; iitri = &itri ; gdisc = tdisc . iidisc ; 'SI' ('EGA' iidisc 1) ; nbmail2 = 8 ; 'SINON' ; nbmail2 = 4 ; 'FINSI' ; 'SI' ('EGA' iitri 1) ; ltri = VRAI ; 'SINON' ; ltri = FAUX ; 'FINSI' ; * * Maillage * 'SI' ltri ; mtri = 'CHAINE' 'triangle' ; 'SINON' ; mtri = 'CHAINE' 'carre' ; 'FINSI' ; mes = 'CHAINE' ' th=' theta ' ; gam=' gamma ' mesh=' iimesh ' ; ' mtri ' ; ' gdisc ; 'MESSAGE' mes ; 'SI' graph ; tit = 'CHAINE' 'Maillage initial' mes ; 'SI' interact ; 'TRACER' mail 'TITR' tit ; 'SINON' ; 'TRACER' mail 'TITR' tit 'NCLK' ; 'FINSI' ; 'FINSI' ; * * adaptation * 'METR' met 'CSTE' 'THET' theta 'GAMM' gamma debug ; 'SINON' ; 'THET' theta 'GAMM' gamma debug ; 'FINSI' ; * * tracé * orig = 'FORME' ; 'FORME' dep ; 'SINON' ; 'FINSI' ; maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ; macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ; 'MESSAGE' ('CHAINE' 'CISO : max. = ' maciso ' min. = ' miciso) ; 'MESSAGE' ('CHAINE' 'CEQU : max. = ' macequ ' min. = ' micequ) ; * Tests idx = '+' idx 1 ; visor='EXTRAIRE' lmaisor idx ; tiso = ('<' maciso ('*' visor 1.05)) ; 'SI' ('NON' tiso) ; cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. ciso. < ' visor ; 'MESSAGE' cherr ; 'FINSI' ; lok = 'ET' lok tiso ; vequr='EXTRAIRE' lmaequr idx ; tequ = ('<' macequ ('*' vequr 1.05)) ; 'SI' ('NON' tequ) ; cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. cequ. < ' vequr ; 'MESSAGE' cherr ; 'FINSI' ; lok = 'ET' lok tequ ; * 'SI' graph ; tit = 'CHAINE' 'Maillage final' mes ; 'SI' interact ; 'TRACER' mail 'TITR' tit ; 'SINON' ; 'TRACER' mail 'TITR' tit 'NCLK' ; 'FINSI' ; $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'LINE' ; tit = 'CHAINE' 'Isotropie' mes ; 'SI' interact ; 'TRACER' cliso mb 'TITR' tit ; 'SINON' ; 'TRACER' cliso mb 'TITR' tit 'NCLK' ; 'FINSI' ; tit = 'CHAINE' 'Equidis.' mes ; 'SI' interact ; 'TRACER' clequ mb 'TITR' tit ; 'SINON' ; 'TRACER' clequ mb 'TITR' tit 'NCLK' ; 'FINSI' ; 'FINSI' ; 'FORME' orig ; 'FIN' itri ; 'FIN' idisc ; 'FINSI' ; * * Test 2 : on fait varier le maillage et theta avec des carres LINE * 'SI' vrai ; 'SAUTER' 2 'LIGNE' ; chs = 'CHAINE' '*****************************************************' ; ch1 = 'CHAINE' '* Test 2 : on fait varier le maillage, theta, gamma ' ; ch2 = 'CHAINE' '* avec des carres LINE ' ; 'MESSAGE' chs ; 'MESSAGE' ch1 ; 'MESSAGE' ch2 ; 'MESSAGE' chs ; 'SAUTER' 2 'LIGNE' ; * 'REPETER' imesh 8 ; 'REPETER' iparam nparam ; iimesh = &imesh ; theta = 'EXTRAIRE' ltheta &iparam ; gamma = 'EXTRAIRE' lgamma &iparam ; iidisc = 1 ; iitri = 2 ; gdisc = tdisc . iidisc ; 'SI' ('EGA' iidisc 1) ; nbmail2 = 8 ; 'SINON' ; nbmail2 = 4 ; 'FINSI' ; 'SI' ('EGA' iitri 1) ; ltri = VRAI ; 'SINON' ; ltri = FAUX ; 'FINSI' ; * * Maillage * 'SI' ltri ; mtri = 'CHAINE' 'triangle' ; 'SINON' ; mtri = 'CHAINE' 'carre' ; 'FINSI' ; mes = 'CHAINE' ' th=' theta ' ; gam=' gamma ' mesh=' iimesh ' ; ' mtri ' ; ' gdisc ; 'MESSAGE' mes ; 'SI' graph ; tit = 'CHAINE' 'Maillage initial' mes ; 'SI' interact ; 'TRACER' mail 'TITR' tit ; 'SINON' ; 'TRACER' mail 'TITR' tit 'NCLK' ; 'FINSI' ; 'FINSI' ; * * adaptation * 'DISG' gdisc 'THET' theta 'GAMM' gamma debug ; 'SINON' ; 'THET' theta 'GAMM' gamma debug ; 'FINSI' ; * * tracé * orig = 'FORME' ; 'FORME' dep ; 'SINON' ; 'FINSI' ; maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ; macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ; 'MESSAGE' ('CHAINE' 'CISO : max. = ' maciso ' min. = ' miciso) ; 'MESSAGE' ('CHAINE' 'CEQU : max. = ' macequ ' min. = ' micequ) ; * Tests idx = '+' idx 1 ; visor='EXTRAIRE' lmaisor idx ; tiso = ('<' maciso ('*' visor 1.05)) ; 'SI' ('NON' tiso) ; cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. ciso. < ' visor ; 'MESSAGE' cherr ; 'FINSI' ; lok = 'ET' lok tiso ; vequr='EXTRAIRE' lmaequr idx ; tequ = ('<' macequ ('*' vequr 1.05)) ; 'SI' ('NON' tequ) ; cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. cequ. < ' vequr ; 'MESSAGE' cherr ; 'FINSI' ; lok = 'ET' lok tequ ; * 'SI' graph ; tit = 'CHAINE' 'Maillage final' mes ; 'SI' interact ; 'TRACER' mail 'TITR' tit ; 'SINON' ; 'TRACER' mail 'TITR' tit 'NCLK' ; 'FINSI' ; $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'LINE' ; tit = 'CHAINE' 'Isotropie' mes ; 'SI' interact ; 'TRACER' cliso mb 'TITR' tit ; 'SINON' ; 'TRACER' cliso mb 'TITR' tit 'NCLK' ; 'FINSI' ; tit = 'CHAINE' 'Equidis.' mes ; 'SI' interact ; 'TRACER' clequ mb 'TITR' tit ; 'SINON' ; 'TRACER' clequ mb 'TITR' tit 'NCLK' ; 'FINSI' ; 'FINSI' ; 'FORME' orig ; 'FIN' iparam ; 'FIN' imesh ; 'FINSI' ; * * Fin du jeu de données * 'SAUTER' 2 'LIGNE' ; 'SI' lok ; 'MESSAGE' 'Tout sest bien passe' ; 'SINON' ; 'MESSAGE' 'Il y a eu des erreurs' ; 'FINSI' ; 'SAUTER' 2 'LIGNE' ; 'SI' interact ; 'OPTION' 'DONN' 5 ; 'FINSI' ; 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ; * * End of dgibi file DEDUAD2D * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales