Download dy_devo8.dgibi

Back to the list

* fichier :  dy_devo8.dgibi
*        Test Dy_devo8.dgibi: Jeux de donn�es         *
*        ------------------------------------         *
*                                                     *
d_pasa = vrai ;
OPTION ECHO 0                   ;
OPTION ELEM SEG2 DIME 3         ;
*********************************
*       PROBL�ME                *
*   Test de Comparaison entre   *
* les liaisons                  *
* point_cercle_mobile et        *
* point_ligne .                 *
*                               *
*   Impact d'une but�e          *
*  sur un cercle mobile .       *
*                               *
*********************************
OC = 0. 0. 0.                   ;
A = 0.04 0. 0.                  ;
B = 0. 0.04 0.                  ;
N = 0. 0. 1.                    ;
C1 = CERC 100 B OC A            ;
C2 = C1 TOUR -90. OC N          ;
C3 = C1 ET C2                   ;
C4 = C3 TOUR -180. OC N         ;
C5 = C3 ET C4                   ;
OB = 0.01 0.038 0.              ;
CE1 = ELIM C5 0.0001            ;
PCEX = 0 0 0                    ;
PCEY = 0 0 0                    ;
PCEZ = 0 0 0                    ;
PBX = 0 0 0                     ;
PBY = 0 0 0                     ;
PCX = 0 0 0                     ;
PCY = 0 0 0                     ;
N1 = 0. 0. 1.                   ;
OEIL = 1. 1. 50.                ;
*********************************
*       BASE MODALE             *
*********************************
MAI1 = (CE1 ET OB)                      ;
CHPCE1 = 
 MANU CHPO 6 (CE1 ET OC) 'UX' 1.0 'UY' 0.0 'UZ' 0.0
                         'RX' 0.0 'RY' 0.0 'RZ' 0.0   ;
CHPCE2 = 
 MANU CHPO 6 (CE1 ET OC) 'UX' 0.0 'UY' 1.0 'UZ' 0.0
                         'RX' 0.0 'RY' 0.0 'RZ' 0.0   ;
CHPCE3 = 
 MANU CHPO 6 (CE1 ET OC) 'UX' 0.0 'UY' 0.0 'UZ' 0.0
                         'RX' 0.0 'RY' 0.0 'RZ' 1.0   ;
CHPOB1  = MANU CHPO 6 OB 'UX' 1.0 'UY' 0.0 'UZ' 0.0
                         'RX' 0.0 'RY' 0.0 'RZ' 0.0   ;
CHPOB2  = MANU CHPO 6 OB 'UX' 0.0 'UY' 1.0 'UZ' 0.0
                         'RX' 0.0 'RY' 0.0 'RZ' 0.0   ;
CHPOC1  = MANU CHPO 6 OC 'UX' 1.0 'UY' 0.0 'UZ' 0.0
                         'RX' 0.0 'RY' 0.0 'RZ' 0.0   ;
CHPOC2  = MANU CHPO 6 OC 'UX' 0.0 'UY' 1.0 'UZ' 0.0
                         'RX' 0.0 'RY' 0.0 'RZ' 0.0   ;
* POINT LIGNE_FROTTEMENT
Z=0 0 0;
TBAS1 = TABLE 'BASE_MODALE'                           ;
TBAS1 . 'MODES' = TABLE 'BASE_DE_MODES'               ;
TBAS1 . 'MODES'. 'MAILLAGE' = CE1 ;
TBAS1 . 'MODES'. 1 = TABLE 'MODE'                     ;
TBAS1 . 'MODES'. 1 . 'POINT_REPERE'     =  PCEX       ;
TBAS1 . 'MODES'. 1 . 'FREQUENCE'                =  0.0;
TBAS1 . 'MODES'. 1 . 'MASSE_GENERALISEE'        =  40.;
TBAS1 . 'MODES'. 1 . 'DEFORMEE_MODALE'  = CHPCE1      ;
TBAS1 . 'MODES'. 1 .numero_mode = 1 ;
mai1 = manu poi1 pcex ;
mo_mod1 = modele mai1  mecanique elastique modal ;
ca_mod1 = mate mo_mod1 freq 0.0 mass 40. defo chpce1 ;
TBAS1 . 'MODES'. 2 = TABLE 'MODE'                     ;
TBAS1 . 'MODES'. 2 . 'POINT_REPERE'     =  PCEY       ;
TBAS1 . 'MODES'. 2 . 'FREQUENCE'                =  0.0;
TBAS1 . 'MODES'. 2 . 'MASSE_GENERALISEE'        =  40.;
TBAS1 . 'MODES'. 2 . 'DEFORMEE_MODALE'  = CHPCE2      ;
TBAS1 . 'MODES'. 2 .numero_mode = 2 ;
mai2 = manu poi1 pcey ;
mo_mod2 = modele mai2  mecanique elastique modal ;
ca_mod2 = mate mo_mod2 freq 0.0 mass 40. defo chpce2 ;


