* fichier : valitraj.dgibi ************************************************************************ ************************************************************************ 'SAUTER' PAGE ; 'OPTION' 'ECHO' 0 ; GRAPH = faux ; ********************************************************************* * * Test de validation de l'opérateur TRAJ * on considère un domaine carré dans lequel on se donne un champ * de vitesse circulaire. En chaque point le module de la vitesse * est égal à la distance au centre. * Au temps 2*Pi chaque particule doit être revenue à sa position * initiale après avoir décrit un cercle. * ********************************************************************* * * DEFINITION DU MAILLAGE * 'TITRE' 'test trajectoires ' ; P1 = 0. 0. ; P2 = 2. 0. ; P3 = 2. 2. ; P4 = 0. 2. ; LIG = P1 'DROITE' 10 P2 D 15 P3 D 20 P4 D 25 P1 ; CARRE = 'SURFACE' 'PLAN' LIG ; BORDS = 'CONTOUR' CARRE ; CARRF = 'CHANGER' CARRE 'QUAF' ; * * CREATION DES ÉLEMENTS RELATIFS * MODCAR= 'MODELE' CARRF 'DARCY' 'ISOTROPE' ; 'SI' GRAPH ; 'TITRE' 'Maillage'; 'TRACER' CARRE ; 'FINSI' ; * Centre du cercle : xcen = 1. ; ycen = 1. ; LOGERR = FAUX ; * =========================================================== * * CALCUL DES TRAJECTOIRES AVEC LA FORMULATION MIXTE HYBRIDE * * =========================================================== Mess ' ' ; * * GENERATION DE LA VITESSE CIRCULAIRE V AUX CENTRES DES FACES * ET DES FLUX CORRESPONDANT QN * * le long d'un cercle, la vitesse est orthoradiale : V1X = (YY * -1.) + YCEN ; V1Y = XX - XCEN ; VAVN = 'PSCAL' V HYNOR MOT1 MOT1 ; VF = HYNOR * VAVN ; QN = VAVN * HYSUR ; * LÂCHER DES PARTICULES LACHER = 'TABLE' ; LACHER.TEMPS_LIMITE = 2 * PI ; LACHER.DELTAT_SAUVE = 0. ; LACHER.1 = ((XCEN + .4) YCEN) 'ET' ((XCEN + .6) YCEN) 'ET' ((XCEN + .8) YCEN) ; * * CONTROLE DES RESULTATS * I = &bloc1 ; PT1 = 'POINT' LACHER.1 I ; MAILTRJ = TABZONE . (2*I) ; * distance au centre du cercle : XX1 = XX1 - XCEN ; YY1 = YY1 - YCEN ; DISTC = ( (XX1*XX1) + (YY1*YY1) ) ** 0.5 ; DCMIN = 'MINIMUM' DISTC ; DCMAX = 'MAXIMUM' DISTC ; DCMAX DCMIN ; ERDCMAX = 'ABS' ( ((DCMAX + DCMIN) * 0.5) - XP1 ) ; MESS ' Erreur sur la moyenne de ces deux valeurs : ' ERDCMAX ; 'SI' (ERDCMAX > 1.D-2) ; LOGERR = VRAI ; 'FINSI' ; * Distance point de départ - point d'arrivée : PTF = 'POINT' MAILTRJ 'FINAL' ; DELX = XP1 - XF1; DELY = YP1 - YF1; DISTP = ((DELX * DELX) + (DELY * DELY)) ** 0.5 ; MESS ' Distance entre le point initial et le point final ' DISTP ; * erreur relative à la distance totale parcourue LLON = TT1 * XP1 ; DISTPR = DISTP / LLON ; MESS ' soit, ' 'relativement a la distance totale parcourue :' DISTPR ; 'SI' (DISTPR > 2.D-2) ; LOGERR = VRAI ; 'FINSI' ; 'FIN' BLOC1 ; * * DIFFERENTS TRACÉS * 'SI' GRAPH ; 'TITRE' 'Vitesse de l ecoulement aux faces'; VNCH1 = 'VECTEUR' VF 0.1 'UX' 'UY' 'ROUGE' ; 'TRACER' VNCH1 (CARRE 'ET' LACHER.1) ; 'TITRE' 'Trajectoires formulation mixte hybride (test circulaire)' ; 'TRACER' (CROB1 ET BORDS) ; 'TRACER' CHMTRJ MODTRJ ; 'TITRE' 'Trajectoires formulation mixte hybride (test circulaire)' 'TRACER' TRAJ1 (TABZONE.1) ; 'FINSI' ; * =========================================================== * * CALCUL DES TRAJECTOIRES AVEC LA FORMULATION ELEMENTS FINIS * * =========================================================== Mess ' ' ; Mess 'Formulation Elements Finis' ; * * GENERATION D'UNE VITESSE CIRCULAIRE AUX NOEUDS DU MAILLAGE * * le long d'un cercle, la vitesse est orthoradiale : V1X = (YY * -1.) + YCEN ; V1Y = XX - XCEN ; * * CALCUL DES TRAJECTOIRES AVEC LA FORMULATION ELEMENTS FINIS * * Cette formulation s'appuie sur la table domaine : * On garde la même table de lâcher * * CONTROLE DES RESULTATS * I = &bloc1 ; PT1 = 'POINT' LACHER.1 I ; MAILTRJ = TABZONE . (2*I) ; * distance au centre du cercle : XX1 = XX1 - XCEN ; YY1 = YY1 - YCEN ; DISTC = ( (XX1*XX1) + (YY1*YY1) ) ** 0.5 ; DCMIN = 'MINIMUM' DISTC ; DCMAX = 'MAXIMUM' DISTC ; DCMAX DCMIN ; ERDCMAX = 'ABS' ( ((DCMAX + DCMIN) * 0.5) - XP1 ) ; MESS ' Erreur sur la moyenne de ces deux valeurs : ' ERDCMAX ; 'SI' ( ERDCMAX > 1.D-4 ) ; LOGERR = VRAI ; 'FINSI' ; * Distance point de départ - point d'arrivée : PTF = 'POINT' MAILTRJ 'FINAL' ; DELX = XP1 - XF1; DELY = YP1 - YF1; DISTP = ((DELX * DELX) + (DELY * DELY)) ** 0.5 ; MESS ' Distance entre le point initial et le point final ' DISTP ; * erreur relative à la distance totale parcourue LLON = TT1 * XP1 ; DISTPR = DISTP / LLON ; MESS ' soit, ' 'relativement a la distance totale parcourue :' DISTPR ; 'SI' ( DISTPR > 2.D-3) ; LOGERR= VRAI ; 'FINSI' ; 'FIN' BLOC1 ; * * DIFFERENTS TRACÉS * 'SI' GRAPH ; 'TITRE' 'Vitesses de l ecoulement aux noeuds du maillage' ; VNCH2 = 'VECTEUR' V1 0.1 'VX' 'VY' 'ROUGE' ; 'TITRE' 'Trajectoires formulation elements finis (test circulaire)' ; 'TRACER' (CROB2 'ET' BORDS) ; 'FINSI' ; * Test de réussite et sortie : 'SI' LOGERR ; 'ERREUR' 5 ; 'SINON' ; 'ERREUR' 0 ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales