* fichier : dyne02.dgibi ************************************************************************ ************************************************************************ * ************************************************************************ * * Impact d'une barre elastique sur un plan rigide : * p1 p2 p2b * +--------------+ + * -> <-> * P=M*g JeuLiai=0.01 * * Calcul sur base modale via l'operateur DYNE * * Creation, modifs : * D. Combescure, Aout 2006 * BP, 2018-12-19 : Test des differents algorithme d'integration * et de l'option K et M PLEINE * ************************************************************************ * GRAPH_boucle = FAUX; *GRAPH = FAUX; * * ************************************************************************ * * MAILLAGE, MODELE, MATRICES ET BASE MODALE * ************************************************************************ L1 = 1.; n1 = 10; L = 2.; n2 = 10; * p1 = 0. 0. 0.; p2 = L1 0. 0.; p2b = L1 0. 0.; p3 = L 0. 0.; lig1 = d n1 p1 p2; lig2 = d n2 p2b p3; mesh = lig1; * S1 = 0.1; * E1 = 2000.; nu1 =0.2; ro1 = 7.8D-3; * mat1 = MATE mod1 YOUN E1 NU nu1 RHO ro1 SECT S1; * * * nmode = 2; (RIG1 et bl1 et bl2b) MAS1 ; * SI GRAPH_boucle; oeil = 0. 0. 100.; Repeter bou1 nmode; FIFI = TMOD . MODES . &Bou1 . 'FREQUENCE' ; TT = TMOD . MODES . &Bou1 . 'DEFORMEE_MODALE' ; titre (CHAIN 'Frequence=' Fifi); trac oeil def1; fin bou1; FINSI; ************************************************************************ * * CALCUL NON-LINEAIRE : Appel à DYNE * ************************************************************************ ************************* * TEMPS ************************* * * DT = 1.E-4 ; NTT = 5000 ; NSORT = 1; *--> resultats non converges ! * DT = 2.E-5 ; NTT = 25000; NSORT = 5; *--> convergence sur 1er rebond mais pas sur le 2eme DT = 1.E-5 ; NTT = 50000; NSORT = 10; *--> convergence jusqu'au 3eme rebond : suffisant pour le TNR * DT = 1.E-6 ; NTT = 500000; NSORT = 50; * *--> convergence jusqu'au 5eme rebond * ************************* * TABLE AMORTISSEMENT ************************* * TAMOR = TABLE 'AMORTISSEMENT' ; * *************************************************** * TABLE CHARGEMENT (CHARG1 CHARG2 CHARG3) *************************************************** TCHAR = TABLE 'CHARGEMENT' ; * Ampl = 1.0; TCHAR.'BASE_A' = CHAP1; *********************************************************** * LIAISONS *********************************************************** * TILIA = TABLE 'LIAISON' ; TTLB = TABLE 'LIAISON_B' ; TILIA.'LIAISON_B' = TTLB ; * LIAISON POINT POINT Kliai = 30.0*E1*S1/L1; mess Kliai; Jeuliai = .01; TLA12 = TABLE 'LIAISON_ELEMENTAIRE' ; TTLB . 1 = TLA12 ; TLA12 . 'POINT_A' = P2 ; TLA12 . 'POINT_B' = P2b ; TLA12. 'NORMALE' = ( -1. 0. 0.); TLA12 . 'RAIDEUR' = Kliai ; TLA12 . 'AMORTISSEMENT' = 0. ; ************************* * TABLE SORTIE ************************* * TABSOR = TABLE 'SORTIE'; * TABSOR2 = TABLE 'LIAISON_B' ; TABSOR.'LIAISON_B' = TABSOR2 ; * TVARPP = TABLE 'VARIABLE' ; TVARPP.'FORCE_DE_CHOC_POINT_A' = VRAI ; TVARPP.'FORCE_DE_CHOC_POINT_B' = VRAI ; TVARPP.'UY_POINT_A' = VRAI ; TVARPP.'UY_POINT_B' = VRAI ; TVARPP.'VITESSE' = VRAI ; * TVARGD = TABLE 'VARIABLE' ; TVARGD.'FORCE_DE_CHOC' = VRAI ; TVARGD.'VITESSE' = VRAI ; TVARGD.'UY' = VRAI ; * TABSOR2. TLA12 = TVARPP; *======================================================================= *======> BOUCLE SUR DIVERSES SYNTAXES ET ALGO POUR LES TESTER *on a le droit a des nom de variables jusqu'a 24 caracteres REPE BTEST 6; * choix algo si ((EGA &BTEST 1) ou (EGA &BTEST 2)); finsi; si ((EGA &BTEST 3) ou (EGA &BTEST 4)); finsi; si ((EGA &BTEST 5) ou (EGA &BTEST 6)); finsi; Tdess1 . 'TITRE' . &BTEST = mot_algo_court; * choix syntaxe (base modale / table raideur et masse) ************************************************ * CALCUL TEMPOREL PROPREMENT DIT *********************************************** si BPAIR; * SYNTAXE BASE_MODALE : TRESU = DYNE mot_algo TMOD TAMOR TCHAR TILIA NTT DT NSORT TABSOR ; sinon; * SYNTAXE TABLE K ET M si (&BTEST <eg 2); TKETM . 'BASE_MODALE' = TMOD; finsi; TRESU = DYNE mot_algo TKETM TAMOR TCHAR TILIA NTT DT NSORT TABSOR ; finsi; ************************************************ * TRACE DES DEPLACEMENTS EN FONCTION DU TEMPS ********************************************** * TDS = TRESU . 'TEMPS_DE_SORTIE' ; RESCHOC = TRESU . TLA12; FchocB = RESCHOC. FORCE_DE_CHOC_POINT_B; FchocA = RESCHOC. FORCE_DE_CHOC_POINT_A; * * UXP2_TOT = UXP2_TOT ET UXP2; EVFchoA_tot = EVFchoA_tot ET EVFchoA; SI GRAPH_boucle; ta = table; ta.2 = 'TIRR'; * DESS EVFchoA XBORD 0. 0.20 ; * DESS EVFchoB XBORD 0. 0.20 ; FINSI; *********************************************** * TEST DE NON REGRESSION (TNR) * par rapport a une precedente execution du cas test *********************************************** * on teste le deplacement à t=0.1s (fin du 1er rebond) tt = 0.1; * ref pour DT=1.E-4 : uref = -6.71056E-03; * nouvelle ref. (BP, 2018-12-12) uref = -6.63459E-03; * test du fonctionnement de RECO * on compare le resultat de RECO et de EVOL RECO MESS 'valeur calculee : ' uref ureco uevol; ERR1 = ABS ((ureco - uref) / uref); ERR2 = ABS ((uevol - uref) / uref); ERR3 = ABS ((ureco - uevol) / uref); MESS 'erreur relative : ' ERR1 ERR2 ERR3; *on a le droit a des nom de variables jusqu'a 24 caracteres prog_ERR1 = prog_ERR1 et ERR1 ; prog_ERR2 = prog_ERR2 et ERR2 ; prog_ERR3 = prog_ERR3 et ERR3 ; FIN BTEST; *<====== FIN DE BOUCLE SUR DIVERSES SYNTAXES ET ALGO POUR LES TESTER *======================================================================= SI GRAPH; FINSI; SI ((ERR1 > 0.005) OU (ERR2 > 0.005) OU (ERR3 > 0.0001)); FINSI; * OPTI DONN 5 TRAC 'X'; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales