WikiPrépaLivrets

CCINP Modélisation PC 2025Sujet, corrigé et rapport du jury

2,4(9 votes)
  • Équilibres acido-basiques en solution
  • Produit de solubilité
  • Méthode de Newton et résolution numérique
  • Équations de diffusion et discrétisation
  • Réactions d'oxydoréduction
  • Diagramme de Pourbaix
  • Programmation scientifique en Python (numpy)

Téléchargements

Présentation du sujet

Difficulté moyenne
Carbonatation du béton : acidification, diffusion du dioxyde de carbone et oxydation des armatures métalliques
Afficher ou masquer la section

Le sujet étudie la carbonatation du béton armé en trois parties progressives : le calcul du pH de la solution interstitielle par équilibres chimiques et méthode de Newton, la modélisation et la résolution numérique de la propagation du front de carbonatation, puis l'oxydation des armatures métalliques à l'aide de réactions d'oxydoréduction, d'un diagramme de Pourbaix et d'un traitement d'image.

  1. 1Partie I : acidification du milieuDissolution du dioxyde de carbone, équilibres chimiques en solution, calcul du pH et résolution numérique par la méthode de Newton pour déterminer la concentration en ions hydroxyde.
  2. 2Partie II : propagation du front de carbonatationModélisation de la diffusion du dioxyde de carbone par une équation de transport, discrétisation et résolution numérique en Python.
  3. 3Partie III : oxydation des armaturesÉtude des réactions d'oxydoréduction des armatures métalliques, du diagramme de Pourbaix, et traitement d'image pour visualiser l'état de corrosion.

Difficulté moyenne. De nombreuses questions ont été bien abordées dans l'ensemble, mais le rapport relève des difficultés transversales persistantes (justifications absentes, applications numériques fautives, erreurs de programmation) et plusieurs questions, notamment en fin de partie III, mal ou rarement traitées.

L'épreuve en chiffres

Moyenne 11,16 / 20 · écart-type 3,53 · 4 303 présents · où vous situez-vous ?
Afficher ou masquer la section
Moyenne
11,16/ 20
Écart-type
3,53
Présents
4 303
Coefficient
7
Durée
4 h
moyenne 11,1605101520
Deux tiers des copies environ (moyenne ± écart-type)

Votre note sur 20 à ce sujet, en conditions de concours.

Source : document officiel du concours, épreuve du 9 mai 2025. Notes publiées par le concours (après harmonisation le cas échéant). Courbe : estimation par une loi normale.

Ce qu'a observé le jury

6 erreurs relevées
Milieu réactionnel mal identifié · Méthode de Newton mal initialisée · Tableaux numpy mal manipulés
Afficher ou masquer la section

Les correcteurs relèvent un manque général de rigueur dans les justifications, des erreurs fréquentes en Python malgré un guidage explicite, et une rédaction souvent négligée sur le fond comme sur la forme. Ces défauts limitent la valorisation des raisonnements corrects et pénalisent parfois injustement des copies prometteuses.

Les erreurs les plus sanctionnées

  1. 1
    Milieu réactionnel mal identifiéQ5

    De nombreuses erreurs viennent d'une confusion entre milieu acide et milieu basique, ce qui a des conséquences sur les questions suivantes.

    « De nombreuses erreurs proviennent d’une mauvaise interprétation du milieu réactionnel (acide au lieu de basique), impactant les questions »
  2. 2
    Méthode de Newton mal initialiséeQ16

    L'initialisation de la méthode de Newton et sa condition d'arrêt sont souvent mal traitées.

    « Souvent mal traitée, notamment en ce qui concerne l’initialisation de la méthode de Newton et la condition d’arrêt. »
  3. 3
    Tableaux numpy mal manipulésQ26

    Des erreurs récurrentes apparaissent dans l'utilisation de np.zeros, avec des inversions entre lignes et colonnes.

    « Des erreurs récurrentes dans l’utilisation de np.zeros, avec des inversions de lignes et »
  4. 4
    Développements limités mal maîtrisésQ29-Q30

    Les développements limités demandés sont souvent faux ou incomplètement justifiés, deux questions de suite.

    « Question 29. Les développements limités sont souvent faux ou »
  5. 5
    Confusion entre expressions géométriques prochesQ41

    Une confusion fréquente apparaît entre la différence des rayons au carré et le carré de la différence des rayons.

    « Confusion fréquente entre la différence des rayons au carré et le carré de la différence des rayons. »
  6. 6
    Fonction range en Python mal compriseQ42

    Cette question a été mal traitée dans l'ensemble, peu de candidats comprenant les arguments de la fonction range.

    « Cette question a été mal traitée dans l’ensemble ; peu de candidats comprennent les arguments de range. »

Ce qui a été bien réussi

  • Les quatre premières questions de la partie I ont été bien abordées dans l'ensemble.
  • Le diagramme de Pourbaix demandé en partie III est souvent correctement tracé.
  • Lorsque la dernière question du sujet est traitée, elle a souvent donné lieu à des propositions correctes de programme.

Conseils du jury

  • Présenter une expression littérale complète avant tout calcul numérique, en explicitant les valeurs et les conversions d'unités utilisées.
  • Vérifier systématiquement l'homogénéité des expressions, au niveau des unités comme des dimensions vectorielles ou scalaires.
  • Utiliser un stylo noir, encadrer les résultats, sauter des lignes entre les questions et numéroter les copies de façon cohérente.
  • Soigner la syntaxe Python (indentation, appel correct des fonctions, gestion des indices dans les tableaux).

Synthèse rédigée par WikiPrépa à partir du rapport officiel du jury (à télécharger en PDF). Les citations sont extraites du rapport.

Ces sujets peuvent vous intéresser

Lecture du sujet en ligne

L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.
Afficher ou masquer la section

ÉPREUVE MUTUALISÉE AVEC E3A-POLYTECH ÉPREUVE SPÉCIFIQUE - FILIÈRE PC

MODÉLISATION DE SYSTÈMES PHYSIQUES OU CHIMIQUES
Durée : 4 heures

Abstract

N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être une erreur d'énoncé, il le signalera sur sa copie et devra poursuivre sa composition en expliquant les raisons des initiatives qu'il a été amené à prendre.

\section*{RAPPEL DES CONSIGNES} - Utiliser uniquement un stylo noir ou bleu foncé non effaçable pour la rédaction de votre composition ; d'autres couleurs, excepté le vert, bleu clair ou turquoise, peuvent être utilisées, mais exclusivement pour les schémas et la mise en évidence des résultats. - Ne pas utiliser de correcteur. - Écrire le mot FIN à la fin de votre composition.

Les calculatrices sont interdites.

Le sujet est composé de trois parties indépendantes et de deux annexes.
Sujet : page 2 à page 13
Annexes : page 14 à page 16

Impact de la carbonatation d'un béton sur son intégrité structurelle

Source : M. Thiery, Modélisation de la carbonatation atmosphérique des matériaux cimentaires : prise en compte des effets cinétiques et des modifications microstructurales et hydriques, 2005

Introduction - Contextualisation de l'étude

L'ancrage d'un bâtiment dans le sol est fondamental afin d'assurer son intégrité structurelle (figure 1a). Cette fonction est assurée à la fois par les fondations et les murs de soubassement qui garantissent la stabilité du bâtiment et par la dalle qui relie les fondations entre elles et sert ensuite de base rigide permettant de soutenir les murs. Une structure métallique, appelée treillis, intégrée à la dalle permet une amélioration de ses performances mécaniques en compression et d'en assurer la cohésion.
Figure 1 - Exemple de dalle d'une terrasse (a) et exemple d'un béton carbonaté (b)
Il existe de nombreux modes de défaillance d'une dalle de béton tels que la fissuration liée à une déformation excessive et la granulation du substrat de la dalle induit par un non-respect des proportions de sable, gravier et ciment.
Dans ce sujet, nous nous intéresserons à l'une des dégradations les plus courantes: la carbonatation du béton. Le dioxyde de carbone présent dans l'air se dissout dans le béton. Ce phénomène induit une oxydation de l'armature métallique dont le volume varie. Il en résulte alors un écaillage du béton mettant à nu la structure métallique. Des observations similaires à la figure 1b sont caractéristiques de cette dégradation.
Dans le but d'étudier ce phénomène, le sujet sera divisé en trois parties indépendantes :
  • la partie I visera à déterminer la valeur du pH à la suite de la dissolution du dioxyde de carbone de l'air dans le béton;
  • la partie II abordera la diffusion du CO_2 dans le béton;
  • la partie III traitera de l'oxydation de la structure métallique et de son impact sur le risque d'écaillement du béton.
On supposera les bibliothèques numpy et matplotlib chargées. L'annexe 1 présente des fonctions usuelles de Python. Les commentaires suffisants à la compréhension du programme devront être apportés et des noms de variables explicites devront être utilisés lorsque ceux-ci ne sont pas imposés.

Partie I - Acidification du milieu

Cette première partie aborde la dissolution du dioxyde de carbone de l'air ambiant dans le béton. Pour ce faire, l'étude sera divisée en deux sous parties. Tout d'abord, la dissolution du CO_2 dans la solution dite interstitielle sera caractérisée afin d'estimer le risque de carbonatation du béton. La réaction de cette solution avec la portlandite, principe actif du ciment, sera ensuite étudiée afin de déterminer la valeur du pH de la solution.

I. 1 - Risque de carbonatation à l'air ambiant

Dans la suite de ce sujet, la carbonatation d'une dalle en béton armé de 20 cm d'épaisseur (figure 2) sera analysée et décrite. Le béton étant un milieu poreux, de l'eau prend place dans les pores et dans les interstices du béton. Cette eau sera désignée par liquide interstitiel dans la suite du sujet. On supposera que le géotextile sur lequel repose la dalle empêche tout échange d'énergie ou de matière avec le support de la dalle ou du géotextile (figure 2).
Dans cette sous-partie, la réaction de la dalle avec l'air ambiant, de température T_(air) = 25^∘C et de pression p_(air) = 1 bar, est étudiée. La table 1 rappelle la composition de l'air et indique la fraction molaire de chaque composé. La concentration standard et la pression standard valent respectivement c^0 = 1 mol ⋅ L^(− 1) et p^0 = 1 bar.
Composant CO_2 O_2 N_2 Autres gaz
Fraction molaire en
phase gazeuse
0, 04% 21% 78% 0, 96%
Table 1 - Composition de l'air
Figure 2 - Schématisation du problème
Q1. Exprimer la pression partielle en dioxyde de carbone p_(CO_2) en fonction de sa fraction molaire dans l'air x_(CO_2) et de la pression atmosphérique p_(air).
Q2. Donner l'équation de dissolution du CO_(2(g)) dans l'eau en CO_(2(aq)). On note K_d la constante de cette équation. En déduire une relation entre la concentration en CO_(2(aq)), notée [CO_(2(aq))], la pression partielle p_(CO_2), K_d, p^0 et c^0.
La loi de Henry stipule : « À température constante et à saturation, la pression partielle dans la phase vapeur d'un soluté volatile est proportionnelle à la concentration molaire de ce corps dans la solution liquide ».
Q3. a. Donner l'équation d'hydratation du dioxyde de carbone dissous CO_(2(aq)) en acide carbonique H_2 CO_(3(aq)). On note K_(hyd) la constante de cette équation.
b. En déduire une relation entre la concentration en acide carbonique notée [H_2 CO_(3(aq))], K_(hyd) et [CO_(2(aq))].
c. Exprimer la constante de Henry H telle que [H_2 CO_(3(aq))] = Hp_(CO_2) en fonction de K_(hyd), K_d, p^0 et de c^0.
Q4. En déduire l'expression de [H_2 CO_(3(aq))] en fonction de x_(CO_2), p_(air) et de H.
Q5. Rappeler les équations des réactions acide-base permettant la formation du CO_3^(2 −) (aq) à partir du diacide H_2 CO_(3(aq)) en milieu basique.
Q6. Donner les expressions des constantes d'équilibre K_1 et K_2 associées respectivement à la réaction ayant le H_2 CO_(3(aq)) comme réactif et la réaction ayant le CO_3^(2 −)_((aq)) comme produit.
Q7. Donner le tracé du diagramme de prédominance du diacide H_2 CO_(3(aq)) en fonction du pH. On donne pK_(a1) = 6, 4 et pK_(a2) = 10, 3.
Q8. Rappeler l'équation d'autoprotolyse de l'eau et donner l'expression de sa constante d'équilibre K_E.
Le ciment est un composé minéral dérivant de la chaux vive obtenu par la calcination du calcaire. L'hydratation de l'oxyde de calcium permet la synthèse du principe actif du ciment : I'hydroxyde de calcium solide, également nommé portlandite et de formule chimique Ca(OH)_2.
Q9. Donner l'équation de réaction de dissolution de la portlandite Ca(OH)_(2(s)). En déduire l'expression du produit de solubilité de cette réaction, noté K_p.
Q10. Les ions calcium ainsi libérés dans la réaction précédente précipitent avec les ions carbonates CO_3^(2 −)_((aq)) pour former du carbonate de calcium CaCO_(3(s)). Donner l'équation de précipitation du carbonate de calcium CaCO_(3(s)). Donner l'expression du produit de solubilité du carbonate de calcium CaCO_(3(s)), noté K_c.
Q11. Déduire des Q6, Q9 et Q10 une expression de la concentration en H_2 CO_(3(aq)) en fonction de K_1, K_2, K_c et de K_p. On donne logK_1 = 7, 6, logK_2 = 3, 7, logK_p = − 5 et logK_c = − 8, 4. Donner la valeur de l'application numérique.
Il y aura risque de carbonatation si x_(CO_2)≪0, 04%. On donne H = 4 ⋅ 10^(− 2) mol ⋅ L^(− 1) ⋅ bar ^(− 1).
Q12. En déduire la valeur de x_(CO_2). Y a-t-il risque de carbonatation à l'air ambiant? Pourquoi?

1.2 - Calcul du pH dans la solution interstitielle

Dans cette sous-partie, le pH de la solution interstitielle sera déterminé. On rappelle la condition d'électroneutralité dans la solution interstitielle:
[H_3 O^+] + 2[Ca^(2 +)] = [HCO_3^−] + 2[CO_3^(2 −)] + [OH^−]
Q13. En utilisant les expressions des différentes constantes d'équilibre et l'équation (1), montrer que la concentration en OH^−est régie par l'équation (2).
f([OH^−]) = (2K_p)/([OH^−]^2) + (K_E)/([OH^−]) − (2K_c)/(K_p)[OH^−]^2 − (K_c)/(K_2 K_p)[OH^−] − [OH^−] = 0
La résolution de cette équation étant difficile analytiquement, il est nécessaire de développer un code Python pour en proposer une solution. Ce code proposera la solution de l'équation (2) par la méthode de Newton, dont l'annexe 2 rappelle les grandes lignes. On supposera que les différentes constantes ont déjà été définies dans le code principal.
Q14. a. Donner en justifiant l'intervalle des valeurs de x considéré usuellement de la fonction f. Proposer une valeur initiale pour l'algorithme de Newton.
b. Proposer alors une instruction définissant la variable pH_depart. Proposer une instruction permettant de calculer à partir de pH_depart, la variable OH_depart qui sera utilisée comme point de départ pour la méthode de Newton.
Q15. a. Proposer une fonction Fonction (x) renvoyant l'image de x par la fonction f définie par l'équation (2).
b. Déterminer l'expression de f^′, dérivée de la fonction f.
c. Proposer une fonction Derive ( x ) prenant en argument une variable x et renvoyant l'image de x par la fonction dérivée f^′.
Q16. Proposer la fonction Newton ( g, dg, Pt, Er) prenant en arguments une fonction g, sa dérivée dg , un point de départ Pt et une précision Er , définie auparavant. Cette fonction renvoie la solution de l'équation (2) par la méthode de Newton.
Q17. Proposer une instruction appelant les fonctions définies aux Q15 et Q16 et renvoyant la grandeur OH_S ∘ l, solution de l'équation (2).
On trouve OH _Sol = 10^(∗∗)(− 1.6).
Q18. Déterminer le pH de la solution interstitielle. En déduire l'espèce prédominante pour le diacide H_2 CO_3.

Partie II - Propagation du front de carbonatation

La première partie a permis de montrer l'importance du rôle du dioxyde de carbone dans la carbonatation. Autrement dit, sans CO_2, il ne peut pas y avoir de carbonatation et donc de modification du pH. Toutefois, ce gaz n'est pas naturellement présent dans le béton. La dissolution du CO_2 dans le liquide interstitiel explique la carbonatation à cœur. L'objet de cette partie sera de quantifier la propagation du CO_2 dans le béton afin de vérifier que le béton carbonate aux environs de l'armature métallique du béton.

II. 1 - Mise en équation du problème

Une dalle de béton exposée à l'air libre à une extrémité repose sur un géotextile interdisant tout échange de particules ou d'énergie avec le sol. Au vu des dimensions de la dalle, le problème sera supposé comme plan. Ainsi la schématisation de la figure 3 est adoptée.
Le béton est considéré comme homogène. Les hypothèses suivantes seront retenues:
  • la carbonatation n'a pas d'impact sur la densité du béton ni sur sa microstructure ;
  • le taux de CO_2 dans l'air ne varie pas au cours du temps;
  • le béton est à l'équilibre hygrométrique avec l'humidité relative ambiante.
Le CO_(2(g)) de l'atmosphère pénètre sous forme gazeuse dans le milieu poreux qu'est le béton, se dissout dans la solution interstitielle des pores de la matrice cimentaire et réagit sur certains composés du béton pour former des carbonates de calcium, comme nous l'avons vu dans la partie précédente. La formation du carbonate de calcium peut ainsi colmater partiellement les pores. On note :
  • Φ : la porosité, nombre entre 0 et 1 qui correspond à la fraction volumique non occupée par le matériau ;
  • S : le taux de saturation des pores, nombre entre 0 et 1 qui correspond à la fraction volumique des cavités remplies de solution interstitielle.
On admettra que la fraction de CO_(2(g)) est Φ(1 − S).
Figure 3 - Schématisation du problème
Q19. En appliquant la première loi de Fick dans le cas unidirectionnel, relier le vecteur densité de flux molaire à travers la zone d'échange du CO_(2(g)), noté CO_2^(→−), à la concentration en CO_(2(g)), notée [CO_(2(g))], et au coefficient de diffusion, noté D_(CO_2).
La réaction de carbonatation peut être modélisée par le mécanisme réactionnel simplifié suivant :
CO_(2(g)) + H_2 O_((l)), → H_2 CO_(3(aq)); Ca(OH)_(2(s)) + H_2 CO_(3(aq)), → CaCO_(3(s)) + 2H_2 O_((l))
La première transformation (3) représente la dissolution et l'hydratation du dioxyde de carbone gazeux dans le liquide interstitiel. On supposera que cette dernière est totale dans la limite de saturation S. La seconde réaction (4), décrivant la réaction de la portlandite avec le liquide interstitiel, est également totale.
On note N_C la concentration en élément carbone. Le bilan de conservation de la matière écrite pour l'élément carbone C donne l'équation suivante :
N_C = Φ(1 − S)[CO_(2(g))] + ΦS[H_2 CO_(3(aq))] + N_(CaCO_(3(s)))
où N_(CaCO_(3(s))) représente la concentration en CaCO_(3(s)).
Q20. Interpréter chacun des termes de l'équation (5).
La première réaction (3) est supposée d'ordre apparent 1 par rapport au CO_(2(g)) tandis que la seconde réaction (4) est d'ordre apparent 1 par rapport au H_2 CO_(3(aq)). Les constantes cinétiques apparentes sont notées k_1 et k_2, et vérifient k_1≪k_2. La concentration initiale en CO_(2(g)) est notée c_0.
Q21. Exprimer la vitesse de formation de CO_2 de la réaction (3) en fonction de [CO_(2(g))] d'une part et en fonction de [CO_(2(g))] et de k_1 d'autre part. Résoudre l'équation ainsi obtenue pour obtenir une expression de [CO_(2(g))] en fonction du temps.
Q22. Exprimer la vitesse de formation de H_2 CO_3 en fonction de [H_2 CO_(3(aq))] d'une part, puis en fonction de [H_2 CO_(3(aq))], [CO_(2(g))], k_1 et k_2 d'autre part. Montrer que l'expression de l'équation (6) est solution de l'équation de la vitesse de formation.
y(t) = (c_0 k_1)/(k_2 − k_1)(e^(− k_1 t) − e^(− k_2 t))
Q23. En déduire que l'on peut écrire [H_2 CO_(3(aq))] = α[CO_(2(g))] après un intervalle de temps à préciser. Donner l'expression de la constante α en fonction de k_1 et de k_2.
Q24. Exprimer la vitesse d'apparition de CaCO_3 d'une part uniquement en fonction de N_(CaCO_3) et d'autre part en fonction de [H_2 CO_(3(aq))] et k_2.
Q25. Comme le coefficient de diffusion du CO_(2(g)) en phase gazeuse est supérieur à celui des espèces en phase liquide, on suppose que l'élément carbone se transporte uniquement dans la phase gazeuse par diffusion.
a. En appliquant l'équation de diffusion dans le cas unidirectionnel, relier (∂N_C)/(∂t) à D_(CO_2) et [CO_(2(g))].
b. À l'aide des Q23, Q24 et Q25a, montrer que la relation (5) se met sous la forme de l'équation de transport suivante :
Φ(1 − S + αS)(∂[CO_(2(g))])/(∂t) + k_2 α[CO_(2(g))] = D_(CO_2)(∂^2[CO_(2(g))])/(∂x^2)

II. 2 - Résolution numérique de l'équation de transport

L'objet de cette sous-partie est de déterminer l'instant à partir duquel la valeur de la concentration devient supérieure au seuil défini à la Q12 de la sous-partie I.2. À cette fin, la méthode d'Euler sera mise en place pour intégrer l'équation (7) afin de déterminer l'évolution de concentration en CO_2(g) au cours du temps en intégrant l'équation (9) de la Q32. Le script Python (figure 4) sera ainsi exploité. Ce dernier se compose de plusieurs sections :
  • la première section définit les grandeurs fixes du problème ;
  • la deuxième section initialise les listes résultats;
  • la troisième section permet de déterminer l'évolution en fonction du temps de la concentration;
  • la quatrième section permet de vérifier si la valeur minimale de la concentration est supérieure à la valeur seuil et renvoie la valeur de la profondeur le cas échéant;
  • La cinquième section est destinée à la visualisation de ces résultats.
Le temps sera discrétisé en N_T points espacés d'un incrément temporel dt tandis que l'espace sera discrétisé en N_x points espacés d'un incrément spatial dx. On discrétisera l'équation (7) par la méthode des différences finies afin d'obtenir la relation de récurrence qui sera donnée par l'équation (9). On notera c(x, t) la concentration en dioxyde de carbone, [CO_(2(g))], à un instant t et à une profondeur x (figure 3). La concentration surfacique en CO_(2(g)) sera notée CO . À l'instant initial, la concentration sera supposée nulle sauf en surface où elle vaut C0.
import numpy as np
import matplotlib.pyplot as plt
#Section 1 : Définition des données
N_x = 50
N_T = 1000
T_max = 100
L_max = 20
k2 = 3*10**(-7)
S = 0.5
Phi = 10**(-3)
Alpha = 3*10**(-2)
D_CO2 = 10**(-3.4)
CO = 2.5*10**(-3)
#Section 2 : Initialisation des résultats
#Instruction 1
for i in range(N_T):
    #Instruction }\overline{2
#Section 3: Implantation de la méthode d'Euler
#Instruction 3.a
#Instruction 3.b
#Instruction 4
for i in range(0, N_T-1):
    for j in range( }\overline{1},N\_x-1\mathrm{ ):
        #Instruction 5
#Section 4 : Application du seuil
def C_seuil(C, Vseuil):
    Res = #Instruction 6.a
    for i in range(#Instruction 6.b) :
        for j in range(#Instruction 6.c):
            if #Instruction 6.d:
                #Instruction 6.e
                break
    return Res
#Section 5 : Visualisation des résultats
LT, Front = #Instruction 7.a
#Instruction 7.b
#Instruction 7.c
#Instruction 7.d
#Instruction 7.e
plt.show()
Figure 4 - Script Python permettant de déterminer l'évolution de la concentration
Q26. Compléter l'Instruction 1 permettant d'initialiser le tableau C_CO2. Cette variable aura N_x colonnes et N_T lignes et sera remplie de zéros.
Q27. Donner la condition initiale et les conditions aux limites du problème. Les implémenter dans le code à l'aide des Instructions 2.
Q28. En utilisant la durée d'intégration T _max et l'épaisseur de la chape L_max, compléter les Instructions 3.a et 3.b définissant les incréments spatial dx et temporel dt du problème.
On rappelle la formule de Taylor Young donnant le développement limité à l'ordre 2 d'une fonction f en fonction de ses dérivées :
f(x) = f(a) + f^′(a)(x − a) + (f^(′′)(a))/2(x − a)^2 + o((x − a)^2)
Q29. À l'aide de la formule de Taylor Young, exprimer :
a. c(x, t + dt) au premier ordre par rapport à t;
b. c (x + dx, t) au second ordre par rapport à x;
c. c(x − dx, t) au second ordre par rapport à x.
Q30. À l'aide de la question précédente, exprimer :
a. (∂c(x, t))/(∂t) en fonction de c(x, t + dt), c(x, t) et de dt;
b. (∂^2 c(x, t))/(∂x^2) en fonction de c(x + dx, t), c(x − dx, t), c(x, t) et de dx.
On associe à c(x, t) la discrétisation suivante : c_(i, j) = c(x_j, t_i) avec x_j = jdx et t_i = idt, i et j étant des entiers.
Q31. En déduire les expressions des discrétisations associées à :
a. (∂c(x, t))/(∂t),
b. (∂^2 c(x, t))/(∂x^2).
Q32. a. En déduire l'expression discrétisée de l'équation (7) que l'on mettra sous la forme de l'équation (9).
On précisera les expressions de A, B, C et D.
Ac_(i + 1, j) = Bc_(i, j) + Cc_(i, j − 1) + Dc_(i, j + 1)
b. Compléter l'Instruction 4 permettant de définir ces variables.
Q33. Compléter l'Instruction 5 permettant de renseigner les différentes valeurs des concentrations au cours du temps et dans l'espace dans le tableau C_CO2.
La concentration en CO_(2(g)) limite avant carbonatation vaut Vseuil. L'objectif de la section 4 sera de déterminer la profondeur à partir de laquelle la concentration en CO_2 devient inférieure à cette valeur. Ainsi, la fonction C_seuil (C_CO2, Vseuil) prendra en arguments le tableau de concentration dans l'espace et dans le temps, et la valeur du seuil. Elle renverra le tableau de la profondeur du front de carbonatation correspondant à chaque valeur du temps. Si la valeur seuil n'est pas atteinte, alors il sera supposé que la profondeur associée soit 0 .
Q34. Compléter les instructions 6 permettant de définir cette fonction. L'instruction 6.a initialisera le tableau à une dimension des résultats Res. L'instruction 6.b permettra le parcours des lignes. L'instruction 6.c induira le parcours des différentes profondeurs de la dalle. L’instruction 6.d permettra de comparer la valeur de la profondeur associée au seuil. L’instruction 6.e stockera le résultat dans le tableau Res.
L'exécution du code a permis d'obtenir la figure 5.
Figure 5 - Évolution de la profondeur du front de carbonatation au cours du temps
Q35. En déduire l'instant à partir duquel il y a risque de carbonatation aux alentours de l'armature métallique sachant que l'armature se trouve à 15 cm de profondeur.
Q36. Compléter les Instructions 7 de la figure 4 afin d'obtenir les résultats de la figure 5 :
a. l'Instruction 7.a permet de remplir le tableau des temps noté LT qui varie de 0 à 100 jours en N_T échantillon et de remplir le tableau Front qui correspond à la profondeur à partir de laquelle il y a carbonatation pour un seuil Vseuil = 4 ⋅ 10^(− 4) mol ⋅ L^(− 1);
b. l'Instruction 7.b permet de tracer le front en fonction du temps en rouge continu;
c. l'Instruction 7.c génère le titre de l'axe des abscisses;
d. l'Instruction 7.d génère le titre de l'axe des ordonnées;
e. l'Instruction 7.e nomme le graphique «Profondeur de carbonatation».

Partie III - Oxydation des armatures

La première partie du sujet a permis de montrer que la carbonatation diminuait la valeur du pH du milieu. La deuxième partie a permis de montrer que la carbonatation pouvait avoir lieu aux environs de l'armature métallique. Dans cette dernière partie, nous étudierons l'oxydation de ces armatures.
Dans un premier temps, l'oxydation du fer et son impact sur le volume occupé par son oxyde seront étudiés. Dans un second temps, la vitesse de variation de volume sera validée expérimentalement.

III. 1 - Oxydation de l'armature

Le sujet d'étude de cette sous-partie est l'oxydation de l'armature métallique par la solution interstitielle dont le pH a été déterminé dans la partie I . Le problème peut être modélisé par la figure 6. Les hypothèses suivantes sont formulées:
  • le liquide interstitiel est assimilé à une solution aqueuse basique ;
  • le liquide interstitiel entoure entièrement et uniformément les armatures;
  • l'armature est uniquement composée de fer pur Fe ;
  • la réaction de carbonatation est totale.
La corrosion de l'acier dans le béton est un phénomène électrochimique. La solution interstitielle du béton constitue l'électrolyte (milieu basique aéré) et l'armature est le siège à la fois d'une oxydation et d'une réduction.
Figure 6 - Modélisation du problème
La corrosion peut être décrite comme suit :
  • oxydation anodique du fer solide en Fe^(2 +)_((aq)),
  • réduction cathodique de l'oxygène en ions hydroxides,
  • formation du précipité d'hydroxyde de fer Fe(OH)_(2(s)) à la surface de l'acier.
Q37. Écrire les demis-équations d'oxydation et de réduction et la réaction de formation du précipité.
L'hydroxyde de fer (II) qui se forme n'est pas stable en solution aqueuse aérée : en présence d'oxygène, il peut selon le pH donner d'autres formes. On étudie figure 7 le diagramme de Pourbaix du fer.
Figure 7 - Diagramme de Pourbaix du fer
Q38. Tracer le diagramme de Pourbaix sur votre copie et positionner dessus les espèces chimiques suivantes : Fe, Fe^(2 +), Fe^(3 +), Fe(OH)_2 et Fe(OH)_3.
Un béton sain aura un pH avoisinant les 13 tandis que le potentiel de l'armature sera situé entre − 0, 2 et 0, 3 V. Un béton carbonaté aura lui un pH proche de 9 et le potentiel électrique de l'armature sera proche de − 0, 5 V.
Q39. Donner l'état du fer dans un béton sain et dans un béton carbonaté.
Le fer pur a une masse volumique ρ_1 et l'hydroxyde de fer Fe(OH)_2 une masse volumique ρ_2.
Q40. Déduire la variation de volume δV induite par l'oxydation du fer en fonction, entre autres, de ρ_1 et ρ_2.
La loi de Faraday permet d'établir la relation (10) entre les entités suivantes:
  • F, la constante de Faraday ;
  • M, la masse molaire de l'hydroxyde Fe(OH)_2;
  • I, l'intensité du courant induit par la réaction d'oxydo-réduction;
  • t, le temps;
  • m(t), la masse de l'hydroxyde Fe(OH)_2 formée à l'instant t;
  • z, la valence de l'hydroxyde Fe(OH)_2.
m(t) = (IM)/(Fz)t
Q41. a. À l'aide de la loi de Faraday, déterminer l'expression du volume d'oxyde formé au cours du temps.
b. On modélise l'ossature de l'armature par un cylindre de longueur L. On note r_s le rayon de l'ossature saine et r(t) le rayon de l'ossature quand il y a oxydation. Déterminer l'expression du volume d'oxyde formé en fonction de L, r(t) et de r_s.
c. Montrer que l'évolution temporelle de la section induite par l'oxydation de l'armature est régie par l'expression suivante où on donnera les expressions de K_r et de t_0 : r(t) = K_r√(t + t_0).

III. 2 - Validation numérique

Cette partie est consacrée à la validation numérique de l'expression définie à la Q41c. Pour ce faire, diverses photos à intervalles de temps réguliers ont été prises. Les conditions dans lesquelles reposait le béton seront supposées identiques à chaque prise de vue. Des coupes ont été faites dans le béton permettant d'obtenir des vues similaires à celles de la figure 8 dans laquelle D_t et D_(t + dt) représentent les diamètres de l'armature aux instants t et t + dt. L'objectif de cette sous-partie sera de mettre en place un programme permettant de déterminer le diamètre de l'armature.
Figure 8 - Vue du béton et coupe
Un post traitement a permis de convertir l'image de l'armature en une image en noir et blanc et d'isoler une armature, qui sera supposée être au centre de la photo. L'image ainsi obtenue sera de forme carrée de Np pixels de côté. Un pixel noir sera supposé de valeur 0 et un pixel blanc aura une valeur de 1. Tout d'abord, les contours de l'image permettant de délimiter l'armature du béton seront identifiés. Les coordonnées du contour seront stockées dans la liste Contour. Le contour sera identifié par l'ensemble des pixels noirs entourés d'au moins un pixel blanc (figure 9).
Figure 9 - Définition du contour
Q42. La variable image est un tableau bidimensionnel de dimension NpxNp où chaque élément représente un pixel de la photo. La valeur 0 sera associée à la présence d'armature. Remplir la série d'instructions de la figure 10 permettant de stocker dans la liste Contour les coordonnées des points du contour de l'armature.
a. Compléter l'Instruction 1 permettant d'initialiser la liste Contour.
b. Compléter les Instructions 2 et 3 permettant de parcourir le tableau image.
c. Compléter l'Instruction 4 permettant de déterminer les pixels définissant le contour de l'image.
d. Stocker ces pixels dans la liste contour à l'aide de l'Instruction 5.
[Instruction 1]
for $i$ in range([Instruction 2]):
    for $j$ in range([Instruction 3]):
        I = image[i,j]
        if I==0 and ( ... or ... or ...):\#[Instruction 4]
            [Instruction 5]
Figure 10 - Script permettant de déterminer les coordonnées des points du contour d'une armature
Le diamètre de l'armature sera déterminé à partir de la plus grande distance séparant deux points distincts du contour.
Q43. Proposer une fonction Distance permettant de déterminer la distance euclidienne entre deux points de coordonnées X et Y . Cette fonction prendra en arguments deux listes de coordonnées CoordA et CoordB et renverra la distance entre ces deux points.
Q44. Proposer une valeur permettant l'initialisation du diamètre.
Q45. Proposer les instructions permettant de calculer la valeur du diamètre de l'armature métallique.

Annexe 1 - Quelques commandes utiles en langage Python

Bibliothèque NUMPY

Dans les exemples ci-dessous, la bibliothèque numpy a préalablement été importée à l'aide de la commande: import numpy as np. On peut alors utiliser les fonctions de la bibliothèque, dont voici quelques exemples :
  • np.linspace(start, stop, N point) :
  • Description : renvoie un nombre d'échantillons espacés uniformément, calculés sur l'intervalle [start, stop];
  • Argument d'entrée : début, fin et nombre d'échantillons dans l'intervalle ;
  • Argument de sortie: un tableau.
Commande Résultat
np.linspace (1, 4, 5) [1., 1, 75, 2, 5, 3, 25, 4].
  • np.zeros(i) :
  • Description : renvoie un tableau de taille i rempli de zéros;
  • Argument d'entrée : un scalaire
  • Argument de sortie: un tableau.
Commande Résultat
np.zeros (5) [0, 0, 0, 0, 0]
  • np.array(liste) :
  • Description : crée une matrice (de type tableau) à partir d'une liste.
  • Argument d'entrée : une liste définissant un tableau à 1 dimension (vecteur) ou 2 dimensions (matrice).
  • Argument de sortie : un tableau (matrice).
Commande Résultat
np.array ([4, 3, 5]) [4, 3, 5]
  • A[i, j] : _–
  • Description : retourne l'élément (i + 1, j + 1) de la matrice A. Pour accéder à l'intégralité de la ligne i + 1 de la matrice A, on écrit A[i, : ]. De même, pour obtenir toute la colonne j + 1 de la matrice A , on utilise la syntaxe A[ :, j].
  • Argument d'entrée: une liste contenant les coordonnées de l'élément dans le tableau A.
  • Argument de sortie : l'élément (i + 1, j + 1) de la matrice A.
Commande Résultat
A = np.array ([[1, 2, 1], [4, 6, 3], [1, 3, 8]]) 3
A[1, 2]

Bibliothèque MATPLOTLIB. PYPLOT

Cette bibliothèque permet de tracer des graphiques. Dans les exemples ci-dessous, la bibliothèque matplotlib.pyplot a préalablement été importée à l'aide de la commande: import matplotlib.pyplot as plt.
  • Description : fonction permettant de tracer un graphique de n points dont les abscisses sont contenues dans le vecteur x et les ordonnées dans le vecteur y. Cette fonction doit être suivie de la fonction plt. show () pour que le graphique soit affiché.
  • Argument d'entrée : un vecteur d'abscisses x (tableau de n éléments) et un vecteur d'ordonnées y (tableau de n éléments). La chaîne de caractères 'SC' précise le style et la couleur de la courbe tracée. Des valeurs possibles pour ces deux critères sont :
Valeurs possibles pour S (style) :
Description Ligne continue Ligne traitillée Marqueur rond Marqueur plus
Symbole S - -- o +
Valeurs possibles pour C (couleur) :
Description bleu rouge vert noir
Symbole C b r g k
  • Argument de sortie: un graphique.
x = np.linspace(3, 25, 5)
y = np.sin(x)
plt.plot(x,y,'-b') # tracé d'une ligne bleue continue
plt.title('titre_graphique') # titre du graphe
plt xlabel('x') # titre de l'axe des abscisses
plt ylabel('y') # titre de l'axe des ordonnées
plt.show()

Annexe 2 - L'algorithme de Newton

Présentation de la méthode :

L'algorithme de Newton est une méthode consistant à faire converger une suite (x_n)_(n ∈ N) vers la solution de l'équation f(x) = 0 dont on note C_f la courbe représentative. Cette méthode se décompose en plusieurs étapes.
  • Initialisation de x_0 à une valeur quelconque.
  • Calcul de x_1 à partir de la tangente à C_f en x_0. Cette dernière intersecte l'axe des abscisses en x_1.
  • Calcul de x_(i + 1) en fonction de x_i tant que la distance |x_(i + 1) − x_i| est supérieure à l'erreur souhaitée.

Formule de récurrence :

Par définition, x_(i + 1) est l'abscisse du point d'intersection de la tangente C_f en x_i avec l'axe des abscisses. L'équation de la tangente est donc : y = f^′(x_i)(x − x_i) + f(x_i).
Cette tangente coupe l'axe des abscisses si : y = 0.
On a ainsi : f^′(x_i)(x_(i + 1) − x_i) + f(x_i) = 0.
Soit : x_(i + 1) = x_i − (f(x_i))/(f^′(x_i)).

Questions fréquentes

4 questions
Sur quoi porte l'épreuve de modélisation CCINP PC 2025 ?
Afficher ou masquer la section

Sur quoi porte l'épreuve de modélisation CCINP PC 2025 ?

Le sujet porte sur la carbonatation du béton armé : acidification du milieu et calcul du pH, propagation du front de carbonatation par une équation de diffusion, puis oxydation des armatures métalliques.

Quelles erreurs le jury a-t-il le plus relevées sur ce sujet de modélisation PC ?

Des justifications absentes ou trop brèves, des applications numériques fautives, une confusion entre milieu acide et basique, et des erreurs récurrentes de programmation Python, notamment sur les tableaux numpy et la fonction range.

L'épreuve de modélisation CCINP PC 2025 est-elle difficile ?

Le rapport décrit un sujet où de nombreuses questions ont été bien abordées, mais où des difficultés transversales de rigueur et de rédaction, ainsi que plusieurs questions de fin de sujet mal traitées, ont pénalisé les copies.

Faut-il maîtriser la méthode de Newton et numpy pour ce sujet de modélisation PC ?

Oui, la partie I demande de résoudre une équation par la méthode de Newton en Python, et la partie II utilise numpy pour discrétiser et résoudre numériquement une équation de diffusion.

Pas de description pour le moment