Download dy_devo9.dgibi

Back to the list

* fichier :  dy_devo9.dgibi
OPTION ECHO 0                   ;
OPTION ELEM SEG2 DIME 2         ;
GRAPH = 'N'                     ;
d_pasa = faux ; 
*********************************
* TEST DE VALIDATION DE LA      *
* LIAISON LIGNE_LIGNE DE DYNE   *
*_______________________________*
*                               *
* Un disque chute sur le sol    *
* sous l'action de la pesanteur *
* Comparaison des vitesses apres*
* le choc avec la solution      *
* analytique d'un solide rigide *
* en suposant les conditions    *
* de roulement sans glissement  *
*                               *
*********************************
* DONNEES *
*********** 
R=0.1;
H=0.2;
Y0=H+R;
V0=1.;
G0=1.;
O = 0. Y0;
A = 0. H;
B = R Y0;
C1 = CERC 10 A O B;
C2 = C1 TOUR 90. O;
C3 = C1 ET C2;
C4 = C3 TOUR 180. O;
C5 = C3 ET C4;
CE1 = ELIM C5 0.01;
B1=0. 0.;
B2=1. 0.;
SOL=DROI 1 B2 B1;
*
PR=0 0;
PX=0 0;
PY=0 0;
PSOL=0 0;
G=0. Y0;
*********************
* BASE MODALE       *
*********************
CHPX = MANU 'CHPO' 3 (CE1 ET G) 'UX' 1. 'UY' 0. 'RZ' 0.;
CHPY = MANU 'CHPO' 3 (CE1 ET G) 'UX' 0. 'UY' 1. 'RZ' 0.;
CHPR = MANU 'CHPO' 3 (CE1 ET G) 'UX' 0. 'UY' 0. 'RZ' 1.;
CHPSOL=MANU 'CHPO' 3 SOL 'UX' 0. 'UY' 0. 'RZ' 0.;
TBAS1 = TABLE 'BASE_MODALE';
TBAS1 . 'MODES' = TABLE 'BASE_DE_MODES';
TBAS1 . 'MODES'. 'MAILLAGE' =(CE1 ET G);
TBAS1 . 'MODES'. 1 = TABLE 'MODE';
TBAS1 . 'MODES'. 1 . 'POINT_REPERE'     =PX;
TBAS1 . 'MODES'. 1 . 'FREQUENCE'                =  0.0;
TBAS1 . 'MODES'. 1 . 'MASSE_GENERALISEE'        =  5.;
TBAS1 . 'MODES'. 1 . 'DEFORMEE_MODALE'  = CHPX;
mai1 = manu poi1 px ;
mo_mod1 = modele mai1 mecanique elastique modal ;
ca_mod1 = mate mo_mod1 freq 0. mass 5. defo chpx amor 0.;
TBAS1 . 'MODES'. 2 = TABLE 'MODE';
TBAS1 . 'MODES'. 2 . 'POINT_REPERE'     =PY;
TBAS1 . 'MODES'. 2 . 'FREQUENCE'                =  0.0;
TBAS1 . 'MODES'. 2 . 'MASSE_GENERALISEE'        =  5.;
TBAS1 . 'MODES'. 2 . 'DEFORMEE_MODALE'  = CHPY;
mai2 = manu poi1 py ;
mo_mod2 = modele mai2 mecanique elastique modal ;
ca_mod2 = mate mo_mod2 freq 0. mass 5. defo chpy amor 0.;
TBAS1 . 'MODES'. 3 = TABLE 'MODE';
TBAS1 . 'MODES'. 3 . 'POINT_REPERE'     =PR;
TBAS1 . 'MODES'. 3 . 'FREQUENCE'                =  0.0;
TBAS1 . 'MODES'. 3 . 'MASSE_GENERALISEE'        =  0.025;
TBAS1 . 'MODES'. 3 . 'DEFORMEE_MODALE'  = CHPR;
TBAS1 . 'MODES'. 3 . 'CORPS_RIGIDE'     = 'VRAI';
TBAS1 . 'MODES'. 3 . 'CENTRE_DE_GRAVITE'= G;
mai3 = manu poi1 pr ;
mo_mod3 = modele mai3 mecanique elastique modal ;
ca_mod3 = mate mo_mod3 freq 0. mass 0.025 defo chpr amor 0. 
      cgra g ;
TBAS2 = TABLE 'BASE_MODALE';
TBAS2 . 'MODES' = TABLE 'BASE_DE_MODES';
TBAS2 . 'MODES'. 'MAILLAGE' = SOL;
TBAS2 . 'MODES'. 1 = TABLE 'MODE';
TBAS2 . 'MODES'. 1 . 'POINT_REPERE'     =PSOL;
TBAS2 . 'MODES'. 1 . 'FREQUENCE'                =  0.0;
TBAS2 . 'MODES'. 1 . 'MASSE_GENERALISEE'        =  5.;
TBAS2 . 'MODES'. 1 . 'DEFORMEE_MODALE'  = CHPSOL;
mai4 = manu poi1 psol ;
mo_mod4 = modele mai4 mecanique elastique modal ;
ca_mod4 = mate mo_mod4 freq 0. mass 5. defo chpsol amor 0.;
TBAST = TABLE 'ENSEMBLE_DE_BASES'       ;
TBAST.1=TBAS1;
TBAST.2=TBAS2;
mo_1 = mo_mod1 et mo_mod2 et mo_mod3 et mo_mod4 ;
ca_1 = ca_mod1 et ca_mod2 et ca_mod3 et ca_mod4 ;
*************
* TEMPS     *
*************
PDT = 5.E-5                     ;
NPDT = 4200                    ;
NINS = 1                        ;
AMOR1 = AMOR TBAST (PROG 0. 0. 0. 0.);
TA = TABLE 'AMORTISSEMENT'      ;
TA.'AMORTISSEMENT' = AMOR1      ;
**************************
* CONDITIONS INITIALES   *
**************************
TINIT=TABLE 'INITIAL';
VIT1 = MANU CHPO 1 PX  'ALFA' V0 ;
VIT2 = MANU CHPO 1 PR 'ALFA' G0 ;
VIT =VIT1 + VIT2;
TINIT.'VITESSE'=VIT;
********************
* CHARGEMENT        *
*********************
FPES1 = FORCE 'FY' -49.05   G;
FPESA1 = PJBA TBAS1 FPES1    ;
fpesa2 = pjba mo_1 ca_1 fpes1 ;
LISX1 = PROG 0. 15.                     ;
LISY1 = PROG 1. 1.                      ;
EVO_F1 = EVOL 'MANU' TEMPS LISX1  LISY1 ;
CHA_PES1 = CHARGE 'FORC' FPESA1 EVO_F1  ;
cha_pes2 = charge 'FORC' fpesa2 evo_f1 ;
TCHARG = TABLE 'CHARGEMENT'             ;
TCHARG.'BASE_A' = CHA_PES1              ;
chp_r =MANU CHPO 1 (CE1) 'RAID' 10000000.;
chp_A =MANU CHPO 1 (CE1) 'AMON' 10000000.;
******************************************
*        LIAISON LIGNE LIGNE             *
******************************************
TLIA1 = TABLE 'LIAISON'         ;
TLB1 = TABLE 'LIAISON_B'                ;
TLIA1 .'LIAISON_B' = TLB1               ;
TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
TL1.'TYPE_LIAISON'= MOT 'LIGNE_LIGNE_FROTTEMENT';
TL1.'LIGNE_MAITRE' =  SOL               ;
TL1.'LIGNE_ESCLAVE'=  CE1               ;
TL1.'COEFFICIENT_GLISSEMENT'    = 0.1;
TL1.'COEFFICIENT_ADHERENCE'     = 0.1           ;
TL1.'RAIDEUR_TANGENTIELLE'      = -10.  ;
TL1.'RAIDEURS'                  = chp_r ;
TL1.'AMORTISSEMENT_TANGENTIEL'  = 0.01  ;
TLB1.1 = TL1  ;
maif1 = manu poi1 (0. 0.) ;
mollf1 = modele maif1 liaison ligne_ligne frottement ;
callf1 = mate mollf1 lima SOL lies CE1 glis 0.1 adhe 0.1 
       rtan -10. raid chp_r atan 0.01 ;
                  ;
TSORT1 = TABLE 'SORTIE'         ;
TSOR1 = TABLE 'SORTIE'          ;
TSOR2 = TABLE 'SORTIE'          ;
TSORT1.'VARIABLE'       = TSOR1 ;
TSOR1.'DEPLACEMENT'     = VRAI  ;
TSOR1.'VITESSE'         = VRAI  ;
*TSOR1.'ACCELERATION'    = VRAI  ;
TSORT1.'LIAISON_B'      = TSOR2 ;
TVAR  = TABLE 'VARIABLE'    ;
TVAR.'CHPOINT_FORCE_DE_CHOC' = VRAI ;
TSOR2.TL1               = 'FAUX'        ;
*
t_final = npdt * pdt ;

l_cal = prog 0 pas pdt t_final ;

tabdyn = table 'PASAPAS' ;
tabdyn . modele = mo_1 et mollf1 ;
tabdyn . caracteristiques = ca_1 et callf1 ;
tabdyn . chargement = cha_pes2 ;
tabdyn . vitesses = table ;
tabdyn . vitesses . 0 = vit ;
si d_pasa ;
tabdyn . dynamique = vrai ;
tabdyn . temps_sauves = l_cal ;
pasapas tabdyn ;

sinon ;
tabdyn . pas_de_temps = pdt ;
tabdyn . nombre_pas = npdt ;
tabdyn . pas_de_sortie = nins ;
tabdyn . sortie = tsort1 ;
dyne 'DE_VOGELAERE' tabdyn ;
 finsi ;



TRESU1 = DYNE 'DE_VOGELAERE' TBAST  TA  TSORT1 TINIT TLIA1 TCHARG 
             NPDT PDT NINS      ;
*
mai1 = (ce1 et sol);
LISTE1 = TRESU1.'TEMPS_DE_SORTIE';
liste2 = prog ;
 repeter bbt (dime tabdyn . temps) ;
      liste2 = liste2 et (prog tabdyn . temps . (&bbt - 1)) ;
 fin bbt ;
si (neg graph 'N') ;
        N_DEF = 10                              ;
        LISTE1 = TRESU1.'TEMPS_DE_SORTIE'       ;
        REPETER BOUC1((DIME LISTE1)/N_DEF)      ;
        TT = EXTR LISTE1 (&BOUC1*N_DEF)         ;
         mess tt tt2 ;
        DEP1 = RECO TRESU1 TBAST TT DEPL        ;
       dep2 = reco mo_1 ca_1 tabdyn tt2 depl ;
        DEF1 = DEFO MAI1 DEP1 1.                ;
       def2 = defo mai1 dep2 1. ;
      SI (&BOUC1 EGA 1) ;DEFTOT1 =DEF1; deftot2=def2;
        SINON;DEFTOT1=DEFTOT1 ET DEF1 ;
          deftot2 = deftot2 et def2 ;
        FINSI                                   ;
        FIN BOUC1                               ;
        TRAC DEFTOT1 'ANIME'    ;
        trac deftot2 'ANIME' ;

finsi;  
*
TC=((2*H)/9.81)**0.5;
NTC = ENTI(TC/PDT);
NFOIS = NPDT - NTC;
TIMP=EXTR LISTE1 (NPDT);
TLIMP=PROG TIMP;
VITESX = EVOL 'RECO' TRESU1 TBAST TLIMP 'VITE' G 'UX'; 
VITE2X = EVOL 'RECO' tabdyn mo_1 ca_1 TLIMP 'VITE' G 'UX'; 
VITESY = EVOL 'RECO' TRESU1 TBAST TLIMP 'VITE' G 'UY'; 
VITE2Y = EVOL 'RECO' tabdyn mo_1 ca_1  TLIMP 'VITE' G 'UY'; 
VITESR = EVOL 'RECO' TRESU1 TBAST TLIMP 'VITE' G 'RZ'; 
VITE2R = EVOL 'RECO' tabdyn mo_1 ca_1 TLIMP 'VITE' G 'RZ'; 
ROT = EXTR  VITESR 'ORDO';ROT2 = EXTR  VITE2R 'ORDO'; 
VIX = EXTR  VITESX 'ORDO';VIX2 = EXTR  VITE2X 'ORDO' ;
VIY = EXTR  VITESY 'ORDO';VIY2 = EXTR  VITE2Y 'ORDO' ;
ROTAVA = EXTR 1 ROT;ROTAV2 = EXTR 1 ROT2 ;
VXAVA =EXTR 1 VIX;VXAV2 =EXTR 1 VIX2; 
VYAVA =EXTR 1 VIY;VYAV2 =EXTR 1 VIY2;
*
REPETER BLOC1 NFOIS;
TIMP=EXTR LISTE1 (NPDT-&BLOC1);
TLIMP=PROG TIMP;
VITESX = EVOL 'RECO' TRESU1 TBAST TLIMP 'VITE' G 'UX'; 
VITE2X = EVOL 'RECO'  tabdyn mo_1 ca_1 TLIMP 'VITE' G 'UX'; 
VITESY = EVOL 'RECO' TRESU1 TBAST TLIMP 'VITE' G 'UY'; 
VITE2Y = EVOL 'RECO' tabdyn mo_1 ca_1 TLIMP 'VITE' G 'UY'; 
VITESR = EVOL 'RECO' TRESU1 TBAST TLIMP 'VITE' G 'RZ'; 
VITE2R = EVOL 'RECO' tabdyn mo_1 ca_1 TLIMP 'VITE' G 'RZ'; 
ROT = EXTR  VITESR 'ORDO'; ROT2 = EXTR  VITE2R 'ORDO';
VIX = EXTR  VITESX 'ORDO';VIX2 = EXTR  VITE2X 'ORDO';
VIY = EXTR  VITESY 'ORDO';VIY2 = EXTR  VITE2Y 'ORDO' ;
ROT = EXTR 1 ROT;ROT2 = EXTR 1 ROT2 ;
VIX =EXTR 1 VIX;VIX2 =EXTR 1 VIX2;
VIY =EXTR 1 VIY;VIY2 =EXTR 1 VIY2;
*mess &bloc1 rot rot2 rotava rotav2 ;
SI (ROTAVA NEG ROT) ;
OMEGA=ROTAVA;
VITX=VXAVA;
VITY=VYAVA;
OMEG2=ROTAV2;
VITX2=VXAV2;
VITY2=VYAV2;
QUIT BLOC1;
FINSI;

ROTAVA=ROT;ROTAV2 = ROT2 ;
VXAVA=VIX; VXAV2= VIX2 ;
VYAVA=VIY; VYAV2 = VIY2 ;
FIN BLOC1;
***********************
* SOLUTION ANALYTIQUE *
***********************
EPSI=0.01;
VXANA = (2*V0 - R*G0)/3;
VYANA = (2*9.81*H)**0.5;
OMEANA= ((2*V0 - R*G0)/(-3*R));
XDIF=ABS(VXANA-VITX);XDIF2=ABS(VXANA-VITX2);
YDIF=ABS(VYANA-VITY);YDIF2=ABS(VYANA-VITY2);
RDIF=ABS(OMEANA-OMEGA);RDIF2=ABS(OMEANA-OMEG2);
err2 = abs((rot2 - rot)/rot) ;
SI ((XDIF > EPSI) OU (XDIF2 > EPSI) OU (ERR2 > EPSI));
 ERREUR 5;
SINON;
 SI ((YDIF > EPSI) OU (YDIF2 > EPSI));
  ERREUR 5;
 SINON;
  SI ((RDIF > EPSI) OU (RDIF2 > EPSI)) ;
   ERREUR 5;
  SINON;
   ERREUR 0;
  FINSI;
 FINSI;
FINSI;
FIN;
 

 

© Cast3M 2003 - All rights reserved.
Disclaimer