v7.20.102 HSNA102 - Validation des lois de séchage sur une éprouvette cylindrique en béton#
Résumé:
Ce cas test est destiné à valider le calcul du séchage du béton, développé dans l’opérateur SECH_NON_LINE . On teste ici les différentes lois de diffusion disponibles, à savoir SECH_GRANGER, SECH_MENSI, SECH_BAZANT, SECH_NAPPE et SECH_RFT. L’éventuelle dépendance à la température des modèles n’est cependant pas testée.
Il s’agit d’un cas test axisymétrique où la concentration en eau est appliquée directement sur la paroi extérieure. Les résultats sont comparés avec une résolution numérique des équations à l’aide de Scilab excepté pour SECH_RFT dont la solution de référence est donnée par un calcul avec SECH_NAPPE auquel est fournie une formule en python équivalente.
Solution de référence#
Méthode de calcul utilisée pour la solution de référence#
Les 2 solutions de référence sont obtenues par résolution de l’équation de séchage par différences finies à l’aide de Scilab. Le fichier de commande est donné en annexe pour pouvoir éventuellement tester de nouveaux modèles.
La discrétisation spatiale est la même que pour Aster à savoir des mailles de \(1\mathit{mm}\) . La discrétisation temporelle est de 3600 secondes pour l’équation de Mensi, et 60 secondes pour l’équation de Bazant.
Résultats de référence#
On s’intéresse à la concentration en eau dans l’éprouvette après 1h, 3j, 28j, 1.25 an, 3 ans et 5 ans. L’évolution des profils obtenus avec Scilab pour la loi de Mensi et la loi de Bazant est visible sur les [Figure 2.2-a] et [Figure 2.2-b].
Remarque:
La comparaison entre les solutions Scilab et Aster est visible en [§Annexe 2]: on montre les concentrations obtenues dans l’éprouvette après 1 heure et après 5 ans. On vérifie ainsi la bonne corrélation exceptée pour la solution obtenue avec Aster pour la loi de Mensi au bout d’une heure où on observe une oscillation qui fait beaucoup penser à une violation du principe du maximum observé en thermique (cf. [bib2]). Il serait donc intéressant de pouvoir utiliser les éléments lumpés lorsqu’on résout l’équation du séchage même si le phénomène est accentué ici du fait des conditions aux limites, puisqu’on impose directement la concentration en eau au lieu d’imposer un flux [bib3].
Figure 2.2-a : Solution Scilab - loi de Mensi
Figure 2.2-a .2-b : Solution Scilab - loi de Bazant
Les TEST_RESU sont réalisés pour les 6 instants caractéristiques aux abscisses \(x=\mathrm{0mm}\) , \(x=40\mathit{mm}\) et \(x=60\mathit{mm}\) .
Références bibliographiques#
GRANGER: « Comportement différé du béton dans les enceintes de centrales nucléaires » publié par le Laboratoire Central des Ponts et Chaussées (1996).
MICHEL-PONNNELLE, A. RAZAKANAIVO: «Projet I7-01-08: Qualité des Etudes en Mécaniques des Solides – Etape n°4: étude des éléments finis», Note EDF: HT‑64/02/007/A, Juin 2002
DEBRUYNE, B. CIREE: «Modélisation de la thermo-hydratation, du séchage et du retrait du béton», manuel de Référence Code_Aster , [R7.01.12] (2001).
Modélisation A#
Caractéristiques de la modélisation#
On utilise la loi de diffusion de Mensi.
Caractéristiques du maillage#
L’éprouvette est maillée à l’aide de 80 QUAD4 régulièrement répartis. Il n’y a qu’un élément dans la hauteur.
Nombre de nœuds : 162
Nombre de mailles et type : 80 QUAD4
Caractéristiques de la discrétisation temporelle#
Instant Initial ( \(s\) ) |
Instant Final ( \(s\) ) |
Nombre de pas de temps |
0 |
3600 |
10 |
3600 |
259 200 |
10 |
259 200 |
2 419 200 |
10 |
2 419 200 |
39 420 000 |
10 |
39 420 000 |
94 608 000 |
10 |
94 608 000 |
1 57 680 000 |
10 |
Grandeurs testées et résultats#
Concentration en eau au point \(x=0.0\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
2.21 10-14 |
après 3 jours |
128.80 |
128.80 |
-2.21 10-14 |
après 28 jours |
128.80 |
128.80 |
-3.67 10-5 |
après 1.25 an |
117.49 |
117.76 |
0.231 |
après 3 ans |
105.06 |
105.38 |
0.307 |
après 5 ans |
96.77 |
97.09 |
0.332 |
Concentration en eau au point \(x=0.04\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
1.31 10-13 |
après 3 jours |
128.80 |
128.80 |
-1.77 10-13 |
après 28 jours |
128.61 |
128.66 |
0.038 |
après 1.25 an |
117.74 |
112.35 |
0.543 |
après 3 ans |
99.43 |
100.06 |
0.634 |
après 5 ans |
91.39 |
91.99 |
0.661 |
Concentration en eau au point \(x=0.06\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
2.53 10-11 |
après 3 jours |
128.80 |
128.80 |
0.002 |
après 28 jours |
124.98 |
125.67 |
0.552 |
après 1.25 an |
101.32 |
102.42 |
1.089 |
après 3 ans |
89.60 |
90.64 |
1.158 |
après 5 ans |
82.33 |
83.27 |
1.140 |
Commentaires#
On vérifie ici que l’erreur commise est faible puisqu’inférieure à \(\text{1.5\%}\) , ce qui est tout à fait correct étant donné la discrétisation temporelle relativement grossière utilisée, notamment en fin de calcul.
Modélisation B#
Caractéristiques de la modélisation#
On utilise la loi de diffusion de Granger
Caractéristiques du maillage#
L’éprouvette est maillée à l’aide de 80 QUAD4 régulièrement répartis. Il n’y a qu’un élément dans la hauteur.
Nombre de nœuds : 162
Nombre de mailles et type : 80 QUAD4
Caractéristiques de la discrétisation temporelle#
Instant Initial ( \(s\) ) |
Instant Final ( \(s\) ) |
Nombre de pas de temps |
0 |
3600 |
10 |
3600 |
259 200 |
10 |
259 200 |
2 419 200 |
10 |
2 419 200 |
39 420 000 |
10 |
39 420 000 |
94 608 000 |
10 |
94 608 000 |
1 57 680 000 |
10 |
Grandeurs testées et résultats#
Concentration en eau au point \(x=0.0\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
2.21 10-14 |
après 3 jours |
128.80 |
128.80 |
-2.21 10-14 |
après 28 jours |
128.80 |
128.80 |
-3.67 10-5 |
après 1.25 an |
117.49 |
117.76 |
0.231 |
après 3 ans |
105.06 |
105.38 |
0.307 |
après 5 ans |
96.77 |
97.09 |
0.332 |
Concentration en eau au point \(x=0.04\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
1.31 10-13 |
après 3 jours |
128.80 |
128.80 |
-1.77 10-13 |
après 28 jours |
128.61 |
128.66 |
0.038 |
après 1.25 an |
117.74 |
112.35 |
0.543 |
après 3 ans |
99.43 |
100.06 |
0.634 |
après 5 ans |
91.39 |
91.99 |
0.661 |
Concentration en eau au point \(x=0.06\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
2.53 10-11 |
après 3 jours |
128.80 |
128.80 |
0.002 |
après 28 jours |
124.98 |
125.67 |
0.552 |
après 1.25 an |
101.32 |
102.42 |
1.089 |
après 3 ans |
89.60 |
90.64 |
1.158 |
après 5 ans |
82.33 |
83.27 |
1.140 |
Commentaires#
On retrouve exactement la même solution que la loi de Mensi.
Modélisation C#
Caractéristiques de la modélisation#
On utilise la loi de diffusion SECH_NAPPE, pour laquelle on rentre simplement la loi de diffusion de Mensi.
Caractéristiques du maillage#
L’éprouvette est maillée à l’aide de 80 QUAD4 régulièrement répartis. Il n’y a qu’un élément dans la hauteur.
Nombre de nœuds : 162
Nombre de mailles et type : 80 QUAD4
Caractéristiques de la discrétisation temporelle#
Instant Initial ( \(s\) ) |
Instant Final ( \(s\) ) |
Nombre de pas de temps |
0 |
3600 |
10 |
3600 |
259 200 |
10 |
259 200 |
2 419 200 |
10 |
2 419 200 |
39 420 000 |
10 |
39 420 000 |
94 608 000 |
10 |
94 608 000 |
1 57 680 000 |
10 |
Résultats de la modélisation C#
Valeurs testées#
Concentration en eau au point \(x=0.0\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
1.32 10-13 |
après 3 jours |
128.80 |
128.80 |
8.83 10-14 |
après 28 jours |
128.80 |
128.80 |
-4.35 10-5 |
après 1.25 an |
117.49 |
117.51 |
0.012 |
après 3 ans |
105.06 |
105.04 |
-0.021 |
après 5 ans |
96.77 |
96.73 |
-0.037 |
Concentration en eau au point \(x=0.04\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
1.32 10-13 |
après 3 jours |
128.80 |
128.80 |
-4.41 10-13 |
après 28 jours |
128.61 |
128.65 |
0.029 |
après 1.25 an |
117.74 |
112.11 |
0.328 |
après 3 ans |
99.43 |
99.74 |
0.318 |
après 5 ans |
91.39 |
91.68 |
0.319 |
Concentration en eau au point \(x=0.06\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
2.45 10-11 |
après 3 jours |
128.80 |
128.80 |
0.002 |
après 28 jours |
124.98 |
125.57 |
0.471 |
après 1.25 an |
101.32 |
102.18 |
0.856 |
après 3 ans |
89.60 |
90.35 |
0.843 |
après 5 ans |
82.33 |
82.99 |
0.798 |
Commentaires#
On voit ici que l’erreur est inférieure à \(\text{1\%}\) .
Modélisation D#
Caractéristiques de la modélisation#
On utilise la loi de diffusion de Bazant.
Caractéristiques du maillage#
L’éprouvette est maillée à l’aide de 80 QUAD4 régulièrement répartis. Il n’y a qu’un élément dans la hauteur.
Nombre de nœuds : 162
Nombre de mailles et type : 80 QUAD4
Caractéristiques de la discrétisation temporelle#
Instant Initial ( \(s\) ) |
Instant Final ( \(s\) ) |
Nombre de pas de temps |
0 |
3600 |
10 |
3600 |
259 200 |
20 |
259 200 |
2 419 200 |
20 |
2 419 200 |
39 420 000 |
20 |
39 420 000 |
94 608 000 |
10 |
94 608 000 |
1 57 680 000 |
10 |
Résultats de la modélisation D#
Valeurs testées#
Concentration en eau au point \(x=0.0\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
|
après 3 jours |
128.80 |
128.80 |
-3.70 10-7 |
après 28 jours |
118.42 |
118.63 |
0.175 |
après 1.25 an |
70.36 |
70.51 |
2.227 |
après 3 ans |
63.63 |
63.76 |
0.210 |
après 5 ans |
60.67 |
60.73 |
0.102 |
Concentration en eau au point \(x=0.04\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
-2.21 10-14 |
après 3 jours |
128.66 |
128.70 |
0.031 |
après 28 jours |
105.89 |
106.80 |
0.853 |
après 1.25 an |
68.25 |
68.53 |
0.415 |
après 3 ans |
62.24 |
62.40 |
0.259 |
après 5 ans |
60.06 |
60.13 |
0.119 |
Concentration en eau au point \(x=0.06\) :
Identification |
Référence |
Aster |
\(\text{\%}\) différence |
après 1 heure |
128.80 |
128.80 |
-1.18 10-11 |
après 3 jours |
120.99 |
122.47 |
1.225 |
après 28 jours |
92.11 |
93.21 |
1.192 |
après 1.25 an |
65.16 |
64.80 |
0.563 |
après 3 ans |
60.62 |
60.76 |
0.234 |
après 5 ans |
59.43 |
59.49 |
0.097 |
Commentaires#
On vérifie ici que l’erreur commise est faible puisqu’inférieure à \(\text{1.5\%}\) .
Modélisation E#
Caractéristiques de la modélisation#
Cette modélisation est la même que la modélisation A avec les éléments « lumpés » AXIS_DIAG. Les résultats sont quasiments identiques.
Modélisation F#
Caractéristiques de la modélisation#
On utilise la loi de diffusion SECH_RFT avec les paramètres matériaux suivants :
- BETON_DESORP
LEVERETT : “OUI”
PORO : 2.91
VG_PR : 9.33427661 Pa
VG_N : 0.38923339
ATH : 10.160105601
TEMP_0_C : 20°C
- SECH_RFT
PERM_IN : 1.175e-20 \(m^2\)
QSR_K : 9918.698 K
A_MIL : 2.607
B_MIL : 7.0
VG_M_P : 2.91
Référence de la modélisation#
Dans cette modélisation, on effectue deux calculs. Le premier utilise le comportement SECH_NAPPE avec une fonction python équivalente à SECH_RFT. Ce premier calcul constitue la référence pour le second. Le second calcul utilise le comportement SECH_RFT.
Caractéristiques du maillage#
L’éprouvette est maillée à l’aide de 80 QUAD4 régulièrement répartis. Il n’y a qu’un élément dans la hauteur.
Nombre de nœuds : 162
Nombre de mailles et type : 80 QUAD4
Caractéristiques de la discrétisation temporelle#
Instant Initial ( \(s\) ) |
Instant Final ( \(s\) ) |
Nombre de pas de temps |
0 |
3600 |
10 |
3600 |
259 200 |
10 |
259 200 |
2 419 200 |
10 |
2 419 200 |
39 420 000 |
10 |
39 420 000 |
94 608 000 |
10 |
94 608 000 |
1 57 680 000 |
10 |
Grandeurs testées et résultats#
Concentration en eau au point \(x=0.0\) :
Identification |
Référence |
Précision en %** |
après 1 heure |
128.80 |
1e-4 |
après 3 jours |
128.80 |
1e-4 |
après 28 jours |
128.45 |
1e-4 |
après 1.25 an |
105.11 |
1e-4 |
après 3 ans |
93.22 |
1e-4 |
après 5 ans |
86.24 |
1e-4 |
Concentration en eau au point \(x=0.04\) :
Identification |
Référence |
Précision en %** |
après 1 heure |
128.80 |
1e-4 |
après 3 jours |
128.80 |
1e-4 |
après 28 jours |
126.22 |
1e-4 |
après 1.25 an |
100.88 |
1e-4 |
après 3 ans |
89.27 |
1e-4 |
après 5 ans |
82.48 |
1e-4 |
Concentration en eau au point \(x=0.06\) :
Identification |
Référence |
Précision en %** |
après 1 heure |
128.80 |
1e-4 |
après 3 jours |
128.45 |
1e-4 |
après 28 jours |
120.00 |
1e-4 |
après 1.25 an |
93.26 |
1e-4 |
après 3 ans |
82.24 |
1e-4 |
après 5 ans |
75.90 |
1e-4 |
Commentaires#
Les résultats obtenus avec SECH_RFT sont les mêmes que ceux obtenus avec SECH_NAPPE.
Modélisation G#
Il s’agit d’une copie de la modélisation F dans laquelle le maillage est agrandi pour travailler en mm. Le paramètre PERM_IN est adapté en conséquence. On effectue 3 calculs en changeant à chaque fois l’unité de temps du problème (minutes, heures et jours). Ce test permet de valider la bonne prise en compte des mots-clés UNITE_TEMPS et UNITE_LONGUEUR de SECH_RFT. Les résultats de concentraction en eau obtenus sont à chaque fois les mêmes que ceux de la modélisation F.
Synthèse des résultats#
Pour les modélisations A à E, on obtient un écart entre la solution SCILAB et la solution Code_Aster inférieur à \(\text{1.5 \%}\) ce qui permet de valider l’implémentation des différentes lois de séchage dans le code. Notons simplement qu’on observe une violation du principe du maximum au début de la simulation avec Aster pour la loi de Mensi. Ceci peut s’expliquer (par analogie avec la thermique) par le «chochydrique» important dû à la façon d’imposer les conditions aux limites (concentration en eau imposée). Ce problème devrait pouvoir être résolu par l’utilisation des éléments lumpés de la même façon qu’en thermique.
Pour la modélisation F, on peut conclure que la loi SECH_RFT est équivalente à la loi SECH_NAPPE avec la formule python fournie.
Fichier de commande Scilab
Main.sci:
getf(“/home/xxxx/librairie.sci”) ;
// PARAMETRES DE LA SIMULATION NUMERIQUE
//
// discretisation de la largeur
x0 = 0.08 ;
x = [-0.080:0.001:+0.080] ; [n1 n2] = size(x) ;
// teneur en eau initiale
Cinit = 128.8 ;
Ci = Cinit*ones(1,n2) ;
// conditions aux limites à 50%HR
CL = [58.8 58.8] ;.
Ci(1) = CL(1) ; Ci($) = CL(2) ;
Ci_bazant = Ci ;
// pas de temps
dt = 60 ; // [s]
// coefficients de la loi de Bazant
D1 = 3.0E-10 ; //[m2/s]
a = 0.04 ;
n = 6;
TMAX = 5 ; // années
//______________________________________________________________________
//
// SIMULATION NUMERIQUE
//
j = 0 ;
u=file(“open”,”resultat_g”,”unknown”);
for annee = 0:TMAX,
annee
for jour = 0:364,
for heure = 0:23,
minute = 0 ;
for minute = 0:59,
D_bazant = diffusion_bazant(D1,a,n,Cinit,58.8,Ci_bazant,293,293*ones(Ci),4700);
Ci_bazant = linear_drying(D_bazant,Ci_bazant,CL,dt,x, »polar ») ;
if( (annee == 0 & jour == 0 & heure == 1 & minute == 0) | …
(annee == 0 & jour == 3 & heure == 0 & minute == 0) | …
(annee == 0 & jour == 28 & heure == 0 & minute == 0) | …
(annee == 1 & jour == 91 & heure == 0 & minute == 0) | …
(annee == 3 & jour == 0 & heure == 0 & minute == 0) | …
(annee == 5 & jour == 0 & heure == 0 & minute == 0) ) then,
annee, jour, heure
t=81:1:161;
for tk=t,
fprintf(u,”%6.3f %6.3f”,x(tk),Ci_bazant(tk)) ;
end,
end, // if
end, // for minute
end, // for heure
end, // for jour
end, // for annee
file(“close”,u) ;
Librairie.sci:
//
// COEFFICIENT DE DIFFUSION NON LINEAIRE POUR LES SECHAGE DU BETON
// LOI DE MENSI D(C) = a.exp(b.C)
// ACTIVATION THERMIQUE D(C,T) = D(C,T0).(T/T0).exp[-Q/R*(1/T-1/T0)]
//
// a coefficient de la loi de Mensi
// b coefficient de la loi de Mensi
// C vecteur des teneurs en eau [-]
// T0 température de référence [K]
// T vecteur des températures [K]
// Q_R Q/R (valant 4700 K)
function D = diffusion_mensi(a,b,C,T0,T,Q_R),
D = a*ones(C).*exp(b*C) ;
D = D.*(T./(T0*ones(T))) ;
D = D.*exp(Q_R*((ones(T)./T0)-(ones(T)./T))) ;
endfunction,
//
// ________________________________________________________________
//
// COEFFICIENT DE DIFFUSION NON LINEAIRE POUR LES SECHAGE DU BETON
// LOI DE BAZANT
// ACTIVATION THERMIQUE D(C,T) = D(C,T0).(T/T0).exp[-Q/R*(1/T-1/T0)]
//
// D1 coefficient de la loi de Bazant
// a coefficient de la loi de Bazant(alpha)
// n coefficient de la loi de Bazant
// C0 teneur en eau à 100%HR
// Cext teneur en eau du milieu environnant
// C vecteur des teneurs en eau [-]
// T0 température de référence [K]
// T vecteur des températures [K]
// Q_R Q/R (valant 4700 K-1)
function D = diffusion_bazant(D1,a,n,C0,Cext,C,T0,T,Q_R),
h = ones(C)-0.5*((C-C0*ones(C))/(Cext-C0))**2 ;
D = (((1-a)*ones(C)./(ones(C)+(4**n)*(ones(C)-h)**n))+a*ones(C))*D1 ;
D = D.*(T./(T0*ones(T))) ;
D = D.*exp(Q_R*((ones(T)./T0)-(ones(T)./T))) ;
endfunction,
// ________________________________________________________________
//
// DIFFUSION
// Résolution par la méthode des différences finies
//
// D vecteur des coefficients de diffusion
// Ci vecteur des teneurs en eau à l’instant j [-]
// CL condition aux limites en xmin et xmax de type Dirichlet (C=C0)
// dt pas de temps [s]
// x vecteur des abscisses [m]
// mode_ polaire/cartesien
function Cf = linear_drying(D,Ci,CL,dt,x,mode_),
[n1,n2] = size(Ci) ;
dx_ = zeros(1,n2-2) ; dx_(1:$) = (x(3:$)-x(1:$-2))*0.5 ;
// Cf_ = (D*dt*(ones(dx_)./(dx_**2)).*(Ci(3:$)-2*Ci(2:$-1)+Ci(1:$-2)))+Ci(2:$-1);
dx3 = ( ( …
(x(2:$-1)-x(1:$-2)).* …
(x(3:$ )-x(1:$-2)) …
).* …
(x(3:$)-x(2:$-1)) …
) ;
d2C_dx2 = 2*( Ci(3:$ ).*( x(2:$-1)-x(1:$-2) ) …
-Ci(2:$-1).*( x(3:$ )-x(1:$-2) ) …
+Ci(1:$-2).*( x(3:$ )-x(2:$-1) ) ) ;
d2C_dx2 = d2C_dx2./dx3 ;
if (mode_ == « polar ») then,
dC_dx = ( Ci(3:$ ).*( x(2:$-1)-x(1:$-2) )**2 …
-Ci(1:$-2).*( x(3:$ )-x(2:$-1) )**2 ) ;
// -Ci(2:$-1).*((x(2:$-1)-x(1:$-2) )**2 - (x(3:$ )-x(2:$-1))**2 )…
dD_dx = ( D(3:$ ).*( x(2:$-1)-x(1:$-2) )**2 …
D(1:$-2).*( x(3:$ )-x(2:$-1) )**2 ) ;
// - D(2:$-1).*((x(2:$-1)-x(1:$-2) )**2 - (x(3:$ )-x(2:$-1))**2 )…
dC_dx = dC_dx./dx3 ;
dD_dx = dD_dx./dx3 ;
i = find(x==0) ; [k1 k2] = size(i) ;
if(~(k1==0)) then, x(i) = x(i+1)/10, end,
// printf(« 1er ordre %s ; 2ème ordre %s »,string(min(dC_dx)),string(min(d2C_dx2)));
d2C_dx2 = d2C_dx2 + dC_dx./x(2:$-1) ;
end,
Cf_ = Ci(2:$-1)+dt*(D(2:$-1).*d2C_dx2) ;
if(mode_ == « polar ») then,
Cf_ = Cf_ +dt*(dD_dx.*dC_dx) ;
end,
Cf = zeros(1,n2) ; Cf(2:$-1) = Cf_ ; Cf(1) = CL(1) ; Cf($) = CL(2) ;
endfunction,
//
// ________________________________________________________________
//
Comparaison Aster/Scilab
A2.1 SECH_MENSI/ SECH_GRANGER/SECH_NAPPE
A2.2 SECH_BAZANT