TBAS2 = TABLE 'BASE_MODALE'                           ;
TBAS2 . 'MODES' = TABLE 'BASE_DE_MODES'               ;
TBAS2 . 'MODES'. 'MAILLAGE' = (OB et Z);              ;
TBAS2 . 'MODES'. 1 = TABLE 'MODE'                     ;
TBAS2 . 'MODES'. 1 . 'POINT_REPERE'     =  PBX        ;
TBAS2 . 'MODES'. 1 . 'FREQUENCE'                =  0.0;
TBAS2 . 'MODES'. 1 . 'MASSE_GENERALISEE'        =  40.;
TBAS2 . 'MODES'. 1 . 'DEFORMEE_MODALE'  = CHPOB1      ;
TBAS2 . 'MODES'. 1 .numero_mode = 1 ;
mai11 = manu poi1 pbx ;
mo_mod11 = modele mai11  mecanique elastique modal ;
ca_mod11 = mate mo_mod11 freq 0.0 mass 40. defo CHPOB1 ;
TBAS2 . 'MODES'. 2 = TABLE 'MODE'                     ;
TBAS2 . 'MODES'. 2 . 'POINT_REPERE'     =  PBY        ;
TBAS2 . 'MODES'. 2 . 'FREQUENCE'                =  0.0;
TBAS2 . 'MODES'. 2 . 'MASSE_GENERALISEE'        =  40.;
TBAS2 . 'MODES'. 2 . 'DEFORMEE_MODALE'  = CHPOB2      ;
TBAS2 . 'MODES'. 2 .numero_mode = 2 ;
mai12 = manu poi1 pby ;
mo_mod12 = modele mai12  mecanique elastique modal ;
ca_mod12 = mate mo_mod12 freq 0.0 mass 40. defo CHPOB2  ;
TBAST1 = TABLE 'ENSEMBLE_DE_BASES';
TBAST1.1=TBAS1;
TBAST1.2=TBAS2;
mo_1 = mo_mod1 et mo_mod2 et mo_mod11 et mo_mod12 ;
ca_1 = ca_mod1 et ca_mod2 et ca_mod11 et ca_mod12 ;
* POINT CERCLE_FROTTEMENT
MAI2 = OC ET OB                 ;       
TBAS3 = TABLE 'BASE_MODALE'                            ;
TBAS3 . 'MODES' = TABLE 'BASE_DE_MODES'                ;
TBAS3 . 'MODES'. 'MAILLAGE' = (OC et z);
TBAS3 . 'MODES'. 1 = TABLE 'MODE'                      ;
TBAS3 . 'MODES'. 1 . 'POINT_REPERE'     =  PCX         ;
TBAS3 . 'MODES'. 1 . 'FREQUENCE'                =  0.0 ;
TBAS3 . 'MODES'. 1 . 'MASSE_GENERALISEE'        =  40. ;
TBAS3 . 'MODES'. 1 . 'DEFORMEE_MODALE'  = CHPOC1       ;
TBAS3 . 'MODES'. 1 .numero_mode = 1 ;
mai21 = manu poi1 pcx ;
mo_mod21 = modele mai21  mecanique elastique modal ;
ca_mod21 = mate mo_mod21 freq 0.0 mass 40. defo CHPOC1 ;
TBAS3 . 'MODES'. 2 = TABLE 'MODE'                      ;
TBAS3 . 'MODES'. 2 . 'POINT_REPERE'     =  PCY         ;
TBAS3 . 'MODES'. 2 . 'FREQUENCE'                =  0.0 ;
TBAS3 . 'MODES'. 2 . 'MASSE_GENERALISEE'        =  40. ;
TBAS3 . 'MODES'. 2 . 'DEFORMEE_MODALE'  = CHPOC2       ;
TBAS3 . 'MODES'. 2 .numero_mode = 2 ;
mai22 = manu poi1 pcy ;
mo_mod22 = modele mai22  mecanique elastique modal ;
ca_mod22 = mate mo_mod22 freq 0.0 mass 40. defo CHPOC2 ;
TBAST2 = TABLE 'ENSEMBLE_DE_BASES';
TBAST2.1 = TBAS3;
TBAST2.2 =TBAS2;
mo_2 = mo_mod21 et mo_mod22 et mo_mod11 et mo_mod12 ;
ca_2 = ca_mod21 et ca_mod22 et ca_mod11 et ca_mod12 ;
*****************************************
*               CHARGEMENT              *
*****************************************
*****************************************
*               TEMPS                   *
*****************************************
PDT = 2.5E-5 ;
NPDT = 400;
NINS = 1;
*********************************
*       CONDITIONS INITIALES    *
*********************************
U0 = 5.                         ;
V0 = 10.                        ;
TINIT = TABLE 'INITIAL'         ;
TINIT.'VITESSE'= 
         (MANU CHPO PBX 1 alfa U0 'NATURE' 'DIFFUS') ET
         (MANU CHPO PBY 1 alfa V0 'NATURE' 'DIFFUS');

