* 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