Download pakzad1.dgibi

Back to the list

* fichier :  pakzad1.dgibi
******************************************************************
*                                                                *
*   Modèle de PAKZAD: argile                                     *
*                                                                *
*   Un cube d'argile de 50 cm de cote est soumis à des           *
*   deplacements imposes de 10.cm 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            * 
*   contact 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 ;  
* 
*  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  
* 
depm0 = -.1 ; 
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 = 1.E6 ;
xm0 = 0.86 ;
xbeta0 = 18. ;
xa0 = 1.E8 ;
xpref0 = 10.E6 ;
xs0 = .5E6 ;
xm1 = .3 ;
xm2 = 1.5 ;
xm3 = 1.5 ;
xbsec0 = 14. ;
xtau0 = 0.00 ;
succ0 = 0. ;
xp1 = .5E5 ; 
* 
'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 ; 
* 
  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 ; 
* 
xka0 = 'MAXI' ( 'EXCO' mat0 'KA' 'SCAL' ) ; 
xpc0 = 'MAXI' ( 'EXCO' mat0 'PC0' 'SCAL' ) ;  
xtau0 = 'MAXI' ( 'EXCO' mat0 'TAU' 'SCAL' ) ;
xbeta0 = 'MAXI' ( 'EXCO' mat0 'BETA' 'SCAL' ) ;
xbsec0 = 'MAXI' ( 'EXCO' mat0 'BSEC' '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 ; 
treps1 = 'PROG' 0. ; 
pc1 = 'PROG' xpc0 ; 
trepp1 = 'PROG' 0. ; 
pres2 = 'PROG' xp1 ; 
trepp2 = 'PROG' 0. ; 
succ1 = 'PROG' succ0 ;
err_p1 = 'PROG' 0. ; 
err_e1 = 'PROG' 0. ; 
vm1 = 'PROG' 0. ; 
err0 = 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 ; 
* 
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 ) ) ; 
* 
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 ) ; 
treps1 = treps1 'ET' ( 'PROG' treps0 ) ;  
pc1 = pc1 'ET' ( 'PROG' pc0 ) ;  
trepp1 = trepp1 'ET' ( 'PROG' trepp0 ) ; 
trepp01 = trepp0 ; 
* 
succ0 = 'MAXI' ( 'EXCO' var0 'SUCC' 'SCAL' ) ;
succ1 = succ1 'ET' ( 'PROG' succ0 ) ;
* 
vm1 = vm1 'ET' ( 'PROG' ( 'MAXI' vm0 ) ) ; 
*
* 
*  Solution analytique 
*  
treps0 = -1. * treps0 ; 
p_test0 = xp1 * ( 'EXP' ( -1. * xka0 * treps0 ) ) ; 
'SI' ( p_test0 '>' xpc0 ) ; 
  trepp0 = ( xka0 * treps0 ) - ( 'LOG' ( xp1 / xpc0 ) ) ; 
  trepp0 = trepp0 / ( xka0 + xbeta0 ) ;  
  p_th0 = xp1 * ( 'EXP' ( -1. * xka0 * ( treps0 - trepp0 ) ) ) ; 
'SINON' ;  
  trepp0 = 0. ; 
  p_th0 = p_test0 ; 
'FINSI' ; 
trepp0 = -1. * trepp0 ; 
* 
trepp2 = trepp2 'ET' ( 'PROG' trepp0 ) ; 
pres2 = pres2 'ET' ( 'PROG' p_th0 )  ; 
* 
*  Erreur 
*  
err_p0 = 'ABS' ( ( p_th0 - pres0 ) / pres0 ) ;  
err_p0 = err_p0 * 100. ;  
err_p1 = err_p1 'ET' ( 'PROG' err_p0 ) ;  
* 
'SI' ( trepp0 '>' 1.E-6 ) ; 
  err_e0 = 'ABS' ( ( trepp0 - trepp01 ) / trepp0 ) ; 
  err_e0 = err_e0 * 100. ; 
'SINON' ; 
  err_e0 = 0. ; 
'FINSI' ; 
err_e1 = err_e1 'ET' ( 'PROG' err_e0 ) ; 
*  
'SI' ( ( err_e0 '>' 1.E-3 ) 'OU' ( err_p0 '>' 1.E-3 ) ) ; 
  err0 = 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 ; 
evol5 = 'EVOL' 'MANU' 'trace' treps1 'succion' succ1 ;
evol6 = 'EVOL' 'MANU' 'trace' treps1 'erreur' err_p1 ; 
evol7 = 'EVOL' 'MANU' 'trace' treps1 'erreur' err_e1 ; 
evol8 = '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 = 'CALCUL' ;
TAB.'TITRE'. 2 = 'THEORIE' ;
'DESS' ( evol3 'ET' evol4 ) 'LOGY' 
'TITR' ' Comparaison calcul-theorie '
'LEGE' TAB ; 
TAB = 'TABLE' ;
TAB. 1 = 'MARQ PLUS ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'SUCCION' ;
'DESS' ( evol5 )
'TITR' ' Succion '
'LEGE' TAB ; 
TAB = 'TABLE' ;
TAB. 1 = 'MARQ PLUS ' ;
TAB. 2 = 'MARQ CROI ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'PRESSION' ;
TAB.'TITRE'. 2 = MOT 'DEFORMATION' ;
'DESS' ( evol6 'ET' evol7 )
'TITR' ' Erreurs en pourcentage '
'LEGE' TAB ; 
'DESS' evol8 'TITR' ' VM' ; 
'FINSI' ; 
*  
'SI' err0 ; 
  'ERRE' 5 ; 
'SINON' ; 
  'ERRE' 0 ; 
'FINSI' ; 
* 
'FINSI' ; 
* 
'FIN' ; 
 

 

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer