Download pecker_t.dgibi

Back to the list

* fichier : pecker_t.dgibi
* etude propagation dans sol
* approche interaction sol structure Pecker 1973 temporel
* grandeurs numériques arbitraires !!!
*
opti dime 2 elem qua4 ;
dgraph = faux ;
* ajout de option epsilon lineaire pour la precision des test!
 OPTION epsilon lineaire;
long1 = 10000.; longma = 100. ; nl1 = long1 / longma ;
epai1 = 1000. ; epai2 = epai1 / longma ; nep1 = 10 ;

p_ori = 0. 0. ; e_i = longma 0.; e_j = 0. longma ;
p1 = p_ori moins (0. epai1) ;
p20 = p1 plus (nl1 * e_i) ;
l120 = p1 d p20 dini 100. dfin 1000. ;
v10 = l120 tran nep1 (epai2 * e_j) ;
l40 = v10 cote 4 ;
v1 = elem v10 contenant p1 ;
v2 = v10 diff v1 ;
l1 = elem l120 contenant p1 ;
l2 = l120 diff l1 ;
l4v = diff l40 (elem l40 contenant p1) ; 
l3 = v10 cote 2 ;l3p1 = changer l3 poi1 ;
**
p_fonda = long1 / 3  0. ;
p_fonda = point v10 proc p_fonda ;
v_fonda = manu poi1 p_fonda;
v1fonda = elem v10 appuye largement v_fonda ;
v2fonda = elem v10 appuye largement v1fonda ;
v2 = diff v2 v2fonda ;
l_fonda = inte (contour v2) (contour v2fonda) ;


*

tfinca = 2. ;
*
mo1 = mode v1 mecanique elastique ;
mo2 = mode v2 mecanique elastique ;
mo3 = mode l3p1 mecanique elastique impedance voigt ;
mo3 = mode l3p1 mecanique elastique impedance maxwell ;

m_fonda = mode l_fonda mecanique elastique ;

ca1 = mate mo1 youn 1.e10 nu 0.2 rho 500. ;
ca2 = mate mo2 youn 1.e10 nu 0.2 rho 500.  ;
ca3 = mate mo3 raid 1.e3 visc 1.e1  mass 0. ;


cl2 = bloq l2 uy ;

cl_fonda = rela cori depl  l_fonda ;

cl3b = bloq l3 ux ;

cv1_x = bloque v1 ux ; cv1_y = bloq v1 uy ;
evacc = evol manu t (prog 0 pas 0.01 0.1 pas 0.1 tfinca )
                  d  (prog 0 pas 0.2 1 pas -0.2 0. 19*0. ) ;
depv1_x = depi cv1_x 10. ;
chav1 = char dimp evacc depv1_x ;
*
rig_t = rigi (mo1 et mo2) (ca1 et ca2) ;
mas_t = mass (mo1 et mo2) (ca1 et ca2) ;

si faux ;
tmod = vibr (rig_t et cv1_x et cv1_y et cl2 ) mas_t 
    proc (prog 0.)  tbas;
def1 = defo tmod. modes . 1 . deformee_modale (v2 et v1)  5. vert ;
def0 = defo (v2 et v1) tmod . modes . 1 . deformee_modale 0.   ;
titre 'frequence' tmod . modes . 1 . frequence ;
trac (def0 et def1) ;
finsi ;

* rotation 
l_fond2 = l_fonda tour p_fonda 30. ;
cce2 = l_fond2 moins l_fonda ;
cche2 = changer cham cce2 l_fonda ;
pcce2 = psca cche2 cche2 (mots ux uy) (mots ux uy) ;
rcce2 = intg m_fonda pcce2 scal ;
  

t_sei = table ;
t_sei . modele = mo1 et mo2 et mo3  ;
t_sei . caracteristiques = ca1 et ca2 et ca3 ;
t_sei . blocages_mecaniques = cv1_x et cv1_y et cl2 et cl_fonda ;
t_sei . chargement = chav1 ;
t_sei . dynamique = vrai ;
t_sei . temps_calcules = prog 0. pas 0.01 0.1 pas 0.1  tfinca;
t_sei . temps_sauves = prog 0. pas 0.01 0.1 pas 0.1  tfinca ;

pasapas t_sei ;

chefo0 = manu chml m_fonda ux 1. noeud ;
r0_fonda = intg m_fonda chefo0 ux ;
abs_t = prog ; x_fonda = prog ; y_fonda = prog ;w_fonda = prog ;

l_coul = prog -2. -1.5 -1. -0.5  0. 0.3 0.7 1. 1.3 1.9 2. 2.3 2.6
 3. 3.3 3.6 ; 
repeter b_des (dime t_sei . deplacements) ;
 ind1= &b_des - 1 ;
 titre 'deplacement ux impedance a t = ' t_sei . temps . ind1 ;
  ev_l3 = evol chpo  t_sei.deplacements . ind1 ux l3 ;
  si dgraph ;
  dess ev_l3 ;
  finsi ;
 titre 'deplacement ux a t = ' t_sei . temps . ind1 ;
  chdepd2 = exco ux t_sei . deplacements . ind1 ;
  si dgraph ;
  trac (v1 et v2)  chdepd2  (contour (v1 et v2)) l_coul  ;
  finsi ;
 titre 'contraintes a t = '  t_sei . temps . ind1 ;
  si dgraph ;
  trac (mo1 et mo2 et mo3) t_sei . contraintes . ind1 ;
  finsi ;
  chdfo2 = redu t_sei . deplacements . ind1 l_fonda ;
  dfo2 = defo chdfo2 l_fonda 10. vert ;
  dfo0 = defo chdfo2 l_fonda 0. bleu ;
  chefo2 = changer cham m_fonda chdfo2 noeud ;
  rx_fonda = (intg m_fonda chefo2 ux)/r0_fonda ;
  ry_fonda = (intg m_fonda chefo2 uy)/r0_fonda ;
  titre 'deformee fondation t = '  t_sei . temps . ind1  
 ' resultante : ' rx_fonda ry_fonda ;
  si dgraph ;
  trac (dfo0 et dfo2)   ;
  finsi ;
  abs_t = abs_t et (prog t_sei . temps . ind1) ;
  x_fonda = x_fonda et (prog rx_fonda) ;
  y_fonda = y_fonda et (prog ry_fonda) ;
  pdce2 = psca chefo2 cche2 (mots ux uy) (mots ux uy) ;
  wdce2 = (intg m_fonda pcce2 scal) / rcce2 ;
  w_fonda = w_fonda et (prog wdce2) ;
fin b_des ;

*
* chargement structure avec impedance
*
opti dime 3 elem seg2 ;
* 
d_bloq = faux;


p0 = 0. 0. 0. ; e_z = 0. 0. 1. ;
q2 = 0. 1. 0. ; q1 = 0. 2. 0. ;
lig1 = d 20 q2 q1 ;


MO1= MODL LIG1 MECANIQUE ELASTIQUE POUT ;         

MATPL1=MATR MO1  YOUNG 2.E11 NU 0.3 RHO 7800;                                 
CARPL1=CARB MO1 SECT 0.1 INRY 2.08E-7 INRZ 3.33E-8                           
TORS 2.41E-7;     
MATE1=MATPL1 ET CARPL1;
***


***

RIGPL1 =RIGI MATE1 MO1 ;                                                    
MASPLA1=MASS MATE1 MO1 ;                                                    
BLOQ2=BLOQ DEPL ROTA Q2 ;
bloq1r = (bloq rota q1)  ; blq1uz = bloq q1 uz ;
blq1ux = bloq q1 ux ; blq1uy = bloq q1 uy ;  
bloq1rx = bloq q1 rx ;
*    
*---- 
*  
PR=PROG 0.4 ; n_mv = lect 4 ;
*MODPLA01=VIBR PROC PR (RIGPL1 ET BLOQ2 et bloq1r et 
*        blq1uz et blq1ux et blq1uy)  MASPLA1 ;
*modpla0 = vibr proc pr (RIGPL1 ET BLOQ2 et bloq1r et blq1uz) maspla1 ;  

tblsta = table 'LIAISONS_STATIQUES' ;
tblsta . 1 = table ; tblsta . 1 . point_liaison = q1 ;
        si d_bloq ;   tblsta . 1 . ddl_liaison = ux ;
        sinon ;  tblsta . 1 . ddl_liaison = fx ; finsi ;
tblsta . 2 = table ; tblsta . 2 . point_liaison = q1 ;
         si d_bloq ; tblsta . 2 . ddl_liaison = uy ;
         sinon ; tblsta . 2 . ddl_liaison = fy ; finsi ;

si d_bloq ;
 bliaiq1 =  bloque tblsta ; depi tblsta ;
sinon ;
 force tblsta ;
finsi ;
 si d_bloq ;
* modes vibrations
MODPLA1=VIBR PROC PR n_mv (RIGPL1 ET BLOQ2 et bloq1r et
        blq1uz et bliaiq1)  MASPLA1 tbas;
* solutions statiques
tbsta = resout (RIGPL1 ET BLOQ2 et bloq1r et bliaiq1) tblsta ;
react bliaiq1 tbsta ;
 sinon ;
* modes vibrations
MODPLA1=VIBR PROC PR n_mv (RIGPL1 ET BLOQ2  et bloq1rx et 
        blq1uz)  MASPLA1 tbas;
* solutions statiques
tbsta = resout (RIGPL1 ET BLOQ2) tblsta ;
 finsi ;

tbsta maspla1 * ;

 repeter bmod ((dime tbsta) - 1) ;
  ind1 = &bmod ;
psta1 = manu poi1  tbsta . ind1 . point_repere ;
mostai1 = mode psta1 mecanique elastique statique ;
 si d_bloq ;
castai1 = mate mostai1  defo tbsta . ind1 . deformee
                      made tbsta . ind1 . masse_deformee 
                      ride tbsta . ind1 . reaction ;
 sinon ;
castai1 = mate mostai1  defo tbsta . ind1 . deformee
                      made tbsta . ind1 . masse_deformee 
                      ride tbsta . ind1 . force ;
 finsi ;
  si (ega 1 ind1) ;
    mosta1 = mostai1 ; casta1 = castai1 ;
  sinon ;
    mosta1 = mosta1 et mostai1 ; casta1 = casta1 et castai1 ;
  finsi ;
  def1 = defo tbsta . ind1 . deformee lig1 1. vert ;
  def0 = defo tbsta . ind1 . deformee lig1 0. bleu ;
  titre ' sol statique ind = ' ind1 ;
  si dgraph ;
  trac (0. 0. 1000.) (def0 et def1) ;
  finsi ;
 fin bmod ;
masta1 = masse mosta1 casta1 ;
rista1 = rigi mosta1 casta1 ;
 
modto1 = mosta1 ; casto1 = casta1  ; tmod = modpla1 . modes ;
 
 repeter bmod ((dime modpla1 . modes) - 2) ;
  ind1 = &bmod ;
psta1 = manu poi1  tmod . ind1 . point_repere ;
momoda1 = mode psta1 mecanique elastique modal ;
camoda1 = mate momoda1 freq tmod . ind1 . frequence
                      mass tmod . ind1 . masse_generalisee
                      defo tmod . ind1 . deformee_modale ;
  si (ega 1 ind1) ;
    momod1 = momoda1 ; camod1 = camoda1 ;
  sinon ;
    momod1 = momod1 et momoda1 ; camod1 = camod1 et camoda1 ;
  finsi ;
  def1 = defo tmod . ind1 . deformee_modale lig1 1. vert ;
  def0 = defo tmod . ind1 . deformee_modale lig1 0. bleu ;
  titre ' mode propre ind = ' ind1 ;
 si dgraph ; trac (0. 0. 1000.) (def0 et def1) ; finsi ;
 fin bmod ;

 modto1 = modto1 et momod1 ; casto1 = casto1 et camod1 ;

chq2ux = manu chpo lig1 ux 1. ; chq2uy = manu chpo lig1 uy 1. ;
blq2rz = bloq q2 rz ; fblq2rz = depi blq2rz 1. ;
blq2de = bloq q2 depl ;
chq2rz = resou (rigpl1 et blq2rz et blq2de) fblq2rz;
chq2mz = react (rigpl1 et blq2rz et blq2de) chq2rz ;
  def2 = defo chq2rz lig1 1. vert ;
  titre ' mode statique rotation ' ;
 si dgraph ; trac (0. 0. 1000.) (def0 et def2) ; finsi ;

pq2ux = manu poi1 (1. 0. 0.) ;
moq2ux = modele pq2ux mecanique elastique statique ;
caq2ux = mate moq2ux defo chq2ux made (maspla1 * chq2ux)
              ride (rigpl1 * chq2ux) ;
pq2uy = manu poi1 (0. 1. 0.) ;
moq2uy = modele pq2uy mecanique elastique statique ;
caq2uy = mate moq2uy defo chq2uy made (maspla1 * chq2uy)
              ride (rigpl1 * chq2uy) ;
pq2rz = manu poi1 (0. 0. 100.) ;
moq2rz = modele pq2rz mecanique elastique statique ;
caq2rz = mate moq2rz defo chq2rz made (maspla1 * chq2rz)
              ride chq2mz ;

maq2 = manu poi1 q2;
mimq2rz = mode maq2 mecanique elastique
                     impedance maxwell pout ;
cimq2rz = mate mimq2rz raid 1.e4 cple 1.e5 visc 1.e3 mass 0. iner 0.;

mimq2 = mode pq2rz mecanique elastique statique 
          impedance maxwell ;
cimq2 = mate mimq2 raid 1.e4 visc 1.e3  mass 0. ;

tfinca = 0.1 ;
* evolution - test
evacc = evol manu t (prog 0 pas 0.01 0.1 tfinca)
                  d  (prog 0 pas 0.2 1 pas -0.2 0. 0. ) ;
* chargement en x seul, par exemple, après calcul séisme
evacc =  evol manu t abs_t d x_fonda ;

***
si vrai ;
tfinca = 0.1 ;

cq2ux = bloq q2  ux ;
dq2ux = depi cq2ux 1. ;
chaq2ux = char dimp evacc dq2ux ;

t_bul1 = table ;
t_bul1 . modele = mo1 ;
t_bul1 . caracteristiques = mate1 ;
t_bul1 . chargement = chaq2ux ;
t_bul1 . blocages_mecaniques = cq2ux ;
t_bul1 . dynamique = vrai ;
t_bul1 . temps_calcules = abs_t ;
t_bul1 . temps_sauves = abs_t;

pasapas t_bul1 ;

t_bul3 = table ;
t_bul3 . modele = mo1 et mimq2rz ;
t_bul3 . caracteristiques = mate1 et cimq2rz ;
t_bul3 . chargement = chaq2ux ;
t_bul3 . blocages_mecaniques = cq2ux ;
t_bul3 . dynamique = vrai ;
t_bul3 . temps_calcules = abs_t ;
t_bul3 . temps_sauves = abs_t ;

pasapas t_bul3 ;

 si faux ;
repeter b_des1 (dime t_bul1 . deplacements) ;
 ind1= &b_des1 - 1 ;
 titre 'deplacement ux a t = ' t_bul1 . temps . ind1 ;
 chbul1 = t_bul1 . deplacements . ind1  ;
 dfbul12 = defo chbul1 lig1 1. bleu ;
 chbul3 = t_bul3 . deplacements . ind1  ;
 dfbul13 = defo chbul3 lig1 1. rouge ;
 dfbul10 = defo chbul1 lig1 0. jaune ;
  trac (0. 0. 1000.) (dfbul10 et dfbul12 et dfbul13)  ;
fin b_des1 ;
 finsi ;

finsi ;
***
c_pq2ux = bloq pq2ux beta ;
deq2ux = depi c_pq2ux 1. ;
chq2ux = char dimp evacc deq2ux ;

***
t_bul2 = table ;
t_bul2 . modele = momod1 et moq2ux et moq2uy et moq2rz et mimq2 ;
t_bul2 . caracteristiques = camod1 et caq2ux et caq2uy et caq2rz 
              et cimq2 ;
t_bul2 . chargement = chq2ux ;
t_bul2 . blocages_mecaniques = c_pq2ux ;
t_bul2 . dynamique = vrai ;
t_bul2 . temps_calcules = abs_t ;
t_bul2 . temps_sauves = abs_t ;

pasapas t_bul2 ;

si faux ;
repeter b_des (dime t_bul2 . deplacements) ;
 ind1= &b_des - 1 ;
 titre 'deplacement ux a t = ' t_bul2 . temps . ind1 ;
 chbul2 = reco t_bul2 . deplacements . ind1 
       t_bul2 . modele t_bul2 . caracteristiques ;
 dfbul22 = defo chbul2 lig1 1. rouge ;
 dfbul0 = defo chbul2 lig1 0. bleu ;
  trac (0. 0. 1000.) (dfbul0 et dfbul22)  ;
fin b_des ;
finsi ;
***
t_bul = table ;
t_bul . modele = momod1 et moq2ux et moq2uy et moq2rz ;
t_bul . caracteristiques = camod1 et caq2ux et caq2uy et caq2rz ;
t_bul . chargement = chq2ux ;
t_bul . blocages_mecaniques = c_pq2ux ;
t_bul . dynamique = vrai ;
t_bul . temps_calcules = abs_t ;
t_bul . temps_sauves = abs_t ;

pasapas t_bul ;

repeter b_des (dime t_bul . deplacements) ;
 ind1= &b_des - 1 ;
 chbul1 = t_bul1 . deplacements . ind1  ;
 dfbul12 = defo chbul1 lig1 1. bleu ;
 chbul3 = t_bul3 . deplacements . ind1  ;
 dfbul13 = defo chbul3 lig1 1. bleu ;
 chbul2 = reco t_bul2 . deplacements . ind1 
       t_bul2 . modele t_bul2 . caracteristiques ;
 dfbul22 = defo chbul2 lig1 1. rouge ;
 chbul0 = reco t_bul . deplacements . ind1 
       t_bul . modele t_bul . caracteristiques ;
 dfbul2 = defo chbul0 lig1 1. vert ;
 dfbul0 = defo chbul2 lig1 0. jaune ;
  si dgraph;
 titre 'modal(vert)/EF(bleu) defo t = ' t_bul . temps . ind1 ;
  trac (0. 0. 1000.) (dfbul0 et dfbul12 et dfbul2)  ;
 titre 'impedance modal(rouge)/EF(bleu) - sans(vert) 
      defo  t = ' t_bul . temps . ind1 ;
  trac (0. 0. 1000.) (dfbul0 et dfbul13 et dfbul2 et dfbul22)  ;
  finsi ;
fin b_des ;
**

uxq1_1 = extr chbul1 ux q1 ;
uxq1_2 = extr chbul2 ux q1 ;
uxq1_0 = extr chbul0 ux q1 ;
uxq1_3 = extr chbul3 ux q1 ;

err1 = abs (uxq1_1 - uxq1_0); err2 = abs (uxq1_2 - uxq1_3) ;

si ((err1 > 1.e-2) ou (err2 > 1.e-2)) ;
 erre 5 ;
sinon ;
 erre 0 ;
finsi ;

fin ;
opti donn 5 ;
 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer