Download Coulomb3D.dgibi

Back to the list

* fichier : Coulomb3D.dgibi
*----------------------------------------------------------------------*
* Ce cas-test permet de tester la gestion du frottement de Coulomb par *
* PASAPAS.                                                             *
* Il calcule la mise en contact d'un lopin parallelipedique sur une    *
* surface rigide, puis sa mise en glissement partiel dans la dir. Ox.  *
* On pilote la face superieure du lopin en deplacements imposes.       *
* La convergence en glissement partiel necessite une trentaine         *
* d'iterations.                                                        *
* On ne verifie que le respect de la condition de contact et de la loi *
* de Coulomb (T <= mu*N).                                              *
* Si IG1 = VRAI, on visualise la solution, notamment les points en     *
* glissement et ceux adherents.                                        *
*----------------------------------------------------------------------*
*                                                                      *
* Si TRACes desires, mettre IG1 a VRAI :                               *
IG1      = FAUX ;
*                                                                      *
'OPTI' 'DIME' 3 'ELEM' CUB8 ;
*                                                                      *
*----------------------------------------------------------------------*
*                              MAILLAGE                                *
*----------------------------------------------------------------------*
*                                                                      *
* Maillage "Sol" :                                                     *
S1       = -10. -5. 0. ;
S2       = +10. -5. 0. ;
NLS1     = 5 ;
LS1      = S1  'DROI' NLS1 S2 ;
SOL1     = LS1 'TRAN' NLS1 (0. 20. 0.) ;
SOL1     = SOL1 'COUL' 'OLIV' ;
*                                                                      *
* Maillage "Cube" :                                                    *
C1       = -5. 0. 0.1 ;
M2       = +5. 0. 0.1 ;
NLC1     =  7 ;
LC1      = C1  'DROI' NLC1 M2 ;
SC1      = LC1 'TRAN' NLC1 (0. 10. 0.) ;
LOP1     = SC1 'VOLU' NLC1 'TRAN' (0. 0. 8.) ;
LOP1     = LOP1 'COUL' 'ORAN' ;
*                                                                      *
MTOT1    = (SOL1 'ET' LOP1) 'COUL' 'DEFA' ;
*                                                                      *
* Maillages de contact orientes :                                      *
SOL2     = 'ORIE' ('CHAN' 'TRI3' SOL1) (0. 0. +1.) ;
SCC1     = 'ORIE' ('CHAN' 'TRI3' SC1 ) (0. 0. -1.) ;
MCONT1   = ('IMPO' 'MAIL' SOL2 SCC1) 'COUL' 'ROUG' ;
*                                                                      *
* Traces :                                                             *
'SI' IG1 ;
  'TITR' 'Maillages Cube / Sol ' ;
  'TRAC' 'FACE' (LOP1 ET SOL1) ;
  'TITR' 'Maillages Cube / Sol & Maillage de contact (rouge) ' ;
  'TRAC' 'FACE' (MTOT1 ET MCONT1) ;
'FINS' ;
*                                                                      *
*----------------------------------------------------------------------*
*                      MODELES / CARACTERISTIQUES                      *
*----------------------------------------------------------------------*
*                                                                      *
MOD1     = 'MODE' LOP1 'MECANIQUE' 'ELASTIQUE' ;
MAT1     = 'MATE' MOD1 'YOUN' 1.E1 'NU' 0.3 ;
*                                                                      *
MU1      = 0.5 ;
MODF1    = 'MODE' MCONT1 'CONTACT' 'FROTTANT' 'COULOMB' ;
MATF1    = 'MATE' MODF1 'MU' MU1 ;
*                                                                      *
MOD0     = MOD1 'ET' MODF1 ;
MAT0     = MAT1 'ET' MATF1 ;
*                                                                      *
*----------------------------------------------------------------------*
*                          C.L. / CHARGEMENT                           *
*----------------------------------------------------------------------*
*                                                                      *
* Deplacements imposes :                                               *
CL1      = 'BLOQ' SOL1 'DEPL' ;
*                                                                      *
SCZ1     = (LOP1 'COOR' 3) 'POIN' 'MAXI' ;
CL2      = 'BLOQ' 'UX' SCZ1 ;
CL3      = 'BLOQ' 'UY' SCZ1 ;
CL4      = 'BLOQ' 'UZ' SCZ1 ;
*    
CL0      = CL1 'ET' CL2 'ET' CL3 'ET' CL4 ;
*                                                                      *
UX0      = +0.600 ;
UZ0      = -0.500 ;
DCL2     = 'DEPI' CL2 UX0 ;
DCL4     = 'DEPI' CL4 UZ0 ;
*                                                                      *
'SI' IG1 ;
  'TRAC' ('VECT' ('EXCO' DCL4 'FLX' 'UZ') 'DEPL' 'ROUG') ('ARET' MTOT1) 
  'TITR'
'Deplacement impose a la surface superieure du lopin : mise en contact.'
;
  'TRAC' ('VECT' ('EXCO' DCL2 'FLX' 'UX') 'DEPL' 'ROUG') ('ARET' MTOT1) 
  'TITR'
'Deplacement impose a la surface superieure du lopin : glissement.' ;
'FINS' ;
*                                                                      *
* Chargements :                                                        *
LTPS1    = 'PROG' 0. 1. 2. ;
EV1      = 'EVOL' 'MANU' 'TEMPS' LTPS1 ('PROG' 0. 1. 1.) ;
EV2      = 'EVOL' 'MANU' 'TEMPS' LTPS1 ('PROG' 0. 0. 1.) ;
CHARU1   = 'CHAR' 'DIMP' DCL4 EV1 ;
CHARU2   = 'CHAR' 'DIMP' DCL2 EV2 ;
CHAR0    = CHARU1 'ET' CHARU2 ;
*                                                                      *
*----------------------------------------------------------------------*
*                             RESOLUTION                               *
*----------------------------------------------------------------------*
*                                                                      *
* Construction de la table PASAPAS :                                   *
*                                                                      *
PREC1    = 1.E-5 ;
TAB1                         = 'TABL' ;
TAB1 . 'MODELE'              = MOD0 ;
TAB1 . 'CARACTERISTIQUES'    = MAT0 ;
TAB1 . 'BLOCAGES_MECANIQUES' = CL0 ;
TAB1 . 'CHARGEMENT'          = CHAR0 ;
TAB1 . 'TEMPS_CALCULES'      = 'PROG' 0. 1. 2. ;
TAB1 . 'PRECISION'           = PREC1 ;
*                                                                      *
* Resolution :                                                         *
*                                                                      *
TAB2     = PASAPAS TAB1 ;
*                                                                      *
*----------------------------------------------------------------------*
*                            DEPOUILLEMENT                             *
*----------------------------------------------------------------------*
*                                                                      *
IND1     = ('DIME' TAB2 . 'DEPLACEMENTS') - 1 ;
DEP1     = (TAB2 . 'DEPLACEMENTS' . IND1) 'ENLE' 'LX' ;
REA1     = TAB2 . 'REACTIONS' . IND1 ;
* Reactions sur la surface du lopin en contact :                       *
MREA1    = 'EXTR' REA1 'MAIL' ; 
SCREA1   = SC1 'ELEM' 'APPU' 'STRI' MREA1 ;
REASC1   = 'REDU' (TAB1 . REACTIONS . IND1) SCREA1 ;
*                                                                      *
*--------------------------- Visualisations ---------------------------*
'SI' IG1 ;
*                                                                      *
* Deformee :                                                           *
  DEFO0    = 'DEFO' (LOP1 'ET' SOL1) DEP1 0. 'VERT' ;
  DEFO1    = 'DEFO' (LOP1 'ET' SOL1) DEP1 1. 'ROUG' ;
  MOT1     = 'CHAI'
  'Geometrie non deformee (vert) et deformee (rouge)' ;
  'TITR' MOT1 ;
  'TRAC' 'CACH' (DEFO0 'ET' DEFO1) ;
  OEIL1    = (0. -1.E5 0.) ;
  'TRAC' 'CACH' (DEFO0 'ET' DEFO1) OEIL1 ;
*                                                                      *
* Deplacements :                                                       *
  UXF1     = 'DEFO' (LOP1 'ET' SOL1) DEP1 1. ('EXCO' DEP1 'UX' 'UX') ;
  UYF1     = 'DEFO' (LOP1 'ET' SOL1) DEP1 1. ('EXCO' DEP1 'UY' 'UY') ;
  UZF1     = 'DEFO' (LOP1 'ET' SOL1) DEP1 1. ('EXCO' DEP1 'UZ' 'UZ') ;
  'TRAC' UXF1 'TITR' 'Deplacements Ux' ;
  'TRAC' UYF1 'TITR' 'Deplacements Uy' ;
  'TRAC' UZF1 'TITR' 'Deplacements Uz' ;
*                                                                      *
* Contraintes :                                                        *
  CONF0      = 'FORM' ;
  'FORM' DEP1 ;
  SIG1       = TAB1 . 'CONTRAINTES' . IND1 ;
  'TITR' ' Contraintes dans la CONFiguration deformee ' ;
  'TRAC' SIG1 MOD1 (LOP1 ET SOL1) ;
  'FORM' CONF0 ;
*                                                                      *
* Reactions :                                                          *
  VR1      = 'VECT' REA1 'FORC' 'ROUG' ;
  OEIL1    = (1.E5 -1.E5 1.E5) ;
  'TRAC' OEIL1 VR1 ('ARET' MTOT1) 'TITR' 'Forces de reaction.' ;
'FINS' ;
*                                                                      *
* Critere de glissement (T = mu*N) :                                  *
RN1      = 'EXCO' REASC1 'FZ' ;
RX1      = 'EXCO' REASC1 'FX' ;
RY1      = 'EXCO' REASC1 'FY' ;
RT1      = ((RX1 * RX1) + (RY1 * RY1)) ** 0.5 ;
* La partie en glissement verifie mu*N-T=0 a la precision pres :       *
CGLIS1   = (MU1 * RN1 - RT1) / ('MAXI' 'ABS' RN1) ;
GLISS1   = ('ABS' CGLIS1) 'MASQ' 'INFE' PREC1 ;
*                                                                      *
'SI' IG1 ;
  'TITR' ' Parties adherentes (Bleu) / en glissement (rouge) ' ;
  'TRAC' GLISS1 SCREA1 ;
'FINS' ;
*                                                                      *
*-------------------- Verifications de la solution --------------------*
*                                                                      *
* On verifie qu'on ne tranverse pas la surface :                       *
ERR1     = ('MAXI' (SOL1 'COOR' 3))
  - ('MINI' ((LOP1 'COOR' 3) + ('EXCO' 'UZ' DEP1))) ;
'MESS' ' ****** ECART RELATIF POSITION DE CONTACT : ' ERR1 ;
*                                                                      *
* On verifie la loi de Coulomb au critere pres :                       *
ERR2     = 'ABS' ('MINI' CGLIS1) ;
ERR0     = 'MAXI' ('PROG' ERR1 ERR2) ;
*                                                                      *
'OPTI'  'ECHO' 0 ;
'SAUT' 1 'LIGN' ;
'MESS'
'---------------------- RESULTAT CAS-TEST ------------------------' ;
'MESS' ' ' ;
'MESS'
'Ecart relatif a la solution calculee sur les deplacements' ;
'MESS'
'et les contraintes :' ;
'MESS' ;
'SI' (ERR0 '<EG' PREC1) ;
  'MESS' ('CHAI' '  ==> MAXI ERREUR =' ERR0 ' < ' PREC1 ) ;
  'MESS' ' ' ;
  'MESS' '                      __________________' ;
  'MESS' '                      |                |' ;
  'MESS' '                      |  TEST REUSSI ! |' ;
  'MESS' '                      |________________|' ;
  'SAUT' 1 'LIGN' ;
'SINO' ;
  'MESS' ('CHAI' '  ==> MAXI ERREUR =' ERR0 ' > ' PREC1 ) ;
  'MESS' ' ' ;
  'MESS' '                      __________________' ;
  'MESS' '                      |                |' ;
  'MESS' '                      |     ERREUR !   |' ;
  'MESS' '                      |________________|' ;
  'SAUT' 1 'LIGN' ;
  'ERRE' 5 ;
'FINS' ;
'MESS'
'------------------------ FIN CAS-TEST ---------------------------' ;
*                                                                     *
'FIN' ;
'OPTI'  'ECHO' 1 ;


 

© Cast3M 2003 - All rights reserved.
Disclaimer