OPTI 'DIME' 2 'ELEM' 'QUA4'; OPTI 'DENS' 1.; OPTI 'TRAC' 'PSC'; *paramètres du ktest lx = 100.; ly = 2.; nx = 100; ny = 1; vx = 0.05; vy = 0.; sect = 1.; *Ici Cdif vaut 1.. Car Cdif = rho*Cp qui vaut 1 dans l'équation kd = 1.5; cdif = 1.; Cimp = 2.; *maillage p1 = 0. 0.; p2 = lx 0.; l1 = p1 DROI nx p2; l2 = l1 PLUS (0. ly); surf1 = l1 REGL ny l2; l_bloq = COTE 2 surf1 ; ****** ****** ****** ****** *test en massif (qua4) MOD1 = MODE surf1 'DIFFUSION' 'ADVECTION' 'CONSERVATIVE' ; MAT1 = MATE MOD1 'VITX' vx 'VITY' vy 'KD' kd 'CDIF' cdif; ADV1 = ADVE MOD1 MAT1; COND1 = COND mod1 mat1; blo1 = BLOQ 'CO' l_bloq; dep1 = DEPI blo1 Cimp; sol1 = RESO (blo1 et adv1 et cond1) dep1; *Solution numerique evo1 = EVOL 'ROUG' 'CHPO' sol1 'CO' l1; ordo1 = EXTR evo1 'ORDO' 1; *Solution analytique absc1 = EXTR evo1 'ABSC' 1; expo1 = EXP (vx*(absc1-lx)/kd); v_sol = Cimp*expo1; evo2 = EVOL 'VERT' 'MANU' absc1 v_sol; tdess1 = TABLE; tdess1 . 'TITRE' = TABLE; tdess1 . 'TITRE' . 1 = CHAI 'solution analytique'; tdess1 . 'TITRE' . 2 = CHAI 'solution numerique'; tdess1 . 1 = 'MARQ ROND REGU'; tdess1 . 2 = 'MARQ CROIX REGU'; *Comparaison et erreur DESS (evo2 et evo1) TITR(CHAI 'Solution numerique et analytique en QUA4') 'LOGY' LEGE 'SE' tdess1; err = ABS(v_sol-ordo1)/v_sol; evo_diff = EVOL 'BLEU' 'MANU' absc1 err; DESS evo_diff TITR (CHAI 'Erreur relative en QUA4'); SI ((maxi err ) > 3.5E-4); ERRE 1152; ERRE 21 ; FINS; ****** ****** ****** ****** *On teste en tuy2 OPTI 'ELEM' 'SEG2'; MOD1 = MODE l1 'DIFFUSION' 'ADVECTION' 'CONSERVATIVE' 'TUY2' ; MAT1 = MATE MOD1 'SECT' sect 'VITE' vx 'KD' kd 'CDIF' cdif; ADV1 = ADVE MOD1 MAT1; COND1 = COND mod1 mat1; blo1 = BLOQ 'CO' p2; dep1 = DEPI blo1 Cimp; sol1 = RESO (blo1 et adv1 et cond1) dep1; *Solution numerique evo1 = EVOL 'ROUG' 'CHPO' sol1 'CO' l1; ordo1 = EXTR evo1 'ORDO' 1; *Solution analytique absc1 = EXTR evo1 'ABSC' 1; expo1 = EXP (vx*(absc1-lx)/kd); v_sol = Cimp*expo1; evo2 = EVOL 'VERT' 'MANU' absc1 v_sol; tdess1 = TABLE; tdess1 . 'TITRE' = TABLE; tdess1 . 'TITRE' . 1 = CHAI 'solution analytique'; tdess1 . 'TITRE' . 2 = CHAI 'solution numerique'; tdess1 . 1 = 'MARQ ROND REGU'; tdess1 . 2 = 'MARQ CROIX REGU'; *Comparaison et erreur DESS (evo2 et evo1) TITR(CHAI 'Solution numerique et analytique en TUY2') 'LOGY' LEGE 'SE' tdess1; err = ABS(v_sol-ordo1)/v_sol; evo_diff = EVOL 'BLEU' 'MANU' absc1 err; DESS evo_diff TITR (CHAI 'Erreur relative en TUY2'); SI ((maxi err ) > 3.5E-4); ERRE 1152; ERRE 21 ; FINS; ****** ***** ****** ****** ****** ****** ****** *On teste en quadratique MESS 'PASSAGE A LA FORME QUADRATIQUE'; OPTI 'ELEM' 'QUA8'; l1 = p1 DROI nx p2; l2 = l1 PLUS (0. ly); surf1 = l1 REGL ny l2; l_bloq = COTE 2 surf1 ; MOD1 = MODE surf1 'DIFFUSION' 'ADVECTION' 'CONSERVATIVE' ; MAT1 = MATE MOD1 'VITX' vx 'VITY' vy 'KD' kd 'CDIF' cdif; ADV1 = ADVE MOD1 MAT1; COND1 = COND mod1 mat1; blo1 = BLOQ 'CO' l_bloq; dep1 = DEPI blo1 Cimp; sol1 = RESO (blo1 et adv1 et cond1) dep1; *Solution numerique evo1 = EVOL 'ROUG' 'CHPO' sol1 'CO' l1; ordo1 = EXTR evo1 'ORDO' 1; *Solution analytique absc1 = EXTR evo1 'ABSC' 1; expo1 = EXP (vx*(absc1-lx)/kd); v_sol = Cimp*expo1; evo2 = EVOL 'VERT' 'MANU' absc1 v_sol; tdess1 = TABLE; tdess1 . 'TITRE' = TABLE; tdess1 . 'TITRE' . 1 = CHAI 'solution analytique'; tdess1 . 'TITRE' . 2 = CHAI 'solution numerique'; tdess1 . 1 = 'MARQ ROND REGU'; tdess1 . 2 = 'MARQ CROIX REGU'; *Comparaison et erreur DESS (evo2 et evo1) TITR(CHAI 'Solution numerique et analytique en QUA8') 'LOGY' LEGE 'SE' tdess1; err = ABS(v_sol-ordo1)/v_sol; evo_diff = EVOL 'BLEU' 'MANU' absc1 err; DESS evo_diff TITR (CHAI 'Erreur relative en QUA8'); SI ((maxi err ) > 6.E-9); ERRE 1152; ERRE 21 ; FINS; ****** ****** ****** ****** *test pour tuy3 OPTI 'ELEM' 'SEG3'; MOD1 = MODE l1 'DIFFUSION' 'ADVECTION' 'CONSERVATIVE' 'TUY3' ; MAT1 = MATE MOD1 'SECT' sect 'VITE' vx 'KD' kd 'CDIF' cdif; ADV1 = ADVE MOD1 MAT1; COND1 = COND mod1 mat1; blo1 = BLOQ 'CO' p2; dep1 = DEPI blo1 Cimp; sol1 = RESO (blo1 et adv1 et cond1) dep1; *Solution numerique evo1 = EVOL 'ROUG' 'CHPO' sol1 'CO' l1; ordo1 = EXTR evo1 'ORDO' 1; *Solution analytique absc1 = EXTR evo1 'ABSC' 1; expo1 = EXP (vx*(absc1-lx)/kd); v_sol = Cimp*expo1; evo2 = EVOL 'VERT' 'MANU' absc1 v_sol; tdess1 = TABLE; tdess1 . 'TITRE' = TABLE; tdess1 . 'TITRE' . 1 = CHAI 'solution analytique'; tdess1 . 'TITRE' . 2 = CHAI 'solution numerique'; tdess1 . 1 = 'MARQ ROND REGU'; tdess1 . 2 = 'MARQ CROIX REGU'; *Comparaison et erreur DESS (evo2 et evo1) TITR(CHAI 'Solution numerique et analytique en TUY3') 'LOGY' LEGE 'SE' tdess1; err = ABS(v_sol-ordo1)/v_sol; evo_diff = EVOL 'BLEU' 'MANU' absc1 err; DESS evo_diff TITR (CHAI 'Erreur relative en TUY3'); SI ((maxi err ) > 6.E-9); ERRE 1152; ERRE 21 ; FINS; fin;