*********************************
*   LIAISON LIGNE_LIGNE         *
*       FROTTEMENT              *
*********************************
TLIA1 = TABLE 'LIAISON'         ;
TLB1 = TABLE 'LIAISON_B'                ;
TLIA1 .'LIAISON_B' = TLB1               ;
*
CHRA=MANU 'CHPO' 1 OB 'RAIN' 100000000.;
CHAM=MANU 'CHPO' 1 OB 'AMON' 63245.5;
*
TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
TL1.'TYPE_LIAISON'= MOT 'LIGNE_LIGNE_FROTTEMENT';
TL1.'LIGNE_MAITRE'              =  CE1          ;
TL1.'LIGNE_ESCLAVE'             =  OB           ;
TL1.'COEFFICIENT_GLISSEMENT'    = 20.0          ;
TL1.'COEFFICIENT_ADHERENCE'     = 20.0          ;
TL1.'RAIDEUR_TANGENTIELLE'      = -100. ;
TL1.'RAIDEURS'                  = CHRA;
TL1.'AMORTISSEMENT_TANGENTIEL'  = 0.01  ;
*TL1.'AMORTISSEMENTS'           =CHAM;
TL1.'NORMALE'                   = N1;
*TL1.'SYMETRIE'                  = 'GLOBALE';
TLB1.1 = TL1                    ;
 mallf1 = manu poi1 (0. 0. 0.) ;
 mollf1 = modele mallf1 liaison ligne_ligne frottement ;
 callf1 = mate mollf1 lima ce1 lies OB glis 20. adhe 20. rtan -100. 
          raid CHRA atan 1.e-2 norm n1 ; 
*********************************
*   LIAISON POINT_CERCLE        *
*       FROTTEMENT              *
*********************************
TLIA2 = TABLE 'LIAISON'         ;
TLB2 = TABLE 'LIAISON_B'                ;
TLIA2 .'LIAISON_B' = TLB2               ;
*
TL2 = TABLE 'LIAISON_ELEMENTAIRE' ;
TL2.'TYPE_LIAISON'= MOT 'POINT_CERCLE_MOBILE';
TL2.'POINT'                     =  OB           ;
TL2.'CERCLE'                    =  OC           ;
TL2.'COEFFICIENT_GLISSEMENT'    = 20.0          ;
TL2.'COEFFICIENT_ADHERENCE'     = 20.0          ;
TL2.'RAIDEUR_TANGENTIELLE'      = -100. ;
TL2.'RAIDEUR'                   = 100000000.    ;
TL2.'AMORTISSEMENT_TANGENTIEL'  = 0.01  ;
*TL2.'AMORTISSEMENT'            =63245.5        ;
TL2.'NORMALE'                   = N1            ;
TL2.'RAYON'                     = 0.04          ;
TLB2.1 = TL2                    ;
 mapcm2 = manu poi1 OB ;
 mopcm2 = modele mapcm2 liaison point_cercle mobile ;
 capcm2 = mate mopcm2 pcercle OC glis 20. adhe 20. rtan -100. 
          raid 100000000. atan 1.e-2 norm n1 rayon 0.04 ; 
*********************************
*       SORTIES                 *
*********************************
TSORT1 = TABLE 'SORTIE'         ;
TSORT2 = TABLE 'SORTIE'         ;
TSOR1 = TABLE 'SORTIE'          ;
TSORT1.'VARIABLE'       = TSOR1 ;
TSORT2.'VARIABLE'       = TSOR1 ;
TSOR1.'DEPLACEMENT'     = VRAI  ;
TSOR1.'VITESSE'         = FAUX  ;

TSOR2 = TABLE 'SORTIE'          ;
TSORT1.'LIAISON_B'      = TSOR2 ;
TSOR2.TL1               = FAUX  ;
TSOR3 = TABLE 'SORTIE'          ;
TSORT2.'LIAISON_B'      = TSOR3 ;
TSOR3.TL2               = FAUX  ;
*********************************
*   OPERATEUR DYNE              *
*********************************

tabdyn1 = table 'PASAPAS' ;
tabdyn1 . sortie = tsor1 ;
tabdyn1 . modele = mo_1 et mollf1 ;
tabdyn1 . caracteristiques = ca_1 et callf1 ;
tabdyn1 . pas_de_temps = pdt ;
tabdyn1 . nombre_pas = npdt ;
tabdyn1 . pas_de_sortie = nins ;
tabdyn1 . vitesses = table ;
tabdyn1 . vitesses . 0  =
   (MANU CHPO PBX 1 alfa U0 'NATURE' 'DIFFUS') ET
         (MANU CHPO PBY 1 alfa V0 'NATURE' 'DIFFUS');

dyne 'DIFFERENCES_CENTREES' tabdyn1 ; 

tabdyn2 = table 'PASAPAS' ;
tabdyn2 . modele = mo_2 et mopcm2 ;
tabdyn2 . caracteristiques = ca_2 et capcm2 ;
tabdyn2 . vitesses = table ;
tabdyn2 . vitesses . 0  =
   (MANU CHPO PBX 1 alfa U0 'NATURE' 'DIFFUS') ET
         (MANU CHPO PBY 1 alfa V0 'NATURE' 'DIFFUS');
si d_pasa; 
 tabdyn2 . dynamique = vrai ;
 tabdyn2 . temps_calcules = prog 0. pas pdt (npdt*pdt) ;
 tabdyn2 . precision = 1.e-6 ;
 tabdyn2 . precflex = 1.e-6 ;
 pasapas tabdyn2 ;
sinon ;
tabdyn2 . sortie = tsor1 ;
tabdyn2 . pas_de_temps = pdt ;
tabdyn2 . nombre_pas = npdt ;
tabdyn2 . pas_de_sortie = nins ;

dyne 'DIFFERENCES_CENTREES' tabdyn2 ; 
finsi ;

TRESU11 = DYNE  'DIFFERENCES_CENTREES' TBAST1  TSORT1 
          TLIA1 TINIT NPDT PDT NINS   ;
*TRESU2 =  DYNE  'DE_VOGELAERE' TBAST2  TSORT2 
TRESU2 =  DYNE  'DIFFERENCES_CENTREES' TBAST2  TSORT2 
          TLIA2 TINIT NPDT PDT NINS   ;


*
EV5 = EVOL rouge 'RECO' TRESU11 TBAST1 'DEPL' OB 'UX';
EV6 = EVOL rouge 'RECO' TRESU11 TBAST1 'DEPL' OB 'UY';
ev15 = EVOL rouge 'RECO' tabdyn1 mo_1 ca_1 'DEPL' OB 'UX';
ev16 = EVOL rouge 'RECO' tabdyn1 mo_1 ca_1 'DEPL' OB 'UY' ;
EV7 = EVOL 'RECO' TRESU2 TBAST2 'DEPL' OB 'UX';
EV8 = EVOL 'RECO' TRESU2 TBAST2 'DEPL' OB 'UY';
 o_8 = extr ev8 ordo ;
 z8 = extr o_8 (dime o_8) ;
si d_pasa ;
  a_t = prog 0.; o_27 = prog 0.; o_28 = prog 0.;
 repeter b_p ((dime tabdyn2 . temps) - 1) ;
 a_t = a_t et (prog tabdyn2 . temps . &b_p) ;
 chu_1 = reco tabdyn2 . deplacements . &b_p mo_2 ca_2 ;
 o_27 = o_27 et (prog  ('EXTR' chu_1 'UX' OB )) ;
 o_28 = o_28 et (prog  ('EXTR' chu_1 'UY' OB )) ;

 fin b_p ;
 ev27 = evol vert manu a_t o_27 ;
 ev28 = evol vert manu a_t o_28 ;
 zz8 = extr o_28 (dime o_28) ;

sinon ;
ev27 =  EVOL 'RECO' tabdyn2 mo_2 ca_2 'DEPL' OB 'UX';
ev28 =  EVOL 'RECO' tabdyn2 mo_2 ca_2 'DEPL' OB 'UY';
finsi ;
*dess (ev5 et ev7) ; dess (ev6 et ev8) ;
*dess (ev5 et ev15 et ev7 et ev27) ;
*dess (ev6 et ev16 et ev8 et ev28) ; 
*dess (ev8 et ev28) ; 
* valeurs avril 2012
z8_0 = 1.04964E-02 ;  zz8_0 = 1.32027E-02 ;
  errz8 = abs((z8 - z8_0)/z8_0) ;
  errzz8 = abs((zz8 - zz8_0)/zz8_0) ;
 si ((errz8 > 1.e-2) et (errzz8 > 1.e-2)) ;
   erre 5 ;
 sinon ;
   erre 0 ;
 finsi ;
TX1 =EXTR EV5 'ORDO';TX11 =EXTR EV15 'ORDO';
TX2 =EXTR EV7 'ORDO';TX12 =EXTR EV27 'ORDO';
TY1 =EXTR EV6 'ORDO';TY11 =EXTR EV16 'ORDO';
TY2 =EXTR EV8 'ORDO';TY12 =EXTR EV28 'ORDO';
NFOIS= dime tresu11.temps_de_sortie;
max_x = 0.;max1_x = 0.;
max_y = 0.;max1_y = 0.;
*
*recherche des maximums
REPETER BLOC1 NFOIS;
x1 = EXTR TX1 (&BLOC1);x11 = EXTR TX11 (&BLOC1);
x2 = EXTR TX2 (&BLOC1);x12 = EXTR TX12 (&BLOC1);
y1 = EXTR TY1 (&BLOC1);y11 = EXTR TY11 (&BLOC1);
y2 = EXTR TY2 (&BLOC1);y12 = EXTR TY12 (&BLOC1);
ecart_x = ABS(x1 - x2);ecart1_x = ABS(x11 - x12);
ecart_y = ABS(y1 - y2);ecart1_y = ABS(y11 - y12);
SI (ecart_x > max_x);
max_x = ecart_x;
FINSI; 
SI (ecart1_x > max1_x);
max1_x = ecart1_x;
FINSI; 
SI (ecart_y > max_y);
max_y = ecart_y;
FINSI; 
SI (ecart1_y > max1_y);
max1_y = ecart1_y;
FINSI; 
FIN BLOC1;

* validation par rapport aux resultats numeriques 
*             d'une certaine version


SI ((max_x > 0.0018) ou (max1_x > 0.005)) ;
 ERREUR 5;
SINON;
 SI ((max_y > 0.0012) ou (max1_y > 0.004));
  ERREUR 5;
 SINON;
* ERREUR 0;
 FINSI;
FINSI;
FIN;
 

 

 

 

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer