* fichier : pakzad2.dgibi
******************************************************************
* *
* Modèle de PAKZAD: argile *
* *
* Un cube d'argile de 50 cm de cote est soumis à des *
* deplacements imposes de 2.5cm sur 3 de ses faces. *
* L'état de contraintes est volumique. *
* *
* Ce calcul est réalisé dans le domaine saturé de l'argile *
* (succion nulle) *
* *
* Ce calcul illustre l'écrouissage de la surface de *
* gonflement de l'argile *
* *
******************************************************************
opti echo 0 dime 3 elem cub8 ;
* ajout de option epsilon lineaire pour la precision des test!
OPTION epsilon lineaire;
graph0 = faux ;
elast0 = faux ;
*
* Booléen de test de la surface de gonflement
* compr0 = vrai : en charge
* compr0 = faux : en décharge
*
compr0 = vrai ;
*
* Maillage : un cube soumis à un déplacement
* isotrope
*
n1 = 1 ;
n2 = 1 ;
n3 = 1 ;
l1 = .5 ;
l2 = .5 ;
l3 = .5 ;
p1 = 0. 0. 0. ;
p2 = l1 0. 0. ;
p3 = l1 l2 0. ;
p4 = 0. l2 0. ;
d1 = d p1 n1 p2 ;
d2 = d p2 n2 p3 ;
d3 = d p3 n1 p4 ;
d4 = d p4 n2 p1 ;
sur1 = 'DALL' d1 d2 d3 d4 'PLAN' ;
mail0 = sur1 'VOLU' n3 'TRAN' ( 0. 0. l3 ) ;
*
coo1 coo2 coo3 = 'COOR' mail0 ;
*
sur1 = coo3 'POIN' 'EGSUPE' l3 ;
sur2 = coo2 'POIN' 'EGSUPE' l2 ;
sur3 = coo1 'POIN' 'EGSUPE' l1 ;
sur4 = coo1 'POIN' 'EGINFE' 0. ;
sur5 = coo2 'POIN' 'EGINFE' 0. ;
sur6 = coo3 'POIN' 'EGINFE' 0. ;
*
*mail0 = sur1 'ET' sur2 'ET' sur3 'ET' sur4 'ET'
* sur5 'ET' sur6 'ET' mail0 ;
'ELIM' mail0 1.E-5 ;
'SI' graph0 ;
'TITR' ' Maillage ' ;
'TRAC' mail0 ;
'FINSI' ;
*
* Initialisations diverses
*
'SI' compr0 ;
depm0 = -.05 ;
'SINON' ;
depm0 = .05 ;
'FINSI' ;
tfin0 = 10. ;
dt0 = tfin0 / 10. ;
EV0 = 'EVOL' 'MANU' temps ( 'PROG' 0. tfin0 ) y ( 'PROG' 0. 1. ) ;
tem0 = 'PROG' 0. 'PAS' dt0 tfin0 ;
*
* modèle et matériau
*
youn0 = 2.1E11 ;
nu0 = .3 ;
xn0 = 1. ;
xka0 = 83. ;
xga0 = 37. ;
patm0 = 1.E5 ;
xpc0 = 10.E6 ;
xm0 = 0.86 ;
xbeta0 = 18.E-2 ;
xa0 = .2E6 ;
xpref0 = 0. ;
xs0 = .5E6 ;
xm1 = .3 ;
xm2 = 1.5 ;
xm3 = 1.5 ;
xbsec0 = 14. ;
xtau0 = 0.00 ;
succ0 = 0. ;
xp1 = 6.E6 ;
*
'SI' elast0 ;
mod0 = 'MODE' mail0 'MECANIQUE' 'ELASTIQUE' ;
mat0 = 'MATE' mod0 'YOUN' youn0 'NU' nu0 ;
'SINON' ;
mod0 = 'MODE' mail0 'MECANIQUE' 'ELASTIQUE'
'PLASTIQUE' 'PAKZAD' ;
mat0 = 'MATE' mod0 'YOUN' youn0 'NU' nu0
'N' xn0 'KA' xka0 'GA' xga0 'PATM' patm0
'PC0' xpc0 'M' xm0 'BETA' xbeta0 'A0' xa0
'PREF' xpref0 'S0' xs0 'M1' xm1 'M2' xm2
'M3' xm3 'BSEC' xbsec0 'TAU' xtau0 ;
'FINSI' ;
*
*
'SI' elast0 ;
'MESS' ' Calcul élastique' ;
'SINON' ;
'MESS' ' Calcul sur le modèle argileux PAKZAD ' ;
*
* Variables internes initiales
*
q01 = 'MANU' 'CHML' mod0 'SUCC' succ0
'PDEC' xp1 'PREC' xp1
'TYPE' 'VARINTER' 'STRESSES' ;
q00 = 'ZERO' mod0 'VARINTER' ;
qq00 = q00 + q01 ;
*
* Contraintes initiales
*
p01 = 'MANU' 'CHML' mod0 'SMXX' ( -1. * xp1 ) 'SMYY' ( -1. * xp1 )
'SMZZ' ( -1. * xp1 ) 'SMXY' 0. 'SMXZ' 0. 'SMYZ' 0.
'TYPE' 'CONTRAINTES' 'STRESSES' ;
*
'FINSI' ;
*
* Conditions aux limites
*
cl1 = 'BLOQ' sur1 'UZ' ;
cl2 = 'BLOQ' sur2 'UY' ;
cl3 = 'BLOQ' sur3 'UX' ;
cl4 = 'BLOQ' sur4 'UX' ;
cl5 = 'BLOQ' sur5 'UY' ;
cl6 = 'BLOQ' sur6 'UZ' ;
cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 'ET'
cl5 'ET' cl6 ;
*
* Chargement
*
dep1 = 'DEPI' cl1 depm0 ;
dep2 = 'DEPI' cl2 depm0 ;
dep3 = 'DEPI' cl3 depm0 ;
cha1 = 'CHAR' 'DIMP' dep1 EV0 ;
cha2 = 'CHAR' 'DIMP' dep2 EV0 ;
cha3 = 'CHAR' 'DIMP' dep3 EV0 ;
cha0 = cha1 'ET' cha2 'ET' cha3 ;
*
* Appel à PASAPAS
*
ta1 = 'TABLE' ;
ta1 .'MODELE' = mod0 ;
ta1 .'CARACTERISTIQUES' = mat0 ;
ta1 .'CHARGEMENT' = cha0 ;
ta1 .'BLOCAGES_MECANIQUES' = cl0 ;
'SI' ( 'NON' elast0 ) ;
ta1 .'VARIABLES_INTERNES' = 'TABLE' ;
ta1 .'VARIABLES_INTERNES'. 0 = qq00 ;
ta1 .'CONTRAINTES' = 'TABLE' ;
ta1 .'CONTRAINTES'. 0 = p01 ;
'FINSI' ;
ta1 .'TEMPS_CALCULES' = tem0 ;
*
TMASAU=table;
ta1 . 'MES_SAUVEGARDES'=TMASAU;
TMASAU .'DEFTO'=VRAI;
TMASAU .'DEFIN'=VRAI;
PASAPAS ta1 ;
*
'SI' elast0 ;
*
* Post traitement
*
dim0 = 'DIME' ta1 .'TEMPS' - 1 ;
sigm0 = ta1 .'CONTRAINTES'. dim0 ;
depl0 = ta1 .'DEPLACEMENTS'. dim0 ;
list sigm0 ;
*
sigxx = 'EXCO' sigm0 'SMXX' 'SCAL' ;
sigyy = 'EXCO' sigm0 'SMYY' 'SCAL' ;
sigzz = 'EXCO' sigm0 'SMZZ' 'SCAL' ;
pres0 = -1. * ( sigxx + sigyy + sigzz ) / 3. ;
*
def1 = 'DEFO' mail0 depl0 1. 'ROUG' ;
def0 = 'DEFO' mail0 depl0 0. ;
*
'SI' graph0 ;
'TITR' ' Deformee ' ;
'TRAC' ( def1 'ET' def0 ) ;
'FINSI' ;
*
*
'SINON' ;
*
*
dim0 = ( 'DIME' ta1 .'TEMPS' ) - 1 ;
err0 = 1.E-3 ;
err1 = faux ;
*
xka0 = 'MAXI' ( 'EXCO' mat0 'KA' 'SCAL' ) ;
xpc0 = 'MAXI' ( 'EXCO' mat0 'PC0' 'SCAL' ) ;
xtau0 = 'MAXI' ( 'EXCO' mat0 'TAU' 'SCAL' ) ;
xbeta0 = 'MAXI' ( 'EXCO' mat0 'BETA' 'SCAL' ) ;
xpref0 = 'MAXI' ( 'EXCO' mat0 'PREF' 'SCAL' ) ;
xa0 = 'MAXI' ( 'EXCO' mat0 'A0' 'SCAL' ) ;
*
depl0 = ta1 .'DEPLACEMENTS'. dim0 ;
sigm0 = ta1 .'CONTRAINTES'. dim0 ;
var0 = ta1 .'VARIABLES_INTERNES'. dim0 ;
*
sigxx = 'EXCO' sigm0 'SMXX' 'SCAL' ;
sigyy = 'EXCO' sigm0 'SMYY' 'SCAL' ;
sigzz = 'EXCO' sigm0 'SMZZ' 'SCAL' ;
pres0 = -1. * ( sigxx + sigyy + sigzz ) / 3. ;
*
def1 = 'DEFO' depl0 mail0 1. 'ROUG' ;
def0 = 'DEFO' depl0 mail0 0. ;
'SI' graph0 ;
'TITR' ' Deformee ' ;
'TRAC' ( def1 'ET' def0 ) ;
'FINSI' ;
*
xp1 = xp1 + succ0 ;
pres1 = 'PROG' xp1 ;
lpres1 = 'PROG' ( 'LOG' xp1 ) ;
treps1 = 'PROG' 0. ;
pc1 = 'PROG' xpc0 ;
trepp1 = 'PROG' 0. ;
p_th0 = xp1 ;
pres2 = 'PROG' p_th0 ;
lpres2 = 'PROG' ( 'LOG' p_th0 ) ;
tr_th0 = 0. ;
trepp2 = 'PROG' tr_th0 ;
succ1 = 'PROG' succ0 ;
err_1 = 'PROG' 0. ;
vm1 = 'PROG' 0. ;
*
plast0 = faux ;
'REPETER' bloc0 dim0 ;
i0 = &bloc0 ;
'MESS' ' Calcul de restitution au pas ' i0 ;
*
depl0 = ta1 .'DEPLACEMENTS'. i0 ;
sigm0 = ta1 .'CONTRAINTES'. i0 ;
var0 = ta1 .'VARIABLES_INTERNES'. i0 ;
def0 = ta1 .'DEFORMATIONS_INELASTIQUES'. i0 ;
vm0 = 'VMIS' sigm0 mod0 ;
*
xka0 = 'MAXI' ( 'EXCO' mat0 'KA' 'SCAL' ) ;
xbet1 = 'MAXI' ( 'EXCO' mat0 'BETA' 'SCAL' ) ;
xpref0 = 'MAXI' ( 'EXCO' mat0 'PREF' 'SCAL' ) ;
xpc0 = 'MAXI' ( 'EXCO' mat0 'PC0' 'SCAL' ) ;
*
vm1 = vm1 'ET' ( 'PROG' ( 'MAXI' vm0 ) ) ;
*
sigxx = 'EXCO' sigm0 'SMXX' 'SCAL' ;
sigyy = 'EXCO' sigm0 'SMYY' 'SCAL' ;
sigzz = 'EXCO' sigm0 'SMZZ' 'SCAL' ;
pres0 = 'MAXI' ( -1. * ( sigxx + sigyy + sigzz ) / 3. ) ;
*
eps0 = 'EPSI' mod0 depl0 ;
epxx = 'EXCO' eps0 'EPXX' 'SCAL' ;
epyy = 'EXCO' eps0 'EPYY' 'SCAL' ;
epzz = 'EXCO' eps0 'EPZZ' 'SCAL' ;
treps0 = 'MAXI' ( -1. * ( epxx + epyy + epzz ) ) ;
treps0 = -3. * depm0 * i0 / ( dim0 * l1 ) ;
*
pc0 = 'MAXI' ( 'EXCO' var0 'VPCS' 'SCAL' ) ;
*
defxx = 'EXCO' def0 'EIXX' 'SCAL' ;
defyy = 'EXCO' def0 'EIYY' 'SCAL' ;
defzz = 'EXCO' def0 'EIZZ' 'SCAL' ;
trepp0 = 'MAXI' ( -1. * ( defxx + defyy + defzz ) ) ;
*
pres1 = pres1 'ET' ( 'PROG' pres0 ) ;
lpres1 = lpres1 'ET' ( 'PROG' ( 'LOG' pres0 ) ) ;
treps1 = treps1 'ET' ( 'PROG' treps0 ) ;
pc1 = pc1 'ET' ( 'PROG' pc0 ) ;
trepp1 = trepp1 'ET' ( 'PROG' trepp0 ) ;
*
succ0 = 'MAXI' ( 'EXCO' var0 'SUCC' 'SCAL' ) ;
succ1 = succ1 'ET' ( 'PROG' succ0 ) ;
*
*
* Solution analytique
*
xpc00 = xpc0 ;
'SI' compr0 ;
xbeta1 = xbeta0 * ( 1. + ( xpref0 / p_th0 ) ) ;
xbeta1 = xbeta1 * 2. * xpc00 / ( 3. * xp1 ) ;
treps00 = -1. / xka0 * ( 'LOG' ( ( xa0 + xa0 + xp1 ) / xp1 ) ) ;
'SINON' ;
xbeta1 = xbeta0 * ( 1. + ( xpref0 / p_th0 ) ) ;
treps00 = -1. / xka0 * ( 'LOG' ( ( xp1 - xa0 - xa0 ) / xp1 ) ) ;
'FINSI' ;
treps0 = -1. * treps0 ;
tr_th0 = -1. * tr_th0 ;
p_test0 = xp1 * ( 'EXP' ( -1. * xka0 * treps0 ) ) ;
'SI' ( ( ( 'ABS' ( p_test0 - xp1 )) / 2. ) '>' xa0 ) ;
'SI' plast0 ;
tr0 = xka0 * treps0 / ( i0 * ( xka0 + xbeta1 ) ) ;
tr_th0 = tr_th0 + tr0 ;
'SINON' ;
tr_th0 = xka0 * ( treps0 - treps00 ) / ( xka0 + xbeta1 ) ;
'FINSI' ;
p_th0 = xp1 * ( 'EXP' ( -1. * xka0 * ( treps0 - tr_th0 ) ) ) ;
plast0 = vrai ;
'SINON' ;
plast0 = faux ;
tr_th0 = 0. ;
p_th0 = p_test0 ;
'FINSI' ;
tr_th0 = -1. * tr_th0 ;
*
trepp2 = trepp2 'ET' ( 'PROG' tr_th0 ) ;
pres2 = pres2 'ET' ( 'PROG' p_th0 ) ;
lpres2 = lpres2 'ET' ( 'PROG' ( 'LOG' p_th0 ) ) ;
*
* Erreur sur les contraintes
*
err_0 = ( ( 'ABS' ( p_th0 - pres0 ) ) / pres0 ) * 100. ;
err_1 = err_1 'ET' ( 'PROG' err_0 ) ;
'SI' ( err_0 '>' err0 ) ;
err1 = vrai ;
'FINSI' ;
*
'FIN' bloc0 ;
*
* Traces
*
'SI' graph0 ;
evol1 = 'EVOL' 'MANU' 'trace' treps1 'pression' pres1 ;
evol2 = 'EVOL' 'MANU' 'trace' treps1 'VPCS' pc1 ;
evol3 = 'EVOL' 'MANU' 'trace' trepp1 'pression' pres1 ;
evol4 = 'EVOL' 'MANU' 'trace' trepp2 'pression' pres2 ;
evol31 = 'EVOL' 'MANU' 'trace' treps1 'pression' pres1 ;
evol41 = 'EVOL' 'MANU' 'trace' treps1 'pression' pres2 ;
evol32 = 'EVOL' 'MANU' 'trace' treps1 'pression' lpres1 ;
evol42 = 'EVOL' 'MANU' 'trace' treps1 'pression' lpres2 ;
evol43 = 'EVOL' 'MANU' 'trace' trepp1 'pression' lpres2 ;
evol5 = 'EVOL' 'MANU' 'trace' treps1 'succion' succ1 ;
evol6 = 'EVOL' 'MANU' 'trace' treps1 'Erreur en %' err_1 ;
evol7 = 'EVOL' 'MANU' 'trace' treps1 ' VM ' vm1 ;
TAB = 'TABLE' ;
TAB. 1 = 'MARQ PLUS ' ;
TAB. 2 = 'MARQ CROI ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'PRESSION' ;
TAB.'TITRE'. 2 = MOT 'PC' ;
'DESS' ( evol1 'ET' evol2 )
'TITR' ' Trace de la deformation, pression '
'LEGE' TAB ;
TAB = 'TABLE' ;
TAB. 1 = 'MARQ PLUS ' ;
TAB. 2 = 'MARQ CROI ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'CALCUL' ;
TAB.'TITRE'. 2 = MOT 'THEORIE' ;
'DESS' ( evol3 'ET' evol4 )
'TITR' ' Comparaison calcul-theorie '
'LEGE' TAB ;
'DESS' ( evol3 'ET' evol4 ) 'LOGY'
'TITR' ' Comparaison calcul-theorie '
'LEGE' TAB ;
TAB = 'TABLE' ;
TAB. 1 = 'MARQ PLUS ' ;
TAB. 2 = 'MARQ CROI ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'CALCUL' ;
TAB.'TITRE'. 2 = MOT 'THEORIE' ;
'DESS' ( evol31 'ET' evol41 )
'TITR' ' Comparaison calcul-theorie '
'LEGE' TAB ;
TAB = 'TABLE' ;
TAB. 1 = 'MARQ PLUS ' ;
TAB. 2 = 'MARQ CROI ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'CALCUL' ;
TAB.'TITRE'. 2 = MOT 'THEORIE' ;
'DESS' ( evol32 'ET' evol42 )
'TITR' ' Comparaison calcul-theorie ; Courbes log '
'LEGE' TAB ;
'DESS' evol43 'TITR' ' Courbes Log ' ;
TAB = 'TABLE' ;
TAB. 1 = 'MARQ PLUS ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'SUCCION' ;
'DESS' ( evol5 )
'TITR' ' Succion '
'LEGE' TAB ;
'DESS' evol6 'TITR' ' Erreur sur les contraintes en %' ;
TAB = 'TABLE' ;
TAB. 1 = 'MARQ PLUS ' ;
TAB. 2 = 'MARQ CROI ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'CALCUL' ;
TAB.'TITRE'. 2 = MOT 'THEORIE' ;
'DESS' ( evol1 'ET' evol41 ) 'LOGY' 'TITR' ' Pression - Deformation '
'LEGE' TAB ;
'DESS' evol7 'TITR' ' VM' ;
'FINSI' ;
*
*
'SI' err1 ;
'ERRE' 5 ;
'SINON' ;
'ERRE' 0 ;
'FINSI' ;
*
*
*
'FIN' ;
'FINSI' ;
*
© Cast3M 2003 - All rights reserved.
Disclaimer