* 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