Télécharger le fichier pdf d’un mémoire de fin d’études
Mise en oeuvre des simulations
Les simulations numériques par automates cellulaires probabilistes conduisent à la répétition d’un grand nombre d’opérations simples qui peuvent être réalisés en parallèle. Nous avons opté pour le calcul parallèle sur cartes graphiques, plus connues sous le terme de GPU qui est l’acronyme anglais de Graphics Process Unit (GPU). Actuellement le nombre de coeurs présents dans les microprocesseurs des Central Processing Unit (CPU) est au maximum de l’ordre de 18, alors que les cartes graphiques ont quelques milliers de coeurs. Les coeurs des CPU sont deux à trois fois plus rapides que ceux des GPU, mais l’architecture de ces dernières est faite pour réaliser plusieurs opérations en parallèle, au lieu d’une seule pour les CPU. Les GPU ont été crées initialement pour faire du traitement d’images, mais le constructeur de cartes NVIDIA a développé CUDA ( en anglais Compute Unified Device Architecture), une plateforme de programmation pour réaliser des calculs en parallèle sur ses cartes. Différents auteurs ont ainsi utilisé les GPU pour faire des calculs dans des architectures hétérogènes liées à d’autres applications [118]. Cette approche est connue sous le nom de General Purpose computing on Graphical Processing Units (GPGPU). CUDA possède une extension du C/C++ pour programmer les cartes graphiques.
Le code de calcul doit prendre en compte le transfert des données vers la carte graphique, les opérations à faire sur la carte, le retour des résultats vers la mémoire du GPU et éventuellement le traitement des données de sortie. Les opérations sur la carte graphique peuvent s’exécuter en parallèle dans des blocks. Chaque block est composé de threads qui exécutent leur procédure individuellement en parallèle dans le block. Les threads sont exécutés en groupes de 32 (warps) indépendamment de leur structure dans les blocks. Cela veut dire par exemple que le lancement de 40 threads ou 64 demande l’utilisation de 2 warps, mais dans le deuxième cas il n’y aura pas de threads vides. Les blocks n’ont pas d’interactions mutuelles, sauf pour modifier des valeurs dans la mémoire globale du GPU.
NVIDIA recommande d’utiliser la mémoire propre des blocks, qui est une mémoire à accès rapide commune à tous les threads du block, pour réaliser les calculs et profiter ainsi au maximum de l’architecture de la carte graphique. Ces transferts entre la mémoire globale du GPU et les mémoires locales des blocks constituent cependant une étape lente, comparativement aux calculs eux-mêmes. Ils ne sont intéressants du point de vue temps de calcul que si un grand nombre de calculs sont effectués au sein d’un block entre chaque étape de transfert de mémoire. Ce n’était pas le cas dans nos simulations de diffusion, et nous avons donc fait les calculs directement sur la mémoire globale. Notre algorithme est par ailleurs conçu pour éviter les problèmes typiques des méthodes parallèles comme des collisions entre les opérations du programme.
Performance de l’algorithme
Nous utilisons des cartes graphiques GTX Titan avec 2688 coeurs à 0,88 GHz de fréquence et 6 Gb de mémoire RAM. La machine de travail est équipée d’un CPU cadencé à 3,5 GHz, 16 Gb de RAM et 3Tb d’espace du disque dur. Une simulation de 50000 pas de temps prend au total 220 secondes, pour une matrice de 129129129 et une taille de boîte de trois. Tous les 1000 pas de temps, une procédure de transfert de données de la mémoire globale GPU vers la mémoire CPU est faite pour traiter les données en cours de simulation.
Un point primordial consiste à vérifier que l’algorithme et les paramètres utilisés (notamment la taille des boîtes d) n’engendre pas de corrélation dans le mouvement des particules. Pour ce faire nous avons analysé le bruit sur les profils de concentration en fonction de la hauteur z, par transformée de Fourier. Une telle analyse nous permet de détecter d’éventuelles composantes périodiques dans ces courbes, qui seraient donc associées à des corrélations induites notamment par des effets de taille. Nous nous sommes placés en régime stationnaire et avons soustrait la partie linéaire de la fonction. Les profils de concentration aux temps 15000, 25000, 35000 et 45000 sont représentés sur la Fig. II.10(a). L’amplitude du bruit est de moins de 1%. Nous constatons, sur les transformées de Fourier représentées sur la Fig. II.10(b), l’absence de pic caractéristique en fréquence. Le bruit que nous observons sur les profils de concentration est donc lié uniquement à des fluctuations aléatoires typiques de notre algorithme stochastique.
Couplage diffusion et réaction
Dans la section précédente nous avons présenté notre méthode de modélisation de la diffusion par automates cellulaires et montré comment elle a été validée. Cette section est consacrée à un modèle couplé diffusion-réaction que nous avons développé dans le cas de la voltampérométrie cyclique. Nous avons effectué des comparaisons quantitatives d’une part avec des résultats expérimentaux issus de la littérature et d’autre part avec des résultats obtenus à l’aide d’autres méthodes numériques.
Nous donnons une signification aux probabilités de réaction utilisées dans nos règles de transition en les reliant aux paramètres qui apparaissent dans les lois de Butler-Volmer et de Nernst. Les résultats obtenus dans le cadre de cette étude ont fait l’objet d’une publication dans ’Journal of Computational Science’ [70].
Description physicochimique
Dans notre modèle, les ions pris en compte dans l’électrolyte sont H+ et OH? (pas de polluants à l’exception d’un électrolyte support n’ayant pas de rôle direct sur la corrosion). Les réactions électrochimiques anodiques et cathodiques sont simplifiées, mais ont la particularité de pouvoir être spatialement séparées. Ce dernier point constitue l’une des différences essentielles entre notre modèle et les modèles antérieurs de corrosion par automates cellulaires issus de la littérature, dans lesquels les demi-réactions anodiques et cathodiques, si elles sont toutes deux prises en compte, sont considérées comme ayant lieu simultanément et au même endroit [89, 106, 107, 123, 124]. La séparation éventuelle de ces deux demi-réactions est fondamentale pour modéliser de façon complète la corrosion aqueuse et notamment les phénomènes de corrosion localisée. Certains autres phénomènes réputés avoir une influence sur la corrosion, tels que la chute ohmique et la précipitation des ions salins, ne sont pas pris en compte dans le modèle actuel.
Réactions électrochimiques
La corrosion du métal est contrôlée par deux demi-réactions électrochimiques, dites anodiques et cathodiques. Ces demi-réactions peuvent avoir lieu en différents points de la surface, supposés connectés électriquement à la fois via le métal et via l’électrolyte, créant ainsi une boucle de courant. Elles sont susceptibles de s’exprimer différemment selon l’acido-basicité de l’environnement et sont par ailleurs supposées distribuées aléatoirement sur la surface. Dans notre modèle nous les référençons comme demi-réactions SSE (acronyme anglais de Spatially Separated Electrochemical (SSE)).
Nous supposons que l’oxydation du métal correspond à la libération d’un seul électron 1 et à la mise en solution d’un cation M+, selon la demi-réaction anodique suivante M ?! M+ + e?. (III.1.1).
Demi-réactions électrochimiques spatialement séparées SSE
Les demi-réactions (III.1.3 à III.1.6) sont décrites comme des évènements simultanés mais séparés spatialement. Les deux demi-réactions faisant partie d’un circuit électrique, les cellules où elles ont lieu doivent donc être connectées électriquement d’une part à travers le métal (conduction électronique) et d’autre part à travers l’électrolyte.
Dans le solide, cette condition implique qu’il doit exister au moins un chemin constitué de cellules réactives R, passives P ou métalliques M reliant les cellules concernées. La conduction dans l’électrolyte est assurée par le mouvement diffusif des ions.
Les règles de transition correspondant à la demi-réaction anodique en milieu acide ou neutre (III.1.3) et basique (III.1.4) sont respectivement : R´eactif1 ?! Acide1 si Nexc 0, (III.1.12).
Mise en oeuvre du modèle de corrosion
L’organigramme de l’algorithme de corrosion est représenté sur la Fig. III.4. La vitesse de diffusion étant supérieure à la vitesse de corrosion (puisque nous considérons en général un électrolyte liquide) la boucle de diffusion est réalisée Ndiff fois à l’intérieur de la boucle principale de corrosion. Le paramètre Ndiff représente ainsi le rapport entre la vitesse de diffusion et la vitesse de corrosion.
Les paramètres d’entrée du modèle sont les différentes probabilités de corrosion, Ndiff, la taille de cellule a, le coefficient de diffusion et le nombre de cellules NX NY NZ. Les réactions électrochimiques sont effectuées en parallèle par le GPU, selon un algorithme que nous détaillons ci-après.
Connectivité électrique
Pour garantir la connectivité électrique entre les cellules où les demi-réactions anodiques et cathodiques ont lieu, on doit vérifier l’existence d’un chemin “conducteur” reliant ces cellules à travers le solide. C’est l’une des étapes de l’algorithme les plus coûteuses en temps de calcul. Afin de l’optimiser nous déterminons un front de corrosion principal, constitué des seules cellules pour lesquelles les demi-réactions SSE peuvent se produire (c’est-à-dire toutes les cellules R et P, à l’exclusion de celles appartenant à d’éventuels îlots, ces derniers ne pouvant que se dissoudre).
Corrosion par piqûre
Dans ce cas nous étudions la propagation d’une piqûre dans un métal protégé par un film passif. Nous considérons que l’amorçage de la piqûre se fait à partir de la rupture de ce film. La réaction anodique a lieu à l’intérieur de la piqûre et contribue donc à l’augmentation locale de l’acidité de l’électrolyte situé à l’intérieur (voir Tableau III.1). La réaction cathodique a lieu à l’extérieur de la piqûre (surface du film passif) et conduit à l’augmentation du pH de l’environnement. Le trou ou défaut dans la couche passive joue un rôle fondamental dans ce type de scénario car il permet le mouvement d’ions en solution entre la zone acide et la zone basique. L’objectif de ce scénario est d’étudier d’une part l’influence de la séparation spatiale des demi-réactions électrochimiques sur la propagation de la piqûre et d’autre part le rôle de la couche passive dans ce phénomène.
Corrosion en milieu confiné
Nous envisageons ici le cas où la corrosion se développe dans un métal couvert par une surface isolante. En pratique une telle surface est généralement constituée d’une couche de peinture poreuse ou encore d’argile non soluble, mais peut également résulter de l’agglomération de produits de corrosion non conducteurs. Cette couche joue un rôle important d’une part parce qu’elle peut localement permettre le développement de la corrosion dans le métal à l’endroit où elle possède un défaut, et d’autre part parce qu’elle impose une condition de confinement. En effet, cette couche étant non conductrice, les transferts de charges (électroniques et ioniques) s’effectuent uniquement à l’intérieur de la cavité générée.
Contrairement au cas de la corrosion par piqûre que nous avons traité au paragraphe précédent, cette couche joue un rôle de barrière électrique. Aucun transfert de charge ne s’effectue à sa surface. L’inclusion de l’électrolyte à l’intérieur de la cavité ne peut se faire qu’à travers le défaut, et par conséquent la cavité générée est globalement neutre. Les réactions électrochimiques qui ont lieu sur la surface intérieure de la cavité produisent des ions H+ et OH? qui interagissent et se neutralisent lorsqu’ils entrent en collision. La neutralisation globale de la cavité est donc assuréepar la diffusion. Lorsque la taille de la cavité évolue à une vitesse supérieure à la vitesse de diffusion, une séparation entre zone acide et zone basique apparaît dans la cavité. On a alors une croissance asymétrique : la zone acide est le siège d’un mécanisme auto-catalytique et croît à vitesse élevée, la zone basique est passivée et évolue lentement.
L’article suivant présente les différents résultats obtenus concernant les caractéristiques morphologiques de cette cavité et de son évolution. Nous y proposons également une théorie sur les différents régimes de croissance mis en évidence.
|
Table des matières
Introduction
I Analyse bibliographique
I.1 Généralités sur la corrosion
I.1.1 Types de corrosion
I.1.2 Corrosion généralisée
I.1.3 Corrosion localisée
I.1.4 Chunk effect
I.2 Les automates cellulaires
I.2.1 Définitions
I.2.2 Aspects déterministes et stochastiques
I.3 Modélisation de la corrosion
I.3.1 Modélisations déterministes
I.3.2 Modélisations stochastiques
II Modélisation diffusion et réactions
II.1 Modélisation de la diffusion
II.1.1 Mouvement d’une particule
II.1.2 Vérification de la loi de Fick avec les automates cellulaires
II.1.3 Mise en oeuvre des simulations
II.2 Couplage diffusion et réaction
III Modélisation de la corrosion
III.1 Modèle de corrosion par automates cellulaires
III.1.1 Description physicochimique
III.1.2 Description du modèle
III.1.3 Mise en oeuvre du modèle de corrosion
III.2 Corrosion généralisée
III.2.1 Conditions initiales
III.2.2 Résultats
III.2.3 Vitesse de corrosion
III.2.4 Courant électrique
III.3 Corrosion par piqûre
III.3.1 Conditions initiales
III.3.2 Résultats
III.4 Corrosion en milieu confiné
IV Conclusions et perspectives
IV.1 Conclusion générale
IV.2 Perspectives
Annexes
A Algorithmes pour le calcul parallèle
A.1 Description des algorithmes
A.2 Discussion du caractère stochastique
B Concours Arts & Sciences
Acronymes
Liste de symboles
Table des figures
Bibliographie
Télécharger le rapport complet