Lois de comportement pour les bétons
La liste suivante concerne les lois de comportement pour le béton.
Loi MAZARS
'MAZARS' : Modele d'endommagement scalaire pour le beton (bien adapte aux chargements monotones).
Description
La loi de comportement élastique endommageable en traction/compression selon le modèle de Mazars, corrigé pour prendre en compte de manière plus réaliste l'endommagement en cisaillement, est présentée ici [MAZARS-1984] [MAZARS-1986] [PIJAUDIER-1991].
Characteristiques et limitations principales :
Dans ce modèlela dégradation des propriétés élastiques du matériau est représentée à l'aide d'une variable scalaire \(D\) variant entre zéro (matériau sain) et l'unité (matériau totalement endommagé). Cette dernière est obtenue par la combinaison de deux variables scalaires représentant l'endommagement sous sollicitations de compression et de traction séparément ;
Cela permet de modéliser convenablement la dyssimétrie traction-compression observée expérimentalement pour les bétons. Cependant, aucune reprise de raideur lors du passage d'une sollicitation de compression à une sollicitation de traction ne peut être prise en compte, c'est-à-dire que l'effet unilatéral n'est pas modélisé ;
Compte tenu de cela, cette loi est adaptée à la simulation de la réponse du béton sous chargement monotone, mais nécessite des modifications pour une utilisation dans le cadre d'un calcul sous sollicitations cycliques et/ou dynamiques. Dans ce dernier cas, des limitations supplémentaires sont présentes (par exemple, l'impossibilité de modéliser des boucles d'hystérésis).
Anomalies observées
Compte tenu des résultats des cas tests de vérification @, l'utilisation de cette loi dans le cadre d'une modèlisation de type multi-fibre est proscrite !.
Formulation du modèle
La rélation contrainte-déformation s'écrit :
où \(\boldsymbol{\sigma}\) est le tenseur des contraintes de Cauchy, \(\boldsymbol{\varepsilon}\) est le tenseur des déformations infinitesimales, et \(\mathbb{E}\) est le tenseur d'elasticité d'ordre 4.
La variable d'endommagement evolue au cours du chargement en fonction critère d'endommagement :
où \(e\) est une mésure scalaire du tenseur de déformation et \(\kappa\) est une variable d'histoire fournissant le maximum atteint par la déformation équivalente pendant le chargement du matériau.
Selon la formulation proposée par Mazars, la déformation équivalente est définie par :
où \(\langle\boldsymbol{\varepsilon}\rangle\) est la partie positive du tenseur des déformations, \(\epsilon_{i}\) est la i-ème déformation principale, \(\langle\cdot\rangle_+\) est l'opérateur de MacAuley, et \(n\) répresente la dimension du problème consideré.
La variable d'histoire \(\kappa\) est donc définie par :
avec \(e_0\) une valeur seuil initiale et \(t\) une variable répresentant le temps (ou bien le pseudo-temps dans un calcul quasi-statique).
L’évolution de cette surface de charge doit respecter le conditions Kuhn-Tucker :
En d'autres termes, la surface de charge ne peut croître que si le seuil de déformation actuel est dépassé. Cela implique que l'endommagement ne progresse pas pendant les phases de décharge ou les phases de charge où les niveaux de déformation sont inférieurs au maximum atteint précédemment au cours de l'historique du chargement.
Pour prendre en compte la nature fortement dissymétrique du comportement en traction et en compression du béton, Mazars introduit deux fonctions \(D_t\) et \(D_c\) représentant respectivement les dégradations en traction et compression. Elles sont définies comme suit :
avec \(A_{t(c)}\) et \(B_{t(c)}\) les quatre paramètres additionnels permettant de définir, avec le seuil de première fissuration en traction \(e_0\), les lois d'évolution de l'endommagement en traction (t) et en compression (c). Le paramètre \(A_{t}\) permet de controler la contrainte résiduelle en traction uniaxiale tandis que le paramètre \(B_{t}\) controle la forme de la loi d'evolution de l'endommagement dans la phase post pic de contrainte.
La variable d'endommagement \(D\) est finalement obtenue par combinaison lineaire des variables \(D_{t}\) et \(D_{c}\) comme suit :
avec \(\alpha_{t(c)} \in [0,1]\) des facteurs de combinaison qui s'expriment en fonction des déformations principales comme suit :
avec \(\varepsilon_i^t\) les déformations associées aux contraintes principales positives. Le paramètre \(\beta\) a été introduit historiquement plus tatd dans le modèle pour éviter une évolution trop rapide de l'endommagement en cisaillement [PIJAUDIER-1991].
Réponses typiques
Critère de Mazars. (a) Surface seuil dans l'espace des contraintes. (b) Trace dans le plan \(\sigma_3=0\). Giry 2001.
Loi contrainte - déformation pour une sollicitation uniaxiale.
Quelques commentaires
Grâce à sa simplicité et sa robustesse, ce modèle a été et est encore largement utilisé pour modéliser le comportement du béton. Certaines pathologies peuvent néanmoins être citées et pour lesquelles des développements sont à considérer :
Le modèle présente une fragilité excessive dans son comportement en cisaillement, et l'introduction du paramètre \(\beta\) pour atténuer cet effet entraîne une reprise de rigidité à des niveaux de déformation élevés ;
Le modèle ne prend pas en compte l'effet unilatéral, c'est-à-dire que la refermeture des fissures expérimentalement observée entraîne une reprise de raideur. En conséquence, le modèle ne parvient pas à reproduire correctement le comportement sous chargements cycliques ;
En termes numériques, l'utilisation de l'opérateur de Mac Cauley dans l'expression des coefficients \(\alpha_{t(c)}\) entraîne une dérivée non définie de ceux-ci en zéro. Cela empêche ainsi l'utilisation de l'opérateur tangent dans le schéma de résolution. Par conséquent, seul l'opérateur sécant est utilisé, ce qui limite la vitesse de convergence du schéma de résolution ;
Le caractère isotrope de l’endommagement ne permet pas de bien suivre l’évolution des nonlinéarités pour des chargements non radiaux.
Implémentation Cast3M (esope)
@Détailler les sources de l'implémentation multi-fibre@
Dans la suite, nous détaillons les étapes du calcul en mettant l'accent sur les parties de code correspondantes aux aspects théoriques mentionnés précédemment. Pour une analyse détaillée de l'implémentation et des aspects plus strictement techniques concernant la signification des variables, veuillez vous référer aux commentaires présents dans le fichier source mazars.eso.
1C MAZARS SOURCE CHAT 05/01/13 01:38:20 5004 2 SUBROUTINE MAZARS (WRK0,WRK1,WRKK2,WRK5,NSTRS,NVARI, 3 1 NMATT,ISTEP,ICARA,JDIM,IFOUR2)
Entrées
9C WRK0 pointeur sur un segment deformation au pas precedent 10C 11C WRK1 pointeur sur un segment increment de deformation 12C 13C WRKK2 pointeur sur un segment variables internes au pas precedent 14C 15C WRK5 pointeur sur un segment de deformations inelastiques 16C 17C XMATER constantes du materiau 18C 19C NSTRS nombre de composantes dans les vecteurs des contraintes 20C et les vecteurs des deformations 21C 22C NVARI nombre de variables internes (doit etre egal a 2) 23C 24C NMATT nombre de constantes du materiau 25C 26C ISTEP flag utilise pour separer les etapes dans un calcul non local 27C ISTEP=0 -----> calcul local 28C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils 29C ISTEP=2 -----> calcul non local etape 2 on continue le calcul 30C a partir des seuils moyennes34C JDIM Dimension de travail 35C ( Coques JDIM =2 , Massifs JDIM = IDIM ) 36C IFOUR2 Type de formulation 37C ( Coques IFOUR2 = -2 => contraintes planes , 38C Massifs IFOUR2 = IFOUR)
Sorties
42C VARINF variables internes finales 43C 44C SIGMAF contraintes finales
Algorithme
Le calul de l'endommagement est réalisé par une procédure purement explicite.
On calcule la déformation totale au niveau du point d'intégration ;
On calcule le tenseur des déformations principales ;
On calcule la matrice d'élasticite et les contraintes principales ;
On calcule la déformation équivalente de Mazars :
Si le calcul est local (ISTEP = 0), la déformation principale est évaluée directement sur la base des déformations principales ;
- En cas d'un calcul non-local, l'évolution de l'endommagement est pilotée par la contrepartie non-locale de la déformation de Mazars. Celle-ci est évaluée avec deux passages dans la loi de comportement :
Lors du premier passage (ISTEP = 1), on calcule la déformation locale et on sort de la loi de comportement. La déformation non-locale est calculée via une procédure ad-hoc en dehors de la loi de comportement, par exemple, via une méthode non-locale intégrale ou bien une formulation de type gradient implicite ;
Cette déformation non-locale est une variable d'entrée de la loi de comportement (ISTEP = 2) et est utilisée pour faire évoluer l'endommagement;
On vérifie le dépassement du seuil de déformation. Si le seuil n'est pas dépassé, l'endommagement n'est pas mis à jour. Sinon, on procède comme suit.
On calcule les coéfficients \(\alpha_{t(c)} \in [0,1]\). Pour cela faire :
On calcule le signe des contraines elastiques :
198 DO 300 ISTRS=1,3 199 IF (SIGP(ISTRS).LT. XZERO) THEN 200 SIGPC(ISTRS)=SIGP(ISTRS) 201 SIGPT(ISTRS)=XZERO 202 ELSE 203 SIGPT(ISTRS)=SIGP(ISTRS) 204 SIGPC(ISTRS)=XZERO 205 END IF 206300 CONTINUE 207 TRSIGT=SIGPT(1)+SIGPT(2)+SIGPT(3) 208 TRSIGC=SIGPC(1)+SIGPC(2)+SIGPC(3)
On calcule les déformations associées aux contraintes positives \(\varepsilon_i^t\) :
212 DO 400 ISTRS=1,3 213 EPSILT(ISTRS)=(SIGPT(ISTRS)*(UN+XNU)-TRSIGT*XNU)/YOUN 214400 CONTINUE
On calcule \(\alpha_{t(c)}\) :
218 ALFAT = MAX(XZERO,EPSIPP(1))*EPSILT(1) + 219 1 MAX(XZERO,EPSIPP(2))*EPSILT(2) + 220 2 MAX(XZERO,EPSIPP(3))*EPSILT(3) 221 ALFAT = ALFAT/(EPSTIL*EPSTIL) 222 ALFAC = UN - ALFAT
On corrige les paramètres de combinaison linéaire via le coefficient \(\beta > 1\) pour amémiorer la réponse en cisaillement :
235 IF (BETA .GT. UN) THEN 236 IF ( ALFAT .GT. XPETIT ) THEN 237 ALFAT=ALFAT**BETA 238 END IF 239 IF ( ALFAC .GT. XPETIT ) THEN 240 ALFAC=ALFAC**BETA 241 END IF 242 END IF
On corrige la déformation equivalente pour améliorer la réponse en bi- ou tri-compression. Pour cela faire, on modifie \(e\) comme suit :
\[e = e \gamma \qquad \gamma = \frac{\sum_{i=1}^n \langle \sigma_i \rangle_{-}^2}{\sum_{i=1}^n \langle \sigma_i \rangle_{-}}\]avec \(\langle \cdot \rangle_{-}\) l'opérateur partie négative.
226 IF (TRSIGC.LT. -XPETIT .AND. TRSIGT.LT.XPETIT) THEN 227 GAMMA=SIGPC(1)*SIGPC(1)+SIGPC(2)*SIGPC(2)+ 228 1 SIGPC(3)*SIGPC(3) 229 GAMMA=-SQRT(GAMMA)/TRSIGC 230 EPSTIM=EPSTIM*GAMMA 231 END IF
Le calcul de la variable d'endommagement est effectué après avoir vérifié si le seuil initial a été dépassé. Cette vérification est nécessaire car il est possible que la valeur ait été multipliée par \(\gamma\) :
250 IF (EPSTIM .GT. EPSD0) THEN 251 DT=UN - EPSD0*(UN-ATRA)/EPSTIM - 252 1 ATRA*EXP(-BTRA*(EPSTIM-EPSD0)) 253 DC=UN - EPSD0*(UN-ACOM)/EPSTIM - 254 1 ACOM*EXP(-BCOM*(EPSTIM-EPSD0)) 255 ELSE 256 DT=XZERO 257 DC=XZERO 258 END IF 259 D = ALFAT*DT + ALFAC*DC
La variable d'endommagement est ensuite bornée supérieurement à 0.99999 afin d'éviter un trop mauvais conditionnement de la matrice de rigidité ;
On calcule la nouvelle contrainte et on sort de la loi de comportement ;
Les données de sortie sont la contrainte et les variables internes mises à jour.
Implémentation MFront
Une implémentation de la loi de Mazars a été réalisée sous MFront. Le code suivant détaille l'implémentation pour une utilisation avec des elements volumiques/surfaciques. La formulation implémentée est une version simplifiée de celle disponible dans Cast3M. En particulier, aucun correctif n'est pas introduit pour améliorer la réponse du modèle en cisaillement et compression bi-/tri-axiale.
1//********************************************************************** 2@DSL Default; 3@Behaviour Mazars; 4//@ModellingHypotheses{"PlaneStress"}; 5@Author Giuseppe Rastiello; 6@Date 27 / 10 / 2021; 7@Description{Original Mazars model formulation (1984) without successive 8 improvements to better account for damage in shear model and 9 bitension/bicompression}; 10 11//********************************************************************** 12//********** Material properties to be entered in Cast3M *************** 13 14@MaterialProperty stress young; 15young.setGlossaryName("YoungModulus"); //Young modulus 16@MaterialProperty real nu; 17nu.setGlossaryName("PoissonRatio"); //Poisson's ratio 18 19@MaterialProperty real Ac; //Mazars' model parameter 20@MaterialProperty real At; //Mazars' Model parameter 21@MaterialProperty real Bc; //Mazars' Model parameter 22@MaterialProperty real Bt; //Mazars' Model parameter 23@MaterialProperty real ed0; //Damage threshold (strain) 24 25//********************************************************************** 26//***************** State (internal) variables ************************* 27//********(updated during calculations and outputted)******************* 28 29@StateVariable real d; //Damage variable (scalar) 30d.setGlossaryName("Damage"); 31@StateVariable real kappa; //History variable 32@StateVariable real eeqc; //Mazars equivalent strain 33 34//********************************************************************** 35//********************** Local variables ******************************* 36 37@LocalVariable stress lambda; //Lamé’s constant 38@LocalVariable stress mu; //Lamé’s constant 39 40@InitLocalVariables{ 41 lambda = computeLambda(young,nu); 42 mu = computeMu(young,nu); 43} 44 45//********************************************************************** 46//************ Constitutive model integrator (explicit) **************** 47@Integrator { 48 49 // total strain tensor (epsilon) and trace of the strain tensor 50 const auto e = eval(eto + deto); 51 const auto tr = trace(e); 52 53 // eigenvalues of the strain tensor 54 strain e1,e2,e3; 55 e.template computeEigenValues<Stensor::FSESJACOBIEIGENSOLVER>(e1,e2,e3); 56 //without eval at line 50 computeEigenValues does not work ! 57 58 // Mazars equivalent strain 59 const real ppe1=max(strain(0),e1); 60 const real ppe2=max(strain(0),e2); 61 const real ppe3=max(strain(0),e3); 62 eeqc= sqrt(ppe1*ppe1+ppe2*ppe2+ppe3*ppe3); 63 64 const auto f = eeqc - kappa ; 65 66 if (f > 0 and eeqc > ed0) { 67 // Ver 2 68 // if (f > 0) { 69 70 //set history variable 71 kappa = eeqc ; 72 // Ver 2 73 //kappa = max(kappa,ed0) ; 74 75 // eigenvalues of the effective stress tensor 76 const stress s1 = 2*mu*e1+lambda*tr; 77 const stress s2 = 2*mu*e2+lambda*tr; 78 const stress s3 = 2*mu*e3+lambda*tr; 79 80 // strains due to the positive stresses 81 const stress pps1=max(stress(0),s1); 82 const stress pps2=max(stress(0),s2); 83 const stress pps3=max(stress(0),s3); 84 const stress trpps = pps1+pps2+pps3 ; 85 const real elt1 = (pps1*(1.+nu)-trpps*nu)/young; 86 const real elt2 = (pps2*(1.+nu)-trpps*nu)/young; 87 const real elt3 = (pps3*(1.+nu)-trpps*nu)/young; 88 89 // compute alphat and alphac 90 const real alphat = (ppe1*elt1+ppe2*elt2+ppe3*elt3)/(eeqc*eeqc) ; 91 const real alphac = 1. - alphat ; 92 93 // compute dt and dc (note: variable dt cannot be used in Mfront) 94 const real dtrac = 1. - ed0*(1-At)/kappa - At*exp(-Bt*(kappa-ed0)) ; 95 const real dcomp = 1. - ed0*(1-Ac)/kappa - Ac*exp(-Bc*(kappa-ed0)) ; 96 97 // compute damage 98 d = alphat*dtrac + alphac*dcomp; 99 d = min(0.99999,d); 100 101 } 102 // compute stress 103 sig = (1.-d)*(lambda*tr*Stensor::Id()+2*mu*e); 104} 105 106//********************************************************************** 107//************* Elastic/Secant/Tangent stiffness tensor **************** 108@TangentOperator{ 109 if(smt==ELASTIC){ 110 Dt = lambda*Stensor4::IxI()+2*mu*Stensor4::Id(); 111 } else if(smt==SECANTOPERATOR){ 112 Dt = (1.-d)*(lambda*Stensor4::IxI()+2*mu*Stensor4::Id()); 113 } else { 114 return FAILURE; 115 } 116} 117//**********************************************************************
Hypothèses de calcul et éléments finis disponibles
Cette loi est disponible pour les éléments massifs 3D et 2D sous l'hypothèse de contraintes/déformations planes (@lien vers section éléments finis?@).
De plus, elle est également applicable aux poutres multi-fibres (éléments finis de section). Dans ce dernier cas, le modèle a été implémenté dans le modèle à fibre selon sa formulation 3D complète, plutôt qu'uniaxiale.
Elle peut être utilisée avec des éléments de type coque sous l'hypothèse de contraintes planes.
Mots clefs dans l'opérateur MODE
Exemple d'utilisation de la loi Mazars pour des éléments finis de section CUB8 :
MODE maillage 'ELASTIQUE' 'ENDOMMAGEMENT' 'MAZARS' 'CUB8' ;
Exemple d'utilisation de la loi Mazars pour des éléments finis de section QUAS :
MODE mail_section 'ELASTIQUE' 'PLASTIQUE' 'MAZARS' 'QUAS' ;
Paramètres de la loi non linéaire
KTR0: seuil en déformation pour la traction, \(e_0\)
ACOM: paramètre pour la compression, \(A_c\)
BCOM: paramètre pour la compression, \(B_c\)
ATRA: paramètre pour la traction, \(A_t\)
BTRA: paramètre pour la traction, \(B_t\)
BETA: correction pour le cisaillement, \(\beta\)
Valeurs typiques
Pour un béton ordinaire, on peut choisir : - \(e_0= 10^{-4}\) - \(A_c= 10^{-4}\) - \(A_t= 10^{-4}\) - \(B_t= 10^{-4}\) - \(B_c= 10^{-4}\)
Prise en compte de la régularisation dans la définition des paramètre matériaux
Régularisation énergetique
Régularisation non-locale (quelle formulation? quelle variable est rendue non-locale